JP3711965B2 - Ipフロー多段ハッシュ装置、ipフロー多段ハッシュ方法、ipフロー多段ハッシュプログラム及びその記録媒体 - Google Patents
Ipフロー多段ハッシュ装置、ipフロー多段ハッシュ方法、ipフロー多段ハッシュプログラム及びその記録媒体 Download PDFInfo
- Publication number
- JP3711965B2 JP3711965B2 JP2002209282A JP2002209282A JP3711965B2 JP 3711965 B2 JP3711965 B2 JP 3711965B2 JP 2002209282 A JP2002209282 A JP 2002209282A JP 2002209282 A JP2002209282 A JP 2002209282A JP 3711965 B2 JP3711965 B2 JP 3711965B2
- Authority
- JP
- Japan
- Prior art keywords
- destination
- address
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
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(Media
Access 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エントリ
【発明の属する技術分野】
本発明は、ネットワーク中継装置において、送信先ポートを決定するハッシュテーブルの制御に関し、特にフローの持つ特性に従い、宛先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(Media
Access 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エントリ
Claims (10)
- 受信したIP(Internet Protocol)パケットをQoS(Quality of Service)情報と送出ポートを含む転送制御情報が登録されたフローテーブルを参照して中継する転送手段と、前記フローテーブルへの前記転送制御情報の登録を行う登録手段と、を含み、
前記登録手段は、前記IPパケットを受信すると、予め定義され、1つのエントリが宛先IPアドレスと送信元IPアドレスとQoS情報から構成されるQoSテーブルを前記IPパケットの有する前記宛先IPアドレスと前記送信元IPアドレスの組でサーチし、一致するエントリがないと、前記フローテーブルに前記宛先アドレスをハッシュしハッシュ値先に前記宛先IPアドレスの登録を行い、一致するエントリがあると、前記宛先IPアドレスと送信元IPアドレスの組をハッシュしてハッシュ値先に前記宛先IPアドレスと送信元IPアドレスの組を登録することを特徴とする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パケットの中継を行うことを特徴とするIPフロー多段ハッシュ装置。 - 前記転送手段は、前記IPパケットを受信すると、前記宛先IPアドレスによる前記第1のテーブルの前記エントリの検索の実行、または前記宛先IPアドレスと送信元IPアドレスの組による前記第2のテーブルの前記エントリの検索を実行し、一致する前記エントリがないと前記登録手段に通知することを特徴とする請求項1または2いずれか1項記載のIPフロー多段ハッシュ装置。
- 前記登録手段は、前記通知を受けると、前記宛先IPアドレス、前記送信元IPアドレス、前記QoS情報を含むQoSテーブルを前記受信したIPパケットのフローを特定する前記宛先IPアドレスと送信元IPアドレスを組にしてサーチし、一致するフローの登録があれば、前記宛先IPアドレスと送信元IPアドレスの組を前記第2のテーブルに登録し、前記宛先IPアドレスと送信元IPアドレスの組と一致するフローの登録がないと、前記宛先IPアドレスを前記第1のテーブルに登録することを特徴とする請求項1ないし3いずれか1項記載の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パケットの中継を行うことを特徴とする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のステップと、
を備えることを特徴とする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のステップと、
を実行させるためのIPフロー多段ハッシュプログラム。 - 受信した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フロー多段ハッシュプログラム。 - コンピュータに、
受信した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パケットを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のステップと、
を備えるプログラムを記録したコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002209282A JP3711965B2 (ja) | 2002-07-18 | 2002-07-18 | Ipフロー多段ハッシュ装置、ipフロー多段ハッシュ方法、ipフロー多段ハッシュプログラム及びその記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002209282A JP3711965B2 (ja) | 2002-07-18 | 2002-07-18 | Ipフロー多段ハッシュ装置、ipフロー多段ハッシュ方法、ipフロー多段ハッシュプログラム及びその記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004056340A JP2004056340A (ja) | 2004-02-19 |
JP3711965B2 true JP3711965B2 (ja) | 2005-11-02 |
Family
ID=31933170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002209282A Expired - Fee Related JP3711965B2 (ja) | 2002-07-18 | 2002-07-18 | Ipフロー多段ハッシュ装置、ipフロー多段ハッシュ方法、ipフロー多段ハッシュプログラム及びその記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3711965B2 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101411047A (zh) | 2006-02-01 | 2009-04-15 | 科科通信公司 | 协议电路层 |
JP4620022B2 (ja) * | 2006-09-12 | 2011-01-26 | 日本電信電話株式会社 | メッセージ転送システムおよびメッセージ転送プログラム |
US8015315B2 (en) * | 2007-03-09 | 2011-09-06 | Cisco Technology, Inc. | Compression of IPV6 addresses in a netflow directory |
CN102349268B (zh) * | 2009-03-09 | 2015-11-25 | 日本电气株式会社 | OpenFlow通信***和OpenFlow通信方法 |
CN102369703B (zh) | 2009-03-30 | 2014-10-29 | 日本电气株式会社 | 通信流控制***、通信流控制方法和通信流处理程序 |
JP4688946B2 (ja) * | 2009-06-15 | 2011-05-25 | 富士通株式会社 | スイッチ及びアドレス学習方法 |
JP5652400B2 (ja) | 2009-10-06 | 2015-01-14 | 日本電気株式会社 | ネットワークシステムとコントローラ、方法とプログラム |
EP2562970B1 (en) | 2010-04-19 | 2015-01-07 | Nec Corporation | Switch, and flow table control method |
EP2615782A4 (en) * | 2010-09-09 | 2016-11-30 | Nec Corp | COMPUTER SYSTEM AND COMMUNICATION METHOD IN THE COMPUTER SYSTEM |
RU2576480C2 (ru) * | 2010-10-28 | 2016-03-10 | Нек Корпорейшн | Сетевая система и способ управления трафиком связи |
WO2014155699A1 (ja) * | 2013-03-29 | 2014-10-02 | 富士通株式会社 | 通信制御装置,通信制御方法,通信システム,プログラム,記録媒体 |
JP2018033017A (ja) * | 2016-08-25 | 2018-03-01 | 日本電信電話株式会社 | ネットワーク処理装置およびパケット処理方法 |
-
2002
- 2002-07-18 JP JP2002209282A patent/JP3711965B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004056340A (ja) | 2004-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6987735B2 (en) | System and method for enhancing the availability of routing systems through equal cost multipath | |
US7558268B2 (en) | Apparatus and method for combining forwarding tables in a distributed architecture router | |
US9071529B2 (en) | Method and apparatus for accelerating forwarding in software-defined networks | |
US7167474B2 (en) | Network relaying apparatus and network relaying method capable of high-speed routing and packet transfer | |
US6683885B1 (en) | Network relaying apparatus and network relaying method | |
US7088716B2 (en) | Network routing apparatus | |
US6990106B2 (en) | Classification and tagging rules for switching nodes | |
US8767757B1 (en) | Packet forwarding system and method using patricia trie configured hardware | |
US10778721B1 (en) | Hash-based ACL lookup offload | |
US20010048661A1 (en) | Method and apparatus for multi-protocol redundant router protocol support | |
US9559953B2 (en) | Path splitting with a connection-oriented network | |
US7764672B2 (en) | Packet communication device | |
JP3711965B2 (ja) | Ipフロー多段ハッシュ装置、ipフロー多段ハッシュ方法、ipフロー多段ハッシュプログラム及びその記録媒体 | |
US20070115966A1 (en) | Compact packet operation device and method | |
US7624226B1 (en) | Network search engine (NSE) and method for performing interval location using prefix matching | |
US6658003B1 (en) | Network relaying apparatus and network relaying method capable of high-speed flow detection | |
US6950429B2 (en) | IP data transmission network using a route selection based on level 4/5 protocol information | |
EP1128611A2 (en) | Method for table lookup | |
US6671277B1 (en) | Network relaying apparatus and network relaying method capable of high quality transfer of packets under stable service quality control | |
US8806059B1 (en) | Rule tree for network device | |
JP3591492B2 (ja) | パケット振分装置およびパケット振分プログラム | |
JP2005278215A (ja) | 通信システムおよび通信方法 | |
WO2011012081A1 (zh) | 一种通信设备路由转发表的压缩方法和装置 | |
US7859997B2 (en) | Packet handling on a network device | |
JP4029708B2 (ja) | ルータ装置、及び転送制御方法 |
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 |