《TCP/IP详解-协议》(24)TCP的未来和性能

路径MTU发现

如果一个IP数据报被设置DF位,而其长度又超过了MTU,路由将返回“ICMP不可达”差错

被TCP发送的IP数据报都将被设置DF位,如果收到这个ICMP差错,TCP就减少段大小并重传

当由这个差错引起重传时,拥塞窗口不变,但需要进入慢启动

由于路由可以动态变化,因此最后一次减少MTU后,隔一段时间可以尝试较大的值(RFC推荐10分钟)

长肥管道

管道可被水平拉长(一个长的RTT),也可以被垂直拉高(较高的带宽),或者两个方向同时拉伸,结果导致宽带时延乘积(管道容量)变大;

长肥管道会遇到一些问题:

  • 需要更大的窗口保证吞吐量;TCP首部窗口大小为16位(64K),使用窗口扩大选项可以增大窗口;
  • RTT测量频率相对降低(窗口增大导致每个ACK对应的分组增多);时间间戳选项可解决
  • 32位(4G)序号回绕导致的重传包和正常包序号碰撞;利用时间间戳选项可解决

窗口扩大选项

移位数取值为0~14,新窗口为原窗口大小移位后的值;

窗口扩大选项只能出现在SYN报文中,连接建立后,每个方向的扩大因子固定(但取值可以不同)



时间戳选项

发送方在每个报文中放置时间戳值,接收方在ACK中返回该值,因为接收方的时间戳值单调递增,计算差值即可,不需双方时钟同步;

因为一个ACK对应多个报文,当窗口增大时对应的分组增多,RTT相对采样速率降低,对拥塞反应速度也就降低

一个ACK既然对应多个分组,那么到应该底返回哪个分组的时间戳?(原则:RTT估计过高比估计过低要好)

  • 接收顺序:1、2
  • ACK顺序:2(1的时间戳)

  • 接收顺序:1、3、4、5、2
  • ACK顺序:1、1、1、1、5(2的时间戳)

PAWS

按照上图所示,如果B丢失后重发,并在E后、F之前到达,这是序号发生回绕,B会取代F被接收造成错误;
解决办法就是通过收到分组的时间戳,因为时间戳是递增的,所以B的时间戳小于E,不被接收;

TCP性能

不能比最慢的链路运行的更快
不能比最慢的机器的内存运行的更快
TCP速度的理论值受限于TCP的窗口大小和光速,实际性能受具体实现的缺陷的影响,而非协议本身

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值