(一)面试题:TCP三次握手
生活随笔
收集整理的這篇文章主要介紹了
(一)面试题:TCP三次握手
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.TCP(Transmission Control Protocol):傳輸控制協議。
2.TCP有六種標志位:
- SYN:建立連接, 值為1時,表示希望建立連接,并設定序列號的初始值。
- ACK:確認應答,除了第一次握手時,其余時刻ACK必須為1。
- FIN:結束符, 值為1時表示今后不會再有數據發送,希望斷開連接。
- RST:重置符,值為1時,表示TCP連接中途出現異常時必須強制斷開連接。
- PSH 、UGR? ? (用的較少)
3.三次握手:
?(1)最開始客戶端和服務器的狀態都是closed的,然后服務器通過socket來綁定和監聽ip和端口。這時server是被動等待連接的,也就是代碼中的server_socket.accept()。
(2)第一次握手:client向server發送請求,等待確定。這時client的狀態變成SYN_SENT
(3)第二次握手:server響應client,并要求client確認。此時服務器的狀態變為SYN_RCVD
(4)第三次握手:client響應server,服務收到后檢查ACK,通過檢驗后則成功創建連接, server和client進入ESTABLISHED狀態。
4.為什么是三次握手???
答:三次握手主要是為了確保server和client能夠進行正常的連接與數據傳輸。
第一次握手的時候client什么也不知道。server知道自己接收正常,知道client發送正常。
第二次握手的時候,client知道自己發送和接受數據正常,也知道server發送和接受正常。但server只知道自己接收正常以及client發送正常。
第三次握手的時候,server和client就都知道雙方接收和發送正常,所以就成功建立了連接。
總結
以上是生活随笔為你收集整理的(一)面试题:TCP三次握手的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (二)使用xshell连接ubuntu
- 下一篇: (一)yolo5