(57)【要約】【課題】本発明は、ＮＡＴ方法、装置及びＮＡＴ機器を提供する。【解決手段】当該方法によると、ＮＡＴリソースプールから宛先ＩＰアドレスおよび宛先ＩＰアドレスの参照ポートを取得し、参照ポートは、１つの対応する連続ポート範囲における１つのポートである。宛先ＩＰアドレスと、参照ポートと、パケットのオリジナル５タプルとに基づいて、第１の５タプルを生成し、第１の５タプルにおける参照ポートの第１種のビットに対してマスク処理を行い、第２の５タプルを取得する。第２の５タプルのハッシュ結果に基づいて、予め構築されたビットマップから、衝突しない状態を示すターゲットビットを決定する。ターゲットビットで示される状態を衝突状態に設定し、ターゲットビットに基づいてターゲット５タプルを生成する。ターゲット５タプル及びオリジナル５タプルをセッション表に記録し、ターゲット５タプルに基づいてパケットに対してＮＡＴ処理を行う。【選択図】図２
2021517414.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークアドレス変換（ＮＡＴ）方法であって、
当該方法は、
ＮＡＴリソースプールから宛先インターネットプロトコル（ＩＰ）アドレスと前記宛先ＩＰアドレスの参照ポートとを取得するステップと、
前記宛先ＩＰアドレスと、前記参照ポートと、パケットのオリジナル５タプルとに基づいて、前記パケットに対応する第１の５タプルを生成し、前記第１の５タプルにおける参照ポートの第１種のビットに対してマスク処理を行い、第２の５タプルを取得するステップと、
前記第２の５タプルのハッシュ結果に基づいて、予め構築されたビットマップから、衝突しない状態を示すターゲットビットを決定するステップと、
前記ターゲットビットで示される状態を衝突状態に設定し、前記ターゲットビットに基づいて前記パケットに対応するターゲット５タプルを生成するステップと、
前記ターゲット５タプル及び前記オリジナル５タプルをセッション表に記録し、前記ターゲット５タプルに基づいて前記パケットに対してＮＡＴ処理を行うステップと、を含み、
前記参照ポートは、前記宛先ＩＰアドレスの１つの連続ポート範囲における１つのポートであり、前記ビットマップにおける各ビットは、５タプルの状態が衝突状態であるか衝突しない状態であるかを示すために用いられることを特徴とするＮＡＴ方法。
【請求項２】
前記第２の５タプルのハッシュ結果に基づいて、予め構築されたビットマップから、衝突しない状態を示すターゲットビットを決定するステップは、
第１ハッシュアルゴリズムを利用して前記第２の５タプルに対応する第１インデックス値を算出し、前記第１インデックス値を利用し、予め構築されたビットマップから第１エントリを決定することと、
前記第１エントリからターゲットビットを決定することと、を含み、
前記ビットマップは、複数のエントリを含み、各エントリは、複数のビットを含み、各ビットは、第１種のビットと同じ桁数の１つの二進数文字列に対応し、前記ターゲットビットに対応する状態は、衝突しない状態であり、且つ前記ターゲットビットに対応する二進数文字列と、前記参照ポートのマスクされていない部分とで形成されたポートは、前記１つの連続ポート範囲内に存在することを特徴とする請求項１に記載のＮＡＴ方法。
【請求項３】
前記方法は、
前記セッション表から前記ターゲット５タプルに対応する記録内容を削除したと検出されたときに、前記ターゲット５タプルに対応するアドレス変換タイプを決定するステップと、
前記ターゲット５タプルにおける、前記アドレス変換タイプにマッチングするポートを決定し、決定されたポートの第１種のビットに対してマスク処理を行い、第３の５タプルを取得するステップと、
第１ハッシュアルゴリズムを利用して前記第３の５タプルに対応する第２インデックス値を算出し、前記第２インデックス値を利用し、前記ビットマップから第２エントリを決定するステップと、
ターゲット二進数文字列に対応するビットを前記第２エントリから決定し、決定されたビットで示される状態を衝突しない状態に設定するステップと、を更に含み、
前記ターゲット二進数文字列は、前記ターゲット５タプルにおける前記アドレス変換タイプにマッチングするポートの第１種のビットであることを特徴とする請求項１に記載のＮＡＴ方法。
【請求項４】
前記ターゲット５タプル及び前記オリジナル５タプルをセッション表に記録するステップは、
前記ターゲット５タプル、前記オリジナル５タプル及びアドレス変換タイプをセッション表に記録することを含むことを特徴とする請求項３に記載のＮＡＴ方法。
【請求項５】
前記第１種のビットは、ポートを示すビットシーケンスの末尾の連続する少なくとも１桁であることを特徴とする請求項１から４の何れか一項に記載のＮＡＴ方法。
【請求項６】
ネットワークアドレス変換（ＮＡＴ）装置であって、
当該装置は、
ＮＡＴリソースプールから宛先インターネットプロトコル（ＩＰ）アドレスと前記宛先ＩＰアドレスの参照ポートとを取得するための情報取得ユニツトと、
前記宛先ＩＰアドレスと、前記参照ポートと、パケットのオリジナル５タプルとに基づいて、前記パケットに対応する第１の５タプルを生成し、前記第１の５タプルにおける参照ポートの第１種のビットに対してマスク処理を行い、第２の５タプルを取得するための情報処理ユニツトと、
前記第２の５タプルのハッシュ結果に基づいて、予め構築されたビットマップから、衝突しない状態を示すターゲットビットを決定するためのビット決定ユニツトと、
前記ターゲットビットで示される状態を衝突状態に設定し、前記ターゲットビットに基づいて前記パケットに対応するターゲット５タプルを生成するための５タプル生成ユニツトと、
前記ターゲット５タプル及び前記オリジナル５タプルをセッション表に記録し、前記ターゲット５タプルに基づいて前記パケットに対してＮＡＴ処理を行うためのＮＡＴ処理ユニツトと、を備え、
前記参照ポートは、前記宛先ＩＰアドレスの１つの連続ポート範囲における１つのポートであり、前記ビットマップにおける各ビットは、５タプルの状態が衝突状態であるか衝突しない状態であるかを示すために用いられることを特徴とするＮＡＴ装置。
【請求項７】
前記ビット決定ユニツトは、
第１ハッシュアルゴリズムを利用して前記第２の５タプルに対応する第１インデックス値を算出し、前記第１インデックス値を利用し、予め構築されたビットマップから第１エントリを決定し、
前記第１エントリからターゲットビットを決定するために用いられ、
前記ビットマップは、複数のエントリを含み、各エントリは、複数のビットを含み、各ビットは、第１種のビットと同じ桁数の１つの二進数文字列に対応し、前記ターゲットビットに対応する状態は、衝突しない状態であり、且つ前記ターゲットビットに対応する二進数文字列と、前記参照ポートのマスクされていない部分とで形成されたポートは、前記１つの連続ポート範囲内に存在することを特徴とする請求項６に記載のＮＡＴ装置。
【請求項８】
前記ＮＡＴ装置は、
前記セッション表から前記ターゲット５タプルに対応する記録内容を削除したと検出されたときに、前記ターゲット５タプルに対応するアドレス変換タイプを決定するためのタイプ決定ユニツトと、
前記ターゲット５タプルにおける、前記アドレス変換タイプにマッチングするポートを決定し、決定されたポートの第１種のビットに対してマスク処理を行い、第３の５タプルを取得するためのポートマスクユニツトと、
第１ハッシュアルゴリズムを利用して前記第３の５タプルに対応する第２インデックス値を算出し、前記第２インデックス値を利用し、前記ビットマップから第２エントリを決定するためのエントリ検索ユニツトと、
ターゲット二進数文字列に対応するビットを前記第２エントリから決定し、決定されたビットで示される状態を衝突しない状態に設定するための衝突調整ユニツトと、を更に備え、
前記ターゲット二進数文字列は、前記ターゲット５タプルにおける前記アドレス変換タイプにマッチングするポートの第１種のビットであることを特徴とする請求項６に記載のＮＡＴ装置。
【請求項９】
前記ＮＡＴ処理ユニツトは、
前記ターゲット５タプル、前記オリジナル５タプル及びアドレス変換タイプをセッション表に記録し、前記ターゲット５タプルに基づいて前記パケットに対してＮＡＴ処理を行うために用いられることを特徴とする請求項８に記載のＮＡＴ装置。
【請求項１０】
前記第１種のビットは、ポートを示すビットシーケンスの末尾の連続する少なくとも１桁であることを特徴とする請求項６から９の何れか一項に記載のＮＡＴ装置。
【請求項１１】
ネットワークアドレス変換（ＮＡＴ）機器であって、
当該機器は、
内部バスと、記憶媒体と、プロセッサと、通信インターフェースとを備え、
前記プロセッサ、前記通信インターフェース及び前記記憶媒体は、前記内部バスを介して互いの通信を実施し、前記記憶媒体は、ＮＡＴ方法に対応する機器の実行可能な指令を記憶し、
前記プロセッサは、前記記憶媒体における前記機器の読み取り可能な指令を読み取ることにより、
ＮＡＴリソースプールから宛先インターネットプロトコル（ＩＰ）アドレスと前記宛先ＩＰアドレスの参照ポートとを取得することと、
前記宛先ＩＰアドレスと、前記参照ポートと、パケットのオリジナル５タプルとに基づいて、前記パケットに対応する第１の５タプルを生成し、前記第１の５タプルにおける参照ポートの第１種のビットに対してマスク処理を行い、第２の５タプルを取得することと、
前記第２の５タプルのハッシュ結果に基づいて、予め構築されたビットマップから、衝突しない状態を示すターゲットビットを決定することと、
前記ターゲットビットで示される状態を衝突状態に設定し、前記ターゲットビットに基づいて前記パケットに対応するターゲット５タプルを生成することと、
前記ターゲット５タプル及び前記オリジナル５タプルをセッション表に記録し、前記ターゲット５タプルに基づいて前記パケットに対してＮＡＴ処理を行うことと、を実行させ、
前記参照ポートは、前記宛先ＩＰアドレスの１つの連続ポート範囲における１つのポートであり、前記ビットマップにおける各ビットは、５タプルの状態が衝突状態であるか衝突しない状態であるかを示すために用いられることを特徴とするＮＡＴ機器。
【請求項１２】
前記第２の５タプルのハッシュ結果に基づいて、予め構築されたビットマップから、衝突しない状態を示すターゲットビットを決定するときに、前記プロセッサは、更に、前記機器の実行可能な指令により、
第１ハッシュアルゴリズムを利用して前記第２の５タプルに対応する第１インデックス値を算出し、前記第１インデックス値を利用し、予め構築されたビットマップから第１エントリを決定することと、
前記第１エントリからターゲットビットを決定することと、を実行させ、
前記ビットマップは、複数のエントリを含み、各エントリは、複数のビットを含み、各ビットは、第１種のビットと同じ桁数の１つの二進数文字列に対応し、前記ターゲットビットに対応する状態は、衝突しない状態であり、且つ前記ターゲットビットに対応する二進数文字列と、前記参照ポートのマスクされていない部分とで形成されたポートは、前記１つの連続ポート範囲内に存在することを特徴とする請求項１１に記載のＮＡＴ機器。
【請求項１３】
前記プロセッサは、更に、前記機器の実行可能な指令により、
前記セッション表から前記ターゲット５タプルに対応する記録内容を削除したと検出されたときに、前記ターゲット５タプルに対応するアドレス変換タイプを決定することと、
前記ターゲット５タプルにおける、前記アドレス変換タイプにマッチングするポートを決定し、決定されたポートの第１種のビットに対してマスク処理を行い、第３の５タプルを取得することと、
第１ハッシュアルゴリズムを利用して前記第３の５タプルに対応する第２インデックス値を算出し、前記第２インデックス値を利用し、前記ビットマップから第２エントリを決定することと、
ターゲット二進数文字列に対応するビットを前記第２エントリから決定し、決定されたビットで示される状態を衝突しない状態に設定することと、を実行させ、
前記ターゲット二進数文字列は、前記ターゲット５タプルにおける前記アドレス変換タイプにマッチングするポートの第１種のビットであることを特徴とする請求項１１に記載のＮＡＴ機器。
【請求項１４】
前記ターゲット５タプル及び前記オリジナル５タプルをセッション表に記録するときに、前記プロセッサは、更に、前記機器の実行可能な指令により、
前記ターゲット５タプル、前記オリジナル５タプル及びアドレス変換タイプをセッション表に記録することを実行させることを特徴とする請求項１３に記載のＮＡＴ機器。
【請求項１５】
前記第１種のビットは、ポートを示すビットシーケンスの末尾の連続する少なくとも１桁であることを特徴とする請求項１１から１４の何れか一項に記載のＮＡＴ機器。
【発明の詳細な説明】
【背景技術】
【０００１】
ＮＡＴ（Ｎｅｔｗｏｒｋ Ａｄｄｒｅｓｓ Ｔｒａｎｓｌａｔｉｏｎ、ネットワークアドレス変換）機器は、パケットを受信した後、当該パケットがＮＡＴ処理される必要であるとともに当該パケットがセッション情報の確立条件を満たす場合に、確立フローを実行する。ここでの「セッション情報」は、例えば、パケットのソースＩＰ（Ｉｎｔｅｒｎｅｔ Ｐｒｏｔｏｃｏｌ、インターネットプロトコル）アドレス、宛先アドレス、ソースポート、宛先ポート及び伝送層プロトコルの５タプルを含む。
【０００２】
ソースＩＰアドレスのＮＡＴ処理を例とする。ＮＡＴリソースプールから１つのＩＰアドレス及び当該ＩＰアドレスの１つのポートを選定し、当該ＩＰアドレス及び当該ポートを利用して当該パケットのオリジナル５タプルにおけるソースＩＰアドレス及びソースポートを付け替えて、新たな５タプルを形成し、更に、記憶媒体（例えば、ＤＤＲ（Ｄｏｕｂｌｅ Ｄａｔａ Ｒａｔｅ）データ倍速同期動的ランダムメモリ）に格納されたセッション表におけるハッシュ表を検索し、当該新たな５タプルが衝突しない５タプルであると判断したときに、即ち、算出された当該新たな５タプルのハッシュ値がハッシュ表においてハッシュ衝突を発生しないときに、当該ハッシュ表及び対応する結果表に当該新たな５タプル及び当該オリジナル５タプルを記録し、当該新たな５タプルに基づいて当該パケットに対してＮＡＴ処理を行い、そうでなければ、ＮＡＴリソースプールから１つのＩＰアドレス及び当該ＩＰアドレスの１つのポートを再度選定して分析を行う。
【０００３】
上記確立フローがＮＡＴ処理を実現可能であるが、以下の問題が存在する。セッション表のハッシュ表に基づく従来のデータ記憶方式では、毎回の衝突探りで１つの新たな５タプルしかテストできず、当該新たな５タプルに衝突が発生したときに、複数回の探りが必要となる。一方で、セッション表の所在する記憶媒体を読み取るたびにインターフェース遅延が存在するため、確立性能が悪いことに違いない。
【図面の簡単な説明】
【０００４】
【図１】本発明の例示的な実施例に示すネットワーキングシステムの構造模式図である。
【図２】本発明の例示的な実施例に示すＮＡＴ方法のフローチャートである。
【図３】本発明の例示的な実施例に示すソースＩＰアドレスを変換するときにビットマップに基づいてパケットに対応するターゲット５タプルを決定するグラフ模式図である。
【図４】本発明の例示的な実施例に示すソースＩＰアドレスを変換するときにビットマップにおけるビットを復元するグラフ模式図である。
【図５】本発明の例示的な実施例に示すＮＡＴ装置の構造模式図である。
【図６】本発明の例示的な実施例に示すＮＡＴ機器の構造模式図である。
【発明を実施するための形態】
【０００５】
ここで、例示的な実施例を詳細に説明する。その例示は、図面に示される。以下の記述は、図面に係る際、別途示さない限り、異なる図面における同じ符号が同じ又は類似する要素を示す。以下の例示的な実施例に記述される実施形態が本発明と一致する全ての実施形態を代表するわけではない。逆に、それらは、単に添付する特許請求の範囲に詳細に記述されるような、本発明の幾つかの態様に一致する装置及び方法の例である。
【０００６】
本発明で使用される用語は、単に特定の実施例を記述する目的であり、本発明を制限するためのものではない。本発明及び添付する特許請求の範囲で使用される単数形式の「一種」、「前記」及び「当該」も、文脈から他の意味を明瞭で分かる場合でなければ、複数の形式を含むことを意図する。理解すべきことは、本文で使用される用語「及び／又は」が、１つまたは複数の関連する列挙項目を含む如何なる或いは全ての可能な組み合わせを指す。
【０００７】
理解すべきことは、本発明において第１、第２、第３等という用語を用いて各種の情報を記述するが、これらの情報は、これらの用語に限定されるものではない。これらの用語は、単に同一のタイプの情報同士を区分するために用いられる。例えば、本発明の範囲を逸脱しない限り、第１情報が第２情報と呼称されてもよく、類似的に、第２情報が第１情報と呼称されてもよい。これは、コンテキストに依存する。例えば、ここで使用される言葉「場合」は、「…とき」や「…ときに」あるいは「特定の状況に応じて」として解釈されてもよい。
【０００８】
理解の便宜上、以下では、ＮＡＴ（Ｎｅｔｗｏｒｋ Ａｄｄｒｅｓｓ Ｔｒａｎｓｌａｔｉｏｎ、ネットワークアドレス変換）に関する関連内容を紹介する。
【０００９】
変換モードの側面から言うと、ＮＡＴは、ＰＡＴ（Ｐｏｒｔ Ａｄｄｒｅｓｓ Ｔｒａｎｓｌａｔｉｏｎ、ポートを利用するアドレス変換）とＮＯ−ＰＡＴ（Ｎｏｔ Ｐｏｒｔ Ａｄｄｒｅｓｓ Ｔｒａｎｓｌａｔｉｏｎ、ポートを利用しないアドレス変換）とに分けられてもよい。ただし、ＮＯ−ＰＡＴモードにおいて、１つのエクストラネットＩＰアドレス（即ち、パブリックネットワークＩＰアドレス）は、１つのイントラネットＩＰアドレスに割り当てられてＮＡＴ処理させるしかできない一方、ＰＡＴモードにおいて、１つのエクストラネットＩＰアドレスは、同時に複数のイントラネットＩＰアドレスに割り当てられて共用されてもよい。本発明で現れるＮＡＴは、ＰＡＴモードを指す。
【００１０】
また、異なるネットワーキング応用に応じて、ＮＡＴは、入力インターフェース変換ソースＩＰアドレス、入力インターフェース変換宛先ＩＰアドレス、出力インターフェース変換ソースＩＰアドレス及び出力インターフェース変換宛先ＩＰアドレスに分けられてもよい。なお、異なるアドレスの変換手順は、類似する。
【００１１】
本発明は、ＮＡＴ手順の確立性能が向上するように、ＮＡＴ方法、装置及びＮＡＴ機器を提供する。
【００１２】
以下では、まず、本発明に係るＮＡＴ方法を紹介する。
【００１３】
本発明に係るＮＡＴ方法は、ＮＡＴ機器に適用され、具体的に、当該ＮＡＴ方法は、ＮＡＴ機器におけるＣＰＵによって実行されてもよく、無論、ＣＰＵと幾つかのハードウェアとによって共同実行されてもよい。ただし、当該幾つかのハードウェアは、集積回路ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ Ｓｐｅｃｉｆｉｃ Ｉｎｔｅｇｒａｔｅｄ Ｃｉｒｃｕｉｔ）／ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ Ｇａｔｅ Ａｒｒａｙ、フィールドプログラマブルゲートアレイ）であってもよい。ただし、所謂ＮＡＴ機器は、ネットワークのエッジ機器であり、内部ネットワークユーザから外部パブリックネットワークへのアクセスを許容し、および外部パブリックネットワークから一部の内部リソース（例えば、内部サーバ）へのアクセスを許容する目的を果たす。例を挙げると、当該ＮＡＴ機器の機器タイプは、ルータであってもよいが、これに限定されない。
【００１４】
また、本発明において、ビットマップを予め構築し、当該ビットマップにおける各ビットは、５タプルの状態、即ち、衝突状態か衝突しない状態かを示すために用いられる。ただし、当該ビットマップは、ＮＡＴ機器の記憶媒体に記憶される。具体的に、当該ビットマップは、複数のエントリを含み、各エントリは、複数のビットを含み、各ビットは、第１種のビットと同じ桁数の１つの二進数文字列に対応する。当該第１種のビットは、５タプルの２種のポート（即ち、ＮＡＴ処理が行われるポートと、ＮＡＴ処理が行われないポート）の第１種のビットであり、ビット数と位置は、実際の状況に応じて設定され得る。例を挙げると、第１種のビットは、ポートの第０ビットであってもよく、ポートの第０ビットと第１ビットであってもよく、ポートの第０ビット、第１ビットと第２ビットであってもよく、ポートの第１４ビットと第１５ビット等のケースであってもよい。当該ビットマップの利用により、相違点があるポートの第１種のビットのみにある複数の５タプルは、同一のエントリにおいて１つのビットにそれぞれ唯一に対応可能である。つまり、何れか１つのエントリは、相違点が、あるポートの第１種のビットのみにある複数の５タプルに対応する。
【００１５】
ビットマップにおける各エントリは、１行のビットである。また、ビットマップを初期化するときに、各エントリは、固定桁数の１つのハッシュ値をインデックスとしてもよく、各エントリにおける複数のビットで示される状態は、何れも衝突しない状態に初期化可能である。こうして、衝突しないターゲット５タプルが毎回確立フローにおいて決定された後、ビットマップにおける当該ターゲット５タプルに対応するビットで示される状態を衝突状態に設定してもよい。また、具体的な応用において、各ビットは、０で衝突しない状態を示し、１で衝突する状態を示してもよい。その際、初期化時に、ビットマップにおけるビットは、全て０となる。
【００１６】
理解の便宜上、本発明は、本発明に係る方法に適用可能なネットワーキングシステムを例示する。当該ネットワーキングシステムの構造模式図は、図１を参照してもよい。図１に示すように、当該ネットワーキングシステムは、ホストＡ、ＮＡＴ機器Ｂ及びサーバＣを含む。ホストＡとサーバＣが異なるネットワークに属する（即ち、ホストＡがイントラネットに属し、サーバＣがエクストラネットに属する）ため、ホストＡがサーバＣへパケットを送信する際、ＮＡＴ機器は、ホストＡから送信されたパケットに対してＮＡＴ処理を行ってから、ＮＡＴ処理されたパケットをサーバＣへ送信する必要がある。類似的に、サーバＣがホストＡへパケットを送信する際、ＮＡＴ機器は、サーバＣから送信されたパケットに対してＮＡＴ処理を行った後、ＮＡＴ処理されたパケットを当該ホストＡへ送信する必要がある。確立性能が向上するように、図１におけるＮＡＴ機器Ｂは、本発明に係るＮＡＴ方法を利用して、ホストＡからサーバＣへ送信されたパケットに対してＮＡＴ処理、および、サーバＣからホストＡへ送信されたパケットに対してＮＡＴ処理を行ってもよい。
【００１７】
図２に示すように、本発明に係るＮＡＴ方法は、以下のステップを含んでもよい。
【００１８】
Ｓ１０１では、ＮＡＴリソースプールから宛先ＩＰアドレスおよび当該宛先ＩＰアドレスの参照ポートを取得し、当該参照ポートは、当該宛先ＩＰアドレスの１つの連続ポート範囲における１つのポートである。
【００１９】
ＮＡＴ機器がネットワーキングシステムにおける他の機器から送信されたパケットを受信したときに、当該パケットがＮＡＴ処理される必要があり且つ当該パケットがセッション情報確立条件を満たす場合に、当該ＮＡＴ機器が確立フローを実行する。本発明に供される技術案では、当該ＮＡＴ機器は、確立フローを実行するときに、ＮＡＴリソースプールから宛先ＩＰアドレスおよび当該宛先ＩＰアドレスの参照ポートを取得してもよい。当該参照ポートは、当該宛先ＩＰアドレスの１つの連続ポート範囲における１つのポートである。また、当該ＮＡＴ機器は、ポートを選択する際、当該パケットのオリジナル５タプルに対してハッシュ演算を行った値を利用して選択してもよく、ランダム選択または順次選択等を行ってもよい。
【００２０】
１つのパケットにとって、当該パケットにおけるオリジナル５タプルがソースＩＰアドレス、宛先ＩＰアドレス、ソースポート、宛先ポート及び伝送プロトコルを含むが、ＮＡＴ処理時の変換需要が、ソースＩＰアドレスのみを変換する或いは宛先ＩＰアドレスのみを変換することであってもよく、ソースＩＰアドレスも宛先ＩＰアドレスも変換することであってもよい。したがって、当該宛先ＩＰアドレス及び当該参照ポートが取得された後、ソースＩＰアドレスを変換する必要があれば、当該宛先ＩＰアドレスは、オリジナル５タプルにおけるソースＩＰアドレスを付け替えるために用いられ、参照ポートは、オリジナル５タプルにおけるソースポートを付け替えるために用いられる。宛先ＩＰアドレスを変換する必要があれば、当該宛先ＩＰアドレスは、オリジナル５タプルにおける宛先ＩＰアドレスを付け替えるために用いられ、参照ポートは、オリジナル５タプルにおける宛先ポートを付け替えるために用いられる。また、本発明における前記宛先ＩＰアドレスは、ＮＡＴリソースプールから取り出された１つのＩＰアドレスであり、当該宛先ＩＰアドレスは、ソースＩＰアドレスまたは宛先ＩＰアドレスとされてもよい。当該参照ポートは、当該宛先ＩＰアドレスの１つの連続ポート範囲における１つのポートであり、当該参照ポートは、ソースポートまたは宛先ポートとされてもよい。
【００２１】
また、ＡＣＬ（Ａｃｃｅｓｓ Ｃｏｎｔｒｏｌ Ｌｉｓｔ、アクセス制御リスト）に基づいて、パケットがＮＡＴ処理される必要があるか否か、ＮＡＴ処理時の変換需要、およびＮＡＴ処理時に使用されるＮＡＴリソースプール等を決定してもよい。ただし、異なるタイプのＩＰアドレスに応対するように、ＮＡＴ機器には、複数のＮＡＴリソースプールが記憶され、且つ、各ＮＡＴリソースプールは、何れもＩＰアドレス及び対応するポート範囲を含む。
【００２２】
例を挙げて言うと、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ Ｃｏｎｔｒｏｌ Ｐｒｏｔｏｃｏｌ 伝送制御プロトコル）を採用するデータストリームにおけるパケットについて、パケットがセッション情報確立条件を満たすか否かの具体的な判断方式は、パケットが最初のパケットであるか否かを判断し、そうであれば、パケットがセッション情報確立条件を満たすと決定することを含んでもよい。ＵＤＰ（Ｕｓｅｒ Ｄａｔａｇｒａｍ Ｐｒｏｔｏｃｏｌ、ユーザデータグラムプロトコル）を採用するデータストリームにおけるパケットについて、パケットがセッション情報確立条件を満たすか否かの具体的な判断方式は、パケットがセッション表に基づいて直接ＮＡＴ処理を実行され得るか否かを判断し、できなければ、パケットがセッション情報確立条件を満たすと決定することを含んでもよい。ここで、単にＴＣＰプロトコル、ＵＤＰプロトコルを例として記述し、制限性を有さず、具体的な応用において、他のプロトコルを採用するデータストリームにおけるパケットについて、類似する処理を行ってもよい。例えば、当該パケットがセッション表に基づいて直接ＮＡＴ処理を実行され得ないと判断したときに、パケットがセッション情報確立条件を満たすと決定する。
【００２３】
Ｓ１０２では、当該宛先ＩＰアドレスと、当該参照ポートと、当該パケットのオリジナル５タプルとに基づいて、当該パケットに対応する第１の５タプルを生成し、当該第１の５タプルにおける参照ポートの第１種のビットに対してマスク処理を行い、第２の５タプルを取得する。
【００２４】
Ｓ１０３では、当該第２の５タプルに対してハッシュ演算を行った結果に基づいて、予め構築されたビットマップから、衝突しない状態を示すターゲットビットを決定する。
ただし、当該ビットマップにおける各ビットは、５タプルの状態が衝突状態であるか衝突しない状態であるかを示すために用いられる。
【００２５】
Ｓ１０４では、当該ターゲットビットで示される状態を衝突状態に設定し、当該ターゲットビットに基づいて、当該パケットに対応するターゲット５タプルを生成する。
【００２６】
当該宛先ＩＰアドレス及び当該参照ポートが取得された後、当該ＮＡＴ機器は、当該パケットに対応する変換需要に応じて、当該宛先ＩＰアドレスで当該パケットのオリジナル５タプルにおけるソースＩＰアドレス又は宛先ＩＰアドレスを付け替え、当該参照ポートで当該オリジナル５タプルにおけるソースポート又は宛先ポートを付け替えることにより、当該パケットに対応する第１の５タプルを生成してもよい。第１の５タプルが取得された後、当該ＮＡＴ機器は、当該第１の５タプルにおける参照ポートの第１種のビットに対してマスク処理を行い、即ち、０にセットし、第２の５タプルを取得する。具体的に、ソースＩＰアドレスを変換するときに、当該第１の５タプルにおけるソースポートの第１種のビットに対してマスク処理を行い、宛先ＩＰアドレスを変換するときに、当該第１の５タプルにおける宛先ポートの第１種のビットに対してマスク処理を行う。
【００２７】
更に、当該ＮＡＴ機器は、当該第２の５タプルに対してハッシュ演算を行った結果に基づいて、予め構築されたビットマップから、衝突しない状態を示すターゲットビットを決定してもよい。また、ターゲットビットが取得された後、当該ＮＡＴ機器は、当該ターゲットビットで示される状態を衝突状態に設定し、当該ターゲットビットに基づいて、当該パケットに対応するターゲット５タプルを生成してもよい。詳細に言えば、当該ターゲットビットに基づいて、当該パケットに対応するターゲット５タプルを生成することは、具体的に、当該ターゲットビットに対応する二進数文字列で、当該第２の５タプルにおけるマスク処理された第１種のビットを復元することにより、当該パケットに対応するターゲット５タプルを取得する。
【００２８】
理解できるように、ポートは、１６ビットで示される。つまり、ソースポートと宛先ポートは、何れも１６ビットで示される。第１種のビットは、ビット数と位置が実際の状況に応じて設定されてもよい。例を挙げると、第１種のビットは、ポートの第０ビットであってもよく、ポートの第０ビット及び第１ビットであってもよく、ポートの第０ビット、第１ビット及び第２ビットであってもよく、ポートの第１４ビット及び第１５ビットであってもよい。演算の便宜上、具体的な応用において、当該第１種のビットは、ポート末尾の連続する少なくとも１桁であり、具体的な桁数は、具体的な応用環境に応じて設定されてもよい。例を挙げると、当該第１種のビットは、ポートの末尾の連続する２桁であり、即ち、第０ビットと第１ビットであり、または、当該第１種のビットは、ポートの末尾の連続する３桁であり、即ち、第０ビット、第１ビットと第２ビットであり、または、当該第１種のビットは、ポートの末尾の連続する４桁であり、即ち、第０ビット、第１ビット、第２ビットと第３ビットである。
【００２９】
また、当該ビットマップが複数のエントリを含み、各エントリが複数のビットを含み、各ビットが第１種のビットと同じ桁数の１つの二進数文字列に対応するため、各エントリに含まれるビットの数は、第１種のビットの数に関連し、具体的に２Nであり、Ｎが第１種のビットの桁数である。各ビットは、第１種のビットと同じ桁数の１つの二進数文字列に対応し、当該対応関係は、二進数文字列の大小順に応じて配列されてもよい。例を挙げると、Ｎを７としたときに、１つのエントリは、前から後へのビットがそれぞれ０００００００、００００００１、０００００１０…１１１１１１１に対応し、または、それぞれ１１１１１１１、１１１１１１０、１１１１１０１、１１１１１００…００００００１、０００００００に対応する。
【００３０】
具体的に、１つの実施形態において、前記当該第２の５タプルのハッシュ結果に基づいて、予め構築されたビットマップから、衝突しない状態を示すターゲットビットを決定するステップは、
第１ハッシュアルゴリズムを利用して当該第２の５タプルに対応する第１インデックス値を算出し、当該第１インデックス値を利用し、予め構築されたビットマップから第１エントリを決定することと、
当該第１エントリからターゲットビットを決定することと、を含んでもよい。ただし、当該ターゲットビットに対応する状態は、衝突しない状態であり、且つ当該ターゲットビットに対応する二進数文字列と、当該参照ポートのマスクされていない部分とで形成されたポートは、当該１つの連続ポート範囲内に存在する。
【００３１】
ただし、ビットマップにおける記憶内容から分かるように、当該第１エントリは、第２の５タプル、および第２の５タプルとの区別が第１種のビットのみにある複数の５タプルに対応するエントリである。また、当該第１ハッシュアルゴリズムは、ＭＤ（Ｍｅｓｓａｇｅ Ｄｉｇｅｓｔ Ａｌｇｏｒｉｔｈｍ、メッセージダイジェストアルゴリズム）またはＳＨＡ（Ｓｅｃｕｒｅ Ｈａｓｈ Ａｌｇｏｒｉｔｈｍ、セキュアハッシュアルゴリズム）を含むが、それらに限定されない。
【００３２】
幾つかのポートがＮＡＴリソースプールにおける無効ポートに属し、第１エントリにおけるビットに対応する二進数文字列と当該参照ポートのマスクされていない部分とで形成されたポートが、ＮＡＴリソースプールにおける無効ポートに属する可能性がある。したがって、当該ターゲットビットに基づいて生成されたターゲット５タプルにおけるポートが無効ポートに属することを回避させるように、決定されたターゲットビットは、以下の条件を満たす。
当該ターゲットビットに対応する状態は、衝突しない状態であり、且つ当該ターゲットビットに対応する二進数文字列と当該参照ポートのマスクされていない部分とで形成されたポートは、当該１つの連続ポート範囲内に存在する。
【００３３】
当該第１エントリからターゲットビットを決定する手順は、第１エントリから状態が衝突しない状態である少なくとも１つのビットを決定し、その後、少なくとも１つのビットから、対応する二進数文字列と当該参照ポートのマスクされていない部分とで形成されたポートが当該１つの連続ポート範囲内に存在するターゲットビットを決定することを含んでもよい。または、当該第１エントリからターゲットビットを決定する手順は、第１エントリから、対応する二進数文字列と当該参照ポートのマスクされていない部分とで形成されたポートが当該１つの連続ポート範囲内に存在する少なくとも１つのビットを決定し、更に、決定されたビットから、衝突しない状態を示すターゲットビットを決定することを含んでもよい。
【００３４】
また、具体的な応用において、１つのパケットに対して複数回のＮＡＴ処理を行う需要が存在するため、ターゲット５タプルの数は、複数であってもよい。当該処理思想をもとに、当該第２の５タプルのハッシュ結果に基づいて、ビットマップから、目標数のターゲットビットを決定してもよい。また、ＡＣＬには、当該目標数が記録されてもよく、更にＡＣＬを検索することで当該目標数を取得してもよい。
【００３５】
Ｓ１０５では、当該ターゲット５タプル及び当該オリジナル５タプルをセッション表に記録し、当該ターゲット５タプルに基づいて当該パケットに対してＮＡＴ処理を行う。
【００３６】
セッション表は、ハッシュ表と結果表との２階層の表に分けられる。ただし、ハッシュ表は、セッション表の第１階層の表であり、５タプルに対してハッシュ演算を行って得られた署名情報と、結果表を指すポインタとを記憶するために用いられ、結果表は、セッション表の第２階層の表であり、５タプル及び転送に関する他の情報を記憶するために用いられる。
【００３７】
したがって、当該ターゲット５タプルが決定された後、当該ＮＡＴ機器は、ハッシュ表及び結果表に当該ターゲット５タプル及び当該オリジナル５タプルを記録してもよい。また、当該ターゲット５タプルが決定された後、当該ＮＡＴ機器は、当該パケットに対してＮＡＴ処理を行ってもよく、具体的に、当該パケットにおけるオリジナル５タプルをターゲット５タプルに付け替えることを含んでもよい。
【００３８】
更に、当該セッション表から当該ターゲット５タプルに対応する記録内容を削除したと検出されたときに、当該ターゲット５タプルは、利用可能状態に回復し、ビットマップの有効性を保証するために、ビットマップにおける当該ターゲット５タプルに対応するビットで示される状態を復元してもよい。したがって、本発明に供されるＮＡＴ方法は、以下のステップを含んでもよい。
【００３９】
ステップａ１では、当該セッション表から当該ターゲット５タプルに対応する記録内容を削除したと検出されたときに、当該ターゲット５タプルに対応するアドレス変換タイプを決定する。
【００４０】
ステップａ２では、当該ターゲット５タプルにおける、当該アドレス変換タイプにマッチングするポートを決定し、決定されたポートの第１種のビットに対してマスク処理を行い、第３の５タプルを取得する。
【００４１】
ただし、決定されたアドレス変換タイプがソースＩＰアドレスを変換することであるときに、当該ターゲット５タプルにおける当該アドレス変換タイプにマッチングするポートはソースポートとなり、一方で、決定されたアドレス変換タイプが宛先ＩＰアドレスを変換することであるときに、当該ターゲット５タプルにおける当該アドレス変換タイプにマッチングするポートは宛先ポートとなる。
【００４２】
ステップａ３では、第１ハッシュアルゴリズムを利用して当該第３の５タプルに対応する第２インデックス値を算出し、当該第２インデックス値を利用し、当該ビットマップから第２エントリを決定する。
【００４３】
ステップａ４では、当該第２エントリから、ターゲット二進数文字列に対応するビットを決定し、決定されたビットで示される状態を衝突しない状態に設定し、当該ターゲット二進数文字列は、当該ターゲット５タプルにおける当該アドレス変換タイプにマッチングするポートの第１種のビットである。
【００４４】
好ましくは、１つの具体的な実現形態において、ＮＡＴ機器は、１種アドレス変換タイプに対応する。その際、当該ターゲット５タプルに対応するアドレス変換タイプを決定することは、具体的に、ＮＡＴ機器に対応するアドレス変換タイプを当該ターゲット５タプルに対応するアドレス変換タイプとすることであってもよい。
【００４５】
好ましくは、別の具体的な実現形態において、ＮＡＴ機器は、少なくとも２種のアドレス変換タイプに対応する。その際、当該ターゲット５タプル及び当該オリジナル５タプルをセッション表に記録するステップは、
当該ターゲット５タプル、当該オリジナル５タプル及び今回のＮＡＴのアドレス変換タイプをセッション表に記録することを含んでもよい。
【００４６】
それ相応に、当該ターゲット５タプルに対応するアドレス変換タイプを決定することは、具体的に、
セッション表から、当該ターゲット５タプルに対応するアドレス変換タイプを決定することであってもよい。
【００４７】
具体的に応用する時に、当該アドレス変換タイプは、ソースＩＰアドレスを変換すること、宛先ＩＰアドレスを変換すること、ソースＩＰアドレスを変換してから宛先ＩＰアドレスを変換すること、または、宛先ＩＰアドレスを変換してからソースＩＰアドレスを変換することであってもよい。ただし、アドレス変換タイプの値の具体的な表す方式は、複数種あり得る。好ましくは、１種の具体的な実現形態において、アドレス変換タイプの値は、３ビットによって構成される。ただし、最上位ビットが変換するか否かを示し、下位２ビットが変換方式を示す。具体的に、３ビットでアドレス変換タイプを表すときに、アドレス変換タイプとタイプ値の対応関係は、以下の表１を参照してもよい。
【表１】
2021517414.tif 000003
【００４８】
セッション表に記録されたオリジナル５タプルが(ｓｒｃ_ｉｐ１, ｄｓｔ_ｉｐ１, ｓｒｃ_ｐｏｒｔ１, ｄｓｔ_ｐｏｒｔ１, ｐｒｏｔ)であると仮定し、セッション表に記録されたターゲット５タプルに関する情報を削除したときに、ビットマップにおける対応するビットを復元する手順は、下記のようになる。
タイプ値の最上位ビットが０であれば、アドレス変換なしとして、終了する。
タイプ値が１１０(ソースＩＰアドレスの変換)であれば、ターゲット５タプルが（ｓｒｃ_ｉｐ２, ｄｓｔ_ｉｐ１, ｓｒｃ_ｐｏｒｔ２, ｄｓｔ_ｐｏｒｔ１, ｐｒｏｔ）であると仮定し、ビット復元時に、（ｓｒｃ_ｉｐ２, ｄｓｔ_ｉｐ１, ｓｒｃ_ｐｏｒｔ２, ｄｓｔ_ｐｏｒｔ１, ｐｒｏｔ）を利用すべき５タプル（即ち、ステップａ１−ａ４におけるターゲット５タプル）として取り、上記与えられたビット復元手順、即ち、ステップａ１−ａ４を実行する。
タイプ値が１０１(宛先ＩＰアドレスの変換)であれば、ターゲット５タプルが（ｓｒｃ_ｉｐ１, ｄｓｔ_ｉｐ２, ｓｒｃ_ｐｏｒｔ１, ｄｓｔ_ｐｏｒｔ２, ｐｒｏｔ）であると仮定し、ビット復元時に、（ｓｒｃ_ｉｐ１, ｄｓｔ_ｉｐ２, ｓｒｃ_ｐｏｒｔ１, ｄｓｔ_ｐｏｒｔ２, ｐｒｏｔ）を利用すべき５タプル（即ち、ステップａ１−ａ４におけるターゲット５タプル）として取り、上記与えられたビット復元手順、即ち、ステップａ１−ａ４を実行する。
タイプ値が１１１(ソースＩＰアドレスを変換してから宛先ＩＰアドレスを変換する)であれば、ターゲット５タプルが（ｓｒｃ_ｉｐ２, ｄｓｔ_ｉｐ２, ｓｒｃ_ｐｏｒｔ２, ｄｓｔ_ｐｏｒｔ２, ｐｒｏｔ）であると仮定し、ビット復元時に、（ｓｒｃ_ｉｐ２, ｄｓｔ_ｉｐ１, ｓｒｃ_ｐｏｒｔ２, ｄｓｔ_ｐｏｒｔ１, ｐｒｏｔ）を利用すべき５タプル（即ち、ステップａ１−ａ４におけるターゲット５タプル）として取り、上記ビット復元手順を実行し、そして、（ｓｒｃ_ｉｐ２, ｄｓｔ_ｉｐ２, ｓｒｃ_ｐｏｒｔ２, ｄｓｔ_ｐｏｒｔ２, ｐｒｏｔ）を利用すべき５タプル（即ち、ステップａ１−ａ４におけるターゲット５タプル）として取り、上記与えられたビット復元手順、即ち、ステップａ１−ａ４を実行する。
タイプ値が１００(宛先ＩＰアドレスを変換してからソースＩＰアドレスを変換する)であれば、ターゲット５タプルが（ｓｒｃ_ｉｐ２, ｄｓｔ_ｉｐ２, ｓｒｃ_ｐｏｒｔ２, ｄｓｔ_ｐｏｒｔ２, ｐｒｏｔ）であると仮定し、ビット復元時に、（ｓｒｃ_ｉｐ１, ｄｓｔ_ｉｐ２, ｓｒｃ_ｐｏｒｔ１, ｄｓｔ_ｐｏｒｔ２, ｐｒｏｔ）を利用すべき５タプル（即ち、ステップａ１−ａ４におけるターゲット５タプル）として取り、上記ビット復元手順を実行し、そして、（ｓｒｃ_ｉｐ２, ｄｓｔ_ｉｐ２, ｓｒｃ_ｐｏｒｔ２, ｄｓｔ_ｐｏｒｔ２, ｐｒｏｔ）を利用すべき５タプル（即ち、ステップａ１−ａ４におけるターゲット５タプル）として取り、上記与えられたビット復元手順、即ち、ステップａ１−ａ４を実行する。
【００４９】
上述したアドレス変換タイプの値が単に例示であり、当該構成は、本発明に対する限定にならない。
【００５０】
本発明に供される案では、予めビットマップを構築し、更に、確立フローにおいて、ビットマップを検索することで、衝突しない５タプルを決定し、当該ビットマップにおける各ビットが５タプルの状態を示す。本案では、直接ビットマップから衝突しない状態を示すターゲットビットを決定し、更にターゲットビットに基づいて衝突しない５タプルを決定し、記憶媒体に対する読取回数を減少させるため、本案によれば、確立性能が悪いという問題は解決できる。
【００５１】
以下では、応用実例を組み合わせて本発明に係るＮＡＴ方法を紹介する。
【００５２】
当該応用実例において、ネットワーキング模式図は、図１に示され、当該ネットワーキングシステムは、具体的にホストＡ、ＮＡＴ機器Ｂ及びサーバＣを備える。ただし、ホストＡのＩＰアドレスは、１９２．１６８．１．２であり、ＮＡＴ機器ＢのイントラネットＩＰアドレスは、１９２．１６８．１．１であり、エクストラネットＩＰアドレスは、１．１．１．１であり、サーバＣのＩＰアドレスは、１．１．１．２である。
【００５３】
ＮＡＴ機器のＤＤＲにおいてビットマップを予め構築し、当該ビットマップにおける各エントリが１２８ビットを含み、各ビットが１つの７桁の二進数文字列に対応し、ビットの値が１であるときに衝突すると示し、ビットの値が０であるときに衝突しないと示す。また、初期化されたビットマップにおけるビットは、全て０となる。
【００５４】
図３と図４に示すように、本発明に係るＮＡＴ方法は、以下のステップを含んでもよい。
【００５５】
ステップｂ１では、ＮＡＴ機器Ｂは、ホストＡ〜サーバＣのパケットを受信した後、当該パケットがＮＡＴ処理される必要があり且つ当該パケットがセッション情報確立条件を満たすと判断すると、引き続きステップｂ２を実行する。
【００５６】
ただし、当該パケットにおけるオリジナル５タプルは、(１９２．１６８．１．２、１．１．１．２、２２２２、８０、ｔｃｐ)である。ただし、当該オリジナル５タプルにおいて、１９２．１６８．１．２は、ソースＩＰアドレスであり、１．１．１．２は、宛先ＩＰアドレスであり、２２２２は、ソースポートであり、８０は、宛先ポートであり、ｔｃｐは、伝送プロトコルである。
【００５７】
ステップｂ２では、ＮＡＴリソースプールから宛先ＩＰアドレスおよび宛先ＩＰアドレスの参照ポートを取得し、当該参照ポートは、当該宛先ＩＰアドレスの１つの連続ポート範囲における１つのポートである。
【００５８】
ただし、当該ＮＡＴリソースプールは、ソースＩＰアドレスの変換において依拠されるリソースプールである。
【００５９】
ただし、当該宛先ＩＰアドレスが１．１．１．１であり、参照ポートが２００１であると仮定する。
【００６０】
ステップｂ３では、宛先ＩＰアドレスでパケットのオリジナル５タプルにおけるソースＩＰアドレスを付け替え、参照ポートで当該オリジナル５タプルにおけるソースポートを付け替えて、当該パケットに対応する５タプルＧ１を生成し、当該第１の５タプルのソースポートの下位７桁に対してマスク処理を行い、即ち、０を充填し、５タプルＧ２を取得する。
【００６１】
ただし、５タプルＧ１が（１.１.１.１、１.１.１.２、２００１、８０、ｔｃｐ）であり、それ相応に、５タプルＧ２は、（１.１.１.１、１.１.１.２、Ｐsrc1、８０、ｔｃｐ）となる。
【００６２】
ステップｂ４では、ＳＨＡアルゴリズムを利用して５タプルＧ２に対応するインデックス値ｉｎｄ１を算出し、インデックス値ｉｎｄ１を利用し、ビットマップからエントリＭを決定する。
【００６３】
ステップｂ５では、当該エントリＭからターゲットビットを決定する。ただし、当該ターゲットビットに対応する状態は、衝突しない状態であり、且つターゲットビットに対応する二進数文字列とソースポートのマスクされていない部分で形成されたポートは、１つの連続ポート範囲内に存在する。
【００６４】
ステップｂ６では、ターゲットビットで示される状態を衝突状態に設定し、ターゲットビットに基づいて、当該パケットに対応するターゲット５タプルを生成する。
【００６５】
ただし、ターゲット５タプルは、（１.１.１.１、１.１.１.２、Ｐsrc2、８０、ｔｃｐ）であり、当該Ｐsrc2は、ターゲットビットに対応する二進数文字列でＰｓｒｃ１における下位７桁を復元して得られた値である。
【００６６】
ステップｂ７では、ターゲット５タプル及びオリジナル５タプルをセッション表に記録し、ターゲット５タプルに基づいて当該パケットに対してＮＡＴ処理を行う。
【００６７】
ステップｂ８では、セッション表からターゲット５タプルに対応する記録内容を削除したと検出されたときに、ターゲット５タプルに対応するアドレス変換タイプをソースＩＰアドレスの変換として決定する。
【００６８】
ステップｂ９では、ターゲット５タプルにおけるアドレス変換タイプにマッチングするポートがソースポートであると決定し、ソースポートの下位７桁に対してマスク処理を行い、５タプルＧ３を取得する。
【００６９】
ただし、５タプルＧ３は、（１.１.１.１、１.１.１.２、Ｐsrc1、８０、ｔｃｐ）である。
【００７０】
ステップｂ１０では、ＳＨＡアルゴリズムを利用して５タプルＧ３に対応するインデックス値ｉｎｄ１を算出し、当該インデックス値ｉｎｄ１を利用して、当該ビットマップからエントリＭを決定する。
【００７１】
ステップｂ１１では、当該エントリＭから、ターゲット二進数文字列に対応するビットを決定し、決定されたビットで示される状態を衝突しない状態に設定し、当該ターゲット二進数文字列は、当該ターゲット５タプルにおけるソースポートの下位７桁のビットである。
【００７２】
オリジナル５タプルに対応するアドレス変換タイプが宛先ＩＰアドレスの変換であるときに、ＮＡＴフローは、上記ステップｂ１−ｂ１２と類似し、区別が宛先ポートとソースポートとの処理を互いに入れ替えるのみにある。
【００７３】
また、図３と図４に示すビットマップにおいて、Ｘで各ビットの現在値を示し、当該現在値は、１又は０であってもよい。
【００７４】
本案では、直接ビットマップから衝突しない状態を示すターゲットビットを決定し、更にターゲットビットに基づいて衝突しない５タプルを決定し、記憶媒体に対する読取回数を減少させるため、本案によれば、確立性能が悪いという問題は解決できる。
【００７５】
上記方法実施例に相応し、本発明は、ＮＡＴ装置を更に提供する。図５に示すように、前記装置は、以下のユニツトを備えてもよい。
情報取得ユニツト５１０は、ＮＡＴリソースプールから宛先ＩＰアドレスおよび前記宛先ＩＰアドレスの参照ポートを取得するために用いられ、前記参照ポートは、前記宛先ＩＰアドレスの１つの連続ポート範囲における１つのポートである。
情報処理ユニツト５２０は、前記宛先ＩＰアドレスと、前記参照ポートと、パケットのオリジナル５タプルとに基づいて、前記パケットに対応する第１の５タプルを生成し、前記第１の５タプルにおける参照ポートの第１種のビットに対してマスク処理を行い、第２の５タプルを取得するために用いられる。
ビット決定ユニツト５３０は、前記第２の５タプルのハッシュ結果に基づいて、予め構築されたビットマップから、衝突しない状態を示すターゲットビットを決定するために用いられる。ただし、前記ビットマップにおける各ビットは、５タプルの状態が衝突状態であるか衝突しない状態であるかを示すために用いられる。
５タプル生成ユニツト５４０は、前記ターゲットビットで示される状態を衝突状態に設定し、前記ターゲットビットに基づいて前記パケットに対応するターゲット５タプルを生成するために用いられる。
ＮＡＴ処理ユニツト５５０は、前記ターゲット５タプル及び前記オリジナル５タプルをセッション表に記録し、前記ターゲット５タプルに基づいて前記パケットに対してＮＡＴ処理を行うために用いられる。
【００７６】
本発明に供される案では、予めビットマップを構築し、更に、確立フローにおいて、ビットマップを検索することで、衝突しない５タプルを決定し、当該ビットマップにおける各ビットが５タプルの状態を示す。本案では、直接ビットマップから衝突しない状態を示すターゲットビットを決定し、更にターゲットビットに基づいて衝突しない５タプルを決定し、記憶媒体に対する読取回数を減少させるため、本案によれば、確立性能が悪いという問題は解決できる。
【００７７】
好ましくは、前記ビット決定ユニツト５３０は、具体的に、
第１ハッシュアルゴリズムを利用して前記第２の５タプルに対応する第１インデックス値を算出し、前記第１インデックス値を利用し、予め構築されたビットマップから第１エントリを決定し、
前記第１エントリからターゲットビットを決定するために用いられる。
ただし、前記ビットマップは、複数のエントリを含み、各エントリは、複数のビットを含み、各ビットは、第１種のビットと同じ桁数の１つの二進数文字列に対応し、前記ターゲットビットに対応する状態は、衝突しない状態であり、且つ前記ターゲットビットに対応する二進数文字列と、前記参照ポートのマスクされていない部分とで形成されたポートは、前記１つの連続ポート範囲内に存在する。
【００７８】
好ましくは、前記装置は、下記のユニツトを更に備える。
タイプ決定ユニツトは、前記セッション表から前記ターゲット５タプルに対応する記録内容を削除したと検出されたときに、前記ターゲット５タプルに対応するアドレス変換タイプを決定するために用いられる。
ポートマスクユニツトは、前記ターゲット５タプルにおける、前記アドレス変換タイプにマッチングするポートを決定し、決定されたポートの第１種のビットに対してマスク処理を行い、第３の５タプルを取得するために用いられる。
エントリ検索ユニツトは、第１ハッシュアルゴリズムを利用して前記第３の５タプルに対応する第２インデックス値を算出し、前記第２インデックス値を利用し、前記ビットマップから第２エントリを決定するために用いられる。
衝突調整ユニツトは、ターゲット二進数文字列に対応するビットを前記第２エントリから決定し、決定されたビットで示される状態を衝突しない状態に設定し、前記ターゲット二進数文字列は、前記ターゲット５タプルにおける前記アドレス変換タイプにマッチングするポートの第１種のビットであるために用いられる。
【００７９】
好ましくは、前記ＮＡＴ処理ユニツト５５０は、具体的に、
前記ターゲット５タプル、前記オリジナル５タプル及びアドレス変換タイプをセッション表に記録し、前記ターゲット５タプルに基づいて前記パケットに対してＮＡＴ処理を行うために用いられる。
【００８０】
装置実施例は、方法実施例に基本的に対応するため、その関連箇所が方法実施例部分の説明を参照すればよい。上述した装置実施例は、単に例示であり、その中、分離部品として説明されるユニツトが物理的に分離されるものであってもよくでなくてもよい。また、ユニツトとして表示される部品は、物理ユニツトであってもでなくてもよい。更に、それらのユニツトは、１箇所に位置してもよく、複数のネットワークセルに分散してもよい。実際の需要に応じてその中の一部または全部のモジュールを選択して本実施例の目的を果たすことが可能である。当業者は、進歩性に値する労働をせずに、理解して実施可能である。
【００８１】
また、上記方法実施例に相応し、本発明は、ＮＡＴ機器を更に提供する。図６に示すように、当該ＮＡＴ機器は、内部バス６１０、記憶媒体６２０、プロセッサ６３０及び通信インターフェース６４０を備える。ただし、前記プロセッサ６３０、前記通信インターフェース６４０及び前記記憶媒体６２０は、前記内部バス６１０を介して互いの通信を実施する。
【００８２】
ただし、前記記憶媒体６２０は、ＮＡＴ方法に対応する機器の実行可能な指令を記憶する。
【００８３】
前記プロセッサ６３０は、前記記憶媒体６２０における前記機器の実行可能な指令を読み取ることにより、本発明に係るＮＡＴ方法を実行する。
【００８４】
ただし、ＮＡＴ方法に関する具体的なステップの関連記述は、本発明の方法実施例における記述内容を参照すればよいため、ここで繰り返し説明しない。また、注意すべきことは、当該ＮＡＴ機器がルータであってもよいが、無論これに限定されない。
【００８５】
ただし、記憶媒体６２０は、例えば、不揮発性（ｎｏｎ−ｖｏｌａｔｉｌｅ ｍｅｍｏｒｙ）記憶媒体であってもよい。プロセッサ６３０は、記憶媒体６２０におけるＮＡＴ方法を実現する論理指令を呼び出して実行することにより、上記ＮＡＴ方法を実行してもよい。
【００８６】
ＮＡＴ方法の論理指令を実現する機能は、ソフトウェア機能ユニツトの形式で実現され、且つ独立の製品として販売や使用されるときに、１つのコンピュータ読み取り可能な記憶媒体に記憶されてもよい。このような理解に基づいて、本発明の技術案は、本質的にまたは従来技術に対して貢献を与える部分または当該技術案の一部がソフトウェア製品の形式で体現されてもよい。当該コンピュータソフトウェア製品は、１つの記憶媒体に記憶され、幾つかの指令を含むことで一台のコンピュータ機器（パソコン、サーバまたはネットワーク機器等であってもよい）に本発明の各実施例の前記方法の全部或いは一部のステップを実行させる。上述した記憶媒体は、Ｕディスク、モバイルハードディスク、読み取り専用メモリ（ＲＯＭ、Ｒｅａｄ−Ｏｎｌｙ Ｍｅｍｏｒｙ）、ランダムアクセスメモリ（ＲＡＭ、Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、磁気ディスクまたは光ディスク等の、プログラムコードを格納可能な各種の媒体を含む。
【００８７】
当業者は、明細書を考慮してここで開示された本発明を実践した後、本発明の他の実施案を容易に想到し得る。本発明は、本発明の如何なる変形、用途または適応的変化もカバーすることを意図する。これらの変形、用途または適応的変化は、本発明の一般的な原理に従い、本発明に開示されていない当分野における公知常識或いは慣用技術ユニツトを含む。明細書及び実施例は、単に例示と見なされ、本発明の真の範囲及び要旨は、請求項から与えられる。
【００８８】
理解できるように、本発明は、上述され且つ図面に示された精確な構造に限定されず、その範囲を逸脱しない範囲で各種の変更や改良を行うことが可能である。本発明の範囲は、添付する請求項のみで限定される。
【００８９】
上述したのは、本発明の実施例に過ぎず、本発明を制限するためのものではない。本発明の精神及び原則内でなされた如何なる変更、均等物による置換、改良等も、本発明の保護範囲内に含まれるべきである。
【図１】
2021517414.tif 000004
【図２】
2021517414.tif 000005
【図３】
2021517414.tif 000006
【図４】
2021517414.tif 000007
【図５】
2021517414.tif 000008
【図６】
2021517414.tif 000009
【国際調査報告】
2021517414.tif 000010
2021517414.tif 000011
2021517414.tif 000012
2021517414.tif 000013