JP3615057B2 - ラベルスイッチングパス設定方法及びノード装置 - Google Patents
ラベルスイッチングパス設定方法及びノード装置 Download PDFInfo
- Publication number
- JP3615057B2 JP3615057B2 JP20366798A JP20366798A JP3615057B2 JP 3615057 B2 JP3615057 B2 JP 3615057B2 JP 20366798 A JP20366798 A JP 20366798A JP 20366798 A JP20366798 A JP 20366798A JP 3615057 B2 JP3615057 B2 JP 3615057B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- message
- thread
- label switching
- path
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/26—Route discovery packet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/18—Loop-free operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
- H04L45/507—Label distribution
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Description
【発明の属する技術分野】
本発明は、ラベルスイッチング機能を有するノード装置およびラベルスイッチングパス設定方法に関する。
【0002】
【従来の技術】
NBMA(Non−Broadcast Multiple Access)ネットワーク上でIP(Internet Protocol)ノードが相互接続されるようなネットワークレイヤプロトコルにおいて、パケット転送を高速化するための手法として、MPLS(Multi−Protocol Label
Switching)方式がある。
【0003】
MPLSは、ノード間で特定のパケットフローに特定の「ラベル」を割り当て、各ノードで入力側のラベルと出力側のラベルとを関連付けてラベルスイッチングを行なうことにより、IP処理を省略し、高速なパケット転送が可能となる。例えば、リンクレイヤがATMの場合、VPI(Virtual Path Identifier)/VCI(Virtual Channel Identifier)がラベルとして使用される。パケットフローがラベルスイッチングされる経路をラベルスイッチングパスと言う。なお、以下では、ラベルスイッチングパスを単にパスと呼ぶ。
【0004】
パスを構成する場合には、ラベル割当てプロトコルが使用される。ラベル割当てプロトコルは、パケットフローの経路上のノード間で、ネットワークグローバルにパケットフローを識別するためのフロー識別子と、リンクローカルにパケットフローを識別するためのラベルとの対応付けを通知するために、制御メッセージ(パス制御メッセージ)をやりとりする。
【0005】
一般に、パス制御メッセージは、レイヤ3の経路情報に従って転送されるが、レイヤ3の経路がループしている場合、パス制御メッセージがループしたり、あるいは、ループするパスが構成されるおそれがある。
【0006】
この問題に対し、文献「Internet−Draft,draft−ohba−mpls−loop−prevention−00.txt」にて示されているループ検出方法では、パス制御メッセージに初段ノード情報を含め、各ノードは、パスの入力側のそれぞれの枝に対し、初段ノードのアドレス(初段ノード情報)および初段ノードからのホップ数を記憶し、それらの中で、初段ノードからのホップ数が最も大きい初段ノード情報と、最大のホップ数+1を下流に通知する。さらに、現在のパスに新たに入力側の枝を追加する場合、またはすでに存在する入力側の枝に対する初段ノード情報または初段ノードからのホップ数を別の値に更新する場合に、同じフローに対し、同じ初段ノード情報が別の入力側の枝にすでに登録している場合には、ループが構成されると判断し、入力側枝の追加/更新を行なわないようにする。
【0007】
この方法は、パスベクトル方式(パス制御メッセージをフォワードする各ノードが自分のアドレスをラベル割当てメッセージに追加して行き、受信したラベル割当てメッセージに自分のアドレスがすでに書き込んであればループであると判断)に比べ、メッセージ長がホップ数に依存せず固定となるという利点を持つ。
【0008】
【発明が解決しようとする課題】
しかしながら、文献、「Internet−Draft,draft−ohba−mpls−loop−prevention−00.txt」にて示されているループ検出方法には、経路変更時に以下のような問題がある。
【0009】
例えば、図19において、レイヤ3の経路上に、ノード装置R11→R12→R13→R14→R15→R16というパスが構成されている場合を考える。
【0010】
この場合、パス上の各ノード装置は、フロー識別子(flowid)、およびパスを識別するための入力リンク情報(入力物理リンク情報(input interface)+入力ラベル(input label))と一緒に、初段ノード情報(ingress)として“R11”を記憶している。入力リンク情報(input link)は、出力リンク情報(output link)と対応付けられてラベルスイッチングに用いられる情報で、リンク識別子から求められるラベルと、メッセージを交換した物理リンクの情報とから求められる。物理リンク情報は、Iij(i:リンクの上流ノードの番号、j:リンクの下流ノードの番号)で表され、リンクは、“物理リンク情報:ラベル”で表される。
【0011】
図19のパスが構成されている場合のノード装置R15内のフローテーブルの状態を図20に示す。
【0012】
ここで、R12で経路変更が起こり、Flowid=R16への次ホップがR13からR17に変わった場合、R12から旧経路上には(flowid=R16,ingress=R11)を指定したラベル割当て解放メッセージ(RELEASEメッセージ)が送出され、R12から新経路上には(flowid=R16,ingress=R11)を指定したラベル割当て要求メッセージ(SETUPメッセージ)が送出される。
【0013】
もし、SETUPメッセージがRELEASEメッセージよりも先にR15に到着すると、R15では、入力リンク(I1715:x1715)のSETUPメッセージを受信した時に、flowid=R16,ingress=R11であるような別のエントリがすでに入力リンク(I1516:x1516)に対応しているため、実際にはループでないにもかかわらずループであると判断される。この結果、R15からR17にラベル割当て失敗(SETUP_NACK)メッセージが返されていた。このとき、SETUP_NACKメッセージを受信したR17は、一定時間後にSETUPメッセージの再送信(リトライ)を行なうが、リトライの間隔が短いと旧経路からRELEASEメッセージが到着する前に何度もリトライを繰り返し、一方、リトライの間隔が長いと、新経路上にパスが切り替わるまでに時間がかかってしまう。しかしながら、最適なリトライ間隔の値を決めるのは一般に困難であるため、できるだけリトライのないループ回避メカニズムが要求される。
【0014】
本発明は、上記事情を考慮してなされたもので、効率的かつ早期にラベルスイッチングパスのループを検出可能であるとともに、従来ならば経路変更時にラベルスイッチングパスのループを誤って検出する場合でも従来ならば必要となるループを検出したノード装置の前段のノード装置からのラベル設定のリトライ動作を行なうことなしにラベルスイッチングパスの張り替えを行なうことを可能とするノード装置及びラベルスイッチングパス設定方法を提供することを目的とする。
【0015】
【課題を解決するための手段】
本発明は、あるパケットフロー用のラベルスイッチングパスの設定に関わるメッセージ(例えば、SETUP、UPDATE等)であって、該パケットフローを識別可能なフロー識別子、及び、該パケットフローに関して処理中であることを示す情報(例えば、スレッド等)を含むものを受信したノードが、メッセージ処理中として該ノード内に記憶されている情報を対象として、該ラベルスイッチングパスがループを形成するか否かを判断し、前記メッセージを受信したノードが、前記ラベルスイッチングパスがループを形成しないとは判断できない場合には、前記フロー識別子を、メッセージ処理中として(例えば、確定フラグをオフにして)該ノード内に記憶すると共に、前記メッセージを前記パケットフローの経路上のノードへ転送し、前記メッセージを受信したノードが、前記ラベルスイッチングパスがループを形成しないことを確認できた場合には、前記メッセージに対する返答メッセージを返送し、この返答メッセージを最新の返答として受信したノードは、該返答メッセージを、前記メッセージを送信/転送しメッセージ処理中となっているノードへ転送し、前記返答メッセージを最新の返答として受信したノードは、該返答メッセージに対応する、メッセージ処理中として該ノード内に記憶されている情報が、以降は前記判断の対象とならないように、メッセージ処理中としての記憶を削除し(例えば、確定フラグをオンにし)、前記ラベルスイッチングパスを利用可能とすることを特徴とする。
【0016】
本発明によれば、ラベルスイッチングパスの設定に関わるメッセージが、経由する各ノードにメッセージ処理中である旨を記憶させながら、パスがループを形成しないことが確認できるノードまで転送され、そこから返答メッセージが返ってくる過程で、順次パスの経路上の各ノードのメッセージ処理中状態が解消され、そこではじめてパスの設定が確立されていくため、ループを形成するか否かの判断は、処理中状態となっているメッセージ(例えば、スレッド)のみを対象とすれば良く、ループ検出が簡単に行える。また、経路変更時も、古いパスは既に確立している(ループ判断の対象外である)ため、新しいパスが古いパスとぶつかった場合にも誤ってループと判断することがなくなる。したがって、新しいパスが確立されるまで古いパスへパケットを流し続けることも可能となり、新しいパスが古いパスと一部経路を同じくする場合にその部分のリンク情報を利用し続けることも可能となる。
【0017】
好ましくは、前記メッセージを受信したノードが、前記ラベルスイッチングパスがループを形成すると判断した場合には、前記メッセージの転送は行わず、前記返答メッセージも返送しないようにしてもよい。
好ましくは、前記判断においては、受信した前記メッセージに含まれるのと同一のフロー識別子についての情報を、メッセージ処理中として該ノード内に記憶しているか否かに基づいて(新たに受信したメッセージと以前に受信して処理中となっているメッセージとが異なる入力側リンクに関するものか否かをも判断材料としても良い)、前記ラベルスイッチングパスがループを形成するか否かを判断するようにしてもよい。
好ましくは、前記メッセージには、前記パケットフローに関する処理中のメッセージをネットワークグローバルに識別可能なメッセージ識別子(例えばスレッド色)も含まれるようにしてもよい。
好ましくは、前記判断においては、受信した前記メッセージに含まれるのと同一のフロー識別子及びメッセージ識別子をメッセージ処理中として該ノード内に記憶しているか否かに基づいて(新たに受信したメッセージと以前に受信して処理中となっているメッセージとが異なる入力側リンクに関するものか否かをも判断材料としても良い)、前記ラベルスイッチングパスがループを形成するか否かを判断するようにしてもよい。
【0018】
好ましくは、前記メッセージは、設定要求されたラベルスイッチングパスの初段のノードから該メッセージを受信したノードまでのホップ数を求めることが可能な情報(例えば、スレッド長)を含むものであり、前記メッセージを受信したノードが、このメッセージに含まれる情報に基づき前記ホップ数が所定値を超えると判断した場合は、前記ラベルスイッチングパスがループを形成すると判断した場合と同等に扱うようにしてもよい。
【0019】
好ましくは、前記メッセージを受信したノードは、自ノードが設定要求されたラベルスイッチングパスの終段のノードである場合、もしくは、自ノードの下流に対応する確立されたラベルスイッチングパスが存在しこれに設定要求されたパスを接続して良い場合(例えば、スレッド長が確立されたラベルスイッチングパスのパス長以下である場合)に、前記ラベルスイッチングパスがループを形成しないことを確認できたものとするようにしてもよい。
【0020】
好ましくは、設定しようとするラベルスイッチングパスの初段のノード、もしくは、確立されたラベルスイッチングパスの中段のノードで経路変更が起こった場合のそのノード、もしくは、確立されたラベルスイッチングパスの終段のノードで下流隣接ノードを新たに認識したノードが、前記メッセージを能動的に送信するようにしてもよい。
【0021】
好ましくは、前記メッセージ識別子は、該メッセージ識別子を割り当てたノード(例えば、代理初段ノード)の識別情報を含むようにしてもよい。
【0022】
好ましくは、前記返答メッセージの返送の際に、ラベルスイッチングのためのリンク情報に含まれるラベルの割り当てを行うようにしてもよい。
【0023】
これにより、ループ無しのラベルスイッチングパスがエンド−エンドで設定可能なことを確認してから実際のスイッチングに用いるラベルを割り当てることができるため、ラベルリソースの節約になる。
【0024】
好ましくは、前記メッセージを受信したあるノードで前記ラベルスイッチングパスがループを形成すると判断された場合に、前記メッセージを能動的に送信したノードは、前記ラベルスイッチングパスの設定の必要が無くなった場合(例えば、対応する入力側リンク情報が削除された場合や、経路変更が起こった場合)に、前記メッセージに対する取消メッセージ(例えば、スレッド削除通知)を送信し、前記メッセージを転送した各ノードは、対応する前記取消メッセージを受信するまでは、メッセージ処理中としての記憶を保持しておくようにしてもよい。
【0025】
これにより、不必要なラベル割当てを防ぐことができるため、ラベルリソースの節約になる。
【0026】
好ましくは、前記メッセージを受信したノードは、設定しようとするラベルスイッチングパスを同じくするメッセージが処理中であることが記憶されており、該ラベルスイッチングパスがループを形成するか否かを判断できない場合には、受信したメッセージと処理中のメッセージとを一つのメッセージとして扱うようにしてもよい。
【0027】
例えば、メッセージに、設定要求されたラベルスイッチングパスの初段のノードから該メッセージを受信したノードまでのホップ数に関する情報が含まれる場合には、このホップ数が大きい方のメッセージの識別子を、前記一つのメッセージの識別子とする。そして、この新たに決めたメッセージ識別子(とホップ数)が、既に転送した(処理中の)メッセージと異なる場合には、この変更をパスの経路上のノードに通知する。これにより、メッセージ数、ひいては処理中の状態数を少なくすることができる。
【0028】
好ましくは、前記メッセージは、設定要求されたラベルスイッチングパスの初段のノードから該メッセージを受信したノードまでのホップ数を求めることが可能な情報を含むものであり、前記メッセージを受信したノードは、前記ラベルスイッチングパスがループを形成すると判断した場合に、該ラベルスイッチングパスの初段のノードから自ノードまでのホップ数に関する情報を修正するようにしてもよい。
【0029】
例えば、特別な<不定>の値に更新する等して、ループにより処理中のまま保持されるメッセージを後で用いる際にホップ数が誤って加算された状態になることを防ぐことができる。
【0030】
本発明は、ラベルスイッチングパスを設定するノード装置であって、あるパケットフロー用のラベルスイッチングパスの設定に関わる要求メッセージ(例えば、SETUP、UPDATE等)であって、該パケットフローを識別可能なフロー識別子、及び、該パケットフローに関して処理中であることを示す情報(例えば、スレッド等)を含むものを受信した場合に、未確定として記憶手段内に記憶されている情報を対象として、該ラベルスイッチングパスがループを形成するか否かを判断する判断手段と、前記判断手段により前記ラベルスイッチングパスがループを形成しないことが確認できない場合には、前記フロー識別子を、未確定として前記記憶手段内に記憶すると共に、前記要求メッセージを前記パケットフローの経路上のノードへ転送し、前記判断手段により前記ラベルスイッチングパスがループを形成しないことが確認できた場合には、前記要求メッセージに対する返答メッセージを返送する第1の処理手段と、前記要求メッセージに対する返答メッセージを最新の返答として受信した場合に、現在は未確定として前記記憶手段内に記憶されている情報が、以降は前記判断の対象とならないように、該情報を確定として記憶するように変更し、該返答メッセージを、前記要求メッセージを転送し現在未確定として情報を記憶している他のノードへ転送して、前記ラベルスイッチングパスを利用可能とする第2の処理手段とを備えたことを特徴とする。
好ましくは、前記判断手段が、前記ラベルスイッチングパスがループを形成すると判断した場合には、前記要求メッセージの転送は行わず、前記返答メッセージも返送しないようにしてもよい。
好ましくは、前記判断手段は、前記要求メッセージに含まれるのと同一のフロー識別子についての情報を、未確定として前記記憶手段内に記憶しているか否かに基づいて、前記ラベルスイッチングパスがループを形成するか否かを判断するようにしてもよい。
好ましくは、前記要求メッセージには、前記パケットフローに関する処理中のメッセージをネットワークグローバルに識別可能なメッセージ識別子も含まれ、前記前記第1の処理手段は、前記メッセージ識別子を前記フロー識別子とともに記憶するようにしてもよい。
好ましくは、前記判断手段は、受信した前記要求メッセージに含まれるのと同一のフロー識別子及びメッセージ識別子を未確定として前記記憶手段内に記憶しているか否かに基づいて、前記ラベルスイッチングパスがループを形成するか否かを判断するようにしてもよい。
好ましくは、前記判断手段は、自ノードが設定要求されたラベルスイッチングパスの終段のノードである場合、もしくは、自ノードの下流に対応する確立されたラベルスイッチングパスが存在しこれに設定要求されたパスを接続して良い場合に、前記ラベルスイッチングパスがループを形成しないことを確認できたものとするようにしてもよい。
好ましくは、自ノードが、設定しようとするラベルスイッチングパスの初段のノード、もしくは、確立されたラベルスイッチングパスの中段のノードで経路変更が起こった場合のそのノード、もしくは、確立されたラベルスイッチングパスの終段のノードで下流隣接ノードを新たに認識したノードである場合に、要求メッセージを能動的に送信する転送手段をさらに備えるようにしてもよい。
好ましくは、前記第1の処理手段により、設定しようとするラベルスイッチングパスを同じくする他の要求メッセージが現在未確定として記憶されており、前記判断手段により、該ラベルスイッチングパスがループを形成するか否かが判断できない場合には、受信した前記要求メッセージと該他の要求メッセージとを一つのメッセージとして扱うようにしてもよい。
また、本発明は、ラベルスイッチングパスを設定するノード装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体であって、あるパケットフロー用のラベルスイッチングパスの設定に関わる要求メッセージであって、該パケットフローを識別可能なフロー識別子、及び、該パケットフローに関して処理中であることを示す情報を含むものを受信した場合に、未確定として記憶手段内に記憶されている情報を対象として、該ラベルスイッチングパスがループを形成するか否かを判断する判断機能と、前記判断手段により前記ラベルスイッチングパスがループを形成しないことが確認できない場合には、前記フロー識別子を、未確定として前記記憶手段内に記憶すると共に、前記要求メッセージを前記パケットフローの経路上のノードへ転送し、前記判断手段により前記ラベルスイッチングパスがループを形成しないことが確認できた場合には、前記要求メッセージに対する返答メッセージを返送する第1の処理機能と、前記要求メッセージに対する返答メッセージを最新の返答として受信した場合に、現在は未確定として前記記憶手段内に記憶されている情報が、以降は前記判断の対象とならないように、該情報を確定として記憶するように変更し、該返答メッセージを、前記要求メッセージを転送し現在未確定として情報を記憶している他のノードへ転送して、前記ラベルスイッチングパスを利用可能とする第2の処理機能とを実現させるためのプログラムを記録したコンピュータ読取り可能な記録媒体である。
【0031】
なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に係る発明としても成立する。
【0032】
また、装置または方法に係る本発明は、コンピュータに当該発明に相当する手順を実行させるための(あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための)プログラムを記録したコンピュータ読取り可能な記録媒体としても成立する。
【0033】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
【0034】
最初に、語句や本発明のノード装置の基本的な構成等について説明する。
【0035】
<方向の定義>
各ノードにおいて、ラベルスイッチングパス(以下、パス)の初段ノードに近い側を「入力側」(または上流)、終段ノードに近い側を「出力側」(または下流)と呼ぶ。
【0036】
各ノードにおいて、パスの入力側の隣接ノード(上流隣接ノード)に対して割当てられるラベルを「入力側ラベル」(以下、入力ラベル)と呼び、出力側の隣接ノード(下流隣接ノード)に対して割当てられるラベルを「出力側ラベル」(以下、出力ラベル)と呼ぶ。
【0037】
<隣接ノード>
隣接ノードは、ラベルの書き換えなしでパケットが到達可能な自ノード以外のノードのことであり、ネットワークプロトコル的な隣接ノードである必要はない。例えば、ラベルがスタックされる場合には、スタックレベルが深くなるとネットワークプロトコル的に2ホップ以上離れたノードが隣接ノードとなりうる。
【0038】
<リンク>
各ノードにおいて、あるパスの個々の入力ラベル、出力ラベルに関連した「状態」を持つ。入力ラベルに関連した状態を「入力リンク」、出力ラベルに関連した状態を「出力リンク」と呼ぶ。リンクを削除する場合には、隣接ノードにリンクを削除する旨を通知する。
【0039】
<フロー>
フロー(パケットフロー)は、パスを流れるパケットの集合である。フローは、フロー識別子により規定される。
【0040】
<代理初段ノード>
代理初段ノードとは、パスの生成を「能動的に」起動するノードのことである。ここで、「能動的に」とは、「上流隣接ノードからのパス設定要求を直接のトリガにすることなく」という意味である。「能動的」の反対の意味で「受動的」という語句が使われる。
【0041】
代理初段ノードは、(1)初段ノード、(2)入力リンクを有するノードで、経路変更により下流隣接ノードに出力ラベルの割当てを要求するノード、(3)入力リンクを有するノードで下流隣接ノードを新たに認識したノード、のいずれかである。
【0042】
<パス長>
あるノードにおいて、自ノードの上流の初段ノード(複数あり得る)から自ノードまでのホップ数の最大値をパス長と呼ぶ。パス長を下流隣接ノードに通知する場合には、自ノードにおけるパス長を1だけインクリメントした値を通知する。パス長を管理するために、パスの各入力リンク毎に上流隣接ノードが通知するパス長の情報を記憶する必要がある。
【0043】
経路がループしている場合には、正確なパス長が不定となる。この場合には、パス長として<不定>という特別な値を使用してもよい。パス長の値が<不定>の場合には、パス長の値が<不定>以外の場合よりもパス長が大きいとする。また、値が<不定>のパス長を1だけインクリメントしたパス長も<不定>となる。
【0044】
<スレッド>
代理初段ノードがあるフローに関して、あるパスに関する出力ラベルの割当てを下流隣接ノードに要求する際、パスのループを検出し回避するために、そのフローに関するACK待ちのメッセージをネットワークで一意に識別するための識別子を少なくとも含んだ情報である「スレッド」を生成し、これを下流隣接ノードに通知(フォワード)する。
【0045】
スレッドは、少なくとも識別子(スレッド色)を持つ。スレッド色が同じスレッドは、同じスレッドであるとみなす。また、スレッドは、パス長に関する情報(スレッド長)を持っていてもよい。このとき、初段ノードは、スレッド長0のスレッドを生成する。
【0046】
一般に、スレッドは、(スレッド色、スレッド長)で表され、スレッドがスレッド長の情報を含まない場合には、本実施形態では、すべてのスレッドが同じスレッド長=<不定>に設定されるとして扱えばよい。
【0047】
<スレッドのフォワード>
各ノードは、受信したスレッドを受信した順番に処理する。また、隣接ノード間でスレッドの転送順序は保証される必要がある。
【0048】
スレッドを下流隣接ノードにフォワードする場合には、スレッド長を1 だけインクリメントする。スレッドは、パスがループになるかどうかを判定できるノードまでフォワードされる。
【0049】
下流隣接ノードにフォワードしたスレッドは、フォワードしたノードのある出力リンクに対応し、上流隣接ノードから受信したスレッドは、そのノードのある入力リンクに対応する。
【0050】
フォワードしたスレッドは、スレッドがループしないことを確認するACKが下流隣接ノードから返るまでスレッドをフォワードディング中の状態になる。
【0051】
例外として、スレッドがループしないことを確認済みのパスに対してパス長の更新のみを通知する場合には、ACKの必要ないスレッドが定義される。ACKの必要ないスレッドは、スレッド色=0で識別される。
【0052】
<スレッドの削除>
代理初段ノードは、出力リンクとスレッドの対応を能動的に削除することができるが、入力リンクとスレッドの対応を能動的に削除することはできない。代理初段ノード以外のノードは、能動的に入力リンクまたは出力リンクとスレッドとの対応を削除することはできない。
【0053】
あるリンクが削除される場合、そのリンクがスレッドとの対応を持っていればそのスレッドも削除される。
【0054】
代理初段ノードがある入力リンクとスレッドの対応を受動的に削除するときに、もし、入力リンクが削除されなければその入力リンクに対応する出力リンクのスレッドは削除されない。
【0055】
代理初段以外のノードがある入力リンクとスレッドの対応を受動的に削除するときに、もし、同じパスの他の入力リンクにループを形成しないスレッドが一つも対応していなければ、その入力リンクに対応する出力リンクのスレッドを削除する。
【0056】
出力リンクに対応するスレッドを削除する場合には、下流隣接ノードにスレッドの削除が通知される。
【0057】
<スレッドのループ>
スレッドをフォワード中のノードが、そのスレッドを受信した入力リンクとは異なる入力リンクにおいて同じスレッドを受信した場合、または、受信したのと同じスレッドを出力リンクにおいてフォワード中の場合には、スレッドがループを形成するという。
【0058】
<スレッドのマージ>
あるノードがスレッドを受信した時、もし受信スレッドがループしておらず、かつ、同じパスに属する別のスレッドが存在する場合には、スレッドのマージを行なう。逆に、ある入力リンクに対応するスレッドが削除される場合には、スレッドをマージから外す(アンマージ)。もし、削除後も他の入力リンクにループを形成しない別のスレッドが対応している場合には、出力側リンクに対応するスレッドは削除しない。
【0059】
マージされる前の各々のスレッドのうち、いずれか1つのスレッドをネットワークで統一されたある選択方法により選んで、そのスレッド色/スレッド長をマージ後のスレッドのスレッド色/スレッド長とする。選択方法の1つとして、スレッド長を用いる場合には、マージされたスレッドのスレッド長は、各々のスレッド長の最大値に設定し、マージされたスレッド色は、各々のスレッド長の最大値を与えるスレッドのスレッド色に設定し、もし、スレッド長の最大値を与えるスレッドが複数ある場合には、それらの中で最大のスレッド色(スレッド色を示す数値が最大のもの)に設定する、という方法がある。
【0060】
<スレッドの更新>
ノードが、ある入力リンクに対応するスレッドを受信したとき、その入力リンクに現在対応するスレッドのスレッド色またはスレッド長が受信スレッドと異なる場合には、受信スレッドをその入力リンクに対応させる。スレッドがマージされていない場合、または、スレッドがマージされている場合でマージされたスレッドのスレッド色/スレッド長が変わる場合には、スレッド色/スレッド長の変更を直ちに下流隣接ノードにフォワードする。
【0061】
さらに、あるノードが、ある出力リンクに対応するスレッドの情報の更新中であるときに、このスレッドに対するさらなる更新が起こっても、前の更新の完了を待つことなく新たな更新を下流隣接ノードに通知するようにする。
【0062】
スレッドをフォワーディングすることにより、以下のようにループの回避したパス設定を行なう。
【0063】
<パスのループ回避アルゴリズム>
スレッドは、(i)終段ノードに届くか、(ii)パス長が<不定>でない確立されたパスが存在し、スレッド長がパス長以下になるか、(iii)スレッドがループを形成するか、スレッド長が<不定>でなくかつスレッド長がしきい値に到達するか、のいずれかになるまでフォワードされる。
【0064】
(i),(ii)のいずれかの理由によりスレッドのフォワーディングが完了したときには、スレッドはループを形成しないことが保証される。このとき、ラベルスイッチングパスもループを形成しないことが保証されるため、上流ノードにホップバイホップにスレッドに対するACKを返す。ACKを送信/受信したノードは、スレッドがフォワーディング中であるという状態をクリアする。
【0065】
ACKがスレッドを生成した代理初段ノードまで返ると、ラベルスイッチングが可能になる。
【0066】
一方、(iii)の理由によりスレッドのフォワーディングが完了したときには、スレッドがループを形成する場合には、スレッド長=<不定>に設定する。この結果、スレッド長が更新されるなら、更新されたスレッド長を下流ノードに通知する。このとき、ループしたスレッドの入力リンクと出力リンクの対応づけは保つようにする。なお、スレッド長を用いない場合には、スレッド長は常に<不定>であるため、スレッド長の更新は下流ノードに通知されない。
【0067】
もし、代理初段ノードで経路変更が起こった場合には、新たにスレッドを生成し、新経路に生成したスレッドをフォワードする。新経路にスレッドを通知する前にまず、旧経路上の出力リンクにフォワーディング中のスレッドが対応していればこれを削除し、旧経路上にスレッドの削除を通知し、これらの上流側のスレッドと生成したスレッドをつなげる(入出力を関連付ける)。
【0068】
パス長は、ノードがスレッドを受信した場合に、受信スレッドがループを形成しない場合に、直ちに受信スレッド長に設定してもよいし、また、スレッドに対するACKを受信したときに設定してもよい。
【0069】
また、確立されたパスにおいてパス長の更新のみを下流隣接ノードに通知する場合には、スレッド色=0、スレッド長=更新後のスレッド長を1だけインクリメントした値、のスレッドが使用される。スレッド色=0のスレッドは、パス長が更新されなくなるまで下流にフォワードされ、ACKは必要ない。
【0070】
なお、本発明は、いかなるフローの定義に対しても使用可能である。また、初段ノードがパス設定を起動する契機は、フローに対するルーチングテーブルエントリが生成された時を契機とするトポロジードリブン、または、実際にそのフローにマッチするパケットが流れ始めた時を契機とするフロードリブン、のいずれでもよい。
【0071】
同一のフローとする形態には、(1)宛先IPアドレスが同じパケットを同一のフローとする、(2)ネットワークマスクに対応する宛先IPアドレスの部分(すなわち宛先IPアドレスの上位の所定ビット)が同じパケットを同一のフローとする、(3)送信元IPアドレスと宛先IPアドレスの組が同じパケットを同一のフローとする、(4)第1のネットワークマスクに対応する送信元IPアドレスの部分と第2のネットワークマスクに対応する宛先IPアドレスの部分との組が同じパケットを同一のフローとする、(5)あるIPアドレスを持つノードを通るパケットを同一のフローとする、(6)上記の(1)〜(5)において、送信元および/または宛先のポート番号をも組にしたものが同一であるパケットを同一のフローとする、などが種々のもの考えられる。
【0072】
ところで、本発明は、(1)初段ノード主導でラベルスイッチングパスを生成する場合(Ingress Controlと呼ぶ)にも、(2)終段ノード主導でラベルスイッチングパスを生成する場合(Egress Controlと呼ぶ)にも、適用可能である。
【0073】
初段となるノード装置がラベル割当て要求メッセージを送信する契機には、例えば、次のような形態がある。
(1)各々のノード装置が、宛先destに対するルーティングテーブルが生成されたときを契機に、ラベル割当て要求メッセージを送信する。
(2)各々のノード装置が、宛先destに対するルーティングテーブルが生成された後に宛先destに対するトラヒック量がしきい値を越えた場合を契機に、ラベル割当て要求メッセージを送信する。
(3)宛先destに対するルーティングテーブルが生成された後に、宛先destに対するトラヒック量がしきい値を越え、かつ、トラヒック(データグラム)の前段ノード装置が本実施形態に係るラベル割り当てプロトコルをサポートしない、という条件をみたすノード装置のみが、これを契機に自ノードを初段と判断してラベル割当て要求メッセージを送信する(例えばINTERNET−DRAFT <draft−ietf−rolc−nhrp−l1.txt> NBMA Next Hop Resolution Protocol(NHRP)参照)。
【0074】
さて、以下では、幾つかの具体例を用いて本実施形態についてより詳しく説明していく。
【0075】
本実施形態に係るノード装置は、IP(Internet Protocol)処理を行う機能を持つとともに、本発明に係るプロトコルに従ってラベルスイッチングを行う機能を持つ。また、末端に位置し中継を行わないノード装置以外のノード装置は、ルータ機能を持ってもよい(例えば図1においてノード装置R1〜R4,R7〜R11はルータ機能を持ち、ルータ装置R5,R6についてはこれらが末端に位置し中継を行わないものである場合にはルータ機能は不要である)。
【0076】
以下では、宛先IPアドレスが同じパケットを同一のフローであるものとし、特定のフローに着目して説明を行なう。また、以下の例では、マージを行なう場合について説明する(ノード装置は、フロー識別子が等しい複数の入力側ラベルに対して同一の出力リンク情報を対応させることによりパスのマージを行う)。また、以下の例では、パス長は、スレッドに対するACKが返ってきたときに、そのスレッドのスレッド長に設定するものとする。
【0077】
パスは、各入力に対して受信スレッドの情報を記憶するために入力リンクを持ち、各出力に対して送信スレッドの情報を記憶するために出力リンクを持つ。また、パスは、パス上でラベルスイッチングされるフローの情報(フローID)、パス長の情報、自ノードが初段ノードであるか否かを示すフラグ(初段フラグ)、およびパスがスレッドに対するACK待ちかどうかを示すフラグ(確定フラグ)を持つ。
【0078】
スレッドは、(スレッド色、スレッド長)で識別されるが、以下の例では、スレッド色は、“代理初段ノードのアドレス:ローカルID”で表されるものとする。ここでは、ローカルIDは、各代理初段ノードでスレッドを新たに生成する毎に新たに割当てられる識別子である。ただし、以下において、ローカルID=0の場合には、ローカルIDの記述を省略し、スレッド色を“代理初段ノードのアドレス”で表している。
【0079】
また、以下の例では、スレッド色の大小は、代理初段ノードアドレスの値で比較して決めるものとする(もし、代理初段ノードアドレスが同じで、シーケンス番号が異なるスレッドがある場合には、シーケンス番号の大小で決めるものとする)。なお、以下の例では、代理初段ノードアドレスとしてR1などを用いるが、i>jとした場合に、代理初段ノードアドレスRiの大きさ>代理初段ノードアドレスRjの大きさであるものとする。
【0080】
パスの確定フラグは、スレッドを下流に通知するときにオフになり、スレッドの通知に対するACKを受けたときにオンになる。マルチキャストの場合には、全出力リンクからスレッドの通知に対するACKを受けたときにオンになる。
【0081】
入力リンクは、入力インターフェースとリンク識別子で、出力リンクは、出力インターフェースとリンク識別子で識別される。リンク識別子は、インターフェースでローカルに割当てることができ、リンク識別子として、ラベルを使ってもよいし、その他のIDを使ってもよい。
【0082】
前述のように、本発明は、初段ノード主導でパスを生成する場合にも、終段ノード主導でパスを生成する場合にも適用可能であるが、以下では、初段ノード主導でパスを生成する場合を例にとって説明する。終段ノード主導の場合には、フローの下流隣接ノードから新たにラベルの割当て要求を受信したノードが初段ノードとなってスレッドを生成し下流隣接ノードにフォワードすること以外は初段ノード主導の場合と同じである。
【0083】
なお、以下の記述で、「a=b」はaの値もしくは内容がbであることを、「a==b」はaがbと等しい(もしくはaがbである)ことを、「a!=b」はaがbと等しくない(もしくはaがbでない)ことを、「a:=b」はaにbを代入もしくは設定することを、「a>=b」はaがb以上であることを、「a||b」はaかつbを示し、「a&&b」はaまたはbを示すものとする。
【0084】
(第1の具体例)
まず、本発明の一実施形態に係るノード装置により行われるラベルスイッチングパスの設定の動作について具体例を用いながら説明する。
【0085】
図1に、本実施形態に係るノード装置を接続して構成されたラベルスイッチングネットワークの一例を示す。なお、図1において、ノード装置R1〜R11の全てまたは一部に図示しない他のノード装置が接続されていてもよい。
【0086】
図1において、隣接ノード間のリンクはそれらのノード間でラベルスイッチングが可能であることを表し、それらのうち矢印付きのリンクは矢印の方向がフローの現在の次ホップを表している。なお、図1には、以降の説明で用いるスレッドの内容の例も併せて示してある。
【0087】
さて、図1の構成において、ノード装置R1とノード装置R6が、ほぼ同時にパスの設定を開始するとする。
【0088】
ノード装置R1は、初段フラグをオンにし、ノード装置R2との間に出力リンクを生成し、スレッド(R1,0)を生成し、出力リンクにスレッド(R1,0)を記憶し、ノード装置R2にスレッド(R1,1)を通知する。同様に、ノード装置R6は、初段フラグをオンにし、ノード装置R7との間に出力リンクを生成し、スレッド(R6,0)を生成し、出力リンクにスレッド(R6,0)を記憶し、ノード装置R7にスレッド(R6,1)を通知する。このとき、スレッドは、ラベル割当て要求メッセージ(SETUP)に入れられる。
【0089】
ノード装置R2は、スレッド(R1,1)を受信すると、ノード装置R1との間に新たに入力リンクを生成し、スレッド(R1,1)を記憶する。次に、ノード装置R3との間に出力リンクを生成し、出力リンクに受信スレッド(R1,1)を記憶し、受信スレッド(R1,1)のスレッド長を1だけインクリメントしたスレッド(R1,2)をノード装置R3に通知する。
【0090】
ノード装置R7は、スレッド(R6,1)を受信すると、ノード装置R6との間に新たに入力リンクを生成し、受信スレッド(R6,1)を記憶する。次に、ノード装置R8との間に出力リンクを生成し、出力リンクに受信スレッド(R6,1)を記憶し、受信スレッド(R6,1)のスレッド長を1だけインクリメントしたスレッド(R6,2)をノード装置R8に通知する。
【0091】
ノード装置R8は、スレッド(R6,2)を受信すると、ノード装置R7との間に新たに入力リンクを生成し、受信スレッド(R6,2)を記憶する。次に、ノード装置R3との間に出力リンクを生成し、出力リンクに受信スレッド(R6,2)を記憶し、受信スレッド(R6,2)のスレッド長を1だけインクリメントしたスレッド(R6,3)をノード装置R3に通知する。
【0092】
ノード装置R3は、ノード装置R1が生成したスレッドをノード装置R6が生成したスレッドよりも早く受信したとする。
【0093】
ノード装置R3は、スレッド(R1,2)を受信すると、ノード装置R2との間に新たに入力リンクを生成し、受信スレッド(R1,2)を記憶する。次に、ノード装置R4との間に出力リンクを生成し、出力リンクに受信スレッド(R1,2)を記憶し、受信スレッド(R1,2)のスレッド長を1だけインクリメントしたスレッド(R1,3)をノード装置R4に通知する。
【0094】
その後、ノード装置R3は、スレッド(R6,3)を受信すると、ノード装置R8との間に新たに入力リンクを生成し、受信スレッド(R6,3)を記憶する。このとき、ノード装置R4との間の出力リンクがすでに存在するため、スレッドのマージが行なわれる。いま、受信スレッド(R6,3)のスレッド長=3が現在出力リンクに記憶されているスレッド(R1,2)のスレッド長=2より大きいため、出力リンクに現在記憶されているスレッド(R1,2)を受信スレッド(R6,3)に置き換えるともに、受信スレッド(R6,3)のスレッド長を1だけインクリメントしたスレッド(R6,4)をノード装置R4に通知する。
【0095】
ノード装置R4は、最初に、スレッド(R1,3)を受信する。このとき、ノード装置R4は、ノード装置R3との間に新たに入力リンクを生成し、スレッド(R1,3)を記憶する。次に、ノード装置R9との間に出力リンクを生成し、出力リンクに受信スレッド(R1,3)を記憶し、受信スレッド(R1,3)のスレッド長を1だけインクリメントしたスレッド(R1,4)をノード装置R9に通知する。
【0096】
ノード装置R4は、次に、スレッド(R6,4)を受信する。このとき、すでにノード装置R3との間に入力リンクが存在するため、入力リンクに現在記憶されているスレッド(R1,3)を受信スレッド(R6,4)に置き換える。また、すでにノード装置R9との間に出力リンクが存在するため、出力リンクに現在記憶されているスレッド(R1,3)を受信スレッド(R6,4)に置き換えるとともに、受信スレッド(R6,4)のスレッド長を1だけインクリメントしたスレッド(R6,5)をノード装置R9に通知する。
【0097】
ノード装置R9,R10も、ノード装置R4と同様の動作を行なう。
【0098】
この結果、ノード装置R3は、ノード装置R10からスレッド(R1,6),スレッド(R6,7)をこの順番で受信する。
【0099】
まず、ノード装置R3がスレッド(R1,6)を受信すると、ノード装置R3は、ノード装置R10との間に新たに入力リンクを生成し、スレッド(R1,6)を記憶する。このときすでに同じスレッドがノード装置R2との間の入力リンクに記憶されているためスレッドのループを検出する。このとき、スレッドのマージは行なわず、ACKも返さない。また、入力リンクに記憶したスレッド色を0に設定しておく。スレッド色=0のスレッドはマージしないようにする。さらに、ノード装置R3は、ノード装置R4との間の出力リンクに記憶されているスレッド(R6、3)のスレッド長を<不定>に更新し、更新後のスレッド(R6、<不定>)のスレッド長を1だけインクリメントしたスレッド(R6、<不定>)をノード装置R4に通知する。
【0100】
次に、ノード装置R3がスレッド(R6,7)を受信すると、ノード装置R3は、ノード装置R10との間にすでに存在する入力リンクにスレッド(R6,7)を記憶する。このときすでに同じスレッドがノード装置R8との間の入力リンクに記憶されているためスレッドのループを検出する。このとき、スレッドのマージは行なわず、ACKも返さない。また、入力リンクに記憶したスレッド色を0に設定しておく。スレッド色=0のスレッドはマージしないようにする。ここで、すでに、ノード装置R4との間の出力リンクに記憶されているスレッド(R6、<不定>)のスレッド長は<不定>のまま更新されないため、ノード装置R4にはスレッド長の更新を通知しない。
【0101】
最後に、ノード装置R3がスレッド(R6、<不定>)を受信すると、ノード装置R3は、ノード装置R10との間にすでに存在する入力リンクにスレッド(R6、<不定>)を記憶する。このときすでに同じスレッドがノード装置R8との間の入力リンクに記憶されているため、スレッドのループを検出する。このとき、スレッドのマージは行わず、ACKも返さない。また、入力リンクに記憶したスレッド色を0に設定しておく。スレッド色=0のスレッドはマージしないようにする。ここで、すでに、ノード装置R4との間の出力リンクに記憶されているスレッド(R6、<不定>)のスレッド長は<不定>のまま更新されないため、ノード装置R4にはスレッド長の更新を通知しない。
【0102】
この結果、図2の点線に示すようなマージされたスレッドが残る。なお、図2において、点線に付した符号はスレッドの各部分におけるスレッド色を表す。
【0103】
次に、図2の状態で、ノード装置R10において経路変更が起こり、次ホップノードがノード装置R3からノード装置R11に変わった場合について、図3および図4を参照しながら説明する。図3および図4には、通知されるスレッド等を示してある。
【0104】
さて、ノード装置R10の次ホップノードがノード装置R3からノード装置R11に変わったとすると、このとき、ノード装置R10は、まず、旧経路上のノード装置R3との間の出力リンクを削除し、記憶していたスレッド(R6,<不定>)の削除を通知する(図3参照)。スレッド削除の通知は、スレッド削除メッセージを送信することにより行なう。次に、ノード装置R10は、スレッド(R10,<不定>)を生成し、新経路上のノード装置R11との間に出力リンクを生成し、出力リンクにスレッド(R10,<不定>)を記憶し、生成スレッド(R10,<不定>)のスレッド長を1だけインクリメントしたスレッド(R10,<不定>)をノード装置R11に通知する(図4参照)。
【0105】
ノード装置R3がスレッド(R6,<不定>)削除の通知を受けると、対応する入力リンクを削除する。
【0106】
一方、ノード装置R11は、スレッド(R10,<不定>)を受信すると、ノード装置R10との間に新たに入力リンクを生成し、受信スレッド(R10,<不定>)を記憶する。次に、ノード装置R1との間に出力リンクを生成し、出力リンクに受信スレッド(R10,<不定>)を記憶し、受信スレッド(R10,<不定>)のスレッド長を1だけインクリメントしたスレッド(R10,<不定>)をノード装置R1に通知する。
【0107】
ノード装置R1は、スレッド(R10,<不定>)を受信すると、ノード装置R11との間に新たに入力リンクを生成し、受信スレッド(R10,<不定>)を記憶する。このとき、ノード装置R2との間の出力リンクがすでに存在するため、スレッドのマージが行なわれる。いま、受信スレッド(R10,<不定>)のスレッド長=<不定>が現在出力リンクに記憶されているスレッド(R1,0)のスレッド長=0より大きいため、出力リンクに現在記憶されているスレッド(R1,0)を受信スレッド(R10,<不定>)に置き換えるともに、受信スレッド(R10,<不定>)のスレッド長を1だけインクリメントしたスレッド(R10,<不定>)をノード装置R2に通知する。
【0108】
ノード装置R2は、スレッド(R10,<不定>)を受信する。このとき、すでにノード装置R1との間に入力リンクが存在するため、入力リンクに現在記憶されているスレッド(R1,1)を受信スレッド(R10,<不定>)に置き換える。また、すでにノード装置R3との間に出力リンクが存在するため、出力リンクに現在記憶されているスレッド(R1,1)を受信スレッド(R10,<不定>)に置き換えるともに、受信スレッド(R10,<不定>)のスレッド長を1だけインクリメントしたスレッド(R10,<不定>)をノード装置R3に通知する。
【0109】
ノード装置R3は、スレッド(R10,<不定>)を受信する。このとき、すでにノード装置R2との間に入力リンクが存在するため、入力リンクに現在記憶されているスレッド(R1,2)を受信スレッド(R10,<不定>)に置き換える。また、すでにノード装置R4との間に出力リンクが存在するため、出力リンクに現在記憶されているスレッド(R6,3)を受信スレッド(R10,<不定>)に置き換えるともに、受信スレッド(R10,<不定>)のスレッド長を1だけインクリメントしたスレッド(R10,<不定>)をノード装置R4に通知する。このスレッドは、ノード装置R10まで届けられる(図4参照)。このとき、ノード装置R10はスレッド(R10、<不定>)のループを検出するが、すでにスレッド長は<不定>であるため、ノード装置R11にスレッド長の更新は通知されない。
【0110】
この結果、図5の点線に示すようなマージされたスレッドが残る。
【0111】
次に、図5の状態で、ノード装置R4において経路変更が起こり、次ホップノードがノード装置R9からノード装置R5に変わった場合について、図6および図7を参照しながら説明する。図6は後述するパターン1に対応するもので、図7は後述するパターン2に対応するものである。図6および図7には、通知されるスレッド等を示してある。
【0112】
さて、ノード装置R4の次ホップノードがノード装置R9からノード装置R5に変わったとすると、このとき、ノード装置R4は、まず、旧経路上のノード装置R9との間の出力リンクを削除し、記憶していたスレッド(R10,<不定>)の削除を通知する(図6、図7参照)。スレッド削除の通知は、スレッド削除メッセージを送信することにより行なう。次に、ノード装置R4は、スレッド(R4,<不定>)を生成し、新経路上のノード装置R5との間に出力リンクを生成し、出力リンクにスレッド(R4,<不定>)を記憶し、生成スレッド(R4,<不定>)のスレッド長を1だけインクリメントしたスレッド(R4,<不定>)をノード装置R5に通知する。
【0113】
終段ノードであるノード装置R5は、スレッド(R4,<不定>)を受信すると、ノード装置R4との間に新たに入力リンクを生成し、パス長を<不定>に設定して、受信スレッドに対するACKを返す。このとき、受信スレッドに対するACKにはラベル割当て成功メッセージを用いる。このとき、ノード装置R5は、生成した入力リンクに記憶されるスレッド色を0にする。
【0114】
一方、旧経路上のスレッド削除は、各ノードで入力リンクと出力リンクの削除を伴いながら、ノード装置R11まで通知されるとする。
【0115】
さて、旧経路上にスレッド削除通知がフォワードされ、新経路上にスレッドに対するACKがフォワードされるが、その到達順によって、動作が相違してくる。以下では、(1)旧経路上にフォワードされるスレッド削除通知が新経路上にフォワードしたスレッドに対するACKよりも早く初段ノードに到達するケースと、(2)旧経路上にフォワードされるスレッド削除通知が新経路上にフォワードしたスレッドに対するACKよりも後に初段ノードに到達するケースに分けて説明する。
【0116】
(パターン1)
まず、旧経路上にフォワードされるスレッド削除通知が新経路上にフォワードしたスレッドに対するACKよりも早く初段ノードに到達する場合を考える。
【0117】
ノード装置R9は、ノード装置R4からのスレッド削除通知を受けると、対応する入力リンクを削除し、対応する出力リンクも削除して、ノード装置R10にスレッド削除通知をフォワードする。ノード装置R10,R11も同様である。
【0118】
ノード装置R1がノード装置R11からのスレッド削除通知を受信すると、ノード装置R11との間の入力リンクを削除する。ノード装置R1は、削除した入力リンクに対応する出力リンクを持つが、初段フラグがオンであるため、この出力リンクは削除しない。このとき、すでに生成したスレッド(R1,0)を、出力リンクに記憶する。次に、スレッド(R1,0)のスレッド長を1だけインクリメントしたスレッド(R1,1)をノード装置R2に通知する。
【0119】
ノード装置R4は、ノード装置R5からACKを受信すると、パス長をACKに対応するスレッド(R4,<不定>)のスレッド長=<不定>に設定し、上流ノードR3にACKを返し、ACKを返した上流隣接ノードとの間の入力リンクに記憶されるスレッド色を0にする。ノード装置R3は、ACKを受信すると、パス長をACKに対応するスレッド(R10,<不定>)のスレッド長=<不定>に設定し、上流ノードR2,R8にACKを返し、ACKを返した上流隣接ノードとの間の入力リンクに記憶されるスレッド色を0にする。ノード装置R8,R7も同様の動作を行う。
【0120】
初段ノードR6がACKを受信すると、パス長をACKに対応するスレッド(R6,0)のスレッド長=0に設定する。
【0121】
ノード装置R2は、ノード装置R1からのスレッド(R1,1)を受信する前にノード装置R3からのACKを受信したとする。このとき、ノード装置R2は、パス長をACKに対応するスレッド(R10,<不定>)のスレッド長=<不定>に設定し、上流ノードR1にACKを返す。
【0122】
その後、ノード装置R2は、ノード装置R1からのスレッド(R1,1)を受信すると、対応する入力リンクのスレッドを受信スレッド(R1,1)に置き換える。このとき、パス長=<不定>であるため、受信スレッドのスレッド長を1だけインクリメントしたスレッド(R1,2)をノード装置R3に通知する。このとき、スレッド(R1、2)は、更新メッセージ(UPDATE)に入れられる。
【0123】
スレッド色=R1のスレッドを受信したノード装置R2,R3,R4は、受信リンクに記憶するスレッドを受信スレッドに置き換えた後、スレッド色=0のスレッドを記憶する入力リンクのスレッド長と受信スレッドのスレッド長のうち、最大の値を新たなパス長とする。パス長が更新されるなら下流ノードに更新後のパス長を1だけインクリメントしたスレッド色=R1のスレッドを更新メッセージにより通知する。この通知はノード装置R5まで届き、最終的にノード装置R5のパス長は5に変更される。ノード装置R5は、受信スレッドに対するACKを返し、これはノード装置R1まで返される。
【0124】
ノード装置R1は、ノード装置R2からスレッド(R1,0)に対するACKを受信したときに、ラベルスイッチングが可能になる。
【0125】
(パターン2)
次に、旧経路上にフォワードされるスレッド削除通知が新経路上にフォワードしたスレッドに対するACKよりも後に初段ノードに到達する場合を考える。
【0126】
さて、ノード装置R4は、ノード装置R5からACKを受信すると、パス長をACKに対応するスレッド(R4,<不定>)のスレッド長=<不定>に設定し、上流ノードR3にACKを返し、ACKを返した上流隣接ノードとの間の入力リンクに記憶されるスレッド色を0にする。ノード装置R3は、ACKを受信すると、パス長をACKに対応するスレッド(R10,<不定>)のスレッド長=<不定>に設定し、上流ノードR2,R8にACKを返し、ACKを返した上流隣接ノードとの間の入力リンクに記憶されるスレッド色を0にする。ノード装置R1,R2,R8,R7も同様の動作を行なう。
【0127】
初段ノードR6がACKを受信すると、パス長をACKに対応するスレッド(R6,0)のスレッド長=0に設定する。
【0128】
ノード装置R11は、ノード装置R10からのスレッド削除通知を受信する前にノード装置R1からのACKを受信したとする。
【0129】
まず、ノード装置R11がノード装置R1からのACKを受信すると、パス長をACKに対応するスレッド(R10,<不定>)のスレッド長=<不定>に設定し、上流ノードR10にACKを返し、ACKを返した上流隣接ノードとの間の入力リンクに記憶されるスレッド色を0にする。次に、ノード装置R11は、ノード装置R10からのスレッド削除通知を受けるが、すでにパスの確定フラグはオンであるため、入力リンクを削除せず、またノード装置R1にもスレッド削除通知をしない。
【0130】
ノード装置R10がノード装置R11からのACKを受けると、すでに対応する出力リンクは存在しないため、ノード装置R11にラベル解放メッセージ(RELEASE)を送信する。ノード装置R11がノード装置R10からラベル解放メッセージを受けると、ノード装置R10との間の入力リンクおよびノード装置R1との間の出力リンクを削除するとともに、ノード装置R1にラベル解放メッセージをフォワードする。
【0131】
ノード装置R1はラベル解放メッセージを受信すると、ノード装置R11との間の入力リンクを削除する。このとき、初段フラグがオンであるため、入力リンクに対応する出力リンクは削除せず、パス長を<不定>から0に設定する。次に、パスの確定フラグはオンであり、パス長が増加しないため、スレッド色=0とし、スレッド長にパス長を1だけインクリメントした値を入れたスレッド(0,1)をノード装置R2に通知する。このとき、スレッド(0,1)は、更新メッセージに入れられる。
【0132】
スレッド色=0のスレッドを受信したノード装置R2,R3,R4は、受信リンクに記憶するスレッドを受信スレッドに置き換えた後、スレッド色=0のスレッドを記憶する入力リンクのスレッド長と受信スレッドのスレッド長のうち、最大の値を新たなパス長とする。パス長が更新されるなら下流ノードに更新後のパス長を1だけインクリメントしたスレッド色=0のスレッドを更新メッセージにより通知する。この通知はノード装置R5まで届き、最終的にノード装置R5のパス長は5に変更される。ノード装置R5はACKを返さない。
【0133】
この結果、最終的に図8の太線で示すようなパスR1→R2→R3→R4→R5ができる。
【0134】
以上の動作により、ループしているパスのどこで経路変更が起こっても、ループが解除されたときには、リトライすることなく正常なパスに復帰することが可能となる。
【0135】
ここで、ループしている間は、スレッドを通知中のノードでラベルの割当てが行なわれないため、ラベルリソースの節約が可能である。さらに、ラベル割り当てが行なわれないフローのパケットは代理初段ノードで廃棄するようにすれば、ネットワークリソースの節約も可能である。
【0136】
なお、図5に示される状態のとき、もし、ノード装置R10で経路変更が起こり、ノード装置R10の次ホップノードがノード装置R11からノード装置R3に変わった場合には、ノード装置R10は、まず、ノード装置R11にスレッド(R10、<不定>)の削除を通知するとともに、新たなスレッド(R10:1、<不定>)を生成し、生成したスレッド(R10:1、<不定>)のスレッド長を1だけインクリメントしたスレッド(R10:1、<不定>)をノード装置R3に通知する。このスレッドは、ノード装置R3、R4、R9、R10と通知され、ノード装置R10は、自分が生成したスレッド(R10:1、<不定>)を受信する。このとき、スレッド長は<不定>のままかわらないため、ノード装置R3にスレッド長の更新は通知されない。
【0137】
(第2の具体例)
次に、本発明の一実施形態に係るノード装置により行われるラベルスイッチングパスの設定の動作についてもう一つの具体例を用いながら説明する。
【0138】
図9に、本実施形態に係るノード装置を接続して構成されたラベルスイッチングネットワークの他の例を示す。なお、図9において、ノード装置R1〜R7の全てまたは一部に図示しない他のノード装置が接続されていてもよい。
【0139】
図9において、隣接ノード間のリンクはそれらのノード間でラベルスイッチングが可能であることを表し、それらのうち矢印付きのリンクは矢印の方向がフローの現在の次ホップを表している。なお、図9には、以降の説明で用いるスレッドの内容の例も併せて示してある。
【0140】
パス上のノード装置R1,R2,R3,R4は、パス長として、それぞれ、0,1,2,3を記憶しているものとする。
【0141】
さて、図9の構成において、ノード装置R1がパスの設定を開始するとする。
【0142】
ノード装置R1は、初段フラグをオンにし、ノード装置R2との間に出力リンクを生成し、スレッド(R1,0)を生成し、出力リンクにスレッド(R1,0)を記憶し、ノード装置R2にスレッド(R1,1)を通知する。
【0143】
ノード装置R2は、スレッド(R1,1)を受信すると、ノード装置R1との間に新たに入力リンクを生成し、スレッド(R1,1)を記憶する。次に、ノード装置R3との間に出力リンクを生成し、出力リンクに受信スレッド(R1,1)を記憶し、受信スレッド(R1,1)のスレッド長を1だけインクリメントしたスレッド(R1,2)をノード装置R3に通知する。ノード装置R4も同様の動作を行なう。
【0144】
終段ノードであるノード装置R5は、ノード装置R4からスレッド(R1,4)を受信すると、ノード装置R4との間に新たに入力リンクを生成し、スレッド(R1,4)を記憶する。次に、パス長を4に設定して、受信スレッドに対するACKを返す。このとき、受信スレッドに対するACKにはラベル割当て成功メッセージを用いる。
【0145】
ノード装置R4は、ノード装置R5からACKを受信すると、パス長をACKに対応するスレッド(R1,3)のスレッド長=3に設定し、上流ノードR2にACKを返す。ノード装置R2も同様の動作を行なう。
【0146】
初段ノードR1がACKを受信すると、パス長をACKに対応するスレッド(R1,0)のスレッド長=0に設定する。
【0147】
これにより、図10の太線に示すようなラベルスイッチングパスR1→R2→R3→R4→R5が設定される。
【0148】
次に、図10の状態で、ノード装置R2において経路変更が起こり、次ホップノードがノード装置R3からノード装置R6に変わった場合について、図11を参照しながら説明する。図11には、通知されるスレッド等を示してある。
【0149】
さて、ノード装置R2の次ホップノードがノード装置R3からノード装置R6に変わったとすると、このとき、ノード装置R2は、現在のパス長に等しい長さを持つスレッド(R2,1)を生成し、新経路上のノード装置R6との間に出力リンクを生成し、出力リンクにスレッド(R2,1)を記憶し、生成スレッド(R2,1)のスレッド長を1だけインクリメントしたスレッド(R2,2)をノード装置R6に通知する。
【0150】
ノード装置R6は、スレッド(R2,2)を受信すると、ノード装置R2との間に新たに入力リンクを生成し、スレッド(R2,2)を記憶する。次に、ノード装置R7との間に出力リンクを生成し、出力リンクに受信スレッド(R2,2)を記憶し、受信スレッド(R2,2)のスレッド長を1だけインクリメントしたスレッド(R2,3)をノード装置R7に通知する。ノード装置R7も同様の動作を行なう。
【0151】
ノード装置R4がスレッド(R2,4)を受信すると、ノード装置R7との間に新たに入力リンクを生成し、スレッド(R2,4)を記憶する。次に、すでに同じフローに対してノード装置R5との間に出力リンクが存在しているため、フローのマージを行なう。このとき、マージ後のパス長が3から4に増加するため、出力リンクに受信スレッド(R2,4)を記憶し、ノード装置R5に受信スレッド(R2,4)のスレッド長を1だけインクリメントしたスレッド(R2,5)を送る。
【0152】
終段ノードR5が、スレッド(R2,5)を受信すると、パス長を受信スレッドのスレッド長(=5)に設定し、ノード装置R4にスレッドに対するACKを返す。
【0153】
ノード装置R4は、ノード装置R5からACKを受信すると、パス長をACKに対応するスレッド(R2,4)のスレッド長=4に設定し、上流ノードR7にACKを返す。ノード装置R7は、ACKを受信すると、パス長をACKに対応するスレッド(R2,3)のスレッド長=3に設定し、上流ノードR6にACKを返す。ノード装置R6も同様の動作を行なう。
【0154】
ノード装置R2がノード装置R6からACKを受信すると、新経路上にラベルスイッチングパスR1→R2→R6→R7→R4→R5が設定される。さらに、ノード装置R2は旧経路上のノード装置R3との間の出力リンクを削除するとともに、ノード装置R3にラベル解放メッセージを送信する。
【0155】
ノード装置R3は、ラベル解放メッセージを受信すると、ノード装置R2との間の入力リンクとノード装置R4との間の出力リンクを削除するとともに、ノード装置R4にラベル解放メッセージをフォワードする。
【0156】
ノード装置R4は、ラベル解放メッセージを受信すると、ノード装置R3との間の入力リンク削除するが、他に入力リンクがあるため、出力側リンクは削除しない。また、入力リンク削除後のパス長は増加しないため、下流ノードにパス長の変更も行なわない。
【0157】
この結果、図12の太線に示すようなパスができる。
【0158】
ここで、もし、旧経路上の物理リンクがダウンすることによりラベル解放メッセージをフォワードできない場合でも、物理リンクの下流のノードがダウンに気付いたとき、ノード装置R4はノード装置R3からラベル解放メッセージを受信した場合と同じ動作を行なえば、結果は同じである。
【0159】
次に、図12の状態で、ノード装置R2において再び経路変更が起こり、次ホップノードがノード装置R6からノード装置R3に変わった場合について、図13を参照しながら説明する。図13には、通知されるスレッド等を示してある。
【0160】
さて、ノード装置R2の次ホップノードがノード装置R6からノード装置R3に変わったとすると、このとき、ノード装置R2は、現在のパス長と同じ長さのスレッド(R2,1)を生成し、新経路上のノード装置R3との間に出力リンクを生成し、出力リンクにスレッド(R2,1)を記憶し、生成スレッド(R2,1)のスレッド長を1だけインクリメントしたスレッド(R2,2)をノード装置R3に通知する。
【0161】
ノード装置R3は、スレッド(R2,2)を受信すると、ノード装置R2との間に新たに入力リンクを生成し、スレッド(R2,2)を記憶する。次に、ノード装置R4との間に出力リンクを生成し、出力リンクに受信スレッド(R2,2)を記憶し、受信スレッド(R2,2)のスレッド長を1だけインクリメントしたスレッド(R2,3)をノード装置R4に通知する。
【0162】
ノード装置R4がスレッド(R2,3)を受信すると、ノード装置R3との間に新たに入力リンクを生成し、スレッド(R2,3)を記憶する。次に、すでに同じフローに対してノード装置R5との間に出力リンクが存在しているため、フローのマージを行なう。このとき、マージ後のパス長は4のまま増加しないため、ただちにノード装置R3にACKを返す。
【0163】
ノード装置R3は、ノード装置R4からACKを受信すると、パス長をACKに対応するスレッド(R2,2)のスレッド長=2に設定し、上流ノードR2にACKを返す。
【0164】
ノード装置R2がノード装置R3からACKを受信すると、新経路上にラベルスイッチングパスR1→R2→R3→R4→R5が設定される。さらに、ノード装置R2は旧経路上のノード装置R6との間の出力リンクを削除するとともに、ノード装置R6にラベル解放メッセージを送信する。
【0165】
ノード装置R6は解放メッセージを受信すると、ノード装置R4にラベル解放メッセージをフォワードする。ノード装置R7も同様である。
【0166】
ノード装置R4は、ラベル解放メッセージを受信すると、ノード装置R7との間の入力リンク削除するが、他に入力リンクがあるため、出力側リンクは削除しない。また、入力リンク削除後のパス長は4から3に減少するため、下流ノードにパス長を3に設定し、ノード装置R5にパス長を1だけインクリメントしたスレッド(0,4)を送る。
【0167】
スレッド色=0のスレッドを受信したノード装置R5は、パス長を受信スレッド長に設定するが、ACKは返さない。
【0168】
この結果、図10の太線に示すようなパスが再び設定される。
【0169】
もし、新経路がループになる場合には、ループが解消されるまでスレッドに対するACKが返ってこない。この場合には、旧経路上のパスを解放せずに使い続けることができる。
【0170】
また、経路変更時において、旧経路上のパスを解放してから新経路上にパス設定を行なうようにする場合でも本発明は有効である。
【0171】
以下では、本実施形態における、内部データベースの例、スレッド受信時のノード装置の動作手順の例、経路変更が起こったノード装置の動作手順の例、メッセージのフォーマットの例についてそれぞれ説明する。
【0172】
まず、本発明のノード装置においてループ検出に使用される内部データベースの構成の一例について説明する。
【0173】
図14、図15に、内部データベースの構成の一例を示す。
【0174】
個々のラベルスイッチングパスの情報は、パスエントリ(path_entry)に格納され、パスリスト(path_list)(図14の10)は、パスエントリのリンクドリストである。
【0175】
パスエントリは、入力リンクリスト(input_link_list)、出力リンクリスト(output_link_list)、フロー識別子(flow_id)、パス長(length)、確定フラグ(cflag)、初段フラグ(ingress_flag)を持つ。
【0176】
入力リンクリストは、パスの個々の入力側リンクの情報を格納するリンクエントリ(link_entry)(図14の20)のリンクドリストである。
【0177】
出力リンクリストは、パスの個々の出力側リンクの情報を格納するリンクエントリ(link_entry)(図14の30)のリンクドリストである。マルチキャストの場合には、複数のリンクエントリを持つ。また、ユニキャストの場合においても経路変更時には、旧経路用と新経路用の2つのリンクエントリを持つ場合がある。
【0178】
フロー識別子(またはフローID)は、このパス上でラベルスイッチングされるフローの情報を格納する。
【0179】
パス長は、最も遠い初段ノードからのホップ数を記憶する。
【0180】
確定フラグは、ACK待ちのスレッドがあるかどうかを示すためのフラグである。
【0181】
初段フラグは、自分がパスの初段ノードかどうかを示すためのものである。
【0182】
リンクエントリは、インターフェース番号(interface_number)、リンク識別子(link_id),隣接ノードアドレス(neighbor_address),スレッド(thread)、パスエントリ(path_entry)の情報を記憶する。
【0183】
インターフェース番号は、ノード内で各論理インターフェース毎に一意に割り当てられる番号である。
【0184】
リンク識別子は、隣接ノード間でリンクを識別するためのものである。
【0185】
隣接ノードアドレスには、リンクの相手先のノードのアドレスを格納する。
【0186】
スレッドは、スレッドエントリ(図14の40)へのポインタである。スレッドエントリは、スレッド色(color)、スレッド長(length)の属性を持つ。スレッドエントリは、同じパスの入力/出力リンクエントリ間で共有される。
【0187】
リンクエントリ中のパスエントリは、そのリンクエントリを入力または出力リンクリストに持つパスエントリを指すポインタである。これにより、各リンクからパスエントリの情報にアクセスできるとももに、入力リンク側から出力リンク側の、また、出力リンク側から入力リンク側への情報にもアクセスできる。
【0188】
次に、図15に、あるパスエントリにおいて、入力/出力リンクエントリ間で共有されるスレッドエントリの一例を示す。図中、20−1〜20−3は入力側リンクのリンクエントリであり、30−1は出力側リンクのリンクエントリであり、40−1〜40−3はスレッドエントリである。
【0189】
ここでは、3つのスレッド(5,5),(10,5),(101,2)がマージされている状態を示す。このとき、スレッド(10,5)が入力リンクエントリ、出力リンクエントリで共有されている。これは、スレッド長が最大(=5)のスレッド(5,5),(10,5)のうち、スレッド色が最大のものがマージ後のスレッドとして選ばれていることを表している。
【0190】
次に、ノード装置がスレッドを受信したときの処理手順について説明する。
【0191】
図16に、ノード装置がスレッドを受信したときの処理手順を表すフローチャートの一例を示す。
【0192】
ここでは、パス長をスレッドのACKを待たずに更新する場合について説明する。
【0193】
まず、Fを受信フロー識別子、iを受信インターフェース番号、jを受信リンク識別子、Tを受信スレッド、Nをスレッドを送信した隣接ノードとする(ステップS1)。
【0194】
次に、スレッドの入力処理を行なう(ステップS2)。入力処理では、(受信インターフェース番号i、受信リンク識別子j)、で一意に指定される入力リンクLiを探し、もし、エントリが見つからなければ新たに生成し、Liに(N,T)を登録する。次に、パスをマージしないなら新たにパスエントリPを作り、Pに、(フロー識別子F,入力リンクLi)の組を登録する。もし、パスをマージするなら、フロー識別子Fを持つすでに存在するパスエントリPに入力リンクLiを登録する。
【0195】
次に、スレッドの処理を行なう。
【0196】
まず、終段ノード、すなわち、自ノードがパスの終了点であるかどうかをチェックする(ステップS3)。もし終段ノードであれば、受信スレッド長をパス長に設定し(P.length:=T.length)(ステップS7)、ACK通知処理を行って(ステップS9)、処理を終了する。
【0197】
一方、終段ノードでなければ、次に確定フラグがオン(P.cflag==on?)であるかどうかをチェックする(ステップS4)。もしオンであれば、ACK待ちのスレッドがないため、パス長がスレッド長以上であれば(P.length>=T.length?)(ステップS8)、ACK通知処理を行って(ステップS9)、処理を終了し、そうでなければ、ループでないかどうかこのノードでは判断できないため、スレッド通知処理を行なって(ステップS6)、処理を終了する。
【0198】
一方、ステップS4において、確定フラグがオフであれば、もし、スレッドTがループを形成し、かつ、パス長が<不定>でないかまたはスレッド長T.lengthがしきい値Lmax以上であるがNoならば(ステップS5)、スレッド通知処理を行なって(ステップS6)、処理を終了する。
【0199】
そうでなく、もし、スレッドTがループを形成し、かつ、パス長が<不定>でないかまたはスレッド長T.lengthがしきい値Lmax以上である場合には、パス長が<不定>でなければ(ステップS10)、パス長修正処理(ステップS11)を行い、入力リンクLiに記憶したスレッドのスレッド色を0に設定して(T.color:=0)(ステップS12)、処理を終了する。パス長が<不定>であれば、入力リンクLiに記憶したスレッドのスレッド色を0に設定して(T.color:=0)(ステップS12)、処理を終了する。
【0200】
ACK通知処理では、パスの確定フラグをオンにし(P.cflag:=on)、隣接ノードNにACKを返す。
【0201】
スレッド通知処理では、パスの確定フラグをoffにし(P.cflag:=off)、必要であればスレッドのマージを行ない、Pの出力リンクLoが存在しなければ、新たに生成し、Lo.neighbor_addressで指定される隣接ノードにスレッドを通知する。なお、マージ対象となるスレッドは、入力リンクに登録されているスレッドのうち、スレッド長が0でないものである。
【0202】
スレッド長修正処理では、パス長を<不定>とし、スレッド長=パス長のスレッドをパスPの出力リンクLoのLo.neighbor_addressで指定される下流隣接ノードに通知する。
【0203】
次に、経路変更が起こったノード装置の動作手順について説明する。
【0204】
図17に、経路変更が起こったノード装置の処理手順を表すフローチャートの一例を示す。
【0205】
ここでは、パス長をスレッドのACKを待たずに更新する場合について説明する。
【0206】
この処理は、経路変更の対象となるフローのフロー識別子を持つパスのそれぞれに対して行なわれる。
【0207】
現在、経路変更処理の対象となっているパスをPとする(ステップS21)。
【0208】
まず、このノードが経路変更後に終段ノードとなるかどうかをチェックする(ステップS22)。もし、終段ノードであれば、ただちに処理を終了する。
【0209】
終段ノードでなければ、パス長がしきい値Lmax以上かどうかをチェック(P.length>=Lmax?)(ステップS23)し、もし、そうであれば、ただちに処理を終了する。
【0210】
そうでなければ、スレッドTを新たに生成し、パス長をスレッド長にセットする(T.length:=P.length)(ステップS24)。
【0211】
次に、パスPの確定フラグがオフであれば(P.cflag==off?)(ステップS25)、旧経路上にACK待ちのスレッドがあるため、旧経路のスレッド削除処理を行い(ステップS26)、そして、新経路上へのスレッド通知処理を行なう(ステップS27)。
【0212】
旧経路のスレッド削除処理では、Pの旧経路上の出力リンクLoの下流隣接ノードLo.neighbor_addressにスレッドの削除が通知される。
【0213】
一方、パスPの確定フラグがオンであれば(P.cflag==off?)、旧経路上にACK待ちのスレッドがないため、旧経路に対しては何もせずに、新経路上へのスレッド通知処理を行なう(ステップS27)。
【0214】
新経路上へのスレッド通知処理では、パスPの確定フラグをオフにし(P.cflag:=off)、次に、新経路上の出力リンクLoの下流隣接ノードLo.neighbor_addressにスレッドの通知を行なう。
【0215】
次に、ノード装置においてループ検出のためにノード間でやりとりされるラベル配送プロトコルメッセージのフォーマットについて説明する。
【0216】
図18に、メッセージのフォーマットの一例を示す。
【0217】
図18において、隣接ノード識別子は、メッセージの送信ノードに関する情報を表す。隣接ノード識別子として、L3アドレス、またはL3アドレス+隣接ノードがローカルに割り当てたID(label space id)が使用可能である。label space idは、L3アドレスがルータIDのとき、同じノードの複数のインターフェース間や同じインターフェースにつながる複数の隣接ノードとの間でラベル領域の共有や分割を指定する。
【0218】
メッセージタイプには、ラベル配送プロトコルで使用されるメッセージの種類を記入する。メッセージタイプには、ラベル割当て要求メッセージ(SETUP)、ラベル解放メッセージ(RELEASE)、更新メッセージ(UPDATE)、キャンセルメッセージ、ラベル割当て成功メッセージ(ACK)、更新成功メッセージ、トリガメッセージがある。
【0219】
メッセージ長には、メッセージ長以降のフィールドの全体の長さを入れる。
【0220】
フロー識別子には、フローを識別するための情報で、例えば先に例示した(もしくは前述の文献や特願平10−5044にて示されている)フロー識別子が使用可能である。
【0221】
フロー識別子は、フロータイプとタイプ別フロー定義から構成される。
【0222】
フロー識別子は、少なくともラベル割当て要求メッセージに含まれる。
【0223】
リンク識別子は、隣接ノード間で同じフロー識別子を持つ複数のパスを識別するために使用される、各ノードの各インターフェース内で一意な識別子である。リンク識別子としてラベルそのものを使用してもよい。
【0224】
スレッド色、スレッド長には、通知するスレッドの情報を入れる。
【0225】
スレッド色は、スレッドを生成したノードのアドレスとノード内でローカルに割り当てたローカルIDの組で指定される。ノードがローカルIDを割り当てる場合には、同じフローに対して以前割当てた値を使用しないようにする。最も単純な方法は、割当てる度にノードが持つローカルIDをインクリメントすることである。
【0226】
スレッド長は、初段からのホップカウントを表す。ただし、経路がループしている場合には、第1の具体例で示したように、スレッドを生成したノードでスレッド長の修正が行なわれる。
【0227】
ラベルは、ラベルスイッチングされるパケットのヘッダに付けられる値で、downstream on demand allocationのときは、ラベル割当て成功メッセージで、upstream allocation,downstream allocationのときは、ラベル割当て要求メッセージで隣接ノードに通知される。
【0228】
ラベルが未設定のパス上をスレッドが流れる場合で、downstream on demand allocation/downstream allocationの場合には、ラベル割当て要求メッセージを用いて上流から下流にスレッドが転送される。upstream allocationの場合には、ラベル割当て成功メッセージを用いて上流から下流にスレッドが転送される。
【0229】
ラベルが設定済みのパス上をスレッドが流れる場合には、更新メッセージを使用して、上流から下流にスレッドが転送される。
【0230】
ラベルを解放する場合には、ラベル解放メッセージが用いられる。
【0231】
ラベル解放メッセージには、スレッドのフィールドはなくてもよい。
【0232】
スレッドの削除を通知する場合には、キャンセルメッセージを用いる。キャンセルメッセージがラベルが未設定のパス上を流れる場合には、スレッドが削除されるとともに、リンクも削除される。キャンセルメッセージがラベルが設定済みのパス上を流れる場合には、スレッドは削除されるがリンクは削除されない。
【0233】
スレッドに対するACKがラベルが未設定のパス上を流れる場合には、ラベル割当て成功メッセージが用いられる。スレッドに対するACKがラベルが設定済みのパス上を流れる場合には、更新成功メッセージが使用される。ラベル割当て成功メッセージ、更新成功メッセージにはスレッド情報を入れなくてもよい。
【0234】
トリガメッセージは、終段ノード主導でパスを生成する場合に、経路変更ノードにおいて、新経路上の下流隣接ノードにパス設定の要求を通知するために使用する。
【0235】
以上により、ループ回避のためのリトライ機構がまったく必要がなく、また、1つのスレッドの更新が個々の更新毎のACKを待つことなく実行できるため、高速なパス設定が実現できる。
【0236】
また、スレッドはマージできるため、ループ回避のために必要なメッセージ数の削減が可能となり、さらに、パスベクトルのようにメッセージ長がパス長が増えるとともに増加せずに一定値で押えられるため、ネットワークリソースの節約が可能となる。
【0237】
また、経路変更時に新経路がループしている場合には、旧経路上のパスを使い続けることができる。また、ループしている間は、スレッドを通知中のノードでラベルの割当てが行なわれないため、ラベルリソースの節約が可能である。さらに、ラベル割り当てが行なわれないフローのパケットは代理初段ノードで廃棄するようにすれば、ネットワークリソースの節約も可能である。
【0238】
また、スレッド通知中に、途中のノードやリンクの故障によりにスレッドの情報が失われても、ラベル配送プロトコルが隣接ノードとの間のセッションの切断を自動的に検出できれば、スレッド転送のデッドロックやスレッド情報の矛盾が生じないため、ロバストなループ回避メカニズムが提供できる。
【0239】
さらに、いったんパスができると、スレッド色は記憶する必要がないため、ネットワークが定常状態の場合に記憶する情報量を減らすことができる。
【0240】
これまでの説明では、一旦、ラベルが割り当てられたパスに対しては、ラベル割り当てメッセージは送信しないようなハードステート型のプロトコルを前提にしていたが、本発明は、いったんラベルが割り当てられたパスに対しても、定期的にラベル割り当てメッセージを送信するようなソフトステート型のプロトコルに関しても有効である。ソフトステート型の場合には、一定期間ラベル割り当てメッセージを受信しない場合にはラベルが解放される。
【0241】
なお、以上の各機能は、ソフトウェアとしても実現可能である。
【0242】
また、本実施形態は、コンピュータに所定の手順を実行させるための(あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるための)プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。
【0243】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【0244】
【発明の効果】
本発明によれば、ラベルスイッチングパスの設定に関わるメッセージが、経由する各ノードにメッセージ処理中である旨を記憶させながら、パスがループを形成しないことが確認できるノードまで転送され、そこから返答メッセージが返ってくる過程で、順次パスの経路上の各ノードのメッセージ処理中状態が解消され、そこではじめてパスの設定が確立されていくため、ループを形成するか否かの判断は、処理中状態となっているメッセージ(例えば、スレッド)のみを対象とすれば良く、ループ検出が簡単に行える。また、経路変更時も、古いパスは既に確立している(ループ判断の対象外である)ため、新しいパスが古いパスとぶつかった場合にも誤ってループと判断することがなくなる。したがって、新しいパスが確立されるまで古いパスへパケットを流し続けることも可能となり、新しいパスが古いパスと一部経路を同じくする場合にその部分のリンク情報を利用し続けることも可能となる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るノード装置の接続状態の一例を示す図
【図2】設定されたラベルスイッチングパスの一例を示す図
【図3】経路の一部に変更が起こったときのノード装置の動作例を説明するための図
【図4】経路の一部に変更が起こったときのノード装置の動作例を説明するための図
【図5】経路変更されたラベルスイッチングパスの一例を示す図
【図6】経路の一部に変更が起こったときのノード装置の動作例を説明するための図
【図7】経路の一部に変更が起こったときのノード装置の動作例を説明するための図
【図8】経路変更されたラベルスイッチングパスの一例を示す図
【図9】本発明の一実施形態に係るノード装置の接続状態の他の例を示す図
【図10】設定されたラベルスイッチングパスの一例を示す図
【図11】経路の一部に変更が起こったときのノード装置の動作例を説明するための図
【図12】経路変更されたラベルスイッチングパスの一例を示す図
【図13】経路の一部に変更が起こったときのノード装置の動作例を説明するための図
【図14】ループ検出に使用される内部データベースの構成例を示す図
【図15】ループ検出に使用される内部データベースの構成例を示す図
【図16】スレッド受信時のノード装置の動作の一例を示すフローチャート
【図17】経路変更が起こったノード装置の動作の一例を示すフローチャート
【図18】ループ検出のためにノード装置間でやりとりされるメッセージのフォーマットの一例を示す図
【図19】従来のループ検出方法を説明するための図
【図20】従来のループ検出方法を説明するための図
【符号の説明】
R1〜R11…ノード装置
Claims (21)
- あるパケットフロー用のラベルスイッチングパスの設定に関わるメッセージであって、該パケットフローを識別可能なフロー識別子、及び、該パケットフローに関して処理中であることを示す情報を含むものを受信したノードが、メッセージ処理中として該ノード内に記憶されている情報を対象として、該ラベルスイッチングパスがループを形成するか否かを判断し、
前記メッセージを受信したノードが、前記ラベルスイッチングパスがループを形成しないとは判断できない場合には、前記フロー識別子を、メッセージ処理中として該ノード内に記憶すると共に、前記メッセージを前記パケットフローの経路上のノードへ転送し、
前記メッセージを受信したノードが、前記ラベルスイッチングパスがループを形成しないことを確認できた場合には、前記メッセージに対する返答メッセージを返送し、
この返答メッセージを最新の返答として受信したノードは、該返答メッセージを、前記メッセージを送信/転送しメッセージ処理中となっているノードへ転送し、
前記返答メッセージを最新の返答として受信したノードは、該返答メッセージに対応する、メッセージ処理中として該ノード内に記憶されている情報が、以降は前記判断の対象とならないように、メッセージ処理中としての記憶を削除し、前記ラベルスイッチングパスを利用可能とすることを特徴とするラベルスイッチングパス設定方法。 - 前記メッセージを受信したノードが、前記ラベルスイッチングパスがループを形成すると判断した場合には、前記メッセージの転送は行わず、前記返答メッセージも返送しないことを特徴とする請求項1に記載のラベルスイッチングパス設定方法。
- 前記判断においては、受信した前記メッセージに含まれるのと同一のフロー識 別子についての情報を、メッセージ処理中として該ノード内に記憶しているか否かに基づいて、前記ラベルスイッチングパスがループを形成するか否かを判断することを特徴とする請求項1に記載のラベルスイッチングパス設定方法。
- 前記メッセージには、前記パケットフローに関する処理中のメッセージをネットワークグローバルに識別可能なメッセージ識別子も含まれることを特徴とする請求項1に記載のラベルスイッチングパス設定方法。
- 前記判断においては、受信した前記メッセージに含まれるのと同一のフロー識別子及びメッセージ識別子をメッセージ処理中として該ノード内に記憶しているか否かに基づいて、前記ラベルスイッチングパスがループを形成するか否かを判断することを特徴とする請求項4に記載のラベルスイッチングパス設定方法。
- 前記メッセージは、設定要求されたラベルスイッチングパスの初段のノードから該メッセージを受信したノードまでのホップ数を求めることが可能な情報を含むものであり、
前記メッセージを受信したノードが、このメッセージに含まれる情報に基づき前記ホップ数が所定値を超えると判断した場合は、前記ラベルスイッチングパスがループを形成すると判断した場合と同様に扱うことをことを特徴とする請求項1または2に記載のラベルスイッチングパス設定方法。 - 前記メッセージを受信したノードは、自ノードが設定要求されたラベルスイッチングパスの終段のノードである場合、もしくは、自ノードの下流に対応する確立されたラベルスイッチングパスが存在しこれに設定要求されたパスを接続して良い場合に、前記ラベルスイッチングパスがループを形成しないことを確認できたものとすることを特徴とする請求項1に記載のラベルスイッチングパス設定方法。
- 設定しようとするラベルスイッチングパスの初段のノード、もしくは、確立されたラベルスイッチングパスの中段のノードで経路変更が起こった場合のそのノード、もしくは、確立されたラベルスイッチングパスの終段のノードで下流隣接ノードを新たに認識したノードが、前記メッセージを能動的に送信することを特徴とする請求項1に記載のラベルスイッチングパス設定方法。
- 前記メッセージ識別子は、該メッセージ識別子を割り当てたノードの識別情報を含むことを特徴とする請求項1に記載のラベルスイッチングパス設定方法。
- 前記返答メッセージの返送の際に、ラベルスイッチングのためのリンク情報に含まれるラベルの割り当てを行うことを特徴とする請求項1に記載のラベルスイッチングパス設定方法。
- 前記メッセージを受信したあるノードで前記ラベルスイッチングパスがループを形成すると判断された場合に、前記メッセージを能動的に送信したノードは、前記ラベルスイッチングパスの設定の必要が無くなった場合に、前記メッセージに対する取消メッセージを送信し、前記メッセージを転送した各ノードは、対応する前記取消メッセージを受信するまでは、メッセージ処理中としての記憶を保持しておくことを特徴とする請求項1に記載のラベルスイッチングパス設定方法。
- 前記メッセージを受信したノードは、設定しようとするラベルスイッチングパスを同じくするメッセージが処理中であることが記憶されており、該ラベルスイッチングパスがループを形成するか否かを判断できない場合には、受信したメッセージと処理中のメッセージとを一つのメッセージとして扱うことを特徴とする請求項1に記載のラベルスイッチングパス設定方法。
- 前記メッセージは、設定要求されたラベルスイッチングパスの初段のノードから該メッセージを受信したノードまでのホップ数を求めることが可能な情報を含むものであり、
前記メッセージを受信したノードは、前記ラベルスイッチングパスがループを形成すると判断した場合に、該ラベルスイッチングパスの初段のノードから自ノードまでのホップ数に関する情報を修正することを特徴とする請求項1に記載のラベルスイッチングパス設定方法。 - ラベルスイッチングパスを設定するノード装置であって、
あるパケットフロー用のラベルスイッチングパスの設定に関わる要求メッセージであって、該パケットフローを識別可能なフロー識別子、及び、該パケットフローに関して処理中であることを示す情報を含むものを受信した場合に、未確定として記憶手段内に記憶されている情報を対象として、該ラベルスイッチングパスがループを形成するか否かを判断する判断手段と、
前記判断手段により前記ラベルスイッチングパスがループを形成しないことが確認できない場合には、前記フロー識別子を、未確定として前記記憶手段内に記憶すると共に、前記要求メッセージを前記パケットフローの経路上のノードへ転送し、前記判断手段により前記ラベルスイッチングパスがループを形成しないことが確認できた場合には、前記要求メッセージに対する返答メッセージを返送する第1の処理手段と、
前記要求メッセージに対する返答メッセージを最新の返答として受信した場合に、現在は未確定として前記記憶手段内に記憶されている情報が、以降は前記判断の対象とならないように、該情報を確定として記憶するように変更し、該返答メッセージを、前記要求メッセージを転送し現在未確定として情報を記憶している他のノードへ転送して、前記ラベルスイッチングパスを利用可能とする第2の処理手段とを備えたことを特徴とするノード装置。 - 前記判断手段が、前記ラベルスイッチングパスがループを形成すると判断した場合には、前記要求メッセージの転送は行わず、前記返答メッセージも返送しないことを特徴とする請求項14に記載のノード装置。
- 前記判断手段は、前記要求メッセージに含まれるのと同一のフロー識別子につ いての情報を、未確定として前記記憶手段内に記憶しているか否かに基づいて、前記ラベルスイッチングパスがループを形成するか否かを判断することを特徴とする請求項14に記載のノード装置。
- 前記要求メッセージには、前記パケットフローに関する処理中のメッセージをネットワークグローバルに識別可能なメッセージ識別子も含まれ、
前記前記第1の処理手段は、前記メッセージ識別子を前記フロー識別子とともに記憶することを特徴とする請求項14に記載のノード装置。 - 前記判断手段は、受信した前記要求メッセージに含まれるのと同一のフロー識別子及びメッセージ識別子を未確定として前記記憶手段内に記憶しているか否かに基づいて、前記ラベルスイッチングパスがループを形成するか否かを判断することを特徴とする請求項14に記載のノード装置。
- 前記判断手段は、自ノードが設定要求されたラベルスイッチングパスの終段のノードである場合、もしくは、自ノードの下流に対応する確立されたラベルスイッチングパスが存在しこれに設定要求されたパスを接続して良い場合に、前記ラベルスイッチングパスがループを形成しないことを確認できたものとすることを特徴とする請求項14に記載のノード装置。
- 自ノードが、設定しようとするラベルスイッチングパスの初段のノード、もしくは、確立されたラベルスイッチングパスの中段のノードで経路変更が起こった場合のそのノード、もしくは、確立されたラベルスイッチングパスの終段のノードで下流隣接ノードを新たに認識したノードである場合に、要求メッセージを能動的に送信する転送手段をさらに備えたことを特徴とする請求項14に記載のノード装置。
- 前記第1の処理手段により、設定しようとするラベルスイッチングパスを同じくする他の要求メッセージが現在未確定として記憶されており、前記判断手段に より、該ラベルスイッチングパスがループを形成するか否かが判断できない場合には、受信した前記要求メッセージと該他の要求メッセージとを一つのメッセージとして扱うことを特徴とする請求項14に記載のノード装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20366798A JP3615057B2 (ja) | 1998-07-17 | 1998-07-17 | ラベルスイッチングパス設定方法及びノード装置 |
US09/356,054 US6529958B1 (en) | 1998-07-17 | 1999-07-16 | Label switched path set up scheme with reduced need for label set up retry operation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20366798A JP3615057B2 (ja) | 1998-07-17 | 1998-07-17 | ラベルスイッチングパス設定方法及びノード装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000036836A JP2000036836A (ja) | 2000-02-02 |
JP3615057B2 true JP3615057B2 (ja) | 2005-01-26 |
Family
ID=16477868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20366798A Expired - Fee Related JP3615057B2 (ja) | 1998-07-17 | 1998-07-17 | ラベルスイッチングパス設定方法及びノード装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6529958B1 (ja) |
JP (1) | JP3615057B2 (ja) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3699837B2 (ja) * | 1998-10-30 | 2005-09-28 | 株式会社東芝 | ルータ装置及びラベルスイッチパス制御方法 |
US6952827B1 (en) * | 1998-11-13 | 2005-10-04 | Cray Inc. | User program and operating system interface in a multithreaded environment |
US20030088699A1 (en) * | 1999-11-04 | 2003-05-08 | James V. Luciani | System, device, and method for supporting virtual private networks in a label switched communication network |
US7532613B1 (en) * | 1999-10-14 | 2009-05-12 | Nortel Networks Limited | Establishing a communications session having a quality of service in a communications system |
JP3614059B2 (ja) * | 1999-11-30 | 2005-01-26 | 日本電気株式会社 | 通信コネクションマージ方法及びそれを用いるノード |
JP4150159B2 (ja) * | 2000-03-01 | 2008-09-17 | 富士通株式会社 | 伝送経路制御装置及び伝送経路制御方法並びに伝送経路制御プログラムを記録した媒体 |
JP2001251351A (ja) * | 2000-03-02 | 2001-09-14 | Nec Corp | パケット交換機における入力パケット処理方式 |
EP1162789A1 (de) * | 2000-06-08 | 2001-12-12 | Siemens Aktiengesellschaft | Verfahren zur Verwaltung von Pfadinformationen und deren Änderungen in einem MPLS-Netzwerk |
US6968359B1 (en) * | 2000-08-14 | 2005-11-22 | International Business Machines Corporation | Merge protocol for clustered computer system |
US6842788B1 (en) * | 2000-10-11 | 2005-01-11 | Nortel Networks Limited | Computing and using resource colors for composite links |
US6985447B2 (en) * | 2000-10-20 | 2006-01-10 | Nortel Networks Limited | Label switched traffic routing and signaling in a label switched communication packet network |
US6839752B1 (en) | 2000-10-27 | 2005-01-04 | International Business Machines Corporation | Group data sharing during membership change in clustered computer system |
US7185099B1 (en) | 2000-11-22 | 2007-02-27 | International Business Machines Corporation | Apparatus and method for communicating between computer systems using a sliding send window for ordered messages in a clustered computing environment |
US7769844B2 (en) | 2000-12-07 | 2010-08-03 | International Business Machines Corporation | Peer protocol status query in clustered computer system |
CA2327896A1 (en) * | 2000-12-08 | 2002-06-08 | Alcatel Canada Inc. | An mpls implementation on an atm platform |
US7289512B2 (en) * | 2000-12-22 | 2007-10-30 | Siemens Aktiengesellschaft | ATM transmission system |
JP4328478B2 (ja) * | 2001-08-27 | 2009-09-09 | 富士通株式会社 | ラベル転送ネットワークにおける経路変更方法並びにラベルスイッチングノード及び管理ノード |
US7231461B2 (en) * | 2001-09-14 | 2007-06-12 | International Business Machines Corporation | Synchronization of group state data when rejoining a member to a primary-backup group in a clustered computer system |
KR100411134B1 (ko) * | 2001-11-27 | 2003-12-18 | 에스케이 텔레콤주식회사 | 멀티-프로토콜 레이블 스위칭 기반의 멀티 캐스트 라우팅프로토콜 설정 방법 |
US8429221B2 (en) * | 2001-12-13 | 2013-04-23 | Rockstar Consortium Us Lp | Content request routing method |
US6801545B2 (en) * | 2002-02-04 | 2004-10-05 | Fujitsu Network Communications, Inc. | Container transport for packets in connection oriented protocols |
US20060045014A1 (en) * | 2002-09-30 | 2006-03-02 | Siemens Aktiengesellschaft | Method for partially maintaining packet sequences in connectionless packet switching with alternative routing |
CN1729661A (zh) * | 2002-12-18 | 2006-02-01 | 皇家飞利浦电子股份有限公司 | 分组交换网络中返回路径的推导 |
US8176201B1 (en) * | 2003-11-05 | 2012-05-08 | Juniper Networks, Inc. | Controlling the signaling of label-switched paths using a label distribution protocol employing messages which facilitate the use of external prefixes |
US7382734B2 (en) * | 2004-05-20 | 2008-06-03 | Hewlett-Packard Development Company, L.P. | Directing a path verification request along a specific path to a mesh network switch to test operability of the specific path |
US7609705B2 (en) * | 2004-05-20 | 2009-10-27 | Hewlett-Packard Development Company, L.P. | Determination of a plurality of paths before selection of one path of the plurality of paths for transmission of one or more packets |
JP2006033275A (ja) * | 2004-07-14 | 2006-02-02 | Fujitsu Ltd | ループフレーム検知装置およびループフレーム検知方法 |
US7646772B2 (en) * | 2004-08-13 | 2010-01-12 | Cisco Technology, Inc. | Graceful shutdown of LDP on specific interfaces between label switched routers |
US7827303B1 (en) * | 2004-09-14 | 2010-11-02 | Engate Technology Corporation | Loop protection for a protective proxy |
US9686183B2 (en) | 2005-12-06 | 2017-06-20 | Zarbaña Digital Fund Llc | Digital object routing based on a service request |
US8014389B2 (en) | 2005-12-06 | 2011-09-06 | Lippershy Celestial Llc | Bidding network |
US8055897B2 (en) * | 2005-12-06 | 2011-11-08 | Lippershy Celestial Llc | Digital object title and transmission information |
US7894447B2 (en) * | 2005-12-06 | 2011-02-22 | Lippershy Celestial Llc | Digital object routing |
US8194701B2 (en) * | 2005-12-06 | 2012-06-05 | Lippershy Celestial Llc | System and/or method for downstream bidding |
FR2902956B1 (fr) * | 2006-06-23 | 2008-09-19 | Airbus France Sas | Procede de routage de liens virtuels dans un reseau a commutation de trames a determinisme garanti |
CN101155179B (zh) * | 2006-09-30 | 2010-04-21 | 华为技术有限公司 | 一种多协议标签交换中环路拆除的方法 |
US8014317B1 (en) * | 2008-08-21 | 2011-09-06 | Juniper Networks, Inc. | Next hop chaining for forwarding data in a network switching device |
US8644186B1 (en) * | 2008-10-03 | 2014-02-04 | Cisco Technology, Inc. | System and method for detecting loops for routing in a network environment |
US8850014B2 (en) * | 2010-05-06 | 2014-09-30 | Telefonaktiebolaget L M Ericsson (Publ) | Handling failure of request message during set up of label switched path |
US9680745B2 (en) | 2014-01-20 | 2017-06-13 | Huawei Technologies Co., Ltd. | Multi-domain source routed forwarding based on collaborating network controllers |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6148000A (en) * | 1996-10-02 | 2000-11-14 | International Business Machines Corporation | Merging of data cells at network nodes |
US6341127B1 (en) * | 1997-07-11 | 2002-01-22 | Kabushiki Kaisha Toshiba | Node device and method for controlling label switching path set up in inter-connected networks |
US6205488B1 (en) * | 1998-11-13 | 2001-03-20 | Nortel Networks Limited | Internet protocol virtual private network realization using multi-protocol label switching tunnels |
-
1998
- 1998-07-17 JP JP20366798A patent/JP3615057B2/ja not_active Expired - Fee Related
-
1999
- 1999-07-16 US US09/356,054 patent/US6529958B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000036836A (ja) | 2000-02-02 |
US6529958B1 (en) | 2003-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3615057B2 (ja) | ラベルスイッチングパス設定方法及びノード装置 | |
JP3688877B2 (ja) | ノード装置及びラベルスイッチングパスのループ検出方法 | |
US7065059B1 (en) | Technique for restoring adjacencies in OSPF in a non-stop forwarding intermediate node of a computer network | |
JP3701476B2 (ja) | データ通信方法 | |
JP2723084B2 (ja) | リンクステートルーティング装置 | |
Albrightson et al. | EIGRP--A fast routing protocol based on distance vectors | |
US6683874B1 (en) | Router device and label switched path control method using upstream initiated aggregation | |
US5265092A (en) | Synchronization mechanism for link state packet routing | |
JP5691703B2 (ja) | マルチキャストネットワークシステム | |
EP0637149B1 (en) | Method for establishing multicast virtual circuits | |
US7983153B2 (en) | Fast reroute (FRR) protection at the edge of a RFC 2547 network | |
US6147971A (en) | Optimized routing method based on minimal hop count for use in PNNI based asynchronous transfer mode networks | |
JP5850471B2 (ja) | 通信システム、制御装置、ノード制御方法およびプログラム | |
US20030043792A1 (en) | Label switched communication network, a method of conditioning the network and a method of data transmission | |
JP3688408B2 (ja) | パケット転送制御方法及びノード装置 | |
JPH1032594A (ja) | Atmネットワークにおける階層的マルチキャストルーティング用システムおよび方法 | |
JPWO2002087175A1 (ja) | リストレーション・プロテクション方法及び装置 | |
US7969898B1 (en) | Technique for breaking loops in a communications network | |
WO2013026336A1 (zh) | 一种路径检测的实现方法及节点 | |
US6212188B1 (en) | Method of source routing in an asynchronous transfer mode network when a node is in an overload state | |
CN101163103A (zh) | 一种实现快速重路由的方法 | |
CN110881006B (zh) | 发送报文的方法、网络设备及计算机存储介质 | |
US20050074010A1 (en) | Method and apparatus for exchanging routing information in distributed router system | |
JP3517114B2 (ja) | ノード装置並びにループ検出方法及びパケット送信方法 | |
Chen et al. | Distributed qos routing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040716 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040727 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20041026 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041028 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071112 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081112 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091112 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |