美文网首页知识点
TCP滑动窗口的理解

TCP滑动窗口的理解

作者: 凉拌姨妈好吃 | 来源:发表于2018-03-26 17:03 被阅读0次

    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,发送端才重新开始发送数据

    相关文章

      网友评论

        本文标题:TCP滑动窗口的理解

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