ペイロードなしで UDP パケットを送信できるようです。
ペイロードを必要としないと私が考えることができる唯一のものは、NATホールパンチングです。これは他に何に使用できますか?
これは、以前の質問Under Linux, can recv ever return 0 on UDP? に関連しています。
もっと重要なのは、それが何らかの標準の一部として指定されている場合、それはどこかで役立つと考えられているということですよね?
ペイロードなしで UDP パケットを送信できるようです。
ペイロードを必要としないと私が考えることができる唯一のものは、NATホールパンチングです。これは他に何に使用できますか?
これは、以前の質問Under Linux, can recv ever return 0 on UDP? に関連しています。
もっと重要なのは、それが何らかの標準の一部として指定されている場合、それはどこかで役立つと考えられているということですよね?
なんでも!UDP パケットは空ではありません。送信者の ID が含まれています。したがって、このようなパケットは、プリミティブな種類のシグナルとして使用できます。たとえば、こんにちは、さようなら、キープアライブなどです。
のようなインターフェースでは、構造体sendmsg
のような補助データを送信するために空のパケットが使用される場合がありますcmsg
(Linux の 2 つのプロセス間でファイル記述子を転送する場合などに使用できます)。
編集: もう 1 つの用途: STUNや UDP ホール パンチングなどの NAT トラバーサル アルゴリズム。
UDP ポートが閉じているかどうかを検出するために、ペイロードのない UDP パケットが送信される場合があります。閉じている場合、ICMP-unreach が応答されます。