三次握手協議

2021-06-05 17:19:28 字數 1884 閱讀 4953

三次握手協議

所謂的「三握手」:對每次傳送的資料量是怎樣跟蹤進行協商使資料段的傳送和接收同步,根據所接收到的資料 量而確定的資料確認數及資料傳送、接收完畢後何時撤消聯絡,並建立虛連線。為了提供可靠的傳送,tcp 在傳送新的資料之前,以特定的順序將資料報的序號,並需要這些包傳送給目標機之後的確認訊息。tcp 總是用來傳送大批量的資料。當應用程式在收到資料後要做出確認時也要用到tcp。 syn:請求同步/同步序列號 ack:應答同步/確認欄位.

三次握手協議連線示意

在tcp/ip協議中,tcp協議提供可靠的連線服務,採用

三次握手建立乙個連線。

第一次握手:建立連線時,

客戶端傳送syn包(syn=j)到伺服器,並進入syn_send狀態,等待伺服器確認;

第二次握手:伺服器收到syn包,必須確認客戶的syn(ack=j+1),同時自己也傳送乙個syn包(syn=k),即syn+ack包,此時伺服器進入

syn_recv狀態;

第三次握手:客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=k+1),此包傳送完畢,客戶端和伺服器進入established狀態,完成三次握手。

完成三次握手,客戶端與伺服器開始傳送資料,在上述過程中,還有一些重要的概念:

未連線佇列:在三次握手協議中,伺服器維護乙個未連線佇列,該隊列為每個客戶端的syn包(syn=j)開設乙個條目,該條目表明伺服器已收到syn包,並向客戶發出確認,正在等待客戶的確認包。這些條目所標識的連線在伺服器處於syn_recv狀態,當伺服器收到客戶的確認包時,刪除該條目,伺服器進入established狀態。

syn-ack 重傳次數:伺服器傳送完syn-ack包,如果未收到客戶確認包,伺服器進行首次重傳,等待一段時間仍未收到客戶確認包,進行第二次重傳,如果重傳次數超過系統規定的最大重傳次數,系統將該連線資訊從半連線佇列中刪除。注意,每次重傳等待的時間不一定相同。

由於tcp 需要時刻跟蹤,這需要額外開銷,使得tcp 的格式有

三次握手協議

些顯得複雜。下面就讓我們看乙個tcp 的

經典案例,這是後來被稱為mitnick 攻擊中kevin 開創的兩種攻擊技術:

tcp 會話劫持和syn flood(同步洪流)當客戶端和伺服器在網路中使用tcp協議發起會話時,在伺服器記憶體中會開闢一小塊

緩衝區來處理會話過程中訊息的「握手」交換。會話建立資料報包含乙個syn片段,用於標識訊息交換中的序列號。而syn flood試圖摧毀這一過程。攻擊者快速傳送一連串連線請求,之後並不響應伺服器傳送回來的應答,造成三次握手無法完成,在伺服器上留下半開啟的連線,分配給他們的快取也被保留下來,使其他程式不能使用伺服器。儘管緩衝區中的資料報在沒有應答超過一段時間(通常3min)就會被丟棄,但大量虛假請求的後果是用於建立會話的合法請求難以建立。假設a 為攻擊者,b 為中介跳板機器(受信任的伺服器),c 為目的主機(多是伺服器)。

會話劫持的常用方法:使用

源路由(source routed)ip資料報,使位於網路上的a 參與到b與c的連線中。

會話劫持的常見型別:中間人攻擊。攻擊者a通過某種型別的資料報

嗅探程式偵聽b與c的資料傳輸,可以截獲他想要的任何資訊而不打斷會話。

會話劫持的方法:攻擊者a向正在通話的b傳送大量請求使其無暇響應合法使用者c,此時a**b的tcp序列號冒充b與c進行會話,騙取c的信任,從而達到攻擊的目的。

有效抵禦會話劫持的方法:使用加密傳輸。

三次握手協議

一 概念 osi參考模型中的網路層,在tcp ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線。第一次握手 建立連線時,客戶端傳送syn包 syn j 到伺服器,並進入syn send狀態,等待伺服器確認 第二次握手 伺服器收到syn包,必須確認客戶的syn ack j 1 同時自...

三次握手協議

一 什麼是三次握手協議 tcp ip建立連線的過程 三次握手協議指的是在傳送資料的準備階段,伺服器與客戶端之間需要進行三次互動。具體過程如下 第一次握手 建立連線時,客戶端向伺服器傳送乙個syn包 握手訊號 並計入syn sent狀態,等待伺服器確認。第二層握手 伺服器收到syn包,必須確認客戶端的...

三次握手協議

一 什麼是三次握手協議 tcp ip建立連線的過程 三次握手協議指的是在傳送資料的準備階段,伺服器與客戶端之間需要進行三次互動。具體過程如下 第一次握手 建立連線時,客戶端向伺服器傳送乙個syn包 握手訊號 並計入syn sent狀態,等待伺服器確認。第二層握手 伺服器收到syn包,必須確認客戶端的...