Pingを実行すると、各パケットのTTL値が表示されます。コンピューターとインターネットに接続するルーターの間に挿入するすべてのルーターについて、TTLの値は1つ下がります。ただし、スイッチまたはハブを挿入しても、TTLの値には影響しません。それはなぜですか?
TTLはIPv4プロトコルの一部です(v6では、StevenMondayのコメントによると「ホップ制限」と呼ばれます)。スイッチとハブは、ISO/OSIモデルの異なるレイヤーで動作します(レイヤー3ではなくレイヤー2-いわゆるレイヤー3スイッチが存在しますが、ハブも含まれているため、それらについて質問していないと思います) 。
The TTL field is set by the sender of the datagram,
and reduced by every Host on the route to its destination.
http://en.wikipedia.org/wiki/Time_to_live
スイッチまたはハブは、IPプロトコルの意味でのホストではありません。通常、IPアドレスはありません。もしそうなら(スイッチの場合)、それらは管理目的であり、デバイスの実際の機能には実際には参加しません。スイッチは代わりにMACアドレスで動作し、それらをポートにマッピングし、パケットを適切なポートに送信するという意味でのみ「ルーティング」します(ハブははるかに少ない作業で、代わりにすべてのポートを介してパケットを送信します)。 IPペイロードを検査したり変更したりすることはありません。他のプロトコルを使用している可能性もあります。
一言で言えば、Time To Liveは、ルーティング(OSIレイヤー3)ループを防ぐために実装されました。これは、パケットが宛先に到達することなく、同じノード間で永久にホップするのを防ぐためです。したがって、パケットのルーティング決定を行うノードのみがそのTTLを1つ減らします。TTLがゼロに達すると、パケットはルーティングを決定するデバイスによってのみ再びドロップされます。