Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Transmission Control Protocol
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Development== TCP is a complex protocol. However, while significant enhancements have been made and proposed over the years, its most basic operation has not changed significantly since its first specification {{harvtxt|RFC 675}} in 1974, and the v4 specification {{harvtxt|RFC 793}}, published in September 1981. {{harvtxt|RFC 1122}}, published in October 1989, clarified a number of TCP protocol implementation requirements. A list of the 8 required specifications and over 20 strongly encouraged enhancements is available in {{harvtxt|RFC 7414}}. Among this list is {{harvtxt|RFC 2581}}, TCP Congestion Control, one of the most important TCP-related RFCs in recent years, describes updated algorithms that avoid undue congestion. In 2001, {{harvtxt|RFC 3168}} was written to describe [[Explicit Congestion Notification]] (ECN), a congestion avoidance signaling mechanism. The original TCP congestion avoidance algorithm was known as ''TCP Tahoe'', but many alternative algorithms have since been proposed (including [[TCP Reno]], [[TCP Vegas]], [[FAST TCP]], [[TCP New Reno]], and [[TCP Hybla]]). [[Multipath TCP]] (MPTCP){{sfn|RFC 6182}}{{sfn|RFC 6824}} is an ongoing effort within the IETF that aims at allowing a TCP connection to use multiple paths to maximize resource usage and increase redundancy. The redundancy offered by Multipath TCP in the context of wireless networks enables the simultaneous use of different networks, which brings higher throughput and better handover capabilities. Multipath TCP also brings performance benefits in datacenter environments.<ref>{{Cite journal |last1=Raiciu |last2=Barre |last3=Pluntke |last4=Greenhalgh |last5=Wischik |last6=Handley |title=Improving datacenter performance and robustness with multipath TCP |journal=ACM SIGCOMM Computer Communication Review |volume=41 |issue=4 |pages=266 |year=2011 |url=http://inl.info.ucl.ac.be/publications/improving-datacenter-performance-and-robustness-multipath-tcp |doi=10.1145/2043164.2018467 |citeseerx=10.1.1.306.3863 |access-date=2011-06-29 |archive-date=2020-04-04 |archive-url=https://web.archive.org/web/20200404105843/https://inl.info.ucl.ac.be/publications/improving-datacenter-performance-and-robustness-multipath-tcp |url-status=dead }}</ref> The reference implementation<ref>{{cite web|url=http://www.multipath-tcp.org/|title=MultiPath TCP β Linux Kernel implementation|access-date=2013-03-24|archive-date=2013-03-27|archive-url=https://web.archive.org/web/20130327041817/http://www.multipath-tcp.org/|url-status=live}}</ref> of Multipath TCP was developed in the Linux kernel.<ref>{{Cite journal |last1=Raiciu |last2=Paasch |last3=Barre |last4=Ford |last5=Honda |last6=Duchene |last7=Bonaventure |last8=Handley |title=How Hard Can It Be? Designing and Implementing a Deployable Multipath TCP |journal=Usenix NSDI |pages=399β412 |year=2012 |url=https://www.usenix.org/conference/nsdi12/how-hard-can-it-be-designing-and-implementing-deployable-multipath-tcp |access-date=2013-03-24 |archive-date=2013-06-03 |archive-url=https://web.archive.org/web/20130603045638/https://www.usenix.org/conference/nsdi12/how-hard-can-it-be-designing-and-implementing-deployable-multipath-tcp |url-status=live }}</ref> Multipath TCP is used to support the Siri voice recognition application on iPhones, iPads and Macs.<ref>{{Cite journal |last1=Bonaventure |last2=Seo |title=Multipath TCP Deployments |journal=IETF Journal |year=2016 |url=https://www.ietfjournal.org/multipath-tcp-deployments/ |access-date=2017-01-03 |archive-date=2020-02-23 |archive-url=https://web.archive.org/web/20200223070325/https://www.ietfjournal.org/multipath-tcp-deployments/ |url-status=live }}</ref> [[tcpcrypt]] is an extension proposed in July 2010 to provide transport-level encryption directly in TCP itself. It is designed to work transparently and not require any configuration. Unlike [[Transport Layer Security|TLS]] (SSL), tcpcrypt itself does not provide authentication, but provides simple primitives down to the application to do that. The tcpcrypt RFC was published by the IETF in May 2019.<ref>{{cite IETF |rfc=8548 |title=Cryptographic Protection of TCP Streams (tcpcrypt) |date=May 2019}}</ref> [[TCP Fast Open]] is an extension to speed up the opening of successive TCP connections between two endpoints. It works by skipping the three-way handshake using a cryptographic ''cookie''. It is similar to an earlier proposal called [[T/TCP]], which was not widely adopted due to security issues.<ref name=lwn>{{cite news |author=Michael Kerrisk |date=2012-08-01 |title=TCP Fast Open: expediting web services |publisher=[[LWN.net]] |url=https://lwn.net/Articles/508865/ |access-date=2014-07-21 |archive-date=2014-08-03 |archive-url=https://web.archive.org/web/20140803234830/http://lwn.net/Articles/508865/ |url-status=live }}</ref> TCP Fast Open was published as {{harvtxt|RFC 7413}} in 2014.{{sfn|RFC 7413}} Proposed in May 2013, [[Proportional Rate Reduction]] (PRR) is a TCP extension developed by Google engineers. PRR ensures that the TCP window size after recovery is as close to the [[TCP congestion control#Slow start|slow start]] threshold as possible.{{sfn|RFC 6937}} The algorithm is designed to improve the speed of recovery and is the default congestion control algorithm in Linux 3.2+ kernels.<ref>{{cite book|last1=Grigorik|first1=Ilya|title=High-performance browser networking|date=2013|publisher=O'Reilly|location=Beijing|isbn=978-1449344764|edition=1.}}</ref> === Deprecated proposals === [[TCP Cookie Transactions]] (TCPCT) is an extension proposed in December 2009{{sfn|RFC 6013}} to secure servers against denial-of-service attacks. Unlike SYN cookies, TCPCT does not conflict with other TCP extensions such as [[window scaling]]. TCPCT was designed due to necessities of [[DNSSEC]], where servers have to handle large numbers of short-lived TCP connections. In 2016, TCPCT was [[deprecated]] in favor of TCP Fast Open. The status of the original RFC was changed to ''historic''.{{sfn|RFC 7805}}
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)