TCP(傳輸控制協議)是面向連接的、可靠的、基於字節流的傳輸層通信協議,由IETF的RFC793定義。在計算機網絡的簡化OSI模型中,它完成第四層傳輸層規定的功能,用戶數據報協議(UDP)是同層的另壹個重要傳輸協議。
在互聯網協議組中,TCP層是位於IP層之上、應用層之下的中間層。不同主機的應用層之間經常需要可靠的、類似管道的連接,但是IP層不提供這樣的流機制,而是提供不可靠的分組交換。
當應用層向TCP層發送以8位字節表示的用於網間傳輸的數據流時,TCP將數據流分成適當長度的段,最大傳輸段大小(MSS)通常受計算機所連接網絡的數據鏈路層的最大傳輸單元(MTU)的限制。然後TCP將數據包發送到IP層,IP層將通過網絡將數據包發送到接收實體的TCP層。
TCP協議有以下規定:
①數據分片:用戶數據在發送端分片,在接收端重組。TCP確定碎片的大小,並控制碎片和重組。
②到達確認:接收方收到分片數據時,根據分片數據的序列號向發送方發送確認。
③超時重傳:發送方在發送分片時啟動超時定時器,定時器超時後如果沒有收到相應的確認,則重傳分片。
④滑動窗口:TCP連接每壹側的接收緩沖區空間是固定的,接收端只允許另壹端發送接收緩沖區能容納的數據。TCP在滑動窗口的基礎上提供流量控制,防止速度較慢的主機因速度較快的主機造成緩沖區溢出。
⑤亂序處理:作為IP數據報傳輸的TCP片段可能會亂序到達,TCP會將接收到的數據重新排序,並按照正確的順序交給應用層。
⑥重復處理:作為IP數據報傳輸的TCP片段會被復制,TCP的接收端必須丟棄復制的數據。
⑦數據校驗:TCP會保留其報頭和數據的校驗和,這是壹種端到端的校驗和,目的是檢測數據在傳輸過程中的任何變化。如果收到的片段的校驗和有錯誤,TCP將丟棄該片段,並且不會確認收到該消息段,這將導致對等方超時並重新發送。