図1は、本発明の第一の実施形態である通信システム100の概略図である。
通信システム100は、クライアント装置(以下、CL装置という)110と、NAT装置120と、サーバ装置(以下、SE装置という)130と、補助装置140と、を備えている。
ここで、本実施形態においては、RTSPの映像配信プロトコルのように、CL装置110とSE装置130との間でデータ転送を行う際に、TCP(Transmission Control Protocol)又はUDP(User Datagram Protocol)によるデータ転送制御セッションを行ってから、UDPによるデータ転送ストリームを行うものとする。そして、データ転送制御セッションにおいては、CL装置110からSE装置130へペイロード部分に送信先であるCL装置110のIPアドレスとポート番号とを含むデータ送信先通知を行い、その応答として、SE装置130からCL装置110へペイロード部分に送信元であるSE装置130のIPアドレスとポート番号とを含むデータ送信元通知を行うことで、セッションが確立するようになっている。
CL装置110はグローバルネットワーク160に接続されており、SE装置130はプライベートネットワーク161に接続されている。
NAT装置120は、グローバルネットワーク160におけるグローバルIPアドレスと、プライベートネットワーク161におけるプライベートIPアドレスと、を変換することにより、CL装置110及びSE装置130における相互の通信を可能にしている。
なお、CL装置110は、プライベートネットワーク160を介した通信が可能にされた従来から使用されているコンピュータにより実現可能であり、NAT装置120は、IPヘッダにおけるIPアドレスと、TCPヘッダ又はUDPヘッダにおけるポート番号と、を変換することのできる従来から使用されているルータにより実現可能であるため、詳細な説明は省略する。
SE装置130は、図2(SE装置130の概略図)に示されているように、制御部131と、変換情報記憶部132と、IF部133と、を備えている。
制御部131は、通信処理部131aと、変換情報取得部131bと、を備えている。
通信処理部131aは、ローカルネットワーク161を介した通信処理を制御する。
例えば、前述のように、CL装置110との間でデータ転送制御セッションを確立する際に、通信処理部131aは、CL装置110からペイロード部分に送信先であるCL装置110のIPアドレスとポート番号とを含むデータ送信先通知を受け取り、その応答として、ペイロード部分に送信元であるSE装置130のIPアドレスとポート番号とを含むデータ送信元通知を送信する処理を制御する。
また、通信処理部131aは、セッション確立後のUDPによるデータ転送ストリーム処理についても制御する。
変換情報取得部131bは、後述するIF部133を介して、CL装置110からペイロード部分に送信先であるCL装置110のIPアドレスとポート番号とを含むデータ送信先通知を受け取ると、CL装置110のIPアドレス及びポート番号を後述する補助装置140に送信する。
そして、変換情報取得部131bは、後述する補助装置140から、少なくともNAT装置120のIPアドレス及びポート番号を受信して、後述する変換情報記憶部132に記憶する。なお、通信処理部131aは、後述するIF部133を介して、変換情報記憶部132に記憶されたNAT装置120のIPアドレス及びポート番号を送信元とするデータ送信元通知をCL装置110に送信する。
変換情報記憶部132には、補助装置140から受信したNAT装置120のIPアドレス及びポート番号を記憶する。
なお、変換情報記憶部132には、補助装置140との間で通信を行うためのIPアドレス又はポート番号も記憶する。
IF部133は、ローカルネットワーク161を介して情報の送受信を行うためのインターフェースである。
以上のように構成されるSE装置130は、例えば、図3(コンピュータ170の概略図)に示すようなコンピュータ170により実現可能である。
例えば、コンピュータ170は、外部記憶装置171と、メモリ172と、CPU(Central Processing Unit)173と、入力装置174と、出力装置175と、NIC(Network Interface Card)176と、これらを接続するバス177と、を備えている。
そして、制御部131については、外部記憶装置171に記憶されている所定のプログラムをメモリ172に読み込みCPU173で実行することにより実現可能であり、変換情報記憶部132については、外部記憶装置171により実現可能であり、IF部133は、NIC176により実現可能である。
補助装置140は、図4(補助装置140の概略図)に示されているように、第一のIF部141と、第二のIF部142と、第三のIF部143と、第四のIF部144と、変換情報提供部145と、第一の通信転送部146と、第二の通信転送部147と、を備えている。
第一のIF部141、第二のIF部142、第三のIF部143、および、第四のIF部144、は、グローバルネットワーク160又はローカルネットワーク161を通じて情報の送受信を行うためのインターフェースである。
本実施形態においては、図1に示されているように、第一のIF部141はローカルネットワーク161に接続されており、第二のIF部142はNAT装置120のローカルネットワーク161側のインターフェース(図示せず)に接続されており、第三のIF部143はグローバルネットワーク160に接続されており、第四のIF部144はNAT装置120のグローバルネットワーク160側のインターフェース(図示せず)に接続されている。
そして、補助装置140は、SE装置130からの変換情報要求を第一のIF部141で受信した際に下記のような処理を行い、その他のデータに関しては通過させる。
変換情報提供部145は、第一のIF部141を介してSE装置130からの変換情報要求を受信した際には、CL装置110のIPアドレス及びポート番号、SE装置130のIPアドレス及びポート番号、を特定したダミーパケット試行要求を後述する第一の通信転送部146及び第二の通信転送部147に出力する。
そして、変換情報提供部145は、第一の通信転送部146及び第二の通信転送部147によるダミーパケットの送受信の結果(ダミーパケット受信通知)を、第二の通信転送部147より入力して、当該結果で取得されるNAT装置120のIPアドレス及びポート番号を特定した変換情報応答を生成して、第一のIF部141を介して、SE装置130に送信する。
第一の通信転送部146は、変換情報提供部145よりダミーパケット試行要求を受け取ると、CL装置110のIPアドレス及びポート番号を送信先、SE装置130のIPアドレス及びポート番号を送信元、とするダミーパケットを生成して、第二のIF部142から送信する。
第二の通信転送部147は、変換情報提供部145よりダミーパケット試行要求を受け取ると、第四のIF部144で受信するパケットを検査して、CL装置110のIPアドレス及びポート番号を送信先とするダミーパケットが受信されるのを監視する。
そして、そのようなダミーパケットが受信されると、第二の通信転送部147は、ダミーパケットの送信元として入力されているNAT装置120のIPアドレスとポート番号を抽出して、抽出したIPアドレス及びポート番号を特定したダミーパケット受信通知を変換情報提供部145に出力する。
以上のように構成される補助装置140については、例えば、図5(コンピュータ180の概略図)に示すようなコンピュータ180により実現可能である。
図示するように、コンピュータ180は、外部記憶装置181と、メモリ182と、CPU183と、NIC184〜187と、これらを接続するバス188と、を備えている。
そして、変換情報提供部、第一の通信転送部146及び第二の通信転送部147は、外部記憶装置181に記憶されている所定のプログラムをメモリ182に読み込み、CPU183で実行することにより実現可能であり、第一のIF部141はNIC184により実現可能であり、第二のIF部142はNIC185により実現可能であり、第三のIF部143はNIC186により実現可能であり、第四のIF部144はNIC187により実現可能である。
以上のように構成される通信システム100においてデータ転送制御セッションを確立する際の処理を図6に示すフローチャートを用いて説明する。
まず、CL装置110は、データ送信先通知を生成し(S10)、SE装置130に向けて送信する(S11)。ここで、データ送信先通知は、図7(データ送信先通知の概略図)に示すように、例えば、ペイロード部分162aには、SE装置130からのデータの送信先であるCL装置110のグローバルIPアドレスとCL装置110のデータ受信ポート番号が格納されており、TCPもしくはUDPヘッダ162bには、送信元であるCL装置110の制御ポート番号と、送信先であるNAT装置120の制御ポート番号と、が格納されており、IPヘッダ162cには、送信元であるCL装置110のグローバルIPアドレスと、送信先であるNAT装置120グローバルIPアドレスと、が格納される。
このようなデータ送信先通知を受信したNAT装置120は、データ送信先通知のヘッダに格納されている送信先のIPアドレスとポート番号をSE装置130のものに変換する(S12)。例えば、図8(データ送信先通知の概略図)に示されているように、TCPもしくはUDPヘッダ162b’の送信先には、SE装置130の制御ポート番号を格納し、IPヘッダ162c’には、SE装置130のローカルIPアドレスを格納する。なお、CL装置110からSE装置130への接続は、グローバルネットワーク160からプライベートネットワーク161への接続であるため、NAT装置120は、予めSE装置130の制御ポート番号及びローカルIPアドレスを記憶しておき、いわゆるフォワーディングを行えばよい。
そして、このようにしてヘッダの情報が変換されたデータ送信先通知は、NAT装置120からSE装置130に転送される(S13)。
データ送信先通知を受信したSE装置130は、通信処理部131aにおいて送信元ポートを確保し(S14)、受信したデータ送信先通知のペイロード部分に格納されているCL装置110のグローバルIPアドレス及びデータ受信ポート番号を抽出する。
そして、SE装置130の変換情報取得部131bは、通信処理部131aで抽出したCL装置110のグローバルIPアドレス及びデータ受信ポート番号をデータ送信先とし、SE装置130のローカルIPアドレス及びデータ送信ポート番号を変換前送信元とする変換情報要求(例えば、図9参照)を生成して(S15)、IF部133を介して補助装置140に送信する(S16)。なお、補助装置140への送信は、他のデータと区別するために、補助装置140の固有のIPアドレスや、変換情報要求に固有のポート番号を使用して送信する。
第一のIF部141を介して、変換情報要求を受信した変換情報提供部145は、変換情報要求で特定されているCL装置110のグローバルIPアドレス及びデータ受信ポート番号をデータ送信先とし、SE装置130のローカルIPアドレス及びデータ送信ポート番号を変換前送信元とするダミーパケット試行要求(例えば、図10参照)を生成して(S17)、第二の通信転送部147と、第一の通信転送部146と、に出力する(S18、S19)。
なお、これらへの出力は、第一の通信転送部146から送信されるダミーパケットを第二の通信転送部147で確実に受け取れるように、第二の通信転送部147に出力してから第一の通信転送部146に出力することが望ましい。
ダミーパケット試行要求を受け取った第二の通信転送部147では、第四のIF部144で受信するパケットを検査して、CL装置110のIPアドレス及びポート番号を送信先とするダミーパケットが受信されるのを監視する(S20)。
また、ダミーパケット試行要求を受け取った第一の通信転送部146では、例えば、図11(ダミーパケットの概略図)に示されているように、任意のデータ(例えば、ダミーパケットであることを識別することができる識別情報)又は空データをペイロード部分163aに格納し、ダミーパケット試行要求から抽出したSE装置130のデータ送信ポート番号を送信元、CL装置110のデータ受信ポート番号を送信先としてUDPヘッダ163bに格納し、ダミーパケット試行要求から抽出したSE装置130のローカルIPアドレスを送信元、CL装置110のグローバルIPアドレスを送信先としてIPヘッダ163cに格納したダミーパケットを生成して(S21)、第二のIF部142を介してNAT装置120側に送信する(S22)。
NAT装置120では、例えば、図12(ダミーパケットの概略図)に示されているように、受信したダミーパケットの送信元のUDPヘッダ163b’には、NAT装置120のデータ送信ポート番号を格納し、当該送信元のIPヘッダ163c’には、NAT装置120のグローバルIPアドレスを格納して(S23)、送信先であるCL装置110に転送する(S24)。
第四のIF部144を介してダミーパケットを受信した第二の通信転送部147では、受信したダミーパケットからCL装置110のグローバルIPアドレス及びデータ受信ポート番号、NAT装置120のグローバルIPアドレス及びデータ送信ポート番号、を抽出して、例えば、図13(ダミーパケット受信通知の概略図)に示すように、CL装置110のグローバルIPアドレス及びデータ受信ポート番号をデータ送信先、NAT装置120のグローバルIPアドレス及びデータ送信ポート番号を変換後送信元、として特定したダミーパケット受信通知を生成して(S25)、変換情報提供部145に出力する(S26)。
ダミーパケット受信通知を受け取った変換情報提供部145では、ダミーパケット受信通知からCL装置110のグローバルIPアドレス及びデータ受信ポート番号、NAT装置120のグローバルIPアドレス及びデータ送信ポート番号、を抽出し、また、ステップS16で受信した変換情報要求に含まれるSE装置130のローカルIPアドレス及びデータ送信ポート番号を抽出する。そして、変換情報提供部145は、例えば、図14(変換情報応答の概略図)に示されているように、CL装置110のグローバルIPアドレス及びデータ受信ポート番号をデータ送信先とし、NAT装置120のグローバルIPアドレス及びデータ送信ポート番号を変換後送信元とし、SE装置130のローカルIPアドレス及びデータ送信ポート番号を変換前送信元として特定した変換情報応答を生成して(S27)、第一のIF部141を介して、SE装置130に送信する(S28)。
変換情報応答を受信したSE装置130では、受信した変換情報応答を変換情報記憶部132に記憶して、例えば、図15(データ送信元通知の概略図)に示されているように、ペイロード部分164aには、NAT装置120のグローバルIPアドレス及びデータ送信ポート番号が格納されており、TCPもしくはUDPヘッダ164bには、送信元であるSE装置130の制御ポート番号と、送信先であるCL装置110の制御ポート番号と、が格納されており、IPヘッダ162cには、送信元であるSE装置130のローカルIPアドレスと、送信先であるCL装置110のグローバルIPアドレスと、が格納されたデータ送信元通知を生成して(S29)、IF部133を介して、CL装置110に送信する(S30)。
このようにして送信されたデータ送信元通知は、NAT装置120において、例えば、図16(データ送信元通知の概略図)に示されているように、TCPもしくはUDPヘッダ164b’の送信元がNAT装置120の制御ポート番号に変換され、また、IPヘッダ164c’の送信元がNAT装置120のグローバルIPアドレスに変換されて(S31)、CL装置110に転送される(S32)。
以上のような処理により、CL装置110で受信されたデータ送信元通知の、ペイロード部分164aに格納されているポート番号及びIPアドレスと、この後にCL装置110にて受信されるデータ転送ストリーム中のパケットのUDPヘッダ164b’に格納されているポート番号及びIPヘッダ164c’に格納されているIPアドレスと、が一致するため、CL装置110においてこれを正当なデータとして処理することができる。
以上のように、本実施形態ではNAT装置120と、その両側のネットワーク160、161の間に設けられた補助装置140と、変換情報記憶部131bが設けられたSE装置130と、の連携により、NAT装置120及びCL装置110に改変を行うことなくグローバルネットワーク160に位置するCL装置110と、プライベートネットワーク161に位置するSE装置130と、の間でUDPによるデータ送受信及びその制御を行うプロトコルによる通信が、NAT装置120を通過する全パケットの解析などを行うことなく実現される。
また、データ送信元・送信先IPアドレス・ポート情報の表記形式が異なる新規プロトコルに対応する際にも、NAT装置120及び補助装置140の改変は不要であり、新規プロトコルでの通信を行うSE装置130では当然そのプロトコルには対応しているため、SE装置130への変換情報取得部131bの追加及び通信処理部131aの変換情報取得部131bへの連携機能の改変のみで対応可能であり、改変をより少ない労力で行うことができるようになる。
図17は、本発明の第二の実施形態である通信システム200の概略図である。
通信システム200は、CL装置110と、NAT装置120と、SE装置230と、補助装置240と、を備えている。
ここで、本実施形態においても第一の実施形態と同様に、RTSPの映像配信プロトコルのように、CL装置110とSE装置230との間でデータ転送を行う際に、TCP又はUDPによるデータ転送制御セッションを行ってから、UDPによるデータ転送ストリームを行うものとする。そして、データ転送制御セッションにおいては、CL装置110からSE装置230へペイロード部分に送信先であるCL装置110のIPアドレスとポート番号とを含むデータ送信先通知を行い、その応答として、SE装置230からCL装置110へペイロード部分に送信元であるSE装置230のIPアドレスとポート番号とを含むデータ送信元通知を行うことで、セッションが確立するようになっている。
本実施形態においては、第一の実施形態とは異なり、CL装置110はプライベートネットワーク261に接続されており、SE装置230はグローバルネットワーク260に接続されている。
CL装置110及びNAT装置120は、第一の実施形態と同様であるため、説明を省略する。
SE装置230は、図18(SE装置230の概略図)に示されているように、制御部231と、変換情報記憶部132と、IF部133と、を備えている。なお、本実施形態においては、第一の実施形態と比較して、制御部231で行う制御が異なっているため、以下この子となっている事項に関連する事項について説明する。
制御部231は、通信処理部231aと、変換情報取得部231bと、を備えている。
通信処理部231aは、グローバルネットワーク260を介した通信処理を制御する。
例えば、前述のように、CL装置110との間でデータ転送制御セッションを確立する際に、通信処理部231aは、CL装置110からペイロード部分に送信先であるCL装置110のIPアドレスとポート番号とを含むデータ送信先通知を受け取り、その応答として、ペイロード部分に送信元であるSE装置130のIPアドレスとポート番号とを含むデータ送信元通知を送信する処理を制御する。
また、通信処理部231aは、セッション確立後のUDPによるデータ転送ストリーム処理についても制御する。ここで、本実施形態においては、後述するように、変換情報取得部231bで取得されたNAT装置120のグローバルIPアドレス及びデータ受信ポート番号を用いてデータ転送を行う。
変換情報取得部231bは、IF部133を介して、CL装置110からペイロード部分に送信先であるCL装置110のIPアドレスとポート番号とを含むデータ送信先通知を受け取ると、CL装置110のIPアドレス及びポート番号を後述する補助装置240に送信する。
そして、変換情報取得部231bは、後述する補助装置240から、少なくともNAT装置120のIPアドレス及びポート番号を受信して、変換情報記憶部132に記憶する。なお、通信処理部231aは、後述するIF部133を介して、変換情報記憶部132に記憶されたNAT装置120のIPアドレス及びポート番号を送信先として、データ転送ストリームのデータ転送を行う。
以上のように構成されるSE装置230は、第一の実施形態と同様に、例えば、図3に示すようなコンピュータ170により実現可能である。
補助装置240は、図19(補助装置240の概略図)に示されているように、第一のIF部241と、第二のIF部242と、第三のIF部243と、第四のIF部244と、変換情報提供部245と、第一の通信転送部246と、第二の通信転送部247と、を備えている。
第一のIF部241、第二のIF部242、第三のIF部243、および、第四のIF部244、は、グローバルネットワーク260又はローカルネットワーク261を通じて情報の送受信を行うためのインターフェースである。
本実施形態においては、図1に示されているように、第一のIF部241はグローバルネットワーク260に接続されており、第二のIF部242はNAT装置120のグローバルネットワーク260側のインターフェース(図示せず)に接続されており、第三のIF部243はローカルネットワーク261に接続されており、第四のIF部244はNAT装置120のローカルネットワーク261側のインターフェース(図示せず)に接続されている。
そして、補助装置240は、SE装置230からの変換情報要求を第一のIF部241で受信した際に下記のような処理を行い、その他のデータに関しては通過させる。
変換情報提供部245は、第一のIF部241を介してSE装置130からの変換情報要求を受信した際には、CL装置110のIPアドレス及びポート番号、SE装置230のIPアドレス及びポート番号、を特定したダミーパケット試行要求を後述する第一の通信転送部246及び第二の通信転送部247に出力する。
そして、変換情報提供部245は、第一の通信転送部146及び第二の通信転送部147によるダミーパケットの送受信の結果(ダミーパケット受信通知)を、第一の通信転送部247より入力して、当該結果で取得されるNAT装置120のIPアドレス及びポート番号を特定した変換情報応答を生成して、第一のIF部141を介して、SE装置230に送信する。
第一の通信転送部246は、変換情報提供部245よりダミーパケット試行要求を受け取ると、第二のIF部242で受信するパケットを検査して、SE装置130のIPアドレス及びポート番号を送信先とするダミーパケットが受信されるのを監視する。
そして、そのようなダミーパケットが受信されると、第一の通信転送部246は、ダミーパケットの送信元として入力されているNAT装置120のIPアドレスとポート番号を抽出して、抽出したIPアドレス及びポート番号を特定したダミーパケット受信通知を変換情報提供部245に出力する。
第二の通信転送部247は、変換情報提供部245よりダミーパケット試行要求を受け取ると、SE装置230のIPアドレス及びポート番号を送信先、CL装置110のIPアドレス及びポート番号を送信元、とするダミーパケットを生成して、第四のIF部144から送信する。
以上のように構成される補助装置240については、第一の実施形態と同様に、例えば、図5に示すようなコンピュータ180により実現可能である。
以上のように構成される通信システム200においてデータ転送制御セッションを確立する際の処理を図20に示すフローチャートを用いて説明する。
まず、CL装置110は、データ送信先通知を生成し(S40)、SE装置230に向けて送信する(S41)。ここで、データ送信先通知は、図21(データ送信先通知の概略図)に示すように、例えば、ペイロード部分165aには、SE装置230からのデータの送信先であるCL装置110のローカルIPアドレスとCL装置110のデータ受信ポート番号が格納されており、TCPもしくはUDPヘッダ165bには、送信元であるCL装置110の制御ポート番号と、送信先であるSE装置120の制御ポート番号と、が格納されており、IPヘッダ165cには、送信元であるCL装置110のローカルIPアドレスと、送信先であるSE装置230グローバルIPアドレスと、が格納される。
このようなデータ送信先通知を受信したNAT装置120は、データ送信先通知のヘッダに格納されている送信元のIPアドレスとポート番号をNAT装置120のものに変換する(S42)。例えば、図22(データ送信先通知の概略図)に示されているように、TCPもしくはUDPヘッダ165b’の送信元には、NAT装置120の制御ポート番号を格納し、IPヘッダ165c’には、NAT装置120のグローバルIPアドレスを格納する。
そして、このようにしてヘッダの情報が変換されたデータ送信先通知は、NAT装置120からSE装置230に転送される(S43)。
データ送信先通知を受信したSE装置230は、通信処理部231aにおいて送信元ポートを確保し(S44)、受信したデータ送信先通知のペイロード部分に格納されているCL装置110のローカルIPアドレス及びデータ受信ポート番号を抽出する。
そして、SE装置230の変換情報取得部231bは、通信処理部231aで抽出したCL装置110のローカルIPアドレス及びデータ受信ポート番号を変換前送信先とし、SE装置230のグローバルIPアドレス及びデータ送信ポート番号をデータ送信元とする変換情報要求(例えば、図23参照)を生成して(S45)、IF部133を介して補助装置240に送信する(S46)。なお、補助装置240への送信は、他のデータと区別するために、補助装置240の固有のIPアドレスや、変換情報要求に固有のポート番号を使用して送信する。
第一のIF部241を介して、変換情報要求を受信した変換情報提供部245は、変換情報要求において変換前送信先として特定されているCL装置110のローカルIPアドレス及びデータ受信ポート番号を変換前送信先とし、変換情報要求においてデータ送信元として特定されているSE装置130のグローバルIPアドレス及びデータ送信ポート番号をデータ送信元とするダミーパケット試行要求(例えば、図24参照)を生成して(S47)、第一の通信転送部246と、第二の通信転送部247と、に出力する(S48、S49)。
なお、これらへの出力は、第二の通信転送部247から送信されるダミーパケットを第一の通信転送部246で確実に受け取れるように、第一の通信転送部246に出力してから第二の通信転送部247に出力することが望ましい。
ダミーパケット試行要求を受け取った第一の通信転送部246では、第二のIF部242で受信するパケットを検査して、SE装置230のIPアドレス及びポート番号を送信先とするダミーパケットが受信されるのを監視する(S50)。
また、ダミーパケット試行要求を受け取った第二の通信転送部247では、例えば、図25(ダミーパケットの概略図)に示されているように、任意のデータ(例えば、ダミーパケットであることを識別することができる識別情報)又は空データをペイロード部分166aに格納し、ダミーパケット試行要求から抽出したCL装置110のデータ受信ポート番号を送信元、SE装置230のデータ送信ポート番号を送信先としてUDPヘッダ166bに格納し、ダミーパケット試行要求から抽出したCL装置110のローカルIPアドレスを送信元、SE装置230のグローバルIPアドレスを送信元としてIPヘッダ166cに格納したダミーパケットを生成して(S51)、第四のIF部244から送信する(S52)。
NAT装置120では、例えば、図26(ダミーパケットの概略図)に示されているように、受信したダミーパケットの送信元のUDPヘッダ166b’は、NAT装置120のデータ受信ポート番号に変換し、当該送信元のIPヘッダ166c’は、NAT装置120のグローバルIPアドレスに変換して(S53)、送信先であるSE装置230に転送する(S54)。
第二のIF部242を介してダミーパケットを受信した第一の通信転送部246では、受信したダミーパケットから送信元であるNAT装置120のグローバルIPアドレス及びデータ受信ポート番号、送信先であるSE装置230のグローバルIPアドレス及びデータ送信ポート番号、を抽出して、例えば、図27(ダミーパケット受信通知の概略図)に示すように、NAT装置120のグローバルIPアドレス及びデータ受信ポート番号を変換後送信先、SE装置230のグローバルIPアドレス及びデータ送信ポート番号をデータ送信元、として特定したダミーパケット受信通知を生成して(S55)、変換情報提供部245に出力する(S56)。
ダミーパケット受信通知を受け取った変換情報提供部245では、ダミーパケット受信通知からNAT装置120のグローバルIPアドレス及びデータ受信ポート番号、SE装置230のグローバルIPアドレス及びデータ送信ポート番号、を抽出し、また、ステップS46で受信した変換情報要求に含まれるCL装置110のローカルIPアドレス及びデータ受信ポート番号を抽出する。そして、変換情報提供部245は、例えば、図28(変換情報応答の概略図)に示されているように、CL装置110のローカルIPアドレス及びデータ受信ポート番号を変換前送信先とし、NAT装置120のグローバルIPアドレス及びデータ受信ポート番号を変換後送信先とし、SE装置230のグローバルIPアドレス及びデータ送信ポート番号をデータ送信元として特定した変換情報応答を生成して(S57)、第一のIF部241を介して、SE装置230に送信する(S58)。
変換情報応答を受信したSE装置230では、受信した変換情報応答を変換情報記憶部132に記憶して、例えば、図29(データ送信元通知の概略図)に示されているように、ペイロード部分167aには、SE装置230のグローバルIPアドレス及びデータ送信ポート番号が格納されており、TCPもしくはUDPヘッダ167bには、送信元であるSE装置230の制御ポート番号と、送信先であるNAT装置110の制御ポート番号と、が格納されており、IPヘッダ167cには、送信元であるSE装置230のグローバルIPアドレスと、送信先であるNAT装置120のグローバルIPアドレスと、が格納されたデータ送信元通知を生成して(S59)、IF部133を介して、CL装置110に送信する(S60)。
このようにして送信されたデータ送信元通知は、NAT装置120において、例えば、図30(データ送信元通知の概略図)に示されているように、TCPもしくはUDPヘッダ167b’の送信先がCL装置110の制御ポート番号に変換され、また、IPヘッダ167c’の送信先がCL装置110のローカルIPアドレスに変換されて(S61)、CL装置110に転送される(S62)。
そして、SE装置230の通信処理部231aは、セッション確立後のUDPによるデータ転送ストリーム処理において、データ送信先通知のペイロード部分に格納されているデータの送信先であるCL装置110のローカルIPアドレス及びデータ受信ポート番号ではなく、ステップS58で入手した変換情報応答に含まれているNAT装置120のグローバルIPアドレス及びデータ受信ポート番号を用いて通信を行うため、グローバルネットワーク260を介して、データの転送を正常に行うことができる。
以上に示したように、本実施形態ではNAT装置120と、その両側のネットワークの間の通信を中継する補助装置240と、SE装置230に設けられた変換情報取得部231bと、の連携により、NAT装置120及びCL装置110の改変を行うことなく、プライベートネットワーク260に接続されたCL装置110とグローバルネットワーク261に接続されたSE装置230との間でUDPによるデータ送受信及びその制御を行うプロトコルによる通信が、NAT装置120を通過する全パケットの解析などを行うことなく実現することができる。
また、データ送信元・送信先IPアドレス・ポート情報の表記形式が異なる新規プロトコルに対応する際にも、NAT装置120及び補助装置240の改変は不要であり、新規プロトコルでの通信を行うSE装置230では当然そのプロトコルには対応しているため、SE装置230への変換情報取得部231bの追加及び通信処理部231aの変換情報取得部231bへの連携機能の改変のみで対応可能であり、改変をより少ない労力で行うことができるようになる。
図31は、本発明の第三の実施形態である通信システム300の概略図である。
図示するように、通信システム300は、CL装置110と、NAT装置120と、SE装置330と、補助装置140と、中継装置350と、を備えている。
ここで、本実施形態においても第一の実施形態と同様に、RTSPの映像配信プロトコルのように、CL装置110とSE装置330との間でデータ転送を行う際に、TCP又はUDPによるデータ転送制御セッションを行ってから、UDPによるデータ転送ストリームを行うものとする。そして、データ転送制御セッションにおいては、CL装置110からSE装置330へペイロード部分に送信先であるCL装置110のIPアドレスとポート番号とを含むデータ送信先通知を行い、その応答として、SE装置330からCL装置110へペイロード部分に送信元であるSE装置330のIPアドレスとポート番号とを含むデータ送信元通知を行うことで、セッションが確立するようになっている。
また、本実施形態における通信システム300は、第一の実施形態と比較して、中継装置350がさらに追加されている点で異なっているため、以下この異なっている点に関連する事項について説明する。
第一の実施形態においては、SE装置130において変換情報取得部131bを備えており、この変換情報取得部131bにおいてNAT装置120のIPアドレスやポート番号を取得することができるようにしていたが、本実施形態においては、第一の実施形態におけるSE装置130の変換情報取得部131bで行う処理を中継装置350で行うようにしている。
従って、本実施形態におけるSE装置330は、RTSPの映像配信プロトコルで使用されている通常のサーバ装置のように、CL装置110から受信したデータ送信先通知に対して、データ送信元通知を行うことで、セッションを確立させて、UDPによるデータ転送ストリームを行うものであって、従来から使用されているものと同様であるため説明を省略する。
中継装置350は、図32(中継装置350の概略図)に示されているように、第一のIF部351と、第二のIF部352と、変換情報取得部353と、変換情報記憶部354と、送信先通知記憶部355と、送信元通知記憶部356と、を備えている。
第一のIF部351は、SE装置330との間で情報の送受信を行うためのインターフェースである。
第二のIF部352は、プライベートネットワーク161を介して情報の送受信を行うためのインターフェースである。
変換情報取得部353は、SE装置330から送信されたパケットを監視し、SE装置330に送信された送信先通知を受信した場合、または、SE装置330から送信された送信元通知を受信した場合には、以下のような処理を行い、他のパケットについては通過させる。
まず、変換情報取得部353は、SE装置330に送信された送信先通知を受信した場合には、データ送信先通知のペイロード部分に格納されるCL装置110のグローバルIPアドレス及びデータ受信ポート番号と、IPヘッダ162c及びTCPもしくはUDPヘッダに格納される送信元の情報であるCL装置110のグローバルIPアドレス及び制御ポート番号と、を関連させて、送信先通知記憶部355に記憶する。
なお、変換情報取得部353は、パケットのTCPもしくはUDPヘッダに格納されている送信先ポート番号がSE装置330の制御ポート番号である場合に、送信先通知であると判断することができる。
また、変換情報取得部353は、SE装置330から送信元通知が送信された場合には、当該送信元通知を送信元通知記憶部355に記憶する。
ここで、変換情報取得部353は、パケットのIPヘッダ及びTCPもしくはUDPヘッダに格納されているIPアドレス及びポート番号が、送信先通知記憶部355に記憶されているCL装置110のグローバルIPアドレス及び制御ポート番号と一致する場合に、送信元通知であると判断する。
次に、変換情報取得部353は、送信元通知の送信先であるCL装置110のIPアドレスとデータ受信ポート番号と特定した情報(変換情報要求)を補助装置140に送信する。
そして、変換情報取得部353は、補助装置140から、少なくともNAT装置120のIPアドレス及びデータ送信ポート番号を受信して、変換情報記憶部354に記憶する。
次に、変換情報取得部353は、受信したNAT装置120のIPアドレス及びデータ送信ポート番号を、送信元通知記憶部355に記憶した送信元通知のペイロード部分に格納されているSE装置330のIPアドレス及びデータ送信ポート番号と置き換えて、置き換えた送信元通知をCL装置110に送信する。
なお、変換情報記憶部354には、補助装置140との間で通信を行うためのIPアドレス又はポート番号も記憶する。
以上のように構成される中継装置350は、例えば、図33(コンピュータ190の概略図)に示すようなコンピュータ190により実現可能である。
例えば、コンピュータ190は、外部記憶装置191と、メモリ192と、CPU193と、NIC194、195と、これらを接続するバス196と、を備えている。
そして、変換情報取得部353については、外部記憶装置191に記憶されている所定のプログラムをメモリ192に読み込みCPU193で実行することにより実現可能であり、変換情報記憶部354及び送信元通知記憶部355については、外部記憶装置191により実現可能であり、第一のIF部351は、NIC194により実現可能であり、第二のIF部352は、NIC195により実現可能である。
以上のように構成される通信システム300においてデータ転送制御セッションを確立する際の処理を図34に示すフローチャートを用いて説明する。
まず、CL装置110は、データ送信先通知を生成し(S70)、SE装置330に向けて送信する(S71)。ここで送信するデータ送信先通知は、第一の実施形態と同様に、例えば、図7に示すように、ペイロード部分162aには、SE装置330からのデータの送信先であるCL装置110のグローバルIPアドレスとCL装置110のデータ受信ポート番号が格納されており、TCPもしくはUDPヘッダ162bには、送信元であるCL装置110の制御ポート番号と、送信先であるNAT装置120の制御ポート番号と、が格納されており、IPヘッダ162cには、送信元であるCL装置110のグローバルIPアドレスと、送信先であるNAT装置120グローバルIPアドレスと、が格納される。
このようなデータ送信先通知を受信したNAT装置120は、データ送信先通知のヘッダに格納されている送信先のIPアドレスとポート番号をSE装置330のものに変換する(S72)。例えば、図8に示されているように、TCPもしくはUDPヘッダ162b’の送信先には、SE装置330の制御ポート番号を格納し、IPヘッダ162c’には、SE装置330のローカルIPアドレスを格納する。
そして、このようにしてヘッダの情報が変換されたデータ送信先通知は、NAT装置120からSE装置330に転送される(S73)。
中継装置350は、第二のIF部352で受信したパケットのIPヘッダ及びTCPもしくはUDPヘッダを検査して、送信先ポート番号がSE装置330になっている場合には、そのペイロード部分に格納されているCL装置110のグローバルIPアドレス及びデータ受信ポート番号と、IPヘッダ162c及びTCPもしくはUDPヘッダに格納される送信元の情報であるCL装置110のグローバルIPアドレス及び制御ポート番号と、を関連させて、送信先通知記憶部355に記憶して(S74)、データ送信先通知をSE装置330に転送する(S75)。
そして、SE装置330では、送信元ポートを確保し(S76)、受信したデータ送信先通知のペイロード部分に格納されているCL装置110のグローバルIPアドレス及びデータ受信ポート番号を抽出する。そして、SE装置330では、例えば、図35(データ送信元通知の概略図)に示されているように、ペイロード部分168aには、SE装置330のローカルIPアドレス及びデータ送信ポート番号が格納されており、TCPもしくはUDPヘッダ168bには、送信元であるSE装置130の制御ポート番号と、送信先であるCL装置110の制御ポート番号と、が格納されており、IPヘッダ168cには、送信元であるSE装置130のローカルIPアドレスと、送信先であるCL装置110のグローバルIPアドレスと、が格納されたデータ送信元通知を生成して(S77)、CL装置110に送信する(S78)。
そして、中継装置350の変換情報取得部353は、SE装置330から送信された送信元通知を第一のIF部351を介して受信した場合には、当該送信元通知を送信元通知記憶部355に記憶する(S79)。なお、変換情報取得部353は、パケットのIPヘッダ及びTCPもしくはUDPヘッダに格納されているIPアドレス及びポート番号が、送信先通知記憶部355に記憶されているCL装置110のグローバルIPアドレス及び制御ポート番号と一致する場合に、送信元通知であると判断する。
そして、中継装置350の変換情報取得部353は、ステップS74で送信先通知記憶部355に記憶したCL装置110のグローバルIPアドレス及びデータ受信ポート番号をデータ送信先とし、SE装置330のローカルIPアドレス及びデータ送信ポート番号を変換前送信元とする変換情報要求(例えば、図9参照)を生成して(S80)、第二のIF部352を介して補助装置140に送信する(S81)。なお、補助装置140への送信は、他のデータと区別するために、補助装置140の固有のIPアドレスや、変換情報要求に固有のポート番号を使用して送信する。
第一のIF部141を介して、変換情報要求を受信した変換情報提供部145は、変換情報要求で特定されているCL装置110のグローバルIPアドレス及びデータ受信ポート番号をデータ送信先とし、SE装置330のローカルIPアドレス及びデータ送信ポート番号を変換前送信元とするダミーパケット試行要求(例えば、図10参照)を生成して(S82)、第二の通信転送部147と、第一の通信転送部146と、に出力する(S83、S84)。
なお、これらへの出力は、第一の通信転送部146から送信されるダミーパケットを第二の通信転送部147で確実に受け取れるように、第二の通信転送部147に出力してから第一の通信転送部146に出力することが望ましい。
ダミーパケット試行要求を受け取った第二の通信転送部147では、第四のIF部144で受信するパケットを検査して、CL装置110のIPアドレス及びポート番号を送信先とするダミーパケットが受信されるのを監視する(S85)。
また、ダミーパケット試行要求を受け取った第一の通信転送部146では、例えば、図11に示されているように、任意のデータ(例えば、ダミーパケットであることを識別することができる識別情報)又は空データをペイロード部分163aに格納し、ダミーパケット試行要求から抽出したSE装置330のデータ送信ポート番号を送信元、CL装置110のデータ受信ポート番号を送信先としてUDPヘッダ163bに格納し、ダミーパケット試行要求から抽出したSE装置130のローカルIPアドレスを送信元、CL装置110のグローバルIPアドレスを送信先としてIPヘッダ163cに格納したダミーパケットを生成して(S86)、第二のIF部142を介してNAT装置120側に送信する(S87)。
NAT装置120では、例えば、図12に示されているように、受信したダミーパケットの送信元のUDPヘッダ163b’には、NAT装置120のデータ送信ポート番号を格納し、当該送信元のIPヘッダ163c’には、NAT装置120のグローバルIPアドレスを格納して(S88)、送信先であるCL装置110に転送する(S89)。
第四のIF部144を介してダミーパケットを受信した第二の通信転送部147では、受信したダミーパケットからCL装置110のグローバルIPアドレス及びデータ受信ポート番号、NAT装置120のグローバルIPアドレス及びデータ送信ポート番号、を抽出して、例えば、図13に示すように、CL装置110のグローバルIPアドレス及びデータ受信ポート番号をデータ送信先、NAT装置120のグローバルIPアドレス及びデータ送信ポート番号を変換後送信元、として特定したダミーパケット受信通知を生成して(S90)、変換情報提供部145に出力する(S91)。
ダミーパケット受信通知を受け取った変換情報提供部145では、ダミーパケット受信通知からCL装置110のグローバルIPアドレス及びデータ受信ポート番号、NAT装置120のグローバルIPアドレス及びデータ送信ポート番号、を抽出し、また、ステップS81で受信した変換情報要求に含まれるSE装置330のローカルIPアドレス及びデータ送信ポート番号を抽出する。そして、変換情報提供部145は、例えば、図14に示されているように、CL装置110のグローバルIPアドレス及びデータ受信ポート番号をデータ送信先とし、NAT装置120のグローバルIPアドレス及びデータ送信ポート番号を変換後送信元とし、SE装置330のローカルIPアドレス及びデータ送信ポート番号を変換前送信元として特定した変換情報応答を生成して(S92)、第一のIF部141を介して、中継装置350に送信する(S93)。
変換情報応答を受信した中継装置350では、受信した変換情報応答を変換情報記憶部354に記憶して、返信元通知記憶部356に記憶されているデータ送信元通知のペイロード部分168a(図35参照)に記憶されているデータ送信元情報をNAT装置164aのグローバルIPアドレス及びデータ送信ポート番号に変更して(S94)、第二のIF部133を介して、CL装置110に送信する(S95)。
このようにして送信されたデータ送信元通知は、NAT装置120において、例えば、図16に示されているように、TCPもしくはUDPヘッダ164b’の送信元がNAT装置120の制御ポート番号に変換され、また、IPヘッダ164c’の送信元がNAT装置120のグローバルIPアドレスに変換されて(S96)、CL装置110に転送される(S97)。
以上のような処理により、本実施形態においても、第一の実施形態と同様に、CL装置110で受信されたデータ送信元通知の、ペイロード部分164aに格納されているポート番号及びIPアドレスと、この後にCL装置110にて受信されるデータ転送ストリーム中のパケットのUDPヘッダ164b’に格納されているポート番号及びIPヘッダ164c’に格納されているIPアドレスと、が一致するため、CL装置110においてこれを正当なデータとして処理することができる。
また、本実施形態においては、NAT装置120と、その両側のネットワーク160、161の間に設けられた補助装置140と、中継装置350と、の連携により、NAT装置120、CL装置110及びSE装置330に改変を行うことなく、グローバルネットワーク160に位置するCL装置110と、プライベートネットワーク161に位置するSE装置330と、の間でUDPによるデータ送受信及びその制御を行うプロトコルによる通信が、NAT装置120を通過する全パケットの解析などを行うことなく実現される。
また、データ送信元・送信先IPアドレス・ポート情報の表記形式が異なる新規プロトコルに対応する際にも、NAT装置120及び補助装置140の改変は不要であり、中継装置350を改変又は設置することで容易に対応することができる。