IPヘッダその2
| IPヘッダ さて、IPヘッダの続きですが、もう一度前回と同じくヘッダのフォーマットを載せておきます。 ![]() |
| TTL(Time To Live) 「TTL」とは Time To Live の略でパケットの生存時間を表していす。時間といっていますが、実際にはパケットが何台のルータを経由することができるか?ということを表しています。 これはルータのルーティングテーブルの不整合のため、パケットがネットワーク内を延々とループしてしまうことを防ぐためのもので す。 具体的には次の図のようなことを考えてみてください。この図では、ルータA、B、Cの3台のルータがあり、ルータAには10.0.0.0/8 と 20.0.0.0/8 のネットワーク、ルータBには 20.0.0.0/8 と 30.0.0.0/8 のネットワーク、ルータCには 30.0.0.0/8 と 40.0.0.0/8 のネットワークが接続されています。 この場合、10.0.0.0/8のネットワークから40.0.0.0/8のネットワークへの通信を行うためには手動でルートを設定するか、ルーティングプロトコルで自動的にルートを設定する必要があります。(このあたりの詳しい話はバックナンバーか、ホームページを見てください) そのルートの設定を間違えてしまったとしたらどうなるでしょう?本来、ルータBのルーティングテーブルには40.0.0.0/8のネットワークへ行くためには次にルータCに送るという情報が入ってこなければいけません。しかし、間違えて40.0.0.0/8に行くためには次にルータAにという設定をしていたらというケースを考えます。 ![]() このとき、ルータAに40.0.0.0/8あてのパケットが届いたとします。するとルータAは40.0.0.0/8のネットワークに行くにはルータBに送ればいいんだなと判断し、ルータBに送ります。受け取ったルー タBはルーティングテーブルをみると、40.0.0.0/8に行くためには、ルータAに送ればいいんだなと判断し、ルータAに送ります。すると、ルータAはまたルータBに、ルータBからルータAに、ルータAからルータBに・・・と延々と40.0.0.0/8あてのパケットはルータAとルータBの間を行ったり来たりしてしまいます。 ![]() またルータAに他の 40.0.0.0/8 あてのパケットが来ると行ったり来たりするパケットが増えていきます。こんなことが起こってしまっては困るわけです。 そこで、TTLが使われます。TTLはルータを超えるたびに1ずつ減っていきます。そしてTTLの値が0になったパケットは破棄されます。もし、ルータのルーティングテーブルに間違いがあって、パケットがネットワーク上を行ったり来たりとループしている場合でも、しばらくするとTTLが0になってパケットが捨てられます。このように永遠に行ったり来たりを防ぐことができます。 ただ、ルーティングテーブルの間違いという根本的な原因を解消しないと結局通信ができないのは同じですけどね・・・ ここからはちょっと余談ですが、ダイナミックルーティングを使っていればルーティングテーブルの間違いなんて起こらないような気がすると思いますよね?ルータ同士が経路を教えあうわけですから、間違いなんて起こりそうにありません。 ですが、実際に起こってしまうことがあります。このことはいつかルーティングプロトコルについて解説していくときに詳しい話をしていきます。 (ちなみにTTLとはなんのことか?ということを問う問題がネットワークスペシャリストの午前の問題に出たりします) |
| プロトコル番号〜オプション 「プロトコル番号」とは上位のプロトコルが何かを識別するための番号です。IPの上位層のトランスポート層にはTCPとUDPの2つのプロトコルがありますが、そのどちらにデータを渡せばいいのかということをプロトコル番号で識別します。たとえば、TCPなら6、UDPなら17という値が入ってきます。 次の「ヘッダチェックサム」はIPヘッダのエラーがないかどうかを調べるための情報です。ここでは、どのような計算を行っているかは詳しくは書きません。ほかのTCP、UDPでも同様の情報がありますが、エラーチェックのためということだけで十分です。 「送信元IPアドレス」「送信先IPアドレス」は見たまんまです。データを送信したコンピュータのIPアドレス、データの送り先のIPアドレスが入ります。ルータはこのIPヘッダの送信先アドレスとルーティングテーブルによってルーティングを行います。 あとのオプションは、現在ほとんど使われることはありません。まだIPを開発しているときの実験用にいろいろな情報を追加していました。ですが、現在はほとんど使われることはありませんのでここでは省略します。 |
(C) Copyright 2000-2001 Gene All Right Reserved