(57)【要約】      （修正有）【課題】ＬＡＮ内の端末が通信を行う際の負荷を軽減する判定方法及び情報処理装置を提供する。【解決手段】第１の情報処理装置３０ａは、ネットワークにルータを介してアクセスしている端末２０から、ルータ１０で行われるアドレス変換の種類の特定を要求する特定要求パケットを受信すると、第２の情報処理装置３０ｂに端末２０との通信の確立を要求する。第２の情報処理装置３０ｂは、端末２０に対して通信の確立を要求するとともに、端末２０と第２の情報処理装置３０ｂの間での通信の確立に成功したかを第１の情報処理装置３０ａに通知する。第１の情報処理装置３０ａは、第２の情報処理装置３０ｂから受信した通知を用いて、種類を特定し、端末２０に前記種類を通知する。【選択図】図４
2016208162.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報処理装置を含むネットワーク中の第１の情報処理装置は、前記ネットワークにルータを介してアクセスしている端末から、前記ルータで行われるアドレス変換の種類の特定を要求する特定要求パケットを受信すると、第２の情報処理装置に前記端末との通信の確立を要求し、
前記第２の情報処理装置は、前記端末に対して通信の確立を要求するとともに、前記端末と前記第２の情報処理装置の間での通信の確立に成功したかを前記第１の情報処理装置に通知し、
前記第１の情報処理装置は、
前記第２の情報処理装置から受信した通知を用いて、前記種類を特定し、
前記端末に前記種類を通知する
ことを特徴とする判定方法。
【請求項２】
前記第１の情報処理装置は、
前記第１の情報処理装置が備える複数のポートのうちの第１のポートを用いて前記特定要求パケットを受信し、
前記第１のポートとは異なる第２のポートを介して、前記端末に通信の確立を要求し、
前記第２のポートを介した前記端末への通信の要求の結果を、さらに用いて、前記種類を特定する
ことを特徴とする請求項１に記載の判定方法。
【請求項３】
前記第１の情報処理装置は、前記端末に対して前記第２の情報処理装置に接続することを要求する接続要求パケットを送信し、
前記端末は、前記接続要求パケットを受信すると、前記第２の情報処理装置に前記端末との通信の開始を要求すると共に、前記端末が前記第２の情報処理装置との通信に使用しているアドレスを前記第１の情報処理装置に通知することを要求する通知要求パケットを、前記第２の情報処理装置に送信し、
前記第１の通信装置は、前記第２の情報処理装置から通知されたアドレスと、前記特定要求パケットの送信元アドレスとの比較結果をさらに用いて、前記種類を特定する
ことを特徴とする請求項１または２に記載の判定方法。
【請求項４】
前記特定要求パケットは、前記端末を識別する第１の識別情報をさらに含み、
前記第１の情報処理装置は、
前記特定要求パケットの送信元アドレスと前記第１の識別情報に対応付けて、前記ルータで行われるアドレス変換の種類の判定結果を記憶し、
アドレス変換の種類の特定を要求する他の特定要求パケットを受信し、
前記他の特定要求パケットは、前記他の特定要求パケットの送信元を識別する第２の識別情報を含み、
前記第１の情報処理装置は、
前記第１の識別情報と前記第２の識別情報が一致し、かつ、前記特定要求パケットの送信元アドレスと、前記他の特定要求パケットの送信元のアドレスが一致する場合、前記他の特定要求パケットは、前記端末が前記ルータを介して送信したパケットであると判定し、
前記第１の識別情報に対応付けられたアドレス変換の種類を、前記端末に通知する
ことを特徴とする請求項１〜３のいずれか１項に記載の判定方法。
【請求項５】
前記第１の情報処理装置は、前記種類と共に、前記端末の送信元アドレスとして前記第１の情報処理装置に通知されているアドレスである第１のアドレスを、前記端末に通知し、
前記端末は、前記種類を取得した後に、前記端末と前記第１の情報処理装置の間の通信を中継しているルータでのアドレス変換の種類の特定を要求する際に送信する他の特定要求パケットに、前記第１のアドレスをデータとして含め、
前記第１の情報処理装置は、
前記他の特定要求パケットの送信元のアドレスとして前記第１の情報処理装置が取得した第２のアドレスと、前記第１のアドレスが一致すると、前記他の特定要求パケットは、前記端末が前記特定要求パケットの送信の際と同じルータを介して送信したパケットであると判定し、
前記特定要求パケットの応答として前記端末に通知したアドレス変換の種類を、前記他の特定要求パケットの応答として前記端末に通知する
ことを特徴とする請求項１〜３のいずれか１項に記載の判定方法。
【請求項６】
複数の情報処理装置を含むネットワーク中の情報処理装置であって、
パケットを受信する受信部と、
前記ネットワークにルータを介してアクセスしている端末から、前記ルータで行われるアドレス変換の種類の特定を要求する特定要求パケットを前記受信部が受信すると、他の情報処理装置に前記端末との通信の確立を要求する要求部と、
前記他の情報処理装置から前記端末との通信の確立に成功したかが通知されると、通知された結果を用いて、前記種類を特定する特定部と、
前記端末に前記種類を通知する通知パケットを送信する送信部
を備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置と情報処理装置で行われる判定方法に関する。
【背景技術】
【０００２】
ブロードバンドルータの普及により、ユーザが家庭などでＬＡＮ（Local Area Network）を使用することが増えてきている。ＬＡＮ内では、プライベートＩＰアドレス（Private Internet Protocol Address）が使用されることが多い。プライベートＩＰアドレスを使用している機器がインターネットにアクセスする場合、ルータによって、ネットワークアドレス変換（ＮＡＴ、Network Address Translation）が行われる。ＮＡＴには複数の種類（ＮＡＴタイプ）がある。ＮＡＴタイプは、フルコーン、ＩＰ制限コーン、ポート制限コーン、シンメトリックに分けられる。通信を中継しているルータで行われるＮＡＴの種類によっては、機器が通信先とＰ２Ｐ（Peer to Peer）通信を行うときの障害になることがある。そこで、ＮＡＴタイプの判定方法が提案されている（例えば、非特許文献１）。
【０００３】
図１は、ＮＡＴタイプの調査方法の例を説明するシーケンス図である。図１の例では、端末５は、サーバ１５ａとサーバ１５ａのポートＡを介して通信している。また、ルータ１０が端末５とサーバ１５ａの間の通信を中継している。さらに、インターネット中には、端末５が通信していないサーバ１５ｂも含まれているものとする。以下、サーバ１５ａのＩＰアドレスはｘ．ｘ．ｘ．ｘ．で、サーバ１５ｂのＩＰアドレスはｙ．ｙ．ｙ．ｙ．であるとする。
【０００４】
ステップＳ１において、端末５は、サーバ１５ａに宛てて、サーバ１５ａとは異なるサーバからレスポンスを送信することを要求するＳＴＵＮ（Session Traversal Utilities for NAT）リクエストを送信する。ルータ１０は、ＳＴＵＮリクエストを、アドレス変換処理の後でサーバ１５ａに転送する（ステップＳ２）。サーバ１５ａは、ポートＡを介してＳＴＵＮリクエストを受信すると、サーバ１５ｂに対して、端末５のグローバルアドレス等の情報と共に、端末５へのＳＴＵＮレスポンスの送信要求を送信する（ステップＳ３）。サーバ１５ｂは、ＳＴＵＮリクエストの送信元に設定されているグローバルＩＰアドレスとポートを含めたＳＴＵＮレスポンスを端末５に送信する（ステップＳ４）。ここで、ルータ１０で行われるＮＡＴタイプがフルコーンの場合、ステップＳ５に示すように、ルータ１０は、端末５からの送信実績のないＩＰアドレスからのパケットも通過させる。このため、端末５は、ルータ１０でのＮＡＴタイプはフルコーン型であると判定する（ステップＳ６）。
【０００５】
図２は、フルコーン型ではないＮＡＴタイプの調査方法の例を説明するシーケンス図である。ステップＳ１〜Ｓ４で行われる処理は、図１と同様である。フルコーン型ではないＮＡＴを行うルータ１０は、端末５からの送信実績のないＩＰアドレスからのパケットを遮断するため、ＳＴＵＮレスポンスはルータで破棄される（ステップＳ１１）。端末５は、ステップＳ１で送信したＳＴＵＮリクエストに対する応答を受信できないので、次に、サーバ１５ａのポートＡ以外のポートからレスポンスを送信することを要求するＳＴＵＮリクエストを、サーバ１５ａに送信する（ステップＳ１２）。サーバ１５ａは、ルータ１０を介してＳＴＵＮリクエストを受信すると、端末５に向けて、ポートＢからＳＴＵＮレスポンスを送信する（ステップＳ１３、Ｓ１４）。ここで、ルータ１０で行われるＮＡＴタイプがＩＰ制限コーンの場合、ステップＳ１５に示すように、ルータ１０は、端末５からの送信実績のあるＩＰアドレスからのパケットであれば、いずれのポートからのパケットも通過させる。このため、端末５は、ステップＳ１２で送信したＳＴＵＮリクエストに対するＳＴＵＮレスポンスを受信すると、ルータ１０でのＮＡＴタイプはＩＰ制限コーン型であると判定する（ステップＳ１６）。
【０００６】
図３は、ポート制限コーン型かシンメトリック型の調査方法の例を説明するシーケンス図である。ステップＳ１〜Ｓ４、Ｓ１１〜Ｓ１４で行われる処理は、図２と同様である。ポート制限コーン型かシンメトリック型のＮＡＴを行うルータ１０は、パケットの送信元のアドレスとポートの組合せに対して、端末５からの送信実績がない場合、パケットを破棄する。このため、ポート制限コーン型かシンメトリック型のＮＡＴを行うルータ１０では、サーバ１５ａのポートＢから送信されたＳＴＵＮレスポンスは破棄される（ステップＳ２１）。端末５は、ステップＳ１２で送信したＳＴＵＮリクエストに対する応答を受信できないので、次に、サーバ１５ｂからレスポンスを送信することを要求するＳＴＵＮリクエストを、サーバ１５ｂに宛てて送信する（ステップＳ２２）。なお、サーバ１５ｂのアドレスは、ステップＳ１のＳＴＵＮリクエストに対する応答として、サーバ１５ａが端末５に通知しているものとする。ルータ１０は、ＳＴＵＮリクエストの送信元をグローバルＩＰアドレスに変換した後で、ＳＴＵＮリクエストを転送する（ステップＳ２３）。サーバ１５ｂは、ＳＴＵＮリクエストを受信すると、ＳＴＵＮリクエストの送信元に設定されているグローバルＩＰアドレスとポートを含めたＳＴＵＮレスポンスを、端末５に送信する（ステップＳ２４）。ルータ１０は、ＳＴＵＮレスポンスを端末５に転送する（ステップＳ２５）。端末５は、ＳＴＵＮレスポンスを受信すると、ＳＴＵＮレスポンスに含まれているグローバルＩＰアドレスとポートを用いて、ＮＡＴタイプを判定する（ステップＳ２６）。ポート制限コーン型のＮＡＴを行うルータ１０は、アドレスとポートの組合せが異なる複数の通信先との通信に際して、同じグローバルＩＰアドレスとポートを使用する。このため、サーバ１５ａとの通信に使用されているＩＰアドレスと、ステップＳ２６で受信したＳＴＵＮレスポンス中のグローバルＩＰアドレスが同じ場合、端末５は、ルータ１０でポート制限コーン型のＮＡＴが行われていると判定する。一方、シンメトリック型のＮＡＴを行うルータ１０は、アドレスとポートの組合せごとに、通信に使用するグローバルＩＰアドレスとポートの組合せを変更する。このため、サーバ１５ａとの通信に使用されているＩＰアドレスと、ステップＳ２６で受信したＳＴＵＮレスポンス中のグローバルＩＰアドレスが異なる場合、端末５は、ルータ１０でシンメトリック型のＮＡＴが行われていると判定する。
【０００７】
関連する技術として、複数のＮＡＴ装置のＮＡＴ種別を特定し、フルコーンまたはアドレス制限コーンのＮＡＴを行うＮＡＴ装置に直接接続している端末から主端末装置を選択する通信システムが提案されている。主端末装置を除く従端末装置間は、主端末装置による通信制御に従いＰ２Ｐ通信を行う（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１１−７７９２１号公報
【非特許文献】
【０００９】
【非特許文献１】J. Rosenberget al.、“Session Traversal Utilities for NAT (STUN)”、RFC5389、[online]、[平成２７年３月１１日検索]、インターネット＜http://tools.ietf.org/pdf/rfc5389.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ＬＡＮ内の端末がＳＴＵＮを用いてＮＡＴタイプを調査する場合、端末が送信したＳＴＵＮリクエストに応答する装置やその装置が使用するポートなどを、端末自身が決定することになる。また、端末自身が、受信したＳＴＵＮレスポンスを解析して、ＮＡＴタイプを判定することになるので、端末に処理負担がかかる。
【００１１】
本発明は、ＬＡＮ内の端末が通信を行う際の負荷を軽減することを目的とする。
【課題を解決するための手段】
【００１２】
１つの態様にかかる判定方法は、複数の情報処理装置を含むネットワークで使用される。第１の情報処理装置は、前記ネットワークにルータを介してアクセスしている端末から、前記ルータで行われるアドレス変換の種類の特定を要求する特定要求パケットを受信すると、第２の情報処理装置に前記端末との通信の確立を要求する。前記第２の情報処理装置は、前記端末に対して通信の確立を要求するとともに、前記端末と前記第２の情報処理装置の間での通信の確立に成功したかを前記第１の情報処理装置に通知する。前記第１の情報処理装置は、前記第２の情報処理装置から受信した通知を用いて、前記種類を特定し、前記端末に前記種類を通知する。
【発明の効果】
【００１３】
ＬＡＮ内の端末が通信を行う際の負荷が軽減される。
【図面の簡単な説明】
【００１４】
【図１】ＮＡＴタイプの調査方法の例を説明するシーケンス図である。
【図２】ＮＡＴタイプの調査方法の例を説明するシーケンス図である。
【図３】ＮＡＴタイプの調査方法の例を説明するシーケンス図である。
【図４】実施形態にかかるＮＡＴタイプの調査方法の例を説明するシーケンス図である。
【図５】通信を行う装置の構成の例を説明する図である。
【図６】通信を行う装置のハードウェア構成の例を説明する図である。
【図７】第１の実施形態で使用されるメッセージのフォーマットの例を示す図である。
【図８】第１の実施形態で行われるＮＡＴタイプの判定の要求処理の例を説明するシーケンス図である。
【図９】端末情報テーブルの例を示す図である。
【図１０】第１の実施形態で行われるＮＡＴタイプの判定処理の例を説明するシーケンス図である。
【図１１】第１の実施形態で行われるＮＡＴタイプの判定処理の例を説明するシーケンス図である。
【図１２】第１の実施形態で行われるＮＡＴタイプの判定処理の例を説明するシーケンス図である。
【図１３】第２の実施形態で使用される情報処理装置の構成の例を示す図である。
【図１４】第２の実施形態で行われるＮＡＴタイプの判定処理の例を説明するシーケンス図である。
【図１５】第２の実施形態で使用されるメッセージのフォーマットの例を示す図である。
【図１６】情報処理装置がＮＡＴタイプの判定結果を保持する方法の例を説明する図である。
【図１７】第２の実施形態で行われるＮＡＴタイプの判定処理の例を説明するシーケンス図である。
【図１８】第２の実施形態の適用例を説明する図である。
【図１９】第３の実施形態で行われるＮＡＴタイプの判定処理の例を説明するシーケンス図である。
【図２０】第３の実施形態で使用されるメッセージのフォーマットの例を示す図である。
【図２１】端末がＮＡＴタイプの判定結果を保持する方法の例を説明する図である。
【図２２】第３の実施形態で行われるＮＡＴタイプの判定処理の例を説明するシーケンス図である。
【図２３】第３の実施形態の適用例を説明する図である。
【発明を実施するための形態】
【００１５】
図４は、実施形態にかかるＮＡＴタイプの調査方法の例を説明するシーケンス図である。以下の記載では、「ＮＡＴ」という語は、ＮＡＴとＮＡＰＴ（Network Address Port Translation）の両方を含む意味で用いる。また、「アドレス変換」は、プライベートＩＰアドレスとグローバルＩＰアドレスの変換処理に加えて、プライベートポート番号とグローバルポート番号の変換処理も含むことがあるものとする。
【００１６】
図４に示す通信システムには、端末２０、ルータ１０、情報処理装置３０（３０ａ、３０ｂ）が含まれている。端末２０は、ルータ１０を介して、情報処理装置３０ａと通信している。また、ルータ１０は、端末２０から送信されたパケットをＬＡＮに含まれていない装置に送信する場合に、アドレス変換を行っている。なお、図４に示すシーケンスは一例であり、通信処理が行われるシステム中の端末２０、ルータ１０、情報処理装置３０の数は任意である。
【００１７】
ステップＳ３１において、端末２０は、ＮＡＴタイプの特定を要求する要求パケット（ＮＡＴタイプ特定要求）を、情報処理装置３０ａに送信する。ルータ１０は、情報処理装置３０ａ宛のパケットを受信すると、アドレス変換処理を行ってから、情報処理装置３０ａに転送する（ステップＳ３２）。
【００１８】
情報処理装置３０ａは、要求パケットを受信すると、情報処理装置３０ｂに対して、要求パケットの送信元と通信が可能であるかを判定することを要求するための接続要求（接続判定要求）を送信する（ステップＳ３３）。このとき、情報処理装置３０ａは、要求パケットの送信元アドレスを、端末２０のアドレスとして、接続判定要求に含めるものとする。
【００１９】
接続判定要求を受信すると、情報処理装置３０ｂは、端末２０との間で通信を確立するための処理を行う（ステップＳ３４）。情報処理装置３０ｂは端末２０との通信が確立できたかを、接続判定応答で情報処理装置３０ａに通知する（ステップＳ３５）。
【００２０】
ステップＳ３６において、情報処理装置３０ａは、情報処理装置３０ｂと端末２０との間の通信確立処理の結果を用いて、端末２０との通信を中継しているルータ１０で行われているアドレス変換処理のタイプを判定するための処理を行う。例えば、情報処理装置３０ｂが端末２０に通信を要求したときに、情報処理装置３０ｂと端末２０との間での通信が確立できたとすると、端末２０からの通信の実績がない装置からのパケットも端末２０に届いていることになる。そのため、情報処理装置３０ｂが端末２０に通信を要求したときに、情報処理装置３０ｂと端末２０との間で通信が確立できたことが通知されると、情報処理装置３０ａは、ルータ１０において、フルコーン型のアドレス変換が行われていると判定する。一方、情報処理装置３０ｂと端末２０の間での通信の確立に失敗すると、情報処理装置３０ａは、ルータ１０において、フルコーン型以外のタイプのアドレス変換が行われていると判定する。このとき、情報処理装置３０ａは、ルータ１０で行われているアドレス変換の種類を特定するために、さらに、情報処理装置３０ａのポートのうちで、要求パケットを受信していないポートから端末２０への通信を要求するなどの処理を行っても良い。
【００２１】
ステップＳ３７において、情報処理装置３０ａは、ルータ１０で行われているアドレス変換の種類を特定する情報を通知するための通知パケットを、端末２０に送信する。
【００２２】
このように、図４にかかる判定方法では、端末２０は、ルータ１０で行われているアドレス変換の種類を特定するためには、情報処理装置３０ａに対してＮＡＴタイプの特定を要求する以外には能動的に処理を行わない。換言すると、端末２０では、ルータ１０でのＮＡＴタイプの特定に際して、通信先を選択する処理や通信確立を要求した結果を用いた判定処理を行わなくて良い。従って、実施形態にかかる方法により、端末２０での処理負担が軽減される。
【００２３】
＜装置構成＞
図５は、通信を行う装置の構成の例を説明する図である。端末２０は、ユーザインタフェース（ＵＩ）２１、制御部２２、記憶部２３、および、通信部２４を備える。ユーザインタフェース２１は、端末２０のユーザからの入力を受け付け、入力された情報を制御部２２に出力する。制御部２２は、情報処理装置３０へ送信する要求パケットの生成や、情報処理装置３０から通知された情報の取得を行う。さらに、制御部２２は、情報処理装置３０との間の通信を確立するための制御を行う。記憶部２３は、端末２０で使用される情報を記憶する。通信部２４は、他の装置との間のパケットの送受信を行う。
【００２４】
ルータ１０は、通信部１１とアドレス変換処理部１２を備える。通信部１１は、ＬＡＮに含まれている端末２０などの装置とパケットを送受信し、さらに、インターネットやＷＡＮ（Wide Area Network）中の情報処理装置３０などの装置ともパケットを送受信する。アドレス変換処理部１２は、ＬＡＮ内の端末２０とＬＡＮに含まれていない情報処理装置３０などの装置との間で行われる通信を中継する際に、パケットのアドレス変換処理を行う。
【００２５】
情報処理装置３０は、通信部３１、記憶部３５、制御部４０を備える。制御部４０は、要求部４１と特定部５０を有する。通信部３１は、受信部３２と送信部３３を有する。受信部３２は、ルータ１０や他の情報処理装置３０などからパケットを受信する。送信部３３は、ルータ１０や他の情報処理装置３０などに向けてパケットを送信する。記憶部３５は、情報処理装置３０の処理に使用される情報を記憶する。要求部４１は、端末２０からＮＡＴタイプの特定が要求されると、他の情報処理装置３０に端末２０との間の通信の確立を要求する。さらに、要求部４１は、他の情報処理装置３０や端末２０へ送信する制御パケットの生成や、情報処理装置３０との間の通信を確立するための制御を行う。特定部５０は、他の情報処理装置３０や端末２０から受信したパケット中の情報の処理を行うことにより、ＮＡＴタイプの特定を行う。
【００２６】
図６は、通信を行う装置のハードウェア構成の例を説明する図である。端末２０は、ＣＰＵ（Central Processing Unit）１０１ａ、ＲＯＭ（Read Only Memory）１０２ａ、ＲＡＭ（Random Access Memory）１０３ａ、ネットワークインタフェース１０４ａ、入力装置１０５ａ、出力装置１０６ａを備える。さらに、端末２０は、オプションとして、ハードディスク（ＨＤＤ）１０７ａを備えてもよい。ＣＰＵ１０１ａ、ＲＯＭ１０２ａ、ＲＡＭ１０３ａ、ネットワークインタフェース１０４ａ、入力装置１０５ａ、出力装置１０６ａ、ハードディスク１０７ａは、相互にデータを入出力可能なように接続されている。ＣＰＵ１０１ａは、ＲＯＭ１０２ａやハードディスク１０７ａに格納されたプログラムを実行することにより、制御部２２として動作する。ＲＡＭ１０３ａは記憶部２３として動作する。入力装置１０５ａと出力装置１０６ａは、ユーザインタフェース２１として動作する。通信部２４は、ネットワークインタフェース１０４ａとＣＰＵ１０１ａにより実現される。
【００２７】
ルータ１０は、ＣＰＵ１０１ｂ、ＲＡＭ１０３ｂ、ネットワークインタフェース１０４（１０４ｂ、１０４ｃ）、フラッシュメモリ１０８を備える。ネットワークインタフェース１０４ｂは、ルータ１０とＬＡＮ側の装置の間の通信に使用され、ネットワークインタフェース１０４ｃは、ルータ１０とＷＡＮやインターネット中の装置との間の通信に使用される。ＣＰＵ１０１ｂ、ＲＡＭ１０３ｂ、ネットワークインタフェース１０４（１０４ｂ、１０４ｃ）、フラッシュメモリ１０８はデータの入出力が可能になるように接続されている。通信部１１は、ネットワークインタフェース１０４（１０４ｂ、１０４ｃ）とＣＰＵ１０１ｂにより実現される。ＣＰＵ１０１ｂ、ＲＡＭ１０３ｂ、フラッシュメモリ１０８は、アドレス変換処理部１２を実現する。
【００２８】
情報処理装置３０は、ＣＰＵ１０１ｄ、ＲＯＭ１０２ｄ、ＲＡＭ１０３ｄ、ネットワークインタフェース１０４ｄを備え、オプションとして、入力装置１０５ｄ、出力装置１０６ｄ、ハードディスク１０７ｄを備える。ＣＰＵ１０１ｄ、ＲＯＭ１０２ｄ、ＲＡＭ１０３ｄ、ネットワークインタフェース１０４ｄ、入力装置１０５ｄ、出力装置１０６ｄ、ハードディスク１０７ｄは、相互にデータを入出力可能になるように接続されている。ＣＰＵ１０１ｄは、ＲＯＭ１０２ｄ中のプログラムを読み込んで、制御部４０として動作する。ＲＡＭ１０３ｄは記憶部３５として動作する。また、通信部３１は、ネットワークインタフェース１０４ｄとＣＰＵ１０１ｄにより実現される。
【００２９】
＜第１の実施形態＞
図７は、第１の実施形態で使用されるメッセージのフォーマットの例を示す図である。図７では、第１の実施形態で使用される各制御メッセージのペイロードのうち、トランスポート層のヘッダの後に含められている情報を示している。このため、例えば、ネットワーク層でＩＰ、トランスポート層でＴＣＰ（Transmission Control Protocol）が用いられている場合、制御メッセージには、図７に示す情報要素の前に、ＩＰヘッダとＴＣＰヘッダが含まれている。なお、いずれの制御メッセージも、トランザクションＩＤ、メッセージタイプを含んでいる。トランザクションＩＤは、端末２０から送信されたＮＡＴタイプ特定要求（要求メッセージ）を一意に特定できるように、ＮＡＴタイプ特定要求を受信した情報処理装置３０によって設定される。メッセージタイプは、制御メッセージの種類を一意に特定できるように設定されており、制御メッセージの種類の識別に使用される。以下の説明では、各メッセージに設定されるメッセージタイプの値は、図７中に示すとおりであるものとする。
【００３０】
Ｆ１は、ＮＡＴタイプ特定要求に含まれる情報要素である。ＮＡＴタイプ特定要求は、端末２０が情報処理装置３０にＮＡＴタイプの特定を要求する際に、端末２０から送信される。ＮＡＴタイプ特定要求は、トランザクションＩＤ、メッセージタイプ、プロトコル種別を含む。なお、トランザクションＩＤはＮＡＴタイプ特定要求を受信した情報処理装置３０で決定されるので、ＮＡＴタイプ特定要求には、トランザクションＩＤが含まれていなくても良い。プロトコル種別は、端末２０が使用しているトランスポート層のプロトコルの種類を示す情報である。
【００３１】
Ｆ２は、接続判定要求に含まれる情報要素を示す。接続判定要求は、ＮＡＴタイプ特定要求を受信した情報処理装置３０が他の情報処理装置３０に、端末２０との通信の確立が可能であるかの判定を要求する際に使用される。接続判定要求には、トランザクションＩＤ、メッセージタイプ、端末２０との通信に使用される情報が含まれる。端末２０との通信に使用される情報には、端末２０が使用しているプロトコル種別、端末２０のＩＰアドレスとポート番号が含まれる。
【００３２】
Ｆ３は、接続判定応答に含まれる情報要素である。接続判定応答中の接続結果は、端末２０との通信の開始を要求された情報処理装置３０が、端末２０との通信に成功したかを示す情報である。
【００３３】
Ｆ４は、ＮＡＴタイプ特定応答に含まれる情報要素を示す。ＮＡＴタイプ特定応答には、ＮＡＴタイプの特定結果と、ＮＡＴタイプの特定を要求した端末２０のグローバルＩＰアドレスとグローバルポート番号が含まれる。
【００３４】
Ｆ５は、サーバ接続要求に含まれる情報要素である。サーバ接続要求は、情報処理装置３０が、端末２０に特定の情報処理装置３０へのパケット（サーバ接続要求応答）の送信を要求する際に使用される。サーバ接続要求には、サーバ接続要求応答の送信先のサーバで使用されているアドレスとポート番号が含まれる。サーバ接続要求応答は、Ｆ６に示すように、トランザクションＩＤとメッセージタイプ以外の情報を含まなくても良い。しかし、オプションとして、サーバ接続要求応答の結果を通知する通知先として、サーバ接続要求の送信元ＩＰアドレスと送信元ポート番号も、サーバ接続要求応答に含められる場合がある。サーバ接続要求応答が使用されるケースについては後述する。
【００３５】
Ｆ７は、端末情報通知に含まれる情報要素である。端末情報通知は、情報処理装置３０間で、通信に成功した端末２０の情報の通知を行う際に使用され、端末２０のグローバルＩＰアドレスとグローバルポート番号が含められる。
【００３６】
図８は、第１の実施形態で行われるＮＡＴタイプの判定の要求処理の例を説明するシーケンス図である。以下、端末２０がＴＣＰプロトコルを用いて情報処理装置３０ａのポート１にＮＡＴタイプの判定要求を送信する場合について説明する。以下、端末２０や情報処理装置３０の内部の説明を行うときは、符号の末尾に、端末２０または情報処理装置３０に割り当てられた識別子と同じアルファベットを付すものとする。例えば、制御部４０ａは、情報処理装置３０ａに含まれている制御部４０を指す。また、図を見やすくするために、図において、情報処理装置３０のことを「サーバ」と記載することがある。
【００３７】
ステップＳ４１は、端末２０のＮＡＴタイプの判定がユーザから要求されてから端末２０内で行われる処理を示す。ユーザが端末２０のＮＡＴタイプの判定を行うために、ユーザインタフェース２１に入力処理を行うと、ユーザインタフェース２１は、入力された情報を制御部２２に出力する。制御部２２は、入力された信号を解析して、ＮＡＴタイプの判定が要求されていることを特定すると、以下の情報を含むＮＡＴタイプ特定要求メッセージ（図７のＦ１）を生成する。
送信元ＩＰアドレス：端末２０のプライベートＩＰアドレス
ポート番号        ：プライベートポート番号
メッセージタイプ  ：１（ＮＡＴタイプ特定要求）
プロトコル種別    ：ＴＣＰ
制御部２２は、生成したＮＡＴタイプ特定要求を、通信部２４を介して、情報処理装置３０ａに向けて送信する。
【００３８】
ルータ１０は、端末２０からＮＡＴタイプ特定要求を受信すると、ＮＡＴタイプ特定要求に対するアドレス変換処理を行う（ステップＳ４２、Ｓ４３）。さらに、ルータ１０は、ＮＡＴタイプ特定要求のアドレス変換処理に使用したアドレスやポート番号などの情報を、端末２０に対応付けられたＮＡＴエントリとして記憶する。ルータ１０は、アドレス変換後のＮＡＴタイプ特定要求を、情報処理装置３０ａに向けて転送する（ステップＳ４４）。
【００３９】
情報処理装置３０ａの受信部３２ａは、ポート１を介して、ＮＡＴタイプ特定要求を受信したとする。受信部３２ａは、ＮＡＴタイプ特定要求を要求部４１ａに出力する（ステップＳ４５）。要求部４１ａは、ＮＡＴタイプ特定要求中の情報を特定部５０ａに出力する（ステップＳ４６）。特定部５０ａは、端末２０のグローバルＩＰアドレスやグローバルポート番号などの情報を記憶部３５中の端末情報テーブル３６（図９）に格納する（ステップＳ４７）。なお、このとき、特定部５０ａは、受信したＮＡＴタイプの特定要求を一意に特定するためのトランザクションＩＤを生成しているとする。
【００４０】
図９は、端末情報テーブル３６の例を示す図である。端末情報テーブル３６は、トランザクションＩＤごとに、グローバルＩＰアドレス、グローバルポート番号、プロトコル種別が記録されている。グローバルＩＰアドレスは、エントリ中のトランザクションＩＤで識別されるＮＡＴタイプ特定要求の送信元ＩＰアドレスである。すなわち、端末情報テーブル３６中のグローバルＩＰアドレスは、情報処理装置３０ａと端末２０との通信の際に、端末２０のグローバルＩＰアドレスとしてルータ１０が設定したアドレスである。グローバルポート番号は、エントリ中のトランザクションＩＤで識別されるＮＡＴタイプ特定要求の送信元ポート番号である。従って、端末情報テーブル３６中のグローバルポート番号は、情報処理装置３０ａと端末２０との通信の際に、端末２０のグローバルポート番号としてルータ１０が設定したポート番号である。プロトコル種別は、エントリ中のトランザクションＩＤで識別されるＮＡＴタイプ特定要求の送信処理に使用されたプロトコルである。
【００４１】
例えば、端末２０が送信したＮＡＴタイプ特定要求に対してトランザクションＩＤ＝ＩＤ１が設定されたとする。また、トランザクションＩＤ＝ＩＤ１のＮＡＴタイプ特定要求を情報処理装置３０ａが受信したときには、送信元ＩＰアドレスがＩＰ−Ｇ１、送信元ポート番号がＰＮ−Ｇ１に設定されていたとする。この場合、端末２０が送信したＮＡＴタイプ特定要求の処理により、図９の１番目のエントリが生成される。なお、情報処理装置３０ａは、並行して複数の装置についてＮＡＴの特定処理を行うことができる。情報処理装置３０ａにＮＡＴ特定を要求した各装置についての情報は、トランザクションＩＤに対応付けて端末情報テーブル３６に格納される。
【００４２】
図１０は、第１の実施形態で行われるＮＡＴタイプの判定処理の例を説明するシーケンス図である。特定部５０ａは、まず、端末２０との間の通信を中継しているルータ１０がフルコーン型のＮＡＴを行っているかを判定する。特定部５０ａは、情報処理装置３０ｂと端末２０の間で通信が可能であるかを判定することを、端末２０のトランザクションＩＤと対応付けて、要求部４１ａに通知する（ステップＳ５１）。要求部４１ａは、情報処理装置３０ｂと端末２０の間の接続が可能であるかを調べるために、以下の情報を含む接続判定要求（図７のＦ２）を生成する。
送信元ＩＰアドレス  ：情報処理装置３０ａのアドレス
宛先ＩＰアドレス    ：情報処理装置３０ｂのアドレス
トランザクションＩＤ：ＩＤ１
メッセージタイプ    ：２（接続判定要求）
プロトコル種別      ：ＴＣＰ
端末ＩＰアドレス    ：ＩＰ−Ｇ１
端末ポート番号      ：ＰＮ−Ｇ１
要求部４１ａは、生成した接続判定要求を、通信部３１ａを介して、情報処理装置３０ｂに送信する（ステップＳ５２、Ｓ５３）。
【００４３】
情報処理装置３０ｂの通信部３１ｂは、接続判定要求を受信すると、接続判定要求を、要求部４１ｂに出力する（ステップＳ５４）。要求部４１ｂは、接続判定要求で通知されたプロトコルを用いて、接続判定要求で通知された端末との間の通信が可能であるかを判定するための制御パケットを生成する。図１０の例では、端末２０はＴＣＰを使用して通信を行っているので、要求部４１ｂは、ＴＣＰの３ウェイハンドシェークによって、端末２０との間の通信の確立の可否を判定できることを認識する。そこで、要求部４１は、通信部３１ｂに対して、端末２０との間でＴＣＰコネクションの確立を要求する（ステップＳ５５）。このとき、要求部４１ｂは、接続判定要求の端末ＩＰアドレスと端末ポート番号から端末２０のグローバルＩＰアドレスとグローバルポート番号を取得し、取得した情報を通信部３１ｂに通知する。
【００４４】
通信部３１ｂは、以下の情報を含むＴＣＰコネクションの確立要求を生成する。
送信元ＩＰアドレス  ：情報処理装置３０ｂのアドレス
宛先ＩＰアドレス    ：ＩＰ−Ｇ１
宛先ポート番号      ：ＰＮ−Ｇ１
制御ビット          ：ＳＹＮ＝１
通信部３１ｂが生成したコネクションの確立要求を図１０では、ＴＣＰ（ＳＹＮ）と記載する。通信部３１ｂは、コネクションの確立要求を端末２０に向けて送信する（ステップＳ５６）。
【００４５】
ルータ１０は、情報処理装置３０ｂから端末２０に宛てたコネクションの確立要求を受信すると、アドレス変換処理部１２の設定に応じて処理を行う。図１０の例では、アドレス変換処理部１２がフルコーン型のアドレス変換処理を行うように設定されている場合について説明する。フルコーン型では、ルータ１０は、端末２０がパケットを送信していない情報処理装置３０ｂから端末２０に宛てたパケットを破棄しない。アドレス変換処理部１２は、コネクションの確立要求の宛先アドレスと宛先ポートに対してアドレス変換を行う。アドレス変換後のコネクション確立要求では、宛先アドレスは端末２０が使用するプライベートＩＰアドレスであり、宛先ポート番号は端末２０が使用するプライベートポート番号である。ルータ１０は、アドレス変換後のコネクション確立要求を端末２０に転送する（ステップＳ５７）。
【００４６】
端末２０中の通信部２４は、情報処理装置３０ｂから受信したコネクション確立要求に応答して、端末２０から情報処理装置３０ｂに向かうコネクションの確立要求を生成し、情報処理装置３０ｂに向けて送信する。図１０では、端末２０から情報処理装置３０ｂに向かうコネクションの確立要求を、ＴＣＰ（ＳＹＮ／ＡＣＫ）と記載する。ルータ１０は、端末２０からＴＣＰ（ＳＹＮ／ＡＣＫ）を受信すると、アドレス変換処理を行って、情報処理装置３０ｂに転送する（ステップＳ５８）。
【００４７】
情報処理装置３０ｂの通信部３１ｂは、端末２０から送信されたＴＣＰ（ＳＹＮ／ＡＣＫ）を受信すると、端末２０に宛てて確認応答（ＴＣＰ（ＡＣＫ））を送信する（ステップＳ５９）。情報処理装置３０ｂから端末２０に宛てて送信された確認応答は、情報処理装置３０ｂから端末２０に宛てて送信したコネクション確立要求と同様に処理されるので、確認応答は端末２０に到達する。通信部３１ｂは、確認応答の送信後、端末２０との間でＴＣＰコネクションの確立に成功したことを、要求部４１ｂに通知する（ステップＳ６０）。
【００４８】
要求部４１ｂは、通信部３１ｂからＴＣＰコネクションの確立に成功したことが通知されると、端末２０との間の接続の確立に成功したと判定する。要求部４１ｂは、情報処理装置３０ａに対して、端末２０との接続に成功したことを通知するために、以下の情報を含む接続判定応答（図７のＦ３）を生成する。
送信元ＩＰアドレス  ：情報処理装置３０ｂのアドレス
宛先ＩＰアドレス    ：情報処理装置３０ａのアドレス
トランザクションＩＤ：ＩＤ１
メッセージタイプ    ：３（接続判定応答）
接続結果            ：接続成功
要求部４１ｂは、通信部３１ｂを介して、接続判定応答を情報処理装置３０ａに送信する（ステップＳ６１、Ｓ６２）。
【００４９】
情報処理装置３０ａが接続判定応答を受信したとする。特定部５０ａは、通信部３１ａと要求部４１ａを介して、接続判定応答を取得する（ステップＳ６３）。特定部５０ａは、情報処理装置３０ｂが端末２０との間の通信の確立に成功したことから、端末２０との間の通信を中継しているルータ１０では、フルコーン型のアドレス変換が行われていると判定する（ステップＳ６４）。そこで、特定部５０ａは、ＮＡＴタイプや端末２０が使用しているグローバルＩＰアドレス等を端末２０に通知するために、適宜、端末情報テーブル３６を用いて、以下の情報を含むＮＡＴタイプ特定応答（図７のＦ４）を生成する。
送信元ＩＰアドレス  ：情報処理装置３０ａのアドレス
宛先ＩＰアドレス    ：端末２０のアドレス（ＩＰ−Ｇ１）
トランザクションＩＤ：ＩＤ１
メッセージタイプ    ：４（ＮＡＴタイプ特定応答）
ＮＡＴタイプ        ：フルコーン型
端末ＩＰアドレス    ：ＩＰ−Ｇ１
端末ポート番号      ：ＰＮ−Ｇ１
特定部５０ａは、要求部４１ａと通信部３１ａを介して、ＮＡＴタイプ特定応答を端末２０宛に送信する（ステップＳ６５〜Ｓ６７）。
【００５０】
ルータ１０は、ＮＡＴタイプ特定応答を受信すると、宛先アドレスを端末２０が使用するプライベートＩＰアドレスに変換すると共に、宛先ポート番号は端末２０が使用するプライベートポート番号に変換する（ステップＳ６８）。ルータ１０は、アドレス変換後のＮＡＴタイプ特定応答を端末２０に転送する（ステップＳ６９）。端末２０中の制御部２２は、通信部２４を介してＮＡＴタイプ特定応答を受信することにより、ルータ１０のＮＡＴタイプや端末２０が使用しているグローバルＩＰアドレス等の情報を取得する（ステップＳ７０）。
【００５１】
図１１は、第１の実施形態で行われるＮＡＴタイプの判定処理の例を説明するシーケンス図である。図１１を参照しながら、ルータ１０で行われるアドレス変換がフルコーン型ではない場合に行われる処理の例を説明する。図１１は、図１０のステップＳ５１〜Ｓ５６の処理が行われた後の処理の例を示す。
【００５２】
ルータ１０がフルコーン型以外のタイプのアドレス変換を行っている場合、ルータ１０は、ステップＳ５６で端末２０宛に情報処理装置３０ｂから送信されてきたコネクション確立要求（ＴＣＰ（ＳＹＮ））を破棄する（ステップＳ８０）。このため、情報処理装置３０ｂから送信されたコネクション確立要求は端末２０に到達せず、情報処理装置３０ｂは、コネクションの確立要求に対する応答を受信しない。
【００５３】
通信部３１ｂは、コネクション確立要求に対する応答を待ち合わせる期間が終了しても端末２０から応答が得られないため、端末２０との間のコネクションの確立に失敗したと判定し、コネクション確立の失敗を要求部４１ｂに通知する（ステップＳ８１）。要求部４１ｂは、情報処理装置３０ａに対して、端末２０との接続に失敗したことを通知するために、以下の情報を含む接続判定応答（図７のＦ３）を生成する。
送信元ＩＰアドレス  ：情報処理装置３０ｂのアドレス
宛先ＩＰアドレス    ：情報処理装置３０ａのアドレス
トランザクションＩＤ：ＩＤ１
メッセージタイプ    ：３（接続判定応答）
接続結果            ：接続失敗
要求部４１ｂは、通信部３１ｂを介して、接続判定応答を情報処理装置３０ａに送信する（ステップＳ８２、Ｓ８３）。
【００５４】
情報処理装置３０ａが接続判定応答を受信したとする。特定部５０ａは、通信部３１ａと要求部４１ａを介して、接続判定応答を取得する（ステップＳ８４）。特定部５０ａは、情報処理装置３０ｂが端末２０との間の通信の確立に失敗したことから、情報処理装置３０ａが保持するポートのうちで、端末２０からのパケットを受信していないポートを用いた接続判定処理を行うことを決定する。図１１の例では、特定部５０ａは、情報処理装置３０ａのポート２を用いて接続判定処理を行うことを決定している。特定部５０ａは、接続判定の対象として、情報処理装置３０ａのポート２と端末２０を、トランザクションＩＤとともに、要求部４１ａに通知する（ステップＳ８５）。
【００５５】
要求部４１ａは、特定部５０ａから通知されたトランザクションＩＤに対応付けられたプロトコルを用いて、端末２０との間の通信が可能であるかを判定するための制御パケットを生成する。ここで、記憶部３５に格納された情報では、端末２０からのＮＡＴタイプ特定要求に対応付けられたトランザクションＩＤ（ＩＤ１）に対して、ＴＣＰが対応付けられている（図９）。このため、要求部４１ａは、ＴＣＰの３ウェイハンドシェークによって、端末２０との間の通信の確立の可否を判定できることを認識する。要求部４１ａは、通信部３１ａに対して、ポート２を用いて端末２０との間でＴＣＰコネクションを確立することを要求する（ステップＳ８６）。このとき、要求部４１ａは、記憶部３５から端末２０のグローバルＩＰアドレスとグローバルポート番号を取得し、取得した情報を通信部３１ａに通知する。
【００５６】
通信部３１ａは、以下の情報を含むコネクションの確立要求を生成する。
送信元ＩＰアドレス  ：情報処理装置３０ａのアドレス
送信元ポート番号    ：２
宛先ＩＰアドレス    ：ＩＰ−Ｇ１
宛先ポート番号      ：ＰＮ−Ｇ１
制御ビット          ：ＳＹＮ＝１
通信部３１ａは、コネクションの確立要求（ＴＣＰ（ＳＹＮ））を、ポート２から端末２０に向けて送信する（ステップＳ８７）。
【００５７】
ルータ１０は、情報処理装置３０ａから端末２０に宛てたコネクションの確立要求を受信すると、アドレス変換処理部１２の設定に応じて処理を行う。図１１の例では、アドレス変換処理部１２がＩＰ制限コーン型のアドレス変換処理を行うように設定されている場合について説明する。ＩＰ制限コーン型では、ルータ１０は、端末２０がパケットを送信したことがあるアドレスが送信元ＩＰに設定されているパケットを端末２０に転送する。ステップＳ８７で送信されたコネクション確立要求は情報処理装置３０ａから送信されているので、ルータ１０は、アドレス変換処理を行ってから、コネクション確立要求を端末２０に転送する（ステップＳ８８）。
【００５８】
端末２０中の通信部２４は、情報処理装置３０ａから受信したコネクション確立要求に応答して、端末２０から情報処理装置３０ａに向かうコネクションの確立要求（ＴＣＰ（ＳＹＮ／ＡＣＫ））を送信する（ステップＳ８９）。ＴＣＰ（ＳＹＮ／ＡＣＫ）は、ルータ１０でのアドレス変換を経て、情報処理装置３０ａに到達する（ステップＳ９０）。
【００５９】
情報処理装置３０ａの通信部３１ａは、ＴＣＰ（ＳＹＮ／ＡＣＫ）を受信すると、端末２０に宛てて確認応答（ＴＣＰ（ＡＣＫ））を送信する（ステップＳ９１）。通信部３１ａは、確認応答の送信後、端末２０との間でＴＣＰコネクションの確立に成功したことを、要求部４１ａを介して特定部５０ａに通知する（ステップＳ９２）。
【００６０】
特定部５０ａは、情報処理装置３０ａがポート２を介して端末２０との間の通信の確立に成功したことから、端末２０との間の通信を中継しているルータ１０では、ＩＰ制限コーン型のアドレス変換が行われていると判定する（ステップＳ９３）。そこで、特定部５０ａは、ＮＡＴタイプ＝ＩＰ制限コーン型であることを通知する情報を含むＮＡＴタイプ特定応答を生成し、ＮＡＴタイプ特定応答を用いて、端末２０にＮＡＴタイプを通知する。なお、ステップＳ９４〜Ｓ９９で行われる処理は、図１０のステップＳ６５〜Ｓ７０を参照しながら説明した処理と同様である。
【００６１】
図１２は、第１の実施形態で行われるＮＡＴタイプの判定処理の例を説明するシーケンス図である。図１２を参照しながら、ルータ１０で行われるアドレス変換がフルコーン型とＩＰ制限コーン型のいずれでもない場合に行われる処理の例を説明する。図１２は、図１０のステップＳ５１〜Ｓ５６の処理と図１１のステップＳ８７までの処理が行われた後の処理の例を示す。
【００６２】
ルータ１０は、フルコーン型とＩＰ制限コーン型のいずれでもないタイプのアドレス変換を行っている場合、ステップＳ８７で端末２０宛に送信されてきたコネクション確立要求を破棄する（ステップＳ１１０）。このため、情報処理装置３０ａのポート２から送信されたコネクション確立要求は端末２０に到達せず、情報処理装置３０ａは、コネクションの確立要求に対する応答を受信しない。
【００６３】
通信部３１ａは、コネクション確立要求に対する応答を待ち合わせる期間が終了しても端末２０から応答が得られないため、端末２０との間のコネクションの確立に失敗したと判定し、要求部４１ａを介して、コネクション確立の失敗を特定部５０ａに通知する（ステップＳ１１１、Ｓ１１２）。特定部５０ａは、端末２０に対して、端末２０から情報処理装置３０ｂへのコネクションの生成を要求することを決定し、決定した情報を要求部４１ａに通知する（ステップＳ１１３）。要求部４１ａは、端末２０に対してコネクションの生成を要求することを特定部５０ａから通知されると、サーバ接続要求（図７のＦ５）を生成する。サーバ接続要求は、サーバ接続要求を受信した装置に対して、ペイロード中に指定されている応答先のアドレスの応答先のポート番号に対して、応答パケットを送信することを要求するメッセージである。図１２の例では、端末２０に情報処理装置３０ｂとの間のコネクションの生成を要求するので、以下の情報を含むサーバ接続要求が生成される。
送信元ＩＰアドレス  ：情報処理装置３０ａのアドレス
送信元ポート        ：ポート１
宛先ＩＰアドレス    ：端末２０のアドレス
トランザクションＩＤ：ＩＤ１
メッセージタイプ    ：５（サーバ接続要求）
ＳＴＵＮサーバＩＰアドレス    ：情報処理装置３０ｂのアドレス
ＳＴＵＮサーバポート番号      ：情報処理装置３０ｂのポートのいずれか
要求部４１ａは、通信部３１ａのポート１を介して、サーバ接続要求を端末２０宛に送信する（ステップＳ１１４）。
【００６４】
ルータ１０は、サーバ接続要求を受信すると、サーバ接続要求のアドレス変換を行うと共に、端末２０と情報処理装置３０ａの間の通信に関するＮＡＴエントリを更新する（ステップＳ１１５）。ルータ１０は、アドレス変換後のサーバ接続要求を端末２０に転送する（ステップＳ１１６）。
【００６５】
端末２０中の制御部２２は、通信部２４を介してサーバ接続要求を受信することにより、情報処理装置３０ｂとの間のコネクションの生成が要求されたと判定する（ステップＳ１１７）。そこで、制御部２２は、以下の情報を含むサーバ接続要求応答を生成する。なお、この例では、サーバ接続要求応答には、図７のＦ６に示す情報要素の他に、サーバ接続要求の送信元アドレスと送信元ポート番号も含まれる場合を示している。
宛先ＩＰアドレス      ：情報処理装置３０ｂのアドレス
宛先ＩＰポート番号    ：サーバ接続要求中のＳＴＵＮサーバポート番号
トランザクションＩＤ  ：ＩＤ１
メッセージタイプ      ：６（サーバ接続要求応答）
サーバ接続要求の送信元アドレス：情報処理装置３０ａのアドレス
サーバ接続要求の送信元ポート  ：ポート１
このように、サーバ接続要求の送信元の情報を含むサーバ接続要求応答は、サーバ接続要求応答の宛先に対して、端末２０のグローバルアドレス等の情報を、サーバ接続要求の送信元に通知することを要求する際に使用される。制御部２２は、通信部２４を介して、生成したサーバ接続要求応答を、サーバ接続要求で指定されたアドレスとポートの組み合わせに向けて送信する（ステップＳ１１８）。
【００６６】
ルータ１０は、端末２０が情報処理装置３０ｂに向けて送信したサーバ接続要求応答を受信すると、端末２０と、情報処理装置３０ｂのサーバ接続要求応答に指定されたポートとの間の通信に使用するＮＡＴエントリを生成する（ステップＳ１１９）。その後、ルータ１０は、アドレス変換処理を行ってからサーバ接続要求応答を、情報処理装置３０ｂに転送する（ステップＳ１２０）。
【００６７】
情報処理装置３０ｂがサーバ接続要求応答を受信したとする。特定部５０ｂは、通信部３１ｂと要求部４１ｂを介して、サーバ接続要求応答を取得する（ステップＳ１２１）。特定部５０ｂは、自装置からサーバ接続要求を送信していない端末２０からサーバ接続要求応答を受信したので、サーバ接続要求の送信元に対して、サーバ接続要求応答の送信元の端末の情報を通知することを決定する。そこで、特定部５０ｂは、以下の情報を含む端末情報通知（図７のＦ７）を生成する。
送信元ＩＰアドレス  ：情報処理装置３０ｂのアドレス
宛先ＩＰアドレス    ：情報処理装置３０ａのアドレス
トランザクションＩＤ：ＩＤ１
メッセージタイプ    ：７（端末情報通知）
端末ＩＰアドレス    ：サーバ接続要求応答の送信元アドレス
端末ポート番号      ：サーバ接続要求応答の送信元ポート番号
特定部５０ｂは、要求部４１ｂと通信部３１ｂを介して、端末情報通知を情報処理装置３０ａに送信する（ステップＳ１２２、Ｓ１２３）。
【００６８】
情報処理装置３０ａが端末情報通知を受信すると、特定部５０ａは、通信部３１ａと要求部４１ａを介して、端末情報通知を取得する（ステップＳ１２４）。特定部５０ａは、端末情報通知で通知されてきた端末のＩＰアドレスが、情報処理装置３０ａのポート１との間で端末２０が通信を行うときに使用されるＩＰアドレス（ＩＰ−Ｇ１）と等しいかを判定する。端末情報通知で通知されてきた端末のＩＰアドレスが、端末２０と情報処理装置３０ａとの通信で使用されるＩＰアドレスと同じである場合、特定部５０ａは、ルータ１０がポート制限コーン型のアドレス変換を行っていると判定する。一方、端末情報通知で通知されてきた端末のＩＰアドレスが、端末２０と情報処理装置３０ａとの通信で使用されるＩＰアドレスとは異なる場合、特定部５０ａは、ルータ１０がシンメトリック型のアドレス変換を行っていると判定する（ステップＳ１２５）。特定部５０ａは、ＮＡＴタイプの判定が終わると、判定結果を通知する情報を含むＮＡＴタイプ特定応答を生成し、端末２０に向けて送信する（ステップＳ１２６〜Ｓ１２８）。なお、ステップＳ１２６〜Ｓ１３１で行われる処理は、図１０のステップＳ６５〜Ｓ７０を参照しながら説明した処理と同様である。
【００６９】
以上説明したように、第１の実施形態では、端末２０の通信を中継しているルータ１０が行うアドレス変換の種類を特定する際の判定処理は、情報処理装置３０ａで行われる。このため、端末２０では、通信先を選択する処理や通信確立を要求した結果を用いた判定処理を行わなくて良く、処理負担が軽減される。
【００７０】
さらに、第１の実施形態では、情報処理装置３０が端末２０との接続を試みる装置に対してパケットの送信を要求するため、端末２０が接続先を決定する場合に比べて、端末２０から送信するパケットの数が少なくてすむ。端末２０は、コンピュータ、スマートフォンを含む携帯電話、タブレットなど、任意の端末であり、パケットの送信数に応じて、ユーザが事業者に課金される場合もある。このため、ＮＡＴタイプを特定する処理のために端末２０から送信されるパケットの数が少なければ、ユーザが事業者から課金される金額が小さくなる。従って、第１の実施形態を適用することにより、事業者はユーザへのサービスを向上することができる。
【００７１】
〔プロトコルの変更例〕
次に、端末２０と情報処理装置３０ａの間での通信がＴＣＰ以外のプロトコルで行われている場合に端末２０と情報処理装置３０ａ、３０ｂの間で通信が可能であるかを判定する場合の処理を説明する。情報処理装置３０ａと情報処理装置３０ｂの各々は、端末２０がＴＣＰを使用していない場合、コネクションの確立要求（ＴＣＰ（ＳＹＮ））の代わりに、サーバ接続要求（図７のＦ５）を使用する。このとき、サーバ接続要求を送信する情報処理装置３０は、サーバ接続要求のＳＴＵＮサーバＩＰアドレスとＳＴＵＮサーバポート番号に、自ノードがサーバ接続要求を送信する際に使用するＩＰアドレスとポート番号を設定する。端末２０からサーバ接続要求応答を受信すると、サーバ接続要求を送信した情報処理装置３０は、端末２０との間の通信に成功したと判定する。その後の処理はＴＣＰが用いられる場合と同様である。
【００７２】
例えば、ルータ１０がフルコーン型のアドレス変換を用いている場合を例として、端末２０がＴＣＰを使用していない場合の処理の具体例を説明する。端末２０がＴＣＰを使用していない場合も、ＮＡＴタイプ特定要求の送受信や、図１０のステップＳ５１〜Ｓ５４を参照して説明した接続要求の処理は、端末２０がＴＣＰを用いているときと同様に行われる。
【００７３】
情報処理装置３０ｂの要求部４１ｂは、情報処理装置３０ａから受信した接続判定要求において、端末２０が使用しているプロトコルがＴＣＰではないことが通知されたので、サーバ接続要求を使用して、端末２０との間の通信の可否を判定することを決定する。そこで、要求部４１ｂは、端末２０に情報処理装置３０ｂを応答先としたサーバ接続要求を送信することを決定し、以下の情報を含むサーバ接続要求を生成したとする。
送信元ＩＰアドレス  ：情報処理装置３０ｂのアドレス
送信元ポート        ：ポート３
宛先ＩＰアドレス    ：端末２０のアドレス
トランザクションＩＤ：ＩＤ１
メッセージタイプ    ：５（サーバ接続要求）
ＳＴＵＮサーバＩＰアドレス    ：情報処理装置３０ｂのアドレス
ＳＴＵＮサーバポート番号      ：ポート３
要求部４１ｂは、送信部３３ｂを介してサーバ接続要求を端末２０に送信する。サーバ接続要求が端末２０に転送される際に行われる処理は、図１０のステップＳ５６、Ｓ５７を参照しながら説明したとおりである。
【００７４】
端末２０の制御部２２は、サーバ接続要求を取得すると、サーバ接続要求応答を生成する。このとき、制御部２２は、サーバ接続要求の送信元と、サーバ接続要求で指定された応答の送信先が同じであるので、サーバ接続要求応答にサーバ接続要求応答の送信元の端末の情報を含めない。制御部２２は、通信部２４を介して、サーバ接続要求応答を情報処理装置３０ｂに送信する。サーバ接続要求応答は、図１０のステップＳ５８と同様の処理により、情報処理装置３０ｂに到達する。
【００７５】
情報処理装置３０ｂの要求部４１ｂは、サーバ接続要求応答が得られたことから、端末２０と情報処理装置３０ｂの間での接続に成功したと判定して、接続の成功を情報処理装置３０ａに通知する。接続の成功を情報処理装置３０ａに通知する処理以降の処理は、図１０のステップＳ６１以降と同様である。
【００７６】
ＴＣＰの３ウェイハンドシェークの代わりにサーバ接続要求とサーバ接続要求応答を用いて通信の可否を判定する方法は、情報処理装置３０ａが端末２０と通信中のポート以外のポートを介して端末２０と通信できるかを判定する場合も同様に使用される。このため、端末２０がＴＣＰ以外のプロトコルで通信する場合であっても、端末２０がＴＣＰを用いて通信しているときと同様に、情報処理装置３０側で端末２０と情報処理装置３０の間の通信を中継するルータ１０のＮＡＴタイプを判定できる。
【００７７】
＜第２の実施形態＞
第２の実施形態では、情報処理装置６０がＮＡＴタイプの判定結果を端末２０の識別情報と共に記憶しておく場合について説明する。第２の実施形態では、情報処理装置６０は、ＮＡＴタイプ判定を行ったことのある端末２０から、ＮＡＴタイプの判定要求を受けた場合、端末２０が前回の判定のときと同じルータ１０を介して通信しているかを判定する。端末２０が前回の判定のときと同じルータ１０を介して通信していれば、情報処理装置６０は、記憶しているＮＡＴタイプを通知することにより、迅速に、端末２０へのＮＡＴタイプを通知することができる。
【００７８】
図１３は、第２の実施形態で使用される情報処理装置６０の構成の例を示す図である。情報処理装置６０は、通信部３１、記憶部３５、制御部４０を備える。制御部４０は、要求部４１と特定部５０を有しており、特定部５０は、ＮＡＴタイプ特定部５１とＬＡＮ変更判定部５２を有する。記憶部３５は、端末情報テーブル６１とＮＡＴタイプテーブル６２を記憶する。情報処理装置６０においても、通信部３１、要求部４１で行われる処理は第１の実施形態と同様である。第２の実施形態では、第１の実施形態において特定部５０が行っている判定処理をＮＡＴタイプ特定部５１が行う。ＬＡＮ変更判定部５２は、ＮＡＴタイプの判定を要求してきた端末２０が位置するＬＡＮが、前回の判定の際に端末２０が位置していたＬＡＮと同じであるかを判定する。
【００７９】
端末情報テーブル６１は、ＮＡＴタイプ特定要求の送信元の端末２０についての情報を保持する。ＮＡＴタイプテーブル６２は、ＮＡＴタイプの判定結果とユーザＩＤを対応付けて記憶する。ここで、ユーザＩＤは、端末２０を一意に特定できる識別情報である。端末情報テーブル６１とＮＡＴタイプテーブル６２の例は後述する。
【００８０】
なお、情報処理装置６０のハードウェア構成は、情報処理装置３０と同様である。通信部３１は、ＣＰＵ１０１ｄとネットワークインタフェース１０４ｄによって実現される。制御部４０はＣＰＵ１０１ｄによって実現され、記憶部３５はＲＡＭ１０３ｄなどによって実現される。
【００８１】
図１４は、第２の実施形態で行われるＮＡＴタイプの判定処理の例を説明するシーケンス図である。図１５は、第２の実施形態で使用されるメッセージのフォーマットの例を示す図である。以下、図１４と図１５を参照しながら、第２の実施形態において、情報処理装置６０がＮＡＴタイプを記憶していない端末２０からＮＡＴタイプが要求された場合の処理の例を説明する。
【００８２】
図１４のステップＳ１４１において、図８のステップＳ４１と同様の処理により、ＮＡＴタイプ特定要求が生成される。図１５のＦ１２に、第２の実施形態において、端末２０が使用するＮＡＴタイプ特定要求のペイロードに含まれる情報要素の例を示す。第２の実施形態で使用されるＮＡＴタイプ特定要求には、トランザクションＩＤ、メッセージタイプ、プロトコル種別の他に、端末２０を一意に識別可能なユーザＩＤが含まれている。なお、ＮＡＴタイプ特定要求にはＦ１２に示すペイロードの他に、ＩＰヘッダやトランスポート層のヘッダ（図示せず）も含まれている。
【００８３】
図１４のステップＳ１４２〜Ｓ１４５の処理は、図８のステップＳ４２〜Ｓ４５を参照しながら説明した処理と同様である。このため、ＮＡＴタイプ特定要求は、情報処理装置６０ａの要求部４１ａに到達する。要求部４１ａは、ＮＡＴタイプ特定要求をＮＡＴタイプ特定部５１ａに出力する。ＮＡＴタイプ特定部５１ａは、ＮＡＴタイプを取得済みの端末２０からＮＡＴタイプを要求された可能性があるので、ＬＡＮ変更判定部５２ａにＬＡＮ変更判定要求を出力する（ステップＳ１４７）。ＬＡＮ変更判定要求は、端末２０が前回のＮＡＴ判定の際に位置していたＬＡＮと異なるＬＡＮに位置しているかの判定を要求する信号である。
【００８４】
図１５のＦ１３に、ＬＡＮ変更判定要求に含まれる情報要素の例を示す。ＬＡＮ変更判定要求は、メッセージタイプ、ユーザＩＤ、端末ＩＰアドレス、端末ポート番号を含む。ここで、端末のＩＰアドレス、端末のポート番号は、情報処理装置６０ａ宛てのＮＡＴタイプ特定要求の送信元の情報である。
【００８５】
図１４のステップＳ１４７においてＬＡＮ変更判定要求が入力されると、ＬＡＮ変更判定部５２ａは、ＬＡＮ変更判定要求に含まれているユーザＩＤをキーとしてＮＡＴタイプテーブル６２ａを検索する。図１４の例では、ＮＡＴタイプを判定したことがない端末２０から、ＮＡＴタイプの判定が要求されているので、ＮＡＴタイプテーブル６２ａ中には端末２０のユーザＩＤが含まれていない。そこで、ＬＡＮ変更判定部５２ａは、ＮＡＴタイプ特定部５１ａに対し、端末２０に関するＮＡＴタイプが記憶されていないことを通知するために使用するＬＡＮ変更判定要求を生成する。
【００８６】
図１５のＦ１４は、ＬＡＮ変更判定応答に含まれる情報要素の例を示す。ＬＡＮ変更判定応答は、メッセージタイプ、ユーザＩＤ、判定結果、ＮＡＴタイプを含む。判定結果は、ＬＡＮ変更有、ＬＡＮ変更無し、不明のいずれかが選択される。「ＬＡＮ変更有」は、ＮＡＴタイプの要求元の端末２０が位置するＬＡＮが、前回の判定の際に要求元の端末２０が位置していたＬＡＮと異なることを表わす。「ＬＡＮ変更なし」は、ＮＡＴタイプの要求元の端末２０が位置するＬＡＮが、前回の判定の際に要求元の端末２０が位置していたＬＡＮと同じであることを表わす。「不明」は、ＬＡＮ変更判定要求で通知された端末２０に対するエントリがＮＡＴタイプテーブル６２ａに無いことを示す。ＮＡＴタイプは、判定結果＝ＬＡＮ変更なしの場合に、ＮＡＴタイプテーブル６２に記憶されている値が設定される。
【００８７】
図１４のステップＳ１４８において、ＬＡＮ変更判定部５２ａは、判定結果＝不明に設定したＬＡＮ変更判定応答を、ＮＡＴタイプ特定部５１ａに出力する。ＮＡＴタイプ特定部５１ａは、ＬＡＮ変更判定応答を取得すると、ＮＡＴタイプの特定を行っていない端末２０からＮＡＴタイプの特定が要求されたと判定する。
【００８８】
図１６は、情報処理装置６０で行われるＮＡＴタイプの判定処理とＮＡＴタイプの判定結果を保持する方法の例を説明する図である。ＮＡＴタイプの特定を行っていない端末２０からＮＡＴタイプの特定が要求されたと判定するとＮＡＴタイプ特定部５１ａは、ＮＡＴタイプ特定要求の送信元の情報を、端末情報テーブル６１ａに格納する。
【００８９】
図１６に示す端末情報テーブル６１ａは、グローバルＩＰアドレス、グローバルポート番号、トランザクションＩＤ、プロトコル種別、ユーザＩＤを含む。例えば、端末２０のユーザＩＤがＵｓｅｒ１であり、端末２０から受信したＮＡＴタイプ特定要求の送信元ＩＰアドレスがＩＰ−Ｇ１、送信元ポート番号がＰＮ−Ｇ１であり、トランザクションＩＤがＩＤ１に決定されたとする。すると、ＮＡＴタイプ特定部５１ａは、図１６に示す端末情報テーブル６１ａの１番目のエントリを生成する。その後、第１の実施形態で図１０〜図１２を参照しながら説明した手順により、端末２０と情報処理装置６０ａの間の通信を中継するルータ１０で行われているＮＡＴの種類の判定が行われる。
【００９０】
ＮＡＴタイプ特定部５１は、ＮＡＴタイプの特定に成功すると、トランザクションＩＤをキーとして端末情報テーブル６１ａを検索することにより、ＮＡＴタイプの特定のきっかけとなったＮＡＴタイプ特定要求に対応付けられているユーザＩＤを特定する。図１６の例では、ＮＡＴタイプ特定部５１ａは、トランザクションＩＤ＝ＩＤ１をキーとして、端末２０に対応付けられているユーザＩＤがＵｓｅｒ１であることを特定する。すると、ＮＡＴタイプ特定部５１ａは、ＮＡＴタイプの判定結果を端末２０に通知すると共に、ＬＡＮ変更判定部５２ａにも通知する。
【００９１】
図１６のＦ１５は、ＮＡＴタイプ特定部５１ａがＮＡＴタイプの判定結果を通知するために、ＬＡＮ変更判定部５２ａに出力する信号（ＬＡＮ情報設定）に含まれている情報要素を示す。ＬＡＮ情報設定には、ユーザＩＤ、端末のＩＰアドレス、端末のポート番号、ＮＡＴタイプが含まれる。なお、端末のＩＰアドレス、端末のポート番号は、端末情報テーブル６１ａから取得された値であり、情報処理装置６０ａ宛てのＮＡＴタイプ特定要求の送信元の情報である。ＬＡＮ変更判定部５２ａは、ＬＡＮ情報設定で通知された情報を、同じ端末２０から再度ＮＡＴタイプの特定が要求された場合に備えて、ＮＡＴタイプテーブル６２に格納する。図１６中のＮＡＴタイプテーブル６２ａには、ユーザＩＤ＝Ｕｓｅｒ１の端末２０がＩＰ−Ｇ１というアドレスとＰＮ−Ｇ１というポート番号を用いて通信する際に、通信を中継しているルータ１０がフルコーン型のアドレス変換を行うことが記録されている。
【００９２】
図１７は、第２の実施形態で行われるＮＡＴタイプの判定処理の例を説明するシーケンス図である。以下、図１７を参照しながら、情報処理装置６０がＮＡＴタイプを記憶している端末２０からＮＡＴタイプが要求された場合の処理の例を説明する。ステップＳ１５１〜Ｓ１５７で行われる処理は、図１４のステップＳ１４１〜Ｓ１４７を参照しながら説明した処理と同様である。なお、ステップＳ１５１で生成されるＮＡＴタイプ判定要求と、ステップＳ１５７でＬＡＮ変更判定部５２ａに入力されたＬＡＮ変更判定要求のいずれにも、ユーザＩＤ＝Ｕｓｅｒ１という情報が含まれているとする。
【００９３】
ステップＳ１５７においてＬＡＮ変更判定要求を取得したＬＡＮ変更判定部５２ａは、ＮＡＴタイプテーブル６２ａ（図１６）から、ユーザＩＤ＝Ｕｓｅｒ１に対応付けられたＮＡＴタイプの情報を取得する。ＬＡＮ変更判定部５２ａは、ＬＡＮ変更判定要求（図１５のＦ１３）に含まれているグローバルＩＰアドレスと、ＮＡＴタイプテーブル６２ａでユーザＩＤ＝Ｕｓｅｒ１に対応付けられているグローバルＩＰアドレスが一致するかを判定する。図１７の例では、ＬＡＮ変更判定要求中のグローバルＩＰアドレスと、ＮＡＴタイプテーブル６２ａでユーザＩＤ＝Ｕｓｅｒ１に対応付けられたグローバルＩＰアドレスが一致している場合を示す。この場合、ＬＡＮ変更判定部５２ａは、端末２０が位置するＬＡＮは、前回のＮＡＴタイプの判定の際に端末２０が位置していたＬＡＮと同じであると判定する。そこで、ＬＡＮ変更判定部５２ａは、以下の情報を含むＬＡＮ変更判定応答を生成する。
ユーザＩＤ  ＝Ｕｓｅｒ１
判定結果    ＝変更無し
ＮＡＴタイプ＝フルコーン型
ＬＡＮ変更判定部５２ａは、生成したＬＡＮ変更判定応答をＮＡＴタイプ特定部５１ａに出力する（ステップＳ１５８）。このため、ＮＡＴタイプ特定部５１ａは、ＬＡＮ変更判定部５２ａから通知されたＮＡＴタイプを通知する情報を含むＮＡＴタイプ特定応答を生成し、端末２０に向けて送信する（ステップＳ１５９）。なお、ステップＳ１５９〜Ｓ１６０で行われる処理は、図１０のステップＳ６５〜Ｓ７０を参照しながら説明した処理と同様である。
【００９４】
次に、ＬＡＮ変更判定要求に含まれているグローバルＩＰアドレスと、ＮＡＴタイプテーブル６２ａでユーザＩＤ＝Ｕｓｅｒ１に対応付けられたグローバルＩＰアドレスが一致しない場合について説明する。この場合、ＬＡＮ変更判定部５２ａは、端末２０が位置するＬＡＮは、前回のＮＡＴタイプの判定の際と異なると判定する。そこで、ＬＡＮ変更判定部５２ａは、判定結果＝変更有りに設定したＬＡＮ変更判定応答を、ＮＡＴタイプ特定部５１ａに出力する。ＮＡＴタイプ特定部５１ａは、ＮＡＴタイプの特定を行っていない端末２０からＮＡＴタイプの特定が要求された場合と同様に、ＮＡＴタイプの判定処理を行う。
【００９５】
図１８は、第２の実施形態の適用例を説明する図である。第２の実施形態は、図１８を用いて説明するように、端末２０がＮＡＴタイプの特定を複数回にわたって要求する場合に特に有効である。例えば、端末２０が図１８のＬＡＮ１とＬＡＮ２のいずれにも接続することができるとする。ここで、ＬＡＮ１中の装置はＷＡＮ中の装置と通信する際に、ルータ１０ａによって通信を中継されるものとする。端末２０がＬＡＮ１に接続してＷＡＮ中の装置と通信する場合、ルータ１０ａは、端末２０から送信されるパケットの送信元ＩＰアドレスをＸに変換する。また、ルータ１０ａが行うＮＡＴの種類はＡであるとする。
【００９６】
一方、ＬＡＮ２中の装置はＷＡＮ中の装置と通信する際に、ルータ１０ｂによって通信を中継されるものとする。ルータ１０ｂは、ＬＡＮ２中の装置とＷＡＮ中の装置の通信を中継しており、端末２０がＬＡＮ２に接続してＷＡＮ中の装置と通信する場合、端末２０から送信されるパケットの送信元ＩＰアドレスをＹに変換するものとする。また、ルータ１０ｂが行うＮＡＴの種類はＢであるとする。
【００９７】
ステップＳ１６１において、端末２０が情報処理装置６０ａに、ユーザＩＤ＝０１２３４という情報を含むＮＡＴタイプ特定要求を送信したとする。すると、情報処理装置６０ａは、ユーザＩＤ＝０１２３４に対応付けて、端末２０のグローバルアドレスを記憶すると共に、端末２０と情報処理装置６０ａの間の通信を中継しているルータ１０ａのＮＡＴタイプを特定する。情報処理装置６０ａは、得られたＮＡＴタイプの情報を、ＮＡＴタイプテーブル６２ａに記憶する。図１８の例ではＮＡＴタイプテーブル６２ａに、ユーザＩＤ＝０１２３４に対応付けて、ＩＰアドレス＝ＸとＮＡＴタイプ＝Ａという情報が記録されている。
【００９８】
ステップＳ１６２に示すように、端末２０が、ＬＡＮ１に接続中に再度、情報処理装置６０ａにＮＡＴタイプの特定を要求した場合、通信を中継しているルータ１０は前回のＮＡＴタイプの特定の際と同じである。このため、ステップＳ１６２においてＮＡＴタイプ特定要求を情報処理装置６０ａが受信するときには、ＮＡＴタイプ特定要求は、ユーザＩＤ＝０１２３４、送信元ＩＰアドレス＝Ｘという情報を含む。情報処理装置６０ａは、ユーザＩＤ＝０１２３４で特定される端末２０のアドレスが前回のＮＡＴタイプ特定のときと同じため、端末２０は前回のＮＡＴタイプ特定のときと同じＬＡＮ１に接続していると判定できる。従って、情報処理装置６０ａは、端末２０ａとの間の通信を中継するルータ１０は前回のＮＡＴタイプの特定時と同じであると判定して、ユーザＩＤ＝０１２３４に対応付けて記憶しているＮＡＴタイプを端末２０ａに通知できる（ステップＳ１６３）。
【００９９】
一方、ステップＳ１６４に示すように、端末２０が、ＬＡＮ２に移動してから、情報処理装置６０ａにＮＡＴタイプの特定を要求した場合、ルータ１０ｂによって端末２０と情報処理装置６０ａの通信が中継される。情報処理装置６０ａは、ユーザＩＤ＝０１２３４で特定される端末２０のアドレスが前回のＮＡＴタイプを特定したときとは異なるＹであるため、端末２０は前回のＮＡＴタイプを特定したときと異なるＬＡＮに接続していると判定できる。すると、情報処理装置６０ａは、端末２０ａとの通信を中継しているルータ１０ｂのＮＡＴタイプの特定のための処理を行う。
【０１００】
このように、情報処理装置６０ａは、前回のＮＡＴタイプの特定の後で端末２０がＬＡＮを変更したかを判定し、ＬＡＮを変更していない場合には、前回のＮＡＴタイプの情報を使用するので、端末２０ａに対して迅速にＮＡＴタイプを通知できる。さらに、端末２０ａは、端末２０がＬＡＮを変更していない場合は、新たにＮＡＴタイプの判定を行わずにすみ、情報処理装置６０ａの処理負荷を軽減できる。
【０１０１】
第２の実施形態によって、事業者側でユーザへの新たなサービスを提供できる可能性もある。例えば、ユーザがオンラインゲームなどでＰ２Ｐ通信を行う場合、ユーザの端末２０とサーバを中継するルータ１０でのＮＡＴの種類によっては、通信できるユーザ同士が限定される場合がある。そこで、情報処理装置６０がユーザのＩＤに対応付けてそのユーザが使用しているルータ１０のＮＡＴタイプを特定することにより、ユーザに対して、Ｐ２Ｐで通信可能な他のユーザのリストを提供することもできる。
【０１０２】
＜第３の実施形態＞
第３の実施形態では、端末２０が過去に通知されたＮＡＴタイプの判定結果を記憶しておく場合について説明する。第３の実施形態では、端末２０は、ＮＡＴタイプ特定要求に際して、過去に通知されたグローバルアドレス等を情報処理装置３０に通知する。情報処理装置３０は、端末２０が接続しているＬＡＮが前回のＮＡＴタイプの判定時から変更されていない場合は、端末２０が保持しているＮＡＴタイプが有効であることを通知する。一方、端末２０が接続しているＬＡＮが前回のＮＡＴタイプの判定時から変更されている場合、情報処理装置３０は、ＮＡＴタイプを判定する。
【０１０３】
図１９は、第３の実施形態で行われるＮＡＴタイプの判定処理の例を説明するシーケンス図である。また、図２０は、第３の実施形態で使用されるメッセージのフォーマットの例を示す図である。以下、図１９と図２０を参照しながら、第３の実施形態において、ＮＡＴタイプを記憶していない端末２０が情報処理装置３０にＮＡＴタイプの判定を要求した場合に行われる処理の例を説明する。
【０１０４】
端末２０のユーザインタフェース２１から、ＮＡＴタイプの取得を要求する信号が入力されると、制御部２２は、前回のＮＡＴタイプの際に端末２０が位置していたＬＡＮの情報とＮＡＴの判定結果の読み出しを試みる（ステップＳ１７１、Ｓ１７２）。このとき、制御部２２は、例えば、図２０のＦ２２に示すＬＡＮ情報取得の信号を記憶部２３に出力する。記憶部２３は、記憶している情報を、ＬＡＮ情報取得応答の信号として、制御部２２に出力する（ステップＳ１７３）。ＬＡＮ情報取得応答に含まれている情報要素の例を、図２０のＦ２３に示す。Ｆ２３の例では、ＬＡＮ情報取得応答として、メッセージタイプ、端末ＩＰアドレス、端末ポート番号、ＮＡＴタイプが含まれている。ここで、端末のＩＰアドレスは、ルータ１０でのアドレス変換の結果として得られるグローバルＩＰアドレスである。端末ポート番号は、ルータ１０でのアドレス変換の結果として得られるグローバルポート番号である。なお、端末２０が情報処理装置３０からＮＡＴタイプの判定結果を取得する前は、ＬＡＮ情報取得応答中のＩＰアドレス、ポート番号、ＮＡＴタイプは無効値である。
【０１０５】
図１９のステップＳ１７４において、制御部２２は、記憶部２３から取得した情報を用いて、ＮＡＴタイプ特定要求を生成する。図２０のＦ２４に、第３の実施形態で端末２０が使用するＮＡＴタイプ特定要求のペイロードに含まれる情報要素の例を示す。第３の実施形態で使用されるＮＡＴタイプ特定要求には、トランザクションＩＤ、メッセージタイプ、プロトコル種別の他に、前回のＮＡＴタイプ判定の結果として通知された端末のＩＰアドレス、端末ポート番号、ＮＡＴタイプが含まれる。図１９の例では、端末２０はこれまでにＮＡＴタイプ判定を要求していないので、制御部２２は、端末のＩＰアドレス、端末ポート番号、ＮＡＴタイプのいずれについても無効値を設定する。制御部２２は、生成したＮＡＴタイプ特定要求を通信部２４に出力する。
【０１０６】
図１９のステップＳ１７５〜Ｓ１７９の処理は、図１４のステップＳ１４２〜Ｓ１４６を参照しながら説明した処理と同様である。ＮＡＴタイプ特定部５１ａは、ＮＡＴタイプを特定したことがある端末２０からＮＡＴタイプを要求された可能性があるので、ＬＡＮ変更判定部５２ａにＬＡＮ変更判定要求を出力する（ステップＳ１８０）。
【０１０７】
図２０のＦ２５に、ＬＡＮ変更判定要求に含まれる情報要素の例を示す。ＬＡＮ変更判定要求は、メッセージタイプ、端末ＩＰアドレス、端末ポート番号、ＮＡＴタイプ、送信元ＩＰアドレス、送信元ポート番号を含む。ここで、送信元ＩＰアドレス、送信元ポート番号は、情報処理装置３０ａ宛てのＮＡＴタイプ特定要求のＩＰヘッダ中の送信元の情報である。従って、端末２０が現在位置しているＬＡＮとＷＡＮを中継しているルータ１０によって、アドレス変換された結果として、情報処理装置３０ａに通知されたアドレスとポート番号である。一方、端末ＩＰアドレス、端末ポート番号は、情報処理装置３０ａ宛てのＮＡＴタイプ特定要求のペイロード中に含まれている情報である。すなわち、端末２０が以前にもＮＡＴタイプ判定を要求している場合、前回のＮＡＴ判定中に端末２０が位置していたＬＡＮとＷＡＮを接続するルータ１０でのアドレス変換で使用されていたアドレスとポート番号である。図１９の例では、ＮＡＴタイプ特定要求中の端末のＩＰアドレス、端末ポート番号、ＮＡＴタイプは、いずれも無効値である。このため、ＬＡＮ変更判定要求においても、端末のＩＰアドレス、端末ポート番号、ＮＡＴタイプはいずれも無効値に設定される。
【０１０８】
ＬＡＮ変更判定部５２ａは、ＬＡＮ変更判定要求に含まれている端末ＩＰアドレスと端末ポート番号の組合せを、ＬＡＮ変更判定要求で通知された送信元ＩＰアドレスと送信元ポート番号の組合せと比較する。図１９の例では、端末のＩＰアドレス、端末ポート番号、ＮＡＴタイプが無効な値であるため、ＬＡＮ変更判定部５２ａは、端末２０がＬＡＮを変更したかは不明であると判定する。そこで、ＬＡＮ変更判定部５２ａは、ＮＡＴタイプ特定部５１ａにＬＡＮ変更が行われたかが不明であることを通知するために、ＬＡＮ変更判定要求を生成する。
【０１０９】
図２０のＦ２６は、第３の実施形態で使用されるＬＡＮ変更判定応答の情報要素の例を示す。ＬＡＮ変更判定応答は、メッセージタイプ、判定結果、ＮＡＴタイプを含む。ＬＡＮ変更判定部５２ａは、判定結果＝不明に設定したＬＡＮ変更判定応答をＮＡＴタイプ特定部５１ａに出力する（ステップＳ１８１）。
【０１１０】
ＮＡＴタイプ特定部５１ａは、ＬＡＮ変更判定応答を取得すると、ＮＡＴタイプの特定を行っていない端末２０からＮＡＴタイプの特定が要求されたと判定する。そこで、図１０〜図１２を参照しながら説明した手順により、端末２０と情報処理装置３０ａの間の通信を中継するルータ１０で行われているＮＡＴの種類の判定と端末２０へのＮＡＴタイプの通知が行われる。
【０１１１】
図２１は、端末がＮＡＴタイプの判定結果を保持する方法の例を説明する図である。制御部２２は、ＮＡＴタイプ特定応答を取得すると、ＬＡＮ情報設定のための情報を記憶部２３に出力する。ＬＡＮ情報設定のために記憶部２３に出力される情報要素の例を図２１のＦ２１に示す。図２１の例では、ＬＡＮ情報設定の要求と共に、端末ＩＰアドレス、端末ポート番号、ＮＡＴタイプが記憶部２３に出力される。なお、端末ＩＰアドレスは、ＮＡＴタイプ特定応答（図７のＦ４）によって通知された端末のグローバルＩＰアドレスである。同様に、端末ポート番号は、ＮＡＴタイプ特定応答（図７のＦ４）によって通知された端末のグローバルポート番号である。記憶部２３は、通知された情報を対応付けて記憶する。記憶部２３が保持するテーブルの例を図２１のＴ１に示す。
【０１１２】
図２２は、第３の実施形態で行われるＮＡＴタイプの判定処理の例を説明するシーケンス図である。以下、図２２を参照しながら、ＮＡＴタイプの判定を要求したことがある端末２０が、情報処理装置３０にＮＡＴタイプの判定を要求する場合に行われる処理の例を説明する。ステップＳ２０１〜Ｓ２０９で行われる処理は、図１９のステップＳ１７１〜Ｓ１７９を参照しながら説明した処理と同様である。なお、ステップＳ２０４で生成されるＮＡＴタイプ特定要求には、記憶部２３が記憶しているグローバルＩＰアドレス、グローバルポート番号、ＮＡＴタイプなどの情報が含まれる。記憶部２３が図２１のＴ１に示すテーブルを保持している場合、ＮＡＴタイプ特定要求では、グローバルＩＰアドレス＝ＩＰ−Ｇ１、グローバルポート番号＝ＰＮ−Ｇ１、ＮＡＴタイプ＝フルコーンに設定されている。
【０１１３】
ステップＳ２０９において情報処理装置３０ａのＮＡＴタイプ特定部５１ａは、取得したＮＡＴタイプ特定要求を用いて、ＬＡＮ変更判定要求を生成する。このため、ステップＳ２０９において生成されるＬＡＮ変更判定要求には、以下の情報が含まれている。
端末ＩＰアドレス  ＝ＩＰ−Ｇ１
端末ポート番号    ＝ＰＮ−Ｇ１
ＮＡＴタイプ      ＝フルコーン
送信元ＩＰアドレス＝ＮＡＴタイプ特定要求のＩＰヘッダ中の送信元アドレス
送信元ポート番号  ＝ＮＡＴタイプ特定要求のＩＰヘッダ中の送信元ポート番号
ＮＡＴタイプ特定部５１ａは、ＬＡＮ変更判定要求をＬＡＮ変更判定部５２ａに出力する（ステップＳ２１０）。
【０１１４】
ＬＡＮ変更判定部５２ａは、端末ＩＰアドレスと端末ポート番号の組合せが、ＬＡＮ変更判定要求中の送信元ＩＰアドレスと送信元ポート番号の組合せと一致するかによって、端末２０がＬＡＮを変更したかを判定する。図２２の例では、端末ＩＰアドレスと端末ポート番号の組合せと、送信元ＩＰアドレスと送信元ポート番号の組合せが一致したとする。すると、ＬＡＮ変更判定部５２ａは、以下の情報を含むＬＡＮ変更判定応答を生成する。
メッセージタイプ＝ＬＡＮ変更判定応答
判定結果        ＝変更無し
ＮＡＴタイプ    ＝フルコーン型
ＬＡＮ変更判定部５２ａは、生成したＬＡＮ変更判定応答をＮＡＴタイプ特定部５１ａに出力する（ステップＳ２１１）。このため、ＮＡＴタイプ特定部５１ａは、ＬＡＮ変更判定部５２ａから通知されたＮＡＴタイプを通知する情報を含むＮＡＴタイプ特定応答を生成し、端末２０に向けて送信する（ステップＳ２１２）。なお、ステップＳ２１３〜Ｓ２１７で行われる処理は、図１０のステップＳ６５〜Ｓ７０を参照しながら説明した処理と同様である。その後、図２１を参照しながら説明した処理と同様の処理により、記憶部２３のＮＡＴタイプなどの情報が更新される。
【０１１５】
次に、ＬＡＮ変更判定要求に含まれている端末ＩＰアドレスと端末ポート番号の組合せと、送信元ＩＰアドレスと送信元ポート番号の組合せが一致しない場合について説明する。この場合、ＬＡＮ変更判定部５２ａは、端末２０が位置するＬＡＮは、前回のＮＡＴタイプの判定の際と異なると判定する。そこで、ＬＡＮ変更判定部５２ａは、判定結果＝変更有りに設定したＬＡＮ変更判定応答ＮＡＴタイプ特定部５１ａに出力する。ＮＡＴタイプ特定部５１ａは、ＮＡＴタイプの特定を行っていない端末２０からＮＡＴタイプの特定が要求された場合と同様に、ＮＡＴタイプの判定処理を行う。
【０１１６】
図２３は、第３の実施形態の適用例を説明する図である。図２３では、第２の実施形態との比較を容易にするために、図１８に図示したように、端末２０がＬＡＮ１とＬＡＮ２の両方に接続できる場合を例として説明する。また、図２３でも、ＬＡＮ１は、ルータ１０ａ、ＬＡＮ２はルータ１０ｂによってＷＡＮと接続されている。また、ルータ１０ａは、ＡのＮＡＴタイプを用いて、端末２０から送信されるパケットの送信元ＩＰアドレスをＸに変換する。ルータ１０ｂは、ＢのＮＡＴタイプを用いて、端末２０から送信されるパケットの送信元ＩＰアドレスをＹに変換する。
【０１１７】
ステップＳ１９１において、端末２０が情報処理装置３０ａに、ユーザＩＤ＝０１２３４という情報を含むＮＡＴタイプ特定要求を送信したとする。すると、情報処理装置３０ａは、端末２０と情報処理装置３０ａの間の通信を中継しているルータ１０ａのＮＡＴタイプを端末２０のグローバルアドレスとともに、端末２０に通知する。端末２０は、通知されたグローバルアドレスとＮＡＴタイプを図２３に示すように記憶部２３に記憶する（ステップＳ１９２）。
【０１１８】
端末２０が、ＬＡＮ１に接続中に再度、情報処理装置３０ａにＮＡＴタイプの特定を要求する場合、端末２０は、前回のＮＡＴタイプの特定結果として通知されたグローバルアドレスとＮＡＴタイプを情報処理装置３０ａに通知する。情報処理装置３０ａは、ＮＡＴタイプ特定要求の送信元と、ＮＡＴタイプ特定要求中に含められたグローバルアドレスとがいずれもＡであるので、端末２０が通信に使用するＬＡＮを前回のＮＡＴタイプの特定時と変更していないと判定する。そこで、情報処理装置３０ａは、端末２０が同じルータ１０を介して通信していると判定し、ＮＡＴタイプ特定要求中に含められた前回のＮＡＴタイプの特定結果を、今回の結果として端末２０に通知する（ステップＳ１９３）。
【０１１９】
一方、ステップＳ１９４に示すように、端末２０が、ＬＡＮ２に移動してから、情報処理装置３０ａにＮＡＴタイプの特定を要求した場合、ルータ１０ｂによって端末２０と情報処理装置３０ａの通信が中継される。このため、端末２０から送信されたＮＡＴタイプ特定要求の送信元アドレスは、ルータ１０ｂによってＹに設定されるが、ＮＡＴタイプ特定要求中で前回のＮＡＴタイプと対応付けられるグローバルＩＰアドレスはＸである。情報処理装置３０ａは、端末２０のアドレスが前回のＮＡＴタイプを特定したときと異なるＹであるため、端末２０は前回のＮＡＴタイプを特定したときと異なるＬＡＮに接続していると判定できる。すると、情報処理装置３０ａは、端末２０ａとの通信を中継しているルータ１０ｂのＮＡＴタイプの特定のための処理を行う。
【０１２０】
以上説明したように、第３の実施形態では、情報処理装置３０は、前回のＮＡＴタイプの特定の後で端末２０がＬＡＮを変更したかを判定し、端末２０がＬＡＮを変更していない場合には、前回のＮＡＴタイプの情報を使用する。このため、情報処理装置３０は、前回のＮＡＴタイプの特定の際と同じＬＡＮから通信している端末２０に対して、迅速にＮＡＴタイプを通知できる。さらに、情報処理装置３０は、端末２０がＬＡＮを変更していない場合は、新たにＮＡＴタイプの判定を行わずにすみ、情報処理装置３０の処理負荷を軽減できる。さらに、第２の実施形態と異なり、第３の実施形態では、情報処理装置３０は、前回のＮＡＴタイプの特定結果を記憶していなくても良い。このため、第３の実施形態では、情報処理装置３０が記憶する情報量を削減することもでき、情報処理装置３０の処理負荷をさらに軽減できる。
【０１２１】
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
【０１２２】
例えば、第３の実施形態は、情報処理装置６０によって行われても良い。
以上の説明で述べたテーブルやパケットに含まれている情報要素は例であり、実装に応じて変更され得る。例えば、図７のＦ１において、ＮＡＴタイプ特定要求にはプロトコル種別が含まれる場合について説明したが、ＮＡＴタイプ特定要求にはプロトコル種別が含まれていなくても良い。ＮＡＴタイプ特定要求にはプロトコル種別が含まれていない場合、情報処理装置３０中の制御部４０は他の情報処理装置３０に接続判定を要求する際に、自装置が端末２０との通信に使用しているプロトコルを接続判定要求に含める。
【０１２３】
同様に、第３の実施形態において、端末２０は、ＮＡＴタイプ特定要求（図２０のＦ２４）にＮＡＴタイプの判定結果を含めなくても良い。ＮＡＴタイプ特定要求にＮＡＴタイプの情報がなく、かつ、端末２０が接続しているＬＡＮが変更されていない場合、情報処理装置３０は、ＮＡＴタイプ特定応答においてＮＡＴタイプが前回のＮＡＴタイプの特定の際と同じであることを端末２０に通知する。
【０１２４】
また、上記の説明では、端末２０と情報処理装置３０または情報処理装置６０の間の通信に使用されるトランスポート層のプロトコルとしてＴＣＰ、ＵＤＰが用いられる場合を例として説明したが、実装に応じて任意のプロトコルが使用されうる。
【０１２５】
さらに、第１〜第３の実施形態のいずれにおいても、端末情報テーブル６１に含まれている情報は、トランザクションＩＤで特定されるＮＡＴタイプ特定要求で要求された取得処理が終わると削除されても良い。この場合、情報処理装置３０や情報処理装置６０のメモリが有効活用される。
【０１２６】
上述の第１〜第３の実施形態を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
複数の情報処理装置を含むネットワーク中の第１の情報処理装置は、前記ネットワークにルータを介してアクセスしている端末から、前記ルータで行われるアドレス変換の種類の特定を要求する特定要求パケットを受信すると、第２の情報処理装置に前記端末との通信の確立を要求し、
前記第２の情報処理装置は、前記端末に対して通信の確立を要求するとともに、前記端末と前記第２の情報処理装置の間での通信の確立に成功したかを前記第１の情報処理装置に通知し、
前記第１の情報処理装置は、
前記第２の情報処理装置から受信した通知を用いて、前記種類を特定し、
前記端末に前記種類を通知する
ことを特徴とする判定方法。
（付記２）
前記第１の情報処理装置は、
前記第１の情報処理装置が備える複数のポートのうちの第１のポートを用いて前記特定要求パケットを受信し、
前記第１のポートとは異なる第２のポートを介して、前記端末に通信の確立を要求し、
前記第２のポートを介した前記端末への通信の要求の結果を、さらに用いて、前記種類を特定する
ことを特徴とする付記１に記載の判定方法。
（付記３）
前記第１の情報処理装置は、前記端末に対して前記第２の情報処理装置に接続することを要求する接続要求パケットを送信し、
前記端末は、前記接続要求パケットを受信すると、前記第２の情報処理装置に前記端末との通信の開始を要求すると共に、前記端末が前記第２の情報処理装置との通信に使用しているアドレスを前記第１の情報処理装置に通知することを要求する通知要求パケットを、前記第２の情報処理装置に送信し、
前記第１の通信装置は、前記第２の情報処理装置から通知されたアドレスと、前記特定要求パケットの送信元アドレスとの比較結果をさらに用いて、前記種類を特定する
ことを特徴とする付記１または２に記載の判定方法。
（付記４）
前記特定要求パケットは、前記端末を識別する第１の識別情報をさらに含み、
前記第１の情報処理装置は、
前記特定要求パケットの送信元アドレスと前記第１の識別情報に対応付けて、前記ルータで行われるアドレス変換の種類の判定結果を記憶し、
アドレス変換の種類の特定を要求する他の特定要求パケットを受信し、
前記他の特定要求パケットは、前記他の特定要求パケットの送信元を識別する第２の識別情報を含み、
前記第１の情報処理装置は、
前記第１の識別情報と前記第２の識別情報が一致し、かつ、前記特定要求パケットの送信元アドレスと、前記他の特定要求パケットの送信元のアドレスが一致する場合、前記他の特定要求パケットは、前記端末が前記ルータを介して送信したパケットであると判定し、
前記第１の識別情報に対応付けられたアドレス変換の種類を、前記端末に通知する
ことを特徴とする付記１〜３のいずれか１項に記載の判定方法。
（付記５）
前記第１の情報処理装置は、前記種類と共に、前記端末の送信元アドレスとして前記第１の情報処理装置に通知されているアドレスである第１のアドレスを、前記端末に通知し、
前記端末は、前記種類を取得した後に、前記端末と前記第１の情報処理装置の間の通信を中継しているルータでのアドレス変換の種類の特定を要求する際に送信する他の特定要求パケットに、前記第１のアドレスをデータとして含め、
前記第１の情報処理装置は、
前記他の特定要求パケットの送信元のアドレスとして前記第１の情報処理装置が取得した第２のアドレスと、前記第１のアドレスが一致すると、前記他の特定要求パケットは、前記端末が前記特定要求パケットの送信の際と同じルータを介して送信したパケットであると判定し、
前記特定要求パケットの応答として前記端末に通知したアドレス変換の種類を、前記他の特定要求パケットの応答として前記端末に通知する
ことを特徴とする付記１〜３のいずれか１項に記載の判定方法。
（付記６）
複数の情報処理装置を含むネットワーク中の情報処理装置であって、
パケットを受信する受信部と、
前記ネットワークにルータを介してアクセスしている端末から、前記ルータで行われるアドレス変換の種類の特定を要求する特定要求パケットを前記受信部が受信すると、他の情報処理装置に前記端末との通信の確立を要求する要求部と、
前記他の情報処理装置から前記端末との通信の確立に成功したかが通知されると、通知された結果を用いて、前記種類を特定する特定部と、
前記端末に前記種類を通知する通知パケットを送信する送信部
を備えることを特徴とする情報処理装置。
（付記７）
前記送信部および前記受信部がパケットの送受信をする際に使用する複数のポートをさらに備え、
前記要求部は、前記特定要求パケットの受信に使用した第１のポートとは異なる第２のポートを介して、前記端末に通信の確立を要求し、
前記特定部は、前記第２のポートを介した前記端末への通信の要求の結果を、さらに用いて、前記種類を判定する
ことを特徴とする付記６に記載の情報処理装置。
（付記８）
前記要求部は、前記端末に対して前記他の情報処理装置に接続することを要求する接続要求パケットを生成し、
前記送信部は、前記接続要求パケットを前記端末に向けて送信し、
前記特定部は、前記他の情報処理装置から、前記端末との通信を行っていることと、前記端末が前記他の情報処理装置との通信に使用しているアドレスが通知されると、前記他の情報処理装置から通知されたアドレスと、前記特定要求パケットの送信元アドレスとの比較結果をさらに用いて、前記種類を特定する
ことを特徴とする付記６または７に記載の情報処理装置。
（付記９）
前記特定部は、前記特定要求パケットから、前記端末を識別する第１の識別情報を取得し、
前記情報処理装置は、前記特定要求パケットの送信元アドレスと前記第１の識別情報に対応付けて、前記ルータで行われるアドレス変換の種類の判定結果を記憶する記憶部をさらに備え、
前記特定部は、
前記受信部がアドレス変換の種類の特定を要求する他の特定要求パケットを受信すると、前記他の特定要求パケットの送信元を識別する第２の識別情報を前記他の特定要求パケットから取得し、
前記第１の識別情報と前記第２の識別情報が一致し、かつ、前記特定要求パケットの送信元アドレスと、前記他の特定要求パケットの送信元のアドレスが一致する場合、前記他の特定要求パケットは、前記端末が前記ルータを介して送信したパケットであると判定し、
前記第１の識別情報に対応付けられたアドレス変換の種類を、前記端末に通知するための処理を行う
ことを特徴とする付記６〜８のいずれか１項に記載の情報処理装置。
（付記１０）
前記通知パケットは、前記種類と共に、前記端末の送信元アドレスとして前記情報処理装置に通知されているアドレスである第１のアドレスを含み、
前記受信部は、前記第１のアドレスをデータとして含む他の特定要求パケットを受信し、
前記特定部は、
前記他の特定要求パケットの送信元のアドレスである第２のアドレスと、前記第１のアドレスが一致すると、前記他の特定要求パケットは、前記端末が前記特定要求パケットの送信の際と同じルータを介して送信したパケットであると判定し、
前記特定要求パケットの応答として前記端末に通知したアドレス変換の種類を、前記他の特定要求パケットの応答として前記端末に通知するための処理を行う
ことを特徴とする付記６〜８のいずれか１項に記載の情報処理装置。
【符号の説明】
【０１２７】
５、２０  端末
１０  ルータ
１１、２４、３１  通信部
１２  アドレス変換処理部
１５  サーバ
２１  ユーザインタフェース
２２  制御部
２３  記憶部
３０  情報処理装置
３２  受信部
３３  送信部
３５  記憶部
３６、６１  端末情報テーブル
４０  制御部
４１  要求部
５０  特定部
５１  ＮＡＴタイプ特定部
５２  ＬＡＮ変更判定部
６２  ＮＡＴタイプテーブル
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  ネットワークインタフェース
１０５  入力装置
１０６  出力装置
１０７  ハードディスク
１０８  フラッシュメモリ
【図１】
2016208162.tif 000003
【図２】
2016208162.tif 000004
【図３】
2016208162.tif 000005
【図４】
2016208162.tif 000006
【図５】
2016208162.tif 000007
【図６】
2016208162.tif 000008
【図７】
2016208162.tif 000009
【図８】
2016208162.tif 000010
【図９】
2016208162.tif 000011
【図１０】
2016208162.tif 000012
【図１１】
2016208162.tif 000013
【図１２】
2016208162.tif 000014
【図１３】
2016208162.tif 000015
【図１４】
2016208162.tif 000016
【図１５】
2016208162.tif 000017
【図１６】
2016208162.tif 000018
【図１７】
2016208162.tif 000019
【図１８】
2016208162.tif 000020
【図１９】
2016208162.tif 000021
【図２０】
2016208162.tif 000022
【図２１】
2016208162.tif 000023
【図２２】
2016208162.tif 000024
【図２３】
2016208162.tif 000025