要想做限速,必須要知道以下幾點:
首先要知道自己要限制什麼的速度,誰的速度,於是需要用的標記,即mangle。
最後要知道所做的限速是否成功,即需要知道如何檢查!
1、標記(mangle)
這是很有學問的一件事情,ros對資料報的標記不是很好,必須要通過標記連線以後再來標記資料報!
即,先通過mark connection,再通過connection來mark packet!(問:為什麼非要標記成packet,不能直接用connection?)
mark的時候需注意passthrough,前面標記過的connection且勾選了passthrough,後面條件符合該連線的時候就會標記成後面的連線。
每個連線只會有乙個標記!切記,切記!
2、parent(父節點)
個人感覺很有意思的意見事情,因為ros的幫助文件中明確說明了,ros是管出不管入,而前面標記的都是整個連線的資料報(既有上行,又有下行!)
在設定htb的時候,父節點設定為wan口就為上行的流量,父節點為lan口就為下行的流量。(這點很重要,外網網絡卡和內網閘道器分別對應up和down!)
此外,父節點僅負責流量的整形與優先順序的排隊,並不儲存任何資料報,即它是不存在任何佇列的!(即在佇列優先順序裡,父節點的優先順序是沒有意義的!!!)
3、firewall(防火牆)
通過ros所有的連線都是掌控在firewall的法眼中的,通過connection的標籤可以很容易的觀察到所有使用者的連線情況。
在connection mark中很容易看到某條連線是被自己標記成了什麼,最好的情況是所有的連線均被標記,這樣後面的htb才比較準確!
這是至關重要的一步,如果connection都沒有被打上標記,限速注定是失敗的!
4、queue tree
只需要說一點,某個節點只要被其他節點認成parent,它就失去了packet mark的權利!
這也是第一點中為什麼標記成packet而不直接用connection的原因!
只要葉子節點在packet mark中選中標記的packet才有效!
5、limit at & max limit
很多人誤解max limit是最好的限速工具,其實不然,在htb中最重要的是limit at(個人簡介)!
ros總是保證了limit at以後才有閒心去檢測max limit!
說的比較籠統,理解靠個人!
專案失敗原因分析
今天,x專案基本宣告失敗,這對我的人生是乙個比較重大的打擊。過去乙個人做專案,也遇到過失敗,但此次的失敗讓人覺得很無賴,讓我覺得根本無法控制與扭轉整個局面,並且我自己也精疲力盡,無力再堅持下去。1.x專案從一開始就有乙個致命的因素 面對的不是終端使用者,而是專案的轉包人。因此並不能與客戶直接溝通,不...
失敗原因 漏斗胸手術失敗的原因分析
提要 漏斗胸本是一種非常簡單的手術,為什麼會失敗呢?最基本的原因有兩條,乙個是不專業的人士做手術,另乙個是技術不紮實的人做手術。漏斗胸手術目前被較為廣泛地開展,各種醫生都在做這樣的手術,兒科醫生做,胸外科醫生做,胸心外科醫生做,心臟外科醫生做,胸壁外科醫生做,骨科醫生和中醫大夫也開始摩拳擦掌,準備一...
fopen函式失敗原因分析以及分析原因的方法
最近在分析乙個偶現的問題,偶現概率特別低,問題還在分析中。把分析的知識做個總結,後面再繼續補充。在呼叫lua的require函式時發生異常,通過檢視require的原始碼跟蹤,發現該函式的fopen函式返回開啟檔案失敗的異常,下面就來總結下fopen開啟檔案出錯可能有哪些原因,也許不全,歡迎補充。函...