ack(acknowledge) 確認序號
sys(synchronize) 同步序號
fin (finish)傳送端完成傳送任務
連線的三次握手
為了建立乙個tcp連線需要經過三次握手;
第一次;請求端傳送乙個syn段指明客戶打算連線的伺服器的埠,以及初始序號(isn)。
第二次;服務端傳送返回報文段syn作為應答,序號為服務端初始序號(isn)並將確認序號字段(ack欄位置1,表示序號有效)序號設定為客戶端初始序號+1
第三次;客戶端返回確認序號(ack欄位置1,表示序號有效),確認序號必須是服務端序號+1,以作為對伺服器的syn報文進行確認。
三次握手圖如下所示:
tcp的三次握手
在建立tcp連線時雙方沒有交換任何資料建立乙個連線需要三次握手,而終止乙個連線要經歷過4次握手。
第一次;當一方完成資料傳送任務後就能傳送乙個fin(fin欄位置1)和序號來終止這個方向上的鏈結。收到乙個fin只意味著在這一方向上沒有資料流動。乙個tcp連線在收到乙個fin後很可能仍然能傳送資料,這對半關閉的應用來說是可能的。
第二次;當一伺服器收到乙個fin時它返回乙個ack(ack欄位置1),確認序號為收到的序列號+1(和syn一樣乙個ack也占用乙個序號),同時伺服器還應向應用程式傳送乙個檔案結束符,接著這個伺服器就關閉它的連線,導致它的服務端傳送乙個fin(第三次)。
第四次;客戶端發回乙個確認(ack欄位置1),並將確認序號設定為第三次的序號+1。
下圖中顯示了終止乙個連線的典型握手順序,我們省略了序號。在這個圖中,傳送fin將導致應用程式關閉它們的連線,這些fin的ack是由tcp軟體自動產生的。
終止時的四次握手
TCP連線建立與終止
目錄 tcptcp連線建立 三次握手 tcp連線終止 四次揮手 tcp的狀態變遷圖 tcp是乙個全雙工的 面向連線的 可靠地傳輸協議,所以無論哪一方向另一方傳送資料之前,都需要先在兩者之間建立乙個連線 基於全雙工通訊所以存在tcp的半關閉狀態,也就是說斷開連線必須是雙方都關閉,否則就說這種狀態為半關...
TCP連線的建立與終止
乙個tcp連線由乙個4元組構成,它們分別是兩個ip位址,兩個埠號。即乙個tcp連線是由一對端點或套接字構成,其中通訊的每一端都由一對 ip位址,埠號 所唯一標識。乙個tcp連線通常分為3個階段 啟動 資料傳輸和退出 tcp開啟與關閉 下圖是乙個典型的tcp連線的建立和關閉過程 為了建立乙個tcp連線...
TCP連線的建立與終止
上圖可見tcp三次握手過程。其中需要注意的是步驟一 syn 1且ack 0。syn為1時,源於協議的設計syn和fin各佔乙個位元組的序號。且步驟一和步驟二進行同步請求時,syn為1,之後syn為0。因為網路原因,可能客戶a向伺服器b傳送了乙個syn同步請求連線在網路中滯留了一會。然而客戶a在超時重...