TCP滑动窗口的理解

TCP滑动窗口主要用于控制流量,避免发送端过多的发送数据而导致接收端超过了可承载的能力(超负载

下面用一个例子解释滑动窗口:

假设现在有1~9这一组数据,被分成1~3,4~6,7~9三个部分发送,

此时发送端滑动窗口的范围为1~9,接收端可接收的数据为2组

接收端只接收到1~3,4~6,那么接收端就会返回ack=7,以及当前可接收的数据为1组

发送端收到ack=7时,便会认为1~6已经发送成功,

此时滑动窗口向右滑到7的位置,范围为7~9,

发送端滑动窗口的大小根据接收端可接收的大小而变化,

此时发送端继续发送7~9,接收端接收到7~9,返回ack=10,当前可接收数据为0组,

此时就是到了零窗口状态,说明接收端已经接收到所有数据或接收端保存到缓冲区,但此时应用程序还未接收信息,所以缓冲区为满

发送端接收到接收端的零窗口状态,就不再发送消息,直至接收端发送可接收数据的大小大于0,发送端才重新开始发送数据

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 20.1 引言 在第15章我们看到TFTP使用了停止等待协议。数据发送方在发送下一个数据块之前需要等待接收对已发送...
    张芳涛阅读 4,383评论 0 2
  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 14,501评论 6 174
  • 套接字选项SO_RESUEADDR 即使端口处于2MSL状态,使用该选项,仍然能够在该端口建立连接。服务器常会设置...
    Myth52125阅读 5,317评论 0 0
  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 10,505评论 0 8
  • 星光暖暖阅读 1,166评论 0 0

友情链接更多精彩内容