面試常見問題之——Tcp/Ip協議及三次握手,四次揮手。

面試的時候,因爲自己的簡歷個人技能上有一條“瞭解Tcp/Ip及一些常見的網絡協議”
當然,當時回答的不是很理想。現在對其做以總結,以防以後再被問起。

1.TCP和UDP的區別

TCP UDP
面向連接的 無連接的
可靠的 不可靠的的
字節流 報文
面向連接的 無連接的
傳輸效率低 傳輸效率高
全雙工的 一對一,一對多,多對一,多對多

2.TCP的三次握手四次揮手
學習參考來自:一文讀懂TCP/IP

三次握手:

圖示:
三次握手

第一次握手:
建立連接,客戶端發送請求報文,標記位爲syn,並將syn值置爲1;還有一個表示數據包的seq(數據包序號),值置爲x,客戶端進入SYN_SENT狀態。【整體就是 SYN seq = x 】
第二次握手:
服務器收到客戶端的SYN報文段,確認之後。設置ack(值爲x+1),並且需要設置自己的syn,值爲1;seq值爲y。【整體就是個SYN seq = y, ack = x+1】,然後服務器端進入SYN_RECV狀態。
第三次握手:
客戶端收到來自服務器的SYN+ACK後,給返回一個確認消息,即ACK=y+1;發出之後客戶端進入ESTABLISHED狀態,服務器收到確認消息後也進入了ESTABLISHED狀態。

四次揮手

圖示:
在這裏插入圖片描述

第一次揮手:
客戶端發起,向服務器發送一個FIN報文,然後進入FIN_WAIT_1的狀態。
第二次揮手:服務器收到FIN報文段後,回覆一個ACK,然後進入CLOSE_WAIT狀態。
第三次揮手:服務器向客戶點發送FIN報文段,請求關閉連接,然後服務器進入LAST_ACK狀態。
第四次揮手:
客戶端收到服務端發送的 FIN 報文段後,向服務端發送 ACK 報文段,然後客戶端進入 TIME_WAIT 狀態。服務端收到客戶端的 ACK 報文段以後,關閉連接。此時,客戶端等待 2MSL(指一個片段在網絡中最大的存活時間)後依然沒有收到回覆,則說明服務端已經正常關閉,這樣客戶端就可以關閉連接了。

部分參考原文鏈接:https://blog.csdn.net/petterp/article/details/102779131

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