(57)【要約】【課題】ローカルアドレスとグローバルアドレスとを変換するインタネットワーク装置において、アドレス・ポート変換表へのアクセス回数を低減することのできる技術を提供する。【解決手段】インタネットワーク装置は、アドレス・ポート変換表を記憶した変換表記億部と、アドレス・ポート変換表に基づいて、複数のネットワーク間の通信で送受信されるパケット内のローカルアドレス及びローカルアドレス内通信ポート番号とグローバルアドレス及びグローバルアドレス内通信ポート番号とを相互変換するアドレス変換処理部と、を備える。変換表記億部は、アドレス・ポート変換表において、ローカルアドレス及びグローバルアドレスを、それぞれアドレス群ごとに並べて記憶しており、アドレス群内では、ローカルアドレス及びグローバルアドレスは、それぞれ、メモリ空間内に線形に配置されている。【選択図】図８
2010252103.tif 000002
【特許請求の範囲】
【請求項１】
特定のネットワーク内で用いられるローカルアドレス及び各ローカルアドレスと共に用いられるローカルアドレス内通信ポート番号と、複数のネットワーク間の通信で用いられるグローバルアドレス及び各グローバルアドレスと共に用いられるグローバルアドレス内通信ポート番号とを相互に変換するインタネットワーク装置であって、
ローカルアドレス及びローカルアドレス内通信ポート番号の組が並んだローカルアドレス対と、グローバルアドレス及びグローバルアドレス内通信ポート番号の組が並んだグローバルアドレス対とを対応付けるアドレス・ポート変換表を記憶した変換表記億部と、
前記アドレス・ポート変換表に基づいて、複数のネットワーク間の通信で送受信されるパケット内のローカルアドレス及びローカルアドレス内通信ポート番号とグローバルアドレス及びグローバルアドレス内通信ポート番号とを相互変換するアドレス変換処理部と、
を備え、
前記変換表記億部は、前記アドレス・ポート変換表において、前記ローカルアドレス及び前記グローバルアドレスを、それぞれアドレス群ごとに並べて記憶しており、
前記アドレス群内では、前記ローカルアドレス及び前記グローバルアドレスは、それぞれ、メモリ空間内に線形に配置されている、インタネットワーク装置。
【請求項２】
請求項１記載のインタネットワーク装置であって、さらに、
前記通信に用いられるパケットから変換対象となるアドレス及びアドレス内通信ポート番号を抽出する抽出部と、
前記抽出されたアドレスが属するアドレス群を検索するアドレス群検索部と、
前記抽出されたアドレスと前記アドレス群の先頭アドレスとの差分を算出する差分算出部と、
前記抽出されたアドレスが属するアドレス群の先頭アドレスと、前記差分と、前記抽出された通信ポート番号とに基づいて、前記アドレス・ポート変換表における位置であって前記変換対象となるアドレス及びアドレス内通信ポート番号に対応する位置を特定するポインタと、
を備える、インタネットワーク装置。
【請求項３】
特定のネットワーク内で用いられるローカルアドレス及び各ローカルアドレスと共に用いられるローカルアドレス内通信ポート番号と、複数のネットワーク間の通信で用いられるグローバルアドレス及び各グローバルアドレスと共に用いられるグローバルアドレス内通信ポート番号とを相互に変換する方法であって、
ローカルアドレス及びローカルアドレス内通信ポート番号の組が並んだローカルアドレス対と、グローバルアドレス及びグローバルアドレス内通信ポート番号の組が並んだグローバルアドレス対とを対応付けるアドレス・ポート変換表に基づいて、複数のネットワーク間の通信で送受信されるパケット内のローカルアドレス及びローカルアドレス内通信ポート番号とグローバルアドレス及びグローバルアドレス内通信ポート番号とを相互変換する工程を備え、
前記アドレス・ポート変換表において、前記ローカルアドレス及び前記グローバルアドレスは、それぞれアドレス群ごとに並んでおり、
前記アドレス群内では、前記ローカルアドレス及び前記グローバルアドレスは、それぞれ、メモリ空間内に線形に配置されている、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のネットワークを接続するインタネットワーク装置に関し、特に、特定のネットワーク内で用いられるローカルアドレスと複数のネットワーク間の通信で用いられるグローバルアドレスとを相互に変換する機能を有するインタネットワーク装置及びその変換方法に関するものである。
【背景技術】
【０００２】
従来、任意に割り当てられたローカルアドレスを用いるローカルネットワークと、グローバルアドレスを用いて複数のネットワークを接続するグローバルネットワーク（以下代表例としてインターネットと称す）との間での通信を行う場合には、ローカルネットワークとインターネットの境界にローカルアドレスとグローバルアドレスとの間でアドレス変換を行う機能を備えた機器を配置し、双方のアドレスを変換する事により送受信端末間の通信を実現していた。このアドレス変換機能をNetwork Address Translationと呼んでいる。また限られたグローバルアドレスを有効に使用するために、ＴＣＰ／ＵＤＰの通信ポート番号も利用して、接続可能な数を増やすアドレス変換機能については、Network Address and Port Translationと呼んでいる（特許文献１参照）。現在、アドレス変換機能とは、後者のNetwork Address and Port Translationを指すことが一般的である。本明細書においても、アドレス変換機能（以下ＮＡＴと呼ぶ）はNetwork Address and Port Translationを指すものとする。従来、こうしたアドレス変換機能は、小規模な家庭用企業内ローカルネットワークからインターネットに接続するルータ等に装用されてきた。
【０００３】
一方、近年では、ＩＰｖ４でのグローバルアドレスの不足などに起因して、ユーザ数の多いインターネットサービスプロバイダ（以下ＩＳＰと称す）でも、自ＩＳＰの網内のルータにローカルアドレスを割り当ててユーザを収容したいとのニーズが高まってきた。この場合、ＩＳＰとインターネットの接続点（キャリアのエッジ）においてもＮＡＴ機能が必要となる。この位置でのＮＡＴは、従来の企業ユーザや個人ユーザがＩＳＰと接続するためのＮＡＴと役割や求められる性能が大きく異なるため、Carrier Grade NAT（以下ＣＧＮと称す）と呼ばれる。このＣＧＮ機能を有するルータにはキャリア系の性能および信頼性が求められている。以下、ＣＧＮ機能を有するルータをインタネットワーク装置と称す。
【０００４】
インタネットワーク装置では、扱うセッション数が膨大かつ回線が高速であるため、膨大なアドレス・ポート変換表を高速に参照する必要がある。しかし従来のリニア検索やハッシュ検索等の方式では、扱うセッション数が大きいと、比例してアドレス・ポート変換表を格納するメモリへのアクセス回数が増えてしまい、アドレス・ポート変換を高速に実行することが困難になるという問題があった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−１５０５６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、上述した従来の課題を解決するためになされたものであり、ローカルアドレスとグローバルアドレスとを変換するインタネットワーク装置において、アドレス・ポート変換表へのアクセス回数を低減することのできる技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上述の課題の少なくとも一部を解決するために、以下の形態または適用例を取ることが可能である。
【０００８】
[適用例１]
特定のネットワーク内で用いられるローカルアドレス及び各ローカルアドレスと共に用いられるローカルアドレス内通信ポート番号と、複数のネットワーク間の通信で用いられるグローバルアドレス及び各グローバルアドレスと共に用いられるグローバルアドレス内通信ポート番号とを相互に変換するインタネットワーク装置であって、
ローカルアドレス及びローカルアドレス内通信ポート番号の組が並んだローカルアドレス対と、グローバルアドレス及びグローバルアドレス内通信ポート番号の組が並んだグローバルアドレス対とを対応付けるアドレス・ポート変換表を記憶した変換表記億部と、
前記アドレス・ポート変換表に基づいて、複数のネットワーク間の通信で送受信されるパケット内のローカルアドレス及びローカルアドレス内通信ポート番号とグローバルアドレス及びグローバルアドレス内通信ポート番号とを相互変換するアドレス変換処理部と、
を備え、
前記変換表記億部は、前記アドレス・ポート変換表において、前記ローカルアドレス及び前記グローバルアドレスを、それぞれアドレス群ごとに並べて記憶しており、
前記アドレス群内では、前記ローカルアドレス及び前記グローバルアドレスは、それぞれ、メモリ空間内に線形に配置されている、インタネットワーク装置。
【０００９】
適用例１のインタネットワーク装置によれば、アドレス・ポート変換表において、ローカルアドレス及びグローバルアドレスは、それぞれアドレス群ごとに並んでおり、アドレス群内では、ローカルアドレス及びグローバルアドレスは、それぞれ、線形に並んでいるので、演算によってアドレス・ポート変換表におけるアクセス位置を特定することができ、アドレス・ポート変換表へのアクセス回数を低減することができる。
【００１０】
[適用例２]
請求項１記載のインタネットワーク装置であって、さらに、
前記通信に用いられるパケットから変換対象となるアドレス及びアドレス内通信ポート番号を抽出する抽出部と、
前記抽出されたアドレスが属するアドレス群を検索するアドレス群検索部と、
前記抽出されたアドレスと前記アドレス群の先頭アドレスとの差分を算出する差分算出部と、
前記抽出されたアドレスが属するアドレス群の先頭アドレスと、前記差分と、前記抽出された通信ポート番号とに基づいて、前記アドレス・ポート変換表における位置であって前記変換対象となるアドレス及びアドレス内通信ポート番号に対応する位置を特定するポインタと、
を備える、インタネットワーク装置。
【００１１】
適用例２のインタネットワーク装置によれば、抽出されたアドレスが属するアドレス群の先頭アドレスと、差分と、抽出された通信ポート番号とに基づいて、アドレス・ポート変換表におけるアクセス位置を特定するので、アドレス・ポート変換表へのアクセス回数を低減することができる。
【００１２】
なお、本発明は、種々の態様で実現することが可能である。例えば、特定のネットワーク内で用いられるローカルアドレス及び当該ローカルアドレス内通信ポート番号と、複数のネットワーク間の通信で用いられるグローバルアドレス及び当該グローバルアドレス内通信ポート番号とを相互に変換する方法および変換システム、それらの方法または装置の機能を実現するための集積回路、コンピュータプログラム、そのコンピュータプログラムを記録した記録媒体等の形態で実現することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の一実施例としてのインタネットワーク装置１００が用いられるネットワーク構成を示す説明図である。
【図２】インタネットワーク装置１００の構成を示す説明図である。
【図３】アドレス・ポート変換部１２０の各構成部のプロセッサシステムへの配置を示す説明図である。
【図４】実施例における構成定義を示す説明図である。
【図５】内側アドレス群を同じ上位アドレスを持つ集合ごとに並べた説明図である。
【図６】内側アドレス群検索テーブル１２２を示す説明図である。
【図７】ポート検索ポインタ１２３を示す説明図である。
【図８】アドレス・ポート変換テーブル１２４を示す説明図である。
【図９】ポートマッピングテーブル１２６を示す説明図である。
【図１０】インタネットワーク装置１００によるアドレス・ポート変換の例を示す説明図である。
【図１１】Outboundパケットを転送する場合における各構成要素の参照方式を示す説明図である。
【図１２】Outboundパケットを転送する場合における手順を示すフローチャートである。
【図１３】セッションの登録をする場合における各構成要素の参照方式を示す説明図である。
【図１４】セッションの登録をする場合における手順を示すフローチャートである。
【図１５】Inboundパケットを転送する場合における各構成要素の参照方式を示す説明図である。
【図１６】Inboundパケットを転送する場合における手順を示すフローチャートである。
【図１７】Outboundパケットの転送性能をアドレス・ポート変換テーブルの検索方式ごとに比較するグラフである。
【図１８】Inboundパケットの転送性能をアドレス・ポート変換テーブルの検索方式ごとに比較するグラフである。
【発明を実施するための形態】
【００１４】
次に、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
Ａ．実施例：
Ａ１．ネットワークシステム全体の構成例：
Ａ２．インタネットワーク装置１００の構成：
Ａ３．プロセッサシステムへの各構成部の配置：
Ａ４．構成定義：
Ａ５．各構成要素の説明：
Ａ６．パケットの転送：
Ａ６−１．Outboundパケットの転送：
Ａ６−２．セッションの登録：
Ａ６−３．Inboundパケットの転送：
Ａ７．効果：
Ｂ．変形例：
【００１５】
Ａ．実施例：
Ａ１．ネットワークシステム全体の構成例：
図１は、本発明の一実施例としてのインタネットワーク装置１００が用いられるネットワーク構成を示す説明図である。図示するように、本実施例のインタネットワーク装置１００は、多数の企業ルータやホームルータを収容するインターネットサービスプロバイダと接続されている。
【００１６】
従来型のインターネットサービスプロバイダ１６５は、ＮＡＴ（Network Address Translation）機能を有するホームルータ１５５を介して個人ユーザ１５６を収容しており、さらに、ＮＡＴ機能を有する企業ルータ１５０を介して企業ユーザ１６２を収容している。企業ユーザ１６２は、ローカルネットワーク１６０を構成している。インターネットサービスプロバイダ１６５は、グローバルアドレスを有しており、キャリアエッジルータ１８５を介してインターネット１８０に乗り入れている。
【００１７】
これに対して、インターネットサービスプロバイダ１６６は、グローバルアドレスを有していないため、ＣＧＮ（Career Grade NAT）機能を有するインタネットワーク装置１００に接続されており、キャリアエッジルータ１８５を介してインターネット１８０に乗り入れている。そして、インターネットサービスプロバイダ１６６は、ＮＡＴ機能を有するホームルータ１５５を介して個人ユーザ１５６を収容し、ＮＡＴ機能を有する企業ルータ１５０を介して企業ユーザ１６３を収容している。インターネットサービスプロバイダ１６７も同様である。すなわち、インタネットワーク装置１００の下流側におけるユーザは、ＩＰアドレスとしてローカルアドレスを使用しており、インターネット上の、つまりグローバルなＩＰアドレスを有するサイトやサーバとは、インタネットワーク装置１００によってローカルアドレスをグローバルアドレスに変換して通信を行なっている。インターネット１８０には、個人ユーザや企業ユーザからアクセス可能な位置に、ＨＴＴＰサーバ１８１が設けられている。なお、インタネットワーク装置１００は、キャリアエッジルータ１８５の内部に含まれる構成としてもよい。また、インタネットワーク装置１００は、各インターネットサービスプロバイダ毎に設けてもよい。
【００１８】
Ａ２．インタネットワーク装置１００の構成：
図２は、インタネットワーク装置１００の構成を示す説明図である。インタネットワーク装置１００は、アドレス・ポート変換を行なうことによって、ローカルアドレスネットワーク１４５とグローバルアドレスネットワーク１４６との間で通信を行なう装置である。インタネットワーク装置１００は、ローカルアドレスネットワーク１４５側に配置されるインサイド部１０５と、グローバルアドレスネットワーク１４６側に配置されるアウトサイド部１１０と、アドレス・ポート変換を行なうアドレス・ポート変換部１２０とを備えている。
【００１９】
インサイド部１０５は、ローカルアドレスネットワーク１４５側から送信されたパケット（以下では、Outboundパケットとも呼ぶ）を入力とするパケット入力部１０１と、グローバルアドレスネットワーク１４６側から送信されたパケット（以下では、Inboundパケットとも呼ぶ）をローカルアドレスネットワーク１４５側へ出力するパケット出力部１０２と、パケットのルーティングを行なう経路制御部１０３とを備えている。経路制御部１０３は、Outboundパケットをアドレス・ポート変換部１２０にルーティングする機能と、アドレス・ポート変換部１２０からのInboundパケットをパケット出力部１０２にルーティングする機能とを有している。
【００２０】
アウトサイド部１１０は、Outboundパケットをグローバルアドレスネットワーク１４６側へ出力するパケット出力部１０６と、グローバルアドレスネットワーク１４６から送信されたInboundパケットを入力とするパケット入力部１０７と、パケットのルーティングを行なう経路制御部１０８とを備えている。経路制御部１０８は、Outboundパケットをパケット出力部１０６にルーティングする機能と、Inboundパケットをアドレス・ポート変換部１２０にルーティングする機能とを有している。
【００２１】
アドレス・ポート変換部１２０は、Outboundパケット転送部１２１と、内側アドレス群検索テーブル１２２と、ポート検索ポインタ１２３と、アドレス・ポート変換テーブル１２４と、セッション管理部１２５と、ポートマッピングテーブル１２６と、エージング管理部１２７と、Inboundパケット転送部１２８と、外側アドレス群検索テーブル１２９と、装置制御部１３０とを備えている。なお、本実施例では、ローカルアドレスを内側アドレスとも呼び、グローバルアドレスを外側アドレスとも呼ぶ。
【００２２】
ここで、ローカルアドレスネットワーク１４５からグローバルアドレスネットワーク１４６の方向にパケットが送信される場合（Outbound転送）について説明する。Outboundパケット転送部１２１は、インサイド部１０５から入力されたOutboundパケットから、送信元アドレス及び送信元ポート番号を取得する。そして、Outboundパケット転送部１２１は、取得した送信元アドレスを内側アドレス群検索テーブル１２２へ供給すると共に、送信元ポート番号をポート検索ポインタ１２３に供給する。内側アドレス群検索テーブル１２２は、ツリー検索を行なうことによって、供給された送信元アドレスがどの内側アドレス群に属するかを判定する。内側アドレス群とは、連続する複数の内側アドレスからなる内側アドレスの集合であり、後に詳述する。ポート検索ポインタ１２３は、送信元アドレス及び送信元ポート番号に対応する位置に、アドレス・ポート変換テーブル１２４に対するポインタ情報を格納している。Outboundパケット転送部１２１は、ポート検索ポインタ１２３に格納されているポインタ情報に基づいてアドレス・ポート変換テーブル１２４を参照する。そして、Outboundパケット転送部１２１は、読み出したアドレス・ポート変換情報に従って、Outboundパケットの送信元アドレス及び送信元ポート番号を書き換えて、Outboundパケットをアウトサイド部１１０に出力する。
【００２３】
なお、ポート検索ポインタ１２３がアドレス・ポート変換テーブル１２４に対するポインタ情報を格納していない場合には、Outboundパケット転送部１２１は、セッション管理部１２５に対して、ポインタ情報の新規登録を要求する。セッション管理部１２５は、新規登録要求を受けると、ポートマッピングテーブル１２６における送信元アドレスに対応する位置を参照する。セッション管理部１２５は、当該送信元アドレスに割り当てられた通信ポートに空きがあれば、ポート検索ポインタ１２３およびアドレス・ポート変換テーブル１２４に対してポインタ情報を登録する。エージング管理部１２７は、セッションの使用状況を監視しており、そのセッションの使用状況をセッション管理部１２５に通知する。セッション管理部１２５は、使用されていない通信ポートがある場合には、ポート検索ポインタ１２３およびアドレス・ポート変換テーブル１２４におけるポインタ情報の削除を行なう。装置制御部１３０は、後述する構成定義を、アドレス・ポート変換部１２０の各構成要素に通知する機能を有する。
【００２４】
次に、グローバルアドレスネットワーク１４６からローカルアドレスネットワーク１４５の方向にパケットが送信される場合（Inbound）について説明する。Inboundパケット転送部１２８は、アウトサイド部１１０から入力されたInboundパケットから、宛先アドレス及び宛先ポート番号を取得する。そして、Inboundパケット転送部１２８は、取得した宛先アドレスを外側アドレス群検索テーブル１２９へ供給する。外側アドレス群検索テーブル１２９は、ツリー検索を行なうことによって、供給された宛先アドレスがどの外側アドレス群に属するかを判定する。外側アドレス群については後述する。Inboundパケット転送部１２８は、アドレス・ポート変換テーブル１２４のうち、宛先アドレスと宛先ポート番号とに対応する位置に格納されているアドレス・ポート変換情報を読み出し、Inboundパケットの宛先アドレス及び宛先ポート番号を書き換えて、Inboundパケットをインサイド部１０５に出力する。
【００２５】
Ａ３．プロセッサシステムへの各構成部の配置：
インタネットワーク装置１００は、周知のプロセッサ、メモリ、ローカル側及びグローバル側のＩ／Ｆを、ハード的には備えている。このうち、特に、アドレス変換を司る部分をプロセッサシステム１４４として図３に抽出した。図３は、アドレス・ポート変換部１２０の各構成部のプロセッサシステムへの配置を示す説明図である。アドレス・ポート変換部１２０は、プロセッサシステム１４４により実現することができる。プロセッサシステム１４４は、ＣＰＵ部１３５と、メインメモリ部１４０とを備えている。ＣＰＵ部１３５は、プロセッサコア部１３６と、２ｎｄキャッシュ部１３９とを備えている。プロセッサコア部１３６は、演算処理部１３７と、高速ＳＲＡＭ１４１と、１ｓｔキャッシュ部１３８とを備えている。
【００２６】
メインメモリ部１４０は、図２におけるInboundパケット転送部１２１と、Outboundパケット転送部１２８と、セッション管理部１２５と、エージング管理部１２７との機能を実現するためのプログラムを格納しており、これらの機能は、メインメモリ部１４０に記憶されているプログラムをＣＰＵ部１３５が実行することによって実現される。メインメモリ部１４０は、さらに、図２におけるポート検索ポインタ１２３と、ポートマッピングテーブル１２６と、アドレス・ポート変換テーブル１２４とを格納している。高速ＳＲＡＭ１４１は、図２における内側アドレス群検索テーブル１２２と、外側アドレス群検索テーブル１２９とを格納している。したがって、演算処理部１３７は、内側アドレス群検索テーブル１２２と外側アドレス群検索テーブル１２９に対して、高速にアクセスすることができる。なお、１ｓｔキャッシュ部１３８の一部をスクラッチパッド化して、内側アドレス群検索テーブル１２２と、外側アドレス群検索テーブル１２９とを格納することとしてもよい。
【００２７】
Ａ４．構成定義：
図４は、実施例における構成定義を示す説明図である。本実施例における構成定義は、ローカル側構成定義２００と、グローバル側構成定義２３０とに分類することができる。ローカル側構成定義２００には、連続する複数の内側アドレスをネットワーク単位ごとにそれぞれまとめた内側アドレス群２１１〜２１８が定義されている。また、ローカル側構成定義２００には、１つの内側アドレス毎に割り振られた１ユーザ当りのセッション制限数２２０と、１ユーザ当りの予備セッション数２２１とが定義されている。本実施例では、セッション制限数２２０及び予備セッション数２２１は、共に１０２４である。グローバル側構成定義２３０には、連続する複数の外側アドレスをネットワーク単位ごとにそれぞれまとめた外側アドレス群２４１〜２４４が定義されている。また、グローバル側構成定義２３０には、外側アドレス毎の使用可能ポートとして、ポート範囲２５０が定義されている。本実施例では、ポート範囲２５０は、１０２４から６５５３５までである。このポート範囲２５０からポートレンジを以下の式（１）から求めることができる。
ポートレンジ＝エンドポート番号−スタートポート番号+１  …（１）
【００２８】
本明細書では、アドレス群の表現形式として、内側アドレス群には、Ａ，Ｂ，Ｃ．．．Ｈの識別子を付与し、外側アドレス群には、α，β，γ，δの識別子を付与する。また、アドレス群におけるアドレスおよび帯域の表記は、Ｖ．Ｘ．Ｙ．Ｚ／Prefixと表記する。ここで、アドレスは、上位８ビット毎に、Ｖ(１桁目)，Ｘ(２桁目)，Ｙ(３桁目)，Ｚ(４桁目)で示されている。Prefixは、ＣＩＤＲ(Classless Inter-Domain Routing)で用いるプリフィックス値によって、アドレス群のサイズを表している。
【００２９】
なお、上記構成定義から、下記のサイズが決定される。
総セッション数(最大同時接続数)＝内側アドレスの総数×１ユーザ当りのセッション制限数
外側アドレス・ポートの空間＝外側アドレスの総数×ポートレンジ
なお、外側アドレス・ポート空間は、下記の条件を満たすように定義される。
外側アドレス・ポートの空間≧内側アドレスの総数×(１ユーザ当りのセッション制限数＋１ユーザ当りの予備セッション数)
【００３０】
図５は、内側アドレス群を同じ上位アドレスを持つ集合ごとに並べた説明図である。内側アドレス群は、連続性を持った２のべき乗の大きさのアドレス範囲を単位として定義されている。この図５における横方向は、同じ上位アドレスを持つ集合を示しており、それぞれの内側アドレス群を、より大きなアドレス範囲をもつ１つのアドレス群として集約することも可能な事を示している。
【００３１】
Ａ５．各構成要素の説明：
図６は、内側アドレス群検索テーブル１２２を示す説明図である。内側アドレス群検索テーブル１２２は、Outboundパケットの転送時に参照されるテーブルであり、構成定義によって定められるテーブルである。この内側アドレス群検索テーブル１２２は、Outboundパケットに含まれる内側アドレス（送信元アドレス）が属する内側アドレス群をツリー検索によって特定するためのテーブルである。具体的には、例えば、内側アドレス群検索テーブル１２２は、Outboundパケットに含まれる内側アドレスのＶ(１桁目)からＸ，Ｙ，Ｚと順に比較アドレスと比較し、当該内側アドレスの属する内側アドレス群を特定する。なお、比較アドレスは、内側アドレス群の先頭アドレスでもある。内側アドレス群検索テーブル１２２には、それぞれの内側アドレス群ごとにポインタ値が格納されている。このポインタ値は、後述するポート検索ポインタ１２３、アドレス・ポート変換テーブル１２４及びポートマッピングテーブル１２６を参照する場合に用いられる値である。本実施例では、ポインタ値は、２５６個（プリフィックスの／２４）の内側アドレスを１つの単位としており、内側アドレスが２５６個分で、ポインタ値は１だけ増加する。以上より、内側アドレス群検索テーブル１２２は、ツリー検索をすることにより、下記の結果を取得することが出来る。
・内側アドレスが属するアドレス群の先頭アドレス(比較アドレス)
・内側アドレスが属するアドレス群のサイズ(Prefixより)
・内側アドレスが属するアドレス群の全体に置ける位置(ポインタ値より)
なお、外側アドレス群検索テーブル１２９も、内側アドレス群検索テーブル１２２と同様に、外側アドレスに対してツリー検索を行い、当該外側アドレスが属する外側アドレス群を特定する。
【００３２】
図７は、ポート検索ポインタ１２３を示す説明図である。ポート検索ポインタ１２３は、Outboundパケットの転送時、すなわち、送信元アドレスが変換対象の時に参照されるポインタであり、後述するポートオフセット値が登録されている。すなわち、ポート検索ポインタ１２３は、アドレス・ポート変換テーブル１２４のうち、送信元アドレス及び送信元ポート番号に対応する位置を参照するために用いられるポインタである。ポート検索ポインタ１２３におけるアドレス群の並びは、内側アドレス群検索テーブル１２２におけるアドレス群の並びと同じであり、アドレス群内におけるアドレスは、若番から連続に並んでいる。そして、１つの内側アドレスに対して、入力される可能性のある通信ポート番号分（本実施例では６５５３６個）のポインタが格納されている。
【００３３】
図８は、アドレス・ポート変換テーブル１２４を示す説明図である。アドレス・ポート変換テーブル１２４は、Outboundパケットの転送時（内側アドレスが比較対象）およびInboundパケットの転送時（外側アドレスが比較対象）に参照されるテーブルであり、アドレス・ポート変換情報である内側アドレス/内側ポート番号と、外側アドレス/外側ポート番号とを格納している。アドレス・ポート変換テーブル１２４における内側アドレス群の並びは、内側アドレス群検索テーブル１２２及びポート検索ポインタ１２３と同じであり、内側アドレス群内のアドレスは、若番から連続番地に並んでいる。同様に、アドレス・ポート変換テーブル１２４における外側アドレス群の並びは、外側アドレス群検索テーブル１２９と同じであり、外側アドレス群内のアドレスは、若番から連続番地に並んでいる。すなわち、アドレス・ポート変換テーブル１２４の全体構成は、ローカル側から見ると、内側アドレス群検索テーブル１２２及びポート検索ポインタ１２３の並びと同じであり、グローバル側から見ると、外側アドレス群検索テーブル１２９の並びと同じである。
【００３４】
ここで、内側アドレスと共に入力される可能性のある通信ポート番号の種類は６５５３６個あるにも係わらず、外側アドレスに登録可能な通信ポートの数は１ユーザ当りのセッション数で制限（実施例では１０２４個）される。したがって、内側アドレスのポート番号は、構成定義で決まらずに、新規パケットが到着する度に動的に割り当てられる。外側アドレスのポート番号は、ポート範囲、１ユーザ当りのセッション制限数および１ユーザ当りの予備セッション数によって規定されており、外側アドレス内のポート番号は連続している。なお、図８において外側ポートが２０４７から３０７２に飛んでいるのは、予備セッション数に相当する分だけポート番号を空けているためである。これは、内側アドレスが１増分する境界ではすべて同様の割り付けとなっている。
【００３５】
図９は、ポートマッピングテーブル１２６を示す説明図である。ポートマッピングテーブル１２６は、Outboundパケットの転送時において、ポート検索ポインタ１２３にポートオフセット値が未登録の場合に参照されるテーブルである。ポートマッピングテーブル１２６における内側アドレス群の並びは、内側アドレス群検索テーブル１２２と同じであり、内側アドレス群内のアドレスは、若番から連続番地に並んでいる。ポートマッピングテーブル１２６は、内側アドレスと対を成す外側アドレスのポートの空き状態を示すテーブルを有している。このテーブル内においては、当該アドレスで使用可能な通信ポートがビットマップで表現されている。ポートマッピングテーブル１２６は、ポートの割り当てが更新される毎に、空きポートの先頭値を残しながらビットマップ状態を更新して行く。
【００３６】
なお、１ユーザ当りのセッション制限数（構成定義によって決まる）を変更する場合には、１アドレス（ユーザ）当りの使用可能な通信ポートのビットマップのサイズを変更することもできる。また、ポートの空き状態はビットマップで管理されているので、例えば、ＲＴＰ、ＲＴＣＰのように、偶数、奇数しかも連番で割り当てが必要なプロトコルに対しても、柔軟に対応する事ができる。
【００３７】
Ａ６．パケットの転送：
図１０は、インタネットワーク装置１００によるアドレス・ポート変換の例を示す説明図である。以下では、一例として、ローカル側のユーザ１５１(10.1.5.195 : 15536)と、グローバル側のサーバ１５２(3x.128.32.8 : 80)との間においてパケットの転送を実行する場合について説明する。なお、図１０以降において、(10.1.5.195 : 15536)のように示した場合には、（アドレス：ポート番号）を意味するものとする。また、(5x.7.0.29 : 7188)や(3x.128.32.8 : 80)のように、5x及び3xで始まるアドレスは、外側アドレスを意味するものとする。そして、(10.1.5.195 : 15536)のように、10で始まるアドレスは、内側アドレスを意味するものとする。なお、外側アドレス中に表記された”x”は、実在する特定のグローバルアドレスを表記することを避けるために用いられているだけである。
【００３８】
ローカルアドレスネットワーク２１２に接続されたユーザ１５１が、グローバルアドレスネットワーク１４６に接続されたサーバ１５２に対してパケットを送信する場合（Outbound通信）には、インタネットワーク装置１００は、パケットに含まれる送信元アドレス及び送信元ポート番号を、外側アドレス及び外側ポート番号に書き換える。すなわち、インタネットワーク装置１００は、パケットに含まれる(10.1.5.195 : 15536)を(5x.7.0.29 : 7188)に書き換える。
【００３９】
一方、サーバ１５２が、ユーザ１５１に対してパケットを送信する場合（Inbound通信）には、インタネットワーク装置１００は、パケットに含まれる宛先アドレス及び宛先ポート番号を、内側アドレス及び内側ポート番号に書き換える。すなわち、インタネットワーク装置１００は、パケットに含まれる(5x.7.0.29 : 7188)を(10.1.5.195 : 15536)に書き換える。このように、インタネットワーク装置１００によってアドレス変換が行なわれることによって、ローカルアドレスネットワーク２１２に接続されたユーザ１５１と、グローバルアドレスネットワーク１４６に接続されたサーバ１５２とが通信を行なうことができる。
【００４０】
Ａ６−１．Outboundパケットの転送：
図１１は、Outboundパケットを転送する場合における各構成要素の参照方式を示す説明図である。図１２は、Outboundパケットを転送する場合における手順を示すフローチャートである。インタネットワーク装置１００は、パケットの転送に先立って、以下を認識している。
・内側アドレス群検索テーブル１２２におけるポインタの単位(実施例では２５６)
・外側アドレス群検索テーブル１２９におけるポインタの単位(実施例では１２８)
・１外側アドレス当りの内側アドレスの収容数(実施例では３１個)
ここで、収容数(整数)＝ポートレンジ／(１ユーザ当りのセッション制限数＋１ユーザ当りの予備セッション数)
【００４１】
ステップＳ１０では、パケット入力部１０１がローカルアドレスネットワーク１４５からOutboundパケットを受信する。ステップＳ２０では、Outboundパケット転送部１２１が、受信したパケットから送信元アドレスを取得し、内側アドレス群検索テーブル１２２を用いて、送信元アドレスが属する内側アドレス群を検索し、その内側アドレス群のポインタ値及び先頭アドレスを取得する。本実施例では以下のとおりとなる。
送信元アドレス：10.1.5.195
内側アドレス群：Ｂ
内側アドレス群Ｂのポインタ値：1
内側アドレス群Ｂの先頭アドレス：10.1.5.0
【００４２】
ステップＳ３０では、Outboundパケット転送部１２１が、受信したパケットに含まれる送信元アドレスと、内側アドレス群の先頭アドレスとの差分である内側アドレスオフセットを算出する。本実施例では、以下のとおりとなる。
内側アドレスオフセット：195(=195-0)
【００４３】
ステップＳ４０では、Outboundパケット転送部１２１は、以下の式（２）に基づいて、ポート検索ポインタ１２３における内側アドレス群の先頭位置Ｋ１を算出する。
Ｋ１＝内側アドレス群のポインタ値×ポインタの単位×送信元ポートの数  …（２）
本実施例では、以下のとおりとなる。
内側アドレス群Ｂのポインタ値：1
ポインタの単位：256（Prefix:/24)
送信元ポートの数：65536
ポート検索ポインタ１２３における内側アドレス群の先頭位置：16777216(=1*256*65536)
【００４４】
また、Outboundパケット転送部１２１は、以下の式（３）に基づいて、アドレス・ポート変換テーブル１２４における内側アドレス群の先頭位置Ｌ１を算出する。
Ｌ１＝内側アドレス群のポインタ値×ポインタの単位×１ユーザ毎のセッション制限数  …（３）
本実施例では、以下のとおりとなる。
内側アドレス群Ｂのポインタ値：1
ポインタの単位：256（Prefix:/24)
１ユーザ毎のセッション制限数：1024
アドレス・ポート変換テーブル１２４における内側アドレス群の先頭位置：
262144(=1*256*1024)
【００４５】
さらに、Outboundパケット転送部１２１は、以下の式（４）に基づいて、ポートマッピングテーブル１２６における内側アドレス群の先頭位置Ｊ１を算出する。
Ｊ１＝内側アドレス群のポインタ値×ポインタの単位  …（４）
本実施例では、以下のとおりとなる。
内側アドレス群Ｂのポインタ値：1
ポインタの単位：256（Prefix:/24)
ポートマッピングテーブル１２６における内側アドレス群の先頭位置：256(=1*256)
【００４６】
ステップＳ５０では、Outboundパケット転送部１２１は、ポート検索ポインタ１２３のうち、以下の式（５）によって指定される箇所を参照する。
ポート検索ポインタの参照位置＝Ｋ１＋Ｋ２＋Ｋ３  …（５）
ただし、Ｋ２＝内側アドレスオフセット×送信元ポートの数
Ｋ３＝送信元ポート番号
本実施例では、以下のとおりとなる。
ポート検索ポインタ１２３における内側アドレス群の先頭位置：16777216(=1*256*65536)
内側アドレスオフセット：195
送信元ポートの数：65536
送信元ポート番号：15536
ポート検索ポインタの参照位置：29572272(=16777216+195*65536+15536)
【００４７】
ステップＳ６０では、Outboundパケット転送部１２１が、ポート検索ポインタ１２３の参照位置にポートオフセット値が登録されているか否かを判定する。ここで、ポートオフセット値とは、アドレス・ポート変換テーブル１２４を参照する場合に用いられる値である。ステップＳ６０において、ポートオフセット値が登録されていない場合には、ステップＳ６２において、ポートオフセット値の登録を行なう。ポートオフセット値の登録については後述する。
【００４８】
ステップＳ６０において、ポートオフセット値が登録されている場合には、ステップＳ７０において、Outboundパケット転送部１２１が、アドレス・ポート変換テーブル１２４のうち、以下の式（６）によって指定される箇所を参照し、参照箇所に格納されている外側アドレス・外側ポート番号を取得する。
アドレス・ポート変換テーブル１２４の参照箇所＝Ｌ１＋Ｌ２＋Ｌ３  …（６）
ただし、Ｌ２＝内側アドレスオフセット×１ユーザ毎のセッション制限数
Ｌ３＝ポートオフセット値
本実施例では以下のとおりとなる。
アドレス・ポート変換テーブル１２４における内側アドレス群の先頭位置：
262144(=1*256*1024)
内側アドレスオフセット：195
１ユーザ毎のセッション制限数：1024
ポートオフセット値：20
アドレス・ポート変換テーブル１２４の参照箇所：461844(=262144+195*1024+20)
【００４９】
ステップＳ８０では、Outboundパケット転送部１２１が、Outboundパケットに含まれる送信元アドレス・送信元ポート番号を、取得した外側アドレス・外側ポート番号に置き換える。ステップＳ９０では、パケット出力部１０６が、グローバルアドレスネットワーク１４６にOutboundパケットを送信する。なお、図１２に示すように、Outbound転送に必要なメインメモリ部１４０へのアクセス回数は、ステップＳ５０とステップＳ７０の２回となる。
【００５０】
Ａ６−２．セッションの登録：
図１３は、セッションの登録をする場合における各構成要素の参照方式を示す説明図である。図１４は、セッションの登録をする場合における手順を示すフローチャートである。ステップＳ６４では、Outboundパケット転送部１２１は、ポートマッピングテーブル１２６のうち、以下の式（７）によって指定される箇所を参照し、指定される箇所における空きポート管理テーブル（ビットマップテーブル）を参照して、内側アドレスにおける空きポート情報（ポートオフセット）を取得する。
ポートマッピングテーブル１２６の参照位置＝Ｊ１＋Ｊ２  …（７）
ただし、Ｊ２＝内側アドレスオフセット
本実施例では以下のとおりとなる。
ポートマッピングテーブル１２６における内側アドレス群の先頭位置：256
内側アドレスオフセット：195
ポートマッピングテーブル１２６の参照位置：451
【００５１】
ステップＳ６６では、Outboundパケット転送部１２１は、アドレス・ポート変換テーブル１２４において上述した式（６）に基づいて指定される箇所における内側ポート番号（未登録）に、パケットに含まれる送信元ポート番号を書き込むと共に、当該箇所に格納されている外側アドレス・外側ポート番号を取得する。
【００５２】
ステップＳ６８では、Outboundパケット転送部１２１は、ポート検索ポインタ１２３のうち、上述した式（５）に基づいて指定される箇所に、取得したポートオフセット値を登録する。なお、図１４に示すように、セッション登録に必要なメインメモリ部１４０へのアクセス回数は３回であり、図１２に示すOutbound転送に必要なメインメモリ部１４０へのアクセス回数を合わせると、合計で５回となる。
【００５３】
Ａ６−３．Inboundパケットの転送：
図１５は、Inboundパケットを転送する場合における各構成要素の参照方式を示す説明図である。図１６は、Inboundパケットを転送する場合における手順を示すフローチャートである。
ステップＳ１１０では、パケット入力部１０７がグローバルアドレスネットワーク１４６からInboundパケットを受信する。
ステップＳ１２０では、Inboundパケット転送部１２９が、受信したパケットから宛先アドレスを取得し、外側アドレス群検索テーブル１２９を用いて、宛先アドレスが属する外側アドレス群を検索し、その外側アドレス群のポインタ値及び先頭アドレスを取得する。本実施例では以下のとおりとなる。
宛先アドレス：5x.7.0.29
外側アドレス群：β
外側アドレス群βのポインタ値：1
外側アドレス群βの先頭アドレス：5x.7.0.0
【００５４】
ステップＳ１３０では、Inboundパケット転送部１２８が、受信したパケットに含まれる宛先アドレスと、外側アドレス群の先頭アドレスとの差分である外側アドレスオフセットを算出する。本実施例では以下のとおりとなる。
外側アドレスオフセット：29(=29-0)
【００５５】
ステップＳ１４０では、Inboundパケット転送部１２８が、以下の式（８）に基づいて、アドレス・ポート変換テーブル１２４における外側アドレス群の先頭位置Ｍ１を算出する。
Ｍ１＝外側アドレス群のポインタ値×ポインタの単位×内側アドレスの収容数×１ユーザ毎のセッション制限数  …（８）
本実施例では、以下のとおりとなる。
外側アドレス群βのポインタ値：1
ポインタの単位：128（Prefix:/25)
内側アドレスの収容数：31
１ユーザ毎のセッション制限数：1024
アドレス・ポート変換テーブル１２４における外側アドレス群の先頭位置：
4063232(=1*128*31*1024)
【００５６】
ステップＳ１５０では、Inboundパケット転送部１２８が、以下の式（９）に基づいて、宛先アドレスに相当する外側アドレスのアドレス・ポート変換テーブル１２４における位置を算出する。
アドレス・ポート変換テーブル１２４における外側アドレスの位置＝Ｍ１＋Ｍ２  …（９）
ただし、Ｍ２＝外側アドレスオフセット×内側アドレスの収容数×１ユーザ毎のセッション制限数
本実施例では、以下のとおりとなる。
アドレス・ポート変換テーブル１２４における外側アドレス群の先頭位置：
4063232(=1*128*31*1024)
外側アドレスオフセット：29(=29-0)
内側アドレスの収容数：31
１ユーザ毎のセッション制限数：1024
アドレス・ポート変換テーブル１２４における外側アドレスの位置：
4983808(=4063232+29*31*1024)
【００５７】
ステップＳ１６０では、Inboundパケット転送部１２８が、アドレス・ポート変換テーブル１２４のうち、以下の式（１０）によって指定される箇所を参照し、参照箇所に格納されている内側アドレス・内側ポート番号を取得する。
アドレス・ポート変換テーブル１２４の参照位置＝Ｍ１＋Ｍ２＋Ｍ３  …（１０）
ただし、
Ｍ３＝１ユーザ当りのセッション制限数×商＋余
商＝ＩＮＴ｛(宛先ポート番号−スタートポート番号)÷(１ユーザ当りのセッション制限数＋１ユーザ当りの予備セッション数)｝
余＝ＭＯＤ｛(宛先ポート番号−スタートポート番号)÷(１ユーザ当りのセッション制限数＋１ユーザ当りの予備セッション数)｝
本実施例では、以下のとおりとなる。
宛先ポート番号：7188
スタートポート番号：1024
１ユーザ当りのセッション制限数：1024
１ユーザ当りの予備セッション数：1024
商：3(INT{(7188-1024)/(1024+1024)})
余：20(MOD{(7188-1024)/(1024+1024)})
アドレス・ポート変換テーブル１２４における外側アドレスの位置：4983808
アドレス・ポート変換テーブル１２４の参照位置：4986900 (=4983808+1024*3+20)
【００５８】
ステップＳ１７０では、Inboundパケット転送部１２８が、受信したパケットに含まれる宛先アドレス・宛先ポート番号をアドレス・ポート変換テーブル１２４の参照位置に格納されている内側アドレス・内側ポート番号に置き換える。ステップＳ１８０では、パケット出力部１０２がローカルアドレスネットワーク１４５にInboundパケットを送信する。なお、図１６に示すように、Inbound転送に必要なメインメモリ部１４０へのアクセス回数は、ステップＳ１６０の１回となる。
【００５９】
Ａ７．効果：
図１７は、Outboundパケットの転送性能を、アドレス・ポート変換テーブルの検索方式ごとに比較するグラフである。図１７の横軸はアクティブセッション数であり、縦軸は要求性能に対する比率である。この図１７では、５Ｍパケット／秒の転送性能を要求性能（１００％）としている。図１７には、本実施例におけるアドレス・ポート変換テーブルの参照方式を実行した場合の転送性能と、リニア検索を実行した場合の転送性能と、ハッシュ検索を実行した場合の転送性能とが記載されている。
【００６０】
１）リニア検索
リニア検索は、小規模のユーザ数を扱う家庭向けルータで用いられている方式である。まず変換情報のアドレス・ポート変換テーブルへの登録位置は新規パケットの到着順に決定される。したがって、アドレス・ポート対の割当てに関してはランダムとなるのが一般的である。次にパケットの転送に際してのアドレス変換テーブルの検索は、テーブルの先頭から順に老番方向にアドレスを比較することにより行なう。そして、一致したアドレス・ポートの対を転送パケットのアドレス・ポート情報として使用する。なお、リニア検索での一回のパケット転送に於けるアドレス変換テーブルのアクセス回数は以下の計算式で求めることができる。
平均アクセス回数（Ｎavg1）
Ｎavg1＝（Ｅ＋１）／２
Ｅ：アドレス・ポート対の登録数
【００６１】
２）ハッシュ検索（チェイン法）
ハッシュ検索は、中規模のユーザ数を扱う企業向けルータで用いられている方式である。まずパケットから取り出したアドレス・ポート情報をアドレス・ポート変換テーブルへ登録するが、登録位置はアドレス・ポート情報をキーにして計算したハッシュ値になる。したがって、アドレス対の割当てに関してはランダムとなるのが一般的である。ハッシュ検索ではハッシュ値によってアドレス・ポート変換テーブルの登録位置が決まるので、転送方向毎（OutboundとInbound）にアドレス・ポート変換テーブルを用意する。アドレス・ポート変換テーブルを転送方向に関わらず共通で持つ場合は、ハッシュ値をアドレス・ポート変換テーブルの当該位置に置き換えるポインタを備える。ハッシュ検索では異なるキーでもハッシュした値が同じになることがあり、これをハッシュ値の衝突とよぶ。この衝突を処理するのにチェイン法が用いられる。
【００６２】
チェイン法は、ハッシュ値が同じ場合に連結リストで繋いで行く方法である。IPv4のＮＡＴでは、アドレス(４ギガ)とポート(６４キロ)の組み合わせが２５６テラ個あるので、アドレスおよびポートの偏り方によって、衝突の確率が変化する。次にパケットの転送に際してのアドレス・ポート変換テーブルの検索は、アドレス・ポートをキーにして計算したハッシュ値となる。ハッシュ値の衝突が起こりうるので、連結リスト内でのアドレスの一致を確認して行き、一致したアドレス対を転送パケットのアドレスとして使用する。なお、ハッシュ検索（チェイン法）での一回のパケット転送に於けるアドレス変換テーブルのアクセス回数は以下の計算式で求めることができる。
【００６３】
アドレス変換テーブルをOutbound用、Inbound用それぞれに持つ場合の平均アクセス回数（Ｎavg2）
Ｎavg2 ＝１＋Ｅ／Ｂ
Ｅ：アドレス対の登録数
Ｂ：アドレス変換テーブルの大きさ：Ｂ
アドレス変換テーブルをOutbound、Inboundで共通に持つ場合の平均アクセス回数（Ｎavg3）
Ｎavg3 ＝２＋Ｅ／Ｂ
【００６４】
以上説明したリニア検索によって、アドレス・ポート変換テーブルの検索を行なった場合には、アクティブセッション数が１０００の時点で、要求性能に対する比率が１００％を下回ってしまう。また、ハッシュ検索によってアドレス・ポート変換テーブルの検索を行なった場合には、アクティブセッション数が１０メガの時点で、要求性能に対する比率が１００％を下回ってしまう。一方、本実施例によるアドレス・ポート変換テーブルの参照方式によれば、アクティブセッション数が１０メガを超えた場合であっても、メインメモリ部１４０へのアクセス回数は固定されるので、要求性能に対する比率は１００％を上回っている。したがって、本実施例によるインタネットワーク装置１００は、インタネットワーク装置（ＣＧＮ）としての要求を十分に満たすことができる。
【００６５】
図１８は、Inboundパケットの転送性能を、アドレス・ポート変換テーブルの検索方式ごとに比較するグラフである。この図１８における横軸及び縦軸は、図１７と同じである。ただし、この図１８では、１０Ｍパケット／秒の転送性能を要求性能（１００％）としている。この理由は、サーバからの応答であるInbound転送の方が高い性能が要求されるためである。この図１８によれば、リニア検索及びハッシュ検索では、アクティブセッション数が増加すると、図１７の場合と同様に、要求性能に対する比率が１００％を下回ってしまうが、本実施例によるインタネットワーク装置１００によれば、要求性能に対する比率は、常に１００％を上回ることが理解できる。
【００６６】
以上より、本実施例によるインタネットワーク装置１００によれば、内側アドレス及び外側アドレスは、それぞれアドレス群ごとに並んでおり、アドレス群内において内側アドレス及び外側アドレスは連続番号で並んでいるため、演算によってアドレス・ポート変換テーブル１２４における参照位置を求めることができる。具体的には、アドレス群の先頭位置と、アドレスオフセットと、ポート番号と、ポートオフセット値とに基づいてアドレス・ポート変換テーブル１２４における参照位置を求めることができる。したがって、本実施例によるインタネットワーク装置１００によれば、アドレス・ポート変換テーブル１２４を格納したメインメモリ部１４０へのアクセス回数を固定することができ、セッション数が増えても一定以上の転送性能を確保することが出来る。また汎用の安価で低速/大容量メモリをメインメモリ部１４０に採用することができるので、低コスト化も実現することができる。
【００６７】
Ｂ．変形例：
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【００６８】
Ｂ１．変形例１：
上記実施例では、内側アドレス群検索テーブル１２２は、８ビットごとにツリー検索を行なっていたが、１ビットごとにツリー検索を行なうこととしてもよい。
【００６９】
Ｂ２．変形例２：
上記実施例においてソフトウェアで実現されている機能の一部をハードウェアで実現してもよく、あるいは、ハードウェアで実現されている機能の一部をソフトウェアで実現してもよい。
【符号の説明】
【００７０】
１００…インタネットワーク装置
１０１…パケット入力部
１０２…パケット出力部
１０３…経路制御部
１０５…インサイド部
１０６…パケット出力部
１０７…パケット入力部
１０８…経路制御部
１１０…アウトサイド部
１２２…内側アドレス群検索テーブル
１２３…ポート検索ポインタ
１２４…ポート変換テーブル
１２５…セッション管理部
１２６…ポートマッピングテーブル
１２７…エージング管理部
１２９…外側アドレス群検索テーブル
１３０…装置制御部
１３５…ＣＰＵ部
１３６…プロセッサコア部
１３７…演算処理部
１３８…１ｓｔキャッシュ部
１４０…メインメモリ部
１４１…高速ＳＲＡＭ
１４４…プロセッサシステム
１４５…ローカルアドレスネットワーク
１４６…グローバルアドレスネットワーク
１５０…企業ルータ
１５１…ユーザ
１５２…サーバ
１５５…ホームルータ
１５６…個人ユーザ
１５９…ローカルネットワーク
１６２…企業ユーザ
１６３…企業ユーザ
１６５…インターネットサービスプロバイダ
１６６…インターネットサービスプロバイダ
１６７…インターネットサービスプロバイダ
１８０…インターネット
１８５…キャリアエッジルータ
２００…ローカル側構成定義
２１１…内側アドレス群
２３０…グローバル側構成定義
２４１…外側アドレス群
２５０…ポート範囲
【図１】
2010252103.tif 000003
【図２】
2010252103.tif 000004
【図３】
2010252103.tif 000005
【図４】
2010252103.tif 000006
【図５】
2010252103.tif 000007
【図６】
2010252103.tif 000008
【図７】
2010252103.tif 000009
【図８】
2010252103.tif 000010
【図９】
2010252103.tif 000011
【図１０】
2010252103.tif 000012
【図１１】
2010252103.tif 000013
【図１２】
2010252103.tif 000014
【図１３】
2010252103.tif 000015
【図１４】
2010252103.tif 000016
【図１５】
2010252103.tif 000017
【図１６】
2010252103.tif 000018
【図１７】
2010252103.tif 000019
【図１８】
2010252103.tif 000020