TCP/IP詳解 第十二章(5) 什麼是syncookies

如果 SYN 半連接隊列已滿,只能丟棄連接嗎?

並不是這樣,開啓 syncookies 功能就可以在不使用 SYN 半連接隊列的情況下成功建立連接,在前面我們源碼分析也可以看到這點,當開啓了  syncookies 功能就不會丟棄連接。

syncookies 是這麼做的:服務器根據當前狀態計算出一個值,放在己方發出的 SYN+ACK 報文中發出,當客戶端返回 ACK 報文時,取出該值驗證,如果合法,就認爲連接建立成功,如下圖所示。

syncookies 參數主要有以下三個值:

  • 0 值,表示關閉該功能;

  • 1 值,表示僅當 SYN 半連接隊列放不下時,再啓用它;

  • 2 值,表示無條件開啓功能;

那麼在應對 SYN 攻擊時,只需要設置爲 1 即可:

巨人的肩膀

[1] 系統性能調優必知必會.陶輝.極客時間.

[2] https://blog.cloudflare.com/syn-packet-handling-in-the-wild

【3】https://mp.weixin.qq.com/s/2qN0ulyBtO2I67NB_RnJbg

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