什麼是TCP連線建立?
為了使傳輸服務可靠,TCP主機必須彼此建立面向連線的會話。連線建立是透過使用三次握手機制來執行的。三次握手使網路的雙方同步,使雙方就原始序列號達成一致。
此機制還確保雙方都準備好傳輸資料並瞭解對方可進行通訊。這對於防止在會話建立期間或會話終止後共享或重傳資料包至關重要。每個主機都會隨機選擇一個序列號,用於跟蹤其傳送和接收的資料流中的位元組。
三次握手過程如下圖所示:
請求端(主機A)傳送一個SYN段,確定客戶端需要連線到的伺服器埠號及其初始序列號(x)。
伺服器(主機B)確認其自己的SYN段,包括伺服器的初始序列號(y)。伺服器還透過接受傳送方的SYN加一(X + 1)來響應客戶端SYN。
一個SYN消耗一個序列號。客戶端應透過接受伺服器的SEQ加一(SEQ = x + 1,ACK = y + 1)來確認來自伺服器的此SYN。這就是TCP連線如何建立的。
連線終止協議(連線釋放)
雖然建立連線需要三個段,但終止連線需要四個段。由於TCP連線是全雙工的(即,資料在每個方向獨立於另一個方向流動),因此每個方向都應單獨關閉。
下圖顯示了每個主機的終止過程。規則是,任何一方在其傳送完資料後都可以傳送FIN。
當TCP收到FIN時,它應通知應用程式另一端已終止該資料流方向。傳送FIN通常是應用程式發出關閉命令的結果。
收到FIN僅表示將不再有資料沿該方向流動。TCP可以在收到FIN後傳送資料。首先發出關閉命令的一端(例如,傳送第一個FIN)執行主動關閉。另一端(接收此FIN)管理被動關閉。
廣告