Transmission Control Protocol
TCP 在因特网主机间提供可靠的流传送。
与 UDP 相同的是,TCP 使用因特网协议(底层协议)来传输数据报,并且支持在进程端口间分块传输连续的数据报流。 与 UDP 不同的是,TCP 提供可靠的消息传送。 TCP 确保数据不受破坏、丢失、复制或无序的传送到接收进程。 该传送可靠性的保证使得应用程序程序员不必将通信安全保护构建到软件中去。
以下是 TCP 的操作特性:
| 项 | 描述 |
|---|---|
| 基本数据传输 | TCP 可以在它的用户间向每个方向传输 8 位的八位元连续流,通过将一定数目的字节封装到段中以便于因特网系统的传输。 TCP 实现允许的段的大小至少为 1024 字节。 通常,TCP 在方便时决定何时阻拦并转发包。 |
| 可靠性 | TCP 必须恢复受破坏、丢失、复制或经因特网传送而无序的数据。 TCP 获得该可靠性是通过为它传输的每个八位元分配一个序列号并需要来自于接收 TCP 的肯定确认 (ACK)。 如果 ACK 在超时时间间隔内没有接收到,该数据就会重传。 TCP 重传的超时值是为每个连接动态确定的,这基于往返路程时间。 在接收方,序列号用于正确对段(可能是无序接收的)排序和删除副本。 通过以下方式处理损坏:为每个传输段添加一个校验和,在接收方检验该校验和并废弃已受损的段。 |
| flow control(流量控制) | 在成功接收到最后的段之后,TCP 通过返回视窗每个 ACK 来表示可接受的序列号的范围,从而管理数据的数量。 该视窗表示了一个允许的八位元数字,该数字可能在接收到进一步的许可之前由发送方发出。 |
| multiplexing(多路复用) | TCP 允许单一主机中的多个进程同时使用 TCP 通信设施。 TCP 接收每一台主机中的端口地址集。 TCP 将网络地址和主机地址与端口号相组合,以唯一地标识每个套接字。 一对套接字唯一地标识每个连接。 |
| 连接 | TCP 必须为每个数据流初始化并保持一定的状态信息。 该信息的结合,包括套接字、序列号和视窗大小,称作连接。 每个连接由一对套接字(标识它的两边)唯一的指定。 |
| 优先权和安全性 | TCP 用户可能要显示他们的通信的安全性和优先权。 当这些功能不需要时就使用缺省值。 |
TCP 包头图说明了它们的特性。
