TCP釋放連線的四次揮手過程

2021-09-08 11:30:30 字數 953 閱讀 3388

tcp斷開連線的過程:tcp四次揮手。

資料傳輸結束後,通訊的雙方都可釋放連線。現在a和b都處於established狀態。a的應用程序先向tcp發出連線釋放報文段,主動關閉tcp連線。a把連線釋放報文段的首部的終止控制位fin置為1,序號seq=u,它等於前面已傳送過的資料的最後乙個位元組的序號加1。這時a進入fin-wait-1(終止等待1)狀態,等待b的確認。

b收到連線釋放報文段後即發出確認(發出的不是連線釋放報文段),確認號是ack=u+1,而這個報文段自己的序號是v,等於b前面已傳送過的資料的最後乙個位元組的序號加1。然後b就進入close-wait(關閉等待)狀態。tcp伺服器程序這時通知高層應用程序,因而從a到b這個方向的連線釋放了,這時的tcp連線處於半關閉狀態,即a已經沒有資料要傳送了,但b若傳送資料,a仍要接受。也就是說,從b到a這個方向的連線並未關閉。這個狀態可以會持續一些時間。

a收到b的確認後,就進入fin-wait-2(終止等待2)狀態,等待b發出的連線釋放報文段。

若b已經沒有要向a傳送的資料,其應用程序就通知tcp釋放連線。這時b發出的連線釋放報文段必須使用fin=1。現假定b的序號為w(在半關閉狀態b可能又傳送了一些資料)。b還必須重複上次已傳送過的確認號ack=u+1。這是b就進入last-ack狀態,等待a的確認。

在a收到b的連線釋放報文段後,必須對此發出確認。在確認報文段中把ack置為1,確認號ack=w+1,而自己的序號是seq=u+1(前面的fin報文消耗了1個序號)。然後進入time-wait狀態。請注意,現在tcp連線還沒釋放掉。必須再經過2msl後,a才進入到closed狀態。msl叫最長報文段壽命,一般為2分鐘。

當b收到a發出的確認,就進入closed狀態。由此可見b結束tcp連線的時間要比a早一些。等到2msl結束後a也進入closed狀態,至此完成了tcp四次揮手斷開連線全過程。

TCP的四次揮手(TCP的連線釋放)

通訊的雙方都可以啟動釋放連線,即客戶或者伺服器哪一方都可以啟動釋放連線假設客戶的應用程序主動啟動釋放連線,客戶的應用程序先向其tcp發出釋放連線報文段,並停止傳送資料,主動關閉tcp連線 第一步 客戶給伺服器傳送報文 客戶把連線釋放報文段的首部的fin 1,其序號seq u,等待b的確認第二步 伺服...

TCP協議中的四次揮手釋放連線

建立乙個連線需要三次握手,而終止乙個連線需要四次揮手。這是由tcp的半關閉造成的。既然乙個tcp連線是全雙工 資料能在兩個方向上同時傳遞 因此每個方向必須單獨的進行關閉。現在我們介紹tcp的四次揮手釋放連線的過程,整體示意圖如下所示 1.某個應用程式首先呼叫close,我們稱這一端執行主動關閉。這一...

TCP的連線釋放 四報文握手(四次揮手)

首先也先了解幾個概念 終止位fin finis,意為 完 終 用來釋放乙個連線。當fin 1時,表明此報文段的傳送方的資料已經傳送完畢,並要求釋放傳輸連線。時間msl maximum segment lifetime 最長報文段壽命,rfc793建議為2分鐘。但對於現在的網路msl 2分鐘可能太大,...