(57)【特許請求の範囲】
【請求項１】
他の通信装置である相手装置とＰ２Ｐ通信を行う場合に使用されるポートをオープンするオープン手段と、
前記オープン手段によってオープンされた前記ポートのポート番号と、前記相手装置によって送信される応答パケットの種別を判断するために使用される付加情報とを、前記相手装置とのセッションの確立を要求する要求パケットに付加し、前記相手装置に対して送信する第一送信手段と、
前記相手装置から、自身とのセッションの確立を要求する前記要求パケットを受信する第一受信手段と、
前記第一送信手段によって送信された前記要求パケットに応じて前記相手装置から送信される前記応答パケットを受信する前に、前記第一受信手段によって前記要求パケットを受信した場合、前記要求パケットに前記付加された付加情報を取得する取得手段と、
前記取得手段によって前記付加情報が取得された場合に、取得された前記付加情報に基づいて、前記相手装置に対して、肯定的な前記応答パケットである肯定応答パケットを送信するか判断する判断手段と、
前記判断手段において、前記肯定応答パケットを送信すると判断された場合に、前記オープン手段によってオープンされた前記ポートの前記ポート番号を前記肯定応答パケットに付加し、前記相手装置に対して送信する第二送信手段と
を備えたことを特徴とする通信装置。
【請求項２】
前記第二送信手段において、前記肯定応答パケットが送信された後、前記相手装置から、否定的な前記応答パケットである否定応答パケットを受信した場合に、前記オープン手段によってオープンされた前記ポートの前記ポート番号を使用することで、前記相手装置との間でＰ２Ｐ通信を行う通信制御手段を備えたことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記第二送信手段において、前記肯定応答パケットが送信された後、前記相手装置から、前記肯定応答パケットを受信した場合に、前記オープン手段によってオープンされた前記ポートをクローズするクローズ手段を備えたことを特徴とする請求項１又は２に記載の通信装置。
【請求項４】
前記判断手段は、
前記取得手段によって取得された前記付加情報に基づいて、前記相手装置に対して、否定的な前記応答パケットである否定応答パケットを送信するか判断し、
前記第二送信手段は、
前記判断手段において前記否定応答パケットを送信すると判断された場合に、前記否定応答パケットを前記相手装置に対して送信することを特徴とする請求項１に記載の通信装置。
【請求項５】
前記第二送信手段において、前記否定応答パケットが送信された後、前記相手装置から前記肯定応答パケットを受信した場合に、前記オープン手段によってオープンされた前記ポートの前記ポート番号を使用することで、前記相手装置との間でＰ２Ｐ通信を行う通信制御手段を備えたことを特徴とする請求項４に記載の通信装置。
【請求項６】
前記第二送信手段において、前記否定応答パケットが送信された後、前記相手装置から、前記否定応答パケットを受信した場合に、前記オープン手段によってオープンされた前記ポートをクローズするクローズ手段を備えたことを特徴とする請求項４又は５に記載の通信装置。
【請求項７】
乱数を生成する生成手段を備え、
前記第一送信手段は、
前記生成手段によって生成された前記乱数を前記付加情報として前記要求パケットに付加し、前記相手装置に対して送信することを特徴とする請求項１から６のいずれかに記載の通信装置。
【請求項８】
前記取得手段において、前記付加情報が取得されなかった場合に、前記相手装置に対して、否定的な前記応答パケットである否定応答パケットを送信する第三送信手段を備えたことを特徴とする請求項１に記載の通信装置。
【請求項９】
他の通信装置である相手装置とＰ２Ｐ通信を行う通信装置において実行される通信方法であって、
前記Ｐ２Ｐ通信を行う場合に使用されるポートをオープンするオープンステップと、
前記オープンステップによってオープンされた前記ポートのポート番号と、前記相手装置によって送信される応答パケットの種別を判断するために使用される付加情報とを、前記相手装置とのセッションの確立を要求する要求パケットに付加し、前記相手装置に対して送信する第一送信ステップと、
前記第一送信ステップによって送信された前記要求パケットに応じて前記相手装置から送信される前記応答パケットを受信する前に、前記相手装置から、自身とのセッションの確立を要求する前記要求パケットを受信する第一受信ステップと、
前記第一受信ステップによって前記要求パケットを受信した場合、前記要求パケットに付加された前記付加情報を取得する取得ステップと、
前記取得ステップによって前記付加情報が取得された場合に、取得された前記付加情報に基づいて、前記相手装置に対して、肯定的な前記応答パケットである肯定応答パケットを送信するか判断する判断ステップと、
前記判断ステップにおいて、前記肯定応答パケットを送信すると判断された場合に、前記オープンステップによってオープンされた前記ポートの前記ポート番号を前記肯定応答パケットに付加し、前記相手装置に対して送信する第二送信ステップと
を備えたことを特徴とする通信方法。
【請求項１０】
他の通信装置である相手装置とＰ２Ｐ通信を行う場合に使用されるポートをオープンするオープンステップと、
前記オープンステップによってオープンされた前記ポートのポート番号と、前記相手装置によって送信される応答パケットの種別を判断するために使用される付加情報とを、前記相手装置とのセッションの確立を要求する要求パケットに付加し、前記相手装置に対して送信する第一送信ステップと、
前記第一送信ステップによって送信された前記要求パケットに応じて前記相手装置から送信される前記応答パケットを受信する前に、前記相手装置から、自身とのセッションの確立を要求する前記要求パケットを受信する第一受信ステップと、
前記第一受信ステップによって前記要求パケットを受信した場合、前記要求パケットに付加された前記付加情報を取得する取得ステップと、
前記取得ステップによって前記付加情報が取得された場合に、取得された前記付加情報に基づいて、前記相手装置に対して、肯定的な前記応答パケットである肯定応答パケットを送信するか判断する判断ステップと、
前記判断ステップにおいて、前記肯定応答パケットを送信すると判断された場合に、前記オープンステップによってオープンされた前記ポートの前記ポート番号を前記肯定応答パケットに付加し、前記相手装置に対して送信する第二送信ステップと
をコンピュータに実行させる通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信方法、及び通信プログラムに関する。より詳細には、呼制御通信によってセッションが確立される通信装置、通信方法、及び通信プログラムに関する。
【背景技術】
【０００２】
サーバ等の呼制御装置を介して呼制御通信を行い、相手方の通信装置とセッションを確立することで、相手方の通信装置とＰ２Ｐ（Peer to Peer）通信を開始する通信装置が知られている。呼制御通信では、発呼側の通信装置（以下「発呼装置」という。）から相手方の通信装置（以下「被呼装置」という。）に対して、セッションの確立を要求する要求パケットが送信される。要求パケットを受信した被呼装置は、発呼装置とのセッションの確立を許可する場合、肯定的な応答パケットを発呼装置に対して送信する。発呼装置は、肯定的な応答パケットを受信する。以上の手順を経て、発呼装置と被呼装置とのセッションは確立し、Ｐ２Ｐ通信が開始される。
【０００３】
発呼装置は、被呼装置に対して要求パケットを送信する前に、被呼装置とＰ２Ｐ通信を行う為に使用されるポートをオープンする。発呼装置は、オープンしたポートの番号（ポート番号）を要求パケットに付加し、被呼装置に送信する。被呼装置は、受信した要求パケットに付加されているポート番号を、Ｐ２Ｐ通信時の宛先ポート番号として使用できる。ここで発呼装置は、被呼装置から肯定的な応答パケットを受信できない場合、オープンしたポートをクローズする。このようにして発呼装置は、使用されないポートを即座にクローズすることで、不特定の第三者によってポートが使用されることを防止し、セキュリティの向上を図っている。
【０００４】
同時期に、二つの通信装置から相互に要求パケットが送信される場合がある。通信装置は、自身が送信した要求パケットに対し、肯定的な応答パケットを受信する前に、相手方の通信装置から要求パケットを受信することになる。このような場合、例えばＲＦＣ３２６１では、其々の通信装置がランダムな時間分待機した後、被呼装置に対して要求パケットを再送するプロトコルが規定されている。また、例えば特許文献１に記載の装置は、二つの通信装置のうち優先順位の高い側の通信装置が、被呼装置に対して要求パケットを再送する。これらの方法が用いられることで、二つの通信装置から同時期に要求パケットが送信された場合でも、通信装置間のセッションは確立される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２１２９４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
二つの通信装置から同時期に要求パケットが送信された場合、被呼装置から肯定的な応答パケットを受信できないので、要求パケットの再送処理を行うために、ポートのオープン／クローズが頻繁に繰り返される。このような場合、通信経路に介在するサーバやルータにおいて、パケットが正確に転送されない状態が発生し得る。理由は以下のとおりである。サーバやルータは、通信装置においてオープンされたポートに対応するポートをオープンし、オープンしたポートを使用することで、通信装置からパケットを受信し転送する。このため、通信装置において新たにポートがオープンされる度に、サーバやルータでは、対応するポートをオープンしなければならい。従って、通信装置においてポートのオープン／クローズが頻繁に繰り返された場合、サーバやルータにおいてオープンされるポートは増大し、サーバやルータにおいて使用可能なポート番号が枯渇する。このような場合、サーバやルータは、新たにポートをオープンできなくなるので、通信装置からパケットを受信できなくなる。通信装置は、相手方の通信装置と信頼性の高い通信を行うことができなくなる。さらに、サーバやルータにおいて非常に多くのポートがオープンした状態となり、セキュリティが脆弱化する。
【０００７】
本発明の目的は、二つの通信装置から同時期に要求パケットが送信された場合でも、相手方の通信装置と信頼性の高い通信を行うことができ、且つセキュリティ性の高い通信を行うことができる通信装置、通信方法、及び通信プログラムを提供することである。
【課題を解決するための手段】
【０００８】
本発明の第一態様に係る通信装置は、他の通信装置である相手装置とＰ２Ｐ通信を行う場合に使用されるポートをオープンするオープン手段と、前記オープン手段によってオープンされた前記ポートのポート番号と、前記相手装置によって送信される応答パケットの種別を判断するために使用される付加情報とを、前記相手装置とのセッションの確立を要求する要求パケットに付加し、前記相手装置に対して送信する第一送信手段と、前記相手装置から、自身とのセッションの確立を要求する前記要求パケットを受信する第一受信手段と、前記第一送信手段によって送信された前記要求パケットに応じて前記相手装置から送信される前記応答パケットを受信する前に、前記第一受信手段によって前記要求パケットを受信した場合、前記要求パケットに付加された前記付加情報を取得する取得手段と、前記取得手段によって前記付加情報が取得された場合に、取得された前記付加情報に基づいて、前記相手装置に対して、肯定的な前記応答パケットである肯定応答パケットを送信するか判断する判断手段と、前記判断手段において、前記肯定応答パケットを送信すると判断された場合に、前記オープン手段によってオープンされた前記ポートの前記ポート番号を前記肯定応答パケットに付加し、前記相手装置に対して送信する第二送信手段とを備えている。
【０００９】
本発明の第一態様によれば、通信装置は、要求パケットに応じて相手装置から返信されたパケットが要求パケットである場合に、既にオープンされているポートのポート番号を付加した肯定応答パケットを、相手装置に対して送信する。通信装置は、要求パケットに応じて相手装置から返信されたパケットが肯定応答パケットでない場合であっても、オープンされているポートをクローズしない。これによって、要求パケットを送信するタイミングが相手装置と同時期であっても、通信装置においてポートのオープン／クローズが頻繁に生じてしまうことを防止できる。従って、相手装置との間の通信経路に介在する中継装置において正確にパケットが転送されるので、通信装置は、相手装置と信頼性の高い通信を行うことができる。また、オープンするポートを最小限にできるので、通信のセキュリティを良好に維持できる。
【００１０】
また、第一態様において、前記第二送信手段において、前記肯定応答パケットが送信された後、前記相手装置から、否定的な前記応答パケットである否定応答パケットを受信した場合に、前記オープン手段によってオープンされた前記ポートの前記ポート番号を使用することで、前記相手装置との間でＰ２Ｐ通信を行う通信制御手段を備えていてもよい。これによって通信装置は、相手装置に対して肯定応答パケットを送信した後、相手装置から否定応答パケットを受信した場合、相手装置とのセッションの確立に成功したと判断できる。通信装置は、オープンされた状態のポートを継続して使用することで、容易に相手装置とＰ２Ｐ通信を実行できる。
【００１１】
また、第一態様において、前記第二送信手段において、前記肯定応答パケットが送信された後、前記相手装置から、前記肯定応答パケットを受信した場合に、前記オープン手段によってオープンされた前記ポートをクローズするクローズ手段を備えていてもよい。これによって通信装置は、相手装置に対して肯定応答パケットを送信した後、相手装置から肯定応答パケットを受信した場合、相手装置とのセッションの確立に失敗したと判断できる。通信装置は、オープンしたポート番号をクローズすることで、オープンしたポートが不特定の第三者に使用されてしまうことを防止できる。通信装置は、相手装置との間の通信のセキュリティを維持できる。
【００１２】
また、第一態様において、前記判断手段は、前記取得手段によって取得された前記付加情報に基づいて、前記相手装置に対して、否定的な前記応答パケットである否定応答パケットを送信するか判断し、前記第二送信手段は、前記判断手段において前記否定応答パケットを送信すると判断された場合に、前記否定応答パケットを前記相手装置に対して送信してもよい。これによって通信装置は、相手装置に対して否定応答パケットを送信することで、セッションの確立を許可する旨を相手装置に対して通知できる。
【００１３】
また、第一態様において、前記第二送信手段において、前記否定応答パケットが送信された後、前記相手装置から前記肯定応答パケットを受信した場合に、前記オープン手段によってオープンされた前記ポートの前記ポート番号を使用することで、前記相手装置との間でＰ２Ｐ通信を行う通信制御手段を備えていてもよい。これによって通信装置は、相手装置に対して否定応答パケットを送信した後、相手装置から肯定応答パケットを受信した場合、相手装置とのセッションの確立に成功したと判断できる。通信装置は、オープンされた状態のポートを継続して使用することで、容易に相手装置とＰ２Ｐ通信を実行できる。
【００１４】
また、第一態様において、前記第二送信手段において、前記否定応答パケットが送信された後、前記相手装置から、前記否定応答パケットを受信した場合に、前記オープン手段によってオープンされた前記ポートをクローズするクローズ手段を備えていてもよい。これによって通信装置は、相手装置に対して否定応答パケットを送信した後、相手装置から否定応答パケットを受信した場合、相手装置とのセッションの確立に失敗したと判断できる。通信装置は、オープンしたポートをクローズすることで、オープンしたポートが不特定の第三者に使用されてしまうことを防止できる。通信装置は、相手装置との間の通信のセキュリティを維持できる。
【００１５】
また、第一態様において、乱数を生成する生成手段を備え、前記第一送信手段は、前記生成手段によって生成された前記乱数を前記付加情報として前記要求パケットに付加し、前記相手装置に対して送信してもよい。これによって、肯定応答パケット及び否定応答パケットを送信する通信装置が確実に割り当てられるので、安定的にセッションを確立してＰ２Ｐ通信を行うことができる。
【００１６】
また、第一態様において、前記取得手段において、前記付加情報が取得されなかった場合に、前記相手装置に対して、否定的な前記応答パケットである否定応答パケットを送信する第三送信手段を備えていてもよい。付加情報が取得されていない場合、相手装置に対して否定応答パケットを送信することで、予期しないセッションが確立されてしまうことを防止できる。
【００１７】
本発明の第二態様に係る通信方法は、他の通信装置である相手装置とＰ２Ｐ通信を行う通信装置において実行される通信方法であって、前記Ｐ２Ｐ通信を行う場合に使用されるポートをオープンするオープンステップと、前記オープンステップによってオープンされた前記ポートのポート番号と、前記相手装置によって送信される応答パケットの種別を判断するために使用される付加情報とを、前記相手装置とのセッションの確立を要求する要求パケットに付加し、前記相手装置に対して送信する第一送信ステップと、前記第一送信ステップによって送信された前記要求パケットに応じて前記相手装置から送信される前記応答パケットを受信する前に、前記相手装置から、自身とのセッションの確立を要求する前記要求パケットを受信する第一受信ステップと、前記第一受信ステップによって前記要求パケットを受信した場合、前記要求パケットに付加された前記付加情報を取得する取得ステップと、前記取得ステップによって前記付加情報が取得された場合に、取得された前記付加情報に基づいて、前記相手装置に対して、肯定的な前記応答パケットである肯定応答パケットを送信するか判断する判断ステップと、前記判断ステップにおいて、前記肯定応答パケットを送信すると判断された場合に、前記オープンステップによってオープンされた前記ポートの前記ポート番号を前記肯定応答パケットに付加し、前記相手装置に対して送信する第二送信ステップとを備えている。
【００１８】
本発明の第二態様によれば、要求パケットに応じて相手装置から返信されたパケットが要求パケットである場合に、既にオープンされているポートのポート番号を付加した肯定応答パケットを、相手装置に対して送信する。通信装置は、要求パケットに応じて相手装置から返信されたパケットが肯定応答パケットでない場合であっても、オープンされているポートをクローズしない。これによって、要求パケットを送信するタイミングが相手装置と同時期であっても、通信装置においてポートのオープン／クローズが頻繁に生じてしまうことを防止できる。従って、相手装置との間の通信経路に介在する中継装置において正確にパケットが転送されるので、相手装置と信頼性の高い通信を行うことができる。また、オープンするポートを最小限にできるので、通信のセキュリティを良好に維持できる。
【００１９】
本発明の第三態様に係る通信プログラムは、他の通信装置である相手装置とＰ２Ｐ通信を行う場合に使用されるポートをオープンするオープンステップと、前記オープンステップによってオープンされた前記ポートのポート番号と、前記相手装置によって送信される応答パケットの種別を判断するために使用される付加情報とを、前記相手装置とのセッションの確立を要求する要求パケットに付加し、前記相手装置に対して送信する第一送信ステップと、前記第一送信ステップによって送信された前記要求パケットに応じて前記相手装置から送信される前記応答パケットを受信する前に、前記相手装置から、自身とのセッションの確立を要求する前記要求パケットを受信する第一受信ステップと、前記第一受信ステップによって前記要求パケットを受信した場合、前記要求パケットに付加された前記付加情報を取得する取得ステップと、前記取得ステップによって前記付加情報が取得された場合に、取得された前記付加情報に基づいて、前記相手装置に対して、肯定的な前記応答パケットである肯定応答パケットを送信するか判断する判断ステップと、前記判断ステップにおいて、前記肯定応答パケットを送信すると判断された場合に、前記オープンステップによってオープンされた前記ポートの前記ポート番号を前記肯定応答パケットに付加し、前記相手装置に対して送信する第二送信ステップとをコンピュータに実行させる。これによって通信プログラムは、上述した各ステップをコンピュータに実行させることができる。
【図面の簡単な説明】
【００２０】
【図１】通信システム１の概要及び通信装置１２の電気的構成を示す図である。
【図２】通信装置１２と通信装置１３との間の通信のシーケンスを示す図である。
【図３】通信装置１２と通信装置１３との間の通信のシーケンスを示す図である。
【図４】通信装置１２と通信装置１３との間の通信のシーケンスを示す図である。
【図５】メイン処理を示すフローチャートである。
【図６】発呼側処理を示すフローチャートである。
【図７】発呼側処理を示すフローチャートである。
【図８】被呼側処理を示すフローチャートである。
【発明を実施するための形態】
【００２１】
以下、本発明の一実施形態について、図面を参照して説明する。これらの図面は、本発明が採用しうる技術的特徴を説明するために用いられるものである。記載されている装置の構成、各種処理のフローチャート等は、それのみに限定する趣旨ではなく、単なる説明例である。
【００２２】
図１を参照し、通信システム１について説明する。通信システム１は、サーバ１１、及び通信装置１２、１３（以下、これらを区別しない場合、「通信装置２」と呼ぶ。）を備えている。サーバ１１及び通信装置２は、ネットワーク３を介して相互に通信を行うことができる。通信装置２は、呼制御通信によってセッションを確立し、Ｐ２Ｐ（Peer to Peer）通信を開始することができる。通信装置２として、例えば周知のＰＣが使用される。呼制御通信のプロトコルとして、例えばＳＩＰ（Session Initiation Protocol）が使用される。サーバ１１は、通信装置２間の呼制御通信を制御する。サーバ１１として、ＳＩＰサーバが使用される。なお、通信装置２に付された符号（１２、１３）は、其々の通信装置のＩＤも示しているものとする。
【００２３】
通信装置１２の電気的構成について説明する。通信装置１３の電気的構成は、通信装置１２と同一である。通信装置１２は、通信装置１２の制御を司るＣＰＵ２１を備えている。ＣＰＵ２１は、ＲＯＭ２２、ＲＡＭ２３、ハードディスクドライブ（ＨＤＤ）２４、入力部２５、出力部２６、ドライブ装置２７、及び通信部２８と電気的に接続している。ＲＯＭ２２には、ブートプログラムやＢＩＯＳ、ＯＳ等が記憶される。ＲＡＭ２３には、タイマやカウンタ、一時的なデータが記憶される。ＨＤＤ２４には、ＣＰＵ２１の制御プログラムが記憶される。入力部２５は、ユーザからの入力を受け付けるキーボードやマウスである。出力部２６は、所望の画像を表示させるディスプレイである。ドライブ装置２７は、記憶媒体２７１に記憶された情報を読み出すことができる。例えば、通信装置１２のセットアップ時、記憶媒体２７１に記憶された制御プログラムはドライブ装置２７によって読み出され、ＨＤＤ２４に記憶される。通信部２８は、ネットワークを介して他の通信装置２と通信を行う場合のタイミング制御を行う。
【００２４】
図２から図４を参照し、通信装置１２と通信装置１３との間で実行される呼制御通信の概要について説明する。通信装置１２を使用するユーザによって、通信装置１３とのＰ２Ｐ通信を開始する指示が入力部２５を介して入力されたとする。通信装置１２は、通信装置１３とのＰ２Ｐ通信時に使用されるポート（ポート番号：ｘｘｘ）をオープンする（Ｓ１０）。ここで「ポートをオープンする」とは、通信装置１３から送信されるパケットを受信する場合に使用されるポートのポート番号を、利用可能な複数のポート番号から選択し、確保することを示す。通信装置１２は、オープンしたポート番号宛のパケットが通信装置１３から送信された場合に、このパケットを受信できるようになる。
【００２５】
通信装置１２は、通信装置１３に対してセッションの確立を要求する要求パケット（INVITE）を作成する。作成された要求パケット（INVITE）に、オープンされたポートのポート番号（ｘｘｘ）と、自身のＩＤ（１２）とが付加される。通信装置１２は、通信装置１３を宛先とする要求パケット（INVITE）を、サーバ１１に対して送信する。サーバ１１は、通信装置１２から送信された要求パケット（INVITE）を受信し、通信装置１３に対して転送する。通信装置１３は、サーバ１１によって転送された要求パケット（INVITE）を受信する（Ｓ１１）。通信装置１３は、受信した要求パケット（INVITE）に付加されているポート番号を抽出し、ＲＡＭ２３に記憶する。
【００２６】
通信装置１３を使用するユーザによって、通信装置１２とのＰ２Ｐ通信を許可する指示が入力部２５を介して入力されたとする。通信装置１３は、通信装置１２とのＰ２Ｐ通信時に使用されるポート（ポート番号：ｙｙｙ）をオープンする（Ｓ１２）。通信装置１３は、通信装置１２に対してセッション確立の許可を通知する肯定的な応答パケット（以下「肯定応答パケット」という。）（ＯＫ応答）を作成する。作成された肯定応答パケット（ＯＫ応答）に、オープンされたポートのポート番号（ｙｙｙ）と、自身のＩＤ（１３）とが付加される。通信装置１３は、通信装置１２を宛先とする肯定応答パケット（ＯＫ応答）を、サーバ１１に対して送信する。サーバ１１は、通信装置１３から送信された肯定応答パケット（ＯＫ応答）を受信し、通信装置１２に対して転送する。通信装置１２は、サーバ１１によって転送された肯定応答パケット（ＯＫ応答）を受信する（Ｓ１３）。通信装置１２は、受信した肯定応答パケット（ＯＫ応答）に付加されているポート番号を抽出し、ＲＡＭ２３に記憶する。通信装置１２は、肯定応答パケット（ＯＫ応答）を受信したことを通知するＡＣＫパケットを、サーバ１１を介して通信装置１３に対して送信する。通信装置１３は、サーバ１１を介してＡＣＫパケットを受信する（Ｓ１５）。
【００２７】
以上の呼制御通信を経て、通信装置１２と通信装置１３との間のセッションは確立する。通信装置１２は、肯定応答パケット（ＯＫ応答）に付加されていたポート番号（ｙｙｙ）をＲＡＭ２３から読みだして使用することで、通信装置１３と直接Ｐ２Ｐ通信を行う。通信装置１３は、要求パケット（INVITE）に付加されていたポート番号（ｘｘｘ）をＲＡＭ２３から読みだして使用することで、通信装置１２と直接Ｐ２Ｐ通信を行う（Ｓ１７）。
【００２８】
図３に示すように、通信装置１２からサーバ１１を介して要求パケット（INVITE）を受信した（Ｓ２１）通信装置１３に対し、ユーザによって、通信装置１２とのＰ２Ｐ通信を拒否する指示が入力されたとする。通信装置１３は、通信装置１２に対してセッション確立を拒否する旨を通知する否定的な応答パケット（以下「否定応答パケット」という。）（ＮＧ応答）を作成する。作成された否定応答パケット（ＮＧ応答）は、サーバ１１を介して通信装置１２に対して送信される。通信装置１２は、否定応答パケット（ＮＧ応答）を受信する（Ｓ２３）。通信装置１２は、自身が送信した要求パケット（INVITE）に対して通信装置１３から返信されたパケットが肯定応答パケット（ＯＫ応答）でないので、要求パケット（INVITE）を送信する際にオープンしたポート（ポート番号：ｘｘｘ）をクローズする（Ｓ２４）。ここで「ポートをクローズする」とは、確保したポート番号を解放することで、以後、このポート番号宛のパケットの受信を禁止することを示す。
【００２９】
通信装置１２は、否定応答パケット（ＮＧ応答）を受信したことを通知するＡＣＫパケットを、サーバ１１を介して通信装置１３に対して送信する。通信装置１３は、サーバ１１を介してＡＣＫパケットを受信する（Ｓ２５）。通信装置１２と通信装置との間のセッションは確立しないので、通信装置１２と通信装置１３との間のＰ２Ｐ通信は行われない。
【００３０】
以上のように通信装置１２は、要求パケット（INVITE）の送信後に通信装置１３から受信されたパケットが肯定応答パケット（ＯＫ応答）でない場合、オープンされた状態のポートをクローズする。これによって通信装置１２は、オープンされた状態のポートが不特定の第三者によって使用されることを防止し、セキュリティの向上を図っている。
【００３１】
ここで、通信装置１３とのＰ２Ｐ通信を開始する指示が通信装置１２に対して入力され、且つ、同時期に、通信装置１２とのＰ２Ｐ通信を開始する指示が通信装置１３に対して入力された場合の通信シーケンスについて、図４を参照して説明する。
【００３２】
通信装置１２は、通信装置１３とのＰ２Ｐ通信を開始する指示が入力されているので、ポート（ポート番号：ｘｘｘ）をオープンする（Ｓ３０）。通信装置１２は、ポート番号（ｘｘｘ）とＩＤ（１２）とが付加された要求パケット（INVITE）を、サーバ１１を介して通信装置１３に対して送信する。（Ｓ３１）。また、同時に通信装置１３は、通信装置１２とのＰ２Ｐ通信を開始する指示が入力されているので、ポート（ポート番号：ｙｙｙ）をオープンする（Ｓ３２）。通信装置１３は、ポート番号（ｙｙｙ）とＩＤ（１３）とが付加された要求パケット（INVITE）を、サーバ１１を介して通信装置１２に対して送信する（Ｓ３３）。
【００３３】
通信装置１３は、通信装置１２から送信された要求パケット（INVITE）を、サーバ１１を介して受信する（Ｓ３５）。通信装置１３では、要求パケット（INVITE）の送信後に通信装置１２から受信されたパケットが、肯定応答パケット（ＯＫ応答）でないことになる。ここで通信装置１３は、通信装置１２から受信されたパケットが肯定応答パケット（ＯＫ応答）でない場合であっても、受信されたパケットが要求パケット（INVITE）である場合には、通信装置１２に対してＰ２Ｐ通信を開始する指示が入力されていると判断する。そして通信装置１３は、継続して呼制御通信を行うために、Ｓ３２でオープンしたポートをクローズせず、そのまま使用する。これによって通信装置１３は、ポートのオープン／クローズが頻繁に生じてしまうことを防止している。なお受信された要求パケット（INVITE）に付加されたポート番号は、ＲＡＭ２３に記憶される。
【００３４】
通信装置１２でも同様に、通信装置１３から送信された要求パケット（INVITE）を、サーバ１１を介して受信する（Ｓ３９）。通信装置１２は、受信されたパケットは肯定応答パケット（ＯＫ応答）でないが、要求パケット（INVITE）であるので、通信装置１３に対してＰ２Ｐ通信を開始する指示が入力されていると判断する。通信装置１２は、Ｓ３０でオープンしたポートをクローズせず、そのまま使用する。これによって通信装置１２は、ポートのオープン／クローズが頻繁に生じてしまうことを防止する。
【００３５】
次いで通信装置１２及び１３は、受信した要求パケット（INVITE）に応じて返信するパケットの種別を決定する。通常、送信した要求パケット（INVITE）に応じて肯定応答パケット以外のパケットが受信された場合、通信装置１２及び１３は、否定応答パケット（ＮＧ応答）を返信する（図３参照）。しかしながら上述のように、相手方の通信装置に対して同時期にＰ２Ｐ通信を開始する指示が入力されていると判断された場合、通信装置１２及び１３のうちいずれか一方の通信装置は、相手方の通信装置に対して肯定応答パケット（ＯＫ応答）を送信する。
【００３６】
肯定応答パケット（ＯＫ応答）を送信するか否かは、受信された要求パケット（INVITE）に付加されたＩＤと、自身のＩＤとを比較することで決定される。具体的な方法は以下の通りである。通信装置１３のＩＤは、受信された要求パケット（INVITE）に付加されたＩＤ（１２）よりも大きい。この場合通信装置１３は、肯定応答パケット（ＯＫ応答）を通信装置１２に対して返信する（Ｓ３７）。なお、肯定応答パケット（ＯＫ応答）には、Ｓ３２でオープンしたポートのポート番号（ｙｙｙ）が付加される。一方、通信装置１２のＩＤは、受信された要求パケット（INVITE）に付加されているＩＤ（１３）よりも小さい。この場合通信装置１２は、通常通り、否定応答パケット（ＮＧ応答）を通信装置１３に対して送信する（Ｓ４１）。
【００３７】
通信装置１２は、通信装置１３から送信された肯定応答パケット（ＯＫ応答）を、サーバ１１を介して受信する（Ｓ４３）。通信装置１２は、Ｓ４１で否定応答パケット（ＮＧ応答）を送信した後、肯定応答パケット（ＯＫ応答）を受信した場合、Ｓ３１で自身が送信した要求パケット（INVITE）が、通信装置１３において正常に処理されていると判断する。このように通信装置１２は、通信装置１３に対して否定応答パケット（ＮＧ応答）を送信した後、通信装置１３から肯定応答パケット（ＯＫ応答）を受信した場合に、通信装置１３とのセッションの確立に成功したと判断できる。受信された肯定応答パケット（ＯＫ応答）に付加されたポート番号は、ＲＡＭ２３に記憶される。通信装置１２は、ＡＣＫパケットを通信装置１３に対して返信する（Ｓ４７）。
【００３８】
通信装置１３は、通信装置１２から送信された否定応答パケット（ＮＧ応答）を、サーバ１１を介して受信する（Ｓ４５）。通信装置１３は、通信装置１２に対して肯定応答パケット（ＯＫ応答）を送信した後、通信装置１２から否定応答パケット（ＮＧ応答）を受信した場合に、通信装置１２とのセッションの確立に成功したと判断できる。通信装置１３は、ＡＣＫパケットを通信装置１２に対して返信する（Ｓ４９）。通信装置１２及び通信装置１３は、其々、サーバ１１を介してＡＣＫを受信する。
【００３９】
通信装置１２は、Ｓ４３で受信した肯定応答パケット（ＯＫ応答）に付加されていたポート番号（ｙｙｙ）をＲＡＭ２３から読み出して使用することで、通信装置１３と直接Ｐ２Ｐ通信を行う。通信装置１３は、Ｓ３５で受信した要求パケット（INVITE）に付加されていたポート番号（ｘｘｘ）をＲＡＭ２３から読みだして使用することで、通信装置１２と直接Ｐ２Ｐ通信を行う（Ｓ５０）。
【００４０】
以上のように通信装置２は、要求パケット（INVITE）の送信後、相手方の通信装置２から受信したパケットが肯定応答パケット（ＯＫ応答）でない場合でも、要求パケット（INVITE）である場合には、オープンしたポートをクローズせず、呼制御通信を継続する。これによって通信装置２は、要求パケット（INVITE）を送信するタイミングが相手方の通信装置２と同時期である場合に、通信装置２においてポートのオープン／クローズが頻繁に生じてしまうことを防止できる。通信装置２においてポートのオープン／クローズが頻繁に生じてしまった場合、通信装置２間の通信経路に介在する中継装置（サーバやルータなど）において正確にパケットが転送されなくなってしまう可能性がある。これに対し通信装置２では、一旦オープンしたポート番号が継続して使用されるので、通信装置２間で信頼性の高いＰ２Ｐ通信を行うことができる。また、オープンするポートを最小限にできるので、通信のセキュリティを良好に維持できる。
【００４１】
なお上述において、通信装置１３が通信装置１２に対して送信する肯定応答パケット（ＯＫ応答）には、ポート番号（ｙｙｙ）は付加されなくてもよい。通信装置１２は、通信装置１２から受信した要求パケット（INVITE）に付加されたポート番号（ｙｙｙ）を使用することで、通信装置１３とＰ２Ｐ通信を実行してもよい。
【００４２】
上述において、ＩＤの比較後に通信装置２から送信される応答パケット（肯定応答パケット（ＯＫ応答）又は否定応答パケット（ＮＧ応答））の送信タイミングを変更してもよい。具体的には、例えば、ＩＤを比較してから否定応答パケット（ＮＧ応答）を送信するまでの時間は、肯定応答パケット（ＯＫ応答）を送信するまでの時間よりも長くしてもよい。又は、否定応答パケット（ＮＧ応答）を送信するタイミングは、相手方の通信装置２から肯定応答パケット（ＯＫ応答）を受信した後であってもよい。これらによって、其々の通信装置２から送信される肯定応答パケット（ＯＫ応答）と否定応答パケット（ＮＧ応答）とが、通信経路上で衝突してしまい、呼制御通信が失敗してしまうことを防止できる。
【００４３】
上述において、通信装置２は、要求パケット（INVITE）の送信後、相手方の通信装置２から要求パケット（INVITE）を受信した場合、ＩＤの比較処理を行うことなく、相手方の通信装置２に対して肯定応答パケット（ＯＫ応答）を送信してもよい。
【００４４】
上述において、通信装置２は、要求パケット（INVITE）の送信後、相手方の通信装置２から要求パケット（INVITE）を受信した場合、ユーザからセッション確立を許可する指示が入力された場合にＩＤの比較処理を行ってもよいし、ユーザからの入力の有無に依存せず、常にＩＤ比較処理を行って、返信する応答パケットの種別を決定してもよい。
【００４５】
例えば以下のように通信を行ってもよい。通信装置１３は、要求パケット（INVITE）の送信後、通信装置１２から応答パケットを受信する前に、要求パケット（INVITE）を受信する。通信装置１３は、要求パケット（INVITE）に付加されていたＩＤと自身のＩＤとを比較する。通信装置１３は、要求パケット（INVITE）に付加されていたＩＤよりも自身のＩＤの方が大きいので、通信装置１２に対して要求パケット（INVITE）を再送する。一方通信装置１２は、要求パケット（INVITE）の送信後、通信装置１３から応答パケットを受信する前に、要求パケット（INVITE）を受信する。通信装置１２は、要求パケット（INVITE）に付加されていたＩＤよりも自身のＩＤの方が小さいので、パケットを返信せず、そのまま待機する。通信装置１２は、通信装置１３から再送された要求パケット（INVITE）を受信し、通信装置１３に対して肯定応答パケット（ＯＫ応答）を送信する。以上の方法によっても、通信装置１２と通信装置１３との間のセッションは確立するので、通信装置１２と通信装置１３との間でＰ２Ｐ通信を開始することが可能となる。
【００４６】
図５から図８を参照し、通信装置２のＣＰＵ２１において実行されるメイン処理について説明する。メイン処理は、通信装置２の電源が投入された場合に、ＣＰＵ２１において起動される。
【００４７】
図５に示すように、相手方の通信装置２（以下「相手装置」という。）とのＰ２Ｐ通信を開始する指示が、入力部２５を介してユーザによって入力されたか判断される（Ｓ５１）。相手装置とのＰ２Ｐ通信を開始する指示が入力された場合（Ｓ５１：ＹＥＳ）、自身が要求パケット（INVITE）を送信することで呼制御通信を開始する処理（発呼側処理、図６及び図７参照）が実行される（Ｓ５３）。発呼側処理の終了後、処理はＳ５１に戻る。相手装置とのＰ２Ｐ通信を開始する指示が入力されていない場合（Ｓ５１：ＮＯ）、相手装置から送信された要求パケット（INVITE）を受信したかが判断される（Ｓ５５）。要求パケット（INVITE）を受信した場合（Ｓ５５：ＹＥＳ）、受信した要求パケット（INVITE）に付加されたポート番号が抽出され、ＲＡＭ２３に記憶される。要求パケット（INVITE）を送信した相手装置との間で呼制御通信を開始する処理（被呼側処理、図８参照）が実行される（Ｓ５７）。被呼側処理の終了後、処理はＳ５１に戻る。要求パケット（INVITE）が受信されていない場合（Ｓ５５：ＮＯ）、処理はＳ５１に戻る。
【００４８】
発呼側処理について、図６を参照して説明する。相手装置とＰ２Ｐ通信を行うために使用されるポートがオープンされる（Ｓ６１）。自身のＩＤが、ＲＯＭ２２から読み出され取得される（Ｓ６２）。オープンされたポートのポート番号と、取得された自身のＩＤとが付加された要求パケット（INVITE）が作成される。作成された要求パケット（INVITE）は、サーバ１１を介して相手装置に対して送信される（Ｓ６３）。
【００４９】
相手装置から送信された要求パケット（INVITE）を、サーバ１１を介して受信したかが判断される（Ｓ６５）。要求パケット（INVITE）を受信した場合（Ｓ６５：ＹＥＳ）、相手装置に対しても同様に発呼指示がユーザによって入力されていると判断される。受信した要求パケット（INVITE）に付加されているポート番号が抽出され、ＲＡＭ２３に記憶される。受信された要求パケット（INVITE）にＩＤが付加されているかが判断される（Ｓ６７）。要求パケット（INVITE）にＩＤが付加されていない場合（Ｓ６７：ＮＯ）、自身のＩＤとの比較処理を行うことができないので、否定応答パケット（ＮＧ応答）がサーバ１１を介して相手装置に対して送信される（Ｓ７５）。これによって、予期しないセッションが確立されてしまうことを防止している。処理はＳ６５に戻る。
【００５０】
相手装置から送信された要求パケット（INVITE）にＩＤが付加されている場合（Ｓ６７：ＹＥＳ）、付加されているＩＤと自身のＩＤとが比較される（Ｓ６９）。要求パケット（INVITE）に付加されていたＩＤの方が、自身のＩＤよりも大きい場合（Ｓ６９：ＮＯ）、否定応答パケット（ＮＧ応答）がサーバ１１を介して相手装置に対して送信される（Ｓ７５）。相手装置に対して否定応答パケット（ＮＧ応答）を送信することで、セッションの確立を許可する旨を相手装置に対して通知している。処理はＳ６５に戻る。
【００５１】
自身のＩＤの方が、要求パケット（INVITE）に付加されていたＩＤよりも大きい場合（Ｓ６９：ＹＥＳ）、Ｓ６１でオープンしたポートのポート番号を付加した肯定応答パケット（ＯＫ応答）が作成される（Ｓ７１）。作成された肯定応答パケット（ＯＫ応答）は、サーバ１１を介して相手装置に対して送信される（Ｓ７３）。処理はＳ９１（図７参照）に進む。
【００５２】
図７に示すように、肯定応答パケット（ＯＫ応答）が送信された後、相手装置から返信される応答パケットの受信が監視される。相手装置から返信された肯定応答パケット（ＯＫ応答）を、サーバ１１を介して受信した場合（Ｓ９１：ＹＥＳ）、相手装置において正常な処理が実行されていないことになる。自身のＩＤは相手装置のＩＤよりも大きいので、自身が送信した要求パケット（INVITE）を受信した相手装置では、通常、否定応答パケット（ＮＧ応答）が返信されるからである。この場合、Ｓ６１（図６参照）でオープンされたポートはクローズされる（Ｓ９３）。実行中の呼制御通信を終了させる旨を通知するCANCELパケットが、サーバ１１を介して相手装置に対して送信される（Ｓ９５）。このように通信装置２は、相手装置とのセッションの確立に失敗したと判断した場合に、オープンしたポート番号をクローズすることで、オープンしたポートが不特定の第三者に使用されてしまうことを防止している。発呼側処理は終了し、処理はメイン処理（図５参照）に戻る。
【００５３】
相手装置から送信された否定応答パケット（ＮＧ応答）を、サーバ１１を介して受信した場合（Ｓ９１：ＮＯ、Ｓ９７：ＹＥＳ）、相手装置において、Ｓ６３（図６参照）で自身が送信した要求パケット（INVITE）が正常に処理されていることになる。否定応答パケット（ＮＧ応答）を受信したことを通知するＡＣＫパケットが、相手装置に対して返信される（Ｓ９９）。相手装置から送信されるＡＣＫパケットを、サーバ１１を介して受信したかが判断される（Ｓ１０１）。受信を監視するＡＣＫパケットは、Ｓ７３（図６参照）で自身が相手装置に対して送信した肯定応答パケット（ＯＫ応答）に応じて、相手装置から送信されるものである。
【００５４】
ＡＣＫパケットが受信された場合（Ｓ１０１：ＹＥＳ）、Ｓ７３で自身が送信した肯定応答パケット（ＯＫ応答）が、相手装置において正常に処理され、相手装置との間のセッションが確立したことになる。Ｓ６５（図６参照）で受信された要求パケット（INVITE）に付加されていたポート番号が、ＲＡＭ２３から読み出される。読み出されたポート番号が使用され、相手装置との間でＰ２Ｐが実行される（Ｓ１０３）。このように通信装置２は、相手装置に対して肯定応答パケット（ＯＫ応答）を送信した後、相手装置から否定応答パケット（ＮＧ応答）を受信した場合に、相手装置とのセッションの確立に成功したと判断できる。通信装置２は、Ｓ６１（図６参照）でオープンされた状態のポートを使用することで、容易に相手装置とＰ２Ｐ通信を実行できる。発呼側処理は終了し、処理はメイン処理（図５参照）に戻る。
【００５５】
ＡＣＫパケットを受信できない場合（Ｓ１０１：ＮＯ）、相手装置から送信されたCANCELパケットを、サーバ１１を介して受信したかが判断される（Ｓ１０５）。CANCELパケットが受信されない場合（Ｓ１０５：ＮＯ）、処理はＳ１０１に戻る。CANCELパケットが受信された場合（Ｓ１０５：ＹＥＳ）、Ｓ７３（図６参照）で自身が送信した肯定応答パケット（ＯＫ応答）が、相手装置において正常に処理されていないことになる。Ｓ６１（図６参照）でオープンされたポートはクローズされる（Ｓ１０７）。発呼側処理は終了し、処理はメイン処理（図５参照）に戻る。
【００５６】
一方、図６のＳ６５で、要求パケット（INVITE）が受信されないか、又は、Ｓ７５で否定応答パケット（ＮＧ応答）が送信された場合であって（Ｓ６５：ＮＯ）、且つ、相手装置から送信された肯定応答パケット（ＯＫ応答）を、サーバ１１を介して受信したかが判断される（Ｓ７７）。肯定応答パケット（ＯＫ応答）を受信した場合（Ｓ７７：ＹＥＳ）、自身が送信した要求パケット（INVITE）に応じ、相手装置がセッション確立を許可したことになる。肯定応答パケット（ＯＫ応答）に付加されたポート番号が抽出され、ＲＡＭ２３に記憶される。肯定応答パケット（ＯＫ応答）を受信したことを通知するＡＣＫパケットが、サーバ１１を介して相手装置に対して送信される（Ｓ７９）。相手装置とのセッションは確立したことになる。ＲＡＭ２３に記憶されたポート番号が読み出される。読み出されたポート番号が使用され、相手装置との間でＰ２Ｐ通信が実行される（Ｓ８１）。発呼処理は終了し、処理はメイン処理（図５）に戻る。
【００５７】
Ｓ７７で肯定応答パケット（ＯＫ応答）が受信されない場合（Ｓ７７：ＮＯ）、相手装置から送信された否定応答パケット（ＮＧ応答）を、サーバ１１を介して受信したかが判断される（Ｓ８３）。否定応答パケットを受信できない場合（Ｓ８３：ＮＯ）、処理はＳ６５に戻る。否定応答パケットを受信した場合（Ｓ８３：ＹＥＳ）、Ｓ６３で自身が送信した要求パケット（INVITE）に対して、相手装置がセッションの確立を拒否したことになる。Ｓ６１でオープンしたポートがクローズされる（Ｓ８５）。これによって、オープンされたポートが不特定の第三者に使用されてしまうことを防止している。否定応答パケット（ＮＧ応答）を受信したことを通知するＡＣＫパケットが、サーバ１１を介して相手装置に対して送信される（Ｓ８７）。発呼処理は終了し、処理はメイン処理（図５）に戻る。
【００５８】
図８を参照し、被呼側処理について説明する。相手装置とＰ２Ｐ通信を行うために使用されるポートがオープンされる（Ｓ１１１）。ユーザによって、相手装置との間のセッション確立を許可する指示が入力された場合、オープンされたポートのポート番号と、自身のＩＤとが付加された肯定応答パケット（ＯＫ応答）が作成される（Ｓ１１３）。作成された肯定応答パケット（ＯＫ応答）は、サーバ１１を介して相手装置に対して送信される（Ｓ１１５）。相手装置から返信されるＡＣＫパケットを受信したかが判断される（Ｓ１１７）。ＡＣＫパケットを受信した場合（Ｓ１１７：ＹＥＳ）、相手装置とのセッションが確立したことになる。Ｓ５５（図５参照）で受信した要求パケット（INVITE）に付加されたポート番号が、ＲＡＭ２３から読み出される。読み出されたポート番号が使用され、相手装置との間でＰ２Ｐ通信が実行される（Ｓ１１９）。被呼側処理は終了し、処理はメイン処理（図５参照）に戻る。ＡＣＫパケットを受信できない場合（Ｓ１１７：ＮＯ）、Ｓ１１１でオープンしたポートはクローズされる（Ｓ１２１）。被呼側処理は終了し、処理はメイン処理（図５参照）に戻る。
【００５９】
以上説明したように、通信装置２は、自身が送信した要求パケット（INVITE）に応じて相手装置から返信されたパケットが要求パケット（INVITE）である場合に、オープンされているポートをクローズせず、継続使用する。これによって、要求パケット（INVITE）を送信するタイミングが相手装置と同時期であっても、ポートのオープン／クローズが頻繁に生じてしまうことを防止できる。従って、相手装置との間の通信経路に介在する中継装置において正確にパケットが転送されるので、通信装置２は、相手装置と信頼性の高い通信を行うことができる。また、オープンするポートを最小限にできるので、通信のセキュリティを良好に維持できる。
【００６０】
図６のＳ６１の処理を行うＣＰＵ２１が本発明の「オープン手段」に相当し、Ｓ６３の処理を行うＣＰＵ２１が本発明の「第一送信手段」に相当し、Ｓ６５の処理を行うＣＰＵ２１が本発明の「第一受信手段」に相当し、Ｓ６７の処理を行うＣＰＵ２１が本発明の「取得手段」に相当し、Ｓ６９の処理を行うＣＰＵ２１が本発明の「判断手段」に相当し、Ｓ７３及びＳ７５の処理を行うＣＰＵ２１が本発明の「第二送信手段」に相当する。図６のＳ８１、及び図７のＳ１０３の処理を行うＣＰＵ２１が本発明の「通信制御手段」に相当する。図６のＳ８５、及び図７のＳ９３の処理を行うＣＰＵ２１が本発明の「クローズ手段」に相当する。図６のＳ７５の処理を行うＣＰＵ２１が本発明の「第三送信手段」に相当する。
【００６１】
図６のＳ６１の処理が本発明の「オープンステップ」に相当し、Ｓ６３の処理が本発明の「第一送信ステップ」に相当し、Ｓ６５の処理が本発明の「第一受信ステップ」に相当し、Ｓ６７の処理が本発明の「取得ステップ」に相当し、Ｓ６９の処理が本発明の「判断ステップ」に相当し、Ｓ７３及びＳ７５の処理が本発明の「第二送信ステップ」に相当する。
【００６２】
なお本発明は上述の実施形態に限定されることはなく、種々の変更が可能である。上述では、自身のＩＤが要求パケット（INVITE）に付加されていた。通信装置２は、要求パケット（INVITE）に付加されたＩＤと自身のＩＤとを比較することで、返信する応答パケットの種別を決定していた。本発明はこれに限定されない。要求パケット（INVITE）に付加される情報は、ＩＤに限定されない。例えば、所定の乱択アルゴリズムに基づいて生成された乱数が、付加情報として要求パケット（INVITE）に付加されてもよい。例えば図６のＳ６２で、ＩＤを取得する代わりに、乱数が生成されてもよい。通信装置２は、生成された乱数を要求パケット（INVITE）に付加し、相手装置に対して送信してもよい（Ｓ６３）。また通信装置２は、受信した要求パケット（INVITE）に付加されていた乱数と、自身が生成した乱数とを比較することによって、返信する応答パケットの種別を決定してもよい。これによって、肯定応答パケット（ＯＫ応答）及び否定応答パケット（ＮＧ応答）を送信する通信装置２が確実に割り当てられるので、安定的にセッションを確立してＰ２Ｐ通信を行うことができる。なお上述の変形例における図６のＳ６２の処理を行うＣＰＵ２１が、本発明の「生成手段」に相当する。
【符号の説明】
【００６３】
１      通信システム
２、１２、１３  通信装置
１１    サーバ
２１    ＣＰＵ
【図１】
0005338765.tif 000002
【図２】
0005338765.tif 000003
【図３】
0005338765.tif 000004
【図４】
0005338765.tif 000005
【図５】
0005338765.tif 000006
【図６】
0005338765.tif 000007
【図７】
0005338765.tif 000008
【図８】
0005338765.tif 000009