2010-10-06 23 views
2

這些問題與網絡基礎有關,但我還沒有找到答案!1具有兩個網卡的Linux PC無法爲測試系統產生網絡通信

問題1: 一個100Mbps的交換機能處理兩個同時運行在100Mbps的TCP流嗎?爲了說明這一點,如果你有1臺交換機上有4臺PC(沒有其他連接的情況下是100Mbps),並且你有兩個獨立的流,它們將達到什麼樣的速度?一個數據流會影響其他速度,還是內部處理很多數據流的速度足夠快?

2 streams on one network


問題2: 我有一個專用的網絡交換機上設置了1臺PC(Linux)上,該PC有2張網絡接口卡(NIC)。兩個網卡都有不同的IP地址「並且工作正常。如果我從一個NIC發送任何數據到另一個網絡交換機絕對沒有流量發送。它認爲內核是智能的並且無需在網絡上發送任何東西,因爲IP位於同一臺PC上。我如何關閉此功能?

alt text


由於我沒有在現實世界中獲得4 PC的我無法測試的問題1。這些問題很簡單,但同時很難回答。

謝謝!

+0

您是否將測試套接字綁定到某個特定網卡的IP地址? – MarkR 2010-10-06 16:52:12

+0

是的 - 我實際上使用D-ITG流量生成器,並將服務器和客戶端綁定到不同的網絡接口(必須使用root用戶完成)。每個網絡接口都有不同的IP地址。有任何想法嗎? – ross 2010-10-07 08:48:58

回答

1

問題1:是的,任何100Mb/s交換機都應該能夠處理兩個獨立的100Mb/s數據流,因爲每個端口都是100Mb/s,而不是交換機本身。流量不會觸及CPU,除非它絕對需要,此時交換機可能會出現瓶頸並放慢速度。雖然正常的流量應該沒問題。

問題2:您需要編寫一個程序來手動執行,或者在網上找到一個。我建議看看Libnet。

問題是內核知道它擁有這兩個卡,所以它不會打擾實際上在網絡上發送數據。使用Libnet,您可以手動構建數據包並將其發送出特定的界面。但是,主要的技巧是你需要在兩個方向上發送流量(並不是很多;你不應該每分鐘向一個方向發送超過1個數據包,其他所有消息都沿着另一個方向發送)。問題在於交換機不知道數據包應該放在哪裏,並將它們淹沒到所有端口,從而放慢一切。

+0

我希望交換機可以處理儘可能多的數據,因爲它有端口,但我不認爲它很簡單。我認爲「背板帶寬」符合我需要了解的內容。雖然對於更便宜的交換機,這個數字是不可用的(很好)。 – ross 2010-10-06 15:09:26

+0

我已經嘗試了綁定到接口的網絡流量生成器。它被稱爲D-ITG http://www.grid.unina.it/software/ITG/,但流量仍然沒有到達網絡交換機。 – ross 2010-10-06 15:11:16

+0

從技術上講,這是背板帶寬,你需要擔心,但如果你只談論兩個流然後應該沒有任何問題。 – Jonathan 2010-10-06 15:18:27

1

問題1的答案取決於交換機的背板帶寬--這是它可以在內部處理的總流量。如果它至少有200Mbps的背板帶寬,它可以支持兩個獨立的100Mbps流。

更便宜的交換機往往比更昂貴的「大鐵」交換機具有更少的背板帶寬。

至於問題2,你可以嘗試添加手動路由到你自己的IP地址,明確地指定外部設備(如果你檢查route -C,你會看到路由緩存有自己的路由通過迴環設備IP地址)。

+0

這是一個很棒的迴應:)我希望有一種方法可以找出交換機的背板帶寬。我剛剛嘗試過'路由',但它不想將IP綁定到接口(無效參數)。有任何想法嗎? – ross 2010-10-06 16:24:06

+0

@ross:我懷疑你需要使用原始套接字編寫程序,正如Jonathan所建議的。 – caf 2010-10-06 21:08:44