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 |
|
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. |
|