%% You should probably cite draft-ietf-dnsop-edns-tcp-keepalive instead of this I-D. @techreport{wouters-edns-tcp-keepalive-00, number = {draft-wouters-edns-tcp-keepalive-00}, type = {Internet-Draft}, institution = {Internet Engineering Task Force}, publisher = {Internet Engineering Task Force}, note = {Work in Progress}, url = {https://datatracker.ietf.org/doc/draft-wouters-edns-tcp-keepalive/00/}, author = {Paul Wouters and Joe Abley}, title = {{The edns-tcp-keepalive EDNS0 Option}}, pagetotal = 9, year = 2013, month = oct, day = 15, abstract = {DNS messages between clients and servers may be received over either UDP or TCP. UDP transport involves keeping less state on a busy server, but can cause truncation and retries over TCP. Additionally, UDP can be exploited for reflection attacks. Using TCP would reduce retransmits and amplification. However, clients are currently limited in their use of the TCP transport as most implementations limit the TCP session to a single DNS query and answer, making use of TCP only suitable as a fallback protocol for UDP. This document defines an EDNS0 option ("edns-tcp-keepalive") that allows DNS clients and servers to signal their respective readiness to conduct multiple DNS transactions over individual TCP sessions. This signalling facilitates a better balance of UDP and TCP transport between individual clients and servers, reducing the impact of problems associated with UDP transport and allowing the state associated with TCP transport to be managed effectively with minimal impact on the DNS transaction time.}, }