(57)【特許請求の範囲】
【請求項１】
パケットストリームに割り当てられた入力ラベルと出力ラベルとを用いて、当該パケットストリームに含まれるパケットをラベルスイッチングする複数のノードにより構成される、ネットワーク上のラベルスイッチングパスのホップカウントを管理する方法であって、
前記複数のノードのそれぞれは、前記パケットに前記ラベルスイッチングを行う際に、当該パケットに含まれる当該パケットが経由したノード数を表す情報を更新するか否かを判定する第１のステップと、
前記複数のノードのうちの前記情報を更新しないと判定した複数の第１の種別のノードのそれぞれは、当該第１の種別のノードの上流側で隣接するノードと当該第１の種別のノードの下流側で隣接するノードのうちのいずれか一方のノードである第１の隣接ノードから前記ラベルスイッチングパスのホップカウントが通知されたとき、前記ラベルスイッチングパスについて通知されたホップカウントを増加させることにより得られた増加されたホップカウントを含む第１のメッセージを、前記上流側で隣接するノードと前記下流側で隣接するノードのうちの他方のノードである第２の隣接ノードへ送信する第２のステップと、
前記複数のノードのうちの前記情報を更新すると判定した複数の第２の種別のノードのそれぞれは、当該第２の種別のノードが前記情報を更新することを表す第２のメッセージを前記第２の隣接ノードへ送信する第３のステップと、
を有することを特徴とするホップカウント管理方法。
【請求項２】
前記複数の第２の種別のノードのそれぞれは、前記第２の隣接ノードとして前記第１のメッセージを受信したときには、前記増加されたホップカウントに基づいて、当該第２の種別のノードの上流側の上流ノードから受信した前記パケットをラベルスイッチングするとともに、当該パケットに含まれる前記情報を更新することにより、当該パケットを当該第２の種別のノードの下流側の下流ノードへ転送するステップをさらに有することを特徴とする請求項１記載のホップカウント管理方法。
【請求項３】
前記複数の第２の種別のノードのそれぞれは、前記第２の隣接ノードとして第２のメッセージを受信したときには、デフォルト値に基づいて、当該第２の種別のノードの上流側の上流ノードから受信した前記パケットをラベルスイッチングするとともに、当該パケットに含まれる前記情報を更新することにより、当該パケットを当該第２の種別のノードの下流側の下流ノードへ転送するステップをさらに有することを特徴とする請求項１記載のホップカウント管理方法。
【請求項４】
前記複数の第１の種別のノードのそれぞれは、当該第１の種別のノードの上流側の上流ノードから受信した前記パケットを、前記情報を更新することなく、ラベルスイッチングすることにより、下流側の下流ノードへ転送するステップをさらに有することを特徴とする請求項１記載のホップカウント管理方法。
【請求項５】
前記第３のステップは、デフォルトホップカウントを含む前記第２のメッセージを送信することを特徴とする請求項１記載のホップカウント管理方法。
【請求項６】
前記第１のステップは、前記パケットのヘッダは前記情報を含み、しかも当該ヘッダに前記入力ラベルと前記出力ラベルのうちのいずれか一方が記入されているときには、前記情報を更新すると判定することを特徴とする請求項１記載のホップカウント管理方法。
【請求項７】
前記第１のステップは、前記パケットのヘッダは、前記情報を含む第１のヘッダとは異なる第２のヘッダであり、しかも、当該第２のヘッダに、前記入力ラベルと前記出力ラベルの双方が記入されているときには、前記情報を更新しないと判定する請求項１記載のホップカウント管理方法。
【請求項８】
前記第１のステップは、前記入力ラベルの種別と前記出力ラベルの種別が互いに異なるときには、前記情報を更新すると判定する請求項１記載のホップカウント管理方法。
【請求項９】
前記複数のノードのうちの少なくとも１つのノードは、前記パケットストリームに含まれるパケットであって、当該ノードの上流ノードのうちの１つから転送されてきた第１のパケットに対しては前記第１の種別のノードとして動作し、他の１つの上流ノードから転送されてきた第２のパケットに対しては前記第２の種別のノードとして動作することを特徴とする請求項１記載のホップカウント管理方法。
【請求項１０】
前記複数のノードのうちの少なくとも１つのノードは、前記パケットストリームに含まれるパケットであって、当該ノードの下流ノードのうちの１つへ転送される第３のパケットに対しては前記第１の種別のノードとして動作し、他の１つの下流ノードへ転送される第４のパケットに対しては前記第２の種別のノードとして動作することを特徴とする請求項１記載のホップカウント管理方法。
【請求項１１】
前記複数の第２の種別のノードのうちの少なくとも１つは、前記パケットストリームのラベルスイッチングパス上の第１の隣接ノードのうちの１つの第１の隣接ノードからの前記第１のメッセージと、他の１つの第１の隣接ノードからの前記第２のメッセージとを前記第２の隣接ノードとして受信しすることを特徴とする請求項１記載のホップカウント管理方法。
【請求項１２】
前記複数の第２の種別のノードのうちの少なくとも１つは、前記パケットストリームのラベルスイッチングパス上の第１の隣接ノードのうちの１つの第１の隣接ノードからの１つの増加されたホップカウントを含む１つの前記第１のメッセージと、他の１つの第１の隣接ノードからの他の１つの増加されたホップカウントを含む他の１つの前記第１のメッセージとを、前記第２の隣接ノードとして受信することを特徴とする請求項１記載のホップカウント管理方法。
【請求項１３】
パケットストリームに割り当てられた入力ラベルと出力ラベルを用いて、ラベルスイッチングパスで転送される当該パケットストリームに含まれるパケットをラベルスイッチングするラベルスイッチング手段と、
前記入力ラベルを割り当てる第１のメッセージを上流ノードと交換し、前記出力ラベルを割り当てる第２のメッセージを下流ノードと交換する制御メッセージ処理手段とを具備し、
前記制御メッセージ処理手段は、
（ａ）前記第１のメッセージと前記第２のメッセージのうちの一方から前記ラベルスイッチングパスのホップカウントを受け取り、
（ｂ）前記パケットに含まれる当該パケットが通過したノードの数を表す情報を前記ラベルスイッチング手段で更新するか否かを判定し、
（ｃ）前記情報を更新しないと判定したときには、前記ラベルスイッチングパスのホップカウントを増加させることにより得られた増加ホップカウントを、前記第１のメッセージと前記第２のメッセージのうちの一方に記入し、
（ｄ）前記情報を更新すると判定したときには、前記情報の更新を表すデータを、前記第１のメッセージと前記第２のメッセージのうちの一方に記入することを特徴とするノード装置。
【請求項１４】
前記ラベルスイッチング手段は、
前記入力ラベルと前記情報を含むパケットを上流ノードから受信する受信手段と、
前記第１のメッセージと前記第２のメッセージのうちの１つが前記増加ホップカウントを含むときには、デフォルト値よりも大きい値のホップカウント値を記憶し、前記第１のメッセージと前記第２のメッセージのうちの１つが、前記情報の更新を表すデータを含むときには、デフォルト値であるホップカウント値を記憶する記憶手段と、
前記受信手段で受信したパケットに含まれる前記情報を更新すると判定したときに、前記記憶手段で記憶された前記ホップカウント値を基に当該情報を更新する更新手段と、
前記入力ラベルを前記出力ラベルに置き換えることによって、前記パケットを転送する転送手段と、
を具備したことを特徴とする請求項１３記載のノード装置。
【請求項１５】
前記ラベルスイッチング手段は、
下位レイヤのヘッダに前記入力ラベルを含み、上位レイヤのヘッダに前記情報を含むパケットを上流ノードから受信する受信手段と、
前記情報を更新しないと判定したとき、上位レイヤのヘッダを処理することなく、前記入力ラベルを下位レイヤのヘッダの出力ラベルに置き換えることにより、前記パケットを転送する転送手段と、
を具備することを特徴とする請求項１３記載のノード装置。
【請求項１６】
前記制御メッセージ処理手段は、
前記パケットのヘッダは前記情報を含む第１のヘッダであり、しかも当該第１のヘッダに前記入力ラベルと前記出力ラベルのうちのいずれか一方が記入されているときには、前記情報を更新すると判定し、
前記パケットのヘッダは、前記第１のヘッダとは異なる第２のヘッダであり、しかも当該第２のヘッダに前記入力ラベルと前記出力ラベルの双方が記入されているときには、前記情報を更新しないと判定することを特徴とする請求項１３記載のノード装置。
【請求項１７】
前記制御メッセージ処理手段は、
前記入力ラベルの種別と前記出力ラベルの種別が互いに異なるか、あるいは、前記パケットのヘッダは、前記情報を含む第１のヘッダであり、しかも、前記入力ラベルと前記出力ラベルのうちのいずれか一方が前記第１のヘッダに記入されてるときには、前記情報を更新すると判定し、
前記パケットのヘッダは、前記第１のヘッダとは異なる第２のヘッダであり、前記入力ラベルと前記出力ラベルの双方が同一の種別でしかも前記第２のヘッダに記入されるときには、前記情報を更新しないと判定することを特徴とする請求項１３記載のノード装置。
【請求項１８】
前記ラベルスイッチング手段は、
前記パケットストリームに含まれる第１のパケットを、第１の入力ラベルの第１の上流ノードから前記出力ラベルの下流ノードへ転送し、当該パケットストリームに含まれる第２のパケットを、第２の入力ラベルの第２の上流ノードから前記出力ラベルの下流ノードへ転送し、
前記制御メッセージ処理手段は、前記第１のパケットと前記第２のパケットのそれぞれに対して別々に動作することを特徴とする請求項１３記載のノード装置。
【請求項１９】
前記ラベルスイッチング手段は、前記パケットストリームに含まれるパケットであって、第１の入力ラベルの上流ノードからのパケットを、第１の出力ラベルの第１の下流ノードへは第１のパケットとして転送し、第２の出力ラベルの第２の下流ノードへは第２のパケットとして転送し、
前記制御メッセージ処理手段は、前記第１のパケットと前記第２のパケットのそれぞれに対して別々に動作することを特徴とする請求項１３記載のノード装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホップカウント管理方法およびノード装置に関する。
【０００２】
【従来の技術】
ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）などのパケット通信を行うノード装置において、ノード間で特定のパケットストリームに特定のラベルを割り当てるための制御情報を交換し、各ノードでは個々のストリームに対して割り当てた入力側のラベル（および入力インタフェース）と出力側のラベル（および出力インタフェース）とを記憶し、記憶したラベル値の対応関係をもとに実際のパケット転送処理（スイッチング処理）を行うことが可能であり、これはラベルスイッチング技術と呼ばれている。
【０００３】
ラベルは一般に固定長であり、ラベルスイッチングによるパケット転送は、従来のパケットヘッダ情報（宛先ＩＰアドレスプレフィクスなど）を解析してパケット転送する場合に比べて高速な処理が可能であるとともに、より柔軟な経路制御が可能になる。
【０００４】
パケットストリームがラベルスイッチングされる経路をラベルスイッチングパス（ＬＳＰ）と呼ぶ。あるストリームについてＬＳＰの初段となるノード、すなわちＩＰパケットを解析しラベルを付与してパケット転送するノードを初段ノードと呼び、最終段となるノード、すなわち受信したパケットに付与されているラベルを削除してパケット転送するノードを最終段ノードと呼び、それらの間でＬＳＰの中継点となるノード、すなわちラベルに基づきパケット転送するノードを中段ノードと呼ぶことにする。
【０００５】
あるＬＳＰ上を運ばれるストリームとしては様々な定義が可能であり、例えば特定の宛先ＩＰアドレスを持つパケット、特定の宛先ＩＰアドレスプレフィクス（ネットワークアドレス）を持つパケット、あるドメインの特定の出口ノードを通過するパケットなどの定義が考えられる。
【０００６】
ＬＳＰの形態として、ユニキャストストリームのためのポイントツーポイントＬＳＰ（初段ノード、最終段ノードともに１つ），マルチキャストストリームのためのポイントツーマルチポイントＬＳＰ（初段ノードが１つ、最終段ノードが複数、中段ノードで１つ以上の枝に分岐）が少なくとも考えられる。また、中段ノードにおいて複数の入力ラベルを１つの出力ラベルに対応づける機能（ストリームマージ機能）を持たせることにより、複数のノードを初段とし単一のノードを最終段とするマルチポイントツーポイントＬＳＰを定義することも可能である。
【０００７】
ラベルスイッチングの具体的実現方法には、ＡＴＭやフレームリレーなどの既存のスイッチングデータリンク技術を流用する方法と、新たにラベルスイッチのためのラベルヘッダを定義して使用する方法とが考えられる。
【０００８】
後者の場合、ポイントツーポイントリンク（ＰＰＰリンク）フレームヘッダとＩＰヘッダの間、あるいはＬＡＮのＬＬＣヘッダとＩＰヘッダの間にラベルヘッダフィールド（以下、「汎用ラベルヘッダ」と呼ぶことにする）を挿入し、そこに書かれたラベル値をスイッチング情報として用いる。
【０００９】
汎用ラベルヘッダ構成としては、スイッチングに利用されるラベルフィールドに加え、従来のパケットヘッダと同様に経由ノード数をチェックする役割を果たすためのＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）フィールドや、転送処理の優先度を示すＣｏＳ（Ｃｌａｓｓ  Ｏｆ  Ｓｅｒｖｉｃｅ）フィールドなどが定義されている。ラベルスイッチングを実行する各ノードにおいて、上記ＴＴＬフィールドを１つづつ減算することにより、転送経路のループ現象（ルーティングループ）などの理由によりあらかじめ決められた数以上のノードを経由するパケットを、廃棄することができる。
【００１０】
一方前者の既存データリンクスイッチング技術を利用する場合、例えば、ＡＴＭセルヘッダのＶＰＩ（Ｖｉｒｔｕａｌ  Ｐａｔｈ  Ｉｄｅｎｔｉｆｉｅｒ）／ＶＣＩ（Ｖｉｒｔｕａｌ  Ｃｈａｎｎｅｌ  Ｉｄｅｎｔｉｆｉｅｒ）フィールドや、フレームリレーのフレームヘッダのＤＬＣＩ（Ｄａｔａ  Ｌｉｎｋ  Ｃｉｒｃｕｉｔ  Ｉｄｅｎｔｉｆｉｅｒ）フィールドが、ラベルとして利用される。
【００１１】
この場合、すでに標準化されたＡＴＭおよびフレームリレーのヘッダフォーマットをそのまま利用することになるが、この標準セルヘッダやフレームヘッダにはＴＴＬフィールドやＣｏＳフィールドが定義されていない。したがって、例えばＡＴＭ  ＶＣで構成されるＬＳＰにいったん入力されたパケット（セル）は、もしＬＳＰがルーティングループを構成してしまっているような場合にもパケットが廃棄されず、ＬＳＰ上を転送されつづけることになってしまう。
【００１２】
【発明が解決しようとする課題】
こうした問題を解決する方法として、ＬＳＰの設定、維持、解放を行うラベル制御プロトコル（ＬＤＰ：Ｌａｂｅｌ  Ｄｉｓｔｒｉｂｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）により個々のＬＳＰの初段ノードから最終段ノードまでの経由ノード数（ホップカウント）を初段または最終段ノードにおいて常に記憶しておき、実際のパケット転送時に初段または最終段ノードにて記憶しているホップカウント分だけパケットヘッダのＴＴＬ値を減算する方法が提案されている。
【００１３】
この方法では、特定のパケットストリーム（例えば、宛先ネットワークプレフィクスなどで指定される）を運ぶためのラベルの割り当て要求メッセージを初段ノードが下流の隣接ノードに送信すると、それを受け取ったノードはさらに下流の隣接ノードにラベル割り当て要求メッセージを送信する。最終的に最終段となるべきノードまでラベル割り当て要求メッセージが送信された時点で、最終段ノードが上流隣接ノードに対してラベル割り当てメッセージを送信する。あるいは、要求メッセージを受信しなくても、最終段ノードが自発的に、ラベル割り当てメッセージを上流ノードに送信する方法もあり得る。
【００１４】
この最終段ノードが送信するラベル割り当てメッセージには、上流ノードに通知すべきラベル値とともに、ホップカウント値として１が設定されている。ラベル割り当てメッセージを下流隣接から受信したノードは、さらに上流へ向けてラベル割り当てメッセージを送信するが、その際メッセージ内のホップカウント値を１インクリメントする。これを繰り返し、最終的に、最初にラベル割り当て要求メッセージを送信した初段ノードがラベル割り当てメッセージを受信し、そのメッセージに書かれたホップカウント値を記憶する。
【００１５】
その後初段ノードは上記ラベルを割り当てたパケットストリームに属するパケットを受信すると、所定のラベルを付与して送信する際に、記憶しているホップ数分だけパケットヘッダのＴＴＬ値を減算し、ＴＴＬ値が０にならないかをチェックすることができる。もしこのＴＴＬの減算の結果ＴＴＬ値が０以下になってしまう場合には、パケットをそこで廃棄することも可能である。
【００１６】
この方法は、前述したようにＡＴＭあるいはフレームリレーなど、ＬＳＰ内の各ノードで転送中のパケットの通算ホップ数の記録ができない場合に適用するものであり、汎用ラベルヘッダ内のＴＴＬフィールドを各ノードが（ＬＳＰの中段ノードにおいても）参照・更新できる場合には必要がない。その場合には、初段ノード、中段ノード、最終段ノードに関わらず、各ノードがＩＰヘッダあるいは汎用ラベルヘッダのＴＴＬ値を１つ減算すれば良い。
【００１７】
実際のラベルスイッチングネットワークでは、すべてＡＴＭ、あるいはすべてフレームリレーで統一されているのでなく、ＡＴＭとフレームリレーが混在していたり、ＡＴＭとＳＯＮＥＴベースのポイントツーポイントリンクが混在していたりすることが考えられる。
【００１８】
しかしながら、提案されている上記の制御メカニズムは、すべてがＡＴＭあるいはフレームリレーといった、ＬＳＰの初段から最終段の間のノードがすべてＴＴＬ処理できない場合について適用されることを前提としている。すなわち、上記の制御メカニズムは、初段ノードは最終段ノードまでのホップ数をラベル割り当てメッセージにより通知され、初段ノードではＬＳＰに送信するパケットのＴＴＬ値を最終段ノードまでのホップ数分だけ減らすことを可能にするものであるが、ＬＳＰの一部に、汎用ラベルヘッダ内のＴＴＬフィールドをＬＳＰの中段ノードも更新できるネットワークセグメントが存在するような場合に、対処が可能な制御メカニズムは存在しなかった。
【００１９】
本発明は、このような事情を考慮してなされたもので、汎用ラベルヘッダのＴＴＬ値を操作できるノードと操作できないノードが混在するようなＬＳＰ上の各ノードにおいて、ＩＰヘッダまたは汎用ラベルヘッダのＴＴＬ値を適切に減算し、ＬＳＰの最終段ノードからＩＰパケットが出てきた際に、従来のホップバイホップ転送の場合と同じＩＰヘッダのＴＴＬ値を与えることが可能なホップカウント管理方法及びノード装置を提供することを目的とする。
【００２０】
【課題を解決するための手段】
本発明に係るホップカウント管理方法は、各パケットストリームに割り当てられた入力側ラベルと出力側ラベルとの対応を参照して入力されたパケットをラベルスイッチングするノードにより構成されるラベルスイッチングパスのホップカウントを管理する方法であって、各ノードは、自ノードが前記ラベルスイッチングを行う際に前記パケットに含まれる該パケットが経由したノード数を示す情報（例えばＴＴＬ値）を更新する処理を行うか否かを判定し、前記更新処理を行わないと判定した場合には、上流および下流の一方の隣接ノードから（ユニキャストもしくはストリームマージの場合は下流から、マルチキャストの場合は上流から、が好ましい）通知されたラベルスイッチングパスのホップカウントを増加させて（例えば１インクリメントして）上流および下流の他方の隣接ノードへ通知し、前記更新処理を行うと判定した場合には、自ノードが前記更新処理を行うノードであることを前記他方の隣接ノードに対して知らせる（例えばホップカウント＝１と記入した通知を送るか、ホップカウントを含まない通知を送るなど）ことを特徴とする。
【００２１】
そして、前記更新処理を行うノードは、前記一方のノードから通知されたラベルスイッチングパスのホップカウントが増加された値である（例えば２以上である）場合は、該ホップカウントに基づいて、前記パケットに含まれる経由ノード数を示す情報を更新（例えば該ホップカウント分ＴＴＬ値を減算）し、前記一方のノードが前記更新処理を行うノードであることを知った場合は、前記パケットに含まれる経由ノード数を示す情報を、所定の値だけ、更新する（例えばＴＴＬ値を１デクリメントする）。実際には、記憶されたホップカウント分だけ（前者の場合はホップカウントとして２以上の値が記憶され、後者の場合はホップカウントとして１が記憶されている）ＴＴＬ値を減算するという共通の動作で、両者を実現することも可能である。
【００２２】
このようにすることにより、汎用ラベルヘッダのＴＴＬ値を操作できるノードと操作できないノードが混在するようなＬＳＰ上で、ユニキャストもしくはストリームマージの場合は、ＴＴＬ処理するノードが次にＴＴＬ処理するノードまでのホップ数を上流側で先に減らすことができ、マルチキャストの場合は、ＴＴＬ処理するノードがその上流でＴＴＬ処理するノードからのホップ数を下流側であとで減らすことができ、全体として、ＬＳＰの最終段ノードからＩＰパケットが出てきた際に従来のホップバイホップ転送の場合と同じＩＰヘッダのＴＴＬ値を与えることを実現できる。
【００２３】
なお、例えば、各ノードは、前記入力側ラベルおよび前記出力側ラベルのいずれかが、パケット内の、前記経由ノード数を示す情報と同じヘッダ領域（例えば汎用ラベルヘッダ）に記入される場合には、前記更新処理を行うと判定することができる。
【００２４】
さらに、前記入力側ラベルおよび前記出力側ラベルの双方が、パケット内の、前記経由ノード数を示す情報とは異なるヘッダ領域（例えばレイヤ２ヘッダ）に記入される場合には、前記更新処理を行わないと判定しても良いし、前記入力側ラベルおよび前記出力側ラベルの双方が、パケット内の、前記経由ノード数を示す情報とは異なるヘッダ領域に記入されるが、前記入力側ラベルと前記出力側ラベルのラベル種別が異なる（例えばＡＴＭとフレームリレーなど）場合には、前記更新処理を行うと判定しても良い。
【００２５】
本発明に係るノード装置は、各パケットストリームに割り当てられた入力側ラベルと出力側ラベルとの対応を参照して入力されたパケットをラベルスイッチングするラベルスイッチ手段と、自装置が前記ラベルスイッチングを行う際に前記パケットに含まれる該パケットが経由したノード数を示す情報を更新する処理を行うか否かを判定し、前記更新処理を行わないと判定した場合には、上流および下流の一方の隣接ノードから通知されたラベルスイッチングパスのホップカウントを増加させて上流および下流の他方の隣接ノードへ通知し、前記更新処理を行うと判定した場合には、自ノードが前記更新処理を行うノードであることを前記他方の隣接ノードに対して知らせる制御メッセージ処理手段とを備え、前記ラベルスイッチ手段は、自装置が前記更新処理を行うパケットストリームに属するパケットが入力された場合に、前記一方のノードから通知されたラベルスイッチングパスのホップカウントが増加された値である場合は、該ホップカウントに基づいて、前記パケットに含まれる経由ノード数を示す情報を更新し、前記一方のノードが前記更新処理を行うノードであることを知った場合は、前記パケットに含まれる経由ノード数を示す情報を、所定の値だけ、更新する手段を含むことを特徴とする。
【００２６】
【発明の実施の形態】
ＡＴＭとポイントツーポイントリンクが混在するような環境では、例えば、ＬＳＰの初段から途中の中継段ノードまではＡＴＭ、途中の中継段から最終段まではポイントツーポイントリンク、あるいは逆に、ＬＳＰの初段から途中の中継段まではポイントツーポイントリンク、途中の中継段から最終段まではＡＴＭなどといったケースが考えられる。そうした場合には、初段ノードのみで最終段ノードまでのホップ数だけＴＴＬ値を減算するというのではなく、ＬＳＰ上のＴＴＬ減算できるセグメントとできないセグメントを識別した上で、各ノードが適切なＴＴＬ値の減算をできるように、ＬＤＰ（ラベル制御プロトコル）により適切なホップ数情報を通知することと、各ノードがそれを管理することが必要となる。以下に、その具体的な方法を説明していく。
【００２７】
図１に、汎用ラベルヘッダのフォーマット例を示す。ラベルスイッチのために定義された４バイトの汎用ラベルヘッダは、ラベルフィールド１０１、ＣｏＳ（クラスオブサービス）フィールド１０２、ボトムオブスタックフィールド１０３、ＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）フィールド１０４より構成される。
【００２８】
汎用ラベルヘッダは、レイヤ３ヘッダ（ＩＰヘッダなど）とレイヤ２ヘッダ（ＰＰＰ（ポイントツーポイントプロトコル）ヘッダ、ＩＥＥＥ８０２．３／イーサネットなどのＬＡＮヘッダ、フレームリレーヘッダなど）の間に挿入される。レイヤ２がＡＴＭの場合には、レイヤ３ヘッダに汎用ラベルヘッダが付与されたものにＡＡＬ（ＡＴＭアダプテーションレイヤ）トレイラが付与され、それがセル化されてセルヘッダが付与される。
【００２９】
以下では、種々のレイヤ２メディア（データリンク）の場合のラベルスイッチングの実現形態（初段ノード、中継段ノード、最終段ノードにおける）、その際の各ノードでの汎用ラベルヘッダ内のＴＴＬ値の処理方法、そしてその汎用ラベルヘッダ処理を可能にするためのラベル制御プロトコル手順について説明する。
【００３０】
本実施形態において、ラベルスイッチパス（ＬＳＰ）の初段および最終段の役割を果たすエッジノードの機能構成例を図１３に、ＬＳＰの中継段の役割を果たすコアノードの機能構成例を図１４に示す。
【００３１】
エッジノード１３００は、初段ノードの場合には、非ラベル化フレームを非ラベル化フレーム送受信部１３０８にて受信し、レイヤ２ヘッダ処理部１３０６にて例えばイーサネットヘッダ等のレイヤ２ヘッダの処理後、パケット処理部１３０４にてパケットのレイヤ３情報あるいはさらに上位層の情報をもとにしてストリーム情報テーブル１３０１を参照し、パケットを特定のストリームに分類するとともに、そのストリームに対して実行すべき処理内容を得る。この内容には、出力インタフェース、出力時に付与するラベル種別とラベル値（汎用ラベルヘッダ内またはレイヤ２ヘッダ内）、付与すべきＣｏＳ（クラスオブサービス）情報、付与すべき汎用ラベルヘッダのＴＴＬ値が含まれる。ここで得られた結果に従い、汎用ラベルヘッダ処理部１３０５およびレイヤ２ヘッダ処理部１３０６にて必要なヘッダを付加し、所定のインタフェースのラベル化フレーム送受信部１３０７よりラベル化フレームを送信する。
【００３２】
最終段ノードの場合には、ラベル化フレーム送受信部１３０７にて受信したラベル化フレームが逆の手順で非ラベル化され、所定のインタフェースの非ラベル化フレーム送受信部１３０８より送信されることになる。
【００３３】
また、エッジノードが送受信するパケットには、ＬＳＰの設定や解放を行うための制御メッセージも含まれており、それらのパケットは制御メッセージ処理部１３０３にて内容が解釈され、ＬＳＰ状態管理部１３０２にて実行すべきＬＳＰ制御の処理内容が決められる。この内容には、送出すべき制御メッセージ、スイッチングのために必要な情報（付与するラベル値、減算するＴＴＬ値など）が含まれる。このように制御メッセージを処理した結果に従い、必要な情報が後述するストリーム情報テーブル１３０１に記憶される。
【００３４】
コアノード１４００は、ラベル化されたフレームをラベル化フレーム送受信部１４０６にて受信し、レイヤ２ヘッダにスイッチング用のラベル値が含まれていればレイヤ２ヘッダの内容をキーにし（レイヤ２ヘッダ処理部１４０５）、そうでない場合には通常のレイヤ２処理後に得られる汎用ラベルヘッダの内容をキーにして（汎用ラベルヘッダ処理部１４０４）、ラベル情報テーブル１４０３を参照し、得られた結果に従いスイッチ部１４０７がスイッチングを実行するとともに、新たなレイヤ２ヘッダおよび汎用ラベルヘッダに書き換える。この際に汎用ラベルヘッダ処理を行うノードである場合には、そこで減算（付与）すべきＴＴＬ値も決定する。そして、最終的に所定の出力インタフェースのラベル化フレーム送受信部１４０６より中継フレームを送信する。
【００３５】
エッジノードと同様、コアノードが送受信するパケットには、ＬＳＰの設定や解放を行うための制御メッセージも含まれており、それらのパケットは制御メッセージ処理部１４０２にて内容が解釈され、ＬＳＰ状態管理部１４０１にて実行すべきＬＳＰ制御の処理内容が決められる。この内容には、送出すべき制御メッセージ、スイッチングのために必要な情報（付与するラベル値、減算するＴＴＬ値など）が含まれる。このように制御メッセージを処理した結果に従い、必要な情報が後述するラベル情報テーブル１４０３に記憶される。
【００３６】
以下では、様々なネットワーク環境を例にとり、ＴＴＬ値を適切に減算する手法について具体的に説明する。
まず第１の例として、レイヤ２メディアがすべてＰＰＰリンクやＬＡＮメディアであって、図１の汎用ラベルヘッダに基づきＬＳＰ上のパケット転送処理を行う場合のＴＴＬ処理について図２に基づき説明する。
【００３７】
まずＬＳＰの初段ノード２０１では、受信したレイヤ３パケットのヘッダ参照により得られるストリーム情報（宛先レイヤ３アドレス、送信元レイヤ３アドレスなど）をキーに、図７に示すようなストリーム情報テーブル７０１（図１３の１３０１）を参照し、出力すべきインタフェースおよび付与すべき汎用ラベルヘッダの内容（ラベル値、ＣｏＳ値、ＴＴＬ値）を決定し、汎用ラベルヘッダとレイヤ２ヘッダを付与し所定の出力インタフェースよりレイヤ２フレームを出力する。この際、汎用ラベルヘッダのＴＴＬ値（ｌａｂｅｌ＿ｔｔｌ）は、受信したレイヤ３ヘッダのＴＴＬ値（ｉｐ＿ｔｔｌ）から１減算したものになる。
【００３８】
このレイヤ２フレームを受信した次段のラベルスイッチングルータ２０２は、レイヤ２ヘッダ処理の後、汎用ラベルヘッダの中のラベルフィールド（および必要であればＣｏＳフィールド）をキーに、図８に示すようなラベル情報テーブル８０１（図１４の１４０３）を参照し、出力インタフェースおよび出力時に付与するラベルフィールド値を決定するとともに、受信したＴＴＬフィールドの値を１つ減算、レイヤ２ヘッダを付与し出力する。
【００３９】
最終的にＬＳＰの最終段となるノードでは、受信したレイヤ２フレームのヘッダ処理後、汎用ラベルヘッダの中のラベルフィールドを参照し、ＬＳＰの終端点であることおよび上位プロトコル種別などの情報を認識し、汎用ラベルヘッダを除去し、レイヤ３処理を行った後に所定のインタフェースよりパケットを出力する。この際、ＬＳＰ最終段でのパケット出力時に付与するレイヤ３ヘッダ内のＴＴＬ値は、受信した汎用ラベルヘッダ内のＴＴＬ値から１つ減算したものにする。
【００４０】
このようにすることで、ＬＳＰ利用時においても、従来のように各ルータでレイヤ３ヘッダのＴＴＬ値を減算していた時とまったく同じＴＴＬ値（ｎ−７）をレイヤ３ヘッダに付与した状態でＬＳＰからパケットを出力することができる。
【００４１】
この場合のラベル制御プロトコル（ＬＤＰ）には、各ノードが最終段ノードまでのホップ数などに関する情報（図中のＨｏ）をやり取りすることは要求されない。それがラベル割り当て等の制御メッセージ中に含まれていたとしても、例えばＨｏ＝１を挿入しておけばよい。従って、ラベル割り当て要求メッセージを初段から最終段まで転送し、最終段から初段までラベル割り当てメッセージを順々に転送するような方法でＬＳＰ設定を行っても構わないし（図２（ａ））、各隣接ノード間で独立にラベル割り当て手順を実行しても構わない（図２（ｂ））。
【００４２】
一方、図３に示すように、ＡＴＭやフレームリレーなどのように、もともとラベルに相当するフィールドをレイヤ２ヘッダに有している場合には、上述したＰＰＰリンクやＬＡＮメディアの場合のようにレイヤ３パケットに付加された図１に示す汎用ラベルヘッダに基づくパケット転送を行う必要はなく、ＡＴＭセルヘッダやフレームリレーヘッダ内のラベル値に相当するフィールド（ＶＰＩ／ＶＣＩやＤＬＣＩ）を用いてパケット転送すれば良い。
【００４３】
その場合、図１の汎用ラベルヘッダがレイヤ３パケットに付与されていても、ＬＳＰの中継ノードにおいてその値の参照や書き換えを行う必要はないため、第１の例で示したようなＴＴＬ値の計算はＬＳＰの中継ノードでは行われない。
【００４４】
そこで、第２の例として、図３のようにすべての中継ノードにおいてＴＴＬ処理を行わない場合のパケット転送手順を、レイヤ２がＡＴＭの場合を例に説明する。
【００４５】
まず、ＬＳＰの初段ノードでは、受信したレイヤ３パケットのヘッダ参照により得られるストリーム情報（宛先レイヤ３アドレス、送信元レイヤ３アドレスなど）をキーに、図７に示すようなストリーム情報テーブル７０１を参照し、出力すべきインタフェースおよび付与すべき汎用ラベルヘッダ内のＴＴＬ値を決定するとともに、付与するＶＰＩ／ＶＣＩの値を決定し、そのＶＰＩ／ＶＣＩを含むＡＴＭセルヘッダを付与した後に所定の出力インタフェースよりＡＴＭセルを出力する。より具体的には、パケットに汎用ラベルヘッダを付与しさらにＡＴＭアダプテーションレイヤトレイラを付与したものを固定長にセグメントしてからセルヘッダを付与する。
【００４６】
この初段ノードでパケットに付与する汎用ラベルヘッダ内のＴＴＬ値は、非ラベルスイッチから受信したレイヤ３ヘッダ内のＴＴＬ値から、ＬＳＰの経由するホップ数分だけ減算したもの（図３では６ホップなので６つ減算）にする。
【００４７】
次段のラベルスイッチングルータは、受信したセルのＶＰＩ／ＶＣＩ値をもとに図８に示すようなラベル情報テーブル８０１を参照し、出力インタフェースおよび出力時に付与するＶＰＩ／ＶＣＩ値を決定、付与し、決定した出力インタフェースよりセルを出力する。この転送手順はＡＴＭセルヘッダ（一般的にはフレームリレーも含むレイヤ２ヘッダ）の処理のみで実行することができるため、レイヤ２ヘッダとレイヤ３ヘッダの間に挿入されている図１のような汎用ラベルヘッダ内の各フィールドは参照、書き換えを行う必要はない。
【００４８】
最終的に、ＬＳＰの最終段となるノードでは、受信したセルヘッダ内のＶＰＩ／ＶＣＩ値を参照し、ＬＳＰの終端点であることを認識し、パケットを再生し、レイヤ３ヘッダ処理を行った後に所定のインタフェースよりパケットを出力する。
【００４９】
この際、最終段ノードから出力時に付与するレイヤ３ヘッダ内のＴＴＬ値を、従来のように各ルータでレイヤ３ヘッダのＴＴＬ値を減算していた時と同じ値に設定するために、上述したＬＳＰの初段ノードにおいて、ＬＳＰの初段から最終段までのホップ数を記憶し、そのホップ数だけ（図３では６ホップ）汎用ラベルヘッダ（またはレイヤ３ヘッダ）内のＴＴＬフィールドの値を減算しておくのである。これにより、ＬＳＰの最終段のノードにおいては、受信した汎用ラベルヘッダ内（またはレイヤ３ヘッダ内）のＴＴＬ値から１つ減算したものを、出力時にレイヤ３ヘッダに付与するＴＴＬ値として設定することで、従来のルータの場合と同じＴＴＬ値を設定できる。
【００５０】
この場合のラベル制御プロトコル（ＬＤＰ）としては、各コアノードが最終段ノードまでのホップ数に関する情報（図中のＨｏ）をＬＳＰ状態管理部１４０１にて管理し、最終的にＬＳＰの初段ノードは最終段ノードまでのホップ数に相当する情報をＬＳＰ状態管理部１３０２にて管理できる必要がある。
【００５１】
従って、ラベル割り当て要求メッセージをＬＳＰの初段から最終段まで転送し、最終段から初段までラベル割り当てメッセージを逆方向に転送するような方法でＬＳＰ設定を行ない、ラベル割り当てメッセージ内には最終段ノードからのホップ数Ｈｏを含ませ、中段の各ノードではその値を１つずつ加算しながらメッセージを上流へ向けて転送する（図３（ａ））。あるいは、ラベル割り当て要求メッセージ無しに、最終段ノードが上流へ向けてラベル割り当てメッセージを送信し、該当ラベル割り当てメッセージに含まれるストリームの本当の上流にあたる中継ノードだけがそれを受け入れてＨｏを１つずつ加算しながらメッセージを上流へ向けて転送するような方法でも構わない。
【００５２】
あるいは、各隣接ノード間で独立にラベル割り当て手順を実行する方法も可能であるが、その場合には、上流に向けてラベル割り当てメッセージを送信するノードは、設定しようとしているＬＳＰに関してその時点で認識している最終段ノードからのホップ数情報Ｈｏをのせるとともに、その情報が変化した（下流から通知されるホップ数情報が変化した）ことを認識した場合には、その新しいホップ数情報を上流に制御メッセージにより伝える必要がある（図３（ｂ））。そのメッセージは、ホップ数更新のための専用のメッセージであっても良いし、ホップ数情報の部分を更新したラベル割り当てメッセージであっても良い。
【００５３】
なお、図３の例は、ＡＴＭやフレームリレーヘッダのコネクション識別子（ＶＰＩ／ＶＣＩ，ＤＬＣＩ）をラベル値として利用するラベルスイッチの場合を説明したものであるが、隣接するラベルスイッチノード間のレイヤ２ネットワークがＡＴＭやフレームリレーであっても、それらのヘッダ内のコネクション識別子をラベルスイッチングには利用しない場合も考えられる。すなわち、ＬＳＰ上の各ノードが、一つのＡＴＭコネクションやフレームリレーコネクションを単なる物理リンクのように利用して、図１に示した汎用ラベルヘッダ内のラベル値に基づきスイッチングすることも可能であり、その場合には、図２で説明した例と同様のＴＴＬ処理手順が各ノードに適用されることになる。
【００５４】
次に、第３の例として、単一のＬＳＰ内に、図１の汎用ラベルヘッダ内のラベル値を利用してスイッチングを行うセグメントと、ＡＴＭやフレームリレーなどのレイヤ２ヘッダ内のラベル値を利用してスイッチングを行うセグメントとが混在する場合の例について説明する。
【００５５】
図４は、ＡＴＭのＶＰＩ／ＶＣＩを用いてラベルスイッチングを行うセグメント、ＰＰＰなどのように汎用ラベルヘッダのラベル値を用いてスイッチングを行うセグメント、フレームリレーのＤＬＣＩを用いてスイッチングを行うセグメントが単一のＬＳＰ内に混在している場合の、レイヤ３ヘッダおよび汎用ラベルヘッダ内のＴＴＬ値の変化および制御手順の一例を示したものである。
【００５６】
まずＬＳＰの初段ノード４０１では、受信したレイヤ３パケットのヘッダ参照により得られるストリーム情報（宛先レイヤ３アドレス、送信元レイヤ３アドレスなど）をキーに、図７に示すようなストリーム情報テーブル７０１を参照し、出力すべきインタフェース（この例ではＡＴＭ）および付与すべき汎用ラベルヘッダ内のＴＴＬ値を決定するとともに、付与するラベル値（この例ではＶＰＩ／ＶＣＩの値）を決定し、そのＶＰＩ／ＶＣＩを含むＡＴＭセルヘッダを付与した後に所定の出力インタフェースよりＡＴＭセルを出力する。
【００５７】
この初段ノードでパケットに付与する汎用ラベルヘッダ内のＴＴＬ値は、非ラベルスイッチから受信したレイヤ３ヘッダ内のＴＴＬ値から、次に汎用ラベルヘッダのＴＴＬ処理が行われるノード４０３までのホップ数分（図４ではＶＰＩ／ＶＣＩをラベルとして転送されているホップ数分なので２）だけ減算したものにする。ＴＴＬ減算数は、ストリーム情報テーブル７０１に書かれた値を用いる。
【００５８】
ＡＴＭセルを受信した次段のラベルスイッチングルータ４０２は、受信したセルヘッダ内のＶＰＩ／ＶＣＩ値を参照し、それをキーに図８に示すようなラベル情報テーブル８０１を検索することにより、出力インタフェースおよび対応するＬＳＰ用に付与するラベル種別が再びセルヘッダのＶＰＩ／ＶＣＩであることを認識し、そのＶＰＩ／ＶＣＩ値を付与し、出力インタフェースより出力する。ここではセルヘッダ処理のみで転送処理を実行するため、レイヤ３パケットに付与された汎用ラベルヘッダ内の各フィールドについてはＴＴＬ値も含めて参照、書き換えは行われない。
【００５９】
さらに次段のラベルスイッチングルータ４０３では、受信したセルヘッダ内のＶＰＩ／ＶＣＩ値を参照し、それをキーにラベル情報テーブル８０１を検索し、出力インタフェース（ここではＰＰＰリンク）、対応するＬＳＰ用に付与するラベル値（汎用ラベルヘッダ）、および汎用ラベルヘッダ内に付与すべきＴＴＬ値が決定される。このＴＴＬ値は、新たに付与するラベル値が汎用ラベルヘッダ内のラベルフィールドに記入される（次段のノードでＴＴＬ減算を含む汎用ラベルヘッダ処理が行われる）場合には、ＡＴＭから受信した際の汎用ラベルヘッダ内のＴＴＬ値から１減算したもの（１ホップ分という意味）で良い。この１減算するという（デフォルトの）処理で良いか、それとも次に汎用ラベルヘッダのＴＴＬ処理が行われるノードまでのホップ数（２以上）分減算すべきかは、ラベル情報テーブル８０１に示されている。
【００６０】
このＰＰＰフレームを受信した次段のラベルスイッチングルータ４０４は、ＰＰＰヘッダ処理の後、汎用ラベルヘッダの中のラベルフィールド（および必要であればＣｏＳフィールド）をキーにラベル情報テーブル８０１を検索し、出力インタフェース（ここではＰＰＰ）および出力時に付与するラベル種別とラベル値、減算すべきＴＴＬ値（ここでは１）を決定、汎用ラベルフィールドの書き換えを行った後にＰＰＰヘッダを付与し、出力する。
【００６１】
さらに次段のラベルスイッチングルータ４０５でも、受信した汎用ラベルヘッダ内のラベル値等をキーにラベル情報テーブル８０１の検索を行い、出力インタフェース（ここではフレームリレー）、ラベル種別（ＤＬＣＩ）とその値、および減算すべきＴＴＬ値（次に汎用ラベルヘッダのＴＴＬ処理が行われるノードまでのホップ数）が決定される。
【００６２】
この場合はフレームリレーのホップ数（２）が決定され、汎用ラベルフィールドの書き換えを行うとともに、得られたＤＬＣＩ値をフレームリレーヘッダに付与し、フレームを出力する。この際、出力時に付与する汎用ラベルヘッダ内のラベル値は、次段ルータでスイッチングに利用されるものではなく（レイヤ２ヘッダ内のＤＬＣＩ値が次段ルータでのスイッチングに利用される）、汎用ラベルヘッダ内のラベルフィールドには、特にスイッチングのための意味のある値は挿入されない。
【００６３】
ラベルスイッチングルータ４０６では、受信したフレームリレーフレームヘッダのＤＬＣＩ値をキーにラベル情報テーブル８０１を検索し、受信ラベルと同じく送信ラベルもフレームリレーヘッダ内のＤＬＣＩであることがわかり、汎用ラベルヘッダのＴＴＬ値は処理されずにＤＬＣＩ値の書き換えにより次段ノード４０７へ転送される。
【００６４】
ここで着目するＬＳＰの最終段となるノード４０７では、受信したフレームリレーフレームヘッダ内のＤＬＣＩ値を参照し、ＬＳＰの終端点であることを認識し、フレームリレーヘッダを除去し、汎用ラベルヘッダを参照、除去し、レイヤ３処理を行った後に所定のインタフェースよりパケットを出力する（あるいは４０７が受信ホストである場合もあり得る）。
【００６５】
以上説明した第３の例（図４）では、ＬＳＰの最終段ノードからのパケット出力時に付与するレイヤ３ヘッダ内のＴＴＬ値を、従来のように各ルータでレイヤ３ヘッダのＴＴＬ値を減算していた時と同じ値に設定するために、ＬＳＰ経路上の初段ノードおよび汎用ラベルヘッダ処理を行う中継ノードにおいて、次に汎用ラベルヘッダ処理を行うＬＳＰ経路上のノードまでのホップ数を記憶し、そのホップ数だけ（図４ではノード４０１で２ホップ、４０３、４０４で１ホップ、４０５で２ホップ）汎用ラベルヘッダ内のＴＴＬフィールドの値を減算している。そうすることにより、ＬＳＰの最終段のノードにおいて、受信した汎用ラベルヘッダ内のＴＴＬ値から１つ減算したものを、出力時にレイヤ３ヘッダに付与するＴＴＬ値として設定することで、適切なＴＴＬ値を設定することを可能にしている。
【００６６】
この場合のラベル制御プロトコル（ＬＤＰ）としては、ＬＳＰ経路上の汎用ラベルヘッダ処理を行う各ノード（初段ノードを含む）が次に汎用ラベルヘッダ処理を行うＬＳＰ経路上の下流ノードまでのホップ数に関する情報（図中のＨｏ）を収集、記憶できる必要がある。
【００６７】
例えば図４（ａ）のように、ラベル割り当て要求メッセージをＬＳＰの初段から最終段まで転送し、最終段から初段までラベル割り当てメッセージを逆方向に転送するような方法でＬＳＰ設定を行なう場合、まず最終段ノードが送出するラベル割り当てメッセージ内に最終段ノードからのホップ数Ｈｏ（＝１）を含ませ、それを受信した中継段のノードでは、設定しようとしているＬＳＰの出力側ラベル種別と入力側ラベル種別を比較して、そのＬＳＰに関して自分自身で汎用ラベル処理（汎用ラベルヘッダ内のＴＴＬ値の書き換え処理）を行うか否かを判定する。汎用ラベル処理を行う場合には上流ノードに対してホップ数Ｈｏ＝１を返し、自分自身で汎用ラベル処理を行わない場合には「上流ノードに対して送信するＨｏ＝下流ノードから受信したＨｏ＋１」をラベル割り当てメッセージに記入して送信する。
【００６８】
図４の例のＬＳＰでは、ＡＴＭ（ＶＰＩ／ＶＣＩ）からＰＰＰ（汎用ラベル）へラベル種別が変わるノード４０３と、ＰＰＰ（汎用ラベル）からフレームリレー（ＤＬＣＩ）へラベル種別が変わるノード４０５において、汎用ラベルの処理を行うため、結果的に図４（ａ）に示すようにラベル割り当てメッセージ内のＨｏ値は変化しながら、下流から上流へ向けて転送されていく。あるいは、ラベル割り当て要求メッセージ無しに、最終段ノードが上流へ向けてラベル割り当てメッセージを送信し、該当ラベル割り当てメッセージに含まれるストリームの本当の上流にあたる中継ノードだけがそれを受け入れて、Ｈｏを上述の判断基準に従って必要な時は加算しながらメッセージを上流へ向けて転送するような方法でも構わない。
【００６９】
また図４（ｂ）に示すように、ＬＳＰの初段ノードから最終段ノードまでの間で汎用ラベルヘッダの処理を行わない区間に閉じて、上流から下流へのラベル割り当て要求メッセージの転送、下流から上流へのラベル割り当てメッセージの転送が行われ、然るべきホップカウントＨｏがラベル割り当てメッセージに付随して転送される方法も可能である。すなわち、ラベル割り当て要求メッセージがノード４０１−４０２−４０３へ、ラベル割り当てメッセージがノード４０３−４０２（Ｈｏ＝１）−４０１（Ｈｏ＝２）と転送される。
【００７０】
その場合は、４０３−４０４間、４０４−４０５間は各々に閉じてラベル割り当て（Ｈｏ＝１もしくは割り当てメッセージ内にＨｏなし）が行われる。４０５−４０６−４０７間は、４０１−４０２−４０３間と同様に、ラベル割り当てメッセージの転送が行われる。
【００７１】
なお、図４（ｂ）の場合に、ラベル割り当て要求メッセージ／ラベル割り当てメッセージを受けたノードが、４０２や４０６のようにそのメッセージを下流の隣接ノード／上流の隣接ノードへ（ラベル割り当てメッセージの場合はホップカウントＨｏを加算して）転送するか、それとも４０３〜４０５のように自ノードでラベル割り当て要求メッセージを終端させてラベル割り当てメッセージを上流へ返すかの判断は、設定しようとしているＬＳＰの出力側ラベル種別と入力側ラベル種別を比較して、そのＬＳＰに関して自分自身で汎用ラベル処理（汎用ラベルヘッダ内のＴＴＬ値の書き換え処理）を行うと判定した場合は後者を、行わないと判定した場合は前者を取れば良い。
【００７２】
また、後者の場合（４０３〜４０５に相当するノードの場合）に、Ｈｏなしの割り当てメッセージを送信しても良いか（例えば４０４，４０５）、上流ノードのホップ数加算のためにＨｏ＝１とした割り当てメッセージを送信すべきか（例えば４０３）を、ＬＳＰの入力側ラベル種別により（必要であれば上流の隣接ノードが汎用ラベル処理を行うか否かを知るためのメッセージ交換を行って）判断するようにしても良い。あるいは、４０３〜４０５に相当するノードは常にＨｏなしの割り当てメッセージを送信するが、それを受けた上流の隣接ノードが４０２や４０６に相当するノードだった場合には、その上流の隣接ノードが受けたメッセージをＨｏ＝１と解釈して動作する（加算したＨｏを含む割り当てメッセージをさらに上流へ転送する）のでも良い。
【００７３】
また、図３（ｂ）と同様に、各隣接ノード間で独立にラベル割り当て手順を実行し、上流に向けてラベル割り当てメッセージを送信するノードは、設定しようとしているＬＳＰに関してその時点で認識している汎用ラベル処理を行う最も近い下流ノードからのホップ数情報Ｈｏをのせるとともに、その情報が変化した（下流から通知されるホップ数情報が変化した）ことを認識した場合には、その新しいホップ数情報を上流に制御メッセージにより伝えるという方法をとっても良い（図４（ｃ））。そのメッセージは、ホップ数更新のための専用のメッセージであっても良いし、ホップ数情報の部分を更新したラベル割り当てメッセージであっても良い。
【００７４】
次に、第４の例、第５の例として、単一のＬＳＰ内に図１の汎用ラベルヘッダ内のラベル値を利用してスイッチングを行うセグメントとＡＴＭやフレームリレーなどのレイヤ２ヘッダ内のラベル値を利用してスイッチングを行うセグメントとが混在する場合の他の例について、図５、図６を用いて説明する。図４（第３の例）では、ＡＴＭ−汎用ラベル−フレームリレーという順でスイッチングセグメントが並んでいたが、図５、６の例では汎用ラベル−フレームリレー−ＡＴＭの順にスイッチングセグメントが並んでいる。この場合の汎用ラベルヘッダ内のＴＴＬ処理方法として、図５に示す方法と図６に示す方法の２通りが考えられる。
【００７５】
まず、図５に示す第４の例は、第３の例として説明した図４のケースと同様の考え方でＬＳＰ上のパケット転送処理を行う場合を示している。
まずＬＳＰの初段ノード５０１では、受信したレイヤ３パケットのヘッダ参照により得られるストリーム情報（宛先レイヤ３アドレス、送信元レイヤ３アドレスなど）をキーに、図７に示すようなストリーム情報テーブル７０１を参照し、出力すべきインタフェース（この例ではＬＡＮ）および付与すべき汎用ラベルヘッダの内容（ラベル値、ＣｏＳ値、ＴＴＬ値）を決定し、汎用ラベルヘッダとレイヤ２ヘッダを付与し所定の出力インタフェースよりレイヤ２フレームを出力する。この際、次段ノード５０２でも汎用ラベルヘッダ処理を行うため、初段ノード５０１で付与すべき汎用ラベルヘッダ内のＴＴＬ値（ｌａｂｅｌ＿ｔｔｌ）は受信したレイヤ３ヘッダのＴＴＬ値（ｉｐ＿ｔｔｌ）から１減算したものになる。
【００７６】
以下、図５に示すように、ノード５０２では汎用ラベルヘッダ内のラベル値等をキーにラベル情報テーブル８０１を検索し、その内容に基づきスイッチングし（ｌａｂｅｌ＿ｔｔｌは１減算）再び汎用ラベルヘッダを付与する。次のノード５０３では汎用ラベルヘッダ内のラベル値等をキーにラベル情報テーブルを検索し、その内容に基づきスイッチングしフレームリレーヘッダをラベルとして付与する。ここでラベル情報テーブルのＴＴＬ減算数は２（ｌａｂｅｌ＿ｔｔｌを２減算）になっており、これは次に汎用ラベルヘッダを処理するノードが２ホップ先のノード５０５であるためである。ノード５０４ではフレームリレーヘッダ（ＤＬＣＩ）を入力ラベルとしてラベル情報テーブルを検索し、出力ラベルにもフレームリレーヘッダ（ＤＬＣＩ）を付与する（汎用ラベルヘッダは処理しない）。
【００７７】
ノード５０５では、フレームリレーヘッダ（ＤＬＣＩ）を入力ラベルとしてラベル情報テーブル８０１を検索し、出力インタフェース（ＡＴＭ）と出力ラベル（ＶＰＩ／ＶＣＩ）を得る。ここで、汎用ラベルヘッダ内のラベルフィールド値はスイッチング自体には利用されていないが、フレームリレーフレームからＡＴＭセルへの変換時にレイヤ３パケットに付与する汎用ラベルヘッダ内のＴＴＬ値（ｌａｂｅｌ＿ｔｔｌ）を書き換えている（ＶＰＩ／ＶＣＩラベルでスイッチングするホップ数２だけ減算）。
【００７８】
ＬＳＰの最終段となるノード５０７では、受信したセルヘッダ内のＶＰＩ／ＶＣＩ値を参照し、着目するＬＳＰの終端点であることを認識し、ＡＡＬフレーム組み立て汎用ラベルヘッダを参照、除去し、レイヤ３処理を行った後に所定のインタフェースよりパケットを出力する（あるいは５０７が受信ホストである場合もあり得る）。
【００７９】
以上説明した第４の例では、（ａ）汎用ラベルヘッダ内のラベル値をキーにラベル情報テーブルを検索しスイッチングを行うノード（図５の５０３）、（ｂ）ラベル情報テーブルの検索の結果汎用ラベルヘッダ内のラベル値を更新するノード（図５の５０２）、さらに（ｃ）汎用ラベルヘッダ内のラベル値の参照あるいは更新の必要はないが、入力ラベルと出力ラベルの形態が異なる（フレームリレーヘッダとＡＴＭセルヘッダなど）ノード（図５の５０５）、において汎用ラベルヘッダ内のＴＴＬ値を必要数だけ減算することで、結果的にＬＳＰの最終段ノードからのパケット出力時に付与するレイヤ３ヘッダ内のＴＴＬ値を、従来のように各ルータでレイヤ３ヘッダのＴＴＬ値を減算していた時とまったく同じ値に設定することを実現している。
【００８０】
この場合のラベル制御プロトコル（ＬＤＰ）としては、第３の例（図４）と同様のバリエーションが考えられる。すなわち、図５（ａ）のようにＬＳＰの最終段から初段までラベル割り当て処理を伝搬させる方法、図５（ｂ）のように汎用ラベルヘッダ内のＴＴＬ減算処理を行わないノードの範囲でラベル割り当て処理を伝搬させる方法、図５（ｃ）のようにラベル割り当て処理は各隣接で独立に実行し必要に応じてホップ数情報を更新する方法、である。ここでは、フレームリレーヘッダのＤＬＣＩを入力ラベルとし、ＡＴＭセルヘッダのＶＰＩ／ＶＣＩを出力ラベルとするノード（ノード５０５）でもＴＴＬ処理を行う場合、すなわち入力ラベルも出力ラベルも汎用ラベルヘッダ内のものを用いないが汎用ラベルヘッダ内のＴＴＬ値は減算処理する場合、の制御プロトコルを示している。
【００８１】
次に、図６に示す第５の例は、図５に示した第４の例において、フレームリレーフレームヘッダからＡＴＭセルヘッダにスイッチングのためのラベルが変わるノード５０５において、汎用ラベルヘッダのＴＴＬ処理を行わない場合を示している。
【００８２】
まずＬＳＰの初段ノード５０１から中継段ノード５０２，５０３，５０４までは図５と同様に転送処理を行っている。
ノード５０５では、フレームリレーヘッダ（ＤＬＣＩ）を入力ラベルとしてラベル情報テーブル８０１を検索し、出力インタフェース（ＡＴＭ）と出力ラベル（ＶＰＩ／ＶＣＩ）を得る。ここで、汎用ラベルヘッダ内のラベルフィールド値はスイッチング自体には利用されていないため、フレームリレーフレームからＡＴＭセルへの変換時にレイヤ３パケットに付与する汎用ラベルヘッダ内のＴＴＬ値（ｌａｂｅｌ＿ｔｔｌ）の書き換えを行わない。したがって、中継段ノード５０３から最終段ノード５０７の間のノード５０４、５０５、５０６において汎用ラベルヘッダ処理が行われないことになるため、中継段ノード５０３では汎用ラベルヘッダ処理時に、次のＴＴＬ値処理を行うノード５０７までのホップ数にあたる４だけＴＴＬ減算を行う。
【００８３】
ＬＳＰの最終段となるノード５０７での処理は、第４の例と同様である。
この第５の例では、（ａ）汎用ラベルヘッダ内のラベル値をキーにラベル情報テーブルを検索しスイッチングを行うノード（図６の５０３）、（ｂ）ラベル情報テーブルの検索の結果汎用ラベルヘッダ内のラベル値を更新するノード（図６の５０２）、において汎用ラベルヘッダ内のＴＴＬ値を必要数だけ減算することで、結果的にＬＳＰの最終段ノードからのパケット出力時に付与するレイヤ３ヘッダ内のＴＴＬ値を、従来のように各ルータでレイヤ３ヘッダのＴＴＬ値を減算していた時とまったく同じ値に設定することを実現している。
【００８４】
この場合のラベル制御プロトコル（ＬＤＰ）としては、第４の例（図５）と同様のバリエーションが考えられる。すなわち、図６（ａ）のようにＬＳＰの最終段から初段までラベル割り当て処理を伝搬させる方法、図６（ｂ）のように汎用ラベルヘッダ内のＴＴＬ減算処理を行わないノードの範囲でラベル割り当て処理を伝搬させる方法、図６（ｃ）のようにラベル割り当て処理は各隣接で独立に実行し必要に応じてホップ数情報を更新する方法である。ここで、第４の例（図５）と異なるのは、フレームリレーヘッダのＤＬＣＩを入力ラベルとし、ＡＴＭセルヘッダのＶＰＩ／ＶＣＩを出力ラベルとするノード（ノード５０５）ではＴＴＬ処理を行わないことを想定した制御プロトコルである点である。
【００８５】
すなわち、この場合は、あるＬＳＰについて、自ノードの入力側ラベル種別と出力側ラベル種別が異なっていても、それがいづれも汎用ラベルヘッダ内のラベルでない場合（ＡＴＭ  ＶＰＩ／ＶＣＩやフレームリレーＤＬＣＩである場合）には、自ノードでは汎用ラベルヘッダ処理（ＴＴＬ値の書き換え）はしないと判断して、「上流ノードに対して送信するＨｏ＝下流ノードから受信したＨｏ＋１」をラベル割り当てメッセージに記入して送信する。
【００８６】
図５（ｃ）、図６（ｃ）では、ＬＳＰ経路上のノードは、すでに上流に対してラベルを割り当てた際に一時的にホップ数を通知していたとしても、後に下流からラベルがわりあてられた際に通知されたホップ数を参照して、上流ノードに対して正しいホップ数を改めて通知することが必要となる。その正しいホップ数が、図５の場合のノード５０５、５０４ではそれぞれ１、２となり、図６の場合のノード５０５、５０４ではそれぞれ３、４となる。その通知するメッセージは、ホップ数更新のための専用のメッセージであっても良いし、ホップ数情報の部分を更新したラベル割り当てメッセージであっても良い点は、図４（ｃ）や図３（ｂ）と同様である。
【００８７】
以上説明してきたいくつかの場合について、ＬＳＰ上の各ノードでのラベル割当て制御のためのメッセージ受信時の動作の流れを以下に示す。
図９は、図２（ａ）、図３（ａ）、図４（ａ）（ｂ）、図５（ａ）（ｂ）、図６（ａ）（ｂ）の場合について、下流ノードからラベル割当てメッセージを受信したときの動作の一例をまとめたものである。
【００８８】
まず、あるストリームに関するラベル割当てメッセージを下流ノードから受信すると、ラベルを割り当てるストリームに関する情報、下流側のラベルの種別（ＡＴＭかフレームリレーか汎用ラベルか、など）、下流から受信したホップ数情報Ｈｏなどをチェックし記憶する（ステップＳ−１）。
【００８９】
そして、下流からラベル割当てを受けたストリームと同一のストリームに関するラベル割当て要求を上流ノードから受けているか否か（着目ストリームに関する未割当てのラベル割当て要求があるか否か）をチェックする（ステップＳ−２）。未割り当てのラベル割り当て要求がない場合には、そこで処理が終了し、下流から受信したホップ数情報Ｈｏをそのストリームと関連付けて記憶する。この場合には、以後そのノードで、該当ストリームに属するパケットを受信した場合、そのストリームに関しては初段ノードとしての動作を行う。すなわち、受信パケットのレイヤ３ヘッダ内のＴＴＬ値（ｉｐ＿ｔｔｌ）からＨｏだけ減算した値を汎用ラベルヘッダ内のＴＴＬ値（ｌａｂｅｌ＿ｔｔｌ）として設定して、所定のラベル値を付与してパケットを送出する。
【００９０】
ラベル割当てを受けたストリームと同一のストリームが上流側でラベル割当て待ち状態にある場合には、割り当てるラベル値を決定するとともに、割当て待ち状態の上流側のラベル種別をチェックし（ステップＳ−３）、ラベル割当てを受けた下流側ラベルの種別と比較して、設定しようとしているＬＳＰに関して、自ノードで汎用ラベルヘッダのＴＴＬ処理を実行するかどうかを判断する（ステップＳ−４）。この判断基準の具体例については後述する。
【００９１】
汎用ラベルヘッダ内のＴＴＬ処理を行うと判断した場合には、ホップ数情報Ｈｏを１にして（ステップＳ−５）、ラベル割当てメッセージを割り当て待ち状態の上流ノードへ送信する（ステップＳ−７）。汎用ラベルヘッダ内のＴＴＬ処理を行わないと判断した場合には、ホップ数情報Ｈｏを下流から受信したＨｏに１加算したものにして（ステップＳ−６）、ラベル割り当てメッセージを割り当て待ち状態の上流ノードへ送信する（ステップＳ−７）。この時点でこのノードでは、今処理したラベル割り当てメッセージの内容に相当する情報が図８のラベル情報テーブルのエントリとして生成されている。よって以後は、上流へ通知したラベル値の付与されたフレームを受信すると、ＬＳＰの中継段ノードとして、送信インタフェースや送信時に付与すべきラベル値を決定、付与し、出力する。
【００９２】
図１０は、上述した「自ノードで汎用ラベルヘッダのＴＴＬ処理を実行するかどうか」の判断（図９のステップＳ−４）の具体的内容を示している。まず判断するためのパラメータとなる情報として、入力側ラベル種別と出力側ラベル種別を用いる。隣接する（物理的あるいは論理的な）ノード間であらかじめ利用するラベル種別やラベルの値の範囲などはネゴシエーションが行われており、その内容を個々のノードでは隣接ノード毎に記憶している。
【００９３】
まず、入力側ラベル種別が出力側ラベル種別のいづれか一方が汎用ラベルヘッダである場合（ステップＳ−１１）には、そのノードでスイッチングのために汎用ラベルヘッダの処理を実行するため、汎用ラベルヘッダ内のＴＴＬ値処理も実行されると判断する。上流と下流のいづれのラベルも汎用ラベルヘッダでない（例えばレイヤ２ヘッダである）場合、さらにラベル種別が同一である場合（例えばＡＴＭ  ＶＰＩ／ＶＣＩ、あるいはフレームリレーＤＬＣＩ）には、汎用ラベルヘッダ内のＴＴＬ値処理は実行されないと判断する（従来のＡＴＭスイッチングあるいはフレームリレースイッチングが実行されるため）。
【００９４】
ラベル種別が異なる場合（例えば下流がＡＴＭ  ＶＰＩ／ＶＣＩで上流がフレームリレーＤＬＣＩ）には、図５に示した方式で動作する場合には汎用ラベルヘッダ内のＴＴＬ処理を実行すると判断し、図６に示した方式で動作する場合には実行しないと判断する。異なるラベル種別間（汎用ラベル以外の）のスイッチング時に汎用ラベルヘッダ内容を書きかえられるようにするか否かの実装形態により、いづれの場合も考えられる（図１０はＴＴＬ処理を実行する図５の方式の場合について示している）。
【００９５】
図１１は、図２（ｂ）、図３（ｂ）、図４（ｃ）、図５（ｃ）、図６（ｃ）の場合について、上流ノードからラベル割当て要求メッセージを受信したときの動作の一例をまとめたものである。これは、図９の例のようにラベル割り当て要求が最終的な初段から最終段まで、あるいはＴＴＬ処理をする上流ノードから次にＴＴＬ処理をする下流ノードまで伝搬する方法ではなく、基本的に隣接ノード間で割り当て要求と割り当て処理が閉じるような手順をとった場合の動作である。この場合でも、結果的に正しいホップ数情報（ＴＴＬ処理をしないノードの連続数に関する情報）が正しく各ノードで管理できるためのメカニズムが必要である。
【００９６】
そこで、ノードがあるストリームに関するラベル割当て要求メッセージを上流ノードから受信する（ステップＳ−２１）と、割り当てるべきラベル値を決定するとともに、要求ストリームに関する下流側のラベルがすでに割り当てられているか否かをチェックする（ステップＳ−２２）。
【００９７】
下流側ラベルが存在しない場合（あるいはトポロジー的に最終段ルータである場合）には、そのストリームに関するホップカウント情報Ｈｏ＝１を記憶し（ステップＳ−２４）、それをラベル値（およびラベル種別）とともに上流側へラベル割り当てメッセージにより通知する（ステップＳ−２６）。
【００９８】
下流側ラベルがすでに存在する場合には、その下流側ラベル種別と上流へ割り当てようとしているラベル種別とから、そのノードにおいて汎用ラベルヘッダのＴＴＬ値処理をするか否かを判定する（ステップＳ−２３）。判定方法については例えば図１０に示したものを利用する。ＴＴＬ処理をすると判断した場合には、そのストリームに関するホップカウント値Ｈｏ＝１を記憶し（ステップＳ−２４）、ＴＴＬ処理をしないと判断した場合には、そのストリームに関するホップカウント値として下流から受信した値Ｈｏに１加算したものを記憶する（ステップＳ−２５）。そしてラベル値（およびラベル種別）とともに、記憶したホップカウント情報を上流側へラベル割り当てメッセージにより通知する（ステップＳ−２６）。
【００９９】
図１２は、図２（ｂ）、図３（ｂ）、図４（ｃ）、図５（ｃ）、図６（ｃ）の場合について、下流からラベル割り当てメッセージ（または後述する更新メッセージ）を受信した際の動作の一例をまとめたものである。
【０１００】
下流からラベル割り当てメッセージを受信すると、ラベルとともにメッセージ内のホップカウント値Ｈｏを記憶する（ステップＳ−３１）。ここで、受信したラベル割り当てメッセージに含まれているものと同じストリームに関する上流側のラベルがすでに存在するか否かをチェックする（ステップＳ−３２）。上流側ラベルが存在しなければそこで処理は終了するが、存在する場合にはその上流側ラベル種別と下流側のラベル種別とから、そのノードにおいて汎用ラベルヘッダのＴＴＬ値処理をするか否かを判定する（ステップＳ−３３）。判定方法については例えば図１０に示したものを利用する。
【０１０１】
汎用ラベルヘッダ処理を行うと判断された場合には、すでに上流に対してホップカウント情報Ｈｏ＝１が通知されているはずなので、そのまま処理が終了する。汎用ラベルヘッダ処理をしないと判断された場合には、下流から受信したホップカウント値と上流へすでに割り当てている（記憶された）ホップカウント値とを比較し（ステップＳ−３４）、下流から受信したＨｏ＋１が上流へ割り当てている値と一致していればそのまま処理が終了するが、一致しない場合には、上流ノードに対して「下流から受信したＨｏに１加算した値」を正しいホップカウント情報として通知する（ステップＳ−３５）。このホップカウント情報の通知は、新たに正しいホップカウントを通知するためのメッセージ（更新メッセージ）を定義して用いても良いし、ラベル値をすでに割り当てている値を書きこんで、ホップカウント値だけを新たに書き換えたラベル割り当てメッセージを送信しても良い。
【０１０２】
以上説明してきた例では、ポイントツーポイントのＬＳＰについてのみ言及したが、これらの手順は、複数の異なる上流ラベルがひとつの下流ラベルに対応付けられる（ストリームのマージ）マルチポイントツーポイントのＬＳＰについても適用することができる。
【０１０３】
例えば、図６の例において、あるストリームのためにポイントツーポイントのＬＳＰが初段ノード５０１から最終段ノード５０７まで設定されている状態で、中継段ノード５０３に対して現在の上流ノード５０２とは異なる別の上流ノード５０８から同じストリームのためのＬＳＰ設定要求が送信されてきた場合を考える。
【０１０４】
この場合のノード５０３での処理は、図６の（ａ）、（ｂ）のようなラベル割り当て要求メッセージ、割り当てメッセージを伝搬させる方法、（ｃ）のような隣接ノード間のみでラベル割り当てが独立に行なわれる方法のいづれにおいても同様に考えることができる。
【０１０５】
すなわち、ラベル割り当て要求メッセージを受信したノード５０３での処理フローは、図１１に示したものと同様になる。まず、上流ノード５０８からラベル割り当て要求メッセージを受信したノード５０３は、要求ストリームのための下流側のラベルがノード５０４との間ですでに存在していると認識すると、その下流側ノードとの間で割り当てているラベル種別（フレームリレーのＤＬＣＩ）と上流ノード５０８との間で割り当てるべきラベル種別とから、自ノードにおいて、ノード５０８からのパケットストリームにつき、汎用ラベルヘッダのＴＴＬ値処理を行なうか否かを、図１０に示したような基準で判定する。
【０１０６】
例えば上流側ラベル種別がＬＡＮ上の汎用ラベルの場合には、すでに存在するノード５０２との間の上流側ラベルと同様、このノード５０３において汎用ラベル処理を行なうため、新たな上流ノード５０８に対してもＨｏ＝１を記憶し、記憶したＨｏ＝１とともに（もしくはＨｏなしで）ラベル値を上流ノード５０８に対してラベル割り当てメッセージにより通知する。
【０１０７】
この場合、実際にパケットがノード５０８から転送されてくると、受信した汎用ラベルヘッダ内のラベル値を参照し、出力インタフェースや下流ノード５０４へ送出するためのフレームリレーＤＬＣＩ値（上流ノード５０２から受信したラベル値からラベル情報テーブルを検索して得られる値と同じＤＬＣＩ値が得られる）とともに減算すべき汎用ラベルヘッダ内のＴＴＬ値（図６では４）を得る。
【０１０８】
一方、上流側ラベル種別がフレームリレーのＤＬＣＩの場合には、下流側５０４との間のラベル種別と同一であるため、ノード５０３において汎用ラベル処理を行なう必要がないことを認識し、新たな上流ノード５０８に対してＨｏ＝４＋１＝５を記憶し、ラベル値とともに、記憶したＨｏ＝５を上流ノード５０８に対してラベル割り当てメッセージにより通知する（これにより上流ノ−ドから予めＴＴＬ値が減算されたパケットが送られてくることになる）。
【０１０９】
この場合、実際にパケットがノード５０８から転送されてくると、受信したＤＬＣＩ値を参照し、出力インタフェースや下流ノード５０４へ送出するためのＤＬＣＩ値（上流ノード５０２から受信したラベル値からラベル情報テーブルを検索して得られる値と同じＤＬＣＩ値が得られる）が得られるが、汎用ラベルヘッダ内のＴＴＬ値は処理されない（従って、ＴＴＬ減算数の情報は必要ない）。
【０１１０】
このようにあるノードにおいてＬＳＰがマージする場合には、どの上流ノードからのラベル化フレームを転送するかによって、同じ下流ノードへ同じラベルを付与して転送する場合でも、汎用ラベルヘッダ内のＴＴＬ値を処理する場合と処理しない場合がある。これは、上流ノードとの間のラベル種別と下流ノードとの間のラベル種別の組合せにより、そのノードでの処理方法が決まるためである。
【０１１１】
また、本発明は、ユニキャスト通信に対してだけでなく、マルチキャスト通信に対しても、制御手順を多少変更することにより適用することができる。以下には、この例を示す。
【０１１２】
図１５は、図４に示したネットワーク構成にノード４０８、４０９、４１０を加えたもので、レイヤ３のマルチキャスト通信のためのポイントツーマルチポイント（図１５では１対２）のＬＳＰを利用する様子を示している。ユニキャスト（マージなし（ポイントツーポイント）、およびマージあり（マルチポイントツーポイント）の場合と大きく異なるのは、汎用ラベルヘッダ内のＴＴＬ値を複数減算する位置が異なる点である。
【０１１３】
ユニキャストの場合は、ＬＳＰ上のあるノードにおいて、下流隣接にＴＴＬ処理しないノードがｋ個連続して存在する場合に、自ノードとそれらのノードの分も含めて（ｋ＋１）、先にＴＴＬ減算していた。マルチキャストの場合には、下流側で分岐した際に分岐した先によって減算すべきＴＴＬ数が一般に異なるため、上記減算方法を適用するのが難しい場合がある。そのため、マルチキャストの場合には、ＬＳＰ上のノードにおいて、上流隣接にＴＴＬ処理しないノードがｋ個連続して存在する場合に、自ノードとそれらのノードの分も含めて（ｋ＋１）、後にＴＴＬ減算する。これを可能にするための、ラベル制御プロトコルの例を以下に示す。
【０１１４】
まず、ラベル割り当て要求メッセージがＬＳＰの初段から最終段まで転送されていき、ラベル割り当てメッセージが逆に最終段から初段まで返されるような手順の場合（図１５）には、ラベル割り当て要求メッセージに、ＴＴＬ減算数に相当する情報を含める。初段ノード４０１は４０２に対してＨｉ＝１を含めたラベル割り当て要求メッセージを送信し、ノード４０２は自ノードの上流側も下流側もラベル種別がＡＴＭであることを認識すると、４０３に対してＨｉ＝１＋１＝２のラベル割り当て要求メッセージを送信する。
【０１１５】
ノード４０３では、ＬＳＰが４０４方向と４０８方向とに分岐しているが、４０４方向はＰＰＰリンク上の汎用ラベルであるので、自ノードで汎用ラベルヘッダ内のＴＴＬ処理を行うため、４０４に対してＨｉ＝１にしてラベル割り当て要求を送信し、４０８方向はＡＴＭラベルであるので、自ノードでは汎用ラベルヘッダ処理はしないため、４０８に対してＨｉ＝２＋１＝３にしてラベル割り当て要求を送信する。
【０１１６】
さらに、ノード４０８は４０９に対して、Ｈｉ＝３＋１＝４にしてラベル割り当て要求を、４０４は４０５に対して、Ｈｉ＝１にしてラベル割り当て要求を送信する。その後各々の最終段ノードまでこのような手順が続けられる。
【０１１７】
ここで、下流へ送信するラベル割り当て要求メッセージに、Ｈｉ＝１を含ませて（もしくはＨｉ無しに）送信するか、Ｈｉ＝［上流から通知されたＨｉ］＋１を含ませて送信するかの判断基準は、図１０に示したのと同様のものを用いることができる。そして、着目ＬＳＰについて、汎用ラベルヘッダのＴＴＬ処理を自ノードで実行すると判断すれば前者を、実行しないと判断すれば後者を行う。
【０１１８】
これにより、分岐点であるノード４０３では、ラベルの付与されたフレーム（ここではＡＴＭセル）をノード４０２から受信すると、ラベル情報テーブルを参照し、結果として出力インタフェースとしてノード４０４とノード４０８が得られる。４０４の方にはＴＴＬ減算数２が記入されており（出力側でラベルを汎用ラベルヘッダに与えるのでＴＴＬ処理を行い、その際に上流側でＴＴＬ処理しないノード（４０２）の数（１）に自ノードを加えた数（２）を減算することになる）、４０８の方にはＴＴＬ減算は無し（入出力側とも汎用ラベルヘッダの処理は行わない）となっている。
【０１１９】
ノード４０８でも入力側、出力側ともにＡＴＭラベルであるためにＴＴＬ処理はなく、次のノード４０９において、入力側がＡＴＭラベル、出力側が汎用ラベルであるためにＴＴＬ減算を行うが、その際の減算数は、ラベル割り当て要求メッセージに記入されていたＨｉ＝４を記憶しており、４減算する。これは、上流側でＴＴＬ処理しないノード（４０２，４０３，４０８）の数（３）に自ノードを加えたノード数に相当することになる。
【０１２０】
次に、ラベル割り当て手順がＬＳＰ上の各隣接ノード間で分散して行われるような手順の場合（図１６）にも、各ノードはラベル割り当て要求メッセージに、ホップ数に相当する情報を含めるが、後に上流側から新たなラベル割り当て要求メッセージを受信することにより、以前に与えたホップ数情報を新たな値に更新する必要が生じる場合がある。そうした場合には、図１６に示すように、新たなメッセージ（更新メッセージ）を定義するか、あるいはホップ数情報のみを更新したラベル割り当て要求メッセージを再度送信するなどして、上流からのホップ数変更を下流ノードへ伝える。このときも、新たなホップ数情報（２以上の値）を含むメッセージを送信するか否かの判断基準として、図１０のようなものを用いることができる。
【０１２１】
本実施形態にて説明した各機能は、ハードウェアとしてもソフトウェアとしても実現可能であり、ソフトウェアとして実現する場合は、コンピュータに所定の手順を実行させるための（あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるための）プログラムを記録した、コンピュータ読み取り可能な記録媒体として実施することもできる（特に制御メッセージ処理部、ＬＳＰ状態管理部、パケット処理部など）。
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【０１２２】
【発明の効果】
以上詳述したように、本発明によれば、汎用ラベルヘッダのＴＴＬ値を操作できるノードと操作できないノードが混在するようなＬＳＰ上の各ノードにおいて、ＩＰヘッダまたは汎用ラベルヘッダのＴＴＬ値を適切に減算し、ＬＳＰの最終段ノードからＩＰパケットが出てきた際に、従来のホップバイホップ転送の場合と同じＩＰヘッダのＴＴＬ値を与えることが可能となる。
【図面の簡単な説明】
【図１】  汎用ラベルヘッダのフォーマット例を示す図。
【図２】  汎用ラベルヘッダに基づきＬＳＰ上のパケット転送処理を行う場合のＴＴＬ処理の例を説明するための図。
【図３】  レイヤ２ヘッダのラベルに基づきＬＳＰ上のパケット転送処理を行い、中段ノードではＴＴＬ処理を行わない例を説明するための図。
【図４】  汎用ラベルヘッダ内のラベル値を利用してスイッチングを行うセグメントと、レイヤ２ヘッダ内のラベル値を利用してスイッチングを行うセグメントとが混在するある場合における、ＴＴＬ処理を含む制御手順の例を説明するための図。
【図５】  汎用ラベルヘッダ内のラベル値を利用してスイッチングを行うセグメントと、レイヤ２ヘッダ内のラベル値を利用してスイッチングを行うセグメントとが混在する他の場合における、ＴＴＬ処理を含む制御手順の一例を説明するための図。
【図６】  汎用ラベルヘッダ内のラベル値を利用してスイッチングを行うセグメントと、レイヤ２ヘッダ内のラベル値を利用してスイッチングを行うセグメントとが混在する他の場合における、ＴＴＬ処理を含む制御手順の別の例を説明するための図。
【図７】  ストリーム情報テーブルの内容の例を示す図。
【図８】  ラベル情報テーブルの内容の例を示す図。
【図９】  下流ノードからラベル割当てメッセージを受信したときの動作の一例を示す図。
【図１０】  自ノードで汎用ラベルヘッダのＴＴＬ処理を実行するかどうかの判断の一具体例を示す図。
【図１１】  上流ノードからラベル割当て要求メッセージを受信したときの動作の一例を示す図。
【図１２】  下流からラベル割当てメッセージ（または更新メッセージ）を受信したときの動作の別の例を示す図。
【図１３】  ＬＳＰの初段および最終段の役割を果たすエッジノードの機能構成例を示す図。
【図１４】  ＬＳＰの中継段の役割を果たすコアノードの機能構成例を示す図。
【図１５】  汎用ラベルヘッダ内のラベル値を利用してスイッチングを行うセグメントと、レイヤ２ヘッダ内のラベル値を利用してスイッチングを行うセグメントとが混在するネットワークで、マルチキャスト通信を行う場合の、ＴＴＬ処理を含む制御手順の一例を説明するための図。
【図１６】  汎用ラベルヘッダ内のラベル値を利用してスイッチングを行うセグメントと、レイヤ２ヘッダ内のラベル値を利用してスイッチングを行うセグメントとが混在するネットワークで、マルチキャスト通信を行う場合の、ＴＴＬ処理を含む制御手順の別の例を説明するための図。
【符号の説明】
１３００…エッジノード
１４００…コアノード
１３０１…ストリーム情報テーブル
１４０３…ラベル情報テーブル
１３０２、１４０１…ＬＳＰ状態管理部
１３０３、１４０２…制御メッセージ処理部
１３０４…パケット処理部
１３０５、１４０４…汎用ラベルヘッダ処理部
１３０６、１４０５…レイヤ２ヘッダ処理部
１３０７、１４０６…ラベル化フレーム送受信部
１３０８…非ラベル化フレーム送受信部
１４０７…スイッチ部
【図１】
0003641139.tif 000002
【図２】
0003641139.tif 000003
【図３】
0003641139.tif 000004
【図４】
0003641139.tif 000005
【図５】
0003641139.tif 000006
【図６】
0003641139.tif 000007
【図７】
0003641139.tif 000008
【図８】
0003641139.tif 000009
【図９】
0003641139.tif 000010
【図１０】
0003641139.tif 000011
【図１１】
0003641139.tif 000012
【図１２】
0003641139.tif 000013
【図１３】
0003641139.tif 000014
【図１４】
0003641139.tif 000015
【図１５】
0003641139.tif 000016
【図１６】
0003641139.tif 000017