声明:
本文为《TCP/IP详解 卷1:协议》学习笔记,原书更为详细,本文仅作学习交流使用。
17.2 TCP的服务
TCP提供一组面向连接的、可靠的字节流服务。 TCP对字节流的内容不作任何解释。对字节流的解释由TCP连接双方的应用层解释。 TCP的可靠性保证:
17.3 TCP的首部
TCP数据被封装在一个IP数据报中。
TCP首部通常是20字节。
IP首部的源端IP地址和目的端IP地址,以及TCP首部的源端口号和目的端端口号唯一确定一个TCP连接。
一个IP地址和一个端口号也称为一个插口(socket)。
插口对(socket pair)(包含客户IP地址、客户端口号、服务器IP地址和服务器端口号的四元祖)可唯一确定互联网络中的每个TCP连接的双方。
确认序号应当是上次已成功收到数据字节序号加1。
TCP为应用层提供全双工服务。
TCP首部中的6个标志比特:
| 标志位 | 意义 |
| --- | --- |
| URG | 紧急指针 |
| ACK | 确认序号有效 |
| PSH | 接收方应该尽快将这个报文段交给应用层 |
| PST | 重建连接 |
| SYN | 同步序号用来发送一个连接 |
| FIN | 发端完成发送任务 |
TCP的流量控制由连接的每一端通过声明的窗口来提供。
检验和覆盖了整个的TCP报文段:TCP首部和TCP数据。这是一个强制性的字段,一定是由发端计算和存储,并由收端进行验证。
最常见的可选字段是最长报文大小,又称为MSS(Maximum Segment Size)。
17.4 小结
TCP提供了一种可靠的面向连接的字节流运输层服务。 TCP将用户数据打包构成报文段;它发送数据后启动一个定时器;另一端对收到的数据进行确认,对失序的数据重新排序,丢弃重复数据;TCP提供端到端的流量控制,并计算和验证一个强制性的端到端校验和。