2012-03-18 27 views
2

我正在學校項目中嘗試模擬Buffer Bloating的網絡現象。由於存儲器價格低廉,這實際上是延遲,因爲路由器中的緩衝區越來越大。使用tc的流量整形

現在,爲了開始這個項目,我已經對linux「tc」命令和如何使用它做了一些研究,但是我沒有看到如何爲我的需要設置正確的配置。情況如下;我有3臺電腦。 PC1連接到PC2,PC2連接到PC3。在此配置中,PC2充當使用大緩衝區的路由器。流量通過PC2從PC1發送到PC3。現在,我的意圖是限制PC2可用來將傳入數據從PC1發送到PC3的帶寬。

我打算通過在PC2上設置一個較大的緩衝區來獲取緩衝區中的數據包來模擬較慢的鏈接。這應該導致大緩衝區填滿並引入延遲。

現在,我想問一下這個社區關於如何通過使用「tc」命令或者其他適合這項工作的工具來配置它的想法。或者,如果您有關於如何模擬緩衝氣泡的其他想法,那麼也歡迎這些。

感謝您的耐心等待。

+2

已經閱讀LARTC(Linux的高級路由和流量控制HOWTO)http://lartc.org/howto/lartc.cookbook.ultimate-tc.html? – dAm2K 2012-03-18 11:43:32

+0

嗨,謝謝你的鏈接。我已經閱讀過,但它看起來相當先進,我正在尋找。我希望能找到大約2或3條線來設置這個東西。它確實指出我在其他方面尋找其他排隊學科。我會看看令牌桶。 – 2012-03-19 13:17:29

回答

2

我認爲有兩種方法來模擬腹脹,它取決於你使用的內核和/或iproute的版本。 TBFNETEM允許設置速率和隊列大小。

tc qdisc add dev eth0 root tbf rate Xmbit limit Y burst 1500 

tc qdisc add dev eth0 root netem Xmbit limit Y 

其中X是帶寬和Y隊列的大小。第一個應該可以在任何2.6內核中工作,並且可以在2.4的某個更新版本中使用。後者需要新版本的Linux內核和Iproute工具。

問候, 迭戈

+0

謝謝你的命令。我發現令牌桶確實可以滿足我的目的。我會在幾天內嘗試它(我沒有這裏的設備來測試它)並且會報告回來。 第二個命令在簡潔和優雅方面看起來很有前途。謝謝。 – 2012-03-19 13:18:57

+1

我已經使用你的第一個解決方案,它的工作就像一個魅力。稍微調整一下,我就找到了我需要的東西。謝謝您的回答。 – 2012-03-21 18:16:20