説明

インターネットにアクセスする加入者への所望のサービス・ポリシーの提供

【課題】所望のサービス・ポリシーをそれぞれの加入者に提供することを可能にするインターネット・サービス・ノード(ISN)を提供する。
【解決手段】ISN250は、複数のプロセッサ・グループを備えることができ、それぞれの加入者は、プロセッサ・グループに割り当てられる。割り当てられたプロセッサ・グループは、加入者が所望するサービス・ポリシーを提供する処理規則で構成される。ポートは、受信データが転送される先の特定のプロセッサ・グループを決定することができる。連想記憶装置(CAM)を用いて、受信データが割り当てられるべきプロセッサ・グループを迅速に決定することができる。ISNは、多数の加入者に効率的にサービスを行うことができ、アクセス・ネットワークのエッジ・デバイスとなる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にデジタル通信ネットワークに関し、より具体的には、所望のサービス・ポリシーを、インターネットにアクセスする加入者に提供するためのシステムおよび方法に関する。
【背景技術】
【0002】
ユーザはしばしばローカル・システムを使用してリモート・システムにアクセスする。典型的なシナリオでは、ユーザがコンピュータ・システム(一般にすぐそばに位置する)を使用して、リモート・システム(一般に離れた位置にある)にアクセスすることができる。このアクセスは、関連技術分野で周知のように、webブラウジング、電子メールおよびデータベース・アクセスなど、いくつかの有用なアプリケーションの基礎としての機能を果たすことができる。
【0003】
リモート・アクセス・デバイスは、しばしばローカル・システムおよびリモート・システムの間に存在する。リモート・アクセス・デバイスは一般に、ユーザから発信する物理接続(たとえば、大規模グループからの加入者回線および専用T1回線を介したダイアル接続)の集約装置(aggregator, または、集信装置ともいう)またはマルチプレクサとして動作する。リモート・アクセス・デバイスは一般に、ユーザ宛てのデジタル・データ・ビット(「ビット・グループ」)を送信し、ユーザから発信するビット・グループを受信するように動作する。インターネット・サービス・プロバイダ(ISP)が提供するリモート・アクセス・サーバ(デジタルおよび/またはデジタル・モデムをサポートする)、地域交換キャリア(従来の競合LEC)が提供するデジタル加入者線アクセス・マルチプレクサ(DSLAM)、およびケーブル・テレビ・プロバイダが提供するケーブル・モデムが、このようなリモート・アクセス・デバイスの例である。
【0004】
リモート・アクセス・デバイスは一般にデータ・スイッチとインタフェースを取り、これにより、選択的に各受信ビット・グループを、典型的にはビット・グループ内で符号化されたアドレス情報に基づいて、対応する宛先へ転送する。一般的な実施では、データ・スイッチがインターネット・プロトコル(IP)ルータに相当し、これは、IPパケットの宛先アドレスを検査して、このIPパケットを送信する次のポイント(典型的には、別のルータまたはコンピュータ・システム)を決定する。
【0005】
従来の実施では、ルータおよびリモート・アクセス・デバイスの組み合わせでは、ユーザの特殊な要件(または所望のサービス・ポリシー)についてサービスを行うことができないことがある。特定のサービス・ポリシー要件を有するユーザのグループ(単一ユーザの場合を含む)を、ここでの適用例では「加入者」と呼ぶ。加入者の特殊な要件の例を最初に言及する。次いで、ユーザの要件を満たす際の従来のルータおよびリモート・アクセス・デバイスの不十分さを記載する。
【0006】
加入者は、いくつかの理由によって特殊な要件を有することがある。たとえば、ビジネスなど大規模なグループを含む加入者、およびそのビジネスは、一部またはすべてのユーザが使用する集約帯域幅(aggregate bandwidth)を制限することを望むことがある。いくつかの他のビジネスは、おそらくすべてではないが一部のユーザ向けに、異なる遠隔地の間で専用の安全リンクを有する仮想専用ネットワーク(VPN)を望むことがある。さらに別のビジネスでは、あるタイプのアプリケーション(たとえばwebアクセスのみについて、ファイル転送またはテレネットではない)へ入ってくるアクセスを制限すること、または異なるアプリケーションについて異なるサービス・クラス(COS)を有することを望むことがある。
【0007】
このような大規模グループの要件に加えて、個人ユーザ(加入者)が異なる要件を有することがある。これらの個人は、大規模ビジネスの一部または家庭内ユーザである可能性がある。ユーザは、あるピーク時間(たとえば、ネットワークが通常より輻輳するビジネス時間)中に56Kbpsのみの割り振りを望み、他の時間中にははるかに高い帯域幅の割り振りを望むことがある。ISPは、このようなユーザにより低い料金を課金することを望む場合がある。一般に、ユーザまたは加入者は、変動する特殊なサービス・ポリシー要件を有する可能性があることを理解されたい。
【0008】
従来のデータ・スイッチおよびリモート・アクセス・デバイスの組み合わせでは、いくつかの理由によりこのような要件の組み合わせについてサービスを行うには不十分なことがある。たとえば、データ・スイッチは、優先順位付けおよびアクセス制御方式に制限があるにも関わらず、主として高速パケット転送デバイスとして実現されることがある。サービス品質(QoS)およびトラフィック・パラメータに基づいてトラフィックの優先順位付けを切り替える非同期転送モード(ATM)、およびいくつかのアプリケーションのみのデータをフィルタリングするIPルータが例示的な例である。
【0009】
しかし、従来のデータ・スイッチおよび/またはリモート・アクセス・デバイス向けに選択されるアーキテクチャは、個人ユーザ/加入者向けのサービス・ポリシーのカスタマイズを提供することができない。たとえば、セルを転送するATMスイッチは、1つのセルを検査することにより、個人ユーザ間を区別する能力を有していない。より高い層で動作するデータ・スイッチ(たとえば、IPルータ)は、通常は速度を獲得するために、パケットを一様に処理するよう設計されことがあり、したがってカスタマイズしたサービス・ポリシーを個人加入者へ提供するように設計されることができない。
【0010】
上述のように、このようなカスタマイズがいくつかの例で必要になることがある。したがって、カスタマイズされた異なるサービス・ポリシーを異なる加入者に提供することが可能となる、柔軟性のあるアーキテクチャが必要とされている。
【0011】
カスタマイズに加えて、一般に、多数の加入者にサービスを行うために、アーキテクチャを拡張できることが必要である。したがって、多数の加入者にサービスを行うために十分拡張することのできる、柔軟性のあるアーキテクチャも必要とされている。
【発明の概要】
【0012】
本発明は、所望のサービス・ポリシーのセットを加入者のそれぞれに提供するインターネット・サービス・ノード(ISN)に関する。ISNは特に、ISPおよびLEC(incumbentLEC(米国の既存のローカルキャリアで、LLECという)およびcompetitiveLEC(米国の新規のローカルキャリアでCLECという)を共に含む)などのリモート・アクセス・プロバイダに有効である。アクセス・プロバイダはISNを、アクセス・ネットワークのエッジ・デバイスとして使用し、カスタマイズしたサービス・ポリシーを各加入者に提供することができる。
【0013】
本発明によるISNは、複数のプロセッサ・グループを備えることができ、それぞれの加入者は、プロセッサ・グループに割り当てられる。プロセッサ・グループは、たとえばパケット・サービス・カードとして提供されることができる。プロセッサ・グループを、割り当てられた加入者のすべての処理規則で構成し、プロセッサ・グループが、割り当てられた加入者の任意の者が所望するカスタム・サービス・ポリシーを提供できるようにすることができる。
【0014】
ISNのポートは、受信データが転送される先の特定のプロセッサ・グループを、受信データが関係する特定の加入者に基づいて決定するよう設計されることができる。その後、スイッチ・ファブリックが、このデータを、ポートの決定に基づいて、決定されたプロセッサ・グループに転送することができる。プロセッサ・グループは、加入者に関係する処理規則を適用して、加入者が所望するサービス・ポリシーを提供することができる。
【0015】
それぞれのプロセッサ・グループは、加入者のサブセット(ISNによって供給される)のみにサービスを行うように設計される必要があるので、本発明は、大規模および/または複合ネットワーキング環境に応じて十分拡張されることができる。
【0016】
本発明をアクセス・ネットワークのエッジで使用して、それぞれの加入者が所望するカスタム・サービス・ポリシーを提供することができる。一実施形態では、所望のサービス・ポリシーを、構成マネージャを使用して指定することができる。構成マネージャを、ISNに統合することができ、または異なるユニットとすることができる。
【0017】
構成マネージャは、サービス・ポリシーを一組の処理規則に変換することができ、それぞれの処理規則は、分類子および関連するアクションを含む。分類子は一般に、データ・フロー、および、そのデータ・フローで転送される一組のデータ・ビットにアクションを適用することができる任意の条件を指定する。一般に、インターネット・プロトコル(IP)環境では、ソース/宛先IPアドレス、ソース/宛先ポートおよびプロトコル・タイプ・フィールドが共に、特定のリモート・アクセス・アプリケーションをサポートするIPデータ・フローを定義する。
【0018】
条件には、サービス・ポリシーを定義する特定の変数の合致を含めることができる。たとえば、サービス・ポリシーは、午前9時から午後5時の間に特定の方法でデータ・ビットが処理されるように指定することができ、この場合はTIMEが変数で、条件はTIME=午前9時から午後5時である。別の例としては、加入者が使用する集約帯域幅がT1より大きい場合、加入者用のデータ・ビットにより低い優先順位を与えることができ、この場合はBANDWIDTHが変数で、条件がBANDWIDTH>T1である。
【0019】
典型的には、大部分の処理規則を、指定したサービス・ポリシーから静的に構築することができる。しかし、いくつかの処理規則は、特定のイベントの発生に応じて動的にインスタンス化する必要がある。たとえば、IPアドレスの割り振りのためにアクセス・ネットワークにダイヤルインして依拠する加入者のIPアドレスは、事前に入手可能でないことがある。したがって、ISNは、加入者がうまくダイヤルインした後でIPアドレスが割り振られたときに、処理規則を構築する。
【0020】
このように、動的に処理規則をインスタンス化する本発明の能力によって、ISNは、アクセス・ネットワークに非同期アクセスすることがある加入者にサービスを行うことが可能となり、カスタマイズしたサービス・ポリシーをこのような加入者にも提供する能力をISNに提供する。また、非アクティブな(すなわち、ログオンしていない)加入者の処理規則でISNを構成する必要がないので、ISNを使用して多数の加入者にサービスを行うことができる。
【0021】
処理規則の動的インスタンス化の別の例としては、RealAudioタイプのアプリケーションにおいて、新規のTCP(またはUDP)接続がアプリケーション・セッションの途中で起動されることができ、この新規接続は、事前に決定されることのできないポート番号を有することがある。ポート番号は、典型的には制御フローを使用してネゴシエート(交渉)され、このことは関連技術分野では周知である。ISNは、制御フローのパケットを検査して必要な情報を求め、この情報が利用可能になった時点で新規の処理規則を構築するよう設計されることができる。
【0022】
ISNの一実施形態は、複数のプロセッサ・グループを備え、それぞれのプロセッサ・グループは、複数のプロセッサを備える。加入者のすべてのフローを、プロセッサ・グループの1つによる初期処理に専用とすることができる。ATMセルをデータ・ビット・グループとして使用するとき、チャネル識別子を使用して、個々のプロセッサ・グループへの割り当てを行うことができる。グループ内の個々のプロセッサに、パケットを、負荷分散のために重み付けラウンド・ロビン方式で割り当てることができる。他のリソース割り振り方式または管理ポリシーを使用してもよい。
【0023】
パケットを処理する(所望のサービスを提供するため)プロセッサを、アクセスおよびトランク・ポートとは分離した物理ユニットとして提供することができる。物理的な分離によって、プロセッサおよびポートの数を互いに関係なく変更(増加または減少)することが可能となる。その結果生じる柔軟性によって、本発明によるアーキテクチャを、多数の加入者をサポートするのに十分拡張することが可能となる。
【0024】
上述のように、それぞれの加入者に関係するデータを、プロセッサ・グループに割り当てることができる。本発明の一態様では、データをプロセッサ・グループに割り当てるための効率的な手法を提供する。この割り当てを、ATMセルのシーケンスとして受信されたIPパケットを参照して記載する。
【0025】
IPパケットの転送先である特定のプロセッサ・グループの決定には、IPパケットのヘッダ・データの検査が必要となることがある。このような状況とは、少なくとも、複数の加入者宛てのセル・データが、共有ATM仮想接続上で受信されたときであり、これは、すべてのセルが同じVPI/VCIデータを含むことがあるためである。このシナリオは、一般に、加入者宛てのデータがトランク・ポートで受信されたときに直面する。このようなシナリオでは、IPヘッダに位置するIP宛先アドレスを検査することによって、プロセッサ・グループを決定することができる。
【0026】
しかし、状況によっては、さらにIPパケット内部のデータを検査して加入者を決定する必要がある。たとえば、加入者に関係するデータを、L2TPトンネルの特定のコール(call)で受信することができる。このような状況では、受信パケットのUDPプロトコル・タイプ、L2TPプロトコルを指定するUDPポート番号、加入者に特有のトンネルIDおよびコールIDを検査する必要がある。
【0027】
本発明では、それぞれのCAM位置の探索フィールド、マスク、および出力フィールドを有する連想記憶装置(CAM)を使用することによって、このような検査を効率的に実行することが可能となる。それぞれの位置の探索フィールドは、加入者を識別するデータを格納するよう構成されることができ、出力フィールドは、所望のサービス・ポリシーを、CAMエントリに関係する加入者に提供することができるプロセッサまたはプロセッサのグループを識別するデータを格納するよう構成されることができる。
【0028】
また、それぞれのCAM位置のマスクを、加入者を識別するビットを検査するよう設定することができる。例示として、複数の加入者のデータが共有ATM接続上で受信されたとき、宛先IPアドレスのみを検査するようCAM位置を設計することができる。他方では、ある加入者のデータがL2TPトンネル上で受信されたとき、いくつかのより多くのバイトのデータを検査するよう、対応するCAM位置のマスク・フィールドを設定することができる。
【0029】
こうして、IPパケットの第1の(「ヘッダ」)セルが受信されたとき、ヘッダ・データが入力としてCAMへ提供され、出力データは、適切なプロセッサを識別する。異なるCAMエントリは異なるマスクを有することができるので、合致するエントリを1つのCAMアクセスで発見することができる。合致するエントリの出力は、プロセッサ(グループ)識別子を表現することができ、またはプロセッサを決定するためのさらなるアクセスに導くことができる。
【0030】
出力データがプロセッサ識別子を表さないとき、本明細書に記載する実施形態では、出力データは、IPテーブルへの索引を含み、または、プロセッサ(グループ)識別子を決定するために追加のCAM探索が必要であることを示す。索引は、CAMエントリの数を最小にするのに有効である。索引を使用して、高速メモリ(たとえば、SRAM)に格納されたテーブルからエントリを選択することができ、抽出された値は、プロセッサ識別子またはプロセッサ・グループ識別子を表すことができる。例示として、適切なマスクを選択することによって、CAMエントリは、IPアドレスの最初の3バイトのみを検査することができ、したがって255個のIPアドレスについて合致するエントリを提示することができる。高速メモリへの追加アクセスは、特定のプロセッサ識別子を提供することができる。
【0031】
追加のCAM探索は一般に、CAMが、加入者を識別するために十分な数のビットを探索フィールド内に含んでいないときに必要となる。たとえば、加入者データがL2TPトンネルを使用して受信されたとき、1つのCAM位置の探索フィールド内で使用可能であるビットよりも多くのビットを検査する必要がある場合がある。このような状況では、いくつかのビットを第1の探索で検査することができ、他のビットを後続の探索で検査することができる。すべての探索について合致が検出された場合にのみ、合致が発生したとみなされる。
【0032】
本発明で記載する一実施形態では、2つの探索のみを必要とすることができる。しかし、追加の手法を必要とする実施形態は、本発明の範囲および精神内のものであると企図される。プロトコルのフォーマットおよび検査する必要のあるビット数に応じた探索を必要とすることができる。
【0033】
上述の特徴は、ISNの一実施形態における、加入者からのセルを受信するアクセス・ポートまたは加入者宛てのセルを受信するトランク・ポートのいずれかで実施することができる。ISNは、複数のプロセッサ・グループを備えることができ、1つのグループは、典型的には、加入者に関係するIPパケットを処理するよう構成される。また、スイッチ・ファブリックは、受信セルのヘッダに基づいて、セルをグループの1つに割り当てるように設計されることができる。具体的には、VPI/VCIフィールドが一意的にプロセッサ・グループを識別し、スイッチ・ファブリックによって受信されたセルを処理することができる。
【0034】
したがって、本発明の割り当て論理が、CAMを使用することによってプロセッサ・グループを決定し、IPパケットのすべてのセルのセル・ヘッダの一部(たとえばVPI)を、プロセッサ・グループ識別子で置換する。その後、スイッチ・ファブリックは、IPパケットに関係するすべてのセルを、セル・ヘッダ(VCI/VPI)によって識別されたプロセッサ・グループに割り当てることができる。
【0035】
したがって、本発明では、各加入者向けに異なる処理規則を提供し、この処理規則を使用して、加入者からの異なるデータ・フローで受信されたデータ・ビットを処理することによって、個々の加入者の所望のサービス・ポリシーを可能にする。
【0036】
本発明によるISNは、それぞれの加入者をプロセッサ・グループに割り当てて、所望のサービス・ポリシーを提供することができるので、多数の加入者にサービスを行うために十分拡張することができる。
【0037】
本発明は、ISNをエッジ・デバイスとして提供することができるので、特にリモート・アクセス・アプリケーションに適しており、このことにより、すべてのアプリケーション・データ・フローを制御して、単一のISNを使用するそれぞれの加入者に所望のサービス・ポリシーを提供することができる。
【0038】
本発明は、所望のサービス・ポリシーをリモート・アクセス・サービス・プロバイダが実施することができるので(加入者の構内ではインテリジェント・デバイスは不要)、より容易な管理で、より低いコストの加入者デバイスを提供することができる。
【0039】
本発明では、一加入者のサービス・ポリシーが一般に他の加入者に影響を及ぼすことがないので、複数の加入者が同じISNを共有することができるようになる。
【0040】
本発明は特に、加入者のポリシーを、その加入者のために動的にISNへ追加することができるので、リモート・アクセス・ネットワークにダイヤルイン(または他の非同期機構)によってアクセスする加入者にサービスを行うリモート・アクセス・プロバイダに有用である。
【0041】
本発明では、加入者の処理規則を動的にインスタンス化することができ、ISNを、アクティブな加入者のみの処理規則で構成する必要があるので、多数の加入者がサービスを受けることが可能となる。
【0042】
本発明では、プロセッサの数を増加することができ、処理パケットの計算負荷をプロセッサ間で分散させることができるので、ISNが、多数の加入者にサービスを行うために十分拡張することが可能となる。
【0043】
本発明は、プロセッサが、データの送信および受信に使用されるポートから物理的に分離されるために、プロセッサの数をポートの数とは関係なく変更することができ、またポートの数をプロセッサの数とは関係なく変更することができるので、多数の加入者にサービスを行うための柔軟性のあるアーキテクチャを提供する。
【0044】
したがって、本発明は、CAMを、個々の位置のマスクと共に使用することによって、IPパケットを形成するセルを、事前に指定されたプロセッサまたはプロセッサ・グループに割り当てるための迅速で効率的な方法を提供する。
【0045】
本発明は、(その位置に関係する)加入者を探索する必要があるビットに対応するマスクで、それぞれの位置を構成することができるので、単一のCAMアクセスにおける識別子の決定を提供する。
【0046】
本発明は、単一のCAM位置をIPアドレスのグループについて使用し、CAMアクセスの出力を索引として使用してプロセッサまたはプロセッサ・グループ識別子を抽出することにより、必要となるCAM位置の数を最小にする。
【0047】
本発明では、セル内のVPIの代りに、決定されたプロセッサ識別子を用いることによって、かつ、スイッチ・ファブリックにVPIを使用させてセルをプロセッサに割り当てることによって、スイッチ・ファブリックが迅速にIPパケットを対応するプロセッサへ転送することが可能となる。
【0048】
本発明のさらなる特徴および利点、ならびに本発明の様々な実施形態の構造および動作を、図面を参照して以下に詳細に記載する。図面において、同様の参照番号は、一般に等しく、機能的に類似の、および/または構造的に類似の要素を示す。要素が最初に現れる図面を、対応する参照番号のもっとも左の数字によって示す。
【図面の簡単な説明】
【0049】
【図1】本発明による方法を示すフローチャート。
【図2】本発明を実施することができる環境の一例を示す、遠距離通信システムのブロック図。
【図3】本発明による方法であり、サービス・プロバイダが、各加入者が所望する、カスタマイズされたサービス・ポリシーを提供することができる方法を示すフローチャート。
【図4】本発明によって提供されるインターネット・サービス・ノード(ISN)の一実施形態のブロック図。
【図5】本発明によるISNに提供されるパケット・サービス・カードの一実施形態のブロック図。
【図6】加入者向けの所望のサービス・ポリシーを提供する処理規則の例を示す表。
【図7】(A)すべての記憶場所についてただ1つの共通マスクを有するCAMの動作を示すブロック図、および(B)各記憶場所についてマスクを有するCAMの動作を示すブロック図。
【図8】本発明の一実施形態における、IPパケットを処理するためのプロセッサを決定する回線を示すブロック図。
【図9】本発明の一実施形態における、異なるアプリケーションのプロセッサ識別子を決定するために実行されるステップを示すフローチャート。
【図10】図9の方法を使用してセル・ヘッダを修正する割り当て論理の一実施形態の細部を示すブロック図。
【発明を実施するための形態】
【0050】
1.本発明の概観および説明
本発明により提供されるインターネット・サービス・ノード(ISN)では、カスタマイズしたサービス・ポリシーを個々のユーザまたは加入者に提供することが可能となる。ISNでは、ネットワーク管理者が所望の処理規則のセットをそれぞれの加入者について指定できるようにすることができる。データが受信されたとき、ISNは最初に、データが関係する特定の加入者を決定し、該加入者に対応する処理規則に従って受信データを処理することができる。
【0051】
受信データについて関係する加入者が最初に決定され、その加入者に対応する処理規則のみをそのデータに適用することができるので、ISNがサービスを行う他の加入者の処理規則に関係なく、データを効率的に処理することができる。
【0052】
本発明の別の態様によれば、それぞれの加入者に対応する処理規則を、事前に指定したプロセッサまたはプロセッサのグループに割り当てることができる。したがって、それぞれの加入者に関係するデータを、対応するプロセッサに転送することができる。
【0053】
それぞれの加入者を異なるプロセッサ・グループに割り当てることができるので、本発明を、多数の加入者にサービスを行うために十分拡張することができる。すなわち、サービス・プロバイダは、より多くのプロセッサを追加することによって、より多くの加入者にサービスを行うことができる。
【0054】
本発明を、例示のためにいくつかの例に関して、以下でより詳細に説明する。しかし、本発明をいくつかの他の環境で、潜在的にいくつかの変形形態で実現できることに留意されたい。本発明による方法を最初に説明する。
【0055】
2.方法
図1は、本発明による方法を示すフローチャートである。ステップ110で、それぞれの加入者向けの所望のサービス・ポリシーを提供するのに必要な処理規則を特定することができる。処理規則は一般に、データを処理する方法(たとえば、廃棄、転送、優先順位付け、暗号化など)を指定する。以下に説明する一実施形態では、処理規則は、分類子および関連するアクションを含むことができる。分類子は、アクションが適用される(加入者の)データ・ビットを指定する。
【0056】
ステップ120で、インターネット・サービス・ノードを、幾人かの加入者に対応する処理規則で構成することができる。構成機構は、インターネット・サービス・ノードの実現に依存している。このようないくつかの機構の実現は、関連技術分野の当業者には、少なくとも本明細書で提供される開示に基づいて明らかであろう。
【0057】
ステップ130で、インターネット・サービス・ノードは、データをビット・グループの形式で受信することができる。ステップ140で、インターネット・サービス・ノードが、このビット・グループを検査することによって、受信データが関係する加入者を決定することができる。特定の加入者の決定もまた、ビット・グループに使用される特定の形式に依存する。非同期転送モード(ATM)に関する実施の一例を、以下でより詳細に説明する。しかし、本発明を他の形式(フレーム・リレー、イーサネットなど)と共に実現できることに留意されたい。これもまた、関連技術分野の当業者には、本明細書の開示に基づいて明らかであろう。
【0058】
ステップ150で、インターネット・サービス・ノードは、ステップ130で決定した加入者に対応する処理規則を適用することができる。データは、この処理規則に従って転送(または廃棄)される。処理規則は、加入者が所望するサービス・ポリシーを提供するよう設計されているので、本発明によって、インターネット・サービス・ノードはサービス・ポリシーを提供することができる。また、インターネット・サービス・ノードをそれぞれの加入者に固有の処理規則で構成することができるので、差別化されたサービスをそれぞれの加入者に提供することができる。
【0059】
本発明を、環境の一例に関して以下により詳細に説明する。しかし、ビット・グループの形式(特にATMに関して)を理解することが有用であり、このことが、受信データが関係する特定の加入者を決定する際の支援となることがある。
【0060】
3.ビット・グループ
ビット・グループは、一般に、グループとして識別可能ないくつかのビットを指す。異なるビット・グループ形式をプロトコルに応じて使用して、異なるアクセス方法をサポートすることができる。複数のビット・グループは、事前に指定された規定に従って別のビット・グループを形成することができ、これは関連技術分野では周知である。一例として、いくつかのATMセルのデータは、IPパケットを形成することができる。
【0061】
例示のため、本発明を、ATMセルとして移送されるインターネット・プロトコル(IP)パケットのコンテキストにおいて実質的に説明する。しかし、本発明を他のプロトコルおよび移送で実現できることを理解されたい。これは、関連技術分野の当業者には明らかであろう。このような他の実施は、本発明の範囲および精神内のものであると企図される。
【0062】
それぞれのATMセルは、53バイトのデータを含み、そのうちの5バイトがヘッダとして使用され、48バイトがペイロード(ATMネットワークを使用する実際のアプリケーション・データ)として使用される。ヘッダは、仮想パス識別子(VPI)フィールドと、チャネルを定義する仮想チャネル識別子(VCI)フィールドを有する。接続パスにおける次のノードは、典型的には、チャネルが適切な信号方式によって設定されたときに定義される。ATMを詳細に理解するには、David E. McDysanおよびDarren L. Spohn著「ATM: Theory and Application」、(ISBN:0070603626、1994年9月出版、McGraw−Hill Series on Computer Communications)という本を参照することができ、ここで、この本全体を参照により取り入れる。
【0063】
ATMセルを、VPI/VCIフィールド(およびこのセルが受信されるポート番号)を検査することによって、加入者と結び付けることができる場合がある。しかし、個々のATMセルは、カスタマイズしたサービス・ポリシーを提供するために、関連する加入者を正確に識別するのに必要な情報を含んでいないことが多い。したがって、理解すべきは、ISNは、より高いレベルのプロトコルを検査して加入者サービス・ポリシーを決定し、それに従ってセルを処理する必要がある。
【0064】
したがって、ATMセルのペイロードを組み立てて、より高いレベルのプロトコル(この例ではIPプロトコル)のパケットを形成することができる。その後、組み立てたパケットを検査して、データが関係する加入者を決定することができ、この加入者に固有の処理規則が、このパケットに適用される。より高いプロトコル・パケットの検査において考慮すべき事項を、IP環境に関して以下で説明する。
【0065】
4.加入者および関係するプロトコル(IP)パケットの識別
サービス・ポリシーを、個々の加入者に関係するパケットに関連付けることができる方法は、以下で説明するように、パケットがリモート・アクセス・アプリケーションに関係する方法を理解することによって明らかになるであろう。
【0066】
典型的な各リモート・アクセス・アプリケーションは、少なくとも二方向のデータ・フローを有する接続を必要とする。データ・フローは一般に、アプリケーションをサポートするための、ソース・システムから宛先システムへのIPパケットのシーケンスを指す。IP環境では、アプリケーションが、典型的にはTCPまたはUDPポートによって識別され、これが一般に事前指定され、またはネゴシエートされて、アプリケーションとの関係を識別する。典型的にはソースおよび宛先ポート番号が使用される。プロトコルのタイプ(TCP、UDPまたはICMP)、ポート番号、ソースおよび宛先IPアドレスは、IPフローを定義する。
【0067】
いくつかのアプリケーション固有のセッションは、2つより多いフロー、および場合によっては多数の接続を使用する。アプリケーション・セッションに関係するすべてのフローが会話を定義する。IP環境では、関連技術分野では周知のように、会話が一般に、TCP(伝送制御プロトコル)、UDP(ユーザ・データグラム・プロトコル)およびICMP(インターネット制御メッセージ・プロトコル)プロトコルで実現される。会話は、アプリケーションに応じて複数のデータ・フローを含むことができる。たとえば、ファイル転送プロトコル(FTP)およびRealAudioなどのアプリケーションは、複数のフローを使用し、時にはより高い層の組み合わせ(たとえば、IPフィールドにおけるTCP対UDP)を使用する。
【0068】
TCPは、アプリケーションが使用する、最も共通した高レベルの移送である。これは、TCPが、潜在的に信頼性のないIPパケット転送を使用して、信頼性のあるデータのストリームを提供するからである。TCP接続は一般に2つのデータ・フローを含み、ポート番号およびIPアドレスが逆になる。たとえば、N1、N2、N3およびN4がそれぞれ、一方向のデータ・フローのソースIPアドレス、ソース・ポート番号、宛先IPアドレスおよび宛先ポート番号を指すと仮定すると、他方向のデータ・フローはそれぞれ同じ変数のN2、N1、N4およびN3を有する。複数のTCP接続を使用して、アプリケーションを実現することができる。
【0069】
UDPの場合、ソース・ポートは、2つのエンド・システム間のパスで検査されるとき、一般に予測不能である。ICMPの場合、ポートがタイプおよび識別フィールドによって置き換えられる。
【0070】
上記から、IPパケットの内容を検査することによって各フローを一意的に識別できることを理解されたい。さらに、多数のタイプのアプリケーションが事前指定のポート番号を使用しており(たとえば、SMTPメールはポート25を使用する)、このことを使用して、処理規則がユーザ・アプリケーション毎に指定されているならば、特定のユーザ・アプリケーションを識別することができる。
【0071】
いくつかの例では、会話のフローに使用されるポート番号を、一般に事前指定された周知のポートで設定された「制御フロー」上で行われるネゴシエーションに基づいて決定することができる。たとえば、マルチメディア(テキスト、音声およびビデオの組み合わせを含む)アプリケーションでは、複数のフローを使用して、各マルチメディア構成要素に関係するデジタル・データを転送することができる。制御接続が最初に、事前定義されたポート(たとえば、ポート200)上で起動され、残りのフローのポートは、制御接続上のパケット・フローに基づいて決定される。これらの新規フロー用のポート番号は、関連技術分野で周知のように、事前に指定された規定に従って符号化される。
【0072】
少なくとも上記で例示した一般の形式およびプロトコルを使用して、ISNを実現し、所望のサービス・ポリシーを各加入者に提供することができ、これを以下でより詳細に説明する。例示のため、本発明を実施することができる環境の一例を最初に説明する。次いで、本発明の実施形態の例を説明する。
【0073】
5.環境例
図2は、本発明を実現することができる電気通信環境200の一例を示す図である。この図は、ISN250をリモート・アクセス・サービス・プロバイダ(たとえば、インターネット・サービス・プロバイダ)が使用して、差別化されたサービスを加入者に提供することができる方法を示す。ユーザ(加入者)の位置(210、230−Aおよび230−X)は、異なるアクセス技術を使用してインターネット・サービス・ノード(ISN)250とインタフェースを取る。ISN250は、アクセス・ネットワーク290に提供される。本発明によって、ISN250では、所望の異なるサービス・ポリシーを異なるユーザに提供することが可能となる。
【0074】
ユーザ・ネットワーク210は、ルータ220に接続するいくつかのシステムを備えることができる。ユーザ・ネットワーク210は、1人の加入者または複数の加入者を含むものとみなすことができる。ルータ220は、データをISN250へIPパケットとして、シリアル・ライン・インタフェース・プロトコル(SLIP)またはポイントツーポイント・プロトコル(PPP)などのプロトコルを使用して転送することができる。ユーザ位置230−Aおよびユーザ位置230−Xは、図ではリモート・アクセス・デバイス240に接続され、リモート・アクセス・デバイス240は、既知の方法で実現されるリモート・アクセス・サーバ(アナログおよび/またはデジタル・モデムをサポートする)またはDSLAMに対応することができる。リモート・アクセス・デバイス240は、データを、ATMセルにセグメント化されたIPパケットとして転送することができる。それぞれの位置230は、以下に説明するように、単一または複数の加入者を有することができる。
【0075】
図2のインタフェースおよび加入者位置が単なる例でしかないことを理解されたい。ISN250は、異なる媒体および技術を使用して、本発明の範囲および精神から外れることなく、異なる加入者位置とインタフェースを取ることができ、これは関連技術分野の当業者には明らかであろう。このような他の実施形態は、本発明の範囲および精神内のものであると企図される。
【0076】
ISN250は、様々なインタフェースで受信したデータを本発明に従って処理し、所望のサービス・ポリシーを異なる加入者に提供する。図示しないが、リモート・アクセス・デバイス240もアクセス・ネットワーク290の一部とみなすことができる。ISN250もまた、データ・スイッチ280に依拠する代わりに、直接インターネットとインタフェースを取ることができる。一般に、データ・スイッチ280は、ISN250が経路指定機能を含めて実現されない場合に必要となることがある。
【0077】
所望のサービス・ポリシーが処理規則によって指定され、または処理規則に変換される。このことは、異なる加入者アプリケーションに対応するデータを処理する必要のある方法を示す。異なるビット・グループを異なるアプリケーションと相互に関係を持たせることを可能にするため、ISN250は、ビット・グループを、必要な情報を含むパケットに結合することができる。その後、処理規則がパケットに適用され、所望のサービス・ポリシーを提供する。データ・スイッチ280はISN250からビット・グループを受信し、インターネットにおける他の外部システムとインタフェースを取ることができる。データ・スイッチ280は、事前に指定された設計に従って、IPルータ、ATMまたはフレーム・リレー・スイッチに対応することができる。
【0078】
図2にも示すように、ISN250は、ISPおよびLEC(incumbentまたはcompetitive)などの、リモート・アクセス・サービス・プロバイダ用の特定のアプリケーションを有する。所望のサービス・ポリシーを様々な加入者に提供できる能力があるので、本発明のISN250を、リモート・アクセス・ネットワーク290のエッジに配置する(すなわち、加入者側装置とインタフェースを取る)ことができる。このような場合、ISN250を、エッジ・デバイス、入口/出口ルータまたはゲートウェイと呼ぶことがある。
【0079】
以下の説明から明らかになるように、ISN250をエッジで使用することによって、加入者側装置(たとえば、ルータ220)をあまり複雑でなく実現することが可能となり、したがって管理がより容易になり、コストが低くなる。このような特徴は、ISPおよびLECには特に重要である。これに応じて、図3は、所望のサービス・ポリシーをそれぞれの加入者に提供することができる方法を示す。
【0080】
6.エッジ・デバイスを使用した、差別化されたサービスの提供
図3は、本発明による、サービス・プロバイダが、差別化されたサービスを加入者に提供することができる方法を示すフローチャートである。ステップ310で、本発明のISN250が、図2に示すようなアクセス・ネットワークのエッジ・デバイスとして提供される。ISN250を、IPルータとして実現することができる。これは、IPプロトコルを様々なシステムで幅広く使用できるからである。
【0081】
ステップ320で、異なるサービス・ポリシーをそれぞれの加入者について指定することができる。サービス・ポリシーは、たとえば加入者または加入者が使用するいくつかのシステムが使用することのできる集約帯域幅、ファイアウォール・パラメータ(どのアプリケーション/IPアドレスが入出を許可されるか)、指定された会話のセキュリティ(アンチ・スプーフィング(anti-spoofing)、暗号化、およびトンネリングによる仮想専用ネットワーク)、バッファおよび帯域幅の使用における優先順位(たとえば、テレネットなどの対話形式のアプリケーションにはより高い優先順位を与える)、トラフィック・ステアリング(traffic steering)などを指定することができる。サービス・ポリシーを指定する例を、以下でより詳細に説明する。
【0082】
ステップ325で、サービス・ポリシーに対応する処理規則を生成することができる。それぞれの処理規則は、分類子および関連するアクションを含む。分類子は、すべてのデータ・フロー、および、そのデータ・フロー上のデータに関連するアクションを適用する必要のある条件を指定する。IP環境では、各データ・フローを一意的に、プロトコル・タイプ、ソース/宛先IPアドレス、および(TCP/UDP)ソース/宛先ポートによって識別することができる。分類子は複数のデータ・フローを指定することができる。
【0083】
条件は、実施中のサービス・ポリシーのタイプに固有であることができる。たとえば、加入者に、ビジネス時間外の間により高い帯域幅を許可することができる。別の加入者は、データが一日の指定時間中に特定の加入者に宛てられた場合には、より低い優先順位が与えられているデータを有することができる。条件の例を、図6のBを参照して、以下でより詳細に説明する。
【0084】
多数の処理規則を、サービス・ポリシーが指定されたときに事前に生成することができる。しかし、いくつかの処理規則では、必要な情報が事前に入手可能でないことがある。このような状況では、情報が入手可能となったときに規則が動的に生成される。処理規則を動的に生成するためのいくつかのシナリオ例を、以下に記載する。
【0085】
規則の動的生成を必要とするシナリオの一例は、加入者がアクセス・ネットワーク290とのダイヤルアップ接続を使用し、アクセス・ネットワーク290に依拠してIPアドレスを割り当てるときである。たとえば、図2に関して、ユーザ位置230−Aは、モデムを使用するパーソナル・コンピュータに対応することができる。ユーザ位置230−AにおけるマシンのIPアドレスを、ユーザがダイヤルアップ接続を確立したときに認証許可アクセス(AAA:Authentication-Authorization-access)サーバ(図示せず)によって割り当てることができ、これは関連技術分野では周知である。処理規則が、割り振られたIPアドレスを必要とすると仮定すると、IPアドレスを割り振った後でのみ、処理規則を生成することができる。
【0086】
別の例として、いくつかのアプリケーションの場合、データ・フローをアプリケーション・セッションの途中で起動することができ、ポート情報を、対応するデータ・フローが起動された後でのみ入手可能である場合がある。ポート情報は、典型的には、2つのエンド・システム間のネゴシエーション(交渉)中に決定され、ポート情報は一般に、ネゴシエーションの基礎としての機能を果たすパケットに含まれる。
【0087】
したがって、ISN250は、いくつかのフロー上のパケットを監視して、他のフローのポート番号を求めなければならないことがある。その後、ISN250は、求めた情報を使用して、分類子および関連するアクションで処理規則を生成することができる。
【0088】
ステップ330で、ISN250で処理規則がインスタンス化される。インスタンス化は一般に、ISN250の適切な構成によって処理規則をアクティブにすることを指す。インスタンス化した後、ISN250は、対応する加入者データに処理規則を適用し、これを以下でより詳細に説明する。
【0089】
いくつかの処理規則を、事前に、たとえばISN250を立ち上げた(ブートした)とき、または所望のサービスが指定されたときより早く、インスタンス化することができることに留意されたい。他のいくつかの処理規則は、上述のようにステップ325で生成されたときにインスタンス化されることができる。
【0090】
ステップ340で、ISN250は、加入者側装置に提供された特定のインタフェースに従って、ビット・グループを受信することができる。ステップ360で、ビット・グループが、処理規則を適用するのに適したパケットに変換される。ビット・グループが、処理規則を適用するために十分なデータを含む場合には、ビット・グループ自体をパケットとして、変換なしに取り扱うことができる。たとえば、ビット・グループが断片化のない完全なIPパケットに相当し、組み立てを実行する必要のないことがある。ビット・グループがATMセルである場合には、複数のセルのペイロードを結合(組み立て)してIPパケットを形成することができる。
【0091】
複数のIPパケットのデータを、1つのパケットに結合する必要がある場合があり、これは、典型的にはIPパケットが断片化されているときである。断片化を実行して、たとえば個々のIPパケット・サイズを小さくして、接続パスにおける中間ネットワークによって許可される最大パケット・サイズに従わせるようにすることができる。結合されたパケットもパケットと呼ばれる。一般に、ビット・グループを複数のレベルで組み立てて、加入者データ(ビット・グループの形式で受信された)が分類子に合致するかどうか判断することができる。
【0092】
ステップ380で、パケットが、加入者毎に提供された処理規則に従って処理される。つまり、最初にそれぞれのパケットが加入者に関連付けられ、この加入者に対応する処理規則が適用される。関連技術分野で周知のように、リモート・アクセス中にIPアドレスを複数のマシンによって共有することができる。したがって、仮想チャネル番号(たとえば、ATMおけるVCI/VPIの組み合わせ、フレーム・リレーのDLCI)が最初に加入者を識別することができ、加入者に関連付けられた処理規則を、そのチャネル上で受信または送信されたパケットに適用することができる。
【0093】
複数の加入者が、いくつかの状況において、単一のチャネル識別子を共有することができる。たとえば、ネットワーク210のサブグループが一人の加入者とみなされるとき、ネットワーク210のその加入者らは、1つのチャネルを共有することができる。このような場合、IPアドレスを重複しないよう設計して、異なるフローが一意的に異なる加入者に関連付けられるようにすることができる。類似の方法で、ISN250は、単一チャネル上の複数の加入者宛てのパケットを受信することができる。このような状況では、ISN250は、IPアドレスおよび他の情報を検査して、パケットを加入者に関連付ける必要がある。
【0094】
処理規則を、いくつかの可能な順序のうちの1つに適用して、予測可能かつ所望のサービス・ポリシーを確実にする必要がある。一般に、処理は、パケットを転送するかどうか、どこで/どのように/およびどの優先順位でパケットを転送するか、を決定する。処理規則を実現するため、いくつかの「状態」をISN250で維持する必要がある。たとえば、事前に決定された集約帯域幅が複数のフローに割り振られた場合、複数のフローについて転送されるビット数を維持して、全体の帯域幅を制限する必要がある場合がある。パケット内のデータは一般に、接続パスにおける次のシステムで提供されるインタフェースに従って転送される必要がある。
【0095】
このように、処理規則を異なるパケットに適用することによって、所望のサービス機能をそれぞれの加入者に提供することができる。図3の方法は、いくつかのISNにおいて実現することができる。ISN250の一実施形態を、以下でより詳細に説明する。
【0096】
7.インターネット・サービス・ノード
図4は、一実施形態のISN250の細部を示すブロック図である。ISN250は、アクセス・ポート(410−Aおよび410−B)、トランク・ポート(420−A、420−Bおよび420−C)、スイッチ・ファブリック440、パケット・サービス・カード450−Aおよび450−B、ルート/サービス管理カード(RMC)460および構成マネージャ470を備えることができる。トランク・ポート420−A、420−Bおよび420−Cは、文脈から明らかとなるように、総称して、または個別に420と称する。同様のことを、本発明に記載する他の構成要素に関して使用する。
【0097】
パケット・サービス・カード450が物理的にポート410および420から分離されていることに留意されたい。物理的な分離によって、パケット・サービス・カード450の数を、ポート410および420の数に関係なく変更することが可能となり、ポート410および420の数を、パケット・サービス・カード450の数に関係なく変更することが可能となる。このような柔軟性によって、ISN250は、多数の加入者にサービスを行うために十分拡張することが可能となる。
【0098】
アクセス・ポート410は、事前に指定されたフォーマットでセルを送受信するのに必要な物理インタフェースを提供する。Sonetなどのプロトコルを、より高速のインタフェースに使用することができる。例示のため、アクセス・ポート410は、データを、ATMセルの形式で送受信すると仮定する。各加入者ポート410は、ATMセルを、スイッチ・ファブリック440に転送する。
【0099】
トランク・ポート420は、インターネットアクセス用の高速アクセス・ラインを加入者に提供する。トランク・ポート420は、ATMセル(または他のビット・グループ)をスイッチ・ファブリック440から受信し、このセルを、チャネル識別子(または他の宛先アドレス)によって指定された対応するライン上に転送する。類似の方法で、トランク・ポート420は、データ・ビット・グループをATMセルまたはIPパケットの形式でインターネットから受信し、このデータ・ビット・グループをスイッチ・ファブリック440に送信することができる。この受信シナリオでは、より高いレベルのプロトコル情報(たとえば、IPヘッダ)を検査して、データを転送する先の特定のプロセッサ・グループを決定する必要がある場合がある。対応するプロセッサ・グループがデータを受信した後、データは検査され、このデータが関係する特定の加入者を決定し、対応する処理規則が適用される。
【0100】
一実施形態では、複数のポートがライン・カード上に提供され、それぞれのポートをトランク・ポートまたはアクセス・ポートのいずれかとして構成することができる。ライン・カードは、フレーム・リレー、ATM、Sonetを介したパケット、高速イーサネット、ギガビット・イーサネットなど、異なるアクセス技術をサポートすることができる。
【0101】
構成マネージャ470は、好都合なユーザ・インタフェースを提供して、異なるサービス・ポリシーを異なる加入者について指定できるようにする。サービス・ポリシーは、異なる加入者に提供されるサービスを決定する。構成マネージャ470は、様々な構成パラメータ(サービス・ポリシーによって決定される)をRMC460に送ることができ、RMC460は、異なる構成要素を構成してサービス・ポリシーを提供することができる。一実施形態では、構成マネージャ470は、分離したコンピュータ・システムとして実現され、これは事前に指定されたプロトコルに従ってISN250と対話する。代替の実施形態では、構成マネージャ470をISN250に統合することができる。
【0102】
構成マネージャ470は、情報が入手可能であるときにはサービス・ポリシーを処理規則に変換することができ、該処理規則を、対応するパケット・サービス・カード450に提供することができる。パケット・サービス・カード450は、対応する加入者向けの処理規則をインスタンス化することができる。たとえば、構成マネージャ470は、認証許可アクセス(AAA)サーバと対話して、いつIPアドレスを、ダイヤルイン接続によってアクセス・ネットワークにアクセスする加入者に割り振るかを決定することができ、該加入者に対応する処理規則をパケット・サービス・カード450のうちの1つに提供する。
【0103】
ルート/サービス管理カード(RMC)460は、Open Shortest Path First(OSPF)、RIPまたはBGPなどの経路指定プロトコルを実行して、各IPパケットの次のホップ(または一般に転送情報)を決定する。経路指定プロトコルは、既知の方法で実行することができる。RMC460は、転送情報をVCI/VPI情報の形式で提供して、IPパケットの次のホップを特定することができる。
【0104】
さらに、RMC460は、ISN250の異なる構成要素を構成して、本発明の異なる特徴をイネーブルすることができる。L2TPに関して、L2TPトンネルを設定して該トンネル内にコールを設定する要求を処理するよう、RMC460を設計することができる。RMC460は、コールID、トンネルID、および他のいかなる必要な情報を、このトンネルに関係するデータを受信する対応するアクセス/トランク・ポートに提供することができる。その後、アクセス・ポートは、この情報を使用して、トンネル内で受信されるIPパケットを、特定のパケット・サービス・カード450に割り当てることができる。
【0105】
スイッチ・ファブリック440は、ビット・グループをアクセス・ポート410から受信し、パケット全体についてのデータを受信したときに、受信したビット・グループをパケット・サービス・カード450へ転送する。データ・ビットがATMセルとして受信された場合、パケットの最後のセルを、関連技術分野で周知のAAL5プロトコルに従って求めることができる。こうして、フレームを形成するすべてのセルを、パケットのデータが入手可能になった後に、適切なパケット・サービス・カード450に送信することができる。異なるサービス・ポリシー・タイプを、異なるパケット・サービス・カード450で実現することができる。それに応じて、(接続または加入者識別子を使用して)それぞれの加入者を、所望のサービス・ポリシー・タイプを提供するパケット・サービス・カードに割り当てることができる。
【0106】
適切なパケット・サービス・カードを決定するため、スイッチ・ファブリック440は、ビット・グループが受信される各チャネルに関連付けられたチャネル識別子を維持することができる。ATMセルの場合、ビット・グループにおけるVCI/VPI情報が、一意的にこのようなチャネルを定義する。(データが受信される)物理ポート番号およびチャネル識別子は、データが直接加入者から受信されてインターネットに向かうことになっているとき、一意的にそれぞれの加入者(または、IPアドレスが重複しない加入者のグループ)を識別することができる。他方では、データがインターネットから受信されるとき、関連する加入者の決定にIPヘッダの検査が必要になることがある。一般に、スイッチ・ファブリック440は、パケットの最後のセルが受信されるまでセルをバッファに入れることができ、このパケットのすべてのセルを、個々の加入者に割り振られたパケット・サービス・カードに転送する。
【0107】
スイッチ・ファブリック440は、アクセス・ポート410およびトランク・ポート420からセルを受信し、このセルをパケット・サービス・カード450の1つに転送する。スイッチ・ファブリック440は、パケット全体のデータを受信したときに、受信したセルをパケット・サービス・カード450に転送することができる。スイッチ・ファブリック440は、最後のセルの到着の待機中にセルをバッファに入れるために、高速ランダム・アクセス・メモリ(図示せず)を使用することができる。パケットの最後のセルを、関連技術分野に周知のAAL5プロトコルに従って求めることができる。こうして、パケットのデータが入手可能になった後に、フレームを形成するすべてのセルを適切なパケット・サービス・カード450に送信することができる。
【0108】
スイッチ・ファブリック440は、サービス処理規則に従って処理した後にパケット・サービス・カード450からパケットを受信し、受信したパケットをトランク・ポート420の1つに送信することができる。特定のトランク・ライン・カード420をそれぞれのチャネルについて関連付けることによって、特定のトランク・ポート420を求めることができ、これは、パケット・サービス・カード450によって提供されるチャネル識別子によっても識別することができる。スイッチ・ファブリック440は、トランク・ライン・カード420で伝送する前に、このパケットをセルに変換することができる。
【0109】
パケット・サービス・カード450を、それぞれの加入者向けの多数の処理規則で構成することができ、それぞれの処理規則は、分類子および関連するアクションを含む。分類子は一般に、データ・フロー、および、このデータ・フロー上で転送される1組のデータ・ビットにこのアクションを適用することができる条件を指定して、各加入者に所望のサービス・ポリシーを提供する。一般に、インターネット・プロトコル(IP)環境では、ソース/宛先IPアドレス、ソース/宛先ポートおよびプロトコル・タイプ・フィールドが共に、特定のリモート・アクセス・アプリケーションをサポートするIPデータ・フローを定義する。
【0110】
それぞれのパケット・サービス・カード450は、いくつかの理由の1つにより、加入者に対応する処理規則で構成することができる。たとえば、それぞれの加入者のために処理するデータを特定のパケット・サービス・カード450に割り当てることによって、それぞれのパケット・サービス・カード450を、それに割り当てられた加入者に対応する処理規則のみで構成する必要がある場合がある。
【0111】
複数のパケット・サービス・カード450を使用して、大規模で複雑な大規模環境に応じて十分拡張することができる。さらに、いくつかのパケット・サービス・カード450は、いくつかのタイプの加入者データを処理するのに専用の機能性を有することができる。
【0112】
パケット・サービス・カード450は、最初にセル・データをパケットに組み立てることができ、このパケットを加入者と結び付けることができる。加入者が決定された後、パケットが関係するフローが決定され、対応する処理規則が適用される。このプロセスでは、パケット・サービス・カード450が、パケットを廃棄するか転送するかを決定することができる。パケット・サービス・カード450は、受信したセルを加入者向けの処理規則に従って処理し、所望のサービス・ポリシーを特定の加入者のそれぞれに提供することができる。
【0113】
パケット・サービス・カード450は、パケットの次のホップを、経路指定管理カード460が提供する経路指定情報、または、入ってくるセル内に関連付けられたセル・ヘッダに基づいて、判断することができる。処理パケットからすべてのセルを生成するために、新規のVCI/VPI番号が、次のホップに従って生成される。パケット・サービス・カード450は、新規VCI/VPI番号を有するセルを、適切なトランク・ポート420上に転送するために、スイッチ・ファブリック440へ送信する。
【0114】
それぞれの加入者を1つのパケット・サービス・カード450に割り当てられるものとして記載したが、複数のパケット・サービス・カードが、単一の加入者に関係するデータを処理できることを理解されたい。このような状況は、典型的には、パケット・サービス・カードの1つが、特定の専用サービスをすべての/複数の加入者に提供するよう設計され、他のパケット・サービス・カードが、加入者が所望する残りのサービスを提供するよう設計されたときに、存在する。このような状況では、サービス・カードの1つによって処理されたデータを、スイッチ・ファブリックを使用して、事前に決定されたシーケンスに従って、別のパケット・サービス・カードに転送することができる。このようなすべてのパケット・サービス・カードにおけるプロセッサもまた、プロセッサ・グループと呼ぶことができる。
【0115】
処理規則をそれぞれのパケットに適用することによって、パケット・サービス・カード450において、ISN250は、本発明によるいくつかの特徴を提供できるようにすることが可能となる。パケット・サービス・カード450のいくつかの実施形態は、本発明の範囲および精神から外れることなく実現することができる。実施の一例を、以下で説明する。
【0116】
8.パケット・サービス・カード
図5は、一実施形態のパケット・サービス・カード450の細部を示すブロック図である。パケット・サービス・カード450は、4つのプロセッサ・グループ(550−Aから550−D)、プロセッサ・インタフェース(PIF)530、および制御論理520を備えることができる。各ブロックの動作を、以下でより詳細に説明する。
【0117】
制御論理520は、パケット・サービス・カード450の他の構成要素の動作を調整し、制御する。制御論理520は、プロセッサ・グループのどのプロセッサがそのパケットを処理できるかを判断することができる。一実施形態では、パケットが、ラウンド・ロビン・ベースで4つのプロセッサの間で割り当てられる。制御論理520は構成マネージャ470と共に動作して、プロセッサ・グループ550を、割り当てられた加入者に関係する処理規則でインスタンス化(構成)することができる。
【0118】
サービス・ポリシーの実現に、データ・フローで転送されたデータの検査に基づく処理規則の動的なインスタンス化が必要であるとき、制御論理520は、データ・フローを検査し、新規の処理規則を生成することができる。図示のように、H.323、voice−over−IP、またはストリーミング・アプリケーションでは、新規の接続またはデータ・フローを、制御フローで実施されたネゴシエーションに基づいて動的に作成することができる。制御論理520は、制御フローを検査して、いずれかの必要な情報(たとえば、ポート番号)を求め、この検査に基づいて処理規則を作成することができる。制御論理520は、プロセッサ・グループ550が処理規則によって指定された動作を実行することを保証するよう、プロセッサ・グループ550を構成することができる。制御論理520を、構成マネージャ470を使用して指定されたサービス・ポリシーに起因して制御することができる。
【0119】
PIF(プロセッサ・インタフェース)530は、セルをスイッチ・ファブリック440から受信し、(IPパケットを形成する)このセルを4つのプロセッサ・グループ550のうちの1つに転送することができる。一実施形態では、PIF530は、4つのプロセッサ・グループに対応する4つの入力ポートを備えることができ、スイッチ・ファブリック440は、VCIヘッダ情報によって決定されるように、このセルを4つのポートのうちの1つ(したがって、特定のプロセッサ・グループに)に送信することができる。すなわち、VCIヘッダは、パケット・サービス・カードだけを決定できるのではなく、受信したセルを処理する特定のプロセッサ・グループをも決定することができる。
【0120】
幾人かの加入者を、一意的にプロセッサ・グループ550のそれぞれに割り当てることができる。RMC460は、それぞれのプロセッサ・グループ550を、割り当てられた加入者に関連付けられた処理規則で構成するのに必要なコマンドを生成することができる。RMC460は、どの特定のプロセッサ・グループ550が加入者のそれぞれに関係するデータを処理するかを決定することができ、対応するプロセッサ・グループを、割り当てられた加入者に関連付けられた処理規則で構成する。構成コマンドは、プロセッサ・インタフェース530を介して発行することができる。
【0121】
それぞれのプロセッサ・グループ550は、いくつかのプロセッサおよびSRAM(図示せず)を備えて、パケットに関係するセルを格納することができる。SRAMを、プロセッサ・グループ550に含まれるすべてのプロセッサによって共有することができる。プロセッサ・グループ550のすべてのプロセッサは、割り当てられたすべての加入者に関係するデータを処理可能にすることができる。プロセッサ・グループを、セルに関連付けられたチャネル識別子によって決定することができるが、パケットを処理する特定のプロセッサは、制御論理520によって決定されることができる。
【0122】
それぞれの加入者をプロセッサ・グループ550に割り当てることができるので、サービス・プロバイダは、追加のプロセッサ・グループを追加することによって、より多くの加入者にサービスを行うことができる。したがって、本発明によって提供される解決策は、大規模ネットワークに応じて十分拡張することができる。さらに、プロセッサ・グループを、加入者の特定のポリシー要件についてサービスを行うよう設計することができる。たとえば、プロセッサ・グループ550−Bのみを、仮想専用ネットワーク(VPN)を提供するよう設計することができ、VPNを必要とするすべての加入者をプロセッサ・グループ550−Bに割り当てることができる。サービス・ポリシーのいくつかの例を、図6のAおよびBを参照して、以下でより詳細に説明する。
【0123】
9.サービス・ポリシーの例
図6のAおよびBは共に、加入者向けの加入者ポリシーの例を示す図である。例示のため、パケットを、第1のマッチ・ポリシー(match policy)に従って処理されるものとして説明する。しかし、関連技術分野の当業者には明らかであるように、「ベスト・マッチ(best match)」などの他のマッチ・ポリシーを使用することもできる。
【0124】
図6のAは、セキュリティを実現するのにどれほど異なるポリシー規則を指定できるかを示す。最初に、セキュリティ・ポリシーの分類子が、フローを識別するのに必要なデータのみ(条件なし)を含むよう選択されることに留意されたい。サービス規則610は、IPアドレスの分類子=SubsAまたはOffice1、宛先IPアドレス=SubsAまたはOffice1、サービス=IMAP、および3xDES暗号化プロトコルを使用して合致するデータを暗号化するアクションを指定する。すなわち、SubsAおよびOffice1の間のメール交換は、指定したプロトコルを使用して暗号化される。
【0125】
2つの処理規則を、サービス規則610を実現するよう生成することができ、それぞれの規則は、1つのフローを指定する分類子を持つ。一般に、それぞれの処理規則は、ソースIPアドレス、宛先IPアドレス、プロトコル・フィールド(たとえば、TCPまたはUDP)、ソース・ポート番号、および宛先ポート番号の5組として生成することができる。
【0126】
少なくともいくつかのサービス規則のパラメータは、容易に事前入手可能であり、したがって対応する処理規則パラメータに静的に変換することができる。こうして、サービス規則610のIPアドレスSubsAおよびOffice1が事前に既知であると仮定すると、2つの処理規則をサービス規則から生成することができる。これは、IMAP用のTCPポート番号が事前に指定されているからである。
【0127】
しかし、IPアドレスの1つ(たとえば、SubsA)を動的に生成する場合、たとえば、ユーザ・システムがダイヤルイン接続を確立する必要があるとき、ユーザ・インタフェース470は、ユーザにIPアドレスが割り当てられた後に、動的に処理規則を生成することができる。処理規則を動的にインスタンス化することもできる。
【0128】
サービス規則620は、SubsAから、およびSubsAへの、すべてのHTTP、SMTPおよびTELNETトラフィックを受け入れて暗号化するよう試みる。処理規則を、HTTP、SMTPおよびTELNETのそれぞれについて生成することができる。これらの3つのアプリケーションのプロトコル・タイプおよびポート番号が事前に指定され、IPアドレス(SubsAおよび他のOffices)も既知であると仮定すると、それに応じて処理規則を静的に生成することができる。
【0129】
サービス規則630は、SubsA−Web−SrvrへのすべてのHTTPトラフィックを受け取る。サービス規則640は、SubsA−Mail−Srvrとのすべてのsmtpトラフィックを受け入れる。サービス規則650は、SubsA−Subsetsからのすべてのトラフィックを受け入れる。サービス規則660は、すべての他のデータを落とし(ドロップし)、落としたデータのログを、後に計算および分析するために作成する。容易に理解可能であるように、図6のAの手法を使用して、加入者に固有のセキュリティ要件を実現することができる。異なる加入者は、個々のニーズに合わせて異なるポリシー規則を有することができる。
【0130】
図6のAの手法では、それぞれの分類子が一般に、フローを識別するのに必要な情報を含む。図6のBを参照して例示するように、分類子は、サービス・ポリシーに固有の条件を含むことができる。図6のBは、一実施形態における、「ポリーシング(policing)のためのサービス・ポリシー規則を示す図である。ここで、「ポリーシング」は、一般に、使用可能な帯域幅を共有する異なる接続への帯域幅の優先順位付けおよび割り振りを指す。
【0131】
サービス規則680は、SubsAlink−Inにおいて、1Mbps未満の集約帯域幅、および500Kbps未満の持続される帯域幅でデータを受信中の場合、このデータにサービス・タイプ(TOS)を再送信しなければならないと指定する。持続帯域幅および集約帯域幅は、いくつかの既知の方法の1つに従って計測することができる。分類子は、この規則が、一日のどの時間においてもすべてのTOSに適用可能であると指定する。TOS、時間(Time)、場所(Where)およびライン条件(LineCond)は、ポリーシングのサービス・ポリシーの条件例である。
【0132】
サービス規則680は、サービス規則680のライン条件(LineCond)が違反された場合に、データの優先順位を低くする。上述の実施形態のISN250は、トランク・ポート420で送信する前にデータ・ビット・グループを再生成するので、TOS値を既知の方法でデクリメント(decrement)することができる。
【0133】
少なくとも上述の実施形態を用いて、特殊化されたサービス・ポリシーをISPによってそれぞれの加入者に提供することができる。上述のように、本発明は、リモート・アクセス・アプリケーションについて特定の適用例を有する。
【0134】
さらに、ISN250をエッジ・ルータとして実現することによって、簡素なデバイスを加入者の構内で配備することが可能となる。例示として、本発明を用いなければ、図2のネットワーク210の加入者は、異なるサービス・ポリシーを提供するために複合ルータ220を実現する必要のある場合がある。管理にかかる間接費は、容認できないほど高くなることがある。逆に、本発明を用いることによって、ISN250の適切な構成を使用する中央リモート・アクセス・プロバイダにより、所望のサービス・ポリシーを提供することができ、それによって加入者の構内のデバイスの構成および管理が簡素化される。
【0135】
しかし、インターネット・サービス・ノードに伴う1つの要件は、加入者に関係するデータが迅速かつ効率的に特定のプロセッサへ処理のために割り当てられ、本発明による解決策を、多数の加入者を有する環境で使用できるようにすることである。本発明によるこのような割り当ておよび解決策に伴ういくつかの問題を、以下で説明する。
【0136】
10.プロセッサへの割り当てに伴う問題
上記の説明から留意できるように、スイッチ・ファブリック440は、IPパケットのセルを特定のプロセッサ・グループ450に割り当てる必要がある。スイッチ・ファブリック440が異なるアクセス・ポートおよびトランク・ポートでセルを受信することができるので、特定のプロセッサ・グループ450への割り当てが迅速に(短期間で)起こる必要がある。
【0137】
迅速にするため、この割り当てを、セル・ヘッダの検査に基づかせることができる。以下のさらなる説明では、この割り当てをVPIのみに基づくものとして仮定する。しかし、本発明の範囲および精神から外れることなく、セル・ヘッダの他の部分をセルの割り当てに使用することができる。セルがアクセス・ポート410で受信されたとき、セルが受信される際の接続のVPI番号を、特定のプロセッサ・グループ450の識別子に対応するよう制御することができ、これは関連技術分野の当業者には明らかであろう。
【0138】
しかし、セルがトランク・ポート420で受信されたとき、複数の加入者が、典型的には同じATM仮想接続を共有する。同じATM接続で受信された異なる加入者の加入者データを、異なるプロセッサに割り当てる必要がある。このような状況では、ATMセルのデータを検査し、このATMセルを処理するための特定のプロセッサを決定する必要がある。
【0139】
IPネットワークの場合、IPパケットの第1のATMセルのペイロードに含まれるIP宛先アドレスを検査して、IPパケットを割り当てる(加入者)プロセッサを決定する必要がある。関連技術分野で周知のように、セルのシーケンスはIPパケットを表し、典型的には、第1のセルがIP宛先アドレスを含む。それに応じて、セル・データがトランク・ポート420で受信されたとき、少なくともIPヘッダ情報を検査する必要がある。
【0140】
セル・データを検査する必要性は、セルがトランク・ポート420で受信された場合に限定されない。セルがアクセス・ポート410で受信されたときにも、セル・データを検査する必要がある場合がある。たとえば、セルがトンネリング(たとえば、L2TPおよびL2F)およびIPセキュリティ(典型的には、同じ仮想回線上の複数の加入者に関係するデータを含む)などのアプリケーションに関係するとき、より高い層のヘッダ・データ(たとえば、UDP、TCP)をさらに検査して、セルを処理する特定のプロセッサを決定する必要がある。
【0141】
このような要件を、簡潔にするためL2TPを参照して例示する。しかし、本発明を他のいくつかのアプリケーションに適用できることを理解されたい。本発明をこのようなアプリケーションに関連して用いることは、本発明の範囲および精神内のものであると企図される。
【0142】
L2TPにおいて、トンネルを使用するすべてのIPパケットは、同じIP宛先アドレス、すなわちISN250に割り当てられたIPアドレスの1つを共有する。しかし、L2TPは一般に、UDPプロトコル・タイプの上で実現され、UDPポート番号は、IPパケットがL2TPトンネルに関係することを識別する。さらに、UDPパケットのトンネルIDおよびコールIDフィールドが、IPパケットが関係する可能性のある特定の加入者を識別することができる。処理用のプロセッサは、加入者の識別に基づいて決定されることができる。これに応じて、より高い層のプロトコル(UDP)ヘッダまたはパケット内のさらなる情報を検査して、加入者情報を決定する必要のある場合がある。
【0143】
スイッチ・ファブリック440が、セルを、セル・ヘッダの検査に基づいてパケット・サービス・カード450の1つに割り当てることを可能にするため、異なるセル・ヘッダ(または他の識別データ)を置換して、スイッチ・ファブリック440が、セルを、セル・ヘッダによって識別されたパケット・サービス・カード450に割り当て可能とすることが望ましいことがある。このような置換は、上記の例の両方で必要となることがある。より高い層のプロトコルの検査および置換をリアルタイムで実行して、大量のバッファリングを避ける必要がある。
【0144】
本発明によって、個々の記憶場所のマスクを有するCAMを使用した、セル・ヘッダの検査および置換が可能となる。個々の記憶場所のマスクを有するCAMの動作を、概して最初に説明する。次いで、本発明を例と共に説明する。
【0145】
11.個々の記憶場所のマスクを有するCAM
個々の記憶場所のマスクを有するCAMによって達成される効率を理解するため、最初に、従来のCAMの動作を図7のAを参照して説明する。図7のAはCAM710を含み、これは、一般にはアクセスのためにただ1つのマスクを提供する。CAM710は、図では、720−A、720−BなどのそれぞれのCAM位置について、探索フィールド711および出力データ・フィールド715を有する。
【0146】
動作する際には、入力値およびマスクがそれぞれ値バス701およびマスク・バス702で受信される。入力値およびマスクのそれぞれは、探索フィールドの長さ(探索フィールド711のビット数)に等しいビット数を有する。マスク・バス702によって指定されたビット位置における入力値が、探索フィールド711の対応するビットに合致した(あるいは等しい)場合、出力フィールド715に格納されたデータが、出力として出力バス749上に生成される。すなわち、マスク702によって指定されたビット位置におけるビットのみを比較することができる。
【0147】
このように、異なるビット位置を、CAM710の異なる記憶場所720で突き合わせる必要がある場合、複数のアクセス(それぞれが異なるマスクを有する)の対応する数だけ、実行される必要がある。
【0148】
それぞれの加入者を識別するIPヘッダ(UDP/TCP/ICMP情報を含む)のデータを、それぞれの位置720に格納することができ、受信されたIPパケットの第1のセルのIPヘッダ・データを値701として提供できることを理解されたい。しかし、検査されるべきビット位置が、状況が異なると異なるので(たとえば、区別がIP宛先アドレスのみに基づくときは、IP宛先アドレスを検査する必要があり、L2TPでは、IP宛先アドレス、プロトコル・タイプ、UDPポート番号、トンネルIDおよびポートIDを検査する必要がある)、異なるマスク値を、マスク・バス702に提供する必要がある。
【0149】
すなわち、複数のCAMアクセスを実行する必要があり、各アクセスは、加入者の合致について検査されるべきビット位置を表す対応マスクを有する。このような複数のCAMアクセスには、望ましくないほどの長い時間がかかることがあり、よって望ましくない。
【0150】
代替の実施形態は、複数のユニットのCAM710を使用することができ、それぞれのCAMが、加入者に特定のマスクを供給する。しかし、複数のCAMは、少なくともコストを考慮すると望ましくないことがある。個々のCAM位置のマスクを有する単一のCAMを使用することができ、これによって、以下に記載するように、複数のアクセスの必要性が避けられる。
【0151】
図7のBは、複数の位置(770−A、770−Bおよび770−C)を有するCAM750のブロック図である。CAM750は、入力バス751、探索フィールド761、出力フィールド765および出力バス799を含むことができ、それぞれは、図7のAの入力バス701、探索フィールド711、出力フィールド715および出力バス749と同様のものである。さらに、CAM750はマスク・フィールド764を有し、これは、個々の位置770に関連付けられたマスクを格納する。したがって、すべてのCAM位置に共通のマスクの代りに、個々のマスクを、CAM750のそれぞれの位置に関連付けることができる。
【0152】
動作する際には、入力値(入力ビット)が入力バス751に提供されるとき、対応するマスクによって指定された各CAM位置のビット位置のみが入力ビットと比較され、合致したCAM位置の出力フィールド765の出力値が、出力バス799に提供される。出力値は、セル(またはパケット)をさらに処理するために割り当てることができるプロセッサを(直接的あるいは間接的のいずれかで)識別することができる。
【0153】
こうして、異なるマスクを異なるCAM位置に使用することができる。それぞれのマスクは、比較されるべきビット位置を指定する。ビット位置は、以下で例示するように、セルを処理するプロセッサの決定において比較されるべき特定のフィールドによって決定される。
【0154】
12.IP環境に関する例示
このセクションでは、加入者(および、したがって処理用のプロセッサ)の決定に関する例示を、2つのシナリオ例において提供する。すなわち、(1)IP宛先アドレスが一意的に加入者を識別するとき、および(2)L2TPの場合である。このセクションの説明では、IPパケットを、対応する加入者に結びつけることができる方法を、最初に説明する。次いで、一例の実施形態においてこのような識別をセルの割り当てに使用することができる方法を説明する。
【0155】
一般に、識別されるべきビット位置は、プロトコルが使用する特定のフォーマットに依存することを理解されたい。IPおよびL2TPの情報は、Request for Comments(RFC)768、791および1483で見つけることができ、これら全体を、ここで参照により取り入れる。
【0156】
シナリオ1の例に関して、合致する宛先IPアドレスを、インターネット・プロトコルのバージョン4.0で求めるために、以下のビット位置(バイト境界で表し、それぞれのバイトは8ビットを有する)を検査して、以下の関係を求める必要がある。
【0157】
バイト1:IPバージョン番号=4、およびヘッダ長=20バイト、および
バイト17〜20:受信パケットの宛先IPアドレス=特定の加入者に割り当てられたIPアドレス。
【0158】
同様に、加入者データを、L2TPを使用して受信したとき、以下のビット位置を検査して(すなわち、マスクにおいてアンマスクされる)、(IPパケットが関係する)加入者(よって、プロセッサ)を識別する必要がある。
【0159】
バイト1:上記と同じ目的
バイト10:プロトコル・タイプ=UDP
バイト17〜20:受信パケットの宛先IPアドレス=ISN250のインタフェースのIPアドレス
【0160】
IPヘッダ長が20バイトであると仮定すると、以下のバイトが検査される。 バイト23〜24:宛先UDPポート番号=L2TPプロトコルのポート番号
バイト29〜30:L2TPバージョン、長さおよびヘッダ情報
バイト31〜32:長さがない場合、加入者に割り当てられたトンネルID=受信IPパケットによって指定されたトンネルID
バイト33〜34:長さがある場合、加入者に割り当てられたトンネルID=受信IPパケットによって指定されたトンネルID
バイト35〜36:受信パケットのコールID=特定の加入者に割り当てられたコールID。
【0161】
こうして、一般には、それぞれの探索は、パケット・フォーマット、バージョン番号およびアプリケーション・タイプ(たとえば、L2TP)を識別するいくつかのビット位置、および、加入者に固有の他のいくつかのビット位置(たとえば、L2TPの場合のコールIDおよび/またはトンネルID、および上記の最初の例の宛先IPアドレス)の検査を必要とすることがある。すべてのビット位置が合致したとき、受信IPパケットは、合致した位置に関連付けられた加入者に対応することができる。
【0162】
図7のBを参照して続けると、1つのCAM位置を各探索に割り振ることができる。たとえば、CAM位置770−Aを上記の例1のタイプの探索に割り振ることができ、CAM位置770−Bを上記の例2のタイプの探索に割り振ることができる。CAM位置770−Aのマスク・フィールド764は、アンマスク(0に設定)されたバイト1、17および18に対応するビット位置を有することができ、残りのビットをマスク(1に設定)することができる。CAM位置770−Aの探索フィールド761は、IPプロトコル・バージョン番号、長さを識別するデータ、および、対応するビット位置の加入者システムを識別するIPアドレスを含むことができる。
【0163】
CAM位置770−Bの内容を同様に説明することができる。上述のバイトに従うビット位置をアンマスクすることができる。探索フィールド761は、対応する位置において適切な値で設定されることができ、ここでトンネルIDおよび/またはコールIDは、一意的に加入者を識別する。
【0164】
複数のプロトコル・フォーマットをサポートする必要がある場合、加入者を決定するために複数のエントリが必要になることがある。たとえば、上記の例2では、長さフィールドがない場合には、バイト31および32を検査するために、あるエントリを実現する必要があり、長さフィールドがある場合には、バイト33および34を検査するために、別のエントリを実現する必要がある。同様に、異なるバージョンのIPプロトコル(たとえば、IPバージョン6)を加入者が潜在的に使用できる場合、より多くのエントリを実現する必要がある。一般に、CAM750のエントリは探索ツリーを規定し、それぞれの葉(リーフ)によって加入者が識別される。複数の葉が、同じ加入者を識別することがある。
【0165】
(IPおよびより高いプロトコル・データの)ヘッダ・データが入力として入力バス751に提供された後、出力フィールド765に格納されたデータが出力として出力バス799に提供される。理解されるべきは、複数の加入者を識別するデータを位置770に格納することができ、こうして合致が1つのアクセスで検出される。
【0166】
しかし、探索フィールドの幅(したがって、マスクおよび入力の幅)を少なくとも40バイト(320ビット)にして、IPヘッダおよびより高い層の情報を完全に検査する必要がある場合がある。個々の位置のマスクを有するCAMの商用的な実施形態は、しばしば幅がこれより小さい。少なくとも幅の問題に対処するため、以下に記載するいくつかの最適化を使用することができる。
【0167】
13.最適化
一実施形態では、IPヘッダが20バイトであり、バージョン4のIPであると仮定すると、IPパケットのバイト1、7、8、10、13〜15、17〜20、23、24、および27〜36のみが検査される。しかし、特定のアプリケーションに応じて異なるビット位置を探索することができる。これは、関連技術分野の当業者には、本明細書で提供する説明に基づいて明らかであろう。このような探索も、本発明の範囲および精神内のものであると企図される。
【0168】
上述のバイトは、関連技術分野で周知のL2TP、L2F、IPSECなどのアプリケーションの情報を含む。探索プロセスで他のバイトを避けることによって、必要なCAM幅が24バイト(192ビット)に最小化される。しかし、より小さい幅のCAMで動作することが要件となることがある。以下に記載する一実施形態では、探索フィールド761において112ビット(14バイト)のみを備えるCAMを提供することができる。
【0169】
このような場合、探索を、探索シーケンスに分割することができ、このシーケンスにおいて、後続の探索は、前の探索が合致したときのみ実行される。シーケンスにおいてすべての探索が合致することは、受信IPパケットが、探索シーケンスが関係する加入者に関係し、CAM出力によって指定されたプロセッサが、このIPパケットを処理するために使用されることを示す。
【0170】
不適切な幅のCAMによる動作を、L2TPに関して以下で説明する。CAMは、アクセス・ポート410およびトランク・ポート420で実現することができる。例示のため、トランク・ポート420における実施を以下で説明する。
【0171】
14.トランク・ポート
図8は、本発明による回線の実現および動作を示すブロック図である。フレーマ(Flamer)810は、加入者データを受信するときに電気インタフェースを提供することができる。フレーマ810は、受信ビットからバイトを組み立て、組み立てたバイトを割り当て論理850へ提供することができる。このバイトがセル・データを構成する。スイッチ・インタフェース880は、セル・データを割り当て論理850から受信し、受信データをパケット・サービス・カード450へ転送する。フレーマ810およびスイッチ・インタフェース880は、既知の方法で実現されることができる。
【0172】
IPテーブル860によって、IPパケットを、ソースまたは宛先IPアドレスに基づいてプロセッサへ割り当てることが可能となる。具体的には、IPテーブル860を使用することによって、本発明は、複数の加入者をサポートするのに必要なCAM位置の数を最小にすることができる。CAMのルックアップ(参照)を使用して、最初に索引を生成し、その後テーブル860のデータを使用して、IPパケットを割り当てる特定のプロセッサ・グループをさらに決定することができる。
【0173】
本発明によれば、プロセッサ・インタフェース830は、RMC460とインタフェースを取り、それぞれの加入者に関係するデータを特定のプロセッサ・グループに割り当てることを可能にするようCAM820を構成することができる。プロセッサ・インタフェース830はさらに、IPテーブル860およびVCテーブル870を、RMC460の制御下で構成することができる。L2TPタイプのプロトコルに関係するので、プロセッサ・インタフェース830がトンネル関係のデータ(たとえば、コールID、トンネルIDおよび対応するプロセッサ情報)をRMC460から受信し、加入者に関係するIPパケットを特定のプロセッサ・グループに割り当てるようCAM820を構成することができる。CAM820、VCテーブル870およびIPテーブル860は、ISN250におけるすべてのアクセス・ポートおよびトランク・ポートによって共有されることができる。
【0174】
VCテーブル870は、ATMセルのVPI/VCIヘッダ情報の、一意的な接続識別子へのマッピングを表すデータを格納することができる。こうして、VCテーブル870は、VPI/VCIヘッダ・データを受信することに応答して、接続識別子を返す。IPテーブル860およびVCテーブル870は、SRAMなどの高速メモリを使用して実現されることができる。
【0175】
CAM820は、図7のBのCAM750と同様のものであることができ、CAM位置毎にマスクを有する。マスクおよび探索フィールドは、合致するエントリを迅速に識別できるよう構成される。CAM820を構成する必要のある方法は、以下の説明からより明らかになるであろう。
【0176】
CAM820の出力は、識別子を表すことができる。識別子は、直接にプロセッサまたはプロセッサ・グループを表すことができ、またはさらなる探索のための索引としての機能を果たすことができる。本明細書に記載する実施形態では、識別子は、プロセッサ・グループまたはIPテーブル860への索引を表す。CAM820の出力は、出力を索引として解釈するか、またはさらなる探索のための索引として解釈するかを指定することもできる。
【0177】
割り当て論理850は、それぞれのIPパケットを、セルのシーケンスの形式で受信し、IPパケットを処理するプロセッサ・グループを決定する。このような決定を行うために、割り当て論理850は、ヘッダの関連バイト(IPヘッダ、および必要に応じて上位プロトコルのヘッダ)を、典型的には、IPパケットを形成するセルのシーケンスの第1のセルから選択する。選択されたバイトは、入力としてCAM820へ提供される。CAM820の出力は、上述のように識別子を表す。
【0178】
一実施形態では、IPパケットを形成するセルのすべてのシーケンスについてセル・ヘッダが修正され、修正されたヘッダは、このIPパケットを処理するプロセッサ(グループ)を識別する。修正されたセル・ヘッダを使用して、識別されたプロセッサ(グループ)に割り当てるパケット・サービス・カード450の実施形態の一例を、図9および図10を参照して以下でより詳細に説明する。これらの図はさらに、CAMの探索フィールドの長さが十分長くないときの複数のCAM探索の使用を図示する。
【0179】
15.方法
図9は、本発明による、加入者に関係するIPパケットをプロセッサに割り当てることができる方法を示すフローチャートである。ステップ910で、それぞれのCAM位置のマスクおよび探索フィールドが構成され、マスクは、検査されるべきビット位置を指定し、探索フィールドは、加入者を識別する特定の値を(パケット・ヘッダから)指定する。上述のように、RMC460およびプロセッサ・インタフェース830は、一実施形態においてこのような構成を実行することができる。いくつかのシナリオ例における典型的な考慮すべき事柄を、以下で説明する。
【0180】
CAM820のいくつかのエントリを、ISN250が動作中で加入者データを処理中であるときに、動的に構成することができる。たとえば、加入者が電話線を介してダイヤルインによって接続を確立し、新規のIPアドレスを割り当てられたとき、IP宛先アドレスに基づいてエントリを確立することができる。
【0181】
CAM820の他のいくつかのエントリは、静的に構成されることができる。たとえば、複数の加入者が同じATM仮想接続を共有し、同じアクセス・ポートに接続されているとき、それぞれの加入者が使用するIPアドレスが既知であるならば、CAMエントリを、ソースIPアドレスの検査用に構成することができる。
【0182】
一実施形態では、単一のエントリは、それぞれの加入者について使用されることができ、単一の(ソースまたは宛先)IPアドレスによって一意的に識別可能である。このようなそれぞれの加入者についてエントリを使用する際の1つの問題は、過度に多数の位置がCAM820において必要となることがある、ということである。位置の要件が大きいと、少なくともISP環境で問題となることがある。すなわちこの場合、ISPネットワークにダイヤルインしたとき、それぞれの加入者に一意のアドレスが割り当てられることがある。本発明を用いて、CAM820で必要となる位置の数を、以下でより詳細に説明するように最小にすることができる。
【0183】
1つの位置を各IPアドレスに割り当てる代りに、1つの位置をIPアドレスのグループに割り振ることができる。IPパケットを処理するプロセッサを、IPテーブル860に格納されたエントリと組み合わせて決定することができる。たとえば、IPアドレスの最初の3バイトはグループを識別することができ、CAM820の出力は、IPテーブル860の基底アドレスへの索引としての機能を果たすことができる。IPアドレスの最後のバイトは、基底アドレスからのオフセットとしての機能を果たすことができ、IPテーブル860内のオフセットの位置がプロセッサ番号を含むことができる。
【0184】
1つのCAM位置が、IPアドレスのグループの索引を含むとき、CAM位置のマスクを、グループ化を反映するよう選択することができる。たとえば、IPアドレスの最初の3バイトはグループを表すことができ、00.00.00.ffのマスクを選択することができる。したがって、CAM探索によって、256個(または、サブネット・ブロードキャストのアカウントに対して254個)のアドレスの最初への索引が得られ、IPテーブル860をアクセスして、受信IPパケットを処理するプロセッサを求めることができる。IPテーブル860からのプロセッサ識別子の抽出を、(ステップ960および961を参照して)以下でより詳細に説明する。
【0185】
トンネリングの場合、上述のように、IPバージョン番号、ヘッダの長さ、IPプロトコル・タイプ(すなわち、UDPについて)、IP宛先アドレス、UDP宛先ポート番号、L2TPバージョン番号、トンネルIDおよびコールIDを検査して、IPパケットを処理するプロセッサを決定することができる。トンネルおよびコールの設定中に生成された必要な情報は、RMC460によって上述のように提供されることができ、適切なマスクおよび探索フィールドでCAM820を構成することができる。
【0186】
いくつかの状況では、複数の加入者が同じトンネルを共有することがある。このような状況では、それぞれの加入者を、IPアドレスによって一意的に識別することができる。CAMルックアップを最小にするため、トンネルのすべてのパケットを、単一のパケット・サービス・カード450に割り当てることができ、割り当てられたパケット・サービス・カード450のプロセッサは、トンネル・データ内で符号化されたIPアドレスを検査することによって、異なる加入者間を区別することができる。
【0187】
ステップ920で、IPパケットを形成するセルのシーケンスの第1のセル(「ヘッダ・セル」)を受信することができる。IPパケットの最後のセルは、関連技術分野で周知のAAL5 ATM規格にしたがって求めることができ、よって後続のセルをIPパケットの第1のセルとみなすことができる。
【0188】
ステップ930で、割り当て論理850が、セルが受信されたポート番号、受信セルのVPIおよびVCIを、VCテーブル870に送信し、接続識別子、および、さらに探索が必要かどうかを示すデータを受信することができる。さらなる探索は、典型的には、プロセッサ(グループ)への割り当ての際に、セルによって形成されたIPパケットをさらに検査する必要がある場合に、必要となる。
【0189】
典型的には、VCテーブル870から抽出されたデータ・ビットが、さらなる探索が必要かどうかを示す。探索が必要でない場合、IPパケットのセルのヘッダを修正してスイッチ・インタフェース880へ渡さなくてもよい。その後、制御は、さらに探索が必要でない場合はステップ920へ、さらに探索が必要な場合はステップ950へ移る。
【0190】
ステップ950で、割り当て論理850が、IPパケットを形成するセルからいくつかのバイトを選択することによって、CAM820の第1の入力値を構築することができる。このバイトは、ステップ910で格納に使用された探索フィールドおよびマスクに適合するよう選択される必要がある。典型的には、第一のセルが、入力値を構築するのに必要なすべてのデータを含む。
【0191】
一実施形態では、ISN250は、LLC/SNAPおよびVC Muxを共にサポートすることができる。一般には、VC Muxは、単一のプロトコル(この例ではIPバージョン4)について設定されることができ、LLC/SNAPは、Ethertypeフィールドを指定するバイトを含む。Ethertypeフィールドは、IPバージョン4または6、または、イーサネット・タイプの環境に共通な他のプロトコルを指定することができる。LLC/SNAPおよびVC Muxの本発明に適用可能な細部のみを、本明細書で提供する。2つのプロトコルのさらなる説明については、RFC1483を参照することができ、これ全体をここで参照により取り入れる。
【0192】
LLC/SNAPおよびVC Muxプロトコルに共に対応するため、一実施形態の割り当て論理850は、以下のバイトを第1の入力値に含めることができる。
【0193】
(第1の入力値の)バイト1および2:LLC/SNAPのEthertypeフィールド、またはVC Muxの場合は配慮不要
バイト3:IPヘッダのバイト1
バイト4〜5:IPヘッダのバイト7および8
バイト6:IPヘッダのバイト10
バイト7〜9:IPヘッダのバイト13〜15
バイト10〜13:IPヘッダのバイト17〜20
バイト14:以下に記載の探索タイプ・フィールド
【0194】
探索タイプ・フィールドは、CAM820で実行中の異なるタイプの探索を指定することができる。たとえば、このフィールドは、これが第1の探索(すなわち、ステップ950)か第2の探索(すなわち、以下に記載するステップ970)かを指定することができる。このフィールドはさらに、入力IPパケットがLLC/SNAPタイプの仮想接続で受信されるか、VC Muxタイプの仮想接続で受信されるかを指定することができる。再度、それぞれのCAM位置の探索フィールドを、入力値のフォーマットに適合するよう格納する必要があることに留意されたい。典型的には、先の第2の探索のタイプ・フィールドを、前の探索の出力から形成することができる。
【0195】
再度、探索フィールド761のデータを、入力値のフォーマット(すなわち、選択されたバイト、およびCAMに提示されるシーケンス)に適合するように格納する必要がある。シナリオの一例における入力フィールドのフォーマットは、上述の通りである。
【0196】
CAM820の出力をステップ955で検査して、合致するエントリが存在するかどうかを判断することができる。合致が検出されなかった場合、制御はステップ955へ移り、そこでデフォルト(省略時値)のプロセッサ・グループを選択してIPパケットを処理することができる。合致があった場合、制御は、以下で説明するように、CAM820の出力に応じてステップ960、961、970および980の1つへ移る。
【0197】
CAM820の出力データは、プロセッサ(グループ)を直接的または間接的のいずれかで識別する。直接的に識別する場合は、データ自体がプロセッサ識別子を含むことができる。間接的に識別する場合は、典型的には追加の探索が必要である。CAM出力がプロセッサ識別子を含むかどうかを指定するために、フラグを出力に含めることができる。フラグは、プロセッサをさらに決定することができる方法を特定する。
【0198】
フラグが第1の値(たとえば、1)を有する場合、合致したエントリの探索は加入者のグループに対応し、これは宛先IPアドレスによって識別される。したがって、ステップ960で、IPテーブル860において[抽出された索引によって特定された事前指定の基底アドレス+受信IPパケットのIP宛先アドレスの最後のバイト]のアドレスを有するエントリを抽出することができる。抽出されたエントリは、プロセッサ(グループ)識別子を含むことができる。
【0199】
フラグが第2の値を有する場合、合致したエントリの探索は加入者のグループに対応し、これはソースIPアドレスによって識別される。その後、制御はステップ961に移る。ステップ961は、ステップ960と同様の方法で実行されるが、ソースIPアドレスの最後のバイト(すなわち、ビット120:127)が、抽出された索引によって識別された基底アドレスからのオフセットとして使用される。制御は、ステップ960および961からステップ980に移り、そこでプロセッサ識別子が、IPテーブル860へのアクセスの結果から選択される。
【0200】
フラグが第3の値を有する場合、ステップ950のCAM探索の探索結果が、プロセッサ識別子を含む。この可能性があるのは、たとえば、特定の専用サービスを必要とするIPパケットを専用プロセッサに割り当てなければならないときである。別の例は、受信IPパケットがOSPFなどの経路指定プロトコルに関係するときである。CAMエントリは、ステップ910でこのような合致要件に適合するよう構成される必要がある。
【0201】
フラグが第4の値を有する場合、制御がステップ975へ移り、この場合はさらにCAM820を探索して、プロセッサ(グループ)識別子を決定する必要がある。このさらなる探索は、L2TP、L2F、IP Secなどの場合に必要になることがあり、これは関連技術分野の当業者には明らかであろう。上述のように、マスクを有するCAMの探索フィールドで使用可能なビット数(たとえば、112)が制限されているため、第2レベルの探索が必要になることがある。CAMが十分な数のビットを探索フィールドに含む場合には、スループット性能を向上させるために、複数のレベルを避けることができる。
【0202】
一実施形態では、20バイトのIPヘッダを仮定すると、CAM820の第2の入力値が以下のフォーマットを有することがある。
(第2の入力値の)バイト1〜2:UDP宛先ポート番号を表すバイト23および24
バイト3〜13:受信セルのバイト27〜37
バイト14:探索タイプ
【0203】
上記探索タイプは、現在の探索が第2の探索を表すことを指定することができ、これにより、任意の不注意による合致を避けることができる。一実施形態では、第2の探索の探索タイプを、第1の探索の出力のビットから形成することができる。上で選択したフォーマットおよびバイトはIP Sec、L2TP、L2Fおよび他の多数のプロトコルを探索するのに十分であり、これは関連技術分野の当業者には、本発明で提供した開示に基づいて明らかであろう。
【0204】
合致するエントリがあった場合、CAM出力がプロセッサ・グループ識別子を含むことができ、制御はステップ980に移る。ステップ980で、出力内の適切なビットを、プロセッサ・グループ識別子について選択することができる。合致するエントリが存在しなかった場合、制御はステップ995に移り、そこでデフォルトのプロセッサ識別子が選択される。合致しなかったIPパケットをすべて、デフォルトのプロセッサに送信することができる。
【0205】
こうして、プロセッサ・グループ識別子は、ステップ980および995の最後に決定される。その後、制御はステップ990に移り、ステップ990は、識別されたプロセッサ・グループが、複数のATMセルの形式で受信されたIPパケットを実行することを保証するための手法の一例を例示する。
【0206】
ステップ990で、IPパケットを形成するすべてのATMセルのVCIおよびVPIフィールドが、それぞれ、接続識別子およびプロセッサ識別子によって置き換えられる。IPパケットの最後のセルは、関連技術分野で周知のように、ATM規格のAAL5に従って求めることができる。ステップ990で最後のセルが処理された後、制御はステップ920に移り、そこで後続のIPパケットの第1のセルが検査される。
【0207】
このように、図9の方法は、効率的にIPパケットを事前指定のプロセッサ・グループに割り当てる手法の一例を示す。プロセッサ・グループは、ステップ990で上述したように、VPIフィールドによって識別することができる。上述のように、スイッチ・ファブリック440は、セルを、VPIフィールドによって識別されたプロセッサ・グループに転送することができる。プロセッサ・グループは、セルが関係する加入者向けの処理規則を有するので、対応する処理規則を、セル(またはセルから形成されたIPパケット)を処理する際に適用することができる。
【0208】
こうして、ATMヘッダのVPI/VCIフィールドを置換することによって、割り当て論理850は、ATMセルの形式で受信されたパケットが、適切なプロセッサ・グループに送信されることを保証する。一実施形態の割り当て論理850を、以下でより詳細に説明する。
【0209】
16.割り当て論理
図10は、一実施形態における割り当て論理850の細部を示すブロック図である。フレーマ・インタフェース1010は、フレーマ810からバイトを受信し、受信バイトをセル・メモリ1020に格納する。接続識別ブロック1030はヘッダ・バイトを受信し、VPI/VCIデータおよびポート番号をVCテーブル870に送信する。接続識別ブロック1030は、VCテーブル870が接続用のデータで事前に構成されている場合、接続識別子をVCテーブル870から受信する。接続データが事前に指定されていない場合、セルを専用の事前指定されたプロセッサ・グループに送信することができる。接続識別ブロック1030は、SRAMインタフェース1040を使用して、VCテーブル870とインタフェースを取ることができる。
【0210】
パーサ(Parser)1060は、図9のフローチャートのステップ910を除くすべてのステップを、他の構成要素とインタフェースを取ることによって実行することができる。パーサ1060は、接続識別子を接続識別ブロック1030から受信し、IPパケットのヘッダ・データをセル・メモリ1020から受信して、プロセッサ・グループ識別子を決定する。パーサ1060は、CAMインタフェース1080を通じてCAM820とインタフェースを取ることができ、SRAMインタフェース1040を通じてIPテーブル860とインタフェースを取ることができる。
【0211】
抽出されたデータを使用し、置換が必要なときには、パーサ1060は、セルのVPI/VCIを決定することができる。パーサ1060は、新規の値をセル・メモリ1020に格納して、新規のVPI/VCI値を置換することができる。セル・メモリ1020は、パーサ1060が新規のVPI/VCIデータを決定する間の十分な時間中にセルをバッファに入れるために、十分な格納スペースを含む必要がある。セル・メモリ1020からのデータは、スイッチ・インタフェース880に送信される。
【0212】
こうして、セルのVCIフィールドをプロセッサ識別子と置換することによって、パーサ1060で、スイッチ・ファブリック440が、IPパケットを処理するのに適切なプロセッサ・グループに、セルを迅速に転送可能にすることが可能となる。すなわち、スイッチ・ファブリック440は、加入者データを特定のプロセッサ(グループ)に割り当てるために、セル・ヘッダ(少数のビット)を検査するだけでよい。プロセッサ・グループは、対応する加入者に固有のサービス・ポリシーを提供するよう構成されることができる。
【0213】
本発明を、異なるサービス・ポリシーを提供するために、データを異なるプロセッサ・グループに割り当てることとして説明したが、本発明を他のいくつかの実施形態で実現されることは明らかであろう。これは、関連技術分野の当業者には、本明細書で提供した開示に基づいて明らかであろう。このような他の実施形態は、本発明の範囲および精神内のものであると企図される。
【0214】
上述の図8〜図10の実施形態が、図1のステップ140および150を実現するための手法例のみを例示することに留意されたい。他のいくつかの実施形態を、本発明の範囲および精神から外れることなく実現することができ、これは、関連技術分野の当業者には、本明細書で提供した開示に基づいて明らかであろう。このような他の実施形態も、本発明の範囲および精神内のものであると企図される。
【0215】
17.結論
本発明の様々な実施形態を以上で説明したが、これらは例としてのみ提示されたものであり、限定するものではないことを理解されたい。したがって、本発明の範囲は、上述の実施形態のいずれによっても限定されるべきではなく、特許請求の範囲およびそれらの均等物に従ってのみ定義されるべきである。

【特許請求の範囲】
【請求項1】
所望のサービス・ポリシーのセットを複数の加入者のそれぞれに提供する方法であって、
それぞれの加入者が所望するサービス・ポリシーのセットを提供する複数の処理規則を識別するステップと、
前記それぞれの加入者に対応する前記処理規則を持ち、該処理規則が前記アクセス・ネットワークの一つのエッジから制御されるアクセス・ネットワークのエッジ装置として一つのインターネット・サービス・ノードを構成するステップと、
前記インターネット・サービス・ノードでデータを受信するステップと、
前記インターネット・サービス・ノードにおいて前記受信データが関係する特定の加入者を判定するステップと、
前記インターネット・サービス・ノードにおいて、前記判定した特定の加入者に関係する前記複数の処理規則を適用するステップと、を含み、
前記適用するステップが、前記決定するステップの後に実行される、前記方法。
【請求項2】
所望のサービス・ポリシーのセットを複数の加入者のそれぞれに提供する方法であって、
それぞれの加入者が所望するサービス・ポリシーのセットを提供する複数の処理規則を識別するステップと、
前記それぞれの加入者に対応する前記処理規則を持つインターネット・サービス・ノードをエッジ装置として構成するステップと、
前記インターネット・サービス・ノードでデータを受信するステップと、
前記インターネット・サービス・ノードにおいて前記受信データが関係する特定の加入者を判定するステップと、
前記インターネット・サービス・ノードにおいて、前記判定した特定の加入者に関係する前記複数の処理規則を適用するステップと、
を含む、前記方法。
【請求項3】
前記複数の処理規則を適用するステップが、前記決定するステップの後に実行される、請求項2に記載の方法。
【請求項4】
所望のサービス・ポリシーのセットを複数の加入者のそれぞれに提供する方法であって、
それぞれの加入者が所望するサービス・ポリシーのセットを提供する複数の処理規則を識別するステップと、
前記それぞれの加入者に対応する前記処理規則を持つインターネット・サービス・ノードを、複数のプロセッサで構成するステップと、
前記インターネット・サービス・ノードでデータを受信するステップと、
前記インターネット・サービス・ノードにおいて前記受信データが関係する特定の加入者を判定するステップと、
前記インターネット・サービス・ノードにおいて、前記判定した特定の加入者に関係する前記複数の処理規則を適用するステップと、を含み、該適用するステップは、
前記複数の加入者のそれぞれをプロセッサ・グループに割り当てるステップであって、各プロセッサ・グループは、割り当てられた加入者に対応する前記処理規則で構成されているステップと、
各加入者に関係するデータを、特定の加入者の前記判定の後に、対応するプロセッサ・グループに送るステップと、を含む、
前記方法。
【請求項5】
それぞれのプロセッサ・グループが、複数のプロセッサを備える請求項4に記載の方法。
【請求項6】
前記プロセッサ・グループに割り当てられた加入者に関係するデータが、前記複数のプロセッサの間でラウンド・ロビン方式で割り当てられる請求項4に記載の方法。
【請求項7】
前記複数の加入者のエンド・システムが、インターネット・プロトコル(IP)を使用してデータを生成する請求項4に記載の方法。
【請求項8】
前記データがATMセルを含む、請求項7に記載の方法。
【請求項9】
前記判定するステップが、前記ATMセルに含まれるデータを検査するステップを含み、
前記特定の加入者の判定が、前記検査の結果と、前記ATMセルが受信されるポートとに基づいて行われ、
前記ポートが、前記インターネット・サービス・ノードに含まれる請求項8に記載の方法。
【請求項10】
前記適用するステップが、
前記ポートにおいて、前記データを転送すべき特定のプロセッサ・グループを決定するステップであって、該特定のプロセッサ・グループを、前記受信データが関係する前記特定の加入者に基づいて決定するステップと、
前記ATMセルが、そのヘッダの検査に基づいて適切なプロセッサ・グループに転送されるように、前記決定されたプロセッサ・グループを示すよう前記ATMセルのヘッダを修正するステップを含み、
前記適切なプロセッサ・グループが、前記特定の加入者に関係する前記処理規則で構成されている、請求項9に記載の方法。
【請求項11】
前記決定するステップは、連想記憶装置(CAM)を使用して実行され、
前記CAMは複数の位置を含み、該複数の位置のそれぞれは、マスク、探索フィールドおよび出力フィールドを有しており、
前記CAMは、入力値を受信して、該入力値を、前記複数の位置のそれぞれの前記マスクによって指定されたビット位置での前記探索フィールド内のデータと比較するよう設計されており、
前記CAMは、対応する位置で合致があるならば、前記出力フィールドに格納されたデータを出力として生成するよう設計されている、請求項10に記載の方法。
【請求項12】
前記CAMの出力フィールドに格納されたデータが、プロセッサ・グループの識別子を直接的または間接的に特定し、該出力フィールドに格納されたデータを使用して前記識別子を求めることができるように、前記マスクおよび探索フィールドのそれぞれの入力が、加入者を識別するデータを格納するよう行われる、請求項11に記載の方法。
【請求項13】
前記ATMセルを、前記ヘッダを検査することによって前記加入者に関係するデータを処理するように設計されたプロセッサ・グループに割り当てることができるように、前記ATMセルのヘッダの一部が、前記識別子と置換される請求項12に記載の方法。
【請求項14】
前記識別子が、前記ヘッダの仮想パス識別子(VPI)または仮想チャネル識別子(VCI)フィールドに格納される請求項13に記載の方法。
【請求項15】
前記ATMセルの前記ヘッダの検査に基づいて、スイッチ・ファブリックが前記データを前記プロセッサ・グループに送る、請求項13に記載の方法。
【請求項16】
仮想パス識別子/仮想チャネル識別子(VPI/VCI)およびポート番号の接続識別子へのマッピングを、仮想チャネル(VC)テーブルに格納するステップを含み、前記VCテーブルのそれぞれのエントリは、受信セルのVPI/VCIを置換する必要があるかどうかを示しており、
前記受信データ内に構成されている受信セルに対応する前記VCテーブルのエントリにアクセスするステップを含み、
前記エントリ内のデータが、前記VPI/VCIフィールドが置換される必要があることを示していれば、前記受信セルの前記ヘッダが修正される、請求項13に記載の方法。
【請求項17】
前記受信データを形成するVCIセルを、前記接続識別子に設定するステップと、
前記CAMの前記出力を使用して、プロセッサ識別子またはプロセッサ・グループ識別子を生成するステップと、
前記ATMセルのシーケンスの前記VPIを、前記プロセッサ識別子または前記プロセッサ・グループ識別子に設定するステップと、を含み、
前記スイッチ・ファブリックが前記VPIを使用して、前記ATMセルのシーケンスを前記プロセッサの1つに転送する請求項16に記載の方法。
【請求項18】
IPヘッダのバイト1、7、8、10、および13〜20が、前記入力として前記CAMに提供される請求項12に記載の方法。
【請求項19】
IPアドレスに対応する少なくともいくつかのビット位置を検査するため、前記位置のマスクを設定し、前記位置の探索フィールドを前記マスクと組み合わせて複数のIPアドレスに設定するステップを含み、
少なくともいくつかの前記IPアドレスが前記加入者に関連付けられる、請求項12に記載の方法。
【請求項20】
前記IPアドレスのそれぞれが、IPソース・アドレスを含む請求項19に記載の所望のサービス・ポリシーのセットを複数の加入者のそれぞれに提供する方法。
【請求項21】
前記IPアドレスのそれぞれが、IP宛先アドレスを含む請求項19に記載の所望のサービス・ポリシーのセットを複数の加入者のそれぞれに提供する方法。
【請求項22】
前記複数のIPアドレスのそれぞれを、プロセッサ識別子またはプロセッサ・グループ識別子にマッピングするIPテーブルを維持するステップと、
前記IPパケットのIPアドレスのマスクされたビット位置のビット、および前記CAMの出力を使用して、前記プロセッサ識別子または前記プロセッサ・グループ識別子を抽出するステップと、を含み、
前記ATMセルのシーケンスが、前記プロセッサ識別子によって識別されたプロセッサ、または前記プロセッサ・グループ識別子によって識別された前記プロセッサ・グループに割り当てられる請求項19に記載の方法。
【請求項23】
前記探索フィールドが、前記加入者を識別するデータを格納するのに十分な数のビットを含んでおらず、前記方法が、
前記CAMの複数のエントリに前記加入者を識別するデータを格納するステップを含み、
前記複数のエントリの出力が、前記プロセッサ識別子またはプロセッサ・グループ識別子を判定するときに検査される、請求項12に記載の方法。
【請求項24】
前記複数のエントリの1つの出力が、前記CAMの複数のエントリの他の1つの入力として使用され、前記複数のエントリの該他の1つの出力が、前記プロセッサ識別子またはプロセッサ・グループ識別子を識別する請求項23に記載の所望の方法。
【請求項25】
前記加入者に関係する受信データが、L2TPトンネルを使用して受信される請求項23に記載の方法。
【請求項26】
前記受信データの第1のセルに含まれるIPパケットのバイト1、7、8、10、13〜15、および17〜20を、第1の入力として提供するステップと、
前記第1のセルに含まれるIPパケットのバイト23、24、および27〜37を、第2の入力として提供するステップを含む、請求項25に記載の方法。
【請求項27】
所望のサービス・ポリシーのセットを複数の加入者のそれぞれに提供する方法であって、
(a)インターネット・サービス・ノード(ISN)をエッジ・ルータとして提供するステップと、
(b)前記複数の加入者のそれぞれについて所望のサービス・ポリシーのセットを指定するステップと、
(c)前記所望のサービス・ポリシーのそれぞれを処理規則に変換するステップであって、前記処理規則は、分類子および関連するアクションを含み、該分類子は、該関連するアクションを適用するデータ・フローを識別する、ステップと、
(d)前記ISNを前記処理規則で構成するステップと、
(e)複数のビット・グループを、前記複数の加入者に含まれる加入者から受信するステップと、
(f)複数のパケットを、前記複数のビット・グループに含まれるデータから生成するステップであって、前記複数のパケットのそれぞれは、前記加入者のアプリケーションによって生成されたデータ・フローに関連付けられることができる、ステップと、
(g)前記複数のパケットのそれぞれが関係するデータ・フローを求めるステップと、
(h)前記ステップ(g)において求められたデータ・フローに合致する分類子に関連付けられた前記アクションを適用するステップと、を含み、
前記複数の加入者のそれぞれに、前記対応する所望のサービス・ポリシーのセットが提供されるようにする、方法。
【請求項28】
前記複数の加入者のエンド・システムが、インターネット・プロトコル(IP)を使用してデータを生成し、前記ステップ(f)が、複数のIPパケットを生成することを含む、請求項27に記載の方法。
【請求項29】
前記ビット・グループがATMセルを含み、前記複数のパケットが、該ATMセルから生成される請求項28に記載の方法。
【請求項30】
前記複数のサービス・ポリシーの1つの状態を維持するステップを含み、前記状態によって複数のデータ・フローを前記サービスを満たすように処理することができる、請求項28に記載の方法。
【請求項31】
前記データ・フローのそれぞれの状態を維持するステップを含み、それぞれのフローのパケットに適用されるべき処理規則が、前記状態で維持される、請求項28に記載の方法。
【請求項32】
(i)アプリケーションの制御データ・フローを監視して、アプリケーションによって起動された新規のデータ・フローのポート番号を求めるステップと、
(j)新規の処理規則を、前記求めたポート番号を使用して生成するステップと、を含む、
請求項28に記載の方法。
【請求項33】
(k)それぞれが複数のプロセッサを含む複数のプロセッサ・グループを提供するステップと、
(l)前記パケットのそれぞれを前記複数のプロセッサ・グループの1つに割り当てるステップと、を含み、
前記割り当てられたグループの前記複数のプロセッサの1つが、前記割り当てられたパケットを処理する、請求項27に記載の方法。
【請求項34】
加入者に関係するすべてのパケットが、1つのプロセッサ・グループに割り当てられる請求項33に記載の方法。
【請求項35】
パケットを、個々のプロセッサにラウンド・ロビン方式で割り当てるステップを含む請求項34に記載の方法。
【請求項36】
所望のサービス・ポリシーのセットを複数の加入者のそれぞれに提供するインターネット・サービス・ノード(ISN)であって、
それぞれの加入者が所望するサービス・ポリシーのセットを提供する複数の処理規則を識別する識別手段と、
インターネット・サービス・ノードを、前記加入者のそれぞれに対応する処理規則で構成する構成手段であって、該インターネット・サービス・ノードが、アクセス・ネットワークのエッジ装置として提供され、前記サービス規則の呼び出しが前記アクセス・ネットワークのエッジから制御される、構成手段と、
前記インターネット・サービス・ノードでデータを受信する受信手段と、
前記インターネット・サービス・ノードで、前記受信データが関係する特定の加入者を判定する判定手段と、
前記インターネット・サービス・ノードで、前記判定した特定の加入者に関係する前記複数の処理規則を適用する適用手段と、を備え、
前記適用が前記判定の後に実行されるようにしたインターネット・サービス・ノード。
【請求項37】
前記ISNが複数のプロセッサを備え、前記判定手段および適用手段が共に、
前記加入者のそれぞれをプロセッサ・グループに割り当て、それぞれのプロセッサ・グループは、割り当てられた加入者に対応する処理規則で構成される、割り当て手段と、
それぞれの加入者に関係するデータを、前記特定の加入者の判定の後に、対応するプロセッサ・グループに転送する転送手段と、
を備える、請求項36に記載のインターネット・サービス・ノード。
【請求項38】
前記複数の加入者のエンド・システムが、インターネット・プロトコル(IP)を使用してデータを生成する、請求項37に記載のインターネット・サービス・ノード。
【請求項39】
前記データがATMセルからなる、請求項38に記載のインターネット・サービス・ノード。
【請求項40】
前記割り当て手段が、前記ATMセルに含まれるデータを検査する検査手段を備え、前記特定の加入者の判定が、前記検査の結果、および前記ATMセルが受信されるポートに基づいて行われ、前記ポートが、前記インターネット・サービス・ノードに含まれる請求項39に記載のインターネット・サービス・ノード。
【請求項41】
前記割り当て手段は、セル・ヘッダの検査に基づいて前記セルを適切なプロセッサ・グループに転送できるように、前記セルのヘッダを修正して前記決定したプロセッサ・グループを示すようにする修正手段を備えており、 前記適切なプロセッサ・グループが、前記特定の加入者に関係する処理規則で構成される、請求項40に記載のインターネット・サービス・ノード。
【請求項42】
加入者のためのサービス・ポリシーを指定するステップと、
前記サービス・ポリシーを処理規則に変換するステップであって、該処理規則のそれぞれが分類法およびアクションを含み、該分類法はデータ・フローを識別し、該アクションはポリーシング・サービス・ポリシーを実行し、該分類法はポリーシング・サービス・ポリシーが適用される1日の時間を示すフィールドを持つ、ステップと、
前記処理規則に従って入ってくるデータを処理するステップと、
を含む、方法。
【請求項43】
前記変換するステップは、前記処理規則のそれぞれのポリーシング・サービス・ポリシーの一部として、利用可能な帯域幅に優先順位をつけることを含む、請求項42に記載の方法。
【請求項44】
前記変換するステップは、前記処理規則のそれぞれのポリーシング・サービス・ポリシーの一部として、利用可能な帯域幅を割り当てるための割り当てポリシーを指定することを含む、請求項42に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2013−9406(P2013−9406A)
【公開日】平成25年1月10日(2013.1.10)
【国際特許分類】
【出願番号】特願2012−181849(P2012−181849)
【出願日】平成24年8月20日(2012.8.20)
【分割の表示】特願2000−585778(P2000−585778)の分割
【原出願日】平成11年12月1日(1999.12.1)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
【出願人】(390023157)ノーテル・ネットワークス・リミテッド (153)
【Fターム(参考)】