最后更新:2022-07-20 22:41:55 手机定位技术交流文章
滑动窗口(Sliding window)是一种流量控制技术。在早期的网络通信中,通信双方没有考虑网络的拥塞直接发送数据,因为没有人知道网络的拥塞情况,同时传输数据,导致中间节点堵塞数据包,所以没有人能够发送数据,因此有一个滑窗机制来解决这个问题。滑窗协议是一种用于提高吞吐量的技术,允许发送者在收到任何响应之前发送额外的包。 接收者告诉发送者在指定的时间(称为窗口大小)可以发送多少包。
TCP 中采用滑动窗口来进行传输控制,滑动窗口的大小意味着接收方还有多大的缓冲区可以用于 接收数据。发送方可以通过滑动窗口的大小来确定应该发送多少字节的数据。当滑动窗口为 0 在这种情况下,发送者不能再发送数据消息。滑动窗口是一个在TCP中实现的载荷结构,例如ACK确认、流量控制和拥挤控制。
说明:
1.这个窗口可以理解为缓冲区的大小;
随发送和接收数据而改变滑动窗口的大小;
3.双方通信都有发送缓冲区和接收缓冲区;
服务器:
发送缓冲器(发送缓冲器窗口)
接收缓冲区(接收缓冲窗口本身)
客户端:
发送缓冲器(发送缓冲器窗口)
接收缓冲区(接收缓冲窗口本身)

1、发送缓冲区
白色网格:空空间;
灰色网格:数据已自行发送,但尚未收到;
紫网格:尚未发送的数据;
2、接收缓冲区
白色网格:空空间;
紫网格:尚未发送的数据;

# 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是通信势;第一手和第二手不能携带通信数据,因为连接尚未建立,第三手可以携带通信数据;


本文由 在线网速测试 整理编辑,转载请注明出处。