2

ネットワークと OSI モデル、および 7 つのレイヤーすべてを研究しています。各レイヤーが独自のヘッダーを配置し、受信側で削除する方法と同様です。

JavaまたはCまたはC ++でプログラムを作成し、レイヤーで行われる各ステップを手動で実行して、実際にどのように機能するかを実際に知る方法はありますか

編集: まずローカルで検討します。たとえば、データ ワード "hello" があり、それを OSI モデルをシミュレートする別の実行中のプログラムに送信したいと考えています。その言葉はすべての層を通過し、OSIのようにヘッダーやものを追加し、実行中の他のプログラムがそれを受け取ります。

基本的に TCP/IP プロトコルはプログラムする必要があると思いますが、経験のある人ならもっとうまくできるかもしれません

次に、ビットを手動で変更して、エラー制御が正常に機能するかどうかを確認できます

4

1 に答える 1

3

OSI モデルには 7 つのレイヤーがあるため、次のようになります。

  1. 物理的
  2. リンク
  3. 通信網
  4. 輸送
  5. セッション
  6. プレゼンテーション
  7. 応用

それを Java (または C) 環境でエミュレートしたい場合は、適度な量の作業を行う必要があります。

シミュレーションでは、おそらく通常の TCP/IP ソケット レイヤーを物理レイヤーとして扱います。シミュレーションでは、エンドポイント間の接続を実現します。これは非常に信頼性の高い物理層ですが、すべてを備えているわけではありません。

次に、データをパケットに入れたり、パケットを分割したり、ヘッダーやチェックサムを追加したりする適切なコードを使用して、連続するレイヤー (リンク、ネットワーク、トランスポート、セッション、プレゼンテーション、アプリケーション) のそれぞれをシミュレートできます。アプリケーションを除く各層には 2 つのインターフェイスがあります。下向きインターフェイス (下位層への) と上向きインターフェイス (上位層への) です。レイヤーごとに適切な操作を決定する必要があります。最小限のセットは、オープン、クローズ、読み取り、書き込みである可能性があります。

私は単純なものから始めます - 下または上 (どちらの方向でも機能します)。とにかくアプリケーションが必要なので (他に何もなければテスト コード)、そこから始めることもできます。以前の機能が引き続き機能するように、追加のレイヤーを追加してコードを連続的に改良します。アプリケーション層が必要な情報をデータリンク層に伝える方法を考え出す必要があります。これにより、正しいソケット呼び出しが行われるようになります。

楽しむ。

于 2011-01-16T19:01:16.343 に答える