第17章TCP協議
阿新 • • 發佈:2019-01-24
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;