ICMPの場合、TTLってどういうときに使われていますか? |
| |
|
とても良い質問です。 TTLの役割TTL(Time To Live)は、パケットがループして永遠にネットワーク内を回り続けることを防ぐための仕組みです。 例えばICMP Echo Request(ping)は、IPパケットの中にICMPメッセージが入っています。 ルータを1台通過するごとにTTLは1ずつ減ります。 例えば、 となります。 ICMPでTTLが重要になる場面1. ping普段のpingでもTTLは使われています。 例えばWindowsでは とすると のように表示されます。 これは返信パケットがこちらに届いた時点のTTLです。 送信元(8.8.8.8)は例えばTTL=128で送信し、 となって届いたという意味です。 2. traceroute(tracert)TTLが最も活躍するのがこれです。 例えば で送ると R1でTTLが0になります。 するとR1は を返します。 次は で送ると R2でTTLが0になります。 また が返ってきます。 これを繰り返すことで のように経路が分かります。 つまりTTLがあるからtracerouteが実現できるわけです。 3. ループ防止もしTTLがなければ、 のようなルーティングループが起きたとき、 ICMPパケットもTCPパケットもUDPパケットも永遠に回り続けてしまいます。 TTLがあるので、 となった時点で破棄されます。 TTLが0になったらどうなる?TTLが0になると、そのルータはパケットを破棄し、送信元に ICMP Time Exceeded(Type 11) を返します。 つまり、
という関係です。 まとめICMPではTTLは特に次の場面で重要です。
つまり、TTLはICMP専用ではありませんが、ICMPはTTLの変化や失効を利用・通知するプロトコルでもあるため、両者は非常に密接な関係にあります。 |
| |

この記事へのコメント