TCP三次握手與四次揮手

        建立TCP需要三次握手才能建立,而斷開連接則需要四次握手。整個過程如下圖所示:

wKiom1eYpxjSOh4VAABrbN1SxTc514.jpg-wh_50

一、三次握手(建立連接)

wKioL1eYptyzzIJiAAAu7qAMl0I358.jpg-wh_50

    1.客戶端發出段1,SYN位表示連接請求。序號是1000,這個序號在網絡通訊中用作臨時的地址,每發一個數據字節,這個序號要加1,這樣在接收端可以根據序號排出數據包的正確順序,也可以發現丟包的情況,另外,規定SYN位和FIN位也要佔一個序號,這次雖然沒發數據,但是由於發了SYN位,因此下次再發送應該用序號1001。mss表示最大段尺寸, 如果一個段太大,封裝成幀後超過了鏈路層的最大幀長度,就必須在IP 層分片,爲了避 免這種情況,客戶端聲明自己的最大段尺寸,建議服務器端發來的段不要超過這個長度。

    2.服務器發出段2,也帶有SYN位,同時置ACK位表示確認,確認序號是1001,表示“我接收到序號1000及其以前所有的段,請你下次發送序號爲1001的段”,也就是應答了客戶端 的連接請求,同時也給客戶端發出一個連接請求,同時聲明最大尺寸爲1024。

    3.客戶端發出段3,對服務器的連接請求進行應答,確認序號是8001。

    假設不採用“三次握手”,那麼只要server發出確認,新的連接就建立了。由於現在client並沒有發出建立連接的請求,因此不會理睬server的確認,也不會向server發送數據。但server卻以爲新的運輸連接已經建立,並一直等待client發來數據。這樣,server的很多資源就白白浪費掉了。主要目的防止server端一直等待,浪費資源

二、四次揮手(斷開連接)

wKiom1eYqs3wBCRGAAAuqTUnQ8g956.jpg-wh_50

    1.客戶端發出段7,FIN位表示關閉連接的請求。 

    2.服務器發出段8,應答客戶端的關閉連接請求。 

    3.服務器發出段9,其中也包含FIN位,向客戶端發送關閉連接請求。  

    4.客戶端發出段10,應答服務器的關閉連接請求。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章