要真正了解 TCP 与 UDP 的差异,必须了解每种协议如何实现特定的可靠性功能,以及它们如何跟踪通信。

传输控制协议 (TCP)

RFC 793 对 TCP 进行了基本说明。 除了支持数据分段和重组的基本功能之外,TCP 还提供如图所示的以下功能:

建立会话

TCP 是一种面向连接的协议。 面向连接的协议在转发任何流量之前,在源设备和目的设备之间协商并建立连接(或会话)。 建立会话可以让设备互相通信。 通过建立会话,设备可以协商特定时间能够转发的流量,以及两者之间可以严格管理的通信数据。 只有所有通信完成之后,会话才会终止。

可靠传输

TCP 可通过某种方法实现数据的可靠传输。 在网络术语中,可靠性指从源设备发送的每段数据都能够到达目的设备。 由于多种原因,数据片段在网络传输过程中可能会损坏或者完全丢失。 TCP 通过让源设备重新传输丢失或损坏的数据,来确保所有片段到达其目的地。

同序处理

由于网络可能提供了多条路由,每条路由又有不同的传输速率,所以可能导致数据抵达的顺序错乱。 通过对数据段编号和排序,TCP 可以确保按正确的顺序重组这些数据段。

流量控制

网络主机的内存或带宽等资源有限。 当 TCP 发现这些资源超负荷运转时,它可以请求源应用程序降低数据流速。 为此,TCP 会调整源设备传输的数据量。 流量控制可预防数据段在网络上丢失,从而避免重新传输。