(57)【要約】【課題】異なるＮＡＴ装置の配下にある端末間でＲＴＰ／ＲＴＣＰに基づいて通信を行うことが可能な通信方法、通信システム、端末装置を提供する。【解決手段】端末装置６は、端末装置７に対して接続要求パケットを送信する（１０１）。ＮＡＴ装置３では、変換後のポート番号「２３４５６」が履歴情報としてＮＡＴ装置３に記憶される（１０４）。通信制御装置２は、ＮＡＴ装置３，４のポート番号をＮＡＴ情報として端末装置６に対して送信する（１１９）。端末装置６は、ＮＡＴ装置３に記憶されているポート番号が「２３４５６」（偶数）であるので、ポート調整パケットを送信する（１２７）。ＮＡＴ装置３には、「２３４５６」に１加算された「２３４５７」（奇数）が記憶される（１３０）。端末装置６は、ポート番号「２３４５８」「２３４５９」を使用してＲＴＰ／ＲＴＣＰに基づいた通信ができる。【選択図】図１１
2011071745.tif 000002
【特許請求の範囲】
【請求項１】
ＮＡＴ機能を備えたＮＡＴ装置であって、配下の内部ネットワーク側から外部ネットワーク側に向かう方向のパケットを受信した場合に、変換後のポート番号に１ずつ加算し、算出された前記ポート番号を、転送を許可するポート番号の履歴情報として記憶するＮＡＴ装置と、前記ＮＡＴ装置の配下の前記内部ネットワークに接続される端末装置と、前記外部ネットワークに接続する通信制御装置とを少なくとも含む通信システムにおいて、異なる前記ＮＡＴ装置の配下の前記内部ネットワークに接続された前記端末装置間で、ＲＴＰ（Real-time Transport Protocol）／ＲＴＣＰ（RTP Control Protocol）に基づいた通信を行うための通信方法であって、
通信を行う少なくとも二つの前記端末装置の其々が、前記ＮＡＴ装置を介して前記通信制御装置に第一パケットを送信する第一送信ステップと、
前記第一送信ステップにおいて送信された前記第一パケットに基づいて、前記第一パケットを転送した前記ＮＡＴ装置の其々に前記履歴情報として記憶された前記ポート番号を少なくとも含む第二パケットを、前記通信制御装置が前記少なくとも二つの端末装置の其々に対して送信する第二送信ステップと、
前記第二送信ステップにおいて送信された前記第二パケットを前記少なくとも二つの端末装置の其々が受信する第一受信ステップと、
前記第一受信ステップにおいて前記少なくとも二つの端末装置の其々が受信した前記第二パケットに含まれる前記ポート番号のうち、通信相手の前記端末装置が送信した前記第一パケットを前記ＮＡＴ装置が転送した場合に前記ＮＡＴ装置に記憶された前記ポート番号である第一ポート番号が奇数であるか偶数であるかを判断する第一判断ステップと、
前記第一判断ステップにおいて前記第一ポート番号が奇数であると判断された場合に、ＲＴＰに基づいたパケットであるＲＴＰパケットを、前記第一ポート番号に２ｎ−１（ｎは１以上の整数）加算したポート番号宛てに送信し、次いで、ＲＴＣＰに基づいたパケットであるＲＴＣＰパケットを、前記第一ポート番号に２ｎ加算したポート番号宛てに送信し、前記第一判断ステップにおいて前記第一ポート番号が偶数であると判断された場合には、前記第一ポート番号に２ｎ加算したポート番号宛てに前記ＲＴＰパケットを送信し、次いで、前記第一ポート番号に２ｎ＋１加算したポート番号宛てに前記ＲＴＣＰパケットを送信する第三送信ステップと
を備えたことを特徴とする通信方法。
【請求項２】
前記第一受信ステップにおいて前記第二パケットを受信した場合に、前記第二パケットに含まれる前記ポート番号のうち、自身が送信した前記第一パケットを前記ＮＡＴ装置が転送した場合に前記ＮＡＴ装置に記憶された前記ポート番号である第二ポート番号が奇数であるか偶数であるかを判断する第二判断ステップと、
前記第二判断ステップにおいて前記第二ポート番号が偶数であると判断された場合に、前記ＮＡＴ装置に記憶された前記第二ポート番号を更新するための第三パケットを、前記端末装置が前記ＮＡＴ装置を介して送信する第四送信ステップを備えたことを特徴とする請求項１に記載の通信方法。
【請求項３】
前記ＮＡＴ装置が、Ｃｏｎｅ  ＮＡＴ機能を備えたＮＡＴ装置である場合に、
前記第四送信ステップは、
前記端末装置が前記第一パケットを送信する際に使用した前記端末装置のポート番号と異なるポート番号を使用して、前記外部ネットワークに接続される機器に前記第三パケットを送信することを特徴とする請求項２に記載の通信方法。
【請求項４】
三つ以上の前記端末装置間で通信を行う場合において、
前記第一送信ステップでは、
前記三つ以上の端末装置の其々が前記通信制御装置に対して前記第一パケットを送信し、
前記第二送信ステップでは、
前記通信制御装置が前記三つ以上の端末装置の其々に対して前記第二パケットを送信し、
前記第一受信ステップでは、
前記三つ以上の端末装置の其々が前記第二パケットを受信し、
前記第一判断ステップは、
複数の前記第一ポート番号の其々が奇数であるか偶数であるかを判断し、
前記第三送信ステップは、
其々の前記第一ポート番号から、前記ＲＴＰパケット及び前記ＲＴＣＰパケットの宛先の前記ポート番号を算出し、算出した其々の前記ポート番号宛てに前記ＲＴＰパケット及び前記ＲＴＣＰパケットを送信することを特徴とする請求項１から３のうちいずれかに記載の通信方法。
【請求項５】
前記ＮＡＴ装置において、前記内部ネットワーク側から前記外部ネットワーク側に向かう方向のパケットを受信した場合に前記ポート番号が１ずつ加算され前記履歴情報として記憶されるか否かを判断する第三判断ステップを備え、
前記第一送信ステップ及び前記第三送信ステップのうち少なくともいずれかは、
前記第三判断ステップにおいて前記ポート番号が1ずつ加算されると判断された場合に、前記第一パケット、前記ＲＴＰパケット、及び前記ＲＴＣＰパケットのうち少なくともいずれかを送信することを特徴とする請求項１から４のいずれかに記載の通信方法。
【請求項６】
ＮＡＴ機能を備えたＮＡＴ装置であって、配下の内部ネットワーク側から外部ネットワーク側に向かう方向のパケットを受信した場合に、変換後のポート番号に1ずつ加算し、算出された前記ポート番号を、転送を許可するポート番号の履歴情報として記憶するＮＡＴ装置と、前記ＮＡＴ装置の配下の前記内部ネットワークに接続される端末装置と、前記外部ネットワークに接続する通信制御装置とを少なくとも含む通信システムであって、異なる前記ＮＡＴ装置の配下の前記内部ネットワークに接続された前記端末装置間で、ＲＴＰ（Real-time Transport Protocol）／ＲＴＣＰ（RTP Control Protocol）に基づいた通信を行うための通信システムであって、
前記端末装置は、
前記ＮＡＴ装置を介して前記通信制御装置に第一パケットを送信する第一送信手段と、
自身が送信した前記第一パケットを前記ＮＡＴ装置が転送した場合に前記ＮＡＴ装置に記憶された前記ポート番号である第二ポート番号と、通信相手の前記端末装置が送信した前記第一パケットを前記ＮＡＴ装置が転送した場合に前記ＮＡＴ装置に記憶された前記ポート番号である第一ポート番号とを少なくとも含む前記第二パケットを、前記通信制御装置から受信する第一受信手段と、
前記第一受信手段において受信された前記第二パケットに含まれる前記第一ポート番号が奇数であるか偶数であるかを判断する第一判断手段と、
前記第一判断手段において前記第一ポート番号が奇数であると判断された場合に、ＲＴＰに基づいたパケットであるＲＴＰパケットを、前記第一ポート番号に２ｎ−１（ｎは１以上の整数）加算したポート番号宛てに送信し、次いで、ＲＴＣＰに基づいたパケットであるＲＴＣＰパケットを、前記第一ポート番号に２ｎ加算したポート番号宛てに送信し、前記第一判断手段において前記第一ポート番号が偶数であると判断された場合には、前記第一ポート番号に２ｎ加算したポート番号宛てに前記ＲＴＰパケットを送信し、次いで、前記第一ポート番号に２ｎ＋１加算したポート番号宛てに前記ＲＴＣＰパケットを送信する第三送信手段と
を備え、
前記通信制御装置は、
少なくとも二つの前記端末装置の其々から送信された前記第一パケットを受信する第二受信手段と、
前記第二受信手段において受信された前記第一パケットに基づいて、前記第二パケットを前記少なくとも二つの端末装置の其々に対して送信する第二送信手段と
を備えたことを特徴とする通信システム。
【請求項７】
ＮＡＴ機能を備えたＮＡＴ装置であって、配下の内部ネットワーク側から外部ネットワーク側に向かう方向のパケットを受信した場合に、変換後のポート番号に1ずつ加算し、算出された前記ポート番号を、転送を許可するポート番号の履歴情報として記憶するＮＡＴ装置の配下の内部ネットワークに接続される端末装置であって、前記外部ネットワークに接続する通信制御装置と通信を行うことによって、異なる前記ＮＡＴ装置の配下の前記内部ネットワークに接続された前記端末装置間で、ＲＴＰ（Real-time Transport Protocol）／ＲＴＣＰ（RTP Control Protocol）に基づいた通信を行う端末装置であって、
前記ＮＡＴ装置を介して前記通信制御装置に第一パケットを送信する第一送信手段と、
自身が送信した前記第一パケットを前記ＮＡＴ装置が転送した場合に前記ＮＡＴ装置に記憶された前記ポート番号である第二ポート番号と、通信相手の前記端末装置が送信した前記第一パケットを前記ＮＡＴ装置が転送した場合に前記ＮＡＴ装置に記憶された前記ポート番号である第一ポート番号とを少なくとも含む前記第二パケットを、前記通信制御装置から受信する第一受信手段と、
前記第一受信手段において受信された前記第二パケットに含まれる前記第一ポート番号が奇数であるか偶数であるかを判断する第一判断手段と、
前記第一判断手段において前記第一ポート番号が奇数であると判断された場合に、ＲＴＰに基づいたパケットであるＲＴＰパケットを、前記第一ポート番号に２ｎ−１（ｎは１以上の整数）加算したポート番号宛てに送信し、次いで、ＲＴＣＰに基づいたパケットであるＲＴＣＰパケットを、前記第一ポート番号に２ｎ加算したポート番号宛てに送信し、前記第一判断手段において前記第一ポート番号が偶数であると判断された場合には、前記第一ポート番号に２ｎ加算したポート番号宛てに前記ＲＴＰパケットを送信し、次いで、前記第一ポート番号に２ｎ＋１加算したポート番号宛てに前記ＲＴＣＰパケットを送信する第三送信手段と
を備えたことを特徴とする端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信方法、通信システム、端末装置に関する。より詳細には、ＲＴＰ／ＲＴＣＰに基づいて通信を行う通信方法、通信システム、端末装置に関する。
【背景技術】
【０００２】
ＮＡＴ（Network Address Translation）機能を備えた装置（ＮＡＴルータなど。以下「ＮＡＴ装置」という。）では、ＬＡＮ側からインターネット側に向かう方向の通信が行われた場合に、所定のポート番号が記憶される。ＮＡＴ装置は、記憶されたポート番号宛てのパケットをインターネット側から受信した場合にのみ、受信したパケットをＬＡＮ側に転送する。従って端末装置が、ＮＡＴ装置の配下にある他の端末装置とのセッションを確立させるためには、ＮＡＴ装置に記憶されているポート番号を検出し、このポート番号宛てにパケットを送信する必要がある。
【０００３】
異なるＮＡＴ装置の配下にある端末装置間でセッションを確立させる為の技術として、例えばUDP Hole Punchingが知られている。また例えば特許文献１に記載の通信システムでは、ＬＡＮに接続された端末装置からインターネット側に向かってバブルパケットが送信され、インターネット側との通信を行うためのポート番号がＮＡＴ装置に記憶される。記憶されたポート番号が、サーバを介し、別のＮＡＴ装置の配下にある端末装置に通知される。通知を受けた端末装置は、通知されたポート番号を宛先としてパケットを送信する。このようにして、異なるＮＡＴ装置の配下にある端末装置間でセッションを確立させている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１３６０３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
異なるＮＡＴ装置の配下にある端末間で、ＲＴＰ（Real-time Transport Protocol）／ＲＴＣＰ（RTP Control Protocol）に基づいた通信を行うためには、ＲＴＰパケットの宛先ポート番号を偶数としなければならない。また、ＲＴＣＰパケットの宛先ポート番号を、ＲＴＰパケットの宛先ポート番号に１加算した奇数の値にしなければならない。しかしながら上述した技術及び装置では、ＮＡＴ装置に記憶された偶数と奇数の連続したポート番号を、端末装置に通知することができない。従って、偶数と奇数の連続したポート番号をＲＴＰパケットとＲＴＣＰパケットの宛先ポート番号として指定できないので、ＲＴＰ／ＲＴＣＰに基づいて通信を行うことができないという問題点があった。
【０００６】
本発明は上述の問題点を解決するためになされたものであり、異なるＮＡＴ装置の配下にある端末間でＲＴＰ／ＲＴＣＰに基づいて通信を行うことが可能な通信方法、通信システム、端末装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第一態様に係る通信方法では、ＮＡＴ機能を備えたＮＡＴ装置であって、配下の内部ネットワーク側から外部ネットワーク側に向かう方向のパケットを受信した場合に、変換後のポート番号に１ずつ加算し、算出された前記ポート番号を、転送を許可するポート番号の履歴情報として記憶するＮＡＴ装置と、前記ＮＡＴ装置の配下の前記内部ネットワークに接続される端末装置と、前記外部ネットワークに接続する通信制御装置とを少なくとも含む通信システムにおいて、異なる前記ＮＡＴ装置の配下の前記内部ネットワークに接続された前記端末装置間で、ＲＴＰ（Real-time Transport Protocol）／ＲＴＣＰ（RTP Control Protocol）に基づいた通信を行うための通信方法であって、通信を行う少なくとも二つの前記端末装置の其々が、前記ＮＡＴ装置を介して前記通信制御装置に第一パケットを送信する第一送信ステップと、前記第一送信ステップにおいて送信された前記第一パケットに基づいて、前記第一パケットを転送した前記ＮＡＴ装置の其々に前記履歴情報として記憶された前記ポート番号を少なくとも含む第二パケットを、前記通信制御装置が前記少なくとも二つの端末装置の其々に対して送信する第二送信ステップと、前記第二送信ステップにおいて送信された前記第二パケットを前記少なくとも二つの端末装置の其々が受信する第一受信ステップと、前記第一受信ステップにおいて前記少なくとも二つの端末装置の其々が受信した前記第二パケットに含まれる前記ポート番号のうち、通信相手の前記端末装置が送信した前記第一パケットを前記ＮＡＴ装置が転送した場合に前記ＮＡＴ装置に記憶された前記ポート番号である第一ポート番号が奇数であるか偶数であるかを判断する第一判断ステップと、前記第一判断ステップにおいて前記第一ポート番号が奇数であると判断された場合に、ＲＴＰに基づいたパケットであるＲＴＰパケットを、前記第一ポート番号に２ｎ−１（ｎは１以上の整数）加算したポート番号宛てに送信し、次いで、ＲＴＣＰに基づいたパケットであるＲＴＣＰパケットを、前記第一ポート番号に２ｎ加算したポート番号宛てに送信し、前記第一判断ステップにおいて前記第一ポート番号が偶数であると判断された場合には、前記第一ポート番号に２ｎ加算したポート番号宛てに前記ＲＴＰパケットを送信し、次いで、前記第一ポート番号に２ｎ＋１加算したポート番号宛てに前記ＲＴＣＰパケットを送信する第三送信ステップとを備えている。
【０００８】
第一の態様に係る通信方法では、偶数と奇数の連続したポート番号をＲＴＰパケット及びＲＴＣＰパケットの宛先ポート番号に割り当てることができる。これによって端末装置は、他の端末装置との間でＲＴＰ／ＲＴＣＰに基づいた通信を行うことができる。
【０００９】
また第一態様において、前記第一受信ステップにおいて前記第二パケットを受信した場合に、前記第二パケットに含まれる前記ポート番号のうち、自身が送信した前記第一パケットを前記ＮＡＴ装置が転送した場合に前記ＮＡＴ装置に記憶された前記ポート番号である第二ポート番号が奇数であるか偶数であるかを判断する第二判断ステップと、前記第二判断ステップにおいて前記第二ポート番号が偶数であると判断された場合に、前記ＮＡＴ装置に記憶された前記第二ポート番号を更新するための第三パケットを、前記端末装置が前記ＮＡＴ装置を介して送信する第四送信ステップを備えていてもよい。第三パケットによって、ＮＡＴ装置に記憶させるポート番号を調整し、奇数と偶数の連続したポート番号をＮＡＴ装置に記憶させることができる。ユーザは、手動でＮＡＴ装置にポート番号を記憶させる手間を省くことができる。
【００１０】
また第一態様において、前記ＮＡＴ装置が、Ｃｏｎｅ  ＮＡＴ機能を備えたＮＡＴ装置である場合に、前記第四送信ステップは、前記端末装置が前記第一パケットを送信する際に使用した前記端末装置のポート番号と異なるポート番号を使用して、前記外部ネットワークに接続される機器に前記第三パケットを送信してもよい。ＮＡＴ種別が汎用的なＣｏｎｅ  ＮＡＴであるＮＡＴ装置では、端末装置の同一ポート番号から送信されたパケットが転送される場合に、ＮＡＴ装置には新たなポート番号が記憶されず、既に記憶されているポート番号が使用される。これに対し第一態様では、端末装置の異なる送信元ポート番号からパケットが送信されるので、ＮＡＴ装置には新たなポート番号が記憶される。このようにして、新たなポート番号がＮＡＴ装置に記憶されるようにできるので、ＮＡＴ種別がＣｏｎｅ  ＮＡＴである端末装置であっても、偶数と奇数の連続したポート番号が記憶されるように調整することができる。
【００１１】
また第一態様において、三つ以上の前記端末装置間で通信を行う場合において、前記第一送信ステップでは、前記三つ以上の端末装置の其々が前記通信制御装置に対して前記第一パケットを送信し、前記第二送信ステップでは、前記通信制御装置が前記三つ以上の端末装置の其々に対して前記第二パケットを送信し、前記第一受信ステップでは、前記三つ以上の端末装置の其々が前記第二パケットを受信し、前記第一判断ステップは、複数の前記第一ポート番号の其々が奇数であるか偶数であるかを判断し、前記第三送信ステップは、其々の前記第一ポート番号から、前記ＲＴＰパケット及び前記ＲＴＣＰパケットの宛先の前記ポート番号を算出し、算出した其々の前記ポート番号宛てに前記ＲＴＰパケット及び前記ＲＴＣＰパケットを送信してもよい。これによって端末装置は、複数の他の端末装置との間でＲＴＰ／ＲＴＣＰに基づいた通信を行うことができる。
【００１２】
また第一態様において、前記ＮＡＴ装置において、前記内部ネットワーク側から前記外部ネットワーク側に向かう方向のパケットを受信した場合に前記ポート番号が１ずつ加算され前記履歴情報として記憶されるか否かを判断する第三判断ステップを備え、前記第一送信ステップ及び前記第三送信ステップのうち少なくともいずれかは、前記第三判断ステップにおいて前記ポート番号が1ずつ加算されると判断された場合に、前記第一パケット、前記ＲＴＰパケット、及び前記ＲＴＣＰパケットのうち少なくともいずれかを送信してもよい。ＮＡＴ装置においてポート番号が更新される場合の変化量（ポート幅）が１ずつ加算されている場合にのみ、以後の通信が行われる。ＮＡＴ装置のポート幅が１でない場合に、ＲＴＰ／ＲＴＣＰに基づいた通信を行わせないようにすることができる。
【００１３】
本発明の第二態様に係る通信システムでは、ＮＡＴ機能を備えたＮＡＴ装置であって、配下の内部ネットワーク側から外部ネットワーク側に向かう方向のパケットを受信した場合に、変換後のポート番号に1ずつ加算し、算出された前記ポート番号を、転送を許可するポート番号の履歴情報として記憶するＮＡＴ装置と、前記ＮＡＴ装置の配下の前記内部ネットワークに接続される端末装置と、前記外部ネットワークに接続する通信制御装置とを少なくとも含む通信システムであって、異なる前記ＮＡＴ装置の配下の前記内部ネットワークに接続された前記端末装置間で、ＲＴＰ（Real-time Transport Protocol）／ＲＴＣＰ（RTP Control Protocol）に基づいた通信を行うための通信システムであって、前記端末装置は、前記ＮＡＴ装置を介して前記通信制御装置に第一パケットを送信する第一送信手段と、自身が送信した前記第一パケットを前記ＮＡＴ装置が転送した場合に前記ＮＡＴ装置に記憶された前記ポート番号である第二ポート番号と、通信相手の前記端末装置が送信した前記第一パケットを前記ＮＡＴ装置が転送した場合に前記ＮＡＴ装置に記憶された前記ポート番号である第一ポート番号とを少なくとも含む前記第二パケットを、前記通信制御装置から受信する第一受信手段と、前記第一受信手段において受信された前記第二パケットに含まれる前記第一ポート番号が奇数であるか偶数であるかを判断する第一判断手段と、前記第一判断手段において前記第一ポート番号が奇数であると判断された場合に、ＲＴＰに基づいたパケットであるＲＴＰパケットを、前記第一ポート番号に２ｎ−１（ｎは１以上の整数）加算したポート番号宛てに送信し、次いで、ＲＴＣＰに基づいたパケットであるＲＴＣＰパケットを、前記第一ポート番号に２ｎ加算したポート番号宛てに送信し、前記第一判断手段において前記第一ポート番号が偶数であると判断された場合には、前記第一ポート番号に２ｎ加算したポート番号宛てに前記ＲＴＰパケットを送信し、次いで、前記第一ポート番号に２ｎ＋１加算したポート番号宛てに前記ＲＴＣＰパケットを送信する第三送信手段とを備え、前記通信制御装置は、少なくとも二つの前記端末装置の其々から送信された前記第一パケットを受信する第二受信手段と、前記第二受信手段において受信された前記第一パケットに基づいて、前記第二パケットを前記少なくとも二つの端末装置の其々に対して送信する第二送信手段とを備えている。
【００１４】
第二態様に係る通信システムでは、偶数と奇数の連続したポート番号をＲＴＰパケット及びＲＴＣＰパケットの宛先ポート番号に割り当てることができる。これによって端末装置は、他の端末装置との間でＲＴＰ／ＲＴＣＰに基づいた通信を行うことができる。
【００１５】
本発明の第三態様に係る端末装置では、ＮＡＴ機能を備えたＮＡＴ装置であって、配下の内部ネットワーク側から外部ネットワーク側に向かう方向のパケットを受信した場合に、変換後のポート番号に1ずつ加算し、算出された前記ポート番号を、転送を許可するポート番号の履歴情報として記憶するＮＡＴ装置の配下の内部ネットワークに接続される端末装置であって、前記外部ネットワークに接続する通信制御装置と通信を行うことによって、異なる前記ＮＡＴ装置の配下の前記内部ネットワークに接続された前記端末装置間で、ＲＴＰ（Real-time Transport Protocol）／ＲＴＣＰ（RTP Control Protocol）に基づいた通信を行う端末装置であって、前記ＮＡＴ装置を介して前記通信制御装置に第一パケットを送信する第一送信手段と、自身が送信した前記第一パケットを前記ＮＡＴ装置が転送した場合に前記ＮＡＴ装置に記憶された前記ポート番号である第二ポート番号と、通信相手の前記端末装置が送信した前記第一パケットを前記ＮＡＴ装置が転送した場合に前記ＮＡＴ装置に記憶された前記ポート番号である第一ポート番号とを少なくとも含む前記第二パケットを、前記通信制御装置から受信する第一受信手段と、前記第一受信手段において受信された前記第二パケットに含まれる前記第一ポート番号が奇数であるか偶数であるかを判断する第一判断手段と、前記第一判断手段において前記第一ポート番号が奇数であると判断された場合に、ＲＴＰに基づいたパケットであるＲＴＰパケットを、前記第一ポート番号に２ｎ−１（ｎは１以上の整数）加算したポート番号宛てに送信し、次いで、ＲＴＣＰに基づいたパケットであるＲＴＣＰパケットを、前記第一ポート番号に２ｎ加算したポート番号宛てに送信し、前記第一判断手段において前記第一ポート番号が偶数であると判断された場合には、前記第一ポート番号に２ｎ加算したポート番号宛てに前記ＲＴＰパケットを送信し、次いで、前記第一ポート番号に２ｎ＋１加算したポート番号宛てに前記ＲＴＣＰパケットを送信する第三送信手段とを備えている。
【００１６】
第三態様に係る端末装置では、偶数と奇数の連続したポート番号をＲＴＰパケット及びＲＴＣＰパケットの宛先ポート番号に割り当てることができる。これによって端末装置は、他の端末装置との間でＲＴＰ／ＲＴＣＰに基づいた通信を行うことができる。
【図面の簡単な説明】
【００１７】
【図１】通信システム１を示す模式図である。
【図２】通信制御装置２の電気的構成を示すブロック図である。
【図３】ＮＡＴ装置５の電気的構成を示すブロック図である。
【図４】端末装置８の電気的構成を示すブロック図である。
【図５】端末装置処理を示すフローチャートである。
【図６】発呼側端末処理を示すフローチャートである。
【図７】発呼側端末処理を示すフローチャートである。
【図８】被呼側端末処理を示すフローチャートである。
【図９】被呼側端末処理を示すフローチャートである。
【図１０】通信制御処理を示すフローチャートである。
【図１１】端末装置８間の通信を示す通信シーケンス図である。
【図１２】端末装置８間の通信を示す通信シーケンス図である。
【図１３】変形例における発呼側端末処理を示すフローチャートである。
【図１４】変形例における発呼側端末処理を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明に係る通信システム１について、図面を参照して説明する。これらの図面は、本発明が採用しうる技術的特徴を説明するために用いられるものである。記載されている端末の構成、各種処理のフローチャートなどは、それのみに限定する趣旨ではなく、単なる説明例である。
【００１９】
図１を参照し、通信システム１の概要について説明する。通信システム１は、通信制御装置２、端末装置６，７（以下、これらを区別しない場合、「端末装置８」という。）、及びＮＡＴ装置３，４（以下、これらを区別しない場合、「ＮＡＴ装置５」という。）を少なくとも備えている。通信制御装置２とＮＡＴ装置５とは、インターネット９に接続している。ＮＡＴ装置５は、配下のＬＡＮ１１，１２（以下、これらを区別しない場合、「ＬＡＮ１３」という。）に接続している。端末装置８は、ＬＡＮ１３に接続している。図１に示す例では、ＮＡＴ装置３の配下のＬＡＮ１１に端末装置６が接続している。ＮＡＴ装置４の配下のＬＡＮ１２に端末装置７が接続している。
【００２０】
通信制御装置２は、端末装置８間での通信を可能とするために必要な情報を、端末装置８に提供する。通信制御装置２としては、例えば呼制御サーバやＳＴＵＮサーバが使用できる。端末装置８は、通信制御装置２から提供される情報に基づいて、他の端末装置８との間で通信を行う。端末装置８としては、例えばＰＣ（パーソナルコンピュータ）が使用できる。
【００２１】
ＮＡＴ装置５は、ＮＡＴ（Network Address Translation）機能を備えた装置である。ＮＡＴ装置５は、ＬＡＮ１３側からインターネット９側に向かう方向のパケットを端末装置８から受信した場合に、パケットの送信元ＩＰアドレスとポート番号とを変換する。変換後のポート番号は、履歴情報としてＮＡＴ装置５に記憶される。記憶されたポート番号は、インターネット９側からＬＡＮ１３側に向かう方向のパケットを受信した場合において、該パケットをＬＡＮ１３側に転送するか否かを判断する場合に使用される。インターネット９側から受信したパケットの宛先ポート番号と同じポート番号が、履歴情報として記憶されている場合、受信したパケットをＬＡＮ１３側に転送する。一方、インターネット９側から受信したパケットの宛先ポート番号と同じポート番号が、履歴情報として記憶されていない場合、受信したパケットはＬＡＮ１３側に転送しない。このようにして、ＬＡＮ１３側に不特定者がアクセスできないようにしている。なお本実施の形態では、ＮＡＴ装置５がパケットのポート番号を変換する場合、ポート番号を１ずつ加算することによって得られるポート番号が割り当てられるものとする。
【００２２】
なおＮＡＴ装置５としては、ＮＡＴ種別がＣｏｎｅ  ＮＡＴやＳｙｍｍｅｔｒｉｃ  ＮＡＴであるＮＡＴ装置が使用できる。
【００２３】
本実施の形態では、異なるＮＡＴ装置５の配下のＬＡＮ１３に接続された端末装置８間で、ＲＴＰ（Real-time Transport Protocol）／ＲＴＣＰ（RTP Control Protocol）に基づいた通信が行われる。例えば、ＮＡＴ装置３の配下のＬＡＮ１１に接続された端末装置６と、ＮＡＴ装置４の配下のＬＡＮ１２に接続された端末装置７との間で、ＲＴＰ／ＲＴＣＰに基づいた通信が行われる。
【００２４】
ＲＴＰは、音声や動画などのデータストリームをリアルタイムに配送する為のデータ転送プロトコルである。ＲＴＣＰは、ＲＴＰでデータを送受信する為のセッションを制御するプロトコルである。ＲＴＰ／ＲＴＣＰを使用したデータの送受信を行うためには、（１）ＲＴＰパケットの宛先ポート番号は偶数が使用されること、（２）ＲＴＣＰパケットの宛先ポート番号は、ＲＴＰパケットの宛先ポート番号に１加算した奇数が使用されること、という条件を満たす必要がある。
【００２５】
本実施の形態では、端末装置８間でのＲＴＰ／ＲＴＣＰに基づいた通信に際し、通信制御装置２及び端末装置８とが所定の通信を行う。この通信によって端末装置８は、ＲＴＰパケットとＲＴＣＰパケットとにそれぞれ割り当てる宛先ポート番号を特定する。端末装置８は、所謂「ＮＡＴ越え」の問題を解消しつつ、他の端末装置８との間でＲＴＰ／ＲＴＣＰに基づいた通信を行うことができる。
【００２６】
なお、図１におけるインターネット９が、本発明の「外部ネットワーク」に相当し、ＬＡＮ１３が本発明の「内部ネットワーク」に相当する。なお本発明は、外部ネットワークとしてインターネット９の他に従来周知の様々なネットワーク（ＬＡＮ、ＷＡＮ、専用回線など）が使用できる。同様に、内部ネットワークとしてＬＡＮ１３の他に従来周知のネットワーク（インターネット、ＷＡＮ、専用回線など）が使用できる。
【００２７】
図２を参照し、通信制御装置２の電気的構成について説明する。通信制御装置２は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ＨＤＤ２４を備えている。ＣＰＵ２１は、ＮＡＴ装置５や端末装置８との通信を制御する。ＲＯＭ２２には、Ｂｏｏｔプログラムや初期設定パラメータが少なくとも記憶される。ＲＡＭ２３には、ＣＰＵ２１の処理時に発生する一時的なデータが少なくとも記憶される。ＨＤＤ２４は、ＣＰＵ２１のプログラムが少なくとも記憶される。ＣＰＵ２１は、ＲＯＭ２２、ＲＡＭ２３、及びＨＤＤ２４と電気的に接続している。ＣＰＵ２１は、ＲＯＭ２２、ＲＡＭ２３、及びＨＤＤ２４の記憶領域にアクセスできる。
【００２８】
通信制御装置２は、入力ドライバ２５を備えている。入力ドライバ２５は、キーボード２５１を介して入力された情報を検出する。ＣＰＵ２１は、入力ドライバ２５と電気的に接続している。入力ドライバ２５は、キーボード２５１と電気的に接続する。ＣＰＵ２１は、キーボード２５１を介して入力された情報を認識できる。通信制御装置２は、表示ドライバ２６を備えている。表示ドライバ２６は、ディスプレイ２６１に像を表示させるための制御を行う。ＣＰＵ２１は、表示ドライバ２６と電気的に接続している。表示ドライバ２６は、ディスプレイ２６１と電気的に接続する。ＣＰＵ２１は、ディスプレイ２６１に所望の像を表示させることができる。
【００２９】
通信制御装置２は、通信モジュール２７を備えている。通信モジュール２７は、インターネット９を介した通信を可能とする。ＣＰＵ２１は、通信モジュール２７と電気的に接続している。ＣＰＵ２１は、インターネット９を介して通信を行うことができる。通信制御装置２は、ディスクドライブ２８を備えている。ディスクドライブ２８は、記憶媒体２８１に記憶された情報にアクセスする為の駆動装置である。ＣＰＵ２１は、ディスクドライブ２８と電気的に接続している。ＣＰＵ２１は、ディスクドライブ２８に挿入された記憶媒体２８１に記憶された情報にアクセスできる。記憶媒体２８１には、例えば、ＣＰＵ２１が実行するプログラムが記憶される。記憶媒体２８１の導入時には、プログラムが記憶媒体２８１からＨＤＤ２４にセットアップされる。
【００３０】
図３を参照し、ＮＡＴ装置５の電気的構成について説明する。ＮＡＴ装置５は、ＣＰＵ５１、ＲＯＭ５２、ＲＡＭ５３、フラッシュメモリ５７を備えている。ＣＰＵ５１は、通信制御装置２や端末装置８との通信を制御する。ＲＯＭ５２には、ＣＰＵ５１のプログラムが少なくとも記憶される。ＲＡＭ５３には、ＣＰＵ５１の処理時に発生する一時的なデータが少なくとも記憶される。フラッシュメモリ５７には、ポート番号が履歴情報として記憶される。ＣＰＵ５１は、ＲＯＭ５２、ＲＡＭ５３、及びフラッシュメモリ５７と電気的に接続している。ＣＰＵ５１は、ＲＯＭ５２、ＲＡＭ５３、及びフラッシュメモリ５７の記憶領域にアクセスできる。
【００３１】
ＮＡＴ装置５は、表示部５４を備えている。表示部５４は、ＮＡＴ装置５の状態等を表示することができる。ＣＰＵ５１は、表示部５４と電気的に接続している。ＣＰＵ５１は、表示部５４に所望の情報を表示させることができる。表示部５４としては、例えばＬＥＤが使用できる。ＮＡＴ装置５は、入力部５５を備えている。入力部５５は、ユーザによるＮＡＴ装置５への入力操作を受け付ける。ＣＰＵ５１は、入力部５５と電気的に接続している。ＣＰＵ５１は、入力部５５を介して入力された情報を認識できる。入力部５５としては、例えばスイッチやタッチセンサが使用できる。
【００３２】
ＮＡＴ装置５は、通信モジュール５８を備えている。通信モジュール５８は、インターネット９を介した通信を可能とする。ＣＰＵ５１は、通信モジュール５８と電気的に接続している。ＣＰＵ５１は、インターネット９を介して通信を行うことができる。ＮＡＴ装置５は、通信モジュール５９を備えている。通信モジュール５９は、ＬＡＮ１３を介した通信を可能とする。ＣＰＵ５１は、通信モジュール５９と電気的に接続している。ＣＰＵ５１は、ＬＡＮ１３を介して通信を行うことができる。
【００３３】
図４を参照し、端末装置８の電気的構成について説明する。端末装置８は、ＣＰＵ８１、ＲＯＭ８２、ＲＡＭ８３、ＨＤＤ８４を備えている。ＣＰＵ８１は、ＮＡＴ装置５や通信制御装置２との通信を制御する。ＲＯＭ８２には、Ｂｏｏｔプログラムや初期パラメータが少なくとも記憶される。ＲＡＭ８３は、ＣＰＵ８１の処理時に発生する一時的なデータが少なくとも記憶される。ＨＤＤ８４は、ＣＰＵ８１のプログラムが少なくとも記憶される。ＣＰＵ８１は、ＲＯＭ８２、ＲＡＭ８３、及びＨＤＤ８４と電気的に接続している。ＣＰＵ８１は、ＲＯＭ８２、ＲＡＭ８３、及びＨＤＤ８４の記憶領域にアクセスできる。
【００３４】
端末装置８は、入力ドライバ８５を備えている。入力ドライバ８５は、キーボード８５１を介して入力された情報を検出する。ＣＰＵ８１は、入力ドライバ８５と電気的に接続している。入力ドライバ８５は、キーボード８５１と電気的に接続する。ＣＰＵ８１は、キーボード８５１を介して入力された情報を認識できる。端末装置８は、表示ドライバ８６を備えている。表示ドライバ８６は、ディスプレイ８６１に像を表示させるための制御を行う。ＣＰＵ８１は、表示ドライバ８６と電気的に接続している。表示ドライバ８６は、ディスプレイ８６１と電気的に接続する。ＣＰＵ８１は、ディスプレイ８６１に所望の像を表示させることができる。
【００３５】
端末装置８は、通信モジュール８７を備えている。通信モジュール８７は、ＬＡＮ１３を介した通信を可能とする。ＣＰＵ８１は、通信モジュール８７と電気的に接続している。ＣＰＵ８１は、ＬＡＮ１３を介して通信を行うことができる。端末装置８は、ディスクドライブ８８を備えている。ディスクドライブ８８は、記憶媒体８８１に記憶された情報にアクセスする為の駆動装置である。ＣＰＵ８１は、ディスクドライブ８８と電気的に接続している。ＣＰＵ８１は、ディスクドライブ８８に挿入された記憶媒体８８１に記憶された情報にアクセスできる。記憶媒体８８１には、例えば、ＣＰＵ８１が実行するプログラムが記憶される。記憶媒体８８１の導入時には、プログラムが記憶媒体８８１からＨＤＤ８４にセットアップされる。
【００３６】
図５〜図９を参照し、端末装置８のＣＰＵ８１において実行される端末装置処理について説明する。端末装置処理は、端末装置８の電源が投入された場合に、ＣＰＵ８１において起動され実行される。なお端末装置８は、端末装置処理が実行されるに際し、事前に通信制御装置２のＩＰアドレスを認識しているものとする。また、端末装置８と直接接続するＮＡＴ装置５には、端末装置８と通信制御装置２とが通信を行うためのポート番号が履歴情報として既に記憶されているものとする。通信制御装置２は、ＮＡＴ装置５に履歴情報として記憶されているポート番号を認識しているものとする。また通信制御装置２は、ＮＡＴ装置５の種別（Full Cone NAT、Address-Restricted Cone NAT、Port-Restricted Cone NAT、Symmetric NATのいずれか）や、ＮＡＴ装置５がパケットのポート番号を変換する場合においてポート番号に加算される値（以下「ポート幅」という。）を認識しているものとする。このため端末装置処理では、端末装置８と通信制御装置２とが通信を開始させるために必要な通信処理は省略されている。
【００３７】
図５に示すように、端末装置処理が起動されると、他の端末装置との通信を開始させるための操作がキーボード８５１（図４参照）を介して行われたかが判断される（Ｓ１１）。ユーザによってキーボード８５１が操作され、他の端末装置との通信を開始させる指示がなされた場合（Ｓ１１：ＹＥＳ）、発呼側の端末装置８（「発呼側端末」という。）として駆動するために、発呼側端末処理（Ｓ１３、図６、図７参照）が実行される。発呼側端末処理の詳細は後述する。発呼側端末処理が終了した後、Ｓ１１の処理に戻り、上述の処理が繰り返し実行される。
【００３８】
キーボード８５１が操作されない場合（Ｓ１１：ＮＯ）、発呼側端末から送信される接続要求パケット（後述）を受信したかが判断される（Ｓ１５）。発呼側端末から接続要求パケットを受信した場合（Ｓ１５：ＹＥＳ）、接続要求パケットに含まれているＮＡＴ情報が取得される。そして、被呼側の端末装置８（「被呼側端末」という。）として駆動するために、被呼側端末処理（Ｓ１７、図８、図９参照）が実行される。被呼側端末処理の詳細は後述する。被呼側端末処理が終了した後、Ｓ１１の処理に戻り、上述の処理が繰り返し実行される。発呼側端末から接続要求パケットを受信していない場合（Ｓ１５：ＮＯ）、Ｓ１１にの処理に戻り、上述の処理が繰り返し実行される。
【００３９】
発呼側端末処理について、図６及び図７を参照して説明する。以下、発呼側端末が図１における端末装置６に相当し、被呼側端末が図１における端末装置７に相当するものとして説明する。
【００４０】
図６に示すように、発呼側端末処理では、はじめに、ポート番号を用いた通信を行うためにソケットが作成される（Ｓ２１）。一つのソケットに一つのポート番号が割り当てられる。Ｓ２１の処理では、通信制御装置２との通信用、及びポート調整パケット（詳細後述）通信用の合計二つのソケットが作成される。以下の説明では、通信制御装置２との通信用のソケットを「第一ソケット」という。ポート調整パケット通信用のソケットを「第二ソケット」という。次いで、作成されたソケットに対してポート番号が割り当てられる（Ｓ２３）。第一ソケットに対して偶数のポート番号が割り当てられ、第二ソケットに対して、第一ソケットに割り当てたポート番号に１加算した奇数のポート番号が割り当てられる。
【００４１】
なお本実施の形態では、第一ソケット及び第二ソケットに対して上述のようにポート番号を割り当てているが、本発明はこの方法に限定されず、ランダムなポート番号を割り当ててもよい。
【００４２】
第一ソケットを使用し、通信制御装置２に対して、端末装置７との通信開始を要求する接続要求パケットが送信される（Ｓ２５）。送信された接続要求パケットは、ＮＡＴ装置３を経由して通信制御装置２に到達する。ＮＡＴ装置３では、接続要求パケットが転送された場合に、接続要求パケットの送信元ポート番号が変換される。変換後の送信元ポート番号は、ポート番号の履歴情報として、ＮＡＴ装置３のフラッシュメモリ５７に記憶される。
【００４３】
通信制御装置２では、接続要求パケットが受信される。通信制御装置２では、受信した接続要求パケットの送信元ＩＰアドレス及び送信元ポート番号が、ＮＡＴ種別及びポート幅とともに、ＮＡＴ装置３のＮＡＴ情報として接続要求パケットに付加される。情報が付加された接続要求パケットが、端末装置７に対して転送される（Ｓ１０７、図１０参照）。通信制御装置２では、端末装置７から送信される接続応答パケット（Ｓ６５、図８参照）が受信される（Ｓ１０９、図１０参照）。通信制御装置２では、端末装置６から受信した接続要求パケットと、端末装置７から受信した接続応答パケットとから、ＮＡＴ装置３、４に履歴情報として記憶されているポート番号、及び、ＮＡＴ装置３、４のＩＰアドレスが少なくとも取得される（Ｓ１１１、Ｓ１１３、図１０参照）。取得されたこれらの情報と、ＮＡＴ装置３，４のＮＡＴ種別及びポート幅とを含むＮＡＴ情報パケットが、通信制御装置２から端末装置６に対して送信される（Ｓ１１７、図１０参照）。
【００４４】
端末装置６では、通信制御装置２から送信されたＮＡＴ情報パケットを、ＮＡＴ装置３を介して受信したかが監視される（Ｓ２７）。ＮＡＴ情報パケットを受信していない場合（Ｓ２７：ＮＯ）、Ｓ２７の処理に戻り、上述の処理が繰り返し実行される。ＮＡＴ情報パケットを受信した場合（Ｓ２７：ＹＥＳ）、ＮＡＴ情報に含まれているＮＡＴ装置３、４のポート幅が参照される（Ｓ２８）。ポート幅が「１」でない場合（Ｓ２８：ＮＯ）、端末装置６は端末装置７とＲＴＰ／ＲＴＣＰに基づいた通信を行うことができないので、そのまま端末装置処理（図５参照）に戻る。一方、ポート幅が「１」である場合（Ｓ２８：ＹＥＳ）、Ｓ２９の処理に進む。
【００４５】
Ｓ２９の処理では、ＮＡＴ情報パケットに含まれている情報のうち、ＮＡＴ装置３、４に記憶されたポート番号が取得される（Ｓ２９）。自身と直接接続するＮＡＴ装置３に記憶されたポート番号が偶数であるかが判断される（Ｓ３１）。ポート番号が偶数である場合（Ｓ３１：ＹＥＳ）、ＮＡＴ装置３の履歴情報に奇数のポート番号を記憶させるために、ポート調整パケットが第二ソケットを使用して通信制御装置２に対して送信される（Ｓ３３）。ポート調整パケットは、ＮＡＴ装置３の履歴情報に記憶されているポート番号が更新されて奇数のポート番号が記憶されるように、端末装置７から送信される。そしてＳ３５の処理に進む。ポート調整パケットをＮＡＴ装置３が受信した場合、送信元のポート番号が異なるパケットであるので、記憶されているポート番号にポート幅「１」が加算されて更新され、ポート調整パケットに割り当てられる。そしてポート調整パケットは、ＮＡＴ装置３において転送され、通信制御装置２に到達する。一方、取得されたポート番号が奇数である場合（Ｓ３１：ＮＯ）、そのままＳ３５に進む。
【００４６】
次いで、Ｓ２１において作成されたポート調整パケット通信用のソケット（第二ソケット）がクローズされる。新たに、ＲＴＰプロトコルに基づく端末装置７との通信用のソケットを、及び、ＲＴＣＰプロトコルに基づく端末装置７との通信用のソケットが作成される。以下の説明では、ＲＴＰプロトコルに基づく通信用のソケットを「第三ソケット」という。ＲＴＣＰプロトコルに基づく端末装置７との通信用のソケットを「第四ソケット」という。作成された第三ソケット及び第四ソケットに対してポート番号が割り当てられる（Ｓ３５）。其々に割り当てられるポート番号は、偶数から始まる連続した値とされる。
【００４７】
なお本実施の形態では、第三ソケット及び第四ソケットに対して上述のようにポート番号を割り当てているが、本発明はこの方法に限定されず、ランダムなポート番号を割り当ててもよい。しかしながらＮＡＴ装置が、端末装置の送信元ポート番号をそのまま履歴情報として記憶する動作を行う場合には、上述のように、偶数／奇数の連続したポート番号を割り当てることによって、ＮＡＴ装置に偶数／奇数の連続したポート番号を記憶させることが可能となる。
【００４８】
端末装置７から送信される（Ｓ８５、図９参照）終了通知パケットを受信したかが監視される（Ｓ３７）。終了通知パケットを受信していない場合（Ｓ３７：ＮＯ）、Ｓ３７に戻り、終了通知パケットの受信が継続して監視される。終了通知パケットを受信した場合（Ｓ３７：ＹＥＳ）、Ｓ３９の処理（図７参照）に進む。
【００４９】
図７に示すように、Ｓ３９〜Ｓ４３の処理では、通信相手方である端末装置７と直接接続するＮＡＴ装置４に記憶されているポート番号に基づいて、ＲＴＰパケット及びＲＴＣＰパケットを送信する場合の宛先ポート番号が特定される。ＲＴＰパケットの宛先ポート番号を偶数とし、ＲＴＣＰパケットの宛先ポート番号を、ＲＴＰパケットの宛先ポート番号に１加算した奇数とするために、以下の処理が実行される。
【００５０】
ＮＡＴ装置４に記憶されているポート番号が、偶数であるかが判断される（Ｓ３９）。偶数である場合（Ｓ３９：ＹＥＳ）、ＮＡＴ装置４に記憶されているポート番号に２加算した値を、ＲＴＰパケットの宛先ポート番号とする（Ｓ４１）。またＲＴＣＰパケットの宛先ポート番号を、ＲＴＰパケットの宛先ポート番号にさらに１加算した値とする。そしてＳ４５の処理に進む。一方、ＮＡＴ装置４に記憶されているポート番号が奇数である場合（Ｓ３９：ＮＯ）、ＮＡＴ装置４に記憶されているポート番号に１加算した値を、ＲＴＰパケットの宛先ポート番号とする（Ｓ４３）。またＲＴＣＰパケットの宛先ポート番号を、ＲＴＰパケットの宛先ポート番号にさらに１加算した値とする。そしてＳ４５の処理に進む。
【００５１】
なお上述では、ＮＡＴ装置４に記憶されているポート番号が偶数である場合に２加算し、奇数である場合に１加算する算出方法とした。しかしながら本発明はこの方法に限定されない。ＲＴＰパケット／ＲＴＣＰパケットの宛先ポート番号が偶数／奇数の連続した値となればよいので、例えば、ＮＡＴ装置４に記憶されているポート番号が偶数である場合には、「２ｎ」（ｎは１以上の整数）加算した値をＲＴＰパケットの宛先ポート番号とし、「２ｎ＋１」加算した値をＲＴＣＰパケットの宛先ポート番号としてもよい。同様に、奇数である場合には、「２ｎ−１」加算した値をＲＴＰパケットの宛先ポート番号とし、「２ｎ」加算した値をＲＴＣＰパケットの宛先ポート番号としてもよい。
【００５２】
Ｓ４５の処理では、端末装置７から送信されるＲＴＰパケット及びＲＴＣＰパケットを、ＮＡＴ装置３を介して受信可能なように、ＮＡＴ装置３にポート番号を記憶させる。Ｓ３５（図６参照）において準備された第三ソケット及び第四ソケットが使用される。第三ソケットを使用して、端末装置７宛てにパンチパケット（一回目）が送信される。パンチパケット（一回目）の宛先ポート番号は、Ｓ３９〜Ｓ４５の処理によって特定されたＲＴＰパケットの宛先ポート番号とされる。次いで、第四ソケットを使用して、端末装置７宛てにパンチパケット（二回目）が送信される。パンチパケット（二回目）の宛先ポート番号は、Ｓ３９〜Ｓ４５の処理によって特定されたＲＴＣＰパケットの宛先ポート番号とされる（Ｓ４５）。
【００５３】
二つのパケットが、ＮＡＴ装置３を経由して端末装置７に対して送信される。ＮＡＴ装置３の履歴情報にポート番号を記憶させるために送信されるこれらのパケットを、以下「パンチパケット」という。二つのパンチパケットは、異なるポート番号から送信されているので、ＮＡＴ装置３は、記憶されているポート番号を更新し、双方のパンチパケットに割り当てる。割り当てられたポート番号は、履歴情報としてＮＡＴ装置３のフラッシュメモリ５７に記憶される。なお端末装置７では、これらのポート番号がＲＴＰパケット及びＲＴＣＰパケットの宛先ポート番号として設定される（後述）。
【００５４】
パンチパケットが送信された後、端末装置７から送信されるパンチ応答パケットを受信したかが監視される（Ｓ４７）。パンチ応答パケットを受信した場合（Ｓ４７：ＹＥＳ）、ＲＴＰパケット及びＲＴＣＰパケットの通信が可能な状態となっていることになる。また後述するように、端末装置７側でも同様の処理が実行され、ＲＴＰパケット及びＲＴＣＰパケットの通信が可能な状態となっている。以後、ＲＴＰ／ＲＴＣＰに基づく通信が端末装置６と端末装置７との間で実行される（Ｓ４９）。ＲＴＰパケット及びＲＴＣＰパケットの宛先ポート番号は、Ｓ４１及びＳ４３において特定されたポート番号に設定される。
【００５５】
ユーザがキーボード８５１を介して何ら入力操作を行わない状態では（Ｓ５３：ＮＯ）、継続してＲＴＰ／ＲＴＣＰに基づく通信が実行される。一方、キーボード８５１を介して通信を終了させる指示が入力された場合（Ｓ５３：ＹＥＳ）、ＲＴＰ／ＲＴＣＰに基づく通信を終了させる（Ｓ５５）。そして発呼側端末処理を終了し、端末装置処理（図５参照）に戻る。
【００５６】
一方、パンチパケット送信後、所定時間が経過してもパンチ応答パケットを受信できない場合（Ｓ４７：ＮＯ）、通信エラーが発生しているので、端末装置７との間で継続して通信を行うことができない。この場合、ユーザに通信エラーが発生したことを通知するために、ディスプレイ８６１にエラー通知を表示し、通信を終了させるために必要な処理が行われる（Ｓ５１）。そして発呼側端末処理を終了し、端末装置処理（図５参照）に戻る。
【００５７】
被呼側端末処理について、図８及び図９を参照して説明する。なお、発呼側端末処理と同一の処理部分については、説明を簡略化する。被呼側端末処理では、はじめにソケットが２つ（第一ソケット、第二ソケット）作成される（Ｓ６１）。通信制御装置２との通信用のソケットとして第一ソケットが使用される。ポート調整パケット通信用のソケットとして第二ソケットが使用される。次いで、作成されたソケットにポート番号が割り当てられる（Ｓ６３）。
【００５８】
第一ソケットを使用し、通信制御装置２に対して、接続要求パケットを受信したことを示す接続応答パケットが送信される（Ｓ６５）。送信された接続応答パケットは、ＮＡＴ装置４を経由して、通信制御装置２に到達する。ＮＡＴ装置４では、接続応答パケットが転送された場合に、接続応答パケットの送信元ポート番号が変換される。変換後の送信元ポート番号は、転送可能なポート番号の履歴情報として、ＮＡＴ装置４のフラッシュメモリ５７に記憶される。
【００５９】
通信制御装置２では、接続応答パケットが受信される（Ｓ１０９、図１０参照）。通信制御装置２では、ＮＡＴ情報パケットが端末装置７に対して送信される（Ｓ１２１、図１０参照）。
【００６０】
端末装置７では、通信制御装置２から送信されるＮＡＴ情報パケットを受信したかが監視される（Ｓ６７）。受信していない場合（Ｓ６７：ＮＯ）、Ｓ６７に戻り、上述の処理が繰り返される。ＮＡＴ情報パケットを受信した場合（Ｓ６７：ＹＥＳ）、Ｓ１５（図５参照）において接続要求パケットとともに受信したＮＡＴ情報と、今回受信したＮＡＴ情報とに含まれているＮＡＴ装置３、４のポート幅が参照される（Ｓ６８）。ポート幅が「１」でない場合（Ｓ６８：ＮＯ）、そのまま端末装置処理（図５参照）に戻る。ポート幅が「１」である場合（Ｓ６８：ＹＥＳ）、Ｓ６９の処理に進む。
【００６１】
ＮＡＴ装置３、４に記憶されたポート番号が取得される（Ｓ６９）。自身と直接接続するＮＡＴ装置４に記憶されたポート番号が偶数であるかが判断され（Ｓ７１）、偶数である場合には（Ｓ７１：ＹＥＳ）、ポート調整パケットが第二ソケットを使用して通信制御装置２に対して送信される（Ｓ７３）。そしてＳ７５の処理に進む。これに対し、取得されたポート番号が奇数である場合（Ｓ７１：ＮＯ）、そのままＳ７５に進む。Ｓ７５では、新たに第三ソケット及び第四ソケットが作成される。作成された第三ソケット及び第四ソケットに対してポート番号が割り当てられる（Ｓ７５）。そしてＳ７７の処理（図９参照）に進む。
【００６２】
図９に示すように、Ｓ７７〜Ｓ８１の処理では、通信相手方の端末装置６と直接接続するＮＡＴ装置３に記憶されたポート番号に基づいて、ＲＴＰパケット及びＲＴＣＰパケットを送信する場合の宛先ポート番号が特定される。ＮＡＴ装置３に記憶されたポート番号が偶数であるかが判断される（Ｓ７７）。偶数である場合（Ｓ７７：ＹＥＳ）、該ポート番号に２加算した値を、ＲＴＰパケットの宛先ポート番号とする（Ｓ７９）。また、ＲＴＰパケットの宛先ポート番号にさらに１加算した値を、ＲＴＣＰパケットの宛先ポート番号とする。そしてＳ８３の処理に進む。一方奇数である場合（Ｓ７７：ＮＯ）、該ポート番号に１加算した値を、ＲＴＰパケットの宛先ポート番号とする（Ｓ８１）。また、ＲＴＰパケットの宛先ポート番号にさらに１加算した値を、ＲＴＣＰパケットの宛先ポート番号とする。そしてＳ８３の処理に進む。
【００６３】
なお本発明は上述の算出方法に限定されず、例えば、ＮＡＴ装置３に記憶されているポート番号が偶数である場合には、「２ｎ」（ｎは１以上の整数）加算し、奇数である場合に「２ｎ−１」加算する算出方法としてもよい。
【００６４】
Ｓ８３の処理では、端末装置６から送信されるＲＴＰパケット及びＲＴＣＰパケットを、ＮＡＴ装置４を介して受信可能なように、ＮＡＴ装置４にポート番号を記憶させる。通信時には、パケットが経由可能なルータの数に相当するＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖe）の小さいパケット（ＴＴＬ調整パケット）が使用される。ＴＴＬの値は、パケットがＮＡＴ装置４を通過し、且つＮＡＴ装置３に到達しないように調整される。ＴＴＬ調整パケットはＮＡＴ装置３に到達する前にＴＴＬが０となり、破棄される。ＴＴＬ調整パケットはＮＡＴ装置３に到達しないので、ＮＡＴ装置３の履歴情報を乱したり、ＮＡＴ装置３のフィルタリング機能が有効となったりすることを防止できる。
【００６５】
第三ソケットを使用して、端末装置６宛てにＴＴＬ調整パケット（一回目）が送信される。ＴＴＬ調整パケット（一回目）の宛先ポート番号は、Ｓ７７〜Ｓ８１の処理によって特定されたＲＴＰパケットの宛先ポート番号とされる。次いで、第四ソケットを使用して、端末装置６宛てにＴＴＬ調整パケット（二回目）が送信される。ＴＴＬ調整パケット（二回目）の宛先ポート番号は、Ｓ７７〜Ｓ８１の処理によって特定したＲＴＣＰパケットの宛先ポート番号とされる（Ｓ８３）。
【００６６】
二つのＴＴＬ調整パケットが、ＮＡＴ装置４を経由して端末装置６に対して送信される。ＮＡＴ装置４では、二つのＴＴＬ調整パケットを転送する場合に双方に割り当てたポート番号が、履歴情報としてフラッシュメモリ５７に記憶される。なお端末装置６では、これらのポート番号がＲＴＰパケット及びＲＴＣＰパケットの宛先ポート番号として設定されている（Ｓ４１，Ｓ４３、図７参照）。
【００６７】
ＴＴＬ調整パケットが送信された後、ＲＴＰ／ＲＴＣＰに基づく通信が可能になったことを端末装置６に対して通知するために、終了通知パケットが端末装置６に対して送信される（Ｓ８５）。終了通知パケットが送信された後、端末装置６から送信されるパンチパケットを受信したかが監視される（Ｓ８７）。パンチパケットは、ＴＴＬ調整パケットによってＮＡＴ装置４に記憶されたポート番号宛てに送信されるので、ＮＡＴ装置４を経由して端末装置７に届く。パンチパケットを受信した場合（Ｓ８７：ＹＥＳ）、端末装置６に対してパンチ応答パケットを送信する（Ｓ８９）。
【００６８】
パンチ応答パケットの送信後、端末装置７はＲＴＰパケット及びＲＴＣＰパケットの受信が可能な状態となっていることになる。また既述のように、発呼側端末側でも同様の処理が実行され、ＲＴＰパケット及びＲＴＣＰパケットの受信が可能な状態となっている。ＲＴＰ／ＲＴＣＰに基づく通信が端末装置６と端末装置７との間で実行される（Ｓ９３）。キーボード８５１を介して通信を終了させる指示が入力されたかが監視される（Ｓ９５）。終了指示が入力された場合（Ｓ９５：ＹＥＳ）、ＲＴＰ／ＲＴＣＰに基づく通信を終了させる（Ｓ９７）。そして被呼側端末処理を終了し、端末装置処理（図５参照）に戻る。
【００６９】
一方、終了通知パケットが送信された後、所定時間が経過してもパンチパケットを受信できない場合には（Ｓ８７：ＮＯ）、ユーザに通信エラーが発生したことを通知するために、ディスプレイ８６１にエラー通知を表示し、通信を終了させるために必要な処理が行われる（Ｓ９１）。そして被呼側端末処理を終了し、端末装置処理（図５参照）に戻る。
【００７０】
以上のようにして、端末装置６と端末装置７とはＲＴＰ／ＲＴＣＰに基づいた通信を行うことが可能となる。ＲＴＰ／ＲＴＣＰに基づいて通信を行うためには、ＲＴＰパケットの宛先ポート番号を偶数とし、ＲＴＣＰパケットの宛先ポート番号を、ＲＴＰパケットの宛先ポート番号に１加算した奇数としなければならない。そして、ＮＡＴ装置３、４がこれらのパケットを配下の端末装置８に転送するためには、連続した「偶数」「奇数」の値を履歴情報として記憶している必要がある。これに対し、上述のＳ３１（図６参照）、Ｓ３３（図６参照）、Ｓ７１（図８参照）、Ｓ７３（図８参照）の処理によって、ＮＡＴ装置３、４に記憶されるポート番号のうち最も新しい番号は奇数となる。従って、Ｓ４５において送信されるパンチパケットや、Ｓ８３において送信されるＴＴＬ調整パケットによって、ＮＡＴ装置３、４に連続した「偶数」「奇数」のポート番号が履歴情報として記憶される。端末装置６，７は、ＲＴＰパケット及びＲＴＣＰパケットの宛先ポート番号を、ＮＡＴ装置３、４に履歴情報として記憶されたポート番号とすることができる。これによって端末装置６，７は、ＲＴＰ／ＲＴＣＰに基づいた通信を行うことが可能となる。
【００７１】
図１０を参照し、通信制御装置２のＣＰＵ２１において実行される通信制御処理について説明する。通信制御処理は、通信制御装置２の電源が投入された場合に、ＣＰＵ２１において起動され実行される。なお通信制御装置２は、通信制御処理が実行されるに際し、事前にＮＡＴ装置５のＩＰアドレスを認識しているものとする。またＮＡＴ装置５には、通信制御装置２と端末装置８とが通信を行うために必要なポート番号が履歴情報として既に記憶されているものとする。通信制御装置２は、ＮＡＴ装置５に履歴情報として記憶されているポート番号を認識しているものとする。また通信制御装置２は、ＮＡＴ装置５の種別（Full Cone NAT、Address-Restricted Cone NAT、Port-Restricted Cone NAT、Symmetric NATのいずれか）やポート幅を認識しているものとする。このため、図１０に示す通信制御処理では、端末装置８と通信を開始するために必要な処理は省略されている。
【００７２】
図１０に示すように、通信制御処理が起動されると、端末装置６から接続要求パケットを受信したかが判断される（Ｓ１０１）。接続要求パケットを受信している場合（Ｓ１０１：ＹＥＳ）、接続要求パケットの送信元ＩＰアドレス、及び送信元ポート番号が取得される（Ｓ１０３）。取得された送信元ＩＰアドレスは、ＮＡＴ装置３のＩＰアドレスに相当する。送信元ポート番号は、ＮＡＴ装置３に履歴情報として記憶されたポート番号に相当する。取得された上述の情報が、ＮＡＴ装置３のＮＡＴ種別及びポート幅の情報とともに、受信した接続要求パケットに付加され、新たな接続要求パケットが作成される（Ｓ１０５）。作成された接続要求パケットは、端末装置７に対して送信される（Ｓ１０７）。そしてＳ１０１の処理に戻り、上述の処理が繰り返し実行される。
【００７３】
一方、端末装置６から接続要求パケットを受信していない場合（Ｓ１０１：ＮＯ）、端末装置７から接続応答パケットを受信したかが判断される（Ｓ１０９）。接続応答パケットを受信している場合（Ｓ１０９：ＹＥＳ）、Ｓ１０１において受信した接続要求パケットの送信元ＩＰアドレス、及び送信元ポート番号が取得される（Ｓ１１１）。取得された送信元ＩＰアドレスは、ＮＡＴ装置３のＩＰアドレスに相当する。送信元ポート番号は、ＮＡＴ装置３に履歴情報として記憶されたポート番号に相当する。また、受信した接続応答パケットの送信元ＩＰアドレス、及び送信元ポート番号が取得される（Ｓ１１３）。取得された送信元ＩＰアドレスは、ＮＡＴ装置４のＩＰアドレスに相当する。送信元ポート番号は、ＮＡＴ装置４に履歴情報として記憶されたポート番号に相当する。
【００７４】
Ｓ１１１及びＳ１１３において取得された情報と、ＮＡＴ装置３，４のＮＡＴ種別及びポート幅とを含むＮＡＴ情報パケットが作成される（Ｓ１１５）。作成されたＮＡＴ情報パケットは、端末装置６（接続要求パケット送信側）に対して送信される（Ｓ１１７）。また、Ｓ１１３において取得された情報を含むＮＡＴ情報パケットが作成される（Ｓ１１９）。作成されたＮＡＴ情報パケットは、端末装置７（接続要求パケット受信側）に対して送信される（Ｓ１２１）。そしてＳ１０１の処理に戻り、上述の処理が繰り返し実行される。
【００７５】
一方、端末装置７から接続応答パケットを受信していない場合（Ｓ１０９：ＮＯ）、端末装置７から終了通知パケットを受信したかが判断される（Ｓ１２３）。終了通知パケットを受信している場合（Ｓ１２３：ＹＥＳ）、終了通知パケットの宛先ＩＰアドレス及びポート番号が取得される（Ｓ１２５）。取得された宛先ＩＰアドレス及びポート番号に基づき、終了通知パケットが端末装置６に対して送信される（Ｓ１２７）。そしてＳ１０１に戻り、上述の処理が繰り返し実行される。
【００７６】
一方、端末装置７から終了通知パケットを受信していない場合（Ｓ１２３：ＮＯ）、その他のパケットを端末装置６，７から受信しているかが判断される（Ｓ１２９）。その他のパケットを受信している場合（Ｓ１２９：ＹＥＳ）、受信したパケットを破棄する（Ｓ１３１）。そしてＳ１０１の処理に戻り、上述の処理が繰り返し実行される。一方、何れのパケットも受信していない場合には（Ｓ１２９：ＮＯ）、そのままＳ１０１の処理に戻り、上述の処理が繰り返し実行される。
【００７７】
図１１及び図１２を参照し、通信制御装置２、ＮＡＴ装置３，４、及び端末装置６、７を介して実行される通信のシーケンスについて、既述のフローチャートを参照しつつ説明する。
【００７８】
端末装置６のキーボード８５１を介し、端末装置７との通信を開始させるための操作がなされた場合、端末装置６においてソケットが作成される（Ｓ２１、図６参照）。通信制御装置２との通信用として使用される第一ソケットに「１００００」、ポート調整パケット通信用として使用される第二ソケットに「１０００１」がポート番号として其々割り当てられる。
【００７９】
第一ソケット（ポート番号：１００００）を使用し、ＮＡＴ装置３を介して端末装置７に対して接続要求パケットが送信される（１０１、Ｓ２５（図６参照））。ＮＡＴ装置３において、接続要求パケットが通信制御装置２に対して転送される（１０３）。ＮＡＴ装置３において、送信元ポート番号が「１００００」から「２３４５６」に変更される。変換後の送信元ポート番号「２３４５６」が、ＮＡＴ装置３のフラッシュメモリ５７に記憶される（１０４）。
【００８０】
通信制御装置２では、端末装置６から接続要求パケットが受信される（１０５、Ｓ１０１（図１０参照））。受信した接続要求パケットに基づいて、ＮＡＴ装置３のＩＰアドレスとポート番号「２３４５６」が取得される（Ｓ１０３（図１０参照））。取得されたＩＰアドレス及びポート番号と、ＮＡＴ装置３のＮＡＴ種別及びポート幅の情報は、接続要求パケットに付加され、端末装置７に対して送信される（１０７、Ｓ１０７（図１０参照））。送信された接続要求パケットは、ＮＡＴ装置４において転送され（１０９）、端末装置７において受信される（１１１、Ｓ１５（図５参照））。
【００８１】
端末装置７においてソケットが作成される（Ｓ６１（図８参照））。第一ソケットに「２０００」、第二ソケットに「２００１」が其々割り当てられる。第一ソケット（ポート番号：２０００）を使用し、通信制御装置２に対してＮＡＴ装置４を介して接続応答パケットが送信される（１１３、Ｓ６５（図８参照））。ＮＡＴ装置４において、接続応答パケットが通信制御装置２に対して転送される（１１５）。ＮＡＴ装置４において、送信元ポート番号が「２０００」から「５４３２１」に変更される。変更後の送信元ポート番号が、ＮＡＴ装置４のフラッシュメモリ５７に記憶される（１１６）。
【００８２】
通信制御装置２において、接続応答パケットが受信される（１１７、Ｓ１０９（図１０参照））。ＮＡＴ装置３、４のＩＰアドレス、ポート番号、ＮＡＴ種別、及びポート幅の情報を含むＮＡＴ情報パケットが、ポート番号「２３４５６」を宛先ポート番号とし、ＮＡＴ装置３を介して端末装置６に対して送信され（１１９、Ｓ１１７（図１０参照））、端末装置６において受信される（１２３、Ｓ２７（図６参照））。また、ＮＡＴ装置４のＩＰアドレス、ポート番号、ＮＡＴ種別、及びポート番号を含むＮＡＴ情報が、ポート番号「５４３２１」を宛先ポート番号とし、ＮＡＴ装置４を介して端末装置７に対して送信され（１２１、Ｓ１２１（図１０参照））、端末装置７において受信される（１２５、Ｓ６７（図８参照））。
【００８３】
端末装置６では、ＮＡＴ情報に含まれているＮＡＴ装置３のポート番号の情報に基づいて、ポート調整パケットを送信するか否かが判断される（Ｓ３１（図６参照））。１０４において、ＮＡＴ装置３にはポート番号「２３４５６」（偶数）が履歴情報として記憶されている。この場合、ＮＡＴ装置３に履歴情報として奇数のポート番号を記憶させるために、ポート調整パケットが第二ソケット（ポート番号：１０００１）を使用してＮＡＴ装置３を介して通信制御装置２に対して送信される（１２７、Ｓ３３（図６参照））。ＮＡＴ装置３では、受信したポート調整パケットの送信元ポート番号が、１０３において受信した接続要求パケットの送信元ポート番号と異なるので、ポート調整パケットの送信元ポート番号が、「１０００１」から、「２３４５６」に１加算した「２３４５７」に変換される（１２９）。ＮＡＴ装置３には、ポート番号「２３４５７」が履歴情報として記憶される（１３０）。以上のようにして、ＮＡＴ装置３に記憶されるポート番号のうち最も新しい番号が奇数となるように調整される。
【００８４】
端末装置７でも同様に、ＮＡＴ情報に含まれているＮＡＴ装置４のポート番号の情報に基づいて、ポート調整パケットを送信するか否かが判断される（Ｓ７１（図８参照））。１１６において、ＮＡＴ装置４にはポート番号「５４３２１」（奇数）が履歴情報として記憶されている。この場合、ポート調整パケットは送信されない。
【００８５】
端末装置６において、第二ソケットがクローズされる。次いで、新たに第三ソケット及び第四ソケットを作成し、作成した第三ソケット及び第四ソケットに対してポート番号が割り当てられる（Ｓ３５（図６参照））。割り当てられるポート番号は、偶数から始まる連続した値とされる。第三ソケットに対して「１０００２」が割り当てられる。第四ソケットに対して「１０００３」が割り当てられる。
【００８６】
端末装置７において、第二ソケットがクローズされる。次いで、新たに第三ソケット及び第四ソケットを作成し、作成した第三ソケット及び第四ソケットに対してポート番号が割り当てられる（Ｓ７５（図８参照））。割り当てられるポート番号は、偶数から始まる連続した値とされる。第三ソケットに対して「２００２」が割り当てられる。第四ソケットに対して「２００３」が割り当てられる。
【００８７】
端末装置７において、ＲＴＰパケット及びＲＴＣＰパケットの宛先ポート番号が特定される（Ｓ７７〜Ｓ８１（図９参照））。１０４において、ＮＡＴ装置３にポート番号「２３４５６」（偶数）が記憶されているので、この値に２加算（Ｓ７９（図９参照））した「２３４５８」を、ＲＴＰパケットの宛先ポート番号とし、さらに１加算した「２３４５９」を、ＲＴＣＰパケットの宛先ポート番号とする。
【００８８】
第三ソケット（ポート番号：２００２）を使用してＴＴＬ調整パケット（一回目）が送信される（１３１、Ｓ８３（図９参照））。ＴＴＬ調整パケット（一回目）の宛先ポート番号は、特定されたＲＴＰパケットの宛先ポート番号（２３４５８）とされる。次いで、第四ソケット（ポート番号：２００３）を使用してＴＴＬ調整パケット（二回目）が送信される（１３３、Ｓ８３（図９参照））。ＴＴＬ調整パケット（二回目）の宛先ポート番号は、特定されたＲＴＣＰパケットの宛先ポート番号（２３４５９）とされる。
【００８９】
２つのＴＴＬ調整パケットは、ＮＡＴ装置４において転送される（１３５、１３７）。ＮＡＴ装置４では、ＴＴＬ調整パケット（一回目）の送信元ポート番号が、履歴情報として記憶されているポート番号のうち最も新しいポート番号「５４３２１」（１１５参照）に１加算した「５４３２２」に変換される（１３５）。変換後のポート番号「５４３２２」が履歴情報として記憶される（１３６）。また、ＴＴＬ調整パケット（二回目）の送信元ポート番号が、ポート番号「５４３２２」に１加算した「５４３２３」に変換される（１３７）。また、変換後のポート番号「５４３２３」が履歴情報として記憶される（１３８）。なお、いずれのパケットも、発呼側の端末である端末装置６に到達する前に、ＴＴＬが０となって破棄される（１３９、１４１）。
【００９０】
ＴＴＬ調整パケットが端末装置７から送信する段階では、ＮＡＴ装置３の履歴情報に「２３４５８」「２３４５９」は記憶されていない。このため、ＴＴＬ調整パケットがＮＡＴ装置３に届いても、ＮＡＴ装置３はＴＴＬ調整パケットを端末装置６に転送しない。ここで本実施の形態では、ＴＴＬ調整パケットのＴＴＬを小さな値としている。これによって、ＴＴＬ調整パケットがＮＡＴ装置３に届く前に破棄されるようにしている。
【００９１】
端末装置７からＮＡＴ装置３、４及び通信制御装置２を介して端末装置６に対して、終了通知パケットが送信される（１４３、Ｓ８５（図９参照））。通信制御装置２では、１０５において端末装置６から接続要求パケットを受信した場合の送信元ポート番号「２３４５６」が宛先ポート番号となるように、終了通知パケットの宛先ポート番号が変換される。通信制御装置２を経由した終了通知パケットは、端末装置６において受信される（１４５、Ｓ３７（図６参照））。
【００９２】
端末装置６において、ＲＴＰパケット及びＲＴＣＰパケットの宛先ポート番号が特定される（Ｓ３９〜Ｓ４３（図７参照））。ＮＡＴ装置４にポート番号「５４３２１」（奇数）が記憶されている（１１６）ので、この値に１加算（Ｓ４３（図７参照））した「５４３２２」を、ＲＴＰパケットの宛先ポート番号とし、さらに１加算した「５４３２３」を、ＲＴＣＰパケットの宛先ポート番号とする。なおこれらのポート番号は、端末装置７から送信されたＴＴＬ調整パケットによってＮＡＴ装置４に記憶された（１３６、１３８）ポート番号「５４３２２」「５４３２３」と一致する。
【００９３】
図１２に示すように、第三ソケットを使用してパンチパケット（一回目）が送信される（１５１、Ｓ４５（図７参照））。パンチパケット（一回目）の宛先ポート番号は、特定されたＲＴＰパケットの宛先ポート番号（５４３２２）とされる。次いで、第四ソケットを使用して、パンチパケット（二回目）が送信される（１５３、Ｓ４５（図７参照））。パンチパケット（二回目）の宛先ポート番号は、特定されたＲＴＣＰパケットの宛先ポート番号（５４３２３）とされる。
【００９４】
２つのパンチパケットがＮＡＴ装置３を経由する（１５５、１５７）。ＮＡＴ装置３では、パンチパケット（一回目）の送信元ポート番号が、履歴情報として記憶されているポート番号のうち最も新しいポート番号「２３４５７」（１３０（図１１参照））に１加算した「２３４５８」に変換される（１５５）。また、変換後のポート番号「２３４５８」が履歴情報として記憶される（１５４）。また、パンチパケット（二回目）の送信元ポート番号が、パンチパケット（１回目）の送信元ポート番号とされた「２３４５８」に１加算した「２３４５９」に変換される（１５７）。また、変換後のポート番号「２３４５９」が履歴情報として記憶される（１５６）。なおこれらのポート番号は、端末装置７において特定された（Ｓ７７〜Ｓ８１（図９参照））ＲＴＰパケットの宛先ポート番号「２３４５８」、及びＲＴＣＰパケットの宛先ポート番号「２３４５９」と一致する。
【００９５】
いずれのパンチパケットも、ＮＡＴ装置４に履歴情報として記憶されているポート番号「５４３２２」「５４３２３」宛てに送信しているので、ＮＡＴ装置４はこれらのパンチパケットを端末装置７に対して転送する（１５８、１５９）。
【００９６】
端末装置７において、パンチパケットが受信される（１６０、１６１、Ｓ８７（図９参照））。端末装置７は、パンチパケットの其々に対してパンチ応答パケットを送信する（１６３、１６５、Ｓ８９（図９参照））。パンチ応答パケットの宛先ポート番号は、Ｓ７７〜Ｓ８１（図９参照）において特定されたＲＴＰパケットの宛先ポート番号（２３４５８）及びＲＴＣＰパケットの宛先ポート番号（２３４５９）とされる。いずれの宛先ポート番号も、ＮＡＴ装置３がパンチパケットを転送した場合に履歴情報として記憶されたポート番号「２３４５８」「２３４５９」と一致している。従って、ＮＡＴ装置３はこれらのパンチ応答パケットを端末装置６に対して転送する（１６６、１６７）。端末装置６において、パンチ応答パケットが受信される（１６８、１６９、Ｓ４７（図７参照））。
【００９７】
以後、端末装置６は、特定したＲＴＰパケットの宛先ポート番号「５４３２２」及びＲＴＣＰパケットの宛先ポート番号「５４３２３」に基づいてＲＴＰパケット及びＲＴＣＰパケットを送信する（１７１、１７３）。また図示されていないが、端末装置７は、特定したＲＴＰパケットの宛先ポート番号「２３４５８」及びＲＴＣＰパケットの宛先ポート番号「２３４５９」に基づいてＲＴＰパケット及びＲＴＣＰパケットを送信する。なおこれらの宛先ポート番号は、それぞれＮＡＴ装置３、４に履歴情報として記憶されている値と一致するので、ＮＡＴ装置３，４は、受信したＲＴＰパケット及びＲＴＣＰパケットを端末装置６，７に転送する。また、これらの宛先ポート番号は、ＲＴＰパケットの宛先ポート番号が偶数であり、ＲＴＣＰパケットの宛先ポート番号が、ＲＴＰパケットの宛先ポート番号に１加算した奇数であるという条件を満たす。従って、ＲＴＰ／ＲＴＣＰに基づいた通信が実行可能となる。
【００９８】
以上説明したように、本実施の形態では、ＮＡＴ装置５に偶数と奇数の連続したポート番号を履歴情報として記憶させることができる。従って、それぞれのポート番号をＲＴＰパケット及びＲＴＣＰパケットの宛先ポート番号とすることによって、端末装置８同士がＲＴＰ／ＲＴＣＰに基づいた通信を行うことが可能となる。
【００９９】
端末装置６では、ソケットに割り当てるポート番号を調整することによって、接続要求パケット、ポート調整パケット、及びパンチパケットの送信元ポート番号が其々異なるようにしている。端末装置７でも同様に、接続応答パケット、ポート調整パケット、及びＴＴＬ調整パケットの送信元ポート番号が其々異なるようにしている。これによって、ＮＡＴ装置３，４の種別がＣｏｎｅ  ＮＡＴである場合にも、パケットに割り当てられるポート番号が１ずつ更新されるので、ＲＴＰ／ＲＴＣＰに基づいた通信を行うことが可能となる。
【０１００】
また、ＮＡＴ装置のポート幅が１である場合に、第一パケットが送信される。これによって、ＮＡＴ装置のポート幅が１であることを確認し、第一パケットを送信することができる。
【０１０１】
なお、図６のＳ２５、図８のＳ６５の処理が本発明の「第一送信ステップ」に相当する。図１０のＳ１１７、Ｓ１２１の処理が本発明の「第二送信ステップ」に相当する。図６のＳ２７、及び図８のＳ６７の処理が本発明の「第一受信ステップ」に相当する。図６のＳ３１及び図８のＳ７１の処理が本発明の「第二判断ステップ」に相当する。図７のＳ３９及び図９のＳ７７の処理が本発明の「第一判断ステップ」に相当する。図７のＳ４９及び図９のＳ９３の処理が本発明の「第三送信ステップ」に相当する。図６のＳ３３及び図８のＳ７３の処理が本発明の「第四送信ステップ」に相当する。図６のＳ２８及び図８のＳ６８の処理が本発明の「第三判断ステップ」に相当する。
【０１０２】
図６のＳ２５及び図８のＳ６５の処理を行うＣＰＵ８１が本発明の「第一送信手段」に相当する。図６のＳ２７及び図８のＳ６７の処理を行うＣＰＵ８１が本発明の「第一受信手段」に相当する。図６のＳ３１及び図８のＳ７１の処理を行うＣＰＵ８１が本発明の「第一判断手段」に相当する。図７のＳ３９及び図９のＳ７７の処理を行うＣＰＵ８１が本発明の「第一判断手段」に相当する。図７のＳ４９及び図９のＳ９３の処理を行うＣＰＵ８１が本発明の「第三送信手段」に相当する。図１０のＳ１０１の処理を行うＣＰＵ２１が本発明の「第二受信手段」に相当し、Ｓ１１７及びＳ１２１の処理を行うＣＰＵ２１が本発明の「第二送信手段」に相当する。
【０１０３】
なお、本発明は上記実施の形態に限定されるものではなく、種々の変更が可能である。上述の実施の形態では、ＮＡＴ情報パケットに含まれているポート幅に基づいて、端末装置８はポート調整パケットやパンチパケット、ＴＴＬ調製用パケットを送信していた。しかしながら本発明はこの構成に限定されない。例えば端末装置８は、接続要求パケットの送信前にポート幅の情報を通信制御装置２から受信し、ポート幅が１でない場合には、接続要求パケットを送信しない構成としてもよい。また例えば端末装置８は、接続要求パケットを受信した場合にポート幅の情報を通信制御装置２から受信し、ポート幅が１でない場合には、接続応答パケットを送信しない構成としてもよい。
【０１０４】
上述の実施の形態では、ＲＴＰ／ＲＴＣＰに基づいた通信を行う端末装置が２台（端末装置６，７）である場合を想定していたが、本発明はこの構成に限定されない。ＲＴＰ／ＲＴＣＰに基づいた通信を行う端末装置は３台以上であってもよい。以下、本発明の変形例について説明する。
【０１０５】
図１３及び図１４を参照し、本発明の変形例における発呼側端末処理について説明する。変形例では、ｎ台（ｎは１以上の整数）の端末装置８によって互いにＲＴＰ／ＲＴＣＰに基づいた通信が行われる。なお、被呼側端末、及び通信制御装置２において実行される他の処理（端末装置処理、被呼側端末処理、通信制御処理）については、上述の実施の形態と同様であるので、以下では説明を省略している。また、発呼側端末処理のうち、上述の実施の形態と同様の部分については、説明を省略し又は簡略している。
【０１０６】
図１３に示すように、変形例における発呼側端末処理では、はじめに、ポート番号を用いた通信を行うためのソケットが作成される（Ｓ１７１）。ソケットは、合計「ｎ＋１」作成される。通信制御装置２と通信を行うためのソケットが一つ（「第Ａソケット」という。）と、ポート調整パケット通信を行うためのソケットが「ｎ」（「第Ｂソケット」「第Ｃソケット」・・・「第ｎ＋１ソケット」という。）である。次いで、作成されたソケットに対してポート番号が割り当てられる（Ｓ２３）。其々に割り当てられるポート番号は、偶数から始まる連続した値とされる。
【０１０７】
第Ａソケットを使用し、ｎ台の被呼側端末宛ての接続要求パケットが、通信制御装置２に対して送信される（Ｓ２５）。ＮＡＴ装置３では、接続要求パケットが転送された場合に、接続要求パケットの送信元ポート番号が変換される。変換後の送信元ポート番号がポート番号の履歴情報として記憶される。
【０１０８】
通信制御装置２では、受信した接続要求パケットが、ｎ台の被呼側端末に転送される。通信制御装置２では、被呼側端末の其々から送信される接続応答パケット（Ｓ６５、図８参照）が受信される（Ｓ１０９、図１０参照）。通信制御装置２では、被呼側端末から受信した接続要求パケットに基づいて作成されたＮＡＴ情報パケットが、発呼側端末に対して送信される（Ｓ１１７、図１０参照）。ＮＡＴ情報パケットには、ｎ台の被呼側端末と直接接続する其々のＮＡＴ装置５のＩＰアドレス、ポート番号、ＮＡＴ種別、及びポート幅が含まれている。
【０１０９】
発呼側端末では、通信制御装置２から送信されたＮＡＴ情報パケットを、ＮＡＴ装置３を介して受信したかが監視される（Ｓ２７）。ＮＡＴ情報パケットを受信した場合（Ｓ２７：ＹＥＳ）、ＮＡＴ情報に含まれているＮＡＴ装置５のポート幅が参照される（Ｓ１７３）。ポート幅が「１」でないＮＡＴ装置５が含まれている場合（Ｓ１７３：ＮＯ）、発呼側端末は被呼側端末とＲＴＰ／ＲＴＣＰに基づいた通信を行うことができないので、該当するＮＡＴ装置５を記憶しておくために、フラグ情報（通信不可フラグ）を対応付けてＲＡＭ８３に記憶する（Ｓ１７５）。そしてＳ２９の処理に進む。一方、すべてのＮＡＴ装置５のポート幅が「１」である場合（Ｓ１７３：ＹＥＳ）、Ｓ２９の処理に進む。
【０１１０】
Ｓ２９の処理では、通信不可フラグが対応付けられていないＮＡＴ装置５のポート番号が、受信したＮＡＴ情報から取得される（Ｓ２９）。自身と直接接続するＮＡＴ装置５に記憶されたポート番号が偶数であるかが判断される（Ｓ３１）。偶数である場合（Ｓ３１：ＹＥＳ）、ポート調整パケットが第Ｂソケットを使用して通信制御装置２に対して送信される（Ｓ３３）。そしてＳ３５の処理に進む。これに対し、取得されたポート番号が奇数である場合（Ｓ３１：ＮＯ）、そのままＳ３５に進む。
【０１１１】
次いで、Ｓ１７１において作成されたポート調整パケット通信用のソケットがクローズされる。新たにソケットが作成される。ソケットは、合計「２ｎ」作成される。ＲＴＰ／ＲＴＣＰの其々に基づく通信に使用されるソケット（「第ａソケット」「第ｂソケット」〜「第２ｎソケット」という。）である。作成されたソケットに対してポート番号が割り当てられる（Ｓ３５）。其々に割り当てられるポート番号は、偶数から始まる連続した値とされる。
【０１１２】
端末装置７から送信される終了通知パケットを受信したかが監視される（Ｓ３７）。終了通知パケットを受信した場合（Ｓ３７：ＹＥＳ）、Ｓ３９の処理（図１４参照）に進む。
【０１１３】
図１４に示すように、Ｓ３９〜Ｓ４３の処理では、通信相手方の複数の被呼側端末と直接接続する其々のＮＡＴ装置５に記憶されているポート番号に基づいて、ＲＴＰパケット及びＲＴＣＰパケットを送信する場合の宛先ポート番号が特定される。ＲＴＰパケットの宛先ポート番号が偶数とされ、ＲＴＣＰパケットの宛先ポート番号を、ＲＴＰパケットの宛先ポート番号に１加算した奇数とされる。ＲＴＰパケット及びＲＴＣＰパケットの宛先ポート番号は、複数のＮＡＴ装置５毎に其々特定される。そしてＳ４５の処理に進む。
【０１１４】
Ｓ４５の処理では、ｎ台の被呼側端末から送信されるＲＴＰパケット及びＲＴＣＰパケットを、自身と直接接続するＮＡＴ装置５を介して受信可能なように、ＮＡＴ装置５にポート番号を記憶させる。Ｓ３５（図１３参照）において準備された第ａソケット〜第２ｎソケットが使用される。第ａソケット及び第ｂソケットを使用して、一の被呼側端末宛てにパンチパケット（一回目及び二回目）が送信される。パンチパケットの宛先ポート番号は、特定されたＲＴＰパケットの宛先ポート番号及びＲＴＣＰパケットの宛先ポート番号とされる（Ｓ４５）。
【０１１５】
二つのパンチパケットが、ＮＡＴ装置５を経由して被呼側端末に対して送信される。ＮＡＴ装置５では、二つのパンチパケットを転送する場合に双方に割り当てたポート番号が、履歴情報としてフラッシュメモリ５７に記憶される。
【０１１６】
パンチパケットが送信された後、被呼側端末から送信されるパンチ応答パケットを受信したかが監視される（Ｓ４７）。パンチ応答パケットを受信した場合（Ｓ４７：ＹＥＳ）、
パンチパケットを送信していない他の被呼側端末が存在するかが判断される（Ｓ１７７）。存在する場合（Ｓ１７７：ＹＥＳ）、第ｃソケット及び第ｄソケットが選択され（Ｓ１７９）、Ｓ４５に戻る。そして未だパンチパケットを送信していない被呼側端末宛てに、パンチパケット（一回目及び二回目）が送信される。以上のように、使用されるソケットを随時更新しながら、被呼側端末の全てに対してパンチパケット（一回目及び二回目）を送信する処理が繰り返し実行される。全ての被呼側端末に対してパンチパケットを送信した場合（Ｓ１７７：ＮＯ）、Ｓ４９の処理に進む。
【０１１７】
一方、パンチパケット送信後、所定時間が経過してもパンチ応答パケットを受信できない場合（Ｓ４７：ＮＯ）、通信エラーが発生しているので、被呼側端末との間で継続して通信を行うことができない。この場合、ユーザに通信エラーが発生したことを通知するために、ディスプレイ８６１にエラー通知を表示し、通信を終了させるために必要な処理が行われる（Ｓ５１）。そして発呼側端末処理を終了し、端末装置処理（図５参照）に戻る。
【０１１８】
Ｓ４９の処理では、ＲＴＰ／ＲＴＣＰに基づき、複数の被呼側端末と通信が可能な状態であるので、以後、ＲＴＰ／ＲＴＣＰに基づく通信が発呼側端末と被呼側端末との間で実行される（Ｓ４９）。
【０１１９】
以上説明した処理を実行することによって、発呼側端末は、ｎ台の被呼側端末とＲＴＰ／ＲＴＣＰに基づいた通信を行うことが可能となる。発呼側端末に直接接続するＮＡＴ装置５には、被呼側端末の其々と通信を行うためのポート番号（ＲＴＰパケット通信用及びＲＴＣＰパケット通信用）が履歴情報として記憶される。複数の被呼側端末は、其々、ＮＡＴ装置５に記憶されたポート番号宛てにＲＴＰパケット及びＲＴＣＰパケットを送信する。ＲＴＰパケット通信用のポート番号は偶数となり、ＲＴＣＰパケット通信用のポート番号は、ＲＴＰパケット通信用のポート番号に１加算した奇数となっているので、被呼側端末から送信されたＲＴＰパケット及びＲＴＣＰパケットは、ＮＡＴ装置５を通過して発呼側端末に到達する。
【符号の説明】
【０１２０】
１          通信システム
２          通信制御装置
３，４，５  ＮＡＴ装置
６，７，８  端末装置
２１        ＣＰＵ
８１        ＣＰＵ
【図１】
2011071745.tif 000003
【図２】
2011071745.tif 000004
【図３】
2011071745.tif 000005
【図４】
2011071745.tif 000006
【図５】
2011071745.tif 000007
【図６】
2011071745.tif 000008
【図７】
2011071745.tif 000009
【図８】
2011071745.tif 000010
【図９】
2011071745.tif 000011
【図１０】
2011071745.tif 000012
【図１１】
2011071745.tif 000013
【図１２】
2011071745.tif 000014
【図１３】
2011071745.tif 000015
【図１４】
2011071745.tif 000016