2011-10-16 58 views
4

我最近在網絡(CCNA 1到4)中採用了一些類,所以我理解了它背後的大部分理論。我現在想做的就是把這些知識帶到一些小應用程序的實踐中去。OSI第2層網絡編程

我一直在閱讀關於如何做到這一點的MSDN上的一些文章,但他們似乎只覆蓋了第3層或第4層以上的網絡編程,IIRC。我正在尋找的是一些簡單的如何處理主機之間的第二層連接(即成幀)的例子,甚至只是簡單的如何執行以太網廣播。

我對C#和C++有一點經驗,所以使用這兩種語言的例子都很棒。

謝謝。

+2

「有點經驗」可能不是低級編程的重要基礎...... –

回答

4

對於Windows,請查看WinPcap,它提供了低級別網絡訪問。開發者包已經包含了一些簡單的例子,讓你開始。

順便說一句,在Linux上有packet sockets

1

很可能,您可以在GNU/Linux系統上研究低級網絡實用程序,或者查看內核TCP或UDP或IP層。但是,例如,做一個以太網廣播是非常低的水平,並不是很有用。實際的例子(通常用C語言編寫,而不是C++)可能不是很簡單,因爲它們必須處理錯誤處理。

4

您可以使用eEx Network Library來編寫小應用程序(在我的CCNA中,我做了同樣的事情)。

它是一個易於使用和麪向對象的.Net編程庫,它允許您下到第2層並通過WinPcap發送自定義幀。

實現了以太網,ARP,IP,UDP,TCP和RIP等幀類型,據我所知,這些是在CCNA期間發生的協議。

C#中的教程可用here,如果您想深入瞭解某些東西,比如地址解析,您可以隨時查看源代碼,因爲該庫是開源的。