【网络】TCP的滑动窗口以及包丢失的重传问题

本文介绍了TCP的滑动窗口机制,用于提高网络传输效率,以及在数据包丢失时如何处理的两种情况:ACK丢失和数据包直接丢失。通过滑动窗口,即使部分ACK丢失,仍能避免不必要的重传;对于数据包直接丢失,TCP采用高速重发机制,当连续收到三次错误序号的ACK时才重传数据包。
摘要由CSDN通过智能技术生成

滑动窗口

在TCP的确认应答策略中,对每一个发送的数据段,都要给一个ACK确认应答,收到ACK之后再发送下一个数据段,这样做的缺点就是性能较差,在等待确认应答包环节浪费环节。于一发一收的方式性能较低,那么可以一次发送多条数据,就可以大大提高性能(将多个端的等待时间重叠到一起)。

如下图(窗口大小为4,数据的传输过程):

 

  • 窗口大小指的是无需等待确认应答而可以继续发送数据的最大值,上图的窗口大小就是4000个字节(4个段);
  • 发送前四个端的时候,不需要等待任何ACK,直接发送;
  • 收到第一个ACK之后,滑动窗口向后移动,继续发送第五个段的数据,以此类推;
  • 操作系统内核为了维护这个滑动窗口,需要开辟发送缓冲区来记录当前还有哪些数据没有应答,只有确认应答的数据,才能从缓冲区删掉;
  • 窗口越大,则网络的吞吐率就越高;

窗口大小在实际应用中,可以分为两部分。第一部分表示数据包已经发送,但未得到确认应答包;第二部分表示允许发送,但未发送的数据包。在进行数据包发送时,当发送了最大数量的数据包(窗口大小数据包),有时不会同时收到这些数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值