/ / OSIレイヤ2ネットワークプログラミング - C#、C ++、ネットワークプログラミング、イーサネット、データリンクレイヤ

OSIレイヤ2ネットワークプログラミング - c#、c ++、ネットワークプログラミング、イーサネット、データリンクレイヤ

私は最近、ネットワーキングでいくつかのクラスを取った(CCNA 1〜4)ので、私はそれの背後にある理論の大部分を理解しています。私が今したいのは、私が持っている知識を取り入れて、小さなアプリケーションの形で実践することです。

私はこれを行う方法についてMSDNのいくつかの記事を読んできましたが、レイヤ3または4以上のIIRCのネットワークプログラミングだけをカバーするようです。 単純 ホスト間のレイヤー2接続(つまりフレーミング)を扱う方法の例、またはイーサネットブロードキャストの実行方法のような単純なものですらあります。

私はC#とC ++で少し経験があるので、どちらかの言語を使用する例は素晴らしいでしょう。

ありがとう。

回答:

回答№1は4

Windowsの場合は、見てください WinPcap 低レベルのネットワークアクセスを提供します。デベロッパーパックには、既に簡単な例がいくつか用意されています。

ところで、Linuxでは パケットソケット.


回答№2については4

あなたは eExネットワークライブラリ 小さなアプリを書く(私は自分のCCNAで同じことをしている)。

これは使いやすいオブジェクト指向の.Netプログラミングライブラリで、レイヤ2に移動してWinPcap経由でカスタムフレームを送信することができます。

イーサネット、ARP、IP、UDP、TCP、RIPなどのフレームタイプが実装されています。私が知る限り、これらはCCNAで発生するプロトコルです。

C#のチュートリアルは利用可能です ここにまた、アドレス解決のような詳細を見るには、ライブラリがオープンソースなので、いつでもソースコードを見ることができます。


回答№3の場合は1

おそらく、あなたは低レベルのネットワークを勉強することができますユーティリティをGNU / Linuxシステム上で実行するか、カーネルのTCPまたはUDPまたはIPレイヤーを調べます。しかし、例えば、イーサネット(登録商標)放送を行うことは非常に低レベルであり、あまり有用ではない。そして、実際の例(通常C言語ではなくC言語でコード化されています)は、おそらくエラー処理に対処する必要があるため単純なことはできません。