5.RFC896-小包问题+源抑制问题

RFC-896协议

896协议主要描述了与TCP传输性能相关的短数据报(小包)、源抑制两个问题以及解决办法。

1.短数据报问题:

当链路情况较好,负载较小时,链路基本不会存拥塞、丢包问题;
当链路比较忙碌,负载较大,处于拥塞边缘时,此时若加入大量的短数据包,即只包含1个字节或少于TCP/IP协议头长度的报文时,会造成链路拥塞,致使中间路由交换节点缓存耗尽,导致丢包,会造成发送端重传大量报文,而重传的报文更加会加重链路的拥塞。

  • 为什么小包数据对链路影响较大?

本来链路就处于拥塞边缘,此时应该减小传输数据包个数,然而在执行telnet等交互性操作时,大量增加了数据包个数,并且这些交互性报文实际有效长度占比并不高;当TCP用来传输来自键盘的单字符信息时,结果为了传输一个字节的有用数据传输了41个字节的数据报(1个字节的数据,40个字节的头文件),造成冗余4000%。

  • 解决办法:
  • 方法一:发送报文前等待定时器t的时长,尽量在定时器超时前多到达几个报文,同时发送,提高利用率,然而定时器时间无法准确设置,并且随着带宽不同时长亦不同;
  • 方法二:数据不立即发送,而是等待对端传输过来一个确认报文,来改变当前连接的状态之后进行传输;改变连接状态的方式有:
    (1)通过确认报文确定上一个数据包已经成功接收;
    (2)通过确认报文获取接收端已经有足够缓存来接收数据(更新窗口);
    因此在每次传输前先检查连接状态,之后进行发送,可以最大的确保不引起丢包或重传;

2.源抑制-带ICMP的拥塞控制问题:

  • 什么是源抑制?

在检测到拥塞或者中间节点缓存不足时,发送ICMP报文来避免拥塞的方法,从而使发送端减少数据量发送的方法。

  1. 源抑制报文发送时间:当中间路由节点缓存不足、或丢包时,当前节点发送ICMP报文来通知发送端进行拥塞避免。
  2. 收到源抑制报文后操作:当ICMP一旦收到源抑制报文,通知上层协议进行处理。TCP是将当前窗口默认为0,停止数据处理,直到收到一定数量的ACK为止,表示接收端或中间路由节点已有足够缓存,可再次恢复数据发送。

由于源抑制不能禁止ACK和重传的发送,因此抑制确认信息往往产生重传和不必要的传输。抑制重传可能因重传超时而使连接丢失。

  • 解决办法:

保证在每种情况下,对新发送的数据量进行控制,但对于ACK则正常执行。从而保持连接keep Alive,但减小了带宽。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值