JP2000049854A - ノード装置並びにループ検出方法及びパケット送信方法 - Google Patents

ノード装置並びにループ検出方法及びパケット送信方法

Info

Publication number
JP2000049854A
JP2000049854A JP17244498A JP17244498A JP2000049854A JP 2000049854 A JP2000049854 A JP 2000049854A JP 17244498 A JP17244498 A JP 17244498A JP 17244498 A JP17244498 A JP 17244498A JP 2000049854 A JP2000049854 A JP 2000049854A
Authority
JP
Japan
Prior art keywords
message
node
information
label switching
node device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP17244498A
Other languages
English (en)
Other versions
JP3517114B2 (ja
Inventor
Yoshihiro Oba
義洋 大場
Yasuhiro Katsube
泰弘 勝部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP17244498A priority Critical patent/JP3517114B2/ja
Publication of JP2000049854A publication Critical patent/JP2000049854A/ja
Application granted granted Critical
Publication of JP3517114B2 publication Critical patent/JP3517114B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

(57)【要約】 【課題】 ラベル設定のリトライ動作なしにラベルスイ
ッチングパスの張り替えを可能とするノード装置を提供
すること。 【解決手段】 フロー経路上の隣接ノード間でフロー識
別子とパスの初段ノードに関する初段ノード情報と送信
元のノードに関する代理初段ノード情報を含むパス制御
メッセージを交換し、以前のメッセージと同じフロー識
別子と初段ノード情報を含み入力リンク情報を異ならせ
る別メッセージを受信しパスのループ形成が判断された
場合に該別メッセージを基に得た新たな入力リンク情報
に関しラベルスイッチングのための出力リンク情報との
対応付けをしない状態で記憶し、該別メッセージと同一
範囲のフロー識別子と初段ノード情報と代理初段ノード
情報を含むパスの解放を制御するメッセージを受信した
場合に該新たな入力側リンク情報と該出力側リンク情報
とを対応付けてラベルスイッチングを可能とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ラベルスイッチン
グパスのループ検出機能を有するノード装置並びにラベ
ルスイッチングパスのループ検出方法及びパケット送信
方法に関する。
【0002】
【従来の技術】NBMA(Non−Broadcast
Multiple Access)ネットワーク上で
IP(Internet Protocol)ノードが
相互接続されるようなネットワークレイヤプロトコルに
おいて、パケット転送を高速化するための手法として、
MPLS(Multi−Protocol Label
Switching)方式がある。
【0003】MPLSは、ノード間で特定のパケットフ
ローに特定の「ラベル」を割り当て、各ノードで入力側
のラベルと出力側のラベルとを関連付けてラベルスイッ
チングを行なうことにより、IP処理を省略し、高速な
パケット転送が可能となる。例えば、リンクレイヤがA
TMの場合、VPI(Virtual Path Id
entifier)/VCI(Virtual Cha
nnel Identifier)がラベルとして使用
される。パケットフローがラベルスイッチングされる経
路をラベルスイッチングパスと言う。なお、以下では、
ラベルスイッチングパスを単にパスと呼ぶ。
【0004】パスを構成する場合には、ラベル割当てプ
ロトコルが使用される。ラベル割当てプロトコルは、パ
ケットフローの経路上のノード間で、ネットワークグロ
ーバルにパケットフローを識別するためのフロー識別子
と、リンクローカルにパケットフローを識別するための
ラベルとの対応付けを通知するために、制御メッセージ
(パス制御メッセージ)をやりとりする。
【0005】一般に、パス制御メッセージは、レイヤ3
の経路情報に従って転送されるが、レイヤ3の経路がル
ープしている場合、パス制御メッセージがループした
り、あるいは、ループするパスが構成されるおそれがあ
る。
【0006】この問題に対し、文献「Internet
−Draft,draft−ohba−mpls−lo
op−prevention−00.txt」にて示さ
れているループ検出方法では、パス制御メッセージに初
段ノード情報を含め、各ノードは、パスの入力側のそれ
ぞれの枝に対し、初段ノードのアドレス(初段ノード情
報)および初段ノードからのホップ数を記憶し、それら
の中で、初段ノードからのホップ数が最も大きい初段ノ
ード情報と、最大のホップ数+1を下流に通知する。さ
らに、現在のパスに新たに入力側の枝を追加する場合、
またはすでに存在する入力側の枝に対する初段ノード情
報または初段ノードからのホップ数を別の値に更新する
場合に、同じフローに対し、同じ初段ノード情報が別の
入力側の枝にすでに登録している場合には、ループが構
成されると判断し、入力側枝の追加/更新を行なわない
ようにする。
【0007】この方法は、パスベクトル方式(パス制御
メッセージをフォワードする各ノードが自分のアドレス
をラベル割当てメッセージに追加して行き、受信したラ
ベル割当てメッセージに自分のアドレスがすでに書き込
んであればループであると判断)に比べ、メッセージ長
がホップ数に依存せず固定となるという利点を持つ。
【0008】
【発明が解決しようとする課題】しかしながら、文献、
「Internet−Draft,draft−ohb
a−mpls−loop−prevention−0
0.txt」にて示されているループ検出方法には、経
路変更時に以下のような問題がある。
【0009】例えば、図39において、レイヤ3の経路
上に、ノード装置R11→R12→R13→R14→R
15→R16というパスが構成されている場合を考え
る。
【0010】この場合、パス上の各ノード装置は、フロ
ー識別子(flowid)、およびパスを識別するため
の入力リンク情報(入力物理リンク情報(input
interface)+入力ラベル(input la
bel))と一緒に、初段ノード情報(ingres
s)として“R11”を記憶している。入力リンク情報
(input lonk)は、出力リンク情報(out
put link)と対応付けされてラベルスイッチン
グに用いられる情報で、リンク識別子から求められるラ
ベルと、メッセージを交換した物理リンクの情報とから
求められる。物理リンク情報は、Iij(i:リンクの
上流ノードの番号、j:リンクの下流ノードの番号)で
表され、リンクは、“物理リンク情報:ラベル”で表さ
れる。
【0011】図39のパスが構成されている場合のノー
ド装置R15内のフローテーブルの状態を図40に示
す。
【0012】ここで、R12で経路変更が起こり、Fl
owid=R16への次ホップがR13からR17に変
わった場合、R12から旧経路上には(flowid=
R16,ingress=R11)を指定したラベル割
当て解放メッセージ(RELEASEメッセージ)が送
出され、R12から新経路上には(flowid=R1
6,ingress=R11)を指定したラベル割当て
要求メッセージ(SETUPメッセージ)が送出され
る。
【0013】もし、SETUPメッセージがRELEA
SEメッセージよりも先にR15に到着すると、R15
では、入力リンク(I1715:x1715)のSET
UPメッセージを受信した時に、flowid=R1
6,ingress=R11であるような別のエントリ
がすでに入力リンク(I1516:x1516)に対応
しているため、実際にはループでないにもかかわらずル
ープであると判断される。この結果、R15からR17
にラベル割当て失敗(SETUP_NACK)メッセー
ジが返されていた。このとき、SETUP_NACKメ
ッセージを受信したR17は、一定時間後にSETUP
メッセージの再送信(リトライ)を行なうが、リトライ
の間隔が短いと旧経路からRELEASEメッセージが
到着する前に何度もリトライを繰り返し、一方、リトラ
イの間隔が長いと、新経路上にパスが切り替わるまでに
時間がかかってしまう。しかしながら、最適なリトライ
間隔の値を決めるのは一般に困難であるため、できるだ
けリトライのないループ回避メカニズムが要求される。
【0014】本発明は、上記事情を考慮してなされたも
ので、効率的かつ早期にラベルスイッチングパスのルー
プを検出可能であるとともに、経路変更時にラベルスイ
ッチングパスのループを誤って検出した場合にループを
検出したノード装置の前段のノード装置からのラベル設
定のリトライ動作を行なうことなしにラベルスイッチン
グパスの張り替えを行なうことを可能とするノード装置
並びにループ検出方法及びパケット送信方法を提供する
ことを目的とする。
【0015】
【課題を解決するための手段】本発明(請求項1)は、
パケットフローが入力されるパスを識別可能な入力側リ
ンク情報と該パケットフローが出力されるパスを識別可
能な出力側リンク情報との対応関係を参照して、入力さ
れたパケットをラベルスイッチングする手段を備えるノ
ード装置であって、パケットフローの経路上の隣接ノー
ド装置との間で、ラベルスイッチングパスの設定を制御
するためのメッセージ(SETUP(,UPDATE_
ADD))であって、該パケットフローをネットワーク
グローバルに識別可能なフロー識別子、該ラベルスイッ
チングパスの初段ノードに関する初段ノード情報、及
び、このメッセージを能動的に送信したノードに関する
代理初段ノード情報を含むものを交換する手段と、以前
に交換したメッセージと同一のフロー識別子及び初段ノ
ード情報を含み前記入力側リンク情報を異ならせるよう
な別メッセージ(SETUP(,UPDATE_AD
D))を受信したか否かに基づいて、ラベルスイッチン
グパスのループが形成されるか否かを判断し、ループが
形成されると判断された場合には、この受信した別メッ
セージに基づいて求められる新たな入力側リンク情報に
関し、ラベルスイッチングのための前記出力側リンク情
報との対応付けをしない状態で記憶する手段と、前記別
メッセージと同一範囲のフロー識別子、初段ノード情報
及び代理初段ノード情報を含む、ラベルスイッチングパ
スの解放を制御するためのメッセージ(RELEASE
(,UPDATE_DEL))を受信した場合に、前記
新たな入力側リンク情報と前記出力側リンク情報とを対
応付けてラベルスイッチングを可能とする手段とを備え
たことを特徴とする。
【0016】好ましくは、前記代理初段ノード情報は、
メッセージを能動的に送信したノードの識別情報に加え
て、複数のメッセージ(例えば上記別(設定制御)メッ
セージと上記解放制御メッセージ)が同一のイベント
(例えば一つの経路変更)を契機としたものか否かを判
別するための情報(例えばシーケンス番号)を含むもの
であるようにしてもよい。
【0017】好ましくは、前記可能とする手段は、前記
代理初段ノード情報に含まれる情報が、前記別メッセー
ジと前記解放を制御するためのメッセージとが同一のイ
ベントを契機としたものであることを示す場合に、前記
同一範囲であると判断するようにしてもよい。
【0018】好ましくは、前記可能とする手段は、前記
代理初段ノード情報に含まれる情報が、前記別メッセー
ジが前記解放を制御するためのメッセージより後のイベ
ントもしくは同一のイベントを契機としたものであるこ
とを示す場合に、前記同一範囲であると判断するように
してもよい。
【0019】好ましくは、前記可能とする手段は、ラベ
ルスイッチングのための対応付けが行われていない前記
新たな入力側リンク情報が複数ある場合に、前記解放を
制御するためのメッセージが契機としたイベントの直近
のイベントを契機とした前記別メッセージに対応する前
記新たな入力側リンク情報について、前記ラベルスイッ
チングを可能とするものであるようにしてもよい。
【0020】好ましくは、前記可能とする手段は、前記
別メッセージに対応する初段ノード情報と前記解放を制
御するためのメッセージにより変更される前の初段ノー
ド情報とが一致すれば、前記同一範囲であると判断する
ようにしてもよい。
【0021】好ましくは、前記ラベルスイッチングする
手段は、複数の入力側リンク情報と一つの出力側リンク
情報とを対応付けて、ラベルスイッチングパスのマージ
をすることのできるものであり、前記ラベルスイッチン
グパスの設定を制御するためのメッセージに相当するも
のとして、ラベルスイッチングパスを新たに設定するた
めのメッセージ(SETUP)に加えて、新たなラベル
スイッチングパスのために既存のラベルスイッチングパ
スを利用するためのメッセージ(UPDATE_AD
D)を有するようにしてもよい。
【0022】好ましくは、前記ラベルスイッチングパス
の解放を制御するためのメッセージに相当するものとし
て、リンク情報を削除するためのメッセージ(RELE
ASE)を有し、このリンク情報削除メッセージを受信
した場合に、受信メッセージに対応する入力側リンク情
報を削除し、該リンク情報削除メッセージが前記別メッ
セージと同一範囲のフロー識別子、初段ノード情報及び
代理初段ノード情報を含むならば、前記新たな入力側リ
ンク情報と前記出力側リンク情報とを対応付けてラベル
スイッチングを可能とし、削除された入力側リンク情報
に対応付けられていた出力側リンク情報に対応付けられ
ラベルスイッチングが可能となっている入力側リンク情
報が存在しなければ、該出力側リンク情報を削除すべく
リンク情報削除メッセージを送信する手段を更に備える
ようにしてもよい。
【0023】好ましくは、前記ラベルスイッチングする
手段は、複数の入力側リンク情報と一つの出力側リンク
情報とを対応付けて、ラベルスイッチングパスのマージ
をすることのできるものであり、前記ラベルスイッチン
グパスの解放を制御するためのメッセージに相当するも
のとして、解放されるラベルスイッチングパスが既存の
ラベルスイッチングパスを利用しなくなることを通知す
るためのメッセージ(UPDATE_DEL)を有し、
この通知メッセージに基づいて、前記初段ノード情報を
更新する手段を更に備えるようにしてもよい。
【0024】好ましくは、前記ラベルスイッチングする
手段は、複数の入力側リンク情報と一つの出力側リンク
情報とを対応付けて、ラベルスイッチングパスのマージ
をすることのできるものであり、新たなラベルスイッチ
ングパスのために既存のラベルスイッチングパスを利用
するためのメッセージとしても、解放されるラベルスイ
ッチングパスが既存のラベルスイッチングパスを利用し
なくなることを通知するためのメッセージとしても、同
一種類のメッセージ(UPDATE)を用い、前記可能
とする手段は、前記別メッセージと同一範囲のフロー識
別子、初段ノード情報及び代理初段ノード情報を含む前
記同一種類のメッセージを、ラベルスイッチングのため
の出力側リンク情報との対応付けをしない状態で記憶さ
れた入力側リンク情報とは異なる入力側リンク情報につ
いて受信した場合に、ラベルスイッチングパスの解放を
制御するためのメッセージを受信したと判断して、前記
ラベルスイッチングを可能とするものであるようにして
もよい。
【0025】好ましくは、ある入力側リンク情報が示す
パケットフローに対応する出力側リンク情報が存在しな
い場合に、定期的に、該出力側リンク情報を割り当てる
べくラベルスイッチングパスの設定を制御するためのメ
ッセージを送信する手段を更に備えるようにしてもよ
い。
【0026】好ましくは、ある入力側リンク情報が示す
パケットフローに対応する出力側リンク情報が削除され
た場合に、該パケットフローに対応する出力側リンク情
報を再度割り当てるべくラベルスイッチングパスの設定
を制御するためのメッセージを送信する手段を更に備え
るようにしてもよい。
【0027】好ましくは、前記ラベルスイッチングパス
の設定を制御するためのメッセージは、更に、該ラベル
スイッチングパスの始点から自ノードまでのホップ数を
示す情報を含み、該ラベルスイッチングパスの終端まで
のホップ数が所定のホップ数を超えないように、入力側
もしくは出力側リンク情報の割り当てを止める手段を更
に備えるようにしてもよい。
【0028】また、好ましくは、前記ループが形成され
ると判断したために前記ラベルスイッチングのための対
応付けをしない状態で記憶したか、ループが形成されな
いと判断したかを区別できる情報を含む返答メッセージ
を送信する手段を更に備えるようにしてもよい。
【0029】この場合、前記ラベルスイッチングを可能
とする手段が契機とする、ラベルスイッチングパスの解
放を制御するためのメッセージは、後述する「ラベルス
イッチングパスの解放を予告するためのメッセージ(例
えば、特殊なUPDATE_DEL)」としても良い
し、予告メッセージの後に送られてくる「リンク情報を
削除するためのメッセージ(例えばRELEASE)」
もしくは「解放されるラベルスイッチングパスが既存の
ラベルスイッチングパスを利用しなくなることを通知す
るためのメッセージ(例えばUPDATE_DEL)」
としても良い。なお、前記別メッセージに対応するラベ
ルスイッチングパスの解放を予告するためのメッセージ
を受信した場合には、前記ループが形成されないと判断
したことを示す返答メッセージを送信する。
【0030】また、本発明(請求項15)に係るノード
装置は、パケットフローの新しい経路上の次段ノード装
置へ、ラベルスイッチングパスの設定を制御するための
メッセージ(SETUP,UPDATE_ADD等)で
あって、該パケットフローをネットワークグローバルに
識別可能なフロー識別子、該ラベルスイッチングパスの
初段ノードに関する初段ノード情報、及び、このメッセ
ージを能動的に送信したノードに関する代理初段ノード
情報を含むものを送信する手段と、パケットフローの古
い経路上の次段ノード装置へ、ラベルスイッチングパス
の解放を予告するためのメッセージ(特殊なUPDAT
E_DEL等)であって、該パケットフローをネットワ
ークグローバルに識別可能なフロー識別子、及び、この
メッセージを能動的に送信したノードに関する代理初段
ノード情報を含むもの(このメッセージには本来的な意
味での初段ノード情報は含まれなくても良い)を送信す
るとともに、該パケットフローのパケットの送信を継続
する手段と、後段ノード装置から、設定したいラベルス
イッチングパスについてループが形成されないと判断し
たことを示す返答メッセージを受信した場合に、前記古
い経路上の次段ノード装置へ、ラベルスイッチングパス
を解放するためのメッセージ(RELEASE,通常の
UPDATE_DEL等)を送信し、前記パケットフロ
ーのパケットを前記新しい経路上の次段ノード装置へ送
信するように切り替える手段とを備えたことを特徴とす
る。
【0031】なお、ラベルスイッチングパスを解放する
ためのメッセージ(RELEASE等)の送信とともに
上記の切り替えを行ってもよいし、該メッセージに対す
るACKメッセージ(RELEASE_ACK等)が返
ってきてから上記の切り替えを行うようにしてもよい。
【0032】本発明(請求項16)は、パケットフロー
が入力されるパスを識別可能な入力側リンク情報と該パ
ケットフローが出力されるパスを識別可能な出力側リン
ク情報との対応関係を参照して、入力されたパケットを
ラベルスイッチングする場合に、ラベルスイッチングパ
スのループを検出するループ検出方法であって、パケッ
トフローの経路上の隣接ノード装置との間で、ラベルス
イッチングパスの設定を制御するためのメッセージであ
って、該パケットフローをネットワークグローバルに識
別可能なフロー識別子、該ラベルスイッチングパスの初
段ノードに関する初段ノード情報、及び、このメッセー
ジを能動的に送信したノードに関する代理初段ノード情
報を含むものを交換し、以前に交換したメッセージと同
一のフロー識別子及び初段ノード情報を含み前記入力側
リンク情報を異ならせるような別メッセージを受信した
か否かに基づいて、ラベルスイッチングパスのループが
形成されるか否かを判断し、ループが形成されると判断
された場合には、この受信した別メッセージに基づいて
求められる新たな入力側リンク情報に関し、ラベルスイ
ッチングのための前記出力側リンク情報との対応付けを
しない状態で記憶し、前記別メッセージと同一範囲のフ
ロー識別子、初段ノード情報及び代理初段ノード情報を
含む、ラベルスイッチングパスの解放を制御するための
メッセージを受信した場合に、前記新たな入力側リンク
情報と前記出力側リンク情報とを対応付けてラベルスイ
ッチングを可能とすることを特徴とする。
【0033】好ましくは、経路を変更する場合に、前記
代理初段ノード情報を含む、設定を制御するためのメッ
セージ及び解放を制御するためのメッセージを送信し、
それ以外の場合には、ラベルスイッチングパスの設定を
制御するためのメッセージとして、該パケットフローを
ネットワークグローバルに識別可能なフロー識別子と、
該ラベルスイッチングパスの初段ノードに関する初段ノ
ード情報とを含むものを、パケットフローの経路上の隣
接ノード装置との間で、交換し、前記ラベルスイッチン
グを可能とする前記新たな入力側リンク情報は、前記代
理初段ノード情報を含む、設定を制御するためのメッセ
ージに基づいて、記憶されたものとするようにしてもよ
い。
【0034】また、本発明(請求項18)に係るパケッ
ト装置方法は、パケットフローの新しい経路上の次段ノ
ード装置へ、ラベルスイッチングパスの設定を制御する
ためのメッセージ(SETUP,UPDATE_ADD
等)であって、該パケットフローをネットワークグロー
バルに識別可能なフロー識別子、該ラベルスイッチング
パスの初段ノードに関する初段ノード情報、及び、この
メッセージを能動的に送信したノードに関する代理初段
ノード情報を含むものを送信し、パケットフローの古い
経路上の次段ノード装置へ、ラベルスイッチングパスの
解放を予告するためのメッセージ(特殊なUPDATE
_DEL等)であって、該パケットフローをネットワー
クグローバルに識別可能なフロー識別子、及び、このメ
ッセージを能動的に送信したノードに関する代理初段ノ
ード情報を含むもの(このメッセージには本来的な意味
での初段ノード情報は含まれなくても良い)を送信する
とともに、該パケットフローのパケットの送信を継続
し、後段ノード装置から、設定したいラベルスイッチン
グパスについてループが形成されないと判断したことを
示す返答メッセージを受信した場合に、前記古い経路上
の次段ノード装置へ、ラベルスイッチングパスを解放す
るためのメッセージ(RELEASE,通常のUPDA
TE_DEL等)を送信し、前記パケットフローのパケ
ットを前記新しい経路上の次段ノード装置へ送信するよ
うに切り替えることを特徴とする。ラベルスイッチング
パスを解放するためのメッセージ(RELEASE等)
の送信とともに上記の切り替えを行ってもよいし、該メ
ッセージに対するACKメッセージ(RELEASE_
ACK等)が返ってきてから上記の切り替えを行うよう
にしてもよい。
【0035】なお、装置に係る本発明は方法に係る発明
としても成立し、方法に係る本発明は装置に係る発明と
しても成立する。
【0036】また、装置または方法に係る本発明は、コ
ンピュータに当該発明に相当する手順を実行させるため
の(あるいはコンピュータを当該発明に相当する手段と
して機能させるための、あるいはコンピュータに当該発
明に相当する機能を実現させるための)プログラムを記
録したコンピュータ読取り可能な記録媒体としても成立
する。
【0037】本発明では、(フロー識別子,初段ノード
情報,代理初段ノード情報)=(F,I,P)であるよ
うな、SETUP,UPDATE_ADDメッセージを
受信した際、受信(F,I)が、受信入力リンクとは異
なる入力リンクとすでに対応しているかどうかに基づい
て、パスのループが形成されているかを判断するので、
効率的かつ早期なラベルスイッチングパスのループ検出
を可能にすることができる。
【0038】さらに、本発明では、「ループと判断され
るときに、ラベルの割り当てをしない(前段ノードにN
ACKメッセージを返す)のではなく、ラベルの割当て
はするがその入力側ラベルをラベルスイッチングのため
に出力側ラベルと対応付けることはしない」という動作
を行うので、ラベル設定のリトライを減らすことができ
る。
【0039】本発明により、経路変更時にラベルスイッ
チングパスのループを誤って検出した場合にループを検
出したノード装置の前段のノード装置からのラベル設定
のリトライ動作を抑えてラベルスイッチングパスの張り
替えを行なうことができる。また、経路変更時に、旧経
路と新経路で経路が同じノード上のラベルは解放するこ
となく残しておくことも可能となる。
【0040】
【発明の実施の形態】以下、図面を参照しながら発明の
実施の形態を説明する。
【0041】最初に、本実施形態の基本的な構成等につ
いて説明する。
【0042】(パス制御に用いられる各種情報等)本実
施形態で用いるパス制御メッセージには、少なくとも、
フロー識別子(flowid)、初段ノード情報(In
gress)、リンク識別子(本実施形態における具体
例ではラベル(Label)そのものとしている)、代
理初段ノード情報(proxy ingress)が含
まれる。パス制御にホップカウントを用いる場合には、
パス制御メッセージにはさらにホップカウントが含まれ
る。
【0043】各ノード装置により保持されるフローテー
ブルには、少なくとも、入力リンク情報(input
link)、フロー識別子(flowid)、初段ノー
ド情報(Ingress)、出力リンク情報(outp
ut link)、代理初段ノード情報(proxy
ingress)が含まれる。パス制御にホップカウン
トを用いる場合には、フローテーブルにはさらにホップ
カウントが含まれる。なお、後に説明する例では、さら
にラベルスイッチ状態情報(state)をフローテー
ブルに設けている。
【0044】フロー識別子は、ラベルスイッチングされ
るパケットの集合を規定するための識別子である。フロ
ー識別子は、ネットワークグローバルにパケットフロー
を識別する情報であるものとする。
【0045】初段ノード情報は、パスの初段ノード装置
を識別するための情報である。初段ノード情報は、例え
ば、初段ノード装置の出力インターフェースに対して割
り当てられたIPアドレス(ネットワークグローバルな
アドレス)の一つを使用する。
【0046】代理初段ノード情報は、パス制御メッセー
ジを能動的に(前段からのパス制御メッセージ受信イベ
ント以外を契機にして)送信したノード装置に関する情
報である。代理初段ノード情報は、代理初段ノードのル
ータIDと、代理初段ノードで一意なシーケンス番号と
で構成される。シーケンス番号は、同じ代理初段ノー
ド、フロー識別子の中で一意になるように割り当てても
よい。同一イベントを契機として同一ノードから送信さ
れるメッセージの代理初段ノード情報には、同じシーケ
ンス番号を入れる。
【0047】入力リンク情報は、入力物理リンク情報
(input interface)+入力ラベル(i
nput label)からなる。出力リンク情報は、
出力物理リンク情報(output interfac
e)+出力ラベル(output label)からな
る。
【0048】物理リンク情報は、メッセージを交換した
物理リンクの情報である。
【0049】ラベルは、リンクローカルにパケットフロ
ーを識別する情報であり、リンク識別子から求められ
る。
【0050】リンク識別子は、ノード間で異なるパスを
識別するために使用される識別子で、パス制御メッセー
ジに含められてノード装置間で交換される情報である。
【0051】リンク識別子は、ラベルの値が隣接ノード
間で書き換えられない場合には、ラベルの値そのもので
あってもよい。ラベルの値が隣接ノード間で書き換えら
れる場合、または、隣接ノードに対してラベルの割当て
を新たに要求するような場合で、ラベルの値がリンク識
別子として使用可能でない場合には、ラベル以外の識別
子を使用してもよい。ラベルの値が隣接ノード間で書き
換えられる場合には例えばレイヤ2コネクション識別子
(例えばVCID(Virtual Connecti
on ID))を使用することができ、隣接ノードに対
してラベルの割当てを新たに要求するような場合で、ラ
ベルの値がリンク識別子として使用可能でない場合に
は、例えばリクエスト識別子を使用することができる。
【0052】ホップカウントは、パスの初段ノード装置
から当該ノード装置までのホップ数である。
【0053】(メッセージの種類)パス制御メッセージ
には、入力リンクの追加に関連するメッセージ(ラベル
割当て要求メッセージ(SETUP)、追加型変更メッ
セージ(UPDATE_ADD))と、入力リンクの削
除に関連するメッセージ(ラベル解放メッセージ(RE
LEASE)、削除型変更メッセージ(UPDATE_
DEL))とを用いる。
【0054】SETUPメッセージは、出力リンクを新
たに割当てるために次ホップノードに送信される。RE
LEASEメッセージは、すでに存在する出力リンクを
解放ために次ホップノードに送信される。
【0055】UPDATE_ADD,UPDATE_D
ELメッセージは、それぞれ、SETUP,RELEA
SEメッセージを受信した時、出力リンクがすでに存在
する場合に次ホップノードに対して初段ノード情報の変
更を下流ノードに通知するために使用され、代理初段ノ
ード情報として、UPDATE_ADD,UPDATE
_DELメッセージを送信する契機となったSETU
P,RELEASEメッセージ中の代理初段ノード情報
を使用する。
【0056】(ループ条件)本実施形態では、(フロー
識別子,初段ノード情報,代理初段ノード情報)=
(F,I,P)であるような、SETUP,UPDAT
E_ADDメッセージを受信した際、受信(F,I)
が、受信入力リンクとは異なる入力リンク=Liとすで
に対応している場合に、パスのループであると判断す
る。
【0057】(各メッセージの受信時の動作、ループ検
出時のリトライ回避方法等)経路変更時には、新経路上
にはSETUPメッセージを送出し、旧経路上にはRE
LEASEメッセージを送出する。同じ経路変更イベン
トを契機に送信されるこれらのメッセージには、同一の
シーケンス番号を入れ、代理初段ノード情報が同じにな
るようにする。
【0058】概略的には、ラベル割当てを要求するメッ
セージを受信した際、ループであると判断した場合に
も、ACKメッセージを返すが、受信入力リンクと、出
力リンクとの間のラベルスイッチングは行なわないよう
にする。このとき、代理初段ノード情報を記憶する。ま
た、ラベルの解放を要求するメッセージを受信した際、
さらに、代理初段ノード情報と対応する受信入力リンク
以外の入力リンクがあれば、その入力リンクと対応する
出力リンクとの間のラベルスイッチングを可能にする。
詳しくは、以下のようになる。
【0059】SETUPメッセージを受信した際、ルー
プであると判断した場合には、入力側ラベルの割当てを
行ない、受信入力リンクに受信(F,I,P)を対応さ
せるが、ラベルスイッチングは行なわないようにする。
なお、ラベルのマージを行なう場合には、受信入力リン
クにすでに存在する任意の出力リンクを対応させてもよ
い(ただし、ラベルスイッチングは行なわない(すなわ
ち、ブロックする))。また、ラベルのマージを行わな
い場合には、受信入力リンクに、同じ初段ノード情報を
持つ入力リンクに対応する出力リンクを対応させてもよ
い(ラベルスイッチングは行わない)。
【0060】SETUPメッセージを受信した際、ルー
プでないと判断した場合には、ラベルの割当てを行な
い、受信入力リンクに受信(F,I,P)を対応させ
る。さらに、終段ノードでなく、かつ、ラベルのマージ
を行なう場合には、受信入力リンクにすでに存在する出
力リンクを対応させ、後段ノードに通知すべき初段ノー
ド情報が直前に通知した値と異なるならば、後段ノード
にUPDATE_ADDメッセージを送信する。終段ノ
ードでなく、かつ、ラベルのマージを行なわない場合に
は、受信入力リンクに対応する出力リンクを新たに作成
し、後段ノードにSETUPメッセージを送信する。終
段ノードである場合、かつ、ラベルの割当て成功した場
合には、前段ノードにSETUP_ACKメッセージを
返す。終段ノードでない場合には、SETUP_ACK
メッセージを受信したときにラベルスイッチングが可能
となる。
【0061】UPDATE_ADDメッセージを受信し
た際、ループであると判断した場合には、受信入力リン
クに受信(F,I,P)を対応させるが、ラベルスイッ
チングは行なわないようにする。なお、受信入力リンク
に対し、すでに存在する出力リンクを対応させてもよい
(ただし、ラベルスイッチングは行なわない(すなわ
ち、ブロックする))。
【0062】UPDATE_ADDメッセージを受信し
た際、ループでないと判断した場合には、受信入力リン
クに受信(F,I,P)を対応させる。次に、終段ノー
ドでなく、かつ、受信入力リンクに出力リンクが対応し
ていない場合には、同一フロー識別子を持つ既存の出力
リンクがある場合にはそれを対応させるか、新たに出力
リンクを割り当てる。終段ノードでなく、かつ、受信入
力リンクに既存の出力リンクが対応する場合には、下流
に通知すべき初段ノード情報が、直前に通知した値と異
なる場合には、後段ノードにUPDATE_ADDメッ
セージを送信する。終段ノードでなく、かつ、受信入力
リンクに新たな出力リンクが対応する場合には、後段ノ
ードにSETUPメッセージを送信する。
【0063】RELEASEメッセージを受信した際に
は、受信入力リンクを削除し、前段ノードにRELEA
SE_ACKメッセージを返す。さらに、受信したRE
LEASEメッセージの(F,I´,P)に対応してい
る、削除された受信入力リンク以外の入力リンク=Li
がある場合には、そのLiに出力リンクが対応していれ
ば、その出力リンクを削除せずに、その出力リンクとL
iとの間のラベルスイッチングを可能にする、すなわち
ブロックされているものがあればそれを解除する(F、
Pに加えて、ブロックされていた入力リンクの初段ノー
ド情報と、このRELEASEメッセージを受信する前
(直前)に記憶されていた受信入力リンクの初段ノード
情報とが一致するかを調べる;記憶されていた受信入力
リンクの初段ノード情報は、受信後、RELEASEメ
ッセージに含まれる初段ノード情報に書き換わる)。一
方、そのLiに出力リンクが対応していなければ、すで
に存在する同一フロー識別子を持つ出力リンクの一つを
対応させ、その出力リンクとLiとの間のラベルスイッ
チングを可能にする(特に、ラベルのマージを行なわな
い場合には、対応させる出力リンクとして、受信入力リ
ンクに対応する出力リンクを使用する)。さらに、削除
された受信入力リンクに対応する出力リンクがあれば、
この出力リンクに対応しかつラベルスイッチングが可能
となっている(ブロックされていない)別の入力リンク
が1つもなければ、出力リンクを削除するため下流にR
ELEASEメッセージを送信し、そうでなければ、こ
の出力リンクに対応しかつラベルスイッチングが可能と
なっている入力リンクの中で下流に通知する初段ノード
情報を選び、この値が直前に通知した値と異なっていれ
ば、下流ノードにUPDATE_DELメッセージを送
信する。
【0064】UPDATE_DELメッセージを受信し
た際には、前段ノードにUPDATE_DEL_ACK
メッセージを返し、受信入力リンクに受信(F,I,
P)を対応させる(状態(IやP)の更新を行う)。さ
らに、受信したUPDATE_DELメッセージの
(F,I´,P)に対応している、受信入力リンク以外
の入力リンク=Liがある場合には、そのLiに出力リ
ンクが対応していれば、その出力リンクとLiとの間の
ラベルスイッチングを可能にする、すなわちブロックさ
れているものがあればそれを解除する(F、Pに加え
て、ブロックされていた入力リンクの初段ノード情報
と、このUPDATE_DELメッセージを受信する前
(直前)に記憶されていた受信入力リンクの初段ノード
情報とが一致するかを調べる;記憶されていた受信入力
リンクの初段ノード情報は、受信後、UPDATE_D
ELメッセージに含まれる初段ノード情報に書き換わ
る)。一方、そのLiに出力リンクが対応していなけれ
ば、すでに存在する同一フロー識別子を持つ出力リンク
の一つを対応させ、その出力リンクとLiとの間のラベ
ルスイッチングを可能にする(特に、ラベルのマージを
行なわない場合には、対応させる出力リンクとして、受
信入力リンクに対応する出力リンクを使用する)。も
し、受信入力リンクに対応する出力リンクがあれば、こ
の出力リンクに対応しかつラベルスイッチングが可能と
なっている入力リンクの中で下流に通知する初段ノード
情報を選び、この値が直前に通知した値と異なっていれ
ば、下流ノードにUPDATE_DELメッセージを送
信する。もし、受信入力リンクに対応する出力リンクが
なく、かつ、終段ノードでなければ、新たに出力リンク
を割当てるために後段ノードにSETUPメッセージを
送信する。このとき、送信SETUPメッセージ中の代
理初段ノード情報は、受信UPDATE_DELメッセ
ージのものを使用する。
【0065】なお、上記において、受信したRELEA
SE/UPDATE_DELメッセージの(F,I´,
P)に対応している、受信入力リンク以外の入力リンク
という条件で判定したものについて、判定条件を緩和
し、受信したRELEASE/UPDATE_DELメ
ッセージの(F,I´,P)に対応している入力リンク
という条件で判定するものとし、受信リンク以外のもの
かどうかについては調べないようにしても構わない。
【0066】なお、後述する例では、フローテーブルの
各エントリにラベルスイッチ状態情報(on/off
値)を付加し、当該エントリについてラベルスイッチン
グを行うか否かを、当該ステート情報に設定するように
している(onの場合にはラベルスイッチングを行な
い、offの場合にはラベルスイッチングを行なわない
ように制御する)。
【0067】なお、本発明では、受信入力リンク情報を
異ならせるような別メッセージを受信した場合に、ルー
プが形成されると判断された場合には、受信入力リンク
と出力リンクとの間のラベルスイッチングの対応付けを
行わない代わりに、前段ノードにACKを返さずに受信
メッセージの処理を中断し、後に前記別メッセージと同
一範囲のフロー識別子、初段ノード情報および代理初段
ノード情報を含む、ラベルスイッチングのパスの解放を
制御するためのメッセージを受信した場合に、別メッセ
ージの処理を再開するようにすることも可能である。
【0068】以下では、上記した基本的な構成等に対す
る幾つかのバリエーションを示す。それらバリエーショ
ンは適宜組み合わせて実施可能である。
【0069】(バリエーション1)ループ検出のため
に、初段ノード情報とともに、初段ノードからのホップ
カウントを使用してもよい。このとき、初段からのホッ
プカウントが最大の初段ノードに対する初段ノード情報
とホップカウントを下流ノードに通知する。ホップカウ
ントが最大の初段ノードが複数ある場合には、その中か
らネットワーク全体で一意な規則(例えば、初段ノード
情報が最大のもの)に基づいて、1つの初段ノード情報
を選ぶ。
【0070】また、初段ノードからのホップカウント情
報を使用する場合には、SETUP(またはUPDAT
E_ADD)を受信した時に、受信ホップカウントがし
きい値に達した場合には、SETUP_ACK(または
UPDATE_ADD_ACK)を返して、入力リンク
と出力リンクの間のラベルスイッチングをやめるように
してもよく、また、受信ホップカウントがしきい値を越
えた場合に前段ノードにSETUP_NACK(または
UPDATE_ADD_NACK)を返すようにしても
よい。
【0071】(バリエーション2)パス制御メッセージ
が信頼性のあるトランスポートプロトコルで転送され、
かつ、ラベルの割当て/解放処理が失敗しないことが保
証される場合には、受信パス制御メッセージに対するA
CKを返さないようにしてもよい。この場合、ループで
ないと判断された場合には、ACKを待つことなくラベ
ルスイッチングが可能となる。また、ACKを返す場合
には、前ホップノードにACK,NACKを返すタイミ
ングは、(1)上記メッセージを受信してただちに返し
てもよいし(optimisticモード)、(2)次
ホップノードにパス制御メッセージをフォワードする場
合には、次ホップノードからACK,NACKが返った
ときに行なう(conservativeモード)のど
ちらでもよい。
【0072】また、本発明では、ループと判断されると
きに、上流に返すACKまたはNACKに、ループと判
断されたことを示す情報を付加してもよい。この情報を
受信したノードは、ラベルが割り当てされている場合に
も、ラベルスイッチングを行なわないようにしてもよ
い。
【0073】(バリエーション3)経路変更時には、
(1)新経路上の次ホップノードへのSETUPメッセ
ージの送信と、旧経路上の次ホップノードへのRELE
ASEメッセージの送信を同時に行なう、ようにしても
よいし、(2)まず旧経路上の次ホップノードにREL
EASEメッセージを送信し次ホップノードからのAC
Kを受信した後に、新経路上以外の次ホップノード(複
数可)にRELEASEメッセージを送信する、ように
してもよいし、(3)まず新経路上の次ホップノードに
SETUPメッセージを送信し、次ホップノードからの
ACKまたはNACKを受信した後に、旧経路上の次ホ
ップノード(複数あるかもしれない)にRELEASE
メッセージを送信する、ようにしてもよいし、(4)ま
ず新経路上にSETUPメッセージを送信し、それに対
してループと判断されたことを示す情報を付加されたA
CKを受信した場合には、旧経路上に、SETUPメッ
セージに含まれるものと同一の代理初段ノード情報を含
み、初段ノード情報(およびホップカウント)の更新は
行なわずにこの代理初段ノード情報に対応する受信入力
リンクと対応する出力リンクとの間のラベルスイッチン
グを可能にするための特殊なUPDATE_DELメッ
セージを送信する、ようにしてもよいし、(5)まず新
経路上にSETUPメッセージを送信するとともに、旧
経路上に、SETUPメッセージに含まれるものと同一
の代理初段ノード情報を含み、初段ノード情報(および
ホップカウント)の更新は行なわずにこの代理初段ノー
ド情報に対応する受信入力リンクと対応する出力リンク
との間のラベルスイッチングを可能にするための特殊な
UPDATE_DELメッセージを送信する、ようにし
てもよい。
【0074】特に、上記の(4)、(5)の場合には、
新経路上の次ホップノードからループと判断されたこと
を示す情報を付加されていないACKまたはNACKを
受信するまでは、旧経路上のパスを使用し続け、新経路
上の次ホップノードからループと判断されたことを示す
情報を付加されていないACKまたはNACKを受信し
たときに、旧経路上の次ホップノード(複数あるかもし
れない)にRELEASEメッセージを送信するように
してもよい。
【0075】なお、上記の(4)、(5)の場合に使用
される特殊なUPDATE_DELメッセージは、UD
DATE_DELメッセージと同じフィールドを持つ。
通常のUPDATE_DELメッセージとは何らかの方
法で区別される。
【0076】また、conservativeモード
で、経路変更時に(3),(4)の動作を行なう場合に
は旧経路と新経路で経路が同じノード上のラベルは解放
することなく残しておくことが可能になる。
【0077】(バリエーション4)パス制御メッセージ
が、TCPなどのリライアブルトランスポートプロトコ
ルを用いて転送され、メッセージ処理の順序がネットワ
ーク全体で保証される場合には、同じリンク上に複数の
outstandingなメッセージが存在してもよ
い。
【0078】(バリエーション5)本発明は、いかなる
フローの定義に対しても使用可能である。また、初段ノ
ードがパス設定を起動する契機は、フローに対するルー
チングテーブルエントリが生成された時を契機とするト
ポロジードリブン、または、実際にそのフローにマッチ
するパケットが流れ始めた時を契機とするフロードリブ
ン、のいずれでもよい。
【0079】(バリエーション6)追加型更新メッセー
ジ(UPDATE_ADD),削除型更新メッセージ
(UPDATE_DEL)は、受信ノードが追加型の更
新か、削除型の更新かを判別できれば、これら2種類を
区別せずに1種類の更新メッセージ(UPDATE)と
してまとめてもよい。このとき、受信ノードが追加型の
更新か、削除型の更新かの判別は、受信入力リンクの現
在の初段ノード情報の値と、UPDATEメッセージ中
の受信初段ノード情報(ホップカウントを使用する場合
には受信ホップカウントも)の大小比較により行なう。
具体的には、ホップカウントを使用しない場合には、も
し、初段ノード情報が最大の値を下流ノードに通知する
場合には、もし、受信初段ノード情報が現在の初段ノー
ド情報よりも大きければ、追加型の更新メッセージ、も
し、受信初段ノード情報が現在の初段ノード情報よりも
小さければ、削除型の更新メッセージと判断する。ホッ
プカウントを使用する場合には、もし、受信ホップカウ
ントが現在のホップカウントより大きい、または、受信
ホップカウントが現在のホップカウントと等しくかつ受
信初段ノード情報が現在の初段ノード情報より大きい場
合には、追加型の更新メッセージ、もし、受信ホップカ
ウントが現在のホップカウントより小さい、または、受
信ホップカウントが現在のホップカウントと等しくかつ
受信初段ノード情報が現在の初段ノード情報より小さい
場合には、削除型の更新メッセージと判断する。また、
UPDATEメッセージを一種類しか設けられない場合
には、まず、受信入力リンクがブロックされるかどうか
をチェックし、受信入力リンクがブロックされない場合
にのみ、ブロックされている他の入力リンクのブロック
を解除するようにしてもよい。
【0080】(バリエーション7)本発明は、SETU
P(UPDATE_ADD)メッセージを受信したにも
関わらず、ループ条件を満たしたためにラベルスイッチ
ングされない入力側リンクにおいて、定期的にリトライ
を行なってもよい。この場合には、リトライがかかる
と、前回受信したSETUP(UPDATE_ADD)
メッセージを受信した場合と同じ動作を行なう。
【0081】(バリエーション8)ここで、受信代理初
段ノード情報Pの代理初段ノードアドレスをPi、シー
ケンス番号をPsとする。
【0082】RELEASEメッセージを受信した際に
は、受信入力リンクを削除する。さらに、受信Fと対応
し、かつ、代理初段ノードアドレスがPiに等しく、か
つ、シーケンス番号がPs以上の値を持つような、受信
入力リンク以外の入力リンク=Liがあれば、Liと、
Liに対応する出力リンクとの間のラベルスイッチング
を可能にする。
【0083】UPDATE_DELメッセージを受信し
た際には、受信(F,I,P)と受信入力リンクを対応
させる。さらに、受信Fと対応し、かつ、代理初段ノー
ドアドレスがPiに等しく、かつ、シーケンス番号がP
s以上の値を持つような入力リンク=Liがあれば、L
iと、Liに対応する出力リンクとの間のラベルスイッ
チングを可能にする。
【0084】これにより、あるノードで、経路削除と経
路追加がこの順でほぼ同時に起こった場合においても、
リトライの確率を小さくすることが可能になる。
【0085】(バリエーション9)ここで、受信代理初
段ノード情報Pの代理初段ノードアドレスをPi、シー
ケンス番号をPsとする。
【0086】RELEASEメッセージを受信した際に
は、受信入力リンクを削除する。さらに、受信Fと対応
し、かつ、代理初段ノードアドレスがPiに等しく、か
つ、シーケンス番号がPs以上の値を持つような、受信
入力リンク以外の入力リンクの中でシーケンス番号が最
小の入力リンクLiがあれば、Liと、Liに対応する
出力リンクとの間のラベルスイッチングを可能にする。
【0087】UPDATE_DELメッセージを受信し
た際、受信(F,I,P)と受信入力リンクを対応させ
る。さらに、受信Fと対応し、かつ、代理初段ノードア
ドレスがPiに等しく、かつ、シーケンス番号がPs以
上の値を持つような、受信入力リンク以外の入力リンク
の中でシーケンス番号が最小の入力リンク=Liがあれ
ば、Liと、Liに対応する出力リンクとの間のラベル
スイッチングを可能にする。
【0088】これにより、あるノードで、経路削除と経
路追加がこの順でほぼ同時に起こった場合においても、
リトライの確率を小さくすることが可能となる。
【0089】この場合には、同じフロー識別子、初段ノ
ード情報を持つ複数の入力リンクと出力リンクの間でラ
ベルスイッチングされる場合があるがループではない。
【0090】(バリエーション10)本発明では、RE
LEASEメッセージを受信した結果、出力側リンクを
削除するために下流ノードにRELEASEメッセージ
を送信し終るか、ACK を使用する場合にはそのAC
Kが返ったときに、もし、削除された出力リンクに対応
する入力側リンクLiが存在すれば、Liに対応するフ
ロー識別子、初段ノード情報を指定したSETUPメッ
セージを下流ノードに送信することも可能である。これ
により、経路変更時に、ある代理初段ノードから送信さ
れたSETUP,UPDATE_ADDを受信したが、
実際にはループでないのにループ条件を満たしたために
ラベルスイッチングされない入力側リンクが、何らかの
理由でラベルスイッチングされないまま、その入力側リ
ンクに対応する出力側リンクを削除されてしまうような
場合にも、リトライをする必要がなくなる。
【0091】本発明の一つの特徴は、「ループと判断さ
れるときに、ラベルの割り当てをしない(前段ノードに
NACKメッセージを返す)のではなく、ラベルの割当
てはするがその入力側ラベルをラベルスイッチングのた
めに出力側ラベルと対応付けることはしない」点にあ
る。
【0092】本発明により、リトライの確率が小さいよ
うな、ループ回避メカニズムの実現が可能となる。ま
た、経路変更時に、旧経路と新経路で経路が同じノード
上のラベルは解放することなく残しておくことも可能と
なる。
【0093】ここで、上記のバリエーション5の具体例
を示す。
【0094】同一のパケットフローとする形態には、
(1)宛先IPアドレスが同じパケットを同一のパケッ
トフローとする、(2)ネットワークマスクに対応する
宛先IPアドレスの部分(すなわち宛先IPアドレスの
上位の所定ビット)が同じパケットを同一のパケットフ
ローとする、(3)送信元IPアドレスと宛先IPアド
レスの組が同じパケットを同一のパケットフローとす
る、(4)第1のネットワークマスクに対応する送信元
IPアドレスの部分と第2のネットワークマスクに対応
する宛先IPアドレスの部分との組が同じパケットを同
一のパケットフローとする、(5)あるIPアドレスを
持つノードを通るパケットを同一のパケットフローとす
る、(6)上記の(1)〜(5)において、送信元およ
び/または宛先のポート番号をも組にしたものが同一で
あるパケットを同一のパケットフローとする、などが種
々のもの考えられる。
【0095】ところで、本発明は、(1)初段ノード主
導でラベルスイッチングパスを生成する場合(Ingr
ess Controlと呼ぶ)にも、(2)終段ノー
ド主導でラベルスイッチングパスを生成する場合(Eg
ress Controlと呼ぶ)にも、適用可能であ
る。
【0096】初段となるノード装置がSETUPメッセ
ージを送信する契機には、例えば、次のような形態があ
る。 (1)各々のノード装置が、宛先destに対するルー
ティングテーブルが生成されたときを契機に、ラベル割
当てメッセージを送信する。 (2)各々のノード装置が、宛先destに対するルー
ティングテーブルが生成された後に宛先destに対す
るトラヒック量がしきい値を越えた場合を契機に、ラベ
ル割当てメッセージを送信する。 (3)宛先destに対するルーティングテーブルが生
成された後に、宛先destに対するトラヒック量がし
きい値を越え、かつ、トラヒック(データグラム)の前
段ノード装置が本実施形態に係るラベル割り当てプロト
コルをサポートしない、という条件をみたすノード装置
のみが、これを契機に自ノードを初段と判断してラベル
割当てメッセージを送信する(例えばINTERNET
−DRAFT <draft−ietf−rolc−n
hrp−l1.txt> NBMA Next Hop
Resolution Protocol(NHR
P)参照)。
【0097】一方、終段となるノード装置がTRIGG
ERメッセージを送信する契機には、例えば、次のよう
な形態がある。 (1)終段として登録された各々のノード装置が起動し
た時を契機に、ラベル割当てメッセージを送信する。 (2)終段として登録された各々のノード装置において
フロー(終段として登録されたノードを通過するパケッ
ト流)の通過トラヒック量がしきい値を越えた場合を契
機に、ラベル割当てメッセージを送信する。 (3)フロー(終段として登録されたノードを通過する
パケット流)に対するトラヒック量がしきい値を越え、
かつ、フローの次ホップノードが本実施形態に係るラベ
ル割り当てプロトコルをサポートしない、という条件を
満たすノードのみが、これを契機に自ノードを終段と判
断してラベル割当てメッセージを送信する。
【0098】終段として登録されるノードの一例とし
て、OSPFのエリアボーダールータやドメイン境界ル
ータ、隣接BGPルータなどがある。
【0099】なお、上記の(3)の場合には、終段とし
て登録されたノードと実際のラベルスイッチングパスの
終段となるノードは異なる。
【0100】さて、以下では、幾つかの実施形態につい
てより詳しく説明していく。
【0101】前述のように、本発明は、初段ノード主導
でパスを生成する場合にも、終段ノード主導でパスを生
成する場合にも適用可能である。
【0102】なお、以下で説明する実施形態において
は、代理初段ノード情報は、“[代理初段ノードアドレ
ス:シーケンス番号]”の形式で表される。また、宛先
IPアドレスが同じパケットを同一のパケットフローで
あるものとする。また、リンク識別子としてラベルの値
を使用する場合の例を示す。なお、パス制御メッセージ
において、ラベルフィールド、ホップカウントフィール
ドは図中では、省略される場合がある。
【0103】各実施形態に係るノード装置は、IP(I
nternet Protocol)処理を行う機能を
持つとともに、本発明に係るパス制御プロトコルに従っ
てラベルスイッチングを行う機能を持つ。また、末端に
位置し中継を行わないノード装置以外のノード装置は、
ルータ機能を持ってもよい(例えば図1においてノード
装置R2〜R5はルータ機能を持ち、ルータ装置R1,
R6についてはこれらが末端に位置し中継を行わないも
のである場合にはルータ機能は不要である)。
【0104】実施形態によって、ノード装置には、パス
のマージを行うものと、行わないものとがある。マージ
を行うノード装置は、フロー識別子が等しい複数の入力
側ラベルに対して同一の出力リンク情報を対応させるこ
とによりパスのマージを行うための機能を有する。
【0105】なお、マージを行う場合における保持すべ
き初段ノード情報の決め方の基準として、初段ノード情
報の大きさを用いることがあるが、初段ノード情報の大
きさとは、初段ノード情報が数値データまたは数値とし
て把握できるデータである場合における当該数値の大き
さである。例えば、初段ノード情報がアドレスデータで
ある場合には、当該アドレスデータの値である。なお、
以下の各実施形態において、初段ノード情報としてR1
などを用いるが、i>jとした場合に、初段ノード情報
Riの大きさ>初段ノード情報Rjの大きさであるもの
とする。
【0106】なお、以下の記述で、「a=b」はaの値
もしくは内容がbであることを、「a==b」はaがb
と等しい(もしくはaがbである)ことを、「!=」は
aがbと等しくない(もしくはaがbでない)ことを、
「a:=b」はaにbを代入もしくは設定することを、
「a>=b」はaがb以上であることを示すものとす
る。
【0107】(第1の実施形態)まず、本発明の第1の
実施形態に係るパス制御プロトコルおよびこのパス制御
プロトコルに従ってラベルスイッチングを行うノード装
置について説明する。
【0108】本実施形態では、初段ノード主導でパスを
生成する場合でラベルのマージを行なわない場合の例を
示す。SETUP,UPDATE_ADDメッセージに
関してはconservativeモード、RELEA
SE,UPDATE_DELメッセージに関してはop
timisticモードであるとする。なお、本実施形
態は、バリエーション2の(1),(2)とバリエーシ
ョン3の(3)に関係するものである。
【0109】図1に、本実施形態に係るノード装置を接
続して構成されたネットワークの一例を示す。
【0110】図1では、本実施形態に係るノード装置R
1〜R6が接続されており、特にノード装置R2〜R5
でループが形成されている。なお、図1は、ネットワー
クの一部を切り出したもので、ノード装置R1〜R6の
全てまたは一部には図示しない他のノード装置が接続さ
れている。
【0111】図1には、ノード装置R1からR2、R2
からR3、R3からR4、R4からR5、R5からR2
へそれぞれ送られる各々のSETUPメッセージを示し
てある。例えば(1)のノード装置R1からノード装置
R2へ送られるSETUP(flowid=R7、in
gress=R1、label=x12、proxyi
ngress=[R1:1])は、当該SETUPメッ
セージに、フロー識別子R7、初段ノード情報としてR
1、リンク識別子(ここれはラベルそのもの)としてx
12、代理初段ノード情報として[R1:1]が含まれ
ていることを示す(以降の他の図についても同様に主な
メッセージを図中に示してある)。
【0112】図2は、ノード装置R5からSETUPメ
ッセージを受信した後のノード装置R2におけるフロー
テーブルの例である。
【0113】さて、図1の構成において、初段ノードR
1で、flowid=R7に対するパス設定を開始する
と、ノード装置R1は、flowid=R7に対するパ
ス設定のためのラベル割当て要求メッセージ(SETU
P)を次ホップノードR2に送信する。このとき、送信
初段ノード情報ingress=R1、送信代理初段ノ
ード情報proxy ingress=[R1:1]と
なる。
【0114】経路上のノード装置R2,R3,R4,R
5では、それぞれ、SETUPメッセージを前段ノード
から受信すると、新たなフローテーブルエントリを作成
し、受信フロー識別子flowid=R7、受信初段ノ
ード情報ingress=R1が他の入力リンクと対応
していないため、フローテーブルエントリのstat
e:=onとして後段ノードにSETUPを送信する。
【0115】SETUPメッセージがノード装置R2ま
で届くと、すでに受信初段ノード情報ingress=
R1が他の入力リンクI12:x12に対応しているた
め、ループであると判断する。このとき、ノード装置R
2は、新たにフローテーブルエントリを作成し、前段ノ
ードR5にラベル割当て成功メッセージ(SETUP_
ACK)を返す。ただし、出力リンクの割当ては行なわ
ず(出力リンク=NULLとする)、state=of
fに設定する。このとき、ラベルスイッチングは行なわ
れない。
【0116】なお、本実施形態では、フローテーブルに
は、入力リンク(input link)、フロー識別
子(flowid)、初段ノード情報(ingres
s)、出力リンク(output link)、代理初
段ノード情報(proxy ingress)、ラベル
スイッチ状態(state)が含まれる(前記文献や特
願平10−5044で示された情報に加え、代理初段ノ
ード情報やラベルスイッチ状態も記憶する)。ラベルス
イッチ状態(state)は、state=onのと
き、ラベルスイッチング可能であり、offのとき、ラ
ベルスイッチング禁止である。state=offの場
合には、受信パケットは、L3フォワーディング(例え
ばIPレイヤでのフォワーディング)されるかもしくは
廃棄される。
【0117】SETUP_ACKメッセージは、SET
UPメッセージと逆方向に返され、SETUP_ACK
メッセージを受信した各ノード装置は、ラベルスイッチ
ング可能となる。
【0118】この結果、パスR1→R2→R3→R4→
R5→R2というラベルスイッチングパスができる。
【0119】次に、図1および図2の状態で、初段ノー
ドR6で、flowid=R7に対するパス設定が開始
されると、ノード装置R6は、図3のように、flow
id=R7に対するパス設定のためのラベル割当て要求
メッセージ(SETUP)を次ホップノードR3に送信
する。このとき、送信初段ノード情報ingress=
R6、送信代理初段ノード情報proxy ingre
ss=[R6:1]となる。
【0120】経路上の各ノード装置R3,R4,R5,
R2では、それぞれ、SETUPメッセージを前段ノー
ドから受信すると、新たなフローテーブルエントリを作
成する。このとき、受信フロー識別子flowid=R
7、受信初段ノード情報ingress=R6が他の入
力リンクと対応していないため、ループでないと判断
し、フローテーブルエントリのstate:=onにす
るとともに、新たに出力リンクを割当て、後段ノードに
SETUPメッセージを送信する。
【0121】SETUPメッセージがノード装置R3ま
で届くと、すでに受信初段ノード情報ingress=
R6が他の入力リンクI63:x63に対応しているた
め、ループであると判断する。
【0122】このとき、ノード装置R3は、新たなフロ
ーテーブルエントリを作成し、前段ノードR2にラベル
割当て成功メッセージ(SETUP_ACK)を返す。
ただし、出力リンクの割当ては行なわず(出力リンク=
NULLとする)、state=offに設定する。こ
のとき、ラベルスイッチングは行なわれない。
【0123】SETUP_ACKメッセージは、SET
UPメッセージと逆方向に返され、SETUP_ACK
メッセージを受信した各ノード装置は、ラベルスイッチ
ング可能となる。
【0124】この結果、図3に示されるように、先に設
定されたパスR1→R2→R3→R4→R5→R2に加
えて、新たなパスR6→R3→R4→R5→R2→R3
が設定される。
【0125】図4(a)にノード装置R3からSETU
P_ACKメッセージを受信した後のノード装置R2に
おけるフローテーブルの例を、図4(b)にノード装置
R4からSETUP_ACKメッセージを受信した後の
ノード装置R3におけるフローテーブルの例をそれぞれ
示す。なお、本実施形態では、マージを行わないので、
図4(a)の第1エントリと第3エントリの出力リンク
は相異なるものになっており、図4(b)の第1エント
リと第2エントリの出力リンクは相異なるものになって
いる。
【0126】次に、図3および図4の状態で、初段ノー
ドR1で、flowid=R7に対するパス削除を開始
すると、ノード装置R1は、図5のようにflowid
=R7に対するパス削除のためのラベル解放メッセージ
(RELEASE)を次ホップノードR2に送信する。
このとき、送信初段ノード情報ingress=R1、
送信代理初段ノード情報proxy ingress=
[R1:2]となる。特に、送信代理初段ノード情報の
シーケンス番号は最初のSETUPメッセージ中の値と
は異なる値にする。
【0127】ノード装置R2では、RELEASEメッ
セージをノード装置R1から受信すると、受信入力リン
クを解放し、前段ノードR1にRELEASE_ACK
メッセージを返すとともに、受信フロー識別子flow
id=R7、受信入力リンクの解放前の初段ノード情報
R1、受信代理初段ノード情報proxy ingre
ss=[R1:2]を持つ入力リンクであって受信入力
リンク以外の入力リンクを持つフローテーブルエントリ
が存在するかどうか調べる。もし、このようなエントリ
が存在すれば、そのstate:=onとする。この例
ではそのようなエントリは存在しないので、当該処理に
関しては何もしない。
【0128】ノード装置R2では、次に、受信入力リン
ク(I12:x12)に対応する出力リンク(I23:
x23)を持ちかつstate=onであるような他の
フローテーブルエントリが存在するかどうかを調べ、も
し存在すれば、出力リンクを解放しない。この例ではそ
のようなエントリが存在しないため、出力リンクが解放
される。このとき、ノード装置R2は、後段ノードR3
にRELEASEメッセージを送信する。
【0129】以降、ノード装置R3,R4,R5でも同
様の処理が行なわれ、RELEASEメッセージがノー
ド装置R2まで届くと、図5のように、初段ノードin
gress=R1のパスはすべて解放される。
【0130】なお、図6(a)にノード装置R5からR
ELEASEメッセージを受信した後のノード装置R2
におけるフローテーブルの例を、図4(b)にノード装
置R4からRELEASE_ACKメッセージを受信し
た後のノード装置R3におけるフローテーブルの例をそ
れぞれ示す。
【0131】(第2の実施形態)次に、本発明の第2の
実施形態に係るパス制御プロトコルおよびこのパス制御
プロトコルに従ってラベルスイッチングを行うノード装
置について説明する。
【0132】本実施形態では、初段ノード主導でパスを
生成する場合でラベルのマージを行なう場合の例を示
す。SETUP,UPDATE_ADDメッセージに関
してはconservativeモード、RELEAS
E,UPDATE_DELメッセージに関してはopt
imisticモードであるとする。なお、本実施形態
は、バリエーション2の(1),(2)とバリエーショ
ン3の(3)に関係するものである。
【0133】ここで、ラベルのマージを行なう場合に
は、同じ出力リンクにマージされる入力リンクの初段ノ
ード情報のうち値が最大のものを下流ノードに通知する
初段ノードとして選択するものとする。
【0134】図7に、本実施形態に係るノード装置を接
続して構成されたネットワークの一例を示す。
【0135】ここでは、第1の実施形態と同様にして、
パスR1→R2→R3→R4→R5→R2というラベル
スイッチングパスが設定されたものとする。
【0136】さて、この状態において、第1の実施形態
と同じく初段ノードR6で、flowid=R7に対す
るパス設定を開始すると、ノード装置R6は、図7のよ
うに、flowid=R7に対するパス設定のためのラ
ベル割当て要求メッセージ(SETUP)を次ホップノ
ードR3に送信する。このとき、送信初段ノード情報i
ngress=R6、送信代理初段ノード情報prox
y ingress=[R6:1]となる。
【0137】ノード装置R3は、ノード装置R6からS
ETUPメッセージを受信すると、新たにフローテーブ
ルエントリを作成する。次に、flowid=R7に対
して初段ノード情報R6を持つ入力リンクが存在しない
ため、ループでないと判断し、フローテーブルエントリ
のstate:=onとし、ラベルのマージを行ない、
後段ノードR4に追加型更新メッセージ(UPDATE
_ADD)を送信する。
【0138】経路上のノード装置R4,R5,R2で
は、それぞれ、UPDATE_ADDノード装置を前段
ノードから受信した際、受信フロー識別子flowid
=R7、受信初段ノード情報ingress=R6が他
の入力リンクと対応していないため、ループでないと判
断する。さらに、下流に通知する初段ノード情報がR1
からR6に更新されるため、後段ノードにUPDATE
_ADDメッセージを送信する。
【0139】UPDATEノード装置がノード装置R3
まで届くと、すでに受信初段ノード情報ingress
=R6が他の入力リンクI63:x63に対応している
ため、ループであると判断する。このとき、ノード装置
R3は、受信入力リンクが登録されているフローテーブ
ルエントリの初段ノード情報をR6に、代理初段ノード
情報を[R6:1]に、state:=offに書き換
え、前段ノードR2に追加型更新成功メッセージ(UP
DATE_ADD_ACK)を返す。state:=o
ffに書き換えたため、ノード装置R3では受信入力リ
ンクと出力リンクとの間のラベルスイッチングは行なわ
れない。なお、この例では、このフローテーブルエント
リには、state=offに変えた後も出力リンク
(I34:x34)が対応したままとなるが、出力リン
ク=NULLとし、後にstate=offからonに
変わるときに、対応する出力リンクを決めるようにして
もよい。
【0140】UPDATE_ADD_ACKメッセージ
は、UPDATE_ADDメッセージと逆方向に返さ
れ、最後に、メッセージR3は、メッセージR4からU
PDATE_ADD_ACKメッセージを受信するとノ
ード装置R6にSETUP_ACKメッセージを返し、
ラベルスイッチング可能となる。
【0141】この結果、マージされたパス((R1),
(R6→R3→R4→R5))→R2→R3、すなわち
R1→R2→R3のパスとR6→R3→R4→R5→R
2→R3のパスとがマージされたラベルスイッチングパ
スが設定される。
【0142】図8(a)にノード装置R3からUPDA
TE_ADD_ACKメッセージを受信した後のノード
装置R2におけるフローテーブルの例を、図8(b)に
ノード装置R4からUPDATE_ADD_ACKメッ
セージを受信した後のノード装置R3におけるフローテ
ーブルの例をそれぞれ示す。なお、本実施形態では、マ
ージを行うので、図8(a)の第1エントリと第2エン
トリの出力リンクは同じものになっており、図8(b)
の第1エントリと第2エントリの出力リンクは同じもの
になっている。
【0143】次に、図7および図8の状態で、初段ノー
ドR1で、flowid=R7に対するパス削除を開始
すると、図9のように、ノード装置R1は、flowi
d=R7に対するパス削除のためのラベル解放メッセー
ジ(RELEASE)を次ホップノードR2に送信す
る。このとき、送信初段ノード情報ingress=R
1、送信代理初段ノード情報proxy ingres
s=[R1:2]となる。
【0144】ノード装置R2では、RELEASEメッ
セージをノード装置R1から受信すると、受信入力リン
クを解放し前段ノードにRELEASE_ACKメッセ
ージを返すとともに、受信フロー識別子flowid=
R7、受信入力リンクの解放前の初段ノード情報R1、
受信代理初段ノード情報proxy ingress=
[R1:2]を持つ入力リンクであって受信入力リンク
以外の入力リンクを持つようなフローテーブルエントリ
が存在するかどうか調べる。もし、このようなエントリ
が存在すれば、そのstate:=onとする。この例
ではそのようなエントリは存在しないので、当該処理に
関しては何もしない。
【0145】ノード装置R2では、次に、受信入力リン
ク(I12:x12)に対応する出力リンク(I23:
x23)を持ちかつstate=onであるような他の
フローテーブルエントリが存在するかどうかを調べ、も
し存在すれば、出力リンクを解放しない。この例ではそ
のようなエントリが存在するため、出力リンクを解放し
ない。さらに、出力リンクを解放しない場合には、下流
ノードに通知する初段ノード情報が更新されるかどうか
を調べ、更新される場合には、後段ノードR3にUPD
ATE_DELメッセージを送信する。この例では、初
段ノード情報はR6のまま変わらないため、後段ノード
にはUPDATE_DELメッセージを送信しない。
【0146】この結果、ノード装置R1からノード装置
R2へのパスだけが解放され、図9の実線で示すような
パス(R6→R3→R4→R5→R2→R3)になる。
【0147】なお、図10(a)に図9の実線で示すよ
うなパス設定時におけるノード装置R2におけるフロー
テーブルの例を、図10(b)にノード装置R3におけ
るフローテーブルの例をそれぞれ示す。
【0148】(第3の実施形態)次に、本発明の第3の
実施形態に係るパス制御プロトコルおよびこのパス制御
プロトコルに従ってラベルスイッチングを行うノード装
置について説明する。
【0149】本実施形態では、第1の実施形態と同様、
初段ノード主導でパスを生成する場合でラベルのマージ
を行なわない場合の例を示す。
【0150】第1の実施形態では、パスの設定と解放に
ついて説明したが、本実施形態では、経路変更時の動作
について述べる。
【0151】ここでは、ホップカウントを使用しない場
合で、前段ノードにACK/NACKメッセージを返
し、SETUP,UPDATE_ADDメッセージに関
してはconservativeモード、RELEAS
E,UPDATE_DELメッセージに関してはopt
imisticモードで、経路変更時には新経路上にS
ETUPメッセージを送信し、それに対するACKメッ
セージを受信してから旧経路上にRELEASEメッセ
ージを送信するものとする。
【0152】図11に、本実施形態に係るノード装置を
接続して構成されたネットワークの一例を示す。
【0153】図12は、ノード装置R4からSETUP
メッセージを受信した後のノード装置R5におけるフロ
ーテーブルの例である。
【0154】さて、図11の構成において、初段ノード
R1が、flowid=R6に対してパス設定を開始す
ると、ノード装置R1は、flowid=R6に対する
パス設定のためのラベル割当て要求メッセージ(SET
UP)を送信する。このとき、送信初段ノード情報in
gress=R1、送信代理初段ノード情報proxy
ingress=[R1:1]となる。
【0155】経路上の各ノード装置R2,R3,R4,
R5では、それぞれ、SETUPメッセージを前段ノー
ドから受信すると、新たなフローテーブルエントリを作
成し、受信フロー識別子flowid=R6、受信初段
ノード情報ingress=R1が他の入力リンクと対
応していないため、ループでないと判断し、後段ノード
にSETUPメッセージを送信する。このとき、フロー
テーブルエントリのstate:=onとする。
【0156】SETUPメッセージが終段ノードR6ま
で届くと、ノード装置R6から逆方向にラベル割当て成
功メッセージ(SETUP_ACK)が返され、SET
UP_ACKメッセージを受信した各ノード装置は、ラ
ベルスイッチング可能となる。
【0157】この結果、パスR1→R2→R3→R4→
R5→R6というラベルスイッチングパスができる。
【0158】次に、上記状態において、図13に示すよ
うにノード装置R2において経路変更が起こり、flo
wid=R6に対する次ホップがノード装置R3からノ
ード装置R7に変わったとする。
【0159】このとき、ノード装置R2は、まず、新経
路上の次ホップノードR7に対し、flowid=R
6、ingress=R1、proxy ingres
s=[R2:1]のSETUPメッセージを送信する。
このSETUPメッセージは、ノード装置R5までフォ
ワードされる。
【0160】ノード装置R5がこのSETUPメッセー
ジを受信すると、ノード装置R5は、新たにフローテー
ブルエントリを作成し、前段ノードR7にラベル割当て
成功メッセージ(SETUP_ACK)を返すが、受信
flowid=R6、受信ingress=R1が対応
する入力リンク(I45:x45)がすでに存在するた
め、ループであると判断する。
【0161】このとき、ノード装置R5は、新たなフロ
ーテーブルエントリを作成し、前段ノードR8にラベル
割当て成功メッセージ(SETUP_ACK)を返す。
ただし、出力リンクの割当ては行なわず(出力リンク=
NULLとする)、state=offに設定する。こ
のとき、ラベルスイッチングは行なわれない。
【0162】SETUP_ACKメッセージは、新経路
上の上流ノードに返される。
【0163】ノード装置R2がSETUP_ACKメッ
セージを受信すると、ノード装置R2は、次に、旧経路
上の次ホップノードR3に対してflowid=R6、
ingress=R1、proxy ingress=
[R2:1]のラベル解放メッセージ(RELEASE
メッセージ)を送信する。RELEASEメッセージを
受信したノード装置は、受信flowid=R6に対
し、受信proxy ingress=[R2:1]を
持つようなフローテーブルエントリが存在せず、かつ、
受信入力リンクに対応する出力リンクと同じ出力リンク
を持つフローテーブルエントリが他に存在しないため、
下流ノードにRELEASEをフォワードするととも
に、前段ノードにRELEASE_ACKを返す。
【0164】ノード装置R5がノード装置R4からRE
LEASEメッセージを受信すると、受信flowid
=R6に対し、ingress=R1(=RELEAS
E受信入力リンクのメッセージ受信前の値)と、受信p
roxy ingress=[R2:1]とを持つよう
なフローテーブルエントリが存在するため、RELEA
SE_ACKメッセージを返すとともに、出力側リンク
は解放せずに、このエントリの入力リンクと出力リンク
との間のラベルスイッチングを可能にする。なお、受信
入力リンク(I45:x45)については、これを解放
するとともに、受信入力リンクに対応するフローテーブ
ルエントリを削除する。
【0165】これにより、パスR1→R2→R7→R5
→R6ができる。
【0166】なお、図14(a)に図11の太線のよう
にパスが設定されているときのノード装置R5における
フローテーブルの例を、図14(b)にSETUPメッ
セージを受信した直後のノード装置R5におけるフロー
テーブルの例を、図14(c)にRELEASEメッセ
ージを受信した後のノード装置R5におけるフローテー
ブルの例をそれぞれ示す。
【0167】(第4の実施形態)次に、本発明の第4の
実施形態に係るパス制御プロトコルおよびこのパス制御
プロトコルに従ってラベルスイッチングを行うノード装
置について説明する。
【0168】本実施形態では、第2の実施形態と同様、
初段ノード主導でパスを生成する場合でラベルのマージ
を行なう場合の例を示す。
【0169】第1の実施形態では、パスの設定と解放に
ついて説明したが、本実施形態では、経路変更時の動作
について述べる。
【0170】ここで、ラベルのマージを行なう場合に
は、同じ出力リンクにマージされる入力リンクの初段ノ
ード情報のうち値が最小のものを下流ノードに通知する
初段ノードとして選択するものとする。
【0171】ここでは、ホップカウントを使用しない場
合で、前段ノードにACK/NACKを返し、SETU
P,UPDATE_ADDメッセージに関してはcon
servativeモード、RELEASE,UPDA
TE_DELメッセージに関してはoptimisti
cモードで、経路変更時には新経路上にSETUPメッ
セージを送信し、それに対するACKメッセージを受信
してから旧経路上にRELEASEメッセージを送信す
るものとする。
【0172】図15に、本実施形態に係るノード装置を
接続して構成されたネットワークの一例を示す。
【0173】図16は、図15の太線のようにパスが設
定されているときのノード装置R5におけるフローテー
ブルの例である。
【0174】さて、図15の構成において、初段ノード
R1が、flowid=R6に対するパス設定を開始す
ると、ノード装置R1は、flowid=R6に対する
パス設定のためのラベル割当て要求メッセージ(SET
UP)を送信する。このとき、送信初段ノード情報in
gress=R1、送信代理初段ノード情報proxy
ingress=[R1:1]となる。
【0175】経路上の各ノード装置R2,R3,R4,
R5では、それぞれ、SETUPメッセージを前段ノー
ドから受信すると、新たなフローテーブルエントリを作
成し、受信フロー識別子flowid=R6、受信初段
ノード情報ingress=R1が他の入力リンクと対
応していないため、ループでないと判断し、後段ノード
にSETUPメッセージを送信する。このとき、フロー
テーブルエントリのstate:=onとする。
【0176】SETUPメッセージが終段ノードR6ま
で届くと、ノード装置R6から逆方向にラベル割当て成
功メッセージ(SETUP_ACK)が返され、SET
UP_ACKメッセージを受信した各ノード装置R1,
R2,R3,R4,R5は、ラベルスイッチング可能と
なる。
【0177】この結果、パスR1→R2→R3→R4→
R5→R6というラベルスイッチングパスができる。
【0178】この状態において、次に、初段ノードR9
が、flowid=R6に対するパス設定を開始する
と、ノード装置R9は、flowid=R6に対するパ
ス設定のためのラベル割当て要求メッセージ(SETU
P)を送信する。このとき、送信初段ノード情報ing
ress=R9、送信代理初段ノード情報proxyi
ngress=[R9:1]となる。
【0179】経路上の各ノード装置R7,R8では、そ
れぞれ、SETUPメッセージを前段ノードから受信す
ると、新たなフローテーブルエントリを作成し、受信フ
ロー識別子flowid=R6、受信初段ノード情報i
ngress=R9が他の入力リンクと対応していない
ため、ループでないと判断し、後段ノードにSETUP
メッセージを送信する。このとき、フローテーブルエン
トリのstate:=onとする。
【0180】SETUPメッセージがノード装置R5ま
で届くと、ノード装置R5は、新たなフローテーブルを
作成し、ラベルのマージを行なう。すなわち、新たな出
力側ラベルの割当てを行なわず、すでに存在する出力側
ラベルx56を使用する。このとき、出力側に通知すべ
き初段ノード情報はR1のまま変わらないため(初段ノ
ード情報R1<初段ノード情報R9であるため)、メッ
セージR5はメッセージR8にSETUP_ACKメッ
セージを返す。SETUP_ACKメッセージを受信し
た各ノード装置R9,R7,R8は、ラベルスイッチン
グ可能となる。
【0181】この結果、新たにパスR9→R7→R8→
R5→R6というラベルスイッチングパスができる。
【0182】この状態において、さらに、ノード装置R
10でflowid=R6に対するルーチングテーブル
エントリができると、ノード装置R10は、ノード装置
R3にSETUPメッセージを送信する。このとき、送
信初段ノード情報ingress=R10、送信代理初
段ノード情報proxy ingress=[R10:
1]となる。
【0183】ノード装置R3がノード装置R10からの
SETUPメッセージを受信すると、新たなフローテー
ブルエントリを作成し、ラベルのマージを行なう。この
とき、出力側に通知すべき初段ノード情報はR1のまま
変わらないため、ノード装置R5はノード装置R10に
SETUP_ACKメッセージを返す。SETUP_A
CKメッセージを受信したノード装置R10は、ラベル
スイッチング可能となる。
【0184】これらのパス生成動作の結果、図15の太
線のようなマージされたラベルスイッチングパス
((((R1→R2),(R10))→R3→R4),
(R9→R7→R8))→R5→R6が生成される。
【0185】次に、上記状態において、図17に示すよ
うにノード装置R2において経路変更が起こり、flo
wid=R6に対する次ホップがノード装置R3からノ
ード装置R7に変わったとする。
【0186】このとき、ノード装置R2は、新経路上の
次ホップノードR7に対し、flowid=R6、in
gress=R1、proxy ingress=[R
2:1]のSETUPメッセージを送信する。
【0187】ノード装置R7は、すでにflowid=
R6に対する出力側ラベルx78を持つが、受信初段ノ
ード情報(R1)がすでにノード装置R9から受信した
初段ノード情報(R9)よりも小さいため、下流ノード
R8に初段ノード情報の更新を通知するために、追加型
更新(UPDATE_ADD)メッセージを送信する。
このとき、UPDATE_ADDメッセージ中のpro
xy ingress=[R2:1]とする。
【0188】UPDATE_ADDメッセージは、マー
ジポイントR5までフォワードされる。
【0189】ノード装置R5では、受信UPDATE_
ADDメッセージの入力リンク(I85:x85)に対
する初段ノード情報(R1)がすでに別の入力リンク
(I45:x45)に対して登録している初段ノード情
報と同じであるため、ループであると判断する。このと
き、ノード装置R8に更新成功(UPDATE_ADD
_ACK)メッセージが返されるが、受信入力リンクと
出力リンクとの間のラベルスイッチングは行なわないた
め、入力リンク(I85:x85)に対するstate
=offに変える。
【0190】なお、この例では、このフローテーブルエ
ントリには、state=offに変えた後も出力リン
ク(I56:x56)が対応したままとなるが、出力リ
ンク=NULLとし、後にstate=offからon
に変わるときに、対応する出力リンクを決めるようにし
てもよい。
【0191】ノード装置R5からのUPDATE_AD
D_ACKメッセージは、ノード装置R8,R7と順に
返される。
【0192】ノード装置R7がUPDATE_ADD_
ACKメッセージを受信すると、ノード装置R7は、ノ
ード装置R2にSETUP_ADD_ACKメッセージ
を返す。
【0193】ノード装置R2は、ノード装置R7からS
ETUP_ACKメッセージを受信すると、旧経路上の
次ホップノードR3に対して、flowid=R6、i
ngress=R1、proxy ingress=
[R2:1]のラベル解放(RELEASE)メッセー
ジを送信する。
【0194】ノード装置R3は、ノード装置R2からの
RELEASEメッセージを受信すると、受信入力リン
クを解放し、ノード装置R2にRELEASE_ACK
メッセージを返す。このとき、flowid=R6に対
して、R10との間に別の入力リンクが存在するため、
出力リンクは解放せずに、次ホップノードR4に、初段
ノード情報が変わったことを示すために、flowid
=R6、ingress=R10、proxy ing
ress=[R2:1]のUPDATE_DELメッセ
ージを送信する。
【0195】ノード装置R3からのUPDATE_DE
Lメッセージを受信したノード装置R4は、前段ノード
装置R3にただちにUPDATE_DEL_ACKメッ
セージを返すとともに、下流ノードR5にUPDATE
_DELメッセージを送信する。
【0196】ノード装置R5は、ノード装置R4からの
UPDATE_DELメッセージを受信すると、前段ノ
ードR4にただちにUPDATE_DEL_ACKメッ
セージを返す。次に、ノード装置R5は、受信Flow
id=R6に対し、ingres=R1(UPDATE
_DELメッセージ受信前の初段ノード情報)と受信p
roxy ingress=[R2:1]と同じ代理初
段ノード情報を持つ入力リンクが存在するかどうか調
べ、もし存在すれば、その入力リンクのstate=o
nにする。今、入力リンク(I85:x85)が、Fl
owid=R6と、UPDATE_DEL受信前の初段
ノード情報R1と、受信入力リンクと同じproxy
ingress=[R2:1]とを持っており、このs
tate=offであるため、state=onに変え
られる。
【0197】次に、ノード装置R5は、下流ノードに通
知する初段ノード情報を更新する必要があるかどうかを
判断する。ノード装置R5は、下流ノードに初段ノード
情報R1を通知しており、この値はノード装置R4から
のUPDATE_DEL受信後も変わらないため、UP
DATE_DELメッセージはこれ以上フォワードされ
ない。
【0198】以上により、ノード装置R2とノード装置
R3との間のリンクが切断され、ノード装置R2とノー
ド装置R7の間のリンクが追加されたマージされたパス
((R10→R3→R4),(((R1→R2),(R
9))→R7→R8))→R5→R6ができる。
【0199】なお、図18(a)に図15の太線のよう
にパスが設定されているときのノード装置R5における
フローテーブルの例を、図14(b)にノード装置R8
からUPDATE_ADDメッセージを受信した直後の
ノード装置R5におけるフローテーブルの例を、図14
(c)にノード装置R4からUPDATE_DELメッ
セージを受信した後のノード装置R5におけるフローテ
ーブルの例をそれぞれ示す。
【0200】(第5の実施形態)次に、本発明の第5の
実施形態に係るパス制御プロトコルおよびこのパス制御
プロトコルに従ってラベルスイッチングを行うノード装
置について説明する。
【0201】本実施形態では、第2、第4の実施形態と
同様、初段ノード主導でパスを生成する場合でラベルの
マージを行なう場合の例を示す。
【0202】第4の実施形態では、ホップカウントを使
用しない場合における経路変更時の動作について説明し
たが、本実施形態では、ホップカウントを使用する場合
における経路変更時の動作について述べる。
【0203】ここでは、ラベルのマージを行なうとす
る。なお、ラベルのマージを行なわない場合は、フロー
テーブルに受信ホップカウント情報も記憶する以外はホ
ップカウントを使用しない場合と同じ動作になる。ホッ
プカウントを用いる場合には、メッセージ中に初段ノー
ドからのホップカウントを示すホップカウントフィール
ドが追加される。また、同じ出力リンクにマージされる
入力リンクの初段ノード情報のうち最大のホップカウン
トを与えるものを、最大のホップカウントを与える初段
ノード情報が複数ある場合にはその中で最大の初段ノー
ド情報を、下流ノードに通知する初段ノードとして選択
するものとする。
【0204】また、前段ノードにACK/NACKメッ
セージを返し、すべてのメッセージに対してoptim
isticモードで動作し、経路変更時には旧経路上に
RELEASEメッセージを送信し、それに対するAC
Kメッセージを受信してから新経路上にSETUPメッ
セージを送信するとする。
【0205】なお、本実施形態は、バリエーション1と
バリエーション2の(1)とバリエーション3の(2)
に関係するものである。
【0206】図19に、本実施形態に係るノード装置を
接続して構成されたネットワークの一例を示す。
【0207】図20は、図19の太線のようにパスが設
定されているときのノード装置R5におけるフローテー
ブルの例である。
【0208】さて、図19の構成において、初段ノード
R1が、flowid=R6に対するパス設定を開始す
ると、ノード装置R1は、flowid=R6に対する
パス設定のためのラベル割当て要求メッセージ(SET
UP)を送信する。このとき、送信初段ノード情報in
gress=R1、送信代理初段ノード情報proxy
ingress=[R1:1]、hop count
=1となる。
【0209】経路上の各ノード装置R2,R3,R4,
R5では、それぞれ、SETUPメッセージを前段ノー
ドから受信すると、新たにフローテーブルを作成する。
このとき、受信フロー識別子flowid=R6、受信
初段ノード情報ingress=R1が他の入力リンク
と対応していないため、ループでないと判断し、フロー
テーブルエントリのstate:=onにするともに、
後段ノードに受信ホップカウントを1だけインクリメン
トしたSETUPを送信するとともに、前段ノードにラ
ベル割当て成功メッセージ(SETUP_ACK)を返
す。
【0210】SETUP_ACKメッセージを受信した
各ノード装置は、ラベルスイッチング可能となる。
【0211】この結果、パスR1→R2→R3→R4→
R5→R6というラベルスイッチングパスができる。
【0212】この状態において、次に、初段ノードR1
3が、flowid=R6に対するパス設定を開始する
と、ノード装置R13は、flowid=R6に対する
パス設定のためのラベル割当て要求メッセージ(SET
UP)を送信する。このとき、送信初段ノード情報in
gress=R13、送信代理初段ノード情報prox
y ingress=[R13:1]、hop cou
nt=1となる。
【0213】経路上の各ノード装置R12,R9,R
7,R8では、それぞれ、SETUPメッセージを前段
ノードから受信すると、新たにフローテーブルを作成す
る。このとき、受信フロー識別子flowid=R6、
受信初段ノード情報ingress=R13が他の入力
リンクと対応していないため、ループでないと判断し、
フローテーブルエントリのstate:=onにすると
もに、後段ノードに受信ホップカウントを1だけインク
リメントしたSETUPメッセージを送信し、またこれ
らとともに、前段ノードにラベル割当て成功メッセージ
(SETUP_ACK)を返す。SETUP_ACKメ
ッセージを受信した各ノード装置は、ラベルスイッチン
グ可能となる。
【0214】SETUPメッセージがノード装置R5ま
で届くと、新たなフローテーブルエントリを作成し、ラ
ベルのマージを行なう。すなわち、新たな出力側ラベル
の割当てを行なわず、すでに存在する出力側ラベルx5
6を割当てる。このとき、出力側に通知すべき初段ノー
ド情報はR1(hop count=4)、からR13
(hop count=5)に変わるため、ノード装置
R5はノード装置R6に、初段ノード情報=R13,代
理初段ノード情報=[R13:1],hopcount
=6のUPDATE_ADDをR6に送信する。UPD
ATE_ADDメッセージを受信したノード装置R6
は、UPDATE_ACKメッセージをノード装置R5
に返す。
【0215】この結果、新たにパスR13→R12→R
9→R7→R8→R5→R6というラベルスイッチング
パスができる。
【0216】この状態において、さらに、ノード装置R
10が、flowid=R6に対するパス設定を開始す
ると、ノード装置R10は、メッセージR3にSETU
Pメッセージを送信する。このとき、送信初段ノード情
報ingress=R10、送信代理初段ノード情報p
roxy ingress=[R10:1]、hopc
ount=1となる。
【0217】ノード装置R3がノード装置R10からの
SETUPメッセージを受信すると、新たなフローテー
ブルエントリを作成し、ラベルのマージを行なう。この
とき、出力側に通知すべき初段ノード情報はR1のまま
変わらないため、ノード装置R3は後段ノードにUPD
ATE_ADDメッセージを送信せずにノード装置R1
0にSETUP_ACKメッセージを返す。
【0218】SETUP_ACKノード装置を受信した
ノード装置R10は、ラベルスイッチング可能となる。
【0219】これらのパス生成動作の結果、図19の太
線のようなマージされたラベルスイッチングパス
((((R1→R2),(R10))→R3→R4),
(R13→R12→R9→R7→R8))→R5→R6
が生成される。
【0220】次に、上記状態において、図21に示すよ
うにノード装置R2において経路変更が起こり、flo
wid=R6に対する次ホップがノード装置R3からノ
ード装置R7に変わったとする。
【0221】このとき、ノード装置R2は、旧経路上の
次ホップノードR3に、flowid=R6、ingr
ess=R1、proxy ingress=[R2:
1]のRELEASEメッセージを送信する。
【0222】ノード装置R3は、ノード装置R2からの
RELEASEメッセージを受信すると、受信入力リン
クを解放し、受信入力リンクに対応するフローテーブル
エントリを削除し、前段ノードR2にRELEASE_
ACKメッセージを返すとともに、受信フロー識別子f
lowid=R7、ingress=R1(RELEA
SEメッセージ受信前の初段ノード情報)、受信代理初
段ノード情報proxy ingress=[R2:
1]を持つ入力リンクであって受信入力リンク以外の入
力リンクを持つようなフローテーブルエントリが存在す
るかどうか調べる。もし、このようなエントリが存在す
れば、そのstate:=onとする。この例ではその
ようなエントリは存在しないので、当該処理に関しては
何もしない。
【0223】ノード装置R3は、次に、受信入力リンク
(I23:x23)に対応する出力リンク(I34:x
34)を持ちかつstate=onであるような他のフ
ローテーブルエントリが存在するかどうかを調べ、もし
存在すれば出力リンクを解放しない。この例では、fl
owid=R6に対して、R10との間に別の入力リン
クが存在するため、出力リンクは解放しない。さらに、
出力リンクを解放しない場合には、下流ノードに通知す
る初段ノード情報が更新されるかどうかを調べ、更新さ
れる場合には、後段ノードにUPDATE_DELメッ
セージを送信する。この例では、初段ノード情報が更新
されるため、次ホップノードR4に、初段ノード情報が
変わったことを示すために、flowid=R6、in
gress=R10,proxy ingress=
[R2:1],hop count=2のUPDATE
_DELメッセージを送信する。
【0224】ノード装置R2は、ノード装置R3からの
RELEASE_ACKメッセージを受信すると、新経
路上の次ホップノードR7に対し、flowid=R
6、ingress=R1、proxy ingres
s=[R2:1]、hop count=2のSETU
Pメッセージを送信する。
【0225】このSETUPメッセージを受信したノー
ド装置R7は、すでにflowid=R6に対する出力
側ラベルx78を持つが、受信初段ノード情報R1は他
の入力リンクに登録されていないため、ループでないと
判断する。さらに、受信hop count=2は、す
でにノード装置R13から受信したhop count
=3より小さいため、下流ノードR8にUPDATE_
ADDメッセージを送信することなく、ノード装置R2
にSETUP_ACKメッセージを返す。
【0226】ノード装置R2は、SETUP_ACKメ
ッセージを受信すると、新経路上でラベルスイッチング
可能になる。
【0227】一方、ノード装置R3からのUPDATE
_DELノード装置を受信したノード装置R4は、前段
ノードR3にただちにUPDATE_DEL_ACKメ
ッセージを返す。次に、受信フロー識別子flowid
=R7、受信代理初段ノード情報proxy ingr
ess=[R2:1]を持つ入力リンクであって受信入
力リンク以外の入力リンクを持つようなフローテーブル
エントリが存在するかどうか調べる。もし、このような
エントリが存在すれば、そのstate:=onとす
る。この例ではそのようなエントリは存在しないので、
当該処理に関しては何もしない。ノード装置R4は、次
に、下流ノードに通知する初段ノード情報が更新される
かどうかを調べ、更新される場合には、後段ノードにU
PDATE_DELを送信する。この例では、初段ノー
ド情報がR1からR10に変更され、ホップカウントが
3から2に変わるため、下流ノードR4に受信hop
countを1だけインクリメントしたhop cou
ntを指定したUPDATE_DELメッセージを送信
する。
【0228】ノード装置R5は、ノード装置R4からの
UPDATE_DELメッセージを受信すると、前段ノ
ードR4にただちにUPDATE_DEL_ACKメッ
セージを返すとともに、受信ingress=R10、
受信proxy ingress=[R2:1]を受信
入力リンクに対応させる。次に、受信フロー識別子fl
owid=R7、ingress=R1(UPDATE
_DELメッセージ受信前の初段ノード情報)、受信代
理初段ノード情報proxy ingress=[R
2:1]を持つ入力リンクであって受信入力リンク以外
の入力リンクを持つようなフローテーブルエントリが存
在するかどうか調べる。もし、このようなエントリが存
在すれば、そのstate:=onとする。この例では
そのようなエントリは存在しないので、当該処理に関し
ては何もしない。ノード装置R5は、次に、下流ノード
に通知する初段ノード情報が更新されるかどうかを調
べ、更新される場合には、後段ノードにUPDATE_
DELを送信する。この例では、初段ノード情報はR1
3のまま変わらないため、後段ノードにはUPDATE
_DELメッセージを送信しない。
【0229】以上により、ノード装置R2とノード装置
R3との間のリンクが切断され、ノード装置R2とノー
ド装置R7の間のリンクが追加されたマージされたパス
((R10→R3→R4),(((R1→R2),(R
13→R12→R9))→R7→R8))→R5→R6
ができる。
【0230】なお、図22(a)に図15の太線のよう
にパスが設定されているときのノード装置R5における
フローテーブルの例を、図14(b)にノード装置R4
からUPDATE_DELメッセージを受信した後のノ
ード装置R5におけるフローテーブルの例をそれぞれ示
す。
【0231】(第6の実施形態)次に、本発明の第6の
実施形態に係るパス制御プロトコルおよびこのパス制御
プロトコルに従ってラベルスイッチングを行うノード装
置について説明する。
【0232】これまでは、初段ノード主導でラベルスイ
ッチングパスを生成する場合について説明してきたが、
本実施形態では、終段ノード主導でラベルスイッチング
パスを設定する場合について説明する。
【0233】ここでは、ホップカウントを使用し、ラベ
ルのマージを行なうとする。なお、ラベルのマージを行
なわない場合は、フローテーブルに受信ホップカウント
情報も記憶し、UPDATE_ADDメッセージの代わ
りにSETUPメッセージを、UPDATE_DELメ
ッセージの代わりにRELEASEメッセージを送信す
る以外はホップカウントを使用しない場合と同じ動作に
なる。ホップカウントを用いる場合には、メッセージ中
に初段ノードからのホップカウントを示すホップカウン
トフィールドが追加される。
【0234】また、同じ出力リンクにマージされる入力
リンクの初段ノード情報のうち最大のホップカウントを
与えるものを、最大のホップカウントを与える初段ノー
ド情報が複数ある場合にはその中で最大の初段ノード情
報を、下流ノードに通知する初段ノードとして選択する
ものとする。
【0235】また、前段ノードにACK/NACKメッ
セージを返し、すべてのメッセージに対してoptim
isticモードで動作し、経路変更時には旧経路上に
RELEASEメッセージを送信し、それに対するAC
Kメッセージを受信してから新経路上にSETUPメッ
セージを送信するとする。
【0236】なお、本実施形態は、バリエーション1と
バリエーション2の(1)に関係するものである。
【0237】図23に、本実施形態に係るノード装置を
接続して構成されたネットワークの一例を示す。
【0238】図24は、図23の太線のようにパスが設
定されているときのノード装置R5におけるフローテー
ブルの例である。
【0239】さて、ここでは、第5の実施形態と同じパ
スが設定される場合を考える。
【0240】図23の構成において、まず、終段ノード
R6は、flowid=R6の上流隣接ノード(次ホッ
プ以外のノード)R5に、トリガメッセージを送信す
る。
【0241】ノード装置R6からのトリガメッセージを
受信したノード装置R5は、flowid=R6に対す
る次ホップノードがトリガメッセージの送信ノード(=
R6)であり、かつ、対応する出力側リンクが存在しな
ければ、ノード装置R6にflowid=R6に対する
パス設定のためのラベル割当て要求メッセージ(SET
UP)を送信する。このとき、送信初段ノード情報in
gress=R5、送信代理初段ノード情報proxy
ingress=[R5:1]、hopcount=
1となる。
【0242】ノード装置R6は、ノード装置R5からS
ETUPメッセージを受信すると、フローテーブルを作
成するとともに、ノード装置R5にSETUP_ACK
メッセージを返す。
【0243】ノード装置R5は、ノード装置R6からS
ETUP_ACKを受信すると、flowid=R6の
上流隣接ノードR4,R8にトリガメッセージを送信す
る。
【0244】トリガメッセージを受信したノード装置R
4は、flowid=R6に対する次ホップノードがト
リガメッセージの送信ノード(=R5)であり、かつ、
対応する出力側リンクが存在しなければ、ノード装置R
5にflowid=R6に対するパス設定のためのラベ
ル割当て要求メッセージ(SETUP)を送信する。こ
のとき、送信初段ノード情報ingress=R4、送
信代理初段ノード情報proxy ingress=
[R4:1]、hop count=1となる。
【0245】ノード装置R5は、ノード装置R4からS
ETUPメッセージを受信すると、新たにフローテーブ
ルを作成するとともに、ノード装置R4にSETUP_
ACKメッセージを返す。さらに、最大のホップカウン
トを持つ初段ノード情報が更新されるため、ノード装置
R6に、初段ノードingress=R4、proxy
ingress=[R4:1]、hop count
=2 のUPDATE_ADDメッセージを送信する。
【0246】このUPDATE_ADDメッセージを受
信したメッセージR6は、受信ingress=R4、
受信proxy ingress=[R4:1]、受信
hop count=2を受信入力リンクに対応づける
とともに、メッセージR5にUPDATE_ADD_A
CKメッセージを返す。ノード装置R4は、ノード装置
R5からSETUP_ACKメッセージを受信すると、
上流ノードR3にトリガメッセージを送信する。
【0247】ノード装置R5からトリガメッセージを受
信したノード装置R8は、flowid=R6に対する
次ホップノードがトリガメッセージの送信ノード(=R
5)であり、かつ、対応する出力側リンクが存在しなけ
れば、ノード装置R5にflowid=R6に対するパ
ス設定のためのラベル割当て要求メッセージ(SETU
P)を送信する。このとき、送信初段ノード情報ing
ress=R8、送信代理初段ノード情報proxy
ingress=[R8:1]、hop count=
1となる。
【0248】ノード装置R5は、ノード装置R8からS
ETUPメッセージを受信すると、ノード装置R8との
間に入力側リンクを作成するとともに、R8にSETU
P_ACKを返す。さらに、最大のホップカウントを持
つ初段ノード情報が更新されるため、ノード装置R6
に、初段ノードingress=R8、proxy i
ngress=[R8:1]、hop count=2
のUPDATE_ADDメッセージを送信する。
【0249】このUPDATE_ADDメッセージを受
信したメッセージR6は、受信ingress=R8、
受信proxy ingress=[R8:1]、受信
hop count=2を受信入力リンクに対応づける
とともに、メッセージR5にUPDATE_ADD_A
CKメッセージを返す。ノード装置R8は、メッセージ
R5からSETUP_ACKメッセージを受信すると、
上流ノードR7にトリガメッセージを送信する。
【0250】さて、ノード装置R4からトリガメッセー
ジを受信したノード装置R3は、flowid=R6に
対する次ホップノードがトリガメッセージの送信ノード
(=R4)であり、かつ、対応する出力側リンクが存在
しなければ、ノード装置R4にflowid=R6に対
するパス設定のためのラベル割当て要求メッセージ(S
ETUP)を送信する。このとき、SETUP中の初段
ノードingress=R3、proxy ingre
ss=[R3:1]、hop count=1となる。
【0251】メッセージR4は、メッセージR3からS
ETUPメッセージを受信すると、新たにフローテーブ
ルを作成するとともに、メッセージR3にSETUP_
ACKメッセージを返す。さらに、最大のホップカウン
トを持つ初段ノード情報が更新されるため、ノード装置
R5に、初段ノードingress=R3、proxy
ingress=[R3:1]、hop count
=2のUPDATE_ADDメッセージを送信する。
【0252】このUPDATE_ADDメッセージを受
信したノード装置R5は、受信ingress=R3、
受信proxy ingress=[R3:1]、受信
hop count=2を受信入力リンクに対応づける
とともに、ノード装置R4にUPDATE_ADD_A
CKメッセージを返す。さらに、次ホップノードR6
に、初段ノードingress=R3、proxy i
ngress=[R3:1]、hop count=3
のUPDATE_ADDメッセージを送信する。
【0253】このUPDATE_ADDメッセージを受
信したノード装置R6は、受信ingress=R3、
受信proxy ingress=[R3:1]、受信
hop count=3を受信入力リンクに対応づける
とともに、ノード装置R5にUPDATE_ADD_A
CKメッセージを返す。
【0254】さて、ノード装置R8からトリガメッセー
ジを受信したノード装置R7は、flowid=R6に
対する次ホップノードが存在し、かつ、対応する出力側
リンクが存在しなければ、ノード装置R8にflowi
d=R6に対するパス設定のためのラベル割当て要求メ
ッセージ(SETUP)を送信する。このとき、送信初
段ノード情報ingress=R7、送信代理初段ノー
ド情報proxy ingress=[R7:1]、h
op count=1となる。
【0255】ノード装置R8は、ノード装置R7からS
ETUPメッセージを受信すると、ノード装置R8との
間に入力側リンクを作成するとともに、ノード装置R7
にSETUP_ACKメッセージを返す。さらに、最大
のホップカウントを持つ初段ノード情報が更新されるた
め、ノード装置R5に、初段ノードingress=R
7、proxy ingress=[R7:1]、ho
p count=2のUPDATE_ADDメッセージ
を送信する。
【0256】このUPDATE_ADDメッセージを受
信したノード装置R5は、受信ingress=R3、
受信proxy ingress=[R3:1]、受信
hop count=2を受信入力リンクに対応づける
とともに、ノード装置R5にUPDATE_ADD_A
CKを返す。さらに、次ホップノードR6に、初段ノー
ドingress=R7、proxy ingress
=[R7:1]、hop count=3のUPDAT
E_ADDメッセージを送信する。
【0257】このUPDATE_ADDメッセージを受
信したメッセージR6は、受信ingress=R7、
受信proxy ingress=[R7:1]、受信
hop count=3を受信入力リンクに対応づける
とともに、メッセージR5にUPDATE_ADD_A
CKメッセージを返す。
【0258】上流ノードにSETUP_ACKを返した
各ノードは、ラベルスイッチング可能となる。
【0259】このような動作を下流から上流ノードに向
けて繰り返す結果、図23の太線のようなマージされた
パス((((R1→R2),(R10))→R3→R
4),(R13→R12→R9→R7→R8))→R5
→R6が生成される。
【0260】次に、図23の太線のようなマージされた
パスが生成された状態で、ノード装置R2において経路
変更が起こり、flowid=R6に対する次ホップが
ノード装置R3からノード装置R7に変わった場合に
は、第5の実施形態と同じメッセージのやりとりが行な
われ、ノード装置R2とノード装置R3との間のリンク
が切断され、ノード装置R2とノード装置R7の間のリ
ンクが追加されたマージされたパス((R10→R3→
R4),((R1→R2),(R13→R12→R
9))→R7→R8)→R5→R6ができる。
【0261】(第7の実施形態)次に、本発明の第7の
実施形態に係るパス制御プロトコルおよびこのパス制御
プロトコルに従ってラベルスイッチングを行うノード装
置について説明する。
【0262】本実施形態では、第1、第3の実施形態と
同様、初段ノード主導でパスを生成する場合でラベルの
マージを行なわない場合の例を示す。ここでは、基本的
には第3の実施形態と同じパス設定、解放を行う場合を
考える。
【0263】本実施形態では、RELEASEメッセー
ジを受信した結果、出力側リンクを削除するために下流
ノードにRELEASEメッセージを送信し終るか、A
CKメッセージを使用する場合にはそのACKメッセー
ジが返ったときに、もし、削除された出力リンクに対応
する入力側リンクLiが存在すれば、Liに対応するフ
ロー識別子、初段ノード情報を指定したSETUPメッ
セージを下流ノードに送信する場合の例について説明す
る。
【0264】ここでは、ラベルのマージを行なわなず、
ホップカウントを使用し、前段ノードにACK/NAC
Kメッセージを返し、SETUP,UPDATE_AD
Dメッセージに関してはconservativeモー
ド、RELEASE,UPDATE_DELメッセージ
に関してはoptimisticモードで、経路変更時
には新経路上にSETUPメッセージを送信し、それに
対するACKメッセージを受信してから旧経路上にRE
LEASEメッセージを送信するものとする。
【0265】なお、本実施形態は、バリエーション2の
(1)、(2)とバリエーション3の(3)とバリエー
ション10に関係するものである。
【0266】図25に、本実施形態に係るノード装置を
接続して構成されたネットワークの一例を示す。
【0267】なお、図26(a)に図25の太線のよう
にパスが設定されているときのノード装置R5における
フローテーブルの例を、図26(b)にSETUPメッ
セージを受信した直後のノード装置R5におけるフロー
テーブルの例を、図26(c)にRELEASEメッセ
ージを送信した後のノード装置R5におけるフローテー
ブルの例をそれぞれ示す。
【0268】ここでは、第3の実施形態と同様にして、
すでにパスR1→R2→R3→R4→R5→R2という
ラベルスイッチングパスが設定されているものとする。
【0269】さて、この状態において、第3の実施形態
と同じくノード装置R2において経路変更が起こり、f
lowid=R6に対する次ホップがノード装置R3か
らノード装置R7に変わった後の動作を表す。
【0270】まず、ノード装置R2は、新経路上の次ホ
ップノードR7に対し、flowid=R6、ingr
ess=R1、proxy ingress=[R2:
1]のSETUPメッセージを送信する。このSETU
Pメッセージは、ノード装置R5までフォワードされ
る。
【0271】ノード装置R5がこのSETUPメッセー
ジを受信すると、このとき、ノード装置R5は、新たに
フローテーブルエントリを作成し、前段ノードR7にラ
ベル割当て成功メッセージ(SETUP_ACK)を返
すが、受信flowid=R6、受信ingress=
R1が対応する入力リンク(I45:x45)がすでに
存在するため、ループであると判断し、フローテーブル
エントリのstate:=offに設定する。
【0272】SETUP_ACKメッセージは、新経路
上の上流ノードに返される。
【0273】ノード装置R2がこのSETUP_ACK
メッセージを受信すると、ノード装置R2は、旧経路上
の次ホップノードR3に対してflowid=R6、i
ngress=R1、proxy ingress=
[R2:1]のラベル解放メッセージ(RELEAS
E)を送信する。
【0274】RELEASEメッセージを受信したノー
ド装置R3は、受信flowid=R6に対し、受信入
力リンクのメッセージ受信前の初段ノード情報=R1
と、受信proxy ingress=[R2:1]と
を持つようなフローテーブルエントリが存在せず、か
つ、受信入力リンクに対応する出力リンクと同じ出力リ
ンクを持つフローテーブルエントリが他に存在しないた
め、下流ノードR4にRELEASEメッセージをフォ
ワードする。
【0275】このとき、ノード装置R3とノード装置R
4との間の物理リンクが切れていたとすると、ノード装
置R4は、メッセージR3からRELEASEメッセー
ジをはじめすべてのメッセージを受信できないため、一
定時間経つと、ノード装置R3がダウンしたと判断し、
ノード装置R4は、ノード装置R5に、能動的に、Fl
owid=R6、ingress=R1、proxy
ingress=[R4:1]のRELEASEメッセ
ージを送信する。
【0276】ノード装置R4からのRELEASEメッ
セージを受信したノード装置R5は、受信入力リンクを
解放するとともに、RELEASE_ACKメッセージ
を返す。さらに、Flowid=R6で、代理初段初段
ノード情報=[R4:1]であるような入力リンクが存
在しないため、出力側リンクを解放するために、下流ノ
ードR6にRELEASEメッセージを送信する。
【0277】この時点におけるパスを図27の太線で示
す。また、この時点でのノード装置R5におけるフロー
テーブルの例を図28(a)に示す。
【0278】さて、ノード装置R6は、ノード装置R5
からRELEASEメッセージを受信すると、ノード装
置R5にRELEASE_ACKメッセージを返す。
【0279】ノード装置R5がノード装置R6からRE
LEASE_ACKメッセージを受信すると、出力側リ
ンクを削除する。このとき、削除した出力リンクに対応
する入力リンクのstate:=offであるため、ノ
ード装置R5は、新たに出力側リンクを割当てるため
に、ノード装置R6に、Flowid=R6、ingr
ess=R1、proxy ingress=[R5:
1]のSETUPを送信する。
【0280】ノード装置R6がノード装置R5からSE
TUPメッセージを受信すると、新たな入力リンクを作
成し、新たなフローテーブルエントリにそれを登録して
ノード装置R5にSETUP_ACKメッセージを返
す。
【0281】ノード装置R5がノード装置R6からSE
TUP_ACKメッセージを受信すると、対応するフロ
ーテーブルエントリのstate:=onにする。
【0282】この時点でのノード装置R5におけるフロ
ーテーブルの例を図28(b)に示す。
【0283】この結果、パスR1→R2→R7→R5→
R6という経路変更されたラベルスイッチングパスがで
きる。
【0284】(第8の実施形態)次に、本発明の第8の
実施形態に係るパス制御プロトコルおよびこのパス制御
プロトコルに従ってラベルスイッチングを行うノード装
置について説明する。
【0285】本実施形態では、第7の実施形態と同様、
初段ノード主導でパスを生成する場合でラベルのマージ
を行なわない場合の例を示す。
【0286】本実施形態では、RELEASEメッセー
ジを受信した結果、出力側リンクを削除するために下流
ノードにRELEASEメッセージを送信し終るか、A
CKメッセージを使用する場合にはそのACKメッセー
ジが返ったときに、もし、削除された出力リンクに対応
する入力側リンクLiが存在すれば、Liに対応するフ
ロー識別子、初段ノード情報を指定したSETUPメッ
セージを下流ノードに送信する場合のもう一つの例につ
いて説明する。
【0287】ここでは、ラベルのマージを行なわなず、
ホップカウントを使用し、前段ノードにACK/NAC
Kメッセージを返し、SETUP,UPDATE_AD
Dメッセージに関してはconservativeモー
ド、RELEASE,UPDATE_DELメッセージ
に関してはoptimisticモードで、経路変更時
には新経路上にSETUPメッセージを送信し、それに
対するACKメッセージを受信してから旧経路上にRE
LEASEメッセージを送信するとする。
【0288】なお、本実施形態は、バリエーション2の
(1)、(2)とバリエーション3の(3)とバリエー
ション10に関係するものである。
【0289】図29に、本実施形態に係るノード装置を
接続して構成されたネットワークの一例を示す。
【0290】なお、図30(a)にノード装置R2から
RELEASEメッセージを受信する前のノード装置R
3におけるフローテーブルの例を、図30(b)にRE
LEASEメッセージをノード装置R4に送信した後の
ノード装置R3におけるフローテーブルの例をそれぞれ
示す。
【0291】ここでは、第3の実施形態と同様の処理手
順により、flowid=R6に対して、パスR1→R
2→R3→R4→R5→R3というループした経路上に
パスが設定されているものとする。
【0292】さて、この状態において、初段ノードR1
がRELEASEメッセージを能動的に送信したとす
る。このとき、ノード装置R1とノード装置R2との間
の物理リンクが切れていたとすると、ノード装置R2
は、メッセージR1からRELEASEメッセージをは
じめすべてのメッセージを受信できないため、一定時間
経つと、ノード装置R1がダウンしたと判断し、ノード
装置R2は、ノード装置R3に、能動的に、Flowi
d=R6、ingress=R1、proxy ing
ress=[R2:1]のRELEASEメッセージを
送信する。
【0293】ノード装置R2からのRELEASEメッ
セージを受信したノード装置R3は、受信入力リンクを
解放し、ノード装置R2にRELEASE_ACKメッ
セージを返す。さらに、Flowid=R6で、受信入
力リンクのメッセージ受信前の初段ノード情報=R1か
つ代理初段初段ノード情報=[R2:1]であるような
入力リンクが存在しないため、出力側リンクを解放する
ために下流ノードR4にRELEASEメッセージを送
信する。
【0294】ノード装置R4は、ノード装置R3からR
ELEASEメッセージを受信すると、ノード装置R3
にRELEASE_ACKメッセージを返すとともに、
次ホップノードR5にRELEASEメッセージを送信
する。
【0295】この様子を図31に示す。
【0296】ノード装置R3がノード装置R4からRE
LEASE_ACKメッセージを受信すると、出力側リ
ンクを削除する。このとき、削除した出力リンクに対応
する入力リンクのstate:=offであるため、ノ
ード装置R3は、新たに出力側リンクを割当てるため
に、ノード装置R4に、Flowid=R6、ingr
ess=R1、hop count=3、proxy
ingress=[R5:1]のSETUPメッセージ
を送信する。
【0297】この場合、RELEASEメッセージをS
ETUPメッセージが追いかける形となるため、これら
のメッセージは、ループする。SETUPメッセージの
ホップカウントがしきい値に達したところで、flow
id=R6に対するパスは完全に消滅する。
【0298】(第9の実施形態)次に、本発明の第9の
実施形態に係るパス制御プロトコルおよびこのパス制御
プロトコルに従ってラベルスイッチングを行うノード装
置について説明する。
【0299】本実施形態では、第3の実施形態と同様、
初段ノード主導でパスを生成する場合の例を示す。ただ
し、本実施形態は、ラベルのマージを行なう場合にもラ
ベルのマージを行なわない場合にも実施可能である。
【0300】第3の実施形態では、バリエーション3の
(3)に関する経路変更時の動作について述べたが、本
実施形態では、バリエーション3の(4)に関する経路
変更時の動作について述べる。
【0301】ここでは、ホップカウントを使用しない場
合で、前段ノードにACK/NACKメッセージを返
し、SETUP,UPDATE_ADDメッセージに関
してはconservativeモード、RELEAS
E,UPDATE_DELメッセージに関してはopt
imisticモードで、新経路上にSETUPメッセ
ージを送信し、それに対してループと判断されたことを
示す情報を付加されたACKを受信した場合には、旧経
路上に、SETUPメッセージに含まれるものと同一の
代理初段ノード情報を含み、初段ノード情報の更新は行
なわずにこの代理初段ノード情報に対応する受信入力リ
ンクと対応する出力リンクとの間のラベルスイッチング
を可能にするための特殊なUPDATE_DELメッセ
ージを送信するものとする。
【0302】まず、図11に示すように、Flowid
=R6に関するラベルスイッチングパスR1→R2→R
3→R4→R5→R6が生成されたとする。
【0303】この時点のノード装置R5におけるフロー
テーブルの例を図33(a)に示す。
【0304】次に、上記状態において、図32に示すよ
うにノード装置R2において経路変更が起こり、flo
wid=R6に対する次ホップがノード装置R3からノ
ード装置R7に変わったとする。
【0305】このとき、ノード装置R2は、まず、新経
路上の次ホップノードR7に対し、flowid=R
6、ingress=R1、proxy ingres
s=[R2:1]のSETUPメッセージを送信する。
このSETUPメッセージは、ノード装置R5までフォ
ワードされる。
【0306】ノード装置R5がこのSETUPメッセー
ジを受信すると、ノード装置R5は、新たにフローテー
ブルエントリを作成し、前段ノードR7にラベル割当て
成功メッセージ(SETUP_ACK)を返すが、受信
flowid=R6、受信ingress=R1が対応
する入力リンク(I45:x45)がすでに存在するた
め、ループであると判断する。
【0307】このとき、ノード装置R5は、新たなフロ
ーテーブルエントリを作成し、前段ノードR8にループ
であると判断したことを示す情報を付加したラベル割当
てメッセージ(SETUP_ACK[loop])を返
す。ただし、出力リンクの割当ては行なわず(出力リン
ク=NULLとする)、state=offに設定す
る。このとき、ラベルスイッチングは行なわれない。
【0308】この時点のノード装置R5におけるフロー
テーブルの例を図33(b)に示す。
【0309】ノード装置R5が発したSETUP_AC
K[loop]メッセージは、新経路上の上流ノードに
返される。
【0310】ノード装置R2が新経路上でSETUP_
ACK[loop]メッセージを受信すると、ノード装
置R2は、旧経路上のパスを解放せずに、旧経路上の次
ホップノードR3に対してflowid=R6,ing
ress=0,proxyingress=[R2:
1]のUPDATE_DELメッセージを送信する。こ
のとき、ingress=0は、特殊なUPDATE_
DELメッセージであることを示す(なお、特殊なUP
DATE_DELメッセージであることを示すことがで
きれば0でなくてもよいし、また特殊なUPDATE_
DELメッセージであることを示すために他の方法を用
いてもよい)。
【0311】ノード装置R2が発したingress=
0のUPDATE_DELメッセージは、ノード装置R
3,R4,R5と、旧経路上をフォワードされる。この
とき、UPDATE_DELメッセージを受信した各ノ
ードでは、初段ノード情報の更新を行なわない以外は、
通常のUPDATE_DELメッセージと同じ動作を行
なう。
【0312】特に、ノード装置R5がingress=
0のUPDATE_DELメッセージを受信すると、受
信flowid=R6に対し、ingress=R1
(UPDATE_DEL受信入力リンクのメッセージ受
信前の値)と、受信proxyingress=[R
2:1]とを持つようなフローテーブルエントリが存在
するため、このエントリの入力リンクと出力リンクとの
間のラベルスイッチングを可能にするとともに、この入
力リンクの前段ノードR7にSETUP_ACKメッセ
ージを返す。なお、ラベルスイッチングを可能にするエ
ントリが存在する場合には、ingress=0のUP
DATE_DELメッセージの下流へフォワードするの
をやめてもよい。
【0313】この時点のノード装置R5におけるフロー
テーブルの例を図33(c)に示す。
【0314】ノード装置R5からのSETUP_ACK
は、新経路上を伝えられて、ノード装置R2まで返され
る。
【0315】ノード装置R2が新経路上でSETUP_
ACKを受信すると、旧経路上のパスを解放するため
に、旧経路上の次ホップノードR3に対してflowi
d=R6,ingress=R1,proxy ing
ress=[R2:1]のRELEASEメッセージを
送信する。
【0316】このRELEASEメッセージは、ラベル
の解放を伴いながらノード装置R3,R4,R5とフォ
ワードされる。
【0317】ノード装置R5がこのRELEASEメッ
セージを受信すると、すでに受信flowid=R6に
対し、ingress=R1(RELEASE受信入力
リンクのメッセージ受信前の値)と、受信proxy
ingress=[R2:1]とを持つようなフローテ
ーブルエントリが存在するが、このエントリの入力リン
クと出力リンクとの間のラベルスイッチングは可能にな
っているため、この入力リンクの前段ノードR7はSE
TUP_ACKメッセージを返さない。また、受信入力
リンク(I45:x45)を解放し、受信入力リンクに
対応するフローテーブルエントリを削除する。また、次
ホップノードに通知すべき初段ノード情報もR1のまま
変わらないため、ノード装置R4にRELEASE_A
CKを返して処理を終了する。
【0318】この時点のノード装置R5におけるフロー
テーブルの例を図33(d)に示す。
【0319】以上のような手順の結果、R1→R7→R
5→R6というラベルスイッチングパスが構成される。
【0320】なお、本実施形態では、ノード装置R2
は、新経路上でSETUP_ACKを受信するまでの
間、旧経路上のパスを使用し続けることが可能である。
【0321】以下では、以上の各実施形態における、パ
ス制御メッセージのフォーマットの例、各メッセージ受
信時のノード装置の動作手順の例についてそれぞれ説明
する。
【0322】図34に、パス制御メッセージのフォーマ
ットを示す。
【0323】図34において、メッセージタイプは、パ
ス制御メッセージの種類毎に異なる値を持ち、パス制御
メッセージの種類(SETUPメッセージ、UPDAT
E_ADDメッセージ、RELEASEメッセージ、U
PDATE_DELメッセージ等))を区別するために
使用する。
【0324】メッセージlengthは、パス制御メッ
セージの長さを表す。
【0325】送信ノードアドレスは、パス制御メッセー
ジの送信ノードのアドレスである。
【0326】受信ノードアドレスは、パス制御メッセー
ジの受信ノードのアドレスである。
【0327】初段ノード情報は、少なくともパスの初段
ノードのアドレス(初段ノードアドレス)から構成され
る。初段ノード情報には、初段ノード情報に加え、同じ
初段ノードから同じフロー識別子に対して設定される複
数のパスを区別するために、前述の文献や特願平10−
5044にて示されているような初段ノードローカルI
Dを含めてもよい。
【0328】ホップカウントは、初段ノードからのホッ
プカウントを表す。
【0329】代理初段ノード情報は、パス制御メッセー
ジを能動的に送信したノードのルータIDである。
【0330】フロー識別子は、パスを流れるパケットの
集合を規定するための識別子であり、前述の文献や特願
平10−5044にて示されているフロー識別子が使用
可能である。
【0331】リンク識別子は、受信入力リンクを識別す
るための情報である。リンク識別子として、ラベルの値
そのもの、コネクション識別子またはリクエストIDが
使用可能である。
【0332】コードは、SETUP,RELEASE,
UPDATE_ADD,UPDATE_DELに対する
ACKまたはNACKに含まれる。ループと判断したこ
とを示す場合には、このフィールドに特定の値を指定す
る。
【0333】次に、初段ノードからのホップカウントを
用いる場合の、SETUPメッセージ受信時、RELE
ASEメッセージ受信時、UPDATE_ADDメッセ
ージ受信時、UPDATE_DELメッセージ受信時の
ノードの動作例についてそれぞれ説明する。
【0334】図35に、SETUPメッセージ受信時の
ノード装置の動作手順の一例を示す。
【0335】受信SETUPメッセージ中の、フロー識
別子をF、初段ノード情報をIng、代理初段ノード情
報をPing、受信ホップカウントをHとする(ステッ
プS1)。また、受信SETUPメッセージ中のリンク
識別子と受信インターフェースとから定まる受信入力リ
ンクをLiとする(ステップS1)。
【0336】まず、フローテーブルから、フロー識別子
F、初段ノード情報Ingにマッチするようなエントリ
を探す(ステップS2)。もし、マッチするエントリT
がある場合(ステップS3)、Tの入力リンク(T.i
nlink)が受信入力リンクLiに等しければ(ステ
ップS4)、前段ノードにSETUP_ACKメッセー
ジを送信する(ステップS5)。そうでなければ、ルー
プが構成されると判断し、State:=offとする
(ステップS7)。もし、マッチするエントリがない場
合には、State:=onとする(ステップS6)。
【0337】次に、get_outlink(F)によ
り、ラベルのマージを行なわない場合には、フローFに
対する出力リンクを新たに割当て、ラベルのマージを行
なう場合には、マージされる出力リンクを選び、これを
Loとする(ステップS8)。なお、終段ノードであれ
ば、Lo==NULLとなる。そして、new_tab
le_entryにより新たなフローテーブルエントリ
を作成し、これをTnewとする(ステップS8)。次
に、set_field(Tnew,Li,Lo,In
g,Ping,H,State)により、フローテーブ
ルエントリTnewに、入力リンクLI,出力リンクL
o,初段ノード情報Ing,代理初段ノード情報Pin
g,ホップカウントH,モードStateをセットする
(ステップS8)。このとき、Loにマージされている
入力リンク数(Lo.ref)が1だけインクリメント
される(ただし、Lo.refの初期値は0)。
【0338】ここで、State==onの場合には、
出力リンクが存在すれば入力リンクと出力リンクとの間
でラベルスイッチングが行なわれ、State==of
fの場合には、ラベルスイッチングが行なわれない。
【0339】次に、出力リンクLo==NULLであれ
ば(ステップS9)、前段ノードにSETUP_ACK
メッセージを送信して(ステップS10)、処理を終了
する。出力リンクLo==NULLでなく、Lo.re
f==1であれば(ステップS9,S11)、後段ノー
ドにSETUPメッセージを送信し(ステップS1
2)、optimisticモードならさらに前段ノー
ドにSETUP_ACKメッセージを返して(ステップ
S15,S16)、処理を終了する。
【0340】出力リンクLo==NULLでなく、L
o.ref==1でない場合には(ステップS9,S1
1)、出力リンクLoにマージされている入力リンクの
中で、後段ノードに通知すべき初段ノード情報に対応す
る入力リンクをdesignated_inlink
(Lo)により選び、これがLiと一致するなら(ステ
ップS13)、後段ノードに初段ノード情報が変わった
ことを通知するために、UPDATE_ADDメッセー
ジを送信し(ステップS14)、optimistic
モードならさらに前段ノードにSETUP_ACKメッ
セージを返して(ステップS15,S16)、処理を終
了する。後段ノードに通知すべき初段ノード情報に対応
する入力リンクがLiと一致しないなら(ステップS1
3,S16)、前段ノードにSETUP_ACKメッセ
ージを返す。
【0341】図36に、UPDATE_ADDメッセー
ジ受信時のノード装置の動作手順の一例を示す。
【0342】受信UPDATE_ADDメッセージ中
の、フロー識別子をF、初段ノード情報をIng、代理
初段ノード情報をPing、受信ホップカウントをHと
する(ステップS21)。また、受信UPDATE_A
DDメッセージ中のリンク識別子と受信インターフェー
スとから定まる受信入力リンクをLiとする(ステップ
S21)。
【0343】まず、フローテーブルから、入力リンクL
iにマッチするようなエントリを探す(ステップS2
2)。
【0344】もし、マッチするエントリTがない場合
(ステップS23)、エラーであるため前段ノードにU
PDATE_ADD_NACKメッセージを送信して
(ステップS24)、処理を終了する。
【0345】マッチするエントリTがある場合には(ス
テップS23)、以下の動作を行なう。
【0346】まず、search_table_by_
ingress(F,Ing)により、フロー識別子
F,初段ノード情報Ingにマッチするようなフローテ
ーブルエントリを探す(ステップS25)。マッチする
エントリT´がない場合(ステップS26)、ループで
ない条件を満たすため、T.state:=onとする
(ステップS26−1)。このとき、もし、後段ノード
に通知すべき初段ノード情報に対応する入力リンク(d
esignated_inlink(T.outlin
k))がLiと一致するなら(ステップS27)、後段
ノードに初段ノード情報が変わったことを通知するため
に、UPDATE_ADDを送信し(ステップS2
8)、さらにoptimisticモードなら前段ノー
ドにUPDATE_ADD_ACKメッセージを返して
(ステップS32,37)、処理を終了する。
【0347】もし、後段ノードに通知すべき初段ノード
情報に対応する入力リンク(designated_i
nlink(T.outlink))がLiと一致しな
いなら(ステップS27)、get_outlink
(F)により、ラベルのマージを行なわない場合には、
フローFに対する出力リンクを新たに割当て、ラベルの
マージを行なう場合には、マージされる出力リンクを選
び、これをLoとする(ステップS29)。もし、T.
outlinkが空でないかまたはLoが空であれば
(ステップS30)、終段ノードであるため、前段ノー
ドにUPDATE_ADD_ACKメッセージを返して
(ステップS37)、処理を終了する。T.outli
nkが空であり、かつ、Loが空でなければ(ステップ
S30)、後段ノードにSETUPメッセージを送信し
(ステップS31)、さらにoptimisticモー
ドなら前段ノードにUPDATE_ADD_ACKメッ
セージを返して(ステップS32,37)、処理を終了
する。
【0348】次に、search_table_by_
ingress(F,Ing)によりマッチするエント
リT´がある場合には(ステップS26)、T´の入力
リンクがLiに一致しないなら(ステップS33)、ル
ープであると判断し、State:=offとする(ス
テップS34)。一致するならば(ステップS33)、
State:=onにする(ステップS35)。次に、
set_field(T,Li,T.outlink,
Ing,Ping,H,State)により、テーブル
エントリTの初段ノード情報Ing、代理初段ノード情
報Ping、ホップカウントH、ステートStateの
情報を更新し(ステップS36)、前段ノードにUPD
ATE_ADD_ACKメッセージを返して(ステップ
S37)、処理を終了する。
【0349】図37に、RELEASEメッセージ受信
時のノード装置の動作手順の一例を示す。
【0350】受信RELEASEメッセージ中の、フロ
ー識別子をF、初段ノード情報をIng、代理初段ノー
ド情報をPing、受信ホップカウントをHとする(ス
テップS41)。また、受信RELEASEメッセージ
中のリンク識別子と受信インターフェースとから定まる
受信入力リンクをLiとする(ステップS41)。さら
に、RELEASEメッセージ受信前にLiに対応する
初段ノード情報をIng´とする(ステップS41)。
【0351】まず、search_table_by_
inlink(Li)により、受信入力リンクLiにマ
ッチするようなフローテーブルエントリを探す(ステッ
プS42)。
【0352】マッチするエントリがなければ(ステップ
S43)、前段ノードにRELEASE_ACKメッセ
ージを返して(ステップS44)、処理を終了する。
【0353】マッチするエントリTがあれば(ステップ
S43)、T.state:=onとし(ステップS4
3−1)、search_table_by_prox
y_ingress(F,Ing´,Ping)によ
り、flowid=Fに対応する入力リンクの中で、初
段ノード情報Ing´、代理初段ノード情報Ping
(=Pa:Ps)が与えられた場合に、フロー識別子が
F、初段ノード情報がIng´、代理初段ノードアドレ
ス=Paであり、かつ、シーケンス番号がある条件にマ
ッチするようなフローテーブルエントリを探す(ステッ
プS45)。
【0354】ここで、ある条件とは、(1)シーケンス
番号==Ps,(2)シーケンス番号>=Ps[バリエ
ーション9],(3)シーケンス番号=min(S:S
>=Ps)[バリエーション10]、のいずれかであ
る。特に、(2)の条件を使用する場合には、マッチす
るエントリT´が複数存在する場合があるが、その場合
には、マッチしたそれぞれのエントリに対して以下の動
作が実行される。ここで、(2)で複数のエントリにマ
ッチする場合の例としては、あるノードN1で同一宛先
Dに対する経路の(a)削除、(b)追加、(c)削
除、(d)追加という4つのイベントが短時間に発生
し、イベント(a)、(b)、(d)に対しては、経路
の追加または削除の対象となるDへの次ホップインター
フェースがすべて異なっており、かつ、N1の下流には
これらのイベントの間にDに対する経路変更がおきない
ようなノードN2が存在し、イベント(a)が元になっ
て送信されたRELEASEメッセージ、またはUPD
ATE_DELメッセージがN2に届く前に、イベント
(b),(d)が元になって送信されたSETUPメッ
セージ、またはUPDATE_ADDメッセージがN2
に届くような場合が挙げられる。
【0355】さて、search_table_by_
proxy_ingress(F,Ping)によりマ
ッチするエントリT´があれば(ステップS46)、T
´の入力リンクと出力リンクの間のラベルスイッチング
を可能にするために、T´.state:=onとする
(ステップS47)。さらに、T´の出力リンクが空で
あれば(ステップS48)、search_outli
nk(F)により、flowid=Fにマッチするフロ
ーテーブルエントリの出力リンクを探し、T´の出力リ
ンク(T´.outlink)にこれを代入する(ステ
ップS49)。ただし、ラベルのマージを行なわない場
合には、search_outlink(F)は受信入
力Liに対応する出力リンクを返す。次に、T´の出力
リンク(T´.outlink)とTの出力リンク
(T.outlink)が一致せず、かつ、後段ノード
に通知すべき初段ノード情報に対応する入力リンク(d
esignated_inlink(T´.outli
nk))が、T´の入力リンク(T´.inlink)
と一致するならば(ステップS50)、後段ノードに初
段ノード情報が変わることを通知するために、UPDA
TE_ADDを送信する(ステップS51)。このと
き、メッセージ中の代理初段ノード情報として、受信代
理初段ノード情報ではなく、UPDATE_ADDメッ
セージの送信ノードのルータIDとこのノードで新たに
割り当てたシーケンス番号の組が使用される。
【0356】次に、Tの出力リンクが存在しない場合
(終段ノードの場合)には(T.outlink==N
ULL)(ステップS52)、delte_table
_entry(T)により、フローテーブルエントリT
を削除し(ステップS53)、delte_inlin
k(Li)により、受信入力リンクLiを削除し(ステ
ップS58)、前段ノードにRELEASE_ACKメ
ッセージを返して(ステップS58)、処理を終了す
る。
【0357】Tの出力リンクが存在する場合には(T.
outlink!=NULL)(ステップS52)、後
段ノードに通知すべき初段ノード情報に対応する入力リ
ンクをdesignated_inlink(T.ou
tlink)により選び、これがLiと一致し(ステッ
プS54)、かつ、T.outlinkにマージされて
いる入力リンクの本数が1なら(T.outlink.
ref==1)(ステップS55)、出力リンクを削除
するために後段ノードにRELEASEメッセージを送
信し(ステップS57)、delete_inlink
(Li)により受信入力リンクを削除し(ステップS5
8)、前段ノードにRELEASE_ACKメッセージ
を返して(ステップS58)、処理を終了する。入力リ
ンクの本数が1でなければ(T.outlink.re
f!=1)(ステップS55)、後段ノードにUPDA
TE_DELメッセージを送信し(ステップS56)、
delete_inlink(Li)により受信入力リ
ンクを削除し(ステップS58)、前段ノードにREL
EASE_ACKメッセージを返して(ステップS5
8)、処理を終了する。designated_inl
ink(T.outlink)に選んだ入力リンクがL
iと一致しないなら(ステップS54)、delete
_inlink(Li)により受信入力リンクを削除し
(ステップS58)、前段ノードにRELEASE_A
CKメッセージを返して(ステップS58)、処理を終
了する。
【0358】図38に、UPDATE_DELメッセー
ジ受信時のノード装置の動作手順の一例を示す。
【0359】受信UPDATE_DELメッセージ中
の、フロー識別子をF、初段ノード情報をIng、代理
初段ノード情報をPing,受信ホップカウントをHと
する(ステップS61)。また、受信UPDATE_D
ELメッセージ中のリンク識別子と受信インターフェー
スとから定まる受信入力リンクをLiとする(ステップ
S61)。さらに、RELEASEメッセージ受信前に
Liに対応する初段ノード情報をIng´とする(ステ
ップS61)。
【0360】まず、search_table_by_
inlink(Li)により、受信入力リンクLiにに
マッチするようなフローテーブルエントリを探す(ステ
ップS62)。マッチするエントリがなければ(ステッ
プS63)、エラーであるため、前段ノードにUPDA
TE_DEL_NACKメッセージを返して(ステップ
S64)、処理を終了する。マッチするエントリTがあ
れば(ステップS63)、T.state:=onとし
(ステップS63−1)、setfield(T,L
i,T.outlink,Ing,Ping,H,o
n)により、初段ノード情報Ing,代理初段ノード情
報Ping,ホップカウントHの更新を行なう(ステッ
プS65)。
【0361】次に、search_table_by_
proxy_ingress(F,Ing´,Pin
g)により、flowid=Fに対応する入力リンクの
中で、初段ノード情報Ing´、代理初段ノード情報P
ing(=Pa:Ps)が与えられた場合に、フロー識
別子がF、初段ノード情報がIng´、代理初段ノード
アドレス=Paであり、かつ、シーケンス番号がある条
件にマッチするようなフローテーブルエントリを探す
(ステップS66)。
【0362】ここで、ある条件とは、(1)シーケンス
番号==Ps,(2)シーケンス番号>=Ps[バリエ
ーション9],(3)シーケンス番号=min(S:S
>=Ps)[バリエーション10]、のいずれかであ
る。特に、(2)の条件を使用する場合には、マッチす
るエントリT´が複数存在する場合があるが、その場合
には、マッチしたそれぞれのエントリに対して以下の動
作が実行される。ここで、(2)で複数のエントリにマ
ッチする場合の例としては、あるノードN1で同一宛先
Dに対する経路の(a)削除、(b)追加、(c)削
除、(d)追加という4つのイベントが短時間に発生
し、イベント(a)、(b)、(d)に対しては、経路
の追加または削除の対象となるDへの次ホップインター
フェースがすべて異なっており、かつ、N1の下流には
これらのイベントの間にDに対する経路変更がおきない
ようなノードN2が存在し、イベント(a)が元になっ
て送信されたRELEASEメッセージ、またはUPD
ATE_DELメッセージがN2に届く前に、イベント
(b),(d)が元になって送信されたSETUPメッ
セージ、またはUPDATE_ADDメッセージがN2
に届くような場合が挙げられる。
【0363】search_table_by_pro
xy_ingress(F,Ping)によりマッチす
るエントリT´があれば(ステップS67)、T´の入
力リンクと出力リンクの間のラベルスイッチングを可能
にするために、T´.state:=onとする(ステ
ップS68)。さらに、T´の出力リンクが空であれば
(ステップS69)、search_outlink
(F)により、flowid=Fにマッチするフローテ
ーブルエントリの出力リンクを探し、T´の出力リンク
(T´.outlink)にこれを代入する(ステップ
S70)。ただし、ラベルのマージを行なわない場合に
は、search_outlink(F)は受信入力L
iに対応する出力リンクを返す。次に、T´の出力リン
ク(T´.outlink)とTの出力リンク(T.o
utlink)が一致せず、かつ、後段ノードに通知す
べき初段ノード情報に対応する入力リンク(desig
nated_inlink(T´.outlink))
が、T´の入力リンク(T´.inlink)と一致す
るならば(ステップS71)、後段ノードに初段ノード
情報が変わることを通知するために、UPDATE_A
DDメッセージを送信する(ステップS72)。このと
き、メッセージ中の代理初段ノード情報としては、受信
代理初段ノード情報ではなく、T´の入力リンクに対応
している値を使用する。
【0364】次に、Tの出力リンクが存在しない場合
(終段ノードの場合)には(T.outlink==N
ULL)(ステップS73)、get_outlink
(F)により、ラベルのマージを行なわない場合には、
フローFに対する出力リンクを新たに割当て、ラベルの
マージを行なう場合には、マージされる出力リンクを選
び、これをLoとする。もし、Loが空であれば(ステ
ップS77)、終段ノードであるため、前段ノードにU
PDATE_DEL_ACKメッセージを返して(ステ
ップS79)、処理を終了する。Loが空でなければ
(ステップS77)、後段ノードにSETUPメッセー
ジを送信し(ステップS78)、前段ノードにUPDA
TE_DEL_ACKメッセージを返して(ステップS
79)、処理を終了する。
【0365】Tの出力リンクが存在する場合には(T.
outlink!=NULL)(ステップS73)、後
段ノードに通知すべき初段ノード情報に対応する入力リ
ンクをdesignated_inlink(T.ou
tlink)により選び、これがLiと一致するなら
(ステップS74)、後段ノードにUPDATE_DE
Lメッセージを送信し(ステップS75)、前段ノード
にUPDATE_DEL_ACKメッセージを送信して
(ステップS79)、処理を終了する。
【0366】designated_inlink
(T.outlink)に選んだ入力リンクがLiと一
致しないなら(ステップS74)、前段ノードにUPD
ATE_DEL_ACKメッセージを送信して(ステッ
プS79)、処理を終了する。
【0367】なお、シーケンス番号が有限(最大値Sm
ax)であれば、シーケンス番号が最大値に達すると、
初期値0に戻る。このような場合には、2つのシーケン
ス番号a,bの大小を比較する際、以下のようにシーケ
ンス番号の変換を行なう。 (1)a<b、かつ、a<Smax/2、かつ、b>=
Smax/2のとき、 a:=a+(Smax−b),b:=0 (2)それ以外のとき、a,bの値はそのまま なお、上記した各実施形態において、SETUP(UP
DATE_ADD)メッセージを受信したにも関わら
ず、ループ条件を満たしたためにラベルスイッチングさ
れない入力側リンクにおいて、定期的にリトライを行な
ってもよい(バリエーション7)。この場合には、リト
ライがかかると、前回受信したSETUP(UPDAT
E_ADD)メッセージを受信した場合と同じ動作を行
なう。
【0368】さて、以上、本発明の実施の形態を説明し
てきた。
【0369】これまでは、以前に受信したSETUPメ
ッセージやUPDATE_ADDメッセージと同一の
(F,I)を含むSETUPメッセージやUPDATE
_ADDメッセージを別の入力リンクに対して受信した
ときにループが形成されると判断する例を説明したが、
メッセージに含まれるさらに別の情報を加味して支障な
く動作できる場合には、このループ判断条件を緩和する
ことも可能である。ただし、緩和した条件を用いる方法
においても、ある追加メッセージを受信した際に、それ
が以前に受信した追加メッセージと同一の(F,I)を
含み別の入力リンクを示すものがどうかを、ループ判断
の材料(の一部)として使うことに変わりはない。
【0370】これまでは、代理初段ノード情報を使用す
る例を示したが、経路変更以外のイベントを契機として
能動的に送信されるSETUP,UPDATE_AD
D,RELEASE,UPDATE_DELメッセージ
に対しては、代理初段ノード情報を使用しなくてもよ
い。または、代理初段ノード情報に無効な値を割り当て
てもよい。この場合には、これらのSETUP,UPD
ATE_ADDメッセージ受信時に、ループであると判
断された場合でも、代理初段ノード情報がある場合と同
様に、入力側リンクを割り当てたままで出力リンクとの
間でラベルスイッチングを行なわない状態にしておく。
また、これらのRELEASE,UPDATE_DEL
メッセージを受信した場合には、出力側リンクとの間で
ラベルスイッチングを行なわない状態で存在する入力側
ラベルに対しては、その存在を無視して前述の文献や特
願平10−5044で示したループ検出アルゴリズムと
同じ処理を行なう。
【0371】また、代理初段ノード情報を使用するRE
LEASE,UPDATE_DELメッセージを受信し
た場合には、有効な代理初段ノード情報を持たず、か
つ、出力側リンクとの間のラベルスイッチングを行なわ
ない入力側ラベルを、ラベルスイッチングを行なうよう
に変更しない。有効な代理初段ノード情報を持つメッセ
ージに対応する入力側ラベルについてだけ、(F,P)
が所定の条件を満たすかの判断とそれに基づいたラベル
スイッチングのブロックの解除等を行う。
【0372】これまでの説明では、一旦、ラベルが割り
当てられたパスに対しては、ラベル割り当てメッセージ
は送信しないようなハードステート型のプロトコルを前
提にしていたが、本発明は、いったんラベルが割り当て
られたパスに対しても、定期的にラベル割り当てメッセ
ージを送信するようなソフトステート型のプロトコルに
関しても有効である。ソフトステート型の場合には、一
定期間ラベル割り当てメッセージを受信しない場合には
ラベルが解放される。
【0373】なお、以上の各機能は、ソフトウェアとし
ても実現可能である。
【0374】また、本実施形態は、コンピュータに所定
の手順を実行させるための(あるいはコンピュータを所
定の手段として機能させるための、あるいはコンピュー
タに所定の機能を実現させるための)プログラムを記録
したコンピュータ読取り可能な記録媒体として実施する
こともできる。
【0375】本発明は、上述した実施の形態に限定され
るものではなく、その技術的範囲において種々変形して
実施することができる。
【0376】
【発明の効果】本発明によれば、受信したメッセージの
フロー識別子と初段ノード情報に基づいてループの判断
を行うので、効率的かつ早期なラベルスイッチングパス
のループ検出を可能にすることができる。
【0377】本発明によれば、ループと判断されるとき
に、ラベルの割り当てをしないのではなく、ラベルの割
当ては行いかつその入力側ラベルをラベルスイッチング
のために出力側ラベルと対応付けることはしないように
したので、経路変更時にラベルスイッチングパスのルー
プを誤って検出した場合にループを検出したノード装置
の前段のノード装置からのラベル設定のリトライ動作を
行なうことなくラベルスイッチングパスの張り替えを行
なうことができる。また、経路変更時に、旧経路と新経
路で経路が同じノード上のラベルは解放することなく残
しておくことも可能となる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係るノード装置につ
いて説明するための図
【図2】図1のノード装置R2内のフローテーブルの内
容の一例を示す図
【図3】同実施形態に係るノード装置について説明する
ための図
【図4】図3のノード装置R2,R3内のフローテーブ
ルの内容の一例を示す図
【図5】同実施形態に係るノード装置について説明する
ための図
【図6】図5のノード装置R2,R3内のフローテーブ
ルの内容の一例を示す図
【図7】本発明の第2の実施形態に係るノード装置につ
いて説明するための図
【図8】図7のノード装置R2,R3内のフローテーブ
ルの内容の一例を示す図
【図9】同実施形態に係るノード装置について説明する
ための図
【図10】図9のノード装置R2,R3内のフローテー
ブルの内容の一例を示す図
【図11】本発明の第3の実施形態に係るノード装置に
ついて説明するための図
【図12】図11のノード装置R5内のフローテーブル
の内容の一例を示す図
【図13】同実施形態に係るノード装置について説明す
るための図
【図14】図13のノード装置R5内のフローテーブル
の内容の遷移の一例を示す図
【図15】本発明の第4の実施形態に係るノード装置に
ついて説明するための図
【図16】図15のノード装置R5内のフローテーブル
の内容の一例を示す図
【図17】同実施形態に係るノード装置について説明す
るための図
【図18】図17のノード装置R5内のフローテーブル
の内容の遷移の一例を示す図
【図19】本発明の第5の実施形態に係るノード装置に
ついて説明するための図
【図20】図19のノード装置R5内のフローテーブル
の内容の一例を示す図
【図21】同実施形態に係るノード装置について説明す
るための図
【図22】図21のノード装置R5内のフローテーブル
の内容の遷移の一例を示す図
【図23】本発明の第6の実施形態に係るノード装置に
ついて説明するための図
【図24】図23のノード装置R5内のフローテーブル
の内容の一例を示す図
【図25】本発明の第7の実施形態に係るノード装置に
ついて説明するための図
【図26】図25のノード装置R5内のフローテーブル
の内容の遷移の一例を示す図
【図27】同実施形態に係るノード装置について説明す
るための図
【図28】図27のノード装置R5内のフローテーブル
の内容の遷移の一例を示す図
【図29】本発明の第8の実施形態に係るノード装置に
ついて説明するための図
【図30】図29のノード装置R3内のフローテーブル
の内容の遷移の一例を示す図
【図31】同実施形態に係るノード装置について説明す
るための図
【図32】本発明の第9の実施形態に係るノード装置に
ついて説明するための図
【図33】図32のノード装置R5内のフローテーブル
の内容の遷移の一例を示す図
【図34】パス制御メッセージのフォーマットの一例を
示す図
【図35】SETUPメッセージ受信時のノード装置の
動作の一例を示すフローチャート
【図36】UPDATE_ADDメッセージ受信時のノ
ード装置の動作の一例を示すフローチャート
【図37】RELEASEメッセージメッセージ受信時
のノード装置の動作の一例を示すフローチャート
【図38】UPDATE_DELメッセージ受信時のノ
ード装置の動作の一例を示すフローチャート
【図39】従来のループ検出方法を説明するための図
【図40】従来のループ検出方法を説明するための図
【符号の説明】
R1〜R13…ノード装置
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5K030 GA12 HA10 HB00 HC01 HD05 KA05 LB05 5K033 AA02 AA06 CB08 CC01 DA05 DA14 DB12

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】パケットフローが入力されるパスを識別可
    能な入力側リンク情報と該パケットフローが出力される
    パスを識別可能な出力側リンク情報との対応関係を参照
    して、入力されたパケットをラベルスイッチングする手
    段を備えるノード装置であって、 パケットフローの経路上の隣接ノード装置との間で、ラ
    ベルスイッチングパスの設定を制御するためのメッセー
    ジであって、該パケットフローをネットワークグローバ
    ルに識別可能なフロー識別子、該ラベルスイッチングパ
    スの初段ノードに関する初段ノード情報、及び、このメ
    ッセージを能動的に送信したノードに関する代理初段ノ
    ード情報を含むものを交換する手段と、 以前に交換したメッセージと同一のフロー識別子及び初
    段ノード情報を含み前記入力側リンク情報を異ならせる
    ような別メッセージを受信したか否かに基づいて、ラベ
    ルスイッチングパスのループが形成されるか否かを判断
    し、ループが形成されると判断された場合には、この受
    信した別メッセージに基づいて求められる新たな入力側
    リンク情報に関し、ラベルスイッチングのための前記出
    力側リンク情報との対応付けをしない状態で記憶する手
    段と、 前記別メッセージと同一範囲のフロー識別子、初段ノー
    ド情報及び代理初段ノード情報を含む、ラベルスイッチ
    ングパスの解放を制御するためのメッセージを受信した
    場合に、前記新たな入力側リンク情報と前記出力側リン
    ク情報とを対応付けてラベルスイッチングを可能とする
    手段とを備えたことを特徴とするノード装置。
  2. 【請求項2】前記代理初段ノード情報は、メッセージを
    能動的に送信したノードの識別情報に加えて、複数のメ
    ッセージが同一のイベントを契機としたものか否かを判
    別するための情報を含むものであることを特徴とする請
    求項1に記載のノード装置。
  3. 【請求項3】前記可能とする手段は、前記代理初段ノー
    ド情報に含まれる情報が、前記別メッセージと前記解放
    を制御するためのメッセージとが同一のイベントを契機
    としたものであることを示す場合に、前記同一範囲であ
    ると判断することを特徴とする請求項2に記載のノード
    装置。
  4. 【請求項4】前記可能とする手段は、前記代理初段ノー
    ド情報に含まれる情報が、前記別メッセージが前記解放
    を制御するためのメッセージより後のイベントもしくは
    同一のイベントを契機としたものであることを示す場合
    に、前記同一範囲であると判断することを特徴とする請
    求項2に記載のノード装置。
  5. 【請求項5】前記可能とする手段は、ラベルスイッチン
    グのための対応付けが行われていない前記新たな入力側
    リンク情報が複数ある場合に、前記解放を制御するため
    のメッセージが契機としたイベントの直近のイベントを
    契機とした前記別メッセージに対応する前記新たな入力
    側リンク情報について、前記ラベルスイッチングを可能
    とするものであることを特徴とする請求項4に記載のノ
    ード装置。
  6. 【請求項6】前記可能とする手段は、前記別メッセージ
    に対応する初段ノード情報と前記解放を制御するための
    メッセージにより変更される前の初段ノード情報とが一
    致すれば、前記同一範囲であると判断することを特徴と
    する請求項1に記載のノード装置。
  7. 【請求項7】前記ラベルスイッチングする手段は、複数
    の入力側リンク情報と一つの出力側リンク情報とを対応
    付けて、ラベルスイッチングパスのマージをすることの
    できるものであり、 前記ラベルスイッチングパスの設定を制御するためのメ
    ッセージに相当するものとして、ラベルスイッチングパ
    スを新たに設定するためのメッセージに加えて、新たな
    ラベルスイッチングパスのために既存のラベルスイッチ
    ングパスを利用するためのメッセージを有することを特
    徴とする請求項1に記載のノード装置。
  8. 【請求項8】前記ラベルスイッチングパスの解放を制御
    するためのメッセージに相当するものとして、リンク情
    報を削除するためのメッセージを有し、 このリンク情報削除メッセージを受信した場合に、受信
    メッセージに対応する入力側リンク情報を削除し、該リ
    ンク情報削除メッセージが前記別メッセージと同一範囲
    のフロー識別子、初段ノード情報及び代理初段ノード情
    報を含むならば、前記新たな入力側リンク情報と前記出
    力側リンク情報とを対応付けてラベルスイッチングを可
    能とし、削除された入力側リンク情報に対応付けられて
    いた出力側リンク情報に対応付けられラベルスイッチン
    グが可能となっている入力側リンク情報が存在しなけれ
    ば、該出力側リンク情報を削除すべくリンク情報削除メ
    ッセージを送信する手段を更に備えることを特徴とする
    請求項1に記載のノード装置。
  9. 【請求項9】前記ラベルスイッチングする手段は、複数
    の入力側リンク情報と一つの出力側リンク情報とを対応
    付けて、ラベルスイッチングパスのマージをすることの
    できるものであり、 前記ラベルスイッチングパスの解放を制御するためのメ
    ッセージに相当するものとして、解放されるラベルスイ
    ッチングパスが既存のラベルスイッチングパスを利用し
    なくなることを通知するためのメッセージを有し、 この通知メッセージに基づいて、前記初段ノード情報を
    更新する手段を更に備えることを特徴とする請求項1に
    記載のノード装置。
  10. 【請求項10】前記ラベルスイッチングする手段は、複
    数の入力側リンク情報と一つの出力側リンク情報とを対
    応付けて、ラベルスイッチングパスのマージをすること
    のできるものであり、 新たなラベルスイッチングパスのために既存のラベルス
    イッチングパスを利用するためのメッセージとしても、
    解放されるラベルスイッチングパスが既存のラベルスイ
    ッチングパスを利用しなくなることを通知するためのメ
    ッセージとしても、同一種類のメッセージを用い、 前記可能とする手段は、前記別メッセージと同一範囲の
    フロー識別子、初段ノード情報及び代理初段ノード情報
    を含む前記同一種類のメッセージを、ラベルスイッチン
    グのための出力側リンク情報との対応付けをしない状態
    で記憶された入力側リンク情報とは異なる入力側リンク
    情報について受信した場合に、ラベルスイッチングパス
    の解放を制御するためのメッセージを受信したと判断し
    て、前記ラベルスイッチングを可能とするものであるこ
    とを特徴とする請求項1に記載のノード装置。
  11. 【請求項11】ある入力側リンク情報が示すパケットフ
    ローに対応する出力側リンク情報が存在しない場合に、
    定期的に、該出力側リンク情報を割り当てるべくラベル
    スイッチングパスの設定を制御するためのメッセージを
    送信する手段を更に備えることを特徴とする請求項1に
    記載のノード装置。
  12. 【請求項12】ある入力側リンク情報が示すパケットフ
    ローに対応する出力側リンク情報が削除された場合に、
    該パケットフローに対応する出力側リンク情報を再度割
    り当てるべくラベルスイッチングパスの設定を制御する
    ためのメッセージを送信する手段を更に備えることを特
    徴とする請求項1に記載のノード装置。
  13. 【請求項13】前記ラベルスイッチングパスの設定を制
    御するためのメッセージは、更に、該ラベルスイッチン
    グパスの始点から自ノードまでのホップ数を示す情報を
    含み、該ラベルスイッチングパスの終端までのホップ数
    が所定のホップ数を超えないように、入力側もしくは出
    力側リンク情報の割り当てを止める手段を更に備えるこ
    とを特徴とする請求項1に記載のノード装置。
  14. 【請求項14】前記ループが形成されると判断したため
    に前記ラベルスイッチングのための対応付けをしない状
    態で記憶したか、ループが形成されないと判断したかを
    区別できる情報を含む返答メッセージを送信する手段を
    更に備えることを特徴とする請求項1に記載のノード装
    置。
  15. 【請求項15】パケットフローの新しい経路上の次段ノ
    ード装置へ、ラベルスイッチングパスの設定を制御する
    ためのメッセージであって、該パケットフローをネット
    ワークグローバルに識別可能なフロー識別子、該ラベル
    スイッチングパスの初段ノードに関する初段ノード情
    報、及び、このメッセージを能動的に送信したノードに
    関する代理初段ノード情報を含むものを送信する手段
    と、 パケットフローの古い経路上の次段ノード装置へ、ラベ
    ルスイッチングパスの解放を予告するためのメッセージ
    であって、該パケットフローをネットワークグローバル
    に識別可能なフロー識別子、及び、このメッセージを能
    動的に送信したノードに関する代理初段ノード情報を含
    むものを送信するとともに、該パケットフローのパケッ
    トの送信を継続する手段と、 後段ノード装置から、設定したいラベルスイッチングパ
    スについてループが形成されないと判断したことを示す
    返答メッセージを受信した場合に、前記古い経路上の次
    段ノード装置へ、ラベルスイッチングパスを解放するた
    めのメッセージを送信し、前記パケットフローのパケッ
    トを前記新しい経路上の次段ノード装置へ送信するよう
    に切り替える手段とを備えたことを特徴とするノード装
    置。
  16. 【請求項16】パケットフローが入力されるパスを識別
    可能な入力側リンク情報と該パケットフローが出力され
    るパスを識別可能な出力側リンク情報との対応関係を参
    照して、入力されたパケットをラベルスイッチングする
    場合に、ラベルスイッチングパスのループを検出するル
    ープ検出方法であって、 パケットフローの経路上の隣接ノード装置との間で、ラ
    ベルスイッチングパスの設定を制御するためのメッセー
    ジであって、該パケットフローをネットワークグローバ
    ルに識別可能なフロー識別子、該ラベルスイッチングパ
    スの初段ノードに関する初段ノード情報、及び、このメ
    ッセージを能動的に送信したノードに関する代理初段ノ
    ード情報を含むものを交換し、 以前に交換したメッセージと同一のフロー識別子及び初
    段ノード情報を含み前記入力側リンク情報を異ならせる
    ような別メッセージを受信したか否かに基づいて、ラベ
    ルスイッチングパスのループが形成されるか否かを判断
    し、ループが形成されると判断された場合には、この受
    信した別メッセージに基づいて求められる新たな入力側
    リンク情報に関し、ラベルスイッチングのための前記出
    力側リンク情報との対応付けをしない状態で記憶し、 前記別メッセージと同一範囲のフロー識別子、初段ノー
    ド情報及び代理初段ノード情報を含む、ラベルスイッチ
    ングパスの解放を制御するためのメッセージを受信した
    場合に、前記新たな入力側リンク情報と前記出力側リン
    ク情報とを対応付けてラベルスイッチングを可能とする
    ことを特徴とするループ検出方法。
  17. 【請求項17】経路を変更する場合に、前記代理初段ノ
    ード情報を含む、設定を制御するためのメッセージ及び
    解放を制御するためのメッセージを送信し、それ以外の
    場合には、ラベルスイッチングパスの設定を制御するた
    めのメッセージとして、該パケットフローをネットワー
    クグローバルに識別可能なフロー識別子と、該ラベルス
    イッチングパスの初段ノードに関する初段ノード情報と
    を含むものを、パケットフローの経路上の隣接ノード装
    置との間で、交換し、前記ラベルスイッチングを可能と
    する前記新たな入力側リンク情報は、前記代理初段ノー
    ド情報を含む、設定を制御するためのメッセージに基づ
    いて、記憶されたものとすることを特徴とする請求項1
    6に記載のループ検出方法。
  18. 【請求項18】パケットフローの新しい経路上の次段ノ
    ード装置へ、ラベルスイッチングパスの設定を制御する
    ためのメッセージであって、該パケットフローをネット
    ワークグローバルに識別可能なフロー識別子、該ラベル
    スイッチングパスの初段ノードに関する初段ノード情
    報、及び、このメッセージを能動的に送信したノードに
    関する代理初段ノード情報を含むものを送信し、 パケットフローの古い経路上の次段ノード装置へ、ラベ
    ルスイッチングパスの解放を予告するためのメッセージ
    であって、該パケットフローをネットワークグローバル
    に識別可能なフロー識別子、及び、このメッセージを能
    動的に送信したノードに関する代理初段ノード情報を含
    むものを送信するとともに、該パケットフローのパケッ
    トの送信を継続し、 後段ノード装置から、設定したいラベルスイッチングパ
    スについてループが形成されないと判断したことを示す
    返答メッセージを受信した場合に、前記古い経路上の次
    段ノード装置へ、ラベルスイッチングパスを解放するた
    めのメッセージを送信し、前記パケットフローのパケッ
    トを前記新しい経路上の次段ノード装置へ送信するよう
    に切り替えることを特徴とするパケット送信方法。
JP17244498A 1998-05-29 1998-06-19 ノード装置並びにループ検出方法及びパケット送信方法 Expired - Fee Related JP3517114B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17244498A JP3517114B2 (ja) 1998-05-29 1998-06-19 ノード装置並びにループ検出方法及びパケット送信方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP15030498 1998-05-29
JP10-150304 1998-05-29
JP17244498A JP3517114B2 (ja) 1998-05-29 1998-06-19 ノード装置並びにループ検出方法及びパケット送信方法

Publications (2)

Publication Number Publication Date
JP2000049854A true JP2000049854A (ja) 2000-02-18
JP3517114B2 JP3517114B2 (ja) 2004-04-05

Family

ID=26479946

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17244498A Expired - Fee Related JP3517114B2 (ja) 1998-05-29 1998-06-19 ノード装置並びにループ検出方法及びパケット送信方法

Country Status (1)

Country Link
JP (1) JP3517114B2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007174182A (ja) * 2005-12-21 2007-07-05 Fujitsu Ltd ネットワーク障害箇所検出装置及びネットワーク障害箇所検出方法
CN1331363C (zh) * 2002-11-27 2007-08-08 华为技术有限公司 一种基于网络入口节点的重路由方法
JP2008098934A (ja) * 2006-10-11 2008-04-24 Nippon Telegr & Teleph Corp <Ntt> 通信装置および通信システム
JP2010506442A (ja) * 2006-09-30 2010-02-25 華為技術有限公司 Mplsにおけるループ取り消し法およびルータ
JP2014099771A (ja) * 2012-11-14 2014-05-29 Fujitsu Ltd 通信方法、通信プログラム、および、ノード装置
JP5673663B2 (ja) * 2010-02-19 2015-02-18 日本電気株式会社 ループ検出装置、システム、方法およびプログラム
CN110234168A (zh) * 2014-02-27 2019-09-13 Lg 电子株式会社 在无线通信系统中发送侧链路数据信号的方法和装置
CN115440051A (zh) * 2022-11-08 2022-12-06 浙江微能科技有限公司 一种面向大型社区的交通智能管理方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1331363C (zh) * 2002-11-27 2007-08-08 华为技术有限公司 一种基于网络入口节点的重路由方法
JP2007174182A (ja) * 2005-12-21 2007-07-05 Fujitsu Ltd ネットワーク障害箇所検出装置及びネットワーク障害箇所検出方法
JP4619940B2 (ja) * 2005-12-21 2011-01-26 富士通株式会社 ネットワーク障害箇所検出装置及びネットワーク障害箇所検出方法
JP2010506442A (ja) * 2006-09-30 2010-02-25 華為技術有限公司 Mplsにおけるループ取り消し法およびルータ
JP4898922B2 (ja) * 2006-09-30 2012-03-21 華為技術有限公司 Mplsにおけるループ取り消し法およびルータ
US8238229B2 (en) 2006-09-30 2012-08-07 Huawei Technologies Co., Ltd. Method and device for loop withdrawal in a MPLS network
JP2008098934A (ja) * 2006-10-11 2008-04-24 Nippon Telegr & Teleph Corp <Ntt> 通信装置および通信システム
JP5673663B2 (ja) * 2010-02-19 2015-02-18 日本電気株式会社 ループ検出装置、システム、方法およびプログラム
JP2014099771A (ja) * 2012-11-14 2014-05-29 Fujitsu Ltd 通信方法、通信プログラム、および、ノード装置
CN110234168A (zh) * 2014-02-27 2019-09-13 Lg 电子株式会社 在无线通信系统中发送侧链路数据信号的方法和装置
CN115440051A (zh) * 2022-11-08 2022-12-06 浙江微能科技有限公司 一种面向大型社区的交通智能管理方法

Also Published As

Publication number Publication date
JP3517114B2 (ja) 2004-04-05

Similar Documents

Publication Publication Date Title
JP3615057B2 (ja) ラベルスイッチングパス設定方法及びノード装置
JP3688877B2 (ja) ノード装置及びラベルスイッチングパスのループ検出方法
US6683874B1 (en) Router device and label switched path control method using upstream initiated aggregation
US6058113A (en) Method for enhancing resource reservation communication
US7406031B1 (en) Multihop nested tunnel restoration
US7155632B2 (en) Method and system for implementing IS-IS protocol redundancy
CN102598599B (zh) 快速重新路由条件下的rsvp-te完美重启
EP1676451B1 (en) TRANSPARENT RE-ROUTING OF MPLS TRAFFIC ENGINEERING LSPs WITHIN A LINK BUNDLE
US20060013127A1 (en) MPLS network system and node
JPH0936873A (ja) リンクステートルーティング装置
JPWO2002087175A1 (ja) リストレーション・プロテクション方法及び装置
US20060250951A1 (en) Path switching system for network
KR20150051107A (ko) 신속한 경로 설정 및 장애 복구 방법
WO2008141567A1 (en) Multi-protocol label switching network flow switch method and equipment
WO2007082432A1 (fr) Procédé de réacheminement
US7133402B2 (en) Link identifier assignment system in connection-oriented communication network
CN102957573A (zh) 一种路径检测的实现方法及节点
JP3517114B2 (ja) ノード装置並びにループ検出方法及びパケット送信方法
US7869350B1 (en) Method and apparatus for determining a data communication network repair strategy
US20040170130A1 (en) Spontaneous topology discovery in a multi-node computer system
CN110881006A (zh) 发送报文的方法、网络设备及计算机存储介质
US20200145326A1 (en) Path data deletion method, message forwarding method, and apparatus
KR100296076B1 (ko) 서비스 품질(QoS)을 지원하는 경로 탐색 방법
KR100343416B1 (ko) 서비스 품질(QoS)을 지원하는 경로 탐색 방법
JP2004349881A (ja) フラッディング量削減方法および通信装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040114

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040122

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080130

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090130

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100130

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110130

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees