JP3845512B2 - Longest match search device - Google Patents
Longest match search device Download PDFInfo
- Publication number
- JP3845512B2 JP3845512B2 JP8402998A JP8402998A JP3845512B2 JP 3845512 B2 JP3845512 B2 JP 3845512B2 JP 8402998 A JP8402998 A JP 8402998A JP 8402998 A JP8402998 A JP 8402998A JP 3845512 B2 JP3845512 B2 JP 3845512B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- address
- search
- prefix
- entry
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、インターネット通信回線網内に配置されその通信回線網内を流れるネットワークパケットの伝達を仲介するルータに搭載される、登録されたアドレスと、入力されたネットワークパケット中のアドレスとの最長一致検索を行なう最長一致検索装置に関する。
【0002】
【従来の技術】
現在インターネットと呼ばれる通信が広く普及してきており、それに伴って発信元や受信先を特定するアドレスの枯渇が問題となり、現在、インターネットプロトコルでは、アドレスの枯渇問題への対策から、32ビットからなるIPアドレスを構成するネットワークアドレスとホストアドレスとの境目を自由に設定できる手法が採られてきている。ここで、IPアドレスのうちのネットワークアドレスの長さはプレフィックス長と呼ばれる。
【0003】
このような手法が採用されたインタネットプロトコルのIPアドレスは、最長一致検索と呼ばれる方法でそのアドレスの検索が行なわれる。
図9は、最長一致検索の説明図である。
図9(A)は、ルータが伝達を仲介しようとしているネットワークパケット中のデスティネーションIPアドレスからなるキーデータであり、ここでは、186.241.0.6であるとする。
【0004】
ルータ内には、図9(B)に示す2つのエントリ、すなわちエントリ1:186.240.0/12、エントリ2:186.192.0.0/10が登録されているものとする。ここで/12,/10は各エントリのプレフィックス長を示すものであり、例えば/12は、上位12ビットがネットワークアドレスであることを示している。
【0005】
ここで、図9(A)に示すキーデータが検索対象として入力された(すなわち、図9(A)に示すデスティネーションIPアドレスをもったネットワークパケットが入力された)とすると、両エントリ共に、各エントリがもつプレフィックス長までキーデータと一致するが、この場合、上位ビット側から最も長いビット長部分が一致しているエントリ1のネットワークに対して経路が開かれることになる。このように、上位ビット側から最も長いビット長部分までキーデータと一致しているエントリを検索することを最長一致検索と称する。
【0006】
上記の最長一致検索を、連想メモリを使用して実現することを考える。ここで、連想メモリとは、複数のメモリ領域を備え、それら複数のメモリ領域それぞれに所定のビット長のデータを格納しておき、キーデータが入力され、マスクされたビットを除く残りのビットについて、入力されたキーデータと一致するデータが格納されたメモリ領域を検索する機能を有する一種のメモリである。連想メモリ自体は、既に広く知られた技術であり、ここでは連想メモリ自体についての詳細説明は省略する。
【0007】
図10は、連想メモリを用いた最長一致検索方法の説明図である。
IPアドレスは32ビットであるため、連想メモリによって検索を行なう場合に、まず、図10(A)に示すように、32ビットをマスクなしで検索する。つまり、32ビット全てについて一致しているエントリが存在するか否かを検索する。次に、図10(B)に示すように、最下位ビット1ビットのみにマスクをかけて31ビットの検索を行なう。次には、最下位ビット側から2ビットにマスクをかけて30ビットの検索を行ない、以後同様にしてマスクを順次1ビットずつ増加させながら検索を行なう。
【0008】
このように、順次マスク長を増やしながら32回の検索を行なえば、最長一致しているエントリを得ることができる。上記の順序に従えば、検索の結果ヒットが最初に生じた(マスクがかけられないビット部分について一致が検出された)エントリが最長一致したエントリとなる。
【0009】
【発明が解決しようとする課題】
図11は、連想メモリを用い上記のようにして行なう最長一致検索の問題点の説明図である。
上記のようにして検索を行なっても、この図11を参照して説明するような場合は、最長一致を正確に求めていることにはならない。すなわち、2つのエントリ1,2が図11(B),(C)のように定義されていたとき、図11(A)に示すキーデータを用い下位3ビットをマスクして検索を行なうと、エントリ1とエントリ2では、プレフィックス長は、エントリ1の場合はプレフィックス長=12,エントリ2の場合はプレフィックス長=10のように異なるが、検索の結果としてはエントリ1とエントリ2の双方で一致が検出されることになる。インターネットプロトコルのルールによるとプレフィックス長の長いエントリ、すなわちここではエントリ1が選ばれるべきであるが、このような場合、エントリ1が選ばれるという保証がないことになる。
【0010】
本発明は、上記事情に鑑み、連想メモリを用い、正しいエントリを検出することのできる最長一致検索装置を提供することを目的とする。
【0011】
【課題を解決するための手段】
上記目的を達成する本発明の最長一致検索装置は、受信先アドレスをあらわすデステイネーションIPアドレスを含むネットワークパケットが入力され、入力されたネットワークパケットを、登録された複数のエントリのうちの、入力されたネットワークパケット中のデスティネーションIPアドレスに適合したエントリのネットワークに送り出すルータにおける、複数のエントリのアドレスが登録され、これら登録された複数のエントリの中から、入力されたネットワークパケット中のデスティネーションIPアドレスに最上位ビット側から最長ビット長一致するアドレスをもつエントリを検索する最長一致検索装置において、
複数のメモリ領域それぞれに所定のビット長のデータを格納しておき、キーデータが入力され、マスクされたビットを除く残りのビットについてキーデータと一致するデータが格納されたメモリ領域を検索する連想メモリであって、上記複数のメモリ領域それぞれに、各エントリのアドレスをあらわすアドレスデータと各エントリのプレフィックス長をあらわすプレフィックスデータとのペアが格納されてなる連想メモリと、
検索用のプレフィックスデータを順次に作成するプレフィックスデータ作成回路と、
入力されたネットワークパケット中のデスティネーションIPアドレスとプレフィックスデータ作成回路により作成されたプレフィックスデータとに基づいて、検索用のキーデータを作成するキーデータ作成回路とを備え、
上記連想メモリが、キーデータ作成回路により作成されたキーデータに基づいて、最上位ビット側から最長ビット長一致するアドレスデータであって、かつ、最上位ビット側から最長ビット長一致するアドレスデータが複数格納されていた場合に、これら複数のアドレスデータのうち、最長のプレフィックス長をあらわすプレフィックスデータとペアのアドレスデータが格納されたメモリ領域を検索するものであることを特徴とする。
【0012】
図1は、本発明の原理説明図である。
連想メモリには、図1(B)に示すエントリ1と図1(C)に示すエントリ2が登録されているものとする。すなわち、各エントリに対応して、ここに示す例では、32ビットのアドレスデータと、5ビットのプレフィックスデータが登録されている。
【0013】
キーデータも、図1(A)に示すように、32ビットのアドレスデータと5ビットのプレフィックスデータとの合計37ビットであり、図1に示す例では、図1(A)に示すキーデータを用いて検索を行なうと、アドレスデータとしてはエントリ1とエントリ2の双方で一致するが、プレフィックスデータは、キーデータが1C(hex)(プレフィックス=29を意味する)であるのに対し、エントリ1のプレフィックス長は、キーデータのプレフィックス長と同じ1C(hex)、エントリ2のプレフィックス長は、キーデータのプレフィックス長とは異なり1A(hex)(プレフィックス長=27を意味する)であり、したがってここに示す例では、エントリ1のみが検出される。
【0014】
このように本発明の最長一致検索装置は、連想メモリに、各エントリのアドレスをあらわすアドレスデータと各エントリのプレフィックス長(ネットワークアドレスの長さ)をあらわすプレフィックスデータとをペアを格納しておき、それらのペアで検索を行なうようにしたため、エントリのアドレスのみでは同時に複数のエントリで一致が検出されるような状況であっても、プレフィックス長の長いエントリのみで一致が検出されることになり、図11を参照して説明したような問題が解消され、正しいエントリが検出される。
【0015】
【発明の実施の形態】
以下、本発明の実施形態における2種類の最長一致検索法について説明し、次いで本発明の最長一致検索装置の実施形態について説明する。
図2は、2種類の最長一致検索法のうちの第1の最長一致検索法の説明図である。
【0016】
この図2には、検索回数ごとのキーデータのビット配列が示されでおり、各検索において32ビットからなるアドレスデータは同一、5ビットからなるプレフィックスデータは検索1回目は1F(hex)(プレフィックス長=32を意味する)から始まり、1ずつデクリメントされて検索32回目では0(hex)(プレフィックス長=1を意味する)となる。また、検索1回目はマスクなし、検索2回目は32ビットのアドレスデータの最下位1ビットをマスクする、検索3回目は32ビットのアドレスデータのうちの下位2ビットをマスクする、……、検索32回目では32ビットのアドレスデータのうちの下位31ビットをマスクする(最上位1ビットのみ有効とする)、のようにマスクを1ビットずつ順次増やして検索する。尚プレフィックスデータに関しては上記のように検索毎に値が書き換えられ、常に有効データとして検索に参加する。
【0017】
この図2に示す検索順序に従って順次に検索を行ない、最初にヒットのあったエントリが、プレフィックス長も含めて正しいエントリとして検出される。
尚、この図2に示す最長一致検索法を採用すると、検索対象を指定するためのマスクが32種類必要になるようにも考えられるが、キーデータの検索対象部分は順次1ビットずつ狭められるため、マスクレジスタとしてシフトレジスタを1つ用意すればよい。
【0018】
図3は、2種類の最長一致検索法のうちの第2の最長一致検索法の説明図である。
この図3における検索1回目のキーデータを構成するアドレスデータ(32ビット)およびプレフィックスデータ(5ビット)は、いずれも、図2に示す検索法における検索1回目のものと同一である。
【0019】
検索2回目〜検索32回目について、プレフィックスデータが順次デクリメントされる点も、図2に示す検索法と同一である。
ただし、32ビットのアドレスデータに関し、検索2回目は最下位1ビットを‘0’に置き換えたデータで検索を行ない、検索3回目は下位2ビットを‘0’に置き換えたデータで検索を行ない、……、検索32回目では、下位31ビットを‘0’に置き換えたデータで検索を行なう。すなわち、図2を参照して説明した検索法におけるマスクをかけるビットに、マスクをかける代わりに‘0’を代入する。
【0020】
一方、この図3に示すキーデータを用いた検索が行なわれる連想メモリ側には、各エントリに対応して、アドレスデータとしては、ネットワークアドレスのみ有効なデータを登録し、ホストアドレスの部分は全て‘0’を登録しておく。各エントリに対応して、このようなアドレスデータと、プレフィックスデータとのペアを連想メモリに登録しておく。
【0021】
こうしておいて、キーデータを図3に示すように順次変更しながら順次検索を行なう。
この検索法によっても、図2を参照して説明した検索法と同様に、プレフィックス長を含め正しいエントリを検出することができる。
尚、図3を参照して説明した検索法では、キーデータ側はマスクをかける代わりに‘0’を代入し、連想メモリ側はホストアドレスの部分は全て‘0’を登録しておく旨説明したが、例えばキーデータ側はマスクの代わりに‘1’を代入し、連想メモリ側のホストアドレスの部分に全て‘1’を登録しておいてもよく、検索の障害とならないように双方が同一のビット配列であればよい。
【0022】
図4は、本発明の最長一致検索装置の一実施形態を示すブロック図、図5は、そのタイミングチャートである。ここでは、この図4に示す最長一致検索装置において、図2を参照して説明した検索法による検索が行なわれるものとして説明する。
この図4に示す最長一致検索装置10にはCAMメモリブロック11が備えられており、このCAMメモリブロック11には、メンテナンスポートを経由して入力されるデータに応じて、CAMデータ入出力制御回路12により各エントリに対応したデータが登録され、必要に応じて追加、変更される。
【0023】
図6は、CAMメモリブロック11内に登録される1つのエントリに対応するデータ構成を示す図である。
ここには、32ビットのIPアドレスデータと、5ビットのプレフィックスデータと、その他のデータの各領域が示されている。その他のデータの中には、詳細説明は省略するが、例えばそのエントリの登録時刻をあらわすタイムスタンプなどがある。
【0024】
図4に示す最長一致検索装置には、最長一致検索制御回路13が備えられており、この最長一致検索制御回路13にはクロックが入力され、この最長一致検索制御回路13は、入力されたクロックに同期して、CAMメモリブロック11に登録された各エントリの中から所望のエントリを検索するための各部の制御を行なう。
【0025】
また、図4に示す最長一致検索装置10には、キーデータ生成回路14およびプレフィックスデータ生成回路15が備えられている。キーデータ生成回路14には、入力ポートを経由して検索用キーデータの基になる入力データ(デスティネーションIPアドレス)が入力され、さらに検索の開始を指示する検索開始信号が入力される(図5参照)。すると、プレフィックスデータ生成回路15では、前述したように順次デクリメントされるプレフィックスデータが生成されてキーデータ生成回路14に入力され、キーデータ生成回路14では、IPアドレスとプレフィックスデータとからなるキーデータが生成されてCAMメモリブロック11に入力される。
【0026】
図7は、キーデータ生成回路14で生成されるキーデータの構成を示した図である。
キーデータ生成回路14では、32ビットのIPアドレスデータと5ビットのプレフィックスデータと、さらにその他のデータとからなるキーデータが生成される。ここではその他のデータは、CAMメモリブロックに登録されたデータ(図6参照)とデータ長を合わせるためだけの役割りを担っており、どのようなデータであってもかまわない。
【0027】
図8は、検索1回目〜検索32回目の各検索に用いられるキーデータの一例を示した図である。
各回の検索とも、IPアドレスデータは同一であり、プレフィックスデータは順次1ずつデクリメントされている。
マスク生成回路16では、キーデータをマスクするためのマスクデータが生成されてCAMメモリブロック11に入力される。検索1回目では、その他のデータの部分についてのみマスクされ、検索2回目では、その他のデータの部分と、32ビットのIPアドレスデータのうちの最下位1ビットについてマスクされ、……、検索32回目では、その他のデータの部分と、32ビットのIPアドレスデータのうちの下位31ビットについてマスクされるように、順次異なるマスクデータが生成される。
【0028】
CAMメモリブロック11内では、キーデータ生成回路14で生成されてCAMメモリブロック11に入力されるキーデータのうち、マスク生成回路16で生成されたマスクデータでマスクされていない有効部分について順次に32回の検索が行なわれ、最初にヒットがあった時点のCAMメモリブロック11のアドレスとそのアドレスに格納された内容からなる最長一致検索結果がCAMメモリブロック11から出力されて最長一致検索結果出力回路17に一旦格納され、32回の検索が終了した時点で最長一致検索制御回路13から最長一致検索結果出力回路17に検索終了信号が送られ、最長一致検索結果出力回路17は、その検索終了信号を受けて、その最長一致検索結果を出力ポートから出力する。
【0029】
尚、上記の、図4に示す最長一致検索装置10の説明は、図2を参照して説明した検索法を適用するものとしたときの説明であるが、この図4に示した最長一致検索装置10では、図3を参照して説明した検索法を適用した検索を行なうこともできる。すなわち、このときは、CAMメモリブロック11には、各エントリのIPアドレスのうちのネットワークアドレスのみ有効なデータを格納し、ホストアドレスの部分には全て‘0’を書き込んでおき、一方、キーデータ生成回路14では、検索2回目は32ビットのアドレスデータの最下位1ビットを‘0’とし、検索3回目は32ビットのアドレスデータの下位2ビットを‘0’とし、……、検索32回目は32ビットのアドレスデータの下位31ビットを‘0’としたデータを生成し、CAMメモリブロック11では、そのように生成されたキーデータを用いた検索を行なう。このとき、マスク生成回路16で生成されるマスクデータは、32回の検索の全てにおいて、その他のデータの部分のみマスクをかけるマスクデータを生成する。このような検索を行なうことにより、図4に示した最長一致検索装置10を用い、図3を参照して説明した検索法がそのまま実現される。
【0030】
【発明の効果】
以上説明したように、本発明によれば、正しい最長一致検索が行なわれる。
【図面の簡単な説明】
【図1】本発明の原理説明図である。
【図2】2種類の最長一致検索法のうちの第1の最長一致検索法の説明図である。
【図3】2種類の最長一致検索法のうちの第2の最長一致検索法の説明図である。
【図4】本発明の最長一致検索装置の一実施形態を示すブロック図である。
【図5】図5は、そのタイミングチャートである。
【図6】CAMメモリブロック11内に登録される1つのエントリに対応するデータ構成を示す図である。
【図7】キーデータ生成回路15で作成されるキーデータの構成を示した図である。
【図8】検索1回目〜検索32回目の各検索に用いられるキーデータの一例を示した図である。
【図9】最長一致検索の説明図である。
【図10】連想メモリを用いた最長一致検索方法の説明図である。
【図11】連想メモリを用いた最長一致検索の問題点の説明図である。
【符号の説明】
10 最長一致検索装置
11 CAMメモリブロック
12 CAMデータ入出力制御回路
13 最長一致検索制御回路
14 キーデータ生成回路
15 プレフィックスデータ生成回路
16 マスク生成回路
17 最長一致検索結果出力回路[0001]
BACKGROUND OF THE INVENTION
The present invention provides a longest match between a registered address and an address in an input network packet, which is installed in a router that is arranged in an Internet communication line network and mediates transmission of a network packet flowing in the communication line network. The present invention relates to a longest match search device that performs a search.
[0002]
[Prior art]
At present, communication called the Internet has become widespread, and accompanying this, there is a problem of exhaustion of addresses that specify a source and a destination. Currently, in the Internet protocol, a 32-bit IP address is used to address the address exhaustion problem. A technique has been adopted in which a boundary between a network address and a host address constituting an address can be freely set. Here, the length of the network address in the IP address is called the prefix length.
[0003]
An IP address of an Internet protocol employing such a method is searched for by using a method called longest match search.
FIG. 9 is an explanatory diagram of the longest match search.
FIG. 9A shows key data composed of a destination IP address in a network packet that the router intends to mediate transmission. Here, it is assumed that the key data is 186.241.0.6.
[0004]
Assume that two entries shown in FIG. 9B, that is, entry 1: 186.240.0 / 12 and entry 2: 186.192.0.0/10 are registered in the router. Here, / 12 and / 10 indicate the prefix length of each entry. For example, / 12 indicates that the upper 12 bits are a network address.
[0005]
If the key data shown in FIG. 9A is input as a search target (that is, the network packet having the destination IP address shown in FIG. 9A is input), both entries are The key data matches up to the prefix length of each entry. In this case, a path is opened to the network of
[0006]
Consider realizing the longest match search using an associative memory. Here, the associative memory has a plurality of memory areas, stores data of a predetermined bit length in each of the plurality of memory areas, and inputs the key data, and the remaining bits excluding the masked bits This is a kind of memory having a function of searching a memory area in which data matching the input key data is stored. The associative memory itself is a widely known technique, and detailed description of the associative memory itself is omitted here.
[0007]
FIG. 10 is an explanatory diagram of a longest match search method using an associative memory.
Since the IP address is 32 bits, when searching using the associative memory, first, 32 bits are searched without a mask as shown in FIG. That is, it is searched whether there is a matching entry for all 32 bits. Next, as shown in FIG. 10B, a 31-bit search is performed by masking only one least significant bit. Next, a 30-bit search is performed by masking the 2 bits from the least significant bit side, and thereafter, the search is performed while sequentially increasing the mask bit by bit.
[0008]
In this way, if the search is performed 32 times while sequentially increasing the mask length, the longest matching entry can be obtained. According to the above order, the entry having the first hit as a result of the search (the match is detected for the bit portion that cannot be masked) is the longest matching entry.
[0009]
[Problems to be solved by the invention]
FIG. 11 is an explanatory diagram of the problem of the longest match search performed as described above using the associative memory.
Even if the search is performed as described above, the longest match is not accurately obtained in the case described with reference to FIG. That is, when the two
[0010]
In view of the above circumstances, an object of the present invention is to provide a longest match search apparatus that can detect a correct entry using an associative memory.
[0011]
[Means for Solving the Problems]
In the longest match search device of the present invention that achieves the above object, a network packet including a destination IP address representing a destination address is input, and the input network packet is input from a plurality of registered entries. The address of a plurality of entries is registered in the router that sends to the network of the entry that matches the destination IP address in the registered network packet, and the destination in the input network packet is selected from the plurality of registered entries. In the longest match search device that searches for an entry having an address that matches the longest bit length from the most significant bit to the IP address,
Associative to store data of a predetermined bit length in each of a plurality of memory areas, search for a memory area in which key data is input, and the remaining bits excluding masked bits store data that matches the key data A content addressable memory in which a pair of address data representing the address of each entry and prefix data representing the prefix length of each entry is stored in each of the plurality of memory areas;
A prefix data creation circuit that sequentially creates prefix data for search;
A key data creation circuit that creates key data for search based on the destination IP address in the input network packet and the prefix data created by the prefix data creation circuit;
Based on the key data created by the key data creation circuit, the associative memory has address data that matches the longest bit length from the most significant bit side, and address data that matches the longest bit length from the most significant bit side. When a plurality of address data are stored, the memory area storing the address data paired with the prefix data representing the longest prefix length among the plurality of address data is searched.
[0012]
FIG. 1 is an explanatory diagram of the principle of the present invention.
It is assumed that
[0013]
As shown in FIG. 1A, the key data is also a total of 37 bits including 32-bit address data and 5-bit prefix data. In the example shown in FIG. 1, the key data shown in FIG. When the search is performed, the address data matches in both the
[0014]
In this way, the longest match search device of the present invention stores a pair of address data representing the address of each entry and prefix data representing the prefix length (network address length) of each entry in the associative memory, Since the search is made with these pairs, even if the match is detected in multiple entries at the same time only by the address of the entry, the match will be detected only in the entry with a long prefix length. The problem described with reference to FIG. 11 is solved, and a correct entry is detected.
[0015]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, two types of longest match search methods in the embodiment of the present invention will be described, and then an embodiment of the longest match search device of the present invention will be described.
FIG. 2 is an explanatory diagram of a first longest match search method of two types of longest match search methods.
[0016]
FIG. 2 shows a bit arrangement of key data for each number of searches. In each search, address data consisting of 32 bits is the same, prefix data consisting of 5 bits is 1F (hex) (prefix) for the first search. Starts at length = 32) and is decremented by 1 and becomes 0 (hex) (prefix length = 1) at the 32nd search. Also, the first search does not mask, the second search masks the least significant 1 bit of 32-bit address data, the third search masks the lower 2 bits of 32-bit address data, ... In the 32nd time, the lower 31 bits of the 32-bit address data are masked (only the most significant 1 bit is valid), and the mask is sequentially incremented by 1 bit so as to be searched. Note that the value of the prefix data is rewritten for each search as described above, and always participates in the search as valid data.
[0017]
The search is sequentially performed in accordance with the search order shown in FIG. 2, and the first hit entry is detected as a correct entry including the prefix length.
If the longest match search method shown in FIG. 2 is adopted, it may be considered that 32 types of masks for designating the search target are required. However, the search target portion of the key data is sequentially narrowed bit by bit. One shift register may be prepared as a mask register.
[0018]
FIG. 3 is an explanatory diagram of a second longest match search method of the two longest match search methods.
The address data (32 bits) and prefix data (5 bits) constituting the key data for the first search in FIG. 3 are the same as those for the first search in the search method shown in FIG.
[0019]
The prefix data is sequentially decremented for the second search to the 32nd search, which is the same as the search method shown in FIG.
However, regarding the 32-bit address data, the second search is performed with data in which the least significant bit is replaced with “0”, and the third search is performed with data in which the lower 2 bits are replaced with “0”. ... In the 32nd search, the search is performed with data in which the lower 31 bits are replaced with “0”. That is, '0' is substituted for the bit to be masked in the search method described with reference to FIG. 2 instead of masking.
[0020]
On the other hand, on the associative memory side where the search using the key data shown in FIG. 3 is performed, data valid only for the network address is registered as address data corresponding to each entry, and all the host address portions are registered. Register “0”. Corresponding to each entry, such a pair of address data and prefix data is registered in the content addressable memory.
[0021]
In this way, the search is sequentially performed while sequentially changing the key data as shown in FIG.
Also by this search method, the correct entry including the prefix length can be detected as in the search method described with reference to FIG.
In the search method described with reference to FIG. 3, “0” is substituted on the key data side instead of masking, and “0” is registered in the associative memory side for all host addresses. However, for example, the key data side may substitute “1” in place of the mask, and all “1” may be registered in the host address portion on the associative memory side. The same bit arrangement may be used.
[0022]
FIG. 4 is a block diagram showing an embodiment of the longest match search apparatus of the present invention, and FIG. 5 is a timing chart thereof. Here, the longest match search apparatus shown in FIG. 4 will be described as being searched by the search method described with reference to FIG.
The longest
[0023]
FIG. 6 is a diagram showing a data structure corresponding to one entry registered in the CAM memory block 11.
Here, areas of 32-bit IP address data, 5-bit prefix data, and other data are shown. The other data includes, for example, a time stamp indicating the registration time of the entry, although a detailed description is omitted.
[0024]
The longest match
[0025]
The longest
[0026]
FIG. 7 is a diagram showing a configuration of key data generated by the key
The key
[0027]
FIG. 8 is a diagram showing an example of key data used for each search from the first search to the 32nd search.
In each search, the IP address data is the same, and the prefix data is sequentially decremented by one.
In the
[0028]
Within the CAM memory block 11, among the key data generated by the key
[0029]
The longest
[0030]
【The invention's effect】
As described above, according to the present invention, a correct longest match search is performed.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating the principle of the present invention.
FIG. 2 is an explanatory diagram of a first longest match search method of two types of longest match search methods.
FIG. 3 is an explanatory diagram of a second longest match search method of two types of longest match search methods.
FIG. 4 is a block diagram showing an embodiment of the longest match search device of the present invention.
FIG. 5 is a timing chart thereof.
6 is a diagram showing a data structure corresponding to one entry registered in a CAM memory block 11. FIG.
FIG. 7 is a diagram showing a configuration of key data created by a key
FIG. 8 is a diagram showing an example of key data used for each search from the first search to the 32nd search.
FIG. 9 is an explanatory diagram of a longest match search.
FIG. 10 is an explanatory diagram of a longest match search method using an associative memory.
FIG. 11 is an explanatory diagram of a problem of longest match search using an associative memory.
[Explanation of symbols]
10 longest match search device 11
Claims (1)
複数のメモリ領域それぞれに所定のビット長のデータを格納しておき、キーデータが入力され、マスクされたビットを除く残りのビットについて該キーデータと一致するデータが格納されたメモリ領域を検索する連想メモリであって、前記複数のメモリ領域それぞれに、各エントリのアドレスをあらわすアドレスデータと各エントリのプレフィックス長をあらわすプレフィックスデータとのペアが格納されてなる連想メモリと、
検索用のプレフィックスデータを順次に作成するプレフィックスデータ作成回路と、
入力されたネットワークパケット中のデスティネーションIPアドレスと前記プレフィックスデータ作成回路により作成されたプレフィックスデータとに基づいて、検索用のキーデータを作成するキーデータ作成回路とを備え、
前記連想メモリが、前記キーデータ作成回路により作成されたキーデータに基づいて、最上位ビット側から最長ビット長一致するアドレスデータであって、かつ、最上位ビット側から最長ビット長一致するアドレスデータが複数格納されていた場合に、これら複数のアドレスデータのうち、最長のプレフィックス長をあらわすプレフィックスデータとペアのアドレスデータが格納されたメモリ領域を検索するものであることを特徴とする最長一致検索装置。A network packet including a destination IP address that represents a destination address is input, and the input network packet is an entry that matches the destination IP address in the input network packet among a plurality of registered entries. The address of a plurality of entries in the router to be sent to the network is registered, and an address that matches the longest bit length from the most significant bit side to the destination IP address in the input network packet from among the plurality of registered entries In the longest match search device that searches for entries with
Data of a predetermined bit length is stored in each of a plurality of memory areas, key data is input, and a memory area storing data matching the key data is searched for the remaining bits excluding masked bits. An associative memory, wherein each of the plurality of memory areas stores a pair of address data representing the address of each entry and prefix data representing the prefix length of each entry;
A prefix data creation circuit that sequentially creates prefix data for search;
A key data creation circuit that creates key data for search based on the destination IP address in the input network packet and the prefix data created by the prefix data creation circuit;
Based on the key data created by the key data creation circuit, the associative memory is address data that matches the longest bit length from the most significant bit side, and address data that matches the longest bit length from the most significant bit side The longest match search is characterized by searching for the memory area where the address data paired with the prefix data representing the longest prefix length is stored among the multiple address data. apparatus.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8402998A JP3845512B2 (en) | 1998-03-30 | 1998-03-30 | Longest match search device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8402998A JP3845512B2 (en) | 1998-03-30 | 1998-03-30 | Longest match search device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11284658A JPH11284658A (en) | 1999-10-15 |
JP3845512B2 true JP3845512B2 (en) | 2006-11-15 |
Family
ID=13819126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8402998A Expired - Fee Related JP3845512B2 (en) | 1998-03-30 | 1998-03-30 | Longest match search device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3845512B2 (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001326679A (en) | 2000-05-15 | 2001-11-22 | Fujitsu Ltd | Information unit, table retrieval device, table retrieval method, and recording medium |
KR100493099B1 (en) * | 2000-12-22 | 2005-06-02 | 삼성전자주식회사 | Route lookup and routing/forwarding table management for high-speed internet protocol router |
JP5072145B2 (en) * | 2001-04-05 | 2012-11-14 | 富士通セミコンダクター株式会社 | Associative memory |
WO2005013566A1 (en) * | 2003-07-31 | 2005-02-10 | Fujitsu Limited | Data search method and device |
JP4784994B2 (en) * | 2006-10-26 | 2011-10-05 | Kddi株式会社 | Relay method, terminal, relay device, and program for relaying packets based on position information |
JPWO2014102924A1 (en) * | 2012-12-26 | 2017-01-12 | 株式会社高速屋 | Bit determination circuit, bit string data selection circuit, and bit string data selection method |
-
1998
- 1998-03-30 JP JP8402998A patent/JP3845512B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH11284658A (en) | 1999-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7966421B2 (en) | Method and apparatus for logically expanding the length of a search key | |
US8073856B2 (en) | System and method for efficiently searching a forwarding database that is split into a bounded number of sub-databases having a bounded size | |
JP4355188B2 (en) | Packet transfer device | |
US6665297B1 (en) | Network routing table | |
US7788406B2 (en) | Method and system for reducing look-up time in packet forwarding on computer networks | |
CA2434876C (en) | Method and apparatus for ternary content addressable memory (tcam) table management | |
US7443841B2 (en) | Longest prefix matching (LPM) using a fixed comparison hash table | |
US20030225907A1 (en) | Forwarding traffic in a network using a single forwarding table that includes forwarding information related to a plurality of logical networks | |
WO2001005116A2 (en) | Routing method and apparatus | |
US20190294549A1 (en) | Hash Table-Based Mask Length Computation for Longest Prefix Match Caching | |
US6917954B2 (en) | Load balancing in IP address lookup | |
US20040044868A1 (en) | Method and apparatus for high-speed longest prefix match of keys in a memory | |
JP3845512B2 (en) | Longest match search device | |
US10897422B2 (en) | Hybrid routing table for routing network traffic | |
US7515588B2 (en) | Method and apparatus to support a large internet protocol forwarding information base | |
US7385983B2 (en) | Network address-port translation apparatus and method | |
JP3376941B2 (en) | Router device | |
JP4726310B2 (en) | Information retrieval apparatus, information retrieval multiprocessor and router | |
JP2003234762A (en) | Device, method and program for table retrieving, and recording medium | |
US20230403281A1 (en) | Interleaved exact-match lookup table for multiple packet processing applications in a network device | |
JP2003244208A (en) | Longest matching retrieval method | |
JP2011244132A (en) | Router and route storage method | |
JP2010041248A (en) | Arp table managing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050310 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060810 |
|
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: 20060815 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060821 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090825 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100825 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110825 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110825 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120825 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |