参考《深入理解计算机网络》
TCP 主要特征:
1.面向连接的传输协议:应用程序在使用TCP之前,必须先建立TCP传输连接。
2.仅支持单播传输: TCP传输连接只能有两个端点,这里的端点指套接字,也就是IP地址和端口号的组合。不支持广播和组播。
3.提供可靠的交付服务:TCP传输可以无差错,不丢失,不重复,且按时序到达对端。
4.传输单位为数据段:数据段大小受应用层传送的报文大小和所途经网络中的MTU值决定。MSS:最大数据段大小,最小数据段可能仅有21字节,其中20字节头部,1字节数据。
5.仅一种TPDU格式:主要是与传输层协议对比。
6.支持全双工传输:允许通讯双方的应用程序在任何时候都能发送数据。
7.TCP连接是基于字节流,而非报文流:也就是说TCP发送的数据是无界限的,因而在接收的时候需要根据长度来确认数据接收完成。
8.每次发送的TCP数据段大小和数据段数都是可变的:需要根据对方给出的窗口大小和当前网络的拥塞程度来决定。【相关详细内容可以参考 TCP - 流量控制,TCP - 拥塞控制】
数据段大小的两个决定因素:
1.每个TCP数据段的大小必须符合IP数据包的65515字节的有效载荷大小限制要求。
2.每个网络都有一个MTU值,因此每个TCP数据段必须符合MTU限制要求。