JP2004056340A - Ip flow multistage hash apparatus, ip flow multistage hash method, ip flow multistage hash program, and recording medium therefor - Google Patents

Ip flow multistage hash apparatus, ip flow multistage hash method, ip flow multistage hash program, and recording medium therefor Download PDF

Info

Publication number
JP2004056340A
JP2004056340A JP2002209282A JP2002209282A JP2004056340A JP 2004056340 A JP2004056340 A JP 2004056340A JP 2002209282 A JP2002209282 A JP 2002209282A JP 2002209282 A JP2002209282 A JP 2002209282A JP 2004056340 A JP2004056340 A JP 2004056340A
Authority
JP
Japan
Prior art keywords
address
destination
source
flow
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2002209282A
Other languages
Japanese (ja)
Other versions
JP3711965B2 (en
Inventor
Hiroaki Shimozu
下津 博昭
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2002209282A priority Critical patent/JP3711965B2/en
Publication of JP2004056340A publication Critical patent/JP2004056340A/en
Application granted granted Critical
Publication of JP3711965B2 publication Critical patent/JP3711965B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To solve the problem of a conventional technology that many tables are consumed although meticulous control is attained when the unit for flows registered in flow tables is made finer while the number of tables to be consumed is decreased but meticulous control is made impossible when a coarser unit is adopted for flows. <P>SOLUTION: In a hash table registering the flows or a set of flows of IP packets, a flow set decided (identified) only by a destination IP address and a flow set decided by a combination of a destination IP address and a sender IP address are intermingled, and in a hash table configuration for an L3 switch 10 (router), flows where meticulous preferential control processing is desired and flows where coarse control is desired are intermingled. When hash values are dispersed by using two hash keys at a time, first, one hash key calculates a hash value and then the hash value is calculated by using two hash keys. The number of steps of lists for the same hash value can thus be suppressed. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、ネットワーク中継装置において、送信先ポートを決定するハッシュテーブルの制御に関し、特にフローの持つ特性に従い、宛先IPアドレスのみによるハッシュ情報と宛先IPアドレスと送信元IPアドレスとを組にしたハッシュ情報とを切り分けて送信先ポートの決定を行うIPフロー多段ハッシュ装置、IPフロー多段ハッシュ方法、IPフロー多段ハッシュプログラム及びその記録媒体に関する。
【0002】
【従来の技術】
IP(Internet Protocol)層で転送(フォワーディング、ルーティング)を行う装置をルータと呼ぶ。ルータは複数のネットワーク同士やネットワークと端末間で高速にデータの転送を行う際のネットワーク中継装置であり、その内部にデータを転送する宛先向けの経路を選定するテーブルを備えている。ルータはデータを受信するとそのデータからIP層のIPヘッダを参照して経路を選定するテーブルをもとに転送先を決定する。
【0003】
近年、この転送をソフトウェアではなくハードウェア(ASICと呼ばれるチップ)によって高速に行う装置が利用されてきていて、その一つにL3スイッチがある。
【0004】
ルータは配置された場所によって期待される役割が異なる。一般的には、ネットワークのコア(バックボーン)側に配置されたルータでは、細かな制御はそれほど必要ではなく、大量のパケットを高速に処理する役割がある。細かな制御とは、例えば不要なパケットの廃棄を行うフィルタリングやフローの優先度に基づくサービス品質を反映したQoS(Quality of Service)制御などを指す。
【0005】
一方、端末の接続されたエッジ側に配置されたルータは、大量のパケットを処理する必要はないが、フィルタリングやQoSなどの細かな制御を行う役割が必要とされる。
【0006】
高速転送を行うためのテーブルによって、IPのフロー(または複数のフローの集合)単位に、送信先の中継ルータ等の宛先決定をして宛先に対応する送出ポートの選択をするルータ装置について考えてみる。
【0007】
このような装置では、高速に宛先IPアドレスを検索するための1つとして、例えばIPアドレスを構成する先頭ビットからそのビットのオン、オフによって二分木構造にIPアドレスを分割して管理することで宛先を検索する方法がある。
【0008】
宛先のIPアドレスやネットワークアドレスをハッシュしたハッシュテーブルからハードウェアによって高速に宛先を検索し、検索に失敗するとソフトウェアによってニ分木構造による検索を行う方法もある。以降、このハッシュによる高速転送用のテーブルを、フローテーブルと呼ぶことにする。
【0009】
この種の従来技術として特開2000−138688には、受信したパケットから抽出した宛先IPアドレスに基づいて最大ビットのネットマスク値を1ビットずつ減算しながらネットワークアドレスを求め、宛先ネットワークアドレスとルータの転送先送出ポートを組にしたテーブルを検索して該当する転送先送出ポートを決定するという内容が記載されている。
【0010】
【発明が解決しようとする課題】
このフローテーブルによる検索において、従来の問題点は以下のようである。
【0011】
フローテーブルに登録するフローの単位を細かくすると、前述したような細かな制御が可能となるが、大量のテーブルを消費してしまう。逆にフローの単位を大まかにすると消費するテーブル個数は少なくて済むが、細かな制御が不可能になってしまうという問題がある。
【0012】
二分木とフローテーブルとを前述したように両方使用する検索方法の場合、テーブルを大量に使用すると、メモリを大量に消費するので装置毎に使用する量の上限がある。上限に達すると高速転送は不可能となり、低速な二分木による転送を使用することになってしまう。L3スイッチにおいては、フローテーブルの検索はハードウェアで行い、二分木検索はソフトウェアで行う場合が一般的であり、この場合の速度差は桁違いである。
【0013】
ユーザの使い方によっては、コア側のルータであっても一部細かな制御したい場合や、エッジ側のルータであっても(メモリを消費せず)大量にパケットを扱いたい要求があった。
【0014】
まず、フローテーブル中に登録するIPアドレスの個数をより少なくする方法を考えてみる。フローテーブルに登録するIPアドレスにハッシュを用いる場合、フローテーブルのIPアドレスの使用個数を削減するためにネットマスク(ネットワークアドレス)を使用するのは以下の理由で困難である。
【0015】
IPパケット受信時にIPヘッダから宛先IPアドレスを取り出しハッシュしてフローテーブルの検索開始位置(ハッシュ位置)を計算するとき、宛先IPアドレス全体を使用する場合には、この宛先IPアドレスと同じ宛先ネットワークのネットワークアドレスによるハッシュ位置とは同じにならない可能性が高い。このようにネットマスク(ネットワークアドレス)を使用することで、フローテーブルに登録するIPアドレスの個数を削減する試みは無意味となる。例えば、ネットマスクをルータ装置全体で一つにしてしまえば問題は回避できるが、可変長ネットマスクが一般的な現在において、現実的でない。
【0016】
特開2000−138688では、何度もハッシュ計算することで回避しているが、複数回のハッシュ計算による速度低下が否めない。
【0017】
よって、フローテーブルへの登録におけるネットマスク(ネットワークアドレス)を使用してIPアドレスの個数を少なくする方法は採用できないので、宛先IPアドレスは必ず4バイト全体をハッシュ計算に使用せざるを得ない。
【0018】
ところで、宛先IPアドレスだけの登録では、例えば、同じ宛先IPアドレスへの送信パケットであっても、ある送信元IPアドレスのパケットは転送し、別の送信元IPアドレスのパケットは破棄するといった制御を、フローテーブルだけで決定することができない。すなわち、送信元IPアドレスを考慮した破棄(フィルタリング)、優先制御(QoS制御)等を行うことができない。
【0019】
特開平6−152655にはこのフィルタリングや流量制御等の問題を宛先と送信元のアドレスを組にしてルータのアドレステーブルに登録することで解決する内容が記載されているが、前述したフローテーブルへの登録IPアドレス数の増加についての対策は考慮されていない。
【0020】
そこで、本発明は、フローテーブルに宛先IPアドレスのみからなるテーブルと宛先IPアドレスと送信元IPアドレスの組からなるテーブルとを設け、フローの内容に応じて2つのテーブルを使い分け、段階的に送信元IPアドレスやL4ポート番号を追加登録していくことで、きめ細かなフロー制御を行うとともにフローテーブルの増大を防ぎ、上記問題の解決を図るIPフロー多段ハッシュ装置、IPフロー多段ハッシュ方法、IPフロー多段ハッシュプログラム及びその記録媒体を提供するものである。
【0021】
【課題を解決するための手段】
本発明の第1のIPフロー多段ハッシュ装置は、受信したIPパケットをQoS情報と送出ポートを含む転送制御情報が登録されたフローテーブルを参照して中継する転送手段と、前記フローテーブルへの前記転送制御情報の登録を行う登録手段と、を含み、
前記登録手段は、前記IPパケットを受信すると、予め定義され、1つのエントリが宛先IPアドレスと送信元IPアドレスとQoS情報から構成されるQoSテーブルを前記IPパケットの有する前記宛先IPアドレスと前記送信元IPアドレスの組でサーチし、一致するエントリがないと、前記フローテーブルに前記宛先アドレスをハッシュしハッシュ値先に前記宛先IPアドレスの登録を行い、一致するエントリがあると、前記宛先IPアドレスと送信元IPアドレスの組をハッシュしてハッシュ値先に前記宛先IPアドレスと送信元IPアドレスの組を登録することを備える。
【0022】
本発明の第2のIPフロー多段ハッシュ装置は、受信したIPパケットをQoS情報と送出ポートを含む転送制御情報が登録されたフローテーブルを参照して中継する転送手段と、前記フローテーブルへの前記転送制御情報の登録を行う登録手段と、を含み、
前記登録手段は、前記フローテーブルを、第1のテーブルと第2のテーブルとに区分し、
前記第1のテーブルには、前記IPパケットの宛先IPアドレスをハッシュし、そのハッシュ値先に前記第1または第2のテーブルへのリンクをマークビットによって示し、前記宛先IPアドレスと前記QoS情報と前記送出ポートとが記述された0個以上の同一ハッシュ値を持つエントリを登録し、
前記第2のテーブルには、前記IPパケットの宛先IPアドレスと送信元IPアドレスを組にしてハッシュし、そのハッシュ値先に前期宛先IPアドレスと送信元IPアドレスの組と前記QoS情報と前記送出ポートとが記述された0個以上の同一ハッシュ値を持つエントリを登録し、
前記転送手段は、前記IPパケットを受信すると、前記宛先IPアドレスをハッシュして前記第1のテーブルのハッシュ値先をアクセスし、前記マークビットを参照し前記第1のテーブルへのリンクを検出すると、前記宛先IPアドレスによって前記第1のテーブルのハッシュ値先にリンクされた前記エントリをサーチし、一致する前記エントリを検出すると、該エントリに記述された前記QoS情報と前記送出ポートとに従い、前記IPパケットの中継を行い、
前記マークビットを参照し前記第2のテーブルへのリンクを検出すると、前記宛先IPアドレスと送信元IPアドレスの組をハッシュして前記第2のテーブルのハッシュ値先をアクセスし、ハッシュ値先にリンクされた前記エントリから同一の前記宛先IPアドレスと送信元IPアドレスの組を有する前記エントリをサーチし、一致する前記エントリを検出すると該エントリに記述された前記QoS情報と前記送出ポートとに従い、前記IPパケットの中継を行うことを備える。
【0023】
本発明の第3のIPフロー多段ハッシュ装置は、第1、第2または第3の発明において、前記転送手段は、前記IPパケットを受信すると、前記宛先IPアドレスによる前記第1のテーブルの前記エントリの検索の実行、または前記宛先IPアドレスと送信元IPアドレスの組による前記第2のテーブルの前記エントリの検索を実行し、一致する前記エントリがないと前記登録手段に通知することを備える。
【0024】
本発明の第4のIPフロー多段ハッシュ装置は、第1または第2の発明において、前記登録手段は、前記通知を受けると、前記宛先IPアドレス、前記送信元IPアドレス、前記QoS情報を含むQoSテーブルを前記受信したIPパケットのフローを特定する前記宛先IPアドレスと送信元IPアドレスを組にしてサーチし、一致するフローの登録があれば、前記宛先IPアドレスと送信元IPアドレスの組を前記第2のテーブルに登録し、前記宛先IPアドレスと送信元IPアドレスの組と一致するフローの登録がないと、前記宛先IPアドレスを前記第1のテーブルに登録することを備える。
【0025】
本発明の第5のIPフロー多段ハッシュ装置は、受信したIPパケットをQoS情報と送出ポートを含む転送制御情報が登録されたフローテーブルを参照して中継する転送手段と、前記フローテーブルへの転送制御情報の登録を行う登録手段と、を含み、
前記登録手段は、前記フローテーブルを、第1のテーブルと第2のテーブルと第3のテーブルに区分し、
前記第1のテーブルには、前記IPパケットの宛先IPアドレスをハッシュし、そのハッシュ値先に前記第1または前記第2または前記第3のテーブルへのリンクをマークビットによって示し、前記宛先IPアドレスと前記QoS情報と前記送出ポートとが記述された0個以上の同一ハッシュ値を持つエントリを登録し、
前記第2のテーブルには、前記IPパケットの宛先IPアドレスと送信元IPアドレスを組にしてハッシュし、そのハッシュ値先に前期宛先IPアドレスと送信元IPアドレスの組と前記QoS情報と前記送出ポートとが記述された0個以上の同一ハッシュ値を持つエントリを登録し、
前記第3のテーブルには、前記IPパケットの宛先IPアドレスと送信元IPアドレスとプロトコル番号と宛先ポート番号と送信元ポート番号を組にしてハッシュし、そのハッシュ値先に前期宛先IPアドレスと送信元IPアドレスとプロトコル番号と宛先ポート番号と送信元ポート番号の組と前記QoS情報と前記送出ポートとが記述された0個以上の同一ハッシュ値を持つエントリを登録し、
前記転送手段は、前記IPパケットを受信すると、前記宛先IPアドレスをハッシュして前記第1のテーブルをアクセスし、アクセスの結果、前記第2のテーブルへのリンクを検出すると、前記宛先IPアドレスと送信元IPアドレスの組をハッシュして前記第2のテーブルをアクセスし、アクセス先の前記エントリから同一の前記宛先IPアドレスと送信元IPアドレスの組を有する前記エントリをサーチし、一致する前記エントリを検出すると該エントリに記述された前記QoS情報と前記送出ポートとに従って前記IPパケットの中継を行い、
前記転送手段は、前記IPパケットを受信すると、前記宛先IPアドレスをハッシュして前記第1のテーブルをアクセスし、アクセスの結果、前記第3のテーブルへのリンクを検出すると、前記宛先IPアドレスと送信元IPアドレスとプロトコル番号と宛先ポート番号と送信元ポート番号の組をハッシュして前記第3のテーブルをアクセスし、アクセス先の前記エントリから同一の前記宛先IPアドレスと送信元IPアドレスとプロトコル番号と宛先ポート番号と送信元ポート番号の組を有する前記エントリをサーチし、一致する前記エントリを検出すると該エントリに記述された前記QoS情報と前記送出ポートとに従って前記IPパケットの中継を行うことを備える。
【0026】
本発明の第1のIPフロー多段ハッシュ方法は、受信したIPパケットをQoS情報と送出ポートを含む転送制御情報が登録されたフローテーブルを参照して送信先に中継する第1のステップと、
前記第1のステップにおいて前記フローテーブルに前記送信先の登録が無いと、前記送信先の登録を行う登録手段を呼び出す第2のステップと、
前記登録手段は前記呼び出しを受けると、前記IPパケットの宛先IPアドレスと送信元アドレスの組を元に、宛先IPアドレスと送信元IPアドレスとQoS情報を含むフローについてのQoSを定義したQoSテーブルをサーチし、一致するしないのマッチング情報とQoS情報とを取り出す第3のステップと、
前記宛先IPアドレスによって前記フローテーブルに前記送信先の登録を行うか、前記宛先IPアドレスと送信元IPアドレスの組によって前記送信先の登録を行うかを前記マッチング情報から決定する第4のステップと、
宛先IPアドレスからルーティングテーブルを参照して送出ポートを取り出す第5のステップと、
前記宛先IPアドレスによって前記送信先を登録する場合、前記宛先IPアドレスをハッシュして前記フローテーブルの第1のテーブルをアクセスし、そのハッシュ値先に前記宛先IPアドレスと前記QoS情報と前記送出ポートとを登録し、
前記宛先IPアドレスと送信元IPアドレスの組で前記送信先を登録する場合、前記宛先IPアドレスをハッシュして前記第1のテーブルをアクセスしハッシュ値先に前記フローテーブルの第2のテーブルへのリンクを記すとともに、前記宛先IPアドレスと送信元IPアドレスの組をハッシュして前記第2のテーブルをアクセスし、そのハッシュ値先に前期宛先IPアドレスと送信元IPアドレスの組と前記QoS情報と前記送出ポートとを登録する第6のステップと、
を備える。
【0027】
本発明の第1のIPフロー多段ハッシュプログラムは、コンピュータに、
受信したIPパケットをQoS情報と送出ポートを含む転送制御情報が登録されたフローテーブルを参照して送信先に中継する第1のステップと、
前記第1のステップにおいて前記フローテーブルに前記送信先の登録が無いと、前記送信先の登録を行う登録手段を呼び出す第2のステップと、
前記登録手段は前記呼び出しを受けると、前記IPパケットの宛先IPアドレスと送信元アドレスの組を元に、前記宛先IPアドレスと前記送信元IPアドレスとQoS情報を含むフローについてのQoSを定義したQoSテーブルをサーチし、一致するしないのマッチング情報とQoS情報とを取り出す第3のステップと、
前記宛先IPアドレスによって前記フローテーブルに前記送信先の登録を行うか、前記宛先IPアドレスと送信元IPアドレスの組によって前記送信先の登録を行うかを前記マッチング情報から決定する第4のステップと、
宛先IPアドレスからルーティングテーブルを参照して送出ポートを取り出す第5のステップと、
前記宛先IPアドレスによって前記送信先を登録する場合、前記宛先IPアドレスをハッシュして前記フローテーブルの第1のテーブルをアクセスし、そのハッシュ値先に前記宛先IPアドレスと前記QoS情報と前記送出ポートとを登録し、
前記宛先IPアドレスと送信元IPアドレスの組で前記送信先を登録する場合、前記宛先IPアドレスをハッシュして前記第1のテーブルをアクセスしハッシュ値先に前記フローテーブルの第2のテーブルへのリンクを記すとともに、前記宛先IPアドレスと送信元IPアドレスの組をハッシュして前記第2のテーブルをアクセスし、そのハッシュ値先に前期宛先IPアドレスと送信元IPアドレスの組と前記QoS情報と前記送出ポートとを登録する第6のステップと、
を実行させる。
【0028】
本発明の第2のIPフロー多段ハッシュプログラムは、受信したIPパケットをQoS情報と送出ポートを含む転送制御情報が登録されたフローテーブルを参照して送信先に中継するコンピュータに実行させるプログラムであって、
前記IPパケットの宛先IPアドレスと送信元アドレスの組を元に、前記宛先IPアドレスと前記送信元IPアドレスとQoS情報を含むフローについてのQoSを定義したQoSテーブルをサーチし、一致するしないのマッチング情報とQoS情報とを取り出す第1のステップと、
前記宛先IPアドレスによって前記フローテーブルに前記送信先の登録を行うか、前記宛先IPアドレスと送信元IPアドレスの組によって前記送信先の登録を行うかを前記マッチング情報から決定する第2のステップと、
宛先IPアドレスからルーティングテーブルを参照して送出ポートを取り出す第3のステップと、
前記宛先IPアドレスによって前記送信先を登録する場合、前記宛先IPアドレスをハッシュして前記フローテーブルの第1のテーブルをアクセスし、そのハッシュ値先に前記宛先IPアドレスと前記QoS情報と前記送出ポートとを登録し、
前記宛先IPアドレスと送信元IPアドレスの組で前記送信先を登録する場合、前記宛先IPアドレスをハッシュして前記第1のテーブルをアクセスしハッシュ値先に前記フローテーブルの第2のテーブルへのリンクを記すとともに、前記宛先IPアドレスと送信元IPアドレスの組をハッシュして前記第2のテーブルをアクセスし、そのハッシュ値先に前期宛先IPアドレスと送信元IPアドレスの組と前記QoS情報と前記送出ポートとを登録する第4のステップと、
を備える。
【0029】
本発明の第1の記録媒体は、コンピュータに、受信したIPパケットをQoS情報と送出ポートを含む転送制御情報が登録されたフローテーブルを参照して送信先に中継する第1のステップと、
前記第1のステップにおいて前記フローテーブルに前記送信先の登録が無いと、前記送信先の登録を行う登録手段を呼び出す第2のステップと、
前記登録手段は前記呼び出しを受けると、前記IPパケットの宛先IPアドレスと送信元アドレスの組を元に、前記宛先IPアドレスと前記送信元IPアドレスとQoS情報を含むフローについてのQoSを定義したQoSテーブルをサーチし、一致するしないのマッチング情報とQoS情報とを取り出す第3のステップと、
前記宛先IPアドレスによって前記フローテーブルに前記送信先の登録を行うか、前記宛先IPアドレスと送信元IPアドレスの組によって前記送信先の登録を行うかを前記マッチング情報から決定する第4のステップと、
宛先IPアドレスからルーティングテーブルを参照して送出ポートを取り出す第5のステップと、
前記宛先IPアドレスによって前記送信先を登録する場合、前記宛先IPアドレスをハッシュして前記フローテーブルの第1のテーブルをアクセスし、そのハッシュ値先に前記宛先IPアドレスと前記QoS情報と前記送出ポートとを登録し、
前記宛先IPアドレスと送信元IPアドレスの組で前記送信先を登録する場合、前記宛先IPアドレスをハッシュして前記第1のテーブルをアクセスしハッシュ値先に前記フローテーブルの第2のテーブルへのリンクを記すとともに、前記宛先IPアドレスと送信元IPアドレスの組をハッシュして前記第2のテーブルをアクセスし、そのハッシュ値先に前期宛先IPアドレスと送信元IPアドレスの組と前記QoS情報と前記送出ポートとを登録する第6のステップと、
を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【0030】
本発明の第2の記録媒体は、受信したIPパケットをQoS情報と送出ポートを含む転送制御情報が登録されたフローテーブルを参照して送信先に中継するコンピュータに実行させるIPフロー多段ハッシュプログラムを記録した記録媒体であって、
前記IPパケットの宛先IPアドレスと送信元アドレスの組を元に、前記宛先IPアドレスと前記送信元IPアドレスとQoS情報を含むフローについてのQoSを定義したQoSテーブルをサーチし、一致するしないのマッチング情報とQoS情報とを取り出す第1のステップと、
前記宛先IPアドレスによって前記フローテーブルに前記送信先の登録を行うか、前記宛先IPアドレスと送信元IPアドレスの組によって前記送信先の登録を行うかを前記マッチング情報から決定する第2のステップと、
宛先IPアドレスからルーティングテーブルを参照して送出ポートを取り出す第3のステップと、
前記宛先IPアドレスによって前記送信先を登録する場合、前記宛先IPアドレスをハッシュして前記フローテーブルの第1のテーブルをアクセスし、そのハッシュ値先に前記宛先IPアドレスと前記QoS情報と前記送出ポートとを登録し、
前記宛先IPアドレスと送信元IPアドレスの組で前記送信先を登録する場合、前記宛先IPアドレスをハッシュして前記第1のテーブルをアクセスしハッシュ値先に前記フローテーブルの第2のテーブルへのリンクを記すとともに、前記宛先IPアドレスと送信元IPアドレスの組をハッシュして前記第2のテーブルをアクセスし、そのハッシュ値先に前期宛先IPアドレスと送信元IPアドレスの組と前記QoS情報と前記送出ポートとを登録する第4のステップと、
を備えるプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【0031】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【0032】
本発明の実施の形態の構成を図1を用いて説明する。
【0033】
図1を参照すると、L3スイッチ(IPルータ)10は、ソフトウェアプログラムからなるフロー管理モジュール25と、フローテーブル26と、ハードウェアのLSIチップによる送信先の決定を行う転送チップ27と、を備えている。
【0034】
L3スイッチ10は、図示しないCPUを持つコンピュータである。
【0035】
尚、転送チップ27の機能を全てソフトウェアプログラムによって構成することも可能である。
【0036】
またL3スイッチ10内には他にも、フロー管理モジュール25にフロー情報の登録を要求する上位モジュールとしてIPモジュール21と、QoSテーブル24を管理するQoS管理モジュール23と、を備えている。IPモジュール21とQoS管理モジュール23もソフトウェアプログラムである。
【0037】
尚、登録手段20は、IPモジュール21とQoS管理モジュール23とフロー管理モジュール25とQoSテーブル24とルーティングテーブル22を総称する。
【0038】
さらに、L3スイッチ10は、図7に例示するように送信の対象となるL3スイッチ10に隣接するルータや端末等について、その装置の属するネットワークのアドレスとL3スイッチ10の送出ポートと隣接ルータとからなるルーティングテーブル22を備える。
【0039】
さらに、L3スイッチ10は、図6に例示するように、個々のフローを識別する為の送信元IPアドレス、宛先IPアドレス、識別されたフローの持つ優先順位からなるQoS情報とパケットの廃棄を指定した備考情報とからなるQoSテーブル24を備える。本発明で説明するQoS情報は、そのフローの有する優先順位(高、中、低)とそのフローに含まれるパケットを廃棄するか否かの情報からなっているが、これにとらわれるものではない。
【0040】
本発明を構成するプログラムは、例えばCD−ROM等の記録媒体に記録され、そのような記録媒体からL3スイッチ10の図示しないCD−ROM装置によってL3スイッチ10にロードされてもよいし、通信機能によって他のコンピュータからロードされてもよい。
【0041】
次に、フローテーブル26の構成を図5を用いて説明する。
【0042】
図5を見ると、フローテーブル26は、宛先IPアドレスをハッシュしたハッシュ値に対応する数バイト長のエントリを連続して集合した第1ハッシュ先頭領域31と、宛先IPアドレスと送信元IPアドレスの組をハッシュしたハッシュ値に対応するエントリを連続して集合した第2ハッシュ先頭領域32と、第1ハッシュ先頭領域31のそれぞれのエントリからリンクされた宛先IPアドレスとQoS情報等を含む宛先IPエントリ33と、同様に第2ハッシュ先頭領域32のそれぞれのエントリからリンクされた宛先IPアドレスと送信元IPアドレスとQoS情報等を含む宛先送信元IPエントリ34と、から構成される。
【0043】
尚、宛先IPエントリ33は同じハッシュ値を持つ次の宛先IPエントリ33をリンクするリンクフィールドを持つ。同様に宛先送信元IPエントリ34も同じハッシュ値を持つ次の宛先送信元IPエントリ34へのリンクフィールドを持つ。
【0044】
異なる宛先IPアドレスでもハッシュ時に同一のハッシュ値となった場合には、同じハッシュ値を持つ宛先IPエントリ33同士はリンクフィールドによってリンクされる。宛先送信元IPエントリ34についても同様である。
【0045】
さらに、第1ハッシュ先頭領域31の各エントリにはマークビットがあって、マークビットがオンの場合、第2ハッシュ先頭領域32をアクセスする必要があることを表している。
【0046】
次に、本発明の実施の形態の動作について図面を参照して説明する。
【0047】
最初に図1と図2のフローチャートを用いて転送チップ27の動作を説明する。
【0048】
L3スイッチ10がIP(Internet Protocol)パケットを受信すると、転送チップ27が動作し、受信したIPパケットのIPヘッダに記述された宛先IPアドレスをハッシュしてフローテーブル26の第1ハッシュ先頭領域31をアクセスする(ステップA1)。次に、アクセスしたエントリのマークビットのオン、オフをチェックする(ステップA2)。
【0049】
マークビットがオフの場合は、第1ハッシュ先頭領域31にリンクされた情報をアクセスすることを意味し、アクセスしたエントリの持つリンクフィールドに宛先IPエントリ33がリンクされているかをチェックする(ステップA3)。転送チップ27は、リンクがない場合、ソフトウェアに割り込みをあげて当該IPパケットについての処理を終了する(ステップA4)。リンクされている場合は、IPヘッダから取得した宛先IPアドレスをもとにリンクされた宛先IPエントリ33の宛先IPアドレスと比較し、一致するものがあるかをチェックする(ステップA5)。この処理を宛先IPエントリ33のリンクフィールドをたどり最後まで行う。最後までたどっても一致するものがないとソフトウェアに割り込みをあげて当該IPパケットについての転送チップ27の処理を終了する(ステップA4)。
【0050】
(ステップA5)のチェックで一致した宛先IPエントリ33があると、この宛先IPエントリ33に記述された送出ポートとQoS情報を取り出し、取り出した内容に従ったハードウェアによる受信IPパケットの送信処理を実行する(ステップA6)。
【0051】
先に戻って、第1ハッシュ先頭領域31にアクセスした結果、(ステップA2)のチェックでハッシュ値先のエントリのマークビットがオンの場合は、第2ハッシュ先頭領域32にリンクされた情報をアクセスすることを意味し、IPヘッダから取り出した宛先IPアドレスと送信元IPアドレスを組にしてハッシュを行い、第2ハッシュ先頭領域32をアクセスする(ステップA7)。
【0052】
このとき、IPヘッダから取り出した宛先IPアドレスと送信元IPアドレスの組と、ハッシュ値によって求めた第2ハッシュ先頭領域32のエントリからリンクされた宛先送信元IPエントリ34の持つ宛先IPアドレスと送信元IPアドレスの組とをリンクフィールドをたどって最後まで順に比較する(ステップA8)。比較の結果、一致するものがない場合は、ソフトウェアに割り込みをあげる(ステップA4)。一致するものがある場合は、一致した宛先送信元IPエントリ34から送出先の送出ポートとQoS情報を取り出しその内容に従ったハードウェアによる送信処理を実行する(ステップA6)。
【0053】
次にソフトウェアによるフローテーブル26への登録処理の全貌を図1、図6、図7と図3のフローチャートを参照して説明する。
【0054】
転送チップ27の動作時、ソフトウェアに対する割り込みがあがると、受信したパケットに関し、ソフトウェアの登録手段20によってフローテーブル26への宛先IPアドレス等を含む転送制御情報の登録処理が実行される。
【0055】
転送チップ27から割り込みの通知を受けたソフトウェアの登録手段20では最初にIPモジュール21が動作する(ステップB1)。
【0056】
IPモジュール21は、受信したIPパケットが含まれるフローが持つQoSデータをQoS管理モジュール23に要求する(ステップB2)。
【0057】
QoS管理モジュール23は、受信したIPパケットのIPヘッダから送信元IPアドレスと宛先IPアドレスとを取り出し、取り出した情報とQoSテーブル24のに定義されたフローとを順に比較し、一致するフローに予め定義されたQoSデータとパケットの廃棄情報とをIPモジュール21に返す(ステップB3)。
【0058】
この比較の結果として宛先IPアドレスと送信元IPアドレスの両方が一致したか、または一致しなかったかのマッチング情報も返却される。QoS管理モジュールは、一致するフローのQoS情報の定義が無い場合、デフォールトのQoS情報を返却する。
【0059】
図6に例示したQoSテーブル24を参照すると、第1の例として受信したパケットが、例えば、宛先IPアドレスが10.1.1.4で、送信元IPアドレスが10.1.1.1の場合、図6の先頭の欄の内容に一致するので、QoS管理モジュール23は、このフローについてのQoS情報として高優先であり、宛先IPアドレスと送信元IPアドレスのフローが定義されていることをIPモジュール21に通知する。また、第2の例として、宛先IPアドレスが10.1.1.5で送信元IPアドレスが10.1.1.4の場合、どれにもマッチしないので当該フローが未定義であることと、デフォールト値として選択した、例えば中優先を通知する。
【0060】
IPモジュール21は受け取ったQoS情報とマッチング情報とから、宛先IPアドレスだけでフローを登録すべきか、宛先IPアドレスと送信元IPアドレスの組でフローをフローテーブル26に登録すべきかを決定してフロー決定情報を作成する(ステップB4)。先の第1の例では、宛先IPアドレスと送信元IPアドレスの組での登録、第2の例の場合では、宛先IPアドレスのみでの登録がそれぞれ選択される。尚、宛先IPアドレスのみでの登録の場合でもフロー決定情報には、送信元IPアドレスも記述が行われる。
【0061】
IPモジュール21は、IPヘッダの宛先IPアドレスからルーティングテーブル22を参照して順に比較し一致する隣接ルータや端末等の送信先を決定し、送出ポートを取り出す(ステップB5)。
【0062】
図7を参照すると、例えば宛先IPアドレスが10.1.1.2の場合、ルーティングテーブル22の宛先アドレス10.1.1/24が合致するので送出ポートとして送出ポート1(隣接ルータが隣接ルータ1)が選択される。IPモジュール21は、取り出した送出ポートをフロー決定情報に記述する。
【0063】
IPモジュール21は、以上のように作成したフロー決定情報をフロー管理モジュール25に提供し、フロー管理モジュール25はこれをもとにフローテーブル26への登録処理を実行する(ステップB6)。
【0064】
IPモジュール21は、フロー決定情報の登録を終えると、L3スイッチ10に当該パケットを送出する指示を行い受信したパケットの送信処理を終了する(ステップB7)。
【0065】
転送チップ27は、前述したようフローテーブル26に登録が行われたフローについて、次に同一フローに属するパケットを受信すると、宛先IPアドレスのみ、または宛先IPアドレスと送信元IPアドレスの組によるハッシュ検索を行うと、ヒットするのでこのパケットをハードウェア転送する。もし受信したパケットのフローが別フローでヒットしなかった場合は、ソフトウェアに割り込み通知し(ステップB1)の動作に戻る。
【0066】
図8を見ると端末3から端末1への送信処理における優先順位は普通であり、同じ端末3から端末2への優先順位は高い状態を例示している。
【0067】
次に、図4のフローチャートと図5を参照してフロー管理モジュール25の転送制御情報の登録処理の詳細を説明する。
【0068】
IPモジュール21によるフロー登録要求処理として、IPモジュール21は、フロー決定情報を引数としてフロー管理モジュール25を呼び出す(ステップC1)。フロー管理モジュール25は、フロー決定情報の宛先IPアドレスをハッシュ計算する。
【0069】
ハッシュ計算の結果、生成された数値に第1ハッシュ先頭領域31のエントリサイズ(例えば6バイト長)を掛けて第1ハッシュ先頭領域31における該当するエントリを求める(ステップC2)。
【0070】
求めたエントリのマークビットのオン、オフをチェックする(ステップC3)。オンの場合は、(ステップC10)にジャンプする。初期状態ではマークビットはオフである。マークビットがオフの場合、次にフロー決定情報を参照して宛先IPアドレスのみでの登録か宛先IPアドレスと送信元IPアドレスの組での登録かをチェックする(ステップC4)。
【0071】
宛先IPアドレスと送信元IPアドレスの組での登録の場合はマークビットをオンにする(ステップC9)。そして第1ハッシュ先頭領域31のエントリのリンクフィールドがnullか否かをチェックする(ステップC15)。nullの場合は、(ステップC10)にジャンプする。
【0072】
nullでない場合はリンクフィールドにリンクされている全ての宛先IPエントリ33を消去し、空きの宛先IPエントリ33として(ステップC16)、(ステップ10)にジャンプする。
【0073】
(ステップC4)でのチェックで宛先IPアドレスのみの登録の場合、フロー管理モジュール25は、空きの宛先IPエントリ33を求め、当該宛先IPエントリ33に宛先IPアドレスとフロー決定情報から取り出したQoS情報としての優先順位、IPパケットの廃棄情報と送出ポートを記入する(ステップC5)。次にハッシュ値から得たエントリのリンクフィールドに、記入を終えた宛先IPエントリ33を第1ハッシュ先頭領域31のエントリのリンクフィールドに登録する(ステップC6)。
【0074】
図9には、第1ハッシュ先頭領域に宛先IPエントリ33がリンクされている様子が例示されている。第1ハッシュ先頭領域31の第3エントリには宛先IPアドレスとしてIP1とIP3をもつ宛先IPエントリ33が、第6エントリにはIP2の宛先IPエントリ33がそれぞれリンクされている。
【0075】
次に、フロー決定情報が宛先IPアドレスと送信元IPアドレスの組の場合について説明する。
【0076】
宛先IPアドレスと送信元IPアドレスを組としてこれをハッシュ計算し、このハッシュ値から第2ハッシュ先頭領域32のエントリを求める(ステップC10)。次に、空きの宛先送信元IPエントリ34を求め、宛先IPアドレス、送信元IPアドレス、QoS情報、IPパケットの廃棄情報と送出ポートを記入する(ステップC11)。これを第2ハッシュ先頭領域32のエントリのリンクフィールドに登録する(ステップC12)。
【0077】
図10には、第1ハッシュ先頭領域31の第6と第8のマークビットがオンであり、第2ハッシュ先頭領域32の第2と第8エントリに対応する情報が格納されている様子を例示している。
【0078】
尚、以上の説明から判るようにフロー決定情報が宛先IPアドレスのみの登録の場合でも、宛先IPアドレスをハッシュ計算して求めた第1ハッシュ先頭領域31のハッシュ位置エントリのマークビットが既にオンの場合は、第2ハッシュ先頭領域32に登録が行われることになる。
【0079】
上記の宛先IPアドレスと送信元IPアドレスのフロー管理モジュール25による登録処理及び転送チップ27による検索時に使用するハッシュ計算方法は完全に同一の方法にする必要があることは前述した内容から明らかである。
【0080】
送信元IPアドレス以外にも、TCP(Transmission Control Protocol)やUDP(User Datagram Protocol)のL4ポート番号を含めてフローを特定した制御を行う場合には、以上説明した2段階のハッシュ領域にさらにもう1段のポート番号に対応するアプリケーションプログラムレベルのQoS情報を含むハッシュ領域を追加した3段階のハッシュ構成をとることができる。
【0081】
さらに、この場合、QoSテーブル24として、図6に例示した宛先IPアドレス、送信元IPアドレスのほかにTCP/UDP等を識別するプロトコル番号、宛先ポート番号、送信元ポート番号等を追加することによってアプリケーションレベルを意識したフローを識別し、このフローのQoS情報を含むQoSテーブル24を備えることになる。このQoSテーブル24を宛先IPアドレス、送信元IPアドレス、プロトコル番号、宛先ポート番号、送信元ポート番号によって検索した結果、一致するレベルに3段階を設ける。
【0082】
第1は宛先IPアドレスと送信元IPアドレスの組でも一致するものがない場合、第2は宛先IPアドレスと送信元IPアドレスの組で一致するものがある場合、第3はポート番号も含めて全てが一致する場合である。ここで第1と第2の場合は、これまで説明した内容にあたる。第3の場合のハッシュ対象となる情報は、宛先IPアドレス、送信元IPアドレス、プロトコル番号、宛先ポート番号、送信元ポート番号となるがプロトコル番号と宛先ポート番号、送信元ポート番号のいずれかは省略可能である。
【0083】
この場合のマークの定義は、次の段階のハッシュに進む意味にしても良いが、1段目のハッシュエントリにマークビット1とマークビット2を設け、マークビット1とマークビット2が両方ともオフであれば1段目を検索、マークビット1がオンであれば2段目を検索、マークビット2がオンであれば3段目を直接検索するようにして指定した段数のハッシュ領域に直接進ませる意味にしても良い。
【0084】
登録手段20による転送制御情報の登録時、第3の場合の登録を行う場合は、まず宛先IPアドレスでハッシュして第1ハッシュ先頭領域を求め、マークビット1をオフ、マークビット2をオンとする。次に前述したハッシュ対象情報をハッシュして第3段階のテーブルを求めハッシュ対象情報やQoS情報等を含む転送制御情報の登録を行う。
【0085】
尚、転送チップは、マークビット2がオンのとき、受信したIPパケットのTCPまたはUDPヘッダをアクセスし、必要となる情報を取り出すことになる。
【0086】
図11に例示するように、同じ端末で複数のアプリケーションプログラムが動作する場合、ポート番号で識別されたアプリケーションプログラム単位に細かなフロー制御ができる。
【0087】
また、データリンク層のL2転送において1段目を宛先MAC(MediaAccess Control)アドレス、2段目を送信元MACアドレスに適用する構成もとることができる。L2転送において1段目を宛先MACアドレス、2段目を送信元MACアドレス、3段目をIPやIPXを識別するイーサネット(登録商標)・タイプとして3段階のハッシュ構成もとることができる。L3スイッチ10でなくソフトウェア・ルータの場合でも、優先的に高速転送するフローにのみハッシュテーブルを使用する装置にも適用できる。
【0088】
以上の内容を踏まえると、次のように一般化することができる。
【0089】
宛先MACアドレス、送信元MACアドレス、宛先IPアドレス、送信元IPアドレス等のパケットの属するフローを識別するデータをフロー識別データと呼ぶとして、このフロー識別データをQoS情報を付与する対象のフロー単位で複数に区分しフロー階層としてそれぞれに番号を与える。この区分されたフロー識別情報を使用してフローとそのフローのQoS情報が一つのエントリとして定義されたQoSテーブルを準備する。
【0090】
受信したパケットの前記フロー識別データを元に前記QoSテーブルをサーチし、一致するエントリがあると、そのエントリの前記フロー識別情報と前記フロー識別情報から決定されるフロー階層と前記QoS情報を取り出す。
【0091】
次に、例えばルーティングテーブル等からパケットの送信先の前記送出ポートを求める。
【0092】
宛先アドレスをハッシュして前記フローテーブル26の第1のテーブルをアクセスし、そのハッシュ値先に前記フロー階層を記録する。最後にQoSテーブル24から取り出したフロー識別情報をハッシュして前記フロー階層で識別されるテーブルをアクセスし、ハッシュ値先に前記フロー識別情報と前記QoS情報と前記送出ポートとを記録する。
【0093】
【発明の効果】
本発明の効果は、宛先IPアドレスだけで登録するフローと、宛先IPアドレスと送信元IPアドレスの組で登録するフローとが1つのハッシュ領域で両立して管理されることで、細かなフロー制御と大まかなフロー制御の混在ができ、ハッシュ領域で使用する大まかな制御の為のメモリと細かな制御の為のメモリとのバランスをとることが可能となる。
【0094】
混在させても同一ハッシュ値のリスト段数を押さえて、高速検索が可能である。
【0095】
また、細かな制御が不要の場合は、宛先IPエントリだけで登録することでメモリ使用量を押さえ、大量のフローを処理することができる。
【0096】
さらに、宛先IPアドレスだけではハッシュ値が分散しないときに、送信元IPアドレスも含めたハッシュで分散させることが可能となるという効果もある。
【図面の簡単な説明】
【図1】本発明の実施の形態の構成を説明したブロック図である。
【図2】本発明の実施の形態の動作を説明したフローチャートである。
【図3】本発明の実施の形態の動作を説明したフローチャートである。
【図4】本発明の実施の形態の動作を説明したフローチャートである。
【図5】本発明の実施の形態のフローテーブルの説明図である。
【図6】本発明の実施の形態のQoSテーブルの説明図である。
【図7】本発明の実施の形態のルーティングテーブルの説明図である。
【図8】本発明の実施の形態の端末間での送信優先順位の説明図である。
【図9】本発明の実施の形態の第1ハッシュ先頭領域に宛先IPエントリがリンクされている状態の説明図である。
【図10】本発明の実施の形態の第2ハッシュ先頭領域に宛先送信元IPエントリがリンクされている状態の説明図である。
【図11】本発明の実施の形態のL4ポート番号間での送信優先順位の説明図である。
【符号の説明】
20  登録手段
21  IPモジュール
22  ルーティングテーブル
23  QoS管理モジュール
24  QoSテーブル
25  フロー管理モジュール
26  フローテーブル
27  転送チップ
31  第1ハッシュ先頭領域
32  第2ハッシュ先頭領域
33  宛先IPエントリ
34  宛先送信元IPエントリ
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to control of a hash table for determining a destination port in a network relay device, and in particular, hashes in which hash information using only a destination IP address, a destination IP address, and a source IP address are combined according to characteristics of a flow. The present invention relates to an IP flow multi-stage hash device, an IP flow multi-stage hash method, an IP flow multi-stage hash program, and a recording medium therefor that separate information and determine a destination port.
[0002]
[Prior art]
A device that performs transfer (forwarding, routing) in an IP (Internet Protocol) layer is called a router. A router is a network relay device for transferring data at high speed between a plurality of networks or between a network and a terminal, and has a table for selecting a route for a destination to which data is to be transferred. Upon receiving the data, the router determines a transfer destination based on a table for selecting a route by referring to the IP header of the IP layer from the data.
[0003]
In recent years, devices that perform this transfer at high speed by hardware (chip called ASIC) instead of software have been used, and one of them is an L3 switch.
[0004]
The expected role of the router differs depending on where it is located. In general, a router arranged on the core (backbone) side of the network does not require much detailed control and plays a role in processing a large amount of packets at high speed. The fine control refers to, for example, filtering for discarding unnecessary packets, QoS (Quality of Service) control reflecting service quality based on flow priority, and the like.
[0005]
On the other hand, the router arranged on the edge side to which the terminal is connected does not need to process a large amount of packets, but needs a role of performing fine control such as filtering and QoS.
[0006]
Consider a router device that determines a destination of a destination relay router or the like and selects a transmission port corresponding to the destination in units of IP flows (or a group of a plurality of flows) by using a table for performing high-speed transfer. View.
[0007]
In such an apparatus, one of the methods for searching for a destination IP address at a high speed is to manage the IP address by dividing the IP address into a binary tree structure by turning on and off the bit from the first bit constituting the IP address. There is a way to search for a destination.
[0008]
There is also a method in which a destination is searched at high speed by hardware from a hash table in which the IP address or network address of the destination is hashed, and if the search fails, a search using a binary tree structure is performed by software. Hereinafter, the table for high-speed transfer using this hash will be referred to as a flow table.
[0009]
Japanese Patent Application Laid-Open No. 2000-138688 discloses this type of prior art, in which a network address is obtained while subtracting a maximum bit of a netmask value one bit at a time based on a destination IP address extracted from a received packet. It describes that a table in which transfer destination transmission ports are paired is searched to determine a corresponding transfer destination transmission port.
[0010]
[Problems to be solved by the invention]
The conventional problems in the search using the flow table are as follows.
[0011]
If the unit of the flow registered in the flow table is made fine, the above-described fine control becomes possible, but a large amount of tables is consumed. Conversely, if the unit of the flow is roughly reduced, the number of tables to be consumed can be reduced, but there is a problem that fine control becomes impossible.
[0012]
In the case of the search method using both the binary tree and the flow table as described above, if a large number of tables are used, a large amount of memory is consumed, so there is an upper limit to the amount used for each device. When the upper limit is reached, high-speed transfer becomes impossible, and a low-speed binary tree transfer is used. In the L3 switch, a flow table search is generally performed by hardware, and a binary tree search is generally performed by software. In this case, the speed difference is orders of magnitude.
[0013]
Depending on the user's usage, there is a demand to handle a large number of packets even if the router on the core side wants to perform some fine control, or even the router on the edge side (without consuming memory).
[0014]
First, consider a method of reducing the number of IP addresses registered in the flow table. When a hash is used for an IP address registered in a flow table, it is difficult to use a netmask (network address) to reduce the number of IP addresses used in the flow table for the following reasons.
[0015]
When calculating the search start position (hash position) of the flow table by extracting the destination IP address from the IP header and hashing when receiving the IP packet, when using the entire destination IP address, the same destination network as the destination IP address is used. It is highly likely that the hash position will not be the same as the hash position by the network address. By using the netmask (network address) in this way, an attempt to reduce the number of IP addresses registered in the flow table becomes meaningless. For example, the problem can be avoided if one netmask is used in the entire router device, but it is not practical at present when variable-length netmasks are common.
[0016]
In Japanese Patent Application Laid-Open No. 2000-138688, the hash calculation is avoided by performing the hash calculation many times.
[0017]
Therefore, a method of reducing the number of IP addresses by using a netmask (network address) in registration in the flow table cannot be adopted, so that the entire 4 bytes of the destination IP address must be used for hash calculation.
[0018]
By the way, in the registration of only the destination IP address, for example, even if the packet is transmitted to the same destination IP address, control such that a packet of a certain source IP address is transferred and a packet of another source IP address is discarded. Cannot be determined only by the flow table. That is, discarding (filtering), priority control (QoS control), and the like in consideration of the source IP address cannot be performed.
[0019]
Japanese Unexamined Patent Publication No. Hei 6-152655 describes that the problems such as filtering and flow rate control can be solved by registering a destination address and a transmission source address in an address table of a router. No countermeasures are taken against the increase in the number of registered IP addresses.
[0020]
Therefore, according to the present invention, a table including only a destination IP address and a table including a set of a destination IP address and a transmission source IP address are provided in a flow table. An IP flow multi-stage hash device, an IP flow multi-stage hash method, and an IP flow that solve the above-mentioned problem by performing detailed flow control and preventing an increase in the flow table by additionally registering the original IP address and L4 port number A multi-stage hash program and a recording medium thereof are provided.
[0021]
[Means for Solving the Problems]
The first IP flow multi-stage hash device of the present invention includes: a transfer unit that relays a received IP packet by referring to a flow table in which transfer control information including QoS information and a transmission port is registered; Registration means for registering the transfer control information,
The registration unit, upon receiving the IP packet, stores a QoS table, which is defined in advance and one entry is composed of a destination IP address, a source IP address, and QoS information, with the destination IP address included in the IP packet and the transmission. A search is performed with a set of original IP addresses, and if there is no matching entry, the destination address is hashed in the flow table, and the destination IP address is registered in a hash value destination. If there is a matching entry, the destination IP address is registered. And hashing a set of the source IP address and registering the set of the destination IP address and the source IP address in the hash value destination.
[0022]
A second IP flow multi-stage hashing apparatus according to the present invention includes: a transfer unit that relays a received IP packet by referring to a flow table in which transfer control information including QoS information and a transmission port is registered; Registration means for registering the transfer control information,
The registration unit divides the flow table into a first table and a second table,
In the first table, a destination IP address of the IP packet is hashed, a link to the first or second table is indicated by a mark bit ahead of the hash value, and the destination IP address, the QoS information, Register entries having the same hash value of 0 or more in which the transmission port is described,
In the second table, the destination IP address and the source IP address of the IP packet are hashed as a set, and the set of the destination IP address and the source IP address, the QoS information, and the transmission Register entries having the same hash value of 0 or more in which the port is described,
Upon receiving the IP packet, the transfer unit accesses the hash value destination of the first table by hashing the destination IP address, and refers to the mark bit to detect a link to the first table. Searching for the entry linked to the hash value destination of the first table by the destination IP address, and detecting the matching entry, according to the QoS information and the transmission port described in the entry, Relays IP packets,
When the link to the second table is detected with reference to the mark bit, the set of the destination IP address and the source IP address is hashed, the hash value destination of the second table is accessed, and the hash value destination is accessed. Searching for the entry having the same pair of the destination IP address and the source IP address from the linked entry, and detecting the matching entry, according to the QoS information and the transmission port described in the entry, Relaying the IP packet.
[0023]
In a third IP flow multistage hash apparatus according to the present invention, in the first, second, or third invention, when the transfer unit receives the IP packet, the transfer unit includes an entry in the first table based on the destination IP address. Or executing a search for the entry in the second table based on the set of the destination IP address and the source IP address, and notifying the registration unit that there is no matching entry.
[0024]
In a fourth IP flow multistage hashing apparatus according to the first or second aspect of the present invention, the registration means, upon receiving the notification, a QoS including the destination IP address, the transmission source IP address, and the QoS information The table is searched for a set of the destination IP address and the source IP address for specifying the flow of the received IP packet, and if a matching flow is registered, the set of the destination IP address and the source IP address is set to the Registering the destination IP address in the first table when there is no registration of a flow that matches the pair of the destination IP address and the source IP address in the second table.
[0025]
A fifth IP flow multistage hashing apparatus according to the present invention includes: a transfer unit that relays a received IP packet with reference to a flow table in which transfer control information including QoS information and a transmission port is registered; and transfer to the flow table. Registration means for registering control information,
The registration unit divides the flow table into a first table, a second table, and a third table,
In the first table, a destination IP address of the IP packet is hashed, and a link to the first, second, or third table is indicated by a mark bit ahead of the hash value, and the destination IP address is indicated. And zero or more entries having the same hash value in which the QoS information and the transmission port are described,
In the second table, the destination IP address and the source IP address of the IP packet are hashed as a set, and the set of the destination IP address and the source IP address, the QoS information, and the transmission Register entries having the same hash value of 0 or more in which the port is described,
The third table has a set of a destination IP address, a source IP address, a protocol number, a destination port number, and a source port number of the IP packet, and performs hashing. Registering an entry having zero or more identical hash values that describes a set of a source IP address, a protocol number, a destination port number, a source port number, the QoS information, and the transmission port,
The transfer means, upon receiving the IP packet, accesses the first table by hashing the destination IP address, and upon detecting a link to the second table as a result of the access, sets the destination IP address and Accessing the second table by hashing a set of source IP addresses, searching for the entry having the same set of destination IP address and source IP address from the entry of the access destination, and matching the entry And relaying the IP packet according to the QoS information and the transmission port described in the entry,
The transfer means, upon receiving the IP packet, accesses the first table by hashing the destination IP address, and upon detecting a link to the third table as a result of the access, sets the destination IP address and The third table is accessed by hashing a set of a source IP address, a protocol number, a destination port number, and a source port number, and the same destination IP address, source IP address, and protocol are obtained from the entry of the access destination. Searching for the entry having a set of a number, a destination port number, and a source port number, and relaying the IP packet according to the QoS information described in the entry and the transmission port when the matching entry is detected. Is provided.
[0026]
The first IP flow multi-stage hashing method of the present invention includes a first step of relaying a received IP packet to a destination by referring to a flow table in which transfer control information including QoS information and a transmission port is registered,
A second step of calling a registration unit for registering the destination if the destination is not registered in the flow table in the first step;
Upon receiving the call, the registration unit stores a QoS table defining a QoS for a flow including a destination IP address, a source IP address, and QoS information based on a set of a destination IP address and a source address of the IP packet. A third step of searching and extracting matching information and QoS information that do not match;
A fourth step of determining from the matching information whether to register the transmission destination in the flow table by the destination IP address or to register the transmission destination by a set of the destination IP address and the transmission source IP address; ,
A fifth step of extracting a transmission port by referring to a routing table from a destination IP address;
When the destination is registered by the destination IP address, the destination IP address is hashed to access the first table of the flow table, and the destination IP address, the QoS information, and the transmission port are added to the hash value destination. And register
When registering the destination with the set of the destination IP address and the source IP address, the destination IP address is hashed, the first table is accessed, and the hash value is stored in the second table of the flow table. A link is described, the set of the destination IP address and the source IP address are hashed, the second table is accessed, and the set of the destination IP address and the source IP address, the QoS information and A sixth step of registering the sending port;
Is provided.
[0027]
The first IP flow multi-stage hash program of the present invention provides a computer
A first step of relaying the received IP packet to a destination by referring to a flow table in which transfer control information including QoS information and a transmission port is registered;
A second step of calling a registration unit for registering the destination if the destination is not registered in the flow table in the first step;
Upon receiving the call, the registration unit defines a QoS for a flow including the destination IP address, the source IP address, and QoS information based on a set of a destination IP address and a source address of the IP packet. A third step of searching the table and extracting matching information and QoS information that do not match;
A fourth step of determining from the matching information whether to register the transmission destination in the flow table by the destination IP address or to register the transmission destination by a set of the destination IP address and the transmission source IP address; ,
A fifth step of extracting a transmission port by referring to a routing table from a destination IP address;
When the destination is registered by the destination IP address, the destination IP address is hashed to access the first table of the flow table, and the destination IP address, the QoS information, and the transmission port are added to the hash value destination. And register
When registering the destination with the set of the destination IP address and the source IP address, the destination IP address is hashed, the first table is accessed, and the hash value is stored in the second table of the flow table. A link is described, the set of the destination IP address and the source IP address are hashed, the second table is accessed, and the set of the destination IP address and the source IP address, the QoS information and A sixth step of registering the sending port;
Is executed.
[0028]
A second IP flow multi-stage hash program according to the present invention is a program for causing a computer that relays a received IP packet to a destination by referring to a flow table in which transfer control information including QoS information and a transmission port is registered. hand,
Based on a set of a destination IP address and a source address of the IP packet, a QoS table that defines a QoS for a flow including the destination IP address, the source IP address, and QoS information is searched, and a match that does not match is searched. A first step of retrieving information and QoS information;
A second step of determining from the matching information whether to register the destination in the flow table by the destination IP address or to register the destination by a set of the destination IP address and the source IP address; ,
A third step of extracting a transmission port by referring to a routing table from a destination IP address;
When the destination is registered by the destination IP address, the destination IP address is hashed to access the first table of the flow table, and the destination IP address, the QoS information, and the transmission port are added to the hash value destination. And register
When registering the destination with the set of the destination IP address and the source IP address, the destination IP address is hashed, the first table is accessed, and the hash value is stored in the second table of the flow table. A link is described, the set of the destination IP address and the source IP address are hashed, the second table is accessed, and the set of the destination IP address and the source IP address, the QoS information and A fourth step of registering the transmission port;
Is provided.
[0029]
The first recording medium of the present invention comprises: a first step of relaying a received IP packet to a transmission destination by referring to a flow table in which transfer control information including QoS information and a transmission port is registered;
A second step of calling a registration unit for registering the destination if the destination is not registered in the flow table in the first step;
Upon receiving the call, the registration unit defines a QoS for a flow including the destination IP address, the source IP address, and QoS information based on a set of a destination IP address and a source address of the IP packet. A third step of searching the table and extracting matching information and QoS information that do not match;
A fourth step of determining from the matching information whether to register the transmission destination in the flow table by the destination IP address or to register the transmission destination by a set of the destination IP address and the transmission source IP address; ,
A fifth step of extracting a transmission port by referring to a routing table from a destination IP address;
When the destination is registered by the destination IP address, the destination IP address is hashed to access the first table of the flow table, and the destination IP address, the QoS information, and the transmission port are added to the hash value destination. And register
When registering the destination with the set of the destination IP address and the source IP address, the destination IP address is hashed, the first table is accessed, and the hash value is stored in the second table of the flow table. A link is described, the set of the destination IP address and the source IP address are hashed, the second table is accessed, and the set of the destination IP address and the source IP address, the QoS information and A sixth step of registering the sending port;
Is a computer-readable recording medium on which a program for executing the program is recorded.
[0030]
A second recording medium according to the present invention includes an IP flow multi-stage hash program for causing a computer relaying a received IP packet to a destination by referring to a flow table in which transfer control information including QoS information and a transmission port is registered. A recorded medium,
Based on a set of a destination IP address and a source address of the IP packet, a QoS table that defines a QoS for a flow including the destination IP address, the source IP address, and QoS information is searched, and a match that does not match is searched. A first step of retrieving information and QoS information;
A second step of determining from the matching information whether to register the destination in the flow table by the destination IP address or to register the destination by a set of the destination IP address and the source IP address; ,
A third step of extracting a transmission port by referring to a routing table from a destination IP address;
When the destination is registered by the destination IP address, the destination IP address is hashed to access the first table of the flow table, and the destination IP address, the QoS information, and the transmission port are added to the hash value destination. And register
When registering the destination with the set of the destination IP address and the source IP address, the destination IP address is hashed, the first table is accessed, and the hash value is stored in the second table of the flow table. A link is described, the set of the destination IP address and the source IP address are hashed, the second table is accessed, and the set of the destination IP address and the source IP address, the QoS information and A fourth step of registering the transmission port;
A computer-readable recording medium that records a program including
[0031]
BEST MODE FOR CARRYING OUT THE INVENTION
Next, embodiments of the present invention will be described in detail with reference to the drawings.
[0032]
The configuration of the embodiment of the present invention will be described with reference to FIG.
[0033]
Referring to FIG. 1, the L3 switch (IP router) 10 includes a flow management module 25 composed of a software program, a flow table 26, and a transfer chip 27 that determines a destination by a hardware LSI chip. I have.
[0034]
The L3 switch 10 is a computer having a CPU (not shown).
[0035]
Note that all functions of the transfer chip 27 may be configured by a software program.
[0036]
The L3 switch 10 further includes an IP module 21 as an upper module that requests the flow management module 25 to register flow information, and a QoS management module 23 that manages the QoS table 24. The IP module 21 and the QoS management module 23 are also software programs.
[0037]
The registration unit 20 is a general term for the IP module 21, the QoS management module 23, the flow management module 25, the QoS table 24, and the routing table 22.
[0038]
Further, as illustrated in FIG. 7, the L3 switch 10 determines, for a router or a terminal adjacent to the L3 switch 10 to be transmitted, the address of the network to which the device belongs, the transmission port of the L3 switch 10, and the adjacent router. The routing table 22 is provided.
[0039]
Further, as illustrated in FIG. 6, the L3 switch 10 specifies QoS information including a source IP address and a destination IP address for identifying an individual flow, priority of the identified flow, and packet discarding. And a QoS table 24 including the remark information. The QoS information described in the present invention includes priority (high, medium, and low) of the flow and information on whether to discard packets included in the flow, but is not limited to this.
[0040]
The program constituting the present invention is recorded on a recording medium such as a CD-ROM, and may be loaded from such a recording medium into the L3 switch 10 by a CD-ROM device (not shown) of the L3 switch 10, and may have a communication function. May be loaded from another computer.
[0041]
Next, the configuration of the flow table 26 will be described with reference to FIG.
[0042]
Referring to FIG. 5, the flow table 26 includes a first hash head area 31 in which entries each having a length of several bytes corresponding to a hash value obtained by hashing the destination IP address, a destination IP address and a source IP address. A destination IP entry including a destination IP address, QoS information, and the like linked from each entry of the second hash head area 32 and the first hash head area 31 in which entries corresponding to hash values of the sets are continuously collected. 33, and a destination source IP entry 34 including a destination IP address, a source IP address, QoS information, and the like linked from each entry of the second hash head area 32 in the same manner.
[0043]
The destination IP entry 33 has a link field linking the next destination IP entry 33 having the same hash value. Similarly, the destination source IP entry 34 has a link field to the next destination source IP entry 34 having the same hash value.
[0044]
If the same hash value is obtained even when different destination IP addresses are hashed, the destination IP entries 33 having the same hash value are linked by a link field. The same applies to the destination transmission source IP entry 34.
[0045]
Furthermore, each entry of the first hash head area 31 has a mark bit, and when the mark bit is on, it indicates that the second hash head area 32 needs to be accessed.
[0046]
Next, the operation of the embodiment of the present invention will be described with reference to the drawings.
[0047]
First, the operation of the transfer chip 27 will be described with reference to the flowcharts of FIGS.
[0048]
When the L3 switch 10 receives an IP (Internet Protocol) packet, the transfer chip 27 operates to hash the destination IP address described in the IP header of the received IP packet and store the first hash head area 31 of the flow table 26. Access (step A1). Next, it is checked whether the mark bit of the accessed entry is on or off (step A2).
[0049]
When the mark bit is off, it means that the information linked to the first hash head area 31 is accessed, and it is checked whether the destination IP entry 33 is linked to the link field of the accessed entry (step A3). ). If there is no link, the transfer chip 27 gives an interrupt to the software and ends the processing for the IP packet (step A4). If linked, the destination IP address obtained from the IP header is compared with the destination IP address of the linked destination IP entry 33 to check if there is a match (step A5). This processing is performed to the end by following the link field of the destination IP entry 33. If there is no match even after the last step, the software is interrupted and the processing of the transfer chip 27 for the IP packet is terminated (step A4).
[0050]
If there is a destination IP entry 33 that matches the check in (Step A5), the sending port and the QoS information described in the destination IP entry 33 are extracted, and the transmission processing of the received IP packet by the hardware according to the extracted contents is performed. Execute (Step A6).
[0051]
Returning to the previous, as a result of accessing the first hash head area 31, if the mark bit of the entry ahead of the hash value is on in the check of (Step A 2), the information linked to the second hash head area 32 is accessed. This means that the destination IP address and the source IP address extracted from the IP header are paired and hashed, and the second hash head area 32 is accessed (step A7).
[0052]
At this time, a set of the destination IP address and the source IP address extracted from the IP header, the destination IP address of the destination source IP entry 34 linked from the entry of the second hash head area 32 obtained by the hash value, and the transmission The set of original IP addresses is sequentially compared to the end by following the link field (step A8). If there is no match as a result of the comparison, the software is interrupted (step A4). If there is a match, the sending port and QoS information of the sending destination are extracted from the matching destination sending IP entry 34, and the sending process is executed by hardware according to the content (step A6).
[0053]
Next, the entire process of registration in the flow table 26 by software will be described with reference to the flowcharts of FIGS. 1, 6, 7 and 3.
[0054]
During the operation of the transfer chip 27, when an interrupt to software rises, registration processing of transfer control information including a destination IP address and the like in the flow table 26 is executed by the software registration means 20 for the received packet.
[0055]
In the software registration unit 20 that has received the notification of the interrupt from the transfer chip 27, the IP module 21 operates first (step B1).
[0056]
The IP module 21 requests the QoS management module 23 for the QoS data of the flow including the received IP packet (Step B2).
[0057]
The QoS management module 23 extracts the source IP address and the destination IP address from the IP header of the received IP packet, compares the extracted information with the flows defined in the QoS table 24 in order, and determines the matching flow in advance. The defined QoS data and the discard information of the packet are returned to the IP module 21 (step B3).
[0058]
As a result of this comparison, matching information indicating whether both the destination IP address and the source IP address match or not match is also returned. When there is no definition of the QoS information of the matching flow, the QoS management module returns the default QoS information.
[0059]
Referring to the QoS table 24 illustrated in FIG. 6, as a first example, a packet received has a destination IP address of 10.1.4.4 and a source IP address of 10.1.1.1. In this case, since the contents match the contents in the first column in FIG. 6, the QoS management module 23 has a high priority as the QoS information for this flow, and determines that the flow of the destination IP address and the flow of the source IP address are defined. Notify the IP module 21. As a second example, if the destination IP address is 10.1.1.5 and the source IP address is 10.1.4.4, no match is found, and the flow is undefined. , Selected as the default value, for example, medium priority.
[0060]
Based on the received QoS information and matching information, the IP module 21 determines whether the flow should be registered only with the destination IP address or whether the flow should be registered in the flow table 26 with the combination of the destination IP address and the source IP address. The decision information is created (step B4). In the first example, registration using a pair of a destination IP address and a transmission source IP address is selected, and in the second example, registration using only a destination IP address is selected. Note that even in the case of registration using only the destination IP address, the source IP address is also described in the flow determination information.
[0061]
The IP module 21 refers to the routing table 22 in order from the destination IP address of the IP header, compares them in order, determines a matching destination such as an adjacent router or terminal, and extracts a transmission port (step B5).
[0062]
Referring to FIG. 7, for example, when the destination IP address is 10.1.1.2, the destination address 10.1.1 / 24 in the routing table 22 matches, so that the output port is the output port 1 (adjacent router is 1) is selected. The IP module 21 describes the extracted transmission port in the flow determination information.
[0063]
The IP module 21 provides the flow determination information created as described above to the flow management module 25, and the flow management module 25 executes a registration process in the flow table 26 based on the information (step B6).
[0064]
After completing the registration of the flow determination information, the IP module 21 instructs the L3 switch 10 to transmit the packet and ends the transmission processing of the received packet (Step B7).
[0065]
When the transfer chip 27 receives a packet belonging to the same flow next for the flow registered in the flow table 26 as described above, the transfer chip 27 performs a hash search based on only the destination IP address or a combination of the destination IP address and the source IP address. Is performed, the packet is hit, so this packet is transferred by hardware. If the flow of the received packet does not hit in another flow, an interrupt is notified to the software (step B1) and the operation returns to the operation.
[0066]
Referring to FIG. 8, the priority in the transmission process from the terminal 3 to the terminal 1 is normal, and the priority from the same terminal 3 to the terminal 2 is high.
[0067]
Next, the details of the transfer control information registration processing of the flow management module 25 will be described with reference to the flowchart of FIG. 4 and FIG.
[0068]
As a flow registration request process by the IP module 21, the IP module 21 calls the flow management module 25 with the flow determination information as an argument (Step C1). The flow management module 25 calculates the hash of the destination IP address of the flow determination information.
[0069]
As a result of the hash calculation, the generated numerical value is multiplied by the entry size (for example, 6 bytes) of the first hash head area 31 to obtain a corresponding entry in the first hash head area 31 (step C2).
[0070]
The on / off state of the mark bit of the obtained entry is checked (step C3). If it is on, the process jumps to (Step C10). In the initial state, the mark bit is off. If the mark bit is off, it is next checked with reference to the flow determination information whether the registration is made only with the destination IP address or with the combination of the destination IP address and the source IP address (step C4).
[0071]
In the case of registration with a set of the destination IP address and the source IP address, the mark bit is turned on (step C9). Then, it is checked whether or not the link field of the entry of the first hash head area 31 is null (step C15). If it is null, the process jumps to (Step C10).
[0072]
If it is not null, all the destination IP entries 33 linked to the link field are deleted, and the process jumps to (Step C16) and (Step 10) as empty destination IP entries 33.
[0073]
In the case where only the destination IP address is registered in the check in (Step C4), the flow management module 25 obtains an empty destination IP entry 33 and stores the destination IP address and the QoS information extracted from the flow determination information in the destination IP entry 33. , The discard information of the IP packet and the transmission port are entered (step C5). Next, the completed destination IP entry 33 is registered in the link field of the entry obtained from the hash value in the link field of the entry in the first hash head area 31 (step C6).
[0074]
FIG. 9 illustrates an example in which the destination IP entry 33 is linked to the first hash head area. The third entry of the first hash head area 31 is linked to a destination IP entry 33 having IP1 and IP3 as destination IP addresses, and the sixth entry is linked to a destination IP entry 33 of IP2.
[0075]
Next, a case where the flow determination information is a set of a destination IP address and a source IP address will be described.
[0076]
The destination IP address and the source IP address are used as a set and hash calculation is performed, and an entry of the second hash head area 32 is obtained from the hash value (step C10). Next, an empty destination transmission source IP entry 34 is obtained, and the destination IP address, transmission source IP address, QoS information, IP packet discard information and transmission port are entered (step C11). This is registered in the link field of the entry of the second hash head area 32 (step C12).
[0077]
FIG. 10 illustrates an example in which the sixth and eighth mark bits of the first hash head area 31 are turned on, and information corresponding to the second and eighth entries of the second hash head area 32 is stored. are doing.
[0078]
As can be understood from the above description, even when the flow determination information is registration of only the destination IP address, the mark bit of the hash position entry of the first hash head area 31 obtained by hash calculation of the destination IP address is already on. In this case, registration is performed in the second hash head area 32.
[0079]
It is apparent from the above description that the above-described destination IP address and source IP address are required to be completely identical in the hash calculation method used in the registration processing by the flow management module 25 and the search by the transfer chip 27. .
[0080]
In addition to the source IP address, when performing control specifying a flow including an L4 port number of TCP (Transmission Control Protocol) or UDP (User Datagram Protocol), the two-stage hash area described above is further added. It is possible to adopt a three-stage hash configuration in which a hash area including QoS information at the application program level corresponding to the one-stage port number is added.
[0081]
Further, in this case, by adding a protocol number for identifying TCP / UDP, etc., a destination port number, a source port number, etc. in addition to the destination IP address and the source IP address illustrated in FIG. A flow conscious of the application level is identified, and a QoS table 24 including the QoS information of the flow is provided. As a result of searching this QoS table 24 by the destination IP address, the transmission source IP address, the protocol number, the destination port number, and the transmission source port number, three levels are provided for matching levels.
[0082]
The first is when there is no match in the pair of the destination IP address and the source IP address, the second is when there is a match in the pair of the destination IP address and the source IP address, and the third is when the group includes the port number. This is the case when all match. Here, the first and second cases correspond to the contents described so far. The information to be hashed in the third case is a destination IP address, a source IP address, a protocol number, a destination port number, and a source port number, and any one of the protocol number, the destination port number, and the source port number is It can be omitted.
[0083]
In this case, the definition of the mark may mean that the process proceeds to the next-stage hash. However, the mark bit 1 and the mark bit 2 are provided in the first-stage hash entry, and both the mark bits 1 and 2 are turned off. If the mark bit 1 is on, the second stage is searched. If the mark bit 2 is on, the third stage is searched directly, and the process proceeds directly to the hash area of the specified number of stages. It may be the meaning to make it.
[0084]
When registering the transfer control information by the registration means 20, when performing the registration in the third case, first, the first IP address is hashed to obtain the first hash head area, the mark bit 1 is turned off, and the mark bit 2 is turned on. I do. Next, the above-mentioned hash target information is hashed to obtain a third stage table, and transfer control information including the hash target information and the QoS information is registered.
[0085]
When the mark bit 2 is on, the transfer chip accesses the TCP or UDP header of the received IP packet and extracts necessary information.
[0086]
As illustrated in FIG. 11, when a plurality of application programs operate on the same terminal, fine flow control can be performed for each application program identified by a port number.
[0087]
In the L2 transfer of the data link layer, the first stage may be applied to a destination MAC (Media Access Control) address, and the second stage may be applied to a source MAC address. In the L2 transfer, the first stage can be a destination MAC address, the second stage is a source MAC address, and the third stage is an Ethernet (registered trademark) type for identifying IP or IPX, and can have a three-stage hash configuration. Even in the case of a software router instead of the L3 switch 10, the present invention can be applied to an apparatus that uses a hash table only for a flow that performs high-speed transfer with priority.
[0088]
Based on the above contents, it can be generalized as follows.
[0089]
Data for identifying a flow to which a packet belongs, such as a destination MAC address, a transmission source MAC address, a destination IP address, and a transmission source IP address, is referred to as flow identification data. It divides into a plurality and gives numbers to each as a flow hierarchy. Using the divided flow identification information, a QoS table in which the flow and the QoS information of the flow are defined as one entry is prepared.
[0090]
The QoS table is searched based on the flow identification data of the received packet, and when there is a matching entry, the flow information and the flow hierarchy determined from the flow identification information of the entry and the QoS information are extracted.
[0091]
Next, the transmission port of the transmission destination of the packet is obtained from, for example, a routing table.
[0092]
The first address of the flow table 26 is accessed by hashing the destination address, and the flow hierarchy is recorded at the destination of the hash value. Finally, the flow identification information extracted from the QoS table 24 is hashed to access the table identified by the flow hierarchy, and the flow identification information, the QoS information, and the transmission port are recorded in a hash value destination.
[0093]
【The invention's effect】
The effect of the present invention is that a flow registered with only a destination IP address and a flow registered with a set of a destination IP address and a source IP address are managed in a single hash area, thereby enabling fine flow control. And rough flow control can be mixed, and it is possible to balance the memory for rough control used in the hash area with the memory for fine control.
[0094]
Even if they are mixed, a high-speed search can be performed while suppressing the number of lists having the same hash value.
[0095]
Further, when detailed control is not required, by registering only the destination IP entry, it is possible to suppress the memory usage and process a large amount of flows.
[0096]
Further, when the hash value is not distributed only by the destination IP address, the hash value including the transmission source IP address can be distributed.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration of an embodiment of the present invention.
FIG. 2 is a flowchart illustrating an operation of the exemplary embodiment of the present invention.
FIG. 3 is a flowchart illustrating an operation of the exemplary embodiment of the present invention.
FIG. 4 is a flowchart illustrating an operation of the exemplary embodiment of the present invention.
FIG. 5 is an explanatory diagram of a flow table according to the embodiment of this invention.
FIG. 6 is an explanatory diagram of a QoS table according to the embodiment of this invention.
FIG. 7 is an explanatory diagram of a routing table according to the embodiment of this invention.
FIG. 8 is an explanatory diagram of transmission priorities among terminals according to the embodiment of the present invention.
FIG. 9 is an explanatory diagram illustrating a state where a destination IP entry is linked to a first hash head area according to the embodiment of this invention.
FIG. 10 is an explanatory diagram illustrating a state where a destination transmission source IP entry is linked to a second hash head area according to the embodiment of this invention.
FIG. 11 is an explanatory diagram of transmission priorities among L4 port numbers according to the embodiment of this invention.
[Explanation of symbols]
20 Registration means
21 IP Module
22 Routing Table
23 QoS management module
24 QoS table
25 Flow management module
26 Flow Table
27 Transfer Chip
31 First hash head area
32 Second hash head area
33 Destination IP entry
34 Destination IP entry

Claims (10)

受信したIP(Internet Protocol)パケットをQoS(Quality of Service)情報と送出ポートを含む転送制御情報が登録されたフローテーブルを参照して中継する転送手段と、前記フローテーブルへの前記転送制御情報の登録を行う登録手段と、を含み、
前記登録手段は、前記IPパケットを受信すると、予め定義され、1つのエントリが宛先IPアドレスと送信元IPアドレスとQoS情報から構成されるQoSテーブルを前記IPパケットの有する前記宛先IPアドレスと前記送信元IPアドレスの組でサーチし、一致するエントリがないと、前記フローテーブルに前記宛先アドレスをハッシュしハッシュ値先に前記宛先IPアドレスの登録を行い、一致するエントリがあると、前記宛先IPアドレスと送信元IPアドレスの組をハッシュしてハッシュ値先に前記宛先IPアドレスと送信元IPアドレスの組を登録することを特徴とするIPフロー多段ハッシュ装置。
Transfer means for relaying a received IP (Internet Protocol) packet with reference to a flow table in which transfer control information including QoS (Quality of Service) information and a transmission port is registered, and transfer of the transfer control information to the flow table Registration means for performing registration,
The registration unit, upon receiving the IP packet, stores a QoS table, which is defined in advance and one entry is composed of a destination IP address, a source IP address, and QoS information, with the destination IP address included in the IP packet and the transmission. A search is performed with a set of original IP addresses, and if there is no matching entry, the destination address is hashed in the flow table and the destination IP address is registered at the destination of the hash value. An IP flow multi-stage hashing apparatus, wherein a set of the destination IP address and the source IP address is registered in a destination of the hash value by hashing a set of the IP flow and the source IP address.
受信したIPパケットをQoS情報と送出ポートを含む転送制御情報が登録されたフローテーブルを参照して中継する転送手段と、前記フローテーブルへの前記転送制御情報の登録を行う登録手段と、を含み、
前記登録手段は、前記フローテーブルを、第1のテーブルと第2のテーブルとに区分し、
前記第1のテーブルには、前記IPパケットの宛先IPアドレスをハッシュし、そのハッシュ値先に前記第1または第2のテーブルへのリンクをマークビットによって示し、前記宛先IPアドレスと前記QoS情報と前記送出ポートとが記述された0個以上の同一ハッシュ値を持つエントリを登録し、
前記第2のテーブルには、前記IPパケットの宛先IPアドレスと送信元IPアドレスを組にしてハッシュし、そのハッシュ値先に前期宛先IPアドレスと送信元IPアドレスの組と前記QoS情報と前記送出ポートとが記述された0個以上の同一ハッシュ値を持つエントリを登録し、
前記転送手段は、前記IPパケットを受信すると、前記宛先IPアドレスをハッシュして前記第1のテーブルのハッシュ値先をアクセスし、前記マークビットを参照し前記第1のテーブルへのリンクを検出すると、前記宛先IPアドレスによって前記第1のテーブルのハッシュ値先にリンクされた前記エントリをサーチし、一致する前記エントリを検出すると、該エントリに記述された前記QoS情報と前記送出ポートとに従い、前記IPパケットの中継を行い、
前記マークビットを参照し前記第2のテーブルへのリンクを検出すると、前記宛先IPアドレスと送信元IPアドレスの組をハッシュして前記第2のテーブルのハッシュ値先をアクセスし、ハッシュ値先にリンクされた前記エントリから同一の前記宛先IPアドレスと送信元IPアドレスの組を有する前記エントリをサーチし、一致する前記エントリを検出すると該エントリに記述された前記QoS情報と前記送出ポートとに従い、前記IPパケットの中継を行うことを特徴とするIPフロー多段ハッシュ装置。
A transfer unit that relays the received IP packet with reference to a flow table in which transfer control information including QoS information and a transmission port is registered; and a registration unit that registers the transfer control information in the flow table. ,
The registration unit divides the flow table into a first table and a second table,
In the first table, a destination IP address of the IP packet is hashed, a link to the first or second table is indicated by a mark bit ahead of the hash value, and the destination IP address, the QoS information, Register entries having the same hash value of 0 or more in which the transmission port is described,
In the second table, the destination IP address and the source IP address of the IP packet are hashed as a set, and the set of the destination IP address and the source IP address, the QoS information, and the transmission Register entries having the same hash value of 0 or more in which the port is described,
Upon receiving the IP packet, the transfer unit accesses the hash value destination of the first table by hashing the destination IP address, and refers to the mark bit to detect a link to the first table. Searching for the entry linked to the hash value destination of the first table by the destination IP address, and detecting the matching entry, according to the QoS information and the transmission port described in the entry, Relays IP packets,
When the link to the second table is detected with reference to the mark bit, the set of the destination IP address and the source IP address is hashed, the hash value destination of the second table is accessed, and the hash value destination is accessed. Searching for the entry having the same pair of the destination IP address and the source IP address from the linked entry, and detecting the matching entry, according to the QoS information and the transmission port described in the entry, An IP flow multi-stage hashing device for relaying the IP packet.
前記転送手段は、前記IPパケットを受信すると、前記宛先IPアドレスによる前記第1のテーブルの前記エントリの検索の実行、または前記宛先IPアドレスと送信元IPアドレスの組による前記第2のテーブルの前記エントリの検索を実行し、一致する前記エントリがないと前記登録手段に通知することを特徴とする請求項1または2いずれか1項記載のIPフロー多段ハッシュ装置。Upon receiving the IP packet, the transfer unit executes a search for the entry in the first table by the destination IP address, or executes the search of the second table by a set of the destination IP address and the source IP address. 3. The IP flow multi-stage hash apparatus according to claim 1, wherein a search for an entry is performed, and the registration unit is notified that there is no matching entry. 前記登録手段は、前記通知を受けると、前記宛先IPアドレス、前記送信元IPアドレス、前記QoS情報を含むQoSテーブルを前記受信したIPパケットのフローを特定する前記宛先IPアドレスと送信元IPアドレスを組にしてサーチし、一致するフローの登録があれば、前記宛先IPアドレスと送信元IPアドレスの組を前記第2のテーブルに登録し、前記宛先IPアドレスと送信元IPアドレスの組と一致するフローの登録がないと、前記宛先IPアドレスを前記第1のテーブルに登録することを特徴とする請求項1ないし3いずれか1項記載のIPフロー多段ハッシュ装置。Upon receiving the notification, the registration unit stores a QoS table including the destination IP address, the source IP address, and the QoS information with the destination IP address and the source IP address that specify the flow of the received IP packet. If a match is found and a matching flow is registered, the set of the destination IP address and the source IP address is registered in the second table, and matches the set of the destination IP address and the source IP address. 4. The multi-stage IP flow hash device according to claim 1, wherein, when no flow is registered, the destination IP address is registered in the first table. 受信したIPパケットをQoS情報と送出ポートを含む転送制御情報が登録されたフローテーブルを参照して中継する転送手段と、前記フローテーブルへの転送制御情報の登録を行う登録手段と、を含み、
前記登録手段は、前記フローテーブルを、第1のテーブルと第2のテーブルと第3のテーブルに区分し、
前記第1のテーブルには、前記IPパケットの宛先IPアドレスをハッシュし、そのハッシュ値先に前記第1または前記第2または前記第3のテーブルへのリンクをマークビットによって示し、前記宛先IPアドレスと前記QoS情報と前記送出ポートとが記述された0個以上の同一ハッシュ値を持つエントリを登録し、
前記第2のテーブルには、前記IPパケットの宛先IPアドレスと送信元IPアドレスを組にしてハッシュし、そのハッシュ値先に前期宛先IPアドレスと送信元IPアドレスの組と前記QoS情報と前記送出ポートとが記述された0個以上の同一ハッシュ値を持つエントリを登録し、
前記第3のテーブルには、前記IPパケットの宛先IPアドレスと送信元IPアドレスとプロトコル番号と宛先ポート番号と送信元ポート番号を組にしてハッシュし、そのハッシュ値先に前期宛先IPアドレスと送信元IPアドレスとプロトコル番号と宛先ポート番号と送信元ポート番号の組と前記QoS情報と前記送出ポートとが記述された0個以上の同一ハッシュ値を持つエントリを登録し、
前記転送手段は、前記IPパケットを受信すると、前記宛先IPアドレスをハッシュして前記第1のテーブルをアクセスし、アクセスの結果、前記第2のテーブルへのリンクを検出すると、前記宛先IPアドレスと送信元IPアドレスの組をハッシュして前記第2のテーブルをアクセスし、アクセス先の前記エントリから同一の前記宛先IPアドレスと送信元IPアドレスの組を有する前記エントリをサーチし、一致する前記エントリを検出すると該エントリに記述された前記QoS情報と前記送出ポートとに従って前記IPパケットの中継を行い、
前記転送手段は、前記IPパケットを受信すると、前記宛先IPアドレスをハッシュして前記第1のテーブルをアクセスし、アクセスの結果、前記第3のテーブルへのリンクを検出すると、前記宛先IPアドレスと送信元IPアドレスとプロトコル番号と宛先ポート番号と送信元ポート番号の組をハッシュして前記第3のテーブルをアクセスし、アクセス先の前記エントリから同一の前記宛先IPアドレスと送信元IPアドレスとプロトコル番号と宛先ポート番号と送信元ポート番号の組を有する前記エントリをサーチし、一致する前記エントリを検出すると該エントリに記述された前記QoS情報と前記送出ポートとに従って前記IPパケットの中継を行うことを特徴とするIPフロー多段ハッシュ装置。
A transfer unit that relays the received IP packet with reference to a flow table in which transfer control information including QoS information and a transmission port is registered, and a registration unit that registers transfer control information in the flow table;
The registration unit divides the flow table into a first table, a second table, and a third table,
In the first table, a destination IP address of the IP packet is hashed, and a link to the first, second, or third table is indicated by a mark bit ahead of the hash value, and the destination IP address is indicated. And zero or more entries having the same hash value in which the QoS information and the transmission port are described,
In the second table, the destination IP address and the source IP address of the IP packet are hashed as a set, and the set of the destination IP address and the source IP address, the QoS information, and the transmission Register entries having the same hash value of 0 or more in which the port is described,
The third table has a set of a destination IP address, a source IP address, a protocol number, a destination port number, and a source port number of the IP packet, and performs hashing. Registering an entry having zero or more identical hash values that describes a set of a source IP address, a protocol number, a destination port number, a source port number, the QoS information, and the transmission port,
The transfer means, upon receiving the IP packet, accesses the first table by hashing the destination IP address, and upon detecting a link to the second table as a result of the access, sets the destination IP address and Accessing the second table by hashing a set of source IP addresses, searching for the entry having the same set of destination IP address and source IP address from the entry of the access destination, and matching the entry And relaying the IP packet according to the QoS information and the transmission port described in the entry,
The transfer means, upon receiving the IP packet, accesses the first table by hashing the destination IP address, and upon detecting a link to the third table as a result of the access, sets the destination IP address and The third table is accessed by hashing a set of a source IP address, a protocol number, a destination port number, and a source port number, and the same destination IP address, source IP address, and protocol are obtained from the entry of the access destination. Searching for the entry having a set of a number, a destination port number, and a source port number, and relaying the IP packet according to the QoS information described in the entry and the transmission port when the matching entry is detected. An IP flow multi-stage hashing apparatus characterized by the above-mentioned.
受信したIPパケットをQoS情報と送出ポートを含む転送制御情報が登録されたフローテーブルを参照して送信先に中継する第1のステップと、
前記第1のステップにおいて前記フローテーブルに前記送信先の登録が無いと、前記送信先の登録を行う登録手段を呼び出す第2のステップと、
前記登録手段は前記呼び出しを受けると、前記IPパケットの宛先IPアドレスと送信元アドレスの組を元に、前記宛先IPアドレスと前記送信元IPアドレスとQoS情報を含むフローについてのQoSを定義したQoSテーブルをサーチし、一致するしないのマッチング情報とQoS情報とを取り出す第3のステップと、
前記宛先IPアドレスによって前記フローテーブルに前記送信先の登録を行うか、前記宛先IPアドレスと送信元IPアドレスの組によって前記送信先の登録を行うかを前記マッチング情報から決定する第4のステップと、
宛先IPアドレスからルーティングテーブルを参照して送出ポートを取り出す第5のステップと、
前記宛先IPアドレスによって前記送信先を登録する場合、前記宛先IPアドレスをハッシュして前記フローテーブルの第1のテーブルをアクセスし、そのハッシュ値先に前記宛先IPアドレスと前記QoS情報と前記送出ポートとを登録し、
前記宛先IPアドレスと送信元IPアドレスの組で前記送信先を登録する場合、前記宛先IPアドレスをハッシュして前記第1のテーブルをアクセスしハッシュ値先に前記フローテーブルの第2のテーブルへのリンクを記すとともに、前記宛先IPアドレスと送信元IPアドレスの組をハッシュして前記第2のテーブルをアクセスし、そのハッシュ値先に前期宛先IPアドレスと送信元IPアドレスの組と前記QoS情報と前記送出ポートとを登録する第6のステップと、
を備えることを特徴とするIPフロー多段ハッシュ方法。
A first step of relaying the received IP packet to a destination by referring to a flow table in which transfer control information including QoS information and a transmission port is registered;
A second step of calling a registration unit for registering the destination if the destination is not registered in the flow table in the first step;
Upon receiving the call, the registration unit defines a QoS for a flow including the destination IP address, the source IP address, and QoS information based on a set of a destination IP address and a source address of the IP packet. A third step of searching the table and extracting matching information and QoS information that do not match;
A fourth step of determining from the matching information whether to register the transmission destination in the flow table by the destination IP address or to register the transmission destination by a set of the destination IP address and the transmission source IP address; ,
A fifth step of extracting a transmission port by referring to a routing table from a destination IP address;
When the destination is registered by the destination IP address, the destination IP address is hashed to access the first table of the flow table, and the destination IP address, the QoS information, and the transmission port are added to the hash value destination. And register
When registering the destination with the set of the destination IP address and the source IP address, the destination IP address is hashed, the first table is accessed, and the hash value is stored in the second table of the flow table. A link is described, the set of the destination IP address and the source IP address are hashed, the second table is accessed, and the set of the destination IP address and the source IP address, the QoS information and A sixth step of registering the sending port;
An IP flow multi-stage hashing method comprising:
コンピュータに、
受信したIPパケットをQoS情報と送出ポートを含む転送制御情報が登録されたフローテーブルを参照して送信先に中継する第1のステップと、
前記第1のステップにおいて前記フローテーブルに前記送信先の登録が無いと、前記送信先の登録を行う登録手段を呼び出す第2のステップと、
前記登録手段は前記呼び出しを受けると、前記IPパケットの宛先IPアドレスと送信元アドレスの組を元に、前記宛先IPアドレスと前記送信元IPアドレスとQoS情報を含むフローについてのQoSを定義したQoSテーブルをサーチし、一致するしないのマッチング情報とQoS情報とを取り出す第3のステップと、
前記宛先IPアドレスによって前記フローテーブルに前記送信先の登録を行うか、前記宛先IPアドレスと送信元IPアドレスの組によって前記送信先の登録を行うかを前記マッチング情報から決定する第4のステップと、
宛先IPアドレスからルーティングテーブルを参照して送出ポートを取り出す第5のステップと、
前記宛先IPアドレスによって前記送信先を登録する場合、前記宛先IPアドレスをハッシュして前記フローテーブルの第1のテーブルをアクセスし、そのハッシュ値先に前記宛先IPアドレスと前記QoS情報と前記送出ポートとを登録し、
前記宛先IPアドレスと送信元IPアドレスの組で前記送信先を登録する場合、前記宛先IPアドレスをハッシュして前記第1のテーブルをアクセスしハッシュ値先に前記フローテーブルの第2のテーブルへのリンクを記すとともに、前記宛先IPアドレスと送信元IPアドレスの組をハッシュして前記第2のテーブルをアクセスし、そのハッシュ値先に前期宛先IPアドレスと送信元IPアドレスの組と前記QoS情報と前記送出ポートとを登録する第6のステップと、
を実行させるためのIPフロー多段ハッシュプログラム。
On the computer,
A first step of relaying the received IP packet to a destination by referring to a flow table in which transfer control information including QoS information and a transmission port is registered;
A second step of calling a registration unit for registering the destination if the destination is not registered in the flow table in the first step;
Upon receiving the call, the registration unit defines a QoS for a flow including the destination IP address, the source IP address, and QoS information based on a set of a destination IP address and a source address of the IP packet. A third step of searching the table and extracting matching information and QoS information that do not match;
A fourth step of determining from the matching information whether to register the transmission destination in the flow table by the destination IP address or to register the transmission destination by a set of the destination IP address and the transmission source IP address; ,
A fifth step of extracting a transmission port by referring to a routing table from a destination IP address;
When the destination is registered by the destination IP address, the destination IP address is hashed to access the first table of the flow table, and the destination IP address, the QoS information, and the transmission port are added to the hash value destination. And register
When registering the destination with the set of the destination IP address and the source IP address, the destination IP address is hashed, the first table is accessed, and the hash value is stored in the second table of the flow table. A link is described, the set of the destination IP address and the source IP address are hashed, the second table is accessed, and the set of the destination IP address and the source IP address, the QoS information and A sixth step of registering the sending port;
An IP flow multi-stage hash program for executing the program.
受信したIPパケットをQoS情報と送出ポートを含む転送制御情報が登録されたフローテーブルを参照して送信先に中継するコンピュータに実行させるIPフロー多段ハッシュプログラムであって、
前記IPパケットの宛先IPアドレスと送信元アドレスの組を元に、前記宛先IPアドレスと前記送信元IPアドレスとQoS情報を含むフローについてのQoSを定義したQoSテーブルをサーチし、一致するしないのマッチング情報とQoS情報とを取り出す第1のステップと、
前記宛先IPアドレスによって前記フローテーブルに前記送信先の登録を行うか、前記宛先IPアドレスと送信元IPアドレスの組によって前記送信先の登録を行うかを前記マッチング情報から決定する第2のステップと、
宛先IPアドレスからルーティングテーブルを参照して送出ポートを取り出す第3のステップと、
前記宛先IPアドレスによって前記送信先を登録する場合、前記宛先IPアドレスをハッシュして前記フローテーブルの第1のテーブルをアクセスし、そのハッシュ値先に前記宛先IPアドレスと前記QoS情報と前記送出ポートとを登録し、
前記宛先IPアドレスと送信元IPアドレスの組で前記送信先を登録する場合、前記宛先IPアドレスをハッシュして前記第1のテーブルをアクセスしハッシュ値先に前記フローテーブルの第2のテーブルへのリンクを記すとともに、前記宛先IPアドレスと送信元IPアドレスの組をハッシュして前記第2のテーブルをアクセスし、そのハッシュ値先に前期宛先IPアドレスと送信元IPアドレスの組と前記QoS情報と前記送出ポートとを登録する第4のステップと、
を備えることを特徴とするIPフロー多段ハッシュプログラム。
An IP flow multi-stage hash program for causing a computer relaying to a destination to execute a received IP packet with reference to a flow table in which transfer control information including QoS information and a transmission port is registered,
Based on a set of a destination IP address and a source address of the IP packet, a QoS table that defines a QoS for a flow including the destination IP address, the source IP address, and QoS information is searched, and a match that does not match is searched. A first step of retrieving information and QoS information;
A second step of determining from the matching information whether to register the destination in the flow table by the destination IP address or to register the destination by a set of the destination IP address and the source IP address; ,
A third step of extracting a transmission port by referring to a routing table from a destination IP address;
When the destination is registered by the destination IP address, the destination IP address is hashed to access the first table of the flow table, and the destination IP address, the QoS information, and the transmission port are added to the hash value destination. And register
When registering the destination with the set of the destination IP address and the source IP address, the destination IP address is hashed, the first table is accessed, and the hash value is stored in the second table of the flow table. A link is described, the set of the destination IP address and the source IP address are hashed, the second table is accessed, and the set of the destination IP address and the source IP address, the QoS information and A fourth step of registering the transmission port;
An IP flow multi-stage hash program, comprising:
コンピュータに、
受信したIPパケットをQoS情報と送出ポートを含む転送制御情報が登録されたフローテーブルを参照して送信先に中継する第1のステップと、
前記第1のステップにおいて前記フローテーブルに前記送信先の登録が無いと、前記送信先の登録を行う登録手段を呼び出す第2のステップと、
前記登録手段は前記呼び出しを受けると、前記IPパケットの宛先IPアドレスと送信元アドレスの組を元に、前記宛先IPアドレスと前記送信元IPアドレスとQoS情報を含むフローについてのQoSを定義したQoSテーブルをサーチし、一致するしないのマッチング情報とQoS情報とを取り出す第3のステップと、
前記宛先IPアドレスによって前記フローテーブルに前記送信先の登録を行うか、前記宛先IPアドレスと送信元IPアドレスの組によって前記送信先の登録を行うかを前記マッチング情報から決定する第4のステップと、
宛先IPアドレスからルーティングテーブルを参照して送出ポートを取り出す第5のステップと、
前記宛先IPアドレスによって前記送信先を登録する場合、前記宛先IPアドレスをハッシュして前記フローテーブルの第1のテーブルをアクセスし、そのハッシュ値先に前記宛先IPアドレスと前記QoS情報と前記送出ポートとを登録し、
前記宛先IPアドレスと送信元IPアドレスの組で前記送信先を登録する場合、前記宛先IPアドレスをハッシュして前記第1のテーブルをアクセスしハッシュ値先に前記フローテーブルの第2のテーブルへのリンクを記すとともに、前記宛先IPアドレスと送信元IPアドレスの組をハッシュして前記第2のテーブルをアクセスし、そのハッシュ値先に前期宛先IPアドレスと送信元IPアドレスの組と前記QoS情報と前記送出ポートとを登録する第6のステップと、
を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
On the computer,
A first step of relaying the received IP packet to a destination by referring to a flow table in which transfer control information including QoS information and a transmission port is registered;
A second step of calling a registration unit for registering the destination if the destination is not registered in the flow table in the first step;
Upon receiving the call, the registration unit defines a QoS for a flow including the destination IP address, the source IP address, and QoS information based on a set of a destination IP address and a source address of the IP packet. A third step of searching the table and extracting matching information and QoS information that do not match;
A fourth step of determining from the matching information whether to register the transmission destination in the flow table by the destination IP address or to register the transmission destination by a set of the destination IP address and the transmission source IP address; ,
A fifth step of extracting a transmission port by referring to a routing table from a destination IP address;
When the destination is registered by the destination IP address, the destination IP address is hashed to access the first table of the flow table, and the destination IP address, the QoS information, and the transmission port are added to the hash value destination. And register
When registering the destination with the set of the destination IP address and the source IP address, the destination IP address is hashed, the first table is accessed, and the hash value is stored in the second table of the flow table. A link is described, the set of the destination IP address and the source IP address are hashed, the second table is accessed, and the set of the destination IP address and the source IP address, the QoS information and A sixth step of registering the sending port;
And a computer-readable recording medium on which a program for executing the program is recorded.
受信したIPパケットをQoS情報と送出ポートを含む転送制御情報が登録されたフローテーブルを参照して送信先に中継するコンピュータに実行させるIPフロー多段ハッシュプログラムを記録した記録媒体であって、
前記IPパケットの宛先IPアドレスと送信元アドレスの組を元に、前記宛先IPアドレスと前記送信元IPアドレスとQoS情報を含むフローについてのQoSを定義したQoSテーブルをサーチし、一致するしないのマッチング情報とQoS情報とを取り出す第1のステップと、
前記宛先IPアドレスによって前記フローテーブルに前記送信先の登録を行うか、前記宛先IPアドレスと送信元IPアドレスの組によって前記送信先の登録を行うかを前記マッチング情報から決定する第2のステップと、
宛先IPアドレスからルーティングテーブルを参照して送出ポートを取り出す第3のステップと、
前記宛先IPアドレスによって前記送信先を登録する場合、前記宛先IPアドレスをハッシュして前記フローテーブルの第1のテーブルをアクセスし、そのハッシュ値先に前記宛先IPアドレスと前記QoS情報と前記送出ポートとを登録し、
前記宛先IPアドレスと送信元IPアドレスの組で前記送信先を登録する場合、前記宛先IPアドレスをハッシュして前記第1のテーブルをアクセスしハッシュ値先に前記フローテーブルの第2のテーブルへのリンクを記すとともに、前記宛先IPアドレスと送信元IPアドレスの組をハッシュして前記第2のテーブルをアクセスし、そのハッシュ値先に前期宛先IPアドレスと送信元IPアドレスの組と前記QoS情報と前記送出ポートとを登録する第4のステップと、
を備えるプログラムを記録したコンピュータ読み取り可能な記録媒体。
A recording medium recording an IP flow multi-stage hash program for causing a computer relaying to a destination to execute a received IP packet by referring to a flow table in which transfer control information including QoS information and a transmission port is registered,
Based on a set of a destination IP address and a source address of the IP packet, a QoS table that defines a QoS for a flow including the destination IP address, the source IP address, and QoS information is searched, and a match that does not match is searched. A first step of retrieving information and QoS information;
A second step of determining from the matching information whether to register the destination in the flow table by the destination IP address or to register the destination by a set of the destination IP address and the source IP address; ,
A third step of extracting a transmission port by referring to a routing table from a destination IP address;
When the destination is registered by the destination IP address, the destination IP address is hashed to access the first table of the flow table, and the destination IP address, the QoS information, and the transmission port are added to the hash value destination. And register
When registering the destination with the set of the destination IP address and the source IP address, the destination IP address is hashed, the first table is accessed, and the hash value is stored in the second table of the flow table. A link is described, the set of the destination IP address and the source IP address are hashed, the second table is accessed, and the set of the destination IP address and the source IP address, the QoS information and A fourth step of registering the transmission port;
A computer-readable recording medium recording a program comprising:
JP2002209282A 2002-07-18 2002-07-18 IP flow multi-stage hash device, IP flow multi-stage hash method, IP flow multi-stage hash program, and recording medium thereof Expired - Fee Related JP3711965B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002209282A JP3711965B2 (en) 2002-07-18 2002-07-18 IP flow multi-stage hash device, IP flow multi-stage hash method, IP flow multi-stage hash program, and recording medium thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002209282A JP3711965B2 (en) 2002-07-18 2002-07-18 IP flow multi-stage hash device, IP flow multi-stage hash method, IP flow multi-stage hash program, and recording medium thereof

Publications (2)

Publication Number Publication Date
JP2004056340A true JP2004056340A (en) 2004-02-19
JP3711965B2 JP3711965B2 (en) 2005-11-02

Family

ID=31933170

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002209282A Expired - Fee Related JP3711965B2 (en) 2002-07-18 2002-07-18 IP flow multi-stage hash device, IP flow multi-stage hash method, IP flow multi-stage hash program, and recording medium thereof

Country Status (1)

Country Link
JP (1) JP3711965B2 (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008070961A (en) * 2006-09-12 2008-03-27 Nippon Telegr & Teleph Corp <Ntt> Message transfer system and message transfer program
JP2009525709A (en) * 2006-02-01 2009-07-09 ココ・コミュニケーションズ・コーポレーション Protocol line layer
WO2010103909A1 (en) * 2009-03-09 2010-09-16 日本電気株式会社 OpenFlow COMMUNICATION SYSTEM AND OpenFlow COMMUNICATION METHOD
WO2010116606A1 (en) 2009-03-30 2010-10-14 日本電気株式会社 Communication flow control system, communication flow control method, and communication flow processing program
JP2010288168A (en) * 2009-06-15 2010-12-24 Fujitsu Ltd Switch, and address learning method
US8015315B2 (en) * 2007-03-09 2011-09-06 Cisco Technology, Inc. Compression of IPV6 addresses in a netflow directory
WO2011132568A1 (en) 2010-04-19 2011-10-27 日本電気株式会社 Switch, and flow table control method
WO2012033041A1 (en) * 2010-09-09 2012-03-15 日本電気株式会社 Computer system and communication method in computer system
US8780721B2 (en) 2009-10-06 2014-07-15 Nec Corporation Network system, controller, method, and program
TWI456950B (en) * 2010-10-28 2014-10-11 Nec Corp Network system and communication traffic control method
US20160021001A1 (en) * 2013-03-29 2016-01-21 Fujitsu Limited Communication control apparatus, communication control method, communication system, and recording medium
JP2018033017A (en) * 2016-08-25 2018-03-01 日本電信電話株式会社 Network processing apparatus and packet processing method

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009525709A (en) * 2006-02-01 2009-07-09 ココ・コミュニケーションズ・コーポレーション Protocol line layer
US10116561B2 (en) 2006-02-01 2018-10-30 Coco Communications Corp. Protocol circuit layer
US9246808B2 (en) 2006-02-01 2016-01-26 Coco Communications Corp. Protocol circuit layer
US8665710B2 (en) 2006-02-01 2014-03-04 Coco Communications Corp. Protocol circuit layer
US8208466B2 (en) 2006-02-01 2012-06-26 Coco Communications Corp. Protocol circuit layer
JP2008070961A (en) * 2006-09-12 2008-03-27 Nippon Telegr & Teleph Corp <Ntt> Message transfer system and message transfer program
JP4620022B2 (en) * 2006-09-12 2011-01-26 日本電信電話株式会社 Message transfer system and message transfer program
US8015315B2 (en) * 2007-03-09 2011-09-06 Cisco Technology, Inc. Compression of IPV6 addresses in a netflow directory
US8605734B2 (en) 2009-03-09 2013-12-10 Nec Corporation OpenFlow communication system and OpenFlow communication method
WO2010103909A1 (en) * 2009-03-09 2010-09-16 日本電気株式会社 OpenFlow COMMUNICATION SYSTEM AND OpenFlow COMMUNICATION METHOD
JP5408243B2 (en) * 2009-03-09 2014-02-05 日本電気株式会社 OpenFlow communication system and OpenFlow communication method
JP2014112927A (en) * 2009-03-30 2014-06-19 Nec Corp Communication system, controller, and communication method
WO2010116606A1 (en) 2009-03-30 2010-10-14 日本電気株式会社 Communication flow control system, communication flow control method, and communication flow processing program
EP2741458A2 (en) 2009-03-30 2014-06-11 Nec Corporation Communication flow control system, communication flow control method, and communication flow processing program
US10084714B2 (en) 2009-03-30 2018-09-25 Nec Corporation Communication flow control system, communication flow control method, and communication flow processing program
US9635119B2 (en) 2009-03-30 2017-04-25 Nec Corporation Communication flow control system, communication flow control method, and communication flow processing program
JP4688946B2 (en) * 2009-06-15 2011-05-25 富士通株式会社 Switch and address learning method
JP2010288168A (en) * 2009-06-15 2010-12-24 Fujitsu Ltd Switch, and address learning method
US8780721B2 (en) 2009-10-06 2014-07-15 Nec Corporation Network system, controller, method, and program
WO2011132568A1 (en) 2010-04-19 2011-10-27 日本電気株式会社 Switch, and flow table control method
US8971342B2 (en) 2010-04-19 2015-03-03 Nec Corporation Switch and flow table controlling method
KR101478475B1 (en) * 2010-09-09 2014-12-31 닛본 덴끼 가부시끼가이샤 Computer system and communication method in computer system
US9215175B2 (en) 2010-09-09 2015-12-15 Nec Corporation Computer system including controller and plurality of switches and communication method in computer system
WO2012033041A1 (en) * 2010-09-09 2012-03-15 日本電気株式会社 Computer system and communication method in computer system
TWI461032B (en) * 2010-09-09 2014-11-11 Nec Corp Computer system and communication method in the computer system
CN103081418A (en) * 2010-09-09 2013-05-01 日本电气株式会社 Computer system and communication method in computer system
TWI456950B (en) * 2010-10-28 2014-10-11 Nec Corp Network system and communication traffic control method
US10009265B2 (en) * 2013-03-29 2018-06-26 Fujitsu Limited Communication control apparatus, communication control method, communication system, and recording medium
US20160021001A1 (en) * 2013-03-29 2016-01-21 Fujitsu Limited Communication control apparatus, communication control method, communication system, and recording medium
JP2018033017A (en) * 2016-08-25 2018-03-01 日本電信電話株式会社 Network processing apparatus and packet processing method

Also Published As

Publication number Publication date
JP3711965B2 (en) 2005-11-02

Similar Documents

Publication Publication Date Title
US6957272B2 (en) Stackable lookup engines
US7353332B2 (en) Switching circuit implementing variable string matching
JP5567641B2 (en) How to provide virtual router functionality
US6987735B2 (en) System and method for enhancing the availability of routing systems through equal cost multipath
EP1754349B1 (en) Hardware filtering support for denial-of-service attacks
US20060242313A1 (en) Network content processor including packet engine
US7764672B2 (en) Packet communication device
US8767757B1 (en) Packet forwarding system and method using patricia trie configured hardware
US20050171937A1 (en) Memory efficient hashing algorithm
US20020110122A1 (en) Dynamic packet processor architecture
JP3957570B2 (en) Router device
EP2604006B1 (en) Method and apparatus for packet processing and a preprocessor
US8555374B2 (en) High performance packet processing using a general purpose processor
US7624226B1 (en) Network search engine (NSE) and method for performing interval location using prefix matching
JP2004056340A (en) Ip flow multistage hash apparatus, ip flow multistage hash method, ip flow multistage hash program, and recording medium therefor
WO2007000092A1 (en) A network processor
US20060221850A1 (en) Field content based packet classification
JP2002271379A (en) Soft multi-contract rate polishing
US6950429B2 (en) IP data transmission network using a route selection based on level 4/5 protocol information
CN116545921A (en) Message forwarding method, device, equipment and storage medium based on ECMP
US7177313B2 (en) Method and system for converting ranges into overlapping prefixes for a longest prefix match
EP1128611A2 (en) Method for table lookup
US7590112B2 (en) Packet forwarding apparatus of high speed routing system and routing lookup method using the same
JP3950895B2 (en) Communication system and communication method
US8806059B1 (en) Rule tree for network device

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050307

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050317

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050808

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees