(57)【要約】【課題】サーバに通信負荷をかけずに端末装置間でＰ２Ｐ通信を開始させることが可能な通信システムを提供する。【解決手段】通信制御装置では、複数のＮＡＴ装置のＮＡＴ種別を特定する処理が実行される（Ｓ１１）。特定されたＮＡＴ種別に基づいて、ＮＡＴ装置の配下にある端末装置の中から主端末装置を選択する（Ｓ１７）。主端末装置は、ＮＡＴ種別がFull Cone NATであるか、又はAddress-Restricted Cone NATであるＮＡＴ装置と直接接続する端末装置の中かから選択される。選択された主端末装置に対し、主端末装置を除く従端末装置間で実行される通信の制御を依頼するために、依頼通知パケットが送信される（Ｓ２１）。また従端末装置に対し、主端末装置が選択されたことを通知する変更通知パケットが送信される（Ｓ２５）。従端末装置では、主端末装置による通信制御に従い通信を行うことで、他の従端末装置間でＰ２Ｐ通信を行うことが可能となる。【選択図】図８
2011077921.tif 000002
【特許請求の範囲】
【請求項１】
ＮＡＴ（Network Address Translation）機能を備えたＮＡＴ装置の配下の内部ネットワークに接続する端末装置と、外部ネットワークを介して前記ＮＡＴ装置に接続する通信制御装置とを備え、複数の前記ＮＡＴ装置と、前記ＮＡＴ装置の配下の端末装置とで構成されるグループである通信グループ内で、異なる前記ＮＡＴ装置の配下の前記端末装置間で相互にＰ２Ｐ（Peer to Peer）通信が行われる通信システムであって、
前記通信制御装置は、
前記ＮＡＴ装置を種別したＮＡＴ種別を、前記ＮＡＴ装置の配下にある前記端末装置と通信を行うことによって特定する種別特定手段と、
前記種別特定手段によって特定された前記ＮＡＴ種別が所定のＮＡＴ種別であるかを判断する種別判断手段と、
前記種別判断手段において前記ＮＡＴ種別が所定のＮＡＴ種別であると判断された前記ＮＡＴ装置の配下の端末装置のうち一の端末装置を、主端末装置として選択する主端末選択手段と、
前記主端末選択手段において選択された前記主端末装置に対して、前記通信グループを構成する前記端末装置のうち前記主端末装置以外の端末装置である従端末装置のアドレス情報を少なくとも含む第一通知信号を送信する第一送信手段と、
前記従端末装置に対して、前記主端末装置のアドレス情報を少なくとも含む第二通知信号を送信する第二送信手段と
を備え、
前記端末装置は、
前記通信制御装置から送信された前記第一通知信号又は前記第二通知信号を受信する第一受信手段と、
前記第一通知信号及び前記第二通知信号に含まれるアドレス情報に基づき、前記第一受信手段において前記第一通知信号を受信した前記主端末装置が、前記第二通知信号を受信した前記従端末装置間の通信制御を行う通信制御手段であって、前記従端末装置同士の通信を行うために前記ＮＡＴ装置にポート番号を記憶させる通信を前記従端末装置間で実行させる通信制御手段と、
前記通信制御手段によって前記従端末装置間で通信が行われることで前記ＮＡＴ装置に記憶された前記ポート番号に基づいて、前記従端末装置間でＰ２Ｐ通信を行う通信手段と
を備えたことを特徴とする通信システム。
【請求項２】
前記ＮＡＴ装置は、
配下の前記内部ネットワーク側から前記外部ネットワーク側に向かう方向のパケットを受信した場合に、基準ポート番号に所定の変化量であるポート幅ずつ加算し、算出された前記ポート番号を、パケットの転送を許可する履歴情報として記憶する場合において、
前記通信制御手段は、
前記従端末装置と直接接続するＮＡＴ装置である従ＮＡＴ装置の前記基準ポート番号及び前記ポート幅を前記主端末装置が取得する取得手段と、
前記取得手段において取得された前記基準ポート番号及び前記ポート幅と、前記通信グループ内の複数の前記従ＮＡＴ装置の其々に対して一意的に割り当てられる順番であって、前記従端末装置から前記従ＮＡＴ装置を介して他の前記従端末装置に対してパケットが送信される場合の順番である送信順とに基づいて、前記パケットの送信先ポート番号を前記主端末装置が決定する送信先決定手段と、
前記送信先決定手段において決定された前記送信先ポート番号と前記送信順とを、前記主端末装置が前記従端末装置に対して送信する第三送信手段と、
前記第三送信手段において送信された前記送信先ポート番号と前記送信順とを、前記従端末装置が受信する第二受信手段と、
前記第二受信手段において受信した前記送信先ポート番号と前記送信順とに基づいて、前記従端末装置が他の前記従端末装置に対して前記パケットを送信する第四送信手段と
を備え、
前記通信手段は、
前記第四送信手段において送信された前記パケットによって前記従ＮＡＴ装置の前記履歴情報として記憶された前記ポート番号に基づいて、前記従端末装置間でＰ２Ｐ通信を行うことを特徴とする請求項１に記載の通信システム。
【請求項３】
前記送信先決定手段は、
前記ポート幅と前記送信順とを乗算した値を、前記基準ポート番号に加算することによって、前記送信先ポート番号を決定することを特徴とする請求項２に記載の通信システム。
【請求項４】
前記種別判断手段は、
前記ＮＡＴ種別が、送信元ＩＰアドレス及び送信元ポート番号によってパケット転送の制約を受けないFull Cone NATか、または、送信元ＩＰアドレスによってパケット転送が制約され、送信元ポート番号によってパケット転送の制約を受けないAddress-Restricted Cone NATであるかを判断することを特徴とする請求項１から３のいずれかに記載の通信システム。
【請求項５】
前記主端末選択手段は、
前記種別判断手段の判断によって前記ＮＡＴ種別がFull Cone NATであると判断されたＮＡＴ装置と、Address-Restricted Cone NATであると判断されたＮＡＴ装置との両方が存在する場合には、前記ＮＡＴ種別がFull Cone NATであるＮＡＴ装置の配下にある端末装置のうち一を前記主端末装置として選択することを特徴とする請求項４に記載の通信システム。
【請求項６】
前記種別判断手段は、
前記ＮＡＴ種別が、送信元ＩＰアドレスもしくは送信元ポート番号によってパケット転送が制約されるPort-Restricted Cone NATであるかを判断し、
前記主端末選択手段は、
前記種別判断手段の判断によって通信グループの前記端末装置が直接接続されるＮＡＴ装置のＮＡＴ種別が全てPort-Restricted Cone NATであると判断された場合には、前記ＮＡＴ種別がPort-Restricted Cone NATであるＮＡＴ装置の配下にある前記端末装置のうち一を前記主端末装置として選択することを特徴とする請求項１から３のいずれかに記載の通信システム。
【請求項７】
前記主端末選択手段は、
前記種別判断手段の判断によってＮＡＴ種別が送信元ＩＰアドレス及び送信元ポート番号によってパケット転送の制約を受けないFull Cone NATか、または、送信元ＩＰアドレスによってパケット転送が制限され、送信元ポート番号によってパケット転送の制約を受けないAddress-Restricted Cone NATであると判断された前記ＮＡＴ装置の配下にある端末装置のうち、通信グループ内の端末装置を優先して前記主端末装置として選択することを特徴とする請求項１から６のいずれかに記載の通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信システムに関する。より詳細には、ＮＡＴ装置の配下にある端末装置間で通信を行う通信システムに関する。
【背景技術】
【０００２】
ＮＡＴ（Network Address Translation）機能を備えた装置（以下「ＮＡＴ装置」という。）では、ＬＡＮ側からインターネット側に向かう方向の通信が行われた場合に、所定のポート番号が記憶される。セキュリティ機能が高いＮＡＴ装置は、記憶されたポート番号宛てのパケットをインターネット側から受信した場合にのみ、受信したパケットをＬＡＮ側に転送するタイプのものがある。従って、それらのＮＡＴ装置の配下にある端末装置とのセッションを確立させるためには、ＮＡＴ装置に記憶されているポート番号を検出し、このポート番号宛てにパケットが送信される必要がある。
【０００３】
ポート番号を検出し、異なるＮＡＴ装置の配下にある端末装置同士でＰ２Ｐ（Peer to Peer）通信を開始させる為の技術として、例えばUDP Hole Punchingや、UDP Multi Hole Punchingが知られている。また例えば特許文献１に記載の通信システムでは、端末装置からバブルパケットが複数送信され、ＮＡＴ装置にポート番号が複数記憶される。別のＮＡＴ装置の配下にある端末装置は、ＮＡＴ装置に記憶されたポート番号を特定するために、予想されるポート番号を送信先に設定してパケットを送信する。通信に成功した場合、パケットの送信先として設定されているポート番号が、ＮＡＴ装置に記憶されているポート番号として特定される。以後、このポート番号を送信先としてパケットが送信される。このようにして、異なるＮＡＴ装置の配下にある端末間でＰ２Ｐ通信が開始される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１５７９４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら特許文献１に記載の通信システムでは、バブルパケットの送信に際し、基準ポート検出用パケットやポート幅検出用パケットをサーバに対して送信しなければならない。従って、端末装置の数が多くなると、サーバが受信するパケットの数が多くなって通信処理の負荷が増大するという問題点がある。
【０００６】
本発明の目的は、サーバの通信処理負荷の増大を抑制しつつ端末装置間でＰ２Ｐ通信を開始させることが可能な通信システムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明の第一態様に係る通信システムは、ＮＡＴ（Network Address Translation）機能を備えたＮＡＴ装置の配下の前記内部ネットワークに接続する端末装置と、外部ネットワークを介して前記ＮＡＴ装置に接続する通信制御装置とを備え、複数の前記ＮＡＴ装置と、前記ＮＡＴ装置の配下の端末装置とで構成されるグループである通信グループ内で、異なる前記ＮＡＴ装置の配下の前記端末装置間で相互にＰ２Ｐ（Peer to Peer）通信が行われる通信システムであって、前記通信制御装置は、前記ＮＡＴ装置におけるポートマッピングやパケットフィルタリング方法毎に前記ＮＡＴ装置を種別したＮＡＴ種別を、前記ＮＡＴ装置の配下にある前記端末装置と通信を行うことによって特定する種別特定手段と、前記種別特定手段によって特定された前記ＮＡＴ種別が所定のＮＡＴ種別であるかを判断する種別判断手段と、前記種別判断手段において前記ＮＡＴ種別が所定のＮＡＴ種別であると判断された前記ＮＡＴ装置の配下の端末装置のうち一の端末装置を、主端末装置として選択する主端末選択手段と、前記主端末選択手段において選択された前記主端末装置に対して、前記通信グループを構成する前記端末装置のうち前記主端末装置以外の端末装置である従端末装置のアドレス情報を少なくとも含む第一通知信号を送信する第一送信手段と、前記従端末装置に対して、前記主端末装置のアドレス情報を少なくとも含む第二通知信号を送信する第二送信手段とを備え、前記端末装置は、前記通信制御装置から送信された前記第一通知信号又は前記第二通知信号を受信する第一受信手段と、前記第一通知信号及び前記第二通知信号に含まれるアドレス情報に基づき、前記第一受信手段において前記第一通知信号を受信した前記主端末装置が、前記第二通知信号を受信した前記従端末装置間の通信制御を行う通信制御手段であって、前記従端末装置同士の通信を行うために前記ＮＡＴ装置にポート番号を記憶させる通信を前記従端末装置間で実行させる通信制御手段と、前記通信制御手段によって前記従端末装置間で通信が行われることで前記ＮＡＴ装置に記憶された前記ポート番号に基づいて、前記従端末装置間でＰ２Ｐ通信を行う通信手段とを備えている。
【０００８】
第一態様に係る通信システムでは、主端末装置が従端末装置間の通信制御を実行することによって、従端末装置間でＰ２Ｐ通信が可能となる。通信制御装置が従端末装置間の通信制御を行わずに済むので、通信制御装置の通信処理負荷の増大を抑制できる。また、ネットワークのトラフィック集中を抑制できる。
【０００９】
また、第一態様において、前記ＮＡＴ装置は、配下の前記内部ネットワーク側から前記外部ネットワーク側に向かう方向のパケットを受信した場合に、基準ポート番号に所定の変化量であるポート幅ずつ加算し、算出された前記ポート番号を、パケットの転送を許可する履歴情報として記憶する場合において、前記通信制御手段は、前記従端末装置と直接接続するＮＡＴ装置である従ＮＡＴ装置の前記基準ポート番号及び前記ポート幅を前記主端末装置が取得する取得手段と、前記取得手段において取得された前記基準ポート番号及び前記ポート幅と、前記通信グループ内の複数の前記従ＮＡＴ装置の其々に対して一意的に割り当てられる順番であって、前記従端末装置から前記従ＮＡＴ装置を介して他の前記従端末装置に対してパケットが送信される場合の順番である送信順とに基づいて、前記パケットの送信先ポート番号を前記主端末装置が決定する送信先決定手段と、前記送信先決定手段において決定された前記送信先ポート番号と前記送信順とを、前記主端末装置が前記従端末装置に対して送信する第三送信手段と、前記第三送信手段において送信された前記送信先ポート番号と前記送信順とを、前記従端末装置が受信する第二受信手段と、前記第二受信手段において受信した前記送信先ポート番号と前記送信順とに基づいて、前記従端末装置が他の前記従端末装置に対して前記パケットを送信する第四送信手段とを備え、前記通信手段は、前記第四送信手段において送信された前記パケットによって前記従ＮＡＴ装置の前記履歴情報として記憶された前記ポート番号に基づいて、前記従端末装置間でＰ２Ｐ通信を行ってもよい。このように、主端末装置からの通信制御によって、従端末装置は、Ｐ２Ｐ通信のために必要となるポート番号のみ従ＮＡＴ装置に記憶させることができる。従ＮＡＴ装置に記憶される不要なポート番号宛てに不特定多数のユーザがアクセスすることを防止できるので、従ＮＡＴ装置のセキュリティ機能が弱まってしまうことを防止できる。また従端末装置は、主端末装置から通知された送信先ポート番号に対してのみパンチパケットを送信すればよいので、パンチパケット通信に要する時間を短縮できる。このため、従端末装置間でＰ２Ｐ通信が可能となる迄の時間を短縮できる。
【００１０】
また、第一態様において、前記送信先決定手段は、前記ポート幅と前記送信順とを乗算した値を、前記基準ポート番号に加算することによって、前記送信先ポート番号を決定してもよい。これによって通信制御装置は、簡易な算出方法によって送信先ポート番号を決定することができる。また送信先ポート番号は、従ＮＡＴ装置毎に一意的に決定されるので、従ＮＡＴ装置に記憶されるポート番号を最小限に抑えつつ、従端末装置間で確実に通信を行うことができる。
【００１１】
また、第一態様において、前記種別判断手段は、前記ＮＡＴ種別が、送信元ＩＰアドレス及び送信元ポート番号によってパケット転送の制約を受けないFull Cone NATか、または、送信元IPアドレスによってパケット転送が制約され、送信元ポート番号によってパケット転送の制約を受けないAddress-Restricted Cone NATであるかを判断してもよい。ＮＡＴ種別がFull Cone NATまたはAddress-Restricted Cone NATである場合、ＮＡＴ装置はパケット転送を行う場合に送信元ＩＰアドレスによって制約を受けない。このため、一旦履歴情報としてポート番号が記憶された後は、任意の端末装置が記憶されたポート番号を使用して通信を行うことができる。このため、主端末装置と従端末装置との間で容易に通信を開始することができる。主端末装置は、従端末装置間の通信制御を容易に実行できる。
【００１２】
また、第一態様において、前記主端末選択手段は、前記種別判断手段の判断によって前記ＮＡＴ種別がFull Cone NATであると判断されたＮＡＴ装置と、Address-Restricted Cone NATであると判断されたＮＡＴ装置との両方が存在する場合には、前記ＮＡＴ種別がFull Cone NATであるＮＡＴ装置の配下にある端末装置のうち一を前記主端末装置として選択してもよい。ＮＡＴ種別がFull Cone NATである場合、ＮＡＴ装置はパケット転送を行う場合に送信元ＩＰアドレス及び送信元ポート番号によって制約を受けない。このため、主端末装置と従端末装置杜の間で通信を開始する場合において、特段の開始手順（UDP Hole Punchingなど）を経なくてもよい。従って、ＮＡＴ種別がFull Cone NATであるＮＡＴ装置の配下の端末装置から主端末装置を選択することによって、主端末装置と従端末装置との間で迅速かつ容易に通信を開始させることができる。主端末装置は、従端末装置間の通信制御を迅速に実行できる。
【００１３】
また、第一態様において、前記種別判断手段は、前記ＮＡＴ種別が、送信元ＩＰアドレスもしくは送信元ポート番号によってパケット転送が制約されるPort-Restricted Cone NATであるかを判断し、前記主端末選択手段は、前記種別判断手段の判断によって通信グループの前記端末装置が直接接続されるＮＡＴ装置のＮＡＴ種別が全てPort-Restricted Cone NATであると判断された場合には、前記ＮＡＴ種別がPort-Restricted Cone NATであるＮＡＴ装置の配下にある前記端末装置のうち一を前記主端末装置として選択してもよい。これによって、前記通信グループ内の前記端末装置が直接接続されるＮＡＴ装置のＮＡＴ種別が全てPort-Restricted Cone NATである場合であっても、このＮＡＴ装置の配下にある端末装置を主端末装置として選択することができる。ＮＡＴ種別がFull Cone NATまたはAddress-Restricted Cone NATであるＮＡＴ装置が存在しない場合であっても、主端末装置に従端末装置間の通信制御を実行させることができるので、通信制御装置に通信負荷がかかってしまうことを防止できる。
【００１４】
また、第一態様において、前記主端末選択手段は、前記種別判断手段の判断によってＮＡＴ種別が送信元ＩＰアドレス及び送信元ポート番号によってパケット転送の制約を受けないFull Cone NATか、または、送信元IPアドレスによってパケット転送が制限され、送信元ポート番号によってパケット転送の制約を受けないAddress-Restricted Cone NATであると判断された前記ＮＡＴ装置の配下にある端末装置のうち、通信グループ内の端末装置を優先して前記主端末装置として選択してもよい。これによって、他の通信グループ内にある端末装置に通信負荷がかかってしまうことを防止できる。また、通信グループ内の端末装置のみで通信制御のための通信が行われるので、セキュリティを向上させることができる。
【図面の簡単な説明】
【００１５】
【図１】通信システム１の概要を示す模式図である。
【図２】通信制御装置１６の電気的構成を示すブロック図である。
【図３】第一テーブル３４１１を示す模式図である。
【図４】ＮＡＴ装置２の電気的構成を示すブロック図である。
【図５】端末装置９の電気的構成を示すブロック図である。
【図６】第二テーブル５４１１を示す模式図である。
【図７】第三テーブル５４２１を示す模式図である。
【図８】通信制御処理を示すフローチャートである。
【図９】ＮＡＴ種別特定処理を示すフローチャートである。
【図１０】主端末選択処理を示すフローチャートである。
【図１１】依頼通知パケットに含まれる情報の一例を示す模式図である。
【図１２】変更通知パケットに含まれる情報の一例を示す模式図である。
【図１３】端末装置処理を示すフローチャートである。
【図１４】端末装置処理を示すフローチャートである。
【図１５】通信確立処理を示すフローチャートである。
【図１６】ポート幅特定処理（端末装置）を示すフローチャートである。
【図１７】ポート通知パケットに含まれる情報の一例を示す模式図である。
【図１８】送信順決定処理を示すフローチャートである。
【図１９】端末装置間でパンチパケットの通信が行われた状態を示す図である。
【図２０】端末装置間でＰ２Ｐ通信が行われた状態を示す図である。
【図２１】第一の変形例における通信制御処理を示すフローチャートである。
【図２２】第一の変形例におけるポート幅特定処理（制御装置）を示すフローチャートである。
【図２３】第二の変形例における主端末選択処理を示すフローチャートである。
【図２４】第三の変形例における主端末選択処理を示すフローチャートである。
【図２５】第四の変形例における主端末選択処理を示すフローチャートである。
【図２６】依頼通知パケットに含まれる情報の一例を示す模式図である。
【発明を実施するための形態】
【００１６】
以下、本発明に係る通信システム１について、図面を参照して説明する。これらの図面は、本発明が採用しうる技術的特徴を説明するために用いられるものである。記載されている通信制御装置や端末装置の構成、各種処理のフローチャートなどは、それのみに限定する趣旨ではなく、単なる説明例である。
【００１７】
図１を参照し、通信システム１の概要について説明する。通信システム１は、通信制御装置１６、ＮＡＴ装置２〜８、及び端末装置９〜１５等を少なくとも備えている。通信制御装置１６は、インターネット１７と接続している。ＮＡＴ装置２〜８は、ＷＡＮ１８，１９を介してインターネット１７と接続している。なおインターネット１７とＷＡＮ１８，１９との間には、ファイヤーウォール等が接続されていてもよい。ＮＡＴ装置２〜８は、配下のＬＡＮ２１〜２７を介して端末装置９〜１５等と接続している。
【００１８】
図１に示す例では、ＷＡＮ１８にＮＡＴ装置２〜５が接続している。ＮＡＴ装置２は、端末装置９を含む複数の端末装置とＬＡＮ２１を介して接続している。ＮＡＴ装置３は、端末装置１０を含む複数の端末装置とＬＡＮ２２を介して接続している。ＮＡＴ装置４は、端末装置１１を含む複数の端末装置とＬＡＮ２３を介して接続している。ＮＡＴ装置５は、端末装置１２を含む複数の端末装置とＬＡＮ２４を介して接続している。ＷＡＮ１９にＮＡＴ装置６〜８が接続している。ＮＡＴ装置６は、端末装置１３を含む複数の端末装置とＬＡＮ２５を介して接続している。ＮＡＴ装置７は、端末装置１４を含む複数の端末装置とＬＡＮ２６を介して接続している。ＮＡＴ装置８は、端末装置１５を含む複数の端末装置とＬＡＮ２７を介して接続している。
【００１９】
また、端末装置９〜１２等は、共通のＷＡＮ１８に接続する端末装置のグループ（以下「通信グループ」という。）Ａを形成している。同様に、端末装置１３〜１５は、共通のＷＡＮ１９に接続する通信グループＢを形成している。通信グループ内にある端末装置間で、Ｐ２Ｐ（Peer to Peer）通信が行われる。これによって例えば、共通の通信グループ内にある端末装置間でテレビ会議等が実行される。
【００２０】
なお本実施の形態では、共通のＷＡＮ１８，１９に接続する端末装置が通信グループを形成しているが、本発明はこの構成に限定されない。互いに離れた場所に配置され、インターネットを介して接続するような端末装置同士が通信グループを形成させてもよい。
【００２１】
通信制御装置１６は、端末装置９〜１５等の間でＰ２Ｐ通信を行うために必要な通信制御を行う。通信制御装置１６としては、例えば呼制御サーバやＳＴＵＮサーバが使用できる。端末装置９〜１５等は、通信制御装置１６による通信制御に基づいて、他の端末装置との間でＰ２Ｐ通信を行う。端末装置９〜１５等としては、例えばＰＣ（パーソナルコンピュータ）が使用できる。
【００２２】
ＮＡＴ装置２〜８は、ＮＡＴ（Network Address Translation）機能を備えた装置である。ＮＡＴ装置２〜８は、ＬＡＮ２１〜２７側からＷＡＮ１８，１９側に向かう方向のパケットを端末装置９〜１５等から受信した場合に、パケットのヘッダに含まれている送信元ＩＰアドレスと送信元ポート番号とを変換する。変換後の送信元ポート番号は、履歴情報としてＮＡＴ装置２〜８に記憶される。記憶されたポート番号は、ＷＡＮ１８，１９側からＬＡＮ２１〜２７側に向かう方向のパケットを受信した場合において、該パケットをＬＡＮ２１〜２７側に転送するか否かを判断する場合に使用される。なお本実施の形態では、ＬＡＮ２１〜２７側からＷＡＮ１８，１９側に向かう方向のパケットをＮＡＴ装置２〜８が受信した場合、この時点で履歴情報に記憶されている最新のポート番号に所定の変化量（以下「ポート幅」という。）を加算する演算が行われる。算出されたポート番号は、変換後の送信元ポート番号としてパケットのヘッダに格納されるとともに、履歴情報として記憶される。
【００２３】
ＮＡＴ装置２〜８としては、ポートマッピングやパケットフィルタリング方法毎に種別したＮＡＴ種別がCone NAT（Full Cone NAT、Address-Restricted Cone NAT、Port-Restricted Cone NAT）やSymmetric NATであるＮＡＴ装置が使用できる。Full Cone NATであるＮＡＴ装置は、ＷＡＮ１８，１９側から受信したパケットをＬＡＮ２１〜２７側に転送する場合において、受信したパケットのヘッダに含まれている送信元ＩＰアドレス及び送信元ポート番号の制約を受けない。Address-Restricted Cone NATであるＮＡＴ装置は、ＷＡＮ１８，１９側から受信したパケットをＬＡＮ２１〜２７側に転送する場合において、送信元ポート番号の制約を受けないが、送信元ＩＰアドレスに基づいてパケットをブロックする。Port-Restricted Cone NATは、ＷＡＮ１８，１９側から受信したパケットをＬＡＮ２１〜２７側に転送する場合において、送信元ＩＰアドレスの制約を受けないが、送信元ポート番号に基づいてパケットをブロックする。Symmetric NATであるＮＡＴ装置は、ＷＡＮ１８，１９側から受信したパケットをＬＡＮ２１〜２７側に転送する場合において、送信元ＩＰアドレス及び送信元ポート番号に基づいてパケットをブロックする。
【００２４】
異なるＮＡＴ装置２〜８の配下にある端末装置９〜１５等の間でＰ２Ｐ通信を行うためには、通信相手方の端末装置と直接接続するＮＡＴ装置２〜８に履歴情報として記憶されているポート番号（ＮＡＴ装置２〜８がＬＡＮ２１〜２７側からＷＡＮ１８，１９側にパケットを転送した場合において、ＮＡＴ装置２〜８がパケットのヘッダに格納したポート番号に相当）を、端末装置が知る必要がある。ＮＡＴ装置２〜８は、履歴情報として記憶されているポート番号と同一の送信先ポート番号がヘッダに格納されたパケットをＷＡＮ１８，１９側から受信した場合にのみ、受信したパケットをＬＡＮ２１〜２７側に転送するためである。
【００２５】
端末装置９〜１５がＮＡＴ装置２〜８に記憶されているポート番号を認識する為の手段として、例えば次の周知な方法が使用できる。端末装置９〜１５等は、ＮＡＴ装置２〜８を介してＬＡＮ２１〜２７側からＷＡＮ１８，１９側にパケットを送信することによって、ＮＡＴ装置２〜８にポート番号を記憶させる（ＮＡＴ装置２〜８にポート番号を記憶させるために、端末装置９〜１５等から送信されるパケットを、以下「パンチパケット」という。）。実際に端末装置９〜１５等の間でＰ２Ｐ通信が行われる場合には、パンチパケットをＮＡＴ装置２〜８が転送した場合にＮＡＴ装置２〜８に記憶されたポート番号に対して、他のＮＡＴ装置２〜８の配下にある端末装置９〜１５からパケットが送信される。
【００２６】
ここで本実施の形態では、通信制御装置１６によって選択された特定の端末装置（以下「主端末装置」という。）によって、通信グループ内でのパンチパケットの通信制御が行われる。これによって、効率的にＮＡＴ装置２〜８にポート番号を記憶させることができる。また、通信制御装置１６の代わりに主端末装置がパンチパケットの通信制御を行うことによって、通信制御装置１６に通信負荷が集中してしまうことを防止している。
【００２７】
なお、図１におけるインターネット１７及びＷＡＮ１８，１９が、本発明の「外部ネットワーク」に相当し、ＬＡＮ２１〜２７が本発明の「内部ネットワーク」に相当する。なお本発明は、外部ネットワークとしてインターネット１７及びＷＡＮ１８，１９の他に従来周知の様々なネットワーク（ＬＡＮ、ＷＡＮ、専用回線など）が使用できる。同様に、内部ネットワークとしてＬＡＮ２１〜２７の他に従来周知のネットワーク（インターネット、ＷＡＮ、専用回線など）が使用できる。
【００２８】
図２を参照し、通信制御装置１６の電気的構成について説明する。通信制御装置１６は、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３、ＨＤＤ３４を備えている。ＣＰＵ３１は、ＮＡＴ装置２〜８や端末装置９〜１５との通信を制御する。ＲＯＭ３２には、Ｂｏｏｔプログラムや初期設定パラメータが少なくとも記憶される。ＲＡＭ３３には、ＣＰＵ３１の処理時に発生する一時的なデータが少なくとも記憶される。ＨＤＤ３４は、第一テーブル記憶領域３４１、プログラム記憶領域３４２、及びその他の情報記憶領域３４３を少なくとも備えている。第一テーブル記憶領域３４１には、端末装置９〜１５と通信を行うために必要となるＮＡＴ装置２〜８のアドレス情報やＮＡＴ種別等に関する情報が格納された第一テーブルが記憶される。プログラム記憶領域３４２には、ＣＰＵ３１のプログラムが記憶される。その他の情報記憶領域３４３には、上述の情報以外の情報が記憶される。ＣＰＵ３１は、ＲＯＭ３２、ＲＡＭ３３、及びＨＤＤ３４と電気的に接続している。ＣＰＵ３１は、ＲＯＭ３２、ＲＡＭ３３、及びＨＤＤ３４の記憶領域にアクセスできる。
【００２９】
通信制御装置１６は、入力ドライバ３５を備えている。入力ドライバ３５は、キーボード３５１を介して入力された情報を検出する。ＣＰＵ３１は、入力ドライバ３５と電気的に接続している。入力ドライバ３５は、キーボード３５１と電気的に接続する。ＣＰＵ３１は、キーボード３５１を介して入力された情報を認識できる。通信制御装置１６は、表示ドライバ３６を備えている。表示ドライバ３６は、ディスプレイ３６１に像を表示させるための制御を行う。ＣＰＵ３１は、表示ドライバ３６と電気的に接続している。表示ドライバ３６は、ディスプレイ３６１と電気的に接続する。ＣＰＵ３１は、ディスプレイ３６１に所望の像を表示させることができる。
【００３０】
通信制御装置１６は、通信モジュール３７を備えている。通信モジュール３７は、インターネット１７を介した通信を可能とする。ＣＰＵ３１は、通信モジュール３７と電気的に接続している。ＣＰＵ３１は、インターネット１７を介して通信を行うことができる。通信制御装置１６は、ディスクドライブ３８を備えている。ディスクドライブ３８は、記憶媒体３８１に記憶された情報にアクセスする為の駆動装置である。ＣＰＵ３１は、ディスクドライブ３８と電気的に接続している。ＣＰＵ３１は、ディスクドライブ３８に記憶媒体３８１が挿入された状態で、記憶媒体３８１に記憶された情報にアクセスできる。記憶媒体３８１には、例えば、ＣＰＵ３１が実行するプログラムが記憶される。記憶媒体３８１の導入時には、プログラムが記憶媒体３８１からＨＤＤ３４のプログラム記憶領域３４２にセットアップされる。
【００３１】
図３を参照し、第一テーブルの一例である第一テーブル３４１１について説明する。第一テーブル３４１１には、ＮＡＴ装置２〜８を特定するＩＤ情報（「ＮＡＴ  ＩＤ」という。）、ＮＡＴ装置２〜８のＩＰアドレス、ポート番号、及びＮＡＴ種別が、通信グループ毎に格納される。ＩＰアドレスとしては、ＮＡＴ装置２〜８のＷＡＮ１８，１９側に設定されるＩＰアドレスが格納される。ポート番号としては、通信制御装置１６が端末装置９〜１５等と通信を行う場合に使用可能なポート番号が格納される。なお図３のＮＡＴ種別のうち、「ＦＣ  ＮＡＴ」は「Full Cone NAT」を示している。同様に、「ＡＲＣ  ＮＡＴ」はAddress-Restricted Cone NATを示している。「Ｓｙｍ  ＮＡＴ」はSymmetric NATを示している。第一テーブル３４１１に記憶されている情報は、端末装置９〜１５と通信を行うために必要なアドレス情報として参照される。
【００３２】
図３に示す例では、通信グループＡに属するＮＡＴ装置として「２」「３」「４」「５」が格納され、通信グループＢに属するＮＡＴ装置として「６」「７」「８」が格納されている。なおこれらのＮＡＴ  ＩＤにて特定されるＮＡＴ装置は、図１におけるＮＡＴ装置２〜８にそれぞれ相当する。ＮＡＴ装置２（ＮＡＴ  ＩＤ：２）のＩＰアドレスは「Ｇ２」であり、ポート番号は「Ｐa２」である。ＮＡＴ種別はＡＲＣ  ＮＡＴである。
【００３３】
なお以下、Full Cone NATを「ＦＣ  ＮＡＴ」と呼ぶ。Address-Restricted Cone NATを「ＡＲＣ  ＮＡＴ」と呼ぶ。Port-Restricted Cone NATを「ＰＲＣ  ＮＡＴ」と呼ぶ。Symmetric NATを「Ｓｙｍ  ＮＡＴ」と呼ぶ。
【００３４】
図４を参照し、ＮＡＴ装置２の電気的構成について説明する。なお、ＮＡＴ装置３〜８の電気的構成についても同様である。ＮＡＴ装置２は、ＣＰＵ４１、ＲＯＭ４２、ＲＡＭ４３、フラッシュメモリ４４を備えている。ＣＰＵ４１は、通信制御装置１６や端末装置９〜１５との通信を制御する。ＲＯＭ４２には、ＣＰＵ４１のプログラムが少なくとも記憶される。ＲＡＭ４３には、ＣＰＵ４１の処理時に発生する一時的なデータが少なくとも記憶される。フラッシュメモリ４４には、ポート番号が履歴情報として記憶される。ＣＰＵ４１は、ＲＯＭ４２、ＲＡＭ４３、及びフラッシュメモリ４４と電気的に接続している。ＣＰＵ４１は、ＲＯＭ４２、ＲＡＭ４３、及びフラッシュメモリ４４の記憶領域にアクセスできる。
【００３５】
ＮＡＴ装置２は、表示部４５を備えている。表示部４５は、ＮＡＴ装置２の状態等を表示することができる。ＣＰＵ４１は、表示部４５と電気的に接続している。ＣＰＵ４１は、表示部４５に所望の情報を表示させることができる。表示部４５としては、例えばＬＥＤが使用できる。ＮＡＴ装置２は、入力部４６を備えている。入力部４６は、ユーザによるＮＡＴ装置２への入力操作を受け付ける。ＣＰＵ４１は、入力部４６と電気的に接続している。ＣＰＵ４１は、入力部４６を介して入力された情報を認識できる。入力部４６としては、例えばスイッチやタッチセンサが使用できる。
【００３６】
ＮＡＴ装置２は、通信モジュール４７を備えている。通信モジュール４７は、ＷＡＮ１８，１９を介した通信を可能とする。ＣＰＵ４１は、通信モジュール４７と電気的に接続している。ＣＰＵ４１は、ＷＡＮ１８，１９を介して通信を行うことができる。ＮＡＴ装置２は、通信モジュール４８を備えている。通信モジュール４８は、ＬＡＮ２１〜２７を介した通信を可能とする。ＣＰＵ４１は、通信モジュール４８と電気的に接続している。ＣＰＵ４１は、ＬＡＮ２１〜２７を介して通信を行うことができる。
【００３７】
図５を参照し、端末装置９の電気的構成について説明する。なお、端末装置１０〜１５等の電気的構成についても同様である。端末装置９は、ＣＰＵ５１、ＲＯＭ５２、ＲＡＭ５３、ＨＤＤ５４を備えている。ＣＰＵ５１は、ＮＡＴ装置２〜８や通信制御装置１６との通信を制御する。ＲＯＭ５２には、Ｂｏｏｔプログラムや初期パラメータが少なくとも記憶される。ＲＡＭ５３は、ＣＰＵ５１の処理時に発生する一時的なデータが少なくとも記憶される。ＨＤＤ５４には、第二テーブル記憶領域５４１、第三テーブル記憶領域５４２、プログラム記憶領域５４３、及びその他の情報記憶領域５４４を少なくとも備えている。
【００３８】
第二テーブル及び第三テーブルは、主端末装置として選択された端末装置において作成され、第二テーブル記憶領域５４１及び第三テーブル記憶領域５４２に記憶される。第二テーブル記憶領域５４１には、自身が通信制御を行う通信グループ内にあるＮＡＴ装置のポート幅等に関する情報が第二テーブルとして記憶される。第三テーブル記憶領域５４２には、自身が通信制御を行う通信グループ内にある端末装置９〜１５から送信されるパンチパケットの送信先の情報が第三テーブルとして記憶される。プログラム記憶領域５４３には、ＣＰＵ５１のプログラムが記憶される。ＣＰＵ５１は、ＲＯＭ５２、ＲＡＭ５３、及びＨＤＤ５４と電気的に接続している。ＣＰＵ５１は、ＲＯＭ５２、ＲＡＭ５３、及びＨＤＤ５４の記憶領域にアクセスできる。
【００３９】
端末装置９は、入力ドライバ５５を備えている。入力ドライバ５５は、キーボード５５１を介して入力された情報を検出する。ＣＰＵ５１は、入力ドライバ５５と電気的に接続している。入力ドライバ５５は、キーボード５５１と電気的に接続する。ＣＰＵ５１は、キーボード５５１を介して入力された情報を認識できる。端末装置９は、表示ドライバ５６を備えている。表示ドライバ５６は、ディスプレイ５６１に像を表示させるための制御を行う。ＣＰＵ５１は、表示ドライバ５６と電気的に接続している。表示ドライバ５６は、ディスプレイ５６１と電気的に接続する。ＣＰＵ５１は、ディスプレイ５６１に所望の像を表示させることができる。
【００４０】
端末装置９は、通信モジュール５７を備えている。通信モジュール５７は、ＬＡＮ２１〜２７を介した通信を可能とする。ＣＰＵ５１は、通信モジュール５７と電気的に接続している。ＣＰＵ５１は、ＬＡＮ２１〜２７を介して通信を行うことができる。端末装置９は、ディスクドライブ５８を備えている。ディスクドライブ５８は、記憶媒体５８１に記憶された情報にアクセスする為の駆動装置である。ＣＰＵ５１は、ディスクドライブ５８と電気的に接続している。ＣＰＵ５１は、ディスクドライブ５８に記憶媒体５８１が挿入された状態で、記憶媒体５８１に記憶された情報にアクセスできる。記憶媒体５８１には、例えば、ＣＰＵ５１が実行するプログラムが記憶される。記憶媒体５８１の導入時には、プログラムが記憶媒体５８１からＨＤＤ５４にセットアップされる。
【００４１】
図６を参照し、第二テーブルの一例である第二テーブル５４１１について説明する。第二テーブル５４１１は、通信グループＡの主端末装置として端末装置９が選択された場合において、端末装置９によって作成される第二テーブルを示している。第二テーブル５４１１には、ＮＡＴ  ＩＤ、ＮＡＴ装置２〜８のＩＰアドレス、ポート幅、及び基準ポート番号が格納される。基準ポート番号は、パンチパケットが送信される場合に基準となるポート番号を示す（詳細は後述する。）。
【００４２】
図６に示す例では、ＮＡＴ  ＩＤとして、通信グループＡ内にあるＮＡＴ装置のＮＡＴ  ＩＤ「３」「４」「５」が格納される（端末装置９と直接接続するＮＡＴ装置２は除かれる）。ＮＡＴ装置３（ＮＡＴ  ＩＤ：３）のＩＰアドレスは「Ｇ３」である。ポート幅は「Ｗ３」である。基準ポート番号は「Ｐb３」である。
【００４３】
図７を参照し、第三テーブルの一例である第三テーブル５４２１について説明する。第三テーブル５４２１は、通信グループＡの主端末装置として端末装置９が選択された場合において、端末装置９によって作成される第三テーブルを示している。第二テーブルには、ＮＡＴ  ＩＤ、パンチパケットの送信先として指定するＮＡＴ装置２〜８のＮＡＴ  ＩＤ（第一送信先ＩＤ、第二送信先ＩＤ）、各送信先ＩＤにて特定されるＮＡＴ装置２〜８に対してパンチパケットを送信する場合にヘッダに格納される送信先ＩＰアドレス及び送信先ポート番号が格納される。なお、第一送信先ＩＤ及び第二送信先ＩＤは、パンチパケットの送信順を示している。はじめに第一送信先ＩＤのＮＡＴ装置２〜８に対してパンチパケットが送信され、次いで第二送信先ＩＤのＮＡＴ装置２〜８に対してパンチパケットが送信される（後述）ので、第一送信先ＩＤが「送信順：１」に相当し、第二送信先ＩＤが「送信順：２」に相当する。
【００４４】
図７に示す例では、ＮＡＴ  ＩＤとして、通信グループＡ内にあるＮＡＴ装置のＮＡＴ  ＩＤ「３」「４」「５」が格納されている。ＮＡＴ  ＩＤが「３」に対応するＮＡＴ装置３の第一送信先ＩＤとして「４」（ＮＡＴ装置４）が記憶されている。ＮＡＴ装置４宛てにパンチパケットを送信する場合の送信先ＩＰアドレスは「Ｇ４」であり、送信先ポート番号は「Ｐｂ４＋Ｗ４」である。また、ＮＡＴ装置３の第二送信先ＩＤとして「５」（ＮＡＴ装置５）が記憶されている。ＮＡＴ装置５宛てにパンチパケットを送信する場合の送信先ＩＰアドレスは「Ｇ５」であり、送信先ポート番号は「Ｐｂ５＋Ｗ５」である。
【００４５】
なお図７には、第一送信先ＩＤ及び第二送信先ＩＤが格納された第三テーブル５４２１が示されているが、本発明はこの構成に限定されない。端末装置の台数に応じて、格納される送信先ＩＤの数は変化する。
【００４６】
通信制御装置１６のＣＰＵ３１において実行される通信制御処理について、図８〜１０を参照して説明する。通信制御処理は、通信制御装置１６の電源が投入された場合に、ＣＰＵ３１によって起動され実行される。
【００４７】
なおＮＡＴ装置２〜８には、通信制御装置１６と端末装置９〜１５等とが通信を行うためのポート番号が履歴情報として予め記憶されているものとする。通信制御装置１６は、ＮＡＴ装置２〜８に履歴情報として記憶されているポート番号と、ＮＡＴ装置２〜８のＩＰアドレスとを予め認識しているものとする。また通信制御装置１６は、通信グループと、通信グループ内にあるＮＡＴ装置２〜８及び端末装置９〜１５等を認識しているものとする。なおこれらの情報は第一テーブルに記憶される。例えば図３のうち、ＮＡＴ  ＩＤ、及びＩＰアドレス／ポート番号の情報が格納された状態の第一テーブル３４１１が、予め第一テーブル記憶領域３４１に記憶されていることになる。
【００４８】
通信制御処理が起動されると、はじめに、ＮＡＴ装置２〜８のＮＡＴ種別を特定する処理（ＮＡＴ種別特定処理）が実行される（Ｓ１１）。図９を参照し、ＮＡＴ種別特定処理について説明する。はじめに、端末装置９〜１５等からＮＡＴ装置２〜８を介して通信制御装置１６に対して送信される二つのパケット（「第一パケット」及び「第二パケット」という。）を受信したかが判断される（Ｓ４１）。端末装置９〜１５は、第一パケット及び第二パケットのパケットヘッダの送信先ＩＰアドレスに同一のＩＰアドレス（通信制御装置１６のＩＰアドレス）を設定し、且つパケットヘッダの送信先ポート番号に、其々異なるポート番号（通信制御装置１６のポート番号）を設定する（Ｓ１３１：図１３）。第一パケット及び第二パケットを受信していない場合（Ｓ４１：ＮＯ）、Ｓ４１に戻る。継続して第一パケット及び第二パケットの受信が監視される。
【００４９】
第一パケット及び第二パケットを受信した場合（Ｓ４１：ＹＥＳ）、受信した第一パケット及び第二パケットのヘッダに含まれている送信元ポート番号に基づいて、第一パケット及び第二パケットを転送したＮＡＴ装置（以下「対象ＮＡＴ装置」という。）におけるＷＡＮ１８，１９側のポート番号が特定される。特定されたポート番号に基づいて、対象ＮＡＴ装置のＮＡＴ種別の特定が試みられる。送信元ポート番号は、第一パケット及び第二パケットを対象ＮＡＴ装置が転送する場合に変換されるので、特定されるポート番号の態様から、対象ＮＡＴ種別が特定可能となる。
【００５０】
第一パケット及び第二パケットのヘッダに含まれている送信元ポート番号が一致するかが判断される（Ｓ４３）。送信元ポート番号が一致しない場合（Ｓ４３：ＮＯ）、対象ＮＡＴ装置は、送信先ポート番号の異なる２つのパケットをＬＡＮ２１〜２７側からＷＡＮ１８，１９側に転送する場合に、異なるポート番号を割り当てたことになる。従って、このようなポート番号の変換を行うＮＡＴ種別としてＳｙｍ  ＮＡＴが特定される（Ｓ４９）。そしてＮＡＴ種別特定処理を終了し、通信制御処理（図８参照）に戻る。
【００５１】
一方、第一パケット及び第二パケットのヘッダに含まれている送信元ポート番号が一致する場合（Ｓ４３：ＹＥＳ）、該送信元ポート番号（対象ＮＡＴ装置において第一パケット及び第二パケットが転送された場合に、対象ＮＡＴ装置に記憶されたポート番号に相当）を送信先ポート番号に設定したパケット（「第三パケット」という。）が作成される。作成された第三パケットが、対象ＮＡＴ装置を介して端末装置９〜１５等に対して送信される。第三パケットは、第一パケット及び第二パケットのヘッダに含まれていた送信先ＩＰアドレスとは異なるＩＰアドレスがヘッダの送信元ＩＰアドレスとして格納され、第一パケット及び第二パケットのヘッダに含まれていた送信先ポート番号とは異なるポート番号がヘッダの送信元ポート番号として格納され、送信される（Ｓ４５）。第三パケットに対する応答パケットの受信の有無を判断することによって、対象ＮＡＴ種別の特定が試みられる。
【００５２】
第三パケットを送信してからの経過時間を監視するために、タイマの更新がスタートされる（Ｓ４７）。次いで、第三パケットを受信した端末装置９〜１５等から返信される応答パケットを、対象ＮＡＴ装置を介して受信したかが判断される（Ｓ５１）。受信していない場合（Ｓ５１：ＮＯ）、タイマの値に基づき、第三パケットを送信してからの経過時間が所定時間以上となったかが判断される（Ｓ５３）。タイマの値が所定値未満であり、経過時間が所定時間未満である場合（Ｓ５３：ＮＯ）、Ｓ５１の処理に戻る。継続して応答パケットの受信が監視される。
【００５３】
経過時間が所定時間未満の状態で、対象ＮＡＴ装置を介して応答パケットを受信した場合（Ｓ５１：ＹＥＳ）、第一パケット及び第二パケットのヘッダに含まれていた送信先ＩＰアドレスとは異なるＩＰアドレスが送信元ＩＰアドレスとして格納された第三パケットを、対象ＮＡＴ装置がＷＡＮ１８，１９側からＬＡＮ２１〜２７側に転送していることになる。従って。このような動作を行うＮＡＴ種別としてＦＣ  ＮＡＴが特定される（Ｓ５５）。そしてＮＡＴ種別特定処理を終了し、通信制御処理（図８参照）に戻る。
【００５４】
一方、第三パケットを送信してから所定時間経過しても応答パケットを受信できない場合（Ｓ５３：ＹＥＳ）、第一パケット及び第二パケットの送信元ポート番号を送信先ポート番号に設定したパケット（「第四パケット」という。）が作成される。作成された第四パケットが、対象ＮＡＴ装置を介して端末装置９〜１５等に対して送信される。第四パケットは、第一パケット及び第二パケットのヘッダに含まれていた送信先ＩＰアドレスと同一のＩＰアドレスがヘッダの送信元ＩＰアドレスとして格納され、第一パケット及び第二パケットのヘッダに含まれていた送信先ポート番号とは異なるポート番号がヘッダの送信元ポート番号として格納され、送信される（Ｓ５７）。第四パケットに対する応答パケットの受信の有無を判断することによって、対象ＮＡＴ装置２〜８のＮＡＴ種別の特定が試みられる。
【００５５】
第四パケットを送信してからの経過時間を監視するために、タイマの更新がスタートされる（Ｓ５９）。次いで、第四パケットを受信した端末装置９〜１５等から返信される応答パケットを、対象ＮＡＴ装置を介して受信したかが判断される（Ｓ６１）。受信していない場合（Ｓ６１：ＮＯ）、タイマの値に基づき、第四パケットを送信してからの経過時間が所定時間以上となったかが判断される（Ｓ６３）。タイマの値が所定値未満であり、経過時間が所定時間未満である場合（Ｓ６３：ＮＯ）、Ｓ６１に戻る。継続して応答パケットの受信が監視される。
【００５６】
経過時間が所定時間未満の状態で、対象ＮＡＴ装置を介して応答パケットを受信した場合（Ｓ６１：ＹＥＳ）、対象ＮＡＴ装置は、第一パケット及び第二パケットのヘッダに含まれていた送信先ＩＰアドレスとは異なるＩＰアドレスが送信元ＩＰアドレスとして格納された第三パケットは、ＷＡＮ１８，１９側からＬＡＮ２１〜２７側に転送しない。しかしながら、第一パケット及び第二パケットのヘッダに含まれていた送信先ＩＰドレスと同一のＩＰアドレスが送信元ＩＰアドレスとして格納された第四パケットは、ＷＡＮ１８，１９側からＬＡＮ２１〜２７側に転送している。従って、このような動作を行うＮＡＴ種別としてＡＲＣ  ＮＡＴが特定される（Ｓ６５）。そしてＮＡＴ種別特定処理を終了し、通信制御処理（図８参照）に戻る。
【００５７】
一方、第四パケットを送信してから所定時間経過しても応答パケットを受信できない場合（Ｓ６３：ＹＥＳ）、第一パケット及び第二パケットのヘッダに含まれていた送信先ポート番号とは異なるポート番号を送信元ポート番号に設定した第三パケット及び第四パケットは、いずれも対象ＮＡＴ装置においてブロックされていることになる。従って、このような動作を行うＮＡＴ種別としてＰＲＣ  ＮＡＴが特定される（Ｓ６７）。そしてＮＡＴ種別特定処理を終了し、通信制御処理（図８参照）に戻る。
【００５８】
図８に示すように、ＮＡＴ種別特定処理（Ｓ１１）の後、特定された対象ＮＡＴ装置のＮＡＴ種別が第一テーブルに記憶される（Ｓ１３）。次いで、通信システム１内の全てのＮＡＴ装置２〜８のＮＡＴ種別が特定されたかが判断される（Ｓ１５）。ＮＡＴ種別を特定できていないＮＡＴ装置２〜８が残存する場合（Ｓ１５：ＮＯ）、Ｓ１１に戻る。そして残りのＮＡＴ装置２〜８のＮＡＴ種別を特定する為に上述の処理が繰り返される。一方、すべてのＮＡＴ装置２〜８のＮＡＴ種別が特定された場合（Ｓ１５：ＹＥＳ）、次いで、端末装置９〜１５の中から、通信グループＡ及びＢに対して主端末装置を其々選択する処理（主端末選択処理）が実行される（Ｓ１７）。
【００５９】
図１０を参照し、主端末選択処理について説明する。主端末選択処理では、ＮＡＴ装置２〜８のＮＡＴ種別に基づいて主端末装置が選択される。ＮＡＴ種別がＰＲＣ  ＮＡＴやＳｙｍ  ＮＡＴであるＮＡＴ装置の場合、受信したパケットのヘッダに含まれている送信元ポート番号に基づいて、該パケットを転送するか否かが判断される。送信元ポート番号は、ＮＡＴ装置によって変換される可能性があるので、通信グループ内の他の端末装置（以下「従端末装置」という。）から送信されたパケットが主端末装置に到達せず、主端末装置が従端末装置の通信制御を行うことができない可能性がある。これに対し、ＮＡＴ種別がＦＣ  ＮＡＴやＡＲＣ  ＮＡＴであるＮＡＴ装置の場合、受信したパケットの送信元ポート番号に依存せず、該パケットをＷＡＮ１８，１９側からＬＡＮ２１〜２７側に転送することができる。従端末装置から送信されたパケットは確実に主端末装置に到達する。従って本実施の形態では、ＮＡＴ種別がＦＣ  ＮＡＴやＡＲＣ  ＮＡＴであるＮＡＴ装置を抽出し、抽出したＮＡＴ装置の配下にある端末装置を主端末装置として選択する。これによって、存在するＮＡＴ種別に応じて最適な端末装置を主端末装置として選択することができる。
【００６０】
ＮＡＴ種別がＦＣ  ＮＡＴであるか、又はＡＲＣ  ＮＡＴであるＮＡＴ装置が、通信システム１内に存在するかが、第一テーブルのＮＡＴ種別に基づいて判断される（Ｓ７１）。いずれのＮＡＴ種別のＮＡＴ装置も通信システム１内に存在しない場合（Ｓ７１：ＮＯ）、主端末装置を特定できないので、そのまま主端末選択処理を終了して通信制御処理（図８参照）に戻る。
【００６１】
ＮＡＴ種別がＦＣ  ＮＡＴであるか、又はＡＲＣ  ＮＡＴであるＮＡＴ装置が存在する場合（Ｓ７１：ＹＥＳ）、通信グループＡ及びＢの其々に一台ずつ割り当てるＮＡＴ装置が、上述の条件に該当するＮＡＴ装置から任意で抽出される。抽出されたＮＡＴ装置の配下にある端末装置のうち一台が、任意で選択される。選択された端末装置が主端末装置とされる（Ｓ７３）。このようにして、通信グループＡの主端末装置知と、通信グループＢの主端末装置とが選択される。そしてＳ７５の処理に進む。
【００６２】
Ｓ７５の処理では、選択された主端末装置と直接接続するＮＡＴ装置（以下「主ＮＡＴ装置」という。）のＮＡＴ種別がＦＣ  ＮＡＴであるかが判断される（Ｓ７５）。ＦＣ  ＮＡＴである場合（Ｓ７５：ＹＥＳ）、主ＮＡＴ装置に記憶されたポート番号は、任意の端末装置が送信先ポート番号として使用することができる。このため、パンチパケットによる通信が不要であるとされる（Ｓ７７）。そして主端末選択処理を終了して通信制御処理（図８参照）に戻る。一方、ＦＣ  ＮＡＴでない（ＡＲＣ  ＮＡＴである）場合（Ｓ７５：ＮＯ）、主ＮＡＴ装置では、受信したパケットのヘッダに含まれている送信元ＩＰアドレスに基づいてパケット転送の可否が判断されるので、パンチパケットによる通信が必要であるとされる（Ｓ７９）。そして主端末選択処理を終了して通信制御処理（図８参照）に戻る。
【００６３】
図３の第一テーブル３４１１に基づき主端末装置が選択される場合を例示して説明する。ＮＡＴ種別がＦＣ  ＮＡＴであるか、又はＡＲＣ  ＮＡＴであるＮＡＴ装置として、ＮＡＴ装置２及びＮＡＴ装置７が該当する。通信グループＡにＮＡＴ装置２が割り当てられる。通信グループＢにＮＡＴ装置７が割り当てられる。ＮＡＴ装置２の配下にある端末装置のうち端末装置９が、通信グループＡの主端末装置として選択される（以下、主端末装置として選択された端末装置９を「主端末装置９」という。）。ＮＡＴ装置７の配下にある端末装置のうち端末装置１４が、通信グループＢの主端末装置として選択される（以下、主端末装置として選択された端末装置１４を「主端末装置１４」という。）。
【００６４】
選択された主端末装置９に接続されたＮＡＴ装置２（以下「主ＮＡＴ装置２」という。）のＮＡＴ種別はＡＲＣ  ＮＡＴである。従って、主端末装置９と従端末装置とが通信を行う場合には、パンチパケットによる通信が必要であるとされる。一方、選択された主端末装置１４の主ＮＡＴ装置のＮＡＴ種別はＦＣ  ＮＡＴである。従って、主端末装置１４と従端末装置とが通信を行う場合には、パンチパケットによる通信が不要であるとされる。
【００６５】
なお上述の例では、通信グループの主端末装置を選択する場合、対象とする通信グループに属する端末装置が選択されていた。しかしながら本発明はこの方法に限定されない。一の通信グループの主端末装置を、他の通信グループ内にある端末装置の中から選択してもよい。
【００６６】
図８に示すように、通信制御処理では、主端末選択処理（Ｓ１７）が終了した後、主端末装置として動作することを依頼する依頼通知パケットが、選択された主端末装置に対して送信される（Ｓ２１）。依頼通知パケットには、主端末装置が対象とする通信グループ内にあるＮＡＴ装置（但し、主ＮＡＴ装置を除く。以下「従ＮＡＴ装置」という。）のＩＰアドレスと、パンチパケットによる通信の要否を示す情報とが格納される。これらの情報は、主端末装置が従端末装置と通信を行うためのアドレス情報（従端末装置のアドレス情報）に相当する。
【００６７】
依頼通知パケットに格納される情報について、図１１を参照して説明する。図１１では、通信グループＡの主端末装置として選択されたことを端末装置９に対して通知する依頼通知パケットに格納される情報が示されている。依頼通知パケットには、通信グループＡ内にあるＮＡＴ装置２〜５のうち、主ＮＡＴ装置２を除くＮＡＴ装置３〜５のＩＰアドレス（ＮＡＴ装置３：Ｇ３、ＮＡＴ装置４：Ｇ４、ＮＡＴ装置５：Ｇ５）が格納される。なおこれらの情報は、図３の第一テーブル３４１１に格納された情報に基づいている。また、主ＮＡＴ装置２のＮＡＴ種別はＡＲＣ  ＮＡＴであるので、パンチパケットによる通信が必要である旨を示す情報が格納される。依頼通知パケットを受信した主端末装置９では、従ＮＡＴ装置であるＮＡＴ装置３〜５（以下「従ＮＡＴ装置３〜５」という。）に関する情報を認識できるので、従ＮＡＴ装置３〜５を介して通信グループＡ内の従端末装置である端末装置１０〜１２（以下、「従端末装置１０〜１２」という。）と通信を行うことが可能となる。
【００６８】
図８に示すように、依頼通知パケットが主端末装置に対して送信された後、依頼通知パケットに応じて主端末装置から返信される応答パケットの受信が監視される（Ｓ２３）。受信しない場合（Ｓ２３：ＮＯ）、Ｓ２３に戻り、応答パケットの受信が継続して監視される。一方、応答パケットを受信した場合（Ｓ２３：ＹＥＳ）、次いで、従端末装置に対して、主端末装置が選択されたことを通知する変更通知パケットが送信される（Ｓ２５）。変更通知パケットには、主ＮＡＴ装置のＩＰアドレスとポート番号とが格納される。これらの情報は、従端末装置が主端末装置と通信を行うためのアドレス情報（主端末装置のアドレス情報）に相当する。そして通信制御処理は終了する。
【００６９】
変更通知パケットに格納される情報について、図１２を参照して説明する。図１２では、主端末装置９が選択されたことを通知するために、通信グループＡに属する従端末装置１０〜１２に対して送信される変更通知パケットに格納される情報が示されている。変更通知パケットには、主ＮＡＴ装置２のＩＰアドレス（Ｇ２）及びポート番号（Ｐａ２）が格納される。なおこれらの情報は、図３の第一テーブル３４１１に格納された情報に基づいている。変更通知パケットを受信した従端末装置１０〜１２では、主ＮＡＴ装置２に関する情報を認識できるので、主ＮＡＴ装置２を介して主端末装置９と通信を行うことが可能となる。
【００７０】
図１３〜図１７を参照し、端末装置９〜１５のＣＰＵ５１において実行される端末装置処理について説明する。端末装置処理は、端末装置９〜１５の電源が投入された場合において、ＣＰＵ５１において起動され実行される。図１３に示すように、端末装置処理が起動されると、はじめに、通信制御装置１６に対して第一パケット及び第二パケットが送信される。第一パケット及び第二パケットは、通信制御装置１６の有するＩＰアドレスのうち共通のＩＰアドレスをパケットヘッダの送信先ＩＰアドレスに設定し、且つ、其々異なるポート番号をパケットヘッダの送信先ポート番号に設定して送信される（Ｓ１３１）。
【００７１】
通信制御装置１６から返信される第三パケット及び第四パケットを、ＮＡＴ装置２〜８を介して受信したかが判断される（Ｓ１３５）。いずれかのパケットを受信した場合（Ｓ１３５：ＹＥＳ）、ＮＡＴ装置２〜８を介して通信制御装置１６に対して応答パケットが送信される（Ｓ１３７）。そしてＳ１３５の処理に戻り、上述の処理が繰り返される。通信制御装置１６では、応答パケットの受信の有無に基づいて、パケットを転送したＮＡＴ装置のＮＡＴ種別が特定される（図９参照）。
【００７２】
いずれのパケットも受信していない場合（Ｓ１３５：ＮＯ）、第一パケット及び第二パケットを送信してから所定時間が経過したかが判断される（Ｓ１３８）。所定時間が経過していない場合（Ｓ１３８：ＮＯ）、Ｓ１３５の処理に戻り、上述の処理が繰り返される。
【００７３】
第一パケット及び第二パケットを送信してから所定時間経過した場合（Ｓ１３８：ＹＥＳ）、通信制御装置１６からＮＡＴ装置２〜８を介して依頼通知パケットを受信したかが判断される（Ｓ１３９）。受信した場合（Ｓ１３９：ＹＥＳ）、自身が主端末装置として選択されたことになる。従端末装置間の通信制御を行う通信確立処理（Ｓ１４１）が実行される。
【００７４】
図１５を参照し、通信確立処理について説明する。なお以下、端末装置９が通信グループＡの主端末装置として選択されたことを想定し、主端末装置９のＣＰＵ５１において実行される処理について説明する。通信グループＡに属する他の端末装置１０〜１２が、従端末装置１０〜１２に相当する。
【００７５】
通信確立処理では、はじめに、Ｓ１３９（図１３参照）において受信した依頼通知パケットに含まれている情報（図１１参照）に基づいて、第二テーブル記憶領域５４１に記憶されている第二テーブルが更新される（Ｓ１８１）。具体的には、依頼通知パケットに含まれているＮＡＴ  ＩＤとＩＰアドレスとが、第二テーブルに格納される。
【００７６】
例えば、図１１に示す情報が依頼通知パケットに含まれていた場合には、これらの情報のうちＮＡＴ  ＩＤ「３」「４」「５」とＩＰアドレス「Ｇ３」「Ｇ４」「Ｇ５」の情報が、第二テーブルのＮＡＴ  ＩＤ及びＩＰアドレスとして格納される。結果、第二テーブルは、図６に示す第二テーブル５４１１のうちＮＡＴ  ＩＤ及びＩＰアドレスが格納された状態になる。
【００７７】
次いで、主端末装置９が従端末装置１０〜１２と通信を行うに際し、パンチパケットによる通信が必要であるかが、依頼通知パケットに含まれている情報に基づいて判断される（Ｓ１８３）。パンチパケットによる通信が不要である旨の情報が依頼通知パケットに格納されている場合（Ｓ１８３：ＮＯ）、そのままＳ１８７の処理に進む。
【００７８】
一方、パンチパケットによる通信が必要である旨の情報が依頼通知パケットに格納されている場合（Ｓ１８３：ＹＥＳ）、主ＮＡＴ装置２、及び従ＮＡＴ装置３〜５を介して従端末装置１０〜１２に対してパンチパケットを送信し、主ＮＡＴ装置２にポート番号を記憶させる必要がある。従端末装置１０〜１２に対してパンチパケットが送信される（Ｓ１８５）。送信されたパンチパケットは、主ＮＡＴ装置２及び従ＮＡＴ装置３〜５を経由して、従端末装置１０〜１２に到達する。主ＮＡＴ装置２には、主端末装置９が従端末装置１０〜１２と通信を行うためのポート番号が記憶される。同様に、従端末装置１０〜１２から、従ＮＡＴ装置３〜５、及び主ＮＡＴ装置２を介して主端末装置９に対してパンチパケットが送信される。従ＮＡＴ装置３〜５には、従端末装置１０〜１２が主端末装置９と通信を行うためのポート番号が記憶される。これによって、主端末装置９と従端末装置１０〜１２とは、互いに通信を行うことが可能な状態となる。そしてＳ１８７の処理に進む。
【００７９】
Ｓ１８７では、依頼通知パケットに対する応答パケットが通信制御装置１６に対して送信される（Ｓ１８７）。次いで、従ＮＡＴ装置３〜５のポート幅を特定する処理（ポート幅特定処理（端末装置））が実行される（Ｓ１８９）。
【００８０】
図１６を参照し、ポート幅特定処理（端末装置）について説明する。はじめに、従端末装置１０〜１２から送信されるポート通知依頼パケットを、従ＮＡＴ装置３〜５及び主ＮＡＴ装置２を介して受信したかが判断される（Ｓ２０１）。ポート通知依頼パケットは、変更通知パケットを受信した従端末装置１０〜１２から送信される（Ｓ１４７：図１３）。ポート通知依頼パケットを受信した場合（Ｓ２０１：ＹＥＳ）、ポート通知依頼パケットを送信した従端末装置１０〜１２に対して、送信先ポート番号を複数通知する為のポート通知パケットが送信される（Ｓ２０３）。そしてＳ２０１に戻り、上述の処理が繰り返される。
【００８１】
主端末装置９から送信されるポート通知パケットの一例について、図１７を参照して説明する。ポート通知パケットには、ポート番号が複数格納されている。図１７では、通知するポート番号として「Ｐａ２＋１」「Ｐａ２＋２」「Ｐａ２＋３」「Ｐａ２＋４」が示されている。これらのポート番号は、従端末装置１０〜１２が主端末装置９に対してポート幅検出パケットを送信する場合に参照される（詳細後述）。
【００８２】
一方、ポート通知依頼パケットを受信していない場合（Ｓ２０１：ＮＯ）、従端末装置１０〜１２から送信されるポート幅検出パケットを、従ＮＡＴ装置３〜５及び主ＮＡＴ装置２を介して受信したかが判断される（Ｓ２０５）。なおポート幅検出パケットは、主端末装置９において従ＮＡＴ装置３〜５のポート幅を検出させるために、従端末装置１０〜１２から複数送信される。ポート幅検出パケットは、受信したポート通知パケットに含まれている複数のポート番号（図１７参照）をパケットヘッダの送信先ポート番号に設定して送信される（Ｓ１５３：図１４）。
【００８３】
主端末装置９においてポート幅検出パケットが受信された場合（Ｓ２０５：ＹＥＳ）、受信されたポート幅検出パケットのヘッダに含まれている送信元ポート番号（ポート幅検出パケットを従ＮＡＴ装置３〜５がＬＡＮ２２〜２４側からＷＡＮ１８側に転送した場合において、従ＮＡＴ装置３〜５に記憶されたポート番号に相当）に基づいて、従ＮＡＴ装置３〜５のポート幅が算出される（Ｓ２０７）。
【００８４】
従端末装置１０〜１２から送信されたポート幅検出パケットが、従ＮＡＴ装置３〜５において、ＬＡＮ２２〜２４側からＷＡＮ１８側に転送される場合、ポート幅ずつ加算処理が行われる。算出されたポート番号がポート幅検出パケットに割り当てられる。このため主端末装置９では、受信した一のポート幅検出パケットの送信元ポート番号を、次に受信したポート幅検出パケットの送信元ポート番号から減算する。この演算を、受信したポート幅検出パケットの数分繰り返す。このようにして算出した値をポート幅とする。
【００８５】
算出されたポート幅に基づいて、第二テーブル記憶領域５４１に記憶されている第二テーブルが更新される（Ｓ２０９）。具体的には、算出されたポート幅が、ポート幅検出パケットを転送した従ＮＡＴ装置３〜５のＮＡＴ  ＩＤに対応付けられて格納される。例えば図６に示す例では、算出されたポート幅「Ｗ３」「Ｗ４」「Ｗ５」が第二テーブル５４１１に格納されている。そしてＳ２０１に戻り、上述の処理が繰り返される。
【００８６】
一方、ポート幅検出パケットを受信していない場合（Ｓ２０５：ＮＯ）、通信グループＡ内の全ての従端末装置１０〜１２からポート幅検出パケットを受信し、すべての従ＮＡＴ装置３〜５のポート幅が特定されたかが判断される（Ｓ２１１）。ポート幅を特定できていない従ＮＡＴ装置３〜５が残存する場合（Ｓ２１１：ＮＯ）、Ｓ２０１に戻り、上述の処理が繰り返される。通信グループＡ内に属する全ての従ＮＡＴ装置３〜５のポート幅が特定された場合（Ｓ２１１：ＹＥＳ）、ポート幅特定処理（端末装置）を終了して通信確立処理（図１５参照）の処理に戻る。
【００８７】
図１５に示すように、ポート幅特定処理（端末装置）（Ｓ１８９）が終了した場合、次いで、パンチパケットの送信順を決定して第三テーブルを作成する処理（送信順決定処理）が実行される（Ｓ１９１）。
【００８８】
図１８を参照し、送信順決定処理について説明する。はじめに、主ＮＡＴ装置２及び従ＮＡＴ装置３〜５を介して従端末装置１０〜１２に対して、基準ポート通知パケットの送信を要求する基準ポート要求パケットが送信される（Ｓ１１１）。基準ポート通知パケットは、従ＮＡＴ装置３〜５の基準ポートを主端末装置９に認識させるために、従端末装置１０〜１２から送信される（Ｓ１５７：図１４）。
【００８９】
従ＮＡＴ装置３〜５及び主ＮＡＴ装置２を介して基準ポート通知パケットを受信したかが判断される（Ｓ１１３）。受信した場合（Ｓ１１３：ＹＥＳ）、受信した基準ポート通知パケットのヘッダに含まれている送信元ポート番号（基準ポート通知パケットを従ＮＡＴ装置３〜５がＬＡＮ２２〜２４側からＷＡＮ１８側に転送した場合において、従ＮＡＴ装置３〜５に記憶されたポート番号）が抽出される。抽出された送信元ポート番号が基準ポート番号とされる。得られた基準ポート番号に基づいて、第二テーブル記憶領域５４１の第二テーブルが更新される（Ｓ１１５）。そしてＳ１１３に戻り、上述の処理が繰り返される。例えば図６に示す例では、基準ポート番号「Ｐｂ３」「Ｐｂ４」「Ｐｂ５」が第二テーブル５４１１に格納されている。
【００９０】
従端末装置１０〜１２から送信される基準ポート通知パケットは、従ＮＡＴ装置３〜５を経由して主端末装置９に到達する。従ＮＡＴ装置３〜５が基準ポート通知パケットをＬＡＮ２２〜２４側からＷＡＮ１８側に転送する際、基準ポート通知パケットのヘッダに含まれている送信元ポート番号が所定の値に変換される。変換されたポート番号は、従ＮＡＴ装置３〜５に履歴情報として記憶される。主端末装置９では、受信した基準ポート通知パケットの送信元ポート番号を基準ポートとして認識している。従って主端末装置９では、この時点で従ＮＡＴ装置３〜５に記憶されているポート番号のうち最も新しいポート番号が基準ポート番号として認識されたことになる。
【００９１】
一方、基準ポート通知パケットを受信していない場合（Ｓ１１３：ＮＯ）、従端末装置１０〜１２の全てから基準ポート通知パケットを受信したかが判断される（Ｓ１１７）。基準ポート通知パケットを受信していない従端末装置１０〜１２が残存する場合（Ｓ１１７：ＮＯ）、Ｓ１１３の処理に戻り、上述の処理が繰り返される。
【００９２】
一方、従端末装置１０〜１２のすべてから基準ポート通知パケットを受信した場合（Ｓ１１７：ＹＥＳ）、この時点で第二テーブル記憶領域５４１に記憶されている第二テーブルに基づいて、第三テーブルが作成される（Ｓ１１９〜Ｓ１２１）。はじめに、送信順が決定されることによって、第三テーブルのうち第一送信先ＩＤと第二送信先ＩＤとが決定される（Ｓ１１９）。送信順は、例えばＮＡＴ  ＩＤが降順となるように決定される。なお、本発明はこの方法に限定されず、例えばＮＡＴ  ＩＤが昇順となるように決定してもよいし、従ＮＡＴ装置３〜５のＭＡＣアドレスやＩＰアドレスに基づいて送信順を決定してもよい。また、端末装置の通信履歴に基づき、直近に通信した端末装置同士が優先されるように送信順を決定してもよい。次いで、第三テーブルのうち送信先ＩＰアドレス及び送信先ポート番号が決定される（Ｓ１２１）。
【００９３】
図６に示す第二テーブル５４１１に基づいて送信順及び送信先情報が決定され、図７に示す第三テーブル５４２１が作成される場合を例示して説明する。ＮＡＴ装置３の通信相手先のＮＡＴ装置は、ＮＡＴ装置４（ＮＡＴ  ＩＤ：４）とＮＡＴ装置５（ＮＡＴ  ＩＤ：５）ということになる。送信先ＩＤはＮＡＴ  ＩＤの降順に決定されるので、送信順は、ＮＡＴ装置４：送信順１、ＮＡＴ装置５：送信順２のように決定される。この送信順に基づき、第一送信先ＩＤが「４」とされ、第二送信先ＩＤが「５」とされる。同様に、ＮＡＴ装置４の通信相手先のＮＡＴ装置は、ＮＡＴ装置３（ＮＡＴ  ＩＤ：３）とＮＡＴ装置５（ＮＡＴ  ＩＤ：５）であるので、送信順は、ＮＡＴ装置３：送信順１、ＮＡＴ装置５：送信順２のように決定される。この送信順に基づき、第一送信先ＩＤが「３」とされ、第二送信先ＩＤが「５」とされる。以上のようにして、送信順、及び、第一送信先ＩＤと第二送信先ＩＤとが決定される。
【００９４】
次いで、送信先情報が決定される。送信先ＩＰアドレスは、第二テーブル５４１１に記憶されているＩＰアドレスとされる。送信先ポート番号は、次のようにして決定される。従ＮＡＴ装置３と直接接続する従端末装置１０が、第一送信先ＩＤにて特定される従ＮＡＴ装置４と直接接続する従端末装置１１との間でパケットの送受信を行うために、従ＮＡＴ装置３に記憶させるポート番号が決定される。ポート番号は、従ＮＡＴ装置３のポート幅「Ｗ３」に送信順「１」を乗算した値を、基準ポート「Ｐｂ３」に加算した値「Ｐｂ３＋Ｗ３（＊１）」とされる。算出されたポート番号「Ｐｂ３＋Ｗ３」は、ＮＡＴ装置４がＮＡＴ装置３に対してパケットを送信する場合の送信先ポート番号とされる。このポート番号は、第三テーブルのうち、ＮＡＴ装置４に対応付けられている第一送信先ＩＤ「３」の送信先ポート番号として記憶される。
【００９５】
次いで、従ＮＡＴ装置３と直接接続する従端末装置１０が、第二送信先ＩＤにて特定されるＮＡＴ装置５と直接接続する従端末装置１２との間でパケットの送受信を行うために、従ＮＡＴ装置３に記憶させるポート番号が決定される。ポート番号は、従ＮＡＴ装置３のポート幅「Ｗ３」に送信順「２」を乗算した値を、基準ポート「Ｐｂ３」に加算した値「Ｐｂ３＋Ｗ３＊２」とされる。算出されたポート番号「Ｐｂ３＋Ｗ３＊２」は、従ＮＡＴ装置５がＮＡＴ装置３に対してパケットを送信する場合の送信先ポート番号とされる。このポート番号は、第三テーブルのうち、従ＮＡＴ装置５に対応付けられている第一送信先ＩＤ「３」の送信先ポート番号として記憶される。
【００９６】
例えば、第三テーブル５４２１のうちＮＡＴ  ＩＤ「４」には、第一送信先ＩＤとして「３」が記憶されており、第二送信先ＩＤとして「５」が記憶されている。従ＮＡＴ装置４と直接接続する従端末装置１１と、従ＮＡＴ装置３と直接接続する従端末装置１２とが通信を行うために、従ＮＡＴ装置４に記憶させるポート番号は、従ＮＡＴ装置４のポート幅「Ｗ４」に送信順「１」を乗算した値を、基準ポート「Ｐｂ４」に加算した値「Ｐｂ４＋Ｗ４」となる。算出されたポート番号「Ｐｂ４＋Ｗ４」は、送信先ポート番号（ＮＡＴ  ＩＤ：３、第一送信先ＩＤ：４に対応付けられている送信先ポート番号）に格納される。従ＮＡＴ装置４と直接接続する従端末装置１１と、従ＮＡＴ装置５と直接接続する従端末装置１２との通信を行うために記憶するポート番号は、従ＮＡＴ装置４のポート幅「Ｗ４」に送信順「２」を乗算した値を、基準ポート「Ｐｂ４」に加算した値「Ｐｂ４＋（Ｗ４＊２）」となる。算出されたポート番号「Ｐｂ４＋（Ｗ４＊２）」は、送信先ポート番号（ＮＡＴ  ＩＤ：５、第一送信先ＩＤ：４に対応付けられている送信先ポート番号）に格納される。
【００９７】
Ｓ１１９の処理によって決定された第一送信元ＩＤ及び第二送信元ＩＤと、Ｓ１２１の処理によって決定された送信先ＩＰアドレス及び送信先ポート番号とは、第三テーブル記憶領域５４２の第三テーブルに記憶される（Ｓ１２３）。そしてＳ１２５の処理に進む。Ｓ１２５の処理では、パンチパケットの送信を指示する送信指示パケットが、従端末装置１０〜１２に対して送信される（Ｓ１２５）。送信指示パケットには、Ｓ１２３において作成された第三テーブルの情報が付加される。そして送信順決定処理を終了し、通信確立処理（図１５参照）に戻る。図１５に示すように、送信順決定処理（Ｓ１９１）の後、通信確立処理を終了して端末装置処理（図１３参照）に戻る。
【００９８】
図１３に示すように、通信確立処理（Ｓ１４１）が終了した後、主端末装置９及び従端末装置１０〜１２は相互に通信可能な状態となっているので、主端末装置９及び従端末装置１０〜１２間でＰ２Ｐ通信が実行される（Ｓ１４２）。そして端末装置処理は終了する。
【００９９】
以上のように、通信制御装置１６は、通信グループ毎に主端末装置を選択する。主端末装置に対して、従端末装置間で実行されるパンチパケット通信の制御を依頼する。パンチパケット通信の制御が主端末装置によって実行されることになるので、通信制御時の通信負荷が通信制御装置１６に集中してしまうことを防止できる。
【０１００】
図１３に示すように、通信制御装置１６から依頼通知パケットを受信しておらず、主端末装置として選択されていない場合（Ｓ１３９：ＮＯ）、通信制御装置１６からＮＡＴ装置２〜８を介して変更通知パケットを受信したかが判断される（Ｓ１４３）。受信していない場合（Ｓ１４３：ＮＯ）、Ｓ１５１（図１４参照）の処理に進む。
【０１０１】
一方、通信制御装置１６から変更通知パケットを受信した場合（Ｓ１４３：ＹＥＳ）他の端末装置が主端末装置として選択されたということになるので、従端末装置としての処理が実行される。以下、端末装置１０が変更通知パケットを受信したことを想定し、端末装置１０のＣＰＵ５１において実行される端末装置処理について説明する。端末装置９が主端末装置として選択されているものとする。
【０１０２】
選択された主端末装置９に関する情報は、変更通知パケットに含まれている情報（図１２参照）に基づいて認識できる。変更通知パケットに含まれている情報（主ＮＡＴ装置２のＮＡＴ  ＩＤ、ＩＰアドレス、ポート番号）が、主端末装置９に関するアドレス情報としてＨＤＤ５４のその他の情報記憶領域５４４に記憶される（Ｓ１４５）。以後、主端末装置９との通信は、記憶されたアドレス情報に基づいて実行される。次いで、ポート幅検出パケットの送信先とするポート番号を主端末装置９に対して問い合わせるポート通知依頼パケットが、従ＮＡＴ装置３及び主ＮＡＴ装置２を介して主端末装置９に対して送信される（Ｓ１４７）。そしてＳ１３５の処理に戻る。なお主端末装置９では、ポート幅検出パケットに応じてポート通知パケットが返信される（Ｓ２０３：図１６）。
【０１０３】
上述の処理が繰り返される中で、図１４に示すように、主端末装置９から送信されるポート通知パケットを、主ＮＡＴ装置２及び従ＮＡＴ装置３を介して受信したかが判断される（Ｓ１５１）。受信していない場合（Ｓ１５１：ＮＯ）、Ｓ１５５の処理に進む。一方、ポート通知パケットを受信した場合（Ｓ１５１：ＹＥＳ）、ポート通知パケットに含まれている複数のポート番号（図１７参照）が参照される。これらのポート番号をパケットヘッダの送信先ポート番号に設定し、従ＮＡＴ装置３及び主ＮＡＴ装置２を介して主端末装置９に対してポート幅検出パケットが複数送信される（Ｓ１５３）。そしてＳ１３５（図１３参照）の処理に戻る。なお、送信されたポート幅検出パケットに基づき、主端末装置９において従ＮＡＴ装置３のポート幅が特定される（Ｓ２０７：図１６）。
【０１０４】
上述の処理が繰り返される中で、主端末装置９から送信された基準ポート要求パケットを、主ＮＡＴ装置２及び従ＮＡＴ装置３を介して受信したかが判断される（Ｓ１５５）。受信していない場合（Ｓ１５５：ＮＯ）、Ｓ１６９の処理に進む。一方、基準ポート要求パケットを受信した場合（Ｓ１５５：ＹＥＳ）、従ＮＡＴ装置３の基準ポート番号を認識させるための基準ポート通知パケットが、従ＮＡＴ装置３及び主ＮＡＴ装置２を介して主端末装置９に対して送信される（Ｓ１５７）。そしてＳ１３５（図１３参照）の処理に戻る。なお、送信された基準ポート番号通知パケットに基づき、主端末装置９において従ＮＡＴ装置３の基準ポートが特定される（Ｓ１１５：図１８）。
【０１０５】
上述の処理が繰り返される中で、主端末装置９から送信された送信指示パケットを、主ＮＡＴ装置２及び従ＮＡＴ装置３を介して受信したかが判断される（Ｓ１６９）。受信していない場合（Ｓ１６９：ＮＯ）、Ｓ１３５（図１３参照）の処理に戻る。送信指示パケットを受信した場合（Ｓ１６９：ＹＥＳ）、送信指示パケットに付加されている第三テーブルの情報がＲＡＭ５３に記憶される（記憶された情報を「送信先情報」という。）。記憶された送信先情報に基づいて、パンチパケットが送信される（Ｓ１７１）。パンチパケットは、第一送信先ＩＤ→第二送信先ＩＤの順で、其々の送信先ＩＰアドレス及び送信先ポート番号をヘッダの送信先に対して送信される。
【０１０６】
なお、従端末装置１０がパンチパケットを送信する場合、パンチパケットのＴＴＬ（Ｔｉｍｅ  ｔｏ  Ｌｉｖe）には小さい値が設定される。これによってパンチパケットは、ＷＡＮ１８内で中継転送が繰り返される中でＴＴＬが０となり、破棄される。
【０１０７】
従ＮＡＴ装置３が従端末装置１０から送信されたパンチパケットを転送する際、送信元ポート番号が変換される。変換後のポート番号が、履歴情報として従ＮＡＴ装置３に記憶される。記憶されたポート番号は、従端末装置１０が通信グループＡ内の他の従端末装置１１，１２に対してパケットを送信する場合にヘッダに設定される送信先ポート番号として使用される。
【０１０８】
パンチパケットによる通信が行われた後、主端末装置９及び従端末装置１０〜１２間で相互に通信を行うことが可能な状態となっているので、主端末装置９及び従端末装置１０〜１２間でＰ２Ｐ通信が実行される（Ｓ１７３）。そして端末装置処理は終了する。
【０１０９】
従端末装置１０〜１２が、図７の第三テーブル５４２１の情報に基づいてパンチパケットを送信する場合の様子について、図１９を参照して説明する。図のうち１０１は、従端末装置１０のＲＡＭ５３に記憶された送信先情報を示している。１０２は、従端末装置１１のＲＡＭ５３に記憶された送信先情報を示している。１０３は、従端末装置１２のＲＡＭ５３に記憶された送信先情報を示している。
【０１１０】
図１９に示すように、従端末装置１０では、送信先情報１０１に基づいてパンチパケットが送信される。はじめに、送信先情報１０１のうち第一送信先ＩＤの情報が参照される。パンチパケットのヘッダに含まれる送信先ＩＰアドレスとして「Ｇ４」が設定され、送信先ポート番号として「Ｐｂ４＋Ｗ４」が設定される。このようにして作成されたパンチパケットが、従ＮＡＴ装置３を介して送信される（１１１）。
【０１１１】
従ＮＡＴ装置３では、受信したパンチパケットのヘッダに含まれている送信元ポート番号を、所定のポート番号に変換する。また、変換後のポート番号を履歴情報として記憶する。ここで変換後のポート番号は、現時点で従ＮＡＴ装置３の履歴情報に記憶されているポート番号のうち最も新しいポート番号にポート幅「Ｗ３」だけ加算された値とされる。最も新しいポート番号は、基準ポート通知パケットを介して主端末装置９に通知した基準ポート「Ｐｂ３」に相当する。従って従ＮＡＴ装置３では、ポート番号「Ｐｂ３＋Ｗ３」が履歴情報として記憶される（１１１）。
【０１１２】
続いて従端末装置１０では、送信先情報１０１のうち第二送信先ＩＤの情報が参照される。パンチパケットのヘッダに含まれる送信先ＩＰアドレスとして「Ｇ５」が設定され、送信先ポート番号として「Ｐｂ５＋Ｗ５」が設定される。このようにして作成されたパンチパケットが、従ＮＡＴ装置３を介して送信される（１１２）。
【０１１３】
従ＮＡＴ装置３は、パンチパケットの送信元ポート番号を、現時点でＮＡＴ装置３に記憶されているポート番号のうち最も新しい「Ｐｂ３＋Ｗ３」にさらに「Ｗ３」だけ加算したポート番号「Ｐｂ３＋（Ｗ３＊２）」に変換する。変換したポート番号「Ｐｂ３＋（Ｗ３＊２）」は、従ＮＡＴ装置３に履歴情報として記憶される。結果、従ＮＡＴ装置３には、履歴情報として「Ｐｂ３＋Ｗ３」「Ｐｂ３＋（Ｗ３＊２）」が少なくとも記憶された状態となる。
【０１１４】
なお、送信されたパンチパケットは、ＷＡＮ１８内で破棄されるので、相手先の端末装置（及びＮＡＴ装置）に到達しない。
【０１１５】
同様に従端末装置１１では、送信先情報１０２に基づいてパンチパケットが送信される（１１３，１１４）。従ＮＡＴ装置４では、基準ポート「Ｐｂ４」に「Ｗ４」だけ加算したポート番号「Ｐｂ４＋Ｗ４」と、「Ｐｂ４＋Ｗ４」にさらに「Ｗ４」だけ加算したポート番号「Ｐｂ４＋（Ｗ４＊２）」とが、履歴情報として記憶される。従端末装置１２では、送信先情報１０３に基づいてパンチパケットが送信される（１１５，１１６）。従ＮＡＴ装置５では、「Ｐｂ５＋Ｗ５」と「Ｐｂ５＋（Ｗ５＊２）」とが履歴情報として記憶される。
【０１１６】
図２０を参照して、従端末装置１０〜１２間でＰ２Ｐ通信が行われる場合の様子について説明する。図１９に示すパンチパケット通信を行うことによって、従端末装置１０〜１２は、送信先情報１０１〜１０３に基づいて他の端末装置と互いにＰ２Ｐ通信を行うことが可能となる。従端末装置１０が従端末装置１１とＰ２Ｐ通信を行う場合、送信先情報１０１に基づき、パケットのヘッダに含まれる送信先ＩＰアドレスを「Ｇ４」に設定し、送信先ポート番号を「Ｐｂ４＋Ｗ４」に設定する。このパケットは、従ＮＡＴ装置３を介して従ＮＡＴ装置４に到達する。従ＮＡＴ装置４には、上述のパンチパケット通信によって、履歴情報として「Ｐｂ４＋Ｗ４」が記憶されている。従ＮＡＴ装置４は、従端末装置１０から受信したパケットを従端末装置１１に対して転送する（１２１）。
【０１１７】
また例えば、従端末装置１２が従端末装置１０とＰ２Ｐ通信を行う場合、送信先情報１０３に基づき、パケットのヘッダに含まれる送信先ＩＰアドレスを「Ｇ３」に設定し、送信先ポート番号を「Ｐｂ３＋（Ｗ３＊２）」に設定する。このパケットは、従ＮＡＴ装置５を介して従ＮＡＴ装置３に到達する。従ＮＡＴ装置３には、上述のパンチパケット通信によって、履歴情報として「Ｐｂ３＋（Ｗ３＊２）」が記憶されている。従ＮＡＴ装置３は、従端末装置１２から受信したパケットを従端末装置１０に対して転送する（１２２）。
【０１１８】
このように端末装置１０〜１２は、パンチパケット通信によって従ＮＡＴ装置３〜５に履歴情報として記憶させたポート番号宛てにパケットを送信することができる。これによって、従端末装置１０〜１２間でＰ２Ｐ通信を行うことが可能となる。なお、主端末装置９は、通信確立処理（図１５参照）によって既に従端末装置１０〜１２と通信可能な状態となっている。従って、以上の通信を経ることによって、通信グループＡ内にある端末装置９〜１２間でＰ２Ｐ通信を行うことが可能となる。
【０１１９】
以上説明したように、通信制御装置１６によって選択された主端末装置９が、従端末装置１０〜１２間で行われるパンチパケット通信を制御するので、通信制御装置１６におけるパンチパケット通信の制御が不要となる。これによって、通信制御装置１６に通信負荷が集中してしまうことを防止できる。通信制御装置１６は、Ｐ２Ｐ通信を開始させるために必要な端末装置間の通信を極力抑制できるように、ＮＡＴ種別に応じて最適な端末装置を主端末装置として選択することができる。
【０１２０】
主端末装置９は、送信順と基準ポートとポート幅とに基づいて送信先ポート番号を決定し、ＩＰアドレスとともに従端末装置１０〜１２に通知する。従端末装置１０〜１２では、通知されたＩＰアドレスと送信先ポート番号とに基づいてパンチパケットを送信する。従端末装置１０〜１２間でＰ２Ｐ通信を行うために必要なポート番号のみ従ＮＡＴ装置３〜５に記憶させることができる。このため、従ＮＡＴ装置３〜５に記憶される不要なポート番号宛てに不特定多数のユーザがアクセスすることを防止できるので、ＮＡＴ装置のセキュリティ機能が弱まってしまうことを防止できる。
【０１２１】
主端末装置９では、ポート幅に送信順を乗算した値を基準ポートに加算することによって送信先ポート番号が決定されるので、簡易な方法で送信先ポート番号を決定することができる。また送信先ポート番号は、従端末装置１０〜１２毎に一意的に決定されるので、ＮＡＴ装置３〜５に記憶されるポート番号を最小限に抑えつつ、端末装置間で確実に通信を行うことができる。
【０１２２】
なお、図９の処理を行うＣＰＵ３１が本発明の「種別特定手段」に相当する。図１０のＳ７１の処理を行うＣＰＵ３１が本発明の「種別判断手段」に相当し、Ｓ７３の処理を行うＣＰＵ３１が本発明の「主端末選択手段」に相当する。図８のＳ２１の処理を行うＣＰＵ３１が本発明の「第一送信手段」に相当し、Ｓ２５の処理を行うＣＰＵ３１が本発明の「第二送信手段」に相当する。図１３のＳ１３９及びＳ１４３の処理を行うＣＰＵ５１が本発明の「第一受信手段」に相当し、Ｓ１４１の処理を行うＣＰＵ５１が本発明の「通信制御手段」に相当し、図１３のＳ１４２、及び図１４のＳ１７３の処理を行うＣＰＵ５１が本発明の「通信手段」に相当する。図８のＳ２１において、図１１に示す情報とともに送信されるパケットが、本発明の「第一通知信号」に相当する。図８のＳ２５において、図１２に示す情報とともに送信されるパケットが、本発明の「第二通知信号」に相当する。
【０１２３】
図１６のＳ２０７、及び図１８のＳ１１５の処理を行うＣＰＵ５１が本発明の「取得手段」に相当する。図１８のＳ１２１の処理を行うＣＰＵ５１が本発明の「送信先決定手段」に相当し、Ｓ１２５の処理を行うＣＰＵ５１が本発明の「第三送信手段」に相当する。図１４のＳ１６９の処理を行うＣＰＵ５１が本発明の「第二受信手段」に相当し、Ｓ１７１の処理を行うＣＰＵ５１が本発明の「第四送信手段」に相当する。
【０１２４】
なお、本発明は上記実施の形態に限定されるものではなく、種々の変更が可能である。以下、本実施の形態の変形例について説明する。
＜第一の変形例＞
【０１２５】
本発明の第一の変形例について説明する。第一の変形例では、通信システム１内に主端末装置の候補となる端末装置が存在しない場合に、通信制御装置１６が端末装置間の通信制御を行う。これによって、主端末装置が選択できない場合であっても、端末装置間でのＰ２Ｐ通信が可能となる。
【０１２６】
なお第一の変形例では、上述した第二テーブル及び第三テーブルが、通信制御装置１６のＨＤＤ３４のその他の情報記憶領域３４３に記憶される。通信制御装置１６では、第一テーブル記憶領域３４１に記憶されている第一テーブル等の情報に基づいて、第二テーブル及び第三テーブルが作成される。
【０１２７】
図２１及び図２２を参照し、第一の変形例における通信制御処理について説明する。通信制御処理は、通信制御装置１６の電源が投入された場合に、ＣＰＵ３１において起動され実行される。なお、上述の実施の形態と同様の処理部分については、説明を簡略化している。
【０１２８】
通信制御処理が開始されると、はじめにＮＡＴ種別特定処理が実行される（Ｓ１１）。ＮＡＴ種別特定処理では、通信システム１内にあるＮＡＴ装置２〜８のＮＡＴ種別が特定される（図９参照）。ＮＡＴ種別特定処理の後、特定されたＮＡＴ種別が第一テーブルに記憶される（Ｓ１３）。次いで、通信システム１内の全てのＮＡＴ装置２〜８のＮＡＴ種別が特定されたかが判断される（Ｓ１５）。すべてのＮＡＴ装置２〜８のＮＡＴ種別が特定された場合（Ｓ１５：ＹＥＳ）、次いで、端末装置９〜１５の中から、通信グループＡ及びＢの主端末装置を其々選択する主端末選択処理が実行される（Ｓ１７）。
【０１２９】
主端末選択処理（Ｓ１７）の後、主端末装置が通信システム１内から選択できたかが判断される（Ｓ２１１）。ＮＡＴ種別がＦＣ  ＮＡＴであるか、又はＡＲＣ  ＮＡＴであるＮＡＴ装置が通信システム１内に存在する場合、このＮＡＴ装置と直接接続する端末装置のうち一台が主端末装置として選択できる。主端末装置が選択できた場合（Ｓ２１１：ＹＥＳ）、選択された主端末装置に対して依頼通知パケットが送信され（Ｓ２１）、従端末装置間の通信制御が依頼される。依頼通知パケットに対する応答パケットを受信した場合（Ｓ２３：ＹＥＳ）、従端末装置に対して変更通知パケットが送信される（Ｓ２５）。そして通信制御処理を終了する。
【０１３０】
一方、ＮＡＴ種別がＦＣ  ＮＡＴであるＮＡＴ装置、及びＡＲＣ  ＮＡＴであるＮＡＴ装置のいずれも通信システム１内に存在せず、主端末装置を選択できなかった場合（Ｓ２１１：ＮＯ）、通信制御装置１６自身によって端末装置９〜１５間の通信制御が実行される。はじめに、ＮＡＴ装置２〜８のポート幅を特定するポート幅特定処理（制御装置）が実行される（Ｓ２１３）。
【０１３１】
図２２を参照し、ポート幅特定処理（制御装置）について説明する。はじめに、ＮＡＴ装置２〜８を介して通信システム１内にある端末装置９〜１５に対して、送信先ポート番号を複数通知する為のポート通知パケットが送信される（Ｓ９１）。次いで、ポート通知パケットを受信した端末装置９〜１５から送信されるポート幅検出パケットを、ＮＡＴ装置２〜８を介して受信したかが判断される（Ｓ９３）。ポート幅検出パケットが受信された場合（Ｓ９３：ＹＥＳ）、受信されたポート幅検出パケットのヘッダに含まれている送信元ポート番号に基づいて、ＮＡＴ装置２〜８のポート幅が算出される（Ｓ９５）。算出されたポート幅に基づいて、その他の情報記憶領域３４３に記憶された第二テーブルが更新される（Ｓ９７）。そしてＳ９３に戻り、上述の処理が繰り返される。
【０１３２】
一方、ポート幅検出パケットを受信していない場合（Ｓ９３：ＮＯ）、全ての端末装置９〜１５からポート幅検出パケットを受信し、すべてのＮＡＴ装置２〜８のポート幅が特定されたかが判断される（Ｓ９９）。ポート幅を特定できていないＮＡＴ装置２〜８が残存する場合（Ｓ９９：ＮＯ）、Ｓ９３に戻り、上述の処理が繰り返される。全ての従ＮＡＴ装置２〜８のポート幅が特定された場合（Ｓ９９：ＹＥＳ）、ポート幅特定処理（制御装置）を終了して通信制御処理（図２１参照）の処理に戻る。
【０１３３】
図２１に示すように、ポート幅特定処理（制御装置）（Ｓ２１３）が終了した後、パンチパケットの送信順を決定して第三テーブルを作成する処理（送信順決定処理）が実行される（Ｓ２１５）。
【０１３４】
送信順決定処理では、図１８に示すように、はじめに端末装置９〜１５に対して基準ポート要求パケットが送信される（Ｓ１１１）。次いで、基準ポート通知パケットを受信したかが判断される（Ｓ１１３）。受信した場合（Ｓ１１３：ＹＥＳ）、受信した基準ポート通知パケットの送信元ポート番号が基準ポート番号として第二テーブルに記憶される（Ｓ１１５）。端末装置９〜１５のすべてから基準ポート通知パケットを受信した場合（Ｓ１１７：ＹＥＳ）、第二テーブルに基づいて、第三テーブルが作成される（Ｓ１１９〜Ｓ１２１）。パンチパケットの送信を指示する送信指示パケットが、端末装置９〜１５に対して送信される（Ｓ１２５）。送信指示パケットには、Ｓ１２３において作成された第三テーブルの情報が付加される。そして送信順決定処理を終了する。
【０１３５】
以上説明したように、第一の変形例では、所定のＮＡＴ種別であるＮＡＴ装置が通信システム１内に存在せず、主端末装置が選択できない場合であっても、通信制御装置１６が端末装置９〜１５間のパンチパケット通信制御を行う。これによって、主端末装置が選択されない場合であっても、端末装置９〜１５間でＰ２Ｐ通信を行うことが可能となる。
＜第二の変形例＞
【０１３６】
本発明の第二の変形例について説明する。第二の変形例では、通信グループの主端末装置が選択される場合、同一の通信グループ内にある端末装置が優先して主端末装置として選択される。同一ＷＡＮ内にある端末装置のうち一台が主端末装置として選択される。
【０１３７】
図２３を参照し、第二の変形例における主端末選択処理について説明する。主端末選択処理は、通信制御装置１６のＣＰＵ３１において実行される通信制御装置から呼び出される。なお、上述の実施の形態と同様の処理部分については、説明を簡略化している。
【０１３８】
通信制御処理（図８参照）において主端末選択処理（Ｓ１７）が呼び出されると、はじめに、第一テーブルに記憶されたＮＡＴ種別に基づき、ＮＡＴ種別がＦＣ  ＮＡＴであるか、又はＡＲＣ  ＮＡＴであるＮＡＴ装置が通信システム１内に存在するかが判断される（Ｓ２２１）。いずれのＮＡＴ種別のＮＡＴ装置も通信システム１内に存在しない場合（Ｓ２２１：ＮＯ）、そのまま主端末選択処理を終了して通信制御処理（図８参照）に戻る。
【０１３９】
ＮＡＴ種別がＦＣ  ＮＡＴであるか、又はＡＲＣ  ＮＡＴであるＮＡＴ装置が存在する場合（Ｓ２２１：ＹＥＳ）、通信グループＡ及び通信グループＢ内に、上述の条件に該当するＮＡＴ装置が存在するかが判断される（Ｓ２２３）。存在する場合（Ｓ２２３：ＹＥＳ）、該当するＮＡＴ装置のうち通信グループＡ内にあるＮＡＴ装置のうち一台が任意で抽出される。抽出されたＮＡＴ装置と直接接続する端末装置のうち一台が、通信グループＡの主端末装置として選択される。同様に、上述の条件に該当するＮＡＴ装置のうち通信グループＢ内にあるＮＡＴ装置のうち一台が任意で抽出される。抽出されたＮＡＴ装置と直接接続する端末装置のうち一台が、通信グループＢの主端末装置として選択される（Ｓ２５５）。そしてＳ２２９の処理に進む。
【０１４０】
一方、上述の条件に該当するＮＡＴ装置が通信グループ内に含まれていない場合（Ｓ２２３：ＮＯ）、通信グループ外にあるＮＡＴ装置から、上述の条件を満たすＮＡＴ装置が抽出される。抽出されたＮＡＴ装置と直接接続する端末装置のうち一台が、主端末装置として選択される（Ｓ２２７）。そしてＳ２２９の処理に進む。
【０１４１】
Ｓ２２９の処理では、主ＮＡＴ装置のＮＡＴ種別がＦＣ  ＮＡＴであるかが判断される（Ｓ２２９）。ＦＣ  ＮＡＴである場合（Ｓ２２９：ＹＥＳ）、パンチパケットによる通信が不要であるとされる（Ｓ２３１）。そして主端末選択処理を終了して通信制御処理（図８参照）に戻る。一方、主ＮＡＴ装置のＮＡＴ種別がＦＣ  ＮＡＴでない場合（Ｓ２２９：ＮＯ）、パンチパケットによる通信が必要であるとされる（Ｓ２３３）。そして主端末選択処理を終了して通信制御処理（図８参照）に戻る。
【０１４２】
以上説明したように、第二の変形例では、通信グループの主端末装置を選択する場合、同一通信グループ内にある端末装置が優先して選択される。これによって、他の通信グループに属する端末装置が主端末装置として選択されてしまって、該主端末装置に通信負荷がかかってしまうことを防止できる。また、通信グループ内の端末装置のみで通信制御のための通信が行われるので、セキュリティを向上させることができる。
＜第三の変形例＞
【０１４３】
本発明の第三の変形例について説明する。第三の変形例では、ＮＡＴ種別がＦＣ  ＮＡＴであるＮＡＴ装置と直接接続する端末装置が、優先して主端末装置として選択される。これによって、主端末装置と従端末装置との間で実行されるパンチパケット通信が不要となるので、ネットワークの通信トラフィックを抑制できる。図２４を参照し、第三の変形例における主端末選択処理について説明する。
【０１４４】
通信制御処理（図８参照）から主端末選択処理（Ｓ１７）が呼び出されると、はじめに、第一テーブルに記憶されたＮＡＴ種別に基づき、ＮＡＴ種別がＦＣ  ＮＡＴであるＮＡＴ装置が通信システム１内に存在するかが判断される（Ｓ２３０）。存在する場合（Ｓ２３０：ＹＥＳ）、通信グループＡ及びＢの其々に対して一台ずつ割り当てるＮＡＴ装置が、ＦＣ  ＮＡＴのＮＡＴ装置の中から任意で抽出される。抽出されたＮＡＴ装置と直接接続する端末装置のうち一台が、主端末装置として選択される（Ｓ２３２）。そしてＳ２３９の処理に進む。
【０１４５】
一方、ＮＡＴ種別がＦＣ  ＮＡＴであるＮＡＴ装置が存在しない場合（Ｓ２３０：ＮＯ）、次いで、ＮＡＴ種別がＡＲＣ  ＮＡＴであるＮＡＴ装置が通信システム１内に存在するかが判断される（Ｓ２３５）。存在する場合（Ｓ２３５：ＹＥＳ）、通信グループＡ及びＢの其々に一台ずつ割り当てらるＮＡＴ装置が、ＡＲＣ  ＮＡＴのＮＡＴ装置の中から任意で抽出される。抽出されたＮＡＴ装置と直接接続する端末装置のうち一台が、主端末装置として選択される（Ｓ２３７）。そしてＳ２３９の処理に進む。これに対し、ＮＡＴ種別がＡＲＣ  ＮＡＴであるＮＡＴ装置が通信システム１内に存在しない場合（Ｓ２３５：ＮＯ）、そのまま主端末選択処理を終了して通信制御処理（図８参照）に戻る。
【０１４６】
Ｓ２３９の処理では、主ＮＡＴ装置のＮＡＴ種別がＦＣ  ＮＡＴであるかが判断される（Ｓ２３９）。ＦＣ  ＮＡＴである場合（Ｓ２３９：ＹＥＳ）、パンチパケットによる通信が不要であるとされる（Ｓ２４１）。そして主端末選択処理を終了して通信制御処理（図８参照）に戻る。一方、ＦＣ  ＮＡＴでない場合（Ｓ２３９：ＮＯ）、パンチパケットによる通信が必要であるとされる（Ｓ２４３）。そして主端末選択処理を終了して通信制御処理（図８参照）に戻る。
【０１４７】
以上説明したように、第三の変形例では、ＮＡＴ種別がＦＣ  ＮＡＴであるＮＡＴ装置と直接接続する端末装置が、優先して主端末装置として選択される。ＮＡＴ種別がＦＣ  ＮＡＴである場合、主端末装置と従端末装置との間でパンチパケットによる通信を行わなくても、主端末装置と従端末装置とはＰ２Ｐ通信を行うことができる。このため、パンチパケットによる通信が不要となるので、パンチパケット通信によってネットワークのトラフィックが増大することを抑制できる。
＜第四の変形例＞
【０１４８】
本発明の第四の変形例について説明する。第四の変形例では、ＮＡＴ種別がＦＣ  ＮＡＴであるか、又はＡＲＣ  ＮＡＴであるＮＡＴ装置が通信システム１内に存在しない場合であっても、所定の条件を満たす場合に、主端末装置を選択することが可能となる。図２５を参照し、第四の実施の形態における主端末選択処理について説明する。
【０１４９】
通信制御処理から主端末選択処理が呼び出されると、はじめに、第一テーブルに記憶されたＮＡＴ種別に基づき、ＮＡＴ種別がＦＣ  ＮＡＴであるか、又はＡＲＣ  ＮＡＴであるＮＡＴ装置が通信システム１内に存在するかが判断される（Ｓ２５１）。存在する場合（Ｓ２５１：ＹＥＳ）、通信グループＡ及びＢの其々に対して一台ずつ割り当てるＮＡＴ装置が、上述の条件を満たすＮＡＴ装置から任意で抽出される。抽出されたＮＡＴ装置と直接接続する端末装置のうち一台が、主端末装置として選択される（Ｓ２５３）。そしてＳ２５９の処理に進む。
【０１５０】
Ｓ２５９の処理では、上述において抽出されたＮＡＴ装置のＮＡＴ種別がＦＣ  ＮＡＴであるかが判断される（Ｓ２５９）。ＦＣ  ＮＡＴである場合（Ｓ２５９：ＹＥＳ）、パンチパケットによる通信が不要であるとされる（Ｓ２６１）。そして主端末選択処理を終了して通信制御処理（図８参照）に戻る。一方、ＦＣ  ＮＡＴでない場合（Ｓ２５９：ＮＯ）、パンチパケットによる通信が必要であるとされる（Ｓ２６３）。そして主端末選択処理を終了して通信制御処理（図８参照）に戻る。
【０１５１】
一方、上述の条件を満たすＮＡＴ装置が通信システム１内に存在しない場合（Ｓ２５１：ＮＯ）、通信グループ内のＮＡＴ装置のＮＡＴ種別がすべてＰＲＣ  ＮＡＴであるかが判断される（Ｓ２５５）。Ｓｙｍ  ＮＡＴであるＮＡＴ装置が含まれている場合には（Ｓ２５５：ＮＯ）、そのまま主端末選択処理を終了して通信制御処理（図８参照）に戻る。
【０１５２】
通信グループ内のＮＡＴ装置のＮＡＴ種別が全てＰＲＣ  ＮＡＴである場合（Ｓ２５５：ＹＥＳ）、通信グループＡ及びＢの其々に対して一台ずつ割り当てるＮＡＴ装置が、ＮＡＴ種別がＰＲＣ  ＮＡＴであるＮＡＴ装置の中から任意で抽出される。抽出されたＮＡＴ装置と直接接続する端末装置のうち一台が、主端末装置として選択される（Ｓ２５７）。そして、パンチパケットによる通信が必要と特定され（Ｓ２６３）、主端末選択処理を終了して通信制御処理（図８参照）に戻る。
【０１５３】
主端末選択処理が終了した後、通信制御処理（図８参照）において、選択された主端末装置に対して依頼通知パケットが送信される（Ｓ２１）。ここで上述のように、ＮＡＴ種別がＰＲＣ  ＮＡＴであるＮＡＴ装置に基づいて主端末装置が選択された場合には、従ＮＡＴ装置のＮＡＴ  ＩＤ及びＩＰアドレスと共に、従ＮＡＴ装置のポート番号の情報が依頼通知パケットに格納される。図２６を参照し、格納される情報について説明する。図２６に示すように、ＮＡＴ  ＩＤ（「２」「３」「４」）、ＩＰアドレス（「Ｇ２」「Ｇ３」「Ｇ４」）、ポート番号（「Ｐａ２」「Ｐａ３」「Ｐａ４」）、及びパンチパケット通信の要否（「必要」）の情報が、依頼通知パケットに格納される。
【０１５４】
主端末装置から従端末装置宛てにパンチパケット（主→従）が送信される。パンチパケット（主→従）は、依頼通知パケットによって通知されたポート番号を送信先ポート番号に設定して送信される。次いで、従端末装置から主端末装置に対してパンチパケット（従→主）が送信される。パンチパケット（従→主）は、依頼通知パケットによって通知されたポート番号を送信元ポート番号に設定して送信される。主ＮＡＴ装置がこのパンチパケット（従→主）を受信する。ここで、主ＮＡＴ装置が受信したパンチパケット（従→主）のポート番号と、自身が従端末装置に対して転送したパンチパケット（主→従）のポート番号とは一致する。このため主ＮＡＴ装置は、受信したパンチパケットを主端末装置に対して転送する。これによって、主端末装置と従端末装置との間で通信を行うことが可能となる。
【０１５５】
以上説明したように、第四の変形例では、同一通信グループ内にあるＮＡＴ種別が全てＰＲＣ  ＮＡＴである場合に、このＮＡＴ装置と直接接続する端末装置のうち一台が主端末装置として選択される。通信制御装置は、依頼通知パケットに従ＮＡＴ装置のポート番号を格納して主端末装置に送信する。主端末装置では、受信した依頼通知パケットに格納されているポート番号を参照して、従端末装置との間でパンチパケット通信を行う。これによって、送信元ポート番号によってパケット転送の制約を受けるＰＲＣ  ＮＡＴのＮＡＴ装置のみ存在する場合であっても、主端末装置を選択して従端末装置間の通信制御を実行させることが可能となる。
【符号の説明】
【０１５６】
１      通信システム
２，３，４，５，６，７，８  ＮＡＴ装置
９，１０，１１，１２，１３，１４，１５  端末装置
３１  ＣＰＵ
５１  ＣＰＵ
【図１】
2011077921.tif 000003
【図２】
2011077921.tif 000004
【図３】
2011077921.tif 000005
【図４】
2011077921.tif 000006
【図５】
2011077921.tif 000007
【図６】
2011077921.tif 000008
【図７】
2011077921.tif 000009
【図８】
2011077921.tif 000010
【図９】
2011077921.tif 000011
【図１０】
2011077921.tif 000012
【図１１】
2011077921.tif 000013
【図１２】
2011077921.tif 000014
【図１３】
2011077921.tif 000015
【図１４】
2011077921.tif 000016
【図１５】
2011077921.tif 000017
【図１６】
2011077921.tif 000018
【図１７】
2011077921.tif 000019
【図１８】
2011077921.tif 000020
【図１９】
2011077921.tif 000021
【図２０】
2011077921.tif 000022
【図２１】
2011077921.tif 000023
【図２２】
2011077921.tif 000024
【図２３】
2011077921.tif 000025
【図２４】
2011077921.tif 000026
【図２５】
2011077921.tif 000027
【図２６】
2011077921.tif 000028