TCP發送的報文段是交給IP層傳送的,但IP層只能提供盡最大努力交付的服務,也就是說,TCP下面的網絡所提供的是不可靠的傳輸。因此,TCP採用了一些適當的措施來提供可靠的傳輸,使得兩個傳輸層直接的通信變得可靠。
----------工作原理--------------------------------------------------------------------------------------------------------------
一、可靠傳輸的要求
可靠的傳輸應該滿足下面兩個要求:
(1)傳輸的信道不產生差錯;
(2)保證傳輸數據的正確性,無差錯、不丟失、不重複、並且按序到達。
這裏有兩層意思,一是能夠正確地傳輸數據,二是接收方能夠及時處理髮送方發送的數據。
二、可靠傳輸的工作原理
TCP爲了提供可靠傳輸:
(1)首先,採用三次握手來建立TCP連接,四次握手來釋放TCP連接,從而保證建立的傳輸信道是可靠的。
(2)其次,TCP採用了連續ARQ協議(回退N,Go-back-N;超時自動重傳)來保證數據傳輸的正確性,使用滑動窗口協議來保證接方能夠及時處理所接收到的數據,進行流量控制。
(3)最後,TCP使用慢開始、擁塞避免、快重傳和快恢復來進行擁塞控制,避免網絡擁塞。
----------實現過程--------------------------------------------------------------------------------------------------------------
一、三次握手建立連接
詳見:TCP三次握手建立連接 http://blog.csdn.net/guoweimelon/article/details/50878730
二、四次握手釋放連接
詳見:TCP四次握手釋放連接 http://blog.csdn.net/guoweimelon/article/details/50879302
三、連續ARQ協議和滑動窗口協議
詳見:TCP連續ARQ協議和滑動窗口協議 http://blog.csdn.net/guoweimelon/article/details/50879588
四、擁塞控制
詳見:TCP的擁塞控制 http://blog.csdn.net/guoweimelon/article/details/50880109
參考資料:
1、TCP可靠傳輸&流量控制&擁塞控制 http://my.oschina.net/manmao/blog/601585
2、可靠傳輸的工作原理 https://xiaoxueying.gitbooks.io/computer-networks-5th-/content/ke_kao_chuan_shu_de_gong_zuo_yuan_li.html
3、計算機網絡【六】:傳輸層-TCP概述 http://blog.chinaunix.net/uid-26275986-id-4109209.html
4、TCP/IP(三) —— 可靠傳輸工作原理 http://pmghong.blog.51cto.com/3221425/1242470