3

ペイロードなしで UDP パケットを送信できるようです。

ペイロードを必要としないと私が考えることができる唯一のものは、NATホールパンチングです。これは他に何に使用できますか?

これは、以前の質問Under Linux, can recv ever return 0 on UDP? に関連しています。

もっと重要なのは、それが何らかの標準の一部として指定されている場合、それはどこかで役立つと考えられているということですよね?

4

3 に答える 3

12

なんでも!UDP パケットは空ではありません。送信者の ID が含まれています。したがって、このようなパケットは、プリミティブな種類のシグナルとして使用できます。たとえば、こんにちは、さようなら、キープアライブなどです。

のようなインターフェースでは、構造体sendmsgのような補助データを送信するために空のパケットが使用される場合がありますcmsg(Linux の 2 つのプロセス間でファイル記述子を転送する場合などに使用できます)。

編集: もう 1 つの用途: STUNや UDP ホール パンチングなどの NAT トラバーサル アルゴリズム。

于 2012-09-20T04:56:24.070 に答える
0

UDP ポートが閉じているかどうかを検出するために、ペイロードのない UDP パケットが送信される場合があります。閉じている場合、ICMP-unreach が応答されます。

于 2020-07-10T13:29:05.067 に答える