私はpingコマンドの実装について学んでいます。それで私は疑いが1つあった。疑いはソケットにバッファサイズを使用するのは何ですか?
私はソケットバッファがソケット内で一度に何バイト転送するのか知っています。 しかし、どのように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つ説明できますか。