(57)【特許請求の範囲】
【請求項１】
送信装置と、受信装置とがノード装置を介して接続され、前記送信装置を根とし前記受信装置を葉とする木状の配信経路に従ってパケットを転送するパケット転送システムにおけるマルチキャスト転送方法であって、
前記ノード装置が、
自装置の各物理ポート毎に、
転送するべきパケットを一時記憶しておくパケットバッファと、
Ｂｌｏｏｍフィルタを抽出するＢｌｏｏｍフィルタ抽出部と、
当該物理ポートを含む仮想ポートの識別情報をＢｌｏｏｍフィルタのために変換し、０であるビットをｄｏｎ’ｔ  ｃａｒｅ  ｂｉｔとし、エントリとして保持しておき、パケットヘッダから抽出されたＢｌｏｏｍフィルタに基づき、合致エントリを特定して出力するＴＣＡＭと、
前記パケットバッファに対して合致エントリに対応する物理ポートにパケットを出力させる指示を出力する合致判定部と
を備え、
前記送信装置が、
前記ノード装置の仮想ポートの識別情報によって構成される配信経路をパケットヘッダのＢｌｏｏｍフィルタにエンコードし、
前記ノード装置が、
転送するべきパケットを受信すると、すべての物理ポートの前記パケットバッファが、該パケットを一時記憶し、
各物理ポート毎に、
前記Ｂｌｏｏｍフィルタ抽出部が、前記パケットバッファに記憶されているパケットヘッダからＢｌｏｏｍフィルタを抽出して前記ＴＣＡＭへ出力し、
前記ＴＣＡＭが、前記パケットのヘッダのＢｌｏｏｍフィルタに当該ＴＣＡＭの各エントリが合致するか否かを判定し、判定結果を前記合致判定部へ出力し、
前記合致判定部が、該判定結果が合致であれば、前記パケットバッファに対して、当該物理ポートにパケットを出力させる指示を出力する
ことを特徴とするマルチキャスト転送方法。
【請求項２】
送信装置と、受信装置とがノード装置を介して接続され、前記送信装置を根とし前記受信装置を葉とする木状の配信経路に従ってパケットを転送するパケット転送システムであって、
前記送信装置は、
前記ノード装置の仮想ポートの識別情報によって構成される配信経路をパケットヘッダのＢｌｏｏｍフィルタにエンコードする手段を備え、
前記ノード装置は、
自装置の各物理ポート毎に、
転送するべきパケットを一時記憶しておくパケットバッファと、
Ｂｌｏｏｍフィルタを抽出するＢｌｏｏｍフィルタ抽出部と、
当該物理ポートを含む仮想ポートの識別情報をＢｌｏｏｍフィルタのために変換し、０であるビットをｄｏｎ’ｔ  ｃａｒｅ  ｂｉｔとし、エントリとして保持しておき、パケットヘッダから抽出されたＢｌｏｏｍフィルタに基づき、合致エントリを特定して出力するＴＣＡＭと、
前記パケットバッファに対して合致エントリに対応する物理ポートにパケットを出力させる指示を出力する合致判定部と
を備え、
転送するべきパケットを受信すると、すべての物理ポートの前記パケットバッファが、該パケットを一時記憶し、
各物理ポート毎に、
前記Ｂｌｏｏｍフィルタ抽出部が、前記パケットバッファに記憶されているパケットヘッダからＢｌｏｏｍフィルタを抽出して前記ＴＣＡＭへ出力し、
前記ＴＣＡＭが、前記パケットのヘッダのＢｌｏｏｍフィルタに当該ＴＣＡＭの各エントリが合致するか否かを判定し、判定結果を前記合致判定部へ出力し、
前記合致判定部が、該判定結果が合致であれば、前記パケットバッファに対して、当該物理ポートにパケットを出力させる指示を出力する
ことを特徴とするパケット転送システム。
【請求項３】
ノード装置の仮想ポートの識別情報によって構成される配信経路をパケットヘッダのＢｌｏｏｍフィルタにエンコードする手段を備える送信装置と、受信装置とがノード装置を介して接続され、前記送信装置を根とし前記受信装置を葉とする木状の配信経路に従ってパケットを転送するパケット転送システムにおけるノード装置であって、
自装置の各物理ポート毎に、
転送するべきパケットを一時記憶しておくパケットバッファと、
Ｂｌｏｏｍフィルタを抽出するＢｌｏｏｍフィルタ抽出部と、
当該物理ポートを含む仮想ポートの識別情報をＢｌｏｏｍフィルタのために変換し、０であるビットをｄｏｎ’ｔ  ｃａｒｅ  ｂｉｔとし、エントリとして保持しておき、パケットヘッダから抽出されたＢｌｏｏｍフィルタに基づき、合致エントリを特定して出力するＴＣＡＭと、
前記パケットバッファに対して合致エントリに対応する物理ポートにパケットを出力させる指示を出力する合致判定部と
を備え、
転送するべきパケットを受信すると、すべての物理ポートの前記パケットバッファが、該パケットを一時記憶し、
各物理ポート毎に、
前記Ｂｌｏｏｍフィルタ抽出部が、前記パケットバッファに記憶されているパケットヘッダからＢｌｏｏｍフィルタを抽出して前記ＴＣＡＭへ出力し、
前記ＴＣＡＭが、前記パケットのヘッダのＢｌｏｏｍフィルタに当該ＴＣＡＭの各エントリが合致するか否かを判定し、判定結果を前記合致判定部へ出力し、
前記合致判定部が、該判定結果が合致であれば、前記パケットバッファに対して、当該物理ポートにパケットを出力させる指示を出力する
ことを特徴とするノード装置。
【請求項４】
コンピュータを請求項３に記載のノード装置として機能させるためのパケット転送プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信装置と受信装置がノード装置を介して接続され、送信装置を根とし受信装置を葉とする木状の配信経路（配信木）に従ってパケットを転送するパケット通信システムにおけるマルチキャスト転送方法、パケット転送システム、ノード装置及びパケット転送プログラムに関する。
【背景技術】
【０００２】
従来から、パケット通信ネットワークにおいて、複数ホストに対してパケットを効率的に送信するマルチキャスト配信技術が知られている。マルチキャスト配信は、ノードが必要に応じて配信するべきパケットを複製し、複数のポートに出力するという動作を繰り返しながらパケットを転送することで、複数ホストに効率的にパケットを送信することができるものである。
【０００３】
ところで、マルチキャスト配信において、ノードには、パケットを適切な複数のポートに出力することが要求されるとともに、パケットが属するグループによって、出力ポートが異なることが多い。このような課題に対して、非特許文献１記載のＩＰ  ｍｕｌｔｉｃａｓｔでは、ノードはマルチキャストのための転送表を管理し、グループに対応するポートを転送表から検索し、出力ポートを決定している。また、非特許文献２記載のＦＲＭは、パケットヘッダにポート一覧をエンコードすることによって、上記の課題を解決している。この方式は、ツリー状の配信経路（配信木）を構成するノードの物理ポートを、非特許文献３記載のＢｌｏｏｍフィルタというデータ構造によってパケットヘッダにエンコードするものである。ノードは、パケットヘッダのＢｌｏｏｍフィルタに含まれている物理ポートのみにパケットを出力する。
【０００４】
しかし、Ｂｌｏｏｍフィルタにエンコードできる要素数には上限があり、これによって配信木サイズが制限される。なお、非特許文献２には、ＴＣＡＭ（Ternary Content-Addressable Memory）によってＢｌｏｏｍフィルタの包含判定が可能であることが記載されているが、その詳細な方法は記載されていない。このため、高速なパケット転送方法については記載されていない。また、非特許文献４に記載のＬＩＰＳＩＮは、複数の物理ポートを表す仮想的なポートを定義し、それをパケットヘッダのＢｌｏｏｍフィルタにエンコードすることで、Ｂｌｏｏｍフィルタにエンコードする要素数を削減する方法が提案されている。この方法は結果的に、エンコードされる配信木に含まれる物理ポート数を増大させ、より大きな配信木を利用可能とするものであり、仮想ポートを用いたときの高速なパケット転送方法については記載されていない。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Stephen Deering, "Host extensions for IP multicasting,"IETF Request for Comments 1112, August 1989.＜http://www.ietf.org/rfc/rfc1112.txt＞
【非特許文献２】S. Ratnasamy, A. Ermolinskiy, and S. Shenker, "Revisiting IP multicast," Proc. of SIGCOMM, 2006.＜http://conferences.sigcomm.org/sigcomm/2006/discussion/getpaper.php?paper_id=2＞
【非特許文献３】Michael Mitzenmacher and Eli Upfal, "確率と計算 -乱択アルゴリズムと確率的解析-,"共立出版, pp.150-154, 2009.
【非特許文献４】Petri Jokela, Andras Zahemszky, Christian Esteve Rothenberg, Somaya Arianfar and Pekka Nikander, "LIPSIN: line speed publish/subscribe inter-networking," Proc. of SIGCOMM, 2009.＜http://portal.acm.org/citation.cfm?id=1592568.1592592＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
このように、従来からパケットヘッダのＢｌｏｏｍフィルタに配信木を構成するポートをエンコードするマルチキャスト技術において、複数の物理ポートを仮想的な一つのポートとみなして、エンコードするポート数を削減し、より大きな（より多くの物理ポートを含む）配信木を表現する技術が提案されている。
【０００７】
しかしながら、従来のマルチキャスト技術において、ノードはソフトウェアによるパケット転送処理を行う必要があるため、高速にパケットを転送できないという問題がある。
【０００８】
本発明は、このような事情に鑑みてなされたもので、定数時間でパケット転送処理を完了することができるマルチキャスト転送方法、パケット転送システム、ノード装置及びパケット転送プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、送信装置と、受信装置とがノード装置を介して接続され、前記送信装置を根とし前記受信装置を葉とする木状の配信経路に従ってパケットを転送するパケット転送システムにおけるマルチキャスト転送方法であって、前記ノード装置が、自装置の物理ポートの識別情報をＴＣＡＭのエントリとして保持しておき、前記送信装置が、前記ノード装置の物理ポートの識別情報によって構成される配信経路をパケットヘッダのＢｌｏｏｍフィルタにエンコードし、前記ノード装置が、転送するべきパケットを受信すると、受信した前記パケットのヘッダのＢｌｏｏｍフィルタに前記ＴＣＡＭの各エントリが含まれるか否かを判定し、含まれると判定されたすべてのエントリに対応する物理ポートに対して前記パケットを出力することを特徴とする。
【００１０】
本発明は、送信装置と、受信装置とがノード装置を介して接続され、前記送信装置を根とし前記受信装置を葉とする木状の配信経路に従ってパケットを転送するパケット転送システムにおけるマルチキャスト転送方法であって、前記ノード装置が、自装置の各物理ポート毎にＴＣＡＭを備え、その物理ポートを含む仮想ポートの識別情報をＴＣＡＭのエントリとして保持しておき、前記送信装置が、前記ノード装置の仮想ポートの識別情報によって構成される配信経路をパケットヘッダのＢｌｏｏｍフィルタにエンコードし、前記ノード装置が、転送するべきパケットを受信すると、各物理ポート毎のＴＣＡＭにおいて、前記パケットのヘッダのＢｌｏｏｍフィルタに当該ＴＣＡＭの各エントリが含まれるか否かを判定し、エントリが１つでも含まれると判定されたすべてＴＣＡＭについて、対応する物理ポートにパケットを出力することを特徴とする。
【００１１】
本発明は、送信装置と、受信装置とがノード装置を介して接続され、前記送信装置を根とし前記受信装置を葉とする木状の配信経路に従ってパケットを転送するパケット転送システムであって、前記送信装置は、前記ノード装置の物理ポートの識別情報によって構成される配信経路をパケットヘッダのＢｌｏｏｍフィルタにエンコードする手段を備え、前記ノード装置は、自装置の物理ポートの識別情報をＴＣＡＭのエントリとして保持しておく手段と、転送するべきパケットを受信すると、受信した前記パケットのヘッダのＢｌｏｏｍフィルタに前記ＴＣＡＭの各エントリが含まれるか否かを判定し、含まれると判定されたすべてのエントリに対応する物理ポートに対して前記パケットを出力する手段とを備えることを特徴とする。
【００１２】
本発明は、送信装置と、受信装置とがノード装置を介して接続され、前記送信装置を根とし前記受信装置を葉とする木状の配信経路に従ってパケットを転送するパケット転送システムであって、前記送信装置は、前記ノード装置の仮想ポートの識別情報によって構成される配信経路をパケットヘッダのＢｌｏｏｍフィルタにエンコードする手段を備え、、前記ノード装置は、自装置の各物理ポート毎にＴＣＡＭを備え、その物理ポートを含む仮想ポートの識別情報をＴＣＡＭのエントリとして保持しておく手段と、転送するべきパケットを受信すると、各物理ポート毎のＴＣＡＭにおいて、前記パケットのヘッダのＢｌｏｏｍフィルタに当該ＴＣＡＭの各エントリが含まれるか否かを判定し、エントリが１つでも含まれると判定されたすべてＴＣＡＭについて、対応する物理ポートにパケットを出力する手段とを備えたことを特徴とする。
【００１３】
本発明は、ノード装置の物理ポートの識別情報によって構成される配信経路をパケットヘッダのＢｌｏｏｍフィルタにエンコードする手段を備える送信装置と、受信装置とがノード装置を介して接続され、前記送信装置を根とし前記受信装置を葉とする木状の配信経路に従ってパケットを転送するパケット転送システムにおけるノード装置であって、自装置の物理ポートの識別情報をＴＣＡＭのエントリとして保持しておく手段と、転送するべきパケットを受信すると、受信した前記パケットのヘッダのＢｌｏｏｍフィルタに前記ＴＣＡＭの各エントリが含まれるか否かを判定し、含まれると判定されたすべてのエントリに対応する物理ポートに対して前記パケットを出力する手段とを備えたことを特徴とする。
【００１４】
本発明は、ノード装置の仮想ポートの識別情報によって構成される配信経路をパケットヘッダのＢｌｏｏｍフィルタにエンコードする手段を備える送信装置と、受信装置とがノード装置を介して接続され、前記送信装置を根とし前記受信装置を葉とする木状の配信経路に従ってパケットを転送するパケット転送システムにおけるノード装置であって、自装置の各物理ポート毎にＴＣＡＭを備え、その物理ポートを含む仮想ポートの識別情報をＴＣＡＭのエントリとして保持しておく手段と、転送するべきパケットを受信すると、各物理ポート毎のＴＣＡＭにおいて、前記パケットのヘッダのＢｌｏｏｍフィルタに当該ＴＣＡＭの各エントリが含まれるか否かを判定し、エントリが１つでも含まれると判定されたすべてＴＣＡＭについて、対応する物理ポートにパケットを出力する手段とを備えたことを特徴とする。
【００１５】
本発明は、ノード装置の物理ポートの識別情報によって構成される配信経路をパケットヘッダのＢｌｏｏｍフィルタにエンコードする手段を備える送信装置と、受信装置とが、自装置の物理ポートの識別情報をＴＣＡＭのエントリとして保持しておく手段を備えるノード装置を介して接続され、前記送信装置を根とし前記受信装置を葉とする木状の配信経路に従ってパケットを転送するパケット転送システム上のコンピュータにパケット転送を行わせるパケット転送プログラムであって、転送するべきパケットを受信すると、受信した前記パケットのヘッダのＢｌｏｏｍフィルタに前記ＴＣＡＭの各エントリが含まれるか否かを判定し、含まれると判定されたすべてのエントリに対応する物理ポートに対して前記パケットを出力するステップを前記コンピュータに行わせることを特徴とする。
【００１６】
本発明は、ノード装置の仮想ポートの識別情報によって構成される配信経路をパケットヘッダのＢｌｏｏｍフィルタにエンコードする手段を備える送信装置と、受信装置とが、自装置の各物理ポート毎にＴＣＡＭを備え、その物理ポートを含む仮想ポートの識別情報をＴＣＡＭのエントリとして保持しておく手段を備えるノード装置を介して接続され、前記送信装置を根とし前記受信装置を葉とする木状の配信経路に従ってパケットを転送するパケット転送システム上のコンピュータにパケット転送を行わせるパケット転送プログラムであって、転送するべきパケットを受信すると、各物理ポート毎のＴＣＡＭにおいて、前記パケットのヘッダのＢｌｏｏｍフィルタに当該ＴＣＡＭの各エントリが含まれるか否かを判定し、エントリが１つでも含まれると判定されたすべてＴＣＡＭについて、対応する物理ポートにパケットを出力するステップを前記コンピュータに行わせることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、ノード装置の各物理ポートにＴＣＡＭを設置し、各ＴＣＡＭにその物理ポートを含むようなポートを登録することで、定数時間でのパケット転送処理を実現するようにしたため、ノード装置は物理ポート数、配信木の規模によらず、必ず定数時間でパケット転送処理を完了することができるという効果が得られる。
【図面の簡単な説明】
【００１８】
【図１】Ｂｌｏｏｍフィルタの構成を示す説明図である。
【図２】ＴＣＡＭ（Ternary Content-Addressable Memory）の構成を示す説明図である。
【図３】本発明の第１の実施形態の構成を示すブロック図である。
【図４】図３に示す装置の動作を示すシーケンス図である。
【図５】配信木の一例を示す説明図である。
【図６】Ｂｌｏｏｍフィルタの一例を示す説明図である。
【図７】ＴＣＡＭの一例を示す説明図である。
【図８】本発明の第２の実施形態の構成を示すブロック図である。
【図９】図８に示す装置の動作を示すシーケンス図である。
【図１０】仮想ポートｖＰｏｒｔ１を定義した一例を示す説明図である。
【図１１】Ｂｌｏｏｍフィルタの一例を示す説明図である。
【図１２】ＴＣＡＭの一例を示す説明図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照して、本発明の一実施形態によるパケット転送システムを説明する。まず、図１を参照してＢｌｏｏｍフィルタについて簡単に説明する。Ｂｌｏｏｍフィルタは、集合を表現するための効率的なデータ構造である。予め、ｋ個のハッシュ関数が与えられており、Ｂｌｏｏｍフィルタ長をｍビットとすると、ハッシュ関数の値域は（０、ｍ）となる。要素を追加するには、そのハッシュ値を求め、対応する位置のビットを１にする。検索するときには、要素のハッシュ値を求め、対応する位置のビットが１であるか否かを確認する。全て１であれば、要素が包含されていると考えられる。図１に示す例では、要素ｘとｙをフィルタに追加している。ｘは含まれていると判定され、ｚは含まれていないと判定されている。
【００２０】
図１において、左側に図示した３つのフィルタは、上段から下段へ要素ｘ，ｙを追加していく様子を示している。この追加操作では、対応するビットを立てていく。右側に図示した３つの検索処理では、左側下段で生成されたフィルタに対して、要素の包含判定を行う様子を示している。この包含判定では、読み取りのみを行い、フィルタのビットは変化しない。また、右側上段の処理では、ｘに対応するビットが立っているかをチェックしている。この例では、対応するビットが全て立っているので、ｘが含まれていると判定される。右側中段の処理では、ｚに対応するビットが立っているかをチェックしている。この例では、対応するビットに立っていないビット（最も左側のビット）があるので、ｚは含まれていないと判定される。右側下段の処理では、ｗに対応するビットが立っているかをチェックしている。この例では、対応するビットが全て立っているので、ｗが含まれていると判定される。この判定は誤りであるが、Ｂｌｏｏｍフィルタでは、このような誤りを許容することにより、フィルタサイズを削減している。なお、Ｂｌｏｏｍフィルタにはｗのような誤判定（false positive）のリスクを伴うが、ここでは無視するものとする。以下、要素ｘとｙを含むＢｌｏｏｍフィルタを｛ｘ，ｙ｝＿ｂｆのように表記することにする。
【００２１】
次に、図２を参照して、本発明において利用するＴＣＡＭ（Ternary Content-Addressable Memory）の動作を説明する。ＴＣＡＭは、予め設定された複数のエントリ（ビット列）を持つ。そして、入力ビット列が合致したエントリを出力する。ＴＣＡＭの特長は、ビット列の合致判定の柔軟性にある。完全に一致するエントリだけではなく、部分一致を判定できるために、各エントリのビット列にｄｏｎ’ｔ  ｃａｒｅ  ｂｉｔ（図２に示す「ｘ」で表現されたビット）を設定する。すると、それら以外のビットのみを用いて合致判定を行う。図２に示す例では、１１ｘｘ，ｘｘ１１，１ｘ１ｘの３つのエントリが登録されている。例えば、００００と１１ｘｘを比較するときには、左の２ビットのみを比較することになり、それぞれ００と１１であるため合致しない。１１１０と１１ｘｘを比較すると、左の２ビットはどちらも１１であるため合致することが判定可能である。
【００２２】
＜第１の実施形態＞
図３は、第１の実施形態におけるノードの装置構成を示すブロック図である。図３において、符号１、２、３はそれぞれパケットを出力するポート（Ｐｏｒｔ）である。符号４は、転送するべきパケットを一時記憶しておくパケットバッファである。符号５は、パケットのヘッダからＢｌｏｏｍフィルタを抽出するＢｌｏｏｍフィルタ抽出部である。符号６は、ＴＣＡＭであり、パケットヘッダから抽出されたＢｌｏｏｍフィルタに基づき、合致エントリを特定して出力する。符号７は、パケットバッファ４に対して合致エントリに対応する物理ポートにパケットを出力させる指示を出力する合致判定部である。
【００２３】
第１の実施形態においては、ＦＲＭというマルチキャスト方式を利用する。パケットヘッダのＢｌｏｏｍフィルタに、配信木を構成する物理ポートをエンコードし、仮想ポートは用いないものである。送信元は、予めノードの接続関係（ネットワークトポロジ）と物理ポートに関する情報を任意の方法により取得しておく。そして、配信開始前に受信者情報を取得すると、各受信者への経路を計算し、その経路に含まれるノードの物理ポートを列挙する。列挙したポートをＢｌｏｏｍフィルタによりエンコードし、ヘッダに搭載してパケットを出力する。図５に示す配信木では、ＮｏｄｅＡのＰｏｒｔ２とＰｏｒｔ３、ＮｏｄｅＢのＰｏｒｔ３を通過させるため、図６に示すように、それらをパケットヘッダのＢｌｏｏｍフィルタに追加する。
【００２４】
次に、図４を参照して、図３に示すＮｏｄｅＡの動作を説明する。経路上のＮｏｄｅＡはＰｏｒｔ１からパケットを受信する（ステップＳ１）と、受信したパケットをパケットバッファ４に一時記憶する（ステップＳ２）。Ｂｌｏｏｍフィルタ抽出部５は、パケットバッファ４に記憶されているパケットのヘッダからＢｌｏｏｍフィルタ（１０１１）を抽出し（ステップＳ３）、ＴＣＡＭ６へＢｌｏｏｍフィルタ（１０１１）を出力する（ステップＳ４）。ＴＣＡＭ６は、Ｂｌｏｏｍフィルタ抽出部５から出力されたＢｌｏｏｍフィルタ（１０１１）に基づき、合致エントリを特定し、特定した合致エントリ（２，３）を合致判定部７へ出力する（ステップＳ５）。合致判定部７は、パケットバッファ４に対して合致エントリに対応する物理ポートにパケットを出力させる指示を出力する（ステップＳ６）。これを受けて、パケットバッファ４は、一時記憶されているパケットを指示された物理ポート（ここでは、Ｐｏｒｔ２とＰｏｒｔ３）に出力する（ステップＳ７、Ｓ８）。
【００２５】
このように、経路上のノードは、パケットを受信すると、自身の物理ポートがＢｌｏｏｍフィルタに含まれているか否かを判定し、含まれていたポートのみにパケットを出力する。この方式におけるパケット転送処理は、複数のＢｌｏｏｍフィルタ包含判定を要し、ノードは自身の物理ポートをＢｌｏｏｍフィルタのために変換し（ｋ個のハッシュ値が指すビットを１にする）、ＴＣＡＭエントリとして登録しておく。このとき、０であるビットはｄｏｎ’ｔ  ｃａｒｅ  ｂｉｔとする。図５のＮｏｄｅＡは、図７のように、各物理ポートをＴＣＡＭに登録しておく。ノードはパケットを受信すると、ヘッダのＢｌｏｏｍフィルタをＴＣＡＭによって判定し、合致したすべてのエントリを得る。そして、ノードは合致エントリに対応するポートにパケットを出力する。図５−７に示す例では、ＮｏｄｅＡはＰｏｒｔ２、３にパケットを出力することになる。ＴＣＡＭの合致判定は定数時間であるため、ノードは定数時間ですべての出力ポートを決定することができ、複数のＢｌｏｏｍフィルタ包含判定を定数時間で完了することが可能となる。
【００２６】
＜第２の実施形態＞
図８は、第２の実施形態におけるノードの装置構成を示すブロック図である。図８において、符号１、２、３はそれぞれパケットを出力するポート（Ｐｏｒｔ）である。符号４１、４２、４３は、転送するべきパケットを一時記憶しておくパケットバッファである。符号５１、５２、５３は、Ｂｌｏｏｍフィルタを抽出するＢｌｏｏｍフィルタ抽出部である。符号６１、６２、６３は、ＴＣＡＭであり、パケットヘッダから抽出されたＢｌｏｏｍフィルタに基づき、合致エントリを特定して出力する。符号７１、７２、７３は、パケットバッファ４に対して合致エントリに対応する物理ポートにパケットを出力させる指示を出力する合致判定部である。
【００２７】
第２の実施形態では、仮想ポートを用いるＬＩＰＳＩＮというマルチキャスト方式を利用する。図５に示す配信木におけるＮｏｄｅＡは図１０に示すように、仮想ポートｖＰｏｒｔ１が定義されており、ｖＰｏｒｔ１は、Ｐｏｒｔ２とＰｏｒｔ３を表す。このため、パケットヘッダのＢｌｏｏｍフィルタは、図１１に示すＢｌｏｏｍフィルタとなる（ＮｏｄｅＡのＰｏｒｔ２とＰｏｒｔ３の代わりに、ｖＰｏｒｔ１を含んでいる）。なお、実際にはより多くの仮想ポートが定義されることになるが、ここでは簡単のため一つのみ示している。
【００２８】
各物理ポート（Ｐｏｒｔ１、２、３）は、それぞれＴＣＡＭ６１、６２、６３を備えている。そして、その物理ポートを含む仮想ポートを、それぞれのＴＣＡＭ６１、６２、６３に登録する。仮想ポートをＢｌｏｏｍフィルタのために変換し、０であるビットをｄｏｎ’ｔ  ｃａｒｅ  ｂｉｔとして、ＴＣＡＭエントリに登録する。図１２は、ＮｏｄｅＡの物理ポートＰｏｒｔ２に設置されたＴＣＡＭの例である。このＴＣＡＭにはｖＰｏｒｔ１のエントリが登録される。ｖＰｏｒｔ１はＰｏｒｔ２とＰｏｒｔ３を含むため、Ｐｏｒｔ３に設置されたＴＣＡＭにもｖＰｏｒｔ１のエントリが登録されることになる。
【００２９】
次に、図９を参照して、図８に示すＮｏｄｅＡの動作を説明する。なお、図９においては、Ｐｏｒｔ２のパケットバッファ４２、Ｂｌｏｏｍフィルタ抽出部５２、ＴＣＡＭ６２、合致判定部７２のみ図示しているが、Ｐｏｒｔ１、Ｐｏｒｔ３のパケットバッファ４１、４３、Ｂｌｏｏｍフィルタ抽出部５１、５３、ＴＣＡＭ６１、６３、合致判定部７１、７３の動作についても同様である。
【００３０】
経路上のＮｏｄｅＡはＰｏｒｔ１からパケットを受信する（ステップＳ１１）と、受信したパケットをパケットバッファ４２に一時記憶する（ステップＳ１２）。Ｂｌｏｏｍフィルタ抽出部５２は、パケットバッファ４２に記憶されているパケットヘッダからＢｌｏｏｍフィルタ（１００１）を抽出し（ステップＳ１３）、ＴＣＡＭ６２へＢｌｏｏｍフィルタ（１００１）を出力する（ステップＳ１４）。ＴＣＡＭ６２は、Ｂｌｏｏｍフィルタ抽出部５２から出力されたＢｌｏｏｍフィルタ（１００１）に基づき、合致するか否かを判定して、判定結果を合致判定部７２へ出力する（ステップＳ１５）。合致判定部７２は、判定結果が「合致」であれば、パケットバッファ４２に対して物理ポートにパケットを出力させる指示を出力する（ステップＳ１６）。これを受けて、パケットバッファ４２は、一時記憶されているパケットを指示された物理ポート（ここでは、Ｐｏｒｔ２）に出力する（ステップＳ１７）。一方、判定結果が「合致」でなければ、合致判定部７２は、パケットバッファ４２に対して、パケットの破棄を指示する。これを受けて、パケットバッファ４２は、一時記憶しておいたパケットを破棄する。
【００３１】
このように、ノードはパケットを受信すると、ヘッダのＢｌｏｏｍフィルタをすべての物理ポートのＴＣＡＭに並列転送し、各物理ポートは、並列にＴＣＡＭの判定を行い、ひとつでも合致するエントリがあれば、そのポートにパケットを出力する。各物理ポートにＴＣＡＭを備え、並列に判定を行うことで、ノードは定数時間で出力ポートを決定できる。第１の実施形態のノード装置をそのまま用いて仮想ポートを適用すると、定数時間でパケットを出力すべき仮想ポートを得ることはできるが、仮想ポートから物理ポートへの変換は定数時間とならないため（合致する仮想ポート数は任意である）、転送処理全体も定数時間ではなくなってしまうが、第２の実施形態のように、各物理ポートにＴＣＡＭを備え、並列に判定を行うことで、ノードは定数時間で出力ポートを決定できる。これにより、ノードは物理ポート数や登録されている仮想ポート数、配信木の規模によらず、必ず定数時間でパケット転送処理を完了できる。
【００３２】
以上説明したように、１つの送信装置と１つ以上の受信装置が１つ以上のノード装置を介して接続され、送信装置を根とし受信装置を葉とする木状の配信経路（配信木）に従ってパケットを転送するパケット通信システムにおいて、ノード装置が、自装置の物理ポートの識別情報をＴＣＡＭのエントリとして保持しておき、送信装置が、ノード装置の物理ポートの識別情報によって構成される配信木をパケットヘッダのＢｌｏｏｍフィルタにエンコードし、ノード装置が、パケットを受信すると、パケットヘッダのＢｌｏｏｍフィルタにＴＣＡＭの各エントリが含まれるかどうかを判定し、含まれると判定されたすべてのエントリについて、対応する物理ポートにパケットを出力するようにしたため、ノード装置が、物理ポートの数や登録されている仮想ポートの数、配信木の規模によらず、必ず定数時間でパケット転送処理を完了することができる。
【００３３】
また、ノード装置が、自装置の各物理ポート毎にＴＣＡＭを備え、その物理ポートを含む仮想ポートの識別情報をＴＣＡＭのエントリとして保持しておき、送信装置が、ノード装置の仮想ポートの識別情報によって構成される配信木をパケットヘッダのＢｌｏｏｍフィルタにエンコードし、ノード装置が、パケットを受信すると、各物理ポート毎のＴＣＡＭにおいて、パケットヘッダのＢｌｏｏｍフィルタに当該ＴＣＡＭの各エントリが含まれるかどうかを判定し、エントリが１つでも含まれると判定されたすべてＴＣＡＭについて、対応する物理ポートにパケットを出力するようにしたため、同様に、ノード装置が、物理ポートの数や登録されている仮想ポートの数、配信木の規模によらず、必ず定数時間でパケット転送処理を完了することができる。
【００３４】
なお、図１における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりマルチキャストを実現するためのパケット転送処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００３５】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【産業上の利用可能性】
【００３６】
１つの送信装置と１つ以上の受信装置が１つ以上のノード装置を介して接続され、送信装置を根とし受信装置を葉とする木状の配信経路（配信木）に従ってパケットを転送することが不可欠な用途にも適用できる。
【符号の説明】
【００３７】
１、２、３・・・Ｐｏｒｔ（ポート）、４、４１、４２、４３・・・パケットバッファ、５、５１、５２、５３・・・Ｂｌｏｏｍフィルタ抽出部、６、６１、６２、６３・・・ＴＣＡＭ、７、７１、７２、７３・・・合致判定部
【図１】
0005424988.tif 000002
【図２】
0005424988.tif 000003
【図３】
0005424988.tif 000004
【図４】
0005424988.tif 000005
【図５】
0005424988.tif 000006
【図６】
0005424988.tif 000007
【図７】
0005424988.tif 000008
【図８】
0005424988.tif 000009
【図９】
0005424988.tif 000010
【図１０】
0005424988.tif 000011
【図１１】
0005424988.tif 000012
【図１２】
0005424988.tif 000013