ソフトウェアでイーサネットフレームエラーを確実に生成するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/6329583

質問

質問:

ケーブル障害検出ソフトウェアのセクションをテストしていますが、cat5ケーブルでケーブル障害を確実かつ再現性よく生成したいと考えています。

現在、1メートルの長さのねじれていないケーブルを使用しており、電源装置の横でケーブルを手動でくねらせていますが、アプリケーションで障害を検出できません(イーサネットASICからイーサネット障害カウンターを読み取っています) 。)これは、障害が生成されていないためか、ソフトウェア/ハードウェアの検出に障害があるためか、わかりません。

ソフトウェアでこれを行う方法はありますか?

JavaやPythonなどの高級言語で何かを書くことに決め、最後の手段としてCでまとめることをいとわないでしょうが、イーサネットドライバーを純粋に書き直したくはありません。考えられるバグを修正します。

[編集]:ケーブル障害を作成したいのですが、検出しません。

[編集]:ドクターケーブルに問題なくFTPとSCPを介して大きなファイルを転送しましたが、wiresharkでトラフィックを検査しているときにエラーが発生していません

[編集]: Pythonでの同様の質問

解決策:

まあ、Cとの戦いに1日以上費やした後、これはPythonソリューションです。

最初にイーサネットカードの自動チェックサムを無効にします: ジェネラコディセタグプレ

次に、Pythonから危険なフレームを送信します: ジェネラコディセタグプレ

複雑にする必要があると誰が言ったのか...

PS: Pythonが大好きです。

役に立ちましたか?

解決

Cで作業している場合は、socket(AF_PACKET, SOCK_RAW, ...)を使用して生のイーサネットフレームを送信し、自分で生成した生のバッファへのポインタを渡すことができます(たとえば、 wikipedia )。

これを行ってから久しぶりなので、代表的なコードスニペットを作成するつもりはありません...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top