netcatとUDPで動作する奇妙な動作に気づきました。UDPポートでリッスンするnetcatのインスタンス(インスタンス1)を開始します。
nc -lu -p 10000
そこで、netcatの別のインスタンス(インスタンス2)を起動し、データグラムをプロセスに送信しようとします。
nc -u 127.0.0.1 10000
データグラムが表示されます。しかし、インスタンス2を閉じて、netcatを再起動すると(インスタンス3):
nc -u 127.0.0.1 10000
インスタンス1の端末でデータグラムが表示されません。明らかに、オペレーティングシステムはインスタンス2に対してインスタンス3で異なるUDP送信元ポートを割り当てます。問題は次のとおりです。同じインスタンス2の送信元ポート(例50000)を使用する場合:
nc -u -p 50000 127.0.0.1 10000
ここでも、netcatのインスタンス1がデータグラムを受信します。UDPはコネクションレス型プロトコルなので、なぜですか?これは標準のnetcatの動作ですか?