TCP協議以可靠性出名,這其中包括三次握手建立連接,流控制和擁塞控制等技術。詳細介紹如下:
1. TCP協議將需要發送的數據分割成數據塊。數據塊大小是通過MSS(maximum segment size)來控制的,這種機制是一種協商機制,MSS規定了傳往接收方的最大數據塊的大小。MSS通過SYN報文協商的,若接收方不接受來自另一方的MSS值,則MSS就定為一個固定值。MSS值越大,網絡的利用率越高。
2. 重傳。設置定時器,等待確認包。
3. 對首部和數據進行校驗。
4. TCP對收到的數據進行排序,然后交給應用層。
5. TCP的接收端丟棄重復的數據。
6. 流量控制。(通過每一端聲明的窗口大小來提供的)
發現了一個寫的很好的TCP協議詳解,鏈接如下:
我寫的這個系統基於UDP協議模擬了一個TCP協議,所實現的功能如下:
1.三次握手
2.一個計時器,用來判斷傳輸超時行為
3.快速重傳
4.能處理不同的MSS(maximum segment size)
5.沒有被接收方確認收到的包會被存在發送方,最大可以存MWS個(Maximum Window size)
6.能處理包丟失的情況
7.接收方一旦收到包,立刻發送確認信息給發送方
8.接收方的超時時間是固定的
9.接收方和發送方用log記錄發生的一切
詳情及代碼請看https://github.com/tian-jiang/TCP-Simulating
可以幫助很好的理解三次握手,快速重傳,接收方緩存,發送方緩存,滑動窗口移動的規則,MSS等TCP協議中的重要概念。