TCP三次握手四次揮手

2021-08-18 16:43:21 字數 1032 閱讀 1934

所謂三次握手(three-way handshake)即建立tcp連線,就是指建立乙個tcp連線時,需要客戶端和服務端總共傳送3個包以確認連線的建立。

tcp四次揮手:

簡單來說就是客戶端與伺服器斷開連線的過程。

常見問題:

(1).

(2).為什麼最後還要等待2msl?

第一保證客戶端傳送的最後乙個ack報文能夠到達伺服器,因為這個ack報文可能丟失,

站在伺服器的角度看來,我已經傳送了fin+ack報文請求斷開了,客戶端還沒有給我回應,應該是我傳送的請求斷開報文它沒有收到,於是伺服器又會重新傳送一次

,而客戶端就能在這個2msl時間段內收到這個重傳的報文,接著給出回應報文,並且會重啟2msl計時器。

第二,防止類似與「三次握手」中提到了的「已經失效的連線請求報文段」出現在本連線中。客戶端傳送完最後乙個確認報文後,在這個2msl時間中,就可以使本連線持續的時間內所產生的所有報文段都從網路中消失。這樣新的連線中不會出現舊連線的請求報文。

(3).為何使用三次握手機制:

假設如下異常情況:

客戶端向伺服器傳送了第一條請求報文,但是該報文並未在網路中被丟棄,而是長時間阻滯在某處,而客戶端收不到伺服器確認,以為該報文丟失,於是重新傳送該報文,這次的報文成功到達伺服器,如果不使用三次握手,則伺服器只需對該報文發出確認,就建立了乙個連線。而在這個連線建立,並釋放後,第一次傳送的,阻滯在網路中的報文到達了伺服器,伺服器以為是客戶端又重新傳送了乙個連線請求(實際上在客戶端那裡,該連線早已失效),就又向客戶端傳送乙個確認,但客戶端認為他沒有傳送該請求報文,因此不理睬伺服器傳送的確認,而伺服器以為又建立了乙個新的連線,於是一直等待a發來資料,造成了伺服器資源的浪費,並且會產生安全隱患。因此,若使用三次握手機制,伺服器傳送了該確認後,收不到客戶端的確認,也就知道並沒有建立連線,因此不會將資源浪費在這種沒有意義的等待上。

TCP三次握手 四次揮手

tcp 三次握手 tcp 連線是通過三次握手進行初始化的。三次握手的目的是同步連線雙方的序列號和確認號並交換 tcp 視窗大小資訊。以下步驟概述了通常情況下客戶端計算機聯絡伺服器計算機的過程 1.客戶端向伺服器傳送乙個syn置位的tcp報文,其中包含連線的初始序列號x和乙個視窗大小 表示客戶端上用來...

TCP三次握手 四次揮手

服務端的tcp程序先建立傳輸控制塊tcb,準備接受客戶端程序的連線請求,然後服務端程序處於listen狀態,等待客戶端的連線請求,如有,則作出響應。1 客戶端的tcp程序也首先建立傳輸控制模組tcb,然後向服務端發出連線請求報文段,該報文段首部中的syn 1,ack 0,同時選擇乙個初始序號seq ...

TCP三次握手四次揮手

tcp transmission control protocol 傳輸控制協議 tcp是主機對主機層的傳輸控制協議,提供可靠的連線服務,採用三次握手確認建立乙個連線。位碼即tcp標誌位,有6種標誌 urg urgent緊急 ack acknowledgement 確認 psh push傳送 rst...