UDPソースポートはどのように選択されますか?


8

私は自分のマシンからパケットキャプチャを実行し、すべてのUDP接続を除外しました。ランダムに生成されたUDPソースポートのように見えるものを使用した特定の接続と、UDP宛先ポートと同じソースポートを使用した特定の接続を見ました。

TCP接続は送信元ポートをランダム化するので、応答には「専用」ポートが応答することを理解しています。しかし、それはUDPでどのように機能しますか?

権威ある答えを探しています。RFC(またはその他)へのリンクをいただければ幸いです。

UDPソースポートを決定するものは何ですか?

  • 応答が予想されるときにランダムに生成されますか?
  • 応答が予想されない場合、宛先ポートと一致しますか?(0をソースポートとして使用する代わりに)?

ありがとうございました。

回答:


6

それはアプリケーションに依存します。たとえば、カーネル2.6.24でソースポートが指定されていない場合、LinuxカーネルはUDPソースポートのランダム化を実装しました

したがって、一部の接続で見られる動作は、送信元ポートが宛先ポートと同じになるように指定する特定のアプリケーションでなければなりませんが、他の接続はカーネルに任せています。


つまり、あなたが言っていること(理解できるようにするため)はデフォルトで、サービス/アプリケーション自体が特別なものを要求しない限り、UDPは(TCPのように)送信元ポートをランダム化し、一致する送信元/宛先ポートの使用を含めます。そうですか?
エディ

プラットフォームによっては正しいです。
Jeff Strunk

+1これは正しいです。ソースポートを制御できないTCPとは異なり(OSはソケットごとに一意であることを確認する必要があるため)、UDPではアプリケーションは自由に設定できます。双方向通信がある場合、送信元ポートが相手側が応答するポートであることが「合理的」です(Wikipediaの「送信元ポート番号」に記載)。ただし、アプリケーションを作成した人は、代わりに乱数を使用することを簡単に選択した可能性があります。
Groo

0

エフェメラルポートは、TCPと同じUDPパケットに対して生成されます。

http://www.hsc.fr/ressources/articles/win_net_srv/ephem_port_alloc.html


しかし、常にではありませんが、私のパケットキャプチャが示したとおりです。一部の接続でランダムなUDP送信元ポートが使用され、他の接続で宛先ポートが一致するのはなぜですか そして、それらが一致する場合、それはリターントラフィックにどのように影響しますか?
エディ

この回答では、特にWindowsの動作について説明します。もう1つの答えは、Linuxの動作に関するものです。これらがまだ最新であると仮定すると、WindowsはLinuxのようにデフォルトでランダム化されないように見えます。
thomasrutter
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.