1. 程式人生 > >第17章TCP協議

第17章TCP協議

TCP協議

TCP提供一種面向連線的、可靠的位元組流服務。三個關鍵字:面向連線、可靠的(有超時重傳、流量控制、擁塞控制等機制)、位元組流(TCP對位元組流的內容不做任何解釋)。具體來講可靠性的保證由以下機制保證:

  • 應用資料被TCP分割為最適合傳送的資料塊(主要是為了避免IP分片)(TCP資料段或者段segment),和UDP完全不同,應用程式產生的資料報長度將保持不變。
  • TCP發出一個段後,啟動一個定時器,等待目的端確認收到這個段。
  • TCP的確認段不是立即傳送出去的,通常會推遲幾分之1秒(一般為200ms),這就是延遲確認或者捎帶確認
  • TCP報文段會作為IP資料報來傳輸,IP資料報可能會失序到達,因此TCP報文段到達也會失序,TCP將對收到的資料進行重新排序。
  • IP資料報會生重複,TCP的接收端必須丟棄重複的資料。 TCP提供流量控制(TCP首部擁有視窗大小資料)
  • TCP擁塞控制(慢啟動演算法和擁塞避免演算法

TCP首部

TCP首部有6個標誌位元位。

  • URG
  • ACK
  • PSH
  • RST:重建連線
  • SYN:同步序號用來發起一個連線
  • FIN:發端完成傳送任務

TCP的流量控制由連線的每一端宣告的埠大小來提供,這個視窗的大小最大是65535位元組,可以動態的改變。

TCP校驗和

校驗的內容包含TCP首部和TCP資料;

TCP可選欄位:Option

最長報文長度:MSS(Maximum Segment Size),每個連線的第一個報文段(包含SYN的那個報文段)中指定這個選項。

小結

  • TCP提供了一種可靠的面向連線的位元組流服務;
  • TCP將使用者資料按照合適的長度分割為TCP報文段(Segment),傳送完畢後啟動一個定時器,另一端收到後進確認對失序的資料進行排序;
  • TCP提供端到端的流量控制,並計算和驗證一個強制性的端到端的校驗和;
  • 許多應用層協議都使用TCP:FTP、SMTP、Telnet、Rlogin;