TCP的三次握手,四次揮手及常見面試題詳解

胡立強linux運維發表於2020-10-12

TCP的三次握手,四次揮手及常見面試題詳解

一.引子

網路之間資料的傳輸離不開TCP和UDP協議,我們常用的微信就是基於UDP協議進行傳輸的。詳細瞭解這兩個協議對我們伺服器的排錯,以及安全防護可以起到不錯的作用。筆者整理了下面的文件,希望對大家的學習有幫助。

二.TCP的三次握手和四次揮手

1…基本概念(兩者區別及TCP頭部)

1)TCP和UDP的區別:
TCP:Transmission Control Protocol 傳輸控制協議
UDP:User Datagram Protocol 使用者資料包協議

2)TCP報文頭部
16位源埠號,16位目標埠號
32位序號:seq
32位確認序號:ack
TCP的標誌位

在這裡插入圖片描述

3) TCP的標誌位
SYN(synchronous):建立聯機
ACK(acknowledgement):確認
PSH(push):傳送
FIN(finish):結束
RST(reset):重置
UGR(urgent):緊急

在這裡插入圖片描述

2.TCP的三次握手過程

C-S:傳送SYN=1,seq=x
C端關閉━主動開啟,S端關閉━被動開啟
S-C:傳送ACK=1,SYN=1,ack=x+1,seq=y
S端處於監聽狀態,C端處於同步已傳送狀態
C-S:傳送ACK=1,ack=y+1,seq=x+1
C端建立連線,S端建立連線

在這裡插入圖片描述

三.TCP的四次揮手

C-S:FIN=1,seq=x
C建立連線狀態━終止等待1,S端建立連線到━關閉等待
S-C:ACK=1,ack=x+1,seq=v
S關閉等待持續,C終止等待1━終止等待2
S-C:ACK=1,FIN=1,seq=y,ack=x+1
C端終止等待━時間等待,S最後確認
C-S:ACK=1,ack=y+1,seq=x+1
C端時間等待持續一會後關閉,S端關閉

在這裡插入圖片描述

三.運維常見面試題

1.為什麼斷開TCP四次揮手而連線是三次握手
斷開連線時,可能有沒有傳輸完的資料,保證資料的完整性。

2.為什麼設定最大斷開時間2MLS
C端傳送ACK是1MLS時間,FIN是1MLS時間
如果S端收不到C端的最後一次ACK報文,S端會重新傳送FIN和ACK的報文段。等待C端重新傳送報文。
防止已失效的請求報文出現在本連線中。

3.如果傳輸斷開會發生什麼狀況
s端有防控機制(每隔75秒傳送探測報文,一連10個報文沒有反應,則伺服器端認為客戶端出了問題,斷開連線)

4.DDOS攻擊如何防止
ddos攻擊是握手時不進行第三次握手,本質上是比拼兩者之間的網路資源,現在我們可以在本機防火牆規則裡面寫入一些簡單命令讓一些明顯的ddos攻擊失效,或者買一些雲企業的雲盾,方便快捷。

5.為什麼是三次握手不是兩次握手
保證資料保真有序(雙向)
攻擊形式以及發生的位置在第三次握手的時候

繼OSI,TCP-IP,對等網路通訊協議之後,再加上這篇TCP的三次握手和四次揮手,我們網路服務學習的地基便打牢了,接下來,我們拿著這兩把武器,殺入網路服務的戰場吧!!奧裡給!!

#以上圖片均來源於網路

相關文章