(57)【要約】【課題】通信アプリケーションに変更を加えることなくパケット交換制御を容易に実現すること。【解決手段】中継装置１０３を介して他のネットワーク上の他の通信装置と通信し、アプリケーションを実行可能な通信装置において、通信装置内の通信に関する設定を行う通信資源管理部２０５と、中継装置１０３に対して予め定められたプロトコルにより該中継装置が管理する通信資源の設定に関する要求を送信するＵＰＮＰ制御部２０６と、アプリケーションが指示した通信制御に関する命令を受けて、通信装置または中継装置１０３に必要な処理を判断し、それぞれの処理を通信資源管理部２０５およびＵＰＮＰ制御部２０６に振り分ける中継装置制御部２０４とを備えた。【選択図】        図１
2005109735.tif 000002
【特許請求の範囲】
【請求項１】
中継装置を介して他のネットワーク上の他の通信装置と通信し、アプリケーションを実行可能な通信装置において、
前記通信装置内の通信に関する設定を行う通信資源管理手段と、
前記中継装置に対して、予め定められたプロトコルにより該中継装置が管理する通信資源の設定に関する要求を送信するプロトコル管理手段と、
前記アプリケーションが指示した通信制御に関する命令を受けて、前記通信装置または前記中継装置に必要な処理を判断し、それぞれの処理を前記通信資源管理手段および前記プロトコル管理手段に振り分ける中継装置制御手段と、
を備えたことを特徴とする通信装置。
【請求項２】
前記アプリケーションが指示した通信制御に関する命令を取得して前記中継装置制御手段に受け渡すための命令取得手段をさらに備えたことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記中継装置制御手段は、前記アプリケーションから前記命令を受けて、前記通信資源管理手段に通信資源の確保に関する設定要求を受け渡し、
前記通信資源管理手段は、前記通信資源の確保に関する設定要求を受信した場合、該設定要求に従って通信資源の割り当てを行うことを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記中継装置制御手段は、前記アプリケーションから通信のために確保すべきソケット番号とポート情報を含む前記命令を受けた場合には、前記通信資源管理手段に自己のアドレス情報の問い合わせを要求し、
該要求に対する前記通信資源管理手段からの応答を受信すると、プロトコル管理手段に前記命令に応じたポート設定要求を行い、
前記プロトコル管理手段は、前記ポート設定要求を受けた場合には、前記中継装置に対して前記ポート設定要求に応じたポートの設定要求を送信することを特徴とする請求項１に記載の通信装置。
【請求項５】
前記中継装置制御手段は、前記アプリケーションから確保した通信資源の解放を要求する旨の要求を受けた場合に、前記通信資源管理手段に前記要求に従ってポートの解放要求を行うとともに、前記プロトコル管理手段にポート解放要求を行い、
前記プロトコル管理手段は、前記ポート解放要求を受けた場合に、前記中継装置に対して、当該ポート設定要求を送信することを特徴とする請求項１に記載の通信装置。
【請求項６】
前記中継装置制御手段は、前記アプリケーションの通信に必要なプロトコル情報とポート番号が予め設定されたアプリケーション操作設定情報記憶手段をさらに備え、
前記アプリケーションから前記命令を受けると、前記アプリケーション操作設定情報手段に記憶された情報を検索し、該検索結果から前記通信資源管理手段及び前記プロトコル管理手段に通信に必要な設定の要求をすることを特徴とする請求項１に記載の通信装置。
【請求項７】
前記中継装置制御手段は、前記アプリケーションからアドレス情報の検索を要求する命令を受けると、前記プロトコル管理手段に当該アドレス情報の取得要求を行った後、取得したアドレス情報を前記アプリケーションに受け渡し、
前記プロトコル管理手段は、該取得要求を受けた場合に、前記中継装置に対し前記アドレス情報の取得を要求することを特徴とする請求項１に記載の通信装置。
【請求項８】
前記予め定められたプロトコルは、UPnP(Universal Plug and Play)の仕様に従ったプロトコルであることを特徴とする請求項１に記載の通信装置。
【請求項９】
複数のネットワーク上の通信を中継する中継装置と、前記ネットワーク内に存在し、前記中継装置を介して他のネットワーク上の他の通信装置と通信する、アプリケーションを実行可能な通信装置とを有する通信システムにおいて、
前記通信装置は、
前記通信装置内の通信に関する設定を行う通信資源管理手段と、
前記中継装置に対して、予め定められたプロトコルにより該中継装置が管理する通信資源の設定に関する要求を送信するプロトコル管理手段と、
前記アプリケーションが指示した通信制御に関する命令を受けて、プロトコル管理手段または通信資源管理手段に前記命令の処理を振り分ける中継装置制御手段と、を備え、
前記中継装置は、
前記プロトコル管理手段からの要求を受信した場合、該要求に従って前記通信装置が通信に必要な前記ネットワーク間の中継を可能とする設定を行うこと
を特徴とする通信システム。
【請求項１０】
前記中継装置は、一方のネットワークから他方のネットワークにパケットを送信する際に、アドレス情報を変換するものであることを特徴とする請求項９に記載の通信システム。
【請求項１１】
前記予め定められたプロトコルは、UPnPの仕様に従ったプロトコルであることを特徴とする請求項９に記載の通信システム。
【請求項１２】
中継装置を介して他のネットワーク上の通信装置と通信を行う、アプリケーションを実行可能な通信装置の通信方法において、
前記アプリケーションから通信に必要な設定に関する命令を受けると、
前記命令に含まれる前記通信装置に設定すべき設定を行い、
他方、前記命令に含まれる前記中継装置に設定すべき情報については、該情報を予め定められたプロトコルに従って該中継装置に送信する
ことを特徴とする通信方法。
【請求項１３】
前記予め定められたプロトコルは、UPnPの仕様に従ったプロトコルであることを特徴とする請求項１２に記載の通信方法。
【請求項１４】
中継装置を介して他のネットワーク上の通信装置と通信を行う通信装置の通信プログラムにおいて、
通信に必要な設定に関する命令を受けると、
前記命令に含まれる前記通信装置に設定すべき設定を行う手順と、
他方、前記命令に含まれる前記中継装置に設定すべき情報については、該情報を予め定められたプロトコルに従って該中継装置に送信する手順と
をコンピュータに実行させる通信プログラム。
【請求項１５】
前記予め定められたプロトコルは、UPnPの仕様に従ったプロトコルであることを特徴とする請求項１４に記載の通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｒａｔｉｏｎ）、ＮＡＰＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｐｏｒｔ  Ｔｒａｎｓｒａｔｉｏｎ）またはＳＰＩ（Ｓｔａｔｅｆｕｌｌ  Ｐａｃｋｅｔ  Ｉｎｓｐｅｃｔｉｏｎ）等の機能を有する中継装置に対してＮＡＴあるいはＮＡＰＴの変換ルール設定あるいはＳＰＩの通過ルール設定を行う通信装置、通信システム、通信方法、通信プログラムに関するものである。
【背景技術】
【０００２】
従来の二つの通信網の境界に配置されるルータなどの中継装置は、ネットワークアドレスを変換するためのＮＡＴあるいはＮＡＰＴあるいはＳＰＩ機能を有している場合が多い。これら各機能を有する中継装置は、ローカルＩＰアドレスが付与される第１の通信網（ユーザ網）からグローバルＩＰアドレスが付与された第２の通信網（公共網）へ送信されたパケットの応答パケットのみを、第２の通信網から第１の通信網へ通過させ、これによって、第１の通信網からのみ通信を開始することが可能となっている。
【０００３】
しかしながら、第２の通信網から通信を開始する等のためには、第２の通信網から第１の通信網へパケットを通過を許可するパケットの属性情報を手動によって中継装置に設定する必要がある。
【０００４】
また、第２の通信網に配置された通信端末から第１の通信網に配置された通信端末へ通信を開始する場合には、第１の通信網に配置された通信端末は中継装置の第２の通信網側のＩＰアドレスを、第２の通信網に配置された通信端末へ通知する必要があるが、通常、第１の通信網に配置された通信端末側では、このような中継装置の第２の通信網側のＩＰアドレスを知ることはできない。
【０００５】
ところで、近年、ＵＰＮＰ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）という方式が注目を集めてきている、このＵＰＮＰ方式は、家庭内のＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）や周辺機器、ＡＶ機器、電話、家電製品などの機器をネットワークを通じて接続し、相互に機能を提供しあうための技術仕様であり、インターネットで標準となっている技術を基盤とし、ネットワークにつなぐだけで複雑な操作や設定作業を伴うことなく機能させるものである。
【０００６】
このＵＰＮＰ方式では、第１の通信網（ユーザ網）内の通信端末が、通信機器と制御パケットを交換することにより、通過を許可するパケットの属性情報を設定することが可能となっている。また、このＵＰＮＰ方式では、第１の通信網（ユーザ網）内の通信端末は中継装置の第２の通信網側のＩＰアドレスを知ることが可能となっている。
【０００７】
【非特許文献１】日経コミニュケーション２００２年６月３日号ｐ．５１「ＩＰ電話に扉を開くＮＡＴ越え」
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、この方式では、通信端末上の通信アプリケーションのソフトウエアが、ＵＰＮＰ制御パケット交換を制御する必要があり、このため、ＵＰＮＰ方式を使用するためには、通信アプリケーションのソフトウエアにＵＰＮＰ制御パケット交換を制御するためのプログラム変更が必要であるという問題がある。アプリケーションのプログラム変更には多大な労力と時間を要し、このためＵＰＮＰ方式に対応した通信アプリケーションの開発作業を効率的に行うことができなくなってしまう。
【０００９】
一方、ＵＰＮＰ制御パケット交換の制御など通信制御に関してＯＳ（オペレーティングシステム）等で提供されるシステムコールに必要なパラメータとしては、一般的にポート番号、プロトコル番号、ＩＰアドレスなど共通するものが多い。このため、これらのパラメータを指定された通信制御に関する命令を、代換えすることは実現性がある。
【００１０】
本発明は、上記に鑑みてなされたものであって、通信アプリケーションに変更を加えることなくパケット交換制御を容易に実現することができる通信装置、通信システム、通信方法、通信プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、本発明は、中継装置を介して他のネットワーク上の他の通信装置と通信し、アプリケーションを実行可能な通信装置において、前記通信装置内の通信に関する設定を行う通信資源管理手段と、前記中継装置に対して、予め定められたプロトコルにより該中継装置が管理する通信資源の設定に関する要求を送信するプロトコル管理手段と、前記アプリケーションが指示した通信制御に関する命令を受けて、前記通信装置または前記中継装置に必要な処理を判断し、それぞれの処理を前記通信資源管理手段および前記プロトコル管理手段に振り分ける中継装置制御手段と、を備えたことを特徴とする。
【００１２】
また、本発明は、複数のネットワーク上の通信を中継する中継装置と、前記ネットワーク内に存在し、前記中継装置を介して他のネットワーク上の他の通信装置と通信する、アプリケーションを実行可能な通信装置とを有する通信システムにおいて、前記通信装置は、前記通信装置内の通信に関する設定を行う通信資源管理手段と、前記中継装置に対して、予め定められたプロトコルにより該中継装置が管理する通信資源の設定に関する要求を送信するプロトコル管理手段と、前記アプリケーションが指示した通信制御に関する命令を受けて、プロトコル管理手段または通信資源管理手段に前記命令の処理を振り分ける中継装置制御手段と、を備え、前記中継装置は、前記プロトコル管理手段からの要求を受信した場合、該要求に従って前記通信装置が通信に必要な前記ネットワーク間の中継を可能とする設定を行うことを特徴とする。
【００１３】
また、本発明は、中継装置を介して他のネットワーク上の通信装置と通信を行う、アプリケーションを実行可能な通信装置の通信方法において、前記アプリケーションから通信に必要な設定に関する命令を受けると、前記命令に含まれる前記通信装置に設定すべき設定を行い、他方、前記命令に含まれる前記中継装置に設定すべき情報については、該情報を予め定められたプロトコルに従って該中継装置に送信することを特徴とする。
【００１４】
また、本発明は、中継装置を介して他のネットワーク上の通信装置と通信を行う通信装置の通信プログラムにおいて、通信に必要な設定に関する命令を受けると、前記命令に含まれる前記通信装置に設定すべき設定を行う手順と、他方、前記命令に含まれる前記中継装置に設定すべき情報については、該情報を予め定められたプロトコルに従って該中継装置に送信する手順とをコンピュータに実行させる通信プログラムである。
【発明の効果】
【００１５】
本発明によれば、通信装置内の通信に関する設定を行う通信資源管理手段と、前記中継装置に対して、予め定められたプロトコルにより該中継装置が管理する通信資源の設定に関する要求を送信するプロトコル管理手段と、前記アプリケーションが指示した通信制御に関する命令を受けて、前記通信装置または前記中継装置に必要な処理を判断し、それぞれの処理を前記通信資源管理手段および前記プロトコル管理手段に振り分ける中継装置制御手段とを備えたことで、中継制御手段が通信装置または前記中継装置に必要な処理を判断し、それぞれの処理を前記通信資源管理手段および前記プロトコル管理手段に振り分けるため、通信アプリケーションに変更を加えることなくパケット交換制御を容易に実現することができるという効果を奏する。また、本発明によれば、アプリケーションのプログラムに変更を加える必要がないのでプログラム開発を効率的に行うことができるという効果を奏する。
【発明を実施するための最良の形態】
【００１６】
以下に添付図面を参照して、この発明にかかる通信装置、通信システム、通信方法、通信プログラムの最良な実施の形態を詳細に説明する。
【００１７】
（実施の形態１）
図１は、本発明の実施の形態にかかる通信システムのネットワーク構成を示す説明図である。本実施の形態の通信システムは、第１の通信網１０１と第２の通信網と１０２とが中継装置１０３によって接続されているものとする。そして、第１の通信網１０１内には、通信装置１１１と通信装置１１２が、第２の通信網１０２内には通信装置１１３と通信装置１１４がそれぞれ存在している。ここで、本実施の形態では、中継装置１０３は、ＮＡＰＴ機能を有しており、第１の通信網内でのみ通用するIPアドレス(ローカルアドレス)と、インターネット上のアドレス(グローバルアドレス)を透過的に相互変換するようになっている。
【００１８】
例えば、第１の通信網１０１の通信装置１１１が第２の通信網１０２の通信装置１１３宛にパケットを送信する場合には、送信されたパケットは中継装置を介して通信装置１１３に送られるが、この際に、中継装置は、パケットの属性情報としてパケット内に含まれる、送信元アドレス、宛先アドレス、プロトコル番号、送信元ポート番号、宛先ポート番号を読み取り、後述する状態表に登録されている属性情報に変換してパケットの情報を書き換え、第２の通信網に送信するようになっている。
【００１９】
次に、図１に示す本実施の形態の通信装置について説明する。図２は、本実施の形態の通信装置の機能的構成を示すブロック図である。本実施の形態の通信装置は、ＵＰＮＰ方式でパケット交換を行うものであり、図２に示すように、複数のアプリケーションＡ２０１ａ，アプリケーションＢ２０１ｂ、アプリケーションＣ２０１ｃと、中継装置制御部２０４と、中継装置制御部ライブラリ２０３と、通信資源管理部２０５と、ＵＰＮＰ制御部２０６と、パケット送受信部２０７と、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）２０８とを主に備えている。ここで、ＵＰＮＰ制御部２０５は、本発明におけるプロトコル管理手段を構成し、中継装置制御部ライブラリ２０３は本発明における命令取得手段を構成する。
【００２０】
アプリケーションＡ２０２ａ，アプリケーションＢ２０２ｂ、アプリケーションＣ２０２ｃは、通信アプリケーションであり、通信資源確保要求、通信資源確保、通信資源解放要求などのシステムコールを発行する。
【００２１】
中継装置制御部２０３は、アプリケーションＡ２０２ａ，アプリケーションＢ２０２ｂ、アプリケーションＣ２０２ｃによって発行されたシステムコールを受信し、各システムコールに対応した命令を通信資源管理部２０５やＵＰＮＰ制御部２０６に送信するものであり、従来、アプリケーション２０２ａ〜２０２ｃが通信資源管理部２０５やＵＰＮＰ制御部２０６に対して直接各種システムコールを発行していたものを、アプリケーション２０２ａ〜２０２ｃと通信資源管理部２０５やＵＰＮＰ制御部２０６との間で介在して受信するようになっている。また、中継装置制御部２０３は、ポートマッピング設定要求、ポートマッピング解放要求等を行う。
【００２２】
中継装置制御部ライブラリ２０４は、アプリケーションＡ２０２ａ，アプリケーションＢ２０２ｂ、アプリケーションＣ２０２ｃによって発行されるシステムコールを、通信資源管理部２０５やＵＰＮＰ制御部２０６に対してではなく、中継装置制御部２０４に対して送信されるようにＯＳ２０８が提供するシステムコールライブラリを変更して登録したライブラリである。
【００２３】
通信資源管理部２０５は、アプリケーションからの要求に従って、通信資源の割り当てを実行し、また割り当てた中の通信資源の管理を行うものである。
【００２４】
ＵＰＮＰ制御部２０６は、ＵＰＮＰ方式の通信プロトコルに従ってポートマッピング設定要求メッセージやポートマッピング解放要求メッセージなどを中継装置１０３に送信する。
【００２５】
パケット送受信部２０７は、アプリケーションＡ２０２ａ，アプリケーションＢ２０２ｂ、アプリケーションＣ２０２ｃから中継装置に対するパケットの送信および中継装置からパケットを受信してアプリケーションＡ２０２ａ，アプリケーションＢ２０２ｂ、アプリケーションＣ２０２ｃへ送信する。
【００２６】
ＯＳ２０８は、例えば、ＭＳ（Ｒ）  Ｗｉｎｄｏｗｓ（Ｒ）、ＵＮＩＸ（Ｒ）、Ｌｉｎｕｘ（Ｒ）等の汎用ＯＳである。
【００２７】
次に以上のように構成された通信装置および通信システムを利用したパケット交換の通信方法について説明する。図３は、通信装置の中継装置制御部２０４による通信資源の確保時の処理手順を示すフローチャートである。
【００２８】
アプリケーションＡ２０２ａ，アプリケーションＢ２０２ｂ、アプリケーションＣ２０２ｃから資源確保要求（Ｓｏｃｋｅｔシステムコール）を受信すると（ステップＳ３０１）、通信資源管理部２０５に受信した資源確保要求を送信する（ステップＳ３０２）。これによって通信資源管理部２０５では、通信資源の割り当てが行われ、ソケット番号が通知されるので、それまで待ち状態となる（ステップＳ３０３）。
【００２９】
通信資源管理部２０５からソケット番号が通知されると（ステップＳ３０３：Ｙｅｓ）、通知されたソケット番号と、プロトコル番号をＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの記憶装置に記憶し（ステップＳ３０４）、アプリケーションＡ２０２ａ，アプリケーションＢ２０２ｂ、アプリケーションＣ２０２ｃにソケット番号を送信する（ステップＳ３０５）。そして、アプリケーションＡ２０２ａ，アプリケーションＢ２０２ｂ、アプリケーションＣ２０２ｃから資源確保のｂｉｎｄシステムコールの受信待ちとなる（ステップＳ３０６）。
【００３０】
アプリケーションＡ２０２ａ，アプリケーションＢ２０２ｂ、アプリケーションＣ２０２ｃから資源確保のｂｉｎｄシステムコールを受信したら（ステップＳ３０６：Ｙｅｓ）、通信資源管理部２０５に自身の通信装置のＩＰアドレスを問い合わせ、ＩＰアドレスを取得する（ステップＳ３０７）。そして、中継装置制御部２０４はＵＰＮＰ制御部２０６へポートマッピング設定要求を行う（ステップＳ３０８）。これにより、中継装置１０３によって状態表にパケット属性情報のエントリが生成され、その結果がＵＰＮＰ制御部２０６から通知されるので、それまで待ち状態となる（ステップＳ３０９）。
【００３１】
ＵＰＮＰ制御部２０６から通知が成功である場合には、通信資源管理部２０５に対して資源確保の実行要求を行う（ステップＳ３１０）。これにより通信資源管理部２０５では、通信資源の確保が行われ、その結果が通知されるのでそれまで待ち状態となる（ステップＳ３１１）。なお、ステップＳ３０９で失敗の旨が通知された場合にはアプリケーションに失敗通知を送信し（ステップＳ３１３）、処理を終了する。
【００３２】
通信資源管理部２０５からの通知が成功であった場合には、アプリケーションＡ２０２ａ，アプリケーションＢ２０２ｂ、アプリケーションＣ２０２ｃに成功通知を送信する（ステップＳ３１２）。これによって、パケット送信が開始される。
【００３３】
一方、ステップＳ３１１で失敗の旨が通知された場合には、中継装置制御部２０４はＵＰＮＰ制御部２０６にポートマッピング解放要求を送信し（ステップＳ３１４）、アプリケーションＡ２０２ａ，アプリケーションＢ２０２ｂ、アプリケーションＣ２０２ｃに失敗通知を送信して（ステップＳ３１５）、処理を終了する。
【００３４】
このように、中継装置制御部２０４は、アプリケーションＡ２０２ａ，アプリケーションＢ２０２ｂ、アプリケーションＣ２０２ｃの各種要求を受け取って、受け取った各種要求を通信資源管理部２０５やＵＰＮＰ制御部２０６へ送信するようになっている。
【００３５】
次に、このような中継装置制御部２０４の処理を、アプリケーションＡ２０２ａ，アプリケーションＢ２０２ｂ、アプリケーションＣ２０２ｃ（以下、アプリケーションという。）、通信資源管理部２０５、ＵＰＮＰ制御部２０６、パケット送受信部２０７、中継装置１０３のデータ、命令の流れの中で説明する。図４は、通信資源の確保時のデータ、命令の流れを示す説明図である。
【００３６】
アプリケーションは通信に先立って、資源確保要求（ｓｏｃｋｅｔシステムコール）によって資源を確保したいプロトコルを中継装置制御部２０４に送信する（ステップＳ４０１）。中継装置制御部はかかる要求を、通信資源管理部２０５に送信し（ステップＳ４０２）、通信資源管理部２０５は指定されたプロトコルに対する通信資源の割り当てを行う（ステップＳ４０３）。
【００３７】
そして、通信資源管理部２０５は、通信資源を割り当てた後、ソケット番号を中継装置制御部２０４に送信する（ステップＳ４０４）。中継装置制御部２０４は、ソケット番号およびプロトコル番号をＲＡＭ等に記憶し（ステップＳ４０５）、ソケット番号をアプリケーションに送信する（ステップＳ４０６）。
【００３８】
次に、アプリケーションは、資源を確保したいソケット番号およびポート番号指定して資源確保の実行要求（ｂｉｎｄシステムコール）を中継装置制御部２０４に送信する（ステップＳ４０７）。中継装置制御部２０４は、通信資源管理部２０５に自身のＩＰアドレスを問い合わせる（ステップＳ４０８）。通信資源管理部２０５からＩＰアドレスを含む応答が送信されてくるので、中継装置制御部２０４はかかる応答を受信する（ステップＳ４０９）。
【００３９】
次に中継装置制御部２０４は、ＵＰＮＰ制御部２０６に対して、自ＩＰアドレス、プロトコル番号およびポート番号を含むポートマッピング設定要求を送信する（ステップＳ４１０）。
【００４０】
ポートマッピング設定要求を受信したＵＰＮＰ制御部２０６は、ポートマッピング設定要求メッセージ（ＵＰＮＰのＣｏｎｔｒｏｌメッセージを、パケット送受信部２０７を介して、中継装置１０３に送信し、中継装置１０３にポートマッピングの生成を要求する（ステップＳ４１１）。このポートマッピング設定要求メッセージには、自ＩＰアドレス、プロトコル番号およびポート番号が含まれる。
【００４１】
ポートマッピング設定要求メッセージを受信した中継装置１０３は、状態表に新たなエントリを生成する（ステップＳ４１２）。図５は、中継装置１０３が保持している状態表の一例を示す説明図である。図５に示すように、状態表には、アドレス変換前の送信元アドレス、宛先アドレス、プロトコル番号、送信元ポート番号および宛先ポート番号と、アドレス変換後の送信元アドレス、宛先アドレス、プロトコル番号、送信元ポート番号および宛先ポート番号とが対応付けられている。
【００４２】
中継装置１０３によるエントリ生成は、次のように行われる。アドレス変換前の送信元アドレス、プロトコル番号、送信元ポート番号には、ポートマッピング設定要求メッセージに含まれている自アドレス、プロトコル番号、ポート番号を設定し、宛先アドレス、宛先ポート番号には、全ての値と一致する値を示すＡＮＹを設定する（５０１参照）。
【００４３】
また、アドレス変換後のプロトコル番号、送信元ポート番号には、ポートマッピング設定要求メッセージ設定のプロトコル番号、ポート番号を設定し、送信元アドレスには中継装置１０３の通信網１０２側のＩＰアドレスを設定し、宛先アドレス、宛先ポート番号には、パケットの中継の際に入力パケットの属性情報の値を変化させないことを示すＮｏＣｈａｎｇｅを設定する（５０２参照）。
【００４４】
中継装置１０３は、このような状態表のエントリ生成に成功すると、設定成功応答（ＵＰＮＰのＣｏｎｔｒｏｌメッセージ）を通信装置のパケット送受信部２０７に送信する（ステップＳ４１３）。設定成功応答を受信したパケット送受信部２０７は、設定成功応答をＵＰＮＰ制御部２０６に送信し（ステップＳ４１４）、ＵＰＮＰ制御部２０６はＵＰＮＰのＣｏｎｔｒｏｌメッセージの設定成功応答であることを確認して、成功通知を中継装置制御部２０４に送信する（ステップＳ４１５）。中継装置制御部２０４は成功通知を受信すると、資源を確保したいソケット番号およびポート番号を通信資源管理部２０５に送信する（ステップＳ４１６）。
【００４５】
ソケット番号、ポート番号を受信した通信資源管理部２０５は、指定されたポートが既に資源確保されていないことを確認する（ステップＳ４１７）。そして、通信資源管理部２０５は、指定ポートがまだ資源確保されていないことを確認できた場合は、指定ポート番号宛のパケットを、指定ソケットを持つアプリケーションに配布する旨のパケット配布指定通知ようパケット送受信部２０７に通知する（ステップＳ４１８）。
【００４６】
また、通信資源管理部２０５は、成功通知を中継装置制御部２０４に送信し、中継装置制御部２０４は受信した成功通知をアプリケーションに送信する（ステップＳ４１９）。
【００４７】
これ以降、パケット送受信部２０７が外部からそのポート宛のパケットを受信すると、アプリケーションに配布する。また、アプリケーションから送信するパケットはパケット送受信部２０７を介して外部へと送信されることになる。
【００４８】
ここで、中継装置１０３がエントリ生成（図４のステップＳ４１２）に失敗した場合の処理について説明する。図６は、中継装置１０３がエントリ生成に失敗した場合のデータ、命令の流れを示す説明図である。
【００４９】
中継装置１０３は、状態表のエントリ生成を行ったが（ステップＳ６０１）、失敗した場合、ＵＰＮＰのＣｏｎｔｒｏｌメッセージの失敗応答を通信装置のパケット送受信部２０７に送信する（ステップＳ６０２）。失敗応答を受信したパケット送受信部２０７は、失敗応答をＵＰＮＰ制御部２０６に送信する（ステップＳ６０３）。ＵＰＮＰ制御部２０６は、受信した失敗応答をＵＰＮＰのＣｏｎｔｒｏｌメッセージの失敗応答であることを確認し、失敗通知を中継装置制御部２０４に送信する（ステップＳ６０４）。中継装置制御部２０４は、受信した失敗通知をアプリケーションに送信する（ステップＳ６０５）。
【００５０】
次に、通信資源管理部２０５が通信資源未確保の確認を行った結果（図４のステップ４１７）、指定ポートが既に資源確保されていた場合の処理について説明する。図７は、指定ポートが既に資源確保されていた場合の処理におけるデータ、命令の流れを示す説明図である。
【００５１】
通信資源管理部２０５が通信資源未確保の確認を行い（ステップＳ７０１）、その結果指定ポートが既に資源確保されていた場合には、通信資源管理部２０５は、失敗通知を中継装置制御部２０４に送信する（ステップＳ７０２）。中継装置制御部２０４は、失敗通知を受信すると、ＵＰＮＰ制御部２０６に自ＩＰアドレス、プロトコル番号、ポート番号を含むポートマッピング解放要求を送信する（ステップＳ７０３）。ＵＰＮＰ制御部２０６は、ポートマッピング解放要求を中継装置制御部２０４から受信すると、ポートマッピング解放要求メッセージ（ＵＰＮＰのＣｏｎｔｒｏｌメッセージ）を中継装置１０３に送信して、ポートマッピングの解放を要求する（ステップＳ７０４）。
【００５２】
中継装置１０３は、ポートマッピング解放要求メッセージを受信すると、状態表の該当するエントリを削除する（ステップＳ７０５）。具体的には、アドレス変換前の送信元アドレス、プロトコル番号、送信元ポート番号が、ポートマッピング設定解放要求の（自ＩＰアドレス、プロトコル番号、ポート番号の値と一致するエントリを検索して削除する。そして、中継装置１０３は、解放成功応答を通信装置のパケット送受信部２０７に送信する（ステップＳ７０６）。解放成功応答を受信したパケット送受信部２０７は、解放成功応答をＵＰＮＰ制御部２０６に送信する（ステップＳ７０７）。解放成功応答を受信したＵＰＮＰ制御部２０６は、ＵＰＮＰのＣｏｎｔｒｏｌメッセージの解放成功応答であることを確認し、成功通知を中継装置制御部２０４に送信する（ステップＳ７０８）。中継装置制御部２０４は成功通知を受信すると、失敗通知をアプリケーションに送信する（ステップＳ７０９）。
【００５３】
次に、パケットの送受信を完了した後に行われる通信資源の解放処理について説明する。図８は、通信装置の中継装置制御部２０４による通信資源の解放時の処理手順を示すフローチャートである。
【００５４】
まず、アプリケーションから通信資源を解放したいソケット番号が指定された資源解放要求（ｃｌｏｓｅシステムコール）を受信すると（ステップＳ８０１）、中継装置制御部２０４は、ソケット番号をキーにプロトコル番号およびポート番号をＲＡＭ等の保存場所から検索する（ステップＳ８０２）。また、中継装置制御部２０４は、通信資源管理部２０５に自身のＩＰアドレスを問い合わせる（ステップＳ８０３）。
【００５５】
次に、中継装置制御部２０４は、ＵＰＮＰ制御部２０６に自ＩＰアドレス、プロトコル番号、ポート番号を含むポートマッピング解放要求を送信する（ステップＳ８０４）。そして、中継装置によって該当するエントリが削除されるので、中継装置制御部２０４は、アプリケーションに対して成功通知を送信する（ステップＳ８０５）。
【００５６】
図９は、通信資源の解放処理における命令およびデータの流れを示す説明図である。アプリケーションは、通信資源を解放したいソケット番号を指定して、資源解放要求（ｃｌｏｓｅシステムコール）を中継装置制御部２０４に行う（ステップＳ９０１）。資源解放要求を受信した中継装置制御部２０４は、ソケット番号をキーにプロトコル番号およびポート番号をＲＡＭ等の保存場所から検索する（ステップＳ９０２）。また、中継装置制御部２０４は、通信資源管理部２０５に自身のＩＰアドレスを問い合わせる（ステップＳ９０３）。これにより、通信資源管理部２０５からＩＰアドレスを含む応答が送信されてくるので、中継装置制御部２０４はかかる応答を受信する（ステップＳ９０４）。そして、中継装置制御部２０４は、ＵＰＮＰ制御部２０６に自ＩＰアドレス、プロトコル番号、ポート番号を含むポートマッピング解放要求を送信する（ステップＳ９０５）。
【００５７】
ＵＰＮＰ制御部２０６は、ポートマッピング解放要求を受信すると、自ＩＰアドレス、プロトコル番号、ポート番号を含むポートマッピング解放要求メッセージを中継装置１０３に送信する（ステップＳ９０６）。
【００５８】
ポートマッピング解放要求メッセージを中継装置１０３を受信した中継装置１０３は、図５に示した状態表から該当するエントリを削除する（ステップＳ９０７）。具体的には、アドレス変換前の送信元アドレス、プロトコル番号、送信元ポート番号が、ポートマッピング解放要求メッセージに含まれる自ＩＰアドレス、プロトコル番号、ポート番号の値と一致するエントリを検索して、検索されたエントリを削除する。そして、中継装置１０３は、解放成功応答を通信装置のパケット送受信部２０７に送信する（ステップＳ９０８）。
【００５９】
解放成功応答を受信したパケット送受信部２０７は、解放成功応答をＵＰＮＰ制御部２０６に送信する（ステップＳ９０９）。解放成功応答を受信したＵＰＮＰ制御部は、ＵＰＮＰのＣｏｎｔｒｏｌメッセージの解放成功応答であることを確認し、成功通知を中継装置制御部２０４に送信する（ステップＳ９１０）。中継装置制御部２０４は、成功通知を受信すると、指定ポート番号宛のパケットを、指定ソケットを持つアプリケーションに配布しない旨を示すパケット非配布指定通知をパケット送受信部２０７に通知する（ステップＳ９１１）。さらに、中継装置制御部２０４はアプリケーションに成功通知を送信する（ステップＳ９１２）。これによって、通信資源の解放処理が完了する。
【００６０】
本実施形態の通信装置は、ＣＰＵなどの制御装置と、ハードディスク装置（ＨＤＤ）などの記録装置と、ＲＡＭ等の記憶装置と、ネットワークカード１９７０等の通信装置とが接続されており、コンピュータを利用した通常の構成である。
【００６１】
尚、本実施形態の通信装置で実行される通信プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フロッピー（Ｒ）ディスク（ＦＤ）、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【００６２】
また、本実施形態の通信プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の通信プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【００６３】
本実施形態にかかる通信プログラムは、通信装置上で上記記憶媒体から読み出して実行することにより主記憶装置上にロードされ、上述した中継装置制御部２０４、通信資源管理部２０５、ＵＰＮＰ制御部２０６、パケット送受信部２０７が主記憶装置上に生成されるようになっている。
【００６４】
このように本実施の形態の通信装置では、アプリケーションから発行された各種システムコールを中継装置制御部２０５で受け取ってＵＰＮＰ制御部２０５または通信資源管理部２０６に送信しているので、アプリケーションに変更を加えることなくＵＰＮＰ方式によるパケット交換制御を容易に実現することができる。
【００６５】
また、本実施の形態では、中継装置制御ライブラリによってアプリケーションから発行されるシステムコールを、中継装置制御部２０４宛に送信することができるので、アプリケーションのプログラムを作成する際に、従来と同様のシステムコールを記述すれば自動的に中継装置制御部２０４を介在させることができ、プログラム開発を効率的に行うことができる。
【００６６】
（実施の形態２）
本実施の形態の通信装置では、アプリケーションごとにプロトコル番号とポート番号とを定めたアプリケーション操作設定データを用いて、アプリケーションごとにポート番号を決定して動作を変えるものである。
【００６７】
本実施の形態の通信装置の構成は、実施の形態１と同様であるため、図示を省略する。本実施の形態の通信装置は、アプリケーション操作設定データをＲＡＭやハードディスク装置の記憶手段（本発明におけるアプリケーション操作設定情報記憶手段を構成する）に保持している。なお、アプリケーション操作設定データを中継装置制御部２０４に保持するように構成してもよい。
【００６８】
図１０は、アプリケーション操作設定データの一例を示す説明図である。図１０に示すように、アプリケーションごとにプロトコル番号とポート番号とが対応付けたれたテーブルとなっている。
【００６９】
本実施の形態の中継装置制御部２０４による通信資源の確保処理について説明する。図１１は、中継装置制御部２０４による通信資源の確保処理の手順を示すフローチャートである。なお、アプリケーションから資源確保要求があった場合の処理は、実施の形態１と同様であるので説明を省略する。
【００７０】
アプリケーションから資源確保の実行要求（ｂｉｎｄシステムコール）によって通信資源を確保したいソケット番号、プロトコル番号を受信すると（ステップＳ１１０１）、ソケット番号に含まれるポート番号を抽出する（ステップＳ１１０２）。そして、要求を行ったアプリケーションに該当する（プロトコル番号、ポート番号）の組に、受信したプロトコル番号と抽出されたポート番号の組と一致するものがあるか否かを調べる（ステップＳ１１０３）。
【００７１】
そして、一致するものがある場合には、実施の形態１と同様の処理を進める。すなわち、図３で説明したステップＳ３０７以降の通信資源管理部２０５への自ＩＰアドレスの問い合わせ、ＵＰＮＰ制御部２０６に自ポートマッピング設定要求の送信など行う。
【００７２】
一方、受信したプロトコル番号と抽出されたポート番号の組と一致するものはない場合には、通信資源管理部２０５への自ＩＰアドレスの問い合わせおよびＵＰＮＰ制御部２０６に自ポートマッピング設定要求を送信することをせずに、資源を確保したい（ソケット番号、ポート番号）を通信資源管理部２０５に送信する（ステップＳ１１０４）。これ以降の処理については、実施の形態１の中継装置制御部２０４と同様であるため説明を省略する。
【００７３】
このように実施の形態２の通信装置では、アプリケーション操作設定データを用いてアプリケーションごとに通信の機能を決定しているのでアプリケーションごとに多種多様な機能を実現することができる。
【００７４】
（実施の形態３）
本実施の形態の通信装置は、グローバルＩＰアドレスを取得するものである。本実施の形態の通信システムのネットワーク構成および通信装置の機能的構成は実施の形態と同様であるので図示を省略する。
【００７５】
本実施の形態の通信装置では、中継装置制御部２０４がアプリケーションからグローバルＩＰアドレスの検索要求を受信すると、ＵＰＮＰ制御部２０６対してグローバルＩＰアドレス獲得要求を送信し、ＵＰＮＰ制御部２０６からグローバルＩＰアドレスを受信すると、受信したアドレスをアプリケーションに送信するようになっている。
【００７６】
図１２は、グローバルＩＰアドレスの取得処理時のデータおよび命令の流れを示す説明図である。第１の通信網１０１内の通信装置１１１のアプリケーションが、予め設定された通信装置の名称を指定して通信装置のグローバルＩＰアドレスの検索要求（例えばｇｅｔｈｏｓｔｂｙｎａｍｅシステムコール）を中継装置制御部に送信する（ステップＳ１２０１）。
【００７７】
中継装置制御部は、グローバルＩＰアドレスの検索要求を受信すると、ＵＰＮＰ制御部にグローバルＩＰアドレス獲得要求を送信する（ステップＳ１２０２）。グローバルＩＰアドレス獲得要求を受信したＵＰＮＰ制御部は、グローバルＩＰアドレス獲得要求メッセージ（ＵＰＮＰのＣｏｎｔｒｏｌメッセージ：ｇｅｔＥｘｔｅｒｎａｌＩＰメッセージ）をパケット送受信部２０７を介して中継装置１０３に送信する（ステップＳ１２０３）。
【００７８】
中継装置１０３、グローバルＩＰアドレス獲得要求メッセージを受信すると、自身の第２の通信網１０２側のグローバルＩＰアドレスを含む応答メッセージ（ＵＰＮＰのＣｏｎｔｒｏｌメッセージ：ｇｅｔＥｘｔｅｒｎａｌＩＰ応答メッセージ）を、パケット送受信部２０７を介してＵＰＮＰ制御部２０６に送信する（ステップＳ１２０４）。ＵＰＮＰ制御部２０６は、応答メッセージに含まれるグローバルＩＰアドレスを、中継装置制御部２０４に送信する（ステップＳ１２０５）。中継装置制御部２０４は、受信したグローバルＩＰアドレスをアプリケーションに送信する（ステップＳ１２０６）。これによって、アプリケーションはグローバルＩＰアドレスを取得することができる。
【００７９】
このように本実施の形態の通信装置では、アプリケーションがグローバルＩＰアドレスの検索要求を行う場合にも、中継装置制御部２０４を介して中継装置１０３に要求を行っているので、アプリケーションに変更を加えることなくＵＰＮＰ方式によるパケット交換制御を容易に実現することができる。
【００８０】
なお、上記実施の形態では、通信装置と中継装置１０３との通信プロトコルとしてＵＰＮＰを用いたが、他のプロトコル、例えば、ＩＥＴＦのＲＦＣ３４１１で規定されるＳＮＭＰを利用しても本発明の効果を達成することができる。
【００８１】
また、上記実施の形態では、中継装置１０３がＮＡＰＴ機能をもつ場合の例を示したが、中継装置がファイアーウォール機能を有する場合にも本発明を適用することが可能である。この場合は、ＵＰＮＰのポートマッピング設定要求メッセージ内に含まれる自ＩＰアドレス、プロトコル番号、ポート番号は、中継装置１０３に第２の通信網１０２から第１の通信網１０１への中継を許可するパケット属性情報として解釈される。
【００８２】
また、上記実施の形態では、中継装置制御部ライブラリ２０３を設けて本発明における命令取得手段としているが、ＯＳ２０８の機能を改造して各システムコールを中継装置制御部２０４に受け渡すように構成してもよい。
【産業上の利用可能性】
【００８３】
以上のように、本発明にかかる通信装置、通信システム、通信方法、通信プログラムは、ＮＡＴ、ＮＡＰＴ、ＳＰＩの各機能を有する中継装置とＵＰＮＰ等の通信プロトコルで通信が行われる通信装置および通信システムに適している。
【図面の簡単な説明】
【００８４】
【図１】本発明の実施の形態にかかる通信システムのネットワーク構成を示す説明図である。
【図２】本実施の形態の通信装置の機能的構成を示すブロック図である。
【図３】通信装置の中継装置制御部２０４による通信資源の確保時の処理手順を示すフローチャートである。
【図４】通信資源の確保時のデータ、命令の流れを示す説明図である。
【図５】中継装置１０３が保持している状態表の一例を示す説明図である。
【図６】中継装置１０３がエントリ生成に失敗した場合のデータ、命令の流れを示す説明図である。
【図７】指定ポートが既に資源確保されていた場合の処理におけるデータ、命令の流れを示す説明図である。
【図８】通信装置の中継装置制御部２０４による通信資源の解放時の処理手順を示すフローチャートである。
【図９】通信資源の解放処理における命令およびデータの流れを示す説明図である。
【図１０】アプリケーション操作設定データの一例を示す説明図である。
【図１１】中継装置制御部２０４による通信資源の確保処理の手順を示すフローチャートである。
【図１２】グローバルＩＰアドレスの取得処理時のデータおよび命令の流れを示す説明図である。
【符号の説明】
【００８５】
１０１、１０２  通信網
１１１，１１２，１１３，１１４  通信装置
１０３  中継装置
２０１ａ，２０１ｂ，２０１ｃ  アプリケーション
２０３  中継装置制御部ライブラリ
２０４  中継装置制御部
２０５  通信資源管理部
２０６  ＵＰＮＰ制御部
２０７  パケット送受信部
２０８  ＯＳ
【図１】
2005109735.tif 000003
【図２】
2005109735.tif 000004
【図３】
2005109735.tif 000005
【図４】
2005109735.tif 000006
【図５】
2005109735.tif 000007
【図６】
2005109735.tif 000008
【図７】
2005109735.tif 000009
【図８】
2005109735.tif 000010
【図９】
2005109735.tif 000011
【図１０】
2005109735.tif 000012
【図１１】
2005109735.tif 000013
【図１２】
2005109735.tif 000014