古詩詞大全網 - 成語解釋 - TCP-三次握手和四次揮手簡單理解

TCP-三次握手和四次揮手簡單理解

三次握手(three-way handshaking)

1.背景:TCP位於傳輸層,作用是提供可靠的字節流服務,為了準確無誤地將數據送達目的地,TCP協議采納三次握手策略。

2.原理:

1)發送端首先發送壹個帶有SYN(synchronize)標誌地數據包給接收方。

2)接收方接收後,回傳壹個帶有SYN/ACK標誌的數據包傳遞確認信息,表示我收到了。

3)最後,發送方再回傳壹個帶有ACK標誌的數據包,代表我知道了,表示’握手‘結束。

通俗的說法

1)Client:嘿,李四,是我,聽到了嗎?

2)Server:我聽到了,妳能聽到我的嗎?

3)Client:好的,我們互相都能聽到對方的話,我們的通信可以開始了。

四次揮手(Four-Way-Wavehand)

1.意義: 當被動方收到主動方的FIN報文通知時,它僅僅表示主動方沒有數據再發送給被動方了。但未必被動方所有的數據都完整的發送給了主動方,所以被動方不會馬上關閉SOCKET,它可能還需要發送壹些數據給主動方後,再發送FIN報文給主動方,告訴主動方同意關閉連接,所以這裏的ACK報文和FIN報文多數情況下都是分開發送的。

2.原理:

?1)第壹次揮手:Client發送壹個FIN,用來關閉Client到Server的數據傳送,Client進入FIN_WAIT_1狀態。

?2)第二次揮手:Server收到FIN後,發送壹個ACK給Client,確認序號為收到序號+1(與SYN相同,壹個FIN占用壹個序號),Server進入CLOSE_WAIT狀態。

?3)第三次揮手:Server發送壹個FIN,用來關閉Server到Client的數據傳送,Server進入LAST_ACK狀態。

?4)第四次揮手:Client收到FIN後,Client進入TIME_WAIT狀態,接著發送壹個ACK給Server,確認序號為收到序號+1,Server進入CLOSED狀態,完成四次揮手

通俗的說法

1)Client:我所有東西都說完了

2)Server:我已經全部聽到了,但是等等我,我還沒說完

3)Server:好了,我已經說完了

4)Client:好的,那我們的通信結束l