JP2000115243A - パケット中継装置およびマルチキャスト高速化方式 - Google Patents

パケット中継装置およびマルチキャスト高速化方式

Info

Publication number
JP2000115243A
JP2000115243A JP28220598A JP28220598A JP2000115243A JP 2000115243 A JP2000115243 A JP 2000115243A JP 28220598 A JP28220598 A JP 28220598A JP 28220598 A JP28220598 A JP 28220598A JP 2000115243 A JP2000115243 A JP 2000115243A
Authority
JP
Japan
Prior art keywords
address
packet
node
bit
search
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP28220598A
Other languages
English (en)
Other versions
JP2000115243A5 (ja
JP3735471B2 (ja
Inventor
Shinichi Akaha
真一 赤羽
Kazuo Sukai
和雄 須貝
Takeshi Aimoto
毅 相本
Nobuhito Matsuyama
信仁 松山
Yoshito Sako
義人 左古
Hiroshi Sekino
浩 関野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Hitachi Information Technology Co Ltd
Original Assignee
Hitachi Ltd
Hitachi Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd, Hitachi Information Technology Co Ltd filed Critical Hitachi Ltd
Priority to JP28220598A priority Critical patent/JP3735471B2/ja
Priority to CA002281018A priority patent/CA2281018C/en
Priority to EP19990117151 priority patent/EP0993144B1/en
Priority to DE69942850T priority patent/DE69942850D1/de
Priority to US09/389,301 priority patent/US6778532B1/en
Publication of JP2000115243A publication Critical patent/JP2000115243A/ja
Publication of JP2000115243A5 publication Critical patent/JP2000115243A5/ja
Application granted granted Critical
Publication of JP3735471B2 publication Critical patent/JP3735471B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【課題】 受信したマルチキャストパケットを次に転送
すべき送信ポート情報を検索するマルチキャスト経路検
索を高速に行う方式を提案する。 【解決手段】宛先アドレスと送信元アドレスをこの順に
連結して経路アドレスとし、上記経路アドレスのビット
パターンに対応した2分木検索木の一つのノードとその
直下のp段分のノードの計(2のp乗−1)個のノードを
一つの2のp乗分木ノードにして、2のp乗分木を構成
してメモリ300に格納し、受信したマルチキャストパ
ケットの宛先アドレスと送信元アドレスをこの順に連結
した経路アドレスを、一つのノードで1ビットではな
く、連続するpビットを同時に検査し、上記連続するビ
ットの値によってメモリ300に格納された検索木を検
索することにより、エントリ数に依存せず、かつ、最
大、(検索のキーのビット数÷p)回ノードを渡るだけで
検索処理を終了することができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数のネットワー
クを相互に接続し、パケットを中継するパケット中継装
置、特にマルチキャストパケットの次転送先検索方式に
関する。
【0002】
【従来の技術】ユーザの増加に伴い、インターネットを
流れるトラフィック(パケット)が急増し、インターネッ
トが大規模化・高速化している。また、現在のインター
ネット(Internet Protocolによるパケット通信網:以下
IPネットワーク)では、従来のデータ系の通信だけで
なく、インターネット電話やインターネット放送などの
リアルタイム系アプリケーション(用途)も登場し、音声
通信機能の取り込みや、放送機能の取り込みが進んでい
る。このような状況下において、IPネットワークにお
けるIPマルチキャスト技術は、インターネットにおけ
る動画や音声やコンテンツなどのマルチメディアデータ
の配信に有効な技術として期待されている。また、IP
ネットワークを構成するパケット中継装置(ルータ)にお
けるIPマルチキャスト技術のサポート、IPマルチキ
ャスト技術の高速化が課題となっている。
【0003】ルータは、ある端末から特定の一つの端末
にパケットを送信するユニキャスト通信の場合、受信パ
ケットのヘッダ内の宛先IPアドレスに対応する経路情
報(次に転送すべきルータあるいは端末のIPアドレ
ス、およびルータ内の送信ポート番号)をルーティング
テーブルから検索し、パケットを送信する。以下、ユニ
キャストの経路検索について簡単に説明する。
【0004】ルーティングテーブルは、宛先IPアドレ
スに対応するサブネットワークアドレスとサブネットマ
スク長および、上記の経路情報から構成される情報群を
複数保持している。以下では、これらの情報群をエント
リと呼ぶ。ここでサブネットワークとは、例えば宛先の
企業網の様な端末の部分集合を示し、サブネットワーク
アドレスは部分集合のIPアドレスをアドレス情報とし
て結合したアドレス群である。また、サブネットマスク
長はIPアドレスのうち上位何ビットが上記のサブネッ
トワークの識別子であるかを示す値である。ルータは、
受信パケットの宛先IPアドレスにエントリ内のサブネ
ットマスク長だけ上位ビットから有効なマスクをかけた
ものとエントリのサブネットワークアドレスを比較し
て、一致するエントリの経路情報を検索結果とする。こ
のようにサブネットワーク単位でエントリを構成するこ
とによりルーティングテーブルのエントリ数を大幅に縮
小し、検索処理の効率化を図っている。複数のエントリ
に一致した場合は、サブネットマスク長が最長のエント
リの経路情報を検索結果とする。以下では、この検索方
式を最長一致検索と呼ぶ。
【0005】ある端末から特定の複数の端末にパケット
を送信するマルチキャスト通信の場合、ルーティングテ
ーブルの各エントリは、送信元サブネットアドレスとア
ドレスマスクとマルチキャストグループアドレス、およ
び経路情報から構成される。マルチキャスト・グループ
アドレスとは、送信元がパケットを送信すべき複数の宛
先の集合(以下、マルチキャストグループと呼ぶ。)に対
して割り当てられる識別子である。ルータは、受信パケ
ットのヘッダ内の送信元IPアドレスと受信パケットの
ヘッダ内の宛先IPアドレス部に入っているマルチキャ
スト・グループアドレスをキーにして、ルーティングテ
ーブルを検索する。マルチキャストの場合、検索の結果
一致したエントリの経路情報は複数の送信ポート番号か
ら構成される。ルータはこの送信ポート番号に従い、受
信パケットをコピー処理して、上記特定のマルチキャス
トグループ向けに出力する。これらの検索処理やコピー
処理の負荷が重く、マルチキャスト通信の性能が低い
と、マルチキャストパケットを転送処理するルータ全体
の性能低下の要因となってしまう。このため、通常のユ
ニキャストパケット中継処理と同様に高速化が要求され
ている。
【0006】ルータの負荷分散処理方式による高速化に
関しては、例えば特開平6−197111号公報(以下
「従来技術1」という。)に言及がある。従来技術1で
は、負荷分散処理方式により、高速中継可能なルータを
実現することを目的としている。パケット中継を行うパ
ケット中継モジュールがバスにより複数接続され、各々
が同じくバスに接続された管理部からのルーティングテ
ーブル情報に基づいてパケット中継機能を行う。パケッ
ト中継モジュールの増設により、性能向上ができる。さ
らに、従来技術1のパケット中継モジュールは、受信パ
ケットのヘッダを抽出し、パケット転送先の検索処理を
行うルーティング処理部と、受信パケットをメモリに格
納し、上記解析結果に基づいて対応する他のパケット中
継モジュールに受信パケットを転送する転送処理部を備
え、別々の処理部で機能分担処理させることでパケット
中継処理の高速化を図っている。しかし、従来技術1で
は、マルチキャストパケットの中継処理の高速化に関し
ては記載がない。
【0007】ルータにおけるマルチキャストパケットの
宛先の検索(以下、マルチキャスト経路検索と呼ぶ)に
関しては、例えば、(以下「従来技術2」という。)に記
載されている。従来技術2では、ルーティングテーブル
検索をハッシュ検索方式を用いることにより高速化して
いる。ルーティングテーブル情報をそのまま検索する
と、対象となる宛先IPアドレスが増加しテーブルのエ
ントリが増加するに従って、検索処理にかかる検索時間
が著しく増加してしまう。従来技術2は、ハッシュ値を
計算するためのキーとして受信パケット内の送信元IP
アドレスを使用しており、ハッシュ値が等しい宛先IP
アドレスに対するエントリをグループ化したルーティン
グテーブル群を備える。
【0008】マルチキャストパケット受信時には、ルー
タ内部の経路検索処理部は、受信パケットの送信元IP
アドレスからハッシュ値を計算し、該ハッシュ値に対応
する上記ルーティングテーブルを検索する。ハッシュ値
に従ってルーティングテーブルの検索範囲を限定するこ
とで経路検索の高速化を図っている。
【0009】一方、経路検索方式としてRadishアルゴリ
ズムが知られている。Radishアルゴリズムに関しては、
例えば"A technical memo of WIDE project, Kazuhiko
Yamamoto, Akira Kato and Akira Watanabe,Radish−A
Simple Table Structure forCIDR"(以下「従来技術
3」という。)に記載されている。
【0010】このRadish方式のルーティングテーブル
は、エントリを2分木構造に構成し、検索を高速化して
いる。具体的には、IPアドレス形式の最上位ビットを
ルート(木構造の根)側とする左右にポインタを持つ複数
の頂点(ノード)をポインタでつないだ2分木構造の各ノ
ードにエントリを割り付けて構成している。この2分木
構造を検索する際には、受信パケットの宛先IPアドレ
スを上位ビットから1ビットづつ検査し、検査されたビ
ットの値(0または1)に従って各ノードの左右のどちら
かのポインタを選択して次のノードに移動する。このよ
うな検索により目的のエントリが割り付けられたノード
にたどり着くことができる。
【0011】従来技術3は、宛先IPアドレスを1ビッ
トずつ検査して2分木を辿るため、ルーティングテーブ
ルのエントリが多くなっても、高々宛先IPアドレスの
ビット数回の検査を行う(2分木ノードを辿る)ことで検
索を終了することができる。
【0012】上記のユニキャストの経路検索の説明で述
べた、マスク長の異なる複数のエントリにマッチする場
合、従来技術3のRadish方式のルーティングテーブルの
検索においては、木を辿る途中で複数個のエントリにマ
ッチすることになる。エントリがマッチする度にそのエ
ントリ内の経路情報の候補を保持しておき、新たにエン
トリにマッチした場合には、以前の候補を新しい候補に
更新してゆくことで最長一致検索仕様を満たすことがで
きる。
【0013】また、従来技術3のRadish方式を適用した
ユニキャスト経路検索を高速に行う技術として、「IP
ルーチングテーブルのハードウェアによる高速検索方
式」 1998年電子情報通信学会通信ソサイエティ大会
(以下「従来技術4」という。)がある。従来技術4は
次ノード選択回路、ネットワークアドレス比較回路、検
索終了判定回路からなる。ここでネットワークアドレス
比較回路は、Radish方式で構成した2分木から不要な枝
を取り除いた場合、ノード自体が保持するネットワーク
アドレスと、受信パケットの宛先IPアドレスにノード
が保持するマスクをかけたものを比較することによっ
て、削除された枝において検査されるべきビット(1ま
たは複数の連続したビット)の値を一度に検査するため
の回路であり、この比較の結果が一致の場合は正しいノ
ードに到達したことを意味し、不一致の場合は正しくな
いノードに到達したことを意味する。
【0014】従来技術4では、次ノードの選択と上記で
説明したネットワークアドレス比較処理を並列処理し、
検索処理の高速化を図っている。
【0015】また、Radish方式と同様なPatricia Trie
検索アルゴリズムによるユニキャスト経路検索を高速に
行う技術として、「高速IPアドレス解決H/Wエンジ
ンの開発」 1998年電子情報通信学会通信ソサイエティ
大会(以下「従来技術5」という。)がある。従来技術
5も従来技術4と同様にして木構造の検索の各処理を並
列化して高速化を図っている。
【0016】従来技術5のPatricia Trie検索アルゴリ
ズムによるユニキャスト経路検索をさらに高速化する技
術として、「マルチウェイ化ツリーによるIPルーチン
グテーブルの高速検索方式」 1998年電子情報通信学会
通信ソサイエティ大会(従来技術6)がある。従来技術6
ではPatricia Trieアルゴリズムによる2分木構造を2
のN乗分木に構成することにより、高速化を図る旨が記
載されている。
【0017】また、上記のユニキャスト経路検索におい
て最長一致検索を高速に行う技術として、特開平10−
222535号公報(以下「従来技術7」という。)が
ある。従来技術7では、従来技術3のRadish方式とは異
なる方法で2分木を構成し、その2分木を検索するハー
ドウェアで構成されたデータ検索回路を用いて最長一致
検索を高速に行っている。従来技術7の2分木の具体的
な検索方法は、受信パケットの宛先IPアドレスにノー
ド内に保持されているサブネットマスクをかけたもの
と、ノードのサブネットワークアドレスを比較し、比較
の結果一致すればこのノードの経路情報を検索結果とし
て検索を終了し、不一致の場合は、マスクされた宛先ア
ドレスとノードのサブネットワークアドレスを0以上の
整数とみなして大小比較を行い、その大小に従って2分
木の左右の枝を辿るというものである。この際、マスク
長が長いエントリから順に2分木の上部に配置しておく
と、その順に検索が行われるため、最長一致検索が実現
できる旨が記載されている。なお、上記では、マスク長
は上位何ビットがサブネットワークアドレスとして有効
かを示す値である、という定義に従って従来技術7の内
容を説明したが、従来技術7の明細書中では、マスク長
を、IPアドレスのサブネットワークアドレス部分では
ない下位のビット数の長さとして定義しており、また、
最長一致検索方式をベストマッチ方式と呼んでおり、上
記ベストマッチ方式は、マスク長が最短のものを検索結
果として採用する。
【0018】
【発明が解決しようとする課題】現在、IPマルチキャ
スト通信は、インターネット上に仮想的に構築されたマ
ルチキャストネットワークにおいて限定的に利用されて
いるにすぎない。そのネットワーク規模もそれほど大き
くなく、マルチキャスト通信の検索処理や転送処理は、
ルータの転送性能劣化の原因にはなっていない。しか
し、今後、インターネットにおけるマルチキャスト機能
を利用したアプリケーションが広く普及すると、それに
伴い、ルータが保持するマルチキャストルーティングテ
ーブルのエントリ数が多くなる。従って、ルーティング
テーブルの検索処理の高速化をエントリ数の多い条件下
で実現することが求められている。
【0019】従来技術2ではハッシュ方式のマルチキャ
スト経路検索方式が記載されているが、ハッシュ方式の
場合、ハッシュ値の算出法はエントリの数にはよらず一
定であり、エントリの増加に応じて柔軟にルーティング
テーブル群の数を増やすことができない。従って、エン
トリが増加した場合、分割されるルーティングテーブル
自体が長くなり、平均検索時間が長くなるという問題が
ある。
【0020】この点、上述のRadishアルゴリズムを用い
てユニキャストの経路検索を行う方法によれば、ハッシ
ュ方式に比べて、ルーティングテーブルのエントリ数が
増大しても、検索処理時間が増大しないという利点があ
る。
【0021】しかし、従来技術3乃至従来技術5には、
Radishアルゴリズム(あるいはPatricia Trieアルゴリズ
ム)を用いたマルチキャストの経路検索に関する記載は
ない。
【0022】また、従来技術6では、2分木構造を2の
N乗分木に構成することにより、最大検索時間を1/N
に短縮する旨が記載されているが、マルチキャスト経路
検索に関しては言及していない。
【0023】また、従来技術7にもマルチキャストの経
路検索を高速化する方式については言及されていない。
さらに、従来技術3の2分木の構造が、登録されるエン
トリによって一意に決定し、その最大検索時間は検索に
用いるキーのビット数によって決まるのに対し、従来技
術7の2分木の構造は、その作り方によっては、ノード
が一方向に長くつながる木ができてしまい、平均検索時
間が長くなる場合がある。このような木が構成されるの
を防ぐには、2分木が均等に広がるように構成するアル
ゴリズムが必要であるが、そのアルゴリズムについては
述べられていない。また、従来技術7の2分木構造を構
成する際、マスク長が長いエントリから順に2分木の上
部に配置しておくと、その順に検索が行われるため、最
長一致検索処理が実現できると述べているが、マスク長
が異なるノードのつなぎ方に関しては詳細は述べられて
いない。また、従来技術3のように検査ビットの値に従
って2分木の左右の枝を辿るのではなく、ノードにおけ
る大小比較の結果、その大小に従って2分木の左右の枝
を辿るため、2のp乗分木方式を実現することができな
い。
【0024】そこで、本発明の第1の目的は、マルチキ
ャストパケットの中継処理に関し、マルチキャストパケ
ット経路検索処理の高速化の手段を提案することであ
る。
【0025】また、本発明の第2の目的は、Radishアル
ゴリズムによる2分木検索方式をマルチキャスト経路検
索に適用する手段を提案することである。
【0026】また、本発明の第3の目的は、検索のキー
のビット数が大きい場合でも、ノードを辿る回数がビッ
ト数より少なく、最大検索時間が少ない経路検索方式
を、マルチキャスト経路検索方式に適用する手段を提案
することである。
【0027】本発明の第4の目的は、Radishアルゴリズ
ムによるマルチキャストルーティングテーブルの2分木
検索方式に従って経路検索処理を高速に行う回路の構成
を提案することである。
【0028】
【課題を解決するための手段】上記の目的を達成するた
めに、本発明では、以下に述べる方式および手段を持
つ。
【0029】パケットの送信元の端末のIPアドレス
(送信元IPアドレス)と、パケットを送信すべき端末が
属するマルチキャスト・グループのグループアドレス
(宛先マルチキャスト・グループアドレス)とを検索のキ
ーとして用いるマルチキャスト経路検索において、送信
元IPアドレスと宛先マルチキャスト・グループアドレ
スを連結して一つの経路アドレスとして定義し、この経
路アドレスのビットパターンに従い、マルチキャストル
ーティングテーブルを2分木に構成し、受信したマルチ
キャストパケットの送信元IPアドレスと宛先マルチキ
ャスト・グループアドレスとを連結した経路アドレスの
上位ビットから1ビットづつ検査し、上記検査ビットの
値によって2分木構造をもつ検索木を検索する。
【0030】また、上記の経路アドレスに関し、送信元
IPアドレスと宛先マルチキャスト・グループアドレス
の連結順を、宛先マルチキャスト・グループアドレス、
送信元IPアドレスの順にして経路アドレスを定義し、
この経路アドレスのビットパターンに従い、マルチキャ
ストルーティングテーブルを2分木に構成する。
【0031】また、2分木方式の検索木を構成する各ノ
ードを、2分木ノードから4分木、8分木、あるいは一
般に2のp乗と、枝別れの数を2のべき乗で増やすこと
で、マルチキャストルーティングテーブルを2のp乗分
木構造に構成し、受信したマルチキャストパケットの宛
先マルチキャスト・グループアドレスと送信元IPアド
レスをこの順に連結した経路アドレスを、一つのノード
で1ビットではなく、連続する2ビット、3ビット、あ
るいは一般にpビットを同時に検査し、上記連続するビ
ットの値によって2のp乗分木構造を持つマルチキャス
トルーティングテーブルを検索する。
【0032】また、上記の経路アドレスとして、マルチ
キャスト・グループアドレス自体ではなく、マルチキャ
スト・グループアドレスの下位28ビットのマルチキャ
スト・グループIDと送信元IPアドレスをこの順に連
結したものを採用し、この経路アドレスのビットパター
ンに従い、マルチキャストルーティングテーブルを2分
木あるいは2のp乗分木に構成する。
【0033】また、検索木を構成するメモリ量を減らす
ために、2のp乗分木を構成する際、一つの2分木ノー
ドと、その直下につながる(p−1)段分の合計(2のp
乗−1)個分の2分木ノードを一つの2のp乗分木ノー
ドにまとめ、まとめられる最下段の2の(p−1)乗個の
2分木ノードに、それより上段のノードに割り付けられ
ていたエントリデータを埋め込むことにより、2のp乗
分木ノードを2分木ノードを2の(p−1)乗個分併せた
形で構成するようにし、さらに、2分木を複数個併せる
ときに、共通なノードデータの要素を一つだけもつよう
にする。
【0034】また、2分木ノードを2のp乗分木にまと
める際、2のp乗分木ノードのメモリ量削減と、各2の
p乗分木ノードのメモリ量の統一のために、送信ポート
情報を検索木のノードから分離して記憶手段の別領域に
格納し、検索木のノードには上記送信ポート情報の格納
領域へのポインタを保持することで、エントリが割り当
てられている2分木ノードと、エントリが割り当てられ
ていない2分木ノードのデータ量を同じにし、これらの
2分木ノードをまとめて2のp乗分木ノードを構成す
る。
【0035】また、経路アドレスの検査すべきビット位
置を示すマスク長に関し、各2のp乗分木ノードにその
ノード自身のマスク長を格納するのではなく、そのノー
ドの直下につながるノードのマスク長と格納することに
より、経路検索処理を行うために検索木データが格納さ
れている記憶手段からノードデータを読込む際、ノード
データ全てを読込むのではなく、直前に読込んだノード
に格納されているマスク長を用いて、ノードデータのう
ち必要な部分のみを選択して読込む。
【0036】また、各ノードの先頭に、そのノードにエ
ントリが割り付けられているか否かを示すフラグを設
け、最初に、このフラクを読込み、エントリが割り付け
られていないノードでは、経路情報を読込まないように
する。
【0037】また、経路アドレスの上位mビットに対応
する2のm乗個の2のp乗分木ノードを、記憶手段上の
決まった位置に展開し、展開されたそれぞれのノード
を、経路アドレスの第0ビットから第(m−1)ビットま
でが取りうる値に1対1に対応させ、検索時には、経路
アドレスの第0ビットから第(m−1)ビットの値に従っ
て、該ノードを選択する。
【0038】また、宛先アドレスと送信元アドレスをこ
の順に連結して経路アドレスとし、上記経路アドレスの
上位mビットに対応する2のm乗個の2のp乗分木ノー
ドを決まった位置に格納し、それ以降の木は2のp乗分
木構造に構成して格納する記憶手段を持ち、経路検索時
には、受信したマルチキャストパケットの宛先アドレス
と送信元アドレスをこの順に連結した経路アドレスの第
0ビットから第(m−1)ビットの値に従って、メモリ上
の決まった位置に展開されたノードの一つを選択し、経
路アドレスの第mビット以降は経路アドレスをpビット
ずつ検査して2のp乗分木に構成されたマルチキャスト
ルーティングテーブルを検索する回路をもつ。
【0039】その他の本願が解決しようとする課題、及
びその解決手段は、後述の「発明の実施の形態」の欄、
及び本願図面で明らかにされる。
【0040】
【発明の実施の形態】以下、本発明の実施例を図面を用
いて説明する。
【0041】まず、一般的なネットワークの構成および
そのネットワークにおけるパケット中継動作を図2、
3、4を用いて説明する。
【0042】図2に示したネットワークは、パケットを
送受信する端末(T11、T12、T21、T22,T
31、T32、T41、T42、T51、T52)と、
端末を相互に接続するサブネットワーク(SN1〜SN
5)と、該サブネットワークを相互に接続するルータ(R
1〜R3)から構成される。また、ルータR1はポート
P11、P12、P13を持ち、ルータR2はポートP
21、P22、P23、P24を持ち、ルータR3はポ
ートP31、P32、P34、P35を持つ。各端末に
は識別子としてアドレスが割り当てられており、例えば
IPネットワーク上の各端末には32ビットのIPアド
レスが割り当てられている。このIPアドレスについて
図3(a)を用いて説明する。図3(a)に示したIPアド
レス(1)は、サブネットワークアドレス(2)とホストア
ドレス(3)から構成される。
【0043】サブネットワークアドレスは、サブネット
ワークの識別子であり、ホストアドレスはサブネットワ
ーク内の端末の識別子である。サブネットワークアドレ
スのビット数はサブネットマスク長で示されており、こ
のサブネットマスク長だけ上位ビットから有効なマスク
(サブネットマスク)とIPアドレスのビットごとの論理
積をとることにより、IPアドレスからサブネットワー
クアドレスを得ることができる。
【0044】次に、ある端末から特定の一つの端末にパ
ケットを送信するユニキャスト通信について、図2を用
いてパケット中継動作を説明する。一例として、端末T
11から端末T22へユニキャストパケットを送信する
場合について説明する。送信されるパケットのヘッダフ
ォーマットを図3(c)に示す。図3(c)の送信元IPア
ドレスフィールド(7)には送信元端末T11のIPアド
レスが格納され、宛先IPアドレスフィールド(8)には
宛先端末T22のIPアドレスが格納される。端末T1
1からのユニキャストパケットを受信したルータR1
は、パケットヘッダ内の宛先IPアドレスフィールドを
検査し、宛先端末T22がサブネットワークSN2上に
あり、かつ、サブネットワークSN2がルータR2経由
で接続されていることを認識し、パケットを送信すべき
ルータR2のIPアドレス(ネクストホップIPアドレ
スと呼ぶ)および送信すべきポートP12を決定し、パ
ケットを出力する。ルータR1からのユニキャストパケ
ットを受信したルータR2は、パケットヘッダ内の宛先
IPアドレスフィールドを検査し、宛先端末T22がサ
ブネットワークSN2上にあり、かつ、サブネットワー
クSN2がルータR2に直接接続されていることを認識
し、ネクストホップIPアドレス(今の場合、端末22
のIPアドレス)および送信すべきポートP22を決定
し、パケットを出力する。
【0045】次に、ルータの構成およびルータのユニキ
ャストパケットの中継動作を図4を用いて説明する。図
4のルータ10は、入力ポート11-i(=1〜N)、出力
ポート12-i(=1〜N)、ルーティング処理部13-i
(=1〜N)、スイッチ14、通信制御部15-i(=1〜
N)、管理部16から構成される。上記で説明したユニ
キャストパケットが入力ポート11-iから入力される
と、ルーティング処理部13-iがパケットのヘッダ内の
宛先IPアドレスをキーにしてユニキャストルーティン
グテーブルを検索する。この検索により、ネクストホッ
プIPアドレスと、出力すべき出力ポート12-iの番号
(送信ポート番号)を決定し、上記ネクストホップIPア
ドレスと送信ポート番号をパケットに付加してスイッチ
14に送出する。スイッチ14は上記送信ポート番号に
対応する出力ポート12-iを保持する通信制御部15-i
にパケットをスイッチングする。スイッチングされたパ
ケットを受信した通信制御部15-iは、パケットに付加
されているネクストホップIPアドレスに対応するデー
タリンク層のMAC(Media Access Control)アドレスを
対応テーブルに従って決定してパケットの宛先MACア
ドレスとして付加して、送信ポート番号に対応する出力
ポート12-iにパケットを送出する。
【0046】なお、上記のユニキャストルーティングテ
ーブルは、管理部16が他のルータと接続情報をやり取
りして作成し、各ルーティング処理部13-iに配布す
る。また、管理部16は、他のルータおよび端末とデー
タリンク層の情報のやり取りをし、ネクストホップIP
アドレスと、そのIPアドレスを持つルータおよび端末
のMACアドレスの対応テーブルを作成して各通信制御
部15-iに配布する。
【0047】次に、ある端末から特定の複数の端末にパ
ケットを送信するマルチキャスト通信について、図2を
用いてパケット中継動作を説明する。一例として、端末
T11からある特定のマルチキャストグループに属する
端末(T21、T31、T32、T41、T42、T5
1)へマルチキャストパケットを送信する場合について
説明する。マルチキャストグループは、クラスDのIP
アドレス(マルチキャスト・グループアドレス)によって
識別される。このクラスDのIPアドレスの構造を図3
(b)に示す。クラスDのIPアドレス(4)は、クラスD
であることを示す"1110"という上位4ビット(5)と
28ビットのマルチキャスト・グループID(以下、G
ID)(6)から構成される。上記のマルチキャスト・グ
ループアドレスによって識別されるマルチキャストグル
ープは、複数のサブネットワークにまたがることが可能
である。また、グループに属する端末のメンバー構成は
動的で、端末は自由にマルチキャストグループに参加、
離脱することができる。
【0048】端末T11から、あるマルチキャストグル
ープ宛に送信されたマルチキャストパケットのヘッダ内
の送信元IPアドレスフィールド(図3(c)の7)には送
信元端末T11のIPアドレスが格納され、宛先IPア
ドレスフィールド(図3(c)の8)には、ユニキャストパ
ケットの場合とは異なり、宛先のマルチキャスト・グル
ープアドレスが格納される。端末T11からのマルチキ
ャストパケットを受信したルータR1は、ユニキャスト
パケットの場合とは異なり、パケットヘッダ内の送信元
IPアドレスフィールドと宛先IPアドレスフィールド
の2つのフィールドを検査し、このマルチキャストパケ
ットの送信元端末T11がサブネットワークSN1上に
あることを認識し、さらに、このサブネットワークSN
1から、宛先マルチキャストアドレスに属する端末の全
てにパケットを送信するためにルータR1がパケットを
送信すべき送信ポートP12、P13を決定し、上記ポ
ートにパケットをコピーして出力する。ルータR1から
のマルチキャストパケットを受信したルータR2は、R
1と同様な検査を行い、このマルチキャストパケットの
送信元端末T11がサブネットワークSN1上にあるこ
とを認識し、さらに、宛先マルチキャストアドレスに属
する端末が存在するサブネットワークSN2、SN3に
パケットを送信するためにルータR2がパケットを送信
すべき送信ポートP22、P23を決定し、上記ポート
にパケットをコピーして出力する。ルータR3も同様に
してR1から受信したパケットを送信すべきポートP3
4、P35を決定し、上記ポートにパケットをコピーし
て出力する。
【0049】次に、ルータのマルチキャストパケットの
中継動作を図4を用いて説明する。上記で説明したマル
チキャストパケットが入力ポート11-iから入力される
と、ルーティング処理部13-iがパケットのヘッダ内の
送信元IPアドレスと宛先IPアドレス(宛先マルチキ
ャストアドレス)をキーにしてマルチキャストルーティ
ングテーブルを検索する。この検索により、出力すべき
1つまたは複数の出力ポート12-iの番号(送信ポート
番号)を決定し、受信したパケットをコピーし、各送信
ポート番号をパケットに付加してスイッチ14に送出す
る。スイッチ14は上記送信ポート番号に対応する出力
ポート12-iを保持する通信制御部15-iにパケットを
スイッチングする。スイッチングされたパケットを受信
した通信制御部15-iは、ユニキャストパケットの場合
とは異なり、マルチキャストパケットのヘッダ内の宛先
マルチキャストアドレスを用いてデータリンク層のマル
チキャスト用MACアドレスを生成し、パケットの宛先
MACアドレスとして付加して、送信ポート番号に対応
する出力ポート12-iにパケットを送出する。
【0050】なお、上記のマルチキャストルーティング
テーブルは、ユニキャストルーティングテーブルと同様
にして管理部16が他のルータと接続情報をやり取りし
て作成し、各ルーティング処理部13-iに配布する。
【0051】次に、本発明の一実施例として、ルータの
全体構成例を図1を用いて説明する。
【0052】まず、ルータ700の構成を図1を用いて
説明する。505はスイッチであり、図4のスイッチ1
4に対応する。上記スイッチ505に、装置全体の管理
機能と経路情報の収集・分配等の機能をもつ管理部60
1が接続されている。管理部601は図4の管理部16
に対応する。また、スイッチ505には、高速にパケッ
ト中継処理を行う機能を有するパケット処理部600を
複数接続することができる。パケット処理部600は、
図4のルーティング処理部13−iに対応する。管理部
601は、それぞれのパケット処理部600にルーティ
ングテーブルを配布し、それぞれのパケット処理部60
0が上記ルーティングテーブルに基づいてパケット中継
処理を行うことによりルータの機能を実現する。
【0053】さらに、各パケット処理部600には、ネ
ットワークを接続するための通信ポートを備える通信制
御部501、602、603(図4の通信制御部15-i
に対応)が接続される。通信制御部は、各種類のネット
ワークに接続することができる。また、そのネットワー
クの通信速度に応じて、高速通信(例えば、図2の50
0)ならば1ポート、低速通信(例えば、図2の604、
605)ならば複数ポートを設け、1つまたは複数のネ
ットワークと接続することができる。
【0054】次に、上記のパケット処理部600の構成
について、図1を用いて説明する。図1において、パケ
ット処理部600は、パケット転送処理を行う転送処理
部504と、パケットを格納するパケットバッファを備
えるメモリ503と、メモリ503に格納されたパケッ
トのヘッダ情報を用いて経路検索を行う経路検索処理部
400と、転送処理部504および通信制御部501を
制御する制御回路502とを有する。経路検索処理部4
00は、ルーティングテーブルを格納するメモリ300
と、そのルーティングテーブルを検索し、検索結果を転
送処理部504へ出力する経路検索処理回路200から
構成される。
【0055】次に、パケット処理部600における、マ
ルチキャストパケットの中継処理の動作を説明する。な
お、パケット中継処理を行う前に、管理部601が、ス
イッチ505に接続している全パケット処理部600
に、それぞれのマルチキャストルーティングテーブルを
配布しており、各パケット処理部600はメモリ300
にルーティングテーブルを格納している状態とする。通
信制御部501がネットワーク500から受信したマル
チキャストパケットをメモリ503へ転送し格納する。
転送処理部504はメモリ503に格納されたパケット
データの内、パケットヘッダ情報を抽出して経路検索処
理部400へ転送する。経路検索処理回路200は、受
信パケットのヘッダ内の送信元アドレスと宛先マルチキ
ャスト・グループアドレスを用いてメモリ300内に格
納されているマルチキャストルーティングテーブルの検
索を行い、検索結果として、パケットを送信すべきN個
(Nは1以上の整数)の送信ポート番号を転送処理部50
4へ転送する。
【0056】上記の検索結果を受信した転送処理部50
4は、先にメモリ503に格納されているパケットに対
してパケットヘッダの書換などの処理を施し、パケット
に上記N個の送信ポートの内の1つの番号を付加してス
イッチ505に転送する。転送処理部504は上記の処
理をN回繰り返し、1つの受信パケットに対する転送処
理を終了する。また、送信ポート番号が自パケット処理
部に接続されている通信制御部のポート番号である場合
は、自パケット処理部に接続されている通信制御部にパ
ケットを送信する。
【0057】スイッチ505は転送処理部504により
転送されたパケットを、付加されている送信ポート番号
に従い、各パケット処理部にスイッチングする。上記ス
イッチングされたパケットを受信したパケット処理部6
00は、上記パケットを通信制御部(501、602、
603)へ転送する。通信制御部は、上記パケットのヘ
ッダ内の宛先マルチキャストアドレスからマルチキャス
ト用MACアドレスを生成し、宛先MACアドレスとし
てパケットに付加して各ネットワークに送信する。
【0058】本発明は、上記の経路検索処理部400の
高速化に関するものである。以下では、この経路検索処
理部400に関し、まず、方式1として、マルチキャス
トルーティングテーブルを2分木に構成し、その2分木
構造を検索する検索方式(以下、2分木検索方式と呼ぶ)
について説明する。方式2として、方式1を改良し、さ
らに検索を高速に行うために、マルチキャストルーティ
ングテーブルを2のp乗分木に構成し、その2のp乗分
木構造を検索する検索方式(以下、2のp乗分木検索方
式と呼ぶ)について説明する。また、その方式2の説明
の中で、マスク長mビットのノードをメモリ上に展開し
て方式1、2のノードを渡る回数を削減する方式(方式
3)について説明する。最後に、本発明の一実施例とし
て、方式2および3の方式を適用した経路検索処理を実
現するハードウェア構成について説明する。
【0059】まず、方式1の2分木検索方式について説
明する。
【0060】従来の技術で説明したように、マルチキャ
スト経路検索を行う際、受信パケットのヘッダ内の送信
元IPアドレスと、宛先マルチキャスト・グループアド
レスを検索のキーとしてマルチキャストルーティングテ
ーブルを検索する。すなわち、この2つの情報の組み合
わせにより、そのマルチキャストパケットの送信元から
宛先までの経路が識別される。
【0061】従って、送信元IPアドレスとマルチキャ
スト・グループアドレスを連結して、これを経路アドレ
スとして定義し、この経路アドレスと経路情報の組をエ
ントリとしてマルチキャストルーティングテーブルを構
成することにより、この経路アドレスをキーとして、マ
ルチキャストルーティングテーブルを検索することがで
きる。
【0062】また、上記の2つのアドレスのうち、マル
チキャスト・グループアドレスに関しては、マルチキャ
スト・グループ一つに対して一つのアドレスが割り当て
られているので、ルーティングテーブル検索時は、エン
トリに保持されたマルチキャスト・グループアドレスと
の一致比較を行えばよい。
【0063】しかし、上記の2つのアドレスのうち、送
信元IPアドレスに関しては、受信パケットの送信元I
Pアドレスに、エントリに保持されているサブネットマ
スク長だけ上位ビットから有効なマスクをかけたものと
エントリに保持されている送信元サブネットワークアド
レスに一致するエントリの経路情報を検索結果とする
が、この場合、ユニキャスト経路検索と同様に最長一致
検索を行う必要がある。
【0064】以上のことから、送信元IPアドレスとマ
ルチキャスト・グループアドレスの連結順を、マルチキ
ャスト・グループアドレス、送信元IPアドレスの順に
して、これを経路アドレスとして定義し、この経路アド
レスのビットパターンに従ってマルチキャストルーティ
ングテーブルを2分木構造に構成することにより、従来
技術3に述べられているRadish方式を用いたユニキャス
ト経路検索方式と同様にして、経路アドレスに関して最
長一致検索を行うことができる。この場合、経路アドレ
スの定義から、マルチキャスト・グループアドレスにつ
いては一致比較、送信元IPアドレスに関しては最長一
致検索を行うことできる。
【0065】図5に2分木で構成されたマルチキャスト
ルーティングテーブルを検索する際に用いる経路アドレ
スを示す。なお、この経路アドレスは後述する2のp乗
分木検索方式にも採用する。図5(a)の経路アドレス3
2は、マルチキャスト・グループアドレス(30)と送信
元IPアドレス(31)とを連結したものであり、ビット
数は64ビットである。図5(b)の経路アドレス33
は、マルチキャスト・グループアドレス(30)から"1
110"というIPアドレスのクラスDを示す上位4ビ
ットの値を除いたマルチキャスト・グループID(34)
と、送信元IPアドレス(31)とを連結したものであ
り、ビット数は60ビットである。木構造を構成するた
めの値(今の場合は検索アドレス)のビット数が少ない方
が木の構造が浅くなり、検索時に辿る最大ノード数が減
るため、以下では、ビット数の少ない図5(b)の経路ア
ドレス33を採用して説明する。
【0066】次に、上記の経路アドレスを用いてマルチ
キャストルーティングテーブルを2分木に構成する方法
について説明する。木構造の考え方は経路アドレスのビ
ット数には依存しないので、簡単のため、マルチキャス
ト・グループIDは1ビット、送信元IPアドレスは2
ビットと仮定して説明する。この場合経路アドレスは3
ビットとなる。
【0067】図6に2分木の構造の例を示す。図6に示
すように、各ノードは、経路アドレスモaaaモと、経路
アドレスマスク長n、および、そのノードの下につく二
つのノードへのポインタを持つ。ここで、経路アドレス
マスク長とは、そのノードが持つ経路アドレスの上位何
ビットが有効であるかを示す値であり、また、そのノー
ドでの受信パケットの経路アドレスの検査ビット位置も
示す。また、経路アドレスと経路アドレスマスクの組を
表記法モaaa:nモで表す。この表記法により、マスク
付き経路アドレスを表すことにする。
【0068】各ノードを木の上から順に、経路アドレス
マスク長0ビット、1ビット、2ビット、3ビットのノ
ードと呼ぶ。
【0069】経路アドレスマスク長0ビットのノード
(40)では、経路アドレスマスク長の値で示されてい
る経路アドレスの第0ビットを検査し、その値が0か1
かに従い左/右のポインタを辿ることにより経路アドレ
スマスク長1ビットのノード(41、42)に移り、経
路アドレスマスク長1ビットのノードでは、経路アドレ
スの第1ビットが0か1かに従い左/右のポインタを辿
ることにより経路アドレスマスク長2ビットのノード
(43、44、45、46)に移り、経路アドレスマス
ク長2ビットのノードでは、経路アドレスの第2ビット
が0か1かに従い左/右のポインタを辿ることにより経
路アドレスマスク長3ビットのノード(47、48、4
9、50、51、52、53、54)に移る。
【0070】検索したい経路アドレスについて、この木
の経路アドレスマスク長0ビットのノード(40)から
順に、各ビットが0か1かに従いポインタを辿った場
合、経路アドレスマスク長0ビットのノードは経路アド
レスがどの値をとる場合にも通過し、経路アドレスマス
ク長1ビットのノード(41、42)は左から順に経路
アドレスの各ビットが0xx、1xxの場合に通過し、
経路アドレスマスク長2ビットのノード(43、44、
45、46)は左から順に経路アドレスの各ビットが0
0x、01x、10x、11xの場合に通過し、経路ア
ドレスマスク長3ビットのノード(47、48、49、
50、51、52、53、54)は左から順に経路アド
レスの各ビットが000、001、010、011、1
00、101、110、111の場合に通過する。ここ
で、xは、そのビット値が0または1のどちらでも良い
ことを示す。
【0071】従って、経路アドレスマスク長0ビットの
ノード(40)は、経路アドレスがマスク付き経路アド
レス 000:0に属する場合に通過し、経路アドレス
マスク長1ビットのノード(41、42)は、経路アド
レスがそれぞれマスク付き経路アドレス000:1、1
00:1に属する場合に通過し、経路アドレスマスク長
2ビットのノード(43、44、45、46)は、経路
アドレスがそれぞれマスク付き経路アドレス000:
2、010:2、 100:2、110:2に属する場
合に通過し、経路アドレスマスク長3ビットのノード(4
7、48、49、50、51、52、53、54)は、
経路アドレスがそれぞれマスク付き経路アドレス00
0:3、001:3、...、111:3に属する場合に
通過する。
【0072】上記の通り、この木の各ノードは、経路ア
ドレスと経路アドレスマスク長が異なる全マスク付き経
路アドレスに1対1に対応している。
【0073】上記の2分木において、図7に示すマルチ
キャストルーティングテーブルの各エントリに対応する
ノード40、48、44、42、53に該エントリを割
り付ける。具体的には、図12を用いて後述するよう
に、ノードのデータ構造内にエントリが割り付けられて
いるか否かを示すフラグを設け、エントリが割り付けら
れたノード内の上記フラグの値を1に設定し、かつ送信
ポート情報あるいは送信ポート情報へのポインタをノー
ド内に格納する。本明細書では、ノードに*を付記する
ことにより、ノードにエントリが割り付けられているこ
とを表すことにする。
【0074】受信パケットの経路アドレスが011(図
6の60)の場合、この木の上から各ビットが0か1か
に従いポインタを辿ると、"*"が付記されたノード4
0、44が、マスク付きの検索で一致することが分か
る。そこで、ルーティングテーブルエントリが複数一致
した場合は、送信元IPアドレスに関して最長一致検索
を行うことを考慮すると、一致した"*"付きノード4
0、44の内、上記で定義した経路アドレスマスク長が
最も長いノード、すなわち最も末端に近いノード44に
割り付けられたエントリの経路情報を、ルーティングテ
ーブルの検索結果とする。なお、図7のルーティングテ
ーブルの例では、エントリ内の経路情報は省略してい
る。
【0075】上記検索方法から分かるように、"*"が付
記されておらず、かつ"*"付きのノードにたどり着くた
めの途中経路にもなっていないノード47、49、5
0、51、52、54、45は木から取り除いても、検
索結果には影響しない。むしろ、最下のノードが、"*"
が付記されていていないノードの場合は最下まで移動せ
ずに検索が終了するために効率的である。そこで、"*"
が付記されておらず、かつ"*"付きのノードにたどり着
くための途中経路にもなっていないノードを木から取り
除くと図8のようになる。
【0076】上記の方法を用い、経路アドレス長が32
ビットと仮定した場合、図9に示す経路テーブルに対応
する2分木を構成すると、図10に示す分岐も"*"も無
いノードの長い列61ができる。なお、図9のルーティ
ングテーブルの例では、図7と同様にエントリ内の経路
情報は省略している。また、図10の0xNNNNNNNNという
表記法は、NNNNNNNNが16進数表示であることを示す。
このように、左右の片方のポインタだけに次のノードが
つながり、かつエントリが割り当てられていないノード
を取り除くことにより、検索時に辿るノード数を減らす
ことができる。
【0077】図10の例においては、分岐も"*"も無い
ノード列61を取り除き、直ぐ上のノード62の分岐方
向(図10では右側)に、取り除かれたノード列61の直
ぐ下のノード63を付ける。その結果、図11に示す形
となる。このように途中のノード列を取り除くことを、
以後、木の縮退と呼ぶ。
【0078】次に縮退した2分木の検索法を説明する。
【0079】図11に示す例では、経路アドレスマスク
長0ビットのノード62で第0ビットの検査を行った
後、経路アドレスマスク長15ビットのノード63に跳
ぶので、経路アドレスマスク長15ビットのノード63
で第15ビットだけを検査したのでは、途中のビット、
即ち第1ビットから第14ビットが検査できない。そこ
で、第1ビットから第15ビットの検査を一回の処理で
行う為に、受信パケットの経路アドレスの第1ビットか
ら第15ビットとノード63の経路アドレス0x85040000
の第1ビットから第15ビットの一致比較を行う。比較
結果が一致すれば正しいノードにたどり着いたこと、即
ち、縮退しない木で1ビットづつ比較しても、このノー
ドにたどり着いたことを意味し、一致しなければ、正し
くないノードにたどり着いたこと、即ち縮退しない木で
は、行き先が無いことを意味する。
【0080】ここで、図11に示す例では、第0ビット
は、既にテストされ、第0ビットが等しくなる方の分岐
が選択されている為、常に一致する。一般に、あるノー
ドにたどり着く毎に、正しいノードにたどり着いたか否
かを検査していれば、第0ビットから、そのノードの経
路アドレスマスク長までのビットに関しては、受信パケ
ットの経路アドレスと、ノードの経路アドレスとが等し
いことが保証されているので、次のノードにたどり着い
たときに、前にどのビットまで検査したかに関らず、第
0ビットからノードの経路アドレスマスク長までのビッ
トに関して、受信パケットの経路アドレスとノードの経
路アドレスとが等しいか否かを調べて良い。
【0081】次に、上記で説明した2分木を構成するノ
ードのデータ構造について、図12を用いて説明する。
図12(a)において、ワード110、111内の次のノ
ードのマスク長0、1は、このノード自身の経路アドレ
スマスク長ではなく、このノードの直下のノードの経路
アドレスマスク長である。このように、自分自身でなく
直下のノードのマスク長を設定する理由は高速化のため
であり、その説明は図20を用いて後述する。ワード1
10、111内のフラグ0、フラグ1は、このノードが
エントリが割り付けられているノードか否か、即ち、図
6、8、10、11で示した木の例において、このノー
ドが、"*"が付記されているノードか否かを示すフラグ
(以下、エントリ有りフラグと呼ぶ)や、このノードに一
致するパケットに関する属性フラグなどが設定されるフ
ィールドである。フラグ0とフラグ1には、同じ値を設
定する。これは、ワード110とワード111の一つだ
けを読めば良いようにするためであり、このように、ノ
ードの全てを読むのではなく、一部分を読むことによる
高速化については図20を用いて後述する。ワード11
0、111内の次のノードへのポインタ0、1は、経路
アドレスの、このノードの経路アドレスマスク長で示さ
れるビット位置の値が、それぞれ0、1のときに次に辿
るノードへのポインタである。ワード112、113の
経路アドレスは、このノードに対応する経路アドレスで
あり、例えばワード112にはノードの経路アドレスの
内、上位28ビットを設定し、ワード113にはノード
の経路アドレスの内、下位32ビットを設定する。
【0082】図12(a)では、2分木ノードのデータ構
造の中に送信ポート情報114を保持する例を示してい
る。図12(b)では、送信ポート情報114を2分木ノ
ード構造から分離し、分離した送信ポート情報へのポイ
ンタ115を保持する例を示している。送信ポート情報
は、受信マルチキャストパケットを転送すべき1つまた
は複数の送信ポート番号を示し、ルータのポート数が多
い場合は数ワード必要になる。従って、図12(a)のよ
うに、2分木ノード構造内に送信ポート情報114を保
持する場合、エントリが割り付けられている2分木ノー
ドと、エントリが割り付けられていない2分木ノード
で、その大きさが大きく異なることになる。このように
ノードの大きさが異なると、ノード内の次ノードへのポ
インタに必要なビット数が多くなることや、そのポイン
タから実際のメモリのアドレスを計算する処理が複雑に
なり、特にハードウェア構成が複雑になるという問題が
考えられる。
【0083】図12(b)のように送信ポート情報をノー
ドから分離し、ノードにはその送信ポート情報へのポイ
ンタ115を保持する場合、エントリが割り付けられて
いる/いないに関わらずノードの大きさは一定になり、
ハードウェア構成を単純にする利点がある。
【0084】次に、方式2の2のp乗分木検索方式につ
いて説明する。
【0085】上記で説明した2分木方式では、一つのノ
ードに2つの分岐先があり1ビットづつ検索していた。
検索のキーのビット数は、検索時に辿るノードの数(の
最大値)に一致する。したがって、最大の検索時間は(式
1)で表される。
【0086】(最大検索時間)=(一つのノードの処理時
間)×(検索のキーのビット数) ・・・(式1) すなわち、最大検索時間は検索のキーのビット数に比例
する。この最大検索時間をさらに大幅に短縮し、高速化
することが求められる。
【0087】そこで、以下で説明する2のp乗分木方式
では、一つのノードに2のp乗の分岐先を設け、同時に
pビットづつ検索することにより、従来に比べ、検索時
間を1/pに短縮するものである。以後、一つのノード
に2のp乗の分岐先があるノードのことを2のp乗分木
ノードと呼ぶ。
【0088】2のp乗分木ノードは、2分木方式で説明
した2分木ノードから構成される木を変形することによ
り作成する。木の変形の方法は、経路アドレスマスク長
nの2分木ノード一つと、この2分木ノードの下に存在
する、経路アドレスマスク長(n+1)ビットから(n+
p−1)ビットの2分木ノードを、一つの2のp乗分木ノ
ードに対応させるものである。また、以下では、上記の
ように対応させてまとめた2のp乗分木ノードに関し、
まとめる前に頂点にあった2分木ノードのマスク長nを
引き継いで、この2のp乗分木ノードのマスク長をnと
定義する。
【0089】上記の変形法の例として、2分木から8分
木への変形法を図13に示す。
【0090】経路アドレスのビット数が60ビットの場
合で、8分木を構成する場合を考える。この場合、一つ
の8分木に対応させる2分木ノードの選び方として、マ
スク長0〜2、3〜5、....、57〜59、60ビット
の2分木ノードを、それぞれ一つの8分木ノードとする
場合(図13(a))と、マスク長1〜3、4〜6、....、
55〜57、58〜60ビットの2分木ノードを、それ
ぞれ一つの8分木ノードとする場合(図13(b))と、第
2〜4、5〜7、....、56〜58、59〜60ビット
の2分木ノードを、それぞれ一つの8分木ノードとする
場合(図13(c))の3通りがあり、どの区切り方でも、
構成可能だが、木全体では、エントリの追加、削除を容
易に行えるように、上記3通りのビット位置の区切り方
の内、一つを使用する。
【0091】上記3通りのビット位置の区切り方の内、
最初の区切り方以外では、マスク長が0ビットから始ま
っていないので最初のビットの検査を別に行う必要があ
る。この検査には、マスク長mビットのノードをメモリ
上の決まった位置に展開する方法(以下、方式3と呼ぶ)
を使用する。
【0092】以下、方式3について説明する。方式3
は、2のp乗分木構造のマスク長mビットのノードを、
ノードがある場合も無い場合も区別せず全て予め用意
し、メモリ上の決まった位置に展開しておき、経路検索
開始時に、受信パケットの経路アドレスの上位mビット
の値に従って上記の展開されたノードの内の一つを選択
してメモリから読み込む。この方式により上位mビット
分の検索時間を省くことができる。
【0093】上記の方式3を適用した例を、図13
(b)、(c)に示した区切り位置の場合について図14
(a)、(b)に示す。
【0094】図14(a)に示す構成では、マスク長1ビ
ットの8分木ノード90、91をメモリ上の決まった位
置に並べ、それぞれを、受信パケットの経路アドレスの
第0ビットが0か1かに従い選択することにより、最初
の第0ビットの検査を行ったことになる。図14(b)に
示す構成では、マスク長2ビットの8分木ノード92、
93、94、95をメモリ上の決まった位置に並べ、そ
れぞれを、受信パケットの経路アドレスの第0〜1ビッ
トの値が00か01か10か11かに従い選択すること
により、最初の第0、1ビットの検査を行ったことにな
る。
【0095】さらに、図13(a)、(b)、(c)に示す各
ビットの区切り位置の場合に、それぞれ最初に並べる8
分木ノード数を1、2、4個ではなく、これらの8倍で
ある8、16、32個、8の2乗倍である64、12
8、256個、或いは一般に8のq乗倍個にし、最初の
1回、2回、或いは一般にq回の8分木ノードの検索時
間を無くすことも可能である。この場合、メモリ上の決
まった位置に展開する8分木ノードのマスク長mは、図
13(a)、(b)、(c)に示す各ビットの区切り位置の場
合、それぞれ、m=3×q、1+3×q、2+3×qと
なり、この上位mビット分の検索時間を省くことができ
る。q=1の場合、即ち8分木ノードの1回のノードの
検索時間を無くす場合で、図13(a)、(b)、(c)に示
す3通りの各ビットの区切り位置の場合についてのメモ
リ上へのノードの展開法を、図15(a)、(b)、(c)に
それぞれ示す。
【0096】図15(a)では、マスク長m=3の8分木
ノードを8個メモリ上の決まった位置に展開し、受信パ
ケットの経路アドレスの第0〜2ビットの計3ビットの
値に従って、展開された8分木ノードの内の一つを選択
する。図15(b)では、マスク長m=1+3=4の8分
木ノードを16個メモリ上の決まった位置に展開し、受
信パケットの経路アドレスの第0〜3ビットの計4ビッ
トの値に従って、展開された8分木ノードの内の一つを
選択する。図15(c)では、マスク長m=2+3=5の
8分木ノードを32個メモリ上の決まった位置に展開
し、受信パケットの経路アドレスの第0〜4ビットの計
5ビットの値に従って、展開された8分木ノードの内の
一つを選択する。
【0097】以上、8分木を例にして方式3について説
明したが、同様にして、マスク長mビットの2のp乗分
木ノードをメモリ上の決まった位置に展開し、上位mビ
ット分の検索時間を省くことができる。p、qの値を大
きくすると、経路検索時間を短縮することができるが、
多くのメモリを必要とするので、p、qの値は、メモリ
効率と性能のトレードオフから決めるようにする。
【0098】以上、方式3について、2のp乗分木ノー
ドの場合について述べたが、同様にして、方式1の2分
木検索方式にこの方式3を適用することも可能である。
【0099】次に、4分木ノード、8分木ノード、16
分木ノード、或いは一般に2のべき乗分木のノードの構
成法を図16を用いて説明する。
【0100】図16は4分木で、ある1つの2分木ノー
ドA、B、C、D、Eと、その直下の2個の2分木ノー
ドA0、A1、B0、B1、C0、C1、D0、D1、
E0、E1の、各々合計3個の2分木ノードをまとめて
一つの4分木ノード100、101、102、103、
104にする場合の例であり、合計3個の2分木ノード
をつぶして、下の方の2分木ノードだけの大きさにす
る。つぶし方は、経路アドレスマスク長に関する最長一
致検索の仕様に従い、経路検索を行った場合に、2分木
の場合と4分木の場合とで、経路検索結果が同じにな
る、という条件を満たすように行う。
【0101】4分木の場合の、このノードのつぶし方を
図17に示す。図17において、*Aという表記は、ノ
ードAに割り付けられているエントリ内の経路情報を表
すことにする。また、*Aという表記がないノードには
エントリが割り付けられていないことを意味する。
【0102】2分木構造において、3つのノードが全部
ある場合(図17(a))、全ノードにエントリが割り付け
られていたら、下のノードの経路情報*A0、*A1を
残し、上のノードは削除する。これは、ノードAのエン
トリが一致したらノードA0かノードA1のどちらかの
エントリが必ず一致するので、最長一致検索を行うこと
から、ノードAの経路情報*Aが使用されることが無い
からである。
【0103】上のノードAにエントリが割り付けられて
おり、下のノードA0、A1の内A1にだけエントリが
割り付けられていない場合(図17(b))、ノードA1
に、Aの経路情報*Aを格納する。下のノードA0、A
1の内A0だけエントリが割り付けられていない場合も
同様である。
【0104】下のノードA0、A1の両方にエントリが
割り付けられていない場合(図17(c))には、A0、A
1の両方のノード内に、Aの経路情報*Aを格納する。
【0105】下のノードA1が無い場合(図17(d))、
A1を補い、A1には、上のノードAの経路情報*Aを
格納し、さらに、ノードA1の下にはノードが繋がって
いないので、ノードA1の下のノードへのポインタはN
ULLにする。下のノードA0、A1の内A0だけエン
トリが割り付けられていない場合も同様である。
【0106】下のノードA0、A1の両方が無い場合
(図17(e))、両方を補い、両方のノードに、Aの経路
情報*Aを格納し、両方のノードの下のノードへのポイ
ンタはNULLにする。
【0107】上のノードAにエントリが割り付けられて
いない場合(図17(f))、ノードAをただ単に削除す
る。
【0108】上のノードAに経路が割り付けられておら
ず、下のノードA0、A1の内、A1にもエントリが割
り付けられていない場合(図17(g))、4分木にした場
合もA1の経路情報は無い。下のノードA0、A1の
内、A0にエントリが割り付けられていない場合も同様
である。
【0109】上のノードAにエントリが割り付けられて
なく、下のノードA0、A1の両方にエントリが割り付
けられていない場合(図17(h))、4分木にした場合も
A0、A1の両方のノードの経路情報は無い。
【0110】下のノードA0だけしかない場合(図17
(I))には、下のノードA1を補う。下のノードA1だ
けしかない場合も同様である。
【0111】8分木の場合も同様にして、一つにまとめ
る7個の2分木ノードをつぶして、一番下の4個のノー
ドだけの大きさにする。上の方の3つの2分木ノードの
つぶし方の2つの例を図18に示す。
【0112】図18(a)は一つにまとめる7個の2分木
ノードが全てあるが、その内のいくつかにしかエントリ
が割り付けられていない場合の例であり、最下の4つの
ノードの内、エントリが割り付けられていないノードA
01、A10には、そのノードの上方につながっている
ノードの内、エントリが割り付けられている最も下、即
ち最も経路アドレスマスク長が長いノード(それぞれ、
A、A1)の経路情報*A、*A1を格納する。
【0113】図18(b)は一つにまとめる7個の2分木
ノードの内のいくつかしかノードが存在しない場合の例
であり、存在しないノードA01、A10を、まずエン
トリが割り付けられていないノードとして補い、図18
(a)と同じ規則で、経路情報を格納する。最下の4つの
ノードA00、A01、A10、A11の内、補ったノ
ードA01、A10の下には、ノードが繋がっていない
ので、下のノードへのポインタはNULLにする。
【0114】一般に2のp乗分木の場合も同様にして、
一つにまとめる(2のp乗−1)個の2分木ノードをつぶ
して、一番下の2の(p−1)乗個のノードだけの大きさ
にする。
【0115】また、4、8、16、...分木ノードで
は、2分木ノードを2、4、8、...個まとめて扱うの
で、1つの4、8、16、...分木ノードにまとめられ
る2分木ノード間で共通な要素は、一つだけ持てばよ
く、これにより、4、8、16、...分木ノードのメモ
リ量を小さくできる。1つにの4、8、16、...分木
ノードにまとめられる2分木ノード間で共通な要素に
は、ノードが持つ経路アドレス、及び、経路アドレスマ
スク長があるが、経路アドレスマスク長については、後
述するように、このノード自身の経路アドレスマスク長
ではなく、このノードの直下のノードの経路アドレスマ
スク長を持つようにするので、メモリ量を小さくする効
果は無い。
【0116】次に、2のp乗分木ノードの一つの例とし
て、4分木ノードのデータ構造について図19を用いて
説明する。4分木ノードを構成する際、上記2分木ノー
ドを2つまとめ、まとめられる2つの2分木ノードに共
通のデータを一つだけ保持するようにする。この共通の
データは、そのノードの経路アドレスだけである(ワー
ド124、125)。また、まとめられる2分木ノード
が、経路が割り付けられているか否かによりその大きさ
が異なると、それらをまとめて構成する4分木ノードの
大きさも異なってしまう。従って、図12(b)で示した
ように、送信ポート情報をノードから分離し、ノード内
にはこの送信ポート情報へのポインタを保持する2分木
ノードをまとめる。
【0117】図19において、ワード120、121、
122、123内の次ノードのマスク長tt、フラグt
t、次ノードへのポインタttはそれぞれ、受信パケッ
トの経路アドレスの、このノードの経路アドレスマスク
長mで示された第mビット、および第m+1ビットの値
ttに対応する値である。ここでttは00、01、1
0、11の値を取りうる。2分木の場合と同様に、フラ
グ00とフラグ01は同じ値を設定し、フラグ10とフ
ラグ11も同じ値を設定する。
【0118】図12(b)に示す例では、2分木ノード
は、2のべき乗の大きさである16バイトにわずかに入
りきらない大きさになっているが、4分木ノードにし、
1ノード内に経路アドレスを一つしか持たないようにす
ることで、2のべき乗の大きさである32バイトに丁度
収まるようになっている。8分木ノードにし、経路アド
レスを1ノードで一つだけ保持するようにすれば、64
バイトの大きさに収まる上に、4バイトの余裕ができ、
この領域は他の情報を入れるのに使用できる。さらに1
つにまとめる2分木の数を増やせば(すなわち、2のp
乗分木のpの値を大きくとれば)、2のべき乗の大きさ
に対し、1つのノードの大きさをさらに小さくできる。
【0119】このように、1ノードの大きさを2のべき
乗の大きさに収めることで、ハードウェアの構成を非常
に簡単にできる。ハードウェアの構成を簡単にできる例
を以下に示す。
【0120】1つ目の例として、4分木ノードが32バ
イトに収まる場合、メモリを複数バンクで構成していた
場合でも1ノードのメモリ領域がバンク境界にまたがる
ことがないこと、メモリにダイナミックRAMを使用し
ていた場合でも1ノードのメモリ領域がRowアドレス
境界にまたがることがないこと。
【0121】2つ目の例として、ノード内の各要素のメ
モリ上のアドレス(以下、メモリアドレスと呼ぶ)を求め
るときに、そのノードへのポインタとそのポインタから
のオフセットの足し算でなく、メモリアドレスの上位ビ
ットはポインタの値にし、下位ビットをオフセットにす
ればよいこと。例えば4分木ノードが32バイトに収ま
る場合、あるノード内のある要素のメモリアドレスを生
成するには、そのノードへのポインタをメモリアドレス
の2の5乗ビット以上に割り付け、ノード内のその要素
へのオフセットをメモリアドレスの2の0乗ビットから
2の4乗ビットに割り付ければよい。
【0122】3つ目の例として、例えば4分木ノードが
32バイトに収まる場合、各ノードに保持する次のノー
ドへのポインタとして、(次のノードの先頭のバイトア
ドレス)÷32、という値を保持すればよく、1ノード
内で1ポインタあたり5ビットづつデータ量を減らせる
ことが挙げられる。
【0123】次に、例えば、図1の経路検索処理回路2
00を専用LSIで構成する場合のノードの読み込み方
式について説明する。4、8、16、...分木ノードに
した場合に1つのノードが大きくなり、検索処理時にテ
ーブルを保持するメモリから専用LSI内に1つのノー
ドを全て読み込むと、ノードを大きくするに従い読み込
み時間が伸び、性能低下要因となる、という問題がある
が、この問題は、ノードを大きくしたときに、1つのノ
ード全てを読み込まず一部だけを読み込む、という方で
回避する。この方法について、図20を用いて説明す
る。
【0124】図20に4分木の場合の例を示す。既に図
19を用いて説明したように、経路アドレスマスク長m
ビットの4分木ノードは、図12(b)で示した、経路ア
ドレスの第mビット目の値が0の場合に対応する2分木
ノードと、1の場合に対応する2分木ノードを併せた構
造になっている。従って、受信パケットの経路アドレス
の第mビット目の値にしたがって、対応する方の2分木
ノードの部分だけを読み込むことにより、ノードの大き
さが大きくなっても2分木ノードの場合と同じデータ量
を読み込むようにする。このとき、図19で示した、1
つにまとめられる2分木ノード間で一つだけ保持する要
素であるノードの経路アドレス(ワード124、125)
は、受信パケットの経路アドレスのmビット目の値に係
わらず読み込むようにする。
【0125】さらに、受信パケットの経路アドレスの第
(m+1)ビット目の値に従い、2分木ノードで2つ存在
した次ノードへのポインタの内、一方だけを読み込むよ
うにすることにより、読み込むデータ量をさらに少なく
する。
【0126】この方法は2分木検索方式にも使用でき
る。例えば第mビット目の2分木ノードの場合には、受
信パケットの経路アドレスの第mビット目の値に従い、
2つの次ノードへのポインタの内、一方だけを読み込む
ようにする。
【0127】上記方法を全て行い、結局、このノードの
経路アドレスマスク長をmとした場合、宛先アドレスの
第m、m+1ビットの値が00か、01か、10か、1
1かに従い、それぞれ(ワード120→ワード124→
ワード125→ワード126)、(ワード121→ワード
124→ワード125→ワード126)、(ワード122
→ワード124→ワード125→ワード127)、(ワー
ド123→ワード124→ワード125→ワード12
7)の順にデータを読み込むようにする(図20
(b))。
【0128】このように、あるノードの一部分だけを読
み込むためには、このノードの経路アドレスマスク長m
を知る必要があり、このノードの経路アドレスマスク長
mは、1ノードのデータ読み込みの最初に読み込むか、
この情報を1つ前のノードに移し、一つ前のノードのデ
ータ読み込み時に読み込む必要がある。ノードのマスク
長mを1ノードのデータ読み込みの最初に読み込む方法
は、例えば、図1の経路検索処理回路200を専用LS
Iで構成する場合、宛先の第mビット目の値の抽出のた
めの専用LSI内のゲートディレイ、及び、次に読み込
む部分のメモリアドレスをメモリに出力してからメモリ
からのデータを専用LSI内に読み込むまでの時間であ
るメモリリードレイテンシだけ、マスク長mを読み込ん
でから次に読み込む部分を選択して読み込むまで時間が
空いてしまうので、ノードの一部だけを読むことによる
性能向上効果が少ない。ノードのマスク長mを1つ前の
ノードに移し、一つ前のノードのデータの読み込み時に
読み込む方が性能向上効果がある。
【0129】さらに、ノードの経路アドレスマスク長m
を1つ前のノードに移す場合、1ノードのデータを読み
込む順序を、1番目に次のノードの経路アドレスマスク
長m、次のノードへのポインタ、次にノードの経路アド
レス、送信ポート情報へのポインタの順にすることによ
り、次のノードの最初に読み込む部分のメモリアドレス
が最も早く計算できるようにする。
【0130】次のノードへのポインタは、次のノードの
メモリ領域の先頭部分を指しており、次のノードの先頭
から最初に読み込む部分までのメモリアドレスのオフセ
ットは、次のノードのマスク長mを読み込み、受信パケ
ットの経路アドレスの該当ビット位置の値を検査するこ
とにより、得られる。
【0131】次に、1ノード内で、条件によっては、読
み込む必要が無い要素を、その条件に従って読み込まな
いようにすることで、読み込みの時間を削減し、高速化
を図る方法について図21を用いて説明する。
【0132】図21に4分木の場合の例を示す。2分木
構造の説明で述べたように一般に木構造においては、全
ノードにエントリが割り付けられているわけではなく、
枝の分岐の個所では、エントリが割り付けられていなく
てもノードを設ける必要がある。図21に示すように、
ノードデータの最初に読み込むワード120、121、
122、123内のフラグ内のエントリ有りフラグの値
に従い、エントリが割り付けられていないノードでは、
送信ポート情報へのポインタを読み込まないようにする
ことで、読み込み時間の短縮を図ることができる。エン
トリ有りフラグは1ビットで表現できるので、この情報
を読み込むことによる読み込み時間の増大は小さい。
【0133】この方法では、このノードのマスク長をm
とすると、宛先アドレスの第m、m+1ビットの値が0
0で、ワード120を読み、フラグ00から、4分木を
構成する0番目の2分木に経路情報が無いと判った場
合、ワード124、125だけを読めば良く、経路情報
が有ると判った場合にだけ、図21(b)に示すように
ワード124→ワード125→ワード126の順に読め
ば良い。宛先アドレスの第m、m+1ビットの値が0
1、10、11の場合も同様である。
【0134】以上、2分木検索方式(方式1)、2のp乗
分木検索方式(方式2)、およびマスク長mビットのノー
ドをメモリ上に展開する方法(方式3)という各検索方式
について説明した。次に、図1の経路検索処理回路20
0が上記の方式を用いて経路検索処理を行う際のフロー
チャートについて図22を用いて説明する。図22のフ
ローチャートでは、方式2と方式3とを組み合わせた場
合の例を示す。この例では、経路アドレスの第0ビット
から第(m−1)ビットの値に従って、メモリ上の決まっ
た位置に展開された2のp乗分木ノードの一つを選択す
る。以下ではこのように選択し、検索の最初に読込む2
のp乗分木ノードを初段ノードと呼ぶ。第mビット以降
は経路アドレスをpビットずつ検索し、2のp乗分木を
検索する。図1のメモリ300には、上記の方式2およ
び方式3の検索方式に従った2のp乗分木ノードデー
タ、および送信ポート情報が格納されているとする。
【0135】なお、以下では方式2と方式3とを組合わ
せた例について説明するが、方式1と方式3とを組み合
わせた場合でも同様なフローチャートに従うことで実現
可能である。また、このフローチャートに従うことによ
り、ソフトウェアでもハードウェアでも経路検索処理を
実現することができる。ソフトウェアで実現する場合、
図1の経路検索処理回路200にはCPUを用いればよ
い。またハードウェアで実現する場合、図1の経路検索
処理回路200を専用LSIで構成すればよい。
【0136】図22の処理810は木構造検索処理であ
り、また、処理811は送信ポート情報処理である。ま
ず、木構造検索処理810について説明する。
【0137】図1の経路検索処理回路200は、受信パ
ケットの宛先マルチキャスト・グループIDおよび送信
元IPアドレスを受け取ると、これらの値から図5を用
いて説明した経路アドレスを生成し、この経路アドレス
と初段ノードのマスク長mの値から初段ノードへのポイ
ンタを生成し、このポインタと、経路アドレスの第mビ
ットから第(m+p−1)ビットの値(以下、検査ビット
値と呼ぶ)に従ってメモリ300に格納されている初段
ノードの読み込みアドレスを生成し、メモリ300から
該初段ノードの一部を読み込む(図22の800)。
【0138】次に、図1の経路検索処理回路200は、
受信パケットの経路アドレスにノードのマスク長だけ上
位ビットから有効とするマスクをかけたものと、ノード
の経路アドレスと比較し(図22の801)、不一致の場
合は木構造検索処理810を終了する(図22の80
9)。一致する場合は図22の処理802に進む。
【0139】次に、図22の処理802、および803
について説明する。これらの処理は、最長一致検索を実
現するための経路情報の更新処理である。経路情報とし
ては、図1のメモリ300が出力するノードデータの
内、エントリ有りフラグと、送信ポート情報へのポイン
タがある。図1の経路検索処理回路200は、ノードデ
ータ内のエントリ有りフラグを検査し、エントリ有りフ
ラグの値が1の場合(図22の812)のみ、読み込んだ
ノード内の新たな経路情報をレジスタに保持する(図2
2の803)。エントリ有りフラグの値が0の場合は更
新処理を行わない(図22の813)。
【0140】次に、図1の経路検索処理回路200は、
図1のメモリ300が出力するノードデータの内の次ノ
ードへのポインタがNULLかどうかを判定し(図22
の804)、NULLの場合は木構造検索処理810を
終了する。NULLでない場合はそのポインタと、新た
な検査ビットの値に従ってメモリ300に格納されてい
る初段ノードの読み込みアドレスを生成し、メモリ30
0から該ノードデータを読み込む(図22の805)。
【0141】以下、上記の処理を繰り返すことにより、
2のp乗分木方式の経路検索を行うことができる。
【0142】次に、図22の送信ポート情報処理811
について説明する。木構造検索処理の結果、図1の経路
検索処理回路200内のレジスタには、経路情報とし
て、上記のエントリ有りフラグと送信ポート情報へのポ
インタが保持されている。図1の経路検索処理回路20
0は、まず、レジスタに保持されているエントリ有りフ
ラグを調べ(図22の806)、その値が0の場合は経路
検索処理を終了し、転送処理部504へ検索結果無しと
いう通知をする。エントリ有りフラグの値が1の場合
は、検索の結果、あるエントリに一致したことになるた
め、送信ポート情報へのポインタを用いてメモリ300
から送信ポート情報を読み出す(図22の807)。この
送信ポート情報からパケットを送信すべき1つまたは複
数のポート番号を生成して図1の転送処理部504へ送
信し(図22の808)、すべてのポート番号を送信し終
わると経路検索処理を終了する。
【0143】次に、本発明の一実施例として、図22で
説明した検索方式をハードウェアで実現する場合の構成
例について、図23、図24を用いて説明する。
【0144】図23に経路検索処理部400をハードウ
ェアで構成した場合の構成例を示す。経路検索処理回路
200は、木構造検索回路201と、読み込みアドレス
生成回路202と、メモリ制御回路206と、送信ポー
ト情報処理回路203と、経路検索処理制御回路204
とからなる。
【0145】木構造検索回路201は、メモリ300に
格納された2のp乗分木構造を検索し、次に読み込むべ
きノードのポインタの生成、受信パケットの経路アドレ
スの検査ビット値の抽出、木構造検索の終了判定、検索
結果である経路情報の候補の更新を行う。また、読み込
みアドレス生成回路202は、木構造検索処理時には、
木構造検索回路201から出力される読み込むべきノー
ドへのポインタ、および検査ビット値、および経路検索
処理制御回路204から出力されるタイミング信号に従
い、図20を用いて説明した順序でノード内の読み込み
ワードのメモリアドレスを生成してメモリ制御回路20
6に送信する。また、送信ポート情報処理時には、木構
造検索回路201内のレジスタに検索結果として保持さ
れている送信ポート情報へのポインタから送信ポート情
報のメモリアドレスを生成する。また、メモリ制御回路
206は、上記のメモリアドレスと、経路検索処理制御
回路204から出力されるタイミング信号に従い、メモ
リ制御信号を生成する。また、送信ポート情報処理回路
203は、メモリ300から読み出された送信ポート情
報からパケットを送信すべき1つまたは複数のポート番
号を生成して転送処理部504へ送信する。また、経路
検索処理制御回路204は、経路検索処理回路200全
体の制御(各回路の動作タイミングおよび動作状態管理
など)を行う。
【0146】上記の経路検索処理回路200を専用LS
Iで実現する場合、メモリ300は上記専用LSIの外
部に備えても良いし、専用LSI内の内臓メモリを使用
しても良い。メモリ300として専用LSIの内蔵メモ
リ使用すると、外部メモリを使用する場合に比べてメモ
リアクセス時間が短くなり、メモリ300内に格納され
たルーティングテーブルの検索処理を高速に行うことが
できる。
【0147】次に、経路検索処理部400の動作につい
て図23を用いて説明する。また、木構造検索回路20
1の詳細動作については、図24を用いて後述する。
【0148】木構造検索回路201は、転送処理部50
4から受信パケットの宛先マルチキャスト・グループI
Dおよび送信元IPアドレスを受け取ると、これらの値
から経路アドレスを生成し、この経路アドレスとノード
のマスク長の値から次ノードへのポインタを生成して、
読み込みアドレス生成回路202に転送する。また、木
構造検索回路201は、ノードのマスク長で示される経
路アドレスの検査ビット位置の値(検査ビット値)を抽出
して、読み込みアドレス生成回路202に転送する。
【0149】読み込みアドレス生成回路202はこのノ
ードへのポインタと、検査ビット値と、経路検索処理制
御回路204からのタイミング信号を用いて、図20を
用いて説明した順序でノード内の読み込みワードのメモ
リアドレスを生成し、メモリ制御回路206に送信す
る。メモリ制御回路206は上記メモリアドレスと経路
検索処理制御回路からのタイミング信号を用いてメモリ
制御信号を生成し、メモリ300へ出力する。上記のメ
モリ制御信号を受信したメモリ300は、対応するノー
ドデータを信号線214を用いて木構造検索回路へ転送
する。
【0150】木構造検索回路201はこのノードデータ
を用いて、図22の処理801、802、803、80
4、805を行う。これらの処理の詳細は図24で後述
する。図22の処理801および804に対応する判定
処理において木構造検索を終了すると判定した場合は、
木構造検索終了信号を経路検索処理制御回路204へ出
力し、経路検索処理制御回路204は送信ポート情報読
み込み処理を開始する。終了と判定されない場合は、終
了と判定されるまで図22の処理801、802、80
3、804、805を繰り返す。
【0151】次に、経路検索処理制御回路204は、木
構造検索回路201内に保持された経路情報(エントリ
有りフラグ、送信ポート情報へのポインタ)のうちのエ
ントリ有りフラグを調べ、その値が0の場合は経路検索
処理を終了し、転送処理部504へ検索結果無しという
通知をする。エントリ有りフラグの値が1の場合は、送
信ポート情報読み込みおよび送信ポート生成処理制御を
開始し、木構造検索回路201を制御して、送信ポート
情報へのポインタを読み込みアドレス生成回路202へ
出力させる。読み込みアドレス生成回路202はこの送
信ポート情報へのポインタと、経路検索処理回路204
からのタイミング信号を用いて、読み出すべき送信ポー
ト情報が格納されているメモリアドレスを生成し、メモ
リ制御回路206へ送信し、メモリ制御回路206は、
上記のメモリアドレスと、経路検索処理制御回路204
から出力されるタイミング信号に従い、メモリ制御信号
を生成してメモリ300へ出力し、この制御信号を受信
したメモリ300から信号線214上に送信ポート情報
が出力される。送信ポート情報処理回路203はこの送
信ポート情報を取り込み、パケットを送信すべき1つま
たは複数のポート番号を生成して転送処理部504へ送
信する。
【0152】送信ポート情報の構造については、複数の
送信ポート番号をポインタでつないだリスト構造や、送
信ポート番号のビットマップ化などが考えられるが、リ
スト構造の場合、送信ポート番号が多いとメモリアクセ
ス回数が増加し、結果として検索処理が遅くなる問題が
ある。送信ポート番号をビットマップ化する方法は、そ
のビットマップをメモリ300からバーストリードして
送信ポート情報処理回路203内に保持しておき、その
ビットマップをデコードして送信ポート番号を生成する
ことにより、メモリアクセス回数を減らすことができ
る。
【0153】すべての送信ポート番号を出力した後で、
経路検索処理制御回路204は経路検索処理を終了し、
次のパケット処理の制御を行う。
【0154】次に、図23の木構造検索回路201の詳
細を図24を用いて説明する。
【0155】まず、図22の初段ノードリード処理80
0および次ノードリード処理805に対応する処理につ
いて、図24を用いて説明する。転送処理部504より
信号線205を用いて送信される宛先マルチキャスト・
グループアドレスおよび送信元IPアドレスは、経路ア
ドレス生成回路207内に保持される。経路アドレス生
成回路207はこれらの情報から、図5(b)で説明した
60ビットの経路アドレス33を生成し、初段ノードへ
のポインタ生成回路208、検査ビット抽出回路20
9、マスク処理回路210へ出力する。
【0156】初段ノードへのポインタ生成回路208
は、予め初段ノードマスク長レジスタ229に設定され
ている値mに従い、受信パケットの経路アドレスの第0
ビットから第(m−1)の上位mビットの値を抽出し、こ
のmビットの値に従って初段ノードへのポインタを生成
してポインタセレクタ211へ出力する。ポインタセレ
クタ211は、信号線226によって図23の経路検索
処理制御回路204から送信される初段ノード読み込み
/初段ノード以外のノード読み込み選択信号に従い、初
段ノードの読み込み時は、上記の初段ノードへのポイン
タを選択して図23の読み込みアドレス生成回路202
へ出力する。また、ポインタセレクタ211は、初段ノ
ード以外のノードの読み込み時は、次ノードへのポイン
タレジスタ215に保持されている次ノードへのポイン
タを選択して読み込みアドレス生成回路202へ出力す
る。
【0157】また、上記の処理と並行して、検査ビット
抽出回路209は、初段ノード読み込み時には、検査ビ
ット位置セレクタ212において選択されて出力される
初段ノードマスク長レジスタ229の設定値mに従い、
経路アドレスの第mビットから第(m+p−1)ビットま
でのpビットの検査ビット値を抽出して図23の読み込
みアドレス生成回路202へ出力する。また、初段ノー
ド以外のノードの読み込み時は、後述する次ノードマス
ク長レジスタ216に保持されている次ノードのマスク
長m1が、検査ビット位置セレクタ212において選択
されて検査ビット抽出回路209に出力され、検査ビッ
ト抽出回路209は、この次ノードのマスク長m1に従
い、経路アドレスの第m1ビットから第(m1+p−1)
ビットまでのpビットの検査ビット値を抽出して図23
の読み込みアドレス生成回路202へ出力する。
【0158】図23の読み込みアドレス生成回路202
およびメモリ制御回路206は、上記のノードへのポイ
ンタとpビットの検査ビット値を用いて、図20を用い
て説明した順序でノード内の読み込みワードのメモリア
ドレスおよびメモリ制御信号を生成し、メモリ300は
入力されたメモリアドレスに格納されているノード内の
読み込みワードを信号線214に出力する。
【0159】信号線214のビット幅が32ビットの場
合、図20で説明した方式を採用すると一回のノード
(の一部)の読み込みワード数は4ワードとなり、これら
のデータは図20の表に示した順番で信号線214に出
力され、各レジスタ(次ノードへのポインタレジスタ2
15、次ノードマスク長レジスタ216、経路アドレス
上位レジスタ217、経路アドレス下位レジスタ22
2、フラグレジスタ224、送信ポート情報ポインタレ
ジスタ230)に保持される。各レジスタの保持タイミ
ングは経路検索処理制御回路204からの制御信号(図
示していない)により制御される。次ノードへのポイン
タレジスタ215には次ノードへのポインタが保持さ
れ、次ノードマスク長レジスタ216には次ノードのマ
スク長が保持され、経路アドレス上位レジスタ217に
はノードの経路アドレスの上位28ビットが、経路アド
レス下位レジスタ222には経路アドレスの下位32ビ
ットがそれぞれ保持され、フラグレジスタ224にはエ
ントリ有りフラグが保持され、送信ポート情報ポインタ
レジスタ230には送信ポート情報へのポインタが保持
される。
【0160】次に、図22の経路アドレス一致比較処理
801に対応する処理について、図24を用いて説明す
る。初段ノード読み込み時には、マスク長セレクタ22
8を介して初段ノードマスク長レジスタ229の設定値
がマスク処理回路210に入力する。
【0161】初段ノード以外のノード読み込み時には、
マスク長セレクタ228を介してマスク長レジスタ22
7に保持されているノードのマスク長がマスク処理回路
210に入力する。このマスク長レジスタ227の値
は、一つ前に読み込んだノードに格納されている次ノー
ドのマスク長の値であり、次ノードマスク長レジスタ2
16に保持されていたものである。次ノードマスク長レ
ジスタ216の値は、ノードの読み込み毎に更新される
ため、更新される前に、現在読み込んでいるノード(以
下、現ノードと呼ぶ)の経路アドレス一致比較処理に使
用する現ノードのマスク長をマスク長レジスタ227に
保持しておく。
【0162】マスク処理回路210は、これらのマスク
長だけ上位ビットから有効とするマスクを生成し、この
マスクと、経路アドレス生成回路207から出力される
受信パケットの経路アドレスとの論理積をとり、その結
果(以下、マスクした受信パケットの経路アドレスと呼
ぶ)を一致比較回路213に出力する。また、経路アド
レス上位レジスタ217、経路アドレス下位レジスタ2
22に保持されているノードの経路アドレスの上位28
ビット、下位32ビットはこの順に連結され、ノードの
経路アドレスとして一致比較回路213に入力される。
一致比較回路213は、このノードの経路アドレスと、
上記で説明した、マスクされた受信パケットの経路アド
レスとを比較し(以下経路アドレス比較と呼ぶ)、その結
果が不一致となる場合には不一致信号を信号線218を
用いて木検索終了判定回路219に転送する。木検索終
了判定回路219は上記不一致信号を受信し、木構造検
索終了信号を図23の経路検索処理制御回路204に送
信する。
【0163】また、マスク長レジスタ227の値は、上
記の経路アドレス比較が行われた後、次ノードマスク長
レジスタ216に保持されている次ノードのマスク長の
値によって更新され、次のノードの読み込み時の経路ア
ドレス比較に使用される。
【0164】次に、図22の処理802、および803
に対応する処理について、図24を用いて説明する。
【0165】一致比較回路213における経路アドレス
比較の結果一致した場合、一致比較回路213は信号線
220を用いて一致信号を更新判定回路221に出力す
る。この一致信号が更新判定回路221に入力され、か
つ、フラグレジスタ224に保持されているエントリ有
りフラグの値が1の場合(図25の812)のみ、更新判
定回路221は更新信号をフラグレジスタ223および
送信ポート情報へのポインタレジスタ225に出力す
る。更新信号を受信したフラグレジスタ223は、フラ
グレジスタ224に保持されているエントリ有りフラグ
を新たに保持し、同じく更新信号を受信した送信ポート
情報へのポインタレジスタ225は、送信ポート情報ポ
インタレジスタ230に保持されている送信ポート情報
へのポインタを新たに保持する(図22の経路情報更新
処理803)。エントリ有りフラグの値が0の場合は更
新判定回路221は更新信号を送信しないので、フラグ
レジスタ223および送信ポート情報へのポインタレジ
スタ225は更新処理を行わない(図22の813)。
【0166】経路情報として上記のフラグおよび、送信
ポート情報へのポインタ以外の情報を追加する必要があ
る場合は、木構造のノード内にそれらの情報を追加し、
それらの情報を保持、更新するレジスタを新たに追加す
ればよい。
【0167】次に、図22の次ノードへのポインタがN
ULLかどうかの判定処理804に対応する処理につい
て、図24を用いて説明する。次ノードへのポインタレ
ジスタ215内に保持されている次ノードへのポインタ
は木検索終了判定回路219に入力される。この次ノー
ドへのポインタがNULLの場合、木検索終了判定回路
219は図23の経路検索処理制御回路204に木検索
終了信号を出力する。
【0168】以上、図23の木構造検索処理回路201
の詳細動作を図24を用いて説明したが、ハードウェア
で構成するため、図22の木構造検索処理の中の80
1、802、803、804、805の各処理は逐次処
理をする必要はなく、各処理に必要なデータが各レジス
タ215、216、217、222、224、230に
保持された後に、各処理を開始すればよく、上記の各処
理を並列処理を行うことにより、高速に木構造の検索を
行うことができる。
【0169】
【発明の効果】マルチキャスト経路検索において検索の
キーとなる宛先マルチキャスト・グループアドレスと送
信元IPアドレスをこの順に連結して一つの経路アドレ
スとして定義し、この経路アドレスのビットパターンに
従い、マルチキャストルーティングテーブルを2分木に
構成することにより、エントリ数が増大しても検索時間
は増加しない検索処理を行うことができる。
【0170】また、検索木を構成する各ノードを、従来
の方法である2分木ノードから4分木、8分木、あるい
はそれ以上と、枝別れの数を2のべき乗で増やすことに
より、1つのノードで1ビットでなく、連続する2ビッ
ト、3ビット、あるいはそれ以上のビット数を同時に検
査でき、検索終了までに辿るノードの数が減り、経路検
索処理の高速化を図る効果がある。
【0171】図25に、エントリ数に対する従来技術2
のハッシュ方式のマルチキャスト経路検索の処理性能9
00、および本発明の2分木方式のマルチキャスト経路
検索の処理性能901、2のp乗分木方式のマルチキャ
スト経路検索の処理性能(例として、4分木方式の性能
902、8分木方式の性能903)を示す。ハッシュ方
式では、エントリ数に反比例して処理性能が劣化するの
に対し、2分木方式および2のp乗分木方式ではエント
リ数に依存せず一定となる。また、2分木方式に対し、
4分木方式は2倍の性能を実現でき、また、8分木方式
では3倍の性能を実現できる。
【0172】さらに、上記の経路アドレスとして、マル
チキャスト・グループアドレス自体ではなく、マルチキ
ャスト・グループアドレスの下位28ビットのマルチキ
ャスト・グループIDと送信元IPアドレスをこの順に
連結したものを採用し、この経路アドレスのビットパタ
ーンに従い、マルチキャストルーティングテーブルを2
分木あるいは2のp乗分木に構成することにより、検索
木の深さを決定する経路アドレスのビット数を4ビット
減らし、ノードを渡る最大回数を減らすことができる。
【0173】また、4分木、8分木、あるいは一般に2
のp乗分木を構成するときに、1つの2分木ノードと、
その直下につながる(p−1)段分の合計(2のp乗−1)
個分の2分木ノードを一つの2のp乗分木ノードにまと
め、まとめられる最下段の2の(p−1)乗個の2分木ノ
ードに、それより上段のノードに割り付けられていた経
路データを埋め込むことにより、まとめる前には2分木
ノード換算で(2のp乗−1)個分のメモリ量だったもの
を、2の(p−1)乗個分のメモリ量に減らす効果があ
る。
【0174】さらに、2分木ノードを2のp乗分木にま
とめる際、送信ポート情報を検索木のノードから分離し
て記憶手段の別領域に格納し、検索木のノードには上記
送信ポート情報の格納領域へのポインタを保持すること
で、エントリが割り当てられている2分木ノードと、エ
ントリが割り当てられていない2分木ノードのデータ量
を同じにし、これらの2分木ノードをまとめて2のp乗
分木ノードを構成する際に、2のp乗分木ノードのメモ
リ量の削減と、各2のp乗分木ノードのメモリ量の統一
を図ることができる また、この2分木を複数個併せた形で構成した4分木、
8分木、あるいはそれ以上の枝別れ数のノードを、検索
のために読むときにノード全てを読むのではなく、必要
な部分のみを読むようにすることにより、ノードが大き
くなることによるデータの読み込み時間の増大を防ぎ、
経路検索処理の高速化を図る効果がある。
【0175】また、各ノードに、そのノード自体のマス
ク長ではなく、そのノードのすぐ下につながるノードの
マスク長を格納することにより、ノードのマスク長をノ
ードのデータを読む前に知ることができ、ノードのデー
タを読む前に、ノードのどの部分を読み込めば良いかが
分かり、必要な部分のみを読むことができるようにな
り、ノードが大きくなることによるデータの読み込み時
間の増大を防ぎ、経路検索処理の高速化を図る効果があ
る。
【0176】また、各ノードの先頭に、そのノードにエ
ントリが割り付けられているか否かを示すフラグを設
け、最初に、このフラグを読み込み、エントリが割り付
けられていないノードでは、経路情報を読み込まないよ
うにすることにより、データの読み込み時間が短縮さ
れ、経路検索処理の高速化を図る効果がある。
【0177】また、経路アドレスの上位数ビット分、ノ
ードをメモリ上の決まった位置に展開し、受信パケット
の経路アドレスの上位数ビットに従い、ノードが格納さ
れている位置を直接にアクセスすることは、検索処理時
間を無くし、経路検索処理の高速化を図る効果がある。
【0178】また、上記の高速化手段をハードウェアで
構成することにより、経路検索処理の高速化を図る効果
がある。
【図面の簡単な説明】
【図1】本発明の一実施例であるパケット中継装置の例
であるルータのブロック図。
【図2】一般的なネットワークの構成例を示す図。
【図3】IPアドレスの構成、およびクラスDのIPア
ドレスの構成、およびIPパケットのパケットヘッダフ
ォーマット。
【図4】一般的なルータの構成例を示す図。
【図5】本発明で定義する経路アドレスの構成図。
【図6】経路アドレス長3ビットの場合の全てのノード
がある2分木。
【図7】経路アドレス長3ビットの場合のマルチキャス
トルーティングテーブルの例。
【図8】図6においてエントリが割り付けられておら
ず、かつ、エントリ付きのノードへの途中経路にもなっ
ていないノードを取り除いた木。
【図9】経路アドレス32ビットの場合のマルチキャス
トルーティングテーブルの例。
【図10】図9に示したマルチキャストルーティングテ
ーブルに対応する木。
【図11】図10において枝別れもエントリの割り付け
も無いノードを取り除いた木。
【図12】2分木ノードのデータ構造を示す図。
【図13】2分木から8分木への変形時に一つの8分木
ノードにまとめられる2分木ノードを囲んだ木。
【図14】マスク長が0ビットから始まらないようにビ
ット位置を区切った場合に最初のノードをメモリ上に展
開することにより区切り位置までのビットの検索を行う
木。
【図15】先頭のさらに多くのビット数の検索時間を省
いた木。
【図16】2分木から4分木への変形時に1つの4分木
ノードにまとめられる2つの2分木ノードを2つの2分
木ノード分につぶした木。
【図17】1つの4分木ノードにまとめられる3つの2
分木ノードの、2つの2分木ノードへのつぶし方。
【図18】1つの8分木ノードにまとめられる7つの2
分木ノードの、4つの2分木ノードへのつぶし方。
【図19】4分木ノードのデータ構造を示す図。
【図20】ノードの大きさが大きくなったときにノード
データリード時間の増大を防ぐために1つのノード全て
を読み込まずに一部だけを読み込む方法を示す図。
【図21】条件によっては読み込む必要が無い要素を、
条件に従い読み込まないようにすることで読み込みの時
間を削減することで高速化を図る方法を示す図。
【図22】本発明の一実施例である経路検索処理部の検
索処理フローチャート。
【図23】本発明の一実施例である経路検索処理部のブ
ロック図。
【図24】本発明の一実施例である、木構造のマルチキ
ャストルーティングテーブル検索を行う木構造検索処理
回路のブロック図。
【図25】ハッシュ方式、2分木方式、2のp乗分木方
式の、エントリ数に対する処理性能を示す図。
【符号の説明】
T11、T12、T21、T22、T31、T32、T
41、T42、T51、T52・・・ネットワーク上でパ
ケットを送受信する端末、SN1〜SN5・・・各端末が
属するサブネットワーク、R1〜R3・・・サブネットワ
ークを相互に接続するルータ、P11、P12、P1
3、P21、P22、P23、P24、P31、P3
2、P34、P35・・・各ルータのポート、1・・・IPア
ドレス、2・・・サブネットワークを識別するサブネット
ワークアドレス、3・・・ネットワーク内の端末を識別す
るホストアドレス、4・・・クラスDのIPアドレス、5・
・・クラスDであることを示すクラスDのIPアドレスの
上位4ビット、6・・・マルチキャスト・グループID、
7・・・IPパケットヘッダの送信元アドレスフィール
ド、8・・・IPパケットヘッダの宛先アドレスフィール
ド、11-i(=1〜N)・・・ルータの入力ポート、12-i
(=1〜N)・・・ルータの出力ポート、13-i(=1〜N)・
・・ルーティング処理部、14・・・スイッチ、15-i(=1
〜N)・・・通信制御部、16・・・管理部、32・・・マルチキ
ャスト・グループアドレス、送信元IPアドレスの順に
連結して生成した経路アドレス、33・・・マルチキャス
ト・グループID、送信元IPアドレスの順に連結して
生成した経路アドレス、60・・・経路アドレス長3ビッ
トの場合の受信パケットの経路アドレスの一例、40〜
54、62〜65、70〜84、90〜95、100〜
104、130〜144・・・木を構成するノード、61・
・・枝別れもエントリの割り付けも無いノードの長い列、
110〜113、115・・・2分木ノードを構成する3
2ビットを単位とするワード、114・・・送信ポート情
報、120〜127・・・4分木ノードを構成する32ビ
ットを単位とするワード、200・・・経路検索処理回
路、201・・・木構造検索回路、202〜204、20
6・・・経路検索処理回路を構成する各回路、205・・・転
送処理部、経路検索処理部間の信号線、207〜21
3、215〜230・・・木構造検索回路を構成する各回
路および信号線、226・・・経路検索処理制御回路から
の読み込みノード(初段ノードかそれ以外か)選択制御信
号線、300・・・マルチキャストルーティングテーブル
が格納されるメモリ、400・・・経路検索処理回路とメ
モリから構成される経路検索処理部、500、604、
605・・・ルータに接続されるネットワークの例、50
1、602、603・・・通信制御部、502・・・パケット
データのメモリ格納およびメモリからの読み出しを制御
する制御回路、503・・・パケットデータが格納される
メモリ、504・・・パケット転送処理部、505・・・複数
のパケット処理部および管理部が接続されるスイッチ、
600・・・パケット処理部、601・・・ルータ全体の管理
を行う管理部、700・・・ルータ。
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) H04L 13/08 (72)発明者 須貝 和雄 神奈川県秦野市堀山下1番地 株式会社日 立製作所汎用コンピュータ事業部内 (72)発明者 相本 毅 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 松山 信仁 神奈川県秦野市堀山下1番地 株式会社日 立インフォメーションテクノロジー内 (72)発明者 左古 義人 神奈川県秦野市堀山下1番地 株式会社日 立製作所汎用コンピュータ事業部内 (72)発明者 関野 浩 神奈川県秦野市堀山下1番地 株式会社日 立インフォメーションテクノロジー内 Fターム(参考) 5B089 GA31 HB02 KA05 KB06 KC15 KC20 KC44 KE07 KG08 5K030 GA01 HA08 HB11 HB28 HC01 HC14 HD03 HD06 HD09 KA05 KX28 LB06 LD01 5K033 AA02 CB01 CB08 CB11 CB13 CC02 DA01 DA05 DB18 EC03 5K034 AA02 BB07 DD03 EE09 FF08 FF11 FF13 KK21 LL01

Claims (23)

    【特許請求の範囲】
  1. 【請求項1】受信したマルチキャストパケットの宛先ア
    ドレスと送信元アドレスを検索のキーにして上記マルチ
    キャストパケットに対する経路情報を検索し、上記経路
    情報に従い1つ又は複数のポートに上記マルチキャスト
    パケットを転送するパケット中継装置において、 宛先アドレスと送信元アドレスとを連結した経路アドレ
    スのビットパターンに対応した2分木構造の検索木情報
    を格納する記憶手段と、 受信したマルチキャストパケットから宛先アドレスと送
    信元アドレスとを読み出し、その読み出した宛先アドレ
    スと送信元アドレスとを連結して経路アドレスを生成
    し、その生成された経路アドレスと上記記憶手段に格納
    されている経路アドレスとの一致判定を行う一致判定手
    段とを有することを特徴とするパケット中継装置。
  2. 【請求項2】受信したマルチキャストパケットの宛先ア
    ドレスと送信元アドレスを検索のキーにして上記マルチ
    キャストパケットに対する経路情報を検索し、上記経路
    情報に従い1つ又は複数のポートに上記マルチキャスト
    パケットを転送するパケット中継装置において、 宛先アドレスと送信元アドレスとをこの順に連結した経
    路アドレスのビットパターンに対応した2分木構造の検
    索木情報を格納する記憶手段と、 受信したマルチキャストパケットから宛先アドレスと送
    信元アドレスとを読み出し、その読み出した宛先アドレ
    スと送信元アドレスとをこの順に連結して経路アドレス
    を生成し、その生成された経路アドレスと上記記憶手段
    に格納されている経路アドレスとの一致判定を行う一致
    判定手段とを有することを特徴とするパケット中継装
    置。
  3. 【請求項3】上記一致判定手段は、上記受信したマルチ
    キャストパケットから生成した経路アドレスの上位ビッ
    トから1ビットづつ、上記記憶手段に格納されている経
    路アドレスとの一致判定を行うことを特徴とする請求項
    1又は請求項2の何れかに記載のパケット中継装置。
  4. 【請求項4】受信したマルチキャストパケットの宛先ア
    ドレスと送信元アドレスを検索のキーにして上記マルチ
    キャストパケットに対する経路情報を検索し、上記経路
    情報に従い1つ又は複数のポートに上記マルチキャスト
    パケットを転送するパケット中継装置において、 宛先アドレスと送信元アドレスとを連結した経路アドレ
    スのビットパターンに対応した2分木構造の検索木情報
    を格納する記憶手段と、 受信したマルチキャストパケットから宛先アドレスと送
    信元アドレスとを読み出し、その読み出した宛先アドレ
    スと上記記憶手段に格納されている経路アドレスとの一
    致判定を行い、その読み出した送信元アドレスと上記記
    憶手段に格納されている経路アドレスとの一致判定を行
    う一致判定手段とを有することを特徴とするパケット中
    継装置。
  5. 【請求項5】上記一致判定手段は、受信したマルチキャ
    ストパケットから読み出した宛先アドレスと上記記憶手
    段に格納されている経路アドレスとの一致判定を、受信
    したマルチキャストパケットから読み出した送信元アド
    レスと上記記憶手段に格納されている経路アドレスとの
    一致判定より先に行うことを特徴とする請求項4に記載
    のパケット中継装置。
  6. 【請求項6】受信したマルチキャストパケットの宛先ア
    ドレスと送信元アドレスを検索のキーにして上記マルチ
    キャストパケットに対する経路情報を検索し、上記経路
    情報に従い1つ又は複数のポートに上記マルチキャスト
    パケットを転送するパケット中継装置において、 宛先アドレスと送信元アドレスとを連結した経路アドレ
    スのビットパターンに対応した2のp乗分木構造(pは
    自然数)の検索木情報を格納する記憶手段と、 受信したマルチキャストパケットから宛先アドレスと送
    信元アドレスとを読み出し、その読み出した宛先アドレ
    スと送信元アドレスとを連結して経路アドレスを生成
    し、その生成された経路アドレスと上記記憶手段に格納
    されている経路アドレスとの一致判定を行う一致判定手
    段とを有することを特徴とするパケット中継装置。
  7. 【請求項7】受信したマルチキャストパケットの宛先ア
    ドレスと送信元アドレスを検索のキーにして上記マルチ
    キャストパケットに対する経路情報を検索し、上記経路
    情報に従い1つ又は複数のポートに上記マルチキャスト
    パケットを転送するパケット中継装置において、 宛先アドレスと送信元アドレスとをこの順に連結した経
    路アドレスのビットパターンに対応した2のp乗分木構
    造(pは自然数)の検索木情報を格納する記憶手段と、 受信したマルチキャストパケットから宛先アドレスと送
    信元アドレスとを読み出し、その読み出した宛先アドレ
    スと送信元アドレスとをこの順に連結して経路アドレス
    を生成し、その生成された経路アドレスと上記記憶手段
    に格納されている経路アドレスとの一致判定を行う一致
    判定手段とを有することを特徴とするパケット中継装
    置。
  8. 【請求項8】上記一致判定手段は、上記受信したマルチ
    キャストパケットから生成した経路アドレスの上位ビッ
    トからpビットづつ、上記記憶手段に格納されている経
    路アドレスとの一致判定を行うことを特徴とする請求項
    6又は請求項7の何れかに記載のパケット中継装置。
  9. 【請求項9】受信したマルチキャストパケットの宛先ア
    ドレスと送信元アドレスを検索のキーにして上記マルチ
    キャストパケットに対する経路情報を検索し、上記経路
    情報に従い1つ又は複数のポートに上記マルチキャスト
    パケットを転送するパケット中継装置において、 宛先アドレスと送信元アドレスとを連結した経路アドレ
    スのビットパターンに対応した2のp乗分木構造(pは
    自然数)の検索木情報を格納する記憶手段と、 受信したマルチキャストパケットから宛先アドレスと送
    信元アドレスとを読み出し、その読み出した宛先アドレ
    スと上記記憶手段に格納されている経路アドレスとの一
    致判定を行い、その読み出した送信元アドレスと上記記
    憶手段に格納されている経路アドレスとの一致判定を行
    う一致判定手段とを有することを特徴とするパケット中
    継装置。
  10. 【請求項10】上記一致判定手段は、受信したマルチキ
    ャストパケットから読み出した宛先アドレスと上記記憶
    手段に格納されている経路アドレスとの一致判定を、受
    信したマルチキャストパケットから読み出した送信元ア
    ドレスと上記記憶手段に格納されている経路アドレスと
    の一致判定より先に行うことを特徴とする請求項9に記
    載のパケット中継装置。
  11. 【請求項11】複数のネットワークを相互に接続し、パ
    ケットを中継するパケット中継装置であって、受信した
    マルチキャストパケットの宛先アドレスと送信元アドレ
    スを検索のキーにして上記マルチキャストパケットに対
    する経路情報を検索し、上記経路情報に従い1つ又は複
    数のポートに上記マルチキャストパケットを転送するパ
    ケット中継装置において、 宛先アドレスと送信元アドレスを連結して経路アドレス
    とし、上記経路アドレスのビットパターンに対応した2
    分木構造に構成された検索木情報を格納する記憶手段
    と、 受信したマルチキャストパケットの宛先アドレスと送信
    元アドレスを連結した経路アドレスの上位ビットから1
    ビットづつ検査し、その検査したビットの値によって上
    記記憶手段に格納された2分木構造をもつ検索木を検索
    する回路とを有することを特徴とするパケット中継装
    置。
  12. 【請求項12】複数のネットワークを相互に接続し、パ
    ケットを中継するパケット中継装置であって、受信した
    マルチキャストパケットの宛先アドレスと送信元アドレ
    スを検索のキーにして上記マルチキャストパケットに対
    する経路情報を検索し、上記経路情報に従い1つ又は複
    数のポートに上記マルチキャストパケットを転送するパ
    ケット中継装置において、 送信元アドレスと宛先アドレスとを、宛先アドレス、送
    信元アドレスの順に連結して経路アドレスとし、上記経
    路アドレスのビットパターンに対応した2分木構造に構
    成された検索木情報を格納する記憶手段と、 受信したマルチキャストパケットの宛先アドレスと送信
    元アドレスをこの順に連結した経路アドレスの上位ビッ
    トから1ビットづつ検査し、その検査したビットの値に
    よって上記記憶手段に格納された2分木構造をもつ検索
    木を検索する回路とを有することを特徴とするパケット
    中継装置。
  13. 【請求項13】複数のネットワークを相互に接続し、パ
    ケットを中継するパケット中継装置であって、受信した
    マルチキャストパケットの宛先アドレスと送信元アドレ
    スを検索のキーにして上記マルチキャストパケットに対
    する経路情報を検索し、上記経路情報に従い1つ又は複
    数のポートに上記マルチキャストパケットを転送するパ
    ケット中継装置において、 送信元アドレスと宛先アドレスとを、宛先アドレス、送
    信元アドレスの順に連結して経路アドレスとし、上記経
    路アドレスのビットパターンに対応した2のp乗分木構
    造に構成された検索情報を格納する記憶手段と、 受信したマルチキャストパケットの宛先アドレスと送信
    元アドレスを連結した経路アドレスの上位ビットからp
    ビットづつ検査し、その検査したビットの値によって上
    記記憶手段に記憶された2のp乗分木構造をもつ検索木
    を検索する回路とを有することを特徴とするパケット中
    継装置。
  14. 【請求項14】複数のネットワークを相互に接続し、パ
    ケットを中継するパケット中継装置であって、受信した
    マルチキャストパケットの宛先アドレスと送信元アドレ
    スを検索のキーとして上記マルチキャストパケットに対
    する経路情報を検索し、上記経路情報に従い1つ又は複
    数のポートに上記マルチキャストパケットを転送するパ
    ケット中継装置において、 送信元アドレスと宛先アドレスとをこの順に連結した経
    路アドレスのビットパターンに対応する2分木構造をと
    る検索テーブルを格納する記憶手段と、 経路アドレスの上位mビットに対応する2のm乗個の2
    分木のノードを、記憶手段上の決まった位置に展開し、
    それぞれのノードを、経路アドレスの第0ビットから第
    (m−1)ビットまでが取りうる値に1対1に対応させ、
    検索時には、経路アドレスの第0ビットから第(m−1)
    ビットの値に従って、展開されたノードの一つを選択
    し、第mビット以降は経路アドレスを1ビットづつ検査
    し、その検査ビットの値によって上記記憶手段に記憶さ
    れた2分木構造をもつ検索木の枝を検索する回路を有す
    ることを特徴とするパケット中継装置。
  15. 【請求項15】複数のネットワークを相互に接続し、パ
    ケットを中継するパケット中継装置であって、受信した
    マルチキャストパケットの宛先アドレスと送信元アドレ
    スを検索のキーとして上記マルチキャストパケットに対
    する経路情報を検索し、上記経路情報に従い1つ又は複
    数のポートに上記マルチキャストパケットを転送するパ
    ケット中継装置において、 送信元アドレスと宛先アドレスを、宛先アドレス、送信
    元アドレスの順に連結して経路アドレスとし、この経路
    アドレスのビットパターンに対応する2のp乗分木構造
    をとる検索テーブルを格納する記憶手段と、 経路アドレスの上位mビットに対応する2のm乗個の2
    のp乗分木のノードを、記憶手段上の決まった位置に展
    開し、それぞれのノードを、経路アドレスの第0ビット
    から第(m−1)ビットまでが取りうる値に1対1に対応
    させ、検索時には、経路アドレスの第0ビットから第
    (m−1)ビットの値に従って、展開されたノードの一つ
    を選択し、第mビット以降は経路アドレスをpビットづ
    つ検査し、その検査したビットの値によって上記記憶手
    段に記憶された2のp乗分木構造をもつ検索木の枝を検
    索する回路を有することを特徴とするパケット中継装
    置。
  16. 【請求項16】請求項12に記載ののパケット中継装置
    において、 検索木情報を、1つの2分木ノードと、その直下につな
    がるp−1段分の合計(2のp乗−1)個分の2分木ノー
    ドを一つの2のp乗分木ノードにまとめ、まとめられる
    最下段の2の(p−1)乗個の2分木ノードに、それより
    上段のノードに割り付けられていたエントリデータを埋
    め込み、2のp乗分木ノードを、2分木を2の(p−1)
    乗個分併せた形で構成することを特徴とするパケット中
    継装置。
  17. 【請求項17】請求項12に記載のパケット中継装置に
    おいて、一つの2分木ノードと、その直下につながるp
    −1段分の合計(2のp乗−1)個分の2分木ノードを一
    つの2のp乗分木ノードにまとめ、まとめられる最下段
    の2の(p−1)乗個の2分木ノードに、それより上段の
    ノードに割り付けられていたエントリデータを埋め込む
    ことにより、2のp乗分木ノードを、2分木を2の(p
    −1)乗個分併せた形で構成することに加え、2分木を
    複数個併せるときに、一つだけ持てば良い要素を一つだ
    け保持するようにすることを特徴とする特徴とするパケ
    ット中継装置。
  18. 【請求項18】請求項15又は請求項16の何れかに記
    載ののパケット中継装置において、 2のp乗分木ノードを検索のために読むときにノード全
    てを読まずに、2のp乗分木ノードを作成するときに併
    せた2の(p−1)乗個の2分木ノードの内の、いずれか
    一つに対応するデータのみを読むようにすることを特徴
    とするパケット中継装置。
  19. 【請求項19】請求項17に記載のパケット中継装置に
    おいて、 各ノードにそのノード自身のマスク長を格納するのでは
    なく、そのノードの直ぐ下に繋がるノードのマスク長を
    格納することにより、ノードのマスク長を、そのノード
    のデータを読む前に知り、経路アドレスの、ノードのマ
    スク長で示されるビット位置から、そのビット位置+p
    −1までの値に従い、ノードのデータの内、読み込む部
    分を選択することを特徴とするパケット中継装置。
  20. 【請求項20】ルータに入ってきたパケットの宛先アド
    レスから、このパケットを次に出力すべきポート、及
    び、次に送るべきルータ、又はホストのアドレスを高速
    に検索するための検索手段に関し、 検索を、宛先アドレスの上位ビットから1ビットづつ検
    査してゆく2分木検索により行い、検査を行うビット位
    置を、マスク長に対応させることにより、マスク付きの
    一致検索を行い、検索木の各ノードの最初に読み込むデ
    ータ内に、そのノードにエントリが割り付けられている
    か否かを示すフラグを設け、最初に、このフラグを読み
    込み、エントリが割り付けられていないノードでは、経
    路情報を読み込まないようにすることにより、データの
    読み込み時間を短縮し、検索処理の高速化を図ることを
    特徴とするパケット中継装置。
  21. 【請求項21】請求項11乃至請求項13の何れかに記
    載のパケット中継装置において、 マルチキャストパケットの宛先アドレスの上位数ビット
    がマルチキャストパケットであることを示す識別ビット
    として使用される場合、宛先アドレスから上記識別ビッ
    トを除いたものと送信元アドレスを連結して経路アドレ
    スとすることを特徴とするパケット中継装置。
  22. 【請求項22】請求項12に記載のパケット中継装置に
    おいて、 検索結果である送信ポート情報を検索木データから分離
    して記憶手段の別領域に格納し、検索木データには上記
    の分離した送信ポート情報が格納されているアドレスを
    保持することを特徴とすることを特徴とするパケット中
    継装置。
  23. 【請求項23】マルチキャストパケットのヘッダ情報を
    入力され、上記マルチキャストパケットに対する送信ポ
    ート等の転送情報を検索して出力する専用LSIにおい
    て、マルチキャストパケットの宛先アドレスと送信元ア
    ドレスをこの順に連結した経路アドレスの上位ビットか
    らpビットづつ検査し、上記検査ビットの値によって記
    憶手段に記憶された2のp乗分木構造をもつ検索木を検
    索する回路を有することを特徴とする専用LSI。
JP28220598A 1998-10-05 1998-10-05 パケット中継装置およびlsi Expired - Lifetime JP3735471B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP28220598A JP3735471B2 (ja) 1998-10-05 1998-10-05 パケット中継装置およびlsi
CA002281018A CA2281018C (en) 1998-10-05 1999-08-30 Packet relaying apparatus and high speed multicast system
EP19990117151 EP0993144B1 (en) 1998-10-05 1999-08-31 Packet relaying apparatus and method and circuit thereof
DE69942850T DE69942850D1 (de) 1998-10-05 1999-08-31 Packetrelaisvorrichtung und dazugehörige Verfahren und Schaltung
US09/389,301 US6778532B1 (en) 1998-10-05 1999-09-02 Packet relaying apparatus and high speed multicast system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28220598A JP3735471B2 (ja) 1998-10-05 1998-10-05 パケット中継装置およびlsi

Publications (3)

Publication Number Publication Date
JP2000115243A true JP2000115243A (ja) 2000-04-21
JP2000115243A5 JP2000115243A5 (ja) 2004-12-09
JP3735471B2 JP3735471B2 (ja) 2006-01-18

Family

ID=17649444

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28220598A Expired - Lifetime JP3735471B2 (ja) 1998-10-05 1998-10-05 パケット中継装置およびlsi

Country Status (5)

Country Link
US (1) US6778532B1 (ja)
EP (1) EP0993144B1 (ja)
JP (1) JP3735471B2 (ja)
CA (1) CA2281018C (ja)
DE (1) DE69942850D1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002208947A (ja) * 2001-01-12 2002-07-26 Nec Corp 経路検索システムとその検索方法、及び経路検索プログラムを記録した記録媒体
KR100418562B1 (ko) * 2001-09-06 2004-02-14 주식회사 기지소프트 다중전송을 위한 중계경로 생성방법
US6874033B1 (en) 1998-03-23 2005-03-29 Hitachi, Ltd. Network repeater and network next transfer desitination searching method

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001186142A (ja) * 1999-12-27 2001-07-06 Toshiba Corp パケットバッファ装置、及び、パケットスイッチ装置
US7089240B2 (en) 2000-04-06 2006-08-08 International Business Machines Corporation Longest prefix match lookup using hash function
US7111071B1 (en) * 2000-06-29 2006-09-19 Intel Corporation Longest prefix match for IP routers
US7310335B1 (en) * 2000-09-06 2007-12-18 Nokia Networks Multicast routing in ad-hoc networks
JP4151217B2 (ja) * 2000-12-15 2008-09-17 沖電気工業株式会社 データグラム転送装置
EP1248430B1 (de) * 2001-04-07 2005-10-05 Vector Informatik GmbH Verfahren und Generierungsmodul zur Ermittlung von Filtermasken zur Relevanzprüfung von Kennzeichnern
US20030026246A1 (en) * 2001-06-06 2003-02-06 Zarlink Semiconductor V.N. Inc. Cached IP routing tree for longest prefix search
US7126944B2 (en) * 2001-07-05 2006-10-24 Intel Corporation Routing packets across multiple forwarding elements
JP2003032287A (ja) * 2001-07-16 2003-01-31 Furukawa Electric Co Ltd:The ネットワーク間接続方法、その装置およびその装置を用いたシステム
US7103054B2 (en) * 2001-07-16 2006-09-05 International Business Machines Corporation Methods and arrangements for building a subsource address multicast distribution tree using point to point routing records
US6925503B2 (en) * 2001-07-27 2005-08-02 International Business Machines Corporation Method and system for performing a longest prefix match search
IL145040A0 (en) * 2001-08-21 2002-06-30 Infocyclone Inc Tree search unit
US7110404B1 (en) * 2001-09-04 2006-09-19 Cisco Technology, Inc. System and method for sending a packet to multiple destinations using a pipeline network processor
US8385361B2 (en) * 2001-10-19 2013-02-26 Intellectual Ventures I Llc Multicast transmission to a radio access network
JP4048861B2 (ja) * 2002-07-23 2008-02-20 日本電気株式会社 アドレス検索装置
US7263099B1 (en) 2002-08-14 2007-08-28 Juniper Networks, Inc. Multicast packet replication
US7362744B2 (en) * 2002-08-15 2008-04-22 International Business Machines Corporation Database management system and method of using it to transmit packets
US7346009B2 (en) * 2002-09-30 2008-03-18 Mosaid Technologies, Inc. Dense mode coding scheme
US7389353B2 (en) * 2003-01-22 2008-06-17 Nokia Corporation Method, system and mirror driver for LAN mirroring
JP2004282255A (ja) * 2003-03-13 2004-10-07 Matsushita Electric Ind Co Ltd 通信システム
JP3813136B2 (ja) * 2003-04-25 2006-08-23 インターナショナル・ビジネス・マシーンズ・コーポレーション 通信制御装置、通信制御方法、通信制御プログラム、通信制御用データ構造
WO2005004420A2 (en) * 2003-07-02 2005-01-13 Mitsubishi Electric Research Laboratories, Inc. Method and apparatus for routing data in a personal area network
US20070053356A1 (en) * 2003-10-30 2007-03-08 Venkat Konda Nonblocking and deterministic multirate multicast packet scheduling
WO2005071042A1 (en) 2004-01-23 2005-08-04 Aquatech, Llc Petroleum recovery and cleaning system and process
US7519733B1 (en) * 2004-05-13 2009-04-14 Cisco Technology, Inc. Arrangement in a router for establishing multicast group hierarchy and coalescence
US7143218B1 (en) 2004-08-27 2006-11-28 Xilinx, Inc. Network media access controller embedded in a programmable logic device-address filter
US7493511B1 (en) 2004-08-27 2009-02-17 Xilinx, Inc. Network media access controller embedded in a programmable logic device—transmit-side client interface
TWI277325B (en) * 2005-10-28 2007-03-21 Ind Tech Res Inst Packet transmitting method of wireless network
GB0524126D0 (en) 2005-11-26 2006-01-04 Cogniscience Ltd Data transmission method
US20110174307A1 (en) * 2006-01-04 2011-07-21 Lessi Stephane Device for Supplying Oxygen to the Occupants of an Aircraft and Pressure Regulator for Such a Device
EP2063578A1 (en) * 2006-09-15 2009-05-27 NEC Corporation Packet distribution system and packet distribution method
CN101296020A (zh) * 2007-04-27 2008-10-29 北京三星通信技术研究有限公司 部分功能ofdma中继系统直接消息转发的实现方法
CN101141389B (zh) * 2007-09-29 2010-06-16 华为技术有限公司 增强多位Trie树查找方法和装置
KR100929116B1 (ko) * 2007-12-10 2009-11-30 한국전자통신연구원 헤드엔드 케이블모뎀을 위한 멀티캐스트 서비스 플로우처리 방법 및 장치
US8114117B2 (en) * 2008-09-30 2012-02-14 Tyco Healthcare Group Lp Compression device with wear area
US7796541B1 (en) 2008-09-30 2010-09-14 Juniper Networks, Inc. Methods and apparatus for range matching during packet classification based on a linked-node structure
US8675648B1 (en) 2008-09-30 2014-03-18 Juniper Networks, Inc. Methods and apparatus for compression in packet classification
US7738454B1 (en) * 2008-09-30 2010-06-15 Juniper Networks, Inc. Methods and apparatus related to packet classification based on range values
US7961734B2 (en) 2008-09-30 2011-06-14 Juniper Networks, Inc. Methods and apparatus related to packet classification associated with a multi-stage switch
US7835357B2 (en) * 2008-09-30 2010-11-16 Juniper Networks, Inc. Methods and apparatus for packet classification based on policy vectors
US8798057B1 (en) 2008-09-30 2014-08-05 Juniper Networks, Inc. Methods and apparatus to implement except condition during data packet classification
US8804950B1 (en) 2008-09-30 2014-08-12 Juniper Networks, Inc. Methods and apparatus for producing a hash value based on a hash function
US8111697B1 (en) 2008-12-31 2012-02-07 Juniper Networks, Inc. Methods and apparatus for packet classification based on multiple conditions
US8488588B1 (en) 2008-12-31 2013-07-16 Juniper Networks, Inc. Methods and apparatus for indexing set bit values in a long vector associated with a switch fabric
US7889741B1 (en) 2008-12-31 2011-02-15 Juniper Networks, Inc. Methods and apparatus for packet classification based on multiple conditions
JP5282693B2 (ja) * 2009-07-27 2013-09-04 株式会社リコー 画像形成装置、表示制御方法、及びプログラム
US8463938B2 (en) * 2009-10-23 2013-06-11 Comcast Cable Communications, Llc Address couplet communication filtering
US8769148B1 (en) 2010-07-30 2014-07-01 Google Inc. Traffic distribution over multiple paths in a network
US9282060B2 (en) 2010-12-15 2016-03-08 Juniper Networks, Inc. Methods and apparatus for dynamic resource management within a distributed control plane of a switch
CN102065014B (zh) * 2010-12-29 2014-12-31 中兴通讯股份有限公司 数据信元处理方法和装置
JP2012156698A (ja) * 2011-01-25 2012-08-16 Hitachi Ltd 中継装置、通信ネットワークシステム、及び、負荷分散方法
CN102694833B (zh) * 2011-03-22 2015-07-29 日电(中国)有限公司 多播树建立方法及多播系统中的服务器和节点
US9716592B1 (en) 2011-06-10 2017-07-25 Google Inc. Traffic distribution over multiple paths in a network while maintaining flow affinity
US11451474B2 (en) 2013-09-17 2022-09-20 Cisco Technology, Inc. Equal cost multi-path with bit indexed explicit replication
US10218524B2 (en) 2013-09-17 2019-02-26 Cisco Technology, Inc. Bit indexed explicit replication for layer 2 networking
US10461946B2 (en) * 2013-09-17 2019-10-29 Cisco Technology, Inc. Overlay signaling for bit indexed explicit replication
US9544230B2 (en) 2013-09-17 2017-01-10 Cisco Technology, Inc. Migration support for bit indexed explicit replication
US10003494B2 (en) 2013-09-17 2018-06-19 Cisco Technology, Inc. Per-prefix LFA FRR with bit indexed explicit replication
US9853822B2 (en) 2013-09-17 2017-12-26 Cisco Technology, Inc. Bit indexed explicit replication
US9806897B2 (en) 2013-09-17 2017-10-31 Cisco Technology, Inc. Bit indexed explicit replication forwarding optimization
US20150131665A1 (en) * 2013-11-12 2015-05-14 Broadcom Corporation Forwarding Database
US9906378B2 (en) 2015-01-27 2018-02-27 Cisco Technology, Inc. Capability aware routing
US10341221B2 (en) 2015-02-26 2019-07-02 Cisco Technology, Inc. Traffic engineering for bit indexed explicit replication
CN107239469B (zh) * 2016-03-29 2022-01-28 中兴通讯股份有限公司 路由信息查询方法和装置
US10630743B2 (en) 2016-09-23 2020-04-21 Cisco Technology, Inc. Unicast media replication fabric using bit indexed explicit replication
US10637675B2 (en) 2016-11-09 2020-04-28 Cisco Technology, Inc. Area-specific broadcasting using bit indexed explicit replication
US10447496B2 (en) 2017-03-30 2019-10-15 Cisco Technology, Inc. Multicast traffic steering using tree identity in bit indexed explicit replication (BIER)
US10164794B2 (en) 2017-04-28 2018-12-25 Cisco Technology, Inc. Bridging of non-capable subnetworks in bit indexed explicit replication

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5309433A (en) * 1992-06-18 1994-05-03 International Business Machines Corp. Methods and apparatus for routing packets in packet transmission networks
DE69324204T2 (de) * 1992-10-22 1999-12-23 Cabletron Systems Inc Aufsuchen von Adressen bei Paketübertragung mittels Hashing und eines inhaltsadressierten Speichers
US5386413A (en) * 1993-03-19 1995-01-31 Bell Communications Research, Inc. Fast multilevel hierarchical routing table lookup using content addressable memory
GB9326476D0 (en) * 1993-12-24 1994-02-23 Newbridge Networks Corp Network
US5784373A (en) * 1995-02-23 1998-07-21 Matsushita Electric Works, Ltd. Switching device for LAN
US5796944A (en) * 1995-07-12 1998-08-18 3Com Corporation Apparatus and method for processing data frames in an internetworking device
US6091725A (en) * 1995-12-29 2000-07-18 Cisco Systems, Inc. Method for traffic management, traffic prioritization, access control, and packet forwarding in a datagram computer network
US5826262A (en) * 1996-03-22 1998-10-20 International Business Machines Corporation Parallel bottom-up construction of radix trees
US5831975A (en) * 1996-04-04 1998-11-03 Lucent Technologies Inc. System and method for hierarchical multicast routing in ATM networks
US5873078A (en) * 1996-07-19 1999-02-16 Bay Networks, Inc. Radix tree search logic
JP3524285B2 (ja) * 1996-09-11 2004-05-10 株式会社東芝 通信装置及びその通信方法
JP3558151B2 (ja) * 1997-02-12 2004-08-25 日本電信電話株式会社 データ検索回路
US5946679A (en) * 1997-07-31 1999-08-31 Torrent Networking Technologies, Corp. System and method for locating a route in a route table using hashing and compressed radix tree searching
US6032190A (en) * 1997-10-03 2000-02-29 Ascend Communications, Inc. System and method for processing data packets
JP3186681B2 (ja) * 1997-12-25 2001-07-11 日本電気株式会社 経路検索回路及び通信制御装置
US6061712A (en) * 1998-01-07 2000-05-09 Lucent Technologies, Inc. Method for IP routing table look-up
US6201808B1 (en) * 1998-03-27 2001-03-13 Verizon Laboratories Inc. Self-routing multicast network architecture
US6396842B1 (en) * 1998-04-30 2002-05-28 3Com Corporation Method of searching using longest match based Randix Search Trie with variable length keys and having prefix capability

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6874033B1 (en) 1998-03-23 2005-03-29 Hitachi, Ltd. Network repeater and network next transfer desitination searching method
JP2002208947A (ja) * 2001-01-12 2002-07-26 Nec Corp 経路検索システムとその検索方法、及び経路検索プログラムを記録した記録媒体
KR100418562B1 (ko) * 2001-09-06 2004-02-14 주식회사 기지소프트 다중전송을 위한 중계경로 생성방법

Also Published As

Publication number Publication date
EP0993144A2 (en) 2000-04-12
US6778532B1 (en) 2004-08-17
DE69942850D1 (de) 2010-11-25
CA2281018C (en) 2004-10-12
CA2281018A1 (en) 2000-04-05
JP3735471B2 (ja) 2006-01-18
EP0993144B1 (en) 2010-10-13
EP0993144A3 (en) 2005-12-14

Similar Documents

Publication Publication Date Title
JP3735471B2 (ja) パケット中継装置およびlsi
US7418505B2 (en) IP address lookup using either a hashing table or multiple hash functions
EP1623347B1 (en) Comparison tree data structures and lookup operations
US6560610B1 (en) Data structure using a tree bitmap and method for rapid classification of data in a database
US6985483B2 (en) Methods and systems for fast packet forwarding
US7415472B2 (en) Comparison tree data structures of particular use in performing lookup operations
US20040085953A1 (en) Longest prefix matching (LPM) using a fixed comparison hash table
CN110460529B (zh) 一种内容路由器转发信息库存储结构的数据处理方法和芯片
US6819671B1 (en) Relay control circuit using hashing function algorithm
US20040044868A1 (en) Method and apparatus for high-speed longest prefix match of keys in a memory
US7085235B2 (en) Method and apparatus for constructing and searching IP address
JPH11341076A (ja) ネットワ―ク中継装置及びネットワ―ク次転送先検索方法
JP3970448B2 (ja) 情報中継方法および装置
EP1025678A2 (en) A lookup device and a method for classification and forwarding of packets
CN111865804B (zh) 一种通过硬件发包机制提升路由下发效率的方法及系统
US7171490B2 (en) Method and apparatus for reducing the number of write operations during route updates in pipelined forwarding engines
JPH05191411A (ja) パターン探索方法及び装置
Erdem et al. Value-coded trie structure for high-performance IPv6 lookup
Chung et al. A fast and updatable IP address lookup scheme
KR100493099B1 (ko) 고속 인터넷프로토콜 라우터의 라우팅/포워딩 룩업 및라우팅 테이블 관리
CN106330721B (zh) Ip路由查找方法及装置
Dai et al. An advanced TCAM-sram architecture for ranges towards minimizing packet classifiers
Lin et al. Improved IP lookup technology for trie-based data structures
JP2001144801A (ja) ヘッダ変換装置およびフレーム転送装置
JP4879728B2 (ja) 検索装置およびデータ処理装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050426

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20050530

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050920

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20051018

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051024

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091028

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091028

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101028

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111028

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121028

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121028

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131028

Year of fee payment: 8

EXPY Cancellation because of completion of term