來源:互聯網
上載者:User
關鍵字
Linux
流量控制
頻寬管理
佇列規定
高級路由
現在,當我搞清楚這一切之後,我真的大吃一驚。 Linux 2.2/2.4完全能象那些最高端的專用頻寬管理系統一樣來管理頻寬。 甚至比框架轉送和ATM還要優秀。
為避免概念混亂,tc 採用如下規定來描述頻寬:
mbps = HTTP://www.aliyun.com/zixun/aggregation/12560.html">1024 kbps = 1024 * 1024 bps => byte/s
mbit = 1024 kbit => kilo bit/s.
mb = 1024 kb = 1024 * 1024 b => byte
mbit = 1024 kbit => kilo bit.
內定:數位以bps和b方式儲存。
但當tc輸出速率時,使用如下表示:
1Mbit = 1024 Kbit = 1024 * 1024 bps => byte/s
1. 解釋佇列和佇列規定
利用佇列,我們決定了資料被發送的方式。 必須認識到,我們只能對發送資料進行整形。
根據Internet的工作方式,我們無法直接控制別人向我們發送什麼資料。 有點象我們家裡的信報箱,你不可能控制全世界,聯繫每一個人,修改別人對你發送郵件的數量。
然而,Internet主要依靠TCP/IP,它的一些特性很有用。 因為TCP/IP沒辦法知道兩個主機之間的網路容量,所以它會試圖越來越快地發送資料(所謂的「慢起技術」) ,當因為網路容量不夠而開始遺失資料時,再放慢速度。 實際情況要比這種方法更聰明,我們以後再討論。
這就象當你尚未讀完一半郵件時,希望別人停止給你寄信。 與現實世界不同,在Internet上可以做到這一點。 (譯注:這個例子並不恰當,TCP/IP的這種機制並不是在網路層實現的,而是要靠傳輸層的TCP協定)
如果你有一個路由器,並且希望能夠防止某些主機下載速度太快,你需要在你路由器的內網卡——也就是向你的網內主機發送資料包的網卡——上進行流量整形。
你還要保證你正在控制的是瓶頸環節。 如果你有一個100M乙太網卡,而你的路由器的鏈路速度是256k,你必須保證你發送的資料量沒有超過路由器的處理能力。 否則,就是路由器在控制鏈路和對頻寬進行整形,而不是你。 可以說,我們需要擁有的佇列必須是一系列鏈路中最慢的環節。 幸運的是這很容易。