精通TCP/IP协议的请进
Tiro 2003-05-08 05:02:19 我设计了一个TCP/IP协议栈,在实现TCP协议中发现一个问题,当我的设备使用一条低速链路的时候,如果网络速率出现振荡导致丢包,进而触发快速重传和快速恢复,我是按照Jacobson 1990b修改方案实现的,由于快速恢复方案将cwnd开的较大(至少3个MSS),丢失的数据包被迅速重新发送,这样导致网络带宽被大量的重发包占据,使得链路再次拥塞,再次进入触发快速重传和快速恢复,网络就在这个状态稳定下来,链路上大量的重发包(cwnd稳定在6个MSS左右, ssthresh在3个MSS左右)。
我想了解:
1.怎样避免以上问题
2.是不是快速重传再为收到有效ACK时,不发送新的数据,这样可能避免以上问题,但是会不会降低效率,失去快速恢复的目的
3.快速恢复重发包是重发三次ACK后紧接的数据包,还是重新发送所有的(窗口允许发送的数据),如果只发送紧接的数据包,对方有没有可能不缓存后续未确认的数据,这样会使得恢复过程非常缓慢