Linux网络编程--TCP中的三次握手和四次挥手
生活随笔
收集整理的這篇文章主要介紹了
Linux网络编程--TCP中的三次握手和四次挥手
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
服務器編程和客戶端編程的大致流程如下:
三次握手是在客戶端中的connect中完成的,具體如下:
?
那么上述說到的SYN? ? ?ACK這些是什么東西呢?
?
上述的截圖取自《Linux高性能服務器編程》電子版的截圖!+
根據書中所提到的在客戶端對服務器端connect的時候,由客戶端對服務器端發出一個SYN的請求連接的報文,值為i是32位序列號,然后服務器收到客戶端SYN之后,會反饋給客戶端一個自身服務器端的SYN報文和確認號報文ACK,其中ACK的值為客戶端和服務器端的SYN序列號+1,客戶端收到服務器端SYN和ACK之后,客戶端會給服務器端反饋一個確認號ACK? ?該ACK的值為服務器端的SYN序列號+1,然后三次握手就完成了!!!
下面來看四次揮手!!!!!!
三次握手就是客戶端和服務器連接過程,而四次揮手就是客戶端和服務器端斷開連接的過程。
?上圖的過程可以這樣理解:
? ? ? ? 客戶端給服務器端發送FIN結束報文,相當于客戶端通知服務器端,我要關閉了,然后服務器回復一個確認報文ACK,這時候客戶端已經關閉,進程結束了,但是鏈接系統沒釋放會維持一段時間,像端口,地址,等信息還在,客戶端的這種狀態會維持一段固定時間用來四次揮手中的第四次中給服務器端回復ACK確認報文。這段維持時間之內要是沒有收到服務器端的FIN的話,客戶端這個進程就徹底釋放了,那么就自然斷開連接了(相當于打電話期間手機關機了,那么通話自然就斷開了)!!!
上述就是我對三次握手和四次揮手的理解,大家有什么不同的想法,可以來評論區交流!
總結
以上是生活随笔為你收集整理的Linux网络编程--TCP中的三次握手和四次挥手的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《银河护卫队3》还会有雷神吗?
- 下一篇: TCP协议的服务器与客户端的程序设计(代