pingのソケットバッファサイズの用途は何ですか?

pingのソケットバッファサイズの用途は何ですか?

pingコマンドの実装を学んでいます。これについて質問があります。質問は〜です。

ソケットバッファは、ソケットから一度に数バイトを転送するために使用されることを知っています。しかし、pingコマンドがソケットバッファサイズを管理する方法。

$ ping -S 300 -s 400 google.com
PING google.com (216.58.197.46) 400(428) bytes of data.
72 bytes from maa03s20-in-f14.1e100.net (216.58.197.46): icmp_req=1 ttl=56 (truncated)
72 bytes from maa03s20-in-f14.1e100.net (216.58.197.46): icmp_req=2 ttl=56 (truncated)
72 bytes from maa03s20-in-f14.1e100.net (216.58.197.46): icmp_req=3 ttl=56 (truncated)
^C
--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 40.231/41.500/42.408/0.924 ms

上記のpingコマンドでは、ソケットバッファサイズは300、シングルパケットサイズは400です。ソケットバッファサイズは300にすぎません。ただし、pingはそのソケットから一度に400バイトを送信します。どうすればいいですか?同時に受信されるパケットサイズは72にすぎません。なぜ72個しかないのですか?

誰でもこれを説明するのに役立ちますか?

ベストアンサー1

これらの詳細は実装によって異なります。パケットサイズは期待したものとまったく同じです。理論的には、より小さいバッファサイズを使用すると、パケットの断片化を引き起こす可能性がありますが、私が試みたどのシステムでもこれは起こりませんでした。

受信した72バイトのみが表示される結果は、VPSにパケットサイズを64バイト+ 8バイトのICMPヘッダーに制限する厳しい制限があるためです。

おすすめ記事