滑动窗口、超时重传、选择确认SACK
滑动窗口
滑动窗口:发送窗口、接收窗口。
发送窗口内的数据都可以发送,在收到新的确认请求后可变化后沿。发送窗口里存在2部分数据:已经发送到没有接受到确认,允许发送但尚未发送。发送方根据接收到的窗口大小、确认序号来确认窗口的大小。
接收窗口,是接受端的,接受的数据不一定按序到达,接收必须收到从窗口第一个字节连续的数据后才能发送确认信息。
可以通过设置滑动窗口大小来进行流量控制。
可靠性传输
TCP通过超时重传来实现可靠传输。当一个已经发送报文在超时时间内没有收到确认,那么就重传这个报文
关键在于超时时间RTO的选择
RTT:一个报文段从发送再到接收到确认所经过的时间称为往返时间,即RTT。
RTTs:加权往返时间
RTTs = (1-a)(RTTs)+aRTT
a选择0.125
RTO=RTTs+4 * RTTd
RTTd为RTT偏差的加权平均值,与RTTs和新的RTT样本有关
重传后,收到的确认信号,不知道是第一次发的还是第二次的的的确认怎么办?
重传的不考虑进去,计算rto时。
选择确认SACK
确认不连续到到达的数据,减少重传的数据量
拥塞控制
通过控制发送的发送速率,降低网络的拥塞程度。
发送方维护一个叫拥塞窗口(cwnd)的状态变量。
慢开始和拥塞避免
慢开始是值,发送的最初阶段速度很慢
网友评论