TCP 滑动窗口详解(非常实用)

      最后更新:2022-07-20 22:41:55 手机定位技术交流文章

      一、滑动窗口简介

      滑动窗口(Sliding window)是一种流量控制技术。在早期的网络通信中,通信双方没有考虑网络的拥塞直接发送数据,因为没有人知道网络的拥塞情况,同时传输数据,导致中间节点堵塞数据包,所以没有人能够发送数据,因此有一个滑窗机制来解决这个问题。滑窗协议是一种用于提高吞吐量的技术,允许发送者在收到任何响应之前发送额外的包。 接收者告诉发送者在指定的时间(称为窗口大小)可以发送多少包。

      TCP 中采用滑动窗口来进行传输控制,滑动窗口的大小意味着接收方还有多大的缓冲区可以用于 接收数据。发送方可以通过滑动窗口的大小来确定应该发送多少字节的数据。当滑动窗口为 0 在这种情况下,发送者不能再发送数据消息。滑动窗口是一个在TCP中实现的载荷结构,例如ACK确认、流量控制和拥挤控制。

      说明:

      1.这个窗口可以理解为缓冲区的大小;

      随发送和接收数据而改变滑动窗口的大小;

      3.双方通信都有发送缓冲区和接收缓冲区;

      服务器:

      发送缓冲器(发送缓冲器窗口)
      接收缓冲区(接收缓冲窗口本身)

      客户端:
      发送缓冲器(发送缓冲器窗口)
      接收缓冲区(接收缓冲窗口本身)

      图2说明滑动窗口

      1、发送缓冲区

      白色网格:空空间;

      灰色网格:数据已自行发送,但尚未收到;

      紫网格:尚未发送的数据;

      2、接收缓冲区

      白色网格:空空间;

      紫网格:尚未发送的数据;

      3.滑动窗口的工作流程

      # mss:Maximum segment size(一条数据的最大的数据量)

      #胜利:滑动窗口

      1,客户端启动连接到服务器,客户端的滑动窗口为4096,发送的最大数据量为1460(第一次摇动);

      2、服务器接收连接情况,告诉客户端服务器的窗口大小是6144,一次发送的最大数据量是                 10243(第二次握手);

      3、第三次握手;

      4,4-9客户连续向服务器发送6k数据,每次发送1k;

      5、第10次,服务器告诉客户端:发送的6k数据以及接收到,存储在缓冲区中,缓冲区数据已经处       理了 2k,窗口大小是 2k;

      6、第11次,服务器告诉客户端:发送的 6k 数据以及接收到,存储在缓冲区中,缓冲区数据已经         处理了 4k,窗口大小是 4k;

      第12次,客户向服务器发送1k数据;

      13日,客户主动要求服务器切断连接并向服务器发送1k数据

      9、第14次,服务器回复ACK 8194,a:同意断开连接的请求 b:告诉客户端已经接受到方才发的2k       的数据 c:滑动窗口2k;

      第10、第15、第16,通知客户滑窗尺寸;

      17日,服务器端的第三波发送Fin给请求切断连接的客户端;

      在第18次,第4次恢复中,主机同意服务器端的切断请求。

      注:1-3是三手势,4-9是通信势;第一手和第二手不能携带通信数据,因为连接尚未建立,第三手可以携带通信数据;

      4.TCP通信图形

      1、三次握手

      2、四次挥手

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/30189.html

          热门文章

          文章分类