TCP/IPスタックのステップ実行 質問する

TCP/IPスタックのステップ実行 質問する

私はプロプライエタリな組み込みOSのQAエンジニアとして働いていました。彼らは独自のATNスタックデバッガーでステップ実行してみることは、ネットワークに関して私が経験した中で最も目を見張る体験でした。スタックの各層がパケットの各部分を構築するのを見るのは驚くべきものでした。そして、最終的に構築されたパケットが回線上で見られるようになったことは、さらに大きな意味を持ちました。

教育者として、私はこの経験を他の人と共有したいと思います。TCP/IP スタックをステップスルーする簡単な方法を知っている人はいますか? 理想的には、*BSD または Linux カーネルをデバッグするよりも簡単なものが欲しいのですが、これが唯一の選択肢である場合は、このプロセスに関するヒントやコツがあると便利です。Visual Studio または Eclipse を使用してユーザー モードで実行できる、C/C++ で記述されたリファレンス スタックが理想的です。

ベストアンサー1

これはすべて、何に焦点を当てたいかによって異なります。質問から判断すると、最も関心があるのは、さまざまなレイヤー全体のデータ フロー (ユーザー空間ストリーム -> ケーブル上の電圧) です。

これには、http://www.csse.uwa.edu.au/cnet/は完全なネットワーク シミュレーターです。スタックのすべてのレベルをステップ実行できます。

実際のシステムでは、レイヤー 3、レイヤー 2、レイヤー 1 (イーサネット、チップ上の CRC チェック ファームウェア、ハードウェア MAC) が常に明確に区別されます。OS に入り込むのに苦労し、実装の詳細の一部は学生にとって煩雑でわかりにくいものになります。Linux の場合、TCP/IP スタック設計を理解するにはカーネル インフラストラクチャを説明する必要があります。

TCP/IP部分だけに興味がある場合は、次のような組み込みTCP/IPスタックを使用することをお勧めします。http://www.sics.se/~adam/lwip/これを単純なユーザー空間プログラムに組み込むことで、TCP/IP パケットを完全に構築できます。

TCP/IP スタックをステップスルーしているときには対処できないネットワーク通信の側面が多数あることに注意してください。中間には、メディア アクセスや衝突などを制御する MAC チップがまだあります。その下には、すべてを電気/光信号に変換する PHY チップがあり、MAC と PHY 間の通信を処理するプロトコルもあります。また、キューイング、同時実行、OS リソース割り当てなどに関連するすべての側面を確認できるわけではありません。全体像には、ネットワーク シミュレーターでのみ確認できるこれらの側面がすべて含まれている必要があります。

おすすめ記事