赞
踩
蒋yj老师yyds!
答案自制,仅供参考,欢迎质疑讨论
ACK Clock
确认时钟
:通过使用一个确认时钟, TCP平滑输出流量和避免不必要的路由器队列。Slow Start
慢启动
:每个RTT内发送的数据包数目指数增长,使用确认时钟将发送端的传输速率与网络路径相匹配Add Increase
:当slow start后超过了slow start threshold, TCP 就从慢速启动切换到线性增加,每个RTT内,收一ACK发出一包,最后一个ACK连发两包。Muilt Decrease
: 当收到三个重复ACK后,cwin减半(快恢复)Fast retransmission
:当收到三个重复ACK后,门限减半,慢启动Fast recovery
:门限减半,cwin减半(具体做法:确认时钟)Tahoe用的fast retransmission
Reno用的fast recovery
SACK (Selective ACKnowledgement)
选择确认
:该确认列出了3个己接收的字节范围。有了这个信息,发送端在实现拥塞窗口时可以更直接地确定哪些数据包需要重传,并跟踪那些还在途中的数据包。NACK
``:《计算机网络(第5版)》 Tanenbaum & Wetherall 著 严伟 潘爱民 译 Page 456
注意是超时定时器
几个公式,由Jacobson贡献,第三个式子的系数4是 J 大佬认定的,没有为什么
S R T T = α S R T T 旧 + ( 1 − α ) R T T 本次 SRTT = \alpha SRTT_旧 + (1-\alpha) RTT_{本次} SRTT=αSRTT旧+(1−α)RTT本次
R T T V A R = β R T T V A R 旧 + ( 1 − β ) ∣ S R T T − R T T 本次 ∣ RTTVAR = \beta RTTVAR_旧 + (1-\beta)|SRTT-RTT_{本次}| RTTVAR=βRTTVAR旧+(1−β)∣SRTT−RTT本次∣
R T O = S R T T + 4 × R T T V A R RTO = SRTT + 4 × RTTVAR RTO=SRTT+4×RTTVAR
如果随后收方缓冲区空闲,收方如何通知
如果这个通知丢失,会导致发方长久等待吗
TCP对此主要有两个设计来避免死锁:
发送端可以发送1字节的段,以便强制接收端重新宣告下一个期望的字节和窗口大小。这种
数据包称为窗口探测(window probe )。
持续计时器(persistence timer )的设计。当持续计时器超时后,发送端给接收端发送一个探询消息。接收端对探询消息的响应是将窗口大小告诉发送端。如果它仍然为0 ,则重置持续计时器,并开始下一轮循环。如果它非0 ,则现在可以发送数据了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。