【后端面试重点总结】计算机网络篇(二)

本文详细解释了TCP中的滑动窗口原理,包括发送方如何根据接收方窗口调整发送量,以及拥塞控制策略如慢启动、拥塞避免、快重传和快恢复的过程。
摘要由CSDN通过智能技术生成

一、TCP滑动窗口(参考小林coding (xiaolincoding.com)

①原因: TCP 是每发送一个数据,都要进行一次确认应答,这样的传输方式有一个缺点:数据包的往返时间越长,通信的效率就越低。为解决这个问题,TCP 引入了窗口这个概念。有了窗口,就可以指定窗口大小,窗口大小就是指无需等待确认应答,而可以继续发送数据的最大值

②实现:TCP 头里有一个字段叫 Window,也就是窗口大小。这个字段是接收端告诉发送端自己还有多少缓冲区可以接收数据。于是发送端就可以根据这个接收端的处理能力来发送数据,而不会导致接收端处理不过来。

发送方窗口:

  • #1 是已发送并收到 ACK确认的数据:1~31 字节
  • #2 是已发送但未收到 ACK确认的数据:32~45 字节
  • #3 是未发送但总大小在接收方处理范围内(接收方还有空间):46~51字节
  • #4 是未发送但总大小超过接收方处理范围(接收方没有空间):52字节以后

右边窗口向右滑动:发送方把未发送但总大小在接收方处理范围内的数据发送后,可用窗口为0,在未收到ACK之前是无法继续发送数据了。

整体向右滑动:在收到32-36的应答后,如果发送窗口没有变化,那么窗口整体向右移动五个字节,因为有5个字节被接受,所以可发送的字节多了五个。

接收方的滑动窗口:

  • #1 + #2 是已成功接收并确认的数据(等待应用进程读取);
  • #3 是未收到数据但可以接收的数据;
  • #4 未收到数据并不可以接收的数据;

二、TCP拥塞控制(参考湖科大计算机网络微课堂(有字幕无背景音乐版)_哔哩哔哩_bilibili

①慢启动:发送方维护一个拥塞窗口(cwnd)的变量,在网络没有出现拥塞时,窗口大小成指数增长,直到达到慢开始门限(sstresh),达到慢开始门限后进入拥塞避免算法。

②拥塞避免:将原本的拥塞窗口(cwnd)指数增长改为线性增长,网络慢慢会进入拥塞状态,出现丢包现象就是拥塞发生,需要对丢失数据进行重传。重传计时器超时时,判断网络可能出现了拥塞,将门限降为窗口的一半,降窗口降低为1,重新开始慢开始算法。

③快重传:要求发送方尽快进行重传而不等待超时重传计时器,让接受方立即发送确认,发送方连续收到三个连续的重复确认,就将响应的报文段立即重传。

④快恢复:发送方收到三个重复确认,知道网络并没有发生拥塞,只是个别报文丢失,启动快恢复。发送方将门限和拥塞窗口都将为当前拥塞窗口大小的一半,然后执行拥塞避免。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值