TCP/IP之滑动窗口

作者: 我是莫非 | 来源:发表于2019-08-19 18:00 被阅读40次

前言

TCP在OSI七层模型中,属于第四层(传输层),帮我们处理了传输层的细节。包括限流、丢包、网络传输乱序等问题。那TCP到底是如何实现限流的呢?

如果你需要复习一下基础知识,请戳这里《TCP/IP基础十分钟入门》 ,博主比较懒,下周补上

接收端缓冲区被塞满

如果sender发送速度快,reciever处理速度慢。会发生什么事?

过一段时间,reciever的缓冲区被打满。

  • 当reciever缓冲区被打满后,通过ack(win=0)告诉sender不要给我发送数据了,我处理不了了。

  • sender就会停止发送数据。

  • 过一会,reciever处理数据后,缓冲区有了空闲空间。

  • 通过ack声明自己的窗口大小

  • sender继续发送数据

滑动窗口出场

浅谈TCP协议-blog-small.gif

通过动画我们可以直观的看到窗口向右滑动,所以叫做滑动窗口。

分解动作

滑动前

图一.001.jpeg

图示都包含哪些信息呢?我们分解来看。

  • 接收端的窗口大小为6

  • 窗口外,左侧为已经发送且已经收到ack,这部分数据可以丢弃了。

  • 12-14为已经发送,但未收到ack。(不能丢弃,有可能需要重发)

  • 15-17为未发送数据,由于未确认数据小于6,所以可以很快发送

  • 窗口外,右侧为未发送数据,但由于窗口已满,不能发送

滑动后

浅谈TCP协议-blog.001.jpeg
  • sender收到ack=12的确认包

  • 窗口向右滑动

  • 窗口内的数据改为13-18

总结

以上就是TCP/IP中的滑动窗口。

滑动窗口也是服务限流的一种算法。

其他

有些同学可能会问,如果首先收到ack=13的确认包,滑动窗口是什么样的呢?我们直接上图吧!

13.gif

相关文章

  • TCP/IP 协议(转)

    参考:TCP/IP 协议tcp窗口滑动以及拥塞控制解析TCP之滑动窗口(动画演示)

  • TCP/IP之滑动窗口

    前言 TCP在OSI七层模型中,属于第四层(传输层),帮我们处理了传输层的细节。包括限流、丢包、网络传输乱序等问题...

  • 网络管理2

    一、孤儿连接 二、TCP超时重传 1.固定窗口 2.滑动窗口 三、拥塞控制 四、SP和DP 帧 TCP和IP 五、...

  • TCP的超时重传与拥塞控制

    TCP滑动窗口技术通过动态改变窗口大小来调节两台主机间数据传输。每个TCP/IP主机支持全双工数据传输,因此TCP...

  • 【tcp/ip】TCP/IP 之 滑动窗口、Nagle算法和延迟

    滑动窗口 滑动窗口(Sliding window)是一种流量控制技术。早期的网络通信中,通信双方不会考虑网络的拥挤...

  • TCP的流量控制与拥塞控制机制

    参考:滑动窗口TCP的流量控制和拥塞控制 1 流量控制 利用滑动窗口机制实施流量控制 TCP协议里窗口机制有2种:...

  • TCP-滑动窗口原理

    1 TCP可靠传输的实现 1.1 以字节为单位的滑动窗口 TCP滑动窗口以字节为单位。如下图: 在网络传输中...

  • TCP滑动窗口

    TCP是以一个段为单位的,如果每次只发一个段进行一次确认应答处理的话,将会导致通信性能的下降,尤其是往返时间较长的...

  • TCP滑动窗口

    https://www.cnblogs.com/alifpga/p/7675850.htmlhttps://www...

  • TCP滑动窗口

    一、复习review 1.1 多进程和多线程的对比 多线程模型需要处理SIGPIPE信号,因为多次去写就会触发SI...

网友评论

    本文标题:TCP/IP之滑动窗口

    本文链接:https://www.haomeiwen.com/subject/dluesctx.html