(57)【要約】【課題】送信元ポート番号を的確に予測させて、通信装置間の複数のセッションを確実に確立することができる通信装置、および通信方法を提供する。【解決手段】ＰＣは、新規にセッションの確立開始の要求対象となるセッションを抽出する（Ｓ１）。抽出したセッションの中に、複数のポート検出用パケットを用いたＮＡＴルータの送信元ポート番号の予測を行うＵＨＰによって確立されるセッションが存在するか否かを、ＮＡＴルータの特性に基づいて判断する（Ｓ３、Ｓ４）。ＰＣは、新規にセッションの確立開始の要求対象となるセッションが複数存在する場合に、ＵＨＰによって確立されるセッションが存在するか否かの判断の結果に基づいて、複数のセッションの各々の確立開始を要求する複数の要求信号の送信タイミングを制御する（Ｓ４〜９）。【選択図】図３
2011166569.tif 000002
【特許請求の範囲】
【請求項１】
２つの通信装置間でＰ２Ｐ通信を行うためのセッションの確立開始を要求する信号である要求信号を他の通信装置に送信することが可能な通信装置であって、
新規に前記セッションの確立開始の要求対象となるセッションを抽出するセッション抽出手段と、
前記セッション抽出手段によって抽出されたセッションの中に、複数のポート検出用パケットを用いたＮＡＴ装置の送信元ポート番号の予測を行うＵＨＰ（ＵＤＰ  Ｈｏｌｅ  Ｐｕｎｃｈｉｎｇ）によって確立されるセッションが存在するか否かを、前記セッション抽出手段によって抽出されたセッションにおいてデータが通過するＮＡＴ装置の特性に基づいて判断する第一判断手段と、
前記セッション抽出手段によって抽出されたセッションが複数存在する場合に、前記第一判断手段による判断の結果に基づいて、前記複数のセッションの各々の確立開始を要求する複数の前記要求信号の送信タイミングを制御する送信制御手段と
を備えたことを特徴とする通信装置。
【請求項２】
前記ＵＨＰによって確立されるセッションが存在すると前記第一判断手段によって判断された場合に、前記ＵＨＰによって確立されるセッションにおいてデータが通過するＮＡＴ装置を特定するＮＡＴ装置特定手段と、
前記セッション抽出手段によって抽出されたセッションの中に、前記ＮＡＴ装置特定手段によって特定された一のＮＡＴ装置にデータを通過させる複数のセッションが存在するか否かを判断する第二判断手段とをさらに備え、
前記送信制御手段は、
前記第二判断手段によって複数のセッションが存在すると判断された場合に、前記ＮＡＴ装置特定手段によって特定された前記一のＮＡＴ装置にデータを通過させる複数のセッションの各々の確立開始を要求する前記複数の要求信号を、所定条件に基づいてそれぞれ異なるタイミングで送信する第一送信制御手段を備えたことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記要求信号を送信した送信先の通信装置との間で、確立開始を要求したセッションの確立が完了したことを示す信号である完了信号の通信を行う通信手段をさらに備え、
前記第一送信制御手段は、前記通信手段によって前記完了信号の通信が行われてから次の前記要求信号を送信することを特徴とする請求項２に記載の通信装置。
【請求項４】
前記送信制御手段は、
前記ＮＡＴ装置特定手段によって特定されたＮＡＴ装置にデータを通過させるセッションが複数存在しないと前記第二判断手段によって判断された場合に、前記第一送信制御手段によって送信される複数の前記要求信号の送信間隔よりも短い送信間隔で複数の前記要求信号を送信する第二送信制御手段をさらに備えたことを特徴とする請求項２または３に記載の通信装置。
【請求項５】
前記要求信号は、
他の通信装置との間でのセッションの確立開始を要求するために前記他の通信装置に送信される信号であるセッション開始信号、および、他の２つの通信装置間でのセッションの確立開始を要求するために前記２つの通信装置の一方から他方へ前記セッション開始要求信号を送信させる指示を行う信号であるセッション転送要求信号の少なくともいずれかであることを特徴とする請求項１から４のいずれかに記載の通信装置。
【請求項６】
２つの通信装置間でＰ２Ｐ通信を行うためのセッションの確立開始を要求する信号である要求信号を他の通信装置に送信することが可能な通信装置によって行われる通信方法であって、
新規に前記セッションの確立開始の要求対象となるセッションを抽出するセッション抽出ステップと、
前記セッション抽出ステップによって抽出されたセッションの中に、複数のポート検出用パケットを用いたＮＡＴ装置の送信元ポート番号の予測を行うＵＨＰ（ＵＤＰ  Ｈｏｌｅ  Ｐｕｎｃｈｉｎｇ）によって確立されるセッションが存在するか否かを、前記セッション抽出ステップによって抽出されたセッションにおいてデータが通過するＮＡＴ装置の特性に基づいて判断する第一判断ステップと、
前記セッション抽出ステップによって抽出されたセッションが複数存在する場合に、前記第一判断ステップによる判断の結果に基づいて、前記複数のセッションの各々の確立開始を要求する複数の前記要求信号の送信タイミングを制御する送信制御ステップと
を備えたことを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の通信装置からなる通信システムにおいて、各通信装置間でＰ２Ｐ通信を実行するための通信装置、および通信方法に関する。
【背景技術】
【０００２】
従来、複数の通信装置がＰ２Ｐで通信を行うために、複数の通信装置間でセッションを確立する技術が知られている。プライベートネットワーク内の通信装置が、グローバルネットワークに接続するためには、ネットワークアドレス変換機能またはネットワークアドレスポート変換機能を有する装置（ＮＡＴルータ等。以下、「ＮＡＴ装置」という。）を介する必要がある。特許文献１は、通信装置にＮＡＴ装置が接続されている場合にセッションを確立する手法の１つを開示している。
【０００３】
特許文献１が開示している手法は、ＵＤＰ  Ｈｏｌｅ  Ｐｕｎｃｈｉｎｇ（以下、「ＵＨＰ」という。）と呼ばれている。特許文献１に記載のＵＨＰでは、第一の通信装置は、ＮＡＴ装置に送信履歴を残すためのパケットであるバブルパケットを、第二の通信装置に送信する。さらに、第一の通信装置は、バブルパケットの送信の前後に、ポート検出用パケットをサーバへ送信する。ポート検出用パケットの送信元ポートの番号から、２つのポート検出用パケットの間に送信されたバブルパケットの送信元ポート（第二の通信装置との間の通信に使用されるポート）の番号が予測される。第二の通信装置は、予測された送信元ポートにパケットを送信する。その結果、第一の通信装置と第二の通信装置との間でセッションが確立する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１５７９４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ポート検出用パケットを用いてバブルパケットの送信元ポート番号を予測する場合、２つのポート検出用パケットがサーバに送信される間に、バブルパケット以外のパケットがＮＡＴ装置を通過すると、問題が生じる場合がある。例えば、一の通信装置から１つ目のポート検出用パケットがサーバに送信されてから、２つ目のポート検出用パケットがサーバに送信されるまでの間に、他の通信装置からも、ＮＡＴ装置を通過するパケットがサーバに送信される場合がある。サーバは、２つのポート検出用パケットの送信元ポートの間にあるポートのうち、どちらが一の通信装置によって使用されたバブルパケットの送信元ポートであり、またどちらが他の通信装置によって使用された送信元ポートであるかを区別することができない。その結果、意図しない通信装置間でセッションが確立する等の不具合が生じるという問題点があった。
【０００６】
本発明は、送信元ポート番号を的確に予測させて、通信装置間の複数のセッションを確実に確立することができる通信装置、および通信方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第一の態様に係る通信装置は、２つの通信装置間でＰ２Ｐ通信を行うためのセッションの確立開始を要求する信号である要求信号を他の通信装置に送信することが可能な通信装置であって、新規に前記セッションの確立開始の要求対象となるセッションを抽出するセッション抽出手段と、前記セッション抽出手段によって抽出されたセッションの中に、複数のポート検出用パケットを用いたＮＡＴ装置の送信元ポート番号の予測を行うＵＨＰによって確立されるセッションが存在するか否かを、前記セッション抽出手段によって抽出されたセッションにおいてデータが通過するＮＡＴ装置の特性に基づいて判断する第一判断手段と、前記セッション抽出手段によって抽出されたセッションが複数存在する場合に、前記第一判断手段による判断の結果に基づいて、前記複数のセッションの各々の確立開始を要求する複数の前記要求信号の送信タイミングを制御する送信制御手段とを備えている。
【０００８】
第一の態様に係る通信装置は、ＵＨＰによって確立されるセッションが存在するか否かに基づいて、複数の要求信号を適切なタイミングで送信することで、送信元ポートを予測するためのパケットの送受信の合間に他のパケットが送受信されることを防止することができる。よって、送信元ポート番号の予測が失敗することを防止することができる。
【０００９】
前記通信装置は、前記ＵＨＰによって確立されるセッションが存在すると前記第一判断手段によって判断された場合に、前記ＵＨＰによって確立されるセッションにおいてデータが通過するＮＡＴ装置を特定するＮＡＴ装置特定手段と、前記セッション抽出手段によって抽出されたセッションの中に、前記ＮＡＴ装置特定手段によって特定された一のＮＡＴ装置にデータを通過させる複数のセッションが存在するか否かを判断する第二判断手段とをさらに備えてもよい。前記送信制御手段は、前記第二判断手段によって複数のセッションが存在すると判断された場合に、前記ＮＡＴ装置特定手段によって特定された前記一のＮＡＴ装置にデータを通過させる複数のセッションの各々の確立開始を要求する前記複数の要求信号を、所定条件に基づいてそれぞれ異なるタイミングで送信する第一送信制御手段を備えるとよい。
【００１０】
複数のセッションが同一のＮＡＴ装置にデータを通過させる場合に、要求信号をずらして送信することで、ＵＨＰにおけるパケットの送受信の合間に他のパケットが送受信されることを防止することができる。従って、セッションの確立を仲介するサーバは、複数のセッションが同一のＮＡＴ装置にデータを通過させる場合であっても、バブルパケットの送信元ポートの番号を的確に予測することができる。その結果、サーバは、複数のセッションを確実に確立することができる。
【００１１】
前記通信装置は、前記要求信号を送信した送信先の通信装置との間で、確立開始を要求したセッションの確立が完了したことを示す信号である完了信号の通信を行う通信手段をさらに備えてもよい。前記第一送信制御手段は、前記通信手段によって前記完了信号の通信が行われてから次の前記要求信号を送信するとよい。通信装置は、一のセッションの確立が完了してから次のセッションの確立開始を要求することができる。従って、送信元ポート番号を予測するためのパケットの送受信の合間にバブルパケット以外の他のパケットが送受信されることを、効率よく且つ確実に防止することができる。
【００１２】
前記送信制御手段は、前記ＮＡＴ装置特定手段によって特定されたＮＡＴ装置にデータを通過させるセッションが複数存在しないと前記第二判断手段によって判断された場合に、前記第一送信制御手段によって送信される複数の前記要求信号の送信間隔よりも短い送信間隔で複数の前記要求信号を送信する第二送信制御手段をさらに備えてもよい。一のＮＡＴ装置にデータを通過させるセッションが複数存在しなければ、ＵＨＰが重複して行われても、サーバは送信元ポート番号を的確に予想することができる。従って、通信装置は複数の要求信号を短い間隔で送信することで、送信元ポート番号の予測に不具合を生じさせることなく、全セッションの確立に要する時間を短縮することができる。
【００１３】
前記要求信号は、他の通信装置との間でのセッションの確立開始を要求するために前記他の通信装置に送信される信号であるセッション開始信号、および、他の２つの通信装置間でのセッションの確立開始を要求するために前記２つの通信装置の一方から他方へ前記セッション開始要求信号を送信させる指示を行う信号であるセッション転送要求信号の少なくともいずれかであるとよい。通信装置は、セッション開始信号（例えば、ＳＩＰに準拠している場合はＩＮＶＩＴＥメッセージ）、およびセッション転送要求信号（例えば、ＳＩＰに準拠している場合はＲＥＦＥＲメッセージ）の少なくともいずれかの送信タイミングを制御することで、セッション確立の不具合を的確に防止することができる。
【００１４】
本発明の第二の態様に係る通信方法は、２つの通信装置間でＰ２Ｐ通信を行うためのセッションの確立開始を要求する信号である要求信号を他の通信装置に送信することが可能な通信装置によって行われる通信方法であって、新規に前記セッションの確立開始の要求対象となるセッションを抽出するセッション抽出ステップと、前記セッション抽出ステップによって抽出されたセッションの中に、複数のポート検出用パケットを用いたＮＡＴ装置の送信元ポート番号の予測を行うＵＨＰによって確立されるセッションが存在するか否かを、前記セッション抽出ステップによって抽出されたセッションにおいてデータが通過するＮＡＴ装置の特性に基づいて判断する第一判断ステップと、前記セッション抽出ステップによって抽出されたセッションが複数存在する場合に、前記第一判断ステップによる判断の結果に基づいて、前記複数のセッションの各々の確立開始を要求する複数の前記要求信号の送信タイミングを制御する送信制御ステップとを備えている。
【００１５】
第二の態様に係る通信方法によると、通信装置は、ＵＨＰによって確立されるセッションが存在するか否かに基づいて、複数の要求信号を適切なタイミングで送信することで、送信元ポートを予測するためのパケットの送受信の合間に他のパケットが送受信されることを防止することができる。よって、送信元ポート番号の予測が失敗することを防止することができる。
【図面の簡単な説明】
【００１６】
【図１】会議システム１００のシステム構成を示す図である。
【図２】ＰＣ１の電気的構成を示すブロック図である。
【図３】ＰＣ１〜４が行う送信制御処理のフローチャートである。
【図４】会議システム１００においてＰＣ１〜４がセッションを確立する際の処理の一例を示すシーケンス図である。
【図５】図４に示すシーケンス図の続きである。
【発明を実施するための形態】
【００１７】
以下、本発明に係る通信装置を具現化した一実施の形態であるパーソナルコンピュータ（以下、「ＰＣ」という。）１〜４について、図面を参照して説明する。参照する図面は、本発明が採用し得る技術的特徴を説明するために用いられるものである。図面に記載されている装置の構成、各種処理のフローチャート等は、それのみに限定する趣旨ではなく、単なる説明例である。
【００１８】
図１を参照して、会議システム１００のシステム構成について説明する。会議システム１００は、複数のＰＣと、サーバ６とを備える。以下の説明では、４つのＰＣ１〜４を用いて会議が実行される場合を例に挙げる。しかし、ＰＣの数が４つに限られないことは言うまでもない。ＰＣの代わりに、テレビ会議専用の端末等を通信装置として使用することも可能である。
【００１９】
各拠点に配置されたＰＣ１〜４は、インターネット等の外部ネットワーク８を介してサーバ６に接続することができる。サーバ６は、複数のＰＣ間におけるセッションを確立する。セッションとは、一般に、通信装置間の接続の開始から終了までをいう。特に、本実施の形態では、ＲＴＰ（Ｒｅａｌ−ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）によって複数のＰＣが音声データおよび画像データを相互に直接送受信できる状態をいう。ＰＣ１〜４は、セッションの確立後に音声データおよび画像データを相互に送受信することで、遠隔会議を実行する。なお、会議システム１００では、複数のＰＣ１〜４が外部ネットワーク８上で通信を開始するための双方向通信プロトコルとして、ＳＩＰ（ＲＦＣ３２６１）が用いられる。ＳＩＰ（Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）は、外部ネットワーク８上でエンド・トゥ・エンドのセッションを確立するためのプロトコルであり、リアルタイムコミュニケーションを容易に実現できる。
【００２０】
図１に示す例では、拠点ＡにいるＡｌｉｃｅは、ＰＣ１を使用して会議に参加する。拠点Ｂには、ＢｏｂおよびＣａｒｏｌがいる。ＢｏｂはＰＣ２を使用し、ＣａｒｏｌはＰＣ３を使用する。拠点ＣにいるＤａｖｅは、ＰＣ４を使用して会議に参加する。拠点ＢのＰＣ２およびＰＣ３は、共にＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）ルータ９を介して外部ネットワーク８に接続する。拠点ＣのＰＣ４は、ＮＡＴルータ１０を介して外部ネットワーク８に接続する。拠点ＡのＰＣ１は、ＮＡＴルータを介さずに直接外部ネットワーク８に接続する。
【００２１】
ＮＡＴルータ９，１０は、ローカルなネットワーク（例えば、ＬＡＮ）内で使用されるプライベートＩＰアドレスと、外部ネットワーク８で使用されるグローバルＩＰアドレスとを相互変換する。詳細には、拠点ＢのＮＡＴルータ９は、アドレス制限ＣｏｎｅＮＡＴに分類される。アドレス制限ＣｏｎｅＮＡＴは、ＮＡＴルータの外側の外部ネットワーク８側からホストを特定することで通信することができるという特性を有する。拠点ＣのＮＡＴルータ１０は、ポート制限ＣｏｎｅＮＡＴに分類される。ポート制限ＣｏｎｅＮＡＴは、外部ネットワーク８側からホストおよびポートを特定することで通信することができるという特性を有する。
【００２２】
ＵＨＰについて説明する。例えば、図１に示す例では、ＮＡＴルータ９に接続するＰＣ２，３と、ＮＡＴルータ１０に接続するＰＣ４との間にセッションを確立するために、ＵＨＰが用いられる。ＵＨＰとは、ローカルネットワーク内にある通信装置が、外部ネットワーク８を経由して他の通信装置と双方向のＵＤＰコネクションを確立する手法である。本実施の形態で行われるＵＨＰでは、サーバ６は、複数のポート検出用パケットを用いて、ＰＣが通信相手のＰＣとの通信に使用するＮＡＴルータ９，１０の送信元ポートの番号を予測する。予測された番号の送信元ポートに、通信相手のＰＣがパケットを送信することで、セッションが確立する。
【００２３】
具体的に、ＰＣ２に接続されたＮＡＴルータ９の送信元ポート番号をサーバ６が予測する手順について説明する。ＰＣ２は、ＮＡＴルータ９に送信履歴を残すためのパケットであるバブルパケットを、通信相手となる通信装置に送信する。図１に示す例では、ＰＣ２の通信相手となる通信装置がＰＣ４であれば、ＰＣ４が接続しているＮＡＴルータ１０はポート制限ＣｏｎｅＮＡＴである。よって、ＰＣ２は、ＮＡＴルータ１０の特定のポートへバブルパケットを送信する。さらに、ＰＣ２は、バブルパケットの送信の前後に、ポート検出用パケットをサーバ６へ送信する。サーバ６は、ポート検出用パケットの送信元ポートの番号から、２つのポート検出用パケットの間に送信されたバブルパケットの送信元ポートの番号を予測する。ＰＣ２の通信相手となる通信装置は、サーバ６が予測した番号の送信元ポートにパケットを送信する。その結果、セッションが確立する。
【００２４】
サーバ６がバブルパケットの送信元ポート番号を予測する場合、２つのポート検出用パケットが送信される間にバブルパケット以外のパケットがＮＡＴルータ９を通過すると、問題が生じる場合がある。サーバ６は、２つのポート検出用パケットの送信元ポートの間にあるポートのうち、どれがバブルパケットの送信元ポートであり、どれがポート番号の予測に関係ないパケットの送信元ポートであるかを区別することができない可能性があるためである。サーバ６が送信元ポート番号の予測に失敗すると、意図しない通信装置間でセッションが確立する等の不具合が生じる。本実施の形態のＰＣ１〜４は、サーバ６にバブルパケットの送信元ポート番号を的確に予測させることができる点に特徴を有する。
【００２５】
図２を参照して、ＰＣ１の電気的構成について説明する。図２に示すように、ＰＣ１は、ＰＣ１の制御を司るＣＰＵ２０を備えている。ＣＰＵ２０には、ＲＯＭ２１、ＲＡＭ２２、ハードディスクドライブ（以下、「ＨＤＤ」という。）２３、および入出力インターフェース２５が、バス２４を介して接続されている。ＲＯＭ２１は、ＰＣ１を動作させるためのプログラムおよび初期値等を記憶している。ＲＡＭ２２は、制御プログラムで使用される各種の情報を一時的に記憶する。ＨＤＤ２３は、各種の情報を記憶する不揮発性の記憶装置である。
【００２６】
本実施の形態では、ＨＤＤ２３には、ＰＣ１〜４のそれぞれのＮＡＴの特性を示す情報が記憶されている。ＮＡＴの特性を示す情報とは、ＰＣがＮＡＴルータを介して外部ネットワーク８に接続されているか否か、および、ＮＡＴルータを介している場合におけるＮＡＴルータの分類を示す情報である。
【００２７】
入出力インターフェース２５には、音声入力処理部４１、音声出力処理部４２、映像入力処理部４３、映像出力処理部４４、操作部４５、および外部通信インターフェース２６が接続されている。音声入力処理部４１は、音声を入力するマイク３１からの音声データの入力を処理する。音声出力処理部４２は、音声を出力するスピーカ３２の動作を処理する。映像入力処理部４３は、映像を撮像するカメラ３３からの画像データの入力を処理する。映像出力処理部４４は、映像を表示する表示装置３４の動作を処理する。操作部４５は、ユーザがＰＣ１に各種指示を入力するために用いられる。外部通信インターフェース２６は、ＰＣ１を外部ネットワーク８に接続する。
【００２８】
なお、ＰＣ３，４の電気的構成はＰＣ１と同じである。デスクトップ型のＰＣ２は、外部に設けられたマイク３１、スピーカ３２、カメラ３３、および表示装置３４に接続する点のみが、ノート型のＰＣ１と異なる。サーバ６の電気的構成は、デスクトップ型のＰＣ２の電気的構成と同じである。従って、ＰＣ２〜４およびサーバ６の電気的構成の説明は省略する。通信装置として、ＰＣの代わりにテレビ会議専用の端末等を用いる場合でも、基本的な電気的構成は同じである。
【００２９】
以下、ＰＣ１〜４が行う処理について、図３から図５を参照して説明する。ＰＣ１〜４における処理は、自装置内のＲＯＭ２１およびＨＤＤ２３に記憶されているプログラムに従ってＣＰＵ２０が実行する。
【００３０】
まず、図３を参照して、ＰＣ１〜４のそれぞれが実行する送信制御処理について説明する。送信制御処理は、セッションの確立開始を要求する信号である要求信号を送信する指示が、ユーザまたは他の通信装置から入力された場合に、要求信号が送信される前に実行される。ＰＣ１〜４は、送信制御処理で要求信号の送信タイミングを設定することで、ＵＨＰにおけるバブルパケットの送信元ポート番号の予測が失敗することを防止する。要求信号には、セッション開始信号およびセッション転送要求信号がある。セッション開始信号は、信号を送信する通信装置と送信先の通信装置との間におけるセッションの確立開始を要求するための信号である。本実施の形態では、セッション開始信号はＳＩＰメッセージの呼出要求「ＩＮＶＩＴＥ」に相当する。セッション転送要求信号は、信号を送信する通信装置とは異なる２つの通信装置間におけるセッションの確立開始を要求する信号である。セッション転送要求信号は、セッションの確立を開始する２つの通信装置の一方に送信され、セッション開始信号を送信させる指示を行う。本実施の形態では、セッション転送要求信号はＳＩＰメッセージ「ＲＥＦＥＲ」に相当する。
【００３１】
送信制御処理では、まず、新規に確立開始の要求対象となるセッションが抽出される（Ｓ１）。具体的には、新規に送信される呼出要求「ＩＮＶＩＴＥ」およびＳＩＰメッセージ「ＲＥＦＥＲ」の数が抽出される。複数のセッションが抽出されたか否かが判断される（Ｓ２）。抽出されたセッションが１つであれば（Ｓ２：ＮＯ）、抽出されたセッションを確立するためにＵＨＰが必要である場合でも、複数のポート検出用パケットが送信される間にバブルパケット以外のパケットが送受信されることはない。従って、送信制御処理はそのまま終了し、要求信号が通常通り送信される。
【００３２】
抽出されたセッションが複数であれば（Ｓ２：ＹＥＳ）、抽出された複数のセッションの各々の確立方法が判定される（Ｓ３）。セッションの確立方法は、ＰＣ１〜４の各々のＨＤＤ２３に記憶されている各ＰＣのＮＡＴの特性を示す情報によって判断される。例えば、本実施の形態では、ＮＡＴルータを介さずに外部ネットワーク８に接続されるＰＣ１と、他のＰＣ２〜４との間のセッションは、ＵＨＰを用いずに直接確立することができる。アドレス制限ＣｏｎｅＮＡＴを介するＰＣ２，３と、ポート制限ＣｏｎｅＮＡＴを介するＰＣ４との間のセッションは、ＵＨＰを用いて確立する必要がある。セッションの確立方法は、セッションを確立する２つの通信装置のＮＡＴの特性に応じて一意に決定される。
【００３３】
確立開始を要求する複数のセッションのうち、ＵＨＰを実行する必要のあるセッションが存在するか否かが判断される（Ｓ４）。ＵＨＰを実行する必要のあるセッションが１つも存在しなければ（Ｓ４：ＮＯ）、送信される複数の要求信号の送信間隔が、送信タイミングをずらす場合（後述する）よりも短い送信間隔に設定されて（Ｓ５）、送信制御処理は終了する。複数の要求信号の送信間隔を短くすることで、全セッションの確立が完了するまでに要する時間を短縮することができる。ＵＨＰが必要なセッションが存在しなければ、複数の要求信号の送信間隔を短くしても不具合は生じない。
【００３４】
ＵＨＰを実行する必要のあるセッションが１つでも存在する場合には（Ｓ４：ＹＥＳ）、ＵＨＰによって確立されるセッションにおいてデータが通過し、且つＵＨＰの実行中にバブルパケットおよびポート検出用パケットが通過するＮＡＴルータが特定される（Ｓ７）。つまり、Ｓ７では、ポート予測によってポートが予測される対象となるＮＡＴルータが特定される。特定された１または複数のＮＡＴルータのそれぞれに対し、２以上のセッションにおいてデータが通過するＮＡＴルータであるか否かが判断される（Ｓ８）。２以上のセッションにおいてデータが通過するＮＡＴルータがあれば（Ｓ８：ＹＥＳ）、複数の要求信号の送信タイミングをずらすように設定される（Ｓ９）。詳細には、少なくとも当該ＮＡＴルータにデータを通過させる２以上の新規セッションの確立開始を要求する複数の要求信号を、異なるタイミングで送信するように設定される。その後、送信制御処理は終了し、要求信号が送信される（図４および図５参照）。送信タイミングをずらす設定が行われると、一の新規セッションの確立が完了してから次の要求信号が送信されるが、この詳細は後述する。
【００３５】
ＵＨＰを実行する必要のあるセッションが存在する場合でも、Ｓ７で特定された全てのＮＡＴルータのそれぞれを通過するセッションが１つであれば（Ｓ８：ＮＯ）、ＵＨＰで行われるバブルパケットの送信元ポート番号の予測は失敗しない。よって、複数の要求信号の送信間隔が短い間隔に設定されて（Ｓ５）、送信制御処理は終了する。
【００３６】
次に、図４および図５を参照して、会議システム１００の全体で行われる処理の一例について説明する。図４および図５は、ＰＣ１〜４がセッションを確立する際の処理の一例を示す。具体的に、ＡｌｉｃｅがＢｏｂ、Ｃａｒｏｌ、Ｄａｖｅの順で他のユーザを遠隔会議に招待する場合の処理を示す。なお、ＲＴＰによる直接通信が可能となるまでは、２つのＰＣ間において送受信されるＳＩＰメッセージはサーバ６を介する。しかし、説明を簡略化するため、以下の説明ではＳＩＰメッセージがサーバ６を介する旨の記載を省略する。
【００３７】
図４に示す例では、Ａｌｉｃｅが、ＢｏｂのＰＣ２との間のセッションの確立開始の指示をＰＣ１に入力する。ＰＣ１は、確立開始の要求指示が入力されると、前述した送信制御処理（図３参照）を実行する（Ｓ１１）。Ｓ１１では、新規に確立開始の要求対象となるセッションは、ＰＣ１−ＰＣ２間のセッションの１つのみである。従って、要求信号はすぐに送信される。詳細には、ＰＣ１からＰＣ２へ呼出要求「ＩＮＶＩＴＥ」が送信される（Ｓ１２）。ＰＣ２は、状況通知「１８０Ｒｉｎｇｉｎｇ」をＰＣ１に送信し（Ｓ１３）、次に成功応答「２００  ＯＫ」をＰＣ１に送信する（Ｓ１４）。ＰＣ１は、確認応答「ＡＣＫ」をＰＣ２に送信する（Ｓ１５）。その結果、ＰＣ１とＰＣ２との間のセッションが確立する。ＰＣ１およびＰＣ２は、ＲＴＰによって音声データおよび画像データを相互に直接送受信できる状態となる。
【００３８】
次いで、Ａｌｉｃｅは、ＣａｒｏｌのＰＣ３との間のセッションの確立開始の指示をＰＣ１に入力する。ＰＣ１は、確立開始の要求指示が入力されると送信制御処理（図３参照）を実行するが（Ｓ１６）、新規に確立されるセッションは今回も１つである。従って、Ｓ１２〜Ｓ１５と同様のＳＩＰメッセージの送受信がＰＣ１とＰＣ３との間で行われて（Ｓ１７〜Ｓ２０）、ＰＣ１とＰＣ３との間のセッションが確立する。
【００３９】
ＰＣ１は、ＰＣ３から「２００  ＯＫ」を受信し（Ｓ１９）、「ＡＣＫ」を返送することを契機として（Ｓ２０）、ＰＣ２とＰＣ３との間のセッションの確立開始を要求する。つまり、ＰＣ３から受信する「２００  ＯＫ」（Ｓ１９）を、セッションの確立開始の要求指示として入力する。従って、ＰＣ１は、「ＡＣＫ」をＰＣ３に送信すると（Ｓ２０）、送信制御処理（図３参照）を実行する（Ｓ２１）。新規に確立されるセッションはＰＣ２―ＰＣ３間のセッションの１つのみである。よって、ＰＣ１は、ＳＩＰメッセージ「ＲＥＦＥＲ」を通常通りＰＣ２に送信する（Ｓ２２）。Ｓ２２で送信される「ＲＥＦＥＲ」は、「ＩＮＶＩＴＥ」をＰＣ２からＣａｒｏｌのＰＣ３に送信するように、ＰＣ２に対する指示を行うためのメッセージである。ＰＣ２は、成功応答「２０２  Ａｃｃｅｐｔｅｄ」をＰＣ１に返送する（Ｓ２３）。
【００４０】
ＰＣ２が受信する「ＲＥＦＥＲ」は、セッションの確立開始の要求を指示するメッセージである。よって、ＰＣ２は送信制御処理（図３参照）を行う（Ｓ２４）。新規に確立されるセッションは１つであるため、「ＩＮＶＩＴＥ」が通常のタイミングでＰＣ２からＰＣ３に送信される（Ｓ２５）。ＰＣ３は「１８０  Ｒｉｎｇｉｎｇ」を返送し（Ｓ２６）、さらに「２００  ＯＫ」をＰＣ２に送信する（Ｓ２７）。「ＡＣＫ」がＰＣ２からＰＣ３へ送信されて（Ｓ２８）、ＰＣ２−ＰＣ３間のセッションが確立する。ＰＣ２からＰＣ１へ通知メッセージ「ＮＯＴＩＦＹ」が送信されることで（Ｓ２９）、ＰＣ１は、ＰＣ２−ＰＣ３間のセッションの確立が完了したことを認識する。
【００４１】
図５の説明に移行する。次いで、Ａｌｉｃｅは、ＤａｖｅのＰＣ４との間のセッションの確立開始の指示をＰＣ１に入力する。ＰＣ１は、送信制御処理（図３参照）を行うが（Ｓ３１）、新規に確立されるセッションは１つである。よって、「ＩＮＶＩＴＥ」（Ｓ３２）、「１８０  Ｒｉｎｇｉｎｇ」（Ｓ３３）、「２００  ＯＫ」（Ｓ３４）、および「ＡＣＫ」（Ｓ３５）の各メッセージが通常のタイミングで送受信されて、ＰＣ１−ＰＣ４間のセッションが確立する。
【００４２】
ＰＣ１は、ＰＣ４から「２００  ＯＫ」を受信し（Ｓ３４）、「ＡＣＫ」を返送することを契機として（Ｓ３５）、ＰＣ２−ＰＣ４間、およびＰＣ３−ＰＣ４間の２つのセッションの確立開始を要求する。まず、ＰＣ１は、送信制御処理を行う。図３に示すように、新規に確立開始を要求するセッションが２つであれば（Ｓ２：ＹＥＳ）、セッションの確立方法が判定される（Ｓ３）。前述したように、ＰＣ２およびＰＣ３は、アドレス制限ＣｏｎｅＮＡＴであるＮＡＴルータ９に接続している。ＰＣ４は、ポート制限ＣｏｎｅＮＡＴであるＮＡＴルータ１０に接続している。従って、ＰＣ２−ＰＣ４間のセッション、およびＰＣ３−ＰＣ４間のセッションは、共にＵＨＰを実行することが必要なセッションであると判定される（Ｓ４：ＹＥＳ）。ＵＨＰが必要なセッションが通過するＮＡＴルータ９，１０のうち、バブルパケットおよびポート検出用パケットが通過することになるＮＡＴルータ９が特定される（Ｓ７）。ＮＡＴルータ９は２つのセッションが通過するため（Ｓ８：ＹＥＳ）、２つの要求信号を異なるタイミングで送信するように設定される（Ｓ９）。
【００４３】
図５に示すように、ＰＣ１は、２つの要求信号を異なるタイミングで送信する場合、まず一方の要求信号のみを送信する。具体的には、ＰＣ１は、ＰＣ２に送信する「ＲＥＦＥＲ」、およびＰＣ３に送信する「ＲＥＦＥＲ」の２つの要求信号のうち、ＰＣ２に送信する「ＲＥＦＥＲ」のみを先に送信する（Ｓ３８）。Ｓ３８で送信される「ＲＥＦＥＲ」は、「ＩＮＶＩＴＥ」をＰＣ２からＤａｖｅのＰＣ４に送信するように、ＰＣ２に対する指示を行うためのメッセージである。ＰＣ２は、「２０２  Ａｃｃｅｐｔｅｄ」を返送する（Ｓ３９）。ＰＣ２は送信制御処理（図３参照）を行うが、送信する「ＩＮＶＩＴＥ」は１つであるため、「ＩＮＶＩＴＥ」を通常のタイミングでＰＣ４に送信する（Ｓ４２）。ＰＣ４は「１８０  Ｒｉｎｇｉｎｇ」を返送し（Ｓ４３）、次いで「２００  ＯＫ」をＰＣ２に送信する（Ｓ４４）。ＰＣ２は「ＡＣＫ」を返送し（Ｓ４５）、ＰＣ２−ＰＣ４間のセッションが確立する。ＰＣ２−ＰＣ４間のセッションを確立するために必要なＵＨＰは、送信制御処理（Ｓ４１）が終了してからＲＴＰによる直接通信が行われる前までに実行される。セッションが確立すると、ＰＣ２からＰＣ１へ「ＮＯＴＩＦＹ」が送信される（Ｓ４６）。その結果、ＰＣ１は、ＰＣ２−ＰＣ４間のセッションが確立したことを認識する。
【００４４】
ＰＣ１は、ＰＣ２から「ＮＯＴＩＦＹ」を受信し（Ｓ４６）、ＰＣ２−ＰＣ４間のセッションが確立したことを認識した以後に、次の要求信号「ＲＥＦＥＲ」をＰＣ３に送信する（Ｓ４８）。ＰＣ３は、「２０２  Ａｃｃｅｐｔｅｄ」を返送し（Ｓ４９）、送信制御処理を行う（Ｓ５１）。「ＩＮＶＩＴＥ」（Ｓ５２）、「１８０  Ｒｉｎｇｉｎｇ」（Ｓ５３）、「２００  ＯＫ」（Ｓ５４）、および「ＡＣＫ」（Ｓ５５）がＰＣ３−ＰＣ４間で送受信されて、ＰＣ３−ＰＣ４間のセッションが確立する。ＰＣ３−ＰＣ４間のセッションを確立するために必要なＵＨＰは、送信制御処理（Ｓ５１）が終了してからＲＴＰによる直接通信が行われる前までに実行される。従って、ＰＣ２−ＰＣ４間のセッションを確立するためのＵＨＰの実行タイミングと、ＰＣ３−ＰＣ４間のセッションを確立するためのＵＨＰの実行タイミングとは、重複しない。よって、ＵＨＰの実行中に行われる送信元ポート番号の予測が失敗することはない。ＰＣ３がＰＣ２に「ＮＯＴＩＦＹ」を送信することで（Ｓ５６）、４つのＰＣ１〜ＰＣ４における相互のセッションの確立が完了する。
【００４５】
以上説明したように、本実施の形態の会議システム１００は、ＮＡＴルータの送信元ポート番号の予測をＵＨＰの実行中に行うことで、効率よく的確にセッションを確立することができる。ＰＣ１〜４は、新規に確立開始を要求するセッションが複数存在する場合に、ＵＨＰによって確立されるセッションが存在するか否かに基づいて、複数の要求信号の送信タイミングを制御する。ＵＨＰは、要求信号の送信を契機として行われる。従って、ＰＣ１〜４は、複数のＵＨＰの実行タイミングが重複することを防止することができるため、バブルパケットの送信元ポート番号を予測するためのパケットの送受信の合間に他のパケットがサーバ６に送信されることを防止することができる。よって、ＰＣ１〜４は、サーバ６による送信元ポート番号の予測が失敗することを防止することができる。
【００４６】
ＰＣ１〜４は、ＵＨＰを実行することが必要なセッションを含む複数のセッションが同一のＮＡＴルータにデータを通過させるか否かを判断する。通過させると判断された場合に、少なくとも当該複数のセッションの確立開始を要求する複数の要求信号を、異なるタイミングで送信する。具体的には、ＰＣ１〜４は、一のセッションの確立が完了してから、次のセッションの確立開始を要求する要求信号を送信する。従って、ＰＣ１〜４は、ＵＨＰにおけるパケットの送受信の合間に他のパケットが送受信されることを、効率よく且つ確実に防止することができる。
【００４７】
一方、ＰＣ１〜４は、ＵＨＰを実行することが必要なセッションを含む複数のセッションが同一のＮＡＴルータにデータを通過させないと判断した場合、通過させると判断した場合に比べて短い間隔で要求信号を送信する。従って、ＰＣ１〜４は、バブルパケットの送信元ポート番号の予測が失敗しないことを的確に把握して、全セッションの確立に要する時間を短縮することができる。ＰＣ１〜４は、セッション開始信号である「ＩＮＶＩＴＥ」、およびセッション転送要求信号である「ＲＥＦＥＲ」の少なくともいずれかの送信タイミングを制御することで、バブルパケットの送信元ポート番号の予測が失敗することを的確に防止することができる。
【００４８】
上記実施の形態において、ＰＣ１〜４のそれぞれが本発明の「通信装置」に相当する。図３のＳ１で新規に確立開始の要求対象となるセッションを抽出するＣＰＵ２０が、本発明の「セッション抽出手段」として機能する。図３のＳ３およびＳ４で、送信元ポート番号の予測を行うＵＨＰによって確立されるセッションが存在するか否かを判断するＣＰＵ２０が、本発明の「第一判断手段」として機能する。図３のＳ３〜Ｓ９で要求信号の送信タイミングを制御するＣＰＵ２０が「送信制御手段」として機能する。
【００４９】
図３のＳ７でＮＡＴルータを特定するＣＰＵ２０が「ＮＡＴ装置特定手段」として機能する。図３のＳ８で、複数のセッションが特定のＮＡＴルータにデータを通過させるか否かを判断するＣＰＵ２０が「第二判断手段」として機能する。図３のＳ９および図５のＳ３８，Ｓ４８で要求信号を異なるタイミングで送信するＣＰＵ２０が「第一送信制御手段」として機能する。図４および図５で、セッションの確立が完了したことを示す「ＡＣＫ」および「ＮＯＴＩＦＹ」の通信を行うＣＰＵ２０が「通信手段」として機能する。図３のＳ５で要求信号の送信間隔を短く設定し、且つ短い間隔で要求信号を送信するＣＰＵ２０が、本発明の「第二送信制御手段」として機能する。
【００５０】
図３のＳ１で新規に確立開始の要求対象となるセッションを抽出する処理が、本発明の「セッション抽出手段」に相当する。図３のＳ３およびＳ４で、送信元ポート番号の予測を行うＵＨＰによって確立されるセッションが存在するか否かを判断する処理が、本発明の「第一判断手段」に相当する。図３のＳ３〜Ｓ９で要求信号の送信タイミングを制御する処理が「送信制御手段」に相当する。
【００５１】
本発明は、上記実施の形態に限定されることはなく、様々な変形が可能であることは言うまでもない。上記実施の形態では、複数のＰＣ１〜４がＰ２Ｐ通信を行う場合を例示したが、他の形態の会議システムにおいても本発明を適用できる。例えば、遠隔会議を管理する会議サーバを会議システムに備え、会議サーバが要求信号の送信タイミングを制御してもよい。つまり、会議サーバを本発明の「通信装置」として用いることも可能である。この会議サーバは、ＰＣ間のセッションを確立するためのサーバとは異なるサーバであってもよい。１つのサーバが、セッションを確立するための機能（上記実施の形態におけるサーバ６の機能）と遠隔会議を管理する機能とを兼ねてもよい。会議サーバを備えた会議システムであっても、上記実施の形態と異なるのは、システム全体におけるメッセージの送受信の順序のみである。会議サーバが行う特徴的な処理は、図３に示す送信制御処理と同じである。
【００５２】
上記実施の形態のＰＣ１〜４は、ＵＨＰによって確立されるセッションにおいてデータが通過し、且つＵＨＰの実行中にバブルパケットおよびポート検出用パケットが通過するＮＡＴルータを特定する（Ｓ７、図３参照）。従って、ＵＨＰによって確立されるセッションがデータを通過させる２つのＮＡＴルータのうちの一方に対してのみポート予測が行われる場合には、他方のＮＡＴルータ（ポート予測が行われないＮＡＴルータ）は特定されない。よって、ポート予測が失敗する可能性があるＮＡＴルータのみを適切に特定することができる。しかし、ＰＣ１〜４は、バブルパケットおよびポート検出用パケットが通過するか否かに関わらず、ＵＨＰによって確立されるセッションにおいてデータが通過するＮＡＴルータを全て特定してもよい。ＵＨＰによって確立されるセッションにおいてデータが通過するＮＡＴルータには、バブルパケットおよびポート検出用パケットが通過するＮＡＴルータが必ず含まれる。よって、上記実施の形態と同様に、ポート予測が失敗することを防止することができる。
【００５３】
上記実施の形態のＰＣ１〜４は、ＵＨＰを実行することが必要なセッションを含む複数のセッションが同一のＮＡＴルータにデータを通過させるか否かを判断する。通過させると判断された場合に、少なくとも当該複数のセッションの確立開始を要求する複数の要求信号を異なるタイミングで送信する。しかし、要求信号の送信タイミングの制御方法は適宜変更できる。例えば、ＰＣ１〜４は、新規に確立開始の要求対象となるセッションが複数存在した場合、ＵＨＰが必要なセッションが１つでも存在するか否かを判断する。ＵＨＰが必要なセッションが１つでも存在した時点で、ＮＡＴルータの特定（Ｓ７、図３参照）等の処理を経ることなく、全ての要求信号が互いに異なるタイミングで送信されるように制御してもよい。この場合でも、ＰＣ１〜４は、ＵＨＰが必要なセッションが存在するか否かに基づいて要求信号のタイミングを制御することで、バブルパケットの送信元ポート番号の予測が失敗することを防止することができる。
【００５４】
上記実施の形態のＰＣ１〜４は、複数の要求信号を異なるタイミングで送信する場合、２回目以降に送信される要求信号を、前回送信された要求信号によるセッションの確立が完了することを条件に送信する。しかし、複数の要求信号を異なるタイミングで送信する場合の送信の条件は、これに限られない。例えば、セッションの確立に要する時間を考慮して、要求信号の送信間隔をあらかじめ定めておき、定められた送信間隔で１つずつ要求信号を送信することを条件としてもよい。つまり、ＰＣ１〜４は、ＵＨＰの実行中に次の要求信号が送信されることを排除できる送信条件に従えばよい。上記実施の形態では、複数の要求信号の送信タイミングが短い送信間隔に設定された場合には、複数の要求信号はほぼ同時に送信される。その結果、セッションの確立が完了するまでの時間を短縮させている。しかし、複数の要求信号を同時に送信することで処理遅延等の問題が生じる場合には、間隔を空けて複数の要求信号を送信してもよい。
【００５５】
図４および図５に示す例では、Ｓ３８およびＳ４８の２つの「ＲＥＦＥＲ」のみが異なるタイミングで送信されている。しかし、上記実施の形態のＰＣ１〜４は、セッション開始信号である「ＩＮＶＩＴＥ」の送信タイミング、およびセッション転送要求信号である「ＲＥＦＥＲ」の送信タイミングの両方を制御できる。従って、１人のユーザが２つの通信装置を用いて会議に参加する場合等は、複数の「ＩＮＶＩＴＥ」が異なるタイミングで送信される場合もある。一方で、１人のユーザが使用できる通信装置が１つのみである場合には、「ＲＥＦＥＲ」の送信タイミングのみを制御すれば、送信元ポート番号の予測が失敗することを防止できる。「ＲＥＦＥＲ」の送信タイミングのみを制御する場合には、ＰＣ１〜４は、「ＲＥＦＥＲ」の送信前にのみ送信制御処理（図３参照）を実行すればよい。
【００５６】
上記実施の形態では、ＰＣ１〜４のそれぞれのＮＡＴの特性を示す情報が、あらかじめ各ＰＣ１〜４のＨＤＤ２３に記憶されている。ＰＣ１〜４は、ＨＤＤ２３に記憶されている情報に基づいて、セッションの確立方法を判定している。しかし、ＮＡＴの特性を示す情報はあらかじめ記憶されている必要はない。例えば、セッションの確立を開始する際に、各ＰＣからＮＡＴの特性を示す情報を受信してもよい。ＰＣ１〜４は、セッションの確立開始時に、公知の処理であるＮＡＴの特性の判別処理を行い、ＮＡＴの特性の情報を取得してもよい。上記実施の形態では、セッション開始プロトコルとして汎用的なＳＩＰプロトコルが使用されている。しかし、これは一例に過ぎず、他の技術を用いて遠隔会議を実行する会議システムにも本発明は適用できる。
【符号の説明】
【００５７】
１〜４    ＰＣ
９，１０    ＮＡＴルータ
２０    ＣＰＵ
２１    ＲＯＭ
２３    ＨＤＤ
１００    会議システム
【図１】
2011166569.tif 000003
【図２】
2011166569.tif 000004
【図３】
2011166569.tif 000005
【図４】
2011166569.tif 000006
【図５】
2011166569.tif 000007