JP3639553B2 - Routing processing apparatus and routing method - Google Patents

Routing processing apparatus and routing method Download PDF

Info

Publication number
JP3639553B2
JP3639553B2 JP2001325695A JP2001325695A JP3639553B2 JP 3639553 B2 JP3639553 B2 JP 3639553B2 JP 2001325695 A JP2001325695 A JP 2001325695A JP 2001325695 A JP2001325695 A JP 2001325695A JP 3639553 B2 JP3639553 B2 JP 3639553B2
Authority
JP
Japan
Prior art keywords
routing
address
information
area
packet
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.)
Expired - Fee Related
Application number
JP2001325695A
Other languages
Japanese (ja)
Other versions
JP2003143198A (en
Inventor
昌也 森
晋平 渡辺
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2001325695A priority Critical patent/JP3639553B2/en
Publication of JP2003143198A publication Critical patent/JP2003143198A/en
Application granted granted Critical
Publication of JP3639553B2 publication Critical patent/JP3639553B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、インターネット等のネットワークに適用する、データ転送の転送経路を制御するルーティングに関するものである。
【0002】
【従来の技術】
インターネット等のネットワークにおける最も典型的なプロトコルは、TCP(Transmission Control Protocol)/IP(Internet Protocol)である。このTCP/IPにおいて、ネットワークに接続される機器には、32ビット(bit)のアドレス、つまりIPアドレスが割り当てられる。ネットワークを流れるデータ・ストリーム(IPパケット)は、IPパケットを送り届ける先(以下、宛先)のIPアドレスを含んでいる。IPパケットを所定の宛先に送り届ける過程の経路制御(ルーティング)を行なうルータが、ネットワーク上に配置される。ルータは、IPパケットに含まれるIPアドレスを参照することによって、IPパケットの宛先までのルーティングを行なう。通常、送り主と宛先との間には、複数のルータが介在しており、IPパケットは、複数のルータを経由して宛先に届く。
【0003】
IPアドレスは、32ビットの大きさを有しており、かつネットワーク・アドレスとホスト・アドレスから構成される。なお、この32ビットという定義は、現行のIPv4によるものである。ネットワーク・アドレスは、宛先が属するネットワークを識別する番号であり、インターネットに接続される全ての他のネットワークにおけるネットワーク・アドレスと重ならないように設定される。ホスト・アドレスは当該ネットワーク上で宛先(ホストあるいはノード)を識別する番号であり、同一のネットワークにおいて他のホストと重ならないように設定される。ルーティングは、IPアドレスのうちのネットワーク・アドレスを参照することにより行なわれる。
ルータはルーティングを行なうためのルーティング・テーブルを所持する。このルーティング・テーブルには、IPパケットを次にどのルータへ転送すればよいかが格納されている。例えば、ルータAに対して2つのルータBおよびルータCが接続される一方、ルータBにはネットワークBが、またルータCにはネットワークCが接続されているとする。ルータAのルーティング・テーブルには、ネットワークBに転送されるべきIPパケットはルータBに転送すべきことが、ネットワークCに転送されるべきIPパケットはルータCに転送されるべきことが格納されているのである。
【0004】
IPアドレスは、クラスA〜Eという5種類のアドレス・クラスに分類される。このうち、クラスDおよびクラスEは、特殊用途に用いられており、ここでの説明は省略する。
クラスAは、IPアドレスの先頭ビットが“0”で始まる。そして、クラスAは、ネットワーク・アドレスがこの先頭の1ビットを含めて8ビット(実質7ビット)と定義され、残りの24ビットがホスト・アドレスになる。したがって、1つのネットワーク、換言すれば1つのネットワーク・アドレスに対して割り当てることのできるホスト・アドレスは、224個となる。ただし、このうちで全て“0”および全て“1”のものはリザーブ(Reserved)となっているため、現実に割り当てられるホスト・アドレスは、224−2個となる。
クラスBは、IPアドレスの先頭ビットが“10”で始まる。そして、クラスBは、ネットワーク・アドレスがこの先頭の2ビットを含めて16ビット(実質14ビット)までと定義され、残りの16ビットがホスト・アドレスになる。したがって、1つのネットワーク、換言すれば1つのネットワーク・アドレスに対して割り当てることのできるホスト・アドレスは、216個となる。このうちで全て“0”および全て“1”のものがリザーブ(Reserved)となっているのは、クラスAと同様である。
クラスCは、IPアドレスの先頭ビットが“110”で始まる。そして、クラスCは、ネットワーク・アドレスがこの先頭の3ビットを含めて24ビット(実質21ビット)までと定義され、残りの8ビットがホスト・アドレスになる。したがって、1つのネットワーク、換言すれば1つのネットワーク・アドレスに対して割り当てることのできるホスト・アドレスは、28個となる。このうちで全て“0”および全て“1”のものがリザーブ(Reserved)となっているのは、クラスA,Bと同様である。
最近では、上位ビットから指定されたビット数がネットワーク・アドレス、残りがホスト・アドレスとして使用するCIDR(Classless Inter Domain Routing)が主流になってきている。
【0005】
【発明が解決しようとする課題】
さて、ルータは、転送されたIPアドレスについて、上位から1ビットずつ順にルーティング・テーブル内に存在するか否か判断する。この手順を図8および図9に基づいて説明する。
ルーティング・テーブルは、メモリ上に展開されており、メモリにおけるアドレス(メモリ・アドレス)ごとに情報が格納された構造を有している。図8は、1つのメモリ・アドレスを構成するメモリの内容(メモリ・ユニットと呼ぶことにする)を示している。ルーティング・テーブルは、図8に示すメモリ・ユニットの集合体ということができる。
【0006】
メモリ・ユニットは、図8に示すように、2つに区分される。1つはネットワーク・アドレスのビット値が0の場合に参照される情報を格納し、他の1つはネットワーク・アドレスのビット値が1の場合に参照される情報を格納している。図8の例では、ビット値が0の場合に参照される情報を上段に格納し、ビット値が1の場合に参照される情報を下段に格納している。また、メモリ・ユニットは、参照すべき情報が格納されているか否かを示すヘッダ領域と、参照すべき情報が格納されている情報格納領域とから構成される。なお、ヘッダ領域および情報格納領域は、本明細書中で用いる名称であって、一般に用いられている名称ではない。ヘッダ領域には、1または0の値が入力されている。ヘッダ領域の値が1の場合には、対応する情報格納領域に参照すべき情報が格納されていることを示す。また、ヘッダ領域の値が0の場合には、対応する情報格納領域に参照すべき情報が格納されていないことを示す。
【0007】
情報格納領域には、次に参照すべきメモリ・ユニットのメモリ・アドレスが格納されている。このように、メモリ・ユニットは、次に参照すべきメモリ・ユニットを指し示すポインタということができる。また、情報格納領域には、IPパケットが転送されるべきポートの番号(図中、ポートNo.)が格納される。ここでポートとは、ルータがIPパケットを転送する出力端を意味し、通常ルータは複数のポートを有しており、各ポートには他のルータあるいはネットワークが接続されている。図8の例では、ビット値が0の場合には、次にメモリ・アドレス*1のメモリ・ユニットを参照する。また、ビット値が1の場合には、当該IPパケットは、メモリ・ユニットに格納されているNo.のポートから外部に対して転送される。転送されるIPパケットは、当該ポートに接続された他のルータまたはネットワーク・アドレスが所属するネットワークに届くことになる。
【0008】
さて、図9に示すように、あるルータに対して、ネットワーク・アドレスが「00110001」であるIPパケットが転送されてきたものとする。なお、このネットワーク・アドレスは、先頭ビットが0であるから、クラスAのIPアドレスに該当する。
ルータは、転送されたネットワーク・アドレスの先頭ビット値について、ルーティング・テーブルの、例えば先頭に位置するメモリ・ユニットを参照する。図9の例では、ネットワーク・アドレスの先頭ビット値は0である。一方、先頭のメモリ・ユニットの情報格納領域は、ビット値が0(ビット=0)の場合にはメモリ上のアドレスAのメモリ・ユニットを参照すべきことを、またビット値が1(ビット=1)の場合にはメモリ上のアドレスBのメモリ・ユニットを参照すべきことの情報を格納している。このとき、ヘッダ領域には、1が入力されている。したがって、図9に示す例では、ビット=0に対応する側の情報格納領域の参照情報であるアドレスBを次に参照することになる。
【0009】
アドレスBに存在するメモリ・ユニットを参照すると、ビット=0に対応する情報格納領域はアドレスCを示し、ビット=1に対応する情報格納領域はアドレスGを示している。ネットワーク・アドレスの2番目のビット値は0である。したがって、アドレスBのメモリ・ユニットを参照することにより、次にアドレスCに存在するメモリ・ユニットを参照すべきことが指示される。
次いで、アドレスCに存在するメモリ・ユニットを参照すると、ビット=0に対応する情報格納領域はアドレスFを示し、ビット=1に対応する情報格納領域はアドレスDを示している。ネットワーク・アドレスの3番目のビット値は1である。したがって、アドレスCのメモリ・ユニットを参照することにより、次にアドレスDに存在するメモリ・ユニットを参照すべきことが指示される。
【0010】
図9に示す例では、IPアドレスがクラスAに属しているため、以上のような参照手順が、ネットワーク・アドレスの先頭ビットから最後の8番目のビットまで順次繰り返される。例えば、7番目のビットまで以上の参照を繰り返した結果、アドレスOに辿り着いたとする。そして、ネットワーク・アドレスの8番目のビット値は1であり、一方、アドレスOのビット=1に対応する情報格納領域には、ポート#1が格納されている。したがって、当該IPパケットは、当該ルータのポート#1から外部に向けて転送されることを示している。前述のように、#1のポートには、他のルータまたはネットワークが接続されており、当該IPパケットは、前記他のルータまたは前記ネットワークに転送されることになる。
【0011】
以上のように、ルータにおいて、IPパケットの転送先が決定される過程で、ネットワーク・アドレスがルーティング・テーブルに対して複数回の参照作業が繰り返される。図9の例では、IPパケットがクラスAに属しているため最大8回の参照作業が繰り返されるに過ぎないが、クラスBでは最大16回、クラスCでは最大24回繰り返されることになる。これは、1台のルータにおけるIPパケットのルーティングに相当の時間を要することを示唆している。前述したように、IPパケットは、通常、複数台のルータを経由して宛先に届けられてから、ルーティングのために費やされる時間によって、IPパケットがホストに届くまでに不必要な遅延を招くおそれがある。
そこで本発明は、ルーティングに要する時間を短縮することのできる効率的なルーティング手法の提案を課題とする。
【0012】
【課題を解決するための手段】
従来のルーティング・テーブルを用いたルーティングは、ネットワーク・アドレスの上位から1ビットづつ参照、判定が繰り返されていた。そこで本発明は、複数ビットをまとめて参照することにより、ルーティングの時間を短縮することを検討した。その結果、ルーティング・テーブルの構成を変更することにより、複数ビットをまとめて参照可能であることを知見した。より具体的には、従来のルーティング・テーブルにおけるメモリ・ユニットがヘッダ領域と情報格納領域という2つの領域に区分されていたのに対して、図1に示すように、3つの領域に区分した。
3つの領域のうちの1つ目の領域は、従来のメモリ・ユニットのヘッダ領域に類似する情報を格納する領域であって、以後、コントロール領域と呼ぶことにする。また、2つ目の領域は、次に参照すべきルーティング・テーブルを構成するメモリ・ユニットの数(テーブル・サイズ)を表示する。このメモリ・ユニットの数は、1度に比較されるネットワーク・アドレス中のビットの数をも示している。本明細書中では、この領域をサイズ格納領域と呼ぶことにする。さらに、3つ目の領域は、従来のメモリ・ユニットの情報格納領域に極めて類似した性格を有する。
【0013】
コントロール領域には、転送先情報が存在しないこと、転送先情報が存在することまたはさらに参照すべきメモリ・ユニットが存在することのいずれかの情報が格納される。
サイズ格納領域には、次に参照すべきルーティング・テーブルのメモリ・ユニットの数に関する情報が格納される。また、サイズ格納領域に格納される情報は、ネットワーク・アドレスの中で参照されるビットの数をも示している。例えば、ここの記述(2進数)が“10”の場合には、次に参照されるルーティング・テーブルのメモリ・ユニットの数は22=4である。また、ネットワーク・アドレスの中で参照されるビットの数は2つ(2桁)である。ここで、参照されるビットの数が2つであるから、2進数では00,01,10および11の4つのケースが考えられる。メモリ・ユニットの数は、この4つのケースに対応している。つまり、ルーティング・テーブルは、00,01,10および11に対応して4つのメモリ・ユニットを保持することになる。なお、このメモリ・ユニットの数を、以下、ルーティング・テーブルのエントリ数ということがある。そして、参照されるビットの値自体も、00,01,10および11のいずれかであるから、00,01,10および11のいずれかに対応するメモリ・ユニットを次に参照することにすればよい。
本発明において、このサイズ格納領域を設け、かつこのサイズ格納領域に格納された値に対応する数のエントリ数を有するルーティング・テーブルを下層に設けることにより、ネットワーク・アドレス中の複数のビットを一度に参照することを可能にする。しかも、参照する複数のビット列が示す値に対応するメモリ・ユニットのみを参照すれば足りるため、参照に費やされる時間は、従来のルーティング・テーブルに比べて相当低減される。
情報格納領域には、次に参照すべきルーティング・テーブル上のアドレスあるいは当該IPパケットが転送されるポートNo.が格納されている。あるいは、参照すべきルーティング・テーブル上のアドレスあるいは当該IPパケットが転送されるポートNo.のいずれも格納されていない場合もある。これは、転送先がないことを示している。以上の構成からなるメモリ・ユニット(以下、ポインタ)からなるテーブルを階層化してルーティングを実行する。
本発明は、以上の事項に基づいてなされたものであり、以下の構成を有している。
【0014】
本発明は、受け取ったIPパケットについてのルーティングを実行するルーティング処理装置において、次に参照される先行テーブルの存在に関する情報を格納する第1の領域、先行テーブルのエントリ数を特定する情報を格納する第2の領域および先行テーブルについてのアドレス情報を格納する第3の領域を備える第1のポインタを有する。そして、この第1のポインタに続いて参照の対象となり、かつ、さらに次に参照される後続テーブルの存在に関する情報を格納する第4の領域、後続テーブルのエントリ数を特定する情報を格納する第5の領域および後続テーブルについてのアドレス情報を格納する第6の領域を備える第2のポインタを第1のポインタの第2の領域に格納されたエントリ数を特定する情報の分だけ有する先行テーブルとを備えた情報記憶部と、さらに、IPパケットに含まれるIPアドレスの所定のビット列が示す値に対応する第2のポインタを参照することを指示する参照指示部を備える。
【0015】
本発明のルーティング処理装置において、所定のビット列におけるビット数は、第1のポインタの第2の領域に格納されたエントリ数を特定する情報に基づいて定める。そして、所定のビット列が示す最大値が、テーブルのエントリ数と一致することにより、所定のビット列で表される値によって、参照すべきエントリを特定することができる。
【0016】
本発明のルーティング処理装置の先行テーブルにおいて、第4の領域に格納される後続テーブルの存在に関する情報は、後続テーブルの存在する情報記憶部内のアドレスが第6の領域に格納されているか否かを特定する情報とすることができる。また、この先行テーブルにおいて、第4の領域は、後続テーブルの存在に関する情報に替えて、IPパケットの転送先の存在を示す情報が格納されることもある。
そして、先行テーブルにおいて、第4の領域にIPパケットの転送先の存在を示す情報が格納されている場合には、第6の領域にIPパケットの転送先に関する情報が格納される。
【0017】
また本発明は、受け取ったIPパケットの転送先を特定するルーティング処理装置であって、IPパケットの転送先を格納するルーティング・テーブルと、ルーティング・テーブルを参照して転送先を特定するルーティング処理部と、を備え、ルーティング・テーブルは、1または2以上のポインタからなるテーブルが階層化されており、かつポインタは、自身より下位に位置する下層テーブルを特定する情報と、下層テーブルを構成するポインタの数を格納するルーティング処理装置を提供する。
【0018】
このルーティング処理装置において、ルーティング処理部は、ポインタの数に基づいてIPパケットに含まれるIPアドレスを構成するビット列の中の所定の複数ビットを特定し、下層テーブルを特定する情報および特定された複数ビットの値に基づいて、下層テーブルの中の該当するポインタを参照することにより、当該IPパケットの転送先を特定することができる。
【0019】
また、ルーティング処理部は、複数のテーブルを参照する際に、先行して参照された先行テーブルについて特定されたIPアドレスの中の第1の所定の複数ビットと、続いて参照された後続テーブルについて特定されたIPアドレスの中の第2の所定の複数ビットとして、第1の所定の複数ビットに連続し、かつ第1の所定の複数ビットよりも下位に位置する複数のビットとを順次に用いる。このようにして、IPアドレスを複数ビット毎に参照していくのが、本発明の1つの特徴である。
【0020】
本発明は以上のルーティング処理装置に適用することのできる、以下のルーティング方法を提供する。すなわち本発明のルーティング方法は、階層化された複数のルーティング・テーブルを順次参照することにより受け取ったIPパケットの転送先を特定するルーティング方法であって、先行して参照されるルーティング・テーブル(a)およびその次に参照されるルーティング・テーブル(b)は、参照先情報の格納領域を単数または複数備え、ルーティング・テーブル(a)の前記参照先情報に基づいて次に参照されるルーティング・テーブル(b)を特定する参照テーブル特定ステップと、IPパケットに含まれるIPアドレスに基づいて、ルーティング・テーブル(b)の中で参照される前記格納領域を特定する参照領域特定ステップと、を備えることを特徴としている。
【0021】
本発明のルーティング方法において、参照領域特定ステップは、IPアドレスを構成するビット情報の中で、ルーティング・テーブル(a)により特定された所定の複数のビット情報に基づいてルーティング・テーブル(b)の中で参照される格納領域を特定する。ここで、所定の複数のビット情報は、ルーティング・テーブル(a)に格納されたルーティング・テーブル(b)における格納領域の数を示すことができる。
さらに、本発明において、IPパケットの中で、IPパケットに含まれIPアドレスと予め設定された比較IPアドレスとを、相互に対応する所定のビット列の一致または不一致を判定し、比較IPアドレスと一致したIPアドレスを含むIPパケットをルーティングの対象とすることができる。つまり、ルーティング対象の絞込みを行なう。
【0023】
【発明の実施の形態】
以下本発明を実施の形態に基づいて説明する。なお、本実施の形態では、IPv4を例にして説明するが、IPv6について適用することもできることは言うまでもない。
図2は、本実施の形態によるルーティング処理装置1の主要構成を示すブロック図である。
ルーティング処理装置1は、TCP/IPに基づくルーティング処理を実行する装置であり、ルータあるいはスイッチに適用することができる。
ルーティング処理装置1は、デコード回路2と、デコード回路2に接続されたルーティング回路3〜5とを備えている。ルーティング回路3は、ブランチAポインタ31、処理部A32およびルーティング・テーブルA33とを備えている。また、ルーティング回路4は、ブランチBポインタ41、処理部B42およびルーティング・テーブルB43とを備えている。さらに、ルーティング回路5は、ブランチCポインタ51、処理部B52およびルーティング・テーブルC53とを備えている。処理部A32〜C52は、ブランチAポインタ31〜ブランチCポインタ51およびルーティング・テーブルA33〜C53の参照、ネットワーク・アドレスの参照等を実行する。
【0024】
デコード回路2は、IPパケットから得られたIPアドレスの転送を受けて、アドレス・クラスを判断し、ネットワーク・アドレスを分類する。前述のように、アドレス・クラスはクラスA〜Cの3つのクラスに分類される。この分類は、ネットワーク・アドレスの先頭1ビットが0の場合にクラスA、先頭2ビットが10の場合にクラスBまた先頭3ビットが110の場合にクラスCに分類される。この分類がクラスAの場合にはルーティング回路3が、クラスBの場合にはルーティング回路4が、さらにクラスCの場合にはルーティング回路5が選択され、各ルーティング回路3〜5において以後のルーティング処理が実行される。
この例では、クラスA〜Cの3つのクラスに分ける例について説明するが、前述したCIDR(Classless Inter Domain Routing)について本発明を適用することもできる。
【0025】
ブランチAポインタ31〜ブランチCポインタ51の基本的な構成は一致しており、図1に示す通りである。
図1に示すように、ブランチAポインタ31〜ブランチCポインタ51は、各々、コントロール領域、サイズ格納領域および情報格納領域の3つの領域から構成される。
コントロール領域には、2ビットからなるコントロール情報が格納される。図1に示すように、コントロール領域には、“01”、“10”および“11”の3種類の情報が格納される。この中で、“01”は、選択されたルーティング回路には転送先に関する情報が含まれていないことを示す。また、“10”は、対応する情報格納領域に当該IPパケットを転送するポートNo.換言すれば転送先が格納されていることを示している。さらに、“11”は、次に参照すべきルーティング・テーブル(以下、次段のルーティング・テーブル)のメモリ上のアドレスが格納されていることを示している。ここで、ブランチAポインタ31〜ブランチCポインタ51も、ルーティング・テーブルを構成する。そして、次段のルーティング・テーブルに対して上位の階層に位置することになる。つまり、本実施の形態によるルーティング・テーブルは、階層構造をなしている。この階層構造は、後述するより具体的な説明によって、明確になろう。
【0026】
サイズ格納領域には、5ビットからなるサイズ情報が格納されている。ただし、このビット数は5ビットに限るわけではなく、任意である。ここで、サイズとは、ルーティング・テーブルを構成するブランチ・ポインタの数、換言すればエントリの数をいう。例えば、図1に示すように、サイズ格納領域に“00010”が格納されている場合には、次段のルーティング・テーブルのサイズ(ブランチ・ポインタの数またはエントリ数)は、2=4となる。そして、図1に示すように、ルーティング・テーブルには、上位のブランチ・ポインタから順に、“00”,“01”,“10”および“11”の順位が割り当てられる。サイズ格納領域に“00011”が格納されていれば、次のルーティング・テーブルのサイズ(ブランチ・ポインタの数またはエントリ数)は、2=8となる。
【0027】
また、サイズ格納領域に格納される値は、次段のルーティング・テーブルの中で参照すべきブランチ・ポインタの位置を示している。例えば、図1に示すように、ネットワーク・アドレスが“11010101”だとする。そして、サイズ格納領域に“00010”が格納され、かつ次段のルーティング・テーブルが2段目のルーティング・テーブルの場合、先頭から2番目のビットと、これに続く3番目のビットが2段目のルーティング・テーブルの中で参照すべきブランチ・ポインタを示している。図1に示す例の場合、2番目のビット値が1、3番目のビット値が0である。したがって、2段目のルーティング・テーブルのなかで、“10”番目のブランチ・ポインタを参照することになる。この“10”番目のブランチ・ポインタの、情報格納領域には、メモリ・アドレスXが格納されている。これは、さらに次に参照すべきルーティング・テーブルのメモリ上のアドレスを示している。
【0028】
本実施の形態は、以上のようなブランチ・ポインタおよびブランチ・ポインタの集合としてのルーティング・テーブルを備えている。このルーティング・テーブルを用いることにより、ネットワーク・アドレスの中の複数のビットを一度に参照の対象とすることを可能にし、加えて、複数のエントリから構成されるルーティング・テーブルであっても、1つのブランチ・ポインタを参照すれば足りる。したがって、従来のルーティング・テーブルを用いる場合に比べて、効率的なルーティングを実現できる。
【0029】
以下では、本実施の形態によるルーティング・テーブルを用いたより具体的なルーティングの手順を、図3および図4に基づいて説明する。
図3は、図2におけるデコード回路2が、10010101.11001101.11101111.00000001からなるIPアドレスを受け取った例を示している。
受け取ったIPアドレスは、先頭2ビットが“10”であるから、クラスBに分類され、ルーティング回路4においてルーティングが実行される。
ルーティング回路4におけるルーティングは以下のように実行される。はじめに、ブランチBポインタ41が参照される。このブランチBポインタ41は、1段目のブランチ・ポインタ(またはルーティング・テーブル)に該当する。
【0030】
ブランチBポインタ41は、コントロール領域に“11”、サイズ格納領域に“00010”および情報格納領域に“メモリ・アドレスA”が格納されている。
コントロール領域の“11”は、次のルーティング・テーブルが存在することを示している。なお、ルータの機能上、1段目のブランチ・ポインタ(ブランチAポインタ31〜ブランチCポインタ51)におけるコントロール領域は“11”に設定される。
サイズ格納領域の“00010”は、次段である2段目のルーティング・テーブルにおけるブランチ・ポインタの数が22=4であることを示している。図3に示すように、2段目のルーティング・テーブルは、+00〜+11までの4つのブランチ・ポインタから構成されている。
また、サイズ格納領域の“00010”は、受け取ったネットワーク・アドレスの中で参照すべきビットの数が2つであることを示している。2段目のルーティング・テーブルにおいては、ネットワーク・アドレスの上位から2番目および3番目のビットを参照する。図3に示すように、上位から2番目および3番目のビットの値は、“00”であり、この値が参照される。そして、この“00”は、2段目のルーティング・テーブルにおいて参照すべきブランチ・ポインタを示している。
情報格納領域の“メモリ・アドレスA”は、アドレスAに展開されているルーティング・テーブルを次に参照することを示している。
【0031】
以上の通りであり、ブランチBポインタ41は、次段(2段目)のルーティング・テーブルが、メモリ上のアドレスAに展開されていること、この2段目のルーティング・テーブルは、4つのブランチ・ポインタから構成されることを示している。そして、受け取ったIPアドレスを考慮することにより、2段目のルーティング・テーブルの中で参照すべきブランチ・ポインタを特定することができる。
【0032】
次に、2段目のルーティング・テーブルについて説明する。
前述のように、2段目のルーティング・テーブルは、メモリ上のアドレスAに展開されていおり、4つのブランチ・ポインタから構成される。そして、図3にも示すように、上位のブランチ・ポインタから、+00,+01,+10および+11の順位が特定される。そして、ブランチBポインタ41およびネットワーク・アドレスから、2段目のルーティング・テーブルでは、+00のブランチ・ポインタを参照する。
参照するブランチ・ポインタは、コントロール領域に“11”、サイズ格納領域に“00011”および情報格納領域に“メモリ・アドレスB”が格納されている。
【0033】
コントロール領域の“11”は、前述のように、次のルーティング・テーブルが存在することを示している。
サイズ格納領域の“00011”は、次段である3段目のルーティング・テーブルにおけるブランチ・ポインタの数が23=8であることを示している。図3に示すように、3段目のルーティング・テーブルは、+000〜+111までの8つのブランチ・ポインタから構成されている。
また、サイズ格納領域が“00011”であるから、受け取ったネットワーク・アドレスの中で参照すべきビットの数は3つである。2段目のルーティング・テーブルを参照する過程で、既に上位から3番目までのビットが参照されており、今回は、上位から4番目、5番目および6番目の3つのビットが参照される。4番目、5番目および6番目のビットの値は、“101”であり、この値が、3段目のルーティング・テーブルにおいて参照すべきブランチ・ポインタを示している。
情報格納領域の“メモリ・アドレスB”は、メモリ上のアドレスBに展開されているルーティング・テーブルを次に参照することを示している。
【0034】
そこで、3段目のルーティング・テーブルについて説明する。
前述のように、3段目のルーティング・テーブルは、メモリ上のアドレスBに展開されており、8つのブランチ・ポインタから構成される。そして、図3にも示すように、上位のブランチ・ポインタから、+000〜+111の順位が付けられる。2段目のルーティング・テーブルおよびネットワーク・アドレスから、3段目のルーティング・テーブルでは、+101のブランチ・ポインタを参照することになる。
参照するブランチ・ポインタは、コントロール領域に“01”が格納されている。コントロール領域の“01”は、転送先に関する情報が含まれていないことを示す。したがって、ここまでの検索によって、受け取ったIPパケットは破棄されることになる。
【0035】
以上では、3段目までのルーティング・テーブルの検索後に当該IPパケット破棄された例を示したが、次に、当該IPパケットが所定の転送先に転送される例を次に説明する。
この例では、図4に示すように、11101011.11001101.11101111.00000001からなるIPアドレスをデコード回路2が受け取ったことを前提としている。
受け取ったIPアドレスは、先頭3ビットが“111”であるから、クラスCに分類され、ルーティング回路5においてルーティングが実行される。
ルーティング回路5におけるルーティングは以下のように実行される。はじめに、ブランチCポインタ51が参照される。
【0036】
ブランチCポインタ51は、コントロール領域に“11”、サイズ格納領域に“00010”および情報格納領域に“メモリ・アドレスC”が格納されている。
したがって、2段目のルーティング・テーブルを参照することになる。この2段目のルーティング・テーブルは、図4に示すように、+00〜+11までの4つのブランチ・ポインタから構成される。サイズ格納領域の“00010”および受け取ったネットワーク・アドレスの上位から2番目および3番目のビット値“11”より、2段目のルーティング・テーブルの+11の位置にあるブランチ・ポインタを参照する。
【0037】
2段目のルーティング・テーブルにおいて、+11で特定されるブランチ・ポインタには、コントロール領域に“11”、サイズ格納領域に“00011”および情報格納領域に“メモリ・アドレスD”が格納されている。
以上の情報に基づいて、3段目のルーティング・テーブルを参照する。
3段目のルーティング・テーブルは、メモリ上のアドレスDに展開されている。このルーティング・テーブルは、2段目のルーティング・テーブルにおけるコントロール領域の“11”が示すように、8つのブランチ・ポインタから構成されている。各々のブランチ・ポインタには、+000〜+111までの順位が特定される。図4の例の場合、コントロール領域の“11”にしたがって、ネットワーク・アドレスの上位から4番目、5番目および6番目の3つのビットが参照される。4番目、5番目および6番目のビットの値は、“010”であるから、3段目のルーティング・テーブルにおいて+010で特定されるブランチ・ポインタを参照することを指示している。
【0038】
3段目のルーティング・テーブルにおいて、+010で特定されるブランチ・ポインタは、コントロール領域に“10”が格納されている。つまり、このブランチ・ポインタに転送先の情報が含まれていることを示している。そして、情報格納領域には、“ポート#3”が格納されている。したがって、当該IPパケットは、ルータの#3のポートから外部に転送される。外部とは、次のルータあるいはネットワークを含む。
【0039】
以上説明したように、本実施の形態によれば、IPアドレスに基づくルーティングにおいて、ネットワーク・アドレス中の複数のビットを一度に参照することを可能にする。しかも、参照する複数のビット値に対応するブランチ・ポインタのみを参照すれば足りるため、参照に費やされる時間は、従来のルーティング・テーブルに比べて相当低減される。
【0040】
次に、以上説明した本実施の形態によるルーティングをより効率的に行なうために望ましい形態について説明する。この形態は、以上説明した本実施の形態によるルーティングの実行対象を、自身が転送先情報を持つIPパケットに絞込むことを趣旨とする。
【0041】
例えば、“0101.1100.”、“0101.1101.”、“0101.1110.”および“0101.1111.” の4つネットワーク・アドレスについて、ルータが転送先を有するものとする。そうすると、ネットワーク・アドレスの上位6ビットまでを参照することにより、転送先情報を有するか否かまで判断することができる。つまり、ネットワーク・アドレスの上位6ビットが、“0101.11**”であることがわかれば、転送先情報が存在していると判断することができる。そして、このような判断を、複数種組み合わせることにより、受け取ったIPアドレスについて、自身が転送先情報を有しているか否かについて絞込みが可能となる。
【0042】
図5は、上記絞込みのための機能を示すブロック図である。
図5に示すように、n台の比較器1〜nを備えている。なお、比較器1〜nにおける比較の具体的内容は後述する。比較器1〜nは、受け取ったネットワーク・アドレスに基づいて、当該ルータ換言すればルーティング・テーブルが転送先情報を持つか否かを判断する。比較器1〜nは、ルーティング・テーブルが転送先情報を持つと判断した場合には、Highの情報を出力する。図5は、比較器1〜nのうちのいずれか一つがHighを出力した場合に、本実施の形態によるルーティング・テーブルを参照したルーティングを実行することを示している。
【0043】
図6は、比較器nの具体的処理例を示している。比較器nは、受け取ったIPアドレスと比較IPアドレスとを所定のビット分だけその値を比較し、所定のビット分の値が一致している場合には、自身のルーティング・テーブルに転送先情報が含まれていると判断する。したがって、比較IPアドレスは、転送先の公約数としての性格を有している。また、所定のビットよりも下位のビットについては、前述したルーティング・テーブルを用いたルーティングを実行することになる。図6において、比較器nは、マスク・レジスタを備える。マスク・レジスタは、所定のビットを指定する。つまり、受け取ったIPアドレスのうち、比較IPアドレスと比較するビットを指定する。図6の例では、マスク・レジスタ“01000”が格納されており、受け取ったIPアドレスのうち、上位9ビットが比較対となる。一方、それ以降の23ビットは、比較対外となる。また、マスク・レジスタの値に基づいて、マスク・データが作成される。図6の例では、32ビット中、上位9ビットが1として格納される。
【0044】
受け取ったIPアドレスとマスク・データの論理和を取ることにより、比較対となるビット列を抽出する。このビット列は、図6に示すように、“110011011”である。
抽出されたビット列について、比較IPアドレスとの間で排他的論理和を取り比較する。ここで、受け取ったIPアドレスのうち、比較対とならないビットについては、次の論理回路において比較される。
32ビット全てについて論理和を取ったものが、この比較器nに対する結果nとなる。この結果nは、比較対ビット列が比較IPアドレスの所定ビットと一致したか否かである。図6の例では、比較対となるビット列“01000”は、比較IPアドレスの対応ビット列“01000”と一致している。したがって、受け取ったIPアドレスは、先に説明したブランチ・ポインタおよび階層化されたルーティング・テーブルを用いたルーティングに供される。
その例を図7に示しておくが、“110011011”以降のビット列が参照の対象となって、ルーティングが実行される。なお、図7の構成は、図3および図4と同様のため、ここでの詳細な説明は割愛する。
【0045】
本実施の形態では、図5に示すように、以上のような比較器nを複数台設ける。したがって、受け取ったIPアドレスについて、設けられた台数分同時に比較することができる。このことは、受け取ったIPアドレスについて転送先情報を有するか否かを極めて短時間に判断できることを示唆している。前述したように、転送先情報を有すると判断されたIPアドレスについては、先に説明したブランチ・ポインタおよび階層化されたルーティング・テーブルを用いたルーティングに供される。一方、転送先情報を有しないと判断されたIPアドレスについては、当該IPパケットを破棄するか、転送されてきた上位のルータに返すことになる。なお、比較器1〜nの台数は、専ら、ルータの有するポートの数、換言すれば転送先の数に応じて定められる。転送先の多いルータでは比較器1〜nの台数は多くなる。そして、比較器1〜nは、転送先を多く抱えたルータに適用することが効果的である。なお、比較器nにより、直接転送先を求めることもできる。
【0046】
【発明の効果】
以上説明したように、本発明によるルーティング方法は、ネットワーク・アドレス中の複数のビットを一度に参照の対象とすることを可能にし、加えて、複数のエントリから構成されるルーティング・テーブルであっても、1つのブランチ・ポインタを参照すれば足りる。したがって、従来のルーティング・テーブルを用いる場合に比べて、効率的なルーティングを実現できる。しかも、比較器1〜nを用いてルーティング対象の絞込みを実行することにより、より効率的なルーティングを可能とする。
【図面の簡単な説明】
【図1】 本実施の形態によるブランチ・ポインタの構成を説明する図である。
【図2】 本実施の形態によるルーティング処理装置の構成を示す図である。
【図3】 本実施の形態によるルーティング方法を説明するための図である。
【図4】 本実施の形態によるルーティング方法を説明するための図である。
【図5】 本実施の形態によるルーティング処理装置に付加される構成であって、ルーティングの対象となるIPパケットを絞込むための機能を示す図である。
【図6】 図5における比較器の構成を示す図である。
【図7】 絞込まれたIPパケットついて、本実施の形態によるルーティングを実行する様子を示す図である。
【図8】 従来のルーティング方法を説明するための図である。
【図9】 従来のルーティング方法を説明するための図である。
【符号の説明】
1…ルーティング処理装置、2…デコード回路、3,4,5…ルーティング回路、31…ブランチAポインタ、41…ブランチBポインタ、51…ブランチCポインタ
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to routing for controlling a transfer path of data transfer, which is applied to a network such as the Internet.
[0002]
[Prior art]
The most typical protocol in a network such as the Internet is TCP (Transmission Control Protocol) / IP (Internet Protocol). In this TCP / IP, a 32-bit address, that is, an IP address is assigned to a device connected to a network. A data stream (IP packet) flowing through the network includes an IP address of a destination (hereinafter referred to as a destination) to which the IP packet is delivered. A router that performs path control (routing) in the process of delivering an IP packet to a predetermined destination is arranged on the network. The router performs routing to the destination of the IP packet by referring to the IP address included in the IP packet. Usually, a plurality of routers are interposed between the sender and the destination, and the IP packet reaches the destination via the plurality of routers.
[0003]
The IP address has a size of 32 bits and is composed of a network address and a host address. This definition of 32 bits is based on the current IPv4. The network address is a number for identifying the network to which the destination belongs, and is set so as not to overlap with the network address in all other networks connected to the Internet. The host address is a number for identifying a destination (host or node) on the network, and is set so as not to overlap other hosts in the same network. Routing is performed by referring to a network address among IP addresses.
The router has a routing table for routing. This routing table stores to which router the IP packet should be transferred next. For example, it is assumed that two routers B and C are connected to the router A, the network B is connected to the router B, and the network C is connected to the router C. The routing table of router A stores that IP packets to be transferred to network B should be transferred to router B, and that IP packets to be transferred to network C should be transferred to router C. It is.
[0004]
IP addresses are classified into five types of address classes, classes A to E. Of these, class D and class E are used for special purposes and will not be described here.
Class A starts with the leading bit of the IP address being “0”. In class A, the network address is defined as 8 bits (substantially 7 bits) including the first 1 bit, and the remaining 24 bits are the host address. Therefore, a host address that can be assigned to one network, in other words, one network address, is 2twenty fourIt becomes a piece. However, of these, all “0” and all “1” are reserved, so the host address actually assigned is 2twenty four-2 pieces.
In class B, the first bit of the IP address starts with “10”. In class B, the network address is defined as 16 bits (substantially 14 bits) including the first 2 bits, and the remaining 16 bits are the host address. Therefore, a host address that can be assigned to one network, in other words, one network address, is 216It becomes a piece. Among them, all “0” and all “1” are reserved, as in class A.
In class C, the first bit of the IP address starts with “110”. In class C, the network address is defined as 24 bits (substantially 21 bits) including the first 3 bits, and the remaining 8 bits are the host address. Therefore, a host address that can be assigned to one network, in other words, one network address, is 28It becomes a piece. Among them, all “0” and all “1” are reserved, as in classes A and B.
Recently, CIDR (Classless Inter Domain Routing) in which the number of bits designated from the upper bits is used as a network address and the rest as a host address has become mainstream.
[0005]
[Problems to be solved by the invention]
Now, the router determines whether or not the transferred IP address exists in the routing table in order of one bit from the top. This procedure will be described with reference to FIGS.
The routing table is expanded on the memory, and has a structure in which information is stored for each address (memory address) in the memory. FIG. 8 shows the contents (referred to as a memory unit) of the memory constituting one memory address. The routing table can be said to be a collection of memory units shown in FIG.
[0006]
The memory unit is divided into two as shown in FIG. One stores information to be referred to when the bit value of the network address is 0, and the other stores information to be referred to when the bit value of the network address is 1. In the example of FIG. 8, information referred to when the bit value is 0 is stored in the upper stage, and information referred to when the bit value is 1 is stored in the lower stage. The memory unit includes a header area indicating whether or not information to be referenced is stored, and an information storage area in which information to be referenced is stored. The header area and the information storage area are names used in the present specification, and are not commonly used names. A value of 1 or 0 is input in the header area. When the value of the header area is 1, it indicates that information to be referred to is stored in the corresponding information storage area. Further, when the value of the header area is 0, it indicates that the information to be referred to is not stored in the corresponding information storage area.
[0007]
The information storage area stores the memory address of the memory unit to be referred to next. Thus, the memory unit can be said to be a pointer that points to the memory unit to be referred to next. The information storage area stores the port number (port No. in the figure) to which the IP packet is to be transferred. Here, the port means an output end to which the router transfers the IP packet. Usually, the router has a plurality of ports, and other routers or networks are connected to each port. In the example of FIG. 8, when the bit value is 0, the memory unit at the memory address * 1 is referred to next. When the bit value is 1, the IP packet is a No. stored in the memory unit. Forwarded from the port of The forwarded IP packet reaches the other router connected to the port or the network to which the network address belongs.
[0008]
Now, as shown in FIG. 9, it is assumed that an IP packet having a network address “00110001” is transferred to a certain router. This network address corresponds to a class A IP address because the first bit is 0.
The router refers to, for example, the memory unit located at the head of the routing table for the head bit value of the transferred network address. In the example of FIG. 9, the first bit value of the network address is 0. On the other hand, the information storage area of the first memory unit indicates that when the bit value is 0 (bit = 0), the memory unit at address A on the memory should be referred to, and the bit value is 1 (bit = In the case of 1), information indicating that the memory unit at address B on the memory should be referred to is stored. At this time, 1 is input to the header area. Therefore, in the example shown in FIG. 9, the address B which is the reference information of the information storage area on the side corresponding to bit = 0 is referred to next.
[0009]
Referring to the memory unit existing at address B, the information storage area corresponding to bit = 0 indicates address C, and the information storage area corresponding to bit = 1 indicates address G. The second bit value of the network address is zero. Thus, referring to the memory unit at address B indicates that the memory unit residing at address C should be referenced next.
Next, referring to the memory unit existing at address C, the information storage area corresponding to bit = 0 indicates address F, and the information storage area corresponding to bit = 1 indicates address D. The third bit value of the network address is 1. Thus, referring to the memory unit at address C indicates that the memory unit present at address D should be referenced next.
[0010]
In the example shown in FIG. 9, since the IP address belongs to class A, the reference procedure as described above is sequentially repeated from the first bit to the last eighth bit of the network address. For example, it is assumed that the address O is reached as a result of repeating the above reference up to the seventh bit. The eighth bit value of the network address is 1, while port # 1 is stored in the information storage area corresponding to bit = 1 of address O. Therefore, the IP packet is transferred from the port # 1 of the router to the outside. As described above, another router or network is connected to the port # 1, and the IP packet is transferred to the other router or the network.
[0011]
As described above, in the process of determining the IP packet transfer destination in the router, the network address is repeatedly referred to the routing table a plurality of times. In the example of FIG. 9, since the IP packet belongs to class A, the reference operation is repeated only 8 times at maximum, but it is repeated up to 16 times in class B and 24 times in class C. This suggests that considerable time is required for routing of IP packets in one router. As described above, an IP packet is usually delivered to a destination via a plurality of routers and may cause unnecessary delay until the IP packet reaches the host depending on the time spent for routing. There is.
Therefore, an object of the present invention is to propose an efficient routing technique that can reduce the time required for routing.
[0012]
[Means for Solving the Problems]
In the routing using the conventional routing table, the reference and determination are repeated bit by bit from the top of the network address. Therefore, the present invention has studied to shorten the routing time by collectively referring to a plurality of bits. As a result, it was found that a plurality of bits can be collectively referred to by changing the configuration of the routing table. More specifically, the memory unit in the conventional routing table is divided into two areas, ie, a header area and an information storage area, but is divided into three areas as shown in FIG.
The first of the three areas is an area for storing information similar to the header area of the conventional memory unit, and is hereinafter referred to as a control area. The second area displays the number of memory units (table size) constituting the routing table to be referred to next. This number of memory units also indicates the number of bits in the network address that are compared at one time. In this specification, this area is referred to as a size storage area. Furthermore, the third area has a character very similar to the information storage area of the conventional memory unit.
[0013]
The control area stores information indicating that there is no transfer destination information, that there is transfer destination information, or that there is a memory unit to be referred to.
The size storage area stores information on the number of memory units of the routing table to be referred to next. The information stored in the size storage area also indicates the number of bits referred to in the network address. For example, when the description (binary number) here is “10”, the number of memory units in the routing table to be referred to next is 22= 4. The number of bits referred to in the network address is two (two digits). Here, since the number of bits to be referenced is two, four cases of 00, 01, 10 and 11 can be considered in binary numbers. The number of memory units corresponds to these four cases. That is, the routing table holds four memory units corresponding to 00, 01, 10 and 11. Hereinafter, the number of memory units may be referred to as the number of entries in the routing table. Since the value of the bit to be referred to is one of 00, 01, 10 and 11, the memory unit corresponding to any of 00, 01, 10 and 11 will be referred to next. Good.
In the present invention, the size storage area is provided, and a routing table having the number of entries corresponding to the value stored in the size storage area is provided in the lower layer, so that a plurality of bits in the network address are once set. It is possible to refer to. In addition, since it is sufficient to refer only to the memory unit corresponding to the value indicated by the plurality of bit strings to be referred to, the time spent for the reference is considerably reduced as compared with the conventional routing table.
In the information storage area, an address on the routing table to be referred next, or a port number to which the IP packet is transferred. Is stored. Alternatively, an address on the routing table to be referred to or a port number to which the IP packet is transferred. None of these may be stored. This indicates that there is no transfer destination. Routing is executed by hierarchizing a table composed of memory units (hereinafter referred to as pointers) having the above configuration.
The present invention has been made based on the above matters and has the following configuration.
[0014]
  The present invention is referred to next in a routing processing device that performs routing for received IP packets.PrecedingA first area for storing information about the presence of the table;PrecedingA second area for storing information identifying the number of entries in the table;PrecedingA first pointer comprising a third area for storing address information about the table; A fourth area for storing information relating to the presence of a subsequent table to be referred to next to the first pointer and the information for specifying the number of entries in the subsequent table is stored. A preceding table having a second pointer having a sixth area for storing address information for the five areas and the subsequent table by the amount of information specifying the number of entries stored in the second area of the first pointer; And a reference instruction unit for instructing to refer to a second pointer corresponding to a value indicated by a predetermined bit string of the IP address included in the IP packet.
[0015]
In the routing processing device of the present invention, the number of bits in the predetermined bit string is determined based on information specifying the number of entries stored in the second area of the first pointer. When the maximum value indicated by the predetermined bit string matches the number of entries in the table, the entry to be referred to can be specified by the value represented by the predetermined bit string.
[0016]
In the preceding table of the routing processing apparatus of the present invention, the information regarding the presence of the subsequent table stored in the fourth area is whether the address in the information storage unit where the subsequent table exists is stored in the sixth area. It can be specified information. In the preceding table, information indicating the presence of the forwarding destination of the IP packet may be stored in the fourth area in place of the information on the existence of the succeeding table.
In the preceding table, when information indicating the presence of the transfer destination of the IP packet is stored in the fourth area, information regarding the transfer destination of the IP packet is stored in the sixth area.
[0017]
  The present invention is also a routing processing device for specifying a transfer destination of a received IP packet, a routing table for storing the transfer destination of the IP packet, and a routing processing unit for specifying the transfer destination with reference to the routing table. And the routing table is a hierarchy of one or more pointers, and the pointer is information specifying a lower layer table positioned lower than itself, and a pointer constituting the lower layer tableThe number ofA routing processing device for storing is provided.
[0018]
  In this routing processing device, the routing processing unitIdentifying a predetermined plurality of bits in a bit string constituting an IP address included in an IP packet based on the number of pointers;Information that identifies the underlying table andThe identified multi-bit valueBased on the above, it is possible to specify the forwarding destination of the IP packet by referring to the corresponding pointer in the lower layer table.The
[0019]
  Further, when the routing processing unit refers to the plurality of tables, the first predetermined plurality of bits in the IP address specified for the preceding table referred to in advance and the subsequent table referred to subsequently. A second predetermined plurality of bits in the identified IP address.AndA plurality of bits consecutive to the first predetermined plurality of bits and positioned lower than the first predetermined plurality of bits.Are used sequentially.Thus, referring to the IP address for each of a plurality of bits is one feature of the present invention.
[0020]
The present invention provides the following routing method that can be applied to the above routing processing apparatus. That is, the routing method of the present invention is a routing method for specifying a transfer destination of an IP packet received by sequentially referring to a plurality of hierarchical routing tables, and includes a routing table (a ) And the routing table (b) referenced next includes a single or a plurality of reference destination information storage areas, and is referred to next based on the reference destination information in the routing table (a). A reference table specifying step for specifying (b), and a reference area specifying step for specifying the storage area referred to in the routing table (b) based on an IP address included in the IP packet. It is characterized by.
[0021]
  In the routing method of the present invention, the reference area specifying step includes the step of specifying the routing table (b) based on a plurality of predetermined bit information specified by the routing table (a) in the bit information constituting the IP address. Identify the storage area referenced in. Here, the predetermined plurality of bit information is:Stored in the routing table (a)The number of storage areas in the routing table (b) can be indicated.
  Furthermore, in the present invention, the IP address included in the IP packet and the preset comparison IP address in the IP packet are determined to match or not match a predetermined bit string corresponding to each other, and match the comparison IP address. The IP packet including the IP address thus selected can be set as a routing target. In other words, the routing target is narrowed down.
[0023]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, the present invention will be described based on embodiments. In this embodiment, IPv4 is described as an example, but it goes without saying that it can also be applied to IPv6.
FIG. 2 is a block diagram showing the main configuration of the routing processing apparatus 1 according to this embodiment.
The routing processing device 1 is a device that executes routing processing based on TCP / IP, and can be applied to a router or a switch.
The routing processing device 1 includes a decoding circuit 2 and routing circuits 3 to 5 connected to the decoding circuit 2. The routing circuit 3 includes a branch A pointer 31, a processing unit A32, and a routing table A33. The routing circuit 4 includes a branch B pointer 41, a processing unit B42, and a routing table B43. Furthermore, the routing circuit 5 includes a branch C pointer 51, a processing unit B52, and a routing table C53. The processing units A32 to C52 execute references to the branch A pointer 31 to the branch C pointer 51 and the routing tables A33 to C53, network addresses, and the like.
[0024]
The decode circuit 2 receives the transfer of the IP address obtained from the IP packet, determines the address class, and classifies the network address. As described above, the address class is classified into three classes A to C. This classification is classified into class A when the first 1 bit of the network address is 0, class B when the first 2 bits are 10, and class C when the first 3 bits are 110. When this classification is class A, the routing circuit 3 is selected. When the classification is class B, the routing circuit 4 is selected. When the classification is class C, the routing circuit 5 is selected. Is executed.
In this example, an example of dividing into three classes A to C will be described. However, the present invention can also be applied to the above-described CIDR (Classless Inter Domain Routing).
[0025]
The basic configurations of the branch A pointer 31 to the branch C pointer 51 are the same as shown in FIG.
As shown in FIG. 1, each of the branch A pointer 31 to the branch C pointer 51 is composed of three areas: a control area, a size storage area, and an information storage area.
In the control area, 2-bit control information is stored. As shown in FIG. 1, three types of information “01”, “10”, and “11” are stored in the control area. Among these, “01” indicates that the selected routing circuit does not include information regarding the transfer destination. “10” indicates a port number for transferring the IP packet to the corresponding information storage area. In other words, it indicates that the transfer destination is stored. Further, “11” indicates that the address on the memory of the routing table to be referred to next (hereinafter, the next-stage routing table) is stored. Here, the branch A pointer 31 to the branch C pointer 51 also constitute a routing table. And it will be located in the upper hierarchy with respect to the routing table of the next stage. That is, the routing table according to the present embodiment has a hierarchical structure. This hierarchical structure will be clarified by a more specific description to be described later.
[0026]
  Size information consisting of 5 bits is stored in the size storage area. However, the number of bits is not limited to 5 bits and is arbitrary.. ThisHere, the size means the number of branch pointers constituting the routing table, in other words, the number of entries. For example, as shown in FIG. 1, when “00010” is stored in the size storage area, the size of the routing table in the next stage (the number of branch pointers or the number of entries) is 22= 4. As shown in FIG. 1, the order of “00”, “01”, “10”, and “11” is assigned to the routing table in order from the upper branch pointer. If “00011” is stored in the size storage area, the size of the next routing table (the number of branch pointers or the number of entries) is 23= 8.
[0027]
The value stored in the size storage area indicates the position of the branch pointer to be referred to in the routing table at the next stage. For example, as shown in FIG. 1, it is assumed that the network address is “11010101”. When “00010” is stored in the size storage area and the next-stage routing table is the second-stage routing table, the second bit from the beginning and the third bit following this are the second-stage. The branch pointer to be referred to in the routing table is shown. In the example shown in FIG. 1, the second bit value is 1 and the third bit value is 0. Therefore, the “10” th branch pointer is referred to in the second-level routing table. A memory address X is stored in the information storage area of the “10th” branch pointer. This indicates an address on the memory of the routing table to be referred to next.
[0028]
The present embodiment includes the above-described branch pointer and a routing table as a set of branch pointers. By using this routing table, it is possible to refer to a plurality of bits in a network address at a time, and in addition, even if a routing table is composed of a plurality of entries, 1 It is sufficient to refer to two branch pointers. Therefore, efficient routing can be realized as compared with the case of using the conventional routing table.
[0029]
Hereinafter, a more specific routing procedure using the routing table according to the present embodiment will be described with reference to FIGS.
FIG. 3 shows an example in which the decoding circuit 2 in FIG. 2 receives an IP address consisting of 10010101.11001101.11101111.00000001.
Since the received IP address has the first 2 bits “10”, it is classified into class B, and routing is performed in the routing circuit 4.
Routing in the routing circuit 4 is executed as follows. First, the branch B pointer 41 is referred to. The branch B pointer 41 corresponds to the first-stage branch pointer (or routing table).
[0030]
The branch B pointer 41 stores “11” in the control area, “00010” in the size storage area, and “memory address A” in the information storage area.
“11” in the control area indicates that the next routing table exists. Note that the control area in the first-stage branch pointer (branch A pointer 31 to branch C pointer 51) is set to “11” due to the function of the router.
In the size storage area “00010”, the number of branch pointers in the routing table of the second stage which is the next stage is 2.2= 4. As shown in FIG. 3, the second-level routing table is composed of four branch pointers from +00 to +11.
The size storage area “00010” indicates that the number of bits to be referred to in the received network address is two. In the second-stage routing table, the second and third bits from the top of the network address are referred to. As shown in FIG. 3, the values of the second and third bits from the top are “00”, and this value is referred to. “00” indicates a branch pointer to be referred to in the second-level routing table.
“Memory address A” in the information storage area indicates that the routing table expanded to address A is to be referred to next.
[0031]
As described above, the branch B pointer 41 indicates that the routing table of the next stage (second stage) is expanded to the address A on the memory, and this second stage routing table includes four branches. -Indicates that it consists of pointers. Then, by considering the received IP address, the branch pointer to be referred to in the second-stage routing table can be specified.
[0032]
Next, the second level routing table will be described.
As described above, the routing table in the second stage is expanded to the address A on the memory, and is composed of four branch pointers. Then, as shown in FIG. 3, the ranks of +00, +01, +10, and +11 are specified from the upper branch pointer. Then, from the branch B pointer 41 and the network address, the +00 branch pointer is referred to in the second-level routing table.
Regarding the branch pointer to be referenced, “11” is stored in the control area, “00011” is stored in the size storage area, and “memory address B” is stored in the information storage area.
[0033]
“11” in the control area indicates that the next routing table exists as described above.
In the size storage area “00011”, the number of branch pointers in the routing table of the third stage which is the next stage is 2.Three= 8. As shown in FIG. 3, the third-level routing table is composed of eight branch pointers from +000 to +111.
Since the size storage area is “00011”, the number of bits to be referred to in the received network address is three. In the process of referring to the routing table in the second stage, the bits from the uppermost to the third are already referenced, and this time, the third, fourth, fifth and sixth bits from the uppermost are referred to. The values of the fourth, fifth and sixth bits are “101”, and this value indicates a branch pointer to be referred to in the third-level routing table.
“Memory address B” in the information storage area indicates that the routing table expanded to address B on the memory is referred to next.
[0034]
Therefore, the third level routing table will be described.
As described above, the third-level routing table is expanded to address B on the memory, and is composed of eight branch pointers. Then, as shown in FIG. 3, the order of +000 to +111 is assigned from the upper branch pointer. From the second-stage routing table and network address, the branch pointer +101 is referred to in the third-stage routing table.
As the branch pointer to be referred to, “01” is stored in the control area. “01” in the control area indicates that information regarding the transfer destination is not included. Therefore, the received IP packet is discarded by the search so far.
[0035]
  In the above, after searching the routing table up to the third level, the IP packetButAlthough an example of discarding has been shown, an example in which the IP packet is transferred to a predetermined transfer destination will be described next.
  In this example, it is assumed that the decode circuit 2 has received an IP address consisting of 11101011.11001101.11101111.00000001 as shown in FIG.
  Since the received IP address has the first 3 bits “111”, it is classified into class C, and routing is performed in the routing circuit 5.
  Routing in the routing circuit 5 is executed as follows. First, the branch C pointer 51 is referred to.
[0036]
The branch C pointer 51 stores “11” in the control area, “00010” in the size storage area, and “memory address C” in the information storage area.
Therefore, the second level routing table is referred to. As shown in FIG. 4, the second-level routing table is composed of four branch pointers from +00 to +11. From the size storage area “00010” and the second and third bit values “11” from the top of the received network address, the branch pointer at the +11 position of the routing table in the second stage is referred to.
[0037]
In the second-level routing table, the branch pointer specified by +11 stores “11” in the control area, “00011” in the size storage area, and “memory address D” in the information storage area. .
Based on the above information, the third-level routing table is referred to.
The third-level routing table is expanded to an address D on the memory. This routing table is composed of eight branch pointers as indicated by “11” in the control area in the second-level routing table. Each branch pointer is identified with a rank of +000 to +111. In the case of the example of FIG. 4, the fourth, fifth and sixth bits from the top of the network address are referred to according to “11” in the control area. Since the values of the fourth, fifth and sixth bits are “010”, it is instructed to refer to the branch pointer specified by +010 in the third-level routing table.
[0038]
In the third-level routing table, “10” is stored in the control area of the branch pointer specified by +010. That is, this branch pointer contains information on the transfer destination. In the information storage area, “port # 3” is stored. Therefore, the IP packet is transferred to the outside from the port # 3 of the router. The outside includes the following routers or networks.
[0039]
As described above, according to the present embodiment, it is possible to refer to a plurality of bits in a network address at a time in routing based on an IP address. In addition, since only the branch pointers corresponding to the plurality of bit values to be referred to need to be referred to, the time spent for reference is considerably reduced as compared with the conventional routing table.
[0040]
Next, a desirable mode for performing the routing according to the present embodiment described above more efficiently will be described. The purpose of this form is to narrow down the routing execution targets according to the present embodiment described above to IP packets having transfer destination information.
[0041]
  For example, “0101.1100.”, “0101.1101.”, “0101.1110.” And “0101.1111.”ofAssume that the router has a forwarding destination for the network address. Then, by referring to the upper 6 bits of the network address, it can be determined whether or not it has transfer destination information. That is, if it is found that the upper 6 bits of the network address are “0101.11 **”, it can be determined that the transfer destination information exists. By combining a plurality of such determinations, it is possible to narrow down whether or not the received IP address has transfer destination information.
[0042]
FIG. 5 is a block diagram showing functions for narrowing down.
As shown in FIG. 5, n comparators 1 to n are provided. The specific contents of the comparison in the comparators 1 to n will be described later. The comparators 1 to n determine whether or not the router table, in other words, the routing table has transfer destination information, based on the received network address. If the comparators 1 to n determine that the routing table has the transfer destination information, the comparators 1 to n output High information. FIG. 5 shows that when any one of the comparators 1 to n outputs High, routing is performed with reference to the routing table according to the present embodiment.
[0043]
  FIG. 6 shows a specific processing example of the comparator n. The comparator n compares the value of the received IP address and the comparison IP address by a predetermined number of bits, and when the value of the predetermined number of bits matches, the transfer destination information is stored in its own routing table. Is determined to be included. Therefore, the comparison IP address has a character as a common divisor of the transfer destination. For bits lower than the predetermined bit, routing using the routing table described above is executed. In FIG. 6, the comparator n includes a mask register. The mask register specifies a predetermined bit. That is, the bit to be compared with the comparison IP address is designated in the received IP address. In the example of FIG. 6, the mask register “01000” is stored, and the upper 9 bits of the received IP address are compared with the comparison pair.elephantIt becomes. On the other hand, the subsequent 23 bits are the comparison pair.elephantGet out. Also, mask data is created based on the value of the mask register. In the example of FIG. 6, the upper 9 bits are stored as 1 out of 32 bits.
[0044]
  By taking the logical sum of the received IP address and mask data,elephantThe bit string that becomes is extracted. This bit string is “110011011” as shown in FIG.
  The extracted bit string is exclusive ORed with the comparison IP address and compared. Here, of the received IP addresses, the comparison pairelephantBits that do not become equal are compared in the next logic circuit.
  The logical sum of all 32 bits is the result n for this comparator n. The result n is a comparison pair.elephantWhether the bit string matches a predetermined bit of the comparison IP address. In the example of FIG.elephantThe bit string “01000” to be coincident with the corresponding bit string “01000” of the comparison IP address. Therefore, the received IP address is used for routing using the branch pointer and the hierarchical routing table described above.
  An example of this is shown in FIG. 7, and routing is executed with the bit string “110011011” and later as a reference target. 7 is the same as FIG. 3 and FIG. 4, and detailed description thereof is omitted here.
[0045]
In the present embodiment, as shown in FIG. 5, a plurality of comparators n as described above are provided. Therefore, it is possible to simultaneously compare the received IP addresses for the provided number. This suggests that whether or not the received IP address has transfer destination information can be determined in a very short time. As described above, the IP address determined to have transfer destination information is subjected to routing using the branch pointer and the hierarchical routing table described above. On the other hand, for an IP address that is determined not to have transfer destination information, the IP packet is discarded or returned to the upper router that has been transferred. Note that the number of comparators 1 to n is determined exclusively according to the number of ports of the router, in other words, the number of transfer destinations. In a router with many transfer destinations, the number of comparators 1 to n increases. The comparators 1 to n are effective when applied to a router having many transfer destinations. The transfer destination can also be directly obtained by the comparator n.
[0046]
【The invention's effect】
As described above, the routing method according to the present invention makes it possible to refer to a plurality of bits in a network address at a time, and in addition, a routing table composed of a plurality of entries. It is also sufficient to refer to one branch pointer. Therefore, efficient routing can be realized as compared with the case of using the conventional routing table. In addition, by using the comparators 1 to n to narrow down the routing objects, more efficient routing is possible.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a configuration of a branch pointer according to the present embodiment.
FIG. 2 is a diagram showing a configuration of a routing processing device according to the present embodiment.
FIG. 3 is a diagram for explaining a routing method according to the present embodiment;
FIG. 4 is a diagram for explaining a routing method according to the present embodiment;
FIG. 5 is a diagram showing a function added to the routing processing device according to the present embodiment and a function for narrowing down IP packets to be routed.
6 is a diagram showing a configuration of a comparator in FIG. 5. FIG.
FIG. 7 is a diagram illustrating a state in which routing according to the present embodiment is performed for a narrowed IP packet.
FIG. 8 is a diagram for explaining a conventional routing method;
FIG. 9 is a diagram for explaining a conventional routing method;
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... Routing processing apparatus, 2 ... Decoding circuit, 3, 4, 5 ... Routing circuit, 31 ... Branch A pointer, 41 ... Branch B pointer, 51 ... Branch C pointer

Claims (7)

受け取ったIPパケットについてのルーティングを実行するルーティング処理装置において、
次に参照される先行テーブルの存在に関する情報を格納する第1の領域、前記先行テーブルのエントリ数を特定する情報を格納する第2の領域および前記先行テーブルについてのアドレス情報を格納する第3の領域を備える第1のポインタと、
前記第1のポインタに続いて参照の対象となり、かつ、さらに次に参照される後続テーブルの存在に関する情報を格納する第4の領域、前記後続テーブルのエントリ数を特定する情報を格納する第5の領域および前記後続テーブルについてのアドレス情報を格納する第6の領域を備える第2のポインタを前記第1のポインタの前記第2の領域に格納された前記エントリ数を特定する情報の分だけ有する前記先行テーブルと、を備えた情報記憶部と、
前記第1のポインタの前記第1ないし第3の領域に格納された情報に基づいて、前記IPパケットに含まれるIPアドレスの所定のビット列が示す値に対応する前記第2のポインタを参照することを指示する参照指示部と、
を備え
前記所定のビット列におけるビット数は、前記第1のポインタの前記第2の領域に格納された前記エントリ数を特定する情報に基づいて定められ、
前記所定のビット列が示す最大値は、前記テーブルのエントリ数と一致することを特徴とするルーティング処理装置。
In a routing processing device that performs routing for a received IP packet,
A first area for storing information relating to the presence of a preceding table to be referred to next; a second area for storing information specifying the number of entries in the preceding table; and a third area for storing address information about the preceding table A first pointer comprising a region;
A fourth area for storing information relating to the presence of a subsequent table to be referred to and subsequently referred to after the first pointer; a fifth area for storing information for specifying the number of entries in the subsequent table; And a second pointer having a sixth area for storing address information about the subsequent table, as much as the information for specifying the number of entries stored in the second area of the first pointer. An information storage unit comprising the preceding table;
Referencing the second pointer corresponding to a value indicated by a predetermined bit string of an IP address included in the IP packet based on information stored in the first to third areas of the first pointer A reference instruction unit for instructing
Equipped with a,
The number of bits in the predetermined bit string is determined based on information specifying the number of entries stored in the second area of the first pointer,
The maximum value indicated by the predetermined bit string matches the number of entries in the table .
前記先行テーブルにおいて、
前記第4の領域に格納される前記後続テーブルの存在に関する情報は、前記後続テーブルの存在する前記情報記憶部内のアドレスが前記第6の領域に格納されているか否かを特定する情報であることを特徴とする請求項1に記載のルーティング処理装置。
In the preceding table,
The information on the presence of the subsequent table stored in the fourth area is information specifying whether an address in the information storage unit where the subsequent table exists is stored in the sixth area. The routing processing device according to claim 1.
前記先行テーブルにおいて、
前記第4の領域は、前記後続テーブルの存在に関する情報に替えて、前記IPパケットの転送先の存在を示す情報が格納され、その場合において、前記IPパケットの転送先に関する情報が前記第6の領域に格納されることを特徴とする請求項1に記載のルーティング処理装置。
In the preceding table,
In the fourth area, information indicating the presence of the transfer destination of the IP packet is stored instead of the information regarding the presence of the subsequent table . In this case, the information regarding the transfer destination of the IP packet is stored in the sixth area. routing processing apparatus according to claim 1, characterized in Rukoto stored in area.
受け取ったIPパケットの転送先を特定するルーティング処理装置であって、
前記IPパケットの転送先を格納するルーティング・テーブルと、
前記ルーティング・テーブルを参照して前記転送先を特定するルーティング処理部と、を備え、
前記ルーティング・テーブルは、1または2以上のポインタからなるテーブルが階層化されており、かつ前記ポインタは、自身より下位に位置する下層テーブルを特定する情報と、前記下層テーブルを構成するポインタの数を格納し、
前記ルーティング処理部は、
前記ポインタの数に基づいて前記IPパケットに含まれるIPアドレスを構成するビット列の中の所定の複数ビットを特定し、前記下層テーブルを特定する情報および前記特定された複数ビットの値に基づいて当該下層テーブルの中の該当するポインタを参照することにより、当該IPパケットの転送先を特定することを特徴とするルーティング処理装置。
A routing processing device that identifies a transfer destination of a received IP packet,
A routing table for storing the forwarding destination of the IP packet;
A routing processing unit that identifies the transfer destination with reference to the routing table,
In the routing table, a table composed of one or more pointers is hierarchized, and the pointer includes information specifying a lower layer table positioned lower than itself and the number of pointers constituting the lower layer table. stores,
The routing processing unit
Based on the number of the pointers, a predetermined plurality of bits in a bit string constituting an IP address included in the IP packet are specified, and the information specifying the lower layer table and the value of the specified plurality of bits are A routing processing apparatus characterized by identifying a transfer destination of the IP packet by referring to a corresponding pointer in a lower layer table .
前記ルーティング処理部は、
複数の前記テーブルを参照する際に、先行して参照された先行テーブルについて特定された前記IPアドレスの中の第1の所定の複数ビットと、続いて参照された後続テーブルについて特定された前記IPアドレスの中の第2の所定の複数ビットとして、前記第1の所定の複数ビットに連続し、かつ前記第1の複数ビットよりも下位に位置する複数のビットとを順次に用いることを特徴とする請求項に記載のルーティング処理装置。
The routing processing unit
When referring to a plurality of the tables, a first predetermined plurality of bits in the IP address specified for the preceding table referenced previously and the IP specified for the subsequent table referenced subsequently and a second predetermined plurality of bits in the address, the use of the first continuous in a predetermined plurality of bits, and a plurality of bit sequentially positioned lower than the first plurality of bits The routing processing device according to claim 4 , characterized in that:
階層化された複数のルーティング・テーブルを順次参照することにより受け取ったIPパケットの転送先を特定するルーティング方法であって、
先行して参照されるルーティング・テーブル(a)およびその次に参照されるルーティング・テーブル(b)は、参照先情報の格納領域を単数または複数備え、
前記ルーティング・テーブル(a)の前記参照情報により次に参照されるルーティング・テーブル(b)を特定する参照テーブル特定ステップと、
前記IPパケットに含まれるIPアドレスに基づいて、前記ルーティング・テーブル(b)の中で参照される前記格納領域を特定する参照領域特定ステップと、
を備え
前記参照領域特定ステップは、
前記IPアドレスを構成するビット情報の中で、前記ルーティング・テーブル(a)により特定された所定の複数のビット情報に基づいて前記ルーティング・テーブル(b)の中で参照される前記格納領域を特定し、
前記所定の複数のビット情報は、前記ルーティング・テーブル(a)に格納された前記ルーティング・テーブル(b)における前記格納領域の数を示すことを特徴とするルーティング方法。
A routing method for specifying a transfer destination of an IP packet received by sequentially referring to a plurality of hierarchical routing tables,
The routing table (a) referred to in advance and the routing table (b) referred to next include one or more storage areas for reference destination information,
A reference table specifying step for specifying a routing table (b) to be referred next by the reference information of the routing table (a);
A reference area specifying step for specifying the storage area referred to in the routing table (b) based on an IP address included in the IP packet;
Equipped with a,
The reference area specifying step includes:
The storage area referenced in the routing table (b) is specified based on a plurality of predetermined bit information specified by the routing table (a) in the bit information constituting the IP address. And
The routing method characterized in that the predetermined plurality of bit information indicates the number of storage areas in the routing table (b) stored in the routing table (a) .
前記IPパケットの中で、前記IPパケットに含まれIPアドレスと予め設定された比較IPアドレスとを、相互に対応する所定のビット列の一致または不一致を判定し、
前記比較IPアドレスと一致した前記IPアドレスを含む前記IPパケットをルーティングの対象とすることを特徴とする請求項に記載のルーティング方法。
Among the IP packets, an IP address included in the IP packet and a preset comparison IP address are determined to match or not match a predetermined bit string corresponding to each other,
The routing method according to claim 6 , wherein the IP packet including the IP address that matches the comparison IP address is a routing target.
JP2001325695A 2001-10-23 2001-10-23 Routing processing apparatus and routing method Expired - Fee Related JP3639553B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001325695A JP3639553B2 (en) 2001-10-23 2001-10-23 Routing processing apparatus and routing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001325695A JP3639553B2 (en) 2001-10-23 2001-10-23 Routing processing apparatus and routing method

Publications (2)

Publication Number Publication Date
JP2003143198A JP2003143198A (en) 2003-05-16
JP3639553B2 true JP3639553B2 (en) 2005-04-20

Family

ID=19142207

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001325695A Expired - Fee Related JP3639553B2 (en) 2001-10-23 2001-10-23 Routing processing apparatus and routing method

Country Status (1)

Country Link
JP (1) JP3639553B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7565343B2 (en) 2004-03-31 2009-07-21 Ipt Corporation Search apparatus and search management method for fixed-length data
JP6170718B2 (en) 2012-11-21 2017-07-26 ルネサスエレクトロニクス株式会社 Search system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3520709B2 (en) * 1997-03-13 2004-04-19 三菱電機株式会社 Network address search method
US6874033B1 (en) * 1998-03-23 2005-03-29 Hitachi, Ltd. Network repeater and network next transfer desitination searching method
JP3570323B2 (en) * 1999-05-11 2004-09-29 日本電気株式会社 How to store prefixes for addresses

Also Published As

Publication number Publication date
JP2003143198A (en) 2003-05-16

Similar Documents

Publication Publication Date Title
US7315547B2 (en) Packet forwarding device
US6052683A (en) Address lookup in packet data communication networks
JP4614946B2 (en) System and method for efficiently searching a forwarding database divided into a limited number of sub-databases having a limited size
CA2434876C (en) Method and apparatus for ternary content addressable memory (tcam) table management
US7437354B2 (en) Architecture for network search engines with fixed latency, high capacity, and high throughput
US6985483B2 (en) Methods and systems for fast packet forwarding
US7031320B2 (en) Apparatus and method for performing high-speed IP route lookup and managing routing/forwarding tables
US7418505B2 (en) IP address lookup using either a hashing table or multiple hash functions
US6526055B1 (en) Method and apparatus for longest prefix address lookup
US7424468B2 (en) Internet protocol address look-up device
US20030225907A1 (en) Forwarding traffic in a network using a single forwarding table that includes forwarding information related to a plurality of logical networks
US20050071501A1 (en) Method and apparatus for performing a binary search on an expanded tree
US6691171B1 (en) Method and system for address lookup in data communication
JP3881663B2 (en) Packet classification apparatus and method using field level tree
US6731633B1 (en) Network unit including address hashing
US6570866B1 (en) High-speed flexible longest match retrieval
JP3639553B2 (en) Routing processing apparatus and routing method
KR100493099B1 (en) Route lookup and routing/forwarding table management for high-speed internet protocol router
KR100460188B1 (en) Internet protocol address look-up method
KR100459542B1 (en) Internet protocol address look-up device
JP2005117208A (en) Table searching apparatus

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040910

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040914

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20040930

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041209

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: 20050105

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050114

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees