模型圖:
我們可以大概看一下上圖的模型:
- 首先是AB之間三次握手建立TCP連接。在報文的交互過程中,A將自己的緩沖區大小(窗口大小)3發送給B,B同理,這樣雙方就知道了對端的窗口大小。
- A開始發送數據,A連續發送3個單位的數據,因為他知道B的緩沖區大小。在這一波數據發送完后,A就不能再發了,需等待B的確認。
- A發送過來的數據逐漸將緩沖區填滿。
- 這時候緩沖區中的一個報文被進程讀取,緩沖區有了一個空位,於是B向A發送一個ACK,這個報文中指示窗口大小為1。
A收到B發過來的ACK消息,並且知道B將窗口大小調整為1,因此他只發送了一個單位的數據並且等待B的下一個確認報文。 - 如此反復。