轉自:http://blog.csdn.net/ggxxkkll/article/details/7894112
大家都知道,TCP提供了最可靠的數據傳輸,它給發送的每個數據包做順序化(這看起來非常煩瑣),然而,如果TCP沒有這樣煩瑣的操作,那么,可能會造成更多的麻煩。
如造成數據包的重傳、順序的顛倒甚至造成數據包的丟失。
那么,TCP具體是通過怎樣的方式來保證數據的順序化傳輸呢?
1. 主機每次發送數據時,TCP就給每個數據包分配一個序列號並且在一個特定的時間內等待接收主機對分配的這個序列號進行確認,
2. 如果發送主機在一個特定時間內沒有收到接收主機的確認,則發送主機會重傳此數據包。
3. 接收主機利用序列號對接收的數據進行確認,以便檢測對方發送的數據是否有丟失或者亂序等,
4. 接收主機一旦收到已經順序化的數據,它就將這些數據按正確的順序重組成數據流並傳遞到高層進行處理。
具體步驟如下: