TCP 的三次握手和四次揮手,瞭解泛洪攻擊麼
引言
- TCP 建立連線與斷開連線的過程
- TCP 泛洪攻擊(TCP 建立連線過程中的攻擊手段)與防護
TCP 建立連線與斷開連線的過程
TCP 三次握手(連線過程)
第一次握手
客戶端向服務端傳送連線請求報文段。該報文段中包含自身的資料通訊初始序號。請求傳送後,客戶端便進入 SYN-SENT 狀態。
第二次握手
服務端收到連線請求報文段後,如果同意連線,則會傳送一個應答,該應答中也會包含自身的資料通訊初始序號,傳送完成後便進入 SYN-RECEIVED 狀態。
第三次握手
當客戶端收到連線同意的應答後,還要向服務端傳送一個確認報文。客戶端發完這個報文段後便進入 ESTABLISHED 狀態,服務端收到這個應答後也進入 ESTABLISHED 狀態,此時連線建立成功。
為什麼需要三次握手,2次不行嗎?
喂喂喂,我是A,你聽的到嗎? B:在在在,我能聽到,我是B,你能聽到我嗎? A:(聽到了,老子不想理你) B:喂喂喂?聽不聽到?我X,對面死了,我掛了。。
如果只有 2 次的話,B 並不清楚 A 是否收到他發過去的資訊。
TCP 四次揮手(斷開連結)
第一次揮手
若客戶端 A 認為資料傳送完成,則它需要向服務端 B 傳送連線釋放請求。
第二次揮手
B 收到連線釋放請求後,會告訴應用層要釋放 TCP 連結。然後會傳送 ACK 包,並進入 CLOSE_WAIT 狀態,此時表明 A 到 B 的連線已經釋放,不再接收 A 發的資料了。但是因為 TCP 連線是雙向的,所以 B 仍舊可以傳送資料給 A。
第三次揮手
B 如果此時還有沒發完的資料會繼續傳送,完畢後會向 A 傳送連線釋放請求,然後 B 便進入 LAST-ACK 狀態。
PS:透過延遲確認的技術(通常有時間限制,否則對方會誤認為需要重傳),可以將第二次和第三次握手合併,延遲 ACK 包的傳送。
第四次揮手
A 收到釋放請求後,向 B 傳送確認應答,此時 A 進入 TIME-WAIT 狀態。該狀態會持續 2MSL(最長報文段壽命,指報文段在網路中生存的時間,超時會被拋棄) 時間,若該時間段內沒有 B 的重發請求的話,就進入 CLOSED 狀態。當 B 收到確認應答後,也便進入 CLOSED 狀態。
SYN 泛洪攻擊
我們已經知道,TCP 只有經過三次握手才能連線,而 SYN 泛洪攻擊就是針對 TCP 握手過程進行攻擊:
-
攻擊者傳送大量的 SYN 包給伺服器(第一次握手成功)
-
伺服器回應(SYN + ACK)包(第二次握手成功)
-
但是攻擊者不回應 ACK 包(第三次握手不進行)
導致伺服器存在大量的半開連線,這些半連線可以耗盡伺服器資源,使被攻擊伺服器無法再響應正常 TCP 連線,從而達到攻擊的目的
幸運的是,一種稱為 SYN cookie 的有效防禦現在已部署在大多數主要的作業系統中:
- 在客戶端傳送 SYN 報文給伺服器(第一次握手),服務端收到連線請求報文段後,伺服器不會為此SYN建立半開連線,而是生成一個序列號(所謂的 cookie)一起傳送給客戶端(第二次握手),在這個階段,伺服器不會為該連線分配任何資源
- 客戶端返回 ACK 報文給伺服器(第三次握手),伺服器會驗證這個 cookie 值,只有驗證成功才建立 TCP 連線,分配資源
- 如果客戶端沒有返回 ACK 報文給伺服器,也不會對伺服器造成任何的傷害,因為伺服器沒有分配任何資源給它
每天三分鐘,進階一個前端小 tip
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4729/viewspace-2797417/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- TCP三次握手和四次揮手TCP
- 圖解TCP的三次握手和四次揮手圖解TCP
- TCP三次握手四次揮手TCP
- TCP三次握手&四次揮手TCP
- TCP 三次握手四次揮手TCP
- TCP三次握手和四次揮手理解TCP
- TCP的三次握手四次揮手TCP
- 詳解TCP一:三次握手、四次揮手TCP
- TCP 三次握手 與 四次揮手TCP
- TCP 、 UDP、三次握手、四次揮手TCPUDP
- TCP三次握手與四次揮手TCP
- 簡述TCP三次握手和四次揮手TCP
- TCP的三次握手與四次揮手詳解TCP
- TCP的三次握手與四次揮手TCP
- 說說TCP的三次握手和四次揮手TCP
- TCP協議的三次握手和四次揮手TCP協議
- TCP連線為什麼三次握手和四次揮手TCP
- TCP三次握手、四次揮手概念圖詳解TCP
- TCP協議中的三次握手和四次揮手(圖解)TCP協議圖解
- TCP 三次握手和四次揮手及其狀態TCP
- TCP/IP的三次握手與四次揮手詳解TCP
- TCP三次握手四次揮手介紹TCP
- TCP三次握手及四次揮手理解TCP
- 看圖理解TCP的三次握手和四次揮手TCP
- 說說TCP為什麼需要三次握手和四次揮手?TCP
- TCP 三次握手和四次揮手圖解(有限狀態機)TCP圖解
- TCP-三次握手和四次揮手簡單理解TCP
- TCP協議特點和三次握手/四次揮手TCP協議
- 跟著動畫學TCP三次握手和四次揮手動畫TCP
- 談談TCP協議的三次握手和四次揮手TCP協議
- 詼諧的談談TCP三次握手和四次揮手TCP
- tcp三次握手、四次揮手過程解析TCP
- 【網路】TCP協議中三次握手和四次揮手TCP協議
- TCP:三次握手和四次揮手,面試無死角答覆TCP面試
- 網路協議 - TCP/IP 三次握手和四次揮手協議TCP
- 跟著動畫學習 TCP 三次握手和四次揮手動畫TCP
- tcp三次握手和SYN攻擊TCP
- Wireshark抓包分析TCP“三次握手,四次揮手”TCP