TCP
传输控制协议(Transmission Control Protocol, TCP)是一种面向连接的,可靠的,基于字节流的传输层通信协议。在该层,另一个重要传输协议是用户数据包协议(UDP)。
数据在TCP层称为流Stream,数组分组称为分段Segment。相对的在IP层,数据称为Datagram, 数据分组称为分片(Fragment)。在UDP中,分组称为Message。
TCP的一个基本特性是可靠性。当通过TCP来传输传输一个包时,接收方通过发送确认信息ackowledgement 来确认接收到了包。如果发送方没有接收到确认,就会重传该包直到被确认。这确保了所有包被正确接收,且消除了可能得丢包。
TCP具有内置的阻塞控制和流量控制机制。阻塞控制通过降低数据传输速率来避免网络陷入过载。流量控制基于接收方的缓冲容量调整数据传输速率,从而确保发送方不会发送过多数据给接收方。
在上面提到的优点之外,这些机制也导致了一些缺点。重传机制会导致潜在的高延迟。此外,重传还会导致数据流被打断,导致TCP不适合应用于实时应用(real-time applications)。
值得注意的是,TCP的一些变体,比如SRT和CUBIC通过优化丢失包的重传机制和阻塞控制机制,克服了高延迟的缺点。
TCP协议的运行可以划分为三个阶段:
- 链接建立(connection establishment)
- 数据传送(data transfer)
- 链接终止(connection termination) </