私はネットワークにマルチキャストパケットを送信する独自のアプリケーションを持っています。 NIC MTU 1500でLinux上で動作しています。RecvFrom()は送信者より大きいパケットを返しますNIC MTU
そして、メッセージを受け取るためにMulticastSocketクラスを使って簡単なJavaプログラムを書いています。私はDatagramPacketのサイズが〜7900であることを発見しました。レシーバプログラムは、NIC MTU 1500でLinux上で動作しています。
Cでプログラムを書き換え、recvfrom()コールを使用しても結果は同じです。
なぜわかりませんか? NIC MTUによってパケットサイズが制限されていますか?またはプログラムによってオーバーライドすることはできますか?
受信者は、送信者プログラムと同じサーバーではなく、別のLinuxサーバーで実行されています –
回答に追加するのを忘れた:プロセスはsetuidまたはsetgidを呼び出してMTUを変更する必要があります。 – soulmerge