TCP的滑动窗口,流量控制和拥塞控制,快重传和快恢复,超时重传

本文详细介绍了TCP协议中的滑动窗口协议、流量控制和拥塞控制策略。滑动窗口用于确定发送者可以发送的数据范围,而流量控制通过接收方的反馈限制发送速率。拥塞控制包括慢启动、拥塞避免、快重传和快恢复算法,旨在防止网络过载。快重传允许接收方提前请求丢失的数据包,快恢复则在检测到拥塞时快速调整发送策略。超时重传和确认重传机制确保了数据的可靠性。关键词涵盖了TCP协议的关键概念和技术。
摘要由CSDN通过智能技术生成

TCP协议作为一个可靠的面向流的传输协议,其可靠性和流量控制由滑动窗口协议保证,而拥塞控制则由控制窗口结合一系列的控制算法实现。

滑动窗口协议:1. “窗口”对应的是一段可以被发送者发送的字节序列,其连续的范围称之为“窗口”;2. “滑动”则是指这段“允许发送的范围”是可以随着发送的过程而变化的,方式就是按顺序“滑动”。

流量控制,主要是接收方传递信息给发送方,使其不要发送数据太快,是一种端到端的控制。主要的方式就是返回的ACK中会包含自己的接收窗口的大小,并且利用大小来控制发送方的数据发送。通俗来说就是发送方的发送窗口不能超过接收方给出的接收窗口的数值。

拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。常用的方法主要有以下四种:
1). 慢启动:不要一开始就发送大量的数据,先探测一下网络的拥塞程度,也就是说由小到大逐渐增加拥塞窗口的大小;直到发生超时重传,再利用拥塞避免算法和慢启动门限进行一次微调。

2). 拥塞避免:拥塞避免算法让拥塞窗口缓慢增长,即每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,而不是加倍,这样拥塞窗口按线性规律缓慢增长。当出现网络拥塞,比如丢包时,将慢开始门限设为原先的一半,然后将cwnd设为1,执行慢启动算法(较低的起点,指数级增长);

慢启动门限就是说,当拥塞窗口超过门限时,就使用拥塞避免算法,而在门限以内就采用慢启动算法。通常拥塞窗口记做cwnd,慢启动门限记做ssthresh。
在这里插入图片描述

慢开始和拥塞控制算法常常作为一个整体使用,而快重传和快恢复则是为了减少因为拥塞导致的数据包丢失带来的重传时间,从而避免传递无用的数据到网络。
3). 快重传:
  1.接收方如果发现一个包丢失,则对后续的包继续发送针对该包的重传请求(为的是使发送方及早知道有报文段没有到达对方);
  2. 一旦发送方接收到三个一样的确认,就知道该包之后出现了错误,立刻重传该包,而不必继续等待设置的重传计时器时间到期。;
  3. 此时发送方开始执行“快恢复”算法:

在这里插入图片描述
4). 快恢复:快重传配合使用的还有快恢复算法,当发送方连续收到三个重复确认时,就执行“乘法减小”算法,把ssthresh门限减半,但是接下去并不执行慢开始算法:因为如果网络出现拥塞的话就不会收到好几个重复的确认,所以发送方现在认为网络可能没有出现拥塞。所以此时不执行慢开始算法,而是将cwnd设置为ssthresh的大小,然后执行拥塞避免算法。
在这里插入图片描述

超时重传是TCP协议保证数据可靠性的另一个重要机制,其原理是在发送某一个数据以后就开启一个计时器,在一定时间内如果没有得到发送的数据报的ACK报文,那么就重新发送数据,直到发送成功为止。

最基本的传输可靠性来源于“确认重传”机制。
TCP的滑动窗口的可靠性也是建立在“确认重传”基础上的。
发送窗口只有收到对端对于本段发送窗口内字节的ACK确认,才会移动发送窗口的左边界。
接收窗口只有在前面所有的段都确认的情况下才会移动左边界。当在前面还有字节未接收但收到后面字节的情况下,窗口不会移动,并不对后续字节确认。以此确保对端会对这些数据重传。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值