2011-12-06 5 views
4

トランスポート層は、データグラムパケットから送信元IPアドレスをどのように取得しますか? IPaddressはネットワークレイヤヘッダーにあり、トランスポートレイヤヘッダーには送信元ポートと宛先ポートのみが含まれていることをご理解ください。トランスポート層は、データグラムパケットから送信元IPアドレスをどのように取得しますか?

+0

をチェックしてみてください、私はあなたがrecvfrom'は、送信元アドレスを記入 'のように呼び出す方法を疑問に思うことを推測していますか?私は、Linux、BSD、またはオープンネットワークスタックを備えた他のオペレーティングシステムへのソースを読むことをお勧めします。これはOS依存性が高いためです。 –

答えて

0

トランスポートレイヤーは取得できませんデータグラムパケットからのIPアドレス

  • 上位層アプリケーションは、ネットワーク層にパケットを送信します。データグラムが宛先に送信元から送られ

    、ここでIPデータグラムを移動するときにどのように動作するかの簡単な手順です。

  • チェックサムと共にデータの計算。
  • IPヘッダーとデータグラムが構築されました。
  • ゲートウェイ経由でルーティングされます。
  • 各ゲートウェイのIPレイヤーはチェックサムを実行します。チェックサムが一致しない場合は、 データグラムが破棄され、エラーメッセージが送信側のマシン に返されます。途中で、TTLが0に減少すると、同じ 結果が発生します。そして、宛先アドレスルーティングパスは、データグラムが ネットワークを通過する毎に、 と決定されます。
  • データグラムは宛先のネットワークレイヤに到達します。
  • チェックサム計算が実行されました。
  • IPヘッダーが取り出されました。
  • メッセージは上位アプリケーションに渡されます。

EDIT

アプリケーションは、IPアドレスとサービスポートの組み合わせであるデータ伝送のそのエンドポイントへのソケットを結合します。次に、このバインディングを使用して、アプリケーション層のどのアプリケーションに移動する必要があるかを判断します。

たとえば、アプリケーションAは特定のポートXにUDPサービスを提供しています。アプリケーションAが起動すると、ポートXに接続しようとします。ポートが使用中であるためにバインドできない場合は、システムはアプリケーションが処理しなければならないエラーを発生させます。また、OSIアーキテクチャにおいて、各層は、データの実際の伝送のために、その下の層に依存し、それ自体の意図された目的のために特定の機能を追加または提供する。

RFC

による概念的UDPヘッダに接頭疑似ヘッダは 送信元アドレス、宛先アドレス、プロトコル、およびUDP 長さを含みます。この情報は、間違ったデータグラムに対する保護を提供します。 このチェックサムプロシージャは、TCPで使用されるものと同じです。仕様の詳細については

RFCにUser Datagram Protocol

+0

これは質問に答えませんでした。彼は明らかにIPヘッダーにアクセスできないので、トランスポートレイヤー(またはアプリケーションレイヤー)のような上位レイヤーがIPアドレスを決定する方法を尋ねています。 –

+0

彼の質問は、上位層が明らかにIPアドレスを知っているので、どこかから得ていることは明らかです。彼らはどうしていますか? –

+0

@JonathanM私はRFCにいくつかの説明とリンクを追加しました。 –

関連する問題