簡述TCP IP協議三次握手和四次揮手

2021-09-10 09:09:49 字數 1360 閱讀 5890

tcp/ip協議

網際網路協議(internet protocol suite)是乙個網路通訊模型,以及一整個網路傳輸協議家族,為網際網路的基礎通訊架構。它常被通稱為tcp/ip協議族(英語:tcp/ip protocol suite,或tcp/ip protocols),簡稱tcp/ip。

tcp的6種標誌符

三次握手:

概念:指在傳送資料的準備階段,伺服器和客戶端之間需要三次互動

第一次握手:建立連線時,客戶端向伺服器傳送乙個syn包,並進入syn_sent狀態,等待伺服器確認

第二次握手:當伺服器收到客戶端的請求後,此時要給客戶端給乙個確認資訊ack,同時傳送syn包,此時伺服器進入 syn_recv狀態

第三次握手:客戶端收到伺服器發的ack+syn包後,向伺服器傳送ack,傳送完畢之後,客戶端和伺服器進入 established(tcp連線成功)狀態,完成三次握手

四次揮手:

概念:所謂四次揮手就是說關閉tcp連線的過程,當斷開乙個tcp連線時,需要客戶端和伺服器共傳送四個包確認

第一次揮手:客戶端傳送乙個fin,用來關閉客戶端到伺服器的資料傳輸,客戶端進入fin_wait_1狀態

第二次揮手:伺服器收到fin後,傳送乙個ack給客戶端,確認序號為收到序號+1(與syn相同,乙個fin占用乙個序 號),伺服器進入close_wait狀態

第三次揮手:伺服器傳送乙個fin,用來關閉伺服器到客戶端的資料傳輸,伺服器進入last_ack狀態

第四次揮手:客戶端收到fin後,客戶端進入time_wait狀態,接著傳送乙個akc給伺服器,確認序號為收到序號+1,伺服器進入closed狀態,完成四次揮手

常見的問題:

1、為什麼連線需要三次,關閉的時候需要四次?

當伺服器收到客戶端的連線請求後,可以直接傳送syn+ack報文,其中ack是確認應答,syn報文是用來同步的。但  是在關閉連線的時候,當伺服器收到fin的時候,很可能並不會立刻關閉socket,所以只能先回個ack來應答,只有等伺服器把所有報文都發完了才能傳送fin,因此不能一起傳送,所有需要四步。

2、為什麼斷開鏈結的時候客戶端設定的定時器時間等待要2msl(兩個通訊報文的最大時間)?

當客戶端最終告訴伺服器斷開確認的時候,他不知道自己的發出的指令是否準確的一次性被伺服器接收。 

3、為什麼time_wait狀態需要經過2msl(最大報文段生存時間)才能返回到close狀態?

雖然按道理,四個報文都傳送完畢,我們可以直接進入close狀態了,但是我們必須假象網路是不可靠的,有可以最後乙個ack丟失。所以time_wait狀態就是用來重發可能丟失的ack報文。 

簡述tcp ip協議三次握手 四次揮手

udp協議定義了埠,同乙個主機上的每個應用程式都需要指定唯一的埠號,並且規定網路中傳輸的資料報必須加上埠資訊,當資料報到達主機以後,就可以根據埠號找到對應的應用程式了。udp協議比較簡單,實現容易,但它沒有確認機制,資料報一旦發出,無法知道對方是否收到,因此可靠性較差,為了解決這個問題,提高網路可靠...

TCP IP三次握手協議

當兩台主機採用tcp協議進行通訊時,在交換資料前將建立連線。通訊完成後,將關閉會話並終止連線。連線和會話機制保障了tcp的可靠性功能。請參見圖中建立並終止tcp連線的步驟。主機將跟蹤會話過程中的每個資料段,並使用tcp報頭中的資訊了解每台主機所接收到的資料。每個連線都代表兩股單向通訊資料流或者會話。...

TCP IP三次握手協議

tcp transmission control protocol 傳輸控制協議 tcp是主機對主機層的傳輸控制協議,提供可靠的連線服務,採用三次握手確認建立乙個連線 位碼即tcp標誌位,有6種標示 syn synchronous建立聯機 ack acknowledgement 確認 psh pus...