JP5010033B2 - 通信端末、アドレス解決サーバ、及びコンピュータプログラム - Google Patents

通信端末、アドレス解決サーバ、及びコンピュータプログラム Download PDF

Info

Publication number
JP5010033B2
JP5010033B2 JP2010537195A JP2010537195A JP5010033B2 JP 5010033 B2 JP5010033 B2 JP 5010033B2 JP 2010537195 A JP2010537195 A JP 2010537195A JP 2010537195 A JP2010537195 A JP 2010537195A JP 5010033 B2 JP5010033 B2 JP 5010033B2
Authority
JP
Japan
Prior art keywords
address
communication terminal
network
bundle
host
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.)
Expired - Fee Related
Application number
JP2010537195A
Other languages
English (en)
Other versions
JPWO2010143286A1 (ja
Inventor
恭一 寺尾
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.)
Pioneer Corp
Original Assignee
Pioneer Corp
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 Pioneer Corp filed Critical Pioneer Corp
Application granted granted Critical
Publication of JP5010033B2 publication Critical patent/JP5010033B2/ja
Publication of JPWO2010143286A1 publication Critical patent/JPWO2010143286A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2567NAT traversal for reachability, e.g. inquiring the address of a correspondent behind a NAT server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2582NAT traversal through control of the NAT server, e.g. using universal plug and play [UPnP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2521Translation architectures other than single NAT servers
    • H04L61/2535Multiple local networks, e.g. resolving potential IP address conflicts

Description

本発明は、例えば相手側端末と通信を行う通信端末であって、特に当該通信端末が属するネットワーク網と同一のネットワーク網に属する又は当該通信端末が属するネットワーク網とルータを介して直接的に若しくは間接的に接続される他のネットワーク網に属する相手側端末と通信を行う通信端末、このような通信端末に対して、相手側端末と通信を行うために必要な制御情報(例えば、ホストアドレス等)を通知するアドレス解決サーバ並びにコンピュータをこのような通信端末又はアドレス解決サーバとして機能させるコンピュータプログラムの技術分野に関する。
例えば、通信端末と相手側端末とがTCP/IPを用いて通信を行う場合、送信元である通信端末や送信先である相手側端末を識別するアドレスとしてIPアドレスが使用される。この場合、特に、通信端末や相手側端末を識別し易くするために、通信端末や相手側端末に対して独自のホスト名を割り当てると共に、当該ホスト名を用いて通信を行う手法が知られている(例えば、特許文献1及び2参照)。具体的には、例えば、通信端末が相手側端末のホスト名を用いて相手側端末との通信を行う場合には、DNS(Domain Name System)サーバが相手側端末のホスト名を相手側端末のIPアドレスに変換すると共に、該変換された相手側端末のIPアドレスを通信端末に通知する。その後、通信端末は、該変換された相手側端末のIPアドレスを送信先アドレスとして指定することで、相手側端末との通信を行う。これにより、通信端末のユーザは、該ユーザにとって相対的に識別し易いホスト名のみを用いて、相手側端末との通信を行うことができる。
ところで、IPアドレスには、グローバルアドレスとローカルアドレスとがある。グローバルアドレスは、世界的にユニークなアドレスである。一方、ローカルアドレスは、特定の通信ネットワークの中で独自に定められるアドレスである。更に、一般的なネットワークでは、グローバルアドレスを使用するグローバルネットワーク中に、ローカルアドレスを使用するローカルネットワークが複数存在する階層的なネットワーク構成を有している。この場合、上述したホスト名を使用した通信では、以下のような技術的な問題が生ずることがある。
具体的には、ローカルアドレスが「10.0.0.123」であり且つホスト名が「AA」であるサーバAとローカルアドレスが「10.0.0.30」である端末Aとを含むローカルネットワークが、LAN側アドレス(つまり、ローカルアドレス)が「10.0.0.1」であり且つWAN側アドレス(つまり、グローバルアドレス)が「123.45.67.89」であるNAT(Network Address Translation)ルータを介してグローバルネットワークに接続されており、またグローバルアドレスが「141.140.139.138」であるDNSサーバがグローバルネットワーク中に配置されているネットワーク構成において、端末Aがホスト名を用いてサーバAにアクセスする例を考える。この場合、端末Aは、ホスト名「AA」を提示してDNSサーバにアクセスすることで、サーバAにアクセスするためのIPアドレスをDNSサーバから取得する。この場合、DNSサーバは、ホスト名からグローバルアドレスへの変換を行うに過ぎないため、サーバAが属するローカルネットワークに含まれるNATルータのWAN側アドレスである「123.45.67.89」を、サーバAにアクセスするためのIPアドレスとして端末Aに通知する。その後、端末Aは、DNSサーバより通知を受けた「123.45.67.89」を送信先アドレスに設定した上で、データの送信を開始する。しかしながら、「123.45.67.89」というIPアドレスを有する機器がローカルネットワーク中に存在しないため、端末Aから送信されたデータはNATルータに送信される。この場合、端末Aから送信されたデータの送信先がNATルータのWAN側アドレスとなっているため、NATルータは、端末Aから送信されたデータが自分宛に送信されているものとして認識する。その結果、端末AからサーバAに対して送信されたデータが、サーバAに対して送信されなくなってしまう。
このような技術的な問題点を解決するために、例えば特許文献1には、各ローカルネットワーク中に固有のDNSサーバを設置する構成が開示されている。また、特許文献2には、グローバルネットワーク中に、ホスト名から変換されるグローバルアドレスを、更にローカルアドレスに変換する中継センタを備える構成が開示されている。
また、RFC(Request for Comment)−4787に規定されているヘアピン対応ルータによれば、自身のWAN側アドレス宛に送信されるデータを、ローカルアドレス宛に送信し直すことができる。
特開2001−320418号公報 特開2003−188901号公報
しかしながら、特許文献1に開示された構成によれば、ローカルネットワークの全てに固有のDNSサーバを設ける必要がある。このため、ネットワーク構成が増大してしまうと共に、必要なコストも増大してしまう。
また、特許文献2に開示された構成によれば、中継センタという特別なハードウェア(機器)を新たに設置する必要がある。このため、中継センタを設置するコストが増大してしまう。
また、ヘアピン対応ルータを用いる場合であっても、現状のネットワーク網に存在する全てのルータがヘアピン対応ルータではないため、その置き換えのコストが膨大なものとなってしまう。
本発明は、例えば上述した従来の問題点に鑑みなされたものであり、例えば異なる端末との間の通信を比較的容易に且つ相対的に低コストで行うことが可能な通信端末、異なる端末間の通信を比較的容易に且つ相対的に低コストで行わせることが可能なアドレス解決サーバ、及びコンピュータをこのような通信端末又はアドレス解決サーバとして機能させるコンピュータプログラムを提供することを課題とする。
上記課題を解決するために、本発明の通信端末は、同一のネットワーク網に属する又はルータを介して直接的に若しくは間接的に接続される他のネットワーク網に属する相手側端末と、前記相手側端末に固有のホスト名を用いて通信を行う通信端末であって、前記相手側端末との間の通信を行うために必要な制御情報を送信するアドレス解決サーバに対して前記相手側端末の前記ホスト名を提示することで、前記アドレス解決サーバより、前記アドレス解決サーバが属するグローバルネットワーク網から前記相手側端末に至るまでの間のネットワーク経路を示す第2アドレス束を前記制御情報として取得する取得手段と、前記取得手段により取得される前記第2アドレス束及び前記アドレス解決サーバが属するグローバルネットワーク網から前記相手側端末に至るまでの間のネットワーク経路を示す第1アドレス束に基づいて、当該通信端末と前記相手側端末との間のネットワーク上の位置関係を認識する認識手段と、前記認識手段により認識された当該通信端末と前記相手側端末との間のネットワーク上の位置関係に基づいて、前記取得手段により取得される前記第2アドレス束から前記相手側端末との間の通信に使用するホストアドレスを決定する決定手段とを備える。
上記課題を解決するために、本発明のアドレス解決サーバは、通信端末が、前記通信端末が属するネットワーク網と同一のネットワーク網に属する又は前記通信端末が属するネットワーク網とルータを介して相互に接続されるネットワーク網に属する相手側端末と、前記相手側端末に固有のホスト名を用いて通信を行うために必要な制御情報を送信するアドレス解決サーバであって、当該アドレス解決サーバが属するグローバルネットワーク網から前記相手側端末に至るまでの間のネットワーク経路を示すアドレス束を格納する格納手段と、前記相手側端末の前記ホスト名を提示した前記通信端末からのアドレス解決要求に応じて、前記アドレス束を前記制御情報として前記通信端末へ送信する送信手段とを備える。
上記課題を解決するために、本発明の第1のコンピュータプログラムは、本発明の通信端末に備えられたコンピュータを制御するコンピュータプログラムであって、該コンピュータを、前記取得手段、前記認識手段及び前記決定手段として機能させる。
上記課題を解決するために、本発明の第2のコンピュータプログラムは、本発明のアドレス解決サーバに備えられたコンピュータを制御するコンピュータプログラムであって、該コンピュータを、前記格納手段及び前記送信手段として機能させる。
本発明の作用及び他の利得は次に説明する実施の形態から明らかにされよう。
本実施例に係る通信システムの全体構成を概念的に示すブロック図である。 本実施例に係る通信システムが備える通信端末の基本構成を概念的に示すブロック図である。 本実施例に係る通信システムが備えるアドレス解決サーバの基本構成を概念的に示すブロック図である。 アドレス管理テーブルを概念的に示すデータ構造図である。 本実施例に係る通信システムの動作の流れを概念的に示すフローチャートである。 アドレス束の第1の調査・登録方法を実行する通信端末の基本構成を概念的に示すブロック図である。 第2の調査・登録方法が実行された結果取得されるアドレス束を含むアドレス管理テーブルを概念的に示すデータ構造図である。 第3の調査・登録方法を実行する通信システムの基本構成を概念的に示すブロック図である。 アドレス束がMACアドレスやNATルータのLAN側のIPアドレスを含んでいる場合の通信システムの動作を概念的に示すフローチャートである。 アドレス束がMACアドレスやNATルータのLAN側のIPアドレスを含んでいる場合の通信システムの動作を概念的に示すフローチャートである。 アドレス束がMACアドレスやNATルータのLAN側のIPアドレスを含んでいる場合の通信システムの動作を概念的に示すフローチャートである。 アドレス束がMACアドレスやNATルータのLAN側のIPアドレスを含んでいる場合の通信システムの動作を概念的に示すフローチャートである。
以下、発明を実施するための形態として、本発明の通信端末、アドレス解決サーバ、及びコンピュータプログラムに係る実施形態の説明を進める。
<1>
(通信端末の実施形態)
本発明の通信端末に係る実施形態は、同一のネットワーク網に属する又はルータを介して直接的に若しくは間接的に接続される他のネットワーク網に属する相手側端末と、前記相手側端末に固有のホスト名を用いて通信を行う通信端末であって、前記相手側端末との間の通信を行うために必要な制御情報を送信するアドレス解決サーバに対して前記相手側端末の前記ホスト名を提示することで、前記アドレス解決サーバより、前記アドレス解決サーバが属するグローバルネットワーク網から前記相手側端末に至るまでの間のネットワーク経路を示す第2アドレス束を前記制御情報として取得する取得手段と、前記取得手段により取得される前記第2アドレス束及び前記アドレス解決サーバが属するグローバルネットワーク網から当該通信端末に至るまでの間のネットワーク経路を示す第1アドレス束に基づいて、当該通信端末と前記相手側端末との間のネットワーク上の位置関係を認識する認識手段と、前記認識手段により認識された当該通信端末と前記相手側端末との間のネットワーク上の位置関係に基づいて、前記取得手段により取得される前記第2アドレス束から前記相手側端末との間の通信に使用するホストアドレスを決定する決定手段とを備える。
本発明の通信端末に係る実施形態によれば、相手側端末のホスト名をデータの送信先に指定することで、相手側端末と通信(例えば、データの送信)を行うことができる。尚、相手側端末は、通信端末が属するネットワーク網と同一のネットワーク網に属していてもよい。或いは、相手側端末は、通信端末が属するネットワーク網とルータを介して直接的に接続されるネットワーク網(つまり、通信端末が属するネットワーク網との間に1つのルータが介在するネットワーク網)に属していてもよい。或いは、相手側端末は、通信端末が属するネットワーク網とルータを介して間接的に接続されるネットワーク網(つまり、通信端末が属するネットワーク網との間に複数のルータが介在する又は更に他のネットワーク網が介在するネットワーク網)に属していてもよい。
本実施形態に係る通信端末は特に、相手側端末との通信を行うために、取得手段と、認識手段と、決定手段とを備えている。
取得手段は、アドレス解決サーバに対して相手側端末のホスト名を提示することで、アドレス解決サーバより、相手側端末のホスト名に対応する第2アドレス束を取得する。ここに、本実施形態に係る「アドレス解決サーバ」とは、ホスト名をアドレス束に変換するサーバを示す趣旨である。このようなアドレス解決サーバにより、通信端末(或いは、通信端末のユーザ)は、相手側端末のホストアドレス等を事前に認識する必要はなくなる。また、本実施形態に係る「アドレス束」とは、アドレス解決サーバが属するグローバルネットワーク網から端末(つまり、通信端末ないしは相手側端末)に至るまでの間のネットワーク経路を示す情報を意味する広い趣旨であって、ネットワーク経路を特定することができる限りはどのような情報であってもよい。典型的には、「アドレス束」は、アドレス解決サーバが属するグローバルネットワーク網から端末(つまり、通信端末ないしは相手側端末)に至るまでの間のネットワーク経路に存在する各種機器及び各種端末等のアドレス(例えば、IPアドレス等のホストアドレスや、MACアドレス等の機器アドレス)を一群として含むアドレス束である。
認識手段は、取得手段により取得される第2アドレス束及びアドレス解決サーバが属するグローバルネットワーク網から当該通信端末に至るまでの間のネットワーク経路を示す第1アドレス束の夫々に基づいて、通信端末と相手側端末との間のネットワーク上の位置関係を認識する。具体的には、例えば、認識手段は、通信端末が属するネットワーク網と相手側端末が属するネットワーク網の位置関係等を認識する。
尚、認識手段の動作に用いられる第1アドレス束は、上述した取得手段の動作によりアドレス解決サーバから取得されてもよい。或いは、後述する調査手段の動作(つまり、通信端末自身の動作)により取得されてもよい。或いは、その他の何らかの手段により取得されてもよい。
決定手段は、認識手段により認識された通信端末と相手側端末との間のネットワーク上の位置関係に基づいて、相手側端末との間の通信に使用するホストアドレス(つまり、データの送信先となるホストアドレス)を決定する。具体的には、例えば、通信端末と相手側端末とが同一のネットワーク網に属していると認識手段により認識されている場合には、相手側端末のホストアドレスをそのまま用いて相手側端末と通信を行うことができると考えられる。このため、この場合には、決定手段は、相手側端末のホストアドレスを、相手側端末との間の通信に使用するホストアドレスとして決定する。或いは、通信端末と相手側端末とが異なるネットワーク網に属していると認識手段により認識されている場合には、相手側端末のホストアドレスを用いるだけでは、相手側端末と通信を行うことができないと考えられる。このため、この場合には、決定手段は、相手側端末が属するネットワーク網に位置するルータの上位側ホストアドレス(例えば、WAN側ホストアドレス)を、相手側端末との間の通信に使用するホストアドレスとして決定する。或いは、通信端末と相手側端末とがその他の位置関係にある場合であっても、決定手段は、当該位置関係に応じて、相手側端末との間の通信を好適に行うことができるホストアドレスを決定することができる。
これにより、相手側端末がどのようなネットワーク網に属している場合であっても(言い換えれば、通信端末と相手側端末とがどのような位置関係にある場合であっても)、通信端末は、相手側端末との通信に必要なホストアドレスを好適に特定することができる。その結果、通信端末は、相手側端末との間の通信を好適に行うことができる。
加えて、本実施形態によれば、アドレス解決サーバに対して上述した動作を行うためのソフトウェアを組み込むと共に、端末(つまり、通信端末や相手側端末)に対して上述した動作を行うためのソフトウェアを組み込めば、上述した動作を行うことができる。従って、既存のネットワークに対して、新たなハードウェアを導入する必要がないという実践上大変有利な効果を享受することができる。つまり、上述した動作を行う通信端末(更には、アドレス解決サーバ)を低コストで導入することができるという実践上大変有利な効果を享受することができる。
<2>
本発明の通信端末に係る実施形態の一の態様では、前記第1アドレス束は、前記アドレス解決サーバが属するグローバルネットワーク網から当該通信端末に至るまでの間のネットワーク経路に存在するルータの上位側ホストアドレス及び当該通信端末のホストアドレスを、前記ネットワーク経路順に含み、前記第2アドレス束は、前記アドレス解決サーバが属するグローバルネットワーク網から前記相手側端末に至るまでの間のネットワーク経路に存在するルータの上位側ホストアドレス及び前記相手側端末のホストアドレスを、前記ネットワーク経路順に含み、前記認識手段は、前記第1アドレス束に含まれるホストアドレスと前記第2アドレス束に含まれるホストアドレスとを、前記ネットワーク経路の上位側から下位側に向けて順番に比較することで、当該通信端末と前記相手側端末との間のネットワーク上の位置関係を認識する。
この態様によれば、第1アドレス束には、アドレス解決サーバが属するグローバルネットワーク網から通信端末に至るまでの間のネットワーク経路に存在するルータの上位側ホストアドレス及び通信端末のホストアドレスが、アドレス解決サーバに近い側から順に又はアドレス解決サーバから遠い側から順に配列されたアドレス束が含まれている。同様に、第2アドレス束には、アドレス解決サーバが属するグローバルネットワーク網から相手側端末に至るまでの間のネットワーク経路に存在するルータの上位側ホストアドレス及び相手側端末のホストアドレスが、アドレス解決サーバに近い側から順に又はアドレス解決サーバから遠い側から順に配列されたアドレス束が含まれている。つまり、各アドレス束には、ネットワーク網の階層構造に対応する形式でアドレスが含まれている。その結果、第1アドレス束に含まれるルータの上位側ホストアドレスと第2アドレス束に含まれるルータの上位側ホストアドレスを比較したり、或いは通信端末のホストアドレスと相手側端末のホストアドレスとを比較したりすることで、認識手段は、通信端末と相手側端末との間のネットワーク上の位置関係を好適に認識することができる。特に、認識手段は、通信端末と相手側端末とが、どの程度の階層まで同一のネットワーク網に属しているかを好適に認識することができる。
<3>
上述の如く第1アドレス束に含まれるホストアドレスと第2アドレス束に含まれるホストアドレスとを、ネットワーク経路の上位側から下位側に向けて順番に比較する通信端末の態様では、前記認識手段は、前記第1アドレス束に含まれるホストアドレスのうちの所定階層のホストアドレスと前記第2アドレス束に含まれるホストアドレスのうちの前記所定階層のホストアドレスとが同一である場合には、前記第1アドレス束に含まれるホストアドレスのうちの前記所定階層の次の階層のホストアドレスと前記第2アドレス束に含まれるホストアドレスのうちの前記所定階層の次の階層のホストアドレスとを比較するように構成してもよい。
このように構成すれば、認識手段は、通信端末と相手側端末とが、どの程度の階層まで同一のネットワーク網に属しているかを好適に認識することができる。具体的には、例えば、同一階層のホストアドレス(例えば、ルータの上位側ホストアドレス)が同一であれば、認識手段は、その階層までは通信端末と相手側端末とが同一のネットワーク網に属していると認識することができる。従って、この場合は、認識手段は、更に次の階層(下の階層ないしはアドレス解決サーバから遠ざかる方向の階層)のホストアドレスの比較を行う。他方で、同一階層のホストアドレスが異なっていれば、認識手段は、その階層から、通信端末と相手側端末とが異なるネットワーク網に属することになると認識することができる。つまり、認識手段は、その階層から、通信端末の上位側に位置するルータと相手側端末の上位側に位置するルータとが異なるネットワーク網に属することになると認識することができる。従って、この場合は、相手側端末の上位側に位置するルータの上位側ホストアドレスを、相手側端末との間の通信に用いるアドレスとして決定すれば、相手側端末と好適に通信することができる。
<4>
上述の如く第1アドレス束に含まれるホストアドレスと第2アドレス束に含まれるホストアドレスとを、ネットワーク経路の上位側から下位側に向けて順番に比較する通信端末の態様では、前記決定手段は、前記第1アドレス束に含まれるホストアドレスのうちの所定階層のホストアドレスと前記第2アドレス束に含まれるホストアドレスのうちの前記所定階層のホストアドレスとが異なる場合には、前記第2アドレス束に含まれるホストアドレスのうちの前記所定階層のホストアドレスを、前記相手側端末との間の通信に使用するホストアドレスとして決定するように構成してもよい。
このように構成すれば、同一階層のホストアドレスが異なっていれば、認識手段は、その階層から、通信端末と相手側端末とが異なるネットワーク網に属することになると認識することができる。つまり、認識手段は、その階層から、通信端末の上位側に位置するルータと相手側端末の上位側に位置するルータとが異なるネットワーク網に属することになると認識することができる。従って、相手側端末の上位側に位置するルータの上位側ホストアドレスを、相手側端末との間の通信に用いるアドレスとして決定すれば、相手側端末と好適に通信することができる。
<5>
本発明の通信端末に係る実施形態の他の態様では、前記アドレス解決サーバが属するグローバルネットワーク網から当該通信端末に至るまでの間のネットワーク経路を調査する調査手段と、前記調査手段による調査結果に基づいて、前記第1アドレス束を前記アドレス解決サーバに登録する登録手段を更に備える。
この態様によれば、通信端末自身によって調査されたアドレス束をアドレス解決サーバに登録することができる。このため、アドレス束を用いた上述の動作を好適に行うことができる。
<6>
上述の如く調査手段及び登録手段を備える通信端末の態様では、前記アドレス解決サーバが属するグローバルネットワーク網から当該通信端末に至るまでの間のネットワーク経路に存在するルータがUPnP(Universal Plug and Play)対応ルータである場合には、前記調査手段は、当該通信端末に最も近い側に位置する前記ルータである第1ルータの下位側ホストアドレスにUPnPコマンドを用いることで、前記第1ルータの上位側ホストアドレスを取得することで、前記アドレス解決サーバが属するグローバルネットワーク網から当該通信端末に至るまでの間のネットワーク経路を調査し、前記登録手段は、前記調査手段により取得される、前記第1ルータの上位側ホストアドレス及び前記第1ルータが属するネットワーク網上における当該通信端末のホストアドレスを前記ネットワーク経路順に含むアドレス束を、前記第1アドレス束として前記アドレス解決サーバに登録するように構成してもよい。
このように構成すれば、後に具体例を参照しながら詳述するように、通信端末自身が好適にアドレス束を調査することができる。その結果、通信端末自身によって調査されたアドレス束をアドレス解決サーバに登録することができる。このため、アドレス束を用いた上述の動作を好適に行うことができる。
<7>
上述の如く調査手段がUPnPコマンドを用いることで第1ルータの上位側ホストアドレスを取得する通信端末の態様では、前記第1ルータの上位側のネットワーク網に属する前記ルータである第2ルータが存在する場合には、前記調査手段は、先に、(i)前記第1ルータの動作モードをブリッジモードに切り替えると共に、前記第2ルータより前記第2ルータが属するネットワーク網上における当該通信端末自身のホストアドレスをDHCP(Dynamic Host Configuration Protocol)サーバより取得し、(iii)前記第2ルータの下位側ホストアドレスにUPnPコマンドを用いて、前記第2ルータの上位側ホストアドレスを取得し、(iii)前記第1ルータをルータモードに切り替えると共に、前記第1ルータより前記第1ルータが属するネットワーク網上における当該通信端末自身のホストアドレスを、上記(i)の状態の前の状態に戻し、(iv)前記第1ルータの下位側ホストアドレスにUPnPコマンドを用いて、前記第1ルータの上位側ホストアドレスを取得することで、前記アドレス解決サーバが属するグローバルネットワーク網から当該通信端末に至るまでの間のネットワーク経路を調査し、前記登録手段は、前記調査手段により取得される前記第2ルータの上位側ホストアドレスを更に含むアドレス束を、前記第1アドレス束として前記アドレス解決サーバに登録するように構成してもよい。
このように構成すれば、後に具体例を参照しながら詳述するように、アドレス解決サーバが属するグローバルネットワーク網と通信端末との間のネットワーク経路に複数のルータが存在する場合にも、通信端末自身が好適にアドレス束を調査することができる。その結果、通信端末自身によって調査されたアドレス束をアドレス解決サーバに登録することができる。このため、アドレス束を用いた上述の動作を好適に行うことができる。
<8>
上述の如く調査手段及び登録手段を備える通信端末の態様では、前記調査手段は、前記アドレス解決サーバが属するグローバルネットワーク網に属すると共に当該通信端末に至るまでの間のネットワーク経路を調査するアドレス調査サーバに対して、当該アドレス解決サーバが属するグローバルネットワーク網から当該通信端末に至るまでの間のネットワーク経路に存在する前記ルータの上位側ホストアドレスを要求することで、前記アドレス解決サーバが属するグローバルネットワーク網から当該通信端末に至るまでの間のネットワーク経路を調査し、前記登録手段は、前記アドレス調査サーバから取得した前記上位側ホストアドレス及び当該通信端末のホストアドレスを前記ネットワーク経路順に含むアドレス束を、前記第1アドレス束として登録するように構成してもよい。
このように構成すれば、後に具体例を参照しながら詳述するように、外部のアドレス調査サーバの動作によって取得されたルータの上位側ホストアドレス等を含むアドレス束をアドレス解決サーバに登録することができる。このため、アドレス束を用いた上述の動作を好適に行うことができる。
<9>
上述の如く調査手段及び登録手段を備える通信端末の態様では、前記登録手段は、前記ルータの下位側ホストアドレス及び当該通信端末のホストアドレスを前記ネットワーク経路順に含むアドレス束を、前記第1アドレス束として登録する。
このように構成すれば、ルータの上位側ホストアドレスに加えて又は代えてルータの下位側ホストアドレス(例えば、LAN側ホストアドレス)を含むアドレス束を登録しても、上述した動作を相応に行うことができる。
<10>
上述の如く調査手段及び登録手段を備える通信端末の態様では、前記登録手段は、前記ルータの下位側ホストアドレス、当該通信端末のホストアドレス及び当該通信端末に固有の機器アドレスを前記ネットワーク経路順に含むアドレス束を、前記第1アドレス束として登録するように構成してもよい。
このように構成すれば、通信端末に固有の機器アドレス(例えば、MACアドレス)を含むアドレス束を登録しても、上述した動作を相応に行うことができる。
<11>
上述の如く調査手段及び登録手段を備える通信端末の態様では、前記調査手段は、前記ルータの上位側に位置する他の通信端末に対して、前記ルータの上位側ホストアドレスを取得するよう要求し、前記登録手段は、前記他の通信端末から取得した前記上位側ホストアドレス及び当該通信端末のホストアドレスを前記ネットワーク経路順に含むアドレス束を、前記第1アドレス束として登録するように構成してもよい。
このように構成すれば、後に具体例を参照しながら詳述するように、外部の他の通信端末の動作によって取得されたルータの上位側ホストアドレス等を含むアドレス束をアドレス解決サーバに登録することができる。このため、アドレス束を用いた上述の動作を好適に行うことができる。
<12>
本発明の通信端末の他の態様では、前記取得手段は、前記アドレス解決サーバより、前記第1アドレス束を前記制御情報として取得する。
この態様によれば、アドレス解決サーバより第1アドレス束を取得することができるため、第1アドレス束を比較的容易に取得することができる。
<13>
本発明の通信端末の他の態様では、当該通信端末が属するネットワーク網よりも下位側のネットワーク網に属する他の通信端末からの要求に応じて、前記他の通信端末との間に介在するルータの上位側アドレスを取得すると共に、当該取得した上位側アドレスを前記他の通信端末に対して通知する通知手段を更に備える。
この態様によれば、後に具体例を参照しながら詳述するように、自身が取得したルータの上位側ホストアドレス等を含むアドレス束を、他の通信端末に対応するアドレス束としてアドレス解決サーバに登録することができる。このため、アドレス束を用いた上述の動作を好適に行うことができる。
<14>
(アドレス解決サーバの実施形態)
本発明のアドレス解決サーバに係る実施形態は、通信端末が、前記通信端末が属するネットワーク網と同一のネットワーク網に属する又は前記通信端末が属するネットワーク網とルータを介して相互に接続されるネットワーク網に属する相手側端末と、前記相手側端末に固有のホスト名を用いて通信を行うために必要な制御情報を送信するアドレス解決サーバであって、当該アドレス解決サーバが属するグローバルネットワーク網から前記相手側端末に至るまでの間のネットワーク経路を示すアドレス束を格納する格納手段と、前記相手側端末の前記ホスト名を提示した前記通信端末からのアドレス解決要求に応じて、前記アドレス束を前記制御情報として前記通信端末へ送信する送信手段とを備える。
本発明のアドレス解決サーバに係る実施形態によれば、格納手段に格納されているアドレス束(つまり、相手側端末に対応するアドレス束)を、相手側端末との通信を行おうとしている通信端末に対して送信することができる。従って、通信端末は、上述したように、相手側端末との間の通信に使用するホストアドレスを決定することができる。その結果、上述した各種効果を好適に享受することができる。
尚、上述した本発明の通信端末に係る実施形態における各種態様に対応して、本発明のアドレス解決サーバに係る実施形態も各種態様を採ることが可能である。
<15>
本発明のアドレス解決サーバの他の態様では、前記アドレス束は、当該アドレス解決サーバが属するグローバルネットワーク網から前記相手側端末に至るまでの間のネットワーク経路に存在する前記ルータの上位側ホストアドレス若しくは下位側ホストアドレス及び前記相手側端末のホストアドレスを、前記ネットワーク経路順に含む。
この態様によれば、通信端末は、第1アドレス束に含まれるルータの上位側ホストアドレス(例えば、WAN側ホストアドレス)と第2アドレス束に含まれるルータの上位側ホストアドレス(例えば、WAN側ホストアドレス)を比較したり、或いは通信端末のホストアドレスと相手側端末のホストアドレスとを比較したりすることで、通信端末と相手側端末との間のネットワーク上の位置関係を好適に認識することができる。
<16>
(コンピュータプログラムの実施形態)
本発明のコンピュータプログラムに係る第1実施形態は、上述した本発明の通信端末に係る実施形態(但し、その各種態様を含む)に備えられたコンピュータを制御するコンピュータプログラムであって、該コンピュータを、前記取得手段、前記認識手段及び前記決定手段として機能させる。
本発明のコンピュータプログラムに係る第1実施形態によれば、当該コンピュータプログラムを格納するROM、CD−ROM、DVD−ROM、ハードディスク等の記録媒体から、当該コンピュータプログラムをコンピュータに読み込んで実行させれば、或いは、当該コンピュータプログラムを、通信手段を介してコンピュータにダウンロードさせた後に実行させれば、上述した本発明の通信端末に係る実施形態を比較的簡単に実現できる。
尚、上述した本発明の通信端末に係る実施形態における各種態様に対応して、本発明のコンピュータプログラムに係る第1実施形態も各種態様を採ることが可能である。
<17>
本発明のコンピュータプログラムに係る第2実施形態は、上述した本発明のアドレス解決サーバに係る実施形態(但し、その各種態様を含む)に備えられたコンピュータを制御するコンピュータプログラムであって、該コンピュータを、前記格納手段及び前記送信手段として機能させる。
本発明のコンピュータプログラムに係る第2実施形態によれば、当該コンピュータプログラムを格納するROM、CD−ROM、DVD−ROM、ハードディスク等の記録媒体から、当該コンピュータプログラムをコンピュータに読み込んで実行させれば、或いは、当該コンピュータプログラムを、通信手段を介してコンピュータにダウンロードさせた後に実行させれば、上述した本発明のアドレス解決サーバに係る実施形態を比較的簡単に実現できる。
尚、上述した本発明のアドレス解決サーバに係る実施形態における各種態様に対応して、本発明のコンピュータプログラムに係る第2実施形態も各種態様を採ることが可能である。
(コンピュータプログラム製品の実施形態)
本発明のコンピュータプログラム製品に係る第1実施形態は、上述した本発明の通信端末に係る実施形態(但し、その各種態様を含む)に備えられたコンピュータにより実行可能なプログラム命令を明白に具現化し、該コンピュータを、前記取得手段、前記認識手段及び前記決定手段として機能させる。
本発明のコンピュータプログラム製品に係る第1実施形態によれば、当該コンピュータプログラム製品を格納するROM、CD−ROM、DVD−ROM、ハードディスク等の記録媒体から、当該コンピュータプログラム製品をコンピュータに読み込めば、或いは、例えば伝送波である当該コンピュータプログラム製品を、通信手段を介してコンピュータにダウンロードすれば、上述した本発明の通信端末に係る実施形態を比較的容易に実施可能となる。更に具体的には、当該コンピュータプログラム製品は、上述した本発明の通信端末に係る実施形態として機能させるコンピュータ読取可能なコード(或いはコンピュータ読取可能な命令)から構成されてよい。
尚、上述した本発明の通信端末に係る実施形態における各種態様に対応して、本発明のコンピュータプログラム製品に係る第1実施形態も各種態様を採ることが可能である。
本発明のコンピュータプログラム製品に係る第2実施形態は、上述した本発明のアドレス解決サーバに係る実施形態(但し、その各種態様を含む)に備えられたコンピュータにより実行可能なプログラム命令を明白に具現化し、該コンピュータを、前記格納手段及び前記送信手段として機能させる。
本発明のコンピュータプログラム製品に係る第2実施形態によれば、当該コンピュータプログラム製品を格納するROM、CD−ROM、DVD−ROM、ハードディスク等の記録媒体から、当該コンピュータプログラム製品をコンピュータに読み込めば、或いは、例えば伝送波である当該コンピュータプログラム製品を、通信手段を介してコンピュータにダウンロードすれば、上述した本発明のアドレス解決サーバに係る実施形態を比較的容易に実施可能となる。更に具体的には、当該コンピュータプログラム製品は、上述した本発明のアドレス解決サーバに係る実施形態として機能させるコンピュータ読取可能なコード(或いはコンピュータ読取可能な命令)から構成されてよい。
尚、上述した本発明のアドレス解決サーバに係る実施形態における各種態様に対応して、本発明のコンピュータプログラム製品に係る第2実施形態も各種態様を採ることが可能である。
本実施形態のこのような作用及び他の利得は次に説明する実施例から更に明らかにされよう。
以上説明したように、本発明の再生装置に係る実施形態によれば、取得手段と、認識手段と、決定手段とを備える。本発明のアドレス解決サーバに係る実施形態によれば、格納手段と、送信手段とを備える。本発明のコンピュータプログラムに係る第1実施形態によれば、コンピュータを本発明の通信端末に係る実施形態として機能させる。本発明のコンピュータプログラムに係る第2実施形態によれば、コンピュータを本発明のアドレス解決サーバに係る実施形態として機能させる。従って、異なる端末との間の通信を比較的容易に且つ相対的に低コストで行うことができる。
以下、本発明の実施例を図面に基づいて説明する。
(1)基本構成
初めに、図1から図4を参照して、本実施例に係る通信システム1の基本構成について説明する。
(1−1)全体構成
初めに、図1を参照して、本実施例に係る通信システム1の全体構成について説明する。ここに、図1は、本実施例に係る通信システム1の全体構成を概念的に示すブロック図である。
図1に示すように、本実施例に係る通信システム1は、データの送受信を行う複数の通信端末100(具体的には、通信端末100a、通信端末100b、通信端末100c、通信端末100d及び通信端末100e)と、通信端末100からのアドレス解決要求に応じてホスト名をアドレス束221に変換すると共に該アドレス束221を通信端末100に送信するアドレス解決サーバ200と、異なるネットワークを接続する複数のNATルータ300(具体的には、NATルータ300a、NATルータ300b及びNATルータ300c)とを備えている。
また、これらの機器は、グローバルネットワーク401やローカルネットワーク402(具体的には、ローカルネットワーク402a、ローカルネットワーク402b及びローカルネットワーク402c)を構成している。尚、グローバルネットワーク401やローカルネットワーク402は、有線或いは無線のいずれの形態を採ってもよいし、その一部を有線とし、他の一部を無線としてもよい。更に、専用回線であってもよいし、一般公衆回線或いは電話回線等であってもよいし、パケット網であってもよいし、回線交換網であってもよい。つまりは、グローバルネットワーク401やローカルネットワーク402は、データの送受信が可能なネットワークであればどのようなネットワークであってもよい。
グローバルネットワーク401には、グローバルIPアドレスが「98.76.54.32」であり且つホスト名が「A」である通信端末100aと、アドレス解決サーバ200とが接続されている。また、グローバルネットワーク401には、WAN側のグローバルIPアドレスが「123.45.67.89」であるNATルータ300aが、WAN側のネットワークポートを介して接続されている。
ローカルネットワーク402aには、ローカルIPアドレスが「192.168.0.3」であり且つホスト名が「B」である通信端末100bが接続されている。また、ローカルネットワーク402aには、LAN側のローカルIPアドレスが「192.168.0.1」であるNATルータ300aが、LAN側のネットワークポートを介して接続されている。また、ローカルネットワーク402aには、WAN側のローカルIPアドレスが「192.168.0.2」であるNATルータ300bが、WAN側のネットワークポートを介して接続されている。また、ローカルネットワーク402aには、WAN側のローカルIPアドレスが「192.168.0.9」であるNATルータ300cが、WAN側のネットワークポートを介して接続されている。
ローカルネットワーク402bには、ローカルIPアドレスが「192.168.1.99」であり且つホスト名が「C」である通信端末100cと、ローカルIPアドレスが「192.168.1.1」であり且つホスト名が「D」である通信端末100dとが接続されている。また、ローカルネットワーク402bには、LAN側のローカルIPアドレスが「192.168.1.1」であるNATルータ300bが、LAN側のネットワークポートを介して接続されている。
ローカルネットワーク402cには、ローカルIPアドレスが「192.168.1.100」であり且つホスト名が「E」である通信端末100eが接続されている。また、ローカルネットワーク402cには、LAN側のローカルIPアドレスが「192.168.1.1」であるNATルータ300cが、LAN側のネットワークポートを介して接続されている。
尚、このような通信システム1の一例として、マンション等の集合住宅に設けられる通信システムが一例としてあげられる。この場合、例えば、グローバルネットワーク401がインターネットに相当し、ローカルネットワーク402aがマンション全体のローカルネットワークに相当し、且つローカルネットワーク402b及び402cの夫々がマンション内の各部屋のローカルネットワークに相当する。
(1−2)通信端末の基本構成
続いて、図2を参照して、本実施例に係る通信システム1が備える通信端末100の基本構成について説明する。ここに、図2は、本実施例に係る通信システム1が備える通信端末100の基本構成を概念的に示すブロック図である。
図2に示すように、通信端末100は、本発明における「取得手段」の一具体例を構成するアドレス取得部101と、本発明における「認識手段」の一具体例を構成するネットワーク構成認識部102と、本発明における「決定手段」の一具体例を構成するアドレス決定部103と、CPU104と、メモリ105と、通信部106とを備えている。
アドレス取得部101は、通信相手となる通信端末100のホスト名をアドレス解決サーバ200に対して提示することで、アドレス解決サーバ200から、通信相手となる通信端末100に対応するアドレス束221を取得する。尚、アドレス束221については、後に詳述する(図4参照)。
ネットワーク構成認識部102は、アドレス取得部101によって取得されたアドレス束221に基づいて、通信端末100自身と通信相手となる通信端末100とのネットワーク上の位置関係(言い換えれば、通信システム内における位置関係)を調査、認識する。尚、ネットワーク構成認識部102の動作の詳細については、後に詳述する(図5や図9等参照)。
アドレス決定部103は、ネットワーク構成認識部102における認識結果に基づいて、通信相手となる通信端末100との間の通信を行うために使用されるIPアドレス(つまり、データの送信先のIPアドレス)を決定する。尚、アドレス決定部103の動作の詳細については、後に詳述する(図5や図9等参照)。
CPU104は、アドレス取得部101、ネットワーク構成認識部102、アドレス決定部103及び通信部106と、バス110を介して接続され、各種制御手段に指示を行うことで、通信端末100全体の制御を行う。通常、CPU104が動作するためのソフトウェア又はファームウェアは、メモリ105に格納されている。
メモリ105は、通信端末100におけるデータ処理全般において使用される。具体的には、メモリ105は、通信端末100としての動作を行うためのプログラム(即ち、ファームウェアプログラム)が格納されるROM領域と、データが一時に格納される又はファームウェアプログラム等の動作に必要な変数が格納されるRAM領域などから構成される。
通信部106は、通信端末100により行われるグローバルネットワーク401やローカルネットワーク402を介した通信(例えば、HTTP等による通信)を制御する。
(1−3)アドレス解決サーバの基本構成
続いて、図3を参照して、本実施例に係る通信システム1が備えるアドレス解決サーバ200の基本構成について説明する。ここに、図3は、本実施例に係る通信システム1が備えるアドレス解決サーバ200の基本構成を概念的に示すブロック図である。
図3に示すように、アドレス解決サーバ200は、本発明における「格納手段」の一具体例を構成するアドレス管理テーブル格納部201と、本発明における「送信手段」の一具体例を構成するアドレス送信部202と、CPU203と、メモリ204と、通信部205とを備えている。
アドレス管理テーブル格納部201は、通信システム1内に含まれる複数の通信端末100の夫々に対応するアドレス束221を含むアドレス管理テーブル220を格納する。このようなアドレス管理テーブル格納部201は、典型的には、ハードディスクや半導体メモリ等の記録媒体を含んで構成される。
ここで、図4を参照して、アドレス管理テーブル220について説明する。ここに、図4は、アドレス管理テーブル220を概念的に示すデータ構造図である。
図4に示すように、アドレス管理テーブル220には、通信システム1内に含まれる複数の通信端末100の夫々に対応するアドレス束221が含まれる。より具体的には、アドレス管理テーブル220には、通信端末100aに対応するアドレス束221と、通信端末100bに対応するアドレス束221と、通信端末100cに対応するアドレス束221と、通信端末100dに対応するアドレス束221と、通信端末100eに対応するアドレス束221とが含まれる。
アドレス束221には、アドレス管理サーバ200が属するグローバルネットワーク401から通信端末100に至るまでの間のネットワーク経路を特定することが可能な情報が含まれる。具体的には、例えば、アドレス束221は、アドレス管理サーバ200が属するグローバルネットワーク401から通信端末100に至るまでの間のネットワーク経路に存在するNATルータ300のWAN側のIPアドレス及び通信端末100のIPアドレスが含まれる。
より具体的には、アドレス管理サーバ200が属するグローバルネットワーク401から通信端末100aに至るまでの間のネットワーク経路には、アドレス管理サーバ200と通信端末100aが含まれている。このため、通信端末100aに対応するアドレス束221には、通信端末100aのグローバルIPアドレスである「98.76.54.32」が含まれる。また、図4に示す例では、通信端末100aに対応するアドレス束221には、通信端末100aのグローバルIPアドレスに加えて、通信端末100aが通信に用いるポート番号である「55555」が含まれている。従って、通信端末100aに対応するアドレス束221は、「98.76.54.32:55555」というデータ配列を含んでいる。
同様に、アドレス管理サーバ200が属するグローバルネットワーク401から通信端末100bに至るまでの間のネットワーク経路には、アドレス管理サーバ200とNATルータ300aと通信端末100bが含まれている。このため、通信端末100bに対応するアドレス束221には、NATルータ300aのWAN側のグローバルIPアドレスである「123.45.67.89」と通信端末100bのローカルIPアドレスである「192.168.0.3」とが含まれる。また、これらのアドレスは、アドレス管理サーバ200が属するグローバルネットワーク401から通信端末100bに至るまでの間のネットワーク経路の上位側から下位側に向かうように順に配列された状態で、アドレス束221に含まれている。つまり、通信端末100bに対応するアドレス束221には、NATルータ300aのWAN側のグローバルIPアドレスである「123.45.67.89」と通信端末100bのローカルIPアドレスである「192.168.0.3」とが、この順に配列されるように含まれている。また、図4に示す例では、通信端末100bに対応するアドレス束221には、NATルータ300aのWAN側のグローバルIPアドレスに加えて、NATルータ300aが通信端末100bに対する通信を転送するときに用いるポート番号である「40000」が、NATルータ300aのWAN側のグローバルIPアドレスに対応付けられるように含まれている。同様に、通信端末100bに対応するアドレス束221には、通信端末100bのローカルIPアドレスに加えて、通信端末100bが通信に用いるポート番号である「54321」が、通信端末100bのローカルIPアドレスに対応付けられるように含まれている。従って、通信端末100bに対応するアドレス束221は、「123.45.67.89:40000−192.168.0.3:54321」というデータ配列を含んでいる。
同様に、アドレス管理サーバ200が属するグローバルネットワーク401から通信端末100cに至るまでの間のネットワーク経路には、アドレス管理サーバ200とNATルータ300aとNATルータ300b通信端末100cが含まれている。このため、通信端末100cに対応するアドレス束221には、NATルータ300aのWAN側のグローバルIPアドレスである「123.45.67.89」とNATルータ300bのWAN側のローカルIPアドレスである「192.168.0.2」と通信端末100cのローカルIPアドレスである「192.168.1.99」とが含まれる。また、これらのアドレスは、アドレス管理サーバ200が属するグローバルネットワーク401から通信端末100cに至るまでの間のネットワーク経路の上位側から下位側に向かうように順に配列された状態で、アドレス束221に含まれている。つまり、通信端末100bに対応するアドレス束221には、NATルータ300aのWAN側のグローバルIPアドレスである「123.45.67.89」とNATルータ300bのWAN側のローカルIPアドレスである「192.168.0.2」と通信端末100cのローカルIPアドレスである「192.168.1.99」とが、この順に配列されるように含まれている。また、図4に示す例では、通信端末100cに対応するアドレス束221には、NATルータ300aのWAN側のグローバルIPアドレスに加えて、NATルータ300aが通信端末100cに対する通信を転送するときに用いるポート番号である「40001」が、NATルータ300aのWAN側のグローバルIPアドレスに対応付けられるように含まれている。同様に、通信端末100cに対応するアドレス束221には、NATルータ300bのWAN側のローカルIPアドレスに加えて、NATルータ300bが通信端末100cに対する通信を転送するときに用いるポート番号である「44444」が、NATルータ300bのWAN側のローカルIPアドレスに対応付けられるように含まれている。同様に、通信端末100cに対応するアドレス束221には、通信端末100cのローカルIPアドレスに加えて、通信端末100cが通信に用いるポート番号である「54321」が、通信端末100cのローカルIPアドレスに対応付けられるように含まれている。従って、通信端末100cに対応するアドレス束221は、「123.45.67.89:40001−192.168.0.2:44444−192.168.1.99:54321」というデータ配列を含んでいる。
同様に、アドレス管理サーバ200が属するグローバルネットワーク401から通信端末100dに至るまでの間のネットワーク経路には、アドレス管理サーバ200とNATルータ300aとNATルータ300b通信端末100dが含まれている。このため、通信端末100dに対応するアドレス束221には、NATルータ300aのWAN側のグローバルIPアドレスである「123.45.67.89」とNATルータ300bのWAN側のローカルIPアドレスである「192.168.0.2」と通信端末100dのローカルIPアドレスである「192.168.1.100」とが含まれる。また、これらのアドレスは、アドレス管理サーバ200が属するグローバルネットワーク401から通信端末100dに至るまでの間のネットワーク経路の上位側から下位側に向かうように順に配列された状態で、アドレス束221に含まれている。つまり、通信端末100bに対応するアドレス束221には、NATルータ300aのWAN側のグローバルIPアドレスである「123.45.67.89」とNATルータ300bのWAN側のローカルIPアドレスである「192.168.0.2」と通信端末100dのローカルIPアドレスである「192.168.1.100」とが、この順に配列されるように含まれている。また、図4に示す例では、通信端末100dに対応するアドレス束221には、NATルータ300aのWAN側のグローバルIPアドレスに加えて、NATルータ300aが通信端末100dに対する通信を転送するときに用いるポート番号である「40002」が、NATルータ300aのWAN側のグローバルIPアドレスに対応付けられるように含まれている。同様に、通信端末100dに対応するアドレス束221には、NATルータ300bのWAN側のローカルIPアドレスに加えて、NATルータ300bが通信端末100dに対する通信を転送するときに用いるポート番号である「44445」が、NATルータ300bのWAN側のローカルIPアドレスに対応付けられるように含まれている。同様に、通信端末100dに対応するアドレス束221には、通信端末100dのローカルIPアドレスに加えて、通信端末100dが通信に用いるポート番号である「54321」が、通信端末100dのローカルIPアドレスに対応付けられるように含まれている。従って、通信端末100dに対応するアドレス束221は、「123.45.67.89:40002−192.168.0.2:44445−192.168.1.100:54321」というデータ配列を含んでいる。
同様に、アドレス管理サーバ200が属するグローバルネットワーク401から通信端末100eに至るまでの間のネットワーク経路には、アドレス管理サーバ200とNATルータ300aとNATルータ300c通信端末100eが含まれている。このため、通信端末100eに対応するアドレス束221には、NATルータ300aのWAN側のグローバルIPアドレスである「123.45.67.89」とNATルータ300cのWAN側のローカルIPアドレスである「192.168.0.9」と通信端末100eのローカルIPアドレスである「192.168.1.100」とが含まれる。また、これらのアドレスは、アドレス管理サーバ200が属するグローバルネットワーク401から通信端末100eに至るまでの間のネットワーク経路の上位側から下位側に向かうように順に配列された状態で、アドレス束221に含まれている。つまり、通信端末100bに対応するアドレス束221には、NATルータ300aのWAN側のグローバルIPアドレスである「123.45.67.89」とNATルータ300cのWAN側のローカルIPアドレスである「192.168.0.9」と通信端末100eのローカルIPアドレスである「192.168.1.100」とが、この順に配列されるように含まれている。また、図4に示す例では、通信端末100eに対応するアドレス束221には、NATルータ300aのWAN側のグローバルIPアドレスに加えて、NATルータ300aが通信端末100eに対する通信を転送するときに用いるポート番号である「40003」が、NATルータ300aのWAN側のグローバルIPアドレスに対応付けられるように含まれている。同様に、通信端末100eに対応するアドレス束221には、NATルータ300cのWAN側のローカルIPアドレスに加えて、NATルータ300cが通信端末100eに対する通信を転送するときに用いるポート番号である「33333」が、NATルータ300cのWAN側のローカルIPアドレスに対応付けられるように含まれている。同様に、通信端末100eに対応するアドレス束221には、通信端末100eのローカルIPアドレスに加えて、通信端末100eが通信に用いるポート番号である「54321」が、通信端末100eのローカルIPアドレスに対応付けられるように含まれている。従って、通信端末100eに対応するアドレス束221は、「123.45.67.89:40002−192.168.0.9:33333−192.168.1.100:54321」というデータ配列を含んでいる。
尚、図4に示す例では、アドレス束として、アドレス管理サーバ200が属するグローバルネットワーク401から通信端末100に至るまでの間のネットワーク経路に存在するNATルータ300のWAN側のIPアドレス及び通信端末100のIPアドレス(更には、通信端末100やNATルータ300が通信に用いるポート番号)が含まれているが、後に詳述するように、これらのIPアドレスやポート番号に加えて又は代えて、更に他の情報(例えば、後述するNATルータ300のLAN側のIPアドレスや、通信端末100及びNATルータ300のMACアドレス)が含まれていてもよい。
再び図3において、アドレス送信部202は、通信端末100からの要求に応じて、アドレス管理テーブル格納部201に格納されているアドレス管理テーブル220から所望のアドレス束221を抽出すると共に、該抽出されたアドレス束221を通信端末100に対して送信する。
CPU203は、アドレス管理テーブル格納部201、アドレス送信部202、及び通信部205と、バス210を介して接続され、各種制御手段に指示を行うことで、通信端末100全体の制御を行う。通常、CPU203が動作するためのソフトウェア又はファームウェアは、メモリ204に格納されている。
メモリ204は、アドレス管理サーバ200におけるデータ処理全般において使用される。具体的には、メモリ204は、アドレス管理サーバ200としての動作を行うためのプログラム(即ち、ファームウェアプログラム)が格納されるROM領域と、データが一時に格納される又はファームウェアプログラム等の動作に必要な変数が格納されるRAM領域などから構成される。
通信部205は、アドレス管理テーブル200により行われるグローバルネットワーク401やローカルネットワーク402を介した通信(例えば、HTTP等による通信)を制御する。
(2)動作例
続いて、図5を参照して、本実施例に係る通信システム1の動作の流れを説明する。ここに、図5は、本実施例に係る通信システム1の動作の流れを概念的に示すフローチャートである。
図5に示すように、まず、データの送信元となる通信端末100(以降、便宜的に、“送信元通信端末100”と称する)が備えるアドレス取得部101の動作により、送信元通信端末100に対応するアドレス束221及びデータの送信先となる通信端末100(以降、便宜的に、“送信先通信端末100”と称する)に対応するアドレス束221の夫々が、アドレス解決サーバ200から取得される(ステップS101)。このとき、送信元通信端末100は、送信先通信端末100のホスト名を提示して、送信先通信端末100に対応するアドレス束221の送信をアドレス解決サーバ200に対して要求する。その結果、アドレス解決サーバ200が備えるアドレス送信部202は、送信元通信端末100からの要求に応じて、送信元通信端末100に対応するアドレス束221及び送信先通信端末100に対応するアドレス束221の夫々をアドレス管理テーブル格納部201から読み出すと共に、読み出したアドレス束221を送信元通信端末100に対して送信する。
尚、図6や図8等を参照しながら後に詳述するように、送信元通信端末100に対応するアドレス束221については、アドレス調査部107(図6参照)やアドレス調査サーバ500(図8参照)を利用することで、送信元通信端末100自身が調査することができる。このため、送信元通信端末100自身が送信元通信端末100に対応するアドレス束221を調査する場合には、図5に示すステップS101においては、送信元通信端末100に対応するアドレス束221はアドレス解決サーバ200から取得されなくともよい。言い換えれば、図5に示すステップS101においては、送信元通信端末100に対応するアドレス束221がアドレス解決サーバ200から取得されることに代えて、送信元通信端末100自身が送信元通信端末100に対応するアドレス束221を調査することで送信元通信端末100に対応するアドレス束221を取得されるように構成してもよい。
続いて、送信元通信端末100が備えるネットワーク構成認識部102の動作により、ステップS101において取得された送信元通信端末100に対応するアドレス束221の左端のIPアドレス(つまり、アドレス解決サーバ200(或いは、アドレス解決サーバ200が属するグローバルネットワーク401)に最も近い側のIPアドレス)と、ステップS101において取得された送信先通信端末100に対応するアドレス束221の左端のIPアドレスとが異なるか否かが判定される(ステップS102)。
ステップS102における判定の結果、送信元通信端末100に対応するアドレス束221の左端のIPアドレスと送信先通信端末100に対応するアドレス束221の左端のIPアドレスとが異なると判定された場合には(ステップS102:Yes)、送信元通信端末100が備えるアドレス決定部103の動作により、送信先通信端末100に対応するアドレス束221の左端のIPアドレスが、送信元通信端末100が送信先通信端末100との間の通信を行うために用いられるIPアドレスとして決定される(ステップS103)。その後、ステップS103において決定されたIPアドレスを送信先アドレスに設定した上で、送信元通信端末100から送信先通信端末100へとデータの送信が行われる(ステップS104)。
他方、ステップS102における判定の結果、送信元通信端末100に対応するアドレス束221の左端のIPアドレスと送信先通信端末100に対応するアドレス束221の左端のIPアドレスとが同一であると判定された場合には(ステップS102:No)、続いて、送信元通信端末100が備えるネットワーク構成認識部102の動作により、送信元通信端末100に対応するアドレス束221及び送信先通信端末100に対応するアドレス束221の夫々の中に、更に次段のIPアドレスが存在するか否かが判定される(ステップS105)。つまり、送信元通信端末100に対応するアドレス束221及び送信先通信端末100に対応するアドレス束221の夫々の中に、左端のIPアドレスに続くIPアドレス(以降、適宜“第2段目のIPアドレス”と称する)が存在するか否かが判定される。
ステップS105における判定の結果、送信元通信端末100に対応するアドレス束221及び送信先通信端末100に対応するアドレス束221の夫々の中に、更に次段のIPアドレス(つまり、第2段目のIPアドレス)が存在すると判定された場合には(ステップS105:Yes)、送信元通信端末100が備えるネットワーク構成認識部102の動作により、送信元通信端末100に対応するアドレス束221の第2段目のIPアドレスと送信先通信端末100に対応するアドレス束221の第2段目のIPアドレスとが異なるか否かが判定される(ステップS106)。
ステップS106における判定の結果、送信元通信端末100に対応するアドレス束221の第2段目のIPアドレスと送信先通信端末100に対応するアドレス束221の第2段目のIPアドレスとが異なると判定された場合には(ステップS106:Yes)、送信元通信端末100が備えるアドレス決定部103の動作により、送信先通信端末100に対応するアドレス束221の第2段目のIPアドレスが、送信元通信端末100が送信先通信端末100との間の通信を行うために用いられるIPアドレスとして決定される(ステップS103)。その後、ステップS107において決定されたIPアドレスを送信先アドレスに設定した上で、送信元通信端末100から送信先通信端末100へとデータの送信が行われる(ステップS104)。
他方、ステップS106における判定の結果、送信元通信端末100に対応するアドレス束221の第2段目のIPアドレスと送信先通信端末100に対応するアドレス束221の第2段目のIPアドレスとが異なると判定された場合には(ステップS106:No)、ステップS105へと戻り、ステップS106における判定動作の対象となるIPアドレスが送信元通信端末100に対応するアドレス束221及び送信先通信端末100に対応するアドレス束221の夫々の中に存在しなくなるまで、ステップS105及びステップS106の動作が繰り返される。その結果、送信元通信端末100に対応するアドレス束221の更に次段のIPアドレス(つまり、第3段目のIPアドレス、第4段目のIPアドレス、・・・)と送信先通信端末100に対応するアドレス束221の更に次段のIPアドレスとが同一となる場合には、送信元通信端末100が備えるアドレス決定部103の動作により、送信先通信端末100に対応するアドレス束221の更に次段のIPアドレスが、送信元通信端末100が送信先通信端末100との間の通信を行うために用いられるIPアドレスとして決定される(ステップS107)。その後、ステップS107において決定されたIPアドレスを送信先アドレスに設定した上で、送信元通信端末100から送信先通信端末100へとデータの送信が行われる(ステップS104)。
他方で、ステップS105における判定の結果、送信元通信端末100に対応するアドレス束221及び送信先通信端末100に対応するアドレス束221の夫々の中に、更に次段のIPアドレスが存在しないと判定された場合には(ステップS105:No)、送信元通信端末100が備えるアドレス決定部103の動作により、送信先通信端末100に対応するアドレス束221の左端のIPアドレスが、送信元通信端末100が送信先通信端末100との間の通信を行うために用いられるIPアドレスとして決定される(ステップS108)。この動作は、NATルータ300がヘアピン対応ルータである可能性がある場合に行われることが好ましい。
その後、送信元通信端末100が備えるCPU100の制御の下に、ステップS108において決定されたIPアドレスを送信先アドレスに設定した上で、送信元通信端末100から送信先通信端末100へとデータの送信が可能か否か判定される(ステップS109)。NATルータ300がヘアピン対応ルータであれば、データの送信は可能である。
ステップS109の判定の結果、送信元通信端末100から送信先通信端末100へとデータの送信が可能であると判定された場合には(ステップS109:Yes)、そのままデータの送信が継続される(ステップS104)。他方で、ステップS109の判定の結果、送信元通信端末100から送信先通信端末100へとデータの送信が可能でないと判定された場合には(ステップS109:No)、データの送信を行うことなく、動作を終了する。
ここで、より明確な説明のために、図1に示す通信システム1に含まれる通信端末100cから、通信端末100a、通信端末100b、通信端末100d及び通信端末100eの夫々に対してデータを送信する場合の動作例について説明する。
(2−1)通信端末100cから通信端末100aへのデータの送信
通信端末100cから通信端末100aへとデータを送信する場合には、通信端末100cは、通信端末100aのホスト名である「A」をアドレス解決サーバ200に提示することで、通信端末100cに対応するアドレス束221及び通信端末100aに対応するアドレス束221の夫々をアドレス解決サーバ200から取得する。
その後、通信端末100cは、通信端末100cに対応するアドレス束221の左端のIPアドレスである「123.45.67.89」と通信端末100aに対応するアドレス束221の左端のIPアドレスである「98.76.54.32」とを比較する。その結果、通信端末100cに対応するアドレス束221の左端のIPアドレスである「123.45.67.89」と通信端末100aに対応するアドレス束221の左端のIPアドレスである「98.76.54.32」とが異なるIPアドレスであるため、通信端末100cは、通信端末100aに対応するアドレス束221の左端のIPアドレスである「98.76.54.32」を、通信端末100cが通信端末100aとの間の通信を行うために用いられるIPアドレスとして決定する。更には、通信端末100cは、通信端末100aに対応するアドレス束221の左端のIPアドレスに対応するポート番号である「55555」を、通信端末100cが通信端末100aとの間の通信を行うために用いられる送信先ポート番号として決定する。
その後、通信端末100cは、「98.76.54.32」というIPアドレスを送信先アドレスに設定し且つ「55555」というポート番号を送信先ポート番号に設定した上で、通信端末100aに対してデータを送信する。その結果、通信端末100cから送信されたデータは、NAT300b及びNAT300aを介して通信端末100aへと到達する。従って、通信端末100cから通信端末100aへのデータの送信を好適に行うことができる。
(2−2)通信端末100cと通信端末100bとの間の通信
通信端末100cから通信端末100bへとデータを送信する場合には、通信端末100cは、通信端末100bのホスト名である「B」をアドレス解決サーバ200に提示することで、通信端末100cに対応するアドレス束221及び通信端末100bに対応するアドレス束221の夫々をアドレス解決サーバ200から取得する。
その後、通信端末100cは、通信端末100cに対応するアドレス束221の左端のIPアドレスである「123.45.67.89」と通信端末100bに対応するアドレス束221の左端のIPアドレスである「123.45.67.89」とを比較する。その結果、通信端末100cに対応するアドレス束221の左端のIPアドレスである「123.45.67.89」と通信端末100bに対応するアドレス束221の左端のIPアドレスである「123.45.67.89」とが同一のIPアドレスであるため、通信端末100cは、更に次段のIPアドレスの比較を行う。具体的には、通信端末100cは、通信端末100cに対応するアドレス束221の第2段目のIPアドレスである「192.168.0.2」と通信端末100bに対応するアドレス束221の第2段目のIPアドレスである「192.168.0.3」とを比較する。その結果、通信端末100cに対応するアドレス束221の第2段目のIPアドレスである「192.168.0.2」と通信端末100bに対応するアドレス束221の左端のIPアドレスである「192.168.0.3」とが異なるIPアドレスであるため、通信端末100cは、通信端末100bに対応するアドレス束221の第2段目のIPアドレスである「192.168.0.3」を、通信端末100cが通信端末100bとの間の通信を行うために用いられるIPアドレスとして決定する。更には、通信端末100cは、通信端末100bに対応するアドレス束221の第2段目のIPアドレスに対応するポート番号である「54321」を、通信端末100cが通信端末100bとの間の通信を行うために用いられる送信先ポート番号として決定する。
その後、通信端末100cは、「192.168.0.3」というIPアドレスを送信先アドレスに設定し且つ「54321」というポート番号を送信先ポート番号に設定した上で、通信端末100bに対してデータを送信する。その結果、通信端末100cから送信されたデータは、NAT300bを介して通信端末100bへと到達する。従って、通信端末100cから通信端末100bへのデータの送信を好適に行うことができる。
尚、いわゆる既存のDNSサーバを備える通信システムでは、通信端末100bのホスト名である「B」をDNSサーバに提示することで得られる通信端末100bのIPアドレスは、通信端末100bが属するローカルネットワーク402aとグローバルネットワーク401とを直接的に接続するNATルータ300aのWAN側のグローバルIPアドレスである「123.45.67.89」である。この場合、通信端末100cは、「123.45.67.89」というIPアドレスを送信先アドレスに設定した上で、通信端末100bに対してデータを送信する。しかしながら、このデータは、NATルータ300aまでは到達するものの、その後にNATルータ300aから通信端末100bには転送されない。従って、既存のDNSサーバを備える通信システムでは、通信端末100cから通信端末100bへとデータを送信するためには、背景技術において説明したように、各ローカルネットワーク402にDNSサーバを設けるか又は特別なハードウェアである中継センタを設ける必要がある。
しかしながら、本実施例では、上述したように、各ローカルネットワーク402にDNSサーバを設けるか又は特別なハードウェアである中継センタを設けることなく、通信端末100cから通信端末100bへとデータを送信することができる。より具体的には、既存のDNSサーバに対して上述したアドレス管理サーバ200としての動作を行うためのソフトウェアを組み込むと共に、既存の通信端末に対して上述した通信端末100としての動作を行うためのソフトウェアを組み込めば、上述した動作を行うことができるため、既存の通信システムに対して新たなハードウェアを導入する必要がないという実践上大変有利な効果を享受することができる。つまり、上述した動作を行う通信端末100やアドレス解決サーバ200を低コストで導入することができるという実践上大変有利な効果を享受することができる。
(2−3)通信端末100cと通信端末100dとの間の通信
通信端末100cから通信端末100dへとデータを送信する場合には、通信端末100cは、通信端末100dのホスト名である「D」をアドレス解決サーバ200に提示することで、通信端末100cに対応するアドレス束221及び通信端末100dに対応するアドレス束221の夫々をアドレス解決サーバ200から取得する。
その後、通信端末100cは、通信端末100cに対応するアドレス束221の左端のIPアドレスである「123.45.67.89」と通信端末100dに対応するアドレス束221の左端のIPアドレスである「123.45.67.89」とを比較する。その結果、通信端末100cに対応するアドレス束221の左端のIPアドレスである「123.45.67.89」と通信端末100dに対応するアドレス束221の左端のIPアドレスである「123.45.67.89」とが同一のIPアドレスであるため、通信端末100cは、更に次段のIPアドレスの比較を行う。具体的には、通信端末100cは、通信端末100cに対応するアドレス束221の第2段目のIPアドレスである「192.168.0.2」と通信端末100dに対応するアドレス束221の第2段目のIPアドレスである「192.168.0.2」とを比較する。その結果、通信端末100cに対応するアドレス束221の第2段目のIPアドレスである「192.168.0.2」と通信端末100dに対応するアドレス束221の第2段目のIPアドレスである「192.168.0.2」とが同一のIPアドレスであるため、通信端末100cは、更に次段のIPアドレスの比較を行う。具体的には、通信端末100cは、通信端末100cに対応するアドレス束221の第3段目のIPアドレスである「192.168.1.99」と通信端末100dに対応するアドレス束221の第3段目のIPアドレスである「192.168.1.100」とを比較する。その結果、通信端末100cに対応するアドレス束221の第3段目のIPアドレスである「192.168.1.99」と通信端末100dに対応するアドレス束221の第3段目のIPアドレスである「192.168.1.100」とが異なるIPアドレスであるため、通信端末100cは、通信端末100dに対応するアドレス束221の第3段目のIPアドレスである「192.168.1.100」を、通信端末100cが通信端末100dとの間の通信を行うために用いられるIPアドレスとして決定する。更には、通信端末100cは、通信端末100dに対応するアドレス束221の第3段目のIPアドレスに対応するポート番号である「54321」を、通信端末100cが通信端末100dとの間の通信を行うために用いられる送信先ポート番号として決定する。
その後、通信端末100cは、「192.168.1.100」というIPアドレスを送信先アドレスに設定し且つ「54321」というポート番号を送信先ポート番号に設定した上で、通信端末100dに対してデータを送信する。その結果、通信端末100cから送信されたデータは、直接通信端末100dへと到達する。
尚、いわゆる既存のDNSサーバを備える通信システムでは、通信端末100dのホスト名である「D」をDNSサーバに提示することで得られる通信端末100dのIPアドレスは、通信端末100dが属するローカルネットワーク402bとグローバルネットワーク401とを間接的に接続するNATルータ300aのWAN側のグローバルIPアドレスである「123.45.67.89」である。この場合、通信端末100cは、「123.45.67.89」というIPアドレスを送信先アドレスに設定した上で、通信端末100dに対してデータを送信する。しかしながら、このデータは、NATルータ300aまでは到達するものの、その後にNATルータ300aから通信端末100dには転送されない。しかしながら、本実施例では、上述したように、各ローカルネットワーク402にDNSサーバを設けるか又は特別なハードウェアである中継センタを設けることなく、通信端末100cから通信端末100dへとデータを送信することができる。つまり、上述した動作を行う通信端末100やアドレス解決サーバ200を低コストで導入することができるという実践上大変有利な効果を享受することができる。
(2−4)通信端末100cと通信端末100eとの間の通信
通信端末100cから通信端末100eへとデータを送信する場合には、通信端末100cは、通信端末100eのホスト名である「E」をアドレス解決サーバ200に提示することで、通信端末100cに対応するアドレス束221及び通信端末100eに対応するアドレス束221の夫々をアドレス解決サーバ200から取得する。
その後、通信端末100cは、通信端末100cに対応するアドレス束221の左端のIPアドレスである「123.45.67.89」と通信端末100eに対応するアドレス束221の左端のIPアドレスである「123.45.67.89」とを比較する。その結果、通信端末100cに対応するアドレス束221の左端のIPアドレスである「123.45.67.89」と通信端末100eに対応するアドレス束221の左端のIPアドレスである「123.45.67.89」とが同一のIPアドレスであるため、通信端末100cは、更に次段のIPアドレスの比較を行う。具体的には、通信端末100cは、通信端末100cに対応するアドレス束221の第2段目のIPアドレスである「192.168.0.2」と通信端末100eに対応するアドレス束221の第2段目のIPアドレスである「192.168.0.9」とを比較する。その結果、通信端末100cに対応するアドレス束221の第2段目のIPアドレスである「192.168.0.2」と通信端末100eに対応するアドレス束221の第2段目のIPアドレスである「192.168.0.9」とが異なるIPアドレスであるため、通信端末100cは、通信端末100eに対応するアドレス束221の第2段目のIPアドレスである「192.168.0.9」を、通信端末100cが通信端末100eとの間の通信を行うために用いられるIPアドレスとして決定する。更には、通信端末100cは、通信端末100eに対応するアドレス束221の第2段目のIPアドレスに対応するポート番号である「33333」を、通信端末100cが通信端末100eとの間の通信を行うために用いられる送信先ポート番号として決定する。
その後、通信端末100cは、「192.168.0.9」というIPアドレスを送信先アドレスに設定し且つ「33333」というポート番号を送信先ポート番号に設定した上で、通信端末100eに対してデータを送信する。その結果、通信端末100cから送信されたデータは、NATルータ300b及びNATルータ300cを介して通信端末100eへと到達する。
尚、いわゆる既存のDNSサーバを備える通信システムでは、通信端末100eのホスト名である「E」をDNSサーバに提示することで得られる通信端末100eのIPアドレスは、通信端末100eが属するローカルネットワーク403bとグローバルネットワーク401とを間接的に接続するNATルータ300aのWAN側のグローバルIPアドレスである「123.45.67.89」である。この場合、通信端末100cは、「123.45.67.89」というIPアドレスを送信先アドレスに設定した上で、通信端末100eに対してデータを送信する。しかしながら、このデータは、NATルータ300aまでは到達するものの、その後にNATルータ300aから通信端末100eには転送されない。しかしながら、本実施例では、上述したように、各ローカルネットワーク402にDNSサーバを設けるか又は特別なハードウェアである中継センタを設けることなく、通信端末100cから通信端末100eへとデータを送信することができる。つまり、上述した動作を行う通信端末100やアドレス解決サーバ200を低コストで導入することができるという実践上大変有利な効果を享受することができる。
(3)アドレス束の調査・登録方法
続いて、図6から図8を参照して、アドレス解決サーバ200が備えるアドレス管理テーブル格納部201に格納されるアドレス束221の調査・登録方法について説明する。
(3−1)第1の調査・登録方法
初めに、図6を参照して、アドレス解決サーバ200が備えるアドレス管理テーブル格納部201に格納されるアドレス束221の第1の調査・登録方法について説明する。ここに、図6は、アドレス束221の第1の調査・登録方法を実行する通信端末100−1の基本構成を概念的に示すブロック図である。尚、上述した通信端末100と同一の構成については、同一の参照符号を付してその詳細な説明については省略する。
図6に示すように、通信端末100−1は、上述した通信端末100と同様に、アドレス取得部101と、ネットワーク構成認識部102と、アドレス決定部103と、CPU104と、メモリ105と、通信部106とを備えている。
通信端末100−1は特に、アドレス束221の第1の調査・登録方法を実行するために、本発明における「調査手段」の一具体例を構成するアドレス調査部107と、本発明における「登録手段」の一具体例を構成するアドレス登録部108とを備えている。
ここで、第1の調査・登録方法を実行する場合には、通信システム1中に含まれるNATルータ300が、UPnP(Universal Plug and Play)対応ルータであるものとする。逆に言えば、通信システム1中に含まれるNATルータ300が、UPnP(Universal Plug and Play)対応ルータである場合には、第1の調査・登録方法を実行することで、アドレス束221を調査すると共に当該調査の結果得られたアドレス束221をアドレス管理テーブル格納部201に格納する(つまり、登録する)ことができる。従って、以下では、通信システム1中に含まれるNATルータ300が、UPnP(Universal Plug and Play)対応ルータであることを前提として説明を進める。
この場合、アドレス調査部107は、以下に示す動作を行う。まず、アドレス調査部107は、アドレス解決サーバ200のIPアドレスを引数に設定した「traceroute」コマンドを実行する。その結果、アドレス調査部107は、アドレス解決サーバ200が属するグローバルネットワーク401から通信端末100−1に至るまでのネットワーク経路に存在するNATルータ300のLAN側のIPアドレスを取得することができる。
続いて、アドレス調査部107は、UPnPにより、通信端末100−1に最も近い側のNATルータ300(以降、通信端末100−1にn番目に近いNATルータ300を、適宜“第n段目のNATルータ300”と称する)のWAN側のIPアドレスを取得する。また、NATルータ300のWAN側のIPアドレスを取得する際に、NATルータ300の上位側からの要求が当該通信端末100−1に届くように、NATルータ300の性的ルーティング設定を同時に行ってもよい。
アドレス解決サーバ200が属するグローバルネットワーク401から通信端末100−1に至るまでの間のネットワーク経路に存在するNATルータ300が1つだけである場合には、上述の動作によって取得された第1段目のNATルータ300のWAN側のIPアドレス及び通信端末100−1自身のIPアドレスが、アドレス登録部108の動作により、上述したアドレス束221の形式に変換される。その後、アドレス登録部108の動作により、アドレス束221がアドレス解決サーバ200へと送信される。その結果、アドレス解決サーバ200へと送信されたアドレス束221は、アドレス管理テーブル220の一部としてアドレス管理テーブル格納部201に格納される。
一方で、アドレス解決サーバ200が属するグローバルネットワーク401から通信端末100−1に至るまでの間のネットワーク経路に存在するNATルータ300が複数である場合には、上述した動作に加えて更に以下の動作が継続して行われる。
続いて、アドレス調査部107は、第1段目のNATルータ300の動作モードをルータモードからブリッジモードへと切り替える。その結果、通信端末100−1の状態は、第1段目のNATルータ300が他のネットワークとの境界となるネットワーク(例えば、ローカルネットワーク)に属していた状態から、第1段目のNATルータ300の更に1段上位に位置する第2段目のNATルータ300が他のネットワークとの境界となるネットワークに属している状態へと切り替わる。つまり、通信端末100−1と第1段目のNATルータ300とが属していたネットワークは、第2段目のNATルータ300が属しているネットワークと統合される。
その後、アドレス調査部107は、DHCP(Dynamic Host Configuration Protocol)を用いて、第2段目のNATルータ300から、第2段目のNATルータ300が属しているネットワークにおけるIPアドレスを取得する。これにより、通信端末100−1は、第2段目のNATルータ300が属しているネットワーク内におけるアクセスが可能となる。
続いて、その結果、アドレス調査部107は、UPnPコマンドにより、第2段目のNATルータ300のWAN側のIPアドレスを取得する。また、NATルータ300のWAN側のIPアドレスを取得する際に、NATルータ300の上位側からの要求が当該通信端末100−1に届くように、NATルータ300の性的ルーティング設定を同時に行ってもよい。
以降、第k(但し、kは2以上の整数)段目のNATルータ300の更に1段上位の第k+1段目のNATルータ300が存在する場合には、アドレス調査部107は、第k段目のNATルータ300の動作モードをルータモードからブリッジモードへと切り替え、DHCPを用いて、第k+1段目のNATルータ300から、第k+1段目のNATルータ300が属しているネットワークにおけるIPアドレスを取得し、UPnPコマンドが実行されることで、第k+1段目のNATルータ300のWAN側のIPアドレスを取得する。
他方で、第2段目のNATルータ300の更に1段上位の第3段目のNATルータ300が存在しない場合には、アドレス調査部107は、第1段目のNATルータ300の動作モードをブリッジモードからルータモードへと切り替える。同様に、第k(但し、kは2以上の整数)段目のNATルータ300の更に1段上位の第k+1段目のNATルータ300が存在しない場合には、アドレス調査部107は、第k−1段目から第1段目のNATルータ300の夫々の動作モードをブリッジモードからルータモードへと切り替える。
続いて、アドレス調査部107は、DHCPを用いて、第1段目のNATルータ300から、第1段目のNATルータ300が属しているネットワークにおけるIPアドレスを取得する。その後、アドレス調査部107は、「ipconfig」コマンドを用いて、通信端末100−1自身のIPアドレスを取得する。
以上のような動作により、アドレス調査部107は、アドレス解決サーバ200が属するグローバルネットワーク401から通信端末100−1に至るまでのネットワーク経路に存在する一又は複数のNATルータ300の夫々のWAN側のIPアドレス及び通信端末100−1のIPアドレスを取得することができる。このように取得された一又は複数のNATルータ300の夫々のWAN側のIPアドレス及び通信端末100−1のIPアドレスは、アドレス登録部108の動作により、上述したアドレス束221の形式に変換される。その後、アドレス登録部108の動作により、アドレス束221がアドレス解決サーバ200へと送信される。その結果、アドレス解決サーバ200へと送信されたアドレス束221は、アドレス管理テーブル220の一部としてアドレス管理テーブル格納部201に格納される。
尚、上述した説明では、通信端末100−1に近い側に位置するNATルータ300から順にWAN側IPアドレスを取得する例について説明している。しかしながら、通信端末100−1に遠い側に位置する(言い換えれば、グローバルネットワーク401に近い側に位置する)NATルータ300から順にWAN側IPアドレスを取得するように構成してもよい。
具体的には、通信端末100−1とグローバルネットワーク401との間にk個のNATルータが存在する場合には、以下に示す動作によってk個のNATルータ300の夫々のWAN側IPアドレスが取得されてもよい。この場合、まず、アドレス調査部107は、アドレス解決サーバ200のIPアドレスを引数に設定した「traceroute」コマンドを実行する。続いて、アドレス調査部107は、第1段目のNATルータ300から第k−1段目のNATルータ300の夫々の動作モードをルータモードからブリッジモードへと切り替える。その後、アドレス調査部107は、DHCP(Dynamic Host Configuration Protocol)を用いて、第k段目のNATルータ300から、第k段目のNATルータ300が属しているネットワークにおけるIPアドレスを取得する。その後、アドレス調査部107は、UPnPコマンドにより、第k段目のNATルータ300のWAN側のIPアドレスを取得する。続いて、アドレス調査部107は、第k−1段目のNATルータ300の動作モードをブリッジモードからルータモードへと切り替える。その後、アドレス調査部107は、DHCP(Dynamic Host Configuration Protocol)を用いて、第k−1段目のNATルータ300から、第k−1段目のNATルータ300が属しているネットワークにおけるIPアドレスを取得する。その後、アドレス調査部107は、UPnPコマンドにより、第k−1段目のNATルータ300のWAN側のIPアドレスを取得する。以降、このような動作が第1段目のNATルータ300の動作モードがルータモードに切り替えられるまで繰り返される。その結果、アドレス調査部107は、アドレス解決サーバ200が属するグローバルネットワーク401から通信端末100−1に至るまでのネットワーク経路に存在する一又は複数のNATルータ300の夫々のWAN側のIPアドレス及び通信端末100−1のIPアドレスを取得することができる。
尚、上述した各種コマンド(例えば、「traceroute」コマンドや「ipconfig」コマンド)は一例であって、これらのコマンドと同等の機能を実現する他のコマンド(例えば、「tracert」コマンドや「tracepath」コマンド等)を用いてもよい。或いは、これらのコマンドを実行することに代えて、これらのコマンドと同等の機能を実現する固有の処理部を通信端末100−1に実装してもよい。いずれにせよ、上述した動作を実現する何らかの処理部を利用すれば、アドレス束221の調査・登録を好適に行うことができる。
ここで、より明確な説明のために、図1に示す通信システム1に含まれる通信端末100cが図6に示す構成を有すると共に当該通信端末100c(つまり、100−1c)がアドレス束221を調査・登録する場合の動作例について説明する。
まず、通信端末100−1cが備えるアドレス調査部107は、アドレス解決サーバ200のIPアドレスを引数に設定した「traceroute」コマンドを実行する。その結果、アドレス調査部107は、アドレス解決サーバ200が属するグローバルネットワーク401から通信端末100−1cに至るまでのネットワーク経路に存在するNATルータ300のLAN側のIPアドレスを取得することができる。つまり、アドレス調査部107は、NATルータ300aのLAN側のローカルIPアドレスである「192.168.0.1」とNATルータ300bのLAN側のローカルIPアドレスである「192.168.1.1」とを取得する。
続いて、アドレス調査部107は、UPnPコマンドにより、第1段目のNATルータ300bのWAN側のローカルIPアドレスである「192.168.0.2」を取得する。
続いて、アドレス調査部107は、第1段目のNATルータ300bの動作モードをルータモードからブリッジモードへと切り替える。その結果、通信端末100−1cと通信端末100dと第1段目のNATルータ300bとが属していたローカルネットワーク402bは、通信端末100bと第2段目のNATルータ300aとが属しているローカルネットワーク401と統合される。
その後、アドレス調査部107は、DHCPを用いて、ローカルネットワーク402aにおけるローカルIPアドレスを取得する。続いて、アドレス調査部107は、UPnPコマンドにより、第2段目のNATルータ300aのWAN側のグローバルIPアドレスである「123.45.67.89」を取得する。
続いて、アドレス調査部107は、第1段目のNATルータ300bの動作モードをブリッジモードからルータモードへと切り替える。その後、アドレス調査部107は、DHCPを用いて、ローカルネットワーク402bにおけるローカルIPアドレスを取得する。その後、アドレス調査部107は、「ipconfig」コマンドを用いて、通信端末100−1c自身のローカルIPアドレスである「192.168.1.99」を取得する。
以上のような動作により、通信端末100−1cが備えるアドレス調査部107は、NATルータ300aのWAN側のグローバルIPアドレスである「123.45.67.89」と、NATルータ300bのWAN側のローカルIPアドレスである「192.168.0.2」と、通信端末100−1cのローカルIPアドレスである「192.168.1.99」とを取得することができる。その結果、図4に示したアドレス束221が生成される。
このように、第1の調査・登録方法によれば、通信端末100−1自身によってアドレス束221を取得することができる。その結果、アドレス束221をアドレス解決サーバ200が備えるアドレス管理テーブル格納部201に確実に登録することができる。
(3−2)第2の調査・登録方法
続いて、図7を参照して、アドレス解決サーバ200が備えるアドレス管理テーブル格納部201に格納されるアドレス束221の第2の調査・登録方法について説明する。ここに、図7は、第2の調査・登録方法が実行された結果取得されるアドレス束221を含むアドレス管理テーブル220を概念的に示すデータ構造図である。
既存のネットワーク中に存在するNATルータ300は、その全てがUPnP対応ルータであるとは限らない。この場合、第1の調査・登録方法によって、アドレス解決サーバ200が属するグローバルネットワーク401から通信端末100−1に至るまでのネットワーク経路に存在する一又は複数のNATルータ300の夫々のWAN側のIPアドレスの全てを取得することは困難であるとも考えられる。
従って、NATルータ300がUPnP非対応ルータを含む場合には、図7(a)に示すように、通信端末100のMAC(Media Access Control)アドレスをアドレス束221に含めるように構成してもよい。或いは、図7(b)に示すように、NATルータ300のLAN側のIPアドレスをアドレス束221に含めるように構成してもよい。尚、図7(b)では、括弧書きによってNATルータ300のLAN側のIPアドレスを括ることで、NATルータ300のWAN側のIPアドレスと区別して表現している。
この場合であって、上述した効果を相応に享受することができる。尚、アドレス束221がMACアドレスやNATルータ300のLAN側のIPアドレスを含んでいる場合には、通信端末100は、図5に示すフローチャートを多少変えたフローに従って動作することが好ましい。この動作については、後に詳述する(図9等参照)。
尚、NATルータ300がUPnP対応ルータを含む場合においても、通信端末100のMAC(Media Access Control)アドレスやNATルータ300のLAN側のIPアドレスをアドレス束221に含めるように構成してもよいことは言うまでもない。
(3−3)第3の調査・登録方法
続いて、図8を参照して、アドレス解決サーバ200が備えるアドレス管理テーブル格納部201に格納されるアドレス束221の第3の調査・登録方法について説明する。ここに、図8は、第3の調査・登録方法を実行する通信システム2の基本構成を概念的に示すブロック図である。
既存のネットワーク中に存在するNATルータ300は、その全てがUPnP対応ルータであるとは限らない。この場合、第1の調査・登録方法によって、アドレス解決サーバ200が属するグローバルネットワーク401から通信端末100に至るまでのネットワーク経路に存在する一又は複数のNATルータ300の夫々のWAN側のIPアドレスの全てを取得することは困難であるとも考えられる。
従って、NATルータ300がUPnP非対応ルータを含む場合には、図8に示すように、通信システム2に対して、アドレス解決サーバ200が属するグローバルネットワーク401から通信端末100に至るまでのネットワーク経路に存在する一又は複数のNATルータ300のうちの最上位のNATルータ300(つまり、グローバルネットワーク401に属するNATルータ300)のWAN側のIPアドレス(言い換えれば、通信端末100c−1自身のグローバルIPアドレス)を取得可能なアドレス調査サーバ500を、グローバルネットワーク401上に(言い換えれば、アドレス解決サーバ200が属するネットワーク上に)に新たに設けるように構成してもよい。
ここで、より明確な説明のために、図8に示す通信システム2に含まれる通信端末100cが、アドレス調査サーバ500を利用してアドレス束221を取得・登録する場合の動作例について説明する。
まず、通信端末100−1cが備えるアドレス調査部107は、アドレス解決サーバ200のIPアドレスを引数に設定した「traceroute」コマンドを実行する。その結果、アドレス調査部107は、アドレス解決サーバ200が属するグローバルネットワーク401から通信端末100−1cに至るまでのネットワーク経路に存在するNATルータ300のLAN側のIPアドレスを取得することができる。つまり、アドレス調査部107は、NATルータ300aのLAN側のローカルIPアドレスである「192.168.0.1」とNATルータ300bのLAN側のローカルIPアドレスである「192.168.1.1」とを取得する。
続いて、アドレス調査部107は、「ipconfig」コマンドを用いて、通信端末100−1c自身のローカルIPアドレスである「192.168.1.99」を取得する。
続いて、アドレス調査部107は、アドレス調査サーバ500に問い合わせを行うことで、通信端末100c−1自身のグローバルIPアドレス(つまり、最上位のNATルータ300aのWAN側のグローバルIPアドレス)を取得する。このような要求を受けるため、アドレス調査サーバ500は、NATルータ300aのWAN側のグローバルIPアドレスを取得することが好ましい。
以上のような動作により、通信端末100−1cが備えるアドレス調査部107は、NATルータ300aのWAN側のグローバルIPアドレスである「123.45.67.89」と、NATルータ300bのLAN側のローカルIPアドレスである「192.168.1.1」と、通信端末100−1cのローカルIPアドレスである「192.168.1.99」とを取得することができる。その結果、図7(b)に示したアドレス束221が生成される。
このように、第3の調査・登録方法によれば、アドレス調査サーバ500を利用してアドレス束221を取得することができる。その結果、アドレス束221をアドレス解決サーバ200が備えるアドレス管理テーブル格納部201に登録することができる。
尚、図8に示す例では、アドレス調査サーバ500を独立して設ける例について説明している。しかしながら、アドレス調査サーバ500を独立して設けることに代えて、アドレス調査サーバ500と同様の動作を行う機能ブロックを、アドレス解決サーバ200に追加してもよい。
或いは、通信端末100に対して、アドレス調査サーバ500と同様の機能を行う機能ブロックを追加してもよい。この場合、例えばアドレス束221を調査・登録しようとしている通信端末100は、当該通信端末100以外の他の通信端末100に問い合わせを行うことで、他の通信端末100との間に位置するNATルータ300のWAN側のグローバルIPアドレス)を取得することができる。
(3−4)第4の調査・登録方法
続いて、アドレス解決サーバ200が備えるアドレス管理テーブル格納部201に格納されるアドレス束221の第4の調査・登録方法について説明する。
上述した説明では、通信端末100自身の動作によって、アドレス束221を生成する動作について説明している。しかしながら、一般的なNATルータ300では、WEBブラウザ等を用いたNATルータ用の設定画面を用いて、NATルータ300のWAN側のIPアドレスをユーザが調べることができる。このため、このようなNATルータ用の設定画面が存在することを考慮して、通信端末100のユーザの手によって、アドレス解決サーバ200が属するグローバルネットワーク401から通信端末100に至るまでのネットワーク経路に存在する一又は複数のNATルータ300の夫々のWAN側のIPアドレスを取得するように構成してもよい。
(3−5)LAN側アドレスやMACアドレスを登録した場合の動作例
上述したように、アドレス束221がMACアドレスやNATルータ300のLAN側のIPアドレスを含んでいる場合には、通信端末100は、図5に示すフローチャートとは異なるフローに従って動作することが好ましい。この動作について、図9から図12を参照して説明を進める。ここに、図9から図12は、アドレス束221がMACアドレスやNATルータ300のLAN側のIPアドレスを含んでいる場合の通信システム1の動作を概念的に示すフローチャートである。尚、図5に示すフローチャートと同様の動作については、同一の参照符号を付してその詳細な説明については省略する。
図9に示すように、まず、送信元通信端末100が備えるアドレス取得部101の動作により、送信元通信端末100に対応するアドレス束221及び送信先通信端末100に対応するアドレス束221の夫々が、アドレス解決サーバ200から取得される(ステップS101)。
続いて、送信元通信端末100が備えるネットワーク構成認識部102の動作により、ステップS101において取得された送信元通信端末100に対応するアドレス束221の左端のIPアドレスと、ステップS101において取得された送信先通信端末100に対応するアドレス束221の左端のIPアドレスとが異なるか否かが判定される(ステップS102)。
ステップS102における判定の結果、送信元通信端末100に対応するアドレス束221の左端のIPアドレスと送信先通信端末100に対応するアドレス束221の左端のIPアドレスとが異なると判定された場合には(ステップS102:Yes)、送信元通信端末100が備えるアドレス決定部103の動作により、送信先通信端末100に対応するアドレス束221の左端のIPアドレスが、送信元通信端末100が送信先通信端末100との間の通信を行うために用いられるIPアドレスとして決定される(ステップS103)。その後、ステップS103において決定されたIPアドレスを送信先アドレスに設定した上で、送信元通信端末100から送信先通信端末100へとデータの送信が行われる(ステップS104)。
他方、ステップS102における判定の結果、送信元通信端末100に対応するアドレス束221の左端のIPアドレスと送信先通信端末100に対応するアドレス束221の左端のIPアドレスとが同一であると判定された場合には(ステップS102:No)、図10に示すように、送信元通信端末100が備えるネットワーク構成認識部102の動作により、送信元通信端末100に対応するアドレス束221及び送信先通信端末100に対応するアドレス束221の夫々の中に、更に次段のIPアドレス(以降、適宜“第m(但し、mは2以上の整数)段目のIPアドレス”と称する)が存在するか否かが判定される(ステップS105)。
ステップS105における判定の結果、送信元通信端末100に対応するアドレス束221及び送信先通信端末100に対応するアドレス束221の夫々の中に、第m段目のIPアドレスが存在しないと判定された場合には(ステップS105:No)、図11に示すように、送信元通信端末100が備えるアドレス決定部103の動作により、送信先通信端末100に対応するアドレス束221の左端のIPアドレスが、送信元通信端末100が送信先通信端末100との間の通信を行うために用いられるIPアドレスとして決定される(ステップS108)。この動作は、NATルータ300がヘアピン対応ルータである可能性がある場合に行われることが好ましい。
その後、送信元通信端末100が備えるCPU100の制御の下に、ステップS108において決定されたIPアドレスを送信先アドレスに設定した上で、送信元通信端末100から送信先通信端末100へとデータの送信が可能か否か判定される(ステップS109)。NATルータ300がヘアピン対応ルータであれば、データの送信は可能である。
ステップS109の判定の結果、送信元通信端末100から送信先通信端末100へとデータの送信が可能であると判定された場合には(ステップS109:Yes)、そのままデータの送信が継続される(ステップS104)。他方で、ステップS109の判定の結果、送信元通信端末100から送信先通信端末100へとデータの送信が可能でないと判定された場合には(ステップS109:No)、データの送信を行うことなく、動作を終了する。
再び図10において、他方で、ステップS105における判定の結果、送信元通信端末100に対応するアドレス束221及び送信先通信端末100に対応するアドレス束221の夫々の中に、第m段目のIPアドレスが存在すると判定された場合には(ステップS105:Yes)、送信元通信端末100が備えるネットワーク構成認識部102の動作により、送信元通信端末100に対応するアドレス束221中の第m段目のIPアドレス及び送信先通信端末100に対応するアドレス束221中の第m段目のIPアドレスの少なくとも一方が、NATルータ300のLAN側のIPアドレスであるか否かが判定される(ステップS201)。
ステップS201における判定の結果、送信元通信端末100に対応するアドレス束221中の第m段目のIPアドレス及び送信先通信端末100に対応するアドレス束221中の第m段目のIPアドレスの少なくとも一方が、NATルータ300のLAN側のIPアドレスであると判定された場合には(ステップS201:Yes)、送信元通信端末100が備えるネットワーク構成認識部102の動作により、送信先通信端末100に対応するアドレス束221中の第m段目のIPアドレスが、NATルータ300のLAN側のIPアドレスであるか否かが判定される(ステップS202)。
ステップS202における判定の結果、送信先通信端末100に対応するアドレス束221中の第m段目のIPアドレスが、NATルータ300のLAN側のIPアドレスでないと判定された場合には(ステップS202:No)、送信元通信端末100が備えるアドレス決定部103の動作により、送信先通信端末100に対応するアドレス束221に含まれる送信先通信端末100のIPアドレス(つまり、送信先通信端末100のローカルIPアドレス)が、送信元通信端末100が送信先通信端末100との間の通信を行うために用いられるIPアドレスとして決定される(ステップS207)。その後、ステップS207において決定されたIPアドレスを送信先アドレスに設定した上で、送信元通信端末100から送信先通信端末100へとデータの送信が行われる(ステップS104)。
他方で、ステップS202における判定の結果、送信先通信端末100に対応するアドレス束221中の第m段目のIPアドレスが、NATルータ300のLAN側のIPアドレスであると判定された場合には(ステップS202:Yes)、送信元通信端末100が備えるネットワーク構成認識部102の動作により、送信元通信端末100に対応するアドレス束221中の第m段目のIPアドレス及び送信先通信端末100に対応するアドレス束221中の第m段目のIPアドレスの双方が、NATルータ300のLAN側のIPアドレスであるか否かが判定される(ステップS203)。
ステップS203における判定の結果、送信元通信端末100に対応するアドレス束221中の第m段目のIPアドレス及び送信先通信端末100に対応するアドレス束221中の第m段目のIPアドレスの双方が、NATルータ300のLAN側のIPアドレスでないと判定された場合には(ステップS203:No)、図11のステップS108、ステップS109及びステップS104の動作が行われる。但し、ここでは、送信先通信端末100に対応するアドレス束221に含まれる送信先通信端末100のIPアドレスを引数とするARP(Address Resolution Protocol)を利用することで送信先通信端末100のMACアドレスを取得してもよい。この場合、取得したMACアドレスが送信先通信端末100に対応するアドレス束221に含まれる送信先通信端末100のMACアドレスと同一である場合には、図11のステップS108、ステップS109及びステップS104の動作を行うことに代えて、送信先通信端末100のIPアドレス(つまり、送信先通信端末100のローカルIPアドレス)を送信先アドレスに設定した上で、送信元通信端末100から送信先通信端末100へとデータの送信が行われてもよい(ステップS207)。
他方で、ステップS203における判定の結果、送信元通信端末100に対応するアドレス束221中の第m段目のIPアドレス及び送信先通信端末100に対応するアドレス束221中の第m段目のIPアドレスの双方が、NATルータ300のLAN側のIPアドレスであると判定された場合には(ステップS203:Yes)、送信元通信端末100が備えるネットワーク構成認識部102の動作により、送信元通信端末100に対応するアドレス束221中の第m段目のIPアドレスと送信先通信端末100に対応するアドレス束221中の第m段目のIPアドレスとが異なるか否かが判定される(ステップS204)。
ステップS204における判定の結果、送信元通信端末100に対応するアドレス束221中の第m段目のIPアドレスと送信先通信端末100に対応するアドレス束221中の第m段目のIPアドレスとが異なると判定された場合には(ステップS204:Yes)、図11のステップS108、ステップS109及びステップS104の動作が行われる。
他方で、ステップS204における判定の結果、送信元通信端末100に対応するアドレス束221中の第m段目のIPアドレスと送信先通信端末100に対応するアドレス束221中の第m段目のIPアドレスとが同一であると判定された場合には(ステップS204:No)、ステップS105へ戻り、アドレス束221中に含まれる更に次段のIPアドレスを対象にして、ステップS201以降の動作が行われる。
他方で、ステップS201における判定の結果、送信元通信端末100に対応するアドレス束221中の第m段目のIPアドレス及び送信先通信端末100に対応するアドレス束221中の第m段目のIPアドレスの双方が、NATルータ300のLAN側のIPアドレスでないと判定された場合には(ステップS201:Yes)、送信元通信端末100が備えるネットワーク構成認識部102の動作により、送信元通信端末100に対応するアドレス束221中の第m段目のIPアドレスと送信先通信端末100に対応するアドレス束221中の第m段目のIPアドレスとが異なるネットワークに属するものであるか否かが判定される(ステップS205)。
ステップS205における判定の結果、送信元通信端末100に対応するアドレス束221中の第m段目のIPアドレスと送信先通信端末100に対応するアドレス束221中の第m段目のIPアドレスとが異なるネットワークに属すると判定された場合には(ステップS205:Yes)、送信元通信端末100が備えるアドレス決定部103の動作により、送信先通信端末100に対応するアドレス束221に含まれる送信先通信端末100のIPアドレス(つまり、送信先通信端末100のローカルIPアドレス)が、送信元通信端末100が送信先通信端末100との間の通信を行うために用いられるIPアドレスとして決定される(ステップS207)。その後、ステップS207において決定されたIPアドレスを送信先アドレスに設定した上で、送信元通信端末100から送信先通信端末100へとデータの送信が行われる(ステップS104)。
他方で、ステップS205における判定の結果、送信元通信端末100に対応するアドレス束221中の第m段目のIPアドレスと送信先通信端末100に対応するアドレス束221中の第m段目のIPアドレスとが異なるネットワークに属さないと判定された場合には(ステップS205:No)、続いて、送信元通信端末100が備えるネットワーク構成認識部102の動作により、アドレス束221の更に前段に(つまり、第m−1段目から第1段目に)、NATルータ300のLAN側アドレスが含まれているか否かが判定される(ステップS206)。
ステップS206における判定の結果、アドレス束221の更に前段に(つまり、第m−1段目から第1段目に)、NATルータ300のLAN側アドレスが含まれていないと判定された場合には(ステップS206:No)、送信元通信端末100が備えるアドレス決定部103の動作により、送信先通信端末100に対応するアドレス束221に含まれる送信先通信端末100のIPアドレス(つまり、送信先通信端末100のローカルIPアドレス)が、送信元通信端末100が送信先通信端末100との間の通信を行うために用いられるIPアドレスとして決定される(ステップS207)。その後、ステップS207において決定されたIPアドレスを送信先アドレスに設定した上で、送信元通信端末100から送信先通信端末100へとデータの送信が行われる(ステップS104)。
他方で、ステップS206における判定の結果、アドレス束221の更に前段に(つまり、第m−1段目から第1段目に)、NATルータ300のLAN側アドレスが含まれていると判定された場合には(ステップS206:Yes)、図12に示すように、送信元通信端末100が備えるネットワーク構成認識部102の動作により、送信先通信端末100に対応するアドレス束221に含まれる送信先通信端末100のIPアドレスを引数とするARP(Address Resolution Protocol)を利用することで送信先通信端末100のMACアドレスが取得される(ステップS208)。
続いて、送信元通信端末100が備えるネットワーク構成認識部102の動作により、送信先通信端末100のMACアドレスが取得されたか否かが判定される(ステップS209)。
ステップS209における判定の結果、送信先通信端末100のMACアドレスが取得されなかったと判定された場合には(ステップS209:No)、図11のステップS108、ステップS109及びステップS104の動作が行われる。
他方で、ステップS209における判定の結果、送信先通信端末100のMACアドレスが取得されたと判定された場合には(ステップS209:Yes)、送信元通信端末100が備えるネットワーク構成認識部102の動作により、ステップS208において取得されたMACアドレスが送信先通信端末100に対応するアドレス束221に含まれる送信先通信端末100のMACアドレスと同一であるか否かが判定される(ステップS210)。
ステップS210における判定の結果、ステップS208において取得されたMACアドレスが送信先通信端末100に対応するアドレス束221に含まれる送信先通信端末100のMACアドレスと同一でないと判定された場合には(ステップS210:No)、図11のステップS108、ステップS109及びステップS104の動作が行われる。
他方で、ステップS210における判定の結果、ステップS208において取得されたMACアドレスが送信先通信端末100に対応するアドレス束221に含まれる送信先通信端末100のMACアドレスと同一であると判定された場合には(ステップS210:Yes)、送信元通信端末100が備えるアドレス決定部103の動作により、送信先通信端末100に対応するアドレス束221に含まれる送信先通信端末100のIPアドレス(つまり、送信先通信端末100のローカルIPアドレス)が、送信元通信端末100が送信先通信端末100との間の通信を行うために用いられるIPアドレスとして決定される(ステップS207)。その後、ステップS207において決定されたIPアドレスを送信先アドレスに設定した上で、送信元通信端末100から送信先通信端末100へとデータの送信が行われる(ステップS104)。
以上のような動作を行うことで、アドレス束221がMACアドレスやNATルータ300のLAN側のIPアドレスを含んでいる場合であっても、送信元通信端末100が送信先通信端末100との間の通信を行うために用いられるIPアドレスを好適に決定することができる。その結果、上述した各種効果を好適に享受することができる。
本発明は、上述した実施例に限られるものではなく、請求の範囲及び明細書全体から読み取れる発明の要旨或いは思想に反しない範囲で適宜変更可能であり、そのような変更を伴う通信端末、アドレス解決サーバ、及びコンピュータプログラムもまた本発明の技術的範囲に含まれるものである。
1 通信システム
100 通信端末
101 アドレス取得部
102 ネットワーク構成認識部
103 アドレス決定分
104 CPU
105 メモリ
106 通信部
107 アドレス調査部
108 アドレス登録部
200 アドレス解決サーバ
201 アドレス管理テーブル格納部
202 アドレス送信部
203 CPU
204 メモリ
205 通信部
220 アドレス管理テーブル
221 アドレス束
300 NATルータ
401 グローバルネットワーク
402 ローカルネットワーク

Claims (17)

  1. 同一のネットワーク網に属する又はルータを介して直接的に若しくは間接的に接続される他のネットワーク網に属する相手側端末と、前記相手側端末に固有のホスト名を用いて通信を行う通信端末であって、
    前記相手側端末との間の通信を行うために必要な制御情報を送信するアドレス解決サーバに対して前記相手側端末の前記ホスト名を提示することで、前記アドレス解決サーバより、前記アドレス解決サーバが属するグローバルネットワーク網から前記相手側端末に至るまでの間のネットワーク経路を示す第2アドレス束を前記制御情報として取得する取得手段と、
    前記取得手段により取得される前記第2アドレス束及び前記アドレス解決サーバが属するグローバルネットワーク網から当該通信端末に至るまでの間のネットワーク経路を示す第1アドレス束に基づいて、当該通信端末と前記相手側端末との間のネットワーク上の位置関係を認識する認識手段と、
    前記認識手段により認識された当該通信端末と前記相手側端末との間のネットワーク上の位置関係に基づいて、前記取得手段により取得される前記第2アドレス束から前記相手側端末との間の通信に使用するホストアドレスを決定する決定手段と
    を備えることを特徴とする通信端末。
  2. 前記第1アドレス束は、前記アドレス解決サーバが属するグローバルネットワーク網から当該通信端末に至るまでの間のネットワーク経路に存在するルータの上位側ホストアドレス及び当該通信端末のホストアドレスを、前記ネットワーク経路順に含み、
    前記第2アドレス束は、前記アドレス解決サーバが属するグローバルネットワーク網から前記相手側端末に至るまでの間のネットワーク経路に存在するルータの上位側ホストアドレス及び前記相手側端末のホストアドレスを、前記ネットワーク経路順に含み、
    前記認識手段は、前記第1アドレス束に含まれるホストアドレスと前記第2アドレス束に含まれるホストアドレスとを、前記ネットワーク経路の上位側から下位側に向けて順番に比較することで、当該通信端末と前記相手側端末との間のネットワーク上の位置関係を認識することを特徴とする請求項1に記載の通信端末。
  3. 前記認識手段は、前記第1アドレス束に含まれるホストアドレスのうちの所定階層のホストアドレスと前記第2アドレス束に含まれるホストアドレスのうちの前記所定階層のホストアドレスとが同一である場合には、前記第1アドレス束に含まれるホストアドレスのうちの前記所定階層の次の階層のホストアドレスと前記第2アドレス束に含まれるホストアドレスのうちの前記所定階層の次の階層のホストアドレスとを比較することを特徴とする請求項2に記載の通信端末。
  4. 前記決定手段は、前記第1アドレス束に含まれるホストアドレスのうちの所定階層のホストアドレスと前記第2アドレス束に含まれるホストアドレスのうちの前記所定階層のホストアドレスとが異なる場合には、前記第2アドレス束に含まれるホストアドレスのうちの前記所定階層のホストアドレスを、前記相手側端末との間の通信に使用するホストアドレスとして決定することを特徴とする請求項3に記載の通信端末。
  5. 前記アドレス解決サーバが属するグローバルネットワーク網から当該通信端末に至るまでの間のネットワーク経路を調査する調査手段と、
    前記調査手段による調査結果に基づいて、前記第1アドレス束を前記アドレス解決サーバに登録する登録手段を更に備えることを特徴とする請求項1に記載の通信端末。
  6. 前記アドレス解決サーバが属するグローバルネットワーク網から当該通信端末に至るまでの間のネットワーク経路に存在するルータがUPnP(Universal Plug and Play)対応ルータである場合には、前記調査手段は、当該通信端末に最も近い側に位置する前記ルータである第1ルータの下位側ホストアドレスにUPnPコマンドを用いることで、前記第1ルータの上位側ホストアドレスを取得することで、前記アドレス解決サーバが属するグローバルネットワーク網から当該通信端末に至るまでの間のネットワーク経路を調査し、
    前記登録手段は、前記調査手段により取得される、前記第1ルータの上位側ホストアドレス及び前記第1ルータが属するネットワーク網上における当該通信端末のホストアドレスを前記ネットワーク経路順に含むアドレス束を、前記第1アドレス束として前記アドレス解決サーバに登録することを特徴とする請求項5に記載の通信端末。
  7. 前記第1ルータの上位側のネットワーク網に属する前記ルータである第2ルータが存在する場合には、前記調査手段は、先に(i)前記第1ルータの動作モードをブリッジモードに切り替えると共に、前記第2ルータより前記第2ルータが属するネットワーク網上における当該通信端末自身のホストアドレスをDHCP(Dynamic Host Configuration Protocol)サーバより取得し、(ii)前記第2ルータの下位側ホストアドレスにUPnPコマンドを用いて、前記第2ルータの上位側ホストアドレスを取得し、(iii)前記第1ルータをルータモードに切り替えると共に、前記第1ルータより前記第1ルータが属するネットワーク網上における当該通信端末自身のホストアドレスを、上記(i)の状態の前の状態に戻し、(iv)前記第1ルータの下位側ホストアドレスにUPnPコマンドを用いて、前記第1ルータの上位側ホストアドレスを取得することで、前記アドレス解決サーバが属するグローバルネットワーク網から当該通信端末に至るまでの間のネットワーク経路を調査し、
    前記登録手段は、前記調査手段により取得される前記第2ルータの上位側ホストアドレスを更に含むアドレス束を、前記第1アドレス束として前記アドレス解決サーバに登録することを特徴とする請求項6に記載の通信端末。
  8. 前記調査手段は、前記アドレス解決サーバが属するグローバルネットワーク網に属すると共に当該通信端末に至るまでの間のネットワーク経路を調査するアドレス調査サーバに対して、当該アドレス解決サーバが属するグローバルネットワーク網から当該通信端末に至るまでの間のネットワーク経路に存在する前記ルータの上位側ホストアドレスを要求することで、前記アドレス解決サーバが属するグローバルネットワーク網から当該通信端末に至るまでの間のネットワーク経路を調査し、
    前記登録手段は、前記アドレス調査サーバから取得した前記上位側ホストアドレス及び当該通信端末のホストアドレスを前記ネットワーク経路順に含むアドレス束を、前記第1アドレス束として登録することを特徴とする請求項5に記載の通信端末。
  9. 前記登録手段は、前記ルータの下位側ホストアドレス及び当該通信端末のホストアドレスを前記ネットワーク経路順に含むアドレス束を、前記第1アドレス束として登録することを特徴とする請求項5に記載の通信端末。
  10. 前記登録手段は、前記ルータの下位側ホストアドレス、当該通信端末のホストアドレス及び当該通信端末に固有の機器アドレスを前記ネットワーク経路順に含むアドレス束を、前記第1アドレス束として登録することを特徴とする請求項5に記載の通信端末。
  11. 前記調査手段は、前記ルータの上位側に位置する他の通信端末に対して、前記ルータの上位側ホストアドレスを取得するよう要求し、
    前記登録手段は、前記他の通信端末から取得した前記上位側ホストアドレス及び当該通信端末のホストアドレスを前記ネットワーク経路順に含むアドレス束を、前記第1アドレス束として登録することを特徴とする請求項5に記載の通信端末。
  12. 前記取得手段は、前記アドレス解決サーバより、前記第1アドレス束を前記制御情報として取得することを特徴とする請求項1に記載の通信端末。
  13. 当該通信端末が属するネットワーク網よりも下位側のネットワーク網に属する他の通信端末からの要求に応じて、前記他の通信端末との間に介在するルータの上位側アドレスを取得すると共に、当該取得した上位側アドレスを前記他の通信端末に対して通知する通知手段を更に備えることを特徴とする請求項1に記載の通信端末。
  14. 通信端末が、前記通信端末が属するネットワーク網と同一のネットワーク網に属する又は前記通信端末が属するネットワーク網とルータを介して相互に接続されるネットワーク網に属する相手側端末と、前記相手側端末に固有のホスト名を用いて通信を行うために必要な制御情報を送信するアドレス解決サーバであって、
    当該アドレス解決サーバが属するグローバルネットワーク網から前記相手側端末に至るまでの間のネットワーク経路を示すアドレス束を格納する格納手段と、
    前記相手側端末の前記ホスト名を提示した前記通信端末からのアドレス解決要求に応じて、前記アドレス束を前記制御情報として前記通信端末へ送信する送信手段と
    を備えることを特徴とするアドレス解決サーバ。
  15. 前記アドレス束は、当該アドレス解決サーバが属するグローバルネットワーク網から前記相手側端末に至るまでの間のネットワーク経路に存在する前記ルータの上位側ホストアドレス若しくは下位側ホストアドレス及び前記相手側端末のホストアドレスを、前記ネットワーク経路順に含むことを特徴とする請求項14に記載のアドレス解決サーバ。
  16. 請求項1に記載された通信端末に備えられたコンピュータを制御するコンピュータプログラムであって、
    該コンピュータを、前記取得手段、前記認識手段及び前記決定手段として機能させることを特徴とするコンピュータプログラム。
  17. 請求項14に記載されたアドレス解決サーバに備えられたコンピュータを制御するコンピュータプログラムであって、
    該コンピュータを、前記格納手段及び前記送信手段として機能させることを特徴とするコンピュータプログラム。
JP2010537195A 2009-06-10 2009-06-10 通信端末、アドレス解決サーバ、及びコンピュータプログラム Expired - Fee Related JP5010033B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/060614 WO2010143286A1 (ja) 2009-06-10 2009-06-10 通信端末、アドレス解決サーバ、及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP5010033B2 true JP5010033B2 (ja) 2012-08-29
JPWO2010143286A1 JPWO2010143286A1 (ja) 2012-11-22

Family

ID=43308554

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010537195A Expired - Fee Related JP5010033B2 (ja) 2009-06-10 2009-06-10 通信端末、アドレス解決サーバ、及びコンピュータプログラム

Country Status (3)

Country Link
US (1) US9015280B2 (ja)
JP (1) JP5010033B2 (ja)
WO (1) WO2010143286A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5721634B2 (ja) 2008-12-05 2015-05-20 ソーシャル・コミュニケーションズ・カンパニー リアルタイムカーネル
TWI533651B (zh) * 2012-01-10 2016-05-11 群暉科技股份有限公司 提供資料雙向存取服務的系統及其方法
US20140337478A1 (en) * 2013-05-07 2014-11-13 Social Communications Company Peer-to-peer network communications
US10791089B2 (en) * 2017-03-29 2020-09-29 Hewlett Packard Enterprise Development Lp Converged address translation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003283570A (ja) * 2002-03-22 2003-10-03 Yokogawa Electric Corp 通信ネットワークシステムおよびデータ通信方法
JP2006261867A (ja) * 2005-03-16 2006-09-28 Nec Corp ネットワーク、ルータ装置及びそれらに用いるプライベートアドレス間通信方法並びにそのプログラム
JP2007074172A (ja) * 2005-09-05 2007-03-22 Matsushita Electric Ind Co Ltd プライベートネットワーク間接続システム及びアドレス変換装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001320418A (ja) 2000-05-12 2001-11-16 Nippon Telegraph & Telephone East Corp インターネット共有接続方法およびそのシステム
JP2003188901A (ja) 2001-12-20 2003-07-04 Nec Corp 通信システムおよび通信方法
US7450524B2 (en) * 2003-06-30 2008-11-11 Kontiki, Inc. Method and apparatus for determining network topology in a peer-to-peer network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003283570A (ja) * 2002-03-22 2003-10-03 Yokogawa Electric Corp 通信ネットワークシステムおよびデータ通信方法
JP2006261867A (ja) * 2005-03-16 2006-09-28 Nec Corp ネットワーク、ルータ装置及びそれらに用いるプライベートアドレス間通信方法並びにそのプログラム
JP2007074172A (ja) * 2005-09-05 2007-03-22 Matsushita Electric Ind Co Ltd プライベートネットワーク間接続システム及びアドレス変換装置

Also Published As

Publication number Publication date
WO2010143286A1 (ja) 2010-12-16
US20120084442A1 (en) 2012-04-05
US9015280B2 (en) 2015-04-21
JPWO2010143286A1 (ja) 2012-11-22

Similar Documents

Publication Publication Date Title
JP5817299B2 (ja) アドレス変換装置、通信システム及びアドレス変換方法
JP5948647B2 (ja) ネットワーク・アドレスを変換するシステムおよび方法
US8457014B2 (en) Method for configuring control tunnel and direct tunnel in IPv4 network-based IPv6 service providing system
EP2564579A1 (en) Method and apparatus for synthesized address detection
JP2019176511A (ja) ネットワーク機器
CN110691150A (zh) 一种基于SDN的IPv4与IPv6互联方法及系统
JP5010033B2 (ja) 通信端末、アドレス解決サーバ、及びコンピュータプログラム
KR101682513B1 (ko) 다중-코어 플랫폼들을 위한 dns 프록시 서비스
JP3858884B2 (ja) ネットワークアクセスゲートウェイ及びネットワークアクセスゲートウェイの制御方法並びにプログラム
US7440466B2 (en) Method, apparatus and system for accessing multiple nodes on a private network
JP2007081877A (ja) ネットワークシステム及びデータ転送方法
US20040153502A1 (en) Enhanced DNS server
JP2009517938A (ja) ネットワークアドレス変換を自動的に実行するローカルネットワークで実行するアプリケーションを検出する装置及び方法
US8510419B2 (en) Identifying a subnet address range from DNS information
JP6299268B2 (ja) 通信中継装置、および通信システム
KR101051792B1 (ko) 네트워크 주소 변환 장치 및 방법
KR101124635B1 (ko) IPv4/IPv6 연동 게이트웨이
WO2008069504A1 (en) Method for configuring control tunnel and direct tunnel in ipv4 network-based ipv6 service providing system
JP2010130604A (ja) 動的ゲートウェイ探索システム、動的ゲートウェイ探索方法、及びプログラム
JP6001512B2 (ja) 通信制御システム及び通信制御方法
JP2010157857A (ja) Vpn接続装置、パケット制御方法、及びプログラム
JP6583927B2 (ja) 管理装置、管理方法、及び管理プログラム
CN106027689B (zh) 一种通信方法和通信装置
US8572283B2 (en) Selectively applying network address port translation to data traffic through a gateway in a communications network
JP6403225B2 (ja) 中継装置のipアドレス解決方法、中継装置、及び、プログラム

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120515

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120531

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150608

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees