(実施形態1)
本実施形態では、CSR(Cell Switch Router) の技術を用いて、ATM(Asynchronous Transfer Mode) 上で資源予約プロトコルであるRSVP(resource ReSeVation Protocol) を実現するための方法を述べる。
RSVPは、送信元アドレス/ポートと宛先アドレス/ポートの組(宛先アドレス/ポートだけでもよい)等で識別するフローに属するパケット転送のQOS (サービス品質)をルータで保証するものである。このフローを識別する識別子をここでは、Flow ID と呼ぶことにする。このQOS 保証は、ルータ内部でパケット転送のスケジューリングを行うことにより、資源を予約しているパケットについては、早めに転送を行うようにすることにより、実現される。
CSR は、通常のルータと同じIPパケット単位で転送する動作を行う他に、ルータ内部にATM スイッチ機能を持つことにより、より高速なATM セル単位の転送を行うことができるルータである。
図1 を使って、CSR の簡単な動作を説明する。X.1 からCSR を通してY.1 にパケットを転送する場合を考える。通常と同じIPパケット転送の動作を行うためには、X.1 からCSR に色々な宛先のパケットを転送するために設定されているATM コネクションでパケットを送信する。ここでは、このATM コネクションをデフォルトVC(Virtual Connection)と呼ぶ。CSR では、IPパケットの宛先を見て次に配送するノードを決定する。ここでは、次のノードは、Y.1 になるので、デフォルトVCにパケットを送出することによりY.1 へとパケットが転送される。
次に、ATM セル転送の動作を説明する。Y.1 へのパケット転送専用のX.1 からCSR へのATM コネクションとCSR からY.1 へのATM コネクションとが設定されているとする。ここでは、このATM コネクションを専用VCと呼ぶ。さらに、これら2つの専用VCをCSR 内のATM スイッチ機能でATM セル単位で転送できるように設定しておく。すなわち、X.1 からCSR への専用VCのCS
R の受信ポートでのVPI/VCI と、CSR からY.1 への専用VCのCSR
の送信ポートでのVPI/VCI との対応関係を、ATM レベルのルーティングテーブルとして記憶しておく。このような設定を行うことで、二つの論理ネットワーク(IP Subnet )に属する専用VCを直結するバイパスパイプが形成されたことになる。
X.1 からY.1 へのパケット転送を行うには、X.1 からY.1 用の専用VCにパケットを送信することにより、X.1 からCSR に送られ、CSR でATM
レベルのルーティングテーブルを参照することによりATM セルのままCSR からY.1 への専用VCに転送されて、その専用VCでY.1 へ送られる。
なお、ここでは、専用VCにて送信されるパケットをATM セル単位で転送することを、専用VCの直結として説明したが、専用VCにて送信されるパケットをAAL(ATM Adaptation Layer) フレーム単位で転送することで、専用VCの直結としても良い。この場合も、上記のATM レベルのルーティングテーブルを参照することにより、AAL フレーム転送が行える。以上の場合はいずれも、ネットワークレイヤ(例えばIP)レベルの解析処理を行わずに、パケットが転送されることになる。
また、専用VCにて送信されるパケットに対し、パケットの最終宛先アドレスから出力先とすべきVCを決定するネットワークレイヤレベルのルーティングテーブル参照処理は行わず、その他のネットワークレイヤレベルの処理(IPの場合はTTL(Time To Live) を減らす処理やチェックサム計算等)は行って、次段ノードへの専用VCに転送することを、上記専用VCの直結としても良い。この場合も、上記のATM レベルのルーティングテーブルを参照することにより、出力先とすべきVCが決定でき、パケット転送が行える。この場合は、ネットワークレイヤレベルの処理を一部だけ行って、パケットが転送されることになる。
本発明は、CSR の動作が以上に説明したいずれのものであっても、適用可能である。
さて、RSVPで資源予約を行う場合は、ルータ内でIP転送のスケジューリングを行う必要があるが、ルータにCSR を用いると、パケット転送をATM セル単位でATM スイッチ機能で転送できるので、パケット転送のスケジューリングをATM スイッチ機能で行うことができる。すなわち、資源を予約しているパケットについては、ATM
スイッチ機能(ATM セル転送、AAL フレーム転送、IP処理の一部を省略したパケット転送のいずれでも良い)を用いることにより高速に転送を行うことができる。以下では、RSVPを用いた時の専用VCの設定手順を述べる。
(具体例1)
本例では、ATM コネクションがSVC(Switched Virtual Connection)であり、ユニキャストを想定した場合について説明する。
図2 の様なネットワークトポロジーを例にとり専用VCの設定の手順を述べる。H1,H2 はホストを示し、R1,R2,R3はルータを示している。これらの全てのノード間にはデフォルトVCがあらかじめ設定されていると仮定する。
以下の手順では、R1,R2,R3を取り出して、その間で行われる手順を説明する。H1とR1間やR3とH2間のようなホストとルータ間(ホストもルータもいずれもノードである)の手順も、仮想コネクション型ネットワークで接続されているならば、ルータ同士の手順と同じなので、ここでは、省略する。
(具体例1−1)
本例では、あるフローに属するパケットをどの専用VCで送信するかを通知する
メッセージをアウトバンドで流す場合について説明する。
図3 のようにルータ1,2,3(R1,R2,R3)が存在している場合に、ルータ2 での資源予約の方法を述べる。初期状態として、ルータ1 からルータ2 へ、ルータ2 からルータ3 へのデフォルトVCとルータ2 からルータ3 への専用VCが設定されている状況を考える。以下では、メッセージ交換の様子を示す図(図3 )と、下流側のルータ(図3 ではR2)内部の動作図(図4 、図5 )と、上流側のルータ(図3 ではR1)内部の動作図(図6 )を用いて説明する。
はじめに、図3 のようにルータ3 からRSVPの予約(RESV)メッセージがルータ2 に到着したとする。RESVメッセージには、どのパケットに対して予約すべきか示すためのFlow ID と予約したいQOS が書かれている。Flow ID には、発信元IPアドレス/ポート、宛先IPアドレス/ポートの組、あるいは、IPv6 のFlow ID が書かれている。QOS には、帯域の情報や遅延の情報が書かれている。
RESVメッセージを受信したルータ2は、図4 及び図5 のフローチャートに従い、RSVPメッセージ中のFlow ID 用の下流側の専用VCがあるかチェックする(S1)。この例では、専用VCが存在するので専用VC依頼メッセージを上流側のノード(R1)に送出する(S2)。このメッセージには、RESVメッセージの内容と同じFlow ID とQOS の情報を持つ。もしくは、RESVのQOS からATM レベルの品質を求めてこれをQOS の情報として専用VC依頼メッセージに書き込んでも良い。
もし、下流側に専用VCが無い場合は、IP処理部で要求された資源を確保できるか判断し(S3)、資源予約できる場合には、IP転送のスケジューリングを行うことにより資源予約して上流にRESVメッセージを送出する(S5)と共に、専用VC依頼メッセージを上流に送出し(S2)、資源予約できない場合には、RESV ERRORを下流ノードに送出する(S4)。
なお、自ルータでは下流に専用VCがなくても資源予約できる場合であっても、専用VC依頼メッセージを上流に送出するのは、自ルータより上流のノード群の中に、専用VCの直結を行わないと要求された資源が確保できないノードが存在する可能性があることに対処するためである。特に、宛先ノード(ホストH2)、もしくは、宛先ノードが非仮想コネクション型ネットワークに接続されている場合の、非仮想コネクション型ネットワークと仮想コネクション型ネットワークとの境界に位置するルータは、専用VCの直結は行わないが、専用VC依頼メッセージは上流に送出するようにする。
専用VC依頼メッセージを受信したルータ1 は、図6 のフローチャートに従い、ATM シグナリングを用いて、専用VC依頼メッセージを送信したノード(ルータ2 )への、要求QOS を満たせるATM コネクション(専用VC)を設定する(S21)。
ATM コネクションの設定が終わるとこのコネクションを両端で一意に識別できるようにVCIDという識別子を付ける。これは、ルータ1 及び2 の属する論理ネットワーク内でユニークな識別子である。このVCIDの付け方は、例えば、グローバルユニークなホストのIDとそのホストで発行したVCIDのシーケンス番号を付けることで、一
意なVCIDを付けることができる。このように作ったVCIDを、VCID提案メッセージを新しくつくったATM コネクション(専用VC)に流すことで、下流ノードに運ぶ(S22)。
このメッセージには、送信者側(ルータ1 )が提案するVCIDと、ターゲットIPアドレス(ルータ2 のIPアドレス)とが入っている。ターゲットIPアドレスは、後述するように専用VCをポイント−マルチポイント化することに対処するために、書き込まれる。
このVCID提案メッセージを受信したノード(ルータ2 )は、このメッセージに含まれるターゲットIPアドレスが自ノードのIPアドレスであるか否かを調べ(S11)、そうである場合は、このVCIDを許容するならば、VCID ACKをデフォルトVCで上流ノード(ルータ1 )に送信する(S12)。VCID ACKは、少なくとも送信者側が提案し自ノードが許容したVCIDが入っている。この手続きにより、VCIDの交換が終了する。
VCID交換が終了し、専用VCが使用可能であることを下流側のノード(ルータ2 )に知らせるために、ルータ1 からルータ2 へ専用VC通知メッセージを送信する(S23)。このメッセージは、デフォルトVC(すなわちパケット送信に用いられる専用VCとは異なるVC)にて、送信する。このメッセージには、Flow ID とVCIDが含まれる。
この専用VC通知メッセージを受信したノード(ルータ2 )は、そのVCIDで特定される専用VCは、そのFlow ID で特定されるフロー専用に使えることが分かるので、同じFlow ID を持つ下流側の専用VCがある(S13ある)ならば、上流側の専用VCと下流側の専用VCとを直結する(S14)。すなわち、ATM レベルのルーティングテーブルに専用VC同士の対応関係を記憶する。こうして専用VCが使用可能になると、上流側にリダイレクトメッセージを送出する(S15)。リダイレクトメッセージは、Flow ID とVCIDを含み、デフォルトVCにより送信される。
上流側のノード(ルータ1 )は、リダイレクトメッセージを受信すると、そのFlow ID を今までデフォルトVCで送出していて(S24Yes )、同じFlow ID を持つ上流側の専用VCがない(S26ない)ならば、IP処理部がそのFlow
ID に関わるパケットを専用VCに流すようにする(S25)。すなわち、さらに上流側のノード(H1)からデフォルトVCにて送信されてくるパケットをルータ2 への専用VCに転送するよう、IP処理部で用いるルーティング情報を書き替える。
なお、ルータ1 の上流に同じFlow ID を持つ専用VCが存在する(S26ある)場合は、その上流側の専用VCとルータ2 への専用VCを直結する(S27)。
専用VC通知メッセージを受信したノード(ルータ2 )は、下流側にFlow ID
用の専用VCがない(S13ない)場合には、上流側の専用VCから受信したパケットをIP処理部に渡すように設定する(S16)。このステップは、直結せずに資源予約できるが、上流に専用VC依頼メッセージを送出し、それにより上流側に専用VCが設定された場合に対応する。
最後に、ルータ2 でRSVPのQOS 要求を満足することができるので、ルータ2
からルータ1 へ、デフォルトVCでRESVの送出を行う(S17)。なお、S15のリダイレクト及びS17のRESVの送信順序は逆でも構わない。
以上により、ルータ2 の資源予約が終了する。なお、上記リダイレクトメッセージを、ルータ2 からルータ1 へ適当なタイミングで定期的に送出することにより、対応する専用VCを保持する。この保持のためのメッセージは、上記RESVメッセージによって代用しても構わない。リダイレクトメッセージ(代用する場合はRESVメッセージ)が送信されてこなくなったルータへの専用VCは解放する。
(具体例1−2)
本例では、あるフローに属するパケットをどの専用VCで送信するかを通知するメッセージをインバンドで流す場合について説明する。
具体例1−1で説明した手順では、専用VC依頼メッセージを送信し、ATM シグナリングを行った後、VCID提案、VCID ACK、専用VC通知と3つのメッセージを送信していたが、専用VC通知メッセージを新たに作ったATM コネクション(専用VC)に流すことで、VCID提案メッセージとVCID ACKを省略することが可能である。
具体的なシーケンス図を図7 で示し、下流側のノードのフローチャートを図4 、図8 に、上流側のノードのフローチャートを図9 に示す。
具体例1−1から変更した点を説明すると、図7 では、VCID提案メッセージとVCID ACKメッセージが無くなったことと、専用VC通知メッセージを新たに作ったATM コネクション(専用VC)で転送することが異なる。また、本例での専用VC通知メッセージには、Flow ID とVCIDの他に、具体例1−1ではVCID提案メッセージに含ませていたターゲットIPアドレスを含ませる。
メッセージが2つ不要となったことに伴って、上流側のノード(図9 )は、VCID
ACKメッセージを受信したときの動作(S23)が無くなり、新たに作ったATM コネクションに、VCID提案ではなく、上述した専用VC通知を送信することになる(S31)。下流側のノードは、RESVを受信したときの動作は図4 の通りであり、VCID ACK提案を受信したときの動作(S12)が無くなり、専用VC通知メッセージを受信したときは、図8 に示すように、このメッセージに含まれるターゲットIPアドレスが自分のアドレスであるか否かチェックした後、図5(b)と同様の動作を行う。
(具体例2)
本例では、ATM コネクションがVP(Virtual Path)のコネクションであり、ユニキャストを想定した場合について説明する。
図10のようにルータ1,2,3(R1,R2,R3)が存在している場合に、ルータ2 での資源予約の方法を述べる。初期状態として、ルータ1 からルータ2 へ、ルータ2 からルータ3 へのデフォルトVCとルータ2 からルータ3 への専用VCが設定されている状況を考える。以下では、メッセージ交換の様子を示す図(図10)と下流側のルータ内部の動作図(図11、図12)と上流側のルータ内部の動作(図13)を用いて説明する。
はじめに、図10のようにルータ3 からRSVPの予約(RESV)メッセージがルータ2 に到着したとする。RESVメッセージには、どのパケットに対して予約すべきか示すためのFlow ID と予約したいQOS が書かれている。
RESVメッセージを受信したルータ2は、図11のフローチャートに従い、RSVPメッセージ中のFlow ID 用の下流側の専用VCがあるかチェックする(S41)
。この例では、専用VCが存在するので、上流側のルータからの(R1からR2への)未使用VCのうち適当なものを選んでこれを専用VCとして使用することを決定し(S42)、この決定した上流の専用VCと下流に存在する専用VCとを直結(ATM レベルのルーティングテーブルに対応関係を記憶)し(S43)、リダイレクトメッセージをデフォルトVCで上流側のノード(R1)に送出する(S44)。
このメッセージには、RESVメッセージの内容と同じFlow ID と、VCIDの情報を持つ。VCIDは、VP中の使用していないVCI (上記のように選んだ専用VCのVCI )を使用し、VPI/VCI の組をVCIDの値とする。もし、下流側に専用VCが無い場合は、IP処理部で要求された資源を確保できるか判断し(S45)、資源予約できる場合には、IP転送のスケジューリングを行うことにより資源予約して上流にRESVメッセージを送出する(S46)と共に、上流側のルータとの間の未使用VCのうち適当なものを選んでこれを専用VCとして使用することを決定し(S47)、この専用VCで受信したパケットをIP処理部に渡すように設定し(S48)、リダイレクトメッセージを上流に送出する(S44)。資源予約できない場合には、RESV ERRORを下流ノード(R3)に送出する(S49)。
リダイレクトメッセージを受信したルータ1は、図13のフローチャートに従い、図6(c)と同様にFlow ID に関するパケット転送をデフォルトVCを使う転送から専用VCによる転送に切り替え、下流側のノードにデフォルトVC(もしくは専用VC)で専用VC通知メッセージを送出する(S51)。このメッセージには、 Flow ID(とVCID)の情報が含まれる。
下流側のノード(ルータ2)が専用VC通知メッセージを受信すると、図12のフローチャートに従い動作する。すなわち、 VCID で特定される専用VCは、Flow ID 専用に使えることが分かり、ルータ2 でRSVPのQOS 要求を満足することができるので、ルータ2 からルータ1 へ、デフォルトVCでRESVの送出を行う(S52)。
以上により、ルータ2 の資源予約が終了する。なお、上記リダイレクトメッセージを、ルータ2 からルータ1 へ適当なタイミングで定期的に送出することにより、対応する専用VCを保持する。この保持のためのメッセージは、上記RESVメッセージによって代用しても構わない。リダイレクトメッセージ(代用する場合はRESVメッセージ)が送信されてこなくなったルータへ専用VCは解放する。
(具体例3)
本例では、ATM コネクションがSVC であり、マルチキャストを想定した場合について説明する。
図14のようにルータ1,2,3,4(R1,R2,R3,R4) が存在している場合に、ルータ4 での資源予約の方法を述べる。ホストH2,H3 がマルチキャストグループG に参加しているため、ルータ2 からルータ3 とルータ4へ、ポイント−マルチポイント( 以下p−mpと言う) のデフォルトVCが設定されている。また、上流のルータから下流のルータへデータパケット等を流すために設定されているデフォルトVCはマルチキャスト用(p−mpとなり得るもの)であり、このマルチキャスト用デフォルトVCとは別に、下流から上流に制御パケット等を流すためにポイント−ポイント(
以下p−p と言う) のデフォルトVCが、必要に応じて設定される。
(具体例3−1)
本例では、あるフローに属するパケットをどの専用VCで送信するかを通知するメッセ
ージをアウトバンドで流す場合について説明する。
初期状態として、図15のように、ルータ2 からルータ3 とルータ4へ、マルチキャスト用のデフォルトVC(p−mpとなり得る( ここでは既になっている)VC )が設定され、ルータ2 からルータ3 へのp−mpとなり得る(ここではまだなっていない)専用VCが設定され、ホスト3 とルータ4 間に(p−p の)デフォルトVCが設定されている状況を考える。ルータ2 からルータ3 への専用VCは、マルチキャストグループG の専用VCとする。
ここで、ルータ1 からルータ2 への専用VCや、ルータ2 からルータ3 への専用VCは、具体例1−1で説明した手順により設定されたものである。但し、具体例1−1で説明したRESV、VCID ACK、専用VC通知、リダイレクトの各メッセージは、p−p のデフォルトVCを用いて送信される。
以下では、メッセージ交換の様子を示す図(図15)と、下流側のルータ(図15ではR4)内部の動作図(図4 、図5 )と、上流側のルータ(図15ではR2)内部の動作図(図6 )を用いて、ルータ4 がマルチキャストグループG のパケットのための資源予約を行う手順を述べる。
はじめに、図15のようにホスト3 からデフォルトVCで、RSVPの予約(RESV)メッセージがルータ4に到着したとする。なお、これはマルチキャスト用のデフォルトVCを用いて上流から下流へ転送されたRSVPのPathメッセージに応答してホスト3 が送信したものである。
RESVメッセージには、どのパケットに対して予約すべきか示すためのFlow ID と予約したいQOS が書かれている。Flow ID には、発信元IPアドレス/ポート、宛先IPアドレス/ポートの組、あるいは、IPv6 のFlow ID が書かれている。QOS には、帯域の情報や遅延の情報が書かれている。
RESVメッセージを受信したルータ4は、図4 及び図5 のフローチャートに従い、RSVPメッセージ中のFlow ID 用の下流側の専用VCがあるかチェックする(S1)。この例では、下流側に専用VCが無いので、IP処理部で要求された資源を確保できるか判断し(S3)、資源予約できる場合には専用VC依頼メッセージを上流に送出し(S2)、資源予約できない場合には、RESV ERRORを下流ノードに送出する(S4)。ここでは、資源予約が出来たとして話を進める。
専用VC依頼メッセージを受信したルータ2は、図6 のフローチャートに従い、ATM シグナリングを用いて、専用VC依頼メッセージを送信したノード(ルータ2 )への、要求QOS を満たせるATM コネクション(専用VC)を設定する(S21)。この場合のシグナリングは、ADD PARTY であり、ルータ2からルータ3への専用VCが経由するスイッチのいずれかから分岐してルータ4に達する新たなリンクを既に存在する専用VCに追加することになる。
ATM コネクションの設定が終わると、このコネクションを両端で一意に識別できるように、ルータ2からルータ3への専用VCを設定したときに定めたVCIDを、VCID提案メッセージを新しくリーフを追加したATM コネクション(専用VC)に流すことで、下流ノードに運ぶ(S22)。このメッセージには、送信者側(ルータ2)が提案するVCIDと、ターゲットIPアドレス(ルータ4のIPアドレス)とが入っている。
このVCID提案メッセージを受信したノード(ルータ3、ルータ4 )は、このメッ
セージに含まれるターゲットIPアドレスが自ノードのIPアドレスであるか否か
を調べ(S11)、そうである場合は、このVCIDを許容するならば、VCID ACKをp−p のデフォルトVCで上流ノード(ルータ2)に送信する(S12)。VCID ACKは、少なくとも送信者側が提案し自ノードが許容したVCIDが入っている。この手続きにより、VCIDの交換が終了する。ここでは、ルータ4がターゲットであるので、ルータ4 のみVCID ACKを上流ノードに送信する。
VCID交換が終了し、専用VCが使用可能であることを下流側のノード(ルータ4)に知らせるために、ルータ2 からルータ4 へ専用VC通知メッセージを送信する(S23)。このメッセージは、p−p のデフォルトVC(すなわちパケット送信に用いられる専用VCとは異なるVC)にて、送信する。このメッセージには、Flow ID とVCIDが含まれる。
この専用VC通知メッセージを受信したノード(ルータ4)は、そのVCIDで特定される専用VCは、そのFlow ID で特定されるフロー専用に使えることが分かる。下流側のFlow ID 用の専用VCがあることをチェックして、専用VCが無いことが分かるので(S13ない)、上流側の専用VCで受信したパケットをIP処理部に渡すように設定する(S16)。なお、専用VCがある場合は、直結する。
なお、ルータ4には、ADD PARTY によって専用VCに自分へのリーフが追加された時点から、パケットが送信されてくるが、専用VC通知メッセージを受信するまでは、このパケットの扱いが分からないため無視し、専用VC通知を受けて必要な設定がされるまでは、マルチキャスト用デフォルトVCにて送信されてくるパケットをIP処理部に渡してホスト3への転送を行っている。
こうして専用VCが使用可能になると、上流側にリダイレクトメッセージを送出する(S15)。リダイレクトメッセージは、Flow ID とVCIDを含み、p−p のデフォルトVCにより送信される。
上流側のノード(ルータ2)は、リダイレクトメッセージを受信すると、そのFlow
ID は今まで専用VCで送出していたので(S24No)、何もしない。
なお、マルチキャストの場合の上流側のノードの動作のうち、図6(c)のS25は、今までマルチキャスト用デフォルトVCに流していたそのFlow ID に関わるパケットを専用VCに流すようにしたとき、マルチキャストデフォルトVCにも同じパケットを流し続けるようにする。これは、マルチキャストの場合は受信者毎に異なるQOS を要求する可能性があり、専用VCを設定せずマルチキャスト用デフォルトVCにてパケットを受け取っているノードが存在するかもしれないことに対処するためである。
最後に、ルータ4でRSVPのQOS 要求を満足することができるので、ルータ4からルータ2へ、p−p のデフォルトVCでRESVの送出を行う(S17)。なお、S15及びS17の順序は逆でも構わない。
以上により、ルータ4の資源予約が終了する。なお、上記リダイレクトメッセージを、ルータ4からルータ2へ適当なタイミングで定期的に送出することにより、対応する専用VCのリーフを保持する。この保持のためのメッセージは、上記RESVメッセージによって代用しても構わない。リダイレクトメッセージ(代用する場合はRESVメッセージ)が送信されてこなくなったルータへのリーフは削除する。
(具体例3−2)
本例では、あるフローに属するパケットをどの専用VCで送信するかを通知するメッセージをインバンドで流す場合について説明する。
初期状態として、図15と同様な状況を考える。ここで、ルータ1 からルータ2 への専用VCや、ルータ2 からルータ3 への専用VCは、具体例1−2で説明した手順により設定されたものである。但し、具体例1−2で説明したRESV、リダイレクトの各メッセージは、p−p のデフォルトVCを用いて送信される。
メッセージ交換の様子を示す図(図16)と、下流側のルータ(図16ではR4)内部の動作図(図4 、図8 )と、上流側のルータ(図16ではR2)内部の動作図(図9
)を用いて、ルータ4 がマルチキャストグループG のパケットのための資源予約を行う手順を述べる。
具体例3−1から変更した点を説明すると、図16では、VCID提案メッセージとVCID ACKメッセージが無くなったことと、専用VC通知メッセージを新たにリーフを追加したATM コネクション(専用VC)で転送することが異なる。また、本例での専用VC通知メッセージには、Flow ID とVCIDの他に、具体例3−1ではVCID提案メッセージに含ませていたターゲットIPアドレスを含ませる。これにより、ルータ4 への専用VC通知を受け取ってしまうルータ3 は、これを無視することができる。
メッセージが2つ不要となったことに伴って、上流側のノード(図9 )は、VCID
ACKメッセージを受信したときの動作(S23)が無くなり、新たにリーフを追加したATM コネクションに、VCID提案ではなく、上述した専用VC通知を送信することになる(S31)。下流側のノードは、RESVを受信したときの動作は図4 の通りであり、、VCID ACK提案を受信したときの動作(S12)が無くなり、専用VC通知メッセージを受信したときは、図8 に示すように、このメッセージに含まれるターゲットIPアドレスが自分のアドレスであるか否かチェックした後、図5(b)と同様の動作を行う。
以上の説明では、RSVPをきっかけとしてCSR の技術を生かした資源予約を行う方法を述べたが、上述したようにRSVPのRESVメッセージをトリガとして専用VCを設定するのではなく、データパケットをトリガとして専用VCを設定することも、同様にして実現できる。
上述したRSVPをきっかけとする場合と異なる点は、以下の2つである。一つは、RSVP有りの場合は、RESVメッセージを受信すると専用VC依頼メッセージを送出したが、RSVPが無い場合は、データパケットが来たときに、専用VC依頼メッセージを送出する点である。その後、専用VCを設定し、これをデータパケット転送のために使用可能とする(直結するかもしくはIP処理をして転送するようにする)動作を行うことは同様である。もう一つの違いは、専用VC通知メッセージを受信したときに、RESVメッセージを上流に送信しないことである。
具体的には、例えば図2のルータ2が、デフォルトVCにてデータパケットを受信すると、そのデータパケットをデフォルトVC(もしくは専用VC)にて次段のノード(ルータ3)に転送した後、パケットに関係あるFlow ID を持つ専用VCを上流側に設定するよう、専用VC依頼メッセージを上流(ルータ1)へ送出する。このとき、上記データパケットに書かれた送信元アドレス/ポートと宛先アドレス/ポートの組(宛先アドレス/ポートだけでもよい)等をFlow ID とし、このFlow ID を専用VC依頼メッセージに含ませる。
そして、ルータ1との間に専用VCが設定されたことを専用VC通知メッセージにより知ると、そのパケットに関係あるFlow ID を持つ下流側の(ルータ3への)専用VCがあるならば、直結し、なければ、ルータ1から専用VCで転送されてきたパケットをルータ3へのデフォルトVCで転送するようにする。また、ルータ1は、ルータ2が専用VCを使用可能となったことをリダイレクトメッセージにより知ると、今までデフォルトVCで転送していたデータパケットを、専用VCで転送するようにする。
また、例えば図14のルータ4が、マルチキャスト用のデフォルトVCにてデータパケットを受信する(ルータ1はこの時点でルータ3のための専用VCによる転送とルータ4のためのデフォルトVCによる転送とを行っている)と、そのデータパケットをデフォルトVC(もしくは専用VC)にて次段のノード(ホスト3)に転送した後、そのデータパケットから求めたFlow ID (この場合のアドレスはマルチキャストアドレス)を持つ専用VCを上流側に設定するよう、専用VC依頼メッセージをp−p のデフォルトVCにて上流(ルータ2)へ送出する。
そして、ルータ2からルータ3への専用VCにルータ4へのリーフが追加されたことを専用VC通知メッセージにより知ると、そのパケットに関係あるFlow ID を持つ下流側の専用VCがあるならば、直結し、なければ、ルータ1から専用VCで転送されてきたパケットをホスト3へのデフォルトVCで転送するようにする。なお、ルータ1は、ルータ3、4からそれぞれのp−p デフォルトVCにてリダイレクトメッセージが定期的に送信されてくる間は、p−mp専用VCのそれぞれに対応するリーフを維持する(リダイレクトメッセージが送信されてこなくなったルータへのリーフは削除する)。
なお、このようにデータパケットをきっかけとする場合、データパケットに含まれる情報に基づいて、上記手順を起動するデータパケット(が属するフロー)を選択するようにしても良い。
(実施形態2)
本実施形態では、CSR の技術を用いて、ATM 上で資源予約プロトコルであるRSVPを実現するための、別の方法を述べる。
実施形態1では、RSVPのRESVメッセージが到着したノードから上流側に専用VCを設定する手順を説明したが、ここでは、RESVメッセージが到着したときに下流側に専用VCを設定する手順を説明する。
(具体例1)
本例では、ATM コネクションがSVC(Switched Virtual Connection)であり、ユニキャストを想定した場合について説明する。
(具体例1−1)
本例では、あるフローに属するパケットをどの専用VCで送信するかを通知するメッセージをアウトバンドで流す場合について説明する。
図17のようにルータ1,2,3(R1,R2,R3)が存在している場合に、ルータ2 での資源予約の方法を述べる。初期状態として、ルータ1 からルータ2 へ、ルータ2 からルータ3 へのデフォルトVCが設定されている状況を考える。以下では、メッセージ交換の様子を示す図(図17)と、下流側のルータ(図17ではR2)内部の動作図(図22、図23)と、上流側のルータ(図17ではR1)内部の動作図(図18、図19、図20、図21)を用いて説明する。
はじめに、図17のようにルータ3からRSVPのRESVメッセージがルータ2に到着したとする。RESVメッセージには、Flow ID と予約したいQOS が書かれている。
ルータ2 は、RESVメッセージに書かれた予約したいQOS を実現する資源予約がIPスケジューラで行えるか否かを判断し(S61)、できる場合には、IPスケジューラで資源予約する(S62)と共に、RESVメッセージをデフォルトVCで上流側に(ルータ1 へ)転送する(S63)。できない場合にも、ルータ2 では今は資源予約ができていないが、後で上流側と下流側の両方に専用VCが設定されて直結を行うことにより資源予約ができることを見越して、RESVメッセージを上流側に送出する(S63)。
RESVを送出すると、下流側に(ルータ3 へ)専用VCを設定するための動作を行う。なお、RESVメッセージは、下流側の専用VCが設定された(ルータ3 からリダイレクトメッセージが返ってきた)後に、上流側に送出することとしても構わない。
ここで、IPスケジューラで資源予約できる場合にも、下流側に専用VCを設定するための動作を行うのは、後で上流側と下流側の両方に専用VCが設定されて直結を行うことができた場合に、このフローのための資源予約をIPスケジューラではなくATM スイッチ機能にて行うことで、IPスケジューラの資源になるべく余裕を持たせ、他のフローがIPスケジューラの資源を使えるようにしておくためである
。
RESVメッセージを受信したルータ2の動作手順は、図18に示すように、RESVメッセージを上流に送信した(S63)後、ATM シグナリングでATM コネクション(専用VC)を次段ノード(ルータ3 )へ設定した後、VCID提案メッセージをこの専用VCにて送信する(S65)。
VCID提案メッセージを受信した下流ノード(ルータ3)は、図22にしたがって、ターゲットIPが自分のアドレスかチェックして(S71)、自分のアドレスの場合は、VCID ACKをデフォルトVCにて送信する(S72)。
VCID ACKを受信した上流ノード(ルータ2)は、図19にしたがって、下流側に専用VC通知をデフォルトVCにて送信する(S66)。
専用VC通知を受信した下流ノード(ルータ3)は、図23にしたがって、同じFlow ID を持つ下流側の(ホスト2 への)専用VCがあるかチェックして(S73)、無い場合は、上流側の(ルータ2 からの)専用VCで受信したパケットをIP処理部に渡すように設定する(S74)。ある場合は、上流側の専用VCと下流側の専用VCを直結する(S75)。最後に、自ノードが専用VCを使用可能になったことを上流に知らせるため、リダイレクトメッセージをデフォルトVCで上流ノードに送信する(S76)。
リダイレクトメッセージを受信した上流ノード(ルータ2)は、図20及び21にしたがって、デフォルト転送を行っていない(後述するマルチキャストのように既にその専用VC上へパケット転送を行っている)場合は(S81No)、終了する。
デフォルト転送を行っている場合は、同じFlow ID を持つ上流側の(ルータ1
からの)専用VCがあるかチェックして(S82)、専用VCがある場合は、上流側の
専用VCと下流側の(ルータ3 への)専用VCを直結する(S83)。専用VCが無い場合は、IP処理部で今までデフォルトVCにて転送していたパケットを専用VCにて転送するようにする(S84)。
このFlow ID に関して、自ノードが受信したパケットを転送するのではなく、自ノードが送信ノードである場合は(S85Yes )、ここで終了する。
それ以外の場合は、一定時間待ち(S86)、上流側に下流側と同じFlow ID を持つ専用VCが設定されず、上流側の専用VCと下流側の専用VCが直結しなかったら(S87No)、IPスケジューラでの資源予約(S62)を行っていたかを調べ(S88)、行っていればそのままとし、行っていなければ、上流側(ルータ1 )に、S63にて送信したRESVメッセージを取り消すための、RESV Tear メッセージを送信し、下流側(ルータ3 )に、資源予約に失敗したことを示すRESV Errメッセージを送信する。なお、S88で改めてIPスケジューラの資源予約ができるかを調べ直しても構わない。
また、一定時間内に、上流側に下流側と同じFlow ID を持つ専用VCが設定され、上流側の専用VCと下流側の専用VCが直結されれば(S87Yes )、IPスケジューラでの資源予約(S62)を行っていたかを調べ(S90)、行っていなければそのままとし、行っていれば、この資源予約は専用VCの直結により不要となっているから、取り消す(S91)。
なお、上記の説明では、先にIPスケジューラの資源予約を行ってから、専用VCが直結できたらこれを取り消すこととしたが、専用VCの直結ができる可能性が高い場合には、IPスケジューラの資源予約は行わずに下流側に専用VCを設定し、上流側に専用VCができるのを待ってできたら直結し、直結ができないことを確認した時点(S87No)でIPスケジューラの資源予約を試み、資源予約できればそのままとし、できなければ上流にRESV Tear を、下流にRESV Errを返すこととしても構わない。
以上により、ルータ2 の資源予約が終了する。なお、上記リダイレクトメッセージを、ルータ3からルータ2へ適当なタイミングで定期的に送出することにより、対応する専用VCを保持する。この保持のためのメッセージは、RESVメッセージによって代用しても構わない。リダイレクトメッセージ(代用する場合はRESVメッセージ)が送信されてこなくなったルータへの専用VCは解放する。
(具体例1−2)
本例では、あるフローに属するパケットをどの専用VCで送信するかを通知するメッセージをインバンドで流す場合について説明する。
具体例1−1で説明した手順では、ATM シグナリングを行った後、VCID提案、VCID ACK、専用VC通知と3つのメッセージを送信していたが、専用VC通知メッセージを新たに作ったATM コネクション(専用VC)に流すことで、VCID提案メッセージとVCID ACKを省略することが可能である。
具体的なシーケンス図を図24で示し、下流側のノードのフローチャートを図20、21、25に、上流側のノードのフローチャートを図26に示す。
具体例1−1から変更した点を説明すると、図24では、VCID提案メッセージとVCID ACKメッセージが無くなったことと、専用VC通知メッセージを新たに作ったATM コネクション(専用VC)で転送することが異なる。また、本例での専用VC通
知メッセージには、Flow ID とVCIDの他に、具体例1−1ではVCID提案メッセージに含ませていたターゲットIPアドレスを含ませる。
メッセージが2つ不要となったことに伴って、上流側のノードは、VCID ACKメッセージを受信したときの動作(図19)が無くなり、新たに作ったATM コネクションに、VCID提案ではなく、上述した専用VC通知を送信することになる(図25のS105)。
下流側のノードは、VCID ACK提案を受信したときの動作(図22)が無くなり、専用VC通知メッセージを受信したときは、図26に示すように、このメッセージに含まれるターゲットIPアドレスが自分のアドレスであるか否かチェック(S111)した後、図23と同様の動作を行う。
(具体例2)
本例では、ATM コネクションがVP(Virtual Path)のコネクションであり、ユニキャストを想定した場合について説明する。
図27のようにルータ1,2,3(R1,R2,R3)が存在している場合に、ルータ2 での資源予約の方法を述べる。初期状態として、ルータ1 からルータ2 へ、ルータ2 からルータ3 へのデフォルトVCが設定されている状況を考える。以下では、メッセージ交換の様子を示す図(図27)と下流側のルータ内部の動作図(図23)と上流側のルータ内部の動作(図20、21、28)を用い、具体例1から変更した点を説明する。
図17では、予約(RESV)メッセージを受信すると、ATM シグナリング、VCID提案、VCID ACKを行っていたが、VPの場合は、予めATM コネクションがあり、VCIDとしてVPI/VCI を利用することが出来るので、これらのメッセージが図27では無い。
この3つのメッセージ転送が無いために、上流側ノードでは、図18のS65のVCID提案メッセージ送信の代わりに、図28のS125の専用VC通知メッセージを送信する。また、図19のVCID ACK受信に対する動作が無い。下流側ノードでは、図22のVCID提案受信した場合の動作が無い。
(具体例3)
本例では、ATM コネクションがSVC であり、マルチキャストを想定した場合について説明する。
(具体例3−1)
本例では、あるフローに属するパケットをどの専用VCで送信するかを通知するメッセージをアウトバンドで流す場合について説明する。
初期状態として、図29のように、ルータ2 からルータ3 とルータ4へ、マルチキャスト用のデフォルトVC(p−mpとなり得る( ここでは既になっている)VC )が設定され、ルータ2からルータ3へのp−mpとなり得る(ここではまだなっていない)専用VCが設定され、ルータ1とルータ2間に(p−p の)デフォルトVCが設定されている状況を考える。ルータ2 からルータ3 への専用VCは、マルチキャストグループG の専用VCとする。
ここで、ルータ1から2への専用VCや、ルータ2から3への専用VCは、具体例1−
1で説明した手順により設定されたものである。但し、具体例1−1で説明したRESV、VCID ACK、専用VC通知、リダイレクトの各メッセージは、p−p のデフォルトVCを用いて送信される。
以下では、メッセージ交換の様子を示す図(図29)と、下流側のルータ(図29ではR4)内部の動作図(図22、図23)と、上流側のルータ(図29ではR2)内部の動作図(図18、19、20、21)を用いて、ルータ2がマルチキャストグループG のパケットのための資源予約を行う手順を述べる。 はじめに、図29のようにルータ4からデフォルトVCで、RSVPの予約(RESV)メッセージがルータ2に到着したとする。なお、これはマルチキャスト用のデフォルトVCを用いて上流から下流へ転送されたRSVPのPathメッセージに応答してルータ4が送信したものである。
RESVメッセージには、どのパケットに対して予約すべきか示すためのFlow ID と予約したいQOS が書かれている。
RESVメッセージを受信したルータ2は、図18のフローチャートに従い、IPスケジューラで資源予約出来るかチェックする(S 61)。資源予約出来る場合は、資源予約した後(S 62)、予約(RESV)メッセージを上流に送信する(S 63)。資源予約出来なかった場合は、資源予約をせずに、予約メッセージを上流に送信する(S 63)。
次にATM シグナリングでATM コネクションを下流ノードに設定した後(S64)、VCID提案メッセージを設定したATM コネクションで送信する(S 65)。このVCID提案メッセージには、ターゲットIPアドレスと VCID が書かれている。ここで、ターゲットIPアドレスは、ルータ4 のアドレスが入っている。
VCID提案メッセージは、ルータ3とルータ4が受信する。これを受信したノードは、図22のフローチャートに従い、ターゲットIPアドレスが自分のアドレスかチェックする。VCID提案メッセージのターゲットIPアドレスは、ルータ4 になっており、ルータ3 では、自分のIPアドレスと異なる(S 71No)ので、何もせずに終了する。ルータ4では、自分のIPアドレスを同じなので(S 71yes)、VCID ACKを上流に送信する(S 72)。
VCID交換が終了し、専用VCが使用可能であることを下流側のノード(ルータ4)に知らせるために、ルータ2からルータ4へ専用VC通知メッセージを送信する(図19のS 66)。このメッセージは、p−p のデフォルトVCにて、送信する。このメッセージには、Flow ID とVCIDが含まれる。
この専用VC通知メッセージを受信したノード(ルータ4)は、そのVCIDで特定される専用VCは、そのFlow ID で特定されるフロー専用に使えることが分かる。図23に従い、下流側のFlow ID 用の専用VCがあることをチェックして、専用VCが無いことが分かるので(S73なし)、上流側の専用VCで受信したパケットをIP処理部に渡すように設定する(S74)。なお、専用VCがある場合は、直結する。
なお、ルータ4には、ADD PARTY によって専用VCに自分へのリーフが追加された時点から、パケットが送信されてくるが、専用VC通知メッセージを受信するまでは、このパケットの扱いが分からないため無視し、専用VC通知を受けて必要な設定がされるまでは、マルチキャスト用デフォルトVCにて送信されてくるパケットをIP処理部に渡して転送を行っている。
こうして専用VCが使用可能になると、上流側にリダイレクトメッセージを送出する(S76)。リダイレクトメッセージは、Flow ID とVCIDを含み、p−p のデフォルトVCにより送信される。
上流側のノード(ルータ2)は、リダイレクトメッセージを受信すると、そのFlow
ID は今まで専用VCで送出していたので(S81No)、何もしない。
なお、マルチキャストの場合の上流側のノードの動作のうち、図20のS84は、今までマルチキャスト用デフォルトVCに流していたそのFlow ID に関わるパケットを専用VCに流すようにしたとき、マルチキャストデフォルトVCにも同じパケットを流し続けるようにする。これは、マルチキャストの場合は受信者毎に異なるQOS を要求する可能性があり、専用VCを設定せずマルチキャスト用デフォルトVCにてパケットを受け取っているノードが存在するかもしれないことに対処するためである。
S 84を終了したあとの処理は、具体例1ー1と同様である。
以上により、ルータ2のルータ4に関する資源予約が終了する。なお、上記リダイレクトメッセージを、ルータ4からルータ2へ適当なタイミングで定期的に送出することにより、対応する専用VCのリーフを保持する。この保持のためのメッセージは、RESVメッセージによって代用しても構わない。リダイレクトメッセージ(代用する場合はRESVメッセージ)が送信されてこなくなったルータへのリーフは削除する。
(具体例3−2)
本例では、あるフローに属するパケットをどの専用VCで送信するかを通知するメッセージをインバンドで流す場合について説明する。
初期状態として、図30のように、ルータ2 からルータ3 とルータ4へ、マルチキャスト用のデフォルトVC(p−mpとなり得る( ここでは既になっている)VC )が設定され、ルータ2からルータ3へのp−mpとなり得る(ここではまだなっていない)専用VCが設定され、ルータ1とルータ2間に(p−p の)デフォルトVCが設定されている状況を考える。ルータ2 からルータ3 への専用VCは、マルチキャストグループG の専用VCとする。
具体例3−1で説明した手順では、ATM シグナリングを行った後、VCID提案、VCID ACK、専用VC通知と3つのメッセージを送信していたが、専用VC通知メッセージを新たに作ったATM コネクション(専用VC)に流すことで、VCID提案メッセージとVCID ACKを省略することが可能である。
具体的なシーケンス図を図30で示し、下流側のノード(図30ではR4)のフローチャートを図20、21、25に、上流側のノード( 図30ではR2) のフローチャートを図26に示す。
具体例3ー1から変更した点を説明すると、VCID提案メッセージを送出する代わりに、専用VC通知メッセージを新たに作ったATM コネクション(専用VC)で転送することが異なる。また、本例での専用VC通知メッセージには、Flow ID とVCIDの他に、具体例1−1ではVCID提案メッセージに含ませていたターゲットIPアドレスを含ませる。
メッセージが2つ不要となったことに伴って、上流側のノードは、VCID ACKメッセージを受信したときの動作(図19)が無くなり、新たに作ったATM コネクショ
ンに、VCID提案ではなく、上述した専用VC通知を送信することになる(図25のS105)。
下流側のノードは、VCID ACK提案を受信したときの動作(図22)が無くなり、専用VC通知メッセージを受信したときは、図26に示すように、このメッセージに含まれるターゲットIPアドレスが自分のアドレスであるか否かチェック(S111)した後、図23と同様の動作を行う。
以上の説明では、RSVPをきっかけとしてCSR の技術を生かした資源予約を行う方法を述べたが、上述したようにRSVPのRESVメッセージをトリガとして専用VCを設定するのではなく、データパケットをトリガとして専用VCを設定することも、同様にして実現できる。
上述したRSVPをきっかけとする場合と異なる点は、以下の2つである。一つは、RSVP有りの場合は、RESVメッセージを受信するとATM シグナリングを行い下流に専用VCを設定したが、RSVPが無い場合は、データパケットが来たときに、これを行う点である。その後、設定した専用VCをデータパケット転送のために使用可能とする(直結するかもしくはIP処理をして転送するようにする)動作を行うことは同様である。もう一つの違いは、RESVメッセージ、RESV Tear を上流に送信しないことである。
具体的には、例えば図2のルータ2が、デフォルトVCもしくは専用VCにてデータパケットを受信すると、そのデータパケットをデフォルトVCにて次段のノード(ルータ3)に転送した後、パケットに関係あるFlow ID を持つ次段のノードへの専用VCを設定するよう、ATM シグナリングを行う。そして、上記データパケットに書かれた送信元アドレス/ポートと宛先アドレス/ポートの組(宛先アドレス/ポートだけでもよい)等をFlow ID とし、このFlow ID を書き込んだ専用VC通知メッセージを下流に送出する。
そして、ルータ2 は、ルータ3 がこの専用VCを使用可能になったことをリダイレクトメッセージにより知ると、そのパケットに関係あるFlow ID を持つ上流側の(ルータ1 からの)専用VCがあるならば、直結し、なければ、ルータ1からデフォルトVCで転送されてきたパケットをルータ3への専用VCで転送するようにする。
また、例えば図14のルータ2が、IPマルチキャスト用のプロトコル(例えばIGMP(Internet Group Management Protocol))により、ルータ4 がマルチキャストグループG に参加したことを認識すると、それに関係するFlow ID (この場合のアドレスはマルチキャストアドレス)を持つ専用VCを下流側に設定するよう、ADD PARTY を行う。そして、ルータ2からルータ3への専用VCにルータ4へのリーフが追加される。なお、ルータ2 は、ルータ3、4からそれぞれのp−p デフォルトVCにてリダイレクトメッセージが定期的に送信されてくる間は、p−mp専用VCのそれぞれに対応するリーフを維持する(リダイレクトメッセージが送信されてこなくなったルータへのリーフは削除する)。
なお、このようにデータパケットをきっかけとする場合、データパケットに含まれる情報に基づいて、上記手順を起動するデータパケット(が属するフロー)を選択するようにしても良い。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示され
ている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。