Knowledge

TCP Fast Open

Source 📝

35:(a TCP option), which is a cryptographic cookie stored on the client and set upon the initial connection with the server. When the client later reconnects, it sends the initial SYN packet along with the TFO cookie data to authenticate itself. If successful, the server may start sending data to the client even before the reception of the final ACK packet of the three-way handshake, thus skipping a round-trip delay and lowering the 50:
that is difficult for third parties to spoof, even if they can forge a source IP address or make two-way connections to the same server from other IP addresses. Although it uses cryptographic techniques to generate the cookie, TFO is not intended to provide more security than the three-way handshake
85:
The TFO proposal was originally presented in 2011 and was published as the experimental RFC 7413 in December 2014. TCP Fast Open shares the goal of bypassing the three-way handshake of TCP with an earlier proposal from 1994, called
51:
it replaces, and does not give any form of cryptographic protection to the resulting TCP connection, or provide identity assurance about either endpoint. It also is not intended to be resistant to
109:
in kernel versions 3.6 (support for clients) and 3.7 (Dec 2012) (support for servers), and was turned on by default in kernel version 3.13 (Jan 2014). TFO support for
90:(RFC 1644). In contrast to TCP Fast Open, T/TCP paid no attention to security, opening a path for vulnerabilities and failing to gain traction. 663: 337: 28: 627: 441: 415: 148: 77:
challenges; the TFO cookie can allow persistently tracking a client across sessions, even by passive observers.
126: 56: 52: 565: 125:
from version 58. The support was disabled by default due to network device compatibility issues with TFO and
758: 237: 394: 136: 551: 106: 36: 585: 55:. If such resistance is required, it may be used in combination with a cryptographic protocol such as 351: 163: 495: 481: 467: 310: 157: 708: 172: 47: 468:"Implementation of server-side TCP Fast Open (TFO) [RFC7413]: MFC into stable/10 branch" 738: 718: 341: 74: 695:
Sy, Erik; Mueller, Tobias; Burkert, Christian; Federrath, Hannes; Fischer, Mathias (2020).
330:
Cheng, Yuchung; Chu, Jerry; Radhakrishnan, Sivasankar & Jain, Arvind (December 2014).
122: 195:
both support TCP Fast Open, but it is not enabled for individual connections by default.
648: 613: 599: 537: 523: 509: 482:"This is an implementation of the client side of TCP Fast Open (TFO) [RFC7413]" 198: 752: 132: 43: 742: 354: 331: 232: 67: 202: 192: 184: 723: 696: 442:"Linux Kernel 3.16, Section 1.4. TCP Fast Open server mode on IPv6 support" 66:
TFO has been difficult to deploy due to protocol ossification; in 2020, no
208: 178: 144: 119:
from version 10.3 (support for servers) and 12.0. (support for clients).
46:
keyed on a key held secret by the server to the client's, generating an
686: 271: 214: 116: 346: 713: 681: 416:"Linux Kernel 3.13, Section 1.10. TCP Fast Open enabled by default" 376: 267: 309:
Radhakrishnan S, Cheng Y, Chu J, Jain A, Raghavan B (2011-12-06).
242: 188: 140: 87: 60: 247: 227: 169: 154: 110: 102: 31:(TCP) connections between two endpoints. It works by using a 697:"Enhanced Performance and Privacy for TLS over TCP Fast Open" 664:"Support TCP fastopen on incoming and outgoing connections" 403:
Linux 3.7. TCP Fast Open will now be supported on servers
296: 27:) is an extension to speed up the opening of successive 381:
The client-side support has been merged for Linux 3.6
628:"Windows 10 build 14352 - New web platform features" 217:
supports TCP-fastopen (RFC-7413) from version 2.81.
496:"Enable TCP_FASTOPEN by default for FreeBSD 12" 701:Proceedings on Privacy Enhancing Technologies 8: 395:"Linux 3.7 arrives, ARM developers rejoice" 98:TFO implementations include the following: 284: 113:servers was merged in kernel version 3.16. 722: 712: 345: 524:"1398201 - Disable TCP Fast Open for 57" 393:Vaughan-Nichols, Steven J (2012-12-11). 377:"TCP Fast Open: expediting web services" 268:"TCP Fast Open: expediting web services" 211:supports TCP Fast Open from version 4.1. 614:"Your App and Next Generation Networks" 586:"Release Notes for BIND Version 9.11.0" 258: 42:The cookie is generated by applying a 129:and eventually removed in version 87. 7: 325: 323: 105:support for TFO was merged into the 680:Rybczyńska, Marta (13 March 2020). 39:in the start of data transmission. 14: 510:"1188435 - Support TCP Fast Open" 139:browsers have support for TFO on 538:"1689604 - Remove TCP FastOpen" 375:Kerrisk, Michael (2012-08-01). 266:Kerrisk, Michael (2012-08-01). 1: 201:supports TCP Fast Open since 29:Transmission Control Protocol 662:Kelley, Simon (2019-03-10). 775: 175:(DNS) from version 9.11.0. 16:Experimental TCP mechanism 53:man-in-the-middle attacks 724:10.2478/popets-2020-0027 160:(MTA) from version 4.88. 19:In computer networking, 682:"A QUIC look at HTTP/3" 651:. PowerDNS. 2017-12-04. 238:TCP Cookie Transactions 649:"Changelogs for 4.1.x" 399:Linux and Open Source 107:Linux kernel mainline 552:"Exim 4.88 released" 205:Preview build 14352. 166:from version 1.5.10. 164:Unbound DNS Resolver 70:used it by default. 181:from version 2.6.0. 158:mail transfer agent 616:. Apple Inc. 2015. 299:, p. 275-279. 173:Domain Name System 48:authentication tag 446:kernelnewbies.org 422:. 19 January 2014 420:kernelnewbies.org 209:PowerDNS Recursor 766: 728: 726: 716: 691: 668: 667: 659: 653: 652: 645: 639: 638: 636: 635: 624: 618: 617: 610: 604: 603: 600:"Knot DNS 2.6.0" 596: 590: 589: 582: 576: 575: 573: 572: 566:"Unbound 1.5.10" 562: 556: 555: 548: 542: 541: 534: 528: 527: 520: 514: 513: 506: 500: 499: 492: 486: 485: 478: 472: 471: 464: 458: 457: 455: 453: 438: 432: 431: 429: 427: 412: 406: 405: 390: 384: 383: 372: 366: 365: 363: 361: 349: 347:10.17487/RFC7413 327: 318: 317: 315: 306: 300: 294: 288: 282: 276: 275: 263: 774: 773: 769: 768: 767: 765: 764: 763: 749: 748: 735: 694: 679: 676: 671: 661: 660: 656: 647: 646: 642: 633: 631: 626: 625: 621: 612: 611: 607: 598: 597: 593: 584: 583: 579: 570: 568: 564: 563: 559: 550: 549: 545: 536: 535: 531: 522: 521: 517: 508: 507: 503: 494: 493: 489: 480: 479: 475: 466: 465: 461: 451: 449: 448:. 3 August 2014 440: 439: 435: 425: 423: 414: 413: 409: 392: 391: 387: 374: 373: 369: 359: 357: 329: 328: 321: 313: 311:"TCP Fast Open" 308: 307: 303: 295: 291: 285:Rybczyńska 2020 283: 279: 265: 264: 260: 256: 224: 123:Mozilla Firefox 96: 94:Characteristics 83: 17: 12: 11: 5: 772: 770: 762: 761: 759:TCP extensions 751: 750: 747: 746: 734: 733:External links 731: 730: 729: 707:(2): 271–287. 692: 675: 672: 670: 669: 654: 640: 619: 605: 591: 577: 557: 543: 529: 515: 501: 487: 473: 459: 433: 407: 385: 367: 319: 301: 297:Sy et al. 2020 289: 277: 257: 255: 252: 251: 250: 245: 240: 235: 230: 223: 220: 219: 218: 212: 206: 199:Microsoft Edge 196: 182: 176: 167: 161: 152: 130: 120: 114: 95: 92: 82: 79: 15: 13: 10: 9: 6: 4: 3: 2: 771: 760: 757: 756: 754: 745:specification 744: 740: 737: 736: 732: 725: 720: 715: 710: 706: 702: 698: 693: 689: 688: 683: 678: 677: 673: 665: 658: 655: 650: 644: 641: 629: 623: 620: 615: 609: 606: 602:. 2017-09-29. 601: 595: 592: 588:. 2016-10-05. 587: 581: 578: 567: 561: 558: 554:. 2016-12-25. 553: 547: 544: 540:. 2021-03-23. 539: 533: 530: 526:. 2017-09-10. 525: 519: 516: 512:. 2017-05-05. 511: 505: 502: 498:. 2018-06-24. 497: 491: 488: 484:. 2018-02-26. 483: 477: 474: 470:. 2015-12-28. 469: 463: 460: 447: 443: 437: 434: 421: 417: 411: 408: 404: 400: 396: 389: 386: 382: 378: 371: 368: 356: 353: 348: 343: 339: 335: 334: 333:TCP Fast Open 326: 324: 320: 316:. ACM CoNEXT. 312: 305: 302: 298: 293: 290: 286: 281: 278: 273: 269: 262: 259: 253: 249: 246: 244: 241: 239: 236: 234: 231: 229: 226: 225: 221: 216: 213: 210: 207: 204: 200: 197: 194: 190: 186: 183: 180: 177: 174: 171: 168: 165: 162: 159: 156: 153: 150: 146: 142: 138: 134: 133:Google Chrome 131: 128: 124: 121: 118: 115: 112: 108: 104: 101: 100: 99: 93: 91: 89: 80: 78: 76: 73:TFO presents 71: 69: 64: 62: 58: 54: 49: 45: 40: 38: 34: 30: 26: 22: 21:TCP Fast Open 704: 700: 685: 674:Bibliography 657: 643: 632:. Retrieved 622: 608: 594: 580: 569:. Retrieved 560: 546: 532: 518: 504: 490: 476: 462: 452:14 September 450:. Retrieved 445: 436: 424:. Retrieved 419: 410: 402: 398: 388: 380: 370: 358:. Retrieved 332: 304: 292: 280: 261: 143:, including 97: 84: 72: 68:Web browsers 65: 44:block cipher 41: 32: 24: 20: 18: 630:. Microsoft 426:11 February 379:. LWN.net. 233:SYN cookies 714:1905.03518 634:2016-05-27 571:2017-12-05 254:References 203:Windows 10 193:OS X 10.11 33:TFO cookie 401:. ZDNet. 753:Category 222:See also 179:Knot DNS 145:ChromeOS 137:Chromium 687:LWN.net 360:27 June 272:LWN.net 215:dnsmasq 149:Android 127:TLS 1.3 117:FreeBSD 81:History 75:privacy 37:latency 741:  709:arXiv 314:(PDF) 243:0-RTT 189:iOS 9 185:Apple 141:Linux 88:T/TCP 61:IPsec 743:7413 705:2020 454:2014 428:2014 362:2022 355:7413 338:IETF 248:QUIC 228:SPDY 191:and 170:BIND 155:Exim 147:and 135:and 111:IPv6 103:IPv4 739:RFC 719:doi 352:RFC 342:doi 187:'s 59:or 57:TLS 25:TFO 755:: 717:. 703:. 699:. 684:. 444:. 418:. 397:. 350:. 340:. 336:. 322:^ 270:. 63:. 727:. 721:: 711:: 690:. 666:. 637:. 574:. 456:. 430:. 364:. 344:: 287:. 274:. 151:. 23:(

Index

Transmission Control Protocol
latency
block cipher
authentication tag
man-in-the-middle attacks
TLS
IPsec
Web browsers
privacy
T/TCP
IPv4
Linux kernel mainline
IPv6
FreeBSD
Mozilla Firefox
TLS 1.3
Google Chrome
Chromium
Linux
ChromeOS
Android
Exim
mail transfer agent
Unbound DNS Resolver
BIND
Domain Name System
Knot DNS
Apple
iOS 9
OS X 10.11

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.