一、路径MTU发现
TCP的路径MTU发现按如下方式进行:在连接建立时,TCP使用输出接口或对端声明的MSS中的最小MTU作为起始的报文段大小。路径MTU发现不允许TCP超过对端声明的MSS。如果对端没有指定一个MSS,则默认为536。
一旦选定了起始的报文段大小,在该连接上的所有被TCP发送的IP数据报都将被设置DF位。如果中间路由器需要对一个设置了DF标志的数据报进行分片,它就丢弃这个数据报,并产生一个ICMP的“不能分片”差错。 如果收到这个ICMP差错,TCP就减少段大小并进行重传。如果路由器产生的是一个较新的该类ICMP差错,则报文段大小被设置为下一跳的MTU减去IP和TCP的首部长度。如果是一个较旧的该类ICMP差错,则必须尝试下一个可能的最小MTU。
在TCP的传输过程当中,分组并不一定是越大越好。
二、长肥管道
一个连接的容量=带宽X时延(RTT)。具有大的带宽时延乘积的网络称为长肥网络(LFN)。一个运行在LFN的TCP连接称为长肥管道。管道可以被水平拉长(一个长的RTT),或被垂直拉高(较高的带宽),或两个方向拉伸。
在速率较低的网络中,增加带宽可以将传输速率提高一个数量级以上,而在很高的传输速率下,如千兆比速率下,时延的限制占据了主要的地位,而带宽不再成为限制。
三、窗口扩大选项
窗口扩大选项使TCP的窗口定义从16位增加到32位,这并不是通过修改TCP首部来实现的,TCP首部仍然使用16位,而是通过定义一个选项实现对16位的扩大操作来完成的。此选项中的值作为2的指数值并乘以65535得到最后的窗口大小。
四、时间戳选项
时间戳选项使发送方在每个报文段中放置一个时间戳值。接收方在确认中返回这个数值,从而允许发送方为每一个收到的ACK计算RTT。
五、TCP的性能
实际中下面限制TCP性能适用于任何实际情况:
(1)不能比最慢的链路运行得更快;
(2)不能比最慢的机器的内存运行得更快;
(3)不能比由接收方提供的窗口大小除以往返时间所得结果运行得更快(这就是带宽时延乘积公式,使用窗口大小作为带宽时延乘积,并解出带宽)。
六、其他
T/TCP:为事物用的TCP扩展,其主要改动在于避免了TCP的三次握手并缩短了TIME_WAIT状态的时间,且是向下兼容的。
VMTP:通用报文事物协议,这是一个使用IP的完整的传输层,它处理差错检测、重传和重复压缩,还支持多播通信。