发送方的缓冲区:
白色格子:空闲的空间
灰色格子:数据已经被发送出去了,但是还没有被接收
紫色格子:还没有发送出去的数据
接收方的缓冲区:
白色格子:空闲的空间
紫色格子:已经接收到的数据
#mss:Maximum Segment size(一条数据的最大的数据量)
#win:滑动窗口
1.客户端向服务器发起连接,客户单的滑动窗口是4096,一次发送的最大数据量是1460
2.服务器接收连接情况,告诉客户端服务器的窗口大小是6144,一次发送的最大数据量是1024
3.第三次握手
4.4-9客户端连续给服务器发送了6k的数据,每次发送1k
5.第10次,服务器告诉客户端:发送的6k数据以及接收到,存储在缓冲区中,缓冲区数据已经处理了2k,窗口大小是2k
6.第11次,服务器告诉客户端:发送的6k数据以及接收到,存储在缓冲区中,缓冲区数据已经处理了2I窗口大小是2k
7.第12次,客户端给服务器发送了1k的数据
8,第13次,(第一次挥手)客户端主动请求和服务器断开连接,并且给服务器发送了1k的数据
9.第14次,(第二次挥手)服务器回复ACK8194,a:同意断开连接的请求b:告诉客户端已经接受到方才发的2k的数据c:滑动窗口2k
10.第15、16次,通知客户端滑动窗口的大小N
11.第17次,第三次挥手,服务器端给客户端发选N,请求断开连接
12.第18次,第四次挥手,客户端同意了服务器端的断开请求
有关mss
的协商,它通常发生在TCP的连接建立阶段,其中的 SYN 报文中包含了 mss
选项,以告知对方自己的最大分段大小,从而对方可以根据这个值设置自己的最大分段大小。这有助于避免在通信过程中产生过大的分段,提高数据传输的效率。