JP2011061562A - 通信方法、及び通信システム - Google Patents

通信方法、及び通信システム Download PDF

Info

Publication number
JP2011061562A
JP2011061562A JP2009209900A JP2009209900A JP2011061562A JP 2011061562 A JP2011061562 A JP 2011061562A JP 2009209900 A JP2009209900 A JP 2009209900A JP 2009209900 A JP2009209900 A JP 2009209900A JP 2011061562 A JP2011061562 A JP 2011061562A
Authority
JP
Japan
Prior art keywords
nat
packet
port number
communication
port
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009209900A
Other languages
English (en)
Inventor
Makoto Nishida
誠 西田
Kiyoshi Matsushita
誉志 松下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2009209900A priority Critical patent/JP2011061562A/ja
Publication of JP2011061562A publication Critical patent/JP2011061562A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Abstract

【課題】通信を行う端末装置が増加した場合であっても、NAT装置に記憶されるポート番号が増加せず、且つ、短時間で通信可能なポート番号を特定できる通信方法、及び通信システムを提供する。
【解決手段】端末装置6〜8は、送信順、宛先IPアドレス、及び送信先ポート番号の情報を通信制御装置から受信し、宛先情報101〜103として記憶する。端末装置6は、宛先情報101に基づいてパンチパケットを送信する。NAT装置4宛てに、パンチパケットが送信される。パンチパケットをNAT装置3が転送する場合に、NAT3装置にポート番号「P3+W3」が記憶される。NAT装置5宛てに、パンチパケットが送信される。NAT装置3にポート番号「P3+(W3*2)」が記憶される。記憶されたポート番号宛てに端末装置7、8がパケットを送信することによって、P2P通信が実行される。
【選択図】図10

Description

本発明は通信方法、及び通信システムに関する。より詳細には、NAT配下の端末装置間で通信を行うための通信方法、及び通信システムに関する。
NAT(Network Address Translation)機能を備えた装置(以下「NAT装置」という。)では、LAN側からインターネット側に向かう方向の通信が行われた場合に、所定のポート番号が記憶される。NAT装置は、記憶されたポート番号宛てのパケットをインターネット側から受信した場合にのみ、受信したパケットをLAN側に転送する。従って、NAT配下にある端末装置とのセッションを確立させるためには、NAT装置に記憶されているポート番号を検出し、このポート番号宛てにパケットが送信される必要がある。
NAT装置に記憶されたポート番号を端末装置に認識させることによって、異なるNAT装置の配下にある端末装置間でセッションを確立させる技術がある。例えばUDP Hole Punchingが知られている。また例えば特許文献1に記載の通信システムでは、端末装置からバブルパケットが複数送信され、NAT装置にポート番号が複数記憶される。別のNAT装置の配下にある端末装置は、NAT装置に記憶されたポート番号を推測するために、予想されるポート番号を宛先に設定してパケットを送信する。通信に成功したパケットの宛先として設定されているポート番号が、NAT装置に記憶されているポート番号として特定される。以後、このポート番号を宛先としてパケットが送信される。このようにして、異なるNAT装置の配下にある端末間でセッションを確立させることが可能となる。
特開2006−136030号公報
しかしながら特許文献1に記載の通信システムでは、通信を行う端末装置が増加した場合、NAT装置に記憶されるポート番号が多くなってしまう。このため、記憶されたポート番号を使って不特定多数のユーザがLAN内にアクセスする可能性が高くなり、セキュリティが脆弱になってしまうという問題点がある。また、NAT装置に記憶されているポート番号を特定するまでに時間を要してしまうという問題点がある。
本発明は上述の問題点を解決するためになされたものであり、通信を行う端末装置が増加した場合であっても、NAT装置に記憶されるポート番号が増加せず、且つ、短時間で通信可能なポート番号を特定できる通信方法、及び通信システムを提供することを目的とする。
本発明の第一態様に係る通信方法では、NAT機能を備えたNAT装置であって、配下の内部ネットワーク側から外部ネットワーク側に向かう方向のパケットを受信した場合に、変換後のポート番号に所定の変化量であるポート幅ずつ加算し、算出された前記ポート番号を、転送を許可するポート番号を含む履歴情報として記憶するNAT装置と、前記NAT装置の配下の前記内部ネットワークに接続する端末装置と、前記外部ネットワークに接続する通信制御装置とを少なくとも含む通信システムにおいて、複数の異なる前記NAT装置の配下の前記内部ネットワークに接続された前記端末装置間で通信を行うための通信方法であって、通信を行う少なくとも二つの前記端末装置の其々が、前記NAT装置を介して前記通信制御装置に第一パケットを送信する第一送信ステップと、前記第一送信ステップによって送信された前記第一パケットを、前記NAT装置を介して前記通信制御装置が受信することによって、前記第一パケットを前記NAT装置が転送した場合に前記履歴情報として記憶された前記ポート番号を前記通信制御装置が取得する取得ステップと、前記通信制御装置の記憶手段に記憶されている前記NAT装置の前記ポート幅と、前記取得ステップにおいて取得された前記ポート番号とに基づいて、前記端末装置から通信相手の端末装置に直接接続するNAT装置に対して送信される第二パケットの宛先ポート番号を決定する第一ポート決定ステップと、前記第一ポート決定ステップにおいて決定された前記宛先ポート番号と、前記記憶手段に記憶された前記NAT装置のIPアドレスとを前記端末装置に対して送信する第二送信ステップと、前記第二送信ステップにおいて送信された前記IPアドレスと前記宛先ポート番号とに基づいて、前記端末装置が前記NAT装置に対して前記第二パケットを送信する第三送信ステップとを備えている。
第一態様に係る通信方法では、通信制御装置はポート幅に基づいて宛先ポート番号を決定し、IPアドレスとともに端末装置に通知する。端末装置では、通知されたIPアドレスと宛先ポート番号とに基づいてパンチパケットを送信する。端末装置間通信のために必要なポート番号のみNAT装置に記憶させることができる。このため、NAT装置に記憶される不要なポート番号宛てに不特定多数のユーザがアクセスすることを防止できるので、NAT装置のセキュリティ機能が弱まってしまうことを防止できる。また、通信制御装置から通知されたIPアドレス及び宛先ポート番号に対してのみパンチパケットを送信すればよいので、パンチパケット通信に要する時間を短縮できる。このため、NAT装置に記憶されたポート番号を特定するまでの時間を短縮できる。
また第一態様において、前記通信相手の端末装置に直接接続する複数の前記NAT装置の其々に対して一意的に割り当てられる順番であって、複数の前記NAT装置に対して前記第二パケットを送信する場合の順番である送信順を、前記通信制御装置が決定する順番決定ステップを備え、前記第一ポート決定ステップは、前記ポート幅と前記送信順を示す値とを乗算した値を、前記ポート番号に加算することによって、前記宛先ポート番号を決定してもよい。このようにすることで、通信相手方の端末装置が複数ある場合であっても、相手方の端末装置毎にポート番号を効率的に割り当ててNAT装置に記憶させることができる。割り当てられたポート番号に対して相手方の端末装置から送信されたパケットは、NAT装置によって確実に転送されるので、端末装置間で確実に通信を行うことが可能となる。
また第一態様において、前記第二送信ステップは、前記IPアドレス、前記ポート幅、前記取得ステップにおいて取得された前記ポート番号、及び、前記NAT装置毎に設定される優先順位を前記端末装置に対して送信し、前記第二送信ステップにおいて前記通信制御装置から送信された前記ポート番号と前記ポート幅と前記優先順位とに基づいて、前記端末装置が前記第二パケットの宛先ポート番号を決定する第二ポート決定ステップをさらに備え、前記第三送信ステップは、前記第二ポート決定ステップにおいて決定された前記宛先ポート番号と、前記第二送信ステップにおいて前記通信制御装置から送信された前記IPアドレスとに基づいて、前記端末装置が前記第二パケットを送信してもよい。これによって、端末装置においてパンチパケットの宛先ポート番号を簡易に決定することができる。また宛先ポート番号は、端末装置毎に一意的に決定されるので、NAT装置に記憶さえるポート番号を最小限に抑えつつ、端末装置間で確実に通信を行うことができる。
また第一態様において、前記第二ポート決定ステップは、前記第二送信ステップにおいて送信された前記ポート幅と前記優先順位とを乗算した値を、前記第二送信ステップにおいて送信された前記ポート番号に加算することによって、前記宛先ポート番号を決定してもよい。このようにすることで、通信相手方の端末装置が複数ある場合であっても、相手方の端末装置毎にポート番号を割り当ててNAT装置に記憶させることができる。従って端末装置は、簡易な算出方法によって宛先ポート番号を決定することができる。また宛先ポート番号は、端末装置毎に一意的に決定されるので、NAT装置に記憶さえるポート番号を最小限に抑えつつ、端末装置間で確実に通信を行うことができる。
また第一態様において、前記第三送信ステップにおいて前記第二パケットが送信された後、所定時間内に、前記端末装置が前記通信相手の端末装置から何らかのパケットを受信したかが判断される判断ステップと、前記判断ステップにおいて前記通信相手の通信端末から前記パケットを受信していないと判断された場合に、前記端末装置に対して前記第一パケットの送信を要求する要求パケットを、前記通信制御装置が前記端末装置に対して送信する第四送信ステップとを備え、前記第一送信ステップは、前記第四送信ステップにおいて送信された前記要求パケットに応じ、前記第一パケットを前記通信制御装置に対して送信してもよい。何らかの障害が発生した結果、端末装置間で通信を行うことができない場合であっても、再度宛先ポート番号が決定される。端末装置は、決定された宛先ポート番号に基づいて通信を再開させることができる。
また、第二態様に係る発明の通信システムは、NAT機能を備えたNAT装置であって、配下の内部ネットワーク側から外部ネットワーク側に向かう方向のパケットを受信した場合に、変換後のポート番号に所定の変化量であるポート幅ずつ加算し、算出された前記ポート番号を、転送を許可するポート番号を含む履歴情報として記憶するNAT装置と、前記NAT装置の配下の前記内部ネットワークに接続する端末装置と、前記外部ネットワークに接続する通信制御装置とを少なくとも含む通信システムであって、複数の異なる前記NAT装置の配下の前記内部ネットワークに接続された前記端末装置間で通信を行うための通信システムにおいて、通信を行う少なくとも二つの前記端末装置の其々が、前記NAT装置を介して前記通信制御装置に第一パケットを送信する第一送信手段と、前記第一送信手段によって送信された前記第一パケットを、前記NAT装置を介して前記通信制御装置が受信することによって、前記第一パケットを前記NAT装置が転送した場合に前記履歴情報として記憶された前記ポート番号を前記通信制御装置が取得する取得手段と、前記通信制御装置の記憶手段に記憶されている前記NAT装置の前記ポート幅と、前記取得手段において取得された前記ポート番号とに基づいて、前記端末装置から通信相手の端末装置に直接接続するNAT装置に対して送信される第二パケットの宛先ポート番号を決定する第一ポート決定手段と、前記第一ポート決定手段において決定された前記宛先ポート番号と、前記記憶手段に記憶された前記NAT装置のIPアドレスとを前記端末装置に対して送信する第二送信手段と、前記第二送信手段において送信された前記IPアドレスと前記宛先ポート番号とに基づいて、前記端末装置が前記NAT装置に対して前記第二パケットを送信する第三送信手段とを備えている。
第二態様に係る通信システムでは、通信制御装置はポート幅に基づいて宛先ポート番号を決定し、IPアドレスとともに端末装置に通知する。端末装置では、通知されたIPアドレスと宛先ポート番号とに基づいてパンチパケットを送信する。端末装置間通信のために必要なポート番号のみNAT装置に記憶させることができる。このため、NAT装置に記憶される不要なポート番号宛てに不特定多数のユーザがアクセスすることを防止できるので、NAT装置のセキュリティ機能が弱まってしまうことを防止できる。
通信システム1の概要を示す模式図である。 通信制御装置2の電気的構成を示すブロック図である。 第一テーブル2411を示す模式図である。 第二テーブル2421を示す模式図である。 NAT装置15の電気的構成を示すブロック図である。 端末装置16の電気的構成を示すブロック図である。 通信制御処理を示すフローチャートである。 端末装置処理を示すフローチャートである。 端末装置16間でパンチパケットの通信が行われた状態を示す図である。 端末装置16間でP2P通信が行われた状態を示す図である。 第一の変形例における端末装置処理を示すフローチャートである。 第一の変形例における通信制御処理を示すフローチャートである。 第二の変形例における通信制御処理を示すフローチャートである。 優先順位情報2441を示す模式図である。 第二の変形例における端末装置処理を示すフローチャートである。
以下、本発明に係る通信システム1について、図面を参照して説明する。これらの図面は、本発明が採用しうる技術的特徴を説明するために用いられるものである。記載されている端末の構成、各種処理のフローチャートなどは、それのみに限定する趣旨ではなく、単なる説明例である。
図1を参照し、通信システム1の概要について説明する。通信システム1は、通信制御装置2、NAT装置3,4,5(以下、これらを区別しない場合、「NAT装置15」という。)、及び端末装置6,7,8(以下、これらを区別しない場合、「端末装置16」という。)を少なくとも備えている。通信制御装置2とNAT装置15とは、インターネット9に接続している。NAT装置15は、配下のLAN(LAN11〜13)に接続している。端末装置16は、LANに接続している。図1に示す例では、NAT装置3の配下のLAN11に端末装置6が接続している。NAT装置4の配下のLAN12に端末装置7が接続している。NAT装置5の配下のLAN13に端末装置8が接続している。
通信制御装置2は、端末装置16間で直接通信を行うために必要な情報を、端末装置16に提供する。通信制御装置2としては、例えば呼制御サーバやSTUNサーバが使用できる。端末装置16は、通信制御装置2から提供される情報に基づいて、他の端末装置16との間で直接通信を行う。端末装置16としては、例えばPC(パーソナルコンピュータ)が使用できる。
NAT装置15は、NAT(Network Address Translation)機能を備えた装置である。NAT装置15は、LAN側からインターネット側に向かう方向のパケットを端末装置16から受信した場合に、パケットの送信元IPアドレスとポート番号とを変換する。変換後のポート番号は、履歴情報としてNAT装置15に記憶される。記憶されたポート番号は、インターネット側からLAN側に向かう方向のパケットを受信した場合において、該パケットをLAN側に転送するか否かを判断する場合に使用される。インターネット側から受信したパケットの送信先ポート番号と同じポート番号が、履歴情報として記憶されている場合、受信したパケットをLAN側に転送する。一方、インターネット側から受信したパケットの送信先ポート番号と同じポート番号が、履歴情報として記憶されていない場合、受信したパケットはLAN側に転送しない。このようにして、LANに不特定多数の者がアクセスできないようにしている。なお本実施の形態では、NAT装置15によってパケットの送信元ポート番号が変換される場合の変換後のポート番号は、履歴情報に記憶されているポート番号に所定の変化量(以下「ポート幅」という。)が加算されることによって算出されるものとする。
NAT装置15としては、NAT種別がCone NAT(Full Cone NAT、Address-Restricted Cone NAT、Port-Restricted Cone NAT)であるNAT装置が使用できる。
本実施の形態では、異なるNAT装置15の配下にある端末装置16間でP2P(Peer to Peer)通信が行われる。図1に示す例では、NAT装置3の配下のLAN11に接続された端末装置6、NAT装置4の配下のLAN12に接続された端末装置7、及び、NAT装置5の配下のLAN13に接続された端末装置8の間で、P2P通信が行われる。
異なるNAT装置15の配下にある端末装置16間でP2P通信を行うためには、其々の端末装置16が、通信相手方の端末装置16に直接接続するNAT装置15に履歴情報として記憶されているポート番号を知る必要がある。NAT装置15は、履歴情報として記憶されているポート番号宛てのパケットをインターネット側から受信した場合のみ、受信したパケットをLAN側に転送するためである。本実施の形態では、端末装置16がNAT装置15を介してパケットを送信することによって、NAT装置15にポート番号を記憶させる(NAT装置15にポート番号を記憶させるために、端末装置16から送信されるパケットを、以下「パンチパケット」という。)。端末装置16間でP2P通信が行われる場合、通信相手方の端末装置16に直接接続するNAT装置15に記憶されたポート番号に対して、パケットが送信される。ここで本実施の形態では、通信制御装置2がパンチパケットの通信制御を行うことによって、端末装置16から送信されるパンチパケットの数を極力抑えている。これによって、NAT装置15に記憶されるポート番号の数を抑制している。
なお、図1におけるインターネット9が、本発明の「外部ネットワーク」に相当し、LAN11〜13が本発明の「内部ネットワーク」に相当する。なお本発明は、外部ネットワークとしてインターネット9の他に従来周知の様々なネットワーク(LAN、WAN、専用回線など)が使用できる。同様に、内部ネットワークとしてLAN11,12,13の他に従来周知のネットワーク(インターネット、WAN、専用回線など)が使用できる。
図2を参照し、通信制御装置2の電気的構成について説明する。通信制御装置2は、CPU21、ROM22、RAM23、HDD24を備えている。CPU21は、NAT装置15や端末装置16との通信を制御する。ROM22には、Bootプログラムや初期設定パラメータが少なくとも記憶される。RAM23には、CPU21の処理時に発生する一時的なデータが少なくとも記憶される。HDD24には、第一テーブル記憶領域241、第二テーブル記憶領域242、プログラム記憶領域243、その他の情報記憶領域244が少なくとも記憶される。第一テーブル記憶領域241には、NAT装置15に関する情報が格納された第一テーブルが記憶される。第二テーブル記憶領域242には、端末装置16から送信されるパンチパケットの送信先の情報が格納された第二テーブルが記憶される。プログラム記憶領域243には、CPU21のプログラムが記憶される。その他の情報記憶領域244には、上述の情報以外の情報が記憶される。CPU21は、ROM22、RAM23、及びHDD24と電気的に接続している。CPU21は、ROM22、RAM23、及びHDD24の記憶領域にアクセスできる。
通信制御装置2は、入力ドライバ25を備えている。入力ドライバ25は、キーボード251を介して入力された情報を検出する。CPU21は、入力ドライバ25と電気的に接続している。入力ドライバ25は、キーボード251と電気的に接続する。CPU21は、キーボード251を介して入力された情報を認識できる。通信制御装置2は、表示ドライバ26を備えている。表示ドライバ26は、ディスプレイ261に像を表示させるための制御を行う。CPU21は、表示ドライバ26と電気的に接続している。表示ドライバ26は、ディスプレイ261と電気的に接続する。CPU21は、ディスプレイ261に所望の像を表示させることができる。
通信制御装置2は、通信モジュール27を備えている。通信モジュール27は、インターネット9を介した通信を可能とする。CPU21は、通信モジュール27と電気的に接続している。CPU21は、インターネット9を介して通信を行うことができる。通信制御装置2は、ディスクドライブ28を備えている。ディスクドライブ28は、記憶媒体281に記憶された情報にアクセスする為の駆動装置である。CPU21は、ディスクドライブ28と電気的に接続している。CPU21は、ディスクドライブ28に記憶媒体281が挿入された状態で、記憶媒体281に記憶された情報にアクセスできる。記憶媒体281には、例えば、CPU21が実行するプログラムが記憶される。記憶媒体281の導入時には、プログラムが記憶媒体281からHDD24のプログラム記憶領域243にセットアップされる。
図3を参照し、第一テーブルの一例である第一テーブル2411について説明する。第一テーブル2411には、NAT装置15を特定するID情報(「NAT ID」という。)、NAT装置15のIPアドレス、ポート幅、及び基準ポート番号が格納される。基準ポート番号は、パンチパケットが送信される場合に基準となるポート番号を示す(詳細は後述する。)。
図3に示す例では、NAT IDとして「3」「4」「5」が格納されている。なおこれらのNAT IDにて特定されるNAT装置15は、図1におけるNAT装置3,4,5にそれぞれ相当する。NAT装置3(NAT ID:3)のIPアドレスは「G3」である。ポート幅は「W3」である。基準ポート番号は「P3」である。
図4を参照し、第二テーブルの一例である第二テーブル2421について説明する。第二テーブル2421には、NAT ID、パンチパケットの送信先として指定するNAT装置15のNAT ID(第一送信先ID、第二送信先ID)、各送信先IDにて特定されるNAT装置15に対してパンチパケットを送信する場合の送信先IPアドレス及び送信先ポート番号が格納される。なお、第一送信先ID及び第二送信先IDは、パンチパケットの送信順を示している。はじめに第一送信先IDのNAT装置15に対してパンチパケットが送信され、次いで第二送信先IDのNAT装置15に対してパンチパケットが送信される(後述)ので、第一送信先IDが「送信順:1」に相当し、第二送信先IDが「送信順:2」に相当する。
図4に示す例では、NAT IDとして「3」「4」「5」が格納されている。NAT IDが「3」に対応するNAT装置3の第一送信先IDとして「4」(NAT装置4)が記憶されている。NAT装置4宛てにパンチパケットを送信する場合の送信先IPアドレスは「G4」であり、送信先ポート番号は「P4+W4」である。また、NAT装置3の第二送信先IDとして「5」(NAT装置5)が記憶されている。NAT装置5宛てにパンチパケットを送信する場合の送信先IPアドレスは「G5」であり、送信先ポート番号は「P5+W5」である。
なお図4には、第一送信先ID及び第二送信先IDが格納された第二テーブル2421が示されているが、本発明はこの構成に限定されない。P2P通信を行う他の端末装置の台数に応じて、格納される送信先IDの数は変化する。
通信制御装置2では、第一テーブルの情報に基づいて第二テーブルが作成される。作成された第二テーブルの情報は、端末装置16に対して送信される。この情報を受信した端末装置16では、第一送信先ID及び第二送信先IDにて特定されるNAT装置15に対し、パンチパケットを送信する。また端末装置16は、送信先IPアドレス及び送信先ポート番号の情報に基づいてP2P通信を行うことが可能になる。詳細は後述する。
図5を参照し、NAT装置15の電気的構成について説明する。NAT装置15は、CPU51、ROM52、RAM53、フラッシュメモリ57を備えている。CPU51は、通信制御装置2や端末装置16との通信を制御する。ROM52には、CPU51のプログラムが少なくとも記憶される。RAM53には、CPU51の処理時に発生する一時的なデータが少なくとも記憶される。フラッシュメモリ57には、ポート番号が履歴情報として記憶される。CPU51は、ROM52、RAM53、及びフラッシュメモリ57と電気的に接続している。CPU51は、ROM52、RAM53、及びフラッシュメモリ57の記憶領域にアクセスできる。
NAT装置15は、表示部54を備えている。表示部54は、NAT装置15の状態等を表示することができる。CPU51は、表示部54と電気的に接続している。CPU51は、表示部54に所望の情報を表示させることができる。表示部54としては、例えばLEDが使用できる。NAT装置15は、入力部55を備えている。入力部55は、ユーザによるNAT装置15への入力操作を受け付ける。CPU51は、入力部55と電気的に接続している。CPU51は、入力部55を介して入力された情報を認識できる。入力部55としては、例えばスイッチやタッチセンサが使用できる。
NAT装置5は、通信モジュール58を備えている。通信モジュール58は、インターネット9を介した通信を可能とする。CPU51は、通信モジュール58と電気的に接続している。CPU51は、インターネット9を介して通信を行うことができる。NAT装置5は、通信モジュール59を備えている。通信モジュール59は、LANを介した通信を可能とする。CPU51は、通信モジュール59と電気的に接続している。CPU51は、LANを介して通信を行うことができる。
図6を参照し、端末装置16の電気的構成について説明する。端末装置16は、CPU81、ROM82、RAM83、HDD84を備えている。CPU81は、NAT装置15や通信制御装置2との通信を制御する。ROM82には、Bootプログラムや初期パラメータが少なくとも記憶される。RAM83は、CPU81の処理時に発生する一時的なデータが少なくとも記憶される。HDD84は、CPU81のプログラムが少なくとも記憶される。CPU81は、ROM82、RAM83、及びHDD84と電気的に接続している。CPU81は、ROM82、RAM83、及びHDD84の記憶領域にアクセスできる。
端末装置16は、入力ドライバ85を備えている。入力ドライバ85は、キーボード851を介して入力された情報を検出する。CPU81は、入力ドライバ85と電気的に接続している。入力ドライバ85は、キーボード851と電気的に接続する。CPU81は、キーボード851を介して入力された情報を認識できる。端末装置16は、表示ドライバ86を備えている。表示ドライバ86は、ディスプレイ861に像を表示させるための制御を行う。CPU81は、表示ドライバ86と電気的に接続している。表示ドライバ86は、ディスプレイ861と電気的に接続する。CPU81は、ディスプレイ861に所望の像を表示させることができる。
端末装置16は、通信モジュール87を備えている。通信モジュール87は、LANを介した通信を可能とする。CPU81は、通信モジュール87と電気的に接続している。CPU81は、LANを介して通信を行うことができる。端末装置16は、ディスクドライブ88を備えている。ディスクドライブ88は、記憶媒体881に記憶された情報にアクセスする為の駆動装置である。CPU81は、ディスクドライブ88と電気的に接続している。CPU81は、ディスクドライブ88に記憶媒体881が挿入された状態で、記憶媒体881に記憶された情報にアクセスできる。記憶媒体881には、例えば、CPU81が実行するプログラムが記憶される。記憶媒体881の導入時には、プログラムが記憶媒体881からHDD84にセットアップされる。
図7を参照し、通信制御装置2のCPU21において実行される通信制御処理について説明する。通信制御処理は、通信制御装置2の電源が投入された状態で、CPU21によって所定の周期で繰り返し起動され実行される。以下では、端末装置6〜8間でP2P通信が行われる場合に、通信制御装置2のCPU21において実行される通信制御処理について説明する。
なおNAT装置15には、通信制御装置2と端末装置16とが通信を行うためのポート番号が履歴情報として予め記憶されているものとする。通信制御装置2は、NAT装置15に履歴情報として記憶されているポート番号を認識しているものとする。また通信制御装置2は、通信制御処理が実行されるに際し、事前にNAT装置15のIPアドレスとポート幅とを認識しているものとする。NAT装置15のIPアドレスとポート幅とは、第一テーブルに格納され、第一テーブル記憶領域241に記憶されている。
例えば通信制御装置2には、図3に示す第一テーブル2411のうち基準ポート番号以外の情報が第一テーブル記憶領域241に予め記憶される。
通信制御処理が起動されると、はじめに、P2P通信が行われる端末装置6〜8に対して、基準ポート番号の通知を要求する基準ポート要求パケットが送信される(S21)。送信された基準ポート要求パケットは、NAT装置3〜5を介し、端末装置6〜8に到達する。次いで、基準ポート要求パケットに応じて端末装置6〜8から送信される基準ポート通知パケットを、NAT装置3〜5を介して受信したかが判断される(S22)。基準ポート通知パケットを受信した場合(S22:YES)、受信した基準ポート通知パケットの送信元ポート番号が、基準ポート番号として抽出される。抽出された基準ポート番号は、第一テーブルのうち基準ポート通知パケットを転送したNAT装置(NAT装置3〜5のいずれか)のNAT IDに対応付けられて記憶される(S23)。そしてS22の処理に戻り、繰り返し基準ポート通知パケットの受信が監視される。
例えば、図3のうち基準ポート番号以外の情報が格納された状態の第一テーブル2411を通信制御装置2が有している場合であって、NAT装置3を介して、端末装置6から基準ポート通知パケットを受信した場合を想定する。受信した基準ポート通知パケットの送信元ポート番号「P3」が、第一テーブル2411のうちNAT ID「3」に対応付けられて記憶される。同様の処理が、端末装置7,8から基準ポート通知パケットを受信した場合にも実行される。
基準ポート通知パケットを受信していない場合(S22:NO)、端末装置6〜8の全てから基準ポート通知パケットを受信したかが判断される(S25)。基準ポート通知パケットを受信していない端末装置が存在する場合(S25:NO)、S22の処理に戻り、継続して基準ポート通知パケットの受信が監視される。
端末装置6〜8の全てから基準ポート通知パケットを受信した場合(S25:YES)、第一テーブル記憶領域241に記憶されている第一テーブルに基づいて第二テーブルが作成される(S27〜S33)。はじめに、送信順が決定されることによって、第二テーブルのうち第一送信先IDと第二送信先IDとが決定される(S27)。送信順は、例えばNAT IDが降順となるように決定される。なお、本発明はこの方法に限定されず、例えばNAT IDが昇順となるように決定してもよいし、NAT装置15のMACアドレスやIPアドレスに基づいて送信順を決定してもよい。また、端末装置の通信履歴に基づき、直近に通信した端末装置同士が優先されるように送信順を決定してもよい。
図3に示す第一テーブル2411に基づいて送信順が決定され、第一送信先ID及び第二送信先IDが特定される場合を例示して説明する。NAT装置3の通信相手先のNAT装置は、NAT装置4(NAT ID:4)とNAT装置5(NAT ID:5)ということになる。送信先IDはNAT IDの降順に決定されるので、送信順は、NAT装置4:送信順1、NAT装置5:送信順2のように決定される。この送信順に基づき、第一送信先IDが「4」とされ、第二送信先IDが「5」とされる。同様に、NAT装置4の通信相手先のNAT装置は、NAT装置3(NAT ID:3)とNAT装置5(NAT ID:5)であるので、送信順は、NAT装置3:送信順1、NAT装置5:送信順2のように決定される。この送信順に基づき、第一送信先IDが「3」とされ、第二送信先IDが「5」とされる。以上のようにして、送信順、及び、第一送信先IDと第二送信先IDとが決定される。
次いで、第二テーブルのうち送信先IPアドレス及び送信先ポート番号が決定される(S31)。送信先IPアドレスは、第一テーブルに記憶されているIPアドレスとされる。送信先ポート番号の決定方法について、図3に示す第一テーブル2411、及び図4に示す第二テーブル2421を参照して以下に説明する。
一のNAT装置(NAT装置3とする。)が、第一送信先IDにて特定されるNAT装置(NAT装置4とする。)との間でパケットの送受信を行うために、NAT装置3に記憶させるポート番号が決定される。ポート番号は、NAT装置3のポート幅「W3」に送信順「1」を乗算した値を、基準ポート「P3」に加算した値「P3+W3(*1)」とされる。算出されたポート番号「P3+W3」は、NAT装置4がNAT装置3に対してパケットを送信する場合の送信先ポート番号とされる。このポート番号は、第二テーブルのうち、NAT装置4に対応付けられている第一送信先ID「3」の宛先ポート番号として記憶される。
次いで、NAT装置3が、第二送信先IDにて特定されるNAT装置(NAT装置5とする。)との間でパケットの送受信を行うために、NAT装置3に記憶させるポート番号が決定される。ポート番号は、NAT装置3のポート幅「W3」に送信順「2」を乗算した値を、基準ポート「P3」に加算した値「P3+W3*2」とされる。算出されたポート番号「P3+W3*2」は、NAT装置5がNAT装置3に対してパケットを送信する場合の送信先ポート番号とされる。このポート番号は、第二テーブルのうち、NAT装置5に対応付けられている第一送信先ID「3」の宛先ポート番号として記憶される。
例えば、第二テーブル2421のうちNAT ID「4」には、第一送信先IDとして「3」が記憶されており、第二送信先IDとして「5」が記憶されている。NAT装置4がNAT装置3との通信を行うために記憶するポート番号は、NAT装置4のポート幅「W4」に送信順「1」を乗算した値を、基準ポート「P4」に加算した値「P4+W4」となる。算出されたポート番号「P4+W4」は、送信先ポート番号(NAT ID:3、第一送信先ID:4に対応付けられている送信先ポート番号)に格納される。NAT装置4がNAT装置5との通信を行うために記憶するポート番号は、NAT装置4のポート幅「W4」に送信順「2」を乗算した値を、基準ポート「P4」に加算した値「P4+(W4*2)」となる。算出されたポート番号「P4+(W4*2)」は、送信先ポート番号(NAT ID:5、第一送信先ID:4に対応付けられている送信先ポート番号)に格納される。
S27の処理によって決定された第一送信元ID及び第二送信元IDと、S31の処理によって決定された送信先IPアドレス及び送信先ポート番号とは、第二テーブル記憶領域242の第二テーブルに記憶される(S33)。そしてS35の処理に進む。
S35の処理では、端末装置6〜8に対してパンチパケットの送信を指示する送信指示パケットが、端末装置6〜8に対して送信される(S35)。送信指示パケットには、S33において作成された第二テーブルの情報が付加される。例えば端末装置6に対して送信指示パケットが送信される場合には、第二テーブルのうち、端末装置6に直接接続するNAT装置3に関する情報(NAT ID:3に対応付けられている各送信先ID、送信先IPアドレス、送信先ポート番号)が送信指示パケットに付加される。そして通信制御処理は終了する。
図8を参照し、端末装置16のCPU81において実行される端末装置処理について説明する。端末装置処理は、端末装置16の電源が投入された状態で、CPU81によって所定の周期で繰り返し起動され実行される。以下、端末装置6が端末装置7及び8とP2P通信を行うに際し、端末装置6のCPU81において端末装置処理が実行される場合を想定して説明する。端末装置7、8のCPU81においても同様の処理が実行される。
なお端末装置6は、予め通信制御装置2のIPアドレスを認識しているものとする。また、端末装置6と直接接続するNAT装置3には、端末装置6と通信制御装置2とが通信を行うためのポート番号が履歴情報として予め記憶されているものとする。通信制御装置2は、NAT装置3に履歴情報として記憶されているポート番号を認識しているものとする。また通信制御装置2は、NAT装置3のIPアドレスとポート幅とを認識しているものとする。
端末装置処理が起動されると、はじめに、通信制御装置2から送信される基準ポート要求パケットを、NAT装置3を介して受信したかが判断される(S11)。基準ポート要求パケットを受信した場合(S11:YES)、基準ポートを通知するために基準ポート通知パケットが通信制御装置2に対して送信される(S13)。そしてS11に戻り、上述の処理が繰り返し実行される。
端末装置6から送信された基準ポート通知パケットは、NAT装置3を経由して通信制御装置2に到達する。NAT装置3が基準ポート通知パケットを転送する際、基準ポート通知パケットの送信元ポート番号が所定の値に変換される。変換されたポート番号は、NAT装置3に履歴情報として記憶される。通信制御装置2では、受信した基準ポート通知パケットの送信元ポート番号を基準ポートとして認識している。従って通信制御装置2では、この時点でNAT装置3に記憶されているポート番号のうち最も新しいポート番号が基準ポート番号として認識されたことになる。
一方、通信制御装置2から基準ポート要求パケットを受信していない場合(S11:NO)、通信制御装置2から送信指示パケットを受信しているかが判断される(S15)。送信指示パケットを受信していない場合(S15:NO)、S11の処理に戻り、上述の処理が繰り返し実行される。
通信制御装置2から送信指示パケットを受信している場合(S15:YES)、送信指示パケットに付加されている第二テーブルの情報が、端末装置6のRAM53に記憶される(記憶された情報を「宛先情報」という。)。記憶された宛先情報に基づいて、パンチパケットが送信される(S17)。パンチパケットは、第一送信先ID→第二送信先IDの順で、其々の送信先IPアドレス及び送信先ポート番号に対して送信される。そして端末装置処理を終了する。
送信されたパンチパケットは、NAT装置3を経由してインターネット9側に転送される。なお、端末装置6がパンチパケットを送信する場合、パンチパケットのTTL(Time to Live)には小さい値が設定される。これによってパンチパケットは、インターネット9内で中継転送が繰り返される中でTTLが0となり、破棄される。
NAT装置3がパンチパケットをインターネット側9に転送する際、送信元ポート番号が変換される。変換後のポート番号が、履歴情報としてNAT装置3に記憶される。記憶されたポート番号は、端末装置7,8が端末装置6に対してパケットを送信する場合の送信先ポート番号として使用される。これによって、端末装置6〜8間でP2P通信を行うことが可能となる。
端末装置6〜8が、図6の第二テーブル2421の情報に基づいてパンチパケットを送信する場合の様子について、図9を参照して説明する。図のうち101は、端末装置6のRAM53に記憶された宛先情報を示している。102は、端末装置7のRAM53に記憶された宛先情報を示している。103は、端末装置8のRAM53に記憶された宛先情報を示している。
図9に示すように、端末装置6では、宛先情報101に基づいて、パンチパケットが送信される。はじめに、宛先情報101のうち第一送信先IDの情報が参照される。パンチパケットの送信先IPアドレスとして「G4」が設定され、送信先ポート番号として「P4+W4」が設定される。このようにして作成されたパンチパケットが、NAT装置3を介して送信される(111)。
NAT装置3では、受信したパンチパケットの送信元ポート番号を所定のポート番号に変換するとともに、変換後のポート番号を履歴情報として記憶する。ここで変換後のポート番号は、現時点でNAT装置3の履歴情報に記憶されているポート番号のうち最も新しいポート番号にポート幅「W3」だけ加算された値とされる。最も新しいポート番号は、基準ポート通知パケットを介して通信制御装置2に通知した基準ポート「P3」に相当する。従ってNAT装置3では、ポート番号「P3+W3」が履歴情報として記憶される(112)。
続いて端末装置6では、宛先情報101のうち第二送信先IDの情報が参照される。パンチパケットの送信先IPアドレスとして「G5」が設定され、送信先ポート番号として「P5+W5」が設定される。このようにして作成されたパンチパケットが、NAT装置3を介して送信される(112)。
NAT装置3は、パンチパケットの送信元ポート番号を、現時点でNAT装置3に記憶されているポート番号のうち最も新しい「P3+W3」にさらに「W3」だけ加算したポート番号「P3+(W3*2)」に変換する。変換したポート番号「P3+(W3*2)」は、NAT装置3に履歴情報として記憶される。結果、NAT装置3には、履歴情報として「P3+W3」「P3+(W3*2)」が少なくとも記憶された状態となる。
なお、送信されたパンチパケットは、インターネット9内で破棄されるので、相手先の端末装置(及びNAT装置)に到達しない。
同様に端末装置7では、宛先情報102に基づいてパンチパケットが送信される(113,114)。NAT装置4では、基準ポート「P4」に「W4」だけ加算したポート番号「P4+W4」と、「P4+W4」にさらに「W4」だけ加算したポート番号「P4+(W4*2)」とが、履歴情報として記憶される。端末装置8では、宛先情報103に基づいてパンチパケットが送信される(115,116)。NAT装置5では、「P5+W5」と「P5+(W5*2)」とが履歴情報として記憶される。
図10を参照して、端末装置16間でP2P通信が行われる場合の様子について説明する。図9に示すパンチパケット通信を行うことによって、端末装置6〜8は、宛先情報101〜103に基づいて他の端末装置と互いにP2P通信を行うことが可能となる。端末装置6が端末装置7とP2P通信を行う場合、宛先情報101に基づき、パケットの送信先IPアドレスを「G4」に設定し、送信先ポート番号を「P4+W4」に設定する。このパケットは、NAT装置3を介してNAT装置4に到達する。NAT装置4には、上述のパンチパケット通信によって、履歴情報として「P4+W4」が記憶されている。NAT装置4は、端末装置6から受信したパケットを端末装置7に対して転送する(121)。
また例えば、端末装置8が端末装置6とP2P通信を行う場合、宛先情報103に基づき、パケットの送信先IPアドレスを「G3」に設定し、送信先ポート番号を「P3+(W3*2)」に設定する。このパケットは、NAT装置5を介してNAT装置3に到達する。NAT装置3には、上述のパンチパケット通信によって、履歴情報として「P3+(W3*2)」が記憶されている。NAT装置3は、端末装置8から受信したパケットを端末装置6に対して転送する(122)。このように端末装置6〜8は、パンチパケット通信によってNAT装置3〜5に履歴情報として記憶させたポート番号宛てにパケットを送信することができる。これによって、端末装置6〜8間でP2P通信を行うことが可能となる。
以上説明したように、通信制御装置2は、送信順と基準ポートとポート幅とに基づいて送信先ポート番号を決定し、IPアドレスとともに端末装置16に通知する。端末装置16では、通知されたIPアドレスと送信先ポート番号とに基づいてパンチパケットを送信する。端末装置16間でP2P通信を行うために必要なポート番号のみNAT装置15に記憶させることができる。このため、NAT装置15に記憶される不要なポート番号宛てに不特定多数のユーザがアクセスすることを防止できるので、NAT装置のセキュリティ機能が弱まってしまうことを防止できる。
通信制御装置2では、ポート幅に送信順を乗算した値を基準ポートに加算することによって送信先ポート番号が決定されるので、P2P通信を行う他の端末装置16が複数存在する場合であっても、其々の端末装置16と通信を行うためのポート番号をNAT装置15に記憶させることができる。このため、他の複数の端末装置16との間でP2P通信を行うことができる。
なお、図8のS13の処理が本発明の「第一送信ステップ」に相当する。図7のS23の処理が本発明の「取得ステップ」に相当し、S31の処理が本発明の「第一ポート決定ステップ」に相当し、S35の処理が本発明の「第二送信ステップ」に相当する。図8のS17の処理が本発明の「第三送信ステップ」に相当する。図7のS27が本発明の「順番決定ステップ」に相当する。
図7のS23の処理を行うCPU21が本発明の「取得手段」に相当し、S31の処理を行うCPU21が本発明の「第一ポート決定手段」に相当し、S35の処理を行うCPU21が本発明の「第二送信手段」に相当する。図8のS13の処理を行うCPU81が本発明の「第一送信手段」に相当し、S17の処理を行うCPU21が本発明の「第三送信手段」に相当する。
なお、本発明は上記実施の形態に限定されるものではなく、種々の変更が可能である。以下、本実施の形態の変形例について説明する。
<第一の変形例>
図11及び図12を参照し、本実施の形態の第一の変形例について説明する。第一の変形例では、パンチパケット通信が終了した後も端末装置16間でP2P通信ができない場合に、通信制御装置2において再度送信先ポート番号が決定される。端末装置16は、再度通知された送信先ポート番号に基づいてP2P通信を再開させることができる。
図11を参照し、端末装置16のCPU81において実行される端末装置処理について説明する。上述の端末装置処理(図8参照)と同一処理部分については、説明を簡略化している。以下、端末装置6が端末装置7及び8とP2P通信を行うに際し、端末装置6のCPU81において端末装置処理が実行される場合を想定して説明する。
端末装置処理が起動されると、はじめに、通信制御装置2から基準ポート要求パケットを受信したかが判断される(S41)。受信した場合(S41:YES)、基準ポート通知パケットが通信制御装置2に対して送信される(S43)。そしてS41に戻る。基準ポート要求パケットを受信していない場合(S41:NO)、通信制御装置2から送信指示パケットを受信しているかが判断される(S45)。受信していない場合(S45:NO)、S41の処理に戻る。受信している場合(S45:YES)、パンチパケットが送信される(S47)。次いで、RAM83に記憶されているタイマカウンタの更新を開始させる(S49)。タイマカウンタの更新を開始させた場合、タイマカウンタは所定の周期で1ずつ加算される。
端末装置6から端末装置7,8に対して、P2P通信の為の通信パケットが送信される(S51)。次いで、端末装置7,8から同様に送信される通信パケットを受信したかが判断される(S53)。通信パケットを受信した場合(S53:YES)、この通信パケットを送信した端末装置(端末装置7,8のいずれか)のIDをRAM83に一時的に記憶する(S55)。そしてS53に戻り、継続して通信パケットの受信が監視される。
一方、通信パケットを受信していない場合(S53:NO)、端末装置7,8の両方から通信パケットを受信したかが判断される(S57)。端末装置7,8の両方から通信パケットを受信している場合(S57:YES)、P2P通信は正常に行われているので、端末装置処理は終了する。
一方、未だ端末装置7,8の少なくともいずれかから通信パケットを受信していない場合(S57:NO)、S49の処理において更新を開始したタイマカウンタが確認される(S59)。タイマカウンタの値が所定値未満である場合(S59:NO)、S53の処理に戻る。タイマカウンタの値が所定値以上となっている場合(S59:YES)、通信パケットを端末装置7,8に送信してから所定時間以上経過している。パンチパケット通信によるNAT装置15に対する履歴情報の記憶制御が失敗し、端末装置7,8との間でP2P通信ができない状態である可能性がある。この場合、通信制御装置2に対してP2P通信ができない旨を通知するエラー通知パケットが、通信制御装置2に対して送信される(S61)。そしてS41の処理に戻り、再度通信制御装置2から送信される基準ポート要求パケットの受信が監視される。
図12を参照し、通信制御装置2のCPU21において実行される通信制御処理について説明する。上述の通信制御処理(図7参照)と同一処理部分については、説明を簡略化している。以下では、端末装置6〜8間でP2P通信が行われる場合に、通信制御装置2のCPU21において実行される通信制御処理について説明する。
通信制御処理が起動されると、はじめに基準ポート要求パケットが端末装置6〜8に対して送信される(S71)。次いで、端末装置6〜8から返信される基準ポート通知パケットを受信したかが判断される(S73)。受信した場合(S73:YES)、受信した基準ポート通知パケットに基づいて基準ポートが特定され、第一テーブルに記憶される(S75)。そしてS71の処理に戻る。基準ポート通知パケットを受信していない場合(S73:NO)、端末装置6〜8の全てから基準ポート通知パケットを受信したかが判断される(S77)。受信していない端末装置が存在する場合(S77:NO)、S73の処理に戻る。
端末装置6〜8の全てから基準ポート通知パケットを受信した場合(S77:YES)、第二テーブルのうち第一送信先IDと第二送信先IDとが送信順に基づいて決定され(S79)、次いで送信先IPアドレス及び送信先ポート番号が決定される(S81)。決定された情報は、第二テーブルに記憶される(S83)。
送信指示パケットが端末装置6〜8に対して送信される(S85)。送信後、RAM23に記憶されているタイマカウンタの更新を開始させる(S89)。次いで、端末装置6〜8のいずれかからエラー通知パケットを受信したかが判断される(S91)。エラー通知パケットを受信した場合(S93:YES)、端末装置6〜8間でP2P通信ができない状態である可能性がある。この場合、S89において開始したタイマカウンタの更新を停止させる(S93)。そしてS71の処理に戻り、再度基準ポート要求パケットが送信され、上述の処理が繰り返し実行される。
一方、エラー通知パケットを受信していない場合(S91:NO)、S89の処理によって開始したタイマカウンタが確認される(S95)。タイマカウンタの値が所定値未満である場合(S95:NO)、S91に戻り、継続してエラー通知パケットの受信が監視される。タイマカウンタの値が所定値以上となっている場合(S95:YES)、端末装置6〜8間で既にP2P通信が実行されている可能性が高いので、そのまま通信制御処理は終了する。
以上説明したように、第一の変形例では、パンチパケットによる通信が終了した段階で、通信パケットの送受信が端末装置6〜8間で実行される。通信パケットが受信できない場合には、P2P通信が正常に行われていないと判断され、再度第二テーブルを作成する為の処理が実行される。これによって、何らかの障害が発生した結果、端末装置6〜8間でP2P通信を行うことができない場合であっても、再度決定された第二テーブルに基づいてP2P通信を再開させることができる。
なお、図11のS53の処理が本発明の「判断ステップ」に相当する。図12のS71の処理が本発明の「第四送信ステップ」に相当する。
<第二の変形例>
図13〜図15を参照し、本実施の形態の第二の変形例について説明する。第二の変形例では、宛先情報に含まれる送信先ID、送信先IPアドレス、及び送信先ポート番号を端末装置6〜8が決定する。これによって、通信制御装置2の処理負荷を軽減させることができる。
図13を参照し、通信制御装置2のCPU21において実行される通信制御処理について説明する。はじめに基準ポート要求パケットが送信される(S121)。次いで基準ポート通知パケットを受信したかが判断される(S123)。受信した場合(S123:YES)、第一テーブルに基準ポート番号が記憶される(S125)。基準ポート通知パケットを受信していない場合(S123:NO)、端末装置6〜8の全てから基準ポート通知パケットを受信したかが判断される(S127)。受信していない端末装置16が存在する場合(S127:NO)、S123の処理に戻る。
端末装置6〜8の全てから基準ポート通知パケットを受信した場合(S127:YES)、端末装置6〜8の送信順を決定する為に使用される優先順位情報が、HDD24のその他の情報記憶領域244から読み出される。優先順位情報は、端末装置6〜8の其々に直接接続されるNAT装置3〜5に優先順位が対応づけて記憶された情報である。また、第一テーブル記憶領域241に記憶されている第一テーブルが読み出される。読み出された優先順位情報と第一テーブルとが送信指示パケットに付加され、端末装置6〜8に対して送信される(S129)。そして通信制御処理は終了する。
その他の情報記憶領域244に記憶されている優先順位情報の一例である優先順位情報2441について、図14を参照して説明する。優先順位情報2441には、NAT IDと優先順位とが対応付けて格納されている。NAT ID:3に対して優先順位:1が対応付けられている。NAT ID:4に対して優先順位:2が対応付けられている。NAT ID:5に対して優先順位:3が対応付けられている。
図15を参照し、端末装置6のCPU81において実行される端末装置処理について説明する。はじめに、通信制御装置2から基準ポート要求パケットを受信したかが判断される(S101)。受信した場合(S101:YES)、基準ポート通知パケットが通信制御装置2に対して送信される(S103)。基準ポート要求パケットを受信していない場合(S101:NO)、送信指示パケットを通信制御装置2から受信しているかが判断される(S105)。受信していない場合(S105:NO)、S101の処理に戻る。
送信指示パケットを受信している場合(S105:YES)、受信した送信指示パケットに付加されている優先順位情報と第一テーブルとに基づいて、宛先情報(図10参照)が作成される(S107、S109)。はじめに、第一送信先ID及び第二送信先IDが決定される(S107)。優先順位情報における優先順位が高いNAT装置のNAT IDが、優先的に第一送信先IDとされる。例えば、NAT装置3とパケットの送受信を行うNAT装置4(優先順位:2)とNAT装置5(優先順位:3)とのうち、優先順位が高いNAT装置4のNAT ID「4」が、第一送信先IDとされる。優先順位が低いNAT装置5のNAT ID「5」が、第二送信先IDとされる。
次いで送信先ポート番号が決定される(S109)。送信先ポート番号の決定方法としては、例えばS27及びS31(図7参照)における方法と同一方法を使用することが可能である。
S107及びS109において決定された情報が、宛先情報に格納される。次いで、作成された宛先情報に基づいて、パンチパケットが送信される(S111)。そして端末装置処理を終了する。
以上説明したように、第二の変形例では、端末装置16がパンチパケットを送信する場合に参照される宛先情報を、端末装置自身が作成する。宛先情報は、通信制御装置2から送信される優先順位情報と第一テーブルの情報とに基づいて作成される。これによって、通信制御装置2における第二テーブルの決定処理が不要となるので、通信制御装置2の処理負荷を軽減させることができる。
1 通信システム
2 通信制御装置
3,4,5,15 NAT装置
6,7,8,16 端末装置
21 CPU
24 HDD
241 第一テーブル記憶領域
242 第二テーブル記憶領域
81 CPU

Claims (6)

  1. NAT機能を備えたNAT装置であって、配下の内部ネットワーク側から外部ネットワーク側に向かう方向のパケットを受信した場合に、変換後のポート番号に所定の変化量であるポート幅ずつ加算し、算出された前記ポート番号を、転送を許可するポート番号を含む履歴情報として記憶するNAT装置と、前記NAT装置の配下の前記内部ネットワークに接続する端末装置と、前記外部ネットワークに接続する通信制御装置とを少なくとも含む通信システムにおいて、複数の異なる前記NAT装置の配下の前記内部ネットワークに接続された前記端末装置間で通信を行うための通信方法であって、
    通信を行う少なくとも二つの前記端末装置の其々が、前記NAT装置を介して前記通信制御装置に第一パケットを送信する第一送信ステップと、
    前記第一送信ステップによって送信された前記第一パケットを、前記NAT装置を介して前記通信制御装置が受信することによって、前記第一パケットを前記NAT装置が転送した場合に前記履歴情報として記憶された前記ポート番号を前記通信制御装置が取得する取得ステップと、
    前記通信制御装置の記憶手段に記憶されている前記NAT装置の前記ポート幅と、前記取得ステップにおいて取得された前記ポート番号とに基づいて、前記端末装置から通信相手の端末装置に直接接続するNAT装置に対して送信される第二パケットの宛先ポート番号を決定する第一ポート決定ステップと、
    前記第一ポート決定ステップにおいて決定された前記宛先ポート番号と、前記記憶手段に記憶された前記NAT装置のIPアドレスとを前記端末装置に対して送信する第二送信ステップと、
    前記第二送信ステップにおいて送信された前記IPアドレスと前記宛先ポート番号とに基づいて、前記端末装置が前記NAT装置に対して前記第二パケットを送信する第三送信ステップと
    を備えたことを特徴とする通信方法。
  2. 前記通信相手の端末装置に直接接続する複数の前記NAT装置の其々に対して一意的に割り当てられる順番であって、複数の前記NAT装置に対して前記第二パケットを送信する場合の順番である送信順を、前記通信制御装置が決定する順番決定ステップを備え、
    前記第一ポート決定ステップは、
    前記ポート幅と前記送信順を示す値とを乗算した値を、前記ポート番号に加算することによって、前記宛先ポート番号を決定することを特徴とする請求項1に記載の通信方法。
  3. 前記第二送信ステップは、
    前記IPアドレス、前記ポート幅、前記取得ステップにおいて取得された前記ポート番号、及び、前記NAT装置毎に設定される優先順位を前記端末装置に対して送信し、
    前記第二送信ステップにおいて前記通信制御装置から送信された前記ポート番号と前記ポート幅と前記優先順位とに基づいて、前記端末装置が前記第二パケットの宛先ポート番号を決定する第二ポート決定ステップをさらに備え、
    前記第三送信ステップは、
    前記第二ポート決定ステップにおいて決定された前記宛先ポート番号と、前記第二送信ステップにおいて前記通信制御装置から送信された前記IPアドレスとに基づいて、前記端末装置が前記第二パケットを送信することを特徴とする請求項1に記載の通信方法。
  4. 前記第二ポート決定ステップは、
    前記第二送信ステップにおいて送信された前記ポート幅と前記優先順位とを乗算した値を、前記第二送信ステップにおいて送信された前記ポート番号に加算することによって、前記宛先ポート番号を決定することを特徴とする請求項3に記載の通信方法。
  5. 前記第三送信ステップにおいて前記第二パケットが送信された後、所定時間内に、前記端末装置が前記通信相手の端末装置から何らかのパケットを受信したかが判断される判断ステップと、
    前記判断ステップにおいて前記通信相手の通信端末から前記パケットを受信していないと判断された場合に、前記端末装置に対して前記第一パケットの送信を要求する要求パケットを、前記通信制御装置が前記端末装置に対して送信する第四送信ステップと
    を備え、
    前記第一送信ステップは、
    前記第四送信ステップにおいて送信された前記要求パケットに応じ、前記第一パケットを前記通信制御装置に対して送信することを特徴とする請求項1から4のいずれかに記載の通信方法。
  6. NAT機能を備えたNAT装置であって、配下の内部ネットワーク側から外部ネットワーク側に向かう方向のパケットを受信した場合に、変換後のポート番号に所定の変化量であるポート幅ずつ加算し、算出された前記ポート番号を、転送を許可するポート番号を含む履歴情報として記憶するNAT装置と、前記NAT装置の配下の前記内部ネットワークに接続する端末装置と、前記外部ネットワークに接続する通信制御装置とを少なくとも含む通信システムであって、複数の異なる前記NAT装置の配下の前記内部ネットワークに接続された前記端末装置間で通信を行うための通信システムにおいて、
    通信を行う少なくとも二つの前記端末装置の其々が、前記NAT装置を介して前記通信制御装置に第一パケットを送信する第一送信手段と、
    前記第一送信手段によって送信された前記第一パケットを、前記NAT装置を介して前記通信制御装置が受信することによって、前記第一パケットを前記NAT装置が転送した場合に前記履歴情報として記憶された前記ポート番号を前記通信制御装置が取得する取得手段と、
    前記通信制御装置の記憶手段に記憶されている前記NAT装置の前記ポート幅と、前記取得手段において取得された前記ポート番号とに基づいて、前記端末装置から通信相手の端末装置に直接接続するNAT装置に対して送信される第二パケットの宛先ポート番号を決定する第一ポート決定手段と、
    前記第一ポート決定手段において決定された前記宛先ポート番号と、前記記憶手段に記憶された前記NAT装置のIPアドレスとを前記端末装置に対して送信する第二送信手段と、
    前記第二送信手段において送信された前記IPアドレスと前記宛先ポート番号とに基づいて、前記端末装置が前記NAT装置に対して前記第二パケットを送信する第三送信手段と
    を備えたことを特徴とする通信システム。
JP2009209900A 2009-09-11 2009-09-11 通信方法、及び通信システム Pending JP2011061562A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009209900A JP2011061562A (ja) 2009-09-11 2009-09-11 通信方法、及び通信システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009209900A JP2011061562A (ja) 2009-09-11 2009-09-11 通信方法、及び通信システム

Publications (1)

Publication Number Publication Date
JP2011061562A true JP2011061562A (ja) 2011-03-24

Family

ID=43948680

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009209900A Pending JP2011061562A (ja) 2009-09-11 2009-09-11 通信方法、及び通信システム

Country Status (1)

Country Link
JP (1) JP2011061562A (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008035578A1 (fr) * 2006-09-22 2008-03-27 Panasonic Corporation Appareil de communication, procédé de communication et système de communication

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008035578A1 (fr) * 2006-09-22 2008-03-27 Panasonic Corporation Appareil de communication, procédé de communication et système de communication

Similar Documents

Publication Publication Date Title
KR101055048B1 (ko) 정보 통신 시스템, 정보 처리 장치 및 방법, 및 기록 매체
EP2645636B1 (en) Home gateway, cloud server, and method for communication therebetween
JP4683034B2 (ja) 電力供給システム、モニター装置、モニター方法およびコンピュータプログラム
US10187284B2 (en) Communication device, server device, communication method, and non-transitory computer readable medium
JP5304555B2 (ja) 端末装置、通信方法、及び通信プログラム
JP6530634B2 (ja) 情報処理装置及びその制御方法、並びにプログラム
JP2011077922A (ja) 通信システム、通信制御装置、通信制御方法、及び通信制御プログラム
JP5488183B2 (ja) 通信装置及び通信制御方法
US20090116499A1 (en) Communication apparatus, method executed by communication apparatus, and storage medium storing software for executing method
JP5683313B2 (ja) 情報処理装置、起動制御方法、及びプログラム
JP2011077920A (ja) 通信システム、端末装置、通信方法、及び通信プログラム
JP5218357B2 (ja) 通信方法、通信システム、端末装置
JP2007526561A (ja) 自動化システムの自動化構成要素の構成化方法及び相応する自動化システム
JP6381044B2 (ja) 中継装置、ポートマッピング設定方法、及びプログラム
TWI551100B (zh) 用以進行點對點連接的方法、伺服器與裝置
JP2011061562A (ja) 通信方法、及び通信システム
JP6157190B2 (ja) 通信装置、その制御方法、プログラム
KR101868153B1 (ko) 와이파이 다이렉트 기반 서비스 제공 방법 및 장치
CN101843038B (zh) 管理网络中的网络组件的方法和网络组件
JP5246768B2 (ja) 通信端末装置、及びプログラム
EP3096505B1 (en) Method and apparatus for processing interactions between devices
JP5321396B2 (ja) 通信システム
JP2011176383A (ja) 通信装置、通信システム、通信方法、及び通信プログラム。
JP2007243792A (ja) 通信機器用の接続装置。
JP5803525B2 (ja) 通信装置、通信方法、および通信プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120307

A977 Report on retrieval

Effective date: 20130410

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130416

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140401