説明

データセンター向けの拡張可能なマルチキャスト転送方法および装置

【課題】データセンター向けのマルチキャスト転送装置および方法を提供する。
【解決手段】データセンター内のサーバーのマルチキャストアドレスは一連の連続マルチキャストアドレス内のアドレスであり、着信マルチキャストデータパケットを受信し、当該着信マルチキャストデータパケットのヘッダから宛先MACアドレスが抽出し、抽出された宛先MACアドレスと所定のマスク項目との間で論理AND演算を実行し、索引値を取得するルーティングクエリー実行エンジン120と、取得された索引値を使用して出力ポート系列を決定する転送エンジン130とにより、スイッチングファブリックユニット140が、決定された出力ポート系列に示されるポートから当該着信マルチキャストデータパケットを出力するようにラインカード110をスケジューリングする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はデータセンターに関し、特に、データセンター向けの拡張可能なマルチキャスト転送方式に関する。
【背景技術】
【0002】
インターネットやクラウドコンピューティングサービスのようなアプリケーションの発達に伴い、データセンターはますます大規模化し、データセンターに設置されるマシンの数も増加の一途を辿っている(数万台規模)。データセンターにおける内部サーバー間のデータ通信は、インターネットを高密度に集中化した、規則性を有するネットワーク層トポロジーを形成する。そのため、データセンターのネットワークインフラストラクチャは、現在注目される研究テーマの一つとなっている。
【0003】
マルチキャスト機能を適用できるアプリケーションはますます拡大しており(例:オンラインビデオ)、データのバックアップを始めとするデータセンター独自のニーズにも対応可能になっている。1対1のユニキャストルーティングとは対照的に、マルチキャストルーティングは主に1対多のサービスで利用される。つまり、1つのマルチキャストソースがサービスを提供する場合には、そのマルチキャストグループに参加しているすべてのメンバーがこのソースによって提供されるサービス(例:ビデオ、ファイルコピー)を利用することができるのである。データセンターは多数のサーバーを相互接続し、上位層のアプリケーションに効率的で耐障害性のあるルーティング転送サービスを提供する。そのため、マルチキャスト転送メカニズムに対する要求はますます厳しくなっている。しかし、現在のデータセンターで行われているマルチキャスト転送は未だにインターネットアプリケーションを対象としているため、転送テーブルが大きすぎる、スイッチのコスト効率が低い、拡張性に乏しい、といったいくつかの固有な問題を避けて通ることができない。これらの問題を鑑みると、転送テーブルの格納効率を向上させると同時に新たなルーティング検索機能が使用でき、データセンターが抱えるマルチキャスト転送の拡張性の問題を解消することのできる、新たな方法が必要とされている。
【0004】
インターネット上ではマルチキャストよりもユニキャストの方が広く利用されている。そのため、ルーティングモジュールを設計する際には、ネットワーク機器ベンダーが提供するネットワーク機器はユニキャストルーティング向けに集中しており、マルチキャストルーティング機能は付随的にしか扱われていない。ユニキャストルーティングで使用されるIPv4アドレスの集約特性により、ルータで実行されるルーティングテーブル検索には最長一致法が採られている。例えば、宛先アドレスが「1.2.3.4」のデータパケットに対して、現在のルーティングテーブルに存在する「1.0.0.0/8」「1.2.0.0/16」「1.2.3.0/24」という3項目が一致したとすると、最長一致となる「1.2.3.0/24」がヒット項目とみなされる。この最長一致の要件があるために、ルーティングテーブル検索はデータパケット転送プロセスの中で最も時間のかかる処理となっている。
【0005】
ルーティングテーブル検索で時間計算量が高くなる最大の原因は、ルーティングテーブルの格納方法にある。表1は、不規則アドレスを格納したルーティングテーブルを示している。テーブルの各項目には1つのイーサネットアドレス(MACアドレス)が索引付けされており、そのコンテンツとして、転送ポートを示すビットマップ(インタフェースビットマップ)が格納されている。ヒットした項目は、格納されたインタフェースビットマップに対応するポート(ビット1に対応するポート)に送信される。表1の索引は不規則なので、データパケットの宛先アドレスに基づいてクエリーを実行する際には、転送テーブル全体をトラバースする必要がある。この場合、時間計算量はO(N)である。
【表1】

【0006】
表2は、MACアドレスがソートされた、順序付けルーティングテーブルである。そのため、索引を検索する際には、2進探索法を使用することができる。したがって時間計算量はO(logN)である。
【表2】

【0007】
ただし、時間計算量の点においては、これら2種類の格納方法と、ツリー構造格納方式を用いたルーティング検索とを用いたのでは、インターネットや大規模データセンターで要求される、ほぼO(1)というルーティングテーブル検索の要件に対応することはできない。
【0008】
現在、ほとんどのネットワーク機器ベンダーは、TCAM(Ternary Content Addressable Memory:3値連想記憶装置)を適用してルーティング検索プロセスを実行している。TCAMは、ルーティングテーブル並行検索方法のハードウェア実装であり、その時間計算量はO(1)になる。この場合、検索結果は、ルーティングテーブルを1度読み込んで最長一致を実行することにより得られる。これはCAMをベースに開発される。CAM記憶装置では各ビットが「0」と「1」という2つの状態しか持たないのが一般的であるのに対し、TCAMでは各ビットは「0」と「1」に加えて「DON’T CARE」(どちらでもよい)という3つ目の状態を持ち(それ故に「ternary」(3値)と呼ばれる)、マスクによって実装することができる。TCAMの3つ目の状態を使うと、完全一致検索とあいまい検索の両方を実行することが可能になる。しかし、TCAMはコスト効率が低く、拡張性にも劣る。下記の表3に示すように、TCAMの価格と電力消費量はSRAMのそれよりも遙かに高い。
【表3】

【0009】
そのため、「TCAMをDRAMまたはSRAMに代えて、ルーティングテーブル検索においてO(1)に近い時間計算量を達成するにはどうしたらよいか」ということが、現在のネットワーク機器ベンダーにとっての主な研究テーマとなりつつある。DRAMのアクセス速度(10〜20ns)はSRAM(〜2ns)に比較して遅すぎる。電力消費量の面では、DRAMとSRAMの間に大きな差はない。したがって、本研究ではTCAMをSRAMで代替することに焦点を当てる。
【0010】
最長一致の問題はマルチキャストアドレスでは発生せず、データセンターネットワークはアドレスフィールドが一箇所に集中しているという特徴を有する。IPv4アドレスは合計約43億(232)個あり、マルチキャストアドレスは合計2億(16×224)個ある。これらのアドレスは224.0.0.0〜239.255.255.255の範囲にある。したがって、インターネット上のマルチキャストルーティングおよび転送メカニズムで処理されるアドレスは2億個であり、アドレスの連続性は制御不能である。データセンターネットワークは、マルチキャストアドレスの個数はデータセンターネットワーク内のサーバー数に依存するという点で、インターネットとは異なる。現在の大規模データセンターが保有するサーバー数は1万〜10万台の範囲にわたり、その多くは5万台前後に集中している。そのため、現在のデータセンターにおけるマルチキャスト需要に対応するには、1つの連続するマルチキャストアドレスフィールド(例えば、239.0.*.*/16の場合、合計65,536個のアドレスがある)で十分である。こうした少数アドレスと集中制御の特徴を鑑みれば、インターネットアプリケーション向けに設計されたTCAMの採用はコスト効率が低く拡張性も低いという問題につながるのは必至なので、データセンターネットワークにとっては、単純ゲート回路とSRAMとの組み合わせをもってTCAMを代替することが、マルチキャスト用ルーティングテーブル検索を効率的に実装するための方法となる。したがって、大規模データセンターネットワークにおけるマルチキャストルーティングテーブルのクエリーと転送に係るオーバーヘッドを削減し、コストパフォーマンスを低下させずに高度な拡張性を提供できる技術的解決法が必要とされている。
【発明の概要】
【発明が解決しようとする課題】
【0011】
本発明は、データセンター向けの拡張可能なマルチキャスト転送方式を提案する。この方法では、O(1)の時間計算量を確保しながら、TCAMに代えて単純ゲート回路が、ルーティングテーブルのクエリーを完了するための手段として採用される。このクエリー方法では、ルーティングテーブルを格納する必要はなく、マスクを用いた「AND」演算に基づいて転送テーブルの索引値を直接取得することができる。この回路のマスク部分は、データセンターネットワーク内のサーバー数によって変動する。
【0012】
加えて本発明は、転送テーブル格納部分に、転送テーブル圧縮方法も備えている。この圧縮方法では、既存の転送テーブル内の同じテーブル項目の間で1つのコピーのみが保持され、同じテーブル項目のない転送テーブルを読み込む前に、別の索引配列を使用して1回のリダイレクトを実行することができる。
【課題を解決するための手段】
【0013】
本発明の第1の態様によれば、データセンター向けのマルチキャスト転送装置であって、データセンター内のサーバーのマルチキャストアドレスが一連の連続マルチキャストアドレス内のアドレスであり、着信マルチキャストデータパケットを受信して、当該着信マルチキャストデータパケットのヘッダから宛先MACアドレスを抽出するように構成されたラインカードと、ラインカードによって抽出された宛先MACアドレスと所定のマスク項目との間で論理AND演算を実行して索引値を取得するように構成されたルーティングクエリーユニットと、ルーティングクエリーユニットによって取得された索引値を使用して出力ポート系列を決定するように構成された転送ユニットと、着信マルチキャストデータパケットを転送ユニットによって決定された出力ポート系列内に示されるポートから出力することである着信マルチキャストデータパケットのマルチキャスト転送を完了するためにラインカードをスケジューリングするように構成されたスイッチングファブリックユニットとを含む。
【0014】
好ましい態様では、転送ユニットが、ルーティングクエリーユニットによって取得された索引値を転送テーブルの索引値として使用して、当該転送テーブル内の対応するテーブル項目に直接ヒットさせることにより、出力ポート系列を決定し、あるいは、転送ユニットが、索引配列と転送テーブルとを含み、最初に、ルーティングクエリーユニットによって取得された索引値を当該索引配列の索引値として使用して、当該索引配列内の対応するテーブル項目に直接ヒットさせることにより当該転送テーブルの索引値を取得し、次に、当該索引配列がヒットした当該転送テーブルの索引値を使用して、転送テーブル内の対応するテーブル項目に直接ヒットさせることにより、出力ポート系列を決定する。
【0015】
好ましい態様では、所定のマスク項目は、データセンター内のサーバー総数に基づいて設定される。
【0016】
好ましい態様では、データセンター内のサーバー総数が216以下の場合、一連の連続マルチキャストアドレスは下位16ビットのみが異なる一連の連続IPアドレスであり、所定のマスク項目は0xffffとして設定され、データセンター内のサーバー総数が217以下の場合、一連の連続マルチキャストアドレスは下位17ビットのみが異なる一連の連続IPアドレスであり、所定のマスク項目は0x1ffffとして設定され、データセンター内のサーバー総数が218以下の場合、一連の連続マルチキャストアドレスは下位18ビットのみが異なる一連の連続IPアドレスであり、所定のマスク項目は0x3ffffとして設定され、データセンター内のサーバー総数が219以下の場合、一連の連続マルチキャストアドレスは下位19ビットのみが異なる一連の連続IPアドレスであり、所定のマスク項目は0x7ffffとして設定され、データセンター内のサーバー総数が220以下の場合、一連の連続マルチキャストアドレスは下位20ビットのみが異なる一連の連続IPアドレスであり、所定のマスク項目は0xfffffとして設定される。
【0017】
転送ユニットは、SRAM上に転送テーブルを格納するか、またはSRAM上に索引配列と転送テーブルとを格納するのが望ましい。
【0018】
本発明の第2の態様によれば、データセンター向けのマルチキャスト転送方法であって、データセンター内のサーバーのマルチキャストアドレスが一連の連続マルチキャストアドレスにおけるアドレスであり、着信マルチキャストデータパケットを受信するステップと、着信マルチキャストデータパケットのヘッダから宛先MACアドレスを抽出するステップと、抽出された宛先MACアドレスと所定のマスク項目との間で論理AND演算を実行して索引値を取得するステップと、取得された索引値を使用して出力ポート系列を決定するステップと、決定された出力ポート系列内に示されるポートから着信マルチキャストデータパケットを出力するステップとを含む
【0019】
好ましい態様では、取得された索引値を使用して出力ポート系列を決定するステップにおいて、取得された索引値を転送テーブルの索引値として使用して、当該転送テーブル内の対応するテーブル項目に直接ヒットさせることにより、出力ポート系列を決定し、あるいは、最初に、取得された索引値を索引配列の索引値として使用して、当該索引配列内の対応するテーブル項目に直接ヒットさせることにより転送テーブルの索引値を取得し、次に、当該索引配列がヒットした当該転送テーブルの索引値を使用して、転送テーブル内の対応するテーブル項目に直接ヒットさせることにより、出力ポート系列を決定する。
【0020】
所定のマスク項目は、データセンター内のサーバー総数に基づいて設定されるのが望ましい。
【0021】
データセンター内のサーバー総数が216以下の場合、一連の連続マルチキャストアドレスは下位16ビットのみが異なる一連の連続IPアドレスであり、所定のマスク項目は0xffffとして設定され、データセンター内のサーバー総数が217以下の場合、一連の連続マルチキャストアドレスは下位17ビットのみが異なる一連の連続IPアドレスであり、所定のマスク項目は0x1ffffとして設定され、データセンター内のサーバー総数が218以下の場合、一連の連続マルチキャストアドレスは下位18ビットのみが異なる一連の連続IPアドレスであり、所定のマスク項目は0x3ffffとして設定され、データセンター内のサーバー総数が219以下の場合、一連の連続マルチキャストアドレスは下位19ビットのみが異なる一連の連続IPアドレスであり、所定のマスク項目は0x7ffffとして設定され、データセンター内のサーバー総数が220以下の場合、一連の連続マルチキャストアドレスは下位20ビットのみが異なる一連の連続IPアドレスであり、所定のマスク項目は0xfffffとして設定される。
【0022】
SRAM上に転送テーブルを格納するか、またはSRAM上に索引配列と転送テーブルとを格納するのが望ましい。
【0023】
本発明の第3の態様によれば、OpenFlowスイッチが提案される。このOpenFlowスイッチは、本発明の第1の態様によるマルチキャスト転送装置を含む。
【0024】
本発明の第4の態様によれば、イーサネットスイッチが提案される。このイーサネットスイッチは、本発明の第1の態様によるマルチキャスト転送装置を含む。
【発明の効果】
【0025】
本発明で提案されるデータセンター向けの拡張可能なマルチキャスト転送方式においては、複雑なTCAMに代えて単純ゲート回路を使用してマスク演算が実現される。第一に、このような実装では最長一致を実行する必要はなく、ルーティングテーブルを格納することも不要なため、コストとリソースのオーバーヘッド(電力消費量、回路複雑度等)はTCAMよりも遙かに低い。第二に、これはマスクの単純なAND演算なので、データセンターネットワークを構成するサーバー数の変動に応じてマスク内のビット数を変えることができるため、拡張性が実現される。加えて、単純な設計であるため、本発明のクエリー演算に費やされる時間量はSRAM上でのワンタイムアクセスの時間量(〜2ns)程度に留まり、TCAM(3〜5ns)上でのそれよりも少ない。加えて、本発明の転送テーブル圧縮方式では、リダイレクトの使用によりメモリー空間(最初のメモリー空間の1/2〜1/4)を節減することが可能となっている。これは、本発明は、同じ記憶領域であれば最初の記憶方式よりも多くのアドレス領域(2〜4倍)を確保できるため、データセンターネットワークの拡張性が大幅に高くなることを意味する。
【図面の簡単な説明】
【0026】
上記およびその他の目的、特徴、並びに利点は、図面を参照しながら実施例について述べた以下の説明を読むことにより、さらに明らかになるであろう。
【0027】
【図1】本発明によるデータセンター向けの拡張可能なマルチキャスト転送装置1000の概略ブロック図である。
【図2】転送テーブル132の概略図である。
【図3】本発明によるデータセンター向けの拡張可能なマルチキャスト転送方法3000の概略フローチャートである。
【図4】本発明によるデータセンター向けの拡張可能なマルチキャスト転送装置4000の概略図である。
【図5】転送テーブルのリダイレクトにより記憶容量の圧縮を実現する方法を説明する概略図である。
【図6】OpenFlowを使用して本発明を実現する場合の概略図である。
【図7】既存のイーサネット環境に本発明を実装する場合の概略図である。
【0028】
本発明の図面においては、同一または類似の構造とステップは同一または類似の参照番号によって示されている。
【発明を実施するための形態】
【0029】
以下では、上記の図面を参照して、本発明の好適な実施例を説明する。以下の説明においては、本発明に対する理解が曖昧になるのを回避するため、本発明に必須ではない詳細および機能を省略する。
【0030】
上述したとおり、データセンターネットワークとインターネットの最大の相違点は、前者においてマルチキャストアドレスの個数はデータセンターネットワーク内のサーバー数に依存することである。現在の大規模データセンターが保有するサーバー数は1万〜10万台の範囲にわたり、その多くは5万台前後に集中している。そのため、現在のデータセンターネットワークにおけるマルチキャスト需要に対応するには、1つの連続するマルチキャストアドレスフィールド(例えば、239.0.*.*/16の場合、合計65,536個のアドレスがある)で十分である。こうした特徴に着目して、本発明は、連続IPアドレスフィールド内のIPアドレスを使用して、データセンターにおけるサーバーのマルチキャストアドレスを示すことを提案する。本発明では例えば、239.0.*.*/16や192.1.*.*/16の範囲内のアドレスを使用することができる。
【0031】
IPアドレスの選択(つまり、連続IPアドレスフィールド内のIPアドレスを選択すること)という観点から見ると、同様に、マルチキャストMACアドレスは、対応してマルチキャストIPアドレスと同じ特徴を有すると考えられる。イーサネットにおいては、アドレスフィールド239.0.*.*/16の範囲内のアドレスを使用でき、01:00:5E:00:00:00〜01:00:5E:FF:FF:FFはマルチキャスト専用のMACアドレスフィールドである。上位25ビットは固定(01:00:5E)であり、下位23ビットは対応するIPアドレスと等しい。マルチキャストアドレスのマッピングにおいては、IPアドレスの下位23ビットをMACアドレスの下位23ビットに直接マップすることができる。これはつまり、マルチキャストアドレスの下位23ビットは、上位層のIPマルチキャストアドレスの下位23ビットと同じであることを意味する。インターネット環境においては、IPアドレスのクラスDでは、IPアドレスの上位4ビットは固定(1110)である。そのため中間の5ビットはMACアドレスにマップされないが、これは、1個のマルチキャストMACアドレスが2=32個の異なるIPアドレスに対応する可能性を生じさせる原因となる。この場合、マルチキャストアドレスの一意性を確立するには、MACアドレスを使用することを除くと、マルチキャストIPアドレスを使用するしか方法はない。ただし、上述したように、データセンターネットワークのサーバー数は限られており(10万台未満)、アドレスの連続性も制御可能なので、各マルチキャストアドレスは下位23ビットによって区別することが可能である。その理由は、データセンター内のサーバー数は10万台未満(<223)なので、23ビットでサーバーのマルチキャストアドレスを一意に識別できるためである(ほとんどの仕様において、データセンター内に存在するサーバー数は65,536台以下なので、下位16ビットのみが使用される。拡張することとなった場合には、23ビットの使用が可能なので、223台のサーバーにアドレス指定を行うことができる)。最後に、このアドレスマッピングは、単一のインスタンスで記述することが可能である(マルチキャストアドレス224.193.16.2はMAC層アドレス01:00:5E:41:10:02にマップされる)。MACアドレスの上位25ビットは固定(01:00:5E)である。193の2進表現は11000001であり、最上位ビットを除去すると1000001(すなわち0x41)になる。16の16進表現は0x10である。2の16進表現は0x02である。このようにして、下位23ビットを決定することができる。最後のMACアドレス(01:00:5E:41:10:02)が取得される。
【0032】
図1は、本発明によるデータセンター向けの拡張可能なマルチキャスト転送装置1000の概略図である。
【0033】
図1に示すように、本発明によるデータセンター向けの拡張可能なマルチキャスト転送装置1000は、ラインカード110と、ルーティングクエリー実行エンジン120と、転送エンジン130と、スイッチングファブリックユニット(switch fabric)140とを含む。
【0034】
ラインカード110は、データパケットをルータ/スイッチから入出力するためのポータルであり、入出力待ち行列112とデータパケットプロセッサ114を主な構成要素とする複数のネットワークカード(図示せず)を含む。
・入出力待ち行列112:データパケットがネットワークカードを通って着信すると、まず入力待ち行列にキャッシュされ、処理を待機する。入力待ち行列が満杯になると、新たに着信するデータパケットはそのまま破棄される。データパケットの処理順序は、異なるサービス品質(QoS:quality of service)の要件に基づくデータパケット優先順位によって決まる。デフォルトでは、処理ルールはFIFO(先入れ先出し)である。出力待ち行列も、これと同様である。
・データパケットプロセッサ114:これは主に、データパケットのヘッダから、データリンク層の宛先アドレス(すなわち、宛先MACアドレス)とルーティング層の宛先アドレス(すなわち、宛先IPアドレス)を抽出するために使用される。これら2個のアドレスは、それぞれデータリンク層エンジンとルーティング層エンジンの索引項目として使用される。
【0035】
データセンターではサーバーのマルチキャストアドレスは連続IP/MACアドレスフィールド内のアドレスを使用して示される可能性があるとの発明者の認識から、本発明ではルーティングクエリー実行エンジン120を単純な構造とし、十分な拡張性を持たせている。例えば、データセンターネットワーク内のサーバー数が65,536(すなわち、216)台以下の場合には、マルチキャストアドレスは、プレフィックス長が16の連続アドレスフィールドを使用して示すことができる。ルーティングクエリー実行エンジン120は、対応して設定されたマスク項目124との論理AND演算を実行する単純なANDゲート回路122によって、クエリー演算を実装することが可能である。
・ANDゲート回路122:ANDゲート回路122は、ラインカード112のデータパケットプロセッサ114からデータパケットの宛先アドレスを取得した後、宛先MACアドレスとマスク項目内に格納されたマスクとの間でAND演算を実行する(マルチキャストアドレス数は216以下なので、マスク内には16個の有効ビットが存在する)。その結果得られる転送テーブルの索引値は、転送エンジン130に出力される。データセンターネットワーク内のアドレスは連続しているため、第2層の転送は主に、ネットワークトポロジーが判明した後に実行される。そのため、第2層のMACアドレスがANDゲート回路122によって処理される。
・マスク項目124:ここには、論理AND演算で使用されるマスク値が格納される。データセンターネットワーク内のサーバー数は216以下なので、16ビットのマスク値を使用するので十分である。ここで、最も単純な方法は、16ビットのマスクを0xffffで示すことである。こうすれば、AND演算により宛先アドレスそのものが得られる。データセンター内のアドレスは集中化され制御可能なため、各サーバーにより使用されるMACアドレスの下位16ビットが互いに異なることを確保することができる。
【0036】
マスク値は、既存のデータセンターネットワーク内のサーバー数の変動によって変化する可能性があることに注意する必要がある。ただし、最も単純なマスクを例にとると、マスク値は以下のようになる。すなわち、65,536(216)個のマルチキャストアドレスが存在する場合には、マスクはそれに対応して0xffffに設定され、131,072(217)個のマルチキャストアドレスが存在する場合には、マスクはそれに対応して0x1ffffに設定され、1,048,576(220)個のマルチキャストアドレスが存在する場合には、マスクはそれに対応して0xfffffに設定される。そのためマスク値は、マスク項目124においてハードウェア実装に関して1回のリライト操作を実行するたけで、容易に調整することが可能である。TCAMと比較して、この方法は実装が容易なだけではなく、コストとエネルギー消費量も遙かに少なくて済む。さらに、この方法によりデータセンターネットワークに十分な拡張性がもたらされる。
【0037】
転送エンジン130は、ルーティングクエリ実行エンジン120によって出力された転送テーブルの索引値を、転送テーブル132内の対応するテーブル項目に直接ヒットさせて、出力ポート系列を取得することができる。
【0038】
図2は、転送テーブル132(G2I)の概略図である。データセンターネットワークの第2層転送テーブルは、ビットマップを使用して実装される。テーブル項目番号のGは、マルチキャストグループ数に等しい。すなわち、このシナリオにおいては、65,536個のマルチキャストアドレス(1個のアドレスが1つのマルチキャストグループを表す)が存在するので、65,536個のテーブル項目が存在する。各テーブル項目は、現在のスイッチに含まれるポート数Iのビットマップに対応する。現在のデータセンターネットワークでは主に64ポートのスイッチが使用されているため、このビットマップは合計64ビットを有する(各ビットは1つのポート番号を表す)。例えば、1011010101100000000000000000000000000000000000000000000000000000は、ポート1、3、4、6、8、10および11からの転送を表す。本発明においては、転送テーブルはSRAMを使用して格納できるので、高いコスト効率が達成される。マルチキャストアドレスは65,536(64K、1K=1024)個存在し、スイッチは64ポートを有するとして計算すると、各転送テーブルのサイズは64K*64bits/8=512KBになる。表3に示すように、現在のスイッチの単一チップセット内にあるSRAMは平均して約4MBのサイズを有するため、512KBのSRAMであれば過剰なオーバーヘッドが発生することはない。また逆に、4MBのSRAMを使用して転送テーブルを格納する場合には、スイッチにまだ64ポートが残っているとすると、4MB/512KB*64K=512K個のマルチキャストアドレスをサポートすることが可能である。つまり、データセンターネットワーク内のサーバー数が最大512Kまで増加した場合でも、本発明の転送エンジンはO(1)のクエリー速度を達成することができるのである。これにより、データセンターネットワークに十分な拡張性がもたらされる。
【0039】
スイッチングファブリックユニット140は、データパケットの出力パスをスケジューリングするために使用される。同じラインカード110内の複数ネットワークカード間で行われるデータパケットの転送は、ラインカード110内のデータパケットプロセッサ114によってスケジューリングされる。一方、異なるラインカード間で行われるデータパケットの転送は、スイッチングファブリックユニット140によってスケジューリングされ、そのスケジューリングはネットワーク機器の他のリソースを共有することで実現される。
【0040】
図3は、本発明によるデータセンター向けの拡張可能なマルチキャスト転送方法3000の概略フローチャートである。
【0041】
図3に示すように、ステップS3010において、ラインカード110が着信マルチキャストデータパケットを受信し、入出力待ち行列112の入力待ち行列にそれを登録する。その後、ステップS3020において、ラインカード1100内のデータパケットプロセッサ114が着信マルチキャストデータパケットを処理し、着信マルチキャストデータパケットのヘッダから宛先MACアドレスを抽出し、抽出された宛先MACアドレスをルーティングクエリー実行エンジン120に送信する。ステップS3030において、ルーティングクエリー実行エンジン120が、受信された宛先MACアドレスとマスク項目との間で論理AND演算を実行して、転送エンジン130の索引値を取得する。ステップS3040において、転送エンジン130は、ルーティングクエリー実行エンジン120によって出力された索引値を直接、転送テーブルの索引値として使用して、転送テーブル132内の対応する項目に直接ヒットさせ、出力ポート系列を取得する。ステップS3050において、スイッチングファブリックユニット140が、転送エンジン130によって決定された出力ポート系列に基づいて、着信マルチキャストデータパケットのマルチキャスト転送(すなわち、当該着信マルチキャストデータパケットを、出力ポート系列内に示されるポートから出力すること)を完了するためにラインカード110をスケジューリングする。
【0042】
(前述の実施例の改良)
図2に示す転送テーブル132の読み取りは容易であるが(索引値に基づいてコンテンツを直接読み取ることができる)、データセンターのネットワークトポロジーは規則性を有するので、同じテーブル項目が多数存在する。多くの中間層スイッチ(ツリー構造内の葉ノードではないスイッチ)では、異なる宛先アドレスに対して同じ転送ポート系列が使用される。そのため、本発明はさらに、リダイレクト方式(ビットマップ共有)を使用して、転送テーブル上で圧縮格納を実行することを提案する。
【0043】
図4は、本発明によるデータセンター向けの拡張可能なマルチキャスト転送装置4000の概略ブロック図である。図1からの改良は転送エンジン130でのみ行われており、これは転送エンジン430として識別される。他の処理手段は図1と同じである。これらの同じ処理手段の詳細な説明は、不必要な反復を避けるため省略する。
【0044】
転送エンジン430において階層的索引付けを実現するため、索引配列434が追加され、それに対応して転送テーブル132を修正して転送テーブル432とする。
【0045】
演算において(図3のステップS3040に対応)、転送エンジン430は、ルーティングクエリー実行エンジン120によって出力された索引値を索引配列434の索引値として使用して(転送テーブルの索引値は、索引配列434内の各テーブル項目を使用して格納される)、索引配列434内の対応するテーブル項目に直接ヒットさせ、転送テーブルの索引値を取得する。その後、転送エンジン430は、索引配列434がヒットした転送テーブルの索引値を再使用して、転送テーブル430内の対応するテーブル項目に直接ヒットさせ、出力ポート系列を取得する。このような2段階の索引付けにより、出力ポート系列がヒットされ、同時に記憶容量の圧縮が実現される。
【0046】
図5は、転送テーブルのリダイレクトにより記憶容量の圧縮を実現する方法を説明する概略図である。
【0047】
図5において、G2Mは索引配列434であり、M2Iは転送テーブル432である。G2Mの系列長はマルチキャストグループ数に等しい。このシナリオには65,536個の素子が存在し、各々がM2Iの索引値を保持している。したがって、転送テーブルにヒットさせるためには2段階の索引付けが必要とされる(第1の索引付けはG2Mで、第2の索引付けはM2I)。最初の転送テーブルには多数の同じテーブル項目が存在するため(図2)、記憶領域の圧縮を実行する目的で索引配列434が導入されている。圧縮された転送テーブル432(すなわち、M2I)において、最初の転送テーブルと同様に各テーブル項目は1つのビットマップを一意に表現するので、ビットマップ数はスイッチ内のポート数に等しい。図5の矢印は、リダイレクトプロセスを表す。すなわち、ルーティングクエリー実行エンジン120が2つの異なるデータパケットのMACアドレスをクエリーすると、マスクのAND演算によって2つの異なる索引項目が取得される。これら2つの異なる索引項目は、それぞれマルチキャストグループ1とマルチキャストグループ2である。次に、これら2つの索引項目に基づいて対応する2つの素子値が索引配列434から読み取られるので、転送テーブルに対して複数の同じ索引値が取得される可能性がある。これは、記憶領域の圧縮前には、2つのマルチキャストグループに対応する転送テーブル132のテーブル項目が、同じコンテンツを保持している可能性があることを意味する。
【0048】
CPUによる1回の読み取り操作を円滑化するため、索引配列G2Mはその素子の幅を位置合わせルール(Lは2バイトまたは4バイトのいずれか)に基づいて調整する。32ビットCPUの場合、1回の読み取り操作で4バイトが消費される。この場合、Lが2バイトであれば2個の素子を読み取ることができ、Lが4バイトであれば1個の素子を読み取ることができる。これによりアクセス効率が向上する(Lが3バイトの場合は、各読み取りの位置合わせは不可能である)。加えて、図5から分かるように、転送テーブル432の項目番号Nの最大値は、Lの幅(すなわち、M=2)に関係している。Lが2バイトの場合、転送テーブル432は最大M=216=64Kの項目を保持することができる。Lが4バイトの場合、転送テーブル432は最大M=232=4Gの項目を保持することができる。すなわち、Lが2バイトと4バイトのときは、データセンター内でそれぞれ64Kと4Gのサーバーをサポートすることが可能である。したがって、本発明による索引配列の位置合わせルールは、CPUアクセス操作を円滑化するだけでなく、十分な拡張性も同時にもたらすのである。
【0049】
2段階の索引付け操作では、リダイレクトが実行されるため、最初の直接索引付け転送テーブルよりもアクセス操作が1回多くなる。ここでは格納のためにSRAMが採用されているので、1.5〜2nsの時間が余分に必要となる。しかし、こうした余分の時間を費やしてもなお、TCAMよりも所要時間は短い。加えて、本発明により転送テーブルの記憶領域が節減される。
【0050】
図2において、最初の圧縮されていない転送テーブル132のテーブル項目数Gは、マルチキャストグループ数(例えば、64K)に等しい。転送テーブル132のこれらの項目の各々は、スイッチ内のポート数(例:64ポート)に等しい幅を有するビットマップである。図5に示す圧縮して格納された索引配列434の場合、索引配列434のテーブル項目数Gはマルチキャストグループ数(例えば、64K)に等しく、各素子は幅Lを有する(例えば、CPU位置合わせルールによれば、Lは2バイトである(216=64K))。図5の転送テーブル432においては、圧縮された転送テーブル432のテーブル項目数はNである。これらのテーブル項目の各々はビットマップであり、スイッチ内のポート数(例:64ポート)に等しい幅Iを有する。したがって、圧縮領域のオーバーヘッドと最初の領域のオーバーヘッドの比は、式(1)によって計算できる。
【数1】

【0051】
本発明の典型的な適用例(L=2BおよびI=64ビット=8B)では、L / I=1/4となる。圧縮率N/Gは、転送テーブル132での同じテーブル項目の出現頻度によって決まる(平均して2つおきのテーブル項目が同じであれば同じテーブル項目の出現頻度は2であり、4つおきのテーブル項目が同じであれば同じテーブル項目の出現頻度は4である)。データセンターネットワークの実際のトポロジーのツリー構造においては、同じテーブル項目の出現頻度は平均して4〜8の範囲なので、圧縮率N/Gは1/8〜1/4の範囲であり、式(1)は[1/4,1/2]の値をとることができる。そのため、最初の転送テーブル132と比較して、本発明による圧縮された索引配列434と転送テーブル432は、最初の所要領域の1/4〜1/2しか必要としない。したがって、同じ記憶領域の場合であれば、この改良版は前述の実施例の2〜4倍のマルチキャストアドレス領域をサポートできるので、データセンターネットワークの拡張性が大幅に向上する。
【0052】
最後に、本発明の実装における2つの具体例について説明する。一方の具体例は広く普及したOpenFlow技術を使用して実装することができ、もう一方の具体例は既存のイーサネット環境内に展開することができる。
【0053】
(1)OpenFlowは、研究者が実際の要件に応じて新しいネットワークプロトコルやネットワーク実験を実装および展開することを可能にするオープンソース技術である。ネットワーク機器ベンダーによって提供されるネットワーク機器はすべて「ブラックボックス」なので、ユーザーが行えるのはIPアドレスやVLANを設定するといった構成作業に限られ、実験的にプログラミングを実行することはできない。そのため、ネットワーク機器のプログラミングインタフェースをオープンにすることは、主要な研究者にとって火急の課題となっていた。OpenFLowはまさにそれを実現する技術である。これはスタンフォード大学によって開発されたオープンソース製品であり、ソフトウェアによってルーティングと転送の機能を実現することが可能である。OpenFlowは、マルチカードPCがスイッチとして扱われるLinuxホストに直接展開できるだけでなく、NECやJUNIPER製製品のような市販のスイッチにもロードされている。ユーザーは研究要件に従ってOpenFlow上でプログラミングできるので、研究者によるネットワーク実験の実施が容易になった。
【0054】
図6は、OpenFlowを使用して本発明を実現する場合の概略図である。
【0055】
OpenFlowスイッチ610内の転送ルールと転送テーブルは、リモートコントローラ620によって展開できる。新しいルーティングプロトコル等はすべて、コントローラ620上のプログラミングにより実装される。コントロールプレーンの情報交換は、OpenFlowスイッチ610とコントローラ620間で、暗号化されたSSLセキュリティプロトコルを介して実行できる。OpenFlowスイッチ610自体は、データパケットの転送のみを担当する。図6に示すように、送信機630は宛先アドレス239.0.0.6を使用してマルチキャストデータパケットを送信する。マルチキャストアドレス指定ルールによれば、対応する宛先MACアドレスは01:00:5 E:00:00:06なので、ARPテーブルは図6に示すような内容となる。データパケットを受信した後、OpenFlowスイッチ610はOpenFlowの特性に従って、MACアドレスの下位16ビットが直接、転送テーブルの索引値として使用されるように、転送ルールをプログラムミングする。これは、マスク値0xffffと宛先MACアドレスの下位16ビットとをAND演算したのと同じ結果となる。ここで、宛先MACアドレスの下位16ビット(図6の丸で囲んだ部分)は0x0006なので、索引値は6である。したがって、転送は転送テーブルの6番目の項目に示されるポートから直接実行される。図6のOpenFlowスイッチ610、コントローラ620、および送信機(PC)630は、それぞれ以下の機能を実装することができる。
【0056】
OpenFlowスイッチ610
・OpenFlowスイッチ610は、FPGA(Field−Programmable Gate Array)を適用することにより、ルーティングクエリー実行エンジンの機能を実装することができる。OpenFlowはハードウェアFPGA上でのプログラミングをサポートしているため、転送テーブルの直接読み取り、転送テーブルのリダイレクトと読み取り、ビットマップで示されるポートからの直接転送といったデータプレーンの機能はすべて、高水準言語(例:C言語)を使用してプログラミングし、ハードウェア内に実装することが可能である。
・転送テーブルはOpenFlowスイッチ610内に格納されるが、SSLプロトコルを介してコントローラ620から制御することができる。
【0057】
コントローラ620:
・コントローラ620は、OpenFlowスイッチ610内に格納される転送テーブルに対して、追加、削除、修正、検索の各操作を実行する。
・コントローラ620は、アドレスの衝突が発生しないように、データセンターネットワーク内のサーバーにマルチキャストアドレスを割り当てる。これにより各サーバーのマルチキャストアドレスの一意性が確保され、その結果、スイッチの転送ルール内で複数一致が発生しないようになる(例えば、各宛先MACアドレスの下位16ビットは一意である)。
【0058】
PC630:
・PC630はまず、中間スイッチノード610に転送テーブルの項目を確立させるために、通信前にマルチキャスト要求メッセージを送信する。
・ユーザーはサーバー側のサービス開発を修正する必要はなく、最初のマルチキャストソケットに従ってプログラムを実行する。
setsockopt(socket,IPPROTO_IP,IP_ADD_MEMBERSHIP,...).
【0059】
(2)図7は、既存のイーサネット環境に本発明を実装する場合の概略図である。ホスト730−1〜730−nは、アドレス衝突を回避するために、未使用のマルチキャストアドレスを検出する役割を担う。アドレスの割り当てと転送テーブルの制御を行うOpenFlowコントローラ610のような機器はないので、主にスイッチ710−1〜710−mとPC730−1〜730−nがマルチキャスト転送プロセスを実装するために使用される。
【0060】
スイッチ710−1〜710−m:
・OpenFlowと同様に、FPGA(Field−Programmable Gate Array)を適用することにより、ルーティングクエリー実行エンジンの機能を実装することができる。市販のスイッチとFPGAを使用しているので、転送テーブルの直接読み取り、転送テーブルのリダイレクトと読み取り、ビットマップで示されるポートからの直接転送といったデータプレーンの機能を実行するために、専用ハードウェアプログラミング言語(例:VerilogやVHDL)を採用することができる。
【0061】
PC730−1〜730−n:
・アドレス割り当て用のコントローラはないので、ホスト730−1〜730−nが自機においてマルチキャストアドレスを検出し、自機のマルチキャストアドレスが使用されないことを確保する必要がある。
・ユーザーはサーバー側のサービス開発を修正する必要はなく、最初のマルチキャストソケットに従ってプログラムを実行する。
setsockopt(socket,IPPROTO_IP,IP_ADD_MEMBERSHIP,...).
【0062】
本開示の他の構成としては、方法実施例のステップおよび動作を実行するソフトウェアプログラムが挙げられる。以下ではまずその概要を述べ、次に詳細に説明する。具体的には、1つの実施例は、符号化されたコンピュータプログラム論理を格納するコンピュータ可読媒体を含むコンピュータプログラム製品である。コンピュータプログラム論理は、コンピューティング装置上で実行されると、上記の拡張可能なマルチキャスト転送方式を提供するための操作を提供する。コンピュータプログラム論理は、それがコンピューティングシステムの少なくとも1つのプロセッサ上で実行されたときに、当該少なくとも1つのプロセッサが本発明の実施例の動作(方法)を実行することを可能にする。本発明のこうした構成は、典型的には、光媒体(例:CD−ROM)、ソフトディスク、ハードディスク等のコンピュータ可読媒体上で提供または符号化されたソフトウェア、コードもしくはデータ構造体、1つ以上のROM、RAMもしくはPROMチップに格納されたファームウェアもしくはマイクロコード等のその他の媒体、特定用途向け集積回路(ASIC)、または単一もしくは複数モジュール上のダウンロード可能なソフトウェアイメージおよび共有データベース等として提供される。ソフトウェア、ハードウェア等の構成は、コンピューティング装置上にインストールされることにより、コンピューティング装置内の1つ以上のプロセッサを介して、本発明の実施例による技法を実行することができる。また、本発明のノードおよびホストは、ソフトウェアプロセスを、例えば他のエンティティ内の一連のデータ通信装置やコンピューティング装置と共に稼働させることによっても提供することができる。本発明のノードおよびホストはさらに、複数のデータ通信装置の複数のソフトウェアプロセスに分散させたり、一連の小型専用コンピュータ上で稼働するすべてのソフトウェアプロセスに分散させたり、あるいは単一のコンピュータ上で稼働するすべてのソフトウェアプロセスに分散させることができる。
【0063】
本発明の実施例は、ソフトウェアプログラム、1台のデータ処理装置上のソフトウェアおよびハードウェア、独立したソフトウェア、または独立した回路として実装できることは理解されるであろう。
【0064】
上記では、本発明を好適な実施例を使用して説明してきたが、本発明の適用範囲には、本発明の精神および原則に則ったあらゆる変更、置換、改良等も内包されることは理解されるであろう。したがって、本発明の範囲は上記の具体的な実施例に限定されず、付記した請求項によってのみ限定される。
【0065】
さらに、上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、これに限定されない。
【0066】
(付記1)
データセンター向けのマルチキャスト転送装置であって、
データセンター内のサーバーのマルチキャストアドレスが一連の連続マルチキャストアドレス内のアドレスであり、
着信マルチキャストデータパケットを受信して、当該着信マルチキャストデータパケットのヘッダから宛先MACアドレスを抽出するように構成されたラインカードと、
前記ラインカードによって抽出された宛先MACアドレスと所定のマスク項目との間で論理AND演算を実行して索引値を取得するように構成されたルーティングクエリーユニットと、
前記ルーティングクエリーユニットによって取得された索引値を使用して出力ポート系列を決定するように構成された転送ユニットと、
前記着信マルチキャストデータパケットを転送ユニットによって決定された出力ポート系列内に示されるポートから出力することである前記着信マルチキャストデータパケットのマルチキャスト転送を完了するために前記ラインカードをスケジューリングするように構成されたスイッチングファブリックユニットと
を備えることを特徴とするマルチキャスト転送装置。
【0067】
(付記2)
前記転送ユニットが、前記ルーティングクエリーユニットによって取得された索引値を転送テーブルの索引値として使用して、当該転送テーブル内の対応するテーブル項目に直接ヒットさせることにより、出力ポート系列を決定し、
あるいは、前記転送ユニットが、索引配列と転送テーブルとを含み、最初に、前記ルーティングクエリーユニットによって取得された索引値を当該索引配列の索引値として使用して、当該索引配列内の対応するテーブル項目に直接ヒットさせることにより当該転送テーブルの索引値を取得し、次に、当該索引配列がヒットした当該転送テーブルの索引値を使用して、転送テーブル内の対応するテーブル項目に直接ヒットさせることにより、出力ポート系列を決定する
ことを特徴とする付記1に記載のマルチキャスト転送装置。
【0068】
(付記3)
所定のマスク項目は、前記データセンター内のサーバー総数に基づいて設定されることを特徴とする付記1又は付記2に記載のマルチキャスト転送装置。
【0069】
(付記4)
前記データセンター内のサーバー総数が216以下の場合、一連の連続マルチキャストアドレスは下位16ビットのみが異なる一連の連続IPアドレスであり、所定のマスク項目は0xffffとして設定され、
前記データセンター内のサーバー総数が217以下の場合、一連の連続マルチキャストアドレスは下位17ビットのみが異なる一連の連続IPアドレスであり、所定のマスク項目は0x1ffffとして設定され、
前記データセンター内のサーバー総数が218以下の場合、一連の連続マルチキャストアドレスは下位18ビットのみが異なる一連の連続IPアドレスであり、所定のマスク項目は0x3ffffとして設定され、
前記データセンター内のサーバー総数が219以下の場合、一連の連続マルチキャストアドレスは下位19ビットのみが異なる一連の連続IPアドレスであり、所定のマスク項目は0x7ffffとして設定され、
前記データセンター内のサーバー総数が220以下の場合、一連の連続マルチキャストアドレスは下位20ビットのみが異なる一連の連続IPアドレスであり、所定のマスク項目は0xfffffとして設定される
ことを特徴とする付記3に記載のマルチキャスト転送装置。
【0070】
(付記5)
前記転送ユニットは、SRAM上に前記転送テーブルを格納するか、またはSRAM上に前記索引配列と前記転送テーブルとを格納することを特徴とする付記1から付記4の何れかに記載のマルチキャスト転送装置。
【0071】
(付記6)
データセンター向けのマルチキャスト転送方法であって、
前記データセンター内のサーバーのマルチキャストアドレスが一連の連続マルチキャストアドレスにおけるアドレスであり、
着信マルチキャストデータパケットを受信するステップと、
前記着信マルチキャストデータパケットのヘッダから宛先MACアドレスを抽出するステップと、
抽出された宛先MACアドレスと所定のマスク項目との間で論理AND演算を実行して索引値を取得するステップと、
取得された索引値を使用して出力ポート系列を決定するステップと、
決定された出力ポート系列内に示されるポートから前記着信マルチキャストデータパケットを出力するステップと
を含むことを特徴とするマルチキャスト転送方法。
【0072】
(付記7)
取得された索引値を使用して出力ポート系列を決定するステップにおいて、
取得された索引値を転送テーブルの索引値として使用して、当該転送テーブル内の対応するテーブル項目に直接ヒットさせることにより、出力ポート系列を決定し、
あるいは、最初に、取得された索引値を索引配列の索引値として使用して、当該索引配列内の対応するテーブル項目に直接ヒットさせることにより転送テーブルの索引値を取得し、次に、当該索引配列がヒットした当該転送テーブルの索引値を使用して、転送テーブル内の対応するテーブル項目に直接ヒットさせることにより、出力ポート系列を決定する
ことを特徴とする付記6に記載のマルチキャスト転送方法。
【0073】
(付記8)
所定のマスク項目は、前記データセンター内のサーバー総数に基づいて設定されることを特徴とする付記6又は付記7に記載のマルチキャスト転送方法。
【0074】
(付記9)
前記データセンター内のサーバー総数が216以下の場合、一連の連続マルチキャストアドレスは下位16ビットのみが異なる一連の連続IPアドレスであり、所定のマスク項目は0xffffとして設定され、
前記データセンター内のサーバー総数が217以下の場合、一連の連続マルチキャストアドレスは下位17ビットのみが異なる一連の連続IPアドレスであり、所定のマスク項目は0x1ffffとして設定され、
前記データセンター内のサーバー総数が218以下の場合、一連の連続マルチキャストアドレスは下位18ビットのみが異なる一連の連続IPアドレスであり、所定のマスク項目は0x3ffffとして設定され、
前記データセンター内のサーバー総数が219以下の場合、一連の連続マルチキャストアドレスは下位19ビットのみが異なる一連の連続IPアドレスであり、所定のマスク項目は0x7ffffとして設定され、
前記データセンター内のサーバー総数が220以下の場合、一連の連続マルチキャストアドレスは下位20ビットのみが異なる一連の連続IPアドレスであり、所定のマスク項目は0xfffffとして設定される
ことを特徴とする付記8に記載のマルチキャスト転送方法。
【0075】
(付記10)
SRAM上に前記転送テーブルを格納するか、またはSRAM上に前記索引配列と前記転送テーブルとを格納することを特徴とする付記6から付記9の何れかに記載のマルチキャスト転送方法。
【0076】
(付記11)
付記1から付記5の何れかに記載のマルチキャスト転送装置を含むことを特徴とするOpenFlowスイッチ。
【0077】
(付記12)
付記1から付記5の何れかに記載のマルチキャスト転送装置を含むことを特徴とするイーサネットスイッチ。
【符号の説明】
【0078】
110:ラインカード
112:入出力待ち行列
114:データパケットプロセッサ
120:ルーティングクエリー実行エンジン
122:ANDゲート回路
124:マスク項目
130:転送エンジン
132:転送テーブル
140:スイッチングファブリックユニット
1000:マルチキャスト転送装置
430:転送エンジン
432:転送テーブル
434:索引配列
4000:マルチキャスト転送装置
610:OpenFlowスイッチ
620:コントローラ
630:送信機
710−1:スイッチ


【特許請求の範囲】
【請求項1】
データセンター向けのマルチキャスト転送装置であって、
データセンター内のサーバーのマルチキャストアドレスが一連の連続マルチキャストアドレス内のアドレスであり、
着信マルチキャストデータパケットを受信して、当該着信マルチキャストデータパケットのヘッダから宛先MACアドレスを抽出するように構成されたラインカードと、
前記ラインカードによって抽出された宛先MACアドレスと所定のマスク項目との間で論理AND演算を実行して索引値を取得するように構成されたルーティングクエリーユニットと、
前記ルーティングクエリーユニットによって取得された索引値を使用して出力ポート系列を決定するように構成された転送ユニットと、
前記着信マルチキャストデータパケットを転送ユニットによって決定された出力ポート系列内に示されるポートから出力することである前記着信マルチキャストデータパケットのマルチキャスト転送を完了するために前記ラインカードをスケジューリングするように構成されたスイッチングファブリックユニットと
を備えることを特徴とするマルチキャスト転送装置。
【請求項2】
前記転送ユニットが、前記ルーティングクエリーユニットによって取得された索引値を転送テーブルの索引値として使用して、当該転送テーブル内の対応するテーブル項目に直接ヒットさせることにより、出力ポート系列を決定し、
あるいは、前記転送ユニットが、索引配列と転送テーブルとを含み、最初に、前記ルーティングクエリーユニットによって取得された索引値を当該索引配列の索引値として使用して、当該索引配列内の対応するテーブル項目に直接ヒットさせることにより当該転送テーブルの索引値を取得し、次に、当該索引配列がヒットした当該転送テーブルの索引値を使用して、転送テーブル内の対応するテーブル項目に直接ヒットさせることにより、出力ポート系列を決定する
ことを特徴とする請求項1に記載のマルチキャスト転送装置。
【請求項3】
所定のマスク項目は、前記データセンター内のサーバー総数に基づいて設定されることを特徴とする請求項1又は請求項2に記載のマルチキャスト転送装置。
【請求項4】
前記データセンター内のサーバー総数が216以下の場合、一連の連続マルチキャストアドレスは下位16ビットのみが異なる一連の連続IPアドレスであり、所定のマスク項目は0xffffとして設定され、
前記データセンター内のサーバー総数が217以下の場合、一連の連続マルチキャストアドレスは下位17ビットのみが異なる一連の連続IPアドレスであり、所定のマスク項目は0x1ffffとして設定され、
前記データセンター内のサーバー総数が218以下の場合、一連の連続マルチキャストアドレスは下位18ビットのみが異なる一連の連続IPアドレスであり、所定のマスク項目は0x3ffffとして設定され、
前記データセンター内のサーバー総数が219以下の場合、一連の連続マルチキャストアドレスは下位19ビットのみが異なる一連の連続IPアドレスであり、所定のマスク項目は0x7ffffとして設定され、
前記データセンター内のサーバー総数が220以下の場合、一連の連続マルチキャストアドレスは下位20ビットのみが異なる一連の連続IPアドレスであり、所定のマスク項目は0xfffffとして設定される
ことを特徴とする請求項3に記載のマルチキャスト転送装置。
【請求項5】
前記転送ユニットは、SRAM上に前記転送テーブルを格納するか、またはSRAM上に前記索引配列と前記転送テーブルとを格納することを特徴とする請求項1から請求項4の何れかに記載のマルチキャスト転送装置。
【請求項6】
データセンター向けのマルチキャスト転送方法であって、
前記データセンター内のサーバーのマルチキャストアドレスが一連の連続マルチキャストアドレスにおけるアドレスであり、
着信マルチキャストデータパケットを受信するステップと、
前記着信マルチキャストデータパケットのヘッダから宛先MACアドレスを抽出するステップと、
抽出された宛先MACアドレスと所定のマスク項目との間で論理AND演算を実行して索引値を取得するステップと、
取得された索引値を使用して出力ポート系列を決定するステップと、
決定された出力ポート系列内に示されるポートから前記着信マルチキャストデータパケットを出力するステップと
を含むことを特徴とするマルチキャスト転送方法。
【請求項7】
取得された索引値を使用して出力ポート系列を決定するステップにおいて、
取得された索引値を転送テーブルの索引値として使用して、当該転送テーブル内の対応するテーブル項目に直接ヒットさせることにより、出力ポート系列を決定し、
あるいは、最初に、取得された索引値を索引配列の索引値として使用して、当該索引配列内の対応するテーブル項目に直接ヒットさせることにより転送テーブルの索引値を取得し、次に、当該索引配列がヒットした当該転送テーブルの索引値を使用して、転送テーブル内の対応するテーブル項目に直接ヒットさせることにより、出力ポート系列を決定する
ことを特徴とする請求項6に記載のマルチキャスト転送方法。
【請求項8】
所定のマスク項目は、前記データセンター内のサーバー総数に基づいて設定されることを特徴とする請求項6又は請求項7に記載のマルチキャスト転送方法。
【請求項9】
請求項1から請求項5の何れかに記載のマルチキャスト転送装置を含むことを特徴とするOpenFlowスイッチ。
【請求項10】
請求項1から請求項5の何れかに記載のマルチキャスト転送装置を含むことを特徴とするイーサネットスイッチ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2013−55642(P2013−55642A)
【公開日】平成25年3月21日(2013.3.21)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−152239(P2012−152239)
【出願日】平成24年7月6日(2012.7.6)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
2.Linux
【出願人】(505418870)エヌイーシー(チャイナ)カンパニー, リミテッド (108)
【氏名又は名称原語表記】NEC(China)Co.,Ltd.
【Fターム(参考)】