5.6.2 超时重传时间的选择
TCP采用了一种自适应算法,记录一个报文发出的时间和收到相应确认的时间,得到RTT,加权平均得到RTTs:
超时重传时间RTO:
注:RTTD是RTT的偏差加权平均值
5.6.3 选择确认SACK
增加SACK选项和边界信息
SACK文档指明发送方怎么响应SACK,因此大多数的实现还是重传所有未被确认的数据块
5.7 TCP的流量控制
利用滑动窗口实现流量控制 控制TCP报文的发送时机:
1、 MSS,只要缓存中存放的数据达到MSS字节就组成一个报文段发送出去 2、 应用进程指明要求发送报文段,推送操作 3、 计时器期限,定时发送
5.8 TCP的拥塞控制
拥塞控制是一个全局性的控制过程,流量控制往往指点对点通信量的控制
开环控制:在设计网络时事先将有关发生拥塞的因素考虑周到,力求不拥塞,整个系统一旦运行,就不在中途更改。 闭环控制:
5.8.2 几种拥塞控制的方法
1、慢开始和拥塞避免 拥塞窗口由小增大,采用慢开始算法:
慢开始门限ssthresh
3、快重传
接收端收到分组立刻发送确认,发送端如果连续收到三个重复确认,不用等重传计时器过期
就直接重传
4、 快恢复
(1) 当发送方连续收到三个重复确认时,把慢开始门限ssthresh减半,这是为了预防网
络发生拥塞。接下来不执行慢开始算法。
(2) 将拥塞窗口cwnd设置为慢开始门限ssthresh减半以后的数值,而不是1,然后开始
执行拥塞避免算法。
快重传快恢复示意图:
发送方窗口上限值=Min(rwnd,cwnd)
5.8.3 随机早期检测RED
路由器的队列已满时,丢弃后面到达的分组,这叫做尾部丢弃策略,这可能导致全局同步 为了避免全局同步,采用RED
RED使路由器的队列维持两个参数,即队列长度最小门限THmin和最大门限Thmax,具体算法:
概率p的变化规律:
5.9 TCP运输连接管理
TCP连接三个阶段:连接建立、数据传输、连接释放 TCP连接的建立采用客户服务器方式
5.9.1 TCP的连接建立
注:为什么A还要发送一次确认呢?这主要是为了防止已失效的连接请求报文段突然又传送到了B,因而产生错误。
5.9.2 TCP的连接释放
除了时间等待计时器之外,TCP还设有一个保活计时器