是否有可能產生不公平的乙太網 NIC?
乙太網 MAC 協議基於 CSMA/CD,它定義了一種公平衝突處理算法:
如果 NIC 檢測到衝突,它會發送阻塞信號並進入二進制指數退避:
在第 m 次連續碰撞後,NIC 從 {0,1,2,3, …, 2^m - 1} 中隨機選擇 K
網卡等待 K * 512 位次,然後返回發送步驟:
如果 NIC 檢測到通道空閒,則開始幀傳輸。
如果 NIC 檢測到通道忙,則等待通道空閒,然後傳輸。
我的問題是,是否有可能產生一個不公平地實現協議的網卡?如果是這樣,是否有任何理由這樣做?
即在所有情況下在嘗試重新傳輸之前總是等待 0 位時間,從而在存在競爭連接時給予客戶端更高的傳輸優先級。
對於通常是點對點的乙太網連接,主機似乎沒有理由斷言傳輸優先級,但我想知道我是否遺漏了什麼。
問候,
非常理論,但有趣的問題。我會試著回答這個問題:)
乙太網最初是基於電腦通過共享同軸電纜作為廣播傳輸介質進行通信的想法(例如 10-Base2、10-Base5 標準)。之後出現了帶有點對點 UTP 電纜的 10-BaseT,但整個網路仍然是一個很大的衝突域(因為使用了中繼器/集線器)。沒有一些衝突解決協議(如 CSMA/CD)的網路根本無法工作。這導致我們得出另一個結論:沒有正確處理 CSMA/CD 的 NIC 可能會阻塞整個共享衝突域,然後網路管理員將不得不嘗試定位工作站並將其標記為損壞:)
另一件事是,傳輸是雙向通信。如果只有一個 NIC 是具有“改進”延遲的一側,那麼您在流量優先級方面將一無所獲:物理連接的另一側(例如交換機)也必須實施“不公平”的協議。在當今的交換乙太網網路中,除了修改後的 NIC 之間的銅/光纖發生衝突的可能性更大之外,它不會產生任何影響。
最後但並非最不重要。乙太網協議是使用網卡上的晶片實現的。您必須找到一種方法來修改 NIC 本身的韌體。我想在大多數帶有硬編碼 fw 的現代 NIC 上,這可能是一項艱鉅的任務。
問候