JP2008236278A - 通信接続方法及び通信装置 - Google Patents

通信接続方法及び通信装置 Download PDF

Info

Publication number
JP2008236278A
JP2008236278A JP2007071738A JP2007071738A JP2008236278A JP 2008236278 A JP2008236278 A JP 2008236278A JP 2007071738 A JP2007071738 A JP 2007071738A JP 2007071738 A JP2007071738 A JP 2007071738A JP 2008236278 A JP2008236278 A JP 2008236278A
Authority
JP
Japan
Prior art keywords
terminal
nat
address
information
communication
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
JP2007071738A
Other languages
English (en)
Inventor
Yohei Sato
佐藤洋平
Yuko Okayama
岡山祐孝
Mitsuhiro Imai
今井光洋
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007071738A priority Critical patent/JP2008236278A/ja
Publication of JP2008236278A publication Critical patent/JP2008236278A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Abstract

【課題】多様なネットワーク環境におけるピア・ツー・ピア通信において、NATを越えて通信をする際に、通信を行う端末やその他の端末の通信負荷をなるべく少なくし、また目的のデータ通信の確立までに要する時間を軽減する。
【解決手段】 上記課題の少なくとも一部は、第2の端末へ第1の端末からの通信接続要求及び当該第1の端末のNAT環境を示すNAT情報を送信し、第2の端末から当該第2の端末のNAT越え情報を受信し、受信した第2の端末のNAT越え情報に基づいて、第1の端末のNAT越え情報を決定することにより解決される。これにより例えば、通信を行う2端末が、NAT環境下であってもデータ通信を確立することができ、トライアンドエラーを繰り返すよりもデータ通信を開始するまでにかかる時間を短縮又は通信回線への負荷を低減するなどが期待できる。
【選択図】図4

Description

技術分野は、NATの存在するネットワーク環境にある端末同士が、そのNATを越えて通信を行うための通信接続技術に関する。
現在、ネットワーク通信として広く普及しているTCPUDP/IP(Transmission Control Protocol / User Datagram Protocol / Internet Protocol)ネットワーク通信において、IP層で主流となっているプロトコルは、32bitのアドレス値を利用するIPv4(Internet Protocol version 4)である。しかし、世界中のすべてのノードにユニークなグローバルIPアドレスを割当てることは不可能であるため、NAT(Network Address Translation)装置が利用されている。NAT装置の配下にある端末は、同一LAN(Local Area Network)内でのみ通信可能なプライベートIPアドレスのみをもつ場合でも、インターネットへの通信時にNAT装置からNAT装置のもつグローバルIPアドレスを動的に割当てられることでインターネット通信が可能である。このNAT装置はルータ等に含まれることが多い。
しかし、NATの配下にありプライベートIPアドレスのみをもつ端末に対し、同一LAN以外の端末は、一般にNATを越えて通信を開始することができない。
このNAT越えの問題を解決するための手段としてUPnP(商標) (Universal Plug and Play)のIGD(Internet Gateway Device)やSTUN(Simple Traversal of UDP through NATs)などの各NAT越え方法(以後、データ通信用アドレス通知方法)が提案されている。
しかし、これらのデータ通信用アドレス通知方法はそれぞれ適用可能な環境が異なり、一般に単独の方法によってはあらゆるNAT環境下での通信には対応できない。
例えば特許文献1には、「複雑にネットワークが構成されている通信環境においても、P2P通信を実現することができる通信装置を提供すること。」を課題とし、その解決手段として「通信装置は、グローバルアドレス情報取得部101と、NAT設定要求部102と、WAN側アドレス情報取得部103と、ローカルアドレス情報取得部104と、通信相手に対して、取得した第1のグローバルアドレス情報、第1のWAN側アドレス情報、および第1のローカルアドレス情報を通知するアドレス情報通知部105と、通信相手に割当てられている第2のグローバルアドレス情報、第2のWAN側アドレス情報、および第2のローカルアドレス情報を取得するアドレス情報取得部106とを備える。本発明の通信装置は、第1および第2のグローバルアドレス情報、WAN側アドレス情報、ならびにローカルアドレス情報に基づいて、P2P通信が可能な方法を判断する。」と記載されている。
特開2005−323347号公報
しかし、特許文献1に記載の方法では、端末に接続されているルータがUPnPのIGDを利用できることを前提としている。特に2段NAT環境において、ルータのWAN側アドレスを取得するにはUPnPのIGDを用いるか、上記2段NATのNAT間のネットワークに第三のサーバを設置する必要がある。しかし、UPnPのIGDに対応していないルータは現在でも多数存在する。よってこれらのルータ全てをUPnPのIGDに対応させたルータに交換させるのは現実的ではない。また上記第三のサーバを全ての2段NAT環境に設置するのも現実的ではない。
また、データ通信を行う2端末は、通信する端末がお互いに提示した複数のデータ通信用アドレス情報のうち一つを宛先としてデータ通信を行うが、上記データ通信用アドレスは必ずしも通信可能とは限らないため、使用したデータ通信用アドレスが通信不可能かどうかを見極めるのに十分なタイムアウト時間を設ける必要がある。さらに通信途中のパケットロスを考慮し、一度で通信が確立できない場合でも同一アドレスへ複数回通信試行を行う必要がある。この場合、最初に提示されたデータ通信用アドレスで通信不可能である場合には、通信確立されるまでに時間がかかるという問題が生じる。
なお、TURN(Traversal Using Relay NAT)のように、グローバルIPアドレスをもつサーバを介してデータ通信を行うことであらゆるNAT環境下でも通信を行うことができる方法(中継サーバ方法)も存在する。しかし、全ての端末がデータ通信をサーバ経由で行うと、サーバには非常に高い負荷が要求される。よって、いかに中継サーバを用いないでデータ通信を行うかが問題である。
上記課題の少なくとも一部は、第2の端末へ第1の端末からの通信接続要求及び当該第1の端末のNAT環境を示すNAT情報を送信し、第2の端末から当該第2の端末のNAT越え情報を受信し、受信した第2の端末のNAT越え情報に基づいて、第1の端末のNAT越え情報を決定することにより解決される。
上記手段によれば例えば、通信を行う2端末が、NAT環境下であってもデータ通信を確立することができ、トライアンドエラーを繰り返すよりもデータ通信を開始するまでにかかる時間を短縮又は通信回線への負荷を低減するなどが期待できる。
また、データ通信を確立するために必要なデータ通信用アドレス通知方法を、あらかじめ定めた優先順位に従い決定し適用することで、通信処理の負荷が少なく処理時間が短いデータ通信用アドレス通知方法が優先的に適用されることなどが期待できる。
以下、図面を参照しながら、本発明の実施に好適な形態例を説明する。
本実施例は、TCPUDP/IPのネットワーク上に存在する端末同士のデータ通信に関する。
まず、通信システムの構成を説明する。
図1は、通信システムの構成の一例を示す。図1のように、システム構成には、通信回線4を介して接続されたセッション管理サーバ3a、NAT情報問合せサーバ3b、データ通信用中継サーバ3c、NAT機能付きルータ2a〜2d、端末1a〜1gが含まれる。
通信回線4は、例えば光回線、CATV、電話回線等で構成された有線回線、または、無線回線を用いて構成された公衆通信ネットワーク、または、専用通信ネットワークであり、通信回線4に接続された装置間で所定の通信プロトコルにしたがってデータのやり取りを行うことを可能とする。
端末1a〜1gは、TCPUDP/IPネットワークで通信できる機能を持ち、それぞれの目的に合わせデータ通信を行う。また、目的のデータ通信を行うにあたり、SIP(Session Initiation Protocol)やH.323などのセッション制御に係る通信プロトコルの使用若しくはその他独自のセッション制御通信ができるものとする。セッション制御で通信する内容としては、データ通信用アドレスの通知、ユーザ認証、暗号化通信を行う場合における暗号情報の交換、メディア通信におけるメディアの決定やパラメータの決定などがある。
セッション制御を行うことで、データ通信用のアドレスを通信相手の端末に通知することができるが、各端末がプライベートIPアドレスしか持たない場合には、データ通信用アドレスを通信する端末に通知しても、同一LAN内にない限り目的のデータ通信が確立できない。この問題を解決するため、端末1a〜1gにはNAT越え機能が実装されている。当該機能の詳細は後述する。
ルータ2a〜2dは、NAT機能を持つルータであり、パケットのルーティング機能をもつと共にLANを構成する。このLANに接続する各端末はプライベートIPアドレスをもち、同一LAN内に存在する端末同士ではプライベートIPアドレスを用いて通信を行うことができる。
また、ルータ2a〜2dは、インターネット側で使用するIPアドレス(WAN側IPアドレス)と、自身が構成するLAN内で使用するIPアドレス(LAN側IPアドレス)の少なくとも2つ以上のIPアドレスを保持する。配下にある端末がインターネットにパケットを送信する場合には、ルータがもつインターネット側(WAN側)のIPアドレスに送信元IPアドレス情報を書き換える。また、送信元ポート番号についても同様に、当該ルータがアクセスの転送処理(ポートフォワード)で使用したポート番号に書き換える。書き換えたIPアドレスとポート番号の組は、ルータが保持する通信キャッシュに一時保存される。ルータによって書き換えたIPアドレスとポート番号は通信キャッシュに記録されている限り端末へポートフォワードを行うので、パケットを受信した他の端末は、IPアドレスとポート番号を用いてルータのNATを透過し端末へデータを送信することができる。なお通信キャッシュでの記録の保持には通常有効期限があり、一定時間経過した通信情報はキャッシュから消去される。
セッション管理サーバ3aは、端末1a〜1gがデータ通信前のセッション制御の通信を相互に行う場合に、セッション制御通信の転送処理を行う。転送処理を行うにあたって、各端末はセッション制御通信用アドレスをセッション管理サーバ3aに事前に登録し、セッション管理サーバ3aはアドレス情報を保存し、管理する。
NAT情報問合せサーバ3bは、端末1a〜1gがNATを越えてデータ通信を行うためのNAT情報を取得するためのサーバである。具体的には、端末から送信されるアドレス取得要求に対し、アドレス要求のパケットのIPヘッダ及びTCP/UDPのヘッダ情報を解析し、ヘッダ情報のうち、送信元IPアドレス及び送信元ポート番号の情報を取得し、取得情報を、アドレス取得要求を送信した端末に対し送信する。
例えば、ルータ2aが管理するLAN上でプライベートIPアドレスをもつ端末1aがグローバルIPアドレスを持つNAT情報問合せサーバ3bにアドレス取得要求のパケットを送信したとする。送信されたパケットはルータ2aを通過時にルータ2aのNAT機能により送信元IPアドレス及び送信元ポート番号がルータ2aの情報に書き換えられる。そして、パケットがルータ2bを通過時にルータ2bのNAT機能により送信元IPアドレス及び送信元ポート番号がルータ2bの情報に書き換えられる。アドレス取得要求のパケットを受信したNAT情報問合せサーバ3bは送信元IPアドレス及び送信元ポート番号を記した応答パケットを端末1aに送信する。応答パケットの宛先は、パケットの送信元IPアドレス及び送信元ポート番号である。応答パケットは宛先のIPアドレス及びポート番号に従いルータ2bに到達し、ルータ2bは応答パケットを受信後、ルータ2b自身がもつ通信キャッシュを参照し、宛先のIPアドレス及びポート番号に対応するアドレス変換履歴を確認することで、ルータ2aに転送すべきと判断し送信する。ルータ2aも同様に通信キャッシュを参照することで端末1aに応答パケットを伝送する。端末1aは、応答パケットを参照することで、インターネット上のNAT情報問合せサーバ3bへ通信する際にルータ2bのNAT機能によって付与されたグローバルIPアドレスとポート番号の組の値を取得することができる。
データ通信用中継サーバ3cは、端末1a〜1gからのデータ通信用アドレスの割当て要求に応じて要求をした端末のプライベートIPアドレスにグローバルIPアドレスとポート番号の組を割当てた上で通知する。そして、グローバルIPアドレスとポート番号宛のデータを受信した場合、データ通信用中継サーバ3cはこのグローバルIPアドレスとポート番号とが割当てられた端末のプライベートIPアドレスへ転送処理する。これにより端末は、プライベートIPアドレスしか持たない場合であっても、同一LANにない他の端末からデータ通信用中継サーバ3cを介してデータを受信することができる。データ通信用中継サーバ3cを実現するための技術としては、TURNやRSIP(Realm Specific IP)などがある。
次に、端末1a〜1g(端末1)のハードウェア構成を説明する。
図3は、端末1a〜1gのハードウェア構成の一例を示す。端末は、ソフトウェアを実行可能な通常のハードウェア構成を有する情報処理端末装置により実現可能である。具体的には図3のように、端末には、CPU(演算処理装置)201と、主記憶装置202と、通信制御装置203と、外部記憶装置205と、入力装置206と、出力装置207と、が含まれる。各装置は、バス208を介して相互に接続され、各装置間で必要な情報が伝送可能に構成されている。
CPU201は、主記憶装置202や外部記憶装置205にあらかじめ格納されているプログラムによって所定の動作を行う。主記憶装置202は、ワークエリアとして機能したり、必要なプログラムを格納したりするための要素であり、例えば、前者に対してはRAM、後者に対してはROM等によって実現できる。通信制御装置203は、通信回線003に接続される装置と情報(データ)を送受信するための要素であり、例えばモデム、ネットワークアダプタ、無線送受信装置等によって実現される。外部記憶装置205は、当該端末の動作を制御するためのプログラムを保存したり、当該端末の動作に必要な情報を保持したりするためのものであり、例えば、半導体ディスク、ハードディスク(HDD)、光ディスク等によって実現できる。入力装置206は、装置利用者(ユーザ)が当該端末に対して必要な命令や情報を入力するための要素である。入力装置206は、例えばTV受信機で使用されるリモートコントローラや、PCで使用されるキーボード、マウス等によって実現できる。出力装置207は、ユーザの操作に応答するための情報を出力表示するための要素である。出力装置207は、例えばブラウン管、CRT、液晶ディスプレイ、PDP、有機EL、プロジェクタ、スピーカ、ヘッドフォン等によって実現できる。
なお、図3に示されたハードウェア構成は一例であり、端末1a〜1gのハードウェア構成は、必ずしも、この通りのものである必要はない。例えば、出力装置207は、当該端末とは異なる装置(テレビジョン等)で実現してもよい。この場合、当該端末には別途D/Aコンバータ等のテレビジョン信号生成装置を具備し、当該端末と出力装置207とはAVケーブルや同軸ケーブル等で接続される。
次に、端末1の機能を説明する。
図2は、端末1の機能ブロックの一例を示す。各部は、例えば端末1の主記憶装置202若しくは外部記憶装置205に格納されたプログラム又は当該プログラムによって実行する処理を実行するCPUの一部である。
データ通信処理部102は、端末1の通信目的に合わせ、通信相手である他の端末と通信制御装置203を用いて目的のデータ通信を行う。データ通信として、例えばメディア配信、IP電話、ビデオチャット、テレビ会議、その他データ転送が含まれる。データ通信処理部102は、セッション処理部104若しくはダミーパケット処理部110から伝送される他の端末のデータ通信用アドレスを取得することで、目的のデータ通信を行う。なお、データ通信処理部102は、セッション処理部104から伝送された暗号情報を用いて暗号化処理や復号処理を必要に応じて行う。
サーバ問合せ処理部103は、インターネット上に存在するNAT情報問合せサーバ3bに対し、NATによって変換されるIPアドレス及びポート番号のアドレス変換情報について、問合せのパケットを通信制御装置203で送信し、その応答を受信することで取得する。なお、送信の際には、直後のデータ通信で使用するIPアドレスとポート番号を用いる。データ通信で使用するIPアドレスとポート番号との組ではないアドレスを使用すると、NATが後述するコーン型NATであっても異なるアドレス変換を行うためである。端末1は、問合せの結果と、後述するルータ制御処理部108のNATへの処理結果により、NATの型を判別することが可能となる。NATの型の判別方法についても後述する。
セッション処理部104は、セッション処理部104の起動と同時に、セッション管理サーバ3aへ端末1の位置情報を登録するメッセージを通信制御装置203で送信する。位置情報として、具体的には端末1のIPアドレス及びセッション処理部104が使用するポート番号を最低限登録する。登録する情報は、利用する通信システムにより異なる。そして、他の端末とデータ通信を開始する場合若しくは他の端末からデータ通信をする旨の要求を、セッション管理サーバ3aから受信した場合には、他の端末とデータ通信を行うために必要な制御情報についてセッション管理サーバ3aを介して他の端末と交換する。制御情報として、データ通信用アドレスやNAT情報、暗号情報等を交換する。
また、他の端末へのデータ通信用アドレスの通知方法を、交換したNAT情報と主記憶装置202若しくは外部記憶装置205で保持する図7、図8の対応表とから決定する。図7、図8については後述する。決定したデータ通信用アドレスの通知方法も制御情報として他の端末へ送信する。
そして、他の端末から通知されたデータ通信用アドレスや暗号情報等をデータ通信処理部102へ伝送する。また、NAT情報の交換により、他の端末とのデータ通信の前にダミーパケットを送受信する必要があると判断した場合には、後述するダミーパケット処理部110にダミーパケットの処理を依頼する。
ルータ制御処理部108は、通信制御装置203を用いてNAT機能付きルータへのWAN側IPアドレスの取得、及び外部から端末1へのポートフォワード設定の要求をルータに対し行う。WAN側IPアドレス取得、及びポートフォワード設定の実現方法として、例えばUPnPのIGDによって行うことが可能である。UPnPのIGDを使用する場合には、NATがUPnPのIGDに対応している必要がある。
中継サーバ問合せ処理部106は、セッション処理部104が中継サーバ方法によるNAT越え以外にNAT透過ができないと判断した場合に呼び出され、データ通信用中継サーバ3cにグローバルアドレスの割り当て要求を通信制御装置203により行い、割当てられたグローバルアドレスを取得する。取得したグローバルアドレスはデータ通信を行う他の端末に通知するため、セッション処理部104へ伝送する。中継サーバ方法として、TURNやRSIPなどを使用することが考えられる。
ダミーパケット処理部110は、端末1が他の端末とNATを透過してデータ通信を行うのに先立ち、ダミーパケットを送信する必要があるとセッション処理部104が判断したときに、通信制御装置203によりダミーパケットの送信を行う。また、データ通信を行う他の端末からダミーパケットを受信した時には、ダミーパケットのヘッダ情報のうち、送信元IPアドレス及び送信元ポート番号の各値を参照し、適宜データ通信処理部102に各値を伝送する。
図1の端末1a〜1gのように、各NAT環境にある端末がデータ通信を開始するまでのNAT越えの処理フローを説明する。
図4は、データ通信を開始しようとする端末(マスタ端末)と、データ通信の開始を受け付ける端末(スレーブ端末)が実行する処理のフローチャート例を示す。また、マスタ端末及びスレーブ端末はそれぞれ、図2に示した機能ブロックを備えるものとする。
まず、マスタ端末及びスレーブ端末は、データ通信に先立ち、各端末がWANへの通信の際に使用するNATの情報についてサーバ問合せ処理部103及びルータ制御処理部108を用いてS300及びS310で取得する。NATの情報及びNAT情報取得の処理の詳細については、後述する。
なお、S300、S310の各処理は、マスタ端末、スレーブ端末がネットワーク接続時または電源起動時に行うことも可能であり、この場合、NATの情報取得の処理によってデータ通信の開始時間に影響を与えない。
次に、S301にてマスタ端末のセッション処理部104が、セッション管理サーバ3a経由でスレーブ端末に対し通信開始要求のメッセージを送信する。このとき、メッセージには、マスタ端末に係るNAT情報を付加させる。SIPプロトコルを使用した場合、通信開始要求のメッセージはINVITEメッセージに該当し、NAT情報はSIPメッセージのヘッダ部やボディ部に付加させることが考えられる。NAT情報の内容は、例えば図5の表の通知番号の中から選択する。
図5は、NATの種類に対応する通知番号の例を示す。
図5において、「リモートポートフォワード設定可能なNAT」とは、マスタ端末のルータ制御処理部108にてUPnPのIGDなどを用いてポートフォワード設定を行い、設定したグローバルなデータ通信用アドレスを取得することができるNATを意味する。「コーン型NAT」とは、同一のLAN側IPアドレス及びポート番号からの全てのリクエストが同一のWAN側IPアドレス及びポート番号にマッピングされるNATを意味する。「対称型NAT」とは、同一のLAN側IPアドレス及びポート番号から特定の宛先IPアドレス及びポート番号への全てのリクエストが、同一のWAN側IPアドレス及びポートにマッピングされるNATを意味する。
スレーブ端末のセッション処理部104は、S311で、S301でマスタ端末から送信された通信開始要求及びNAT情報をセッション管理サーバ3a経由で受信する。
なお、このとき、スレーブ端末がNAT機能付きルータのLAN側に接続しており、プライベートIPアドレスしか持たない場合には、セッション管理サーバ3aからスレーブ端末への通信ができない場合がある。この場合の対処方法の例としてSIPプロトコルを使用する場合を説明する。SIPプロトコルの場合、各機器が通信を行う前にセッション管理サーバ3aに所定の情報を登録するメッセージ(REGISTERメッセージ)を送信する。そして、メッセージ送信後一定時間はNAT機能付きルータの通信キャッシュに通信記録が残されているため、REGISTERメッセージのヘッダ情報にある送信元アドレス情報を参照することでセッション管理サーバ3aからスレーブ端末へ通信をすることができる。また、一定時間後ルータの通信キャッシュから通信記録が消去された場合には、ルータの実装によってはセッション管理サーバ3aからの通信がNATで遮断されるが、例えばスレーブ端末がREGISTERメッセージ送信後一定時間ごとにダミーのパケットをセッション管理サーバ3aに送信することでルータの通信キャッシュの通信記録を保持することができる。
S312において、S311で受信したマスタ端末のNAT情報とS310で取得したスレーブ端末自身のNAT情報とから例えば図8に従って、スレーブ端末がデータ通信(データチャネル)用アドレスの通知方法(NAT越え方法)を決定する。データ通信用アドレスの通知方法を決定する理由は、スレーブ端末がNAT環境下にある場合、スレーブ端末自身がもつプライベートIPアドレスをマスタ端末にデータ通信用アドレスとして通知してもこのアドレスではデータ通信できないためである。
図8は、S311で受信したマスタ端末のNAT情報に係る通知番号と、S310で取得したスレーブ端末のNAT情報とから、データ通信用アドレスの通知方法の番号を決定するため表の例を示す。
図6は、図8の通知番号の内容を示し、マスタ端末に通知するデータ通信用アドレスの通知方法について4つに分類し番号付けをした例を示している。通知方法には優先順位があり、番号の数字が小さい通知方法を優先し使用する。優先順位は、通知方法の通信時間若しくは通信処理負担の小さい順になっている。
図6の「#1」の方法は、スレーブ端末自身がもつデータ通信用アドレスを通知する方法であり、スレーブ端末がグローバルIPアドレスを保持している場合に選択する。
「#2」の方法は、ルータ制御処理部108によってNAT機能付きルータにデータ通信用アドレスの割当て処理を行い、割当てられたデータ通信用アドレスを通知するもので、同一LAN内にあるNAT機能付きルータに対する通信処理のみであり、通信時間は殆どかからないため2番目の優先順位となる。
「#3」の方法は、S314ではデータ通信用アドレスをマスタ端末に通知せず、ダミーパケット処理部110にてダミーパケットを送信することによりマスタ端末にデータ通信用アドレスを通知するので、WANでの通信を含むため3番目の優先順位になっている。
「#4」の方法は、スレーブ端末のサーバ問合せ処理部103がデータ通信の際に使用するポート番号でNAT情報問合せサーバ3bにNATのアドレス変換情報を問い合わせ、通知されたアドレスをデータ通信用アドレスとしてマスタ端末に通知するものであり、NAT情報問合せサーバ3bを使用する必要があることと、データ通信の際に通過するNAT(ルータ)の種類によってはデータ通信時にNATの通信キャッシュに通信記録を作成するためにダミーパケットを送信する必要が生じることから4番目の優先順位となる。「#5」の方法は、データ通信用中継サーバ3cからグローバルなデータ通信用アドレスを割当ててもらい、データ通信用アドレスをマスタ端末に通知する方法であり、データ通信にあたってデータ通信用中継サーバ3cが転送処理を行うことから通信処理負担が高く、よって優先順位が一番低い。
例えば図8の事例番号#3、#4では、スレーブ端末のNAT情報がリモートポートフォワード設定不可なNATであり、スレーブ端末は図6の#1や#2の方法は使用できない。しかし、マスタ端末のNAT情報がNAT無し若しくはリモートポートフォワード設定可能なNATであることにより、スレーブ端末はマスタ端末がS305で通知するグローバルなデータ通信用アドレスにダミーのパケットを送信することで、パケットのヘッダ情報により、マスタ端末に対しグローバルなデータ通信用アドレスを通知することができるので、図6の#3の方法が選択される。
図4に説明を戻して、次にS313では、S312で決定したデータ通信用アドレスの通知方法を示す通知番号に従い、必要であればNATの持つグローバルIPアドレス及びポート番号の組を取得する。例えば、通知番号が図6の#2の場合には、UPnPのIGD等によるNATへのポートフォワード設定を行い、通知番号が#4の場合には、NAT情報問合せサーバ3bからNATによって変換されたアドレス情報を取得する。そして通知番号が#5の場合には中継サーバへデータ通信用アドレスの割当て要求を行い、データ通信用アドレスを確保する。なお、通知番号が#3の場合にはS313では処理を行わず、S316にてマスタ端末にダミーパケットを送信することでデータ通信用アドレスを通知する。
そしてS314で、S312で決定した通知方法の通知番号を通知する。また、通知番号が#1、#2、#4、#5である場合は、S313で取得したデータ通信用アドレスも合わせて通知する。なお、SIPプロトコルを用いた場合、S314で送信する情報は、マスタ端末からのINVITEメッセージに対する2000Kメッセージと共に通知することが考えられる。
マスタ端末のセッション処理部104は、S302で、スレーブ端末からスレーブ端末がS314で送信した情報を受信する。
S303で、情報のうち図6の通知番号とS301で通知したNAT情報とから、例えば図7に従って、スレーブ端末に通知するデータ通信用アドレスの通知方法を決定する。
図7は、S301での通知番号と、S314での通知番号の情報とから、図6で示したデータ通信用アドレス通知方法を、優先順位を考慮して選択するための表の例を示す。
そしてS304で、S303で決定したデータ通信用アドレスの通知方法に従い、マスタ端末は必要であればNATの持つグローバルIPアドレス及びポート番号の組を取得する。
次に、S305でスレーブ端末がS314で実行した処理と同様、マスタ端末は、S303で決定した図6の通知番号と、S304で取得したデータ通信用アドレスを通知する。なお、SIPプロトコルを用いた場合、S304で送信する情報は、マスタ端末からの2000Kメッセージに対するACKメッセージと共に送信することが考えられる。
S306、S315では、必要に応じてマスタ端末とスレーブ端末が互いにダミーパケットを送受信する。ダミーパケットの送受信の目的として、一つはデータ通信用アドレスを通知することであり、もう一つはNAT機能付きルータの通信キャッシュに通信記録を残すことにより通信相手からのパケット送信を可能にすることである。図6の#3の方法を選択したマスタ端末若しくはスレーブ端末は、前者の目的としてS306、S315にてダミーパケットの送信を行う。そして図6の#4を選択したマスタ端末若しくはスレーブ端末は、後者の目的としてS306、S315にてダミーパケットの送信を行う。図6の#4の方法の場合、マスタ端末とスレーブ端末との通信記録がNATの通信キャッシュにないことにより、データ通信がNATで遮断される可能性があることから実行している。
以上の処理の実行により、S307とS317でマスタ端末とスレーブ端末との間でデータ通信が開始することができる。
次にS300及びS310でのNAT情報の取得の処理手順について説明する。
図9は、S300及びS310の詳細として、端末とNAT機能付きルータとNAT情報問合せサーバ3bとの間でのNAT情報取得の処理シーケンスを示す。なお、図9では端末とNAT情報問合せサーバとの間にNAT機能付きルータは一つしか記載していないが、多段にある場合であっても以下の処理は変更なく実行できる。以下図9を用いて処理を説明する。
まず、S500で端末は自身が持つIPアドレスがグローバルIPアドレスかどうかを判定する。判定はIPアドレスの数値から判定することができる。判定によりグローバルIPアドレスと判定した場合には、端末のNAT情報は図5の#1に該当すると判断し、図9の処理を終了する。
S501、S502、S503、S512、S513は、NAT情報が図5の#2に該当するかどうかを判断するための処理である。具体的には、S501で端末がUPnPにより同一LAN内にあるNAT機能付きルータに対しWAN側のIPアドレス情報の問合せを行い、NAT機能付きルータはUPnPのIGDに対応している場合にはS512、S513にてWAN側のIPアドレスを端末に通知する。情報をS501で受信した端末は、通知されたWAN側のIPアドレスがグローバルIPアドレスかどうかを判定する。そしてグローバルIPアドレスであれば端末のNAT情報は図5の#2に該当すると判断し、処理を終了する。逆にS501でNAT機能付きルータがUPnPのIGDに対応しておらず応答がない場合や、WAN側のIPアドレスがプライベートIPアドレスである場合には、端末のNAT情報は図5の#2には該当しないと判断し、S504の処理に移る。
次にS504からS507では、NAT機能付きルータがコーン型NATか対称型NATか(図5の#3か#4か)を判定するための処理を行う。具体的には端末が同じIPアドレスとポート番号を用いて異なる2つの宛先に通信を行う場合に、NAT機能付きルータでのアドレス変換に差異があるかどうかで判断する。差異がない場合にはNAT機能付きルータをコーン型NATとし、差異が生じる場合にはNAT機能付きルータを対称型NATとする。そのため図9では、S504でまずNAT情報問い合わせサーバのもつIPアドレスDに対しポート番号pdでS510のアドレス変換情報を問合せ、NAT情報問合せサーバ3bはS520、S521でS510のアドレスの変換情報を端末へ通知する。そしてS506で端末はNAT情報問合せサーバ3bに対し、S504とは別のIPアドレスEに対しポート番号pdでアドレス変換S511の情報を問合せるパケットを送信し、NAT情報問合せサーバ3bは、S522、S523において、パケットのヘッダを参照することにより、S511のアドレス変換情報を取得し、アドレス変換情報を端末へ送信する。端末はS505とS507で受信したアドレス変換S510とS511とで差異があるかどうかを確かめ、差異がない場合には端末のNAT情報は図5の#3に該当すると判断し、差異がある場合には端末のNAT情報は図5の#4に該当すると判断する。
以上によりマスタ端末、スレーブ端末の両端末がS300とS310とでNAT情報を取得することができる。
実施例1によれば、スレーブ端末とマスタ端末とで互いのNAT情報を交換することで、通信処理負担や通信時間の観点から事前に決定したデータ通信用アドレス通知方法(NAT越え方法)の優先順位に従い、通信を行うネットワーク環境に適用可能な優先度の高いNAT越え方法を選択し、通信試行をすることなくデータ通信を確立することができる。
実施例1では、マスタ端末及びスレーブ端末が同一LAN内に存在するかどうかによる処理の場合分けを行わなかった。しかし、例えば図1の端末1aと端末1bのようにマスタ端末とスレーブ端末が同一LAN内に存在する場合には、両端末がプライベートIPアドレス同士であっても通信可能である。場合において、実施例1の処理を適用すると、端末1aと端末1bとのデータ通信がルータ2a、ルータ2b、そして場合によりデータ通信用中継サーバ3cを介してのデータ通信となり、処理負担や通信時間が多くかかる。よって、実施例2ではマスタ端末とスレーブ端末とが同一LAN上にあるかの判定処理を実施例1の処理に含め、判定処理によりマスタ端末とスレーブ端末とが同一LAN内である場合、マスタ端末及びスレーブ端末は、各端末がもつプライベートIPアドレスを用いてデータ通信を開始する。
実施例2の処理フローを図10に示す。以後、図10を用いて実施例2で必要な処理を説明する。ステップ番号が図4と共通の処理については説明を省略する。
S601でマスタ端末は、通信開始要求メッセージにS300で取得したNAT情報を含めると同時に、マスタ端末自身の持つIPアドレスとMACアドレスも含めスレーブ端末へ送信する。なお、NAT情報は、図5の通知番号の他に、S300で行う図9のS502、S505、S506のいずれかの処理で取得したNAT機能付きルータのグローバルIPアドレスも通知する。なお、S500でマスタ端末自身がグローバルIPアドレスを持つと判断した場合には、S601の処理は行わず図4のS301の処理に移行する。
S611でマスタ端末のIPアドレス及びMACアドレス、図5のNAT情報に係る通知番号、そしてNAT機能付きルータのグローバルIPアドレスを取得したスレーブ端末は、S612でグローバルIPアドレスと、S310で取得したグローバルIPアドレスとの値を比較し、異なる場合には同一LAN内ではないと判断し、実施例1のS312の処理へ移行する。逆にグローバルIPアドレスが一致する場合は同一LAN内である可能性があるとみなしS613へ処理を移行する。
次にS613で、スレーブ端末はマスタ端末が同一LAN内にいるか確かめるため、S611で受信したマスタ端末のIPアドレス宛にARPパケットを同一LAN上にブロードキャストで送信する。そしてマスタ端末が同一LAN内にあればS602、S603でマスタ端末がMACアドレスをARPパケットの応答として送信する。
S614でMACアドレスをマスタ端末から受信したスレーブ端末は、S611でマスタ端末から受信したMACアドレスと比較し、同一であればマスタ端末は同一LAN内に存在すると判断する。
S614でマスタ端末と同一LANにいると判断したスレーブ端末は、S615でスレーブ端末自身が持つプライベートIPアドレスとポート番号の組をデータ通信用アドレスとしてデータ通信用アドレス通知方法と共にマスタ端末に通知する。マスタ端末も同様にS605でマスタ端末自身が持つプライベートIPアドレスとポート番号の組をデータ通信用アドレスとして後述するデータ通信用アドレス通知方法と共に送信する。
実施例2で使用するデータ通信用アドレス通知方法の通知番号は、図11の中から選択する。
図11は、図6に記載のアドレス通知方法に、同一LAN内であった場合のアドレス通知方法を#2として加えたものである。同一LAN内であった場合のアドレス通知方法は、データ通信用アドレスを取得する処理が必要ないので、UPnPのIGDなどを用いてNAT機能付きルータにリモートポートフォワード設定を行う図11の#3(図6の#2)の方法よりも優先して適用する。
なお、同一LANでなかった場合のデータ通信用アドレス通知方法の決定方法については、実施例1と同様に図7、図8の対応表を用いる。ただし、図11の#3、#4、#5、#6については、図6にある各方法に振られた番号#2、#3、#4、#5に読み替えて図7、図8を用いる。
以上により、本実施例2によれば、データ通信を行う2端末が同一LAN内であった場合に、2端末が持つプライベートIPアドレスを含むデータ通信用アドレスを交換することにより、データ通信用中継サーバ3cやNAT情報問合せサーバ3bなどの他の端末に負担をかけることなくデータ通信を行うことができる。
実施例3では、セッション管理サーバ3aが各端末のNAT情報を保持することにより、適切なNAT越え方法を決定する。これにより、実施例1、実施例2とは異なりマスタ端末やスレーブ端末がデータ通信用アドレスの通知方法の決定処理を行うことなくセッション管理サーバ3aで一括して決定することができる。
実施例3の処理シーケンスを図12に示す。以後図12を用いて本実施例の処理手順を説明する。ステップ番号が図4と共通の処理については説明を省略する。
S701とS721にて、マスタ端末およびスレーブ端末はNAT情報をそれぞれセッション管理サーバ3aに登録する。登録するNAT情報は図5に示した内容と同等のものを登録する。なお、登録するNAT情報は、例えばSIPプロトコルを用いた場合には、位置情報を登録する際に送信するREGISTERメッセージの中に含めてセッション管理サーバ3aに通知してもよい。
S702でマスタ端末がスレーブ端末へ通信の開始要求メッセージをセッション処理部104から送信する。セッション管理サーバ3aは、S701の要求を受信後、S710で保存したマスタ端末とスレーブ端末のNAT情報を用いることで、スレーブ端末で行うべきデータ通信用アドレスの通知方法を、実施例1と同様に図8の対応表に従い決定し、マスタ端末で行うデータ通信用アドレスの通知方法もマスタ端末のNAT情報及びスレーブ端末で行うデータ通信用アドレスの通知方法とから図7の対応表に従い決定する。
S712でスレーブ端末のアドレス取得方法の情報とマスタ端末からのダミーパケット送受信の有無をS702でマスタ端末が送信した開始要求メッセージに追加しスレーブ端末へ転送する。ダミーパケット送受信の有無は、マスタ端末及びスレーブ端末で行うデータ通信用アドレスの通知方法が図6の番号3、番号4の場合は、通知方法を実行する端末がダミーパケットを送信することから判断可能である。
S722でデータ通信用アドレス通知方法等の情報を受信したスレーブ端末は、通知方法に従い、S723で実施例1のS313と同様、データ通信用アドレスの取得処理を行う。そしてS314と同様、スレーブ端末はS724にて通信開始応答と共にデータ通信用アドレスを通知する。ただし、S314で通知したデータ通信用アドレスの通知方法の情報は含める必要はない。
S713でセッション管理サーバ3aは、スレーブ端末がS724で送信した情報をマスタ端末へ転送する。転送の際、S712と同様に、セッション管理サーバ3aはS724で送信した情報にマスタ端末が行うべきデータ通信用アドレスの通知方法とダミーパケット送受信の有無に関する情報を追加し転送する。
マスタ端末はS703でセッション管理サーバがS713で送信した情報を取得し、情報のうちデータ通信用アドレスの通知方法の情報に従いS723と同様にデータ通信用アドレスの取得処理を行う。そして、必要であればスレーブ端末の通信開始応答に対するACKメッセージの送信処理をマスタ端末が送信しスレーブ端末が受信する(S705、S714、S725)。
S722及びS703にてセッション管理サーバ3aから通知されたダミーパケット送受信の有無に関する情報に基づき、S306及びS316でマスタ端末とスレーブ端末が必要に応じダミーパケットの送受信処理を行う。
実施例3によれば、マスタ端末及びスレーブ端末にてNAT情報等の通知処理を行わず、またデータ通信用のアドレス通知方法の決定処理をマスタ端末とスレーブ端末とで行うことなく、実施例1と同様、NATを透過してデータ通信を行うことができる。なお、実施例3に実施例2で加えた処理を追加することにより、実施例2と実施例3とを組み合わせて実施することも可能である。
実施例1では、データ通信前の制御情報交換において、マスタ端末からの通信開始要求メッセージに対する応答メッセージ(図4におけるS314)でスレーブ端末はデータ通信用のアドレスをマスタ端末に通知し、応答メッセージに対するACKメッセージ(図4におけるS305)でマスタ端末はデータ通信用アドレスをスレーブ端末に通知した。
しかし、通信するアプリケーションによっては、マスタ端末からの通信開始要求メッセージ(図4におけるS301)においてマスタ端末がデータ通信用のアドレスを通知する必要がある場合もあり得る。このような場合に対応するため、本実施例では通信開始要求メッセージにてマスタ端末のデータ通信用アドレスを通知する場合への対処を実施例4として述べる。
実施例4の処理シーケンスを図13に示す。以後図13を用いて本実施例の処理手順を説明する。ステップ番号が図4と共通の処理については説明を省略する。
マスタ端末はS300で取得したNAT情報からデータ通信用アドレス通知方法を暫定的に決める(S801)。具体的には取得したNAT情報が、図5の#1に該当する場合には図6の#1を選択、図5の32に該当する場合には図6の#2を選択、図5の#3に該当する場合には図6の#4を選択、図5の#4に該当する場合には図6の#5を選択する。
S802において、マスタ端末は、S801で決定したデータ通信用アドレス通知方法に従い、データ通信用アドレスの取得処理を行う。そしてS803でマスタ端末はスレーブ端末に対し通信開始要求のメッセージ中に、S300で取得したNAT情報とS802で取得したデータ通信用アドレスとの情報を含め送信する。
S804にてスレーブ端末のデータ通信用アドレス通知方法の情報を取得したマスタ端末は、S805でデータ通信用アドレスの通知方法を決定する。決定方法は実施例1のS303と同様に図7を用いることで決定する。S804で決定したデータ通信用アドレス通知方法とS801で暫定したデータ通信用アドレス通知方法が異なる場合には、S804で決定したデータ通信用アドレス通知方法を優先する。
具体的に例えば図7の#9の場合には、マスタ端末はS300で取得したNAT情報に従いS802でデータ通信用中継サーバ3cからデータ通信用アドレスの取得を行い、S803でアドレスをスレーブ端末に通知する。しかしこの場合、S804で決定したデータ通信用アドレス通知方法は図6の#3の方法であるので、データ通信においては、S306にて送信するダミーパケット送信によってスレーブ端末へ通知するデータ通信用アドレスを用いる。
実施例4によれば、スレーブ端末の通信開始要求メッセージ送信時にデータ通信用アドレスを同時に通知するようなアプリケーションであっても、優先順位に従い適用可能な優先度の高いデータ通信用アドレスの通知方法(NAT越え方法)を選択し、かつ通信試行をすることなく必ずデータ通信を確立することができる。
ネットワーク構成例を示すブロック図。 端末の機能ブロック構成例を示すブロック図。 端末のハードウェア構成例を示すブロック図。 実施例1の処理の流れの例を示すフローチャート。 図4のS301でマスタ端末が送信するNATの種類と対応する通知番号の例を示す表。 図4のS305及びS314でスレーブ端末とマスタ端末が通知するデータ通信用アドレスの通知方法と対応する通知番号の例を示す表。 図4のS301とS314との情報からマスタ端末がデータ通信用アドレスの通知方法に係るS305で通知する通知番号を決定するための対応例を示す表。 図4のS310とS311とで取得した情報からスレーブ端末がS314で通知する通知番号を決定するための対応例を示す表。 図3のS300又はS310の処理の詳細例を示すフローチャート。 実施例1の処理の流れの例を示すフローチャート。 図10のS615とS605において、スレーブ端末とマスタ端末が通知するデータ通信用アドレスの通知方法と対応する通知番号の例を示す表。 実施例3の処理の流れの例を示すフローチャート。 実施例4の処理の流れの例を示すフローチャート。
符号の説明
1a〜1g:端末、2a〜2d:NAT機能付きルータ、3a:セッション管理サーバ、3b:NAT情報問合せサーバ、3c:データ通信用中継サーバ、4:通信回線、101:端末、102:データ通信処理部、103:サーバ問合せ処理部、104:セッション処理部、106:中継サーバ問合せ処理部、108:ルータ制御処理部、110:ダミーパケット処理部、201:CPU、202:主記憶装置、203:通信制御装置、205:外部記憶装置、206:入力装置、207:出力装置、208:バス。

Claims (26)

  1. 第1の端末と第2の端末との通信接続方法であって、
    前記第2の端末へ前記第1の端末からの通信接続要求及び当該第1の端末のNAT環境を示すNAT情報を送信し、
    前記第2の端末から当該第2の端末のNAT越え情報を受信し、
    前記受信した第2の端末のNAT越え情報に基づいて、前記第1の端末のNAT越え情報を決定する通信接続方法。
  2. 請求項1の通信接続方法であって、さらに、
    前記決定した前記第1の端末のNAT越え情報に応じて、前記第2の端末へ送信するデータ通信用アドレスを決定する。
  3. 請求項2の通信接続方法であって、さらに、
    前記決定した前記第1の端末のNAT越え情報と、前記決定したデータ通信用アドレスとを前記第2の端末に送信する。
  4. 請求項1の通信接続方法であって、
    前記第2の端末へ前記第1の端末からの通信接続要求及び当該第1の端末のNAT情報と共に、当該第1の端末に対応するIPアドレス及びMACアドレスを送信し、
    前記第2の端末から前記IPアドレス宛の通信に対して当該第1の端末のMACアドレスを応答する。
  5. 請求項1の通信接続方法であって、
    前記第2の端末へ前記第1の端末からの通信接続要求及び当該第1の端末のNAT情報と共に、第1のデータ通信用アドレスを送信し、
    前記決定した前記第1の端末のNAT越え情報に応じて、前記第2の端末へ送信するデータ通信用アドレスを変更する。
  6. 請求項1から5のいずれかの通信接続方法であって、さらに、
    前記決定した前記第1の端末のNAT越え情報に応じて、前記第1の端末から前記第2の端末へダミーパケットを送信する。
  7. 請求項1から6のいずれかの通信接続方法であって、
    前記第1の端末のNAT情報がリモートでポートフォワード設定不可なNATの環境下にあるとき、前記第2の端末のNAT越え情報が端末自身のデータ通信用アドレスを通知する旨又はNATへリモートでのポートフォワード設定を行い設定したNATのグローバルなアドレスを通知する旨又は中継サーバから割当てられるグローバルなアドレスを通知する旨であるときには、前記第1の端末のNAT越え情報をデータ通信前のダミーパケット送信によるグローバルな通信用アドレスを通知する旨に決定する。
  8. 請求項1から6のいずれかの通信接続方法であって、
    前記第1の端末のNAT情報がリモートでポートフォワード設定不可なコーン型NATの環境下にあるとき、前記第2の端末のNAT越え情報がアドレス問合せサーバから取得したグローバルなアドレスを通知する旨であるときには、前記第1の端末のNAT越え情報をアドレス問合せサーバから取得したグローバルなアドレスを通知する旨に決定する。
  9. 請求項1から6のいずれかの通信接続方法であって、
    前記第1の端末のNAT情報がリモートでポートフォワード設定不可な対称型NATの環境下にあるとき、前記第2の端末のNAT越え情報がアドレス問合せサーバから取得したグローバルなアドレスを通知する旨であるときには、前記第1の端末のNAT越え情報を中継サーバから割当てられるグローバルなアドレスを通知する旨に決定する。
  10. 第1の端末と第2の端末との通信接続方法であって、
    前記第1の端末からの通信接続要求及び当該第1の端末のNAT環境を示すNAT情報を受信し、
    当該受信した第1の端末のNAT情報と前記第2の端末のNAT環境を示すNAT情報とに基づいて当該第2の端末のNAT越え情報を決定し、
    当該決定した前記第2の端末のNAT越え情報を送信する通信接続方法。
  11. 請求項10の通信接続方法であって、さらに、
    前記第1の端末からの通信接続要求及び当該第1の端末のNAT情報と共に、前記第1の端末に対応するIPアドレス及びMACアドレスを受信し、
    当該IPアドレスが前記第2の端末に対応するIPアドレスと一致するかを判断する。
  12. 請求項11の通信接続方法であって、さらに、
    前記IPアドレスが一致する場合には、当該IPアドレス宛の通信を送信し、
    前記IPアドレスが一致しない場合には、前記受信した第1の端末のNAT情報と前記第2の端末のNAT情報とに基づいて当該第2の端末のNAT越え情報を決定する。
  13. 請求項12の通信接続方法であって、さらに、
    前記IPアドレス宛の通信に対する応答に含まれるMACアドレスと、前記第1の端末からの通信接続要求及び当該第1の端末のNAT情報と共に受信したMACアドレスとが一致するかを判断する。
  14. 請求項13の通信接続方法であって、さらに、
    前記MACアドレスが一致する場合には、前記第2の端末のプライベートアドレスを前記第1の端末へ送信し、
    前記MACアドレスが一致しない場合には、前記受信した第1の端末のNAT情報と前記第2の端末のNAT情報とに基づいて当該第2の端末のNAT越え情報を決定する。
  15. 請求項10から14のいずれかの通信接続方法であって、
    前記送信した前記第2の端末のNAT越え情報に応じて、前記第1の端末のNAT越え情報を受信する。
  16. 請求項10から15のいずれかの通信接続方法であって、
    前記受信した第1の端末のNAT情報がリモートでポートフォワード設定不可なNAT環境下であるとき、前記第2の端末のNAT情報がリモートでポートフォワード設定可能なNATであるときには前記第2の端末のNAT越え情報をNATへリモートでのポートフォワード設定を行い設定したNATのグローバルなアドレスを通知すると決定し、前記第2の端末のNAT情報がリモートでポートフォワード設定不可なコーン型NATであるときには前記第2の端末のNAT越え情報をアドレス問合せサーバから取得したグローバルなアドレスを通知すると決定し、前記第2の端末のNAT情報がリモートでポートフォワード設定不可な対象型NATであるときには中継サーバから割当てられるグローバルなアドレスを通知すると決定する。
  17. 第1の端末と第2の端末との通信接続方法であって、
    前記第1の端末から前記第2の端末への通信接続要求及びNAT越え情報を前記第2の端末へ送信し、
    前記第2の端末から当該第2の端末のデータ通信用アドレスを受信し、
    前記第1の端末へ前記NAT越え情報と前記第2の端末のデータ通信用アドレスとを送信する通信接続方法。
  18. 請求項17の通信接続方法であって、
    前記第1の端末から前記第2の端末への通信接続要求を前記第1の端末から受信し、
    前記第1の端末のNAT環境を示すNAT情報と前記第2の端末のNAT環境を示すNAT情報とを比較して、前記NAT越え情報を決定する。
  19. 請求項1から15のいずれかの通信接続方法であって、
    前記NAT情報は、NATなしである旨、リモートでポートフォワード設定可能なNATである旨、リモートでポートフォワード設定不可なコーン型NATである旨、リモートでポートフォワード設定不可な対象型NATである旨のうち一つを含む。
  20. 請求項1から19のいずれかの通信接続方法であって、
    前記NAT越え情報は、データ通信用アドレスの通知方法を含む。
  21. 請求項20の通信接続方法であって、
    前記NAT越え情報は、端末自身のデータ通信用アドレスを通知する旨、NATへリモートでのポートフォワード設定を行い設定したNATのグローバルなアドレスを通知する旨、データ通信前のダミーパケット送信によるグローバルな通信用アドレスを通知する旨、アドレス問合せサーバから取得したグローバルなアドレスを通知する旨、中継サーバから割当てられるグローバルなアドレスを通知する旨のうち一つを含む。
  22. 通信装置であって、
    ネットワーク上に存在するサーバを介する第1の通信方法により前記通信装置の第1のNAT情報と他の通信装置の第2のNAT情報とを交換するNAT情報交換部と、
    前記NAT情報交換部で交換したNAT情報に基づき、前記他の通信装置が前記サーバを介さない第2の通信方法で前記通信装置へ通信可能なデータ通信用アドレスを通知する方法を決定するデータ通信用アドレス通知方法決定部とを有する通信装置。
  23. 請求項22の通信装置であって、
    前記データ通信用アドレス通知方法決定部で決定した前記データ通信用アドレス通知方法で前記他の通信装置へ第1のデータ通信用アドレスを通知するデータ通信用アドレス通知部と、
    前記他の通信装置が決定したデータ通信用アドレス通知方法で前記他の通信装置から通知された第2のデータ通信用アドレスを受信するデータ通信用アドレス受信部と、
    第1のデータ通信用アドレス及び前記第2のデータ通信用アドレスを用いてデータ通信を開始するデータ通信開始部とを有する通信装置。
  24. 請求項22又は23の通信装置であって、
    前記NAT情報交換部は、前記他の通信装置との通信開始要求において前記第1のNAT情報を前記第1の通信方法により前記他の通信装置へ送信し、前記他の通信端末が送信する前記通信開始要求に対する通信開始応答において前記第2のNAT情報を取得する。
  25. 請求項22又は23の通信装置であって、
    前記NAT情報交換部は、前記他の通信装置からの通信開始要求において前記第1の通信方法により前記第2のNAT情報を取得し、前記他の通信装置からの前記通信開始要求に対する通信開始応答で前記第1のNAT情報を送信する。
  26. 請求項22から25のいずれかの通信装置であって、
    前記データ通信用アドレス通知方法決定部は、前記NAT情報交換部により取得した前記第1のNAT情報と、前記第2のNAT情報と、データ通信用アドレス通知方法の優先順位と、からデータ通信用アドレス通知方法を決定する。
JP2007071738A 2007-03-20 2007-03-20 通信接続方法及び通信装置 Pending JP2008236278A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007071738A JP2008236278A (ja) 2007-03-20 2007-03-20 通信接続方法及び通信装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007071738A JP2008236278A (ja) 2007-03-20 2007-03-20 通信接続方法及び通信装置

Publications (1)

Publication Number Publication Date
JP2008236278A true JP2008236278A (ja) 2008-10-02

Family

ID=39908533

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007071738A Pending JP2008236278A (ja) 2007-03-20 2007-03-20 通信接続方法及び通信装置

Country Status (1)

Country Link
JP (1) JP2008236278A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011061594A (ja) * 2009-09-11 2011-03-24 Brother Industries Ltd 端末装置、通信方法、及び通信プログラム
JP2011077921A (ja) * 2009-09-30 2011-04-14 Brother Industries Ltd 通信システム
JP2011238162A (ja) * 2010-05-13 2011-11-24 Fujitsu Ltd ネットワーク装置および端末装置
WO2012046390A1 (ja) * 2010-10-07 2012-04-12 パナソニック株式会社 通信装置、通信方法、集積回路、およびプログラム
JP2012095209A (ja) * 2010-10-28 2012-05-17 Canon Inc 通信装置、通信装置の制御方法、通信システムおよびプログラム
US8954508B2 (en) 2010-10-28 2015-02-10 Canon Kabushiki Kaisha Communication apparatus, control method of communication apparatus, communication system, and program

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011061594A (ja) * 2009-09-11 2011-03-24 Brother Industries Ltd 端末装置、通信方法、及び通信プログラム
JP2011077921A (ja) * 2009-09-30 2011-04-14 Brother Industries Ltd 通信システム
JP2011238162A (ja) * 2010-05-13 2011-11-24 Fujitsu Ltd ネットワーク装置および端末装置
WO2012046390A1 (ja) * 2010-10-07 2012-04-12 パナソニック株式会社 通信装置、通信方法、集積回路、およびプログラム
US8761170B2 (en) 2010-10-07 2014-06-24 Panasonic Corporation Communication device, communication method, integrated circuit, and program
JP5771600B2 (ja) * 2010-10-07 2015-09-02 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 通信装置、通信方法、集積回路、およびプログラム
JP2012095209A (ja) * 2010-10-28 2012-05-17 Canon Inc 通信装置、通信装置の制御方法、通信システムおよびプログラム
US8954508B2 (en) 2010-10-28 2015-02-10 Canon Kabushiki Kaisha Communication apparatus, control method of communication apparatus, communication system, and program

Similar Documents

Publication Publication Date Title
JP4331154B2 (ja) 情報処理システム、トンネル通信装置、及びトンネル通信方法
TWI408936B (zh) 網路穿透方法及網路通訊系統
EP2890092B1 (en) Cooperative nat behavior discovery
US8050282B2 (en) Universal plug and play device and method of resolving network address conflict by considering remote access
US8799485B2 (en) Methods and apparatus for establishing network connections using an inter-mediating device
JP4784667B2 (ja) 端末装置とコンピュータプログラム
JP2007096827A (ja) 情報処理システム、トンネル通信装置、トンネル通信方法、代理応答装置、及び代理応答方法
JP2004363897A (ja) Ipマルチキャスト配信システム、ストリーミングデータ配信方法、及びそのプログラム
US20090043889A1 (en) Communication system, data processing apparatus, server, data processing method, program that executes the data processing method, and recording medium to record the program
US8832285B2 (en) Method and apparatus for providing remote access service
JP2008236278A (ja) 通信接続方法及び通信装置
WO2013121487A1 (ja) 情報処理装置、情報処理方法及びプログラム
KR20130052240A (ko) 네트워크 주소 변환기 통과 기법을 프로비저닝하기 위한 방법 및 장치
JP2015204626A (ja) 分割ネットワークアドレス変換
JP2010212793A (ja) 端末装置とコンピュータプログラム
JP2007049499A (ja) 通信方法および装置
JP2008147738A (ja) 通信方法、通信システム、機器、並びに端末
JP2008205676A (ja) 情報処理システム、情報処理装置、情報処理方法、及び情報処理プログラム
JP2004104357A (ja) ネットワークシステムおよび通信方法、情報処理装置および方法、並びにプログラム
JP2013172396A (ja) 通信装置及びプログラム
JP5054666B2 (ja) Vpn接続装置、パケット制御方法、及びプログラム
KR20170084626A (ko) 멀티스크린 제공을 위한 스크린 장치와 네트워크 주소 변환기 및 네트워크 주소변환 방법
WO2018142526A1 (ja) 中継装置、通信システム、及び通信方法
JP2005079672A (ja) Ipアドレス変換装置
JP2010045451A (ja) パケット振り分け装置、通信システム、パケット処理方法、及びプログラム