TCP從連線到釋放過程全解

2021-09-07 17:07:35 字數 1375 閱讀 8803

參考書籍:《計算機網路第5版》

tcp是面向連線的協議,採用c/s模型建立連線,由client主動發起連線請求,server端允許請求的模式建立連線,通常稱為三次握手建立tcp連線。

準備條件:b的server端先建立傳輸控制塊tcb。準備接受client程序的連線請求,此時server程序處於listen(監聽)狀態。

syn(syn

chronous):同步的

1、a的client程序首先建立傳輸控制塊tcb,然後向server端發出連線請求報文段(syn=1,seq=x)。

此時client進入syn-sent(同步已傳送)狀態。

2、server端收到client的連線請求報文段後,如允許連線,則向client傳送確認(syn=1,ack=1,seq=y,ack=x+1)。此時服務端進入syn-rcvd(同步接收)狀態。

3、client程序收到server端的確認後。還要向server端給出確認(ack=1,seq=x+1,ack=y+1)。

a進入established(已建立連線)狀態。

當b收到確認後,server端程序也進入established狀態。

至此。tcp連線已經全然建立。

相同關於tcp連線釋放的過程也存在四次握手經過,簡述例如以下。

初始狀態:client與server端均處於established狀態。

1、client程序向server端發出連線釋放報文段(fin=1,seq=u)。並停止傳送資料。主動關閉tcp連線。

此時進入fin-wait-1(終止等待1)狀態。等待server端的確認

2、server端收到client的連線釋放報文段後。發出確認(ack=1,seq=v,ack=u+1)。然後server端進入close-wait(關閉等待)狀態。a收到來自b的確認後。進入fin-wait-2(終止等待2)狀態。此時tcp連線處於半關閉(half-close)狀態。即a已經不能再發資料給b了。但b依舊能夠發資料給a。

3、若b沒有要向a傳送的資料,此時server端向client發出連線釋放報文段(fin=1,seq=w,ack=u+1)。此時server端進入last-ack(最後確認)狀態。等待a的確認。

4、client收到server端的連線釋放報文段後,發出確認(ack=1。seq=u+1。ack=w+1)。此時client進入time-wait(時間等待)狀態。server端收到確認後,隨即關閉連線(closed)。client經過2msl後關閉tcp連線。

至此,整個tcp連線釋放。

TCP 連線建立過程和連線釋放過程

1 客戶端a向伺服器b傳送連線請求報文,此時首部的同步位syn 1,同時選擇乙個初始序號seq x.tcp規定syn報文 syn 1 不能攜帶資料,但是要消耗乙個序列號,這時tcp客戶程序進入syn sent 同步以傳送 狀態 2 伺服器b收到連線請求報文後,如果同意建立連線,則向a傳送確認,在確認...

TCP的連線和釋放過程

tcp的連線和釋放過程 1 三次握手的過程 1 主機a向主機b傳送tcp連線請求資料報,其中包含主機a的初始序列號seq a x。其中報文中同步標誌位syn 1,ack 0,表示這是乙個tcp連線請求資料報文 序號seq x,表明傳輸資料時的第乙個資料位元組的序號是x 2 主機b收到請求後,會發回連...

TCP連線建立和釋放過程中狀態機的變化

tcp是面向連線的協議,tcp運輸連線的建立和釋放是每一次面向連線的通訊中必不可少的過程。運輸連線有三個階段 連線建立,資料傳送和連線釋放。tcp連線採用的是客戶伺服器方式。主動發起連線建立請求的應用程序叫客戶,而被動等待連線建立的應用程序叫伺服器。tcp的連線建立 三次握手 如下圖所示tcp連線建...