Linux
在 iptables 上丟棄數據包 = 浪費頻寬?
最近我在我的 iptables 上這樣做:
-A INPUT -p tcp --dst 192.168.0.0/16 -m hashlimit --hashlimit-above 32/sec --hashlimit-mode dstip --hashlimit-name hosts -j DROP
似乎如果我的客戶端以高於 32 pkt/s 的速率從網路接收數據包,iptables 真的會丟棄它,我的問題是丟棄的數據包是否被浪費了?還是 TCP 協議會適應它,所以它會請求更少的數據包?
僅僅因為您的伺服器沒有響應流量並不能否定它的存在:(
iptables
或任何其他“本地”防火牆)“丟棄”數據包在技術上等同於讓某人對您大喊大叫而不回答。TCP 會將“丟棄”的數據包視為失去,並且連接的另一端應自動限制自身(丟棄的數據包將被重試,發送系統將降低其傳輸速率,直到它不再看到封包遺失) ,但這可能需要一段時間才能使發送速率穩定下來。
(把這想像成技術相當於每三分之一的人在試圖引起你的注意時回答喊叫的人——最終他們會得到提示並開始只問一次。希望如此。)。