求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

傳輸控制協議檢視原始碼討論檢視歷史

事實揭露 揭密真相
前往: 導覽搜尋

傳輸控制協議(TCP,Transmission Control Protocol)是一種面向連接的、可靠的、基於字節流的傳輸層通信協議,由IETF的RFC 793 定義。 TCP旨在適應支持多網絡應用的分層協議層次結構。 連接到不同但互連的計算機通信網絡的主計算機中的成對進程之間依靠TCP提供可靠的通信服務。TCP假設它可以從較低級別的協議獲得簡單的,可能不可靠的數據報服務。 原則上,TCP應該能夠在從硬線連接到分組交換或電路交換網絡的各種通信系統之上操作。[1]

[]

主要功能

當應用層向TCP層發送用於網間傳輸的、用8位字節表示的數據流,TCP則把數據流分割成適當長度的報文段,最大傳輸段大小(MSS)通常受該計算機連接的網絡的數據鏈路層的最大傳送單元(MTU)限制。之後TCP把數據包傳給IP層,由它來通過網絡將包傳送給接收端實體的TCP層。 TCP為了保證報文傳輸的可靠,就給每個包一個序號,同時序號也保證了傳送到接收端實體的包的按序接收。然後接收端實體對已成功收到的字節發回一個相應的確認(ACK);如果發送端實體在合理的往返時延(RTT)內未收到確認,那麼對應的數據(假設丟失了)將會被重傳。 在數據正確性與合法性上,TCP用一個校驗和函數來檢驗數據是否有錯誤,在發送和接收時都要計算校驗和;同時可以使用md5認證對數據進行加密。 在保證可靠性上,採用超時重傳和捎帶確認機制。 在流量控制上,採用滑動窗口協議,協議中規定,對於窗口內未經確認的分組需要重傳。 在擁塞控制上,採用廣受好評的TCP擁塞控制算法(也稱AIMD算法)。該算法主要包括四個主要部分: (1)慢啟動 每當建立一個TCP連接時或一個TCP連接發生超時重傳後,該連接便進入慢啟動階段。進入慢啟動後,TCP實體將擁塞窗口的大小初始化為一個報文段,即:cwnd=1。此後,每收到一個報文段的確認(ACK),cwnd值加1,即擁塞窗口按指數增加。當cwnd值超過慢啟動閾值(ssthresh)或發生報文段丟失重傳時,慢啟動階段結束。前者進入擁塞避免階段,後者重新進入慢啟動階段。 (2)擁塞避免 在慢啟階段,當cwnd值超過慢啟動閾值(ssthresh)後,慢啟動過程結束,TCP連接進入擁塞避免階段。在擁塞避免階段,每一次發送的cwnd個報文段被完全確認後,才將cwnd值加1。在此階段,cwnd值線性增加。 (3)快速重傳 快速重傳是對超時重傳的改進。當源端收到對同一個報文的三個重複確認時,就確定一個報文段已經丟失,因此立刻重傳丟失的報文段,而不必等到重傳定時器(RTO)超時。以此減少不必要的等待時間。 (4)快速恢復 快速恢復是對丟失恢復機制的改進。在快速重傳之後,不經過慢啟動過程而直接進入擁塞避免階段。每當快速重傳後,置ssthresh=cwnd/2、cwnd=ssthresh+3。此後,每收到一個重複確認,將cwnd值加1,直至收到對丟失報文段和其後若干報文段的累積確認後,置cwnd=ssthresh,進入擁塞避免階段。

主要特點

TCP是一種面向廣域網的通信協議,目的是在跨越多個網絡通信時,為兩個通信端點之間提供一條具有下列特點的通信方式: (1)基於流的方式; (2)面向連接; (3)可靠通信方式; (4)在網絡狀況不佳的時候儘量降低系統由於重傳帶來的帶寬開銷; (5)通信連接維護是面向通信的兩個端點的,而不考慮中間網段和節點。 為滿足TCP協議的這些特點,TCP協議做了如下的規定: [10] ①數據分片:在發送端對用戶數據進行分片,在接收端進行重組,由TCP確定分片的大小並控制分片和重組; ②到達確認:接收端接收到分片數據時,根據分片數據序號向發送端發送一個確認; ③超時重發:發送方在發送分片時啟動超時定時器,如果在定時器超時之後沒有收到相應的確認,重發分片; ④滑動窗口:TCP連接每一方的接收緩衝空間大小都固定,接收端只允許另一端發送接收端緩衝區所能接納的數據,TCP在滑動窗口的基礎上提供流量控制,防止較快主機致使較慢主機的緩衝區溢出; ⑤失序處理:作為IP數據報來傳輸的TCP分片到達時可能會失序,TCP將對收到的數據進行重新排序,將收到的數據以正確的順序交給應用層; ⑥重複處理:作為IP數據報來傳輸的TCP分片會發生重複,TCP的接收端必須丟棄重複的數據; ⑦數據校驗:TCP將保持它首部和數據的檢驗和,這是一個端到端的檢驗和,目的是檢測數據在傳輸過程中的任何變化。如果收到分片的檢驗和有差錯,TCP將丟棄這個分片,並不確認收到此報文段導致對端超時並重發。

參考文獻

  1. tcp是什麼百度知道