(57)【特許請求の範囲】
【請求項１】
グローバルアドレスを用いて到達可能なグローバル網内に設置されたルータと、
前記ルータにあらかじめ付与されたＩＰアドレス単位でポート番号を管理し、該ポート番号を割り当てるポート資源割り当て装置と、
プライベートアドレスを用いて到達可能なプライベート網と、前記グローバル網との境界に位置し、前記ルータに接続された接続装置とを有し、
前記ルータは、当該ルータにあらかじめ付与されたＩＰアドレスと、前記ポート資源割り当て装置が前記接続装置に割り当てたポート番号とに基づいて、パケット転送を行い得る通信システム。
【請求項２】
請求項１に記載の通信システムにおいて、
前記接続装置は、ＮＡＰＴ機能を有する場合、前記パケットのヘッダに含まれる前記ポート番号を前記プライベート網で使用できるプライベートポート番号へ書き換える制御を行い、前記ＮＡＰＴ機能を有しない場合、当該接続装置と接続された通信装置が利用するポート番号を用いて前記パケットを転送することを特徴とする通信システム。
【請求項３】
請求項１または請求項２に記載の通信システムにおいて、
前記接続装置は、前記パケット転送を行う通信のセッション開始時に、前記ポート番号の割り当てを前記ポート資源割り当て装置へ要求し、
前記ポート資源割り当て装置は、前記ルータ内に備えられた、前記ルータから前記接続装置へのパケット転送経路の情報であるフローテーブルエントリに、前記割り当てたポート番号と前記ＩＰアドレスとを設定することを特徴とする通信システム。
【請求項４】
請求項１から３のいずれか１項に記載の通信システムにおいて、
前記ポート資源割り当て装置は、ユーザーごとに割り当てるポート番号の数を制御することを特徴とする通信システム。
【請求項５】
請求項３に記載の通信システムにおいて、
前記ポート資源割り当て装置は、前記接続装置から前記ポート番号の割り当てを要求された際、複数のポート番号を割り当てることを特徴とする通信システム。
【請求項６】
請求項１から５のいずれか１項に記載の通信システムにおいて、
前記接続装置は、当該接続装置に割り当てられたポート番号を、異なる通信セッションに対して、使用することを特徴とする通信システム。
【請求項７】
グローバルアドレスを用いて到達可能なグローバル網内に設置されたルータであって、
プライベートアドレスを用いて到達可能なプライベート網と前記グローバル網との境界に位置し、当該ルータに接続された接続装置に対して、当該ルータにあらかじめ付与されたＩＰアドレスと、該ＩＰアドレスに応じて割り当てられたポート番号とに基づいてパケット転送を行うポートベースルーティング部を有するルータ。
【請求項８】
請求項７に記載のルータにおいて、
前記パケット転送は、前記ポートベースルーティング部内に作成された、前記ＩＰアドレスと前記ポート番号との組みを含むフローテーブルエントリに基づいて行われるルータ。
【請求項９】
グローバルアドレスを用いて到達可能なグローバル網内に設置されたルータに接続されたポート資源割り当て装置であって、
プライベートアドレスを用いて到達可能なプライベート網と前記グローバル網との境界に位置し、前記ルータに接続された接続装置に対して、前記ルータにあらかじめ付与されたＩＰアドレスに応じてポート番号を前記接続装置ごとに割り当て、該割り当てたポート番号を、前記ＩＰアドレス単位で管理するポート資源割り当て装置。
【請求項１０】
請求項９に記載のポート資源割り当て装置において、
前記ルータ内に備えらえた、前記ルータから前記接続装置へのパケット転送経路の情報であるフローテーブルエントリに、前記割り当てたポート番号と前記ＩＰアドレスとを設定するポート資源割り当て装置。
【請求項１１】
グローバルアドレスを用いて到達可能なグローバル網内に設置され、パケット転送を行うルータと、プライベートアドレスを用いて到達可能なプライベート網と前記グローバル網との境界に位置し、前記ルータに接続された接続装置とを含む通信システムにおける制御方法であって、
前記ルータは、あらかじめ付与されたＩＰアドレスと、該ＩＰアドレスに応じて前記接続装置に割り当てられたポート番号とに基づいて前記パケット転送を行う制御方法。
【請求項１２】
請求項１１に記載の通信システムの制御方法において、
前記接続装置が、ＮＡＰＴ機能を有する場合、前記パケットのヘッダに含まれる前記ポート番号を前記プライベート網で使用できるプライベートポート番号へ書き換える制御を行い、
前記接続装置が、前記ＮＡＰＴ機能を有しない場合、当該接続装置と接続された通信装置が利用するポート番号を用いて前記パケットを転送することを特徴とする制御方法。
【請求項１３】
請求項１１または請求項１２に記載の通信システムの制御方法において、
前記接続装置が、前記パケット転送を行う通信のセッション開始時に、前記ポート番号の割り当てを、前記ポート番号を管理するポート資源割り当て装置へ要求し、
前記ポート資源割り当て装置が、前記ルータ内に備えらえた、前記ルータから前記接続装置へのパケット転送経路の情報であるフローテーブルエントリに、前記要求に応じて割り当てたポート番号と前記ＩＰアドレスとを設定することを特徴とする制御方法。
【請求項１４】
請求項１１から１３のいずれか１項に記載の通信システムの制御方法において、
前記接続装置が、当該接続装置に割り当てられたポート番号を、異なる通信セッションに対して、使用することを特徴とする制御方法。
【請求項１５】
グローバルアドレスを用いて到達可能なグローバル網内に設置されたルータの制御方法であって、
プライベートアドレスを用いて到達可能なプライベート網と前記グローバル網との境界に位置し、当該ルータに接続された接続装置に対して、当該ルータにあらかじめ付与されたＩＰアドレスと、該ＩＰアドレスに応じて割り当てられたポート番号とに基づいてパケット転送を行う制御方法。
【請求項１６】
請求項１５に記載のルータの制御方法において、
前記パケット転送は、当該ルータ内に作成された、前記ＩＰアドレスと前記ポート番号との組みを含むフローテーブルエントリに基づいて行われる制御方法。
【請求項１７】
グローバルアドレスを用いて到達可能なグローバル網内に設置されたルータに接続されたポート資源割り当て装置の制御方法であって、
プライベートアドレスを用いて到達可能なプライベート網と前記グローバル網との境界に位置し、前記ルータに接続された接続装置に対して、前記ルータにあらかじめ付与されたＩＰアドレスに応じてポート番号を前記接続装置ごとに割り当て、該割り当てたポート番号を、前記ＩＰアドレス単位で管理する制御方法。
【請求項１８】
請求項１７に記載のポート資源割り当て装置の制御方法において、
前記ルータ内に備えらえた、前記ルータから前記接続装置へのパケット転送経路の情報であるフローテーブルエントリに、前記割り当てたポート番号と前記ＩＰアドレスとを設定する制御方法。
【請求項１９】
グローバルアドレスを用いて到達可能なグローバル網内に設置されたルータに、
プライベートアドレスを用いて到達可能なプライベート網と前記グローバル網との境界に位置し、当該ルータに接続された接続装置に対して、当該ルータにあらかじめ付与されたＩＰアドレスと、該ＩＰアドレスに応じて割り当てられたポート番号とに基づいてパケット転送を行う手順を実行させるためのプログラム。
【請求項２０】
グローバルアドレスを用いて到達可能なグローバル網内に設置されたルータに接続されたポート資源割り当て装置に、
プライベートアドレスを用いて到達可能なプライベート網と前記グローバル網との境界に位置し、前記ルータに接続された接続装置に対して、前記ルータにあらかじめ付与されたＩＰアドレスに応じてポート番号を前記接続装置ごとに割り当てる手順と、
前記割り当てたポート番号を、前記ＩＰアドレス単位で管理する手順とを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アドレスを共有するアドレス共有システム、アクセスルータ、ポート資源割り当て装置、接続装置、アドレス共有方法およびプログラムに関する。
【背景技術】
【０００２】
一般的に、ルータなどのＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）網におけるパケット転送装置は、パケットの宛先ＩＰアドレスによりホストノードを識別し、また、そのＩＰアドレスによりパケット配送経路を選択することで到達性を提供する仕組みとなっている。【０００３】
一方で、ＩＰ  ｖｅｒｓｉｏｎ  ４（ＩＰｖ４）用アドレスは、近年中に使い尽くされる見通しである。ＩＰ  ｖｅｒｓｉｏｎ  ４用アドレスが使い尽くされてしまうと、その後はＩＰｖ４アドレスの新規取得ができなくなることから、ＩＰｖ４アドレス不足の対策が進められている。【０００４】
また、ＮＡＰＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  ａｎｄ  Ｐｏｒｔ  Ｔｒａｎｓｌａｔｏｒ）装置は、プライベートアドレスで構築された網などを、インターネットへ接続する手段として広く利用されている。【０００５】
このＮＡＰＴ装置は、同装置を通過するパケットの、プライベート網側の端点情報を書き換える。これにより、同装置に割り当てられた１つのグローバルアドレスを、プライベート網に接続された複数のホストノードで共有できるようにする。そのため、ホストノードにグローバルアドレスを直接割り当てる場合と比べて、ＩＰｖ４アドレスの消費を抑制できる。ここで、端点情報とは、ＩＰアドレスと、トランスポートプロトコルの種類及びポート番号との組を意味する。【０００６】
一方で、ＮＡＰＴ装置にてＩＰアドレスを共有しているために、一般にＮＡＰＴ装置を挟んだ装置間では、双方向の到達性を確保できない。また、ＮＡＰＴ装置では書き換え前後の端点情報の対応づけを、通信セッション毎に管理する必要があり、パケット転送処理のコストがルータに比べて高くなる。以降、この対応づけを管理する表をアドレス変換表と呼ぶ。ここで、通信セッションとは、２つの端点間でやりとりされる一連の通信のことであり、典型的にはＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）コネクションなどがセッションにあたる。【０００７】
このため、個人や企業の単位ではＮＡＰＴ装置は広く用いられているが、ＩＳＰ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）等は、ＮＡＰＴ装置を大規模には導入していなかった。ここでＩＳＰは、個人や企業などを収容してインターネットへの接続サービスを提供する接続業者を意味する。【０００８】
図１は、現在のインターネット接続サービスの利用形態の一例を示す図である。【０００９】
図１を参照すると、ＩＳＰは、インターネットへの接続サービスを提供するために自身の網（ＩＳＰ網１０００）を構築し、その末端をルータ（ｒｏｕｔｅｒ）２０００を介してインターネット３０００内の装置や他のネットワークへ接続し、他の末端にアクセスルータ（ａｃｃｅｓｓ  ｒｏｕｔｅｒ）４０００−１，４０００−２を設置してユーザーである個人や企業を収容している形態が図示されている。アクセスルータ４０００−１，４０００−２は、ＩＳＰとの接続機能を持つユーザー装置であるＣＰＥ（Ｃｕｓｔｏｍｅｒ  Ｐｒｅｍｉｓｅｓ  Ｅｑｕｉｐｍｅｎｔ）５０００−１〜５０００−４とそれぞれ接続している。各ユーザーのＣＰＥ５０００−１〜５０００−４には、各々異なるグローバルアドレスＧＡ１〜ＧＡ４をそれぞれ割り当てている。【００１０】
しかし近年、ＩＰｖ４アドレスの不足への対応のため、ＩＳＰがＮＡＰＴ装置を設置し、ＩＳＰのユーザーにプライベートアドレスを提供する運用が検討されている（例えば、非特許文献１参照。）。このとき、ＩＳＰはユーザーを収容する網とインターネットとの境界にＮＡＰＴ装置を設置する。この網は一般に大規模なため、ＮＡＰＴ装置も現在広く用いられているものより、大幅に大規模になる。このため、このＮＡＰＴ装置は通常のＮＡＰＴ装置とは異なるものとして、ＣＧＮＡＴ（Ｃａｒｒｉｅｒ  Ｇｒａｄｅ  Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｏｒ）と呼ばれている。【００１１】
図２は、ＣＧＮＡＴを利用したインターネット接続サービスの利用形態の一例を示す図である。【００１２】
図２に示すように、ＩＳＰ網１０００とインターネット３０００との境界にＣＧＮＡＴ（ＣＧＮＡＴ  ｒｏｕｔｅｒ）６０００が設置されている。ＩＳＰ網１０００はプライベートアドレスを用いて構築される。各ＣＰＥ５０００−１〜５０００−４には各々異なるプライベートアドレスＰＡ１〜ＰＡ４がそれぞれ割り当てられる。各ユーザーのパケットは、ＣＧＮＡＴ６０００を通過するとき、当該パケットに付与されているプライベートアドレスがＣＧＮＡＴ６０００に割り当てられたグローバルアドレスＧＡ１〜ＧＡｎのいずれかに付け替えられる。このとき、ポート番号も書き換えられるため、１つのグローバルアドレス上の異なるポート番号を用いて、複数のユーザーがグローバルアドレスを共有できるようになる。【００１３】
ここで、ＩＳＰがＣＧＮＡＴを導入することで、下記のような問題が生じることが懸念されている。【００１４】
（１）一般に大規模なＮＡＰＴ装置は実現が困難である。この原因の１つとして、大規模なアドレス変換テーブルを持ち、かつ、高いスループットを維持する装置の設計が困難であることが挙げられる。また、他の原因として、トランスポート層におけるコネクションの生滅が、セッションの生滅にあたるため、その都度エントリの編集が必要になり、アドレス変換テーブルの冗長化が困難なことも挙げられる。また、実現できた場合でも、上記の課題を完全には解決できず、性能上のボトルネックや、単一障害点になる懸念がある。【００１５】
（２）ＩＳＰのユーザーが既にＮＡＰＴ装置を導入している場合、アドレス変換が二重になるため、通信が非効率になってしまう。また、現在、ＮＡＰＴ装置等のプライベート網側にある装置に対して、インターネット側から到達できるようにするためのプロトコル（ＵＰｎＰ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）など）も、ＩＳＰがＮＡＰＴ装置を導入すると働かなくなってしまう。【００１６】
（３）ＩＳＰ網で用いるプライベートアドレスと、ユーザーが自身の網で用いるプライベートアドレスとが重複してしまうおそれがある。【００１７】
上記のような課題を解決するため、網全体を収容するＮＡＰＴ装置を設けるかわりに、複数のユーザーに同一のＩＰｖ４アドレスを割り当て、また、これら複数ユーザーに、ポート番号空間を分割して一部ずつを各ユーザーに割り当てる方式が提案されている（例えば、非特許文献２参照。）。この方式では、各ユーザーは、ポート番号の範囲が制限されたＩＰｖ４アドレスを受取ることになる。これにより、複数のユーザーがＩＰｖ４アドレスを共有でき、ＩＰｖ４アドレスの使用量を減らすことができる。【００１８】
現在の装置は、ポート番号の範囲を制限して通信を行うようには設計されていないため、非特許文献２では次の方式を提案している。【００１９】
（ａ）ユーザー毎にポート番号変換装置を、ホストノードとＩＳＰのアクセスルータとの間に設置し、このポート番号変換装置で、ポート番号を書き換える。【００２０】
（ｂ）アドレスを払い出すプロトコル（ＤＨＣＰ（Ｄｙｎａｍｉｃ  Ｈｏｓｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）等）を拡張して、アドレスと共にポート番号の範囲を通知できるようにする。【００２１】
（ｃ）ＩＳＰのインターネットとの境界ルータは、単一アドレスを共有しているユーザーへのパケット配送は、宛先アドレスだけでなく宛先ポートも用いて行う。ここで、この境界ルータとユーザーのポート番号変換装置との間にトンネルを設定することにより、境界ルータ以外のＩＳＰ網内部のルータには、なんら改変を加えることなくアドレスの共有を実現できる。【００２２】
図３は、上述した（ａ）〜（ｃ）の方式を利用したインターネット接続サービスの利用形態の一例を示す図である。【００２３】
本形態は図３に示すように、上述した（ａ）で説明したポート番号変換装置であるポート資源割り当て装置７０００が設けられている。また、上述した（ｃ）で説明したトンネル８０００−１〜８０００−４が設けられている。【００２４】
図３に示した形態により、先述のＣＧＮＡＴにおける課題を次のように解決できる。【００２５】
まず、図２に示したようなインターネット３０００とＩＳＰ網１０００との境界にあったＣＧＮＡＴ６０００が不要になるため、ＣＧＮＡＴ６０００の実現の難しさや、導入した場合に懸念される課題を回避できる。【００２６】
また、ユーザーがＮＡＰＴ装置を導入済の場合には、ＮＡＰＴ装置にてポート番号の書き換えを行うため、アドレス変換が冗長になることはない。【００２７】
また、ＩＳＰがユーザーに払い出すアドレスはグローバルアドレスのため、ユーザーが用いているプライベートアドレス空間とは重複しない。
【先行技術文献】
【非特許文献】
【００２８】
【非特許文献１】Ｎｉｓｈｉｔａｎｉ，  Ｔ．，  Ｍｉｙａｋａｗａ，  Ｓ．，  Ｎａｋａｇａｗａ，  Ａ．，Ａｓｈｉｄａ，  Ｈ．，  “Ｃｏｍｍｏｎ  Ｆｕｎｃｔｉｏｎｓ  ｏｆ  Ｌａｒｇｅ  Ｓｃａｌｅ  ＮＡＴ  （ＬＳＮ）”，  ２００８．  Ｉｎｔｅｒｎｅｔ−Ｄｒａｆｔ，  ｄｒａｆｔ−ｎｉｓｈｉｔａｎｉ−ｃｇｎ−０１．
【非特許文献２】Ｍａｅｎｎｅｌ，  Ｏ．，  Ｂｕｓｈ，  Ｒ．，  Ｃｉｔｔａｄｉｎｉ，  Ｌ．，  Ｂｅｌｌｏｖｉｎ，  Ｓ．，  “Ａ  Ｂｅｔｔｅｒ  Ａｐｐｒｏａｃｈ  ｔｈａｎ  Ｃａｒｒｉｅｒ−Ｇｒａｄｅ−ＮＡＴ”，  ２００８，  Ｃｏｌｕｍｂｉａ  Ｕｎｉｖｅｒｓｉｔｙ  Ｔｅｃｈｎｉｃａｌ  Ｒｅｐｏｒｔ  ＣＵＣＳ−０４１−０８．
【発明の概要】
【発明が解決しようとする課題】
【００２９】
しかしながら、非特許文献２に記載された方式には以下のような問題点がある。【００３０】
１つ目の問題点は、境界ルータの負荷が過大になってしまうという点である。境界ルータでは、アドレス変換は不要だが、宛先ポートを参照してパケットの転送経路を選択する必要がある。通常、ＩＳＰの境界ルータは高いスループットを発揮する必要があり、ＴＣＡＭ（Ｔｅｒｎａｒｙ  Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）等の特殊なデバイスを用いて経路表を実装することでこれを実現している。経路表にポート番号を含めると、経路表のキー長が長くなり、性能低下の原因となってしまう。【００３１】
２つ目の問題点は、ポート番号変換を必ず行うため、常にＮＡＰＴ装置と同様のコストがかかってしまうという点である。具体的には、ポート番号変換テーブルの維持管理、チェックサムの再計算、特殊な上位層プロトコル（ＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）等）の例外処理等である。【００３２】
３つ目の問題点は、アドレスの払い出しが接続時に固定的に行われるために、ポート利用効率が悪いという点である。非特許文献２では、動的にポート番号を払い出すほうが効率が良いことは指摘されているが、具体的な方式は示されていない。【００３３】
本発明の目的は、上述した課題を解決するアドレス共有システム、アクセスルータ、ポート資源割り当て装置、接続装置、アドレス共有方法およびプログラムを提供することである。
【課題を解決するための手段】
【００３４】
本発明のアドレス共有システムは、
ＩＰアドレスのみを用いて相互に到達可能なグローバル網と、該グローバル網以外の網とに接続し、該網間のパケット転送を、アドレスおよびポート番号を用いて行うアクセスルータと、
前記ＩＰアドレス単位にポート番号を管理し、前記パケット転送をする際、前記アクセスルータにあらかじめ付与されたＩＰアドレスで管理されているポート番号を割り当てるポート資源割り当て装置とを有し、
前記アクセスルータは、当該アクセスルータにあらかじめ付与されたＩＰアドレスと、前記ポート資源割り当て装置が割り当てたポート番号とを用いて、前記パケット転送を行う。【００３５】
また、本発明のアクセスルータは、
ＩＰアドレスのみを用いて相互に到達可能なグローバル網と、該グローバル網以外の網とに接続し、該網間のパケット転送を、アドレスおよびポート番号を用いて行うアクセスルータであって、
当該アクセスルータにあらかじめ付与されたＩＰアドレスと、該ＩＰアドレスに応じて割り当てられたポート番号とを用いて、前記パケット転送を行う。【００３６】
また、本発明のポート資源割り当て装置は、
ＩＰアドレス単位にポート番号を管理し、前記ＩＰアドレスのみを用いて相互に到達可能なグローバル網と該グローバル網以外の網との間でパケット転送をする際、該パケット転送を行うアクセスルータにあらかじめ付与されたＩＰアドレスで管理されているポート番号を、該パケット転送のために割り当てる。【００３７】
また、本発明の接続装置は、
ＩＰアドレスのみを用いて相互に到達可能なグローバル網と、該グローバル網以外の網とに接続し、該網間のパケット転送を、アドレスおよびポート番号を用いて行う接続装置であって、
ＮＡＰＴ機能を有する場合、前記パケットのヘッダに含まれる前記グローバル網で使用するポート番号を前記グローバル網以外の網で使用できるプライベートポート番号へ書き換える制御を行い、前記ＮＡＰＴ機能を有しない場合、当該接続装置が用いるポート番号を制御する。【００３８】
また、本発明のアドレス共有方法は、
パケット転送を行うアクセスルータと、前記パケット転送に用いるポート番号を割り当てるポート資源割り当て装置とから構成されるアドレス共有システムにおけるアドレス共有方法であって、
前記ポート資源割り当て装置が、ＩＰアドレス単位にポート番号を管理する処理と、
前記ポート資源割り当て装置が、前記ＩＰアドレスのみを用いて相互に到達可能なグローバル網と、該グローバル網以外の網との間で前記パケット転送をする際、前記アクセスルータにあらかじめ付与されたＩＰアドレスで管理されているポート番号を割り当てる処理と、
前記アクセスルータが、当該アクセスルータにあらかじめ付与されたＩＰアドレスと、前記ポート資源割り当て装置が割り当てたポート番号とを用いて、前記パケット転送を行う処理とを有する。【００３９】
また、本発明のプログラムは、
ＩＰアドレスのみを用いて相互に到達可能なグローバル網と、該グローバル網以外の網とに接続し、該網間のパケット転送を、アドレスおよびポート番号を用いて行うアクセスルータに実行させるためのプログラムであって、
当該アクセスルータにあらかじめ付与されたＩＰアドレスと、該ＩＰアドレスに応じて割り当てられたポート番号とを用いて、前記パケット転送を行う手順を実行させる。【００４０】
また、本発明のプログラムは、
コンピュータに実行させるためのプログラムであって、
ＩＰアドレス単位にポート番号を管理する手順と、
前記ＩＰアドレスのみを用いて相互に到達可能なグローバル網と該グローバル網以外の網との間でパケット転送をする際、該パケット転送を行うアクセスルータにあらかじめ付与されたＩＰアドレスで管理されているポート番号を、該パケット転送のために割り当てる手順とをコンピュータに実行させる。【００４１】
また、本発明のプログラムは、
ＩＰアドレスのみを用いて相互に到達可能なグローバル網と、該グローバル網以外の網とに接続し、該網間のパケット転送を、アドレスおよびポート番号を用いて行う接続装置に実行させるためのプログラムであって、
ＮＡＰＴ機能を有する場合、前記パケットのヘッダに含まれる前記グローバル網で使用するポート番号を前記グローバル網以外の網で使用できるプライベートポート番号へ書き換える制御を行う手順と、
前記ＮＡＰＴ機能を有しない場合、当該接続装置が用いるポート番号を制御する手順とを実行させる。
【発明の効果】
【００４２】
以上説明したように本発明においては、ＩＰアドレスのみを用いて相互に到達可能なグローバル網と、該グローバル網以外の網とに接続し、該網間のパケット転送を、アクセスルータがアドレスおよびポート番号を用いて行い、ポート資源割り当て装置が、ＩＰアドレス単位にポート番号を管理し、パケット転送をする際、アクセスルータにあらかじめ付与されたＩＰアドレスで管理されているポート番号を割り当て、アクセスルータが、アクセスルータにあらかじめ付与されたＩＰアドレスと、ポート資源割り当て装置が割り当てたポート番号とを用いて、パケット転送を行う構成としたため、ポート番号を効率的に利用した経路制御を容易に行うことができる。
【図面の簡単な説明】
【００４３】
【図１】現在のインターネット接続サービスの利用形態の一例を示す図である。
【図２】ＣＧＮＡＴを利用したインターネット接続サービスの利用形態の一例を示す図である。
【図３】上述した（ａ）〜（ｃ）の方式を利用したインターネット接続サービスの利用形態の一例を示す図である。
【図４】本発明を適用したインターネット接続サービス（アドレス共有システム）の利用形態の一例を示す図である。
【図５】図４に示したアクセスルータおよびＣＰＥの第１の実施の形態における内部構成の一例を示すブロック図である。
【図６】図５に示したポートベースルーティング部の内部構成の一例を示すブロック図である。
【図７】図５に示したトランスポート層終端部とポート資源要求部との内部構成の一例を示すブロック図である。
【図８】図５に示したアドレス変換部とポート資源要求部との内部構成の一例を示すブロック図である。
【図９】図５に示したポート資源割り当て装置の内部構成の一例を示すブロック図である。
【図１０】第１の実施の形態において、ＣＰＥであるホストノードが行うセッション開設時の一連の動作の一例を説明するためのシーケンス図である。
【図１１】第１の実施の形態において、ＣＰＥであるＮＡＰＴノードが行うセッション開設時の一連の動作の一例を説明するためのシーケンス図である。
【図１２】第１の実施の形態において、ＣＰＥであるホストノードのセッション開設時の動作の一例を説明するためのフローチャートである。
【図１３】第１の実施の形態において、ＣＰＥであるＮＡＰＴノードのセッション開設時の動作の一例を説明するためのフローチャートである。
【図１４】第１の実施の形態において、図５に示したアクセスルータとポート資源割り当て装置とにおけるセッション開設時の動作の一例を説明するためのフローチャートである。
【図１５】図５に示しアクセスルータのポートベースルーティング部におけるパケット転送時の動作の一例を説明するためのフローチャートである。
【図１６】第１の実施の形態において、ＣＰＥであるホストノードのセッション終了時の動作の一例を説明するためのフローチャートである。
【図１７】第１の実施の形態において、ＣＰＥであるＮＡＰＴノードのセッション終了時の動作の一例を説明するためのフローチャートである。
【図１８】第１の実施の形態において、図５に示したアクセスルータとポート資源割り当て装置とにおけるセッション終了時の動作の一例を説明するためのフローチャートである。
【図１９】第２の実施の形態におけるアドレス変換部の内部構成の一例を示すブロック図である。
【図２０】第２の実施の形態において、ＣＰＥであるホストノードのセッション開設時の動作の一例を説明するためのフローチャートである。
【図２１】第２の実施の形態において、ＣＰＥであるＮＡＰＴノードのセッション開設時の動作の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【００４４】
以下に、本発明の実施の形態について図面を参照して説明する。
【００４５】
図４は、本発明を適用したインターネット接続サービス（アドレス共有システム）の利用形態の一例を示す図である。
【００４６】
本形態は図４に示すように、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスのみを用いて相互に到達可能なグローバル網であるインターネット５００内に、ルータ（ｒｏｕｔｅｒｓ）６００と、ＩＳＰ網７００とが接続されており、ＩＳＰ網７００とポート資源割り当て装置４００およびアクセスルータ（ａｃｃｅｓｓ  ｒｏｕｔｅｒ）１００−１，１００−２とが接続され、さらに、アクセスルータ１００−１とＣＰＥ２００−１，３００−１とが、また、アクセスルータ１００−２とＣＰＥ２００−２，３００−２とが接続された構成となっている。また、ＣＰＥ３００−１，３００−２は、インターネット５００の外部のネットワーク（網）と接続されている。
【００４７】
アクセスルータ１００−１，１００−２は、ＩＳＰが構築するネットワーク（ＩＳＰ網７００）の末端にあって、ユーザーと接続された伝送路を収容するルータである。また、アクセスルータ１００−１，１００−２には、グローバルアドレス（ＧＡｎ）があらかじめ付与されている。
【００４８】
ＣＰＥ２００−１，２００−２，３００−１，３００−２は、ユーザーの拠点、住宅等にあって、ＩＳＰ網７００と接続された伝送路を収容する接続装置である。また、ＣＰＥ２００−１，２００−２，３００−１，３００−２は、グローバル網とそれ以外の網とを接続する。また、ＣＰＥ２００−１，２００−２，３００−１，３００−２はルータとして機能する場合とホストノードとして機能する場合とがある。
【００４９】
ＣＰＥ３００−１，３００−２は、ルータとして機能する場合であり、ＩＳＰ網７００との伝送路とは別のプライベート網（顧客網：例えば、プライベートアドレスが機能するプライベート空間に設けられた網）８００−１〜８００−２と接続され、そのプライベート網８００−１〜８００−２にはＣＰＥでないホストノードやルータなどの末端装置であるｈｏｓｔ９００−１〜９００−４が接続される。
【００５０】
ＣＰＥ２００−１，２００−２は、ホストノードとして機能する場合である。
（第１の実施の形態）
図５は、図４に示したアクセスルータ１００−１、ＣＰＥ２００−１およびＣＰＥ３００−１の第１の実施の形態における内部構成の一例を示すブロック図である。なお、図４に示したアクセスルータ１００−１とアクセスルータ１００−２、ＣＰＥ２００−１とＣＰＥ２００−２、ＣＰＥ３００−１とＣＰＥ３００−２は互いにそれぞれ同じ構成および機能を有する。
【００５１】
図４に示したアクセスルータ１００−１には図５に示すように、ルーティング部１１０と、ポートベースルーティング部１２０と、割り当て外ポート通信遮断部１３０とが設けられている。また、アクセスルータ１００−１は、ポート資源割り当て装置４００と接続されている。
【００５２】
ルーティング部１１０は、一般的なルータと同じルーティング機能を有する。
【００５３】
割り当て外ポート通信遮断部１３０は、不適切なポート番号を利用しているトラフィックを遮断する。
【００５４】
図６は、図５に示したポートベースルーティング部１２０の内部構成の一例を示すブロック図である。
【００５５】
図５に示したポートベースルーティング部１２０には図６に示すように、フローテーブル１２１と、フローテーブル管理部１２２と、次ホップ決定部１２３と、発信元認証部１２４とが設けられている。
【００５６】
フローテーブル１２１は、端点毎に経路情報を保持し、端点情報をキーとして経路情報を検索する機能を持つ。図５には、フローテーブル１２１の最小限の構成例を示した。フローテーブル１２１では、フローテーブルエントリは２列の表になっている。第１列に宛先のグローバルアドレスである宛先アドレス（ＧＡｎ）とトランスポートプロトコルの種類（ＵＰｎ）及び宛先ポート番号（ＧＰｎ）の組を、また第２列に次ホップを識別する情報（ＮＨｎ）を持つ。
【００５７】
フローテーブル管理部１２２は、フローテーブルエントリの追加削除等を行う機能を持つ。また、フローテーブル管理部１２２は、図５に示したポート資源割り当て装置４００と接続されている。
【００５８】
次ホップ決定部１２３は、フローテーブル１２１を検索して次ホップを決定する機能を持つ。
【００５９】
発信元認証部１２４は、フローテーブル１２１を検索して発信元の正当性を検証する機能を持つ。
【００６０】
また、図４に示したＣＰＥ２００−１には図５に示すように、トランスポート層終端部２１０と、回線接続部２２０と、アプリケーション２３０と、ポート資源要求部２４０とが設けられている。
【００６１】
回線接続部２２０およびアプリケーション２３０は、一般的なＣＰＥが有する機能と同じ機能を有する。
【００６２】
図７は、図５に示したトランスポート層終端部２１０とポート資源要求部２４０との内部構成の一例を示すブロック図である。
【００６３】
図５に示したトランスポート層終端部２１０には図７に示すように、プロトコルコントロールブロック（ＰＣＢ）２１１と、送信ＡＰＩ２１２と、受信ＡＰＩ２１３と、セッション管理ＡＰＩ２１４と、送信部２１５と、受信部２１６と、端点管理部２１７とが設けられている。
【００６４】
プロトコルコントロールブロック（ＰＣＢ）２１１は、プロトコルの種類毎に各々存在し、自ホスト及び通信先の端点情報、関連するプロトコルパラメータ、該当セッションを利用するアプリケーション及びアプリケーションが利用するセッション記述子番号等をセッション毎に保持する機能を持つ。図７にはプロトコルコントロールブロック（ＰＣＢ）２１１の最小限の構成例を示した。プロトコルコントロールブロック（ＰＣＢ）２１１では、ＰＣＢエントリは３列の表になっている。第１列に自ホスト側のアドレス（ＧＡｎ）とポート番号（ＧＰｎ）とを、また第２列に対向ホスト側のアドレス（ＲＡｎ）とポート番号（ＲＰｎ）とを、また第３列にアプリケーション識別子（ＡＰｎ）とアプリケーションが利用するセッション記述子番号（ＳＤｎ）とを持つ。
【００６５】
送信ＡＰＩ２１２、受信ＡＰＩ２１３、およびセッション管理ＡＰＩ２１４の各ＡＰＩは、各処理に対応するアプリケーションからの呼出しインタフェースであり、一般的なホストノードが有するものの機能と同じ機能を有する。
【００６６】
送信部２１５および受信部２１６は、一般的なホストノードが有するものの機能と同じ機能を有する。
【００６７】
端点管理部２１７は、ホストノードがセッションを開設／終了等する場合に、そのセッションに用いる端点を作成／削除する機能を持つ。特に、本発明では、その端点に用いるポート番号をポート資源要求機能から取得する機能を持つ。
【００６８】
また、図５に示したポート資源要求部２４０には図７に示すように、取得済ポート番号表２４１と、ポート番号振り出し部２４２と、割り当て機能との通信部２４３とが設けられている。
【００６９】
取得済ポート番号表２４１は、ＣＰＥ２００−１に割り当てられたポート番号の一覧（ＧＡ１〜ＧＡｎ）を保持し、その使用状況を管理する。使用状況は、最低限使用／未使用の別を記録する。図７には、取得済ポート番号表２４１の最小限の構成例を示した。取得済ポート番号表２４１では、取得済ポート番号エントリは２列の表になっている。第１列には、取得済ポート番号（ＧＰｎ）と該当するプロトコルの種類（ＵＰｍ）とを、また第２列には、該当ポートの使用中／未使用の別の情報を持つ。
【００７０】
ポート番号振り出し部２４２は、他の機能部からの要求にしたがって、取得済ポート番号表２４１からポート番号を振り出し、未使用ポート番号がなければ、割り当て機能との通信部２４３を用いて新規にオート番号を取得する機能を持つ。
【００７１】
割り当て機能との通信部２４３は、ポート資源割り当て装置４００と通信する機能を持つ。ただし、具体的な通信方法はここでは規定しない。
【００７２】
また、図４に示したＣＰＥ３００−１には図５に示すように、ルーティング部３１０と、回線接続部３２０と、アドレス変換部３３０と、ポート資源要求部３４０とが設けられている。ここで、一般にはアドレス変換部３３０を持たないルータのＣＰＥも存在するが、本実施の形態では、ＣＰＥ３００−１は例外的な場合として説明する。
【００７３】
ルーティング部３１０は、一般的なルータと同じルーティング機能を有する。
【００７４】
回線接続部３２０は、一般的なＣＰＥが有する機能と同じ機能を有する。
【００７５】
図８は、図５に示したアドレス変換部３３０とポート資源要求部３４０との内部構成の一例を示すブロック図である。
【００７６】
図５に示したアドレス変換部３３０には図８に示すように、アドレス変換表３３１と、セッション管理部３３２と、ヘッダ書き換え部３３３とが設けられている。
【００７７】
アドレス変換表３３１は、プライベート側端点情報と、対応するグローバル側端点情報との組を保持し、プライベート端点、グローバル端点いずれを用いても検索できる。図８は、アドレス変換表３３１の最小限の構成例を示した。アドレス変換表３３１では、アドレス変換エントリは、２列の表になっている。第１列にプライベート網側で、ホストノードが実際に用いるセッション端点（末端装置）のアドレス（プライベートアドレス）（ＰＡｎ）とトランスポートプロトコルの種類（ＵＰｍ）とポート（プライベートポート）番号（ＰＰｎ）とを、また第２列にグローバル網側にパケットが出るときに用いるセッション端点の同様の情報を保持する。
【００７８】
セッション管理部３３２は、アドレス変換対象のパケットが、セッションを開設するパケットかどうか、あるいは、セッションを終了するパケットかどうかを検知する機能と、必要に応じて新規にグローバルポート番号をポート資源要求部３４０へ要求する機能と、それらの機能に対応してアドレス変換表３３１を更新する機能とを持つ。
【００７９】
ヘッダ書き換え部３３３は、アドレス変換表３３１の情報にしたがってパケットのヘッダ情報を書き換え、それに付帯して必要なパケットの修正（チェックサムの再計算など）を行う機能をもつ。
【００８０】
また、図５に示したポート資源要求部３４０には図８に示すように、図７に示した取得済ポート番号表２４１と、ポート番号振り出し部２４２と、割り当て機能との通信部２４３とが設けられており、図７を用いて説明した機能と同じ機能を有する。
【００８１】
図９は、図５に示したポート資源割り当て装置４００の内部構成の一例を示すブロック図である。
【００８２】
図５に示したポート資源割り当て装置４００には図９に示すように、ポート資源割り当て表４１０−１〜４１０−ｎと、ポート資源払い出し部４２０と、フローテーブル設定部４３０とが設けられている。
【００８３】
ポート資源割り当て表４１０−１〜４１０−ｎは、ポート資源割り当て装置４００がポート資源を管理するグローバルＩＰアドレスのアドレス及び、トランスポートプロトコルの種類（単位）毎に、別々に存在する。各々の表は、ポート番号をキーに割り当て先のＣＰＥを保持するようになっている。例えば、ポート資源割り当て表４１０−１では、アドレス（グローバルアドレス）ＧＡ１と、トランスポートプロトコルＵＰ１に対するポート資源割り当て表の最小限の構成例を示した。ポート資源割り当て表４１０−１〜４１０−ｎにおいて、ポート資源割り当てエントリは、２列の表になっている。第１列に割り当て対象のポート番号（ＧＰｎ）を、また第２列に割り当て先のＣＰＥの識別子（ＣＰＥｎ）を持つ。
【００８４】
ポート資源払い出し部４２０は、ＣＰＥからのポート資源割り当ての要求に応じて、ポート資源割り当て表４１０−１〜４１０−ｎを参照して、ポート資源をＣＰＥへ割り当てる機能を持つ。
【００８５】
フローテーブル設定部４３０は、ポート資源払い出し部４２０がＣＰＥに割り当てたポート番号ＧＰと、ＣＰＥに割り当てられているグローバルアドレスＧＡとから得られる端点に関するフローテーブルエントリをアクセスルータ１００−１に設定する機能を持つ。
【００８６】
以下に、本形態における動作を図面を用いて説明する。
【００８７】
本実施の形態における動作は、おおむね以下のように整理できる。
【００８８】
１．  セッション開設時の動作
１．１  ＣＰＥの動作
１．１．１  ＣＰＥがホストノードの場合の動作
１．１．２  ＣＰＥがＮＡＰＴの場合の動作
１．２  ポート資源割り当て装置とアクセスルータの動作
２．  パケット転送時の動作
２．１  アクセスルータの動作
３．  セッション終了時の動作
３．１  ＣＰＥの動作
３．１．１  ＣＰＥがホストノードの場合の動作
３．１．２  ＣＰＥがＮＡＰＴの場合の動作
３．２  ポート資源割り当て装置とアクセスルータの動作
４．  ＣＰＥがＮＡＰＴ機能を搭載しないルータの場合の動作
以下、上記の順にしたがって説明する。なお、このあとの説明では、簡略化のため、構成の説明で示したトランスポートプロトコルの種類の情報は省略して説明する。
［１．  セッション開設時の動作］
セッション開設時の動作は複雑なため、まず動作の概要を説明する。ここでは、２ｗａｙでセッション開設が終了するプロトコルの場合を例として説明する。
【００８９】
図１０は、第１の実施の形態において、ＣＰＥであるホストノードが行うセッション開設時の一連の動作の一例を説明するためのシーケンス図である。
【００９０】
図１０を参照すると、ステップ１にて通信セッション開始時に、ホストノードＣＰＥ２００−１（以下、ＣＰＥ１）内で、アプリケーション２３０（以下、ＡＰ１）がセッション開設ＡＰＩ（図の例ではｃｏｎｎｅｃｔ）を呼ぶと、まずステップ２にてＰＣＢにエントリを作るために、ステップ３にてポート番号振り出し要求がトランスポート層終端部２１０からポート資源要求部２４０へ送られる。この例では空きポートが無いため、ステップ４にてポート番号割り当て要求がポート資源割り当て装置４００へ送られる。図面中の角丸四角はノード間の通信内容（あるいはパケット）を示している。
【００９１】
ポート資源割り当て装置４００では、ステップ５にてＣＰＥ１にポート番号ＧＰ１を割り当て、次にＣＰＥ１のアドレスＧＡ１と割り当てたポート番号ＧＰ１の組をキーとして、アクセスルータ１００−１にフローテーブルエントリを作成するよう、ステップ６にて指示し、さらにそれが成功するとポート番号をＣＰＥ１へ応答する。
【００９２】
ＣＰＥ１では取得したポート番号をローカル側の端点としてＰＣＢエントリがステップ７にて作成され、ここでステップ８にてセッション開設用の通信が開始される。
【００９３】
ＣＰＥ１から送られるセッション開設パケットは、ステップ９にてアクセスルータ１００−１のフローエントリにより発信元の確認が行われ、対向ノードからＣＰＥ１への応答パケットは、ステップ１０にてこのフローエントリにより転送方路の判定が行われる。
【００９４】
最後にＣＰＥ１に到着したパケットからＰＣＢを検索し、ステップ１１にてトランスポート層終端部２１０は、アプリケーションを特定して、アプリケーションにセッション開設の終了を通知する。
【００９５】
次に、ＣＰＥがＮＡＰＴである場合の動作を説明する。
【００９６】
図１１は、第１の実施の形態において、ＣＰＥであるＮＡＰＴノードが行うセッション開設時の一連の動作の一例を説明するためのシーケンス図である。
【００９７】
図１１を参照すると、まず、通信セッション開始時に、ＣＰＥ３００−１（以下、ＣＰＥ１）が収容するプライベート網に接続しているホストノードが、ステップ２１にて通信相手に向けてセッションを開始するパケットを送出する。ここで上記のホストノードは、上記ＣＰＥであるホストノードとは異なり、自身でグローバルポート番号を取得する機能は持たないことに注意されたい。
【００９８】
ホストノードが送出したパケットがＣＰＥ１に到着すると、ステップ２２にてまず当該パケットに対応するアドレス変換エントリがなく、当該パケットがセッションを開設するものであることをアドレス変換部３３０が検知する。ＣＰＥ１内にアドレス変換エントリを作るために、ステップ２３にてポート番号振り出し要求がアドレス変換部３３０からポート資源要求部３４０へ送られる。
【００９９】
このあと、ステップ２４〜２６におけるポート番号取得までの流れは、上述したステップ４〜６の動作とそれぞれ同じである。
【０１００】
ＣＰＥ１では取得したポート番号ＧＰ１をグローバル側の端点情報として、ステップ２７にてアドレス変換エントリを作成し、先ほどホストノードから受取ったパケットの発信元端点をステップ２８にてＧＡ１，ＧＰ１に書き換えて送出する。
【０１０１】
その後のアクセスルータ１００−１でのステップ２９〜３０におけるパケット動作の流れは、上述したステップ９〜１０の動作とそれぞれ同じである。
【０１０２】
対向ノードからのパケットがＣＰＥ１に到着すると、ステップ３１にてアドレス変換エントリの情報から、パケットの宛先端点をプライベートアドレスであるＰＡ１，プライベートポート番号であるＰＰ１に書き換えて送出する。すると、ホストノードでは自ホスト宛のパケットとしてこれを受取る。
【０１０３】
以上が、セッション開設処理の流れのうち主要なものである。以下、各装置の動作を個別に説明する。
［１．１  ＣＰＥの動作］
［１．１．１  ＣＰＥがホストノードの場合の動作］
図１２は、第１の実施の形態において、ＣＰＥであるホストノードのセッション開設時の動作の一例を説明するためのフローチャートである。図１２に示した動作のうち、破線で囲んだ動作がポート資源要求部２４０の動作であり、それ以外はトランスポート層終端部２１０の動作である。
【０１０４】
セッション開設処理はアプリケーションが駆動する。図１２を参照すると、まず、ステップ２０１にてアプリケーション２３０が、トランスポート層終端部２１０のセッション開設ＡＰＩをコールする。
【０１０５】
すると、トランスポート層終端部２１０が、セッションの自ホスト側端点に必要なポート番号を得るために、ステップ２０２にてポート資源要求部２４０へ取得済の空きポートがあるかどうかを問い合わせる。
【０１０６】
ステップ２０３にてポートに空きがあるかどうかを判定し、ポートに空きがなければ、ステップ２０４にてポート資源要求部２４０は、ポート資源割り当て装置４００との通信部を介して、ポート資源割り当て装置４００へポート資源の要求を送る。
【０１０７】
ポート資源割り当て装置４００での動作は別途説明する。また、要求及び応答のプロトコル等については、一般的なプロトコル等を用いるものであれば良く、ここでは特に規定しない。
【０１０８】
ステップ２０５にてポート資源割り当て装置４００からの応答が得られると、ポート資源要求部２４０では内容を調べ、ポート番号が送られてきたかどうかをステップ２０６にて判定し、ポート番号が送られてくれば、送られてきたポート番号をポート番号振り出し部２４２を介してトランスポート層終端部２１０へ受け渡す。
【０１０９】
トランスポート層終端部２１０は、ステップ２０７にて当該ポート番号と、回線接続時に払い出されているＩＰアドレスを用いて端点を作成し、ステップ２０８にてセッション開設処理を行う。なお、ステップ２０３でポート番号に空きがある場合には、ステップ２０７の動作を実行する。
【０１１０】
このあと、セッション開設処理が終了すれば、正常終了を返却値としてＡＰＩコールを終了させ、ステップ２１０にてアプリケーション２３０へ制御を戻す。
【０１１１】
また、ステップ２０６で新規ポートを取得できなかった場合は、ステップ２０９にて所定の例外処理を行う。例外処理の内容はプロトコル等によって異なるが、典型的にはセッション開設のＡＰＩコールにエラーを返却する。
［１．１．２  ＣＰＥがＮＡＰＴノードの場合の動作］
図１３は、第１の実施の形態において、ＣＰＥであるＮＡＰＴノードのセッション開設時の動作の一例を説明するためのフローチャートである。図１３に示した動作のうち、破線で囲んだ動作がポート資源要求部３４０の動作であり、それ以外はアドレス変換部３３０の動作である。
【０１１２】
ＮＡＰＴでのセッション開設処理は、ホストノードが送信するセッション開設パケットにより駆動される。図１３を参照すると、外部から到着したパケットは、ステップ３０１にてルーティング部３１０を経由してアドレス変換部３３０に受け渡される。
【０１１３】
次に、アドレス変換部３３０は、ステップ３０２にて該当パケットのヘッダ情報に基づいてアドレス変換表３３１を検索する。具体的には、パケットがプライベート網側から到着したなら発信元端点をキーにプライベート端点のエントリを検索し、パケットがＩＳＰ側から到着したなら、ステップ３０３にて宛先点をキーにグローバル端点のエントリを検索する。
【０１１４】
検索の結果、エントリがあれば、該当パケットは既設のセッションに属していることになるため、セッション開設の必要はない。この場合、アドレス変換部３３０は、ステップ３１２にてアドレス変換エントリにしたがってパケットのヘッダ情報を書き換え、ステップ３１３にて再びパケットをルーティング部３１０に渡して配送させ、処理を終える。
【０１１５】
一方、ステップ３０３にてエントリがなければ、セッション管理部３３２は、ステップ３０４にて該当パケットがセッション開設を示すものかどうかを検査する。具体的な検査規則は、プロトコル及び運用ポリシー等に依存するが、典型的には、ＴＣＰのＳＹＮセグメントを含むパケット等がセッション開設パケットである。
【０１１６】
ステップ３０５にてセッション開設パケットであるかどうかを判定し、セッション開設パケットであれば、アドレス変換部３３０は、アドレス変換エントリのグローバル側端点情報に必要なポート番号を得るためにステップ３０６にてポート資源要求部３４０へ取得済の空きポートがあるかどうか問い合わせる。この後行われるステップ３０６〜３１０の動作は、上述したステップ２０２〜２０６の動作とそれぞれ同じである。
【０１１７】
ステップ３１０で新規ポートが取得出来た場合、あるいは、ステップ３０７でＣＰＥが空きポートを保持していた場合は、アドレス変換部３３０は、ステップ３１１にて該当ポート番号と、回線接続時に払い出されているＩＰアドレスを用いて端点を作成し、ステップ３１２にて当該エントリを用いて、セッション開設パケットのヘッダを書き換え、ステップ３１３にてルーティング部３１０を用いて当該パケットを配送させ、処理を終える。
【０１１８】
一方、ステップ３１０で新規ポートが取得出来なかった場合、あるいは、ステップ３０５でパケットがセッション開設パケットでないと判定された場合は、該当パケットの処理を継続できないため、ステップ３１４にて所定の手順にしたがって該当パケットを処理する。処理手順はトランスポートプロトコル及び運用ポリシに依存するが、典型的には、パケットを破棄し、発信元にＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）到達不可エラーを配送する。
［１．２  ポート資源割り当て装置とアクセスルータの動作］
図１４は、第１の実施の形態において、図５に示したアクセスルータ１００−１とポート資源割り当て装置４００とにおけるセッション開設時の動作の一例を説明するためのフローチャートである。図１４に示した動作のうち、破線で囲んだ動作がアクセスルータ１００−１のポートベースルーティング部１２０の動作であり、それ以外はポート資源割り当て装置４００の動作である。
【０１１９】
上記機能でのセッション開設処理は、ＣＰＥからのポート資源割り当て要求により駆動される。図１４を参照すると、ステップ４０１にてポート資源割り当て要求が到着すると、まず、ポート資源割り当て装置４００は、ポートを払い出す対象のグローバルアドレスを、ステップ４０２にて要求元のＣＰＥの情報を元に決定する。ここで決定するグローバルアドレスをＧＡとする。
【０１２０】
次に、ポート資源割り当て装置４００は、ステップ４０３にてＧＡのポート資源割り当て表４１０−１〜４１０−ｎから、空きポート番号を検索して、割り当てるポート番号を決める。
【０１２１】
ステップ４０４にて空きポートの取得に成功したかどうかを判定し、空きポートがあれば、アドレスＧＡと該当ポート（これをＧＰとする）とにより得られる端点をキーとして、要求元ＣＰＥへパケットを配送するフローエントリを作成するよう、ステップ４０５にてポート資源割り当て装置４００からアクセスルータ１００−１に指示を送る。
【０１２２】
アクセスルータ１００−１のポートベースルーティング部１２０では、ステップ１０１にてこれを受信し、ステップ１０２にてフローテーブル１２１にエントリを作成し、ステップ１０３にて設定結果をポート資源割り当て装置４００へ返送する。
【０１２３】
ポート資源割り当て装置４００は、受信した設定結果が成功であるかどうかをステップ４０６にて判定し、成功であれば、ステップ４０８にて成功の応答を作成してポート番号とともにＣＰＥへ応答を送る。受信した設定結果が失敗であれば、ステップ４０３で確保したエントリをステップ４０７にて解放し、ステップ４０８にて失敗の応答を作成してＣＰＥへ送る。
【０１２４】
ステップ４０４で空きポートの取得に失敗した場合は、ステップ４０８にてポート資源割り当て装置４００は失敗の応答を作成してＣＰＥへ送る。
【０１２５】
以上が、セッション開設に特有の動作であるが、アクセスルータ１００−１では、セッション開設パケットを、他のパケットと同様に、フローエントリにしたがって処理する必要がある（図１０のステップ９〜１０、図１１のステップ２９〜３０に該当する動作）。その手順は、以下で説明する。
［２．  パケット転送時の動作］
［２．１  アクセスルータの動作］
図１５は、図５に示しアクセスルータ１００−１のポートベースルーティング部１２０におけるパケット転送時の動作の一例を説明するためのフローチャートである。
【０１２６】
図１５に示したフローチャートのうち、左側のフローチャートがＣＰＥ側から到着したパケットの処理、右側のフローチャートがＩＳＰ側から到着したパケットの処理を表している。なお、ポートベースルーティング部１２０以外のパケット転送処理は、通常のルータの処理と同一である。
【０１２７】
ステップ１１１にてＣＰＥ側からパケットが到着すると、まず、ステップ１１２にてパケットの発信元端点をキーに、フローエントリを検索する。エントリが見つかれば、さらに、パケットが到達した伝送路と、次ホップの情報とを比較する。比較の結果、次ホップと同一の伝送路からパケットが到着しているかどうかをステップ１１３にて判定し、到着していれば、ステップ１１４にてルーティング部１１０へパケットを渡して配送させる。
【０１２８】
フローエントリが見つからない場合は、未割り当てのポート番号を用いたパケットをＣＰＥが発信しようとしている。あるいは、フローエントリの次ホップと異なる伝送路からパケットが到着した場合は、他のＣＰＥに割り当てられたポート番号が使われている。これらの場合は、ステップ１１５にて割り当て外ポート通信遮断部１３０へパケットを受け渡して所定の処理を行う。処理内容はトランスポートプロトコルおよび運用ポリシーに依存するが、典型的には、パケットを破棄して、発信元へＩＣＭＰエラーを送るとともに、システムログにパケットの情報を記録する。
【０１２９】
次にＩＳＰ側からパケットが到着すると、ステップ１２１にてパケットはルーティング部１１０から受け渡される。受け渡されたパケットの宛先端点をキーに、ステップ１２２にてフローエントリを検索する。ステップ１２３にてエントリがあるかどうかを判定し、エントリが見つかれば、見つかったエントリの次ホップ情報から配送先を決定し、ステップ１２４にて該当する伝送路へパケットを送出する。
【０１３０】
一方、フローエントリが見つからない場合は、すでに終了したセッションに属するパケットか、あるいは、未確立のセッションのパケットであるため、ステップ１２５にて所定の手順にしたがってパケットを処理する。典型的には、パケットを破棄して、発信元にＩＣＭＰ到達不可エラーを送信する。
［３．  セッション終了時の動作］
セッション終了時の動作を、装置毎に説明する。
［３．１  ＣＰＥの動作］
［３．１．１  ＣＰＥがホストノードの場合の動作］
図１６は、第１の実施の形態において、ＣＰＥであるホストノードのセッション終了時の動作の一例を説明するためのフローチャートである。図１６に示した動作のうち、破線で囲んだ動作がポート資源要求部２４０の動作であり、それ以外はトランスポート層終端部２１０の動作である。
【０１３１】
なお、セッション終了処理は、自サイト側のホストノードにより駆動される場合と、通信相手側から駆動される場合とがある。ここでは、簡素化のため、自サイト側からセッションを終了する場合についてのみ説明する。通信相手側からセッションを終了する場合でも、一般に最初のステップが異なるだけで、その他のステップは同様に実現できる。
【０１３２】
まず、ステップ２９０にてアプリケーション２３０がセッション終了ＡＰＩをコールする。例えば、バークレイソケットＡＰＩではｃｌｏｓｅ，ｓｈｕｔｄｏｗｎなどが該当する。トランスポート層終端部２１０は、当該ＡＰＩで受け渡されたセッション識別子をキーにステップ２９１にてＰＣＢ２１１を検索する。
【０１３３】
エントリが見つかれば、ステップ２９２にて該当エントリの状態にしたがって、セッション終了処理を実行する。ＴＣＰであれば、ＥＳＴＡＢＬＩＳＨＥＤ状態からＣＬＯＳＥＤ状態へ至る一連の動作が該当する。これらの処理が終了すると、トランスポート層終端部２１０は、ステップ２９３にてＰＣＢ２１１から該当エントリを削除する。
【０１３４】
次に、ステップ２９４にてポート番号振り出し部２４２へ該当ポートの解放を通知する。ポート番号振り出し部２４２では、ステップ２９５にて該当ポート番号を未使用のまま自ＣＰＥが保持するか、あるいはポート資源割り当て装置４００へ返却するかを判断する。
【０１３５】
ポート番号を保持する場合は、ステップ２９８にて取得済ポート番号表２４１の該当エントリを未使用に設定して、ステップ２９９にてＡＰＩ処理を終える。
【０１３６】
一方、ポート番号を返却する場合には、ステップ２９６にてポート資源割り当て装置４００へ返却を通知し、ステップ２９７にて取得済ポート番号表２４１の該当エントリを削除し、ステップ２９９にてＡＰＩ処理を終える。
［３．１．２  ＣＰＥがＮＡＰＴの場合の動作］
図１７は、第１の実施の形態において、ＣＰＥであるＮＡＰＴノードのセッション終了時の動作の一例を説明するためのフローチャートである。図１７に示した動作のうち、破線で囲んだ動作がポート資源要求部３４０の動作であり、それ以外はアドレス変換部３３０の動作である。
【０１３７】
ＮＡＰＴでは、セッション終了処理は、セッション終了パケットにより駆動される場合と、タイマーにより駆動される場合とがある。ここでは、簡素化のため、前者の場合についてのみ説明する。タイマーによりセッション終了処理を行う場合でも、一般に先頭の２ステップが異なるだけで、その他のステップは同様に実現できる。
【０１３８】
まず、アドレス変換部３３０は、ルーティング部３１０からパケットを受取ると、通常の手順にしたがってアドレス変換エントリを検索し、見つかればステップ３９１にてパケットのヘッダ情報を書き換える。
【０１３９】
次に、アドレス変換部３３０は、ステップ３９２にて該当パケットがセッション終了を示すものかどうか検査する。たとえばＴＣＰでは、ＦＩＮセグメントに対するＡＣＫが通過したあとの、反対側から到着したＦＩＮセグメントに対するＡＣＫパケットなどが該当する。セッション終了パケットであれば、ステップ３９３にてアドレス変換表３３１から該当エントリを削除する。
【０１４０】
次に、アドレス変換部３３０は、ステップ３９４にてポート資源要求部３４０のポート番号振り出し部２４２へ該当ポートの解放を通知する。その後に行われるステップ３９４〜３９８の処理は、図１６のステップ２９４〜２９８の処理と同一の処理である。
【０１４１】
最後に、アドレス変換部３３０は、書き換え済のパケットをステップ３９９にてルーティング部３１０に受け渡して、処理を終える。
［３．２  ポート資源割り当て装置とアクセスルータの動作］
図１８は、第１の実施の形態において、図５に示したアクセスルータ１００−１とポート資源割り当て装置４００とにおけるセッション終了時の動作の一例を説明するためのフローチャートである。図１８に示した動作のうち、破線で囲んだ動作がアクセスルータ１００−１のポートベースルーティング部１２０の動作であり、それ以外はポート資源割り当て装置４００の動作である。
【０１４２】
上記機能でのセッション終了処理は、ＣＰＥからのポート資源解放通知により駆動される。図１８を参照すると、ステップ４９２にてポート資源解放通知が到着すると、まず、ポート資源割り当て装置４００は、ポートを解放する対象のグローバルアドレスを、ステップ４９３にて要求元のＣＰＥの情報を元に決定する。ここで決定するグローバルアドレスをＧＡとする。
【０１４３】
次に、ポート資源割り当て装置４００は、ステップ４９４にてＧＡのポート資源割り当て表４１０−１〜４１０−ｎから、該当するエントリ検索する。
【０１４４】
ステップ４９５にてエントリがあるかどうかを判定し、エントリがあれば、アドレスＧＡと該当ポート（これをＧＰとする）とにより得られる端点をキーとして、要求元ＣＰＥへパケットを配送するフローエントリを削除するよう、ステップ４９６にてポート資源割り当て装置４００からアクセスルータ１００−１に指示を送る。
【０１４５】
アクセスルータ１００−１のポートベースルーティング部１２０では、ステップ１９７にてこれを受信し、ステップ１９８にてフローテーブル１２１のエントリを削除し、ステップ１９９にて設定結果をポート資源割り当て装置４００へ返送する。
【０１４６】
ポート資源割り当て装置４００は、受信した設定結果が成功であるかどうかをステップ４９７にて判定し、成功であれば、該当するポート資源割り当て表４１０−１〜４１０−ｎのエントリをステップ４９８にて削除し、ステップ４９９にて成功の応答を作成して通知元のＣＰＥへ送る。
【０１４７】
また、受信した設定結果が失敗であれば、ステップ４９６の処理を再度実行する。ただし、この繰り返しは回数に上限値を設け、当該回数が上限値に達した場合は、ステップ４９８の処理を実行するとともに、システムログに該当エントリの記録を残す。
【０１４８】
また、ステップ４９５にてエントリがなければ、ポート資源割り当て装置４００は、ステップ４９９にて発信元ＣＰＥにエラーを返送する。
［４．  ＣＰＥがＮＡＰＴ機能を搭載しないルータの場合の動作］
次に、ＣＰＥがルータであってＮＡＰＴ機能を持たない場合を説明する。この場合、ＣＰＥ配下には、グローバルアドレスを持った複数のホストノードが接続されている可能性がある。さらに、それらのホストノードはＣＰＥではないため、発信元のポート番号を、ポート資源割り当て装置４００から制御できない。
【０１４９】
このため、本ＣＰＥに割り当てられたＩＰアドレスは、ポート番号空間を分割することで、他のＣＰＥとは共有できないことになる。よって、ＣＰＥがＮＡＰＴ機能をもたないルータの場合は、一般的なＣＰＥと同様に、ＩＳＰから割り当てられたＩＰアドレスを該当ＣＰＥが占有するように動作する。
【０１５０】
アクセスルータ１００−１では、当該ＣＰＥから到達したパケットはポートベースルーティング部１２０に処理させず、一般的なルーティング機能のみにより配送方法を決定するよう処理させる。
【０１５１】
このようなＣＰＥは、ＩＰアドレスの利用効率を低下させるため、次のような運用を行うことも考えられる。
（１）ＩＰアドレスを共有するＣＰＥに比べて、高い接続料金を設定する。
（２）ＣＧＮＡＴの配下に収容する。ただしこの場合、該当するＣＰＥの数が多いと本発明の効果が低下するため、（１）と併用することになると考えられる。
［その他の付加機能］
利便性を高めるために、以下のような付加機能を設けても良い。
［ポート番号割当数の制限］
ポート資源割り当て装置４００は、個々のユーザー、または、個々のＣＰＥに割り当てるポート番号の数に上限を設けても良い。このようにすることで、単一ユーザーによる多数のポート番号の占有を防止できる。
【０１５２】
あるＣＰＥへのポート割り当てが上限に達すれば、図１４のステップステップ４０４で空きポート取得が失敗するよう、ポート取得処理を構成することで、上記を実現できる。
［構成上の選択肢］
ポート資源要求部２４０，３４０を搭載できないＣＰＥがあれば、上述したようなＮＡＰＴ機能を搭載しないルータの場合のように、そのＣＰＥについては、一般的なＩＰアドレス接続サービスと同様に、ＩＰアドレス単位の接続サービスを提供しても良い。このようにすることで、ファームウエアの更新が不可能なＣＰＥ等を継続して利用できる。
【０１５３】
また、ポート資源割り当て装置４００は、単一のポート番号割り当て要求に対して、複数のポート番号を割り当てても良い。このようにすることで、セッション開設の都度ポート番号割り当て要求を発行する必要がなくなるため、セッション開設のオーバーヘッドを減らすことができる。
【０１５４】
ここでは、制御機能と伝送機能とを区別するためにポート資源割り当て装置４００とアクセスルータ１００−１とを分離して説明したが、ポート資源割り当て装置４００が有する機能を、アクセスルータ１００−１内に実装しても良い。
【０１５５】
また、ここでは、アクセスルータ１００−１のポートベースルーティング部１２０と、通常のルーティング部１１０とを別機能として説明したが、実装上これらは単一のプログラム、またはハードウエアとして実現しても良い。フローテーブル１２１はルーティングテーブルのスーパーセットのため、フローエントリの検索時にポート番号なしで検索することで、ルーティングテーブルの機能を実現できる。
（第２の実施の形態）
［ＣＰＥが割り当てポートを複数セッションで用いる場合］
第１の実施の形態では、ＣＰＥは１セッションあたり１ポートを用いている。しかし、通信相手が異なれば、単一のローカル側の端点を異なる接続先に用いても良い。そのようにすることで、より効率的にポート番号を利用できる。
【０１５６】
第１の実施の形態と異なる部分のみ説明する。第２の実施の形態では、ＮＡＰＴであるＣＰＥのみ、構成が第１の実施の形態と異なっている。
【０１５７】
図１９は、第２の実施の形態におけるアドレス変換部３３０−２の内部構成の一例を示すブロック図である。このアドレス変換部３３０−２は、第１の実施の形態におけるアドレス変換部３３０と同様に、ＮＡＰＴであるＣＰＥに設けられている。
【０１５８】
図１９に示したアドレス変換部３３０−２の構成要素のうち、アドレス変換表３３１−２の構成が、第１の実施の形態と異なっている。一般的なアドレス変換表では、ホストノードが保持する端点（ＰＡｎ，ＰＰｎ）と、ＮＡＰＴノードが付け替える端点（ＧＡｎ，ＧＰｎ）との組を保持しているが、これに加え、第２の実施の形態におけるアドレス変換表３３１−２は対向ノードの端点（ＲＡｎ，ＲＰｎ）を保持する。一般的なアドレス変換エントリでは、パケットの宛先または発信元端点のみをキーとしてエントリを検索していたが、第２の実施の形態におけるアドレス変換表３３１−２には、宛先と発信元との両方の端点をキーとしてエントリを検索する必要がある。
【０１５９】
そのほかの機能の構成は、第１の実施の形態と同様である。
【０１６０】
第１の実施の形態と異なる部分のみ説明する。第２の実施の形態では、ＣＰＥのみ、動作が第１の実施の形態と異なっている。
［１．  セッション開設時の動作］
［１．１  ＣＰＥの動作］
［１．１．１  ＣＰＥがホストノードの場合の動作］
第１の実施の形態では、ＣＰＥがホストノードの場合のセッション開設処理を図１２を用いて説明している。同図を参照しながら、第１の実施の形態と異なる部分のみ説明する。
【０１６１】
まず第１の実施の形態と同様、ステップ２０１にて、アプリケーションがセッション開設ＡＰＩをコールして、セッション開設処理を駆動する。次に、自ホスト側端点のためにポート番号を確保しようとする。その後、行われる処理についてフローチャートを用いて説明する。
【０１６２】
図２０は、第２の実施の形態において、ＣＰＥであるホストノードのセッション開設時の動作の一例を説明するためのフローチャートである。
【０１６３】
図２０を参照すると、ここで、第２の実施の形態では、ステップ２１１にてトランスポート層終端部２１０は、既存のＰＣＢから、既存のエントリを順に取出す。ステップ２１２にてエントリがあるかどうかを判定し、エントリがあれば、次に、ステップ２１３にて該当エントリの通信相手の端点を調べ、これから開設しようとしているセッションと同一かどうかをステップ２１４にて判定する。
【０１６４】
異なっていれば、トランスポート層終端部２１０は、同一ポート番号を用いて、ＰＣＢエントリを作成する。通信相手の端点が異なっているため、これらのエントリは各々別のものとして識別できる。ＰＣＢエントリの作成処理は、図１２のステップ２０７の処理と同様である。
【０１６５】
一方、同一であれば、トランスポート層終端部２１０は、ステップ２１５にて次のエントリを調べる。
【０１６６】
また、エントリが１つもないか、重複を避けて利用できるポート番号が１つもない場合は、トランスポート層終端部２１０またはポート資源要求部２４０は、図１２のステップ２０２以降の処理を行う。
【０１６７】
このようにすることで、通信相手の端点が異なっている限り、ローカル側に同一のポート番号を使い続けることができるため、新たなポート番号取得を抑制できる。
［１．１．２  ＣＰＥがＮＡＰＴノードの場合の動作］
第１の実施の形態では、ＣＰＥがＮＡＰＴノードの場合のセッション開設処理を、図１３を用いて説明している。図１３を参照しながら、第１の実施の形態と異なる部分のみ説明する。
【０１６８】
図１３を用いて説明したステップ３０１〜３０５の処理は、第１の実施の形態と同様である。図１３を用いて説明したステップ３０５のＴｒｕｅ側のあと、ステップ３０６の処理の前に、新たな処理を追加する。その処理についてフローチャートを用いて説明する。
【０１６９】
図２１は、第２の実施の形態において、ＣＰＥであるＮＡＰＴノードのセッション開設時の動作の一例を説明するためのフローチャートである。
【０１７０】
図２１を参照すると、ここで、第２の実施の形態では、アドレス変換部３３０−２は、ステップ３１５にて既存のアドレス変換表から、既存のエントリを順に取出す。ステップ３１６にてエントリがあるかどうかを判定し、エントリがあれば、次に、アドレス変換部３３０−２は、ステップ３１７にて該当エントリの通信相手の端点と、セッション開設パケットの宛先端点とを比較し、ステップ３１８にて同一かどうか判定する。
【０１７１】
異なっていれば、アドレス変換部３３０−２は、同一のグローバルポート番号を用いて、アドレス変換エントリを作成する。通信相手の端点が異なっているため、これらのエントリは各々別のものとして識別できる。アドレス変換エントリの作成処理は図１３のステップ３１１の処理と同様である。
【０１７２】
同一であれば、アドレス変換部３３０−２は、ステップ３１９にて次のエントリを調べる。
【０１７３】
エントリが１つもないか、重複を避けて利用できるポート番号が１つもない場合は、ポート資源要求部３４０またはアドレス変換部３３０−２は、図１３のステップ３０６以降の処理を行う。
【０１７４】
このようにすることで、通信相手の端点が異なっている限り、グローバルポートに同一のポート番号を使い続けることができるため、新たなポート番号取得を抑制できる。
［２．  パケット転送時の動作］
［２．１  アクセスルータの動作］
アクセスルータ１００−１は、第１の実施の形態と同一の動作をする。アクセスルータ１００−１は、ＣＰＥ側の端点に基づきパケットの転送を行う。よって、ＣＰＥが、単一のポート番号で複数の通信相手とセッションを確立しても、アクセスルータ１００−１には影響はないためである。
［３．  セッション終了時の動作］
［３．１  ＣＰＥの動作］
［３．１．１  ＣＰＥがホストノードの場合の動作］
第１の実施の形態では、ＣＰＥがホストノードの場合のセッション終了処理を図１６を用いて説明している。図１６を参照しながら、第１の実施の形態と異なる部分のみ説明する。
【０１７５】
本実施の形態では、ローカル側のポート番号を、通信相手の端点が異なる複数のセッションで共有している。このため、いずれかのセッションが終了した場合でも、他のセッションが同一のポート番号を用いている可能性がある。よって、図１６に示したステップ２９３とステップ２９４との間に、以下のような処理を追加する。
【０１７６】
トランスポート層終端部２１０は、終了したセッションのローカル側端点をキーにしてＰＣＢ２１１を検索し、同一のポート番号を用いているエントリがあるかどうか調べる。
【０１７７】
該当するエントリがあれば、トランスポート層終端部２１０またはポート資源要求部２４０は、ステップ２９４以降のポート番号の解放処理は行わずに、ステップ２９９を実行してＡＰＩ処理を終える。
【０１７８】
該当するエントリがなければ、該当ポート番号を用いているセッションは存在しなくなったため、トランスポート層終端部２１０またはポート資源要求部２４０は、引き続いてステップ２９４以降の処理を実行する。
［３．１．２  ＣＰＥがＮＡＰＴの場合の動作］
第１の実施の形態では、ＣＰＥがホストノードの場合のセッション開設処理を、図１７を用いて説明している。図１７を参照しながら、第１の実施の形態と異なる部分のみ説明する。
【０１７９】
ＣＰＥがＮＡＰＴノードの場合も、ＣＰＥがホストノードの場合と同様であって、アドレス変換部３３０−２は、ステップ３９３でアドレス変換エントリを削除したあと、同一のローカル側のグローバルポートを用いているエントリの有無を調べる。
【０１８０】
該当ポート番号を使用するエントリがあれば、アドレス変換部３３０−２は、ステップ３９９を実行する。一方、該当ポート番号を使用するエントリがなければ、アドレス変換部３３０−２は、引き続きステップ３９４を実行する。
（実施例）
本発明の実施の形態は、具体的には以下のような装置により実現できる。
【０１８１】
すなわち、ＣＰＥ２００−１，２００−２，３００−１，３００−２、アクセスルータ１００−１，１００−２、ポート資源割り当て装置４００いずれも、中央演算装置（ＣＰＵ）と、揮発性メモリと、通信インタフェースと、不揮発性メモリまたはハードディスクとを備え、上記不揮発性メモリまたはハードディスクに格納されたプログラム、または、起動後に通信インタフェースを用いて外部からロードするプログラムにより、上記の動作を実現することができる。  
また、アクセスルータ１００−１，１００−２は、単一の計算機としてだけではなく、通信インタフェースを搭載するラインカードと、装置全体の制御や経路計算などを行うＣＰＵカードと、カード間のパケット交換を高速に行うスイッチファブリックと、その他の付加機能を搭載するサービスカードとから構成される、いわゆるシャーシ型の装置として実現できる。この場合、ルーティング部、ポートベースルーティング部等は、上記装置のラインカードやサービスカードとしても実現できる。  
また、本発明のアクセスルータ１００−１，１００−２およびポート資源割り当て装置４００は、例えば文献「Ｎｉｃｋ  ＭｃＫｅｏｗｎ  ｅｔ  ａｌ，  “ＯｐｅｎＦｌｏｗ：  Ｅｎａｂｌｉｎｇ  Ｉｎｎｏｖａｔｉｏｎ  ｉｎ  Ｃａｍｐｕｓ  Ｎｅｔｗｏｒｋｓ，”  ＡＣＭ  ＳＩＧＣＯＭＭ  Ｃｏｍｐｕｔｅｒ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｒｅｖｉｅｗ，  Ｖｏｌ  ３８  ，  Ｎｏ  ２  ，  Ａｐｒｉｌ  ２００８．」に記載されているような通信方式、通信装置により、好適に実現できる。
【０１８２】
また、ポート資源割り当て部２４０，３４０は、独立した装置だけではなく、アクセスルータ１００−１，１００−２内で動作するプログラムとしても実現できる。
【０１８３】
また、ＣＰＥ２００−１，２００−２，３００−１，３００−２は、専用の装置だけではなく、パーソナルコンピュータなどの汎用計算機上で、他のプログラムとともに動作するプログラムとしても実現できる。
【０１８４】
つまり、第１および第２の実施の形態で説明したＣＰＥ２００−１，２００−２，３００−１，３００−２、アクセスルータ１００−１，１００−２、ポート資源割り当て装置４００の処理は、目的に応じて作製された論理回路で行うようにしても良い。また、処理内容を手順として記述したプログラムをＣＰＥ２００−１，２００−２，３００−１，３００−２、アクセスルータ１００−１，１００−２、ポート資源割り当て装置４００にて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムをＣＰＥ２００−１，２００−２，３００−１，３００−２、アクセスルータ１００−１，１００−２、ポート資源割り当て装置４００に読み込ませ、実行するものであっても良い。ＣＰＥ２００−１，２００−２，３００−１，３００−２、アクセスルータ１００−１，１００−２、ポート資源割り当て装置４００にて読取可能な記録媒体とは、フロッピー（登録商標）ディスク、光磁気ディスク、ＤＶＤ、ＣＤなどの移設可能な記録媒体の他、ＣＰＥ２００−１，２００−２，３００−１，３００−２、アクセスルータ１００−１，１００−２、ポート資源割り当て装置４００に内蔵されたＲＯＭ、ＲＡＭ等のメモリやＨＤＤ等を指す。この記録媒体に記録されたプログラムは、ＣＰＥ２００−１，２００−２，３００−１，３００−２、アクセスルータ１００−１，１００−２、ポート資源割り当て装置４００内のＣＰＵ（不図示）にて読み込まれ、ＣＰＵの制御によって、上述したものと同様の処理が行われる。ここで、ＣＰＵは、プログラムが記録された記録媒体から読み込まれたプログラムを実行するコンピュータとして動作するものである。
【０１８５】
このように本発明においては、アクセスルータに割り当てられたアドレス毎に、ポート番号空間を分割することから、アクセスルータよりインターネット寄りのルータでは、ＩＰアドレスのみを用いて経路制御ができる。このため、境界ルータのようなトラフィックが集約される装置を用いずに、アドレス共有を実現することが可能となり、境界ルータ等のトラフィックが集中する装置ではアドレス共有の影響を受けない。
【０１８６】
また、ＮＡＰＴ装置を用いていないユーザーは、ＩＳＰと直接接続されるＣＰＥでローカルポート番号の値を制御できることから、ポート番号変換を行わずとも所定の割り当て範囲にポート番号を収めることができるため、ポート番号変換装置を利用する必要はない。つまり、本来不要な場合には、ＩＳＰ側でアドレス及びポート番号変換を行わず、アドレス共有を実現することができる。
【０１８７】
また、ＣＰＥは通信開始時に必要に応じてポート番号を要求することから、アドレスの共有に用いるポート番号の払い出しを、動的に行えることができ、ＤＨＣＰ等により、予めポート番号を割り当てておく方式に比べて、無通信時のポート番号利用を抑制でき、ポート番号を効率的に利用できる。
【０１８８】
本発明は、インターネット接続サービスを利用するユーサーが用いるコンピュータ、ユーザーが設置する通信装置、およびそれらを収容するISPが設置するルータ装置等に適用できる。特にＩＰアドレスを節約する必要がある環境で有効に利用できる。
【０１８９】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１９０】
この出願は、２００９年４月１６日に出願された日本出願特願２００９−０９９８５３を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
0005488591.tif 000002
【図２】
0005488591.tif 000003
【図３】
0005488591.tif 000004
【図４】
0005488591.tif 000005
【図５】
0005488591.tif 000006
【図６】
0005488591.tif 000007
【図７】
0005488591.tif 000008
【図８】
0005488591.tif 000009
【図９】
0005488591.tif 000010
【図１０】
0005488591.tif 000011
【図１１】
0005488591.tif 000012
【図１２】
0005488591.tif 000013
【図１３】
0005488591.tif 000014
【図１４】
0005488591.tif 000015
【図１５】
0005488591.tif 000016
【図１６】
0005488591.tif 000017
【図１７】
0005488591.tif 000018
【図１８】
0005488591.tif 000019
【図１９】
0005488591.tif 000020
【図２０】
0005488591.tif 000021
【図２１】
0005488591.tif 000022