JP4642628B2 - Data transfer device, address information search circuit, and address information search method - Google Patents

Data transfer device, address information search circuit, and address information search method Download PDF

Info

Publication number
JP4642628B2
JP4642628B2 JP2005301691A JP2005301691A JP4642628B2 JP 4642628 B2 JP4642628 B2 JP 4642628B2 JP 2005301691 A JP2005301691 A JP 2005301691A JP 2005301691 A JP2005301691 A JP 2005301691A JP 4642628 B2 JP4642628 B2 JP 4642628B2
Authority
JP
Japan
Prior art keywords
information
address
conversion
search
register
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
JP2005301691A
Other languages
Japanese (ja)
Other versions
JP2007110613A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2005301691A priority Critical patent/JP4642628B2/en
Publication of JP2007110613A publication Critical patent/JP2007110613A/en
Application granted granted Critical
Publication of JP4642628B2 publication Critical patent/JP4642628B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、転送されるデータに含まれるIPアドレス及びポート番号を変換する処理に用いて好適なデータ転送装置、アドレス情報検索回路、及びアドレス情報検索方法に関する。   The present invention relates to a data transfer apparatus, an address information search circuit, and an address information search method suitable for use in processing for converting an IP address and a port number included in transferred data.

従来、グローバルIPアドレスでルーティングされるインターネットと、プライベートIPアドレスでルーティングされるイントラネット等を接続する場合、限られたグローバルIPアドレスを有効に利用するため、あるいはインターネットとイントラネットの間においてファイアウォールを構築するために、TCPやUDPのパケットのIPアドレス及びポート番号を変換するNAPT(Network Address Port Transport)という技術が知られている。   Conventionally, when connecting the Internet routed with a global IP address and an intranet routed with a private IP address, a firewall is constructed to effectively use a limited global IP address or between the Internet and the intranet. Therefore, a technique called NAPT (Network Address Port Transport) that converts the IP address and port number of a TCP or UDP packet is known.

NAPTは、ルータ等の内部に記憶される変換テーブルに基づいてIPアドレス及びポート番号の変換が行われ、例えば、インターネットからイントラネットの方向へ送信される場合、ルータは、パケットのヘッダの送信先のグローバルIPアドレスと送信先ポート番号の組み合わせのエントリを変換テーブルから検出し、検出したエントリに含まれるプライベートIPアドレスとポート番号との組み合わせで、当該パケットの送信先のグローバルIPアドレスと送信先ポート番号を書き換える。そして、ルータは書き換えたパケットをイントラネット側に送出し、当該パケットを端末に到達させる。   In NAPT, an IP address and a port number are converted based on a conversion table stored inside a router or the like. For example, when the NAPT is transmitted from the Internet to the intranet, the router An entry of a combination of a global IP address and a destination port number is detected from the conversion table, and a combination of a private IP address and a port number included in the detected entry is used to determine the destination global IP address and destination port number of the packet. Rewrite. Then, the router sends the rewritten packet to the intranet side so that the packet reaches the terminal.

イントラネットからインターネットの方向へ送信される場合には、パケットのヘッダの送信元のプライベートIPアドレスと送信元のポート番号の組み合わせのエントリを変換テーブルから検出し、検出したエントリに含まれるグローバルIPアドレスとポート番号との組み合わせで、当該パケットの送信元のプライベートIPアドレスとポート番号を書き換え、インターネット側へ送出する。  When transmitted from the intranet to the Internet, the entry of the combination of the source private IP address and the source port number in the packet header is detected from the conversion table, and the global IP address included in the detected entry is detected. The private IP address and port number of the transmission source of the packet are rewritten in combination with the port number, and the packet is transmitted to the Internet side.

ところで、変換テーブルに記憶されるエントリの数が少ない場合には、順次検索しても、転送時間に支障をきたすことがないが、エントリの数が非常に多い場合、転送時間に支障をきたすため、検索方法を工夫し、さらに、ハードウェア処理により検索時間を短縮することが望まれている。   By the way, if the number of entries stored in the conversion table is small, sequential search will not affect the transfer time, but if the number of entries is very large, the transfer time will be impaired. It is desired to devise a search method and further reduce the search time by hardware processing.

検索方法としては、従来よりルーティングテーブルから送信先のIPアドレスを高速に検索する方法であるラディックスツリーを用いた二分探索方法などが一般的に知られており、この方法をNAPTにおける検索処理に適用することも可能である(非特許文献1参照)。
ゲーリ・R.ライト(著),W.リチャード スティーヴンス(著),徳田 英幸(翻訳),戸辺 義人(翻訳),“詳解TCP/IP <Vol.2> 実装”,ISBN4-89471-495-7,pp527-534,ピアソンエデュケーション
As a search method, a binary search method using a radix tree, which is a method for searching a destination IP address at a high speed from a routing table, is generally known, and this method is applied to search processing in NAPT. It is also possible (see Non-Patent Document 1).
Gary R. Wright (Author), W. Richard Stevens (Author), Hideyuki Tokuda (Translation), Yoshito Tobe (Translation), "Detailed TCP / IP <Vol.2>Implementation", ISBN4-89471-495-7, pp527-534, Pearson Education

しかしながら、上記のラディックスツリーを用いた検索方法は、検索対象となるデータのパターンにより、早期に検索が終了する場合と、検索に長時間を要してしまう場合とがあり、ハードウェア処理で実現する場合、タイミング制御を行うことが困難であるという問題がある。   However, the above-described search method using a radix tree may be completed early or depending on the pattern of data to be searched, and may take a long time for the search. In this case, there is a problem that it is difficult to perform timing control.

本発明は、上記問題を解決すべくなされたもので、その目的は、NAPTにおける検索時間の短縮を可能とし、さらに、ハードウェア処理に適したNAPTの検索処理を実現することを可能とするデータ転送装置、アドレス情報検索回路、及びアドレス情報検索方法を提供することにある。   The present invention has been made to solve the above-described problem, and its object is to make it possible to shorten the search time in the NAPT and to further realize the NAPT search process suitable for hardware processing. A transfer device, an address information search circuit, and an address information search method are provided.

上記問題を解決するために、本発明は、一意に識別可能な第1のアドレス情報で転送が行われる複数の第1のネットワークと、ネットワーク内でのみ一意に識別可能な第2のアドレス情報で転送が行われる第2のネットワークとに接続され、前記複数の第1のネットワークと第2のネットワークとの間でデータを転送するデータ転送装置であって、第1のアドレス情報と、当該第1のアドレス情報に対応する前記第2のアドレス情報とを対応付けた変換情報を記憶する変換情報記憶手段と、前記変換情報記憶手段が記憶する複数の変換情報に含まれる前記第1のアドレス情報を数値で示した場合、当該数値の値の大きさの順に前記変換情報を参照できるようにする第1の順序情報を記憶する第1の順序情報記憶手段と、前記変換情報記憶手段が記憶する複数の変換情報に含まれる前記第2のアドレス情報を数値で示した場合、当該数値の値の大きさの順に前記変換情報を参照できるようにする第2の順序情報を記憶する第2の順序情報記憶手段と、前記複数の第1のネットワークのいずれか1つからデータを受信した場合、前記データに含まれる送信先を示す第1のアドレス情報から当該第1のアドレス情報を含む検索キー情報を生成し、前記第1の順序情報記憶手段が記憶する第1の順序情報及び前記検索キー情報に基づいて、二分探索法にて前記変換情報記憶手段から前記検索キー情報を含む変換情報を検索し、検索した変換情報に含まれる第2のアドレス情報を前記変換情報記憶手段から読み出して出力する第1の検索手段と、前記第1の検索手段が出力した第2のアドレス情報で、前記データの送信先を書き換えて第2のネットワークへ転送する第1の転送手段と、前記第2のネットワークからデータを受信した場合、前記データに含まれる送信先を示す第2のアドレス情報から当該第2のアドレス情報を含む検索キー情報を生成し、前記第2の順序情報記憶手段が記憶する第2の順序情報及び前記検索キー情報に基づいて、二分探索法にて前記変換情報記憶手段から前記検索キー情報を含む変換情報を検索し、検索した変換情報に含まれる第1のアドレス情報を前記変換情報記憶手段から読み出して出力する第2の検索手段と、前記第2の検索手段が出力した第1のアドレス情報で、前記データの送信元を書き換えて第1のネットワークへ転送する第2の転送手段と、を備えたことを特徴とするデータ転送装置である。 In order to solve the above problem, the present invention provides a plurality of first networks that are transferred using uniquely identifiable first address information, and second address information that can be uniquely identified only within the network. A data transfer device connected to a second network where transfer is performed and transferring data between the plurality of first networks and the second network, wherein the first address information and the first network Conversion information storage means for storing conversion information in association with the second address information corresponding to the address information, and the first address information included in the plurality of conversion information stored in the conversion information storage means. A first order information storage unit that stores first order information that enables the conversion information to be referred to in order of the magnitude of the numerical value, and the conversion information storage unit When the second address information included in the plurality of conversion information to be stored is indicated by a numerical value, the second order information is stored so that the conversion information can be referred to in order of the numerical value. When the data is received from any one of the sequence information storage means and the plurality of first networks, the search includes the first address information from the first address information indicating the transmission destination included in the data Conversion information that generates key information and includes the search key information from the conversion information storage means by a binary search method based on the first order information and the search key information stored in the first order information storage means The first search means for reading out and outputting the second address information contained in the searched conversion information from the conversion information storage means, and the second address output by the first search means A first transfer means for rewriting the destination of the data and transferring it to the second network, and a second address indicating the destination included in the data when the data is received from the second network Search key information including the second address information is generated from the information, and the conversion information is obtained by a binary search method based on the second order information and the search key information stored in the second order information storage means. Second search means for searching for conversion information including the search key information from the storage means, and reading out and outputting first address information contained in the searched conversion information from the conversion information storage means; and the second search And a second transfer means for rewriting the data transmission source with the first address information outputted by the means and transferring the data to the first network. is there.

本発明は、上記に記載の発明において、前記変換情報記憶手段が記憶する変換情報は、前記第1のIPアドレスと、前記第1のポート番号と、前記第2のIPアドレスと、前記第2のポート番号と、前記プロトコル番号とを含み、前記第1のアドレス情報は、前記第1のIPアドレスと、前記第1のポート番号とを組み合わせた情報であり、前記第2のアドレス情報は、前記第2のIPアドレスと、前記第2のポート番号とを組み合わせた情報であり、前記検索キー情報は、前記第1のIPアドレスと、前記第1のポート番号と、前記プロトコル番号とを組み合わせた情報、あるいは前記第2のIPアドレスと、前記第2のポート番号と前記プロトコル番号とを組み合わせた情報であり、前記第1の順序情報は、前記変換情報記憶手段が記憶する複数の変換情報に含まれる前記第1のアドレス情報と前記プロトコル番号とを組み合わせた情報を数値で表した場合、当該数値の値の大きさの順に前記変換情報を参照できるようにし、前記第2の順序情報は、前記変換情報記憶手段が記憶する複数の変換情報に含まれる前記第2のアドレス情報と前期プロトコル番号とを組み合わせた情報を数値で表した場合、当該数値の値の大きさの順に前記変換情報を参照できるようにすることを特徴とする。   According to the present invention, in the invention described above, the conversion information stored in the conversion information storage means includes the first IP address, the first port number, the second IP address, and the second IP address. Port number and the protocol number, the first address information is information combining the first IP address and the first port number, and the second address information is The information is a combination of the second IP address and the second port number, and the search key information is a combination of the first IP address, the first port number, and the protocol number. Information or a combination of the second IP address, the second port number, and the protocol number, and the conversion information storage means stores the first order information. When the information combining the first address information and the protocol number included in the plurality of conversion information is expressed by a numerical value, the conversion information can be referred to in order of the value of the numerical value. If the order information of 2 represents the combination of the second address information and the previous protocol number included in the plurality of pieces of conversion information stored in the conversion information storage means as a numerical value, the magnitude of the value of the numerical value In this order, the conversion information can be referred to.

本発明は、受信するデータに含まれる送信先あるいは送信元のアドレス情報を他のアドレス情報へ変換して転送するデータ転送装置に具備されるアドレス情報検索回路であって、アドレス情報と、当該アドレス情報に対応する前記他のアドレス情報とを対応付けた所定の個数の変換情報を、前記アドレス情報が示す数値が大きい順に記憶する記憶手段と、一定周期でクロックを生成するクロック生成手段と、前記アドレス情報を含む検索キー情報を入力する入力手段と、最初のクロックにて、前記所定の個数の中央値が記録され、クロック周期ごとに内部に記憶している情報を出力する第1のレジスタと、最初のクロックにて、零の値が記録され、クロック周期ごとに内部に記憶している情報を出力する第2のレジスタと、最初のクロックにて、前記所定の個数の中央値を最大値とした場合の中央値が記録され、クロック周期ごとに、内部に記憶している情報を出力する第3のレジスタと、クロック周期ごとに、前記第1のレジスタが出力する値と、前記第3のレジスタから出力される値との論理和を算出し、算出した論理和を第1の論理和として出力する第1の論理和演算手段と、クロック周期ごとに、前記第2のレジスタから出力される値と、前記第3のレジスタから出力される値との論理和を算出し、算出した論理和を第2の論理和として出力する第2の論理和演算手段と、クロック周期ごとに、前記第3のレジスタが出力する値を最大値とした場合の中央値を出力する中央値算出手段と、クロック周期ごとに、前記記憶手段から第1のレジスタから出力される値に対応する順位の変換情報を読み出し、読み出した変換情報に含まれる検索対象部分を組み合わせた情報の数値が、前記入力手段が入力する前記検索キー情報が示す数値以下であるか否か、あるいは前記入力手段が入力する前記検索キー情報が示す数値に一致するか否かを判定する判定手段と、クロック周期ごとに、前記第1の論理和演算手段が出力する第1の論理和、及び前記第2の論理和演算手段が出力する第2の論理和を記憶し、前記判定手段が、読み出した変換情報に含まれる検索対象部分を組み合わせた情報の数値が、前記入力手段が入力する前記検索キー情報が示す数値以下であると判定した場合、記憶している前記第1の論理和を前記第1のレジスタに記録し、前記判定手段が、前記変換情報に含まれる検索対象部分を組み合わせた情報の数値が、前記入力手段が入力する前記検索キー情報の数値以下でないと判定した場合、記憶している前記第2の論理和を前記第1のレジスタに記録する第1のセレクタと、クロック周期ごとに、前記第1のレジスタから出力される値と、前記第2のレジスタから出力される値とを記憶し、前記判定手段が、読み出した変換情報に含まれる検索対象部分を組み合わせた情報の数値が、前記入力手段が入力する前記検索キー情報が示す数値以下であると判定した場合、記憶している前記第1のレジスタから出力される値を前記第2のレジスタに記録し、前記判定手段が、前記変換情報に含まれる検索対象部分を組み合わせた情報の数値が、前記入力手段が入力する前記検索キー情報が示す数値以下でないと判定した場合、記憶している前記第2のレジスタが出力した値を第2のレジスタに記録する第2のセレクタと、クロック周期ごとに、前記中央値算出手段が算出した値を前記第3のレジスタに記録する第3のセレクタと、前記判定手段が、前記変換情報に含まれる検索対象部分を組み合わせた情報の数値が、前記入力手段が入力する前記検索キー情報が示す数値に一致すると判定した場合、一致したことを示す情報とともに当該変換情報に含まれる他のアドレス情報を出力する出力手段と、を備えたことを特徴とするアドレス情報検索回路である。   The present invention relates to an address information search circuit provided in a data transfer device for converting address information of a transmission destination or a transmission source included in received data into other address information and transferring the address information, and the address information Storage means for storing a predetermined number of pieces of conversion information associated with the other address information corresponding to the information in descending order of numerical values indicated by the address information, clock generation means for generating a clock at a constant period, and An input means for inputting search key information including address information, and a first register for recording the predetermined number of median values at the first clock and outputting the information stored therein every clock cycle; In the first clock, a zero value is recorded, and a second register for outputting the information stored therein every clock cycle, and the first clock A median value when the predetermined number of median values is the maximum value is recorded, and a third register for outputting information stored therein for each clock cycle, and the first register for each clock cycle. A first OR operation means for calculating a logical sum of a value output from the first register and a value output from the third register, and outputting the calculated OR as a first OR; and a clock cycle Each time, a logical sum of a value output from the second register and a value output from the third register is calculated, and the calculated logical sum is output as a second logical sum. Sum operation means, median value calculation means for outputting a median value when the value output from the third register is the maximum value for each clock cycle, and the first register from the storage means for each clock cycle Corresponds to the value output from Whether or not the numerical value of the information obtained by combining the search target parts included in the read conversion information is equal to or less than the numerical value indicated by the search key information input by the input means, or the input means A determination unit that determines whether or not the numerical value indicated by the input search key information matches, a first logical sum output from the first logical sum operation unit, and the second logical unit for each clock cycle The second logical sum output by the sum calculation means is stored, and the numerical value of the information obtained by combining the search target parts included in the conversion information read by the determination means is indicated by the search key information input by the input means. When it is determined that the value is less than or equal to a numerical value, the stored first logical sum is recorded in the first register, and the determination unit is configured to store information including a combination of search target portions included in the conversion information. A first selector that records the stored second logical sum in the first register when it is determined that the numerical value is not less than or equal to the numerical value of the search key information input by the input means; In addition, a value output from the first register and a value output from the second register are stored, and a numerical value of information obtained by combining the search target portions included in the read conversion information by the determination unit When it is determined that the value is equal to or less than the numerical value indicated by the search key information input by the input means, the stored value output from the first register is recorded in the second register, and the determination means However, if it is determined that the numerical value of the information combined with the search target portion included in the conversion information is not less than or equal to the numerical value indicated by the search key information input by the input means, the stored second A second selector for recording the value output by the register in the second register, a third selector for recording the value calculated by the median value calculation means in the third register for each clock period, and the determination When the means determines that the numerical value of the information combining the search target parts included in the conversion information matches the numerical value indicated by the search key information input by the input means, the conversion information together with the information indicating the match Output means for outputting other address information included in the address information search circuit.

本発明は、上記に記載の発明において、前記出力手段は、前記所定の個数に応じた回数、クロック生成手段からクロックが生成された後に、前記判定手段が、前記変換情報に含まれる検索対象部分を組み合わせた情報の数値が、前記入力手段が入力する前記検索キー情報が示す数値が一致すると判定した場合、一致したことを示す情報とともに当該変換情報に含まれる他のアドレス情報を出力することを特徴とする。   According to the present invention, in the invention described above, the output unit generates a search target part included in the conversion information after the clock is generated from the clock generation unit a number of times according to the predetermined number. When it is determined that the numerical value of the information combined with the numerical value indicated by the search key information input by the input means matches, the other address information included in the conversion information is output together with the information indicating the matching. Features.

本発明は、上記に記載の発明において、前記記憶手段は、アドレス情報と、当該アドレス情報に対応する前記他のアドレス情報とを対応付けた所定の個数の変換情報を記憶する変換情報記憶手段と、前記変換情報記憶手段が記憶する所定の個数の変換情報に含まれる前記アドレス情報を数値で示した場合に、当該数値の値の大きさの順に前記変換情報を参照できるようにする順序情報を記憶する順序情報記憶手段と、を備え、前記判定手段は、クロック周期ごとに、前記順序情報記憶手段から順序情報を読み出し、読み出した順序情報と、前記記憶手段から第1のレジスタから出力される値とに基づいて、前記変換情報記憶手段から変換情報を読み出し、読み出した変換情報に含まれる検索対象部分を組み合わせた情報の数値が、前記入力手段が入力する前記検索キー情報が示す数値以下であるか否か、あるいは前記入力手段が入力する前記検索キー情報が示す数値に一致するか否かを判定することを特徴とする。   According to the present invention, in the above-described invention, the storage means stores conversion information storage means for storing a predetermined number of pieces of conversion information in which address information is associated with the other address information corresponding to the address information. Order information that allows the conversion information to be referred to in order of the magnitude of the numerical value when the address information included in the predetermined number of pieces of conversion information stored in the conversion information storage means is indicated by a numerical value. Order information storage means for storing, and the determination means reads the order information from the order information storage means for each clock cycle, and outputs the read order information from the storage means to the first register. Based on the value, the conversion information is read from the conversion information storage means, and the numerical value of the information obtained by combining the search target portions included in the read conversion information is the input value. There and judging whether the search key whether or not the information is a numerical value indicating less, or to match the numerical value the indicated retrieval key information input means inputs to be input.

本発明は、上記に記載の発明において、前記変換情報記憶手段が記憶する変換情報は、前記第1のIPアドレスと、前記第1のポート番号と、前記第2のIPアドレスと、前記第2のポート番号と、前記プロトコル番号とを含み、前記アドレス情報は、前記第1のIPアドレスと、前記第1のポート番号とを組み合わせた情報であり、前記他のアドレス情報は、前記第2のIPアドレスと、前記第2のポート番号とを組み合わせた情報であり、前記検索キー情報及び前記変換情報に含まれる検索対象部分とは、前記第1のIPアドレスと、前記第1のポート番号と、前記プロトコル番号とを組み合わせた情報、あるいは前記第2のIPアドレスと、前記第2のポート番号と前記プロトコル番号とを組み合わせた情報であり、前記順序情報は、前記変換情報記憶手段が記憶する所定の個数の変換情報に含まれる前記アドレス情報及び前記プロトコル番号を組み合わせた情報を数値で示した場合に、当該数値の値の大きさの順に前記変換情報を参照できるようにすることを特徴とする。   According to the present invention, in the invention described above, the conversion information stored in the conversion information storage means includes the first IP address, the first port number, the second IP address, and the second IP address. Port number and the protocol number, the address information is information combining the first IP address and the first port number, and the other address information is the second address information. The information is a combination of an IP address and the second port number, and the search target portion included in the search key information and the conversion information includes the first IP address, the first port number, and the like. , Information combining the protocol numbers, or information combining the second IP address, the second port number, and the protocol number, and the order information is: When the combination of the address information and the protocol number included in a predetermined number of pieces of conversion information stored in the conversion information storage means is indicated by a numerical value, the conversion information is referred to in order of the numerical value. It is characterized by being able to do it.

本発明は、上記に記載の発明において、前記所定の個数は2のべき乗数であり、前記記憶手段は、前記変換情報記憶手段が記憶する前記変換情報の個数が前記所定の個数に満たない場合、2進数のビット列で数値で示した場合、全てのビットが1となる値の変換情報を前記所定の個数に対して不足する個数分、予め記憶し、前記変換情報記憶手段が記憶する前記変換情報の個数を所定の個数に合わせることを特徴とする。   According to the present invention, in the invention described above, the predetermined number is a power of 2, and the storage unit stores the conversion information stored in the conversion information storage unit less than the predetermined number. The conversion information stored in the conversion information storage means is stored in advance for the number of conversion information having a value in which all bits are 1 when expressed in numerical values in a binary bit string, and the conversion information storage means stores the conversion information. The number of pieces of information is matched to a predetermined number.

本発明は、上記に記載の発明において、前記記憶手段は、送信先のアドレス情報の変換の際に参照される変換情報と、送信元のアドレス情報の変換の際に参照される変換情報とを記憶することを特徴とする。   According to the present invention, in the above-described invention, the storage unit includes conversion information referred to when the destination address information is converted, and conversion information referred to when the source address information is converted. It is memorized.

本発明は、上記に記載の発明において、追加する変換情報を入力する変換情報追加手段を備え、前記入力手段は、前記変換情報追加手段が入力する変換情報に含まれるアドレス情報を入力し、前記変換情報追加手段は、前記所定の個数に応じた回数、クロック生成手段からクロックが生成された後に、前記第1のレジスタに記憶されている値を参照し、追加する変換情報を読み出した値に基づいて、前記記憶手段に記録することを特徴とする。   In the invention described above, the present invention includes conversion information adding means for inputting conversion information to be added, wherein the input means inputs address information included in the conversion information input by the conversion information adding means, The conversion information adding means refers to the value stored in the first register after the clock is generated from the clock generation means a number of times corresponding to the predetermined number, and sets the conversion information to be added to the read value. On the basis of this, it is recorded in the storage means.

本発明は、上記に記載の発明において、前記記憶手段は、前記変換情報を記憶する第1の領域と、前記第1の領域と同じ内容の情報が記憶され、前記変換情報が追加あるいは削除される際に、書き換えが行われる第2の領域とを有し、前記変換情報追加手段は、入力する変換情報を前記第2の領域に追加して記録し、前記第2の領域の内容で、前記第1の領域を書き換えることを特徴とする。   According to the present invention, in the invention described above, the storage means stores a first area for storing the conversion information, and information having the same contents as the first area, and the conversion information is added or deleted. The conversion information adding means records the input conversion information in addition to the second area, and the contents of the second area are: The first area is rewritten.

本発明は、一意に識別可能な第1のアドレス情報で転送が行われる複数の第1のネットワークと、ネットワーク内でのみ一意に識別可能な第2のアドレス情報で転送が行われる第2のネットワークとに接続され、前記複数の第1のネットワークと第2のネットワークとの間でデータを転送し、第1のアドレス情報と、当該第1のアドレス情報に対応する前記第2のアドレス情報とを対応付けた変換情報を記憶する変換情報記憶手段と、前記変換情報記憶手段が記憶する複数の変換情報に含まれる前記第1のアドレス情報を数値で示した場合、当該数値の値の大きさの順に前記変換情報を参照できるようにする第1の順序情報を記憶する第1の順序情報記憶手段と、前記変換情報記憶手段が記憶する複数の変換情報に含まれる前記第2のアドレス情報を数値で示した場合、当該数値の値の大きさの順に前記変換情報を参照できるようにする第2の順序情報を記憶する第2の順序情報記憶手段と、を備えたデータ転送装置におけるアドレス情報検索方法であって、前記複数の第1のネットワークのいずれか1つからデータを受信した場合、前記データに含まれる送信先を示す第1のアドレス情報から当該第1のアドレス情報を含む検索キー情報を生成するステップと、前記第1の順序情報記憶手段が記憶する第1の順序情報及び前記検索キー情報に基づいて、二分探索法にて前記変換情報記憶手段から前記検索キー情報を含む変換情報を検索するステップと、検索した変換情報に含まれる第2のアドレス情報を前記変換情報記憶手段から読み出して出力するステップと、出力した第2のアドレス情報で、前記データの送信先を書き換えて第2のネットワークへ転送するステップと、前記第2のネットワークからデータを受信した場合、前記データに含まれる送信先を示す第2のアドレス情報から当該第2のアドレス情報を含む検索キー情報を生成するステップと、前記第2の順序情報記憶手段が記憶する第2の順序情報及び前記検索キー情報に基づいて、二分探索法にて前記変換情報記憶手段から前記検索キー情報を含む変換情報を検索するステップと、検索した変換情報に含まれる第1のアドレス情報を前記変換情報記憶手段から読み出して出力するステップと、出力した第1のアドレス情報で、前記データの送信元を書き換えて第1のネットワークへ転送するステップと、を含むことを特徴とするアドレス情報検索方法である。 The present invention relates to a plurality of first networks that are transferred with first address information that can be uniquely identified, and a second network that is transferred with second address information that can be uniquely identified only within the network. And transferring data between the plurality of first networks and the second network, and including first address information and the second address information corresponding to the first address information. When the conversion information storage means for storing the associated conversion information and the first address information included in the plurality of pieces of conversion information stored in the conversion information storage means are indicated by numerical values, the value of the numerical value A first order information storage unit that stores first order information that allows the conversion information to be referred to in order; and a second address included in the plurality of conversion information stored in the conversion information storage unit. In a data transfer apparatus comprising: second order information storage means for storing second order information that enables the conversion information to be referred to in order of the magnitude of the numerical value when the information is indicated by a numerical value In the address information search method, when data is received from any one of the plurality of first networks, the first address information is included from the first address information indicating a transmission destination included in the data. Based on the step of generating search key information, the first order information stored in the first order information storage means and the search key information, the search key information is obtained from the conversion information storage means by a binary search method. A step of searching for conversion information to be included; a step of reading out and outputting the second address information contained in the searched conversion information from the conversion information storage means; Rewriting the transmission destination of the data with the address information and transferring the data to the second network; and when receiving data from the second network, the second address information indicating the transmission destination included in the data Based on the step of generating search key information including second address information, the second order information stored in the second order information storage means, and the search key information, the conversion information storage is performed by a binary search method. A step of searching for conversion information including the search key information from the means, a step of reading out the first address information included in the searched conversion information from the conversion information storage means, and outputting the first address information. And rewriting the transmission source of the data and transferring it to the first network. The

本発明は、受信するデータに含まれる送信先あるいは送信元のアドレス情報を他のアドレス情報へ変換して転送するデータ転送装置に具備され、一定周期でクロックを生成し、アドレス情報と、当該アドレス情報に対応する前記他のアドレス情報とを対応付けた所定の個数の変換情報を、前記アドレス情報が示す数値が大きい順に記憶する記憶手段を備えたアドレス情報検索回路におけるアドレス情報検索方法であって、前記アドレス情報を含む検索キー情報を入力するステップと、最初のクロックにて、前記所定の個数の中央値を第1のレジスタに記録するステップと、最初のクロックにて、零の値を第2のレジスタに記録するステップと、最初のクロックにて、前記所定の個数の中央値を最大値とした場合の中央値を第3のレジスタに記録するステップと、クロック周期ごとに、前記第1のレジスタが出力する値と、前記第3のレジスタから出力される値との論理和を算出するステップと、算出した論理和を第1の論理和として出力するステップと、クロック周期ごとに、前記第2のレジスタから出力される値と、前記第3のレジスタから出力される値との論理和を算出し、算出した論理和を第2の論理和として出力するステップと、クロック周期ごとに、前記第3のレジスタが出力する値を最大値とした場合の中央値を出力し第3のセレクタに記録するステップと、クロック周期ごとに、前記記憶手段から第1のレジスタから出力される値に対応する順位の変換情報を読み出し、読み出した変換情報に含まれる検索対象部分を組み合わせた情報の数値が、入力される前記検索キー情報が示す数値以下であるか否か、あるいは前記入力手段が入力する前記検索キー情報が示す数値に一致するか否かを判定するステップと、クロック周期ごとに、前記第1の論理和、及び前記第2の論理和を第1のセレクタに記録するステップと、読み出した変換情報に含まれる検索対象部分を組み合わせた情報の数値が、入力される前記検索キー情報が示す数値以下であると判定した場合、前記第1のセレクタが前記第1の論理和を前記第1のレジスタに記録するステップと、前記変換情報に含まれる検索対象部分を組み合わせた情報の数値が、入力される前記検索キー情報の数値以下でないと判定した場合、前記第1のセレクタが前記第2の論理和を前記第1のレジスタに記録するステップと、クロック周期ごとに、前記第1のレジスタから出力される値と、前記第2のレジスタから出力される値とを第2のセレクタに記録するステップと、読み出した変換情報に含まれる検索対象部分を組み合わせた情報の数値が、入力される前記検索キー情報が示す数値以下であると判定した場合、前記第2のセレクタが前記第1のレジスタから出力される値を前記第2のレジスタに記録するステップと、前記変換情報に含まれる検索対象部分を組み合わせた情報の数値が、入力される前記検索キー情報が示す数値以下でないと判定した場合、前記第2のセレクタが前記第2のレジスタが出力した値を第2のレジスタに記録するステップと、クロック周期ごとに、前記第3のセレクタが前記第3のレジスタが出力する値を最大値とした場合の中央値を前記第3のレジスタに記録するステップと、前記変換情報に含まれる検索対象部分を組み合わせた情報の数値が、入力される前記検索キー情報が示す数値に一致すると判定した場合、一致したことを示す情報とともに当該変換情報に含まれる他のアドレス情報を出力するステップと、を含むことを特徴とするアドレス情報検索方法である。   The present invention is provided in a data transfer device that converts address information of a transmission destination or a transmission source included in received data into other address information and transfers it, generates a clock at a constant period, and generates address information and the address An address information search method in an address information search circuit comprising storage means for storing a predetermined number of pieces of conversion information associated with the other address information corresponding to information in descending order of numerical values indicated by the address information. A step of inputting search key information including the address information, a step of recording the predetermined number of median values in a first register at a first clock, and a zero value at a first clock. In the step of recording in the second register and in the first clock, the median value when the predetermined number of median values is the maximum value is recorded in the third register. A step of calculating a logical sum of a value output from the first register and a value output from the third register for each clock cycle, and calculating the logical sum of the calculated logical sum as a first logical sum. And a logical sum of a value output from the second register and a value output from the third register for each clock cycle, and the calculated logical sum is calculated as a second logical value. A step of outputting as a sum, a step of outputting a median value when the value output from the third register is set to a maximum value for each clock cycle, and recording it in a third selector; The conversion information of the order corresponding to the value output from the first register is read from the means, and the numerical value of the information obtained by combining the search target portions included in the read conversion information is input. A step of determining whether or not the numerical value indicated by the information is equal to or less than the numerical value indicated by the search key information input by the input means, and for each clock cycle, the first logical sum, And the step of recording the second logical sum in the first selector, and the numerical value of the information obtained by combining the search target portion included in the read conversion information is less than or equal to the numerical value indicated by the input search key information When the determination is made, the first selector records the first logical sum in the first register, and a numerical value of information obtained by combining the search target portion included in the conversion information is input to the search If it is determined that the value is not less than or equal to the numerical value of the key information, the first selector records the second logical sum in the first register, and the first register every clock cycle. The value output from the data and the value output from the second register are recorded in the second selector, and the numerical value of the information combining the search target portion included in the read conversion information is input. The second selector records the value output from the first register in the second register when it is determined that the value is equal to or less than the numerical value indicated by the search key information, and is included in the conversion information When it is determined that the numerical value of the information combining the search target portions is not less than or equal to the numerical value indicated by the input search key information, the second selector records the value output from the second register in the second register And a step of recording a median value in the third register when the third selector sets the value output from the third register as the maximum value for each clock cycle. If the numerical value of the information combining the search target parts included in the conversion information matches the numerical value indicated by the input search key information, other information included in the conversion information together with the information indicating the match And outputting the address information of the address information.

この発明によれば、データ転送装置は、第1のアドレス情報と、当該第1のアドレス情報に対応する第2のアドレス情報とを対応付けた変換情報を記憶する変換情報記憶手段と、変換情報記憶手段が記憶する複数の変換情報に含まれる第1のアドレス情報を数値で示した場合、当該数値の値の大きさの順に変換情報を参照できるようにする第1の順序情報を記憶する第1の順序情報記憶手段と、変換情報記憶手段が記憶する複数の変換情報に含まれる第2のアドレス情報を数値で示した場合、当該数値の値の大きさの順に変換情報を参照できるようにする第2の順序情報を記憶する第2の順序情報記憶手段と、複数の第1のネットワークのいずれか1つからデータを受信した場合、データに含まれる送信先を示す第1のアドレス情報から当該第1のアドレス情報を含む検索キー情報を生成し、第1の順序情報記憶手段が記憶する第1の順序情報及び検索キー情報に基づいて、変換情報記憶手段から検索キー情報を含む変換情報を検索し、検索した変換情報に含まれる第2のアドレス情報を変換情報記憶手段から読み出して出力する第1の検索手段と、第1の検索手段が出力した第2のアドレス情報で、データの送信先を書き換えて第2のネットワークへ転送する第1の転送手段と、第2のネットワークからデータを受信した場合、データに含まれる送信先を示す第2のアドレス情報から当該第2のアドレス情報を含む検索キー情報を生成し、第2の順序情報記憶手段が記憶する第2の順序情報及び検索キー情報に基づいて、変換情報記憶手段から検索キー情報を含む変換情報を検索し、検索した変換情報に含まれる第1のアドレス情報を変換情報記憶手段から読み出して出力する第2の検索手段と、第2の検索手段が出力した第1のアドレス情報で、データの送信元を書き換えて第1のネットワークへ転送する第2の転送手段と、を備えた構成とした。これにより、第1の順序情報記憶手段と、第2の順序情報記憶手段とを参照することで、値の大きさの順に検索が行えることから、NAPTにおける検索時間の短縮を可能とすることができる。   According to this invention, the data transfer device includes conversion information storage means for storing conversion information in which the first address information is associated with the second address information corresponding to the first address information, and the conversion information. When the first address information included in the plurality of pieces of conversion information stored in the storage unit is indicated by a numerical value, the first order information that allows the conversion information to be referred to in order of the magnitude of the numerical value is stored. When the first address information storage means and the second address information included in the plurality of pieces of conversion information stored in the conversion information storage means are indicated by numerical values, the conversion information can be referred to in order of the magnitude of the numerical values. The second order information storage means for storing the second order information and the first address information indicating the transmission destination included in the data when data is received from any one of the plurality of first networks. Concerned The search key information including the address information of 1 is generated, and the conversion information including the search key information is searched from the conversion information storage means based on the first order information and the search key information stored in the first order information storage means. The second address information included in the searched conversion information is read from the conversion information storage means and output, and the second address information output by the first search means is used as the data transmission destination. The first transfer means for rewriting and transferring to the second network, and when receiving data from the second network, the second address information is included from the second address information indicating the transmission destination included in the data Search key information is generated, and conversion information including search key information is searched from the conversion information storage means based on the second order information and search key information stored in the second order information storage means. The first address information included in the searched conversion information is read from the conversion information storage means and output, and the first address information output by the second search means is used to specify the data transmission source. And a second transfer means for rewriting and transferring to the first network. As a result, by referring to the first order information storage means and the second order information storage means, the search can be performed in the order of the size of the values, so that the search time in NAPT can be shortened. it can.

また、本発明によれば、データ転送装置において第1の検索手段は、読み出した第1の順序情報及び検索キー情報に基づいて、二分探索法にて変換情報記憶手段からから検索キー情報を含む変換情報を検索する構成とした。これにより、第1の順序情報に基づいて二分探索を行い、二分探索による検索時間内で第1のアドレス情報を検索することが可能となる。   According to the invention, in the data transfer device, the first search means includes search key information from the conversion information storage means by a binary search method based on the read first order information and search key information. The conversion information is searched. Thus, a binary search is performed based on the first order information, and the first address information can be searched within the search time by the binary search.

また、本発明によれば、データ転送装置において第2の検索手段は、読み出した第2の順序情報及び検索キー情報に基づいて、二分探索法にて変換情報記憶手段からから検索キー情報を含む変換情報を検索する構成とした。これにより、第2の順序情報に基づいて二分探索を行い、二分探索による検索時間内で第2のアドレス情報を検索することが可能となる。   According to the invention, in the data transfer device, the second search means includes search key information from the conversion information storage means by a binary search method based on the read second order information and search key information. The conversion information is searched. Thus, a binary search is performed based on the second order information, and the second address information can be searched within the search time by the binary search.

また、本発明によれば、データ転送装置において変換情報記憶手段が記憶する変換情報は、第1のIPアドレスと、第1のポート番号と、第2のIPアドレスと、第2のポート番号と、プロトコル番号とを含み、第1のアドレス情報は、第1のIPアドレスと、第1のポート番号とを組み合わせた情報であり、第2のアドレス情報は、第2のIPアドレスと、第2のポート番号とを組み合わせた情報であり、検索キー情報は、第1のIPアドレスと、第1のポート番号と、プロトコル番号とを組み合わせた情報、あるいは第2のIPアドレスと、第2のポート番号とプロトコル番号とを組み合わせた情報であり、第1の順序情報は、変換情報記憶手段が記憶する複数の変換情報に含まれる第1のアドレス情報とプロトコル番号とを組み合わせた情報を数値で表した場合、当該数値の値の大きさの順に変換情報を参照できるようにし、第2の順序情報は、変換情報記憶手段が記憶する複数の変換情報に含まれる第2のアドレス情報と前期プロトコル番号とを組み合わせた情報を数値で表した場合、当該数値の値の大きさの順に変換情報を参照できるようにする構成とした。これにより、IPアドレスとポート番号に対して変換を行うNAPT処理が可能となる。     According to the present invention, the conversion information stored in the conversion information storage means in the data transfer apparatus includes the first IP address, the first port number, the second IP address, and the second port number. , The first address information is information combining the first IP address and the first port number, the second address information is the second IP address, and the second The search key information is information combining the first IP address, the first port number, and the protocol number, or the second IP address and the second port. The first order information is a combination of the first address information and the protocol number included in the plurality of pieces of conversion information stored in the conversion information storage means. When the information is represented by a numerical value, the conversion information can be referred to in the order of the magnitude of the numerical value, and the second order information is a second address included in the plurality of conversion information stored in the conversion information storage means. When information combining information and the previous protocol number is represented by a numerical value, the conversion information can be referred to in the order of the numerical value. As a result, NAPT processing for converting the IP address and the port number becomes possible.

また、本発明によれば、アドレス情報検索回路は、アドレス情報と、当該アドレス情報に対応する他のアドレス情報とを対応付けた所定の個数の変換情報を、アドレス情報が示す数値が大きい順に記憶する記憶手段と、一定周期でクロックを生成するクロック生成手段と、アドレス情報を含む検索キー情報を入力する入力手段と、最初のクロックにて、所定の個数の中央値が記録され、クロック周期ごとに内部に記憶している情報を出力する第1のレジスタと、最初のクロックにて、零の値が記録され、クロック周期ごとに内部に記憶している情報を出力する第2のレジスタと、最初のクロックにて、所定の個数の中央値を最大値とした場合の中央値が記録され、クロック周期ごとに、内部に記憶している情報を出力する第3のレジスタと、クロック周期ごとに、第1のレジスタが出力する値と、第3のレジスタから出力される値との論理和を算出し、算出した論理和を第1の論理和として出力する第1の論理和演算手段と、クロック周期ごとに、第2のレジスタから出力される値と、第3のレジスタから出力される値との論理和を算出し、算出した論理和を第2の論理和として出力する第2の論理和演算手段と、クロック周期ごとに、第3のレジスタが出力する値を最大値とした場合の中央値を出力する中央値算出手段と、クロック周期ごとに、記憶手段から第1のレジスタから出力される値に対応する順位の変換情報を読み出し、読み出した変換情報に含まれる検索対象部分を組み合わせた情報の数値が、入力手段が入力する検索キー情報が示す数値以下であるか否か、あるいは入力手段が入力する検索キー情報が示す数値に一致するか否かを判定する判定手段と、クロック周期ごとに、第1の論理和演算手段が出力する第1の論理和、及び第2の論理和演算手段が出力する第2の論理和を記憶し、判定手段が、読み出した変換情報に含まれる検索対象部分を組み合わせた情報の数値が、入力手段が入力する検索キー情報が示す数値以下であると判定した場合、記憶している第1の論理和を第1のレジスタに記録し、判定手段が、変換情報に含まれる検索対象部分を組み合わせた情報の数値が、入力手段が入力する検索キー情報の数値以下でないと判定した場合、記憶している第2の論理和を第1のレジスタに記録する第1のセレクタと、クロック周期ごとに、第1のレジスタから出力される値と、第2のレジスタから出力される値とを記憶し、判定手段が、読み出した変換情報に含まれる検索対象部分を組み合わせた情報の数値が、入力手段が入力する検索キー情報が示す数値以下であると判定した場合、記憶している第1のレジスタから出力される値を第2のレジスタに記録し、判定手段が、変換情報に含まれる検索対象部分を組み合わせた情報の数値が、入力手段が入力する検索キー情報が示す数値以下でないと判定した場合、記憶している第2のレジスタが出力した値を第2のレジスタに記録する第2のセレクタと、クロック周期ごとに、中央値算出手段が算出した値を第3のレジスタに記録する第3のセレクタと、判定手段が、変換情報に含まれる検索対象部分を組み合わせた情報の数値が、入力手段が入力する検索キー情報が示す数値に一致すると判定した場合、一致したことを示す情報とともに当該変換情報に含まれる他のアドレス情報を出力する出力手段とを備える構成とした。これにより、ハードウェアによる並列処理にてNAPT処理のアドレス情報の検索処理を実現し、処理時間の短縮を図ることが可能となる。   According to the present invention, the address information search circuit stores a predetermined number of pieces of conversion information in which address information is associated with other address information corresponding to the address information in descending order of numerical values indicated by the address information. Storing means, clock generating means for generating a clock at a fixed period, input means for inputting search key information including address information, and a predetermined number of medians are recorded at the first clock, and for each clock period A first register for outputting information stored therein, a second register for recording a value of zero at the first clock, and outputting information stored internally for each clock cycle, A first register that records a median value when a predetermined number of median values are maximum values, and outputs information stored therein for each clock cycle; For each lock cycle, a first logical sum that calculates the logical sum of the value output from the first register and the value output from the third register and outputs the calculated logical sum as the first logical sum. The logical sum of the value output from the second register and the value output from the third register is calculated for each clock cycle with the arithmetic means, and the calculated logical sum is output as the second logical sum. The second OR operation means, the median calculation means for outputting the median value when the value output from the third register is set to the maximum value for each clock cycle, and the storage means for the first time from the storage means. The conversion information of the order corresponding to the value output from the register of the above is read, and the numerical value of the information combining the search target part included in the read conversion information is less than or equal to the numerical value indicated by the search key information input by the input means No or no A determination unit that determines whether or not the numerical value indicated by the search key information input by the input unit matches, a first logical sum output from the first logical sum calculation unit, and a second logical unit for each clock cycle. The second logical sum output by the sum calculation means is stored, and the determination means has a numerical value of information obtained by combining the search target portions included in the read conversion information equal to or less than the numerical value indicated by the search key information input by the input means. When it is determined that there is a search, the stored first logical sum is recorded in the first register, and the determination means inputs a search value in which the input means inputs the numerical value of the combination of search target parts included in the conversion information If it is determined that the value is not less than the numerical value of the key information, a first selector that records the stored second logical sum in the first register, a value output from the first register for each clock cycle, From the second register When the determination means determines that the numerical value of the information combined with the search target portion included in the read conversion information is equal to or less than the numerical value indicated by the search key information input by the input means, Search key information in which the value output from the stored first register is recorded in the second register, and the numerical value of the information obtained by combining the search target portion included in the conversion information by the determination unit is input by the input unit If it is determined that the value is not less than or equal to the second value, the second selector that records the value output from the stored second register in the second register, and the value calculated by the median calculating unit for each clock period The numerical value of the information obtained by combining the third selector to be recorded in the third register and the determination unit with the search target portion included in the conversion information matches the numerical value indicated by the search key information input by the input unit. When it is determined, and the configuration with information indicating that matched and output means for outputting the other address information included in the conversion information. As a result, the address information search process of the NAPT process can be realized by parallel processing by hardware, and the processing time can be shortened.

また、本発明によれば、アドレス情報検索回路において出力手段は、所定の個数に応じた回数、クロック生成手段からクロックが生成された後に、判定手段が、変換情報に含まれる検索対象部分を組み合わせた情報の数値が、入力手段が入力する検索キー情報が示す数値が一致すると判定した場合、一致したことを示す情報とともに当該変換情報に含まれる他のアドレス情報を出力する構成とした。これにより、所定の個数に応じた回数、二分探索処理を行った後に、検索対象のアドレス情報を検索することが可能となり、一定の時間で検索処理を終了させることが可能となる。   According to the present invention, in the address information search circuit, the output means combines the search target parts included in the conversion information after the clock is generated from the clock generation means a number of times corresponding to the predetermined number. When it is determined that the numerical value of the received information matches the numerical value indicated by the search key information input by the input means, the other address information included in the conversion information is output together with the information indicating the match. Thus, after performing the binary search process a number of times corresponding to the predetermined number, it becomes possible to search the address information to be searched, and the search process can be completed in a certain time.

また、本発明によれば、アドレス情報検索回路における記憶手段は、アドレス情報と、当該アドレス情報に対応する他のアドレス情報とを対応付けた所定の個数の変換情報を記憶する変換情報記憶手段と、変換情報記憶手段が記憶する所定の個数の変換情報に含まれるアドレス情報を数値で示した場合に、当該数値の値の大きさの順に変換情報を参照できるようにする順序情報を記憶する順序情報記憶手段と、を備え、判定手段は、クロック周期ごとに、順序情報記憶手段から順序情報を読み出し、読み出した順序情報と、記憶手段から第1のレジスタから出力される値とに基づいて、変換情報記憶手段から変換情報を読み出し、読み出した変換情報に含まれる検索対象部分を組み合わせた情報の数値が、入力手段が入力する検索キー情報が示す数値以下であるか否か、あるいは入力手段が入力する検索キー情報が示す数値に一致するか否かを判定する構成とした。これにより、アドレス情報の対応関係を示したいわゆるNAPTテーブルである変換情報記憶手段のデータ構成はそのままにして、順序情報記憶手段により並べ替えを行うことを可能とすることができる。   According to the present invention, the storage means in the address information search circuit includes conversion information storage means for storing a predetermined number of conversion information in which the address information is associated with other address information corresponding to the address information. The order in which the order information is stored so that, when the address information included in the predetermined number of pieces of conversion information stored in the conversion information storage means is indicated by a numerical value, the conversion information can be referred to in the order of the numerical value An information storage means, and the determination means reads the order information from the order information storage means for each clock cycle, and based on the read order information and the value output from the first register from the storage means, The conversion information is read from the conversion information storage means, and the numerical value of the information combining the search target parts included in the read conversion information is the search key information input by the input means Or less than to numerical, or the input unit was determined configure whether to match to the values indicated by the retrieval key information input. As a result, it is possible to perform the rearrangement by the order information storage unit while keeping the data configuration of the conversion information storage unit, which is a so-called NAPT table indicating the correspondence relationship of the address information.

また、本発明によれば、アドレス情報検索回路における変換情報記憶手段が記憶する変換情報は、第1のIPアドレスと、第1のポート番号と、第2のIPアドレスと、第2のポート番号と、プロトコル番号とを含み、アドレス情報は、第1のIPアドレスと、第1のポート番号とを組み合わせた情報であり、他のアドレス情報は、第2のIPアドレスと、第2のポート番号とを組み合わせた情報であり、検索キー情報及び変換情報に含まれる検索対象部分とは、第1のIPアドレスと、第1のポート番号と、プロトコル番号とを組み合わせた情報、あるいは第2のIPアドレスと、第2のポート番号とプロトコル番号とを組み合わせた情報であり、順序情報は、変換情報記憶手段が記憶する所定の個数の変換情報に含まれるアドレス情報及びプロトコル番号を組み合わせた情報を数値で示した場合に、当該数値の値の大きさの順に変換情報を参照できるようにする構成とした。これにより、IPアドレスとポート番号に対して変換を行うNAPT処理が可能となる。     Further, according to the present invention, the conversion information stored in the conversion information storage means in the address information search circuit includes the first IP address, the first port number, the second IP address, and the second port number. And the protocol number, the address information is information combining the first IP address and the first port number, and the other address information is the second IP address and the second port number. The search target part included in the search key information and the conversion information is information combining the first IP address, the first port number, and the protocol number, or the second IP. The information is a combination of the address, the second port number, and the protocol number. When showing the information that combines protocol number in numerical and configured to be able to see the conversion information in the order of magnitude of the value of the number. As a result, NAPT processing for converting the IP address and the port number becomes possible.

また、本発明によれば、アドレス情報検索回路における所定の個数は2のべき乗数であり、記憶手段は、変換情報記憶手段が記憶する変換情報の個数が所定の個数に満たない場合、2進数のビット列で数値で示した場合、全てのビットが1となる値の変換情報を所定の個数に対して不足する個数分、予め記憶し、変換情報記憶手段が記憶する変換情報の個数を所定の個数に合わせる構成とした。これにより、変更情報が所定の個数存在しない場合であっても、ハードウェア構成において、変更情報の数を所定の個数に保つことができ、所定の個数に応じた回数、二分探索処理を行うことで、アドレス情報を検索することができる。   Further, according to the present invention, the predetermined number in the address information search circuit is a power of 2, and the storage means is a binary number when the number of conversion information stored in the conversion information storage means is less than the predetermined number. When the numerical value is shown in the bit string, the conversion information having a value in which all the bits are 1 is stored in advance for the predetermined number, and the number of pieces of conversion information stored in the conversion information storage unit is stored in a predetermined number. The configuration is adjusted to the number. Thus, even when there is no predetermined number of pieces of change information, the number of pieces of change information can be kept at a predetermined number in the hardware configuration, and the binary search process is performed a number of times according to the predetermined number. Thus, address information can be searched.

また、本発明によれば、アドレス情報検索回路における記憶手段は、送信先のアドレス情報の変換の際に参照される変換情報と、送信元のアドレス情報の変換の際に参照される変換情報とを記憶することを特徴とする構成とした。これにより、送信先のアドレス情報を変換する処理と、送信元のアドレス情報を変換する処理とを実現することができる。   Further, according to the present invention, the storage means in the address information search circuit includes the conversion information referred to when the destination address information is converted, the conversion information referred to when the source address information is converted, Is stored. As a result, it is possible to realize a process of converting the address information of the transmission destination and a process of converting the address information of the transmission source.

また、本発明によれば、アドレス情報検索回路は、追加する変換情報を入力する変換情報追加手段を備え、入力手段は、変換情報追加手段が入力する変換情報に含まれるアドレス情報を入力し、変換情報追加手段は、所定の個数に応じた回数、クロック生成手段からクロックが生成された後に、第1のレジスタに記憶されている値を参照し、追加する変換情報を読み出した値に基づいて、記憶手段に記録する構成とした。これにより、記憶手段に、大きさの順に従って変換情報を追加することが可能となる。   Further, according to the present invention, the address information search circuit includes conversion information adding means for inputting conversion information to be added, and the input means inputs address information included in the conversion information input by the conversion information adding means, The conversion information adding means refers to the value stored in the first register after the clock is generated from the clock generation means a number of times corresponding to the predetermined number, and based on the value obtained by reading the conversion information to be added The recording is performed in the storage unit. As a result, the conversion information can be added to the storage unit in the order of size.

また、本発明によれば、アドレス情報検索回路における記憶手段は、変換情報を記憶する第1の領域と、第1の領域と同じ内容の情報が記憶され、変換情報が追加あるいは削除される際に、書き換えが行われる第2の領域とを有し、変換情報追加手段は、入力する変換情報を第2の領域に追加して記録し、第2の領域の内容で、第1の領域を書き換える構成とした。これにより、変換情報が追加あるいは削除される際であっても、第1の領域を参照して検索処理を行うことができ、検索処理の終了時などに、第2の領域の内容で、第1の領域を書き換えることで短時間で変換情報の追加あるいは削除を行うことが可能となる。   According to the present invention, the storage means in the address information search circuit stores the first area for storing the conversion information and information having the same contents as the first area, and when the conversion information is added or deleted. The conversion information adding means records the input conversion information in addition to the second area and records the first area in the contents of the second area. The configuration was rewritten. Thus, even when conversion information is added or deleted, the search process can be performed with reference to the first area, and the contents of the second area can be changed with the contents of the second area at the end of the search process. By rewriting one area, conversion information can be added or deleted in a short time.

以下、本発明の一実施形態を図面を参照して説明する。
図1は、本実施形態によるデータ転送装置1の内部構成を示した概略ブロック図である。データ転送装置1は、IP(Internet Protocol)ネットワークにおけるルータ等のIPパケットを転送する装置である。データ転送装置1において、接続部11は、WAN(Wide Area Network)に接続され、WANを介してデータの送受信を行う。接続部13は、LAN(Local Area Network)に接続され、LANを介してデータの送受信を行う。
Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
FIG. 1 is a schematic block diagram showing the internal configuration of the data transfer apparatus 1 according to the present embodiment. The data transfer device 1 is a device that transfers IP packets such as a router in an IP (Internet Protocol) network. In the data transfer apparatus 1, a connection unit 11 is connected to a WAN (Wide Area Network), and transmits and receives data via the WAN. The connection unit 13 is connected to a LAN (Local Area Network) and transmits / receives data via the LAN.

ここで、WANは、例えば、インターネット等であり、当該WANに接続する端末等には、一意に識別可能なグローバルIPアドレスが付与されている。また、LANは、例えば、イントラネット等であり、当該LANに属する端末には、当該LAN内のみで一意に識別可能なプライベートIPアドレスが付与されている。   Here, the WAN is, for example, the Internet, and a global IP address that can be uniquely identified is assigned to a terminal connected to the WAN. The LAN is, for example, an intranet or the like, and a private IP address that can be uniquely identified only within the LAN is assigned to a terminal belonging to the LAN.

アドレス情報検索回路20は、受信したIPパケットに含まれる変換対象のアドレス情報に基づいて、当該アドレス情報に対応するアドレス情報を検索して出力する。ここで、アドレス情報とは、IPアドレスやポート番号のそれぞれや、IPアドレスとポート番号とを組み合わせた情報を示している。   The address information search circuit 20 searches for and outputs address information corresponding to the address information based on the address information to be converted included in the received IP packet. Here, the address information indicates each of an IP address and a port number, or information obtained by combining an IP address and a port number.

変換部23は、WANから受信したIPパケットの送信先のアドレス情報を、アドレス情報検索回路20から出力されるプライベートIPアドレスとポート番号へ変換、すなわちヘッダを書き換えて経路検索部12に出力する。   The conversion unit 23 converts the destination address information of the IP packet received from the WAN into the private IP address and port number output from the address information search circuit 20, that is, rewrites the header and outputs it to the route search unit 12.

変換部24は、LANから受信したIPパケットが経路検索部12に入力され、経路検索部12により出力されたIPパケットの送信元のアドレス情報を、アドレス情報検索回路20から出力されるグローバルIPアドレスとポート番号へ変換し、変換したIPパケットを接続部11に出力する。ここで、送信元のIPアドレスをグローバルIPアドレスへ変換する理由は、例えば、当該IPパケットを受信した端末が、送信元のアドレス情報を参照して返信のためのデータを送信する場合などのためである。   The conversion unit 24 receives the IP packet received from the LAN as input to the route search unit 12, and uses the global IP address output from the address information search circuit 20 as the source address information of the IP packet output by the route search unit 12. And the port number, and the converted IP packet is output to the connection unit 11. Here, the reason why the source IP address is converted to the global IP address is because, for example, the terminal that has received the IP packet refers to the source address information and transmits reply data. It is.

経路検索部12は、内部に経路情報テーブルを記憶しており、入力されるIPパケットの送信先を参照して、IPパケットを送出する接続部11、13を経路情報テーブルから検出し、検出した接続部11、13に当該IPパケットを送出させる。   The route search unit 12 stores a route information table therein, refers to the destination of the input IP packet, detects the connection units 11 and 13 that send out the IP packet from the route information table, and detects them. The connection units 11 and 13 are made to send out the IP packet.

アドレス情報検索回路20において、検索部22は、接続部11がWANから受信したIPパケットであってLANに転送されるべきIPパケットが入力され、入力されるIPパケットのヘッダに含まれる送信先のIPアドレス、ポート番号、OSI(Open Systems Interconnection)参照モデルの第4層のプロトコルのプロトコルタイプを示すプロトコル番号を読み出す。ここで、第4層のプロトコルとは、IPプロトコルの1階層上のTCP(Transmission Control Protocol)や、UDP(User Datagram Protocol)などであり、TCPの場合、プロトコル番号には6が割り当てられており、UDPの場合には17が割り当てられている。   In the address information search circuit 20, the search unit 22 receives an IP packet that is received by the connection unit 11 from the WAN and is to be transferred to the LAN, and includes a destination address included in the header of the input IP packet. The IP address, port number, and protocol number indicating the protocol type of the fourth layer protocol of the OSI (Open Systems Interconnection) reference model are read. Here, the fourth layer protocol is TCP (Transmission Control Protocol), UDP (User Datagram Protocol), etc., one layer above the IP protocol. In the case of TCP, 6 is assigned to the protocol number. In the case of UDP, 17 is assigned.

また、検索部22は、後述する順序テーブル26と、WAN側のアドレス情報と、LAN側のアドレス情報との対応関係を示したNAPTテーブル21とを参照し、二分探索により、NAPTテーブル21から、読み出したIPアドレス、ポート番号、プロトコル番号の組み合わせを検索キー情報として、当該検索キー情報に一致するエントリを検索し、検索したエントリに記録されているアドレス情報、すなわちプライベートIPアドレスと、当該プライベートIPアドレスに対応するポート番号とを読み出す。   Further, the search unit 22 refers to the order table 26 described later, the NAPT table 21 indicating the correspondence relationship between the WAN address information and the LAN address information, and from the NAPT table 21 by binary search, Using the combination of the read IP address, port number, and protocol number as search key information, an entry that matches the search key information is searched, and the address information recorded in the searched entry, that is, the private IP address and the private IP Reads the port number corresponding to the address.

検索部25は、接続部13がLANから受信したIPパケットであってWANへ転送されるべきIPパケットが入力され、入力されるIPパケットのヘッダに含まれる送信元のIPアドレス、ポート番号、プロトコル番号を読み出す。また、検索部25は、後述する順序テーブル27と、NAPTテーブル21とを参照し、二分探索により、NAPTテーブル21から、読み出したIPアドレス、ポート番号、プロトコル番号の組み合わせを検索キー情報として、当該検索キー情報に一致するエントリを検索し、検索したエントリに記録されているグローバルIPアドレスと、当該グローバルIPアドレスに対応するポート番号とを読み出す。   The search unit 25 receives an IP packet that is received from the LAN by the connection unit 13 and is to be transferred to the WAN, and includes a source IP address, a port number, and a protocol included in the header of the input IP packet. Read the number. Further, the search unit 25 refers to the order table 27 and the NAPT table 21 to be described later, and by performing a binary search, the combination of the IP address, port number, and protocol number read from the NAPT table 21 is used as search key information. An entry matching the search key information is searched, and the global IP address recorded in the searched entry and the port number corresponding to the global IP address are read.

なお、図1では、WANに接続される接続部11と、LANに接続される接続部13との2つの接続部のみを示したが、WANに接続される接続部11は複数存在しているようにしてもよい。   In FIG. 1, only two connection portions, that is, a connection portion 11 connected to the WAN and a connection portion 13 connected to the LAN are shown, but there are a plurality of connection portions 11 connected to the WAN. You may do it.

次に、図2を参照して、NAPTテーブル21及び順序テーブル26、27のデータ構成、及び上述した検索部22及び24による検索の手順について説明する。   Next, with reference to FIG. 2, the data structure of the NAPT table 21 and the order tables 26 and 27 and the search procedure by the search units 22 and 24 described above will be described.

NAPTテーブル21は、「entry」と、「gAddr:global Address」と、「gPort#」と、「lAddr:Local Address」と、「lPort#」と、「Protocol#」の項目を有している。「entry」には、NAPTテーブル21に含まれる各エントリを一意に識別できるエントリ番号が記録される。「gAddr」には、グローバルIPアドレスが記録される。「gPort#」には、グローバルIPアドレスに対応するポート番号が記録される。「lAddr」には、グローバルIPアドレスに対応するプライベートIPアドレスが記録される。「lPort#」には、プライベートIPアドレスに対応するポート番号が記録される。「Protocol#」には、プロトコル番号が記録される。   The NAPT table 21 includes items of “entry”, “gAddr: global Address”, “gPort #”, “lAddr: Local Address”, “lPort #”, and “Protocol #”. In “entry”, an entry number that can uniquely identify each entry included in the NAPT table 21 is recorded. A global IP address is recorded in “gAddr”. In “gPort #”, a port number corresponding to the global IP address is recorded. In “lAddr”, a private IP address corresponding to the global IP address is recorded. In “lPort #”, a port number corresponding to the private IP address is recorded. In “Protocol #”, a protocol number is recorded.

順序テーブル26は、「order」と「entry」の項目を有しており、「order」には、0から順に番号が付与される。「entry」には、NAPTテーブル21の「gAddr」(32ビット)と「gPort#」(16ビット)と「Protocol#」(16ビット)とを組み合わせた64ビットを1つの変数として、当該変数が昇べきの順に並べ替えた場合のNAPTテーブル21のエントリ番号の順序が記録される。   The order table 26 has items “order” and “entry”, and “order” is numbered in order from 0. In “entry”, 64 bits combining “gAddr” (32 bits), “gPort #” (16 bits), and “Protocol #” (16 bits) of the NAPT table 21 are defined as one variable. The order of the entry numbers in the NAPT table 21 when rearranged in the order of ascending is recorded.

順序テーブル27は、順序テーブル26と同じく「order」と「entry」の項目を有しており、「order」には、0から順に番号が付与される。「entry」には、NAPTテーブル21の「lAddr」(32ビット)と「lPort#」(16ビット)と「Protocol#」(16ビット)とを組み合わせた64ビットを1つの変数として、当該変数が昇べきの順に並べ替えた場合のNAPTテーブル21のエントリ番号の順序が記録される。   The order table 27 has items “order” and “entry” as in the order table 26, and “order” is numbered sequentially from 0. In “entry”, 64 bits obtained by combining “lAddr” (32 bits), “lPort #” (16 bits), and “Protocol #” (16 bits) of the NAPT table 21 are defined as one variable. The order of the entry numbers in the NAPT table 21 when rearranged in the order of ascending is recorded.

従来のNAPTにおける検索は、WANから受信したパケットの送信先のIPアドレス及びポート番号を変換する場合、まず、WANから受信したIPパケットの送信先のIPアドレス及びポート番号、並びにプロトコル番号を読み出し、読み出したIPアドレスとポート番号とプロトコル番号を検索キー情報(keyw)として、NAPTテーブル21の「gAddr」及び「gPort#」と「Protocol#」の項目に対して、検索キー情報と同じ組み合わせを検索する。そして、検索の結果、同じ組み合わせの「gAddr」と「gPort#」と「Protocol#」のエントリが存在した場合、当該エントリに含まれる「lAddr」と「lPort#」の項目に記録されているプライベートIPアドレスとポート番号を読み出し、検索結果(resw)として出力する。   In the conventional NAPT search, when converting the IP address and port number of the transmission destination of the packet received from the WAN, first, the IP address and port number of the transmission destination of the IP packet received from the WAN and the protocol number are read. Using the read IP address, port number, and protocol number as search key information (keyw), search the same combination as the search key information for the items “gAddr”, “gPort #”, and “Protocol #” in the NAPT table 21 To do. As a result of the search, if there are entries of “gAddr”, “gPort #”, and “Protocol #” with the same combination, the private records recorded in the “lAddr” and “lPort #” items included in the entries are included. The IP address and port number are read and output as a search result (resw).

また、逆に、LANから受信したパケットの送信元のIPアドレス及びポート番号を変換する場合、まず、LANから受信したIPパケットの送信元のIPアドレス及びポート番号、並びにプロトコル番号を読み出し、読み出したIPアドレスとポート番号とプロトコル番号を検索キー情報(keyl)として、NAPTテーブル21の「lAddr」及び「lPort#」と「Protocol#」の項目に対して、検索キー情報と同じ組み合わせを検索する。そして、検索の結果、同じ組み合わせの「lAddr」と「lPort#」と「Protocol#」のエントリが存在した場合、当該エントリに含まれえる「gAddr」と「gPort#」の項目に記録されているプライベートIPアドレスとポート番号を読み出し、検索結果(resl)として出力する。   Conversely, when converting the source IP address and port number of the packet received from the LAN, first, the source IP address and port number and protocol number of the IP packet received from the LAN are read and read. Using the IP address, port number, and protocol number as search key information (keyl), the same combination as the search key information is searched for the items “lAddr”, “lPort #”, and “Protocol #” in the NAPT table 21. As a result of the search, if there are entries of “lAddr”, “lPort #”, and “Protocol #” with the same combination, they are recorded in the “gAddr” and “gPort #” items that can be included in the entry. The private IP address and port number are read and output as a search result (resl).

しかし、NAPTテーブル21は、通常のグローバルIPアドレスとポート番号の組みと、プライベートIPアドレスとポート番号の組みの対応関係を記憶させておくためのテーブルであるため、最初のエントリから最後のエントリまで検索を行わないと結果が得られない場合がある。   However, since the NAPT table 21 is a table for storing a correspondence relationship between a pair of a normal global IP address and a port number and a pair of a private IP address and a port number, from the first entry to the last entry. If you do not search, you may not get results.

そこで、本実施形態では、順序テーブル26及び順序テーブル27を備えることにより、それぞれの検索キー情報(keyw、keyl)で検索を行う場合に、検索キー情報に対応する変数ごとの順序を容易に参照することができ、中央より上位の値のグループに存在しているか、あるいは中央より下位の値のグループに存在するかを判定して検索を行う二分探索を容易に行うことができ、検索時間の短縮を可能としている。   Therefore, in the present embodiment, by providing the order table 26 and the order table 27, when searching with each search key information (keyw, keyl), the order for each variable corresponding to the search key information can be easily referred to. It is possible to easily perform a binary search that makes a search by determining whether a value exists in a group of values higher than the center or in a group of values lower than the center. Shortening is possible.

次に、図3から図5を参照して、上述した二分探索によりNAPTテーブル21から検索を行う具体的なハードウェア構成及びその動作について説明する。   Next, with reference to FIGS. 3 to 5, a specific hardware configuration for performing a search from the NAPT table 21 by the above-described binary search and its operation will be described.

図3は、上述したデータ転送装置1に備えられるアドレス情報検索回路20をハードウェアで構成したアドレス情報検索回路20aを示した図である。   FIG. 3 is a diagram showing an address information search circuit 20a in which the address information search circuit 20 provided in the data transfer apparatus 1 described above is configured by hardware.

アドレス情報検索回路20aは、4つのレジスタ、すなわちデータレジスタ31(Data)、第1レジスタ32(naptp)、第2レジスタ33(naptmp)、第3レジスタ34(Shiftreg)、アドレスレジスタ50(Addrreg)と、4つのセレクタ、すなわちセレクタ40、41、42、43と、2つの論理和演算回路(ORs)35、36と、1つのビットシフタ37と、減算器(SUB)51と、バッファ回路52、enable信号回路53と、判定回路54と、NAPTテーブル21aと、順序テーブル26aとを備えている。   The address information search circuit 20a includes four registers, that is, a data register 31 (Data), a first register 32 (naptp), a second register 33 (naptmp), a third register 34 (Shiftreg), and an address register 50 (Addrreg). Four selectors, that is, selectors 40, 41, 42, and 43, two OR operation circuits (ORs) 35 and 36, one bit shifter 37, a subtracter (SUB) 51, a buffer circuit 52, and an enable signal The circuit 53, the determination circuit 54, the NAPT table 21a, and the order table 26a are provided.

なお、図3には示していないが、アドレス情報検索回路20aは、クロックを発生するクロック回路と、検索処理の開始指示信号を出力する開始信号回路とを備えている。   Although not shown in FIG. 3, the address information search circuit 20a includes a clock circuit that generates a clock and a start signal circuit that outputs a search processing start instruction signal.

順序テーブル26aは、上述したWANから受信したIPアドレスの送信先のアドレス情報の変換に用いられる順序テーブル26と同じデータ構成でデータが記録されており、第1レジスタ32が値を記憶すると、「order」の値が第1レジスタ32が記憶した値に一致するあるいは、第1レジスタが示す順序テーブル26aのアドレスのエントリを検出し、検出したエントリの「entry」の項目に記録されている値(w2l[naptp])を出力する構成を有している。   In the order table 26a, data is recorded with the same data configuration as that of the order table 26 used for converting the address information of the destination of the IP address received from the WAN. When the first register 32 stores a value, the value of “order” matches the value stored in the first register 32, or the entry of the address in the order table 26a indicated by the first register is detected, and the value (“entry”) of the detected entry is recorded ( w2l [naptp]) is output.

アドレスレジスタ50は、順序テーブル26aの出力に接続されており、クロックの立ち下りにて順序テーブル26aから出力されるデータを記憶する。   The address register 50 is connected to the output of the order table 26a, and stores data output from the order table 26a at the falling edge of the clock.

NAPTテーブル21aは、上述したNAPTテーブル21と同じデータ構成で、予め256のエントリが記録されている。また、NAPTテーブル21aは、アドレスレジスタ50が値を記憶すると、「entry」の値がアドレスレジスタ50が記憶した値に一致するエントリを検出し、検出したエントリの「gAddr」、「gPort#」、「Protocol#」の項目の値(NAPTTable[w2l[naptp]])を減算器51に出力する。また、NAPTテーブル21aは、当該エントリの「lAddr」、「lPort#」の項目の値(res(NewAddr、NewPort#))をバッファ回路52に出力する。   The NAPT table 21a has the same data configuration as the NAPT table 21 described above, and 256 entries are recorded in advance. Further, when the address register 50 stores a value, the NAPT table 21a detects an entry whose “entry” value matches the value stored in the address register 50, and detects the detected entries “gAddr”, “gPort #”, The value of the item “Protocol #” (NAPTable [w2l [naptp]]) is output to the subtractor 51. Further, the NAPT table 21 a outputs the values of the “lAddr” and “lPort #” items (res (NewAddr, NewPort #)) of the entry to the buffer circuit 52.

減算器51は、2つの入力端子と、2つの出力端子を有しており、一方の入力端子は、セレクタ40に接続され、他方の入力端子はNAPTテーブル21aの出力に接続されている。また、減算器51は、セレクタ40から入力される検索キー情報を64ビットで表した場合の数値から、NAPTテーブル21aから出力される「gAddr」、「gPort#」、「Protocol#」を64ビットで表した場合の数値を減算し、減算の結果が負の場合、出力端子signから1、出力端子zeroから0を出力する。また、演算結果が0の場合、出力端子signから0、出力端子zeroから1を出力する。また、演算結果が、負あるいは0以外、すなわち正の場合、出力端子signから0、出力端子zeroから0を出力する。   The subtractor 51 has two input terminals and two output terminals. One input terminal is connected to the selector 40 and the other input terminal is connected to the output of the NAPT table 21a. Further, the subtracter 51 uses 64 bits for “gAddr”, “gPort #”, and “Protocol #” output from the NAPT table 21a from the numerical value when the search key information input from the selector 40 is expressed in 64 bits. When the subtraction result is negative, 1 is output from the output terminal sign and 0 is output from the output terminal zero. When the calculation result is 0, 0 is output from the output terminal sign and 1 is output from the output terminal zero. When the calculation result is negative or other than 0, that is, positive, 0 is output from the output terminal sign and 0 is output from the output terminal zero.

ここで、出力端子zeroから1が出力される場合(Hit)とは、検索キー情報の値とNAPTテーブル21aから出力される値が一致している場合を示しており、0が出力される場合(Miss)とは、検索キー情報の値とNAPTテーブル21aから出力される値が一致していない場合を示している。   Here, the case where 1 is output from the output terminal zero (Hit) indicates a case where the value of the search key information matches the value output from the NAPT table 21a, and the case where 0 is output. (Miss) indicates a case where the value of the search key information and the value output from the NAPT table 21a do not match.

バッファ回路52は、NAPTテーブル21aから出力される「lAddr」、「lPort#」の項目の値(res(NewAddr、NewPort#))と、減算器51の出力端子zeroから出力される値とを対応付けて記憶する。   The buffer circuit 52 associates the values of the items “lAddr” and “lPort #” output from the NAPT table 21 a (res (NewAddr, NewPort #)) with the values output from the output terminal zero of the subtractor 51. Add and remember.

enable信号回路53は、バッファ回路52に記憶しているデータを出力させるためのenable信号を出力する回路であり、内部にカウンタを有しており、例えば、NAPTテーブル21aのエントリ数が256の場合、二分探索で必要となる探索回数となる9(=log2(256)+1)回目のクロックがクロック回路から出力された後に、enabel信号を出力する。   The enable signal circuit 53 is a circuit that outputs an enable signal for outputting the data stored in the buffer circuit 52. The enable signal circuit 53 has a counter inside. For example, the number of entries in the NAPT table 21a is 256. After the 9th (= log2 (256) +1) -th clock, which is the number of searches required for the binary search, is output from the clock circuit, the enable signal is output.

判定回路54は、バッファ回路52から出力される検索結果のうち、出力端子zeroが1である検索結果が存在するか否かを判定し、存在する場合、当該検索結果のIPアドレスとポート番号(res(NewAddr、NewPort#))とを上述した変換部23に出力する。   The determination circuit 54 determines whether there is a search result whose output terminal zero is 1 among the search results output from the buffer circuit 52. If there is a search result, the IP address and port number ( res (NewAddr, NewPort #)) is output to the conversion unit 23 described above.

データレジスタ31、第1レジスタ32、第2レジスタ33、第3レジスタ34は、クロックの立ち上がりで、入力されるデータをラッチ、すなわち入力されるデータを記憶し、記憶しているデータを出力し、次のクロックの立ち上がりまで記憶しているデータを保持する。   The data register 31, the first register 32, the second register 33, and the third register 34 latch the input data at the rising edge of the clock, that is, store the input data, and output the stored data. The stored data is held until the next rising edge of the clock.

セレクタ40は、2つの入力端子in1とin2とを有している。in1には、データレジスタ31から出力されるデータが入力され、in2には、データ転送装置1の検索部22あるいは検索部25が受信したIPパケットから読み出した検索キー情報、すなわちIPアドレス、ポート番号、プロトコル番号が入力される。また、セレクタ40は、最初のクロックでは、in2から入力されるデータをデータレジスタ31に出力し、それ以降のクロックではin1から入力されるデータをデータレジスタ31に出力する。   The selector 40 has two input terminals in1 and in2. Data output from the data register 31 is input to in1, and search key information read from the IP packet received by the search unit 22 or the search unit 25 of the data transfer apparatus 1, that is, an IP address and a port number, is input to in2. The protocol number is entered. The selector 40 outputs data input from in2 to the data register 31 at the first clock, and outputs data input from in1 to the data register 31 at subsequent clocks.

セレクタ41は、3つの入力端子in1とin2とin3とを有している。in1には論理和演算回路35から出力されるデータが入力され、in2には論理和演算回路36から出力されるデータが入力され、in3には初期値としてNAPTテーブル21のエントリ数の半数である128(1000_0000b)が入力される。また、セレクタ41は、最初のクロックでは、in3から入力されるデータを第1レジスタ32に出力し、それ以降のクロックでは減算器51の出力端子signから出力される値が1の場合、in2から入力されるデータを第1レジスタ32に出力する。また、減算器51の出力端子signから出力される値が0の場合、in1から入力されるデータを第1レジスタ32に出力する   The selector 41 has three input terminals in1, in2, and in3. Data output from the OR operation circuit 35 is input to in1, data output from the OR operation circuit 36 is input to in2, and half of the number of entries in the NAPT table 21 is input to in3 as an initial value. 128 (1000_0000b) is input. The selector 41 outputs data input from in3 to the first register 32 at the first clock, and from in2 when the value output from the output terminal sign of the subtractor 51 is 1 at the subsequent clocks. The input data is output to the first register 32. When the value output from the output terminal sign of the subtractor 51 is 0, the data input from in1 is output to the first register 32.

セレクタ42は、セレクタ41と同様に、3つの入力端子in1とin2とin3とを有している。in1には第1レジスタ32から出力されるデータが入力され、in2には第2レジスタ33から出力されるデータが入力され、in3には初期値として0(0000_0000b)が入力される。また、セレクタ42は、最初のクロックでは、in3から入力されるデータを第2レジスタ33に出力し、それ以降のクロックでは減算器51の出力端子signから出力される値が1の場合、in2から入力されるデータを出力する。また、減算器51の出力端子signから出力される値が0の場合、in1から入力されるデータを出力する。   Like the selector 41, the selector 42 has three input terminals in1, in2, and in3. Data output from the first register 32 is input to in1, data output from the second register 33 is input to in2, and 0 (0000 — 0000b) is input as an initial value to in3. The selector 42 outputs the data input from in3 to the second register 33 at the first clock, and from in2 when the value output from the output terminal sign of the subtractor 51 is 1 at the subsequent clocks. Output the input data. If the value output from the output terminal sign of the subtractor 51 is 0, the data input from in1 is output.

セレクタ43は、2つの入力端子in1とin2とを有している。in1には、ビットシフタ37から出力されるデータが入力され、in2には初期値として128の半数の値である64(0100_0000b)が入力される。また、セレクタ43は、最初のクロックでは、in2から入力されるデータを第3レジスタ34に出力し、それ以降のクロックではin1から入力されるデータを第3レジスタ34に出力する。   The selector 43 has two input terminals in1 and in2. Data output from the bit shifter 37 is input to in1, and 64 (0100_0000b), which is a half value of 128, is input to in2 as an initial value. The selector 43 outputs data input from in2 to the third register 34 at the first clock, and outputs data input from in1 to the third register 34 at the subsequent clocks.

なお、図3は、WANから受信したIPパケットの送信先のアドレス情報を変換する構成として示しているため、順序テーブル26aを備えることとしているが、LANから受信したIPパケットの送信元のアドレス情報を変換する場合には、順序テーブル26aを順序テーブル27と同じデータ構成を有する順序テーブル27aに置き換えられる。また、NAPTテーブル21aから減算器51に出力されるのは「lAddr」、「lPort#」、「Protocol」の項目の値となりバッファ回路52に出力されるのは「gAddr」、「gPort#」の項目となる。また、判定回路54は、図1の変換部24に出力する構成となる。   3 shows a configuration for converting the address information of the destination of the IP packet received from the WAN, and therefore the order table 26a is provided. However, the address information of the source of the IP packet received from the LAN is shown. Is converted to the order table 27a having the same data configuration as the order table 27. The NAPT table 21a outputs to the subtractor 51 the values of the items “lAddr”, “lPort #”, and “Protocol”, and the outputs to the buffer circuit 52 are “gAddr” and “gPort #”. It becomes an item. Further, the determination circuit 54 is configured to output to the conversion unit 24 in FIG.

また、図3に示したアドレス情報検索回路20aにおいて、上述した4つのレジスタ、4つのセレクタと、2つの論理和演算回路と、1つのビットシフタと、減算器51と、バッファ回路52、enable信号回路53と、判定回路54、及びクロック回路、開始信号回路は、図1の検索部22あるいは検索部25に対応することになる。   Further, in the address information search circuit 20a shown in FIG. 3, the above-described four registers, four selectors, two logical sum operation circuits, one bit shifter, a subtractor 51, a buffer circuit 52, an enable signal circuit. 53, the determination circuit 54, the clock circuit, and the start signal circuit correspond to the search unit 22 or the search unit 25 in FIG.

また、上述した図3のアドレス情報検索回路20aにおいて、各レジスタのメモリの速度によりデータをラッチする位置を適宜変更するようにしてもよい。   In the address information search circuit 20a of FIG. 3 described above, the position where data is latched may be changed as appropriate depending on the memory speed of each register.

次に、図4及び図5を参照して、アドレス情報検索回路20aの動作について説明する。図4は、アドレス情報検索回路20aによる二分探索の動作を示したフローチャートである。   Next, the operation of the address information search circuit 20a will be described with reference to FIGS. FIG. 4 is a flowchart showing the binary search operation by the address information search circuit 20a.

最初に、セレクタ40の入力端子in2には、検索キー情報(Addr、Port#、Protocol)が入力され、セレクタ41の入力端子in3には128が入力され、セレクタ42の入力端子in3には、0が入力され、セレクタ43の入力端子in3には、64が入力される。また、enable回路53が内部に備えるカウンタiには0が設定される(ステップSa1)。   First, search key information (Addr, Port #, Protocol) is input to the input terminal in2 of the selector 40, 128 is input to the input terminal in3 of the selector 41, and 0 is input to the input terminal in3 of the selector 42. And 64 is input to the input terminal in3 of the selector 43. In addition, 0 is set to the counter i included in the enable circuit 53 (step Sa1).

ここで、開始信号回路から開始信号が出力されると検索の処理が開始され、enable回路53はカウンタiが9未満であるか否かを判定し、カウンタiが9未満である場合、enable信号を出力せずステップSa3に進む(ステップSa2)。一方、カウンタiが9未満でない場合、enable信号を出力し、ステップSa8に進む。   Here, when the start signal is output from the start signal circuit, the search process is started, and the enable circuit 53 determines whether or not the counter i is less than 9, and if the counter i is less than 9, the enable signal Is not output, and the process proceeds to step Sa3 (step Sa2). On the other hand, if the counter i is not less than 9, an enable signal is output and the process proceeds to step Sa8.

最初のクロックの立ち上がりにおいて、データレジスタ31は、セレクタ40から出力される検索キー情報(Addr、Port#、Protocol)を記憶する。第1レジスタ32は、セレクタ41から出力される128を記憶する。第2レジスタ33は、セレクタ42から出力される0を記憶する。第3レジスタ34は、セレクタ43から出力される64を記憶する。   At the rising edge of the first clock, the data register 31 stores search key information (Addr, Port #, Protocol) output from the selector 40. The first register 32 stores 128 output from the selector 41. The second register 33 stores 0 output from the selector 42. The third register 34 stores 64 output from the selector 43.

当該クロック周期において、第1レジスタ32は、記憶している128の値を論理和演算回路35とセレクタ42に出力する。第2レジスタ33は、記憶している0の値を論理和演算回路36とセレクタ42に出力する。第3レジスタ34は、記憶している64の値を論理和演算回路35と、論理和演算回路36と、ビットシフタ37に出力する。   In the clock cycle, the first register 32 outputs the stored 128 values to the logical sum operation circuit 35 and the selector 42. The second register 33 outputs the stored value of 0 to the logical sum operation circuit 36 and the selector 42. The third register 34 outputs the stored 64 values to the logical sum operation circuit 35, the logical sum operation circuit 36, and the bit shifter 37.

論理和演算回路35は、第1レジスタ32から出力される128と、第3レジスタ34から出力される64の論理和である192を出力する。論理和演算回路36は、第2レジスタから出力される0と、第3レジスタから出力される64の論理和である64(20h)を出力する。   The logical sum operation circuit 35 outputs 192 which is a logical sum of 128 output from the first register 32 and 64 output from the third register 34. The logical sum operation circuit 36 outputs 64 (20h), which is the logical sum of 0 output from the second register and 64 output from the third register.

順序テーブル26aは、第1レジスタ32が記憶している128の値を参照し、「order」が128であるエントリの「entry」の項目に記録されている値(w2l[naptp])を出力する。   The order table 26a refers to the 128 values stored in the first register 32, and outputs the value (w2l [naptp]) recorded in the “entry” item of the entry whose “order” is 128. .

そして、クロックの立ち下りにより、アドレスレジスタ50は、順序テーブル26aから出力される値を記憶する。NAPTテーブル21aは、アドレスレジスタ50が記憶している値を参照し、「entry」の項目が当該値であるエントリを読み出し、「gAddr」、「gPort#」、「Protocol」を組み合わせた64ビットの値(NAPTTable[w2l[naptp]])を減算器51に出力する。また、NAPTテーブル21aは、読み出したエントリに含まれる「lAddr」、「lPort#」(res(NewAddr,NewPort#)をバッファ回路52に出力する(ステップSa3)。   And the address register 50 memorize | stores the value output from the order table 26a by the falling of a clock. The NAPT table 21a refers to a value stored in the address register 50, reads an entry whose item “entry” is the value, and combines a 64-bit combination of “gAddr”, “gPort #”, and “Protocol”. The value (NAPTable [w2l [naptp]]) is output to the subtractor 51. The NAPT table 21a outputs “lAddr” and “lPort #” (res (NewAddr, NewPort #)) included in the read entry to the buffer circuit 52 (step Sa3).

減算器51は、セレクタ40から出力された検索キー情報を64ビットで示した場合の数値から、NAPTテーブル21aから出力された数値を減算し、出力端子zeroと出力端子signに減算した結果を出力する(ステップSa4)。   The subtractor 51 subtracts the numerical value output from the NAPT table 21a from the numerical value when the search key information output from the selector 40 is represented by 64 bits, and outputs the result obtained by subtracting the output terminal zero and the output terminal sign. (Step Sa4).

減算結果が正の場合、すなわち出力端子signから0が出力された場合、セレクタ41は、in1から入力されている値、すなわち論理和演算回路35の演算結果(naptp|shiftreg)を第1レジスタ32(naptp)に出力する。また、セレクタ42は、in1から入力されている値、すなわち第1レジスタ32から出力される値(naptp)を第2レジスタ33(naptmp)に出力する(ステップSa5)。   When the subtraction result is positive, that is, when 0 is output from the output terminal sign, the selector 41 outputs the value input from in1, that is, the operation result (napt | shiftleg) of the OR operation circuit 35 to the first register 32. To (naptp). In addition, the selector 42 outputs the value input from in1, that is, the value (naptp) output from the first register 32 to the second register 33 (naptmp) (step Sa5).

一方、演算結果が負の場合、すなわち出力端子signから1が出力された場合、セレクタ41は、in2から入力されている値、すなわち論理和演算回路36の演算結果(naptmp|shiftreg)を第1レジスタ32(naptp)に出力する。また、セレクタ42は、in2から入力されている値、すなわち第2レジスタ33から出力される値(naptmp)を第2レジスタ33(naptmp)に出力する(ステップSa6)。   On the other hand, when the operation result is negative, that is, when 1 is output from the output terminal sign, the selector 41 outputs the value input from in2, that is, the operation result (naptmp | shiftreg) of the logical sum operation circuit 36 to the first. Output to the register 32 (naptp). The selector 42 outputs the value input from in2, that is, the value (naptmp) output from the second register 33 to the second register 33 (naptmp) (step Sa6).

enable信号回路53は、クロックの発生後にカウンタiに1を加える。ビットシフタ37は、第3レジスタ34から出力される64を1ビット右シフトした32を出力する(ステップSa7)。上記のステップSa2からステップSa7の処理が9回繰り返され、9回目で、enable信号回路53は、enable信号をバッファ回路52に出力する。バッファ回路52は、記憶している検索結果を判定回路54に出力する。そして、判定回路54は、検索キー情報がNAPTテーブル21aに存在している場合、すなわち出力端子zeroの出力が1となっているか否かを判定し(ステップSa8)、出力端子zeroの出力が1となっている場合、NAPTテーブル21aから出力されたres(NewAddr、NewPort#)を変換部23に出力し、変換部23が受信したIPパケットの送信先のIPアドレスとポート番号をNewAddr、NewPort#で書き換える。(ステップSa9)。一方、出力端子zeroの出力が1となっている検索結果が存在しない場合、IPアドレス、ポート番号を変更しないか、あるいは当該IPパケット自体を破棄する(ステップSa10)。   The enable signal circuit 53 adds 1 to the counter i after the clock is generated. The bit shifter 37 outputs 32 obtained by shifting 64 output from the third register 34 to the right by 1 bit (step Sa7). The processing from step Sa2 to step Sa7 is repeated nine times. At the ninth time, the enable signal circuit 53 outputs an enable signal to the buffer circuit 52. The buffer circuit 52 outputs the stored search result to the determination circuit 54. Then, the determination circuit 54 determines whether or not the search key information exists in the NAPT table 21a, that is, whether or not the output of the output terminal zero is 1 (step Sa8), and the output of the output terminal zero is 1. If it is, res (NewAddr, NewPort #) output from the NAPT table 21a is output to the conversion unit 23, and the IP address and port number of the IP packet received by the conversion unit 23 are displayed as NewAddr, NewPort #. Rewrite with. (Step Sa9). On the other hand, if there is no search result in which the output of the output terminal zero is 1, the IP address and port number are not changed, or the IP packet itself is discarded (step Sa10).

なお、クロックが9回発生していない場合であっても、ステップSa4において、減算結果が零、すなわち検索キー情報とNAPTテーブル21aから出力された情報とが一致した場合に、ステップSa5に進まず、ステップSa8に進み処理を終了させるようにしてもよい。   Even if the clock is not generated nine times, if the subtraction result is zero in step Sa4, that is, if the search key information matches the information output from the NAPT table 21a, the process does not proceed to step Sa5. The process may be terminated by proceeding to step Sa8.

図5は、順序テーブル26aにおいて134番目で、検索キー情報とNAPTテーブル21aのエントリが一致する場合におけるアドレス情報検索回路20aの各回路の動作を示したタイミングチャートである。   FIG. 5 is a timing chart showing the operation of each circuit of the address information search circuit 20a when the search key information matches the entry in the NAPT table 21a at the 134th position in the order table 26a.

図5に示すように、クロック(clk1、clk2、・・・)が立ち上がるごとに、第1レジスタ32、第2レジスタ33、第3レジスタ34が内部に記憶する値が変化し、9回目のクロック(clk9)にて、第1レジスタ32が記憶する値が134に収束することになる。そして、9回目のクロックの立ち下りにおいて、enable信号がenable信号回路53から出力され、バッファ回路52からHit/Miss、すなわち出力端子zeroの値と、検索されたアドレス情報(res(NewAddr,NewPort#))が対応付けられて判定回路54に出力されることになる。   As shown in FIG. 5, each time the clock (clk1, clk2,...) Rises, the values stored in the first register 32, the second register 33, and the third register 34 change, and the ninth clock At (clk9), the value stored in the first register 32 converges to 134. Then, at the falling edge of the ninth clock, the enable signal is output from the enable signal circuit 53, and the buffer circuit 52 outputs Hit / Miss, that is, the value of the output terminal zero and the searched address information (res (NewAddr, NewPort # )) Are associated and output to the determination circuit 54.

なお、上述した実施形態において、NAPTテーブル21aを構成するメモリのメモリ速度が速い場合には、アドレスレジスタ50を除いて構成することも可能である。   In the above-described embodiment, when the memory speed of the memory constituting the NAPT table 21a is high, the address register 50 can be omitted.

また、上述した実施形態において、NAPTテーブル21aに記録されるエントリが256に満たない場合には、図2のNAPTテーブル21のエントリ番号255に示すように全ての項目のビットを1としたエントリを追加し、対応するエントリ番号が存在しない順序テーブル26の「order」の値が254と255の「entry」に255を記録することで256個にすることができ、回路構成を変更せずに9回の二分探索処理を支障なく実行することが可能となる。   Further, in the above-described embodiment, when the number of entries recorded in the NAPT table 21a is less than 256, as shown by the entry number 255 of the NAPT table 21 in FIG. By adding 255 to “entry” of 254 and 255, the value of “order” in the order table 26 that does not have a corresponding entry number can be set to 256, and 9 without changing the circuit configuration. The binary search process can be executed without any trouble.

また、NAPTテーブル21aに記録されるエントリが256に満たない場合の他の対策としては、対応するエントリ番号が存在しない順序テーブル26の「entry」に、検索対象としないことを示すフラグを設定するようにしてもよい。   As another countermeasure when the number of entries recorded in the NAPT table 21a is less than 256, a flag indicating that the entry is not to be searched is set in “entry” of the order table 26 in which the corresponding entry number does not exist. You may do it.

また、一度検索対象のエントリがNAPTテーブル21aから減算器51に出力されると、その後、第1レジスタ32に記憶される値が変化しないため、バッファ回路52には同じ情報が出力されることになる。そのため、バッファ回路52には、減算器51から出力される情報を全て記憶しておくのではなく、最新の情報のみを記憶しておくようにし、enable信号回路53からenable信号がバッファ回路52に入力されると、バッファ回路52は、enable信号の入力の際に記憶している情報を判定回路54に出力するようにしてもよい。   Further, once the entry to be searched is output from the NAPT table 21a to the subtractor 51, the value stored in the first register 32 does not change thereafter, and therefore the same information is output to the buffer circuit 52. Become. Therefore, the buffer circuit 52 does not store all the information output from the subtractor 51, but stores only the latest information, and the enable signal from the enable signal circuit 53 is sent to the buffer circuit 52. When input, the buffer circuit 52 may output the information stored when the enable signal is input to the determination circuit 54.

上記の実施形態の構成により、NAPTテーブル21aのエントリ数に応じた回数、すなわちエントリ数をNとした場合、log2(N)+1の回数の二分探索により、アドレス情報を検索することが可能となる。また、上記のような順序テーブル26a及び27aを設けることで、ハードウェア処理に適したNAPTにおける検索処理を実現することが可能となる。   With the configuration of the above embodiment, when the number of entries in the NAPT table 21a is equal to the number of entries, that is, when the number of entries is N, address information can be retrieved by a binary search of log2 (N) +1 times. . In addition, by providing the order tables 26a and 27a as described above, it is possible to realize search processing in NAPT suitable for hardware processing.

次に、図6から図8を参照して、図1に示したデータ転送装置1においてNAPTテーブル21にエントリを追加する処理と、削除する処理について説明する。   Next, with reference to FIGS. 6 to 8, processing for adding and deleting entries in the NAPT table 21 in the data transfer apparatus 1 shown in FIG. 1 will be described.

図6は、NAPTテーブル21に対してエントリを追加、あるいは削除するエントリ追加削除部60が追加されたデータ転送装置1bのアドレス情報検索回路20の構成を示した図である。エントリ追加削除部60は、エントリを追加する場合には、追加するエントリに含まれるアドレス情報を検索部22及び25に入力し、検索部22及び25から出力される検索結果に基づいてNAPTテーブル21へのエントリの追加し、順序テーブル26と27のエントリの書き換えを行う。また、エントリ追加削除部60は、エントリを削除する場合、削除するエントリを含むNAPTテーブル21のエントリ番号及び当該エントリ番号に対応する順序テーブル26及び27の「order」の番号に基づいて、エントリの削除を行う。   FIG. 6 is a diagram showing a configuration of the address information search circuit 20 of the data transfer apparatus 1b to which the entry addition / deletion unit 60 for adding or deleting entries to the NAPT table 21 is added. When adding an entry, the entry addition / deletion unit 60 inputs address information included in the entry to be added to the search units 22 and 25, and the NAPT table 21 based on the search results output from the search units 22 and 25. And the entries in the order tables 26 and 27 are rewritten. In addition, when deleting an entry, the entry addition / deletion unit 60 deletes the entry based on the entry number of the NAPT table 21 including the entry to be deleted and the “order” number of the order tables 26 and 27 corresponding to the entry number. Perform deletion.

次に、図7を参照してエントリを追加する処理について説明する。
図7では、図6のアドレス情報検索回路20に対して図3のアドレス情報検索回路20aを適用した場合について説明する。
エントリを追加する場合、追加するエントリに含まれる「gAddr」、「gPort#」、「Protocol」を64ビットで表した数値の大きさに応じて順序テーブル26aの順序を入れ替え、さらに、「lAddr」、「lPort#」、「Protocol」を64ビットで表した数値の大きさに応じて順序テーブル27aの順序を入れ替える必要がある。
Next, processing for adding an entry will be described with reference to FIG.
FIG. 7 illustrates a case where the address information search circuit 20a of FIG. 3 is applied to the address information search circuit 20 of FIG.
When adding an entry, the order of the order table 26a is changed in accordance with the size of the numerical value in which “gAddr”, “gPort #”, and “Protocol” included in the entry to be added are represented by 64 bits, and “lAddr” , “LPort #” and “Protocol” need to be replaced in the order of the order table 27a according to the numerical value represented by 64 bits.

まず最初に、エントリ追加削除部60は、検索キー情報として、追加するエントリの「gAddr」、「gPort#」、「Protocol」を64ビットで表した数値をアドレス情報検索回路20aのセレクタ40に入力する。アドレス情報検索回路20aは、図4で説明した二分探索の処理であるステップSa1からSa7と同じ処理であるステップSb1からSb8の処理を行い、9回のクロック発生の後、バッファ回路52から検索結果が出力され、判定回路54が検索結果の中で出力端子zeroが1となっている検索結果をエントリ追加削除部60に出力する。   First, the entry addition / deletion unit 60 inputs, as search key information, a numerical value representing the added entry “gAddr”, “gPort #”, “Protocol” in 64 bits to the selector 40 of the address information search circuit 20a. To do. The address information search circuit 20a performs steps Sb1 to Sb8, which are the same processes as steps Sa1 to Sa7, which are the binary search processes described with reference to FIG. Is output, and the determination circuit 54 outputs the search result in which the output terminal zero is 1 among the search results to the entry addition / deletion unit 60.

出力端子zeroからの出力が1となっている検索結果が存在する場合、エントリ追加削除部60は、第1レジスタ32の値を読み出して、内部の変数naptpとして記憶する。そして、変数にnaptpに1加えた値をnaptpとする(ステップSb9)。また、出力端子zeroからの出力が1となっている検索結果が存在しない場合には、エントリ追加削除部60は、第1レジスタ32の値を読み出して、読み出した値を内部の変数naptpとして記憶する。   If there is a search result in which the output from the output terminal zero is 1, the entry addition / deletion unit 60 reads the value of the first register 32 and stores it as an internal variable NAPTP. Then, a value obtained by adding 1 to NAPTP is set as NAPTP (step Sb9). In addition, when there is no search result in which the output from the output terminal zero is 1, the entry addition / deletion unit 60 reads the value of the first register 32 and stores the read value as an internal variable NAPTP. To do.

エントリ追加削除部60は、内部のカウンタjに255を設定し、カウンタjの値が、変数naptpの値より大きいか否かを判定する(ステップSb11)。カウンタjの値が、変数naptpの値より大きい場合、エントリ追加削除部60は、順序テーブル26aの「order」の値がjの値の「entry」の項目(w2l[j])に、1つ前の「entry」の項目(w2l[j−1])を書き込み、カウンタjから1減算した値をカウンタjに代入する。そして、カウンタjの値が、変数naptpの値より大きい間ステップSb12の書き換え処理を繰り返す。   The entry addition / deletion unit 60 sets 255 in the internal counter j, and determines whether or not the value of the counter j is larger than the value of the variable NAPTP (step Sb11). When the value of the counter j is larger than the value of the variable NAPTP, the entry addition / deletion unit 60 adds one to the “entry” item (w2l [j]) whose “order” value in the order table 26a is j. The previous “entry” item (w2l [j−1]) is written, and a value obtained by subtracting 1 from the counter j is substituted into the counter j. Then, the rewriting process of step Sb12 is repeated while the value of the counter j is larger than the value of the variable NAPTP.

カウンタjの値が、変数naptpの値以下となった場合、エントリ追加削除部60は、NAPTテーブル21aの空きエントリを検索し、空きエントリに追加するエントリを記録する(ステップSb13)。そして、エントリ追加削除部60は、追加したエントリに付与されるNAPTテーブル21aの「entry」の番号を読み出し、順序テーブル26aの空きエントリ、すなわち変数naptpの値の順序に読み出したNAPTテーブル21aの「entry」の番号を記録する(ステップSb14)。   When the value of the counter j is equal to or less than the value of the variable NAPTP, the entry addition / deletion unit 60 searches for a free entry in the NAPT table 21a and records an entry to be added to the free entry (step Sb13). Then, the entry addition / deletion unit 60 reads the number of “entry” of the NAPT table 21a assigned to the added entry, and reads “empty entry” in the order table 26a, that is, “value” of the NAPT table 21a read in the order of the value of the variable NAPTP. The entry number is recorded (step Sb14).

図7の処理の後、順序テーブル27aを書き換える処理を上記のフローチャートと同様に、順序テーブル27aに対して新たなエントリのNAPTテーブル21aにおけるエントリ番号を挿入すべき位置を検出して、順序テーブル27aを書き換えることにより、エントリの追加を完了することができる。   After the processing of FIG. 7, the processing for rewriting the order table 27a is detected in the order table 27a by detecting the position where the entry number of the new entry NAPT table 21a is to be inserted in the order table 27a. By rewriting, entry addition can be completed.

上記の処理により、追加しようとするエントリに対する順序テーブル26a、27aへの挿入位置を検索することができ、検索した挿入位置に従って、順序テーブル26a、27aの「entry」に記録されている値を移動させることができる。そして、NAPTテーブル21aの空きエントリに追加するエントリを書き込み、書き込んだエントリのエントリ番号を順序テーブル26a、27aの挿入位置に記録することで、エントリの追加時における順序テーブル26a、27aの変更を行うことが可能となる。   With the above processing, the insertion position in the order table 26a, 27a for the entry to be added can be searched, and the value recorded in “entry” of the order table 26a, 27a is moved according to the searched insertion position. Can be made. Then, the entry to be added is written in the empty entry of the NAPT table 21a, and the entry number of the written entry is recorded at the insertion position of the order table 26a, 27a, thereby changing the order table 26a, 27a when the entry is added. It becomes possible.

次に、図8を参照してエントリ追加削除部60が行うエントリの削除処理について説明する。
まず最初に、エントリ追加削除部60が削除するNAPTテーブル21aのエントリ番号と、当該エントリ番号に対応する順序テーブル26aの「order」の項目の番号を読み出す。カウンタjに読み出した「order」の項目の番号を設定し(ステップSc2)、カウンタjの値が255未満であるか否かを判定する(ステップSc3)。カウンタjの値が255未満である場合、エントリ追加削除部60は、順序テーブル26aの「order」の値がjの値の「entry」の項目(w2l[j])に、1つ後の「entry」の項目(w2l[j+1])を書き込み(ステップSc4)、カウンタjに1加算した値をカウンタjに代入する。そして、カウンタjの値が、変数naptpの値より大きい間ステップSc4の書き換え処理を繰り返す。
Next, an entry deletion process performed by the entry addition / deletion unit 60 will be described with reference to FIG.
First, the entry number of the NAPT table 21a to be deleted by the entry addition / deletion unit 60 and the item number of the “order” item in the order table 26a corresponding to the entry number are read out. The read item number of “order” is set in the counter j (step Sc2), and it is determined whether or not the value of the counter j is less than 255 (step Sc3). When the value of the counter j is less than 255, the entry addition / deletion unit 60 adds the “order” value of the order table 26 a to the item “entry” (w2l [j]) having the value of j, the next “ The “entry” item (w2l [j + 1]) is written (step Sc4), and the value obtained by adding 1 to the counter j is substituted into the counter j. Then, the rewriting process of step Sc4 is repeated while the value of the counter j is larger than the value of the variable NAPTP.

カウンタjの値が、255以上となった場合、エントリ追加削除部60は、順序テーブル26aのorder=255の「entry」の項目(w2l[255])に削除するNAPTテーブル21aのエントリ番号を記録し(ステップSc5)、当該NAPTテーブル21aのエントリ(NAPTTable[entry])に全てのビットを1として記録する(ステップSc6)。   When the value of the counter j is 255 or more, the entry addition / deletion unit 60 records the entry number of the NAPT table 21a to be deleted in the “entry” item (w2l [255]) of order = 255 in the order table 26a. Then (step Sc5), all the bits are recorded as 1 in the entry (NAPTTable [entry]) of the NAPT table 21a (step Sc6).

図8の処理の後、順序テーブル27aについても同様の処理を行うことで、エントリの削除処理を完了することができる。   After the processing of FIG. 8, the entry deletion processing can be completed by performing the same processing on the order table 27a.

上記の処理により、順序テーブル26a及び27aから削除するエントリに対応するエントリ番号を削除し、それ以降のエントリを詰めておき、NAPTテーブル21aの削除するエントリには全てのビットを1として記録することが可能となる。   By the above processing, the entry number corresponding to the entry to be deleted is deleted from the order tables 26a and 27a, the subsequent entries are packed, and all bits are recorded as 1 in the entry to be deleted from the NAPT table 21a. Is possible.

なお、エントリの追加、削除において、図3に示したハードウェアで構成されるアドレス情報検索回路20aの場合には、順序テーブル26a、27a、NAPTテーブル21aに書き込み、あるいは削除を行うため、各テーブルの状態や、削除するエントリの位置などを予め検出しておく必要があるが、これらの情報は、例えば、エントリ追加削除部60を外部プロセッサにより構成してアドレス情報検索回路20aに組み込み、当該エントリ追加削除部60に管理させるようにしてもよい。   In addition, in the case of the address information search circuit 20a configured by hardware shown in FIG. 3 in addition and deletion of entries, each table is written to or deleted from the order tables 26a and 27a and the NAPT table 21a. It is necessary to detect in advance the status of the entry, the position of the entry to be deleted, and the like. For example, the entry addition / deletion unit 60 is configured by an external processor and incorporated in the address information search circuit 20a. The addition / deletion unit 60 may be managed.

なお、図8の処理では、NAPTテーブル21aのエントリ番号に基づいて、削除する場合について示したが、削除するエントリの情報、すなわち「gAddr」、「gPort#」、「lAddr」、「lPort#」、「Protocol#」に基づいて、削除を行うようにすることも可能である。   In the processing of FIG. 8, the case of deleting based on the entry number of the NAPT table 21a has been described. However, information of the entry to be deleted, that is, “gAddr”, “gPort #”, “lAddr”, “lPort #” It is also possible to perform deletion based on “Protocol #”.

なお、上記のエントリ追加及び削除では、NAPTテーブル21aや順序テーブル26a及び27aの「entry」に記録されている値の位置を移動させる必要があるため、その処理中は、NAPT検索の処理を行うことができない。そのため、順序テーブル26a及び27aを2面備え、追加・削除時に裏面の順序テーブルに対して処理を行い、更新のタイミング、裏面の順序テーブルと表面の順序テーブルを入れ替えることにより、NAPT検索ができなくなる時間を大幅に短縮することが可能となる。
ここで、更新のタイミングとは、追加や削除の要求が発生した場合に、現在実行されているNAPT検索処理が終了した時点や、2面のテーブルを用いて更新を行う場合には、1回のNAPTテーブルの検索終了後、あるいは複数回のNAPTテーブルの検索終了後に予め設けられる更新許可時間などがある。
In addition, in the above-described entry addition and deletion, it is necessary to move the position of the value recorded in the “entry” of the NAPT table 21a and the order tables 26a and 27a. Therefore, the NAPT search process is performed during the process. I can't. Therefore, there are two order tables 26a and 27a, and processing is performed on the back order table when adding / deleting, and the NAPT search cannot be performed by replacing the update timing and the back order table with the front order table. Time can be greatly reduced.
Here, the update timing is one time when an addition or deletion request occurs, when the currently executed NAPT search process is completed, or when updating is performed using a two-side table. There is an update permission time set in advance after the end of the NAPT table search or after the end of a plurality of NAPT table searches.

また、WANから受信したIPパケットに対するNAPTテーブルと、LANから受信したIPパケットに対するNAPTテーブルとを備えることができる場合、順序テーブルを除いて、NAPTテーブルの検索対象部分、すなわち検索キー情報を構成する項目を組み合わせた情報が示す数値を昇べきの順に設定して運用するようにすることもできる。また、それぞれのNAPTテーブルを備える場合において、エントリの追加及び削除を行う場合には、合計4面のNAPTテーブルを有することにより、NAPT検索ができなくなる時間を大幅に短縮することが可能となる。   If a NAPT table for an IP packet received from the WAN and a NAPT table for an IP packet received from the LAN can be provided, the NAPT table search target portion, that is, the search key information is configured except for the order table. It is also possible to set and operate a numerical value indicated by information combining items in ascending order. In addition, in the case where each NAPT table is provided, when adding and deleting entries, it is possible to significantly reduce the time during which NAPT search cannot be performed by having a total of four NAPT tables.

なお、上記の実施形態において、減算器51の代わりに比較器を適用するようにしてもよい。   In the above embodiment, a comparator may be applied instead of the subtracter 51.

また、上記の実施形態では、順序テーブル26及び27に記憶されるエントリの数は256であるとして説明したが、本発明は、当該数値に限られず、どのような数であってもよいが、二分探索における中央値は、偶数の場合には、エントリ数を2で割った値であり、奇数の場合には、エントリ数を2で割った値に1加算した値として処理を行うことができる。   In the above embodiment, the number of entries stored in the order tables 26 and 27 has been described as 256. However, the present invention is not limited to the numerical value, and may be any number. The median value in the binary search is a value obtained by dividing the number of entries by 2 when the number is even, and can be processed as a value obtained by adding 1 to the value obtained by dividing the number of entries by 2 when the number is odd. .

また、上記の実施形態では、検索キー情報として、IPアドレス、ポート番号、プロトコル番号の組み合わせた情報としたが、本発明はこれに限られず、検索キー情報に含まれる情報は、IPアドレスのみであってもよく、また、IPアドレスとポート番号を組み合わせた情報であってもよい。   In the above embodiment, the search key information is information that combines an IP address, a port number, and a protocol number. However, the present invention is not limited to this, and the information included in the search key information is only an IP address. It may also be information that is a combination of an IP address and a port number.

また、本発明に記載の変換情報記憶手段は、NAPTテーブル21、21aに対応し、第1の順序情報記憶手段は、順序テーブル26、26aに対応し、第2の順序情報記憶手段は、順序テーブル27、27aに対応する。また、本発明の第1の検索手段は、検索部22に対応し、第2の検索手段は、検索部25に対応する。また、本発明の第1の転送手段は、変換部23、経路検索部12、接続部12を組み合わせた構成に対応し、第2の転送手段は、変換部24、経路検索部12、接続部13を組み合わせた構成に対応する。   The conversion information storage means described in the present invention corresponds to the NAPT tables 21 and 21a, the first order information storage means corresponds to the order tables 26 and 26a, and the second order information storage means This corresponds to the tables 27 and 27a. The first search means of the present invention corresponds to the search unit 22, and the second search means corresponds to the search unit 25. The first transfer means of the present invention corresponds to a configuration in which the conversion unit 23, the route search unit 12, and the connection unit 12 are combined. The second transfer unit includes the conversion unit 24, the route search unit 12, and the connection unit. 13 corresponds to the combined configuration.

また、本発明に記載の入力手段は、検索部22あるいは検索部25において接続部11あるいは接続部13から入力されるIPパケットから検索キー情報に含まれる情報を読み出して入力する構成に対応する。また、本発明に記載のクロック生成手段は、上述したクロック回路に対応し、第1レジスタは、第1レジスタ32、第2レジスタは第2レジスタ33、第3レジスタは第3レジスタ34に対応し、第1の論理和演算手段は、論理和演算部35、第2の論理和演算手段は、論理和演算部36に対応する、また、本発明に記載の中央値算出手段は、ビットシフタ37に対応し、判定手段は、減算器51に対応する。また、本発明に記載の第1のセレクタは、セレクタ41に対応し、第2のセレクタは、セレクタ42に対応し、第3のセレクタは、セレクタ43に対応する。また、本発明に記載の出力手段は、バッファ回路52及びenable信号回路53に対応する。また、本発明に記載の変換情報追加手段は、エントリ追加削除部60に対応する。
The input means described in the present invention corresponds to a configuration in which the search unit 22 or the search unit 25 reads and inputs information included in the search key information from the IP packet input from the connection unit 11 or the connection unit 13. The clock generation means according to the present invention corresponds to the clock circuit described above, the first register corresponds to the first register 32, the second register corresponds to the second register 33, and the third register corresponds to the third register 34. The first OR operation means corresponds to the OR operation section 35, the second OR operation means corresponds to the OR operation section 36, and the median calculation means described in the present invention is added to the bit shifter 37. Correspondingly, the determination means corresponds to the subtractor 51. Further, the first selector described in the present invention corresponds to the selector 41, the second selector corresponds to the selector 42, and the third selector corresponds to the selector 43. The output means described in the present invention corresponds to the buffer circuit 52 and the enable signal circuit 53. Further, the conversion information adding means described in the present invention corresponds to the entry addition / deletion unit 60.

本実施形態によるデータ転送装置を示すブロック図である。It is a block diagram which shows the data transfer apparatus by this embodiment. 同実施形態におけるNAPTテーブル及び順序テーブルのデータ構成を示した図である。It is the figure which showed the data structure of the NAPT table and order table in the embodiment. 同実施形態におけるアドレス情報検索回路のハードウェア構成を示した図である。It is the figure which showed the hardware constitutions of the address information search circuit in the same embodiment. 同実施形態におけるアドレス情報検索処理を示したフローチャートである。It is the flowchart which showed the address information search processing in the same execution form. 同実施形態におけるアドレス情報検索処理時のタイミングチャートを示した図である。It is the figure which showed the timing chart at the time of the address information search processing in the same execution form. 同実施形態におけるエントリ追加及び削除を行う場合のデータ転送装置を示すブロック図である。It is a block diagram which shows the data transfer apparatus in the case of performing entry addition and deletion in the embodiment. 同実施形態におけるエントリ追加処理を示したフローチャートである。It is the flowchart which showed the entry addition process in the same embodiment. 同実施形態におけるエントリ削除処理を示したフローチャートである。It is the flowchart which showed the entry deletion process in the same embodiment.

符号の説明Explanation of symbols

1 データ転送装置
11 接続部
12 経路検索部
13 接続部
20 アドレス情報検索回路
21 NAPTテーブル
26 順序テーブル
27 順序テーブル
22 検索部
23 変換部
24 変換部
25 検索部

DESCRIPTION OF SYMBOLS 1 Data transfer apparatus 11 Connection part 12 Path | route search part 13 Connection part 20 Address information search circuit 21 NAPT table 26 Order table 27 Order table 22 Search part 23 Conversion part 24 Conversion part 25 Search part

Claims (12)

一意に識別可能な第1のアドレス情報で転送が行われる複数の第1のネットワークと、ネットワーク内でのみ一意に識別可能な第2のアドレス情報で転送が行われる第2のネットワークとに接続され、前記複数の第1のネットワークと第2のネットワークとの間でデータを転送するデータ転送装置であって、
第1のアドレス情報と、当該第1のアドレス情報に対応する前記第2のアドレス情報とを対応付けた変換情報を記憶する変換情報記憶手段と、
前記変換情報記憶手段が記憶する複数の変換情報に含まれる前記第1のアドレス情報を数値で示した場合、当該数値の値の大きさの順に前記変換情報を参照できるようにする第1の順序情報を記憶する第1の順序情報記憶手段と、
前記変換情報記憶手段が記憶する複数の変換情報に含まれる前記第2のアドレス情報を数値で示した場合、当該数値の値の大きさの順に前記変換情報を参照できるようにする第2の順序情報を記憶する第2の順序情報記憶手段と、
前記複数の第1のネットワークのいずれか1つからデータを受信した場合、前記データに含まれる送信先を示す第1のアドレス情報から当該第1のアドレス情報を含む検索キー情報を生成し、前記第1の順序情報記憶手段が記憶する第1の順序情報及び前記検索キー情報に基づいて、二分探索法にて前記変換情報記憶手段から前記検索キー情報を含む変換情報を検索し、検索した変換情報に含まれる第2のアドレス情報を前記変換情報記憶手段から読み出して出力する第1の検索手段と、
前記第1の検索手段が出力した第2のアドレス情報で、前記データの送信先を書き換えて第2のネットワークへ転送する第1の転送手段と、
前記第2のネットワークからデータを受信した場合、前記データに含まれる送信先を示す第2のアドレス情報から当該第2のアドレス情報を含む検索キー情報を生成し、前記第2の順序情報記憶手段が記憶する第2の順序情報及び前記検索キー情報に基づいて、二分探索法にて前記変換情報記憶手段から前記検索キー情報を含む変換情報を検索し、検索した変換情報に含まれる第1のアドレス情報を前記変換情報記憶手段から読み出して出力する第2の検索手段と、
前記第2の検索手段が出力した第1のアドレス情報で、前記データの送信元を書き換えて第1のネットワークへ転送する第2の転送手段と、
を備えたことを特徴とするデータ転送装置。
It is connected to a plurality of first networks that are transferred with first address information that can be uniquely identified, and a second network that is transferred with second address information that can be uniquely identified only within the network. A data transfer device for transferring data between the plurality of first networks and the second network,
Conversion information storage means for storing conversion information in which the first address information is associated with the second address information corresponding to the first address information;
When the first address information included in the plurality of pieces of conversion information stored in the conversion information storage unit is indicated by a numerical value, a first order that allows the conversion information to be referred to in order of the magnitude of the numerical value First order information storage means for storing information;
When the second address information included in the plurality of pieces of conversion information stored in the conversion information storage unit is indicated by a numerical value, a second order that allows the conversion information to be referred to in order of the magnitude of the numerical value Second order information storage means for storing information;
When data is received from any one of the plurality of first networks, search key information including the first address information is generated from first address information indicating a transmission destination included in the data, Based on the first order information stored in the first order information storage means and the search key information, the conversion information including the search key information is searched from the conversion information storage means by the binary search method , and the searched conversion is performed. First search means for reading out and outputting second address information included in the information from the conversion information storage means;
First transfer means for rewriting the transmission destination of the data with the second address information output by the first search means and transferring it to a second network;
When data is received from the second network, search key information including the second address information is generated from second address information indicating a transmission destination included in the data, and the second order information storage unit The conversion information including the search key information is searched from the conversion information storage means by a binary search method based on the second order information stored in the search information and the search key information, and the first information included in the searched conversion information Second search means for reading out and outputting address information from the conversion information storage means;
Second transfer means for rewriting the data source with the first address information output by the second search means and transferring the data to the first network;
A data transfer device comprising:
前記変換情報記憶手段が記憶する変換情報は、前記第1のIPアドレスと、前記第1のポート番号と、前記第2のIPアドレスと、前記第2のポート番号と、前記プロトコル番号とを含み、
前記第1のアドレス情報は、前記第1のIPアドレスと、前記第1のポート番号とを組
み合わせた情報であり、
前記第2のアドレス情報は、前記第2のIPアドレスと、前記第2のポート番号とを組
み合わせた情報であり、
前記検索キー情報は、前記第1のIPアドレスと、前記第1のポート番号と、前記プロ
トコル番号とを組み合わせた情報、あるいは前記第2のIPアドレスと、前記第2のポー
ト番号と前記プロトコル番号とを組み合わせた情報であり、
前記第1の順序情報は、
前記変換情報記憶手段が記憶する複数の変換情報に含まれる前記第1のアドレス情報と
前記プロトコル番号とを組み合わせた情報を数値で表した場合、当該数値の値の大きさの
順に前記変換情報を参照できるようにし、
前記第2の順序情報は、
前記変換情報記憶手段が記憶する複数の変換情報に含まれる前記第2のアドレス情報と
前期プロトコル番号とを組み合わせた情報を数値で表した場合、当該数値の値の大きさの
順に前記変換情報を参照できるようにする
ことを特徴とする請求項1に記載のデータ転送装置。
The conversion information stored in the conversion information storage means includes the first IP address, the first port number, the second IP address, the second port number, and the protocol number. ,
The first address information is information combining the first IP address and the first port number;
The second address information is information obtained by combining the second IP address and the second port number;
The search key information includes information combining the first IP address, the first port number, and the protocol number, or the second IP address, the second port number, and the protocol number. Is a combination of
The first order information is:
When information obtained by combining the first address information and the protocol number included in a plurality of pieces of conversion information stored in the conversion information storage unit is expressed by a numerical value, the conversion information is displayed in order of the magnitude of the numerical value. To be able to refer
The second order information is:
When information obtained by combining the second address information and the previous protocol number included in the plurality of pieces of conversion information stored in the conversion information storage unit is expressed by a numerical value, the conversion information is displayed in order of the magnitude of the numerical value. The data transfer device according to claim 1, wherein the data transfer device can be referred to.
受信するデータに含まれる送信先あるいは送信元のアドレス情報を他のアドレス情報へ変換して転送するデータ転送装置に具備されるアドレス情報検索回路であって、
アドレス情報と、当該アドレス情報に対応する前記他のアドレス情報とを対応付けた所定の個数の変換情報を、前記アドレス情報が示す数値が大きい順に記憶する記憶手段と、
一定周期でクロックを生成するクロック生成手段と、
前記アドレス情報を含む検索キー情報を入力する入力手段と、
最初のクロックにて、前記所定の個数の中央値が記録され、クロック周期ごとに内部に記憶している情報を出力する第1のレジスタと、
最初のクロックにて、零の値が記録され、クロック周期ごとに内部に記憶している情報を出力する第2のレジスタと、
最初のクロックにて、前記所定の個数の中央値を最大値とした場合の中央値が記録され、クロック周期ごとに、内部に記憶している情報を出力する第3のレジスタと、
クロック周期ごとに、前記第1のレジスタが出力する値と、前記第3のレジスタから出力される値との論理和を算出し、算出した論理和を第1の論理和として出力する第1の論理和演算手段と、
クロック周期ごとに、前記第2のレジスタから出力される値と、前記第3のレジスタから出力される値との論理和を算出し、算出した論理和を第2の論理和として出力する第2の論理和演算手段と、
クロック周期ごとに、前記第3のレジスタが出力する値を最大値とした場合の中央値を出力する中央値算出手段と、
クロック周期ごとに、前記記憶手段から第1のレジスタから出力される値に対応する順位の変換情報を読み出し、読み出した変換情報に含まれる検索対象部分を組み合わせた情報の数値が、前記入力手段が入力する前記検索キー情報が示す数値以下であるか否か、あるいは前記入力手段が入力する前記検索キー情報が示す数値に一致するか否かを判定する判定手段と、
クロック周期ごとに、前記第1の論理和演算手段が出力する第1の論理和、及び前記第2の論理和演算手段が出力する第2の論理和を記憶し、前記判定手段が、読み出した変換情報に含まれる検索対象部分を組み合わせた情報の数値が、前記入力手段が入力する前記検索キー情報が示す数値以下であると判定した場合、記憶している前記第1の論理和を前記第1のレジスタに記録し、前記判定手段が、前記変換情報に含まれる検索対象部分を組み合わせた情報の数値が、前記入力手段が入力する前記検索キー情報の数値以下でないと判定した場合、記憶している前記第2の論理和を前記第1のレジスタに記録する第1のセレクタと、
クロック周期ごとに、前記第1のレジスタから出力される値と、前記第2のレジスタから出力される値とを記憶し、前記判定手段が、読み出した変換情報に含まれる検索対象部分を組み合わせた情報の数値が、前記入力手段が入力する前記検索キー情報が示す数値以下であると判定した場合、記憶している前記第1のレジスタから出力される値を前記第2のレジスタに記録し、前記判定手段が、前記変換情報に含まれる検索対象部分を組み合わせた情報の数値が、前記入力手段が入力する前記検索キー情報が示す数値以下でないと判定した場合、記憶している前記第2のレジスタが出力した値を第2のレジスタに記録する第2のセレクタと、
クロック周期ごとに、前記中央値算出手段が算出した値を前記第3のレジスタに記録する第3のセレクタと、
前記判定手段が、前記変換情報に含まれる検索対象部分を組み合わせた情報の数値が、前記入力手段が入力する前記検索キー情報が示す数値に一致すると判定した場合、一致したことを示す情報とともに当該変換情報に含まれる他のアドレス情報を出力する出力手段と、
を備えたことを特徴とするアドレス情報検索回路。
An address information search circuit provided in a data transfer apparatus that converts address information of a transmission destination or a transmission source included in received data into other address information and transfers the information.
Storage means for storing a predetermined number of pieces of conversion information in which address information is associated with the other address information corresponding to the address information in descending order of numerical values indicated by the address information;
Clock generation means for generating a clock at a constant period;
Input means for inputting search key information including the address information;
A first register that records the predetermined number of median values at a first clock and outputs information stored therein every clock period;
A second register in which a value of zero is recorded at the first clock and the information stored therein is output every clock cycle;
A first register that records a median value when the predetermined number of median values is a maximum value, and outputs information stored therein for each clock cycle;
For each clock cycle, a logical sum of a value output from the first register and a value output from the third register is calculated, and the calculated logical sum is output as a first logical sum. OR operation means;
A second OR that calculates a logical sum of a value output from the second register and a value output from the third register for each clock cycle, and outputs the calculated logical sum as a second OR. OR operation means of
Median value calculating means for outputting a median value when the value output from the third register is set to the maximum value for each clock cycle;
For each clock cycle, the conversion information of the rank corresponding to the value output from the first register is read from the storage means, and the numerical value of the information combining the search target parts included in the read conversion information is the input means Determining means for determining whether or not the numerical value indicated by the search key information to be input is equal to or less than the numerical value indicated by the search key information input by the input means;
For each clock cycle, the first logical sum output by the first logical sum operation means and the second logical sum output by the second logical sum operation means are stored, and the determination means reads the first logical sum. When it is determined that the numerical value of the information combined with the search target portion included in the conversion information is equal to or less than the numerical value indicated by the search key information input by the input means, the stored first logical sum is calculated as the first logical sum. If the determination means determines that the numerical value of the information combined with the search target portion included in the conversion information is not less than or equal to the numerical value of the search key information input by the input means, stores the information. A first selector for recording the second logical sum in the first register;
For each clock period, the value output from the first register and the value output from the second register are stored, and the determination unit combines the search target portions included in the read conversion information When it is determined that the numerical value of the information is equal to or less than the numerical value indicated by the search key information input by the input means, the value output from the first register stored is recorded in the second register, When the determination means determines that the numerical value of the information combining the search target parts included in the conversion information is not less than or equal to the numerical value indicated by the search key information input by the input means, the stored second A second selector for recording the value output by the register in the second register;
A third selector for recording the value calculated by the median value calculation means in the third register for each clock cycle;
When the determination unit determines that the numerical value of the information combined with the search target portion included in the conversion information matches the numerical value indicated by the search key information input by the input unit, the information together with the information indicating the match Output means for outputting other address information included in the conversion information;
An address information search circuit comprising:
前記出力手段は、 前記所定の個数に応じた回数、クロック生成手段からクロックが生成された後に、前記判定手段が、前記変換情報に含まれる検索対象部分を組み合わせた情報の数値が、前記入力手段が入力する前記検索キー情報が示す数値が一致すると判定した場合、一致したことを示す情報とともに当該変換情報に含まれる他のアドレス情報を出力する
ことを特徴とする請求項に記載のアドレス情報検索回路。
The output means is configured such that, after the clock is generated from the clock generation means a number of times corresponding to the predetermined number, the determination means has a numerical value of information obtained by combining the search target portions included in the conversion information. The address information according to claim 3 , wherein when it is determined that the numerical values indicated by the search key information input by are coincident, other address information included in the conversion information is output together with information indicating the coincidence. Search circuit.
前記記憶手段は、アドレス情報と、当該アドレス情報に対応する前記他のアドレス情報とを対応付けた所定の個数の変換情報を記憶する変換情報記憶手段と、
前記変換情報記憶手段が記憶する所定の個数の変換情報に含まれる前記アドレス情報を数値で示した場合に、当該数値の値の大きさの順に前記変換情報を参照できるようにする順序情報を記憶する順序情報記憶手段と、
を備え、
前記判定手段は、
クロック周期ごとに、前記順序情報記憶手段から順序情報を読み出し、読み出した順序情報と、前記記憶手段から第1のレジスタから出力される値とに基づいて、前記変換情報記憶手段から変換情報を読み出し、読み出した変換情報に含まれる検索対象部分を組み合わせた情報の数値が、前記入力手段が入力する前記検索キー情報が示す数値以下であるか否か、あるいは前記入力手段が入力する前記検索キー情報が示す数値に一致するか否かを判定する
ことを特徴とする請求項に記載のアドレス情報検索回路。
The storage means stores conversion information storage means for storing a predetermined number of pieces of conversion information in which address information is associated with the other address information corresponding to the address information.
When the address information included in a predetermined number of pieces of conversion information stored by the conversion information storage unit is indicated by a numerical value, order information is stored so that the conversion information can be referred to in order of the magnitude of the numerical value. Order information storage means for performing,
With
The determination means includes
For each clock cycle, the order information is read from the order information storage means, and the conversion information is read from the conversion information storage means based on the read order information and the value output from the first register from the storage means. Whether the numerical value of the information combining the search target parts included in the read conversion information is equal to or less than the numerical value indicated by the search key information input by the input means, or the search key information input by the input means 4. The address information search circuit according to claim 3 , wherein the address information search circuit determines whether or not the numerical value matches the numerical value indicated by.
前記変換情報記憶手段が記憶する変換情報は、前記第1のIPアドレスと、前記第1のポート番号と、前記第2のIPアドレスと、前記第2のポート番号と、前記プロトコル番号とを含み、
前記アドレス情報は、前記第1のIPアドレスと、前記第1のポート番号とを組み合わせた情報であり、
前記他のアドレス情報は、前記第2のIPアドレスと、前記第2のポート番号とを組み合わせた情報であり、
前記検索キー情報及び前記変換情報に含まれる検索対象部分とは、前記第1のIPアドレスと、前記第1のポート番号と、前記プロトコル番号とを組み合わせた情報、あるいは前記第2のIPアドレスと、前記第2のポート番号と前記プロトコル番号とを組み合わせた情報であり、
前記順序情報は、
前記変換情報記憶手段が記憶する所定の個数の変換情報に含まれる前記アドレス情報及び前記プロトコル番号を組み合わせた情報を数値で示した場合に、当該数値の値の大きさの順に前記変換情報を参照できるようにする
ことを特徴とする請求項に記載のアドレス情報検索回路。
The conversion information stored in the conversion information storage means includes the first IP address, the first port number, the second IP address, the second port number, and the protocol number. ,
The address information is information that combines the first IP address and the first port number;
The other address information is information combining the second IP address and the second port number,
The search target part included in the search key information and the conversion information is information combining the first IP address, the first port number, and the protocol number, or the second IP address. , Information combining the second port number and the protocol number;
The order information is
When the combination of the address information and the protocol number included in the predetermined number of pieces of conversion information stored in the conversion information storage means is indicated by a numerical value, the conversion information is referred to in order of the magnitude of the numerical value. The address information search circuit according to claim 5 , wherein the address information search circuit is configured to be able to do this.
前記所定の個数は2のべき乗数であり、
前記記憶手段は、
前記変換情報記憶手段が記憶する前記変換情報の個数が前記所定の個数に満たない場合、2進数のビット列で数値で示した場合、全てのビットが1となる値の変換情報を前記所定の個数に対して不足する個数分、予め記憶し、前記変換情報記憶手段が記憶する前記変換情報の個数を所定の個数に合わせる
ことを特徴とする請求項からのいずれか1つに記載のアドレス情報検索回路。
The predetermined number is a power of 2;
The storage means
When the number of pieces of conversion information stored in the conversion information storage means is less than the predetermined number, when the numerical value is represented by a binary bit string, conversion information having a value in which all bits are 1 is the predetermined number. number fraction short of the stores in advance the address of any one of claims 3 to 6, the conversion information storage means, characterized in that to match the number of the conversion information stored in a predetermined number Information retrieval circuit.
前記記憶手段は、
送信先のアドレス情報の変換の際に参照される変換情報と、送信元のアドレス情報の変換の際に参照される変換情報とを記憶することを特徴とする請求項からのいずれか1つに記載のアドレス情報検索回路。
The storage means
A conversion information is referred to when the conversion of the destination address information, claim 3 to 7, characterized in that for storing the conversion information is referred to when the conversion of the transmission source address information 1 Address information search circuit described in 1.
追加する変換情報を入力する変換情報追加手段を備え、
前記入力手段は、
前記変換情報追加手段が入力する変換情報に含まれるアドレス情報を入力し、
前記変換情報追加手段は、
前記所定の個数に応じた回数、クロック生成手段からクロックが生成された後に、前記第1のレジスタに記憶されている値を参照し、追加する変換情報を読み出した値に基づいて、前記記憶手段に記録する
ことを特徴とする請求項からのいずれか1つに記載のアドレス情報検索回路。
A conversion information adding means for inputting conversion information to be added;
The input means includes
Input address information included in the conversion information input by the conversion information adding means,
The conversion information adding means includes
After the clock is generated from the clock generation means a number of times corresponding to the predetermined number, the storage means is referred to based on the value read from the conversion information to be added with reference to the value stored in the first register. address information search circuit according to any one of claims 3 to 8, characterized in that to record the.
前記記憶手段は、
前記変換情報を記憶する第1の領域と、前記第1の領域と同じ内容の情報が記憶され、前記変換情報が追加あるいは削除される際に、書き換えが行われる第2の領域とを有し、
前記変換情報追加手段は、
入力する変換情報を前記第2の領域に追加して記録し、前記第2の領域の内容で、前記第1の領域を書き換える
ことを特徴とする請求項からのいずれか1つに記載のアドレス情報検索回路。
The storage means
A first area for storing the conversion information; and a second area in which information having the same contents as the first area is stored and rewriting is performed when the conversion information is added or deleted. ,
The conversion information adding means includes
Conversion information to be input and recorded in addition to the second region, according to the contents of the second region, any one of claims 3 9, characterized in that rewriting the first region Address information retrieval circuit.
一意に識別可能な第1のアドレス情報で転送が行われる複数の第1のネットワークと、ネットワーク内でのみ一意に識別可能な第2のアドレス情報で転送が行われる第2のネットワークとに接続され、前記複数の第1のネットワークと第2のネットワークとの間でデータを転送し、第1のアドレス情報と、当該第1のアドレス情報に対応する前記第2のアドレス情報とを対応付けた変換情報を記憶する変換情報記憶手段と、前記変換情報記憶手段が記憶する複数の変換情報に含まれる前記第1のアドレス情報を数値で示した場合、当該数値の値の大きさの順に前記変換情報を参照できるようにする第1の順序情報を記憶する第1の順序情報記憶手段と、前記変換情報記憶手段が記憶する複数の変換情報に含まれる前記第2のアドレス情報を数値で示した場合、当該数値の値の大きさの順に前記変換情報を参照できるようにする第2の順序情報を記憶する第2の順序情報記憶手段と、を備えたデータ転送装置におけるアドレス情報検索方法であって、
前記複数の第1のネットワークのいずれか1つからデータを受信した場合、前記データに含まれる送信先を示す第1のアドレス情報から当該第1のアドレス情報を含む検索キー情報を生成するステップと、
前記第1の順序情報記憶手段が記憶する第1の順序情報及び前記検索キー情報に基づいて、二分探索法にて前記変換情報記憶手段から前記検索キー情報を含む変換情報を検索するステップと、
検索した変換情報に含まれる第2のアドレス情報を前記変換情報記憶手段から読み出して出力するステップと、
出力した第2のアドレス情報で、前記データの送信先を書き換えて第2のネットワークへ転送するステップと、
前記第2のネットワークからデータを受信した場合、前記データに含まれる送信先を示す第2のアドレス情報から当該第2のアドレス情報を含む検索キー情報を生成するステップと、
前記第2の順序情報記憶手段が記憶する第2の順序情報及び前記検索キー情報に基づいて、二分探索法にて前記変換情報記憶手段から前記検索キー情報を含む変換情報を検索するステップと、
検索した変換情報に含まれる第1のアドレス情報を前記変換情報記憶手段から読み出して出力するステップと、
出力した第1のアドレス情報で、前記データの送信元を書き換えて第1のネットワークへ転送するステップと、
を含むことを特徴とするアドレス情報検索方法。
It is connected to a plurality of first networks that are transferred with first address information that can be uniquely identified, and a second network that is transferred with second address information that can be uniquely identified only within the network. , Conversion that transfers data between the plurality of first networks and the second network, and associates the first address information with the second address information corresponding to the first address information When the conversion information storage means for storing information and the first address information included in the plurality of pieces of conversion information stored in the conversion information storage means are represented by numerical values, the conversion information in the order of the magnitude of the numerical values. The first order information storage means for storing the first order information that makes it possible to refer to the number, and the second address information included in the plurality of pieces of conversion information stored in the conversion information storage means In this case, the address information search in the data transfer device includes second order information storage means for storing second order information that enables the conversion information to be referred to in order of the magnitude of the numerical value. A method,
When receiving data from any one of the plurality of first networks, generating search key information including the first address information from first address information indicating a transmission destination included in the data; ,
Searching conversion information including the search key information from the conversion information storage means by a binary search method based on the first order information stored in the first order information storage means and the search key information;
Reading and outputting the second address information contained in the searched conversion information from the conversion information storage means;
Rewriting the transmission destination of the data with the output second address information and transferring it to the second network;
When receiving data from the second network, generating search key information including the second address information from second address information indicating a transmission destination included in the data;
Searching conversion information including the search key information from the conversion information storage means by a binary search method based on the second order information stored in the second order information storage means and the search key information;
Reading out and outputting first address information included in the retrieved conversion information from the conversion information storage means;
Rewriting the source of the data with the output first address information and transferring it to the first network;
A method for retrieving address information, comprising:
受信するデータに含まれる送信先あるいは送信元のアドレス情報を他のアドレス情報へ変換して転送するデータ転送装置に具備され、一定周期でクロックを生成し、アドレス情報と、当該アドレス情報に対応する前記他のアドレス情報とを対応付けた所定の個数の変換情報を、前記アドレス情報が示す数値が大きい順に記憶する記憶手段を備えたアドレス情報検索回路におけるアドレス情報検索方法であって、
前記アドレス情報を含む検索キー情報を入力するステップと、
最初のクロックにて、前記所定の個数の中央値を第1のレジスタに記録するステップと、
最初のクロックにて、零の値を第2のレジスタに記録するステップと、
最初のクロックにて、前記所定の個数の中央値を最大値とした場合の中央値を第3のレジスタに記録するステップと、
クロック周期ごとに、前記第1のレジスタが出力する値と、前記第3のレジスタから出力される値との論理和を算出するステップと、
算出した論理和を第1の論理和として出力するステップと、
クロック周期ごとに、前記第2のレジスタから出力される値と、前記第3のレジスタから出力される値との論理和を算出し、算出した論理和を第2の論理和として出力するステップと、
クロック周期ごとに、前記第3のレジスタが出力する値を最大値とした場合の中央値を出力し第3のセレクタに記録するステップと、
クロック周期ごとに、前記記憶手段から第1のレジスタから出力される値に対応する順位の変換情報を読み出し、読み出した変換情報に含まれる検索対象部分を組み合わせた情報の数値が、入力される前記検索キー情報が示す数値以下であるか否か、あるいは前記入力手段が入力する前記検索キー情報が示す数値に一致するか否かを判定するステップと、
クロック周期ごとに、前記第1の論理和、及び前記第2の論理和を第1のセレクタに記録するステップと、
読み出した変換情報に含まれる検索対象部分を組み合わせた情報の数値が、入力される前記検索キー情報が示す数値以下であると判定した場合、前記第1のセレクタが前記第1の論理和を前記第1のレジスタに記録するステップと、
前記変換情報に含まれる検索対象部分を組み合わせた情報の数値が、入力される前記検索キー情報の数値以下でないと判定した場合、前記第1のセレクタが前記第2の論理和を前記第1のレジスタに記録するステップと、
クロック周期ごとに、前記第1のレジスタから出力される値と、前記第2のレジスタから出力される値とを第2のセレクタに記録するステップと、
読み出した変換情報に含まれる検索対象部分を組み合わせた情報の数値が、入力される前記検索キー情報が示す数値以下であると判定した場合、前記第2のセレクタが前記第1のレジスタから出力される値を前記第2のレジスタに記録するステップと、
前記変換情報に含まれる検索対象部分を組み合わせた情報の数値が、入力される前記検索キー情報が示す数値以下でないと判定した場合、前記第2のセレクタが前記第2のレジスタが出力した値を第2のレジスタに記録するステップと、
クロック周期ごとに、前記第3のセレクタが前記第3のレジスタが出力する値を最大値とした場合の中央値を前記第3のレジスタに記録するステップと、
前記変換情報に含まれる検索対象部分を組み合わせた情報の数値が、入力される前記検索キー情報が示す数値に一致すると判定した場合、一致したことを示す情報とともに当該変換情報に含まれる他のアドレス情報を出力するステップと、
を含むことを特徴とするアドレス情報検索方法。
Provided in a data transfer device that converts destination address information included in received data or source address information into another address information and transfers it, generates a clock at a fixed period, and corresponds to the address information and the address information. An address information search method in an address information search circuit comprising a storage means for storing a predetermined number of pieces of conversion information associated with the other address information in descending order of numerical values indicated by the address information,
Inputting search key information including the address information;
Recording the predetermined number of medians in a first register at a first clock;
Recording a zero value in a second register at a first clock;
Recording a median value in a first register when the predetermined number of median values is a maximum value in a third register;
Calculating a logical sum of a value output from the first register and a value output from the third register for each clock cycle;
Outputting the calculated logical sum as a first logical sum;
Calculating a logical sum of a value output from the second register and a value output from the third register for each clock cycle, and outputting the calculated logical sum as a second logical sum; ,
Outputting a median value when the value output from the third register is a maximum value for each clock cycle, and recording it in a third selector;
For each clock cycle, the conversion information of the rank corresponding to the value output from the first register is read from the storage means, and the numerical value of the information combining the search target parts included in the read conversion information is input. Determining whether or not it is equal to or less than a numerical value indicated by search key information, or whether or not it matches a numerical value indicated by the search key information input by the input means;
Recording the first logical sum and the second logical sum in a first selector for each clock period;
When it is determined that the numerical value of the information combining the search target portions included in the read conversion information is equal to or smaller than the numerical value indicated by the input search key information, the first selector calculates the first logical sum. Recording in a first register;
When it is determined that the numerical value of the information combining the search target parts included in the conversion information is not less than or equal to the numerical value of the input search key information, the first selector calculates the second logical sum. Recording to a register;
Recording a value output from the first register and a value output from the second register in a second selector for each clock period;
When it is determined that the numerical value of the information combining the search target portions included in the read conversion information is equal to or less than the numerical value indicated by the input search key information, the second selector is output from the first register. Recording a value in the second register;
When it is determined that the numerical value of the information combined with the search target portion included in the conversion information is not less than or equal to the numerical value indicated by the input search key information, the second selector outputs the value output from the second register. Recording in a second register;
Recording a median value in the third register when the value output from the third register is the maximum value by the third selector in each clock cycle;
When it is determined that the numerical value of the information obtained by combining the search target parts included in the conversion information matches the numerical value indicated by the input search key information, another address included in the conversion information together with the information indicating the match Outputting information; and
A method for retrieving address information, comprising:
JP2005301691A 2005-10-17 2005-10-17 Data transfer device, address information search circuit, and address information search method Expired - Fee Related JP4642628B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005301691A JP4642628B2 (en) 2005-10-17 2005-10-17 Data transfer device, address information search circuit, and address information search method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005301691A JP4642628B2 (en) 2005-10-17 2005-10-17 Data transfer device, address information search circuit, and address information search method

Publications (2)

Publication Number Publication Date
JP2007110613A JP2007110613A (en) 2007-04-26
JP4642628B2 true JP4642628B2 (en) 2011-03-02

Family

ID=38036086

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005301691A Expired - Fee Related JP4642628B2 (en) 2005-10-17 2005-10-17 Data transfer device, address information search circuit, and address information search method

Country Status (1)

Country Link
JP (1) JP4642628B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5682010B2 (en) * 2011-08-15 2015-03-11 株式会社日立製作所 Network system and transfer control identifier assignment method
WO2017183658A1 (en) * 2016-04-22 2017-10-26 Ricoh Company, Ltd. Network apparatus, input and output apparatus, and program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000341313A (en) * 1999-05-26 2000-12-08 Oki Electric Ind Co Ltd Device and method for repeating packet
JP2001237879A (en) * 2000-02-22 2001-08-31 Nec Corp Terminal, repeater, communication method and recoding medium with recorded communication program
JP2005198285A (en) * 2003-12-31 2005-07-21 Stmicroelectronics Inc Apparatus and method using hashing for efficiently implementing ip lookup solution in hardware

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09247202A (en) * 1996-03-07 1997-09-19 Fujitsu Ltd Node equipment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000341313A (en) * 1999-05-26 2000-12-08 Oki Electric Ind Co Ltd Device and method for repeating packet
JP2001237879A (en) * 2000-02-22 2001-08-31 Nec Corp Terminal, repeater, communication method and recoding medium with recorded communication program
JP2005198285A (en) * 2003-12-31 2005-07-21 Stmicroelectronics Inc Apparatus and method using hashing for efficiently implementing ip lookup solution in hardware

Also Published As

Publication number Publication date
JP2007110613A (en) 2007-04-26

Similar Documents

Publication Publication Date Title
CN101819580B (en) System for forwarding packets with identifiers using exact-match lookup engine
JP2003152782A (en) System for retrieving packet destination
US11182365B2 (en) Systems and methods for distributed storage of data across multiple hash tables
JP2005117171A (en) Packet transfer apparatus
CN106790762A (en) Domain name analytic method and device
JP2005242997A (en) Data retrieval device and method
JP2002051072A (en) Packet processing processor
JP4642628B2 (en) Data transfer device, address information search circuit, and address information search method
JP7082211B2 (en) Network address translation
JP4369505B2 (en) Information search apparatus and information search method
JP3190700B2 (en) Address translator
JP3558151B2 (en) Data search circuit
JP2014137415A (en) Multiple-length integer arithmetic operation device, multiple-length integer arithmetic operation method, and program
JP3660311B2 (en) Table search apparatus and method, program, and recording medium
JP3795881B2 (en) Table search method and apparatus
JP2013038536A (en) Semiconductor device
US8199756B2 (en) Forwarding apparatus, forwarding method, and computer product
JP6907903B2 (en) Packet identification device and method
CA1312957C (en) Apparatus for processing bit streams
JP2012249181A (en) Address conversion device and log reducing device
JP6495343B2 (en) Find item matches in list
JP2011244132A (en) Router and route storage method
WO2019105276A1 (en) Data access method, memory and processor
JP2681342B2 (en) Table update method for gateway device
JPH1051480A (en) Protocol processing system for gateway equipment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100608

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100721

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101201

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

Free format text: PAYMENT UNTIL: 20131210

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees