目次
[1. はじめに]
[2. バックグラウンド]
[3. SRPのパケットフォーマット]
[3.1 SRPバージョン2.0の汎用ヘッダのフォーマット]
[3.2 SRPバージョン2のデータパケットのフォーマット]
[3.3 SRPバージョン2.0の制御パケットのフォーマット]
[3.4 フレーミング]
[4. SRPパケットの処理手順]
[4.1 パケット処理の概要]
[4.2 スペース再利用]
[4.3 受信側のパケット処理]
[4.4 マルチキャスティング]
[4.5 送信側のパケット処理]
[4.6 パケットの優先度]
[4.7 トポロジ検出]
[4.8 リング選択 ]
[5. SRPフェアネスアルゴリズム(SRP-fa)]
[5.1 SRP-faの概要]
[5.2 SRPオペレーション]
[my_usage]
[FWD_RATE]
[allow_usage]
[アルゴリズム]
[6. インテリジェント保護スイッチング(IPS)]
[6.1 保護スイッチングとトラフィックラッピング]
[6.2 IPSリクエストタイプ]
[6.3 パスインジケータ]
[6.4 SONET/SDHオーバーヘッドバイトの取扱い上の注意]
[6.5 IPSイベント階層]
[6.6 IPSの状態]
[6.7 IPSプロシージャ]
[6.8 IPS状態遷移の規則]
[6.9 IPSの例]
[正常な稼動状況]
[単一のファイバ障害]
[二重のファイバ障害]
[複数のファイバ障害]
[信号低下とファイバ障害]
[障害の解除]
[7. パススルー]
[8. ネットワーク管理]
[9. クロックと同期 ]
[10. SRP製品]
[10.1 Cisco 12000インターネットルータのラインカード]
[10.2 Cisco 7500ポートアダプタ]
1. はじめに
SRP(Spatial Reuse Protocol)は、リングベースのメディアで使用するためにシスコが開発したプロトコルです。「Spatial Reuse Protocol」(スペース再利用プロトコル)という名称は、パケット処理の際にスペースを再利用することから付けられました。SRPは、シスコのDPT(Dynamic Packet Transport)ファミリ製品のなかで使われているテクノロジです。DPTは、次世代トランスポート技術で、オプティカル伝送におけるパケット通信に最適化されています。このオプティカル伝送技術は、IPルーティングの帯域幅効率と充実したサービス機能に、光ファイバリングの豊富な帯域幅と自己復旧機能とを組み合わせ、既存のソリューションにはない優れたコストと機能を実現します。
この技術資料では、SRPとリング技術について、リング帯域幅制御および保護スイッチングを実現するMACレイヤの定義やアルゴリズムを含めて説明します。また、実装およびすでに出荷されているシスコ製品についても紹介します。このテクノロジが活用されたアプリケーション、経済的側面、およびネットワークの計画と展開については、別の技術資料で解説しています。
2. バックグラウンド
SRPは、双方向の二重逆回転リングトポロジを使用します。図1に示されているように、これらのリングはそれぞれ「内側リング」と「外側リング」と呼ばれています。どちらのリングも、同時にデータとSRP制御パケットの両方を伝送します。SRP制御パケットは、後で詳しく説明するように、トポロジ検出、保護スイッチング、および帯域制御といったタスクを処理します。また制御パケットは、対応するデータパケットとは逆方向に伝播されます。つまり、外側リングで伝送されるデータパケットに対応する制御パケットは、内側リングで伝送されます(図1参照)。
図1:4ノードのSRPリング
3. SRPのパケットフォーマット
このセクションでは、SRPが使用するパケットのフォーマットについて説明します。パケットには、データパケットと制御パケットの2種類があります。最大転送単位(MTU)は9216オクテット、最小転送単位は55オクテットです。ただしシスコの現在の実装では、MTUは4470オクテットとなっています。
3.1 SRPバージョン2.0の汎用ヘッダのフォーマット
SRPバージョン2.0の汎用ヘッダサイズは16ビット(2オクテット)です(図2参照)。
図2:SRPバージョン2の総称ヘッダ
SRPバージョン2.0のヘッダにある各フィールドは、以下のとおりです。
- TTL(生存時間)--- 8ビット
IPヘッダのTTL(Time To Live)フィールドと似ています。パケットをフォワードする各ノードは、TTLフィールドの値を1つずつ減らしていきます。TTLが0になると、パケットはリングから排除されます。これは、パケットがリングをまわり続けるのを防ぐためです。MAC TTLは、パケットがリンクを循環しているあいだに、送信元ノードと宛先ノードの両方がリングから切り離されてしまった場合に備えた機能です。TTLは8ビットであるため、理論上は255ホップが可能ということになり、1つのリング上で合計255までのノードをサポートできるはずです。しかし実際には、1つのリング上でサポートされるノード数は最大64です。
- RI(リング識別子)--- 1ビット
パケットが送信されたリングを示します。これは、パケットの受諾、排除、およびフォワードを決定する際に使用されます。特に、リングラップ状況で重要になります。リングラップ状況では、外側リングに対して送信されたパケットが、最終的には内側リングで受信されるということがあり得るからです。これについて詳しくは、「6. インテリジェント保護スイッチング(IPS)」を参照してください。このフィールドの値を表1に示します。
表1:SRPリング識別子
- Mode(モード)--- 3ビット
パケットタイプを識別します。このフィールドの値を表2に示します。
表2:モード値
値 |
説明 |
000 - 010 |
予約済み |
011 |
ATMデータセル |
100 |
制御メッセージ(ホストに渡す) |
101 |
制御メッセージ(ホスト用にローカルでバッファリング) |
110 |
使用パケット |
111 |
データパケット |
|
- Pri(優先度)--- 3ビット
SRPパケットの優先度を示します。値は0~7で、値が大きいほど優先度が高くなります。このフィールドの値は、IP Precedenceビットからコピーされます。SRPパケットの転送およびスケジューリングは、優先度フィールドによって決定されます。これについては、「4.6 パケットの優先度」で説明します。
- P(パリティビット)--- 1ビット
MACヘッダの15ビットについての奇数パリティです。
3.2 SRPバージョン2のデータパケットのフォーマット
SRPバージョン2.0のデータパケットのフォーマットを図3に示します。
図3:データパケットのフォーマット
データパケットは、汎用ヘッダと以下のフィールドから構成されます。
- DA(宛先MACアドレス)--- 48ビット
IEEEの48ビットMACアドレスです。
- SA(送信元MACアドレス)--- 48ビット
IEEEの48ビットMACアドレスです。
- Protocol Type(プロトコルタイプ)--- 16ビット
表3を参照してください。
表3:SRPのプロトコルタイプ
値 |
プロトコルタイプ |
0x2007 |
SRP制御 |
0x0800 |
IPバージョン4 |
0x0806 |
ARP |
|
- Payload(ペイロード)--- 変数
- FCS(フレームチェックシーケンス)--- 32ビット
SRPヘッダ(16ビット/2オクテット)を除くパケット全体で算出されたCRCの値になります。計算式は次のとおりです。
各データパケットのオーバーヘッドは、16オクテット(ヘッダ)+4オクテット(FCS)になります。
3.3 SRPバージョン2.0の制御パケットのフォーマット
SRPバージョン2.0の制御パケットの構造を図4に示します。
図4:制御パケットのフォーマット
制御パケットは、汎用ヘッダと以下のフィールドから構成されます。
- DA(宛先MACアドレス)--- 48ビット
IEEEの48ビットMACアドレスです。
- SA(送信元MACアドレス)--- 48ビット
IEEEの48ビットMACアドレスです。
- Protocol Type(プロトコルタイプ)--- 16ビット
制御パケットでは、プロトコルタイプは常に0x2007になります。
- Control Version(制御バージョン)--- 8ビット
制御タイプフィールドのバージョン番号です。初期状態では、すべての制御タイプがバージョン0になります。
- Control Type(制御タイプ) --- 8ビット
表4を参照してください。
表4:SRPの制御タイプ
制御タイプ |
説明 |
0x00 |
予約済み |
0x01 |
トポロジ検出 |
0x02 |
IPSメッセージ |
0x03 - 0xFF |
予約済み |
|
- Control Checksum(制御チェックサム)--- 16ビット
制御バージョン以降の16ビットの1の補数になります。チェックサムのなかにオクテットの数が奇数であれば、チェックサムのために最後のオクテットには右側からゼロでパディングされて、16ビットワードが形成されます。このパッドは、パケットの一部として伝送されません。チェックサムを計算する際、チェックサムフィールド自身はゼロに設定されます。これは、TCPチェックサムの計算に使用されるアルゴリズムと同じです。
- 制御TTL--16ビット。
制御レイヤのホップカウントです。制御パケットをフォワードする各ノードは、このフィールドの値を1ずつ減らしていきます。制御TTLの値が1以下になっている制御パケットを受信すると、そのノードはパケットを受信した後、それをフォワードしません。制御TTLは、SRP L2 TTLとは違うということに注意してください。制御パケットでは、SRP L2 TTLの値が常に0x1に設定されています。制御パケットの発信元は、制御TTLの初期値を、データパケットに使用されるSRP L2 TTLに設定します。
- ペイロード --- 可変
- FCS --- 32ビット
CRCの計算結果です。
各制御パケットのオーバーヘッドは、22オクテット(ヘッダ)+4オクテット(FCS)になります。
モードビットが1xxに設定されていると、データパケットを意味する111以外であれば、このパケットはSRP制御パケットです。制御パケットはポイントツーポイントで送信され、隣接ノードによって排除されます。現在の実装では、制御パケットはポイントツーポイントで送信されるため、DAは0x000000000000に設定されます。すべての制御パケットは、TTLが0x1、優先度が0x7に設定されて送信されます。制御パケットには、次の2種類があります。
- ホストに渡す --- データパケットと同じパス経由でプロセッサに渡される制御パケット。着信した制御パケットを受け取ると、リングから排除され、他のデータパケットと一緒にRxバッファにパケットが入ってプロセッサに渡されます。
- ホスト用にローカルでバッファリング --- プロセッサ用にSRP MACによってバッファリングされる制御パケット。パケットは、データパケットとリソースを競合することになるRxバッファには入らず、制御パケット専用のバッファ(SRP MAC)に置かれ、これらのパケットを取り出すための信号がプロセッサに送られます。ローカルにバッファリングされた制御パケットは、通常、インテリジェント保護スイッチング(IPS)パケットが使用します。
SRPバージョン2には、以下の3種類の制御パケットがあります。
- 使用率パケット(モード0x110によって示されます)
- トポロジ検出パケット
- インテリジェント保護スイッチング(IPS)パケット
これらの3種類の制御パケットについて、この後で詳しく説明します。
注意:図4に示した制御パケットのフォーマットは、トポロジ検出およびIPSパケットによって使用されます。使用率パケットは、異なるパケットフォーマットを使用しますが、これについては「5. SRPフェアネスアルゴリズム(SRP-fa)」で説明します。
3.4 フレーミング
SRPはメディアに依存しないMACレイヤプロトコルです。当初の実装では、SONET/SDHフレーミングを使用します。SRPパケットは、SONET/SDHフレームに挿入されます(図5参照)。
図5:SONET/SDHのSRPパケットへのマッピング
現在、SONET/SDHフレーミングのみがサポートされています。将来的には、他のフレーミングタイプもサポートされる予定です。SONET/SDHフレーミングにより、SONET/SDHまたはWDM機器とのインターワーキングが可能になります。連結されたペイロードのみがサポートされることに注意してください。この技術資料の「9. クロックと同期」には、SRPをADM、WDMトランスポンダ、または直接ダークファイバに接続するための要件が説明されています。
図6は、IPデータパケットのSRPへのマッピングとSONET/SDHフレーミングの適用を示しています。
図6:SONET/SDHにマッピングされるSRPのペイロード
4. SRPパケットの処理手順
ここでは、SRPノードのパケット処理手順について説明します。この節は、下記のセクションに別れています。
- スペース再利用(spatial reuse)
- 受信側のパケット処理
- マルチキャスティング
- 送信側のパケット処理
- パケットの優先度
- トポロジ検出
- リング選択手順
4.1 パケット処理の概要
リングパケットフローのハイレベルビューを図7に示します。
SRPインタフェースあたり2つのSRP MACがあります。近隣したSRP MACを「メイト」と呼びます。それぞれのSRP MACは、外側Rx/内側Txまたは外側Tx/内側Rxと示されたファイバのペアに接続されます。外側Rx/内側TxはSide A、外側Tx/内側RxはSide Bと示されています。
SRPリングを形成するためのノードの接続は、FDDIリングを形成するためのノードの接続に似ています。1台目のルータのSide Aが2台目のルータのSide Bに接続します。このようにして、すべてのノードが接続されます。図8に、リングノードのパケット処理のハイレベルビューを示します。
図7:リングのパケットフロー
図8:ノードのパケットフロー
着信したパケットは、そのノード宛であるかどうかが調べられます。パケットがそのノード宛であれば、受信されてホストに渡され、処理されます。パケットがそのノード宛でなければ、転送バッファに置かれて、引き続き循環します。転送バッファのパケットと、そのノードから送信されたパケットは、SRPフェアネスアルゴリズム(SRP-fa)に従って、発信リング上で送信がスケジュールされます。このアルゴリズムについては、「5. SRPフェアネスアルゴリズム(SRP-fa)」で説明します。
4.2 スペース再利用
SRPという名前は、リングのパケット処理手順におけるスペース再利用(spatial reuse)の機能に由来しています。トークンリングやFDDIといった従来のデータリングは、送信元でのパケット排除やトークン処理を利用して、リングアクセスを制御していました。パケットは、リングを1周まわってから送信元によって排除されます。SRPの場合、ユニキャストパケットについては宛先ノードがパケットを排除します。ノードは共有トークンを待たずにパケットを同時に送信するため、リングの他の部分で帯域幅が増大する可能性があります(図9参照)。ただし、マルチキャストパケットは送信元で排除されます。
図9:スペース再利用(spatial reuse)プロシージャ
4.3 受信側のパケット処理
着信したパケットに対しては、以下の6通りの方法で処理が行われます。
- 排除 --- パケットをリングから取り除きます。
- 受信して排除 --- パケットをホスト(レイヤ3)に送信して、リングから取り除きます。
- 受信して転送 --- マルチキャストパケットの場合、ホスト(レイヤ3)と転送バッファに送信します。
- 転送 --- パケットを転送バッファに送信します。
- ラップ --- パケットを反対方向に送信します。
- 通過 --- 制御パケットなどは転送バッファに送信されます。
受信側のパケット処理のハイレベルビューを図10に示します。
図10:Rx側のパケット処理
受信側のパケット処理では、以下が行われます。
- 着信パケットから、TTL、RI、およびモードといったSRP制御情報を取り出します。
- 着信パケットのモードフィールドをチェックして、それが制御パケットかどうかを判断します。制御パケットの場合は、モードおよび制御タイプフィールドを調べて制御パケットのタイプを判断します。トポロジ検出パケットとIPSパケットは、制御タイプがそれぞれ 0x01と0x02になります。トポロジ検出パケットまたはIPSパケットを受信したときには、パケットはリングから排除され、適切な処理ルーチンに送られます。使用されるパスは、モードフィールドの設定によって異なります。トポロジ検出パケットの場合は、モードフィールドは0x100(ホストに渡す)に設定されており、パケットは(データパケットと同様に)受信バッファに置かれ、そこからトポロジ検出処理ルーチンに渡されます。IPSパケットの場合は、モードフィールドは0x101(ホスト用にローカルでバッファリング)に設定されており、パケットはSRP MACによってバッファリングされます。そして、パケットを取り出してIPS処理ルーチンに渡すように、プロセッサに割り込み要求が送信されます。使用率パケットは、モードが0x110になります。これは、トポロジ検出パケットやIPSパケットとは異なり、「3.3 SRPバージョン2.0の制御パケットのフォーマット」で説明した他のフィールドがありません。使用率パケットを受信すると、このパケットをリングから排除して、メイトに転送します。メイトは、これをさらにSRP-faルーチンに送信し、そこでパケットが処理されます。前述したように、制御パケットはポイントツーポイントで送信され、隣接ノードによって排除されます。このため、送信元または宛先アドレスのチェックは必要とされません。
- RIフィールドをチェックして、それが着信リングIDと適合していることを確認します。RIが0に設定されたパケットは外側リングでのみ受信され、RIが1に設定されたパケットは内側リングでのみ受信されるはずです。ただし、ノードがラップされている場合には例外が発生します。この場合は、DAが一致してさえいれば、パケットはRI値に関係なく受け入れられます。RIが着信リングIDと一致せず、ノードがラップされていない場合は、パケットは転送バッファに転送されます。
- CAM(Content Addressable Memory)を検索して、パケットがそのノード宛であるかどうかを確認します。受信したSRP MACとの関連が、CAM(Content Addressable Memory)に格納されています。CAMは、送信元アドレスのサブセットに関連するパケットカウンタのセットを備えた送信元アドレスプールと、宛先アドレスプールという構造になっています。CAM送信元アドレスプールには、この後で説明する特殊なオペレーションビットも含まれています。着信パケットを受信すべきかどうかを決定するために実行される手順を以下に説明します。NE(ネットワークエレメント)はノードのMACアドレス、SA(送信元アドレス)はパケットの送信元MACアドレス、DA(宛先アドレス)はパケットの宛先MACアドレスのことです。
if SA == NE then リングからパケットを排除:
SAがNEと一致する場合は、パケットはリング上を送信元に向かって戻されています。この場合は、パケットはリングから排除されます。
if DA == NE or DAに一致するCAMエントリがある:
DAが一致すれば、着信パケットを受信してCRCをチェックします。CRCチェックに問題がなければ、パケットをホストに転送します(つまり、適切な受信キューに渡して、ルータのレイヤ3処理を行います)。CRCチェックに問題があれば、パケットを廃棄してCRCエラーカウンタをインクリメントします。
パケットがユニキャストパケットであれば、パケットをリングから排除します。パケットがマルチキャストパケットの場合には、パケットのTTLおよびCRCのチェックにパスすれば、パケットを転送バッファに転送されます。
else:
パケットのTTLおよびCRCのチェックにパスすれば、パケットを転送バッファに転送されます。
- TTLチェック --- パケットの排除は宛先ノードと送信元ノードの両方で実行されますが、パケットの循環中に送信元ノードと宛先ノードの両方がリングから取り外された場合の問題が残っています。このような事態が起こったときには、MACヘッダのTTLフィールドによって処理されます。TTLフィールドは、ノードがパケットを転送するたびに1つずつ減少します。TTLが0になると、パケットはリングから排除されます。
- 前述したように、CAMは特殊なオペレーションビットを持っています。これによってユーザーは、MACレイヤでのパケットフィルタリングや、リング上の特定ノードから受信したパケットのソースアカウンティングを行うことができます。
図11に示されているように、CAMはステータスビットと送信元アドレスプールから構成されます。送信元アドレスプールには、SAビットとMACアドレスが含まれます。SAビットは、関連するMACアドレスが送信元アドレスと宛先アドレスのどちらであるかを示すために使用されます。このビットがセットされていれば、そのMACアドレスは送信元アドレスです。ステータスビットは、転送するかどうかを決める際に使われます。
図11:SRPバージョン2.0 CAMのフォーマット
CAMには、以下のフィールドがあります。
- SAA/Reject --- 送信元アドレスの受諾/拒否。このビットが設定されていない場合には、関連するMACアドレスを持つ着信パケットは拒否されます。
- NE --- ネットワークエレメント。このビットが設定されている場合、MACアドレスエントリがノードのMACアドレスであることを示します。
- SAM --- 送信元アドレスモニタ。このビットは転送についての決定には影響しません。このビットが設定されている場合、関連するバイトおよびパケットカウンタの増加に使用されます。
- DAH --- ホストへの宛先アドレス。このビットが設定されていると、関連するMACアドレスが宛先アドレスであることを示します。
4.4 マルチキャスティング
SRPはIPマルチキャストを直接サポートします。IPマルチキャストは、クラスD IPアドレス(最初の4ビットが [1110]
に設定されたアドレス)を使用します。残りの28ビットは、マルチキャストグループIDになります。IPマルチキャストがリング上で伝送されるためには、クラスDマルチキャストアドレスが適切な48ビットMACアドレスにマッピングされる必要があります。最初の3バイトが00:00:5EになっているMACアドレスブロックは、マルチキャスト用に予約されています。最初のバイトのビット1はマルチキャストビットとして指定されており、マルチキャストパケットではセット状態になっている必要があります。最後に、クラスD IPアドレスの下位の23ビットが、MACアドレスの残りの23ビットに直接マッピングされます。このマッピングは、リング上にマルチキャストパケットを供給したノードが行います。
図12:マルチキャストアドレス
注意:SONET/SDHメディアの場合、各バイトの最初がMSBというネットワーク順序になっているため、マルチキャストビットは宛先アドレスの8番目のビットになります。
マルチキャストがオンになっているノードは、CAMのなかに“0100.5E00.0000 mask 0000.007F.FFFF”というエントリを作成します。そのノードに到着したすべてのマルチキャストパケットは、受信され、レイヤ3に渡されて処理されます。ユニキャストパケットと異なり、マルチキャストパケットは送信元で排除されます。マルチキャストパケットは、受信後も引き続き循環するため、転送バッファに置かれます。
4.5 送信側のパケット処理
図13に、送信側プロセスのハイレベルビューを示します。
図13:送信側のパケット処理
送信側のパケット処理では、以下が実行されます。
- ローカルに供給されたパケットの優先度を決定して、それらを適切な高/低優先度の送信キューに配置します。「4.6 パケットの優先度」を参照してください。
- 転送バッファの高/低優先度パケットと送信キューの高/低優先度パケットから選択して、次にどのパケットをリングに送信するかを決定します。
- SRPフェアネスアルゴリズム(SRP-fa)を使ってパケットフローを管理します。つまり、ノードが送信あるいは転送するトラフィックが多過ぎないかを判断し、フェアネス情報を発信または伝達することで、上流にあるノードに伝送レートを調整するように要請します。したがって、ノードが送信するトラフィックが多過ぎる場合のレート制御が可能です。
4.6 パケットの優先度
SRPは、送信キューと転送バッファのパケット優先順位設定および優先パケットの迅速な処理をサポートします。これは、遅延制限およびジッタ制約が厳しいために速やかに処理される必要があるリアルタイムアプリケーション(音声など)、ミッションクリティカルなアプリケーション、および制御トラフィックをサポートするためです。SRP MACヘッダの優先度フィールドは、パケットをリングに供給するノードによって設定されます。ノードでは、IPヘッダのToS(Type of Service)フィールドのprecedence(優先)ビット値を、SRP MACヘッダの優先度フィールドにマッピングします。
IPには8レベル(3ビット)の優先度がありますが、SRPの優先度キューは2つのみ(高と低)です。これに対処するために、ノードは設定可能な優先度しきい値を利用して、高/低優先度の送信/通過キューのいずれにパケットを置くかを決定します。ノードを通過するパケットに対しては、SRP MACヘッダの優先度フィールドを調べて、設定された優先度しきい値に基づいてパケットを高優先度または低優先度に設定して転送バッファに置きます。そして、後述の送信側パケット処理アルゴリズムによって出力スケジューリングが決定されます。
またスケジューラは、以下の原則にしたがって高/低優先度の通過パケットと高/低優先度の送信パケットから次に送信するパケットを選択します。
- パケットの優先度を考慮し、低優先度パケットより前に高優先度パケットをスケジューリングします。
- リングパケットを維持するように、すでにリングを循環中のパケットの廃棄を回避します。
この規則により、以下の順番でパケット処理が実施されます。
- 高優先度の通過パケット
- ホストからの高優先度の送信パケット
- ホストからの低優先度の送信パケット
- 低優先度の通過パケット
ただしパケット優先度の階層は、低優先度の通過キューの深さにしきい値を設定することによって変更できます。次のような状況が発生しないように、この処理が必要になることがあります。
- ローカルに供給されたトラフィックにサービスを提供している間、転送バッファがオーバーフローしないようにする。
- 低優先度の通過トラフィックが、ローカルに供給された低優先度トラフィックのために長く待ち過ぎることがないようにする。
高優先度の通過パケットは、常に最初に送信されます。高優先度の送信パケットは、低優先度の転送バッファの深さが高しきい値未満である限り、送信されます。低優先度の送信パケットは、低優先度の転送バッファの深さが低しきい値未満であり、MY_USAGEがALLOW_USAGE未満である限り、送信されます。他に送信できるものがない場合は、低優先度の通過パケットが送信されます。
送信側パケットのスケジューリングについて、以下のまとめます。
While (true) {
if 転送バッファに高優先度の通過パケットがある
高優先度の転送バッファパケットを送信する
else if 低優先度転送バッファの深さ > 高しきい値
低優先度の転送バッファパケットを送信して、FWD_RATEカウンタを増加する
else if 送信キューに高優先度の送信パケットがある場合
高優先度の送信パケットを送信する
else if 低優先度の転送バッファの深さ > 低しきい値
低優先度の転送バッファパケットを送信して、FWD_RATEカウンタを増加する
else if MY_USAGE >= ALLOW_USAGE
低優先度の転送バッファパケットを送信して、FWD_RATEカウンタを増加する
else if 送信キューに低優先度の送信パケットがある
低優先度の送信パケットを送信して、MY_USAGEカウンタを増加する
else if 転送バッファに低優先度の通過パケットがある場合
低優先度の通過パケットを送信して、FWD_RATEカウンタを増加する
}
MY_USAGE、FWD_RATE、およびALLOW_USAGEはSRP-faが使用するカウンタです。これらのカウンタについては、「5. SRPフェアネスアルゴリズム(SRP-fa)」で解説します。
4.7 トポロジ検出
トポロジ検出は、SRPリング選択およびネットワーク管理機能で重要な役割を担っています。リング上の各ノードは、定期的に(設定可能な間隔で)トポロジ検出パケットを外側リング上に送り出します。トポロジ検出パケットを受信するノードは、自分のMACバインディング情報を追加します。この情報は、ノードのMACアドレスとリングステータス情報(ノードがラップしているかどうか)から構成されます。パケットが更新されると、リング上の次のノードに渡されます。リングラップがある場合は、トポロジ検出パケットはラップに従います。トポロジ検出パケットがラップに従っているときは、パケットはラップから抜け出すまで更新されません。
最終的には、トポロジ検出パケットは送信元に戻り、ここで受信されて、リングから排除されます。トポロジ検出パケットは、外側リング上で受信される必要があります。同一のトポロジ検出パケットを2つ連続して受信した場合は、ノードはトポロジマップを構築します。このトポロジマップには、リング上の各ノードのホップカウント情報、MACアドレス、ラップ、およびホスト名が含まれます。「4.8 リング選択」では、リングパスを選択するためにトポロジマップ情報がどのように使用されるかが説明されています。トポロジ検出パケットのフォーマットを図14に示します。
表5は、トポロジ検出パケットのMACタイプのフォーマットを示しています。
表5:MACタイプ(8ビット)
ビット |
説明 |
0 |
予約済み |
1 |
リングID |
0 - 外側リング |
1 - 内側リング |
2 |
ラップステータス |
0 - ノードはラップされていない |
1 - ノードはラップされている |
3 - 7 |
予約済み |
|
トポロジ長フィールドは、MACタイプ/MACアドレスバインディングから開始するトポロジメッセージの長さを示す16ビットフィールドです。
図14:SRPトポロジ検出パケット
4.8 リング選択
リング選択は、ARPを使って行われます。
図15:ARPオペレーション
ARPおよびリング選択の手順について以下に説明します。
- 送信元ノードが、内側または外側リングのいずれかにARPリクエストパケットを送信して、ARPリクエストを実行します。ハッシュアルゴリズムによって、いずれかのリングが選択されます。DA(この場合はブロードキャストMACアドレス[FFFF.FFFF.FFFF])がハッシングされます。その結果が'0'の場合は外側リングが選択され、それ以外の場合は内側リングが選択されます。
- ARPリクエストを受信すると、応答ノードはトポロジマップを調べ、ホップカウントに基づいてARPレスポンスを戻すための最善のリングを選択します。当初の実装では、リング選択の測定基準として最短ホップカウントが使用されています。将来的には、より高度な方法が使用できるようになります。ラップがある場合は、ノードは、ARPリクエストを着信したリングとは別のリングを使ってARPレスポンスを送信します。内側リングと外側リングの送信元までのホップ数が同じであれば、ハッシュアルゴリズムを使ってどちらのリングを使用するかを決定します。
- ARPレスポンスを受信した送信元ノードは、ARPレスポンスが受信されたリングIDに注意して、逆のリングを使ってデータパケットを送信します。
- ノードがトポロジ検出情報によってリングのラップやラップ解除を検出すると、ARPキャッシュ内のデータをすべて出力して、リングを選択し直します。これは、最適状態ではないパスを使って伝送されているトラフィックが、最初の状態に戻れるようにするためです。
上記のプロシージャは、ユニキャストパケットに適用されます。マルチキャストパケットの場合も、同じハッシュアルゴリズムを使ってDAがハッシュされ、その結果が'0'の場合は外側リングが選択され、それ以外の場合は内側リングが選択されます。あるいはスタティックARPを使用して、動的リング選択プロセスを無効にすることができます。これは、特定のリングだけでトラフィックを送信したい場合に利用します。
注意:SRPの当初の実装では、シングルサブネットアプローチを使用します。このアプローチでは、外側リングと内側リングの両方が同じIPサブネットになります。シングルサブネットアプローチでは、リングラップ後のリング選択が迅速に再最適化されてルートフラップを回避します。リングラップは下位層のプロシージャによって処理されるため、レイヤ3ルーティングには透過的になります。
5. SRPフェアネスアルゴリズム(SRP-fa)
トークンリングやFDDIといった既存のデータリング技術とは異なり、SRPはリングアクセスを制御するためにトークンを使用しません。代わりに、リング上の各ノードは、SRPフェアネスアルゴリズム(SRP-fa)という分散型伝送制御アルゴリズムを実行します。SRP-faは、SRPリング上で以下の目標を達成するための基本メカニズムです。
- グローバルなフェアネス(公平さ)--- リング上の各ノードは、そのノードから送信するパケットと、アップストリーム/ダウンストリームから受け取ったパケットのリングへの転送レートを制御することで、リング帯域幅を公平に使用します。これによって、近隣ノードが不正に動作して帯域幅を独占し、他のノードが帯域幅を利用できなくなったり過度に遅延を発生させたりしないようにします。
- ローカルでの最適化--- リング上のノードがリングのスペース再利用(spatial reuse)特性を最大限に活用し、トラフィックの局所性によって他のノードに悪影響を与えない限り、ローカルリングセグメント上で正当にリソースを利用できるようにします。
- スケーラビリティ--- お客様は地理的に分散した地域で32~64ノードの大型リングを構築すると考えられるため、使用されるアルゴリズムは変化するトラフィック状況に速やかに対応すると同時に、都市規模の長距離およびビル間距離における伝搬遅延に対応する必要があります。
5.1 SRP-faの概要
リング上の各ノードは、リングに送信したり転送するパケット数を監視しています。この監視と評価は、パケットが送信/転送されるたびにパケット長をカウンタに追加し、一定間隔で特定の割合をカウンタから減らすことで行われます。
ノードに輻輳が発生すると、その送信使用率カウンタ(my_usage)の値を、逆のリングを通してアップストリームノードにアドバタイズします。フィードバックを安定させるために、使用率カウンタにはローパスフィルタ機能が適用されます。使用率情報を受信すると、アドバタイズされた使用率値を超えないように、アップストリームノードで送信レートが調整されます。つまり、リングにパケットを送信する速度を減速します。アドバタイズされた使用率値を受信したノードでも輻輳が発生している場合は、その送信使用率の最小値とアドバタイズされた使用率を伝達します。輻輳は、低優先度の転送バッファの深さが輻輳しきい値に達すると、検出されます。
SRP-faは、低優先度パケットにのみ適用されます。高優先度パケットはSRP-fa規則に従わず、十分な転送バッファスペースがある限り、いつでも送信できます。高優先度パケットは、リングに供給される前に、CAR(Committed Access Rate)のような機能を使ってレートを制限することができます。
SRPバージョン2.0では、使用率情報は別のパケットとして送信されます。このパケットのフォーマットは、図16に示すとおりです。
図16:SRP使用率パケットのフォーマット
5.2 SRPオペレーション
各ノードには、パケット転送の決定を支援するために、2つのカウンタと2つのしきい値変数があります。
2つのしきい値変数は以下のとおりです。
my_usageは、そのノードからリングに供給された低優先度パケットの量をカウントします。allow_usageは、ノードの現在の最大送信使用率を制御するしきい値として機能します。MAX_USAGEはノードごとのパラメータで、SRP-faによって伝達されるリング帯域幅の可用性には関係なく、ローカルで送信する低優先度パケットの上限を設定します。allow_usageは、MAX_USAGEから減っていきます。fwd_rateは、リングにフォワーディングされるパケットの量をカウントします。輻輳が発生していない場合は、すべてのノードは定期的にallow_usageを更新します。
ノードが輻輳を検出すると、ローパスフィルタ済みのmy_usage値(lp_my_usage)のアドバタイズを開始します。ヌル以外の使用率値(received_usage)を受信したノードは、アドバタイズされる値にそのallow_usageを設定します。
輻輳の発生していないノードがヌル以外のreceived_usageを受信すると、通常はアップストリームの近隣ノードにreceived_usageを伝達します。それ以外の場合は、ヌル使用率値(すべて1)を送信します。例外は、ローカルの再利用の機会が検出された場合です。ローパスフィルタ済みのfwd_rate(lp_fwd_rate)をallow_usageと比較することで、さらにスペースを再利用すること(spatial reuse)が可能になります。lp_fwd_rateがallow_usage未満の場合は、アップストリームの近隣ノードにヌル値が伝達されます。
輻輳の発生しているノードは、lp_my_usageとreceived_usageの小さいほうの値を伝達します。
コンバージェンスは、リング上のノード数とノード間の距離に大きく左右されます。シミュレーションによれば、数百マイルのリングで100 msec以内でコンバージェンスが行われます。
my_usage
my_usageは、ノードによって供給された低優先度パケットを測定します。このカウンタは、ノードから発信された低優先度パケットがリングに挿入されるたびに増加します。my_usageは高優先度パケットについての測定はしません。
PAK_LENは、SRPヘッダ、DA、SA、プロトコルタイプ、ペイロード、およびCRCを含むパケットのデータバイト数です。
高優先度の送信トラフィックは、SRP-faによってレートが制御されません。高優先度の送信トラフィックのレートは、CAR(Committed Access Rate)のようなレイヤ3機能を使用して制御してください。フェアに割り当てられた割合以上の帯域幅を使用しているノードのレートは、allow_usageパラメータによって制限されます。超過した分のパケットは、my_usageが減少するまで(後述)、またはフェアネスアルゴリズムによってallow_usageしきい値が更新されるまで、送信キューにバッファリングされます。
my_usageは減少間隔(DECAY_INTERVAL)ごとに定期的に減少します。これによってパケット送信のクレジットを時間をかけて蓄積し、リング上の最近の使用状況を反映させることができます。
AGECOEFFはエージング係数です。
FWD_RATE
fwd_rateは、ノードによって転送された低優先度の通過パケット(つまり、アップストリームまたはダウンストリームのノードから発信されたトラフィック)を測定します。fwd_rateカウンタは、低優先度の通過パケットがリングに挿入されるたびに増加します。fwd_rateは高優先度の通過パケットは測定しません。
過度の通過トラフィックは、ノードによってレート制限されません。その代わりに、そのトラフィックの送信元に対してフェアネスメッセージを生成します。fwd_rateは減少間隔(DECAY_INTERVAL)ごとに定期的に減少します。これによってパケット転送のクレジットを時間をかけて蓄積し、リング上の最近の使用状況を反映させることができます。
allow_usage
allow_usageは、フェアネスアルゴリズムによって決定される、ノードがリングに送信できるローカル送信パケットの最大数です。allow_usageしきい値は、減少間隔(DECAY_INTERVAL)ごとに定期的に更新されて、現在のリングトラフィック状況を反映します。allow_usageの値の決定方法については、この後でさらに説明します。
アルゴリズム
ここでは、faについてさらに詳しく説明します。
表6:変数
tb_low_depth |
低優先度の転送バッファの深さ |
my_usage |
ホストによって送信されるバイト数のカウンタ |
lp_my_usage |
ローパスフィルタ済みのmy_usage |
my_usage_ok |
ホストがパケットの送信を許可されていることを示すフラグ |
fwd_rate |
MACによってフォワーディングされたバイト数のカウンタ |
lp_fwd_rate |
ローパスフィルタ済みのfwd_rate |
congested |
転送バッファが輻輳しきい値を超えているためにトラフィックを送信できないノード |
received_usage |
受信された使用率情報 |
|
表7:定数
MAX_USAGE |
このノードで許可される最大使用率を示す設定可能な値 |
DECAY_INTERVAL |
OC-12c/STM-4の場合は8000バイト、OC-48c/STM-16の場合は32,000バイト |
AGECOEFF = 4 |
my_usageとfwd_rateのエージング係数 |
LP_MY_USAGE = 512 |
my_usageのローパスフィルタ |
LP_FWD_RATE = 64 |
fwd_rateのローパスフィルタ |
LP_ALLOW = 64 |
allow_usageの自動インクリメントのためのローパスフィルタ |
NULL_RECEIVED_USAGE |
すべて1のreceived_usage |
TB_LOW_THRESHOLD |
低優先度のホストパケットは全く送信できない転送バッファの深さ |
MAX_LINE_RATE |
AGECOEFF×DECAY_INTERVAL:OC-12c/STM-4の場合は32,000、OC-48c/STM-16の場合は128,000 |
MY_SA |
ノードのMACアドレス |
|
使用率パケットが受信されると、以下が実行されます。
- received_usage_pkt.SAをusage_pkt.SAに設定
- received_usage_pkt.TTLをusage_pkt.TTLに設定
- received_usage_pkt.RIをusage_pkt.RIに設定
- if (received_usage_pkt.TTL == 0)
received_usage = NULL_RECEIVED_INFO
else if (received_usage_pkt.SA != MY_SA)
received_usage = usage_pkt.USAGE
else if (WRAP == FALSE && received_usage_pkt.RI != MY_RI)
received_usage = usage_pkt.USAGE
else
received_usage = NULL_RECEIVED_INFO
以下はクロックサイクルごとに更新されます。
- my_usage = my_usage + pak_len
- fwd_rate = fwd_rate + pak_len
- if ((my_usage < allow_usage) and (my_usage < MAX_USAGE))
my_usage_ok = true /* OKの場合はパケットを送信 */
以下はDECAY_INTERVALごとに計算されます。
- congested =
- lp_my_usage =
- my_usageは、以下のどちらか少ないほうが減じられます。
- lp_fwd_rate =
- fwd_rateからは以下の値が減じられます。
- if (received_usage != NULL_RECEIVED_INFO)
allow_usage = received_usage
else
allow_usage = allow_usage +
- if (congested) {
if ((lp_my_usage < received_usage) || (received_usage == NULL_RECEIVED_INFO))
{
upstream_usage_pkt.USAGE = lp_my_usage
upstream_usage_pkt.SA = MY_SA
upstream_usage_pkt.TTL = MY_TTL
upstream_usage_pkt.RI = MY_RI
}
else
{
upstream_usage_pkt.USAGE = received_usage
upstream_usage_pkt.SA = received_usage_pkt.SA
upstream_usage_pkt.TTL = received_usage_pkt.TTL - 1
upstream_usage_pkt.RI = received_usage_pkt.RI
}
}
else if ((received_usage != NULL_RCVD_USAGE) && (lp_fwd_rate > allow_usage) )
{
upstream_usage_pkt.USAGE = received_usage
upstream_usage_pkt.SA = received_usage_pkt.SA
upstream_usage_pkt.TTL = received_usage_pkt.TTL - 1
upstream_usage_pkt.RI = received_usage_pkt.RI
}
else
{
upstream_usage_pkt.USAGE = NULL_RECEIVED_INFO
upstream_usage_pkt.SA = MY_SA
upstream_usage_pkt.TTL = MY_TTL
upstream_usage_pkt.RI = MY_RI
}
if (rev_usage > MAX_LINE_RATE)
{
upstream_usage_pkt.USAGE = NULL_RCVD_INFO
upstream_usage_pkt.SA = MY_SA
upstream_usage_pkt.TTL = MY_TTL
upstream_usage_pkt.RI = MY_RI
}
SRP-faプロシージャは、以下のように要約できます。
- 着信パケットから使用率情報を取り出します。
- 受信したフェアネス値とパラメータのエージングに基づいて、allow_usageしきい値を定期的に更新します。
- allow_usage、fwd_rate、およびmy_usageパラメータの値を使用して、使用率フィールドで送信するSRP-faシグナリング情報を計算します。
- アップストリームの近隣ノードにフェアネスメッセージを送信します。
SRP-faの簡単な例を図17に示します。
図17:SRP-faの例
リング上には5つのノードがあります。Node_2、Node_3、およびNode_4は、外側リングを通してNode_1にトラフィックを送信します。Node_4が1秒目に送信を開始し、Node_3が2秒目、Node_2が3秒目に送信を開始します。各ノードはフルラインレートで送信します。
図18は、Mil3, Inc.(http://www.mil3.com)によってOPNET Modeller上で実行されたSRP-faのシミュレーション結果を示しています。この例では、ゼロ~1秒以内に送信しているノードはありません。1秒目に、Node_4がローカル供給パケットのリングへの送信を開始します。送信しているノードはこのノードのみであるため、フルラインレートで送信することができます。2秒目に、Node_3が自身のローカル送信パケットを送信したいとしています。Node_3は、送信する前に、Node_4にフェアネスメッセージを送信してそのトラフィックを減速させる必要があります。Node_4がそのトラフィックを減速すると、Node_3は送信を開始できます。帯域幅がNode_3とNode_4によって共有されていることに注意してください。3秒目に、Node_2が自身のローカル供給パケットを送信したいとしています。ここでも、Node_2は送信する前にNode_3とNode_4にフェアネスメッセージを送信して、それらのトラフィックを減速するように依頼する必要があります。Node_3とNode_4がそのトラフィックを減速すると、Node_2は送信を開始できます。これで、帯域幅はNode_2、Node_3、およびNode_4によって共有されます。
図18:SRP-faシミュレーション結果
6. インテリジェント保護スイッチング(IPS)
インテリジェント保護スイッチング(IPS)は、強力な冗長機能を備えたSRPリングに提供します。この機能によってSRPリングは、障害が発生した部分のトラフィックをラッピングすることで、機器やノードの障害から自動的に回復することができます。IPSはSONET/SDHリングのAPS(Automatic Protection Switching)に類似した機能を提供しますが、以下のような重要な拡張機能を備えています。
- プロアクティブな障害/パフォーマンス監視機能とイベント検出/報告機能。
- 検出された障害および障害回避に関する情報を伝達するための信号の処理と伝搬。ラップの発生および解除や信号の転送といった適切な処理を実行して、回復/復旧プロセスを促進します。
- トポロジに関する情報の独立性。IPSは、復旧/回復を処理するために、ノードの同一性やノードの近接物といったリングのトポロジ情報を使用しません。この機能によってネットワーク管理者は、最小限のプロビジョニングや構成で、リングへのノードの挿入や削除および独立したリングのマージを行うことができます。SRPリングは、このプロセスを促進するための広範なトポロジ検出機能を備えています。
- 障害の発生した機器やノードをバイパスして目的の宛先にパケットを送信するためのリングラッピング。機器やノードの障害が発生すると、パケットの損失を最小限に抑えるために、保護スイッチが迅速に実行されます。前述のシングルサブネットの場合は、保護スイッチングはレイヤ3プロセスに対して透過的になります。したがって、ルーティングコンバージェンスの諸問題が回避されます。
- 保護スイッチングイベント階層。IPSは保護スイッチングイベント階層をサポートします。これによって、別個のサブリングやアイランドにリングをパーティショニングしないで、同時複数イベントを処理することができます。また、イベントの共存と優先権の規則を定義しています。
- 正常時にIPS関連のシグナリングトラフィックを最小限に抑える一方で、障害検出および回復時にはIPSシグナリングを促進するプロシージャ。
6.1 保護スイッチングとトラフィックラッピング
IPSによってリングは、障害を回避してトラフィックをラッピングすることで、機器やノード障害から自動的かつ迅速に回復することができます。障害に隣接するノードはリングをラップしてリングを障害から復旧します。それから、中間ノードはデータおよびIPS制御パケットを目的の宛先に通過させます。図19に例を示します。
図19:IPSの例
ノードAとBからのパケットは、(1)と示された1ホップのパスを使って伝送されます。次に、ノードAとBの間のファイバが切断されたと仮定します。この場合は、どちらのノードも後述のIPSプロシージャを使ってリングをラップします。そしてノードAとBからのパケットは、右側の図のマルチホップパスを使用します。パケットを受信した各中間ノードは、そのパケットヘッダが逆のリングのリングIDを持っていることから、転送バッファを経由してパケットを転送します。ノードBによってパケットがラップされて外側リングに戻されると、通常のプロシージャにしたがって宛先で排除されます。
ノードの内部的なリングラップ処理を図20に示します。
図20:リングラップ時のパケットフロー
IPSは、K1/K2オーバーヘッドバイトを利用するSONET/SDHリングとは異なり、保護スイッチングシグナリングに明示的なSRP制御パケットを使用します。IPS制御パケットのフォーマットを図21に示します。
図21:IPSパケットフォーマット
表8はIPSバイトフォーマットを示しています。
表8:IPSバイトフォーマット
ビット |
説明 |
0 - 3 |
IPSリクエストタイプ |
1111 - 保護ロックアウト(LO)[未サポート] |
1101 - 強制スイッチ(FS) |
1011 - 信号エラー(SF) |
1000 - 信号低下(SD) |
0110 - 手動スイッチ(MS) |
0101 - 復旧待機(WTR) |
0000 - リクエストなし(0) |
4 |
パスインジケータ |
0 - ショート(S) |
1 - ロング(L) |
5 - 7 |
ステータスコード |
010 - 保護スイッチ完了[トラフィックラップ済み(W)] |
000 - アイドル(0) |
|
6.2 IPSリクエストタイプ
IPSリクエストは、(トリガするイベントをノードが検出した後で)自動的に開始することも、手操作で(たとえば、ネットワークオペレーターがCLIコマンドを入力して)開始することもできます。それぞれのリクエストタイプについて以下に説明します。
- 自動リクエスト
- 信号エラー(SF)--- 信号損失(LOS)、フレーム損失(LOF)、特定しきい値以上の回線ビットエラーレート(BER)、回線AIS、または過度のCRCエラーの検出によって開始されます。
- 信号低下(SD)--- 特定しきい値以上の回線BERまたは過度のCRCエラーを検出することで開始します。
- 復旧待機(WTR)--- 保護スイッチングの振動を防ぐために使用されます。障害や手動リクエストが解除されたらすぐにラップを解除するのではなく、ノードは設定された期間だけ待機してからラップを解除します。
- 手動リクエスト
- 強制スイッチ(FS)--- ネットワーク管理者はコマンドを発行して、ノードおよび隣接ノードで保護スイッチを強制実行できます。このコマンドは、リング上に新しいノードを追加する場合に有用です。
- 手動スイッチ(MS)--- 強制スイッチと同様ですが、優先度が低くなります。
6.3 パスインジケータ
パスインジケータフィールドで指定されるIPSメッセージには、以下の2種類があります。
- ショートパスIPSメッセージ --- 障害の発生したファイバ上の隣接ノードの間で送信されます。障害に応じて、メッセージは通過することも、通過しないこともあります。このために、一方のエンドでは障害が検出され、他方では検出されない場合があります。受信されたショートパスIPSメッセージがフォワーディングされることはありません。これらは受信ノードによってストリップされて処理されます。ノードはショートパスリクエストでのみラップします。
- ロングパスIPSメッセージ --- リングを回って送信されます。これらは、他方のエンドのラップされたノードに到着するまで、常に受信ノードによってフォワーディングされます。ロングパスIPSメッセージは保護階層を維持するために使用されます。
IPSパケット(ロングおよびショートパスメッセージの両方)がラップされることはありません。
6.4 SONET/SDHオーバーヘッドバイトの取扱い上の注意
IPSリクエストはネットワークイベントの結果として発生します。これらのネットワークイベントの一部は、以下のようにSONET/SDHオーバーヘッドバイトを監視することで検出されます。
- LoFは、A1およびA2オーバーヘッドバイトを監視することで検出されます。LoFは、3ミリ秒間にこれらのバイトの有効値が受信されない場合に宣言されます。2つの連続する有効なA1およびA2バイトが受信されると、LoFは解除されます。
- LoSは、10マイクロ秒以上に渡ってすべてゼロのパターンが受信されると発生します(これはアップストリームの送信エラーを示します)。
- アラーム指示信号(AIS)は、LoFやLoSといった障害状況の結果として発生し、障害の発生をダウンストリームノードに通知するために使用されます。回線AISは、5つの連続フレームでK2バイトのビット6~8に1があることで検出されます。
- ビットエラーレート(BER)の監視は、B2オーバーヘッドバイトを通して検出されたパリティ違反をカウントし、ある期間の違反の数を対応するビットエラーレートに変換することで実行されます。設定されたBERしきい値は、観測されたBERが信号エラー(SF)と信号低下(SD)状況のどちらになるかを決定するために使用されます。
6.5 IPSイベント階層
IPSは複数の同時イベントを処理するために(たとえば、SDに応じてすでにリングがラップされている場合のSFの処理など)、保護スイッチングイベント階層(SONET APS階層をモデルとする)を提供します。以下に階層を示します。
- FS(最高優先度)
- SF
- SD
- MS
- WTR
- リクエストなし(アイドル)(最低優先度)
IPS保護リクエストの階層は以下のとおりです。
- リクエスト >= SF かつ < FS は共存できます。
- リクエスト < SF は他のリクエストと共存できません。
- ノードは、最高優先度のショートパスリクエストと自己検出されたリクエスト(障害)を常に優遇します。
- < SFのタイプのリクエストが複数ある場合は、ロングパスシグナリングを完了するための最初のリクエストが優先されます。
- 外側リングと内側リングの両方に< SFのタイプの2つの等しいリクエストがある場合は、ノードは外側リング上のリクエストを選択します。
6.6 IPSの状態
IPSメッセージは、隣接ノード間でポイントツーポイントのメッセージとして送信され、内側リングと外側リングの両方で送信されます。各ノードはIPSメッセージ処理状態マシンおよび状態遷移に対応する一連の規則を実装しています。状態は以下のように定義されます。
- アイドル --- ノードは保護スイッチを実行する準備が整っており、両方の最も隣接するノードにアイドルIPSメッセージを送信します。
- パススルー --- ノードは、ラップされたトラフィックとロングパスIPSメッセージを隣接ノードにフォワーディングすることで、保護スイッチに参加します。
- ラップ --- ノードは、内側リングから外側リングへ(または逆に)トラフィックをラッピングすることで保護スイッチングを提供します。ローカルリクエスト(手動)、自己検出(自動)、またはショートパスIPSメッセージを隣接ノードから受信すると、この状態になります。
メッセージ通過と状態遷移の詳細を、図22に示します。ここでは、ノード間のIPSメッセージを示すために、メッセージフォーマットに対して4つの要素から成る簡略表記 {R, S, W, P}(R = リクエスト、S = 送信元、W = ラップ状態、P = パスインジケータ)が使用されています。
図22:IPSの状態
6.7 IPSプロシージャ
以下に、IPSの重要なコンセプトについて簡単に説明します。
- アイドル状態にあるリング上のノードは、内側リングと外側リングの両方でアイドルIPSメッセージを定期的に送出して、それらがアイドル状態であることを最も隣接するノードに通知します。
- 障害の自己検出、ローカルリクエスト、またはラップを示すショートパスIPSメッセージを最も隣接したノードから受信すると、ノードはアイドル状態からラップ状態へと遷移します。
- ロングパスIPSメッセージは、イベント階層の維持に使用されます。これらは保護スイッチを行いません。たとえば、ラップ状態のノードは、より優先度の高いイベントに対応するために、ラップを解除してパススルー状態に遷移します。ラップ状態のノードを示すロングパスIPSメッセージは、中間ノードをパススルー状態に遷移させるほか、リングを回ってメッセージを次のノードにフォワーディングするために機能します。
6.8 IPS状態遷移の規則
図22に示したIPSの状態遷移について、それぞれの状態におけるイベントとメッセージの処理プロシージャについてまとめます。
- アイドル状態
- アイドル状態のノードは、最も隣接したノードにアイドルIPSメッセージ {0, Self, 0, S} を送信します。
- アイドル状態のノードがショートパスIPSメッセージ {R, S, W, P}(W = ラップ済み、P = ショート)を受信すると、リングをラップして、アイドル状態からラップ状態に遷移します。その後、ショートパス {0, Self, W, S} およびロングパス {R, Self, W, L} を送信します。
- アイドル状態のノードがロングパスIPSメッセージ {R, S, W, P}(W = ラップ済み、P = ロング)を受信すると、アイドル状態からパススルー状態に遷移します。
- アイドル状態のノードがローカルリクエストまたは自己検出イベントを検出すると、リングをラップして、アイドル状態からラップ状態に遷移します。その後、ショートパス {R, Self, W, S} およびロングパス {R, Self, W, L} IPSメッセージを送信します。
- パススルー
- アイドル状態のノードがロングパスIPSメッセージを受信すると、アイドル状態からパススルー状態に遷移します。
- パススルー状態のノードは、ロングパスIPSメッセージを転送します。
- パススルー状態のノードがアクティブなリクエストよりもイベント階層が上位のFS、SF、SD、またはMSリクエスト(つまり、アイドルからパススルーになった時に指示されたリクエスト)を検出すると、リングをラップして、パススルー状態からラップ状態に遷移します。
- パススルー状態のノードがアクティブなリクエストよりもイベント階層が上位のショートパスIPSメッセージを受信すると、リングをラップして、パススルー状態からラップ状態に遷移します。
- パススルー状態のノードがショートパスアイドルIPSメッセージ {0, S, 0, S} を受信すると、パススルーからアイドル状態に遷移して、アイドルIPSメッセージ {0, S, 0, S} の送信を開始します。
- ラップ済み
- ローカルリクエストの結果、ノードがラップ状態になると、ショートパス {R, S, W, S} およびロングパス {R, S, W, L} IPSメッセージを送信します。
- ショートパスIPSメッセージ {R, S, W, S} を受信してラップ状態となったノードは、ショートパスIPSメッセージ {0, Self, W, S} およびロングパスIPSメッセージ {R, S, W, L} を送信します。
- ラップ状態のノードがアクティブなリクエストよりもRのイベント階層が上位のロングパスIPSメッセージ {R, S, W, L} を受信すると、リングのラップを解除して、ラップ状態からパススルー状態に遷移します。
- ラップ状態のノードがローカルリクエストや自己検出された障害の解除を検出すると、ラップ済みからアイドル状態に遷移します。
- ラップ状態のノードがショートパスアイドルIPSメッセージ {0, S, 0, S} を最も隣接するノードから受信すると、ラップ状態からアイドル状態に遷移します。
6.9 IPSの例
IPSメッセージと状態遷移をより分かりやすく説明するために、以下に詳細な障害シナリオをいくつか示します。これらの例で使用されているメッセージフォーマットは、前述した {R, S, W, P} の形式の4つの要素から成るフォーマットで、R - リクエストタイプ、S - 送信元アドレス、W - ラップ状態、P - パスインジケータを表します。
正常な稼動状況
図23に示されているように、最初は全ノードがアイドル状態になっています。アイドルIPSメッセージ {0, Self, 0, S)が両方のリングで送信されます。
図23:正常な稼動状況
単一のファイバ障害
単一のファイバ障害が発生した場合は、以下の処理が行われます。
図24:単一のファイバ障害
- ノードBがSF状況を検出し、リングラップを実行して、アイドルからラップ状態に遷移します。次に、ショートパスIPSメッセージ {SF, B, W, S} をノードAに対して内側リングを使って送信します。
- ノードAは、ショートパスIPSメッセージを受信すると、リングラップを実行して、アイドルからラップ状態に遷移します。次に、ショートパスIPSメッセージ {0, A, W, S} をノードBに対して外側リングを使って送信します。ノードAとBの間のファイバが破損しているため、メッセージは通過しないことに注意してください。
- さらにノードBは、ロングパスIPSメッセージ {SF, B, W, L} を外側リングを使ってノードDに送信します。
- さらにノードAは、ロングパスIPSメッセージ {SF, A, W, L} を内側リングを使ってノードCに送信します。
- ノードCとDは、ロングパスIPSメッセージを受信すると、アイドルIPSメッセージの送信を停止し、アイドル状態からパススルー状態に遷移します。これらはノードAとBの間で互いにIPSメッセージを渡し始めます。
二重のファイバ障害
二重のファイバ障害が発生した場合は、以下の処理が行われます(図25参照)。
図25:二重のファイバ障害
- ノードAとBが信号エラー状況を検出し、リングラップを実行して、アイドル状態からラップ状態に移行します。
- ノードAはショートパスIPSメッセージ {SF, A, W, S} をノードBに送信し、ノードBはショートパスIPSメッセージ {SF, B, W, S} をノードAに送信します。ファイバ障害があるため、いずれのノードでもメッセージは受信されません。
- ノードAはロングパスIPSメッセージ {SF, A, W, L} を内側リングを使ってノードCに送信します。
- ノードBはロングパスIPSメッセージ {SF, B, W, L} を外側リングを使ってノードDに送信します。
- ノードCとDは、ロングパスIPSメッセージを受信して、アイドルIPSメッセージの供給を停止し、アイドル状態からパススルー状態に遷移します。これらはノードAとBの間で互いにIPSメッセージを渡し始めます。
複数のファイバ障害
二重のファイバ障害が発生した場合は、以下の処理が行われます(図26参照)。
図26:複数のファイバ障害
- ノードBが信号エラー状況を検出し、リングをラップして、アイドル状態からラップ状態に遷移します。次に、ショートパスIPSメッセージ {SD, B, W, S} を内側リングを使ってノードAに送信します。
- ノードAはショートパスIPSメッセージを受信して、リングラップを実行し、アイドルからラップ済み状態に移行します。さらに、ノードAは、ショートパスIPSメッセージ {0, A, W, S} を外側リングを使ってノードBに送信します。
- ノードAはロングパスIPSメッセージ {SD, A, W, L} を内側リングを使ってノードCに送信します。
- ノードBはロングパスIPSメッセージ {SD, B, W, L} を外側リングを使ってノードDに送信します。
- ノードCとDがロングパスIPSメッセージを受信すると、アイドルIPSメッセージの供給を停止して、アイドル状態からパススルー状態に遷移します。これらはノードAとBの間で互いにIPSメッセージを渡し始めます。
- その後、ノードBとDの間でファイバ障害が発生します。
信号低下とファイバ障害
図27は二重のファイバ障害の2番目の例を示します。これについて以下に説明します。
図27:信号低下とファイバ障害
- ノードBとDがファイバ障害状況を検出し、リングラップを実行して、パススルー状態からラップ状態に移行します。
- ノードBはショートパスIPSメッセージ {SF, B, W, S} を外側リングを使ってノードDに送信し、ノードDはショートパスIPSメッセージ {SF, D, W, S} を内側リングを使ってノードBに送信します。ファイバ障害があるため、いずれのノードもメッセージを受信しません。
- ノードBがロングパスIPSメッセージ {SF, B, W, L} を内側リング上で送信します。
- リクエストタイプSFはSDより上位であるため、ノードBはBとAの間のファイバのラップを解除します。
- ノードDはロングパスIPSメッセージ {SF, D, W, L} を外側リングを使ってノードCに送信します。
- ノードAはロングパスIPSメッセージ {SF, D, W, L} を受信し、AとBの間のファイバのラップを解除して、ラップ状態からパススルー状態に遷移します。
障害の解除
ラップ済み状況の原因となった障害が解除されると、以下の処理が実行されます(図28を参照)。
図28:障害解除
- ノードAとBが障害の解除を検出すると、ノードは復旧待機(WTR)モードに入ってWTRタイマを開始します。
- ノードAは、外側リングでショートパス {WTR, A, W, S}、内側リングでロングパス {WTR, A, W, L} IPSメッセージを送信します。
- ノードBは、内側リングでショートパス {WTR, B, W, S}、外側リングでロングパス {WTR, B, W, L} IPSメッセージを送信します。
- ノードAとBは、WTRタイマの満了を待ちます。
- WTRタイマが満了すると、ノードAとBはアイドルIPSメッセージ {0, Self, 0, S} の送信を開始します。
- ノードAは、ノードBからアイドルIPSメッセージを受信すると、ラップ状態からアイドル状態に移行します。
- ノードBは、ノードAからアイドルIPSメッセージを受信すると、ラップ状態からアイドル状態に移行します。
- ノードCとDは、AとBからアイドルIPSメッセージを受信して、パススルー状態からアイドル状態に移行します。
- リングは復旧します。
7. パススルー
ここで説明されているパススルーモードは、IPSパススルー状態とは異なります。
ソフトウェア関連の障害などが発生すると、ルータはレイヤ3フォワーディング機能が一時的に制限された状態になることがあります。しかし電源はオン状態であるため、MACレイヤはファイバリングにパケットを転送することになります。このような場合は、ノード障害によるリングラップやリングパーティショニングを回避するための処置が必要です。SRPインタフェースは、自動プロシージャ(たとえば、ウォッチドッグタイマの満了)またはCLIコマンドによって、パススルーモードに入ります。パススルーモードでは、以下のようになります。
- ノードはリングから見えなくなります。
- 着信パケットについてアドレスルックアップは実行されません。
- パケットが、受信側でレイヤ3に渡されたり、送信側でレイヤ3から渡されることはありません。
- TTLフィールドの値は変化しません。
- SRP-faは実行されません。
その代わりに、下記の図29に示されているように、ノードに入るすべてのパケットは、単純にMACレイヤを通して対応する送信ファイバに転送されて、リング上で継続して循環します。
図29:SRPパススルーモード
パススルーモードを終了するには、まず、SRP MACがパススルーモードに入る原因となった状況が解除される必要があります。
8. ネットワーク管理
SRP製品はRFC 2558で定義されているSONET MIBを実装しており、現在のアラームステータスとパフォーマンス監視情報、および履歴パフォーマンス監視情報を提供します。現在および直前の24時間について15分間隔で、以下のような情報が収集されて提供されます。
- セクションレイヤにおけるアクティブアラームを報告する現在のステータス(該当する場合):LoSまたはLoF
- セクションレイヤにおける現在のパフォーマンス監視統計情報:エラー秒数(ES)、重大なエラー秒数(SES)、重大なエラーフレーミング秒数(SEFS)、およびコーディング違反(CV)
- セクションレイヤにおける履歴パフォーマンス監視統計情報:ES、SES、SEFS、およびCV
- 回線レイヤにおけるアクティブアラームを報告する現在のステータス:AISおよびRDI(該当する場合)
- 回線レイヤにおける現在のパフォーマンス監視統計情報:ES、SES、CV、および利用不可能秒数(UA)
- 回線レイヤにおける履歴パフォーマンス監視統計情報:ES、SES、CV、およびUA
- 回線レイヤにおける現在および履歴のリモート側パフォーマンス監視統計情報:ES、SES、CV、およびUA
- 現在のパス帯域幅(たとえば、STS-12cまたはSTS-48c)およびパスレイヤにおけるアクティブアラームを報告する現在のステータス(該当する場合):パスLOP、パスRDI、パスAIS、パス準備未完了、またはパス信号ラベル不一致
- パスレイヤにおける現在および履歴のパフォーマンス監視統計情報:ES、SES、CV、およびUA
- パスレイヤにおける現在および履歴のリモート側パフォーマンス監視統計情報:ES、SES、CV、およびUA
9. クロックと同期
SRPインタフェースは、Cisco PoS/SDH(PoS)インタフェースと同様に、以下の2種類のモードで動作できます。
- ループ型時間供給(PoSのデフォルト)
- 内部時間供給(SRPのデフォルト)
これによってユーザーは、以下に接続することが可能になります。
- SONET/SDH ADM(分岐挿入多重化)
- WDM(Wave Division Multiplexing)システム
- ファイバへの直接接続(リジェネレータあり/なし)
クロック要件には、いろいろな種類があります。それぞれの場合について、ここで解説していきます。SRPはリングトポロジですが、クロックについてはポイントツーポイントで実行され、リング全体に対しては実行されないことに注意してください。
SRPインタフェースがADMに接続されている場合は、クロックはADMから供給されます。クロックは受信側で回復されて、送信側にループされます。そのため、ループ型時間供給と呼ばれます。図30はADMに接続されたSRPインタフェースを示しています。内側の矢印(緑、または白黒モードでは薄く表示)はクロックパスを、外側の矢印(青、または白黒モードでは濃く表示)はデータパスを示します。
図30:ADMへのSRP接続
図31に示されているように、SRPインタフェースがWDMシステムまたは直接ファイバに接続されている場合は、WDMシステムやファイバからはクロックが提供されないため、SRPインタフェースがクロックを提供する必要があります。
図31:SRPのWDM接続または直接ファイバ接続
それぞれのSRPインタフェースには、±20ppmの精度の局部発振器が装備されています。この発振器は、送信側で必要とされるクロックの生成に使用されます。これによって中央クロック供給元の必要がなくなります。ノード間のクロック周波数の差異は、各ノードの出力に少量のアイドル帯域幅を挿入し、ノードが遅くなった場合は挿入するアイドル帯域幅の量を減らすことで対処します。
PoSの場合と同様に、SRPはBITS(Building Integrated Timing Supply)インタフェースはサポートしません。
図32に示されているような混在接続もサポートされています。
図32:ADM、WDMシステム、および直接ファイバへのSRP接続
10. SRP製品
10.1 Cisco 12000インターネットルータのラインカード
Cisoc 12000 インターネットルータのSRPラインカードは、シングルSRPリング密度、つまりラインカードあたり1つのSRPリングを提供します。それぞれのリングは2つのファイバから構成され、各ファイバはOC-12c/STM-4で動作します。GSRラインカードはTTM-48エンジンを使用します。SRPラインカードの動作には、フルファブリックが必要です。SRPラインカードのオプティカルオプションを表9に示します。
表9:SRPラインカードのオプティカルオプション
|
コネクタタイプ |
動作波長 |
送信パワー |
受信パワー |
合計リンクバジェット |
最小到達距離 |
マルチモード |
SC |
1310 nm |
-14 dBm(最大)
-20 dBm(最小) |
-14 dBm(最大)
-26 dBm(最小) |
6 dBm |
2 Km |
シングルモード、IR |
SC |
1310 nm |
-8 dBm(最大)
-15 dBm(最小) |
-8 dBm(最大)
-26 dBm(最小) |
13 dBm |
15 Km |
シングルモード、LR |
SC |
1310 nm |
+2 dBm(最大)
-3 dBm(最小) |
-8 dBm(最大)
-26 dBm(最小) |
25 dBm |
40 Km |
シングルモード、LR |
SC |
1550 nm |
+2 dBm(最大)
-3 dBm(最小) |
-31 dBm(最大)
-28 dBm(最小) |
25 dBm |
25 dBm |
|
SRP MACは、実際にはインタフェースあたり2つのSRP MACチップから構成されています。図33に示されているように、それぞれのMACには、転送バッファ、CAM、およびSkystoneフレーマが関連付けられています。
図33:SRPラインカード
SRP MACは現在、高性能ハードウェアソリューションと柔軟なソフトウェアアップグレード/変更機能を結合するために(たとえば、MACレイヤプロトコルの変更やSRP-fa、IPSのアルゴリズムの変更を可能にするために)、FPGA上に実装されています。MACはソフトウェアダウンロードによってプログラムすることが可能です。
SRPラインカードのフロントパネルには、以下のような情報提供およびデバッギングのための7つのLEDが装備されています。
- 各物理インタフェースにつき3つで1セットのLED
このLEDは以下のようにポートのステータスを示します。
- アクティブ(緑、点灯)--- SRPインタフェースが使用可能であることを示します。
- Rxキャリア(緑、点灯)--- OC-12c/STM-4 SONETフレーミングを正しく受信したことを示します。
- Rxパケット(緑、点滅)--- ポートがパケットを受信中であることを示します。リングに転送されて戻されたパケットがあっても、このLEDは点滅しません。
- パススルーLED(オレンジ、点灯)--- SRPインタフェースがパススルーモードであることを示します。
10.2 Cisco 7500ポートアダプタ
SRPポートアダプタは、VIP2-50をベースとするデュアルワイドのシングルリングソリューションです。つまり、1つの2ファイバリングで、それぞれのファイバがOC-12c/STM-4で動作します(図34参照)。
図34:SRPポートアダプタ
送信側
送信側PCIチップの主要な機能は、発信パケットのインテリジェントなキューイングとスケジューリングです。SRPフェアネスアルゴリズムによってローカル送信トラフィックが許可されると、リングへのパケットのバーストは、VIP2-50のトラフィック処理キャパシティに制限されません。これは、2層型のキューイング構造を提供しているためです。パケットはVIPキューから取り出され、Tx PCIキューは常にフル状態になります。したがって、トラフィックはリング上にバーストすることができ、パケット優先度は、リングの帯域容量に見合ったレートでTx PCIキューからDRRスケジューリングによって管理されます。送信側のパケットフローを図35に示します。
図35:Tx側
受信側
受信側PCIチップの主要な機能は、SRPリング上のルータから到着したバーストトラフィックをインテリジェントに処理すること(最高2×622 Mbps)、そしてVIP 2-50のトラフィック処理機能です(約200 Mbps)。そのために、外側リング用の3つのキューと内側リング用の3つのキューに分割された受信側バッファ、WREDベースのエンキュー決定によって実施されるパケット優先度、およびDRRによるスケジューリングが提供されています。受信側のパケットフローを図36に示します。
図36:Rx側
|
更新日:2001年5月2日 |