TCP/IP詳解學習筆記(12)-- TCP:傳輸控制協議


1.概述

     TCP提供了一種可靠的面向連接的字節流運輸層服務。
     TCP將用戶數據打包成報文段,它發送后啟動一個定時器,另一端收到的數據進行確認,對失序的數據重新排序,丟棄重復數據,TCP提供端到端的流量控制,並計算和驗證一個強制性的端到端的檢驗和。
     許多流行的應用程序如:Telnet, Rlogin, FTP,SMTP 都使用TCP。
  • TCP的主要特點:
    • TCP是面向連接的運輸層協議
    • 每一條TCP連接只能有兩個端點,每一條TCP連接只能是點對點的
    • TCP提供可靠交付的服務
    • TCP提供全雙工通信
    • 面向字節流。
      • 面向字節流的含義:雖然應用程序和TCP交互是一次一個數據塊,但TCP把應用程序交下來的數據僅僅是一連串的無結構的字節流
      TCP面向流的概念
2.TCP首部
     TCP報文段的首部格式如圖所示:
     各自段的含義:
  • 源端口和目的端口:各占兩個字節,端口是運輸層與應用層的服務接口,運輸層的復用和分解功能都要通過端口才能實現。
  • 序號:占4字節,序號范圍是[0,2^32-1]。TCP把在一個TCP連接中傳輸的數據流中的每一個字節都編上一個序號。
  • 確認號:是期望收到對方的下一個報文段的數據第一個字節的序號
    • 若確認號 == N,則表明到序號N-1為止的所有數據都已正確收到。
  • 首部長度:最大60字節
  • 保留:6bit, 均為0.
  • 緊急URG:當URG=1時,表示報文段中有緊急數據,應盡快傳送,而不要按照原來的排隊順序傳送,與“緊急指針”字段配合使用。
  • 確認比特ACK:只有當ACK = 1時確認號才有效。
  • 推送比特PSH:當發送端PSH=1時,並立即創建一個報文段發送出去,接收TCP收到PSH為1的報文段后,不在等到整個緩存都填滿后在向上交付,而是盡快的交付給應用進程。
  • 復位比特(RST):復位比特也稱重建比特或重置比特。當RST=1時,表明TCP連接中出現嚴重差錯,必須釋放連接,然后在重新建立連接。
  • 同步比特SYN:在建立連接是用來同步序號。SYN=1, ACK=0表示一個連接請求報文段。SYN=1,ACK=1表示同意建立連接。
  • 終止比特FIN:用來釋放一個連接。FIN=1時,表明此報文段的發送端的數據已經發送完畢,並要求釋放運輸連接。
  • 窗口:用來控制對方發送的數據量。單位為字節。TCP連接的一端根據設置的緩存空間大小確定自己的接收窗口大小。然后通知發放已確定的發送窗口上限。
    • 窗口的值是經常在動態變化
  • 檢驗和:檢驗和字段檢驗的范圍包括首部和數據這兩部分
  • 緊急指針:緊急指針在URG=1時才有效,它指出本報文段中的緊急數據的字節數。
  • 選項:長度可變,最長可達40字節
3.最大報文長度MSS
     MSS默認值為536字節。注:MSS=TCP報文段長度-TCP首部長度
     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM