轉載:http://blog.sina.com.cn/s/blog_5ec353710101g5a7.html
- 首先是AB之間三次握手建立TCP連接。在報文的交互過程中,A將自己的緩衝區大小(窗口大小)3發送給B,B同理,這樣雙方就知道了對端的窗口大小。
- A開始發送數據,A連續發送3個單位的數據,因爲他知道B的緩衝區大小。在這一波數據發送完後,A就不能再發了,需等待B的確認。
- A發送過來的數據逐漸將緩衝區填滿。
-
這時候緩衝區中的一個報文被進程讀取,緩衝區有了一個空位,於是B向A發送一個ACK,這個報文中指示窗口大小爲1。
A收到B發過來的ACK消息,並且知道B將窗口大小調整爲1,因此他只發送了一個單位的數據並且等待B的下一個確認報文。 - 如此反覆。