デフォルトの存続可能時間の値は255です。ipv4パケットがルーターを通過するたびに、その値は1ずつ減ります。
しかし、adslルーターにpingを実行すると、TTL= 64と表示されます
Pinging 192.168.0.1 with 32 bytes of data:
Reply from 192.168.0.1: bytes=32 time=1ms TTL=64
Reply from 192.168.0.1: bytes=32 time=2ms TTL=64
Reply from 192.168.0.1: bytes=32 time=2ms TTL=64
Reply from 192.168.0.1: bytes=32 time=2ms TTL=64
Pcからルーターへのホップは1ホップだけなので、期待されるTTLは254ですが、ここでpingがTTLとして64と表示されるのはなぜですか。
助けていただければ幸いです...
ping
マンページからの引用は次のとおりです。
TTLの詳細TTL IPパケットの値は、パケットが破棄される前に通過できるIPルーターの最大数を表します。現在の実務では、インターネット内の各ルーターがTTLフィールドを1つずつ。
TCP/IP仕様では、TTLフィールドを64に設定することを推奨していますが、多くのシステムではより小さい値を使用しています(4.3BSDは30、4.2BSDは15を使用しています)。
そして引用する RFC 1700:
インターネットプロトコル(IP)の現在の推奨デフォルト存続時間(TTL)は64です。
最大値TTLは255ですが、これはデフォルトではありません。デフォルト値は こちら でわかるように、オペレーティングシステムによって異なります。
たとえば、WindowsとLinuxで127.0.0.1へのpingを確認します。
私の窓7:
私のLinuxマシン:
そのため、デフォルトが64のマシンから応答を受け取っているようです。
TTL値はリモートマシンによって決定されます。たとえば、Linuxマシンにpingを実行した場合、その元のTTL=値は64です。返されるために通過するネットワークの数に応じて、TTLしたがって、Googleのネームサーバーである8.8.8.8にpingすると、元の値は128になります。返された時点で、値は121になる可能性があります(私にとっては)それは私に到達するために7つのネットワークを通過し、それがWindowsマシンだったことを意味します。
共通TTL値-ルーター-255 Windows-128 Linux-Mac-64