传输控制协议
传输控制协议是互联网的面向连接的传输协议,它在两个进程之间提供可靠、有序、全双工的字节流,并内置流量控制和拥塞控制功能。
用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
Learn & explore
视频即将推出
Definition
传输控制协议是一种面向连接的传输层协议,它在应用程序进程之间提供可靠、有序、经过错误检查的字节流传输,并具有连接建立和拆除、流量控制和拥塞控制功能。
Scope
本主题专门涵盖TCP:其报文段结构、建立连接的三次握手和关闭连接的程序、序号和确认号、累积确认、带有自适应超时估计和快速重传的重传机制,以及通过接收窗口实现的流量控制。它将TCP定位为可靠数据传输原理和连接管理的具体实现。其拥塞控制行为在此处进行了总结,但在拥塞控制主题中进行了深入探讨。
Core questions
- 三次握手实现了什么,以及连接是如何关闭的?
- TCP的序号和确认号如何跟踪字节流?
- TCP如何估计超时并使用快速重传从丢失中恢复?
- 接收窗口如何实现流量控制?
- TCP如何将可靠性、流量控制和拥塞控制结合在一个协议中?
Key concepts
- 面向连接服务
- 三次握手
- TCP报文段结构
- 序号和确认号
- 累积确认
- 重传超时估计
- 快速重传
- 流量控制和接收窗口
- 字节流抽象
Key theories
- 连接管理
- TCP通过三次握手建立连接,同步初始序号,并通过优雅的交换关闭连接,为每一端提供一致的状态,以实现可靠的全双工字节流。
- 可靠的字节流传输
- TCP对每个字节进行编号,使用累积确认和自适应重传计时器,并在收到重复ACK时应用快速重传,从而传输可靠、有序的流,而非离散消息。
- 通过接收窗口进行流量控制
- 接收方通告其拥有的缓冲区空间大小,发送方将其在途数据限制在该窗口内,从而独立于网络拥塞,防止快速发送方压垮慢速接收方。
Clinical relevance
TCP承载了绝大多数可靠的互联网流量,包括网页、电子邮件和文件传输,因此其行为直接决定了这些应用程序的性能。其连接建立增加了延迟,这是新协议试图减少的;其流量和拥塞控制影响吞吐量;理解TCP对于性能调优、防火墙和NAT行为以及诊断连接停滞或缓慢至关重要。
History
TCP起源于1974年的Cerf-Kahn互联网互联协议,最初是一个单一协议,后来分拆为TCP和IP。它于RFC 793(1981年)中标准化,并在数十年间不断完善——包括自适应超时、快速重传和恢复、窗口缩放以及选择性确认——其规范在RFC 9293(2022年)中得到整合和更新。
Key figures
- Vinton Cerf
- Robert Kahn
- Van Jacobson
Related topics
Seminal works
- cerf1974
- rfc9293
- kurose2021
Frequently asked questions
- 什么是TCP三次握手?
- 它是开启TCP连接的交换过程:客户端发送一个带有其初始序号的SYN报文,服务器回复一个SYN-ACK报文以确认并给出自己的序号,客户端发送一个最终的ACK报文。此后,两端就起始序号达成一致,并可以可靠地交换数据。
- TCP与UDP有何不同?
- TCP是面向连接的,提供可靠、有序的字节流,并具有流量和拥塞控制功能,但代价是设置延迟和开销。UDP是无连接的,提供最小的、尽力而为的数据报服务,不提供任何这些保证,这使其更轻量、延迟更低,但将可靠性留给应用程序处理。