tcp 慢启动和拥塞避免的个人理解及对其他同学学习成果的总结

不同阶段的数据发送速度曲线

慢启动阶段cwnd指数变化,曲线对应y=2的x次方(x代表发送方发送次数)

拥塞避免阶段cwnd线性变化,曲线对应y=2的ssthresh次方+x,(x代表拥塞阶段的发送次数)

超时未确认时

慢启动阶段的超时未确认 ssthresh=cwnd/2,cwnd=1,进入慢启动,此时慢开始门限ssthresh的值降低为cwnd的一半,是一个小于8的值

拥塞避免阶段的超时未确认 ssthresh=cwnd/2,cwnd=1,进入慢启动,此时慢开始门限ssthresh的值降低为cwnd的一半,是一个大于8的值,猜测应该是小于16的值

重复确认时

慢启动阶段的重复确认3次及以上 ssthresh=cwnd/2,cwnd/=2,相当于直接从慢启动转向拥塞避免的曲线上,同时唤起快重传、快恢复、拥塞避免算法,此后执行拥塞避免算法,cwnd++

拥塞避免阶段的重复确认3次及以上 ssthresh=cwnd/2,cwnd/=2 ,相当于直接从慢启动转向拥塞避免的曲线上,同时唤起快重传、快恢复、拥塞避免算法,执行拥塞避免算法,cwnd++

各种算法机制的解释

超时算法:超时后,隔一定时间后进行重传(具体重传时间间隔待定)

快重传算法:丢包时唤起

快恢复算法:丢包时唤起,防止继续丢包,通过调整当前阶段变化为拥塞避免阶段和cwnd值减小一半来实现
在这里插入图片描述
以下来自CSDN的deoxyribonucleicacid:
原文链接:https://blog.csdn.net/qq_39937902/article/details/82495527
TCP选项:
MSS(maximum segment size)最大报文传输段(数据报不分片的最大值):32bit数据部分字段(不包括TCP头).
应用层往TCP层写数据时,若TCP发送缓冲区满,但还没write完,内核便将write系统调用挂起;TCP发送缓冲区满或网络空闲时,缓冲区数据便被通过ip层发送到链路层发送队列中;发送缓冲区数据成功发送(包括重传等情况)后,才唤醒write.而ip分片会导致TCP重传可能性增大,此时ip层再分片,将可能导致write一直挂起,性能下降.

SACK(selective acknowledgements)选择确认选项.34bytes
目的是为了不重传已经正确到达的数据.eg:A发送1,2,3,4,5数据,B接收到1,3,5,而2,4丢失.不启动SACK,A从2开始重传;启动SACK,A只重传2,4.
tcp首部options最多40bytes,而指明一个序列号边界需4bytes,一个报文需要2个边界:如2丢失,需要1,3序列号指明.故需要8bytes.因此最多指明4个丢失报文.(因为还需要2个功能字节,故40/8-1=4).这个选项大小是34bytes.

时间戳选项(timestamps).10bytes.
1,用来计算往返时间RTT.发送方在放松报文前放入当前时间,接收方只需在应答时复制该时间戳即可,以便发送方计算RTT.
2,PAWS防止回绕的序号:众所周知,32bit序列号在数据超过2^32便会重复.在高速网络(如1Gb/s),则几秒便会重复,从而可能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值