トランスポート層は、データグラムパケットから送信元IPアドレスをどのように取得しますか? IPaddressはネットワークレイヤヘッダーにあり、トランスポートレイヤヘッダーには送信元ポートと宛先ポートのみが含まれていることをご理解ください。トランスポート層は、データグラムパケットから送信元IPアドレスをどのように取得しますか?
答えて
トランスポートレイヤーは取得できませんデータグラムパケットからのIPアドレス
- 上位層アプリケーションは、ネットワーク層にパケットを送信します。データグラムが宛先に送信元から送られは
、ここでIPデータグラムを移動するときにどのように動作するかの簡単な手順です。
- チェックサムと共にデータの計算。
- IPヘッダーとデータグラムが構築されました。
- ゲートウェイ経由でルーティングされます。
- 各ゲートウェイのIPレイヤーはチェックサムを実行します。チェックサムが一致しない場合は、 データグラムが破棄され、エラーメッセージが送信側のマシン に返されます。途中で、TTLが0に減少すると、同じ 結果が発生します。そして、宛先アドレスルーティングパスは、データグラムが ネットワークを通過する毎に、 と決定されます。
- データグラムは宛先のネットワークレイヤに到達します。
- チェックサム計算が実行されました。
- IPヘッダーが取り出されました。
- メッセージは上位アプリケーションに渡されます。
EDIT
アプリケーションは、IPアドレスとサービスポートの組み合わせであるデータ伝送のそのエンドポイントへのソケットを結合します。次に、このバインディングを使用して、アプリケーション層のどのアプリケーションに移動する必要があるかを判断します。
たとえば、アプリケーションAは特定のポートXにUDPサービスを提供しています。アプリケーションAが起動すると、ポートXに接続しようとします。ポートが使用中であるためにバインドできない場合は、システムはアプリケーションが処理しなければならないエラーを発生させます。また、OSIアーキテクチャにおいて、各層は、データの実際の伝送のために、その下の層に依存し、それ自体の意図された目的のために特定の機能を追加または提供する。
RFC
による概念的UDPヘッダに接頭疑似ヘッダは 送信元アドレス、宛先アドレス、プロトコル、およびUDP 長さを含みます。この情報は、間違ったデータグラムに対する保護を提供します。 このチェックサムプロシージャは、TCPで使用されるものと同じです。仕様の詳細については
これは質問に答えませんでした。彼は明らかにIPヘッダーにアクセスできないので、トランスポートレイヤー(またはアプリケーションレイヤー)のような上位レイヤーがIPアドレスを決定する方法を尋ねています。 –
彼の質問は、上位層が明らかにIPアドレスを知っているので、どこかから得ていることは明らかです。彼らはどうしていますか? –
@JonathanM私はRFCにいくつかの説明とリンクを追加しました。 –
- 1. ルートから送信元アドレスを取得
- 2. TCP/IP ACK送信者:トランスポート層またはアプリですか?
- 3. トランスポート層(TCPおよびUDP)はIPヘッダー(送信元IP、宛先IPなど)を読み取り/検査しますか?
- 4. ないIPアドレスの送信元アドレスは
- 5. Cでpcapからネットワーク層とトランスポート層プロトコルを取得するにはどうすればよいですか?
- 6. レイヤ3(ネットワーク層)はどのようにIPアドレスを認識しますか?
- 7. Azureロードバランサ - 送信元IPアドレスが悪い
- 8. PyAMF:どのようにしてクライアントのIPアドレスを取得しますか?
- 9. esp8266のマルチキャストメッセージから送信元アドレスを探しますか?
- 10. アップルのメールの「送信元」または送信者のアドレスを取得
- 11. ejbコールでどのように呼び出し元のIPアドレスを取得できますか?
- 12. FirebaseデータベースのIPアドレスはどのように取得できますか?
- 13. GCDAsyncUDPSocket swiftを使用して構造体から送信元アドレスを取得
- 14. TomcatのセッションIDからIPアドレスを取得しますか?
- 15. JavaScript:ユーザーはどのようにIPアドレスを取得するのですか?
- 16. サーバ側から既知のMACアドレスからIPアドレスを取得
- 17. AppEngineのカスタム「送信元」アドレスで電子メールを送信するにはどうすればよいですか?
- 18. 送信元アドレスがIPヘッダーの宛先アドレスより前に来るのはなぜですか?
- 19. CapistranoはどこからIPアドレスを取得していますか?
- 20. pingはどのようにIPアドレスを解決しますか?
- 21. TIdCommandにコマンドを送信したIPアドレスを取得する方法は?
- 22. Pythonで(IPアドレスを取得する前に)データリンク層で通信する
- 23. node.jsでUDPメッセージを送信するときの送信元IPアドレスの変更
- 24. アンドロイドからJSONデータをIPアドレス(192.168.2.1:80など)に送信する方法は?
- 25. ブラウザのアプリケーションからSilverlight 4のクライアントIPアドレスを取得するにはどうすればよいですか?
- 26. dockerコンテナからmacホストのIPアドレスを取得するには?
- 27. クライアントのマシンからIPアドレスを取得するには?
- 28. DNSリクエストから訪問者のIPアドレスを取得するにはどうすればよいですか?
- 29. Windowsソケット(C++)から接続ホストのIPアドレスを取得するにはどうすればよいですか?
- 30. Google Compute Engineで静的な送信/送信元IPアドレスを設定する
をチェックしてみてください、私はあなたがrecvfrom'は、送信元アドレスを記入 'のように呼び出す方法を疑問に思うことを推測していますか?私は、Linux、BSD、またはオープンネットワークスタックを備えた他のオペレーティングシステムへのソースを読むことをお勧めします。これはOS依存性が高いためです。 –