TCP:傳輸控制協議

TCP:傳輸控制協議
  (TCP:Transmission Control Protocol)

  傳輸控制協議 TCP 是 TCP/IP 協議棧中的傳輸層協議,它通過序列確認以及包重發機制,提供可靠的數據流發送和到應用程序的虛擬連接服務。與 IP 協議相結合, TCP 組成了因特網協議的核心。
  由於大多數網絡應用程序都在同一臺機器上運行,計算機上必須能夠確保目的地機器上的軟件程序能從源地址機器處獲得數據包,以及源計算機能收到正確的回覆。這是通過使用 TCP 的“端口號”完成的。網絡 IP 地址和端口號結合成爲唯一的標識 , 我們稱之爲“套接字”或“端點”。 TCP 在端點間建立連接或虛擬電路進行可靠通信。
  TCP 服務提供了數據流傳輸、可靠性、有效流控制、全雙工操作和多路複用技術等。
  關於流數據傳輸 ,TCP 交付一個由序列號定義的無結構的字節流。 這個服務對應用程序有利,因爲在送出到 TCP 之前應用程序不需要將數據劃分成塊, TCP 可以將字節整合成字段,然後傳給 IP 進行發送。
  TCP 通過面向連接的、端到端的可靠數據報發送來保證可靠性。 TCP 在字節上加上一個遞進的確認序列號來告訴接收者發送者期望收到的下一個字節。如果在規定時間內,沒有收到關於這個包的確認響應,重新發送此包。 TCP 的可靠機制允許設備處理丟失、延時、重複及讀錯的包。超時機制允許設備監測丟失包並請求重發。
  TCP 提供了有效流控制。當向發送者返回確認響應時,接收 TCP 進程就會說明它能接收並保證緩存不會發生溢出的最高序列號。
  全雙工操作: TCP 進程能夠同時發送和接收包。
  TCP 中的多路技術:大量同時發生的上層會話能在單個連接上時進行多路複用。

協議結構

16 32 bit
Source port Destination port
Sequence number
Acknowledgement number
Offset Reserved U A P R S F Window
Checksum Urgent pointer
Option + Padding
Data

  • Source Port – 識別上層源處理器接收 TCP 服務的點。
  • Destination Port – 識別上層目標處理器接收 TCP 服務的點。
  • Sequence Number – 通常指定分配到當前信息中的數據首字節的序號。在連接建立階段,該字段用於設別傳輸中的初始序列號。
  • Acknowledgment Number – 包含數據包發送端期望接收的數據下一字節的序列號。一旦連接成功,該值會一直被髮送。
  • Data Offset – 4 位。TCP 協議頭中的32位字序號表示數據開始位置。
  • Reserved – 6位。預留以備用,必須設置爲0。
  • Control Bits (Flags) – 6位。傳送各種控制信息。控制位可以是:

U (URG) Urgent pointer field significant.
A (ACK) Acknowledgment field significant.
P (PSH) Push function.
R (RST) Reset the connection.
S (SYN) Synchronize sequence numbers.
F (FIN) No more data from sender.

  • Window – 16位。指定發送端接收窗口的大小,也就是說,數據可用的八位緩存區大小。
  • Checksum – 16 位。指出協議頭在傳輸中是否遭到破壞。
  • Urgent Pointer – 16 位。指向數據包中的第一個重要數據字節。
  • Option + Padding – 指定各種 TCP 選項。可選項有兩種可能形式:單個八位可選類型和八位可選類型,八位可選長度和實際可選數據八位位組。
  • Data – 包含上層信息。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章