三次握手和四次揮手的過程原因,通俗的解釋

三次握手,四次揮手

三次握手的過程和原因

通俗的講,就是通信的雙方在發送數據之前,必須要建立一個連接,就是將客戶端和服務端的內存裏面保存一份關於對方的端口號和ip地址之類的一些數據(客戶端和服務端,每一個程序,都會佔用當前機器的一個端口號)

**第一次握手:**客戶端發送一個網絡包(這個網絡包就是一個初始化連接的序列號)

服務端接受到了這個序列號的時候,服務端可以得出結論就是,客戶端的***發送能力***和服務端的***接收能力***是正常的,還能獲取一些客戶端的的一些信息,比如說ip地址端口號之類的。

但是客戶端不知道自己的***發送能力和接收能力***是否正常,所以需要第二次握手

**第二次握手:**服務端發送一個數據包,客戶端接受服務端發送的數據包

這個時候,客戶端知道了自己的***發送能力,接收能力***,也知道了服務端的***接收能力***和***發送能力***都是正常的,服務端知道自己的***發送和接收能力***以及客戶端的***發送能力***是正常,但是卻不知道客戶端的***接收能力***是否正常,這就是爲什麼要有第三次握手。

第三次握手:客戶端發送一條網絡包給服務端,服務端接收到了客戶端發送的網絡包以後,就能確認了客戶端的接收能力**是否正常了。

四次揮手的過程和原因

第一次揮手:關閉方(可以是客戶端也可以是服務端)發送一個包,表示自己沒有要發送的數據了,這個時候開始等待被關閉方返回的消息

第二次:被關閉方接收到了關閉方發送的報文以後,也會發送數據包,告訴關閉方,他收到了關閉方發送的關閉連接的請求,但是這個時候,服務端可能還有沒有發送的數據,這個時候可以發送數據。

第三次握手:被關閉方告訴關閉方,它數據發送完成,它也要關閉了

第四次:關閉方,告訴被關閉方,它知道了。

如果揮手是三次會怎麼樣?

第一次:關閉方發送數據,告訴被關閉方要關閉了

第二次:關閉方開始發送最後的數據,並且發送確認收到的報文。

第三次:關閉方發送報文,告訴被關閉方收到了它發送的數據。

咋一看,好象也行,但是有一個問題。

第二次揮手的時候,無法確定被關閉方還有多少數據沒有發送,這個時候,關閉方就會一直等待着被關閉方發送數據,會佔用資源

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