SYN Flood攻擊的基本原理及防禦

2021-06-05 08:36:57 字數 1287 閱讀 3970

1.       tcp中的syn flooding攻擊原理:

要明白這種攻擊的基本原理,還是要從

tcp連線建立的過程開始說起。由於 tcp基於連線的,為了在服務端和客戶端之間傳送tcp資料,必須先建立乙個虛擬電路,也就是tcp連線,建立tcp連線的過程也就是我們熟悉的「三次握手」過程:首先,請求端(客戶端)傳送乙個包含syn標誌的tcp報文,表示客戶端欲發起通訊連線;第二步,伺服器在收到客戶端的syn報文後,將返回乙個syn+ack的報文,表示客戶端的請求被接受;第三步,客戶端也返回乙個確認報文ack給伺服器端,到此乙個tcp連線完成。問題就出在tcp連線的三次握手中,假設乙個使用者向伺服器傳送了syn報文後突然宕機或掉線,那麼伺服器在發出syn+ack應答報文後是無法收到客戶端的ack報文的,這種情況下伺服器端一般會重試(再次傳送syn+ack給客戶端)並等待一段時間後丟棄這個未完成的連線,這段時間的長度我們稱為syn timeout,一般來說這個時間是分鐘的數量級(大約為30秒-2分鐘);如果有乙個惡意的攻擊者大量模擬這種情況,伺服器端將為了維護乙個非常大的半連線列表而消耗非常多的資源,最終導致伺服器端忙於處理攻擊者偽造的tcp連線請求而無暇理睬客戶的正常請求,此時從正常客戶的角度看來,伺服器失去響應,這種情況我們稱作:伺服器端受到了syn flooding攻擊。

2.       sctp是如何防止syn flooding攻擊的:

sctp是通過「四次握手」的方法來建立乙個sctp鏈結的。具體過程如下:首先請求端傳送乙個init訊息到服務端;服務端收到這個init訊息後,準備好建立本次連線所需要的相關資訊,並將這些資訊放在乙個叫「state cookie」的資料塊中,接下來服務端給請求端傳送乙個init_ack的訊息,init_ack中包含了這個「state cookie」,同時服務端會把和本次鏈結相關的所有資源釋放掉,不維護任何資源和狀態;請求端收到init_ack後會把裡面的「state cookie」資訊取出來重新封裝乙個cookie_echo發往服務端;服務端收到cookie_echo訊息後再次去除其中的「state cookie」,依據「state cookie」中儲存的資訊建立本次鏈結,並向請求端傳送cookie_ack訊息。由此可見sctp為了避免syn flooding攻擊採用了一種比較聰明的辦法就是:服務端不維護半鏈結資訊,而是把半鏈結資訊傳送給請求端(存放在「state cookie」中),如果請求端確實需要建立這個鏈結,那麼請求端需要再把半鏈結資訊回送給服務端,這時服務端便可以根據返回的半鏈結資訊建立連線了。

3.       tcp和sctp建立連線過程示意圖:

mysql的基本原理 Mysql 基本原理

mysql 基本原理 mysql是一種關聯式資料庫管理系統,關聯式資料庫將資料儲存在不同的表中,而不是將所有資料放在乙個大倉庫內,這樣就增加了速度並提高了靈活性 ysql是資料庫登入命令 uroot預設超級使用者登入 p 預設沒密碼 中寫密碼 mysqladmin uroot password 12...

pwm控制的基本原理 PWM控制的基本原理

pwm pulse width modulation 控制 脈衝寬度調製技術,通過對一系列脈衝的寬度進行調製,來等效地獲得所需要波形 含形狀和幅值 pwm控制技術在逆變電路中應用最廣,應用的逆變電路絕大部分是pwm型,pwm控制技術正是有賴於在逆 變電路中的應用,才確定了它在電力電子技術中的重要地位...

8 2 1 基本原理

乙個舞台動畫物件在包含許多舞台資訊 出現在何處,佔多大面積,處在什麼角度,是否可見 這些資訊分別儲存在動畫物件的屬性中。在 中讀取這些屬性可以了解物件的位置 大小 角度等狀態資訊 修改這些屬性可以改變物件的位置 大小 角度等狀態。如果從資料的角度去理解,動畫就是在固定時間間隔點不斷修改動畫物件某項屬...