(57)【要約】【課題】標準的な技術仕様に従ってＮＡＴ種別を判定する際に、誤判定を防止しつつ適切に判定できる判定対象の範囲を向上させる。【解決手段】ＲＦＣ３４８９に準拠してＮＡＴ種別を判定する方法において、最後の送信テストのBindingリクエストに対するＳＴＵＮサーバ３からのBindingレスポンスに付加されたアドレス情報と、それ以前に実行されたいずれかの送信テストに対するBindingレスポンスに付加されたアドレス情報とを比較し、それらのアドレス情報が同一でない場合、ＮＡＴ種別を対称型と判定する。また、使用状況に応じてＮＡＴ種別が頻繁に変化するルータに接続された場合であっても、ユーザが手動で設定変更することなく通信を可能にする。【選択図】図３
2008289109.tif 000002
【特許請求の範囲】
【請求項１】
ＮＡＴ機能を有する中継機器を介して通信を行うＩＰ通信装置が、第１のＩＰアドレス及び第１のポート番号からなるＳＴＵＮサーバの第１の宛先に対してリクエストを送信する第１の送信テストと、前記第１の宛先に対し、レスポンスの送信元ＩＰアドレス及びポート番号の変更を指定した情報を含むリクエストを送信する第２の送信テストと、第２のＩＰアドレス及び第２のポート番号からなるＳＴＵＮサーバの第２の宛先に対してリクエストを送信する第３の送信テストと、前記第１の宛先に対し、レスポンスの送信元ポート番号のみの変更を指定した情報を含むリクエストを送信する第４の送信テストとを実行することにより行うＮＡＴ種別の判定方法において、
前記第１及び第２の宛先とＩＰアドレスまたはポート番号の少なくとも一方が異なる第３の宛先に対してリクエストを送信する第５の送信テストを実行するステップと、
前記第１、第２、第３の宛先に対する各々少なくとも１回の送信テストの実行が終了した際に、その最後に実行された送信テストのリクエストに対する前記ＳＴＵＮサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報と、それ以前に実行されたいずれかの送信テストのリクエストに対する前記ＳＴＵＮサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報とを比較し、それらのアドレス情報が同一でない場合、前記ＮＡＴ種別を対称型と判定するステップと
を有することを特徴とするＩＰ通信装置によるＮＡＴ種別の判定方法。
【請求項２】
前記第１乃至第４の送信テストは順次実行され、前記第５の送信テストは、前記第４の送信テストの実行後、そのリクエストに対する前記ＳＴＵＮサーバからのレスポンスがない場合に実行することを特徴とする請求項１に記載のＩＰ通信装置によるＮＡＴ種別の判定方法。
【請求項３】
前記第１乃至第４の送信テストは順次実行され、前記第５の送信テストは、前記第１乃至第３の送信テストのいずれかの直前に実行することを特徴とする請求項１に記載のＩＰ通信装置によるＮＡＴ種別の判定方法。
【請求項４】
前記第５の送信テストを実行するステップの後に、前記第１乃至第３の宛先とＩＰアドレスまたはポート番号の少なくとも一方が異なる第４の宛先に対してリクエストを送信する第６の送信テストを実行するステップを更に有することを特徴とする請求項２または請求項３に記載のＩＰ通信装置によるＮＡＴ種別の判定方法。
【請求項５】
ＮＡＴ機能を有する中継機器を介して通信を行うＩＰ通信装置において、
第１のＩＰアドレス及び第１のポート番号からなるＳＴＵＮサーバの第１の宛先に対してリクエストを送信する第１の送信テストと、前記第１の宛先に対し、レスポンスの送信元ＩＰアドレス及びポート番号の変更を指定した情報を含むリクエストを送信する第２の送信テストと、第２のＩＰアドレス及び第２のポート番号からなるＳＴＵＮサーバの第２の宛先に対してリクエストを送信する第３の送信テストと、前記第１の宛先に対し、レスポンスの送信元ポート番号のみの変更を指定した情報を含むリクエストを送信する第４の送信テストとを実行することによりＮＡＴ種別の判定を行う際に、
前記第１及び第２の宛先とＩＰアドレスまたはポート番号の少なくとも一方が異なる第３の宛先に対してリクエストを送信する第５の送信テストを実行するステップと、
前記第１、第２、第３の宛先に対する各々少なくとも１回の送信テストの実行が終了した際に、その最後に実行された送信テストのリクエストに対する前記ＳＴＵＮサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報と、それ以前に実行されたいずれかの送信テストのリクエストに対する前記ＳＴＵＮサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報とを比較し、それらのアドレス情報が同一でない場合、前記ＮＡＴ種別を対称型と判定するステップと
を実行するＮＡＴ種別判定手段を備えたことを特徴とするＩＰ通信装置。
【請求項６】
ＮＡＴ機能を有する中継機器を介して通信を行うＩＰ通信装置において複数の送信テストを含むＮＡＴ種別判定処理を定期的に行なうＮＡＴ種別の判定方法であって、
前回実行された判定処理の結果がコーン型を示し、今回実行された判定処理の結果が対称型を示す場合は直ちに前記中継機器のＮＡＴ種別が対称型であると決定し、
前回実行された判定処理の結果が対称型を示し、今回実行された判定処理の結果がコーン型を示す場合、その後所定回数連続して判定処理の結果がコーン型を示す場合に限り前記中継機器の種別がコーン型であると決定することを特徴とするＩＰ通信装置によるＮＡＴ種別の判定方法。
【請求項７】
ＮＡＴ機能を有する中継機器を介して通信を行うＩＰ通信装置において、
複数の送信テストを含むＮＡＴ種別判定処理を定期的に行ない、
前回実行された判定処理の結果がコーン型を示し、今回実行された判定処理の結果が対称型を示す場合は直ちに前記中継機器のＮＡＴ種別が対称型であると決定し、
前回実行された判定処理の結果が対称型を示し、今回実行された判定処理の結果がコーン型を示す場合はその後所定回数連続して判定処理の結果がコーン型を示す場合に限り前記中継機器の種別がコーン型であると決定することを特徴とするＩＰ通信装置。
【請求項８】
ＮＡＴ機能を有する中継機器を介して通信を行うＩＰ通信装置において、
少なくとも第１のＩＰアドレス及び第１のポート番号からなるＳＴＵＮサーバの第１の宛先に対してリクエストを送信する第１の送信テストと、前記第１の宛先に対し、レスポンスの送信元ＩＰアドレス及びポート番号の変更を指定した情報を含むリクエストを送信する第２の送信テストと、第２のＩＰアドレス及び第２のポート番号からなるＳＴＵＮサーバの第２の宛先に対してリクエストを送信する第３の送信テストと、前記第１の宛先に対し、レスポンスの送信元ポート番号のみの変更を指定した情報を含むリクエストを送信する第４の送信テストを含むＮＡＴ種別の判定処理を定期的に行ない、
前回実行された判定処理の結果がコーン型を示し、今回実行された判定処理の結果が対称型を示す場合は直ちに前記中継機器のＮＡＴ種別が対称型であると決定し、
前回実行された判定処理の結果が対称型を示し、今回実行された判定処理の結果がコーン型を示す場合はその後所定回数連続して判定処理の結果がコーン型を示す場合に限り前記中継機器の種別がコーン型であると決定するＮＡＴ種別判定手段を備えたことを特徴とするＩＰ通信装置。
【請求項９】
ＮＡＴ機能を有する中継機器を介して通信を行うＩＰ通信装置において複数の送信テストを含むＮＡＴ種別判定処理を定期的に行なうＮＡＴ種別の判定方法であって、
前記ＮＡＴ種別判定処理の結果、Ｐ２Ｐ通信が困難な種類に変更されたことを示す場合は前記ＩＰ通信装置で通信を行うためのＮＡＴ種別の設定を直ちに変更し、
前記ＮＡＴ種別判定処理の結果、Ｐ２Ｐ通信が容易な種類に変更されたことを示す場合はその後所定回数連続して同じ判定の結果が得られる場合に限りＮＡＴ種別の設定を変更することを特徴とするＩＰ通信装置によるＮＡＴ種別の判定方法。
【請求項１０】
ＮＡＴ機能を有する中継機器を介して通信を行うＩＰ通信装置において、
複数の送信テストを含むＮＡＴ種別判定処理を定期的に行ない、
前記ＮＡＴ種別判定処理の結果、Ｐ２Ｐ通信が困難な種類に変更されたことを示す場合は前記ＩＰ通信装置で通信を行うためのＮＡＴ種別の設定を直ちに変更し、
前記ＮＡＴ種別判定処理の結果、Ｐ２Ｐ通信が容易な種類に変更されたことを示す場合はその後所定回数連続して同じ判定の結果が得られる場合に限りＮＡＴ種別の設定を変更することを特徴とするＩＰ通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＮＡＴ(Network Address Translation)機能を有する中継機器を介して広域ネットワークに接続されるＩＰ(Internet Protocol)通信装置及びＩＰ通信装置によるＮＡＴ種別の判定方法に関する。
【背景技術】
【０００２】
従来、企業や家庭内のＬＡＮ(Local Area Network)に接続されたＩＰ通信装置（ＩＰ電話等）は、所定の中継機器（ルータ等）を介してＷＡＮ(Wide-Area Network)に接続されるのが一般的である。そのような中継機器として、ＬＡＮのみで通用するプライベートなＩＰアドレスと、外部のＷＡＮへのアクセスに利用できるグローバルなＩＰアドレスとを透過的に相互変換するためのＮＡＴ機能を搭載しているものが存在し、これによれば、ＬＡＮに接続される機器に対するＩＰアドレスの付与の自由度が高まり、またＬＡＮのセキュリティも高まるという利点がある。
【０００３】
しかし、例えば、上記ＮＡＴ機能を有する中継機器を介してＷＡＮに接続されたＩＰ通信装置によりＩＰ電話サービスを利用する場合、呼制御プロトコルとして用いるＳＩＰ(Session Initiation Protocol)等ではＩＰパケットのデータ部にプライベートＩＰアドレスやポート番号を付加して通信を行うため、ＩＰパケットのヘッダ部分のＩＰアドレスのみを変換するＮＡＴ機能では対応できず、また、ＩＰパケットのデータ部にグローバルＩＰアドレスを付加しようとした場合でも、ＩＰ通信装置は自らが利用するグローバルアドレスやポート番号の情報を自身では把握できないという問題があった。その結果、中継機器が壁となってＷＡＮ側からの通信パケットがＬＡＮ側に到達しないという、いわゆるＮＡＴ越え問題が生じていた。
【０００４】
そのような問題を解決するための方法として、ＳＴＵＮ(Simple Traversal of User Datagram Protocol)を利用するものが知られている。例えば、グローバルネットワーク上に情報提供用のＳＴＵＮサーバを設置することで、ＩＰ通信装置はＮＡＴ越えに必要な情報（グローバルＩＰアドレス、ポート番号及びＮＡＴの種別等）を取得することが可能となる。
【０００５】
ＳＴＵＮのプロトコルを利用してＮＡＴ越えを実現する従来技術として、例えば、異なるルータにそれぞれ接続され、インターネットを介してＰ２Ｐ(Peer to Peer)通信を行う複数の情報処理装置を備えた情報通信システムにおいて、各情報処理装置は、その接続されたルータがＵＰｎＰ機能を有している場合には、ＵＰｎＰのプロトコルに基づきグローバルＩＰアドレス及びポート番号を取得して、それらを交換情報としてインターネット上の情報管理装置に登録する一方、接続されたルータがＵＰｎＰ機能を有していない場合には、ＳＴＵＮのプロトコルに基づきグローバルＩＰアドレス及びポート番号を取得して、それらを交換情報として情報管理装置に登録し、各情報処理装置間で通信を実行する際には、情報管理装置から通信相手の交換情報を互いに取得し、当該取得した交換情報に基づきＮＡＴ越え通信を実現するようにしたものが知られている（特許文献１参照）。
【特許文献１】特開２００５−１５１１４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、ＩＥＴＦ(Internet Engineering Task Force)が発行するＲＦＣ(Request For Comment)３４８９に定義されるアルゴリズムによれば、ＮＡＴの種別は、完全コーン型(Full Cone)、制限付きコーン型(Restricted Cone)、ポート制限付きコーン型(Port Restricted Cone)、及び対称型(Symmetric)の４つの種別に分類される。
【０００７】
ここで、ＲＦＣ３４８９に定義されたアルゴリズムに従うＮＡＴ種別の判定フローの例を図１０に、また、その判定の際に実行する送信テストの概略を図１１に示す。
【０００８】
図１０に示すように、まず、ＮＡＴ種別を判定する端末装置は送信テスト（I）を実行する（ＳＴ１０１）。この送信テスト（I）は、図１１（ａ）に示すように、端末装置からＮＡＴ機能を有するルータを介してＳＴＵＮサーバの第１の宛先であるＩＰアドレスＡ及びポート番号ｐ（以下、同様のＩＰアドレス及びポート番号の組合せを「アドレス（Ａ，ｐ）」のように記載ものとする。）に対してBindingリクエストを送信することにより行う。この場合、ＳＴＵＮサーバに対してBindingレスポンスの送信元ＩＰアドレス及びポート番号の変更を要求するCHANGE−REQUEST（送信元情報変更要求）属性は指定されない。続いて、端末装置は、ＳＴＵＮサーバからの応答があったか否かを判定し（ＳＴ１０２）、応答がなかった場合には、「（１）ＵＤＰをブロックするファイアウォールが存在している」と判定する。一方、端末装置は、ＳＴＵＮサーバからのBindingレスポンスを受信した場合（ＳＴ１０２：ＹＥＳ）、そのMAPPED−ADDRESS（マッピングアドレス）属性として付加されたＩＰアドレス（即ち、ＳＴＵＮサーバが受信したBindingリクエストの送信元ＩＰアドレス）が、端末装置のプライベートＩＰアドレスと同一か否かを判定する（ＳＴ１０３）。
【０００９】
そこで、ＩＰアドレスが同一の場合、端末装置は、自身がＮＡＴ配下にないと判断し、更に送信テスト（II）を実行する（ＳＴ１０４）。この送信テスト（II）では、図１１（ｂ）に示すように、送信テスト（I）と同一の宛先（アドレス（Ａ，ｐ））に対してBindingリクエストを送信するが、CHANGE−REQUEST属性において、ＳＴＵＮサーバが応答する際の送信元として、Bindingリクエストの受信先とは異なるＩＰアドレス及びポート番号（アドレス（Ｂ，ｑ））を設定する。そこで、端末装置は、ＳＴＵＮサーバからの応答があったか否かを判定し（ＳＴ１０５）、応答がなかった場合には、「（２）アドレス変換をしないが、対称型ＮＡＴのようにＵＤＰをブロックするファイアウォールが存在している」と判定する。一方、ＳＴＵＮサーバからのBindingレスポンスを受信した場合（ＳＴ１０５：ＹＥＳ）、「（３）アクセス制限のないオープン・インターネット」であると判定する。
【００１０】
一方、ＳＴ１０３においてＩＰアドレスが同一でない（自身がＮＡＴ配下にある）場合、端末装置は、ＳＴ１０４と同様の送信テスト（II）を実行し（ＳＴ１０６）、ＳＴＵＮサーバからの応答があったか否かを判定する（ＳＴ１０７）。そこで、応答があった場合には、指示どおりに、Bindingリクエストの受信先とは異なるＩＰアドレス及びポート番号（アドレス（Ｂ，ｑ））から応答が返ってきたので、端末装置は、ルータのＮＡＴ種別を「（４）完全コーン型(Full Cone)」であると判定する。一方、応答がなかった場合（ＳＴ１０７：ＮＯ）、続いて、端末装置は送信テスト（I'）を実行する（ＳＴ１０８）。この送信テスト（I'）は、図１１（ｄ）に示すように、端末装置からルータを介してＳＴＵＮサーバの第２の宛先であるアドレス（Ｂ，ｑ）に対してBindingリクエストを送信することにより行う。この場合、送信テスト（I）と同様に、CHANGE−REQUEST属性は指定されない。
【００１１】
次に、端末装置は、送信テスト（I'）のBindingリクエストに対するＳＴＵＮサーバからのBindingレスポンスを受信すると、そのMAPPED−ADDRESS属性として付加されたＩＰアドレス及びポート番号（即ち、ＳＴＵＮサーバが受信したBindingリクエストの送信元ＩＰアドレス及びポート番号）が、先の送信テスト（I）の際にMAPPED−ADDRESS属性として付加されたＩＰアドレス及びポート番号と同一か否かを判定する（ＳＴ１０９）。そこで、ＩＰアドレス及びポート番号が同一でない場合、ＳＴＵＮサーバの異なるIPアドレス宛にBindingリクエストを送信したときに送信元のルータのポート番号が変更されることがわかるので、端末装置は、ルータのＮＡＴ種別を「（５）対称型(Symmetric)」であると判定する。
【００１２】
一方、ＳＴ１０９においてＩＰアドレスが同一である場合、続いて、端末装置は送信テスト（III）を実行し（ＳＴ１１０）、ＳＴＵＮサーバからの応答があったか否かを判定する（ＳＴ１１１）。この送信テスト（III）では、図１１（ｃ）に示すように、送信テスト（I）と同一の宛先（アドレス（Ａ，ｐ））に対してBindingリクエストを送信するが、CHANGE−REQUEST属性において、ＳＴＵＮサーバが応答する際の送信元として、Bindingリクエストの受信先とは異なるポート番号（アドレス（Ａ，ｑ））を設定する。そこで、応答がなかった場合には、同一IPアドレスかつ異なるポート番号からの応答が返ってこないので、端末装置は、ルータのＮＡＴ種別を「（６）ポート制限付きコーン型(Port Restricted Cone)」であると判定し、一方、応答があった場合には、異なるポート番号であっても、同一IPアドレスであれば応答が返って来る事から、ＮＡＴ種別を「（７）制限付きコーン型(Restricted Cone)」であると判定する。このように、ＮＡＴ配下の端末装置は、上記送信テスト（I）〜（III）及び（I'）を適宜実行することで、そのＮＡＴ種別を判定することが可能である。
【００１３】
しかしながら、本発明者らの調査によれば、上記のようなＲＦＣ３４８９に準拠したＮＡＴ種別の判定フローを用いた場合に、誤判定を生じさせ得る挙動を示すルータが存在するという知見が得られている。この調査は、端末装置の同一のＬＡＮ側ポート番号から調査対象のルータを介して異なる宛先（複数のＩＰアドレス及びポート番号）に対してテストパケットを送信し、ルータのＷＡＮ側ポート番号の変化を検出することにより行った。本発明者らが実施した調査の結果の一部を図１２及び図１３に示す。
【００１４】
図１２において、テスト１（１−１〜１−３）は、まず、ＬＡＮ側ポート番号を10000に設定し、第１の宛先（宛先ＩＰアドレス：192.168.0.200、宛先ポート番号：17000）に送信すると、ＷＡＮ側ポート番号が10000に設定され（１−１）、次に、第１の宛先からポート番号を変更した第２の宛先（宛先ＩＰアドレス：192.168.0.200、宛先ポート番号：15000）に送信すると、ＷＡＮ側ポート番号が同様に10000に設定され（１−２）、さらに、第２の宛先からＩＰアドレスを変更した第３の宛先（宛先ＩＰアドレス：192.168.0.3、宛先ポート番号：15000）に送信すると、ＷＡＮ側ポート番号が変更されて33576に設定される（１−３）ことを示している。
【００１５】
また、テスト２（２−１〜２−３）は、まず、ＬＡＮ側ポート番号を20000に設定し、第１の宛先（宛先ＩＰアドレス：192.168.0.200、宛先ポート番号：17000）に送信すると、ＷＡＮ側ポート番号が20000に設定され（２−１）、次に、第１の宛先からＩＰアドレス及びポート番号を変更した第２の宛先（宛先ＩＰアドレス：192.168.0.3、宛先ポート番号：15000）に送信すると、ＷＡＮ側ポート番号が同様に20000に設定され（２−２）、さらに、第２の宛先からＩＰアドレスを変更した第３の宛先（宛先ＩＰアドレス：192.168.0.200、宛先ポート番号：15000）に送信すると、ＷＡＮ側ポート番号が変更されて33602に設定される（２−３）ことを示している。
【００１６】
他のテスト３〜６についても、同様に宛先ＩＰアドレスまたはポート番号の少なくとも一方を変更（変更したＩＰアドレス及びポート番号には「※」が付してある。）して３回のテストパケット送信を実行した結果を示している。これらの調査結果より、調査対象のルータでは、同一のＬＡＮ側のポートから宛先を変更（直前の宛先とＩＰアドレスまたはポート番号の少なくとも一方が異なる）しながら３回目のテストパケットを送信した際にＷＡＮ側のポート番号が変更されることがわかった。そこで、更に詳細に調査した結果が図１３である。
【００１７】
図１３において、テスト７（７−１〜７−４）は、上記テスト１における１−１及び１−２と同様のパケット送信７−１，７−２を実行した後に、パケット送信７−１と同一の第１の宛先（ＩＰアドレス：192.168.0.200、宛先ポート番号：17000）に送信しても、ＷＡＮ側ポート番号は同様に10000に設定される（７−３）ことを示している。そこで、さらに、第１の宛先からＩＰアドレス及びポート番号を変更した第３の宛先（ＩＰアドレス：192.168.0.3、宛先ポート番号：15000）に送信すると、ＷＡＮ側ポート番号が変更されて33576に設定される（７−４）。
【００１８】
また、テスト８（８−１〜８−３）は、まず、ＬＡＮ側ポート番号を20000に設定し、第１の宛先（宛先ＩＰアドレス：192.168.0.200、宛先ポート番号：15000）に送信すると、ＷＡＮ側ポート番号が20000に設定され（８−１）、次に、第１の宛先からポート番号を変更した第２の宛先（宛先ＩＰアドレス：192.168.0.200、宛先ポート番号：16000）に送信すると、ＷＡＮ側ポート番号が同様に20000に設定され（８−２）、さらに、第１及び第２の宛先とは別のポート番号を設定した第３の宛先（宛先ＩＰアドレス：192.168.0.200、宛先ポート番号：17000）に送信すると、ＷＡＮ側ポート番号が変更されて33018に設定される（８−３）ことを示している。
【００１９】
これらの調査結果より、調査対象のルータでは、同一のＬＡＮ側のポートから３つの異なる宛先（既に、パケット送信した宛先とＩＰアドレスまたはポート番号の少なくとも一方が異なる）に対してテストパケットを送信した際にＷＡＮ側のポート番号が変更される（即ち、ルータのＮＡＴ種別が後発的に対称型となる）ことがわかった。
【００２０】
上記調査対象となったルータを使用して図１０に示したようなＮＡＴ種別の判定を実行した場合、送信テスト（I）〜（III）及び（I'）では、送信テスト（I'）の宛先のみが他と異なる（即ち、２つの異なる宛先に対してパケット送信を実行する）ので、実際は、後発的に対称型ＮＡＴとして機能し得るルータであるにもかかわらず、ＳＴ１１１において「（６）ポート制限付きコーン型」という誤った判定がなされることになる。
【００２１】
従って、一般に、ＳＴＵＮによって取得した情報に基づきＮＡＴ経由の通信を行う場合には、事前にＮＡＴの種別を確認しておく必要があるが、上記調査のようなルータが使用された場合、端末装置は、対称型（後発的）を制限付きコーン型と誤判定することにより、ＮＡＴ越え処理を適切に実行することができない場合があった。また、特許文献１に記載のような従来技術において、上記調査のようなルータが使用された場合、端末装置はＮＡＴのポート番号を正確に予測することができず、ＮＡＴ越え処理を適切に実行することが困難となるという問題があった。
【００２２】
また、本発明者らの調査によると、ルータの種類によっては動作環境に応じてポート番号の割り当てのルールが変わり、上記のようなＮＡＴ種別判定処理を定期的に行うとある時点から異なるＮＡＴ種別として検出される場合がある。動作環境に応じてポート番号割り当てのルールが変わるものの中に、 Port Reuseと呼ばれる動作があり、現在出回っているルータの中に幾らかの割合で存在する。
【００２３】
このPort Reuseの動作が発生する動作環境の一例を図１４に示す。図１４（ａ）（ｂ）において示したＮＡＴルータはＬＡＮ側に接続された端末装置(通信装置、Internet接続機器)の送信元ポート番号と同じポート番号を用いてＮＡＴ設定を行うPort Reuse性質を有するルータである。
【００２４】
図１５はPort Reuse特性の概略を説明するための図である。図１５に示されるようにＮＡＴルータはInternet接続機器のポート番号[Pa]を発信元とするパケットをＷＡＮ側に送り出す場合にルータのＷＡＮ側ポート番号としてもポート番号[Pa]をそのまま使い、ポート番号を[Pa]としてＷＡＮ側に送り出す。Internet接続機器のポート番号[Pb]を発信元とするパケットをＷＡＮ側に送り出す場合も同様に、ＮＡＴルータのＷＡＮ側ポート番号としてポート番号[Pb]をそのまま使う。ポート番号[Pc]を発信元とするパケットをＷＡＮ側に送り出す場合も同様である。このように、ＬＡＮ側機器からの発信元ポート番号を含むパケットに、ＷＡＮ側のポート番号として当該発信元ポート番号と同一のポート番号をそのまま割り当てる特性のことを「Port Reuse」という。
【００２５】
例えば一般家庭内では、ルータのプライベート側（ＬＡＮ側）にパーソナルコンピュータ（以下、ＰＣとする）が接続している場合が多く、それに加えてＩＰ電話の利用を開始した場合には、ルータのＬＡＮ側にＩＰ電話の為の電話機とＰＣが共に接続されることが多い。もしルータがPort Reuse特性を有する機種であると、特にルータのＬＡＮ側にＰＣが接続されている場合、そのＰＣとＷＡＮ側のサーバあるいは他の端末との間で大容量ファイルを転送しているような場合に、その転送にかかる間じゅうＮＡＴルータはＰＣからの発信元ポート番号を含むパケットにＷＡＮ側のポート番号として当該発信元ポート番号と同一のポート番号をそのまま割り当てる動作を行なう。
【００２６】
図１４（ａ）のように Port Reuse性質を有するＮＡＴルータのＬＡＮ側に接続された通信端末装置(例えばＩＰ電話機)の制御により前述のＮＡＴ種別判定処理を行った時に通常はＮＡＴ種別が「(7)制限付きコーン型」として検出される場合であっても、同じＮＡＴルータのＬＡＮ側に図１４（ｂ）に示すようにＰＣと通信端末装置を共に接続すると以下のようなことが起こる。
【００２７】
先にInternet接続機器（例えばＰＣ）が送信元ポート番号：PaでＷＡＮ側のサーバに接続して大量データのダウンロードを始め、そのダウンロードの最中に他方の端末（ＩＰ電話機）でＮＡＴ種別判定を送信元ポート番号：Paで行うと、先に通信を開始したＰＣの通信ポートにＷＡＮ側のポート番号Paが割り当てているために、あとから接続したＩＰ電話機に対してＷＡＮ側のPaのポート番号は使用できず、この場合ＮＡＴルータ内で規定されたポート番号Pbが割り当てられる。
【００２８】
このようにPort Reuse特性を有するＮＡＴルータの中には、他の機器とポート番号が重複したことにより、ＮＡＴルータ内部で規定された他のポート番号を割り当てた場合、その間はＮＡＴ種別が対称型である場合と同じ動作を行うものがあるため、その間にＮＡＴ種別判定処理をおこなうと「(5)対称型」と判定されることがある。すなわちＬＡＮ側のＰＣが未使用なら「コーン型」の動作をするルータであっても、そのＰＣがＷＡＮ側とファイル転送を開始すればその間は「対称型」に変化する。ＰＣが通信を終了すればまた「コーン型」に戻る。このようにＬＡＮ側機器の動作状況に応じてＮＡＴ種別が頻繁に変わることになる。
【００２９】
前述の現象によりＩＰ電話機が一時的に通信不可になることがある。図１６において、ＮＡＴ種別判定処理は例えば1時間に1回の頻度で定期的行われる（△マーク）。ある時、ＬＡＮ側のＰＣが外部との通信を開始することによってＮＡＴ種別が変化し（⇒マーク）、それまで制限付きコーン型(Restricted  Cone)であったＮＡＴルータがＬＡＮ側の端末ごとにポート番号を変える対称型(Symmetric)の動作に変わると、それがＬＡＮ側のＩＰ電話機で把握できるまでの間はＮＡＴの種別を誤認識している場合と同様の処理となるため、ＮＡＴ越え処理を適切に実行することが困難になる。ＮＡＴルータの動作が切り替わったあとで処理される種別判定処理によってＩＰ電話機は「対称型」への変化を検知することができ、この時点でＮＡＴルータのＮＡＴ種別を検知することができるため、これ以降の処理で適切なＮＡＴ越えのための通信制御を行うことが可能となる。
【００３０】
しかしながら、ＮＡＴルータに接続されている環境の変化(ＰＣの通信終了など)により、定期的なＮＡＴ種別判定で「制限付きコーン型」と検出される場合もある。本検出の後、再びＰＣが外部との通信を開始すると、前記同様、ＩＰ電話機がＮＡＴ種別判定を行い、ＮＡＴ種別を把握できるまでの間はＮＡＴ越え処理を適切に実行することが困難になり、動作環境により、この状態が繰り返されるという問題があった。
【００３１】
このようにＮＡＴ種別がルータが動作環境に応じて変わる場合、ＰＣと外部の通信が頻繁に繰り返されるとＩＰ電話機が通信できなくなる期間が頻発し、電話機としての利便性が低下してしまう。
【００３２】
本発明は、このような従来技術の課題を鑑みて案出されたものであり、標準的な技術仕様（ＲＦＣ３４８９）に従ってＮＡＴ種別を判定する際に、その誤判定を防止しつつ適切に判定できる判定対象（即ち、ＮＡＴ特性）の範囲を向上させたＩＰ通信装置及びＩＰ通信装置によるＮＡＴ種別の判定方法を提供することを主目的とする。
【課題を解決するための手段】
【００３３】
本発明のＩＰ通信装置によるＮＡＴ種別の判定方法は、ＮＡＴ機能を有する中継機器を介して通信を行うＩＰ通信装置が、第１のＩＰアドレス及び第１のポート番号からなるＳＴＵＮサーバの第１の宛先に対してリクエストを送信する第１の送信テストと、前記第１の宛先に対し、レスポンスの送信元ＩＰアドレス及びポート番号の変更を指定した情報を含むリクエストを送信する第２の送信テストと、第２のＩＰアドレス及び第２のポート番号からなるＳＴＵＮサーバの第２の宛先に対してリクエストを送信する第３の送信テストと、前記第１の宛先に対し、レスポンスの送信元ポート番号のみの変更を指定した情報を
含むリクエストを送信する第４の送信テストとを実行することにより行うＮＡＴ種別の判定方法において、前記第１及び第２の宛先とＩＰアドレスまたはポート番号の少なくとも一方が異なる第３の宛先に対してリクエストを送信する第５の送信テストを実行するステップと、全ての宛先に対する少なくとも１回の送信テストの実行が終了した際に、その最後に実行された送信テストのリクエストに対する前記ＳＴＵＮサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報と、それ以前に実行されたいずれかの送信テストのリクエストに対する前記ＳＴＵＮサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報とを比較し、それらのアドレス情報が同一でない場合、前記ＮＡＴ種別を対称型と判定するステップとを有することを特徴とする。
【００３４】
また、ＮＡＴ機能を有する中継機器を介して通信を行うＩＰ通信装置において複数の送信テストを含むＮＡＴ種別判定処理を定期的に行なうＮＡＴ種別の判定方法であって、前回実行された判定処理の結果がコーン型を示し、今回実行された判定処理の結果が対称型を示す場合は直ちに前記中継機器のＮＡＴ種別が対称型であると決定し、前回実行された判定処理の結果が対称型を示し、今回実行された判定処理の結果がコーン型を示す場合、その後所定回数連続して判定処理の結果がコーン型を示す場合に限り前記中継機器の種別がコーン型であると決定することを特徴とする。
【発明の効果】
【００３５】
このように本発明によれば、ＩＰ通信装置が標準的な技術仕様（ＲＦＣ３４８９）に従ってＮＡＴ種別を判定する際に、その誤判定を防止しつつ適切に判定できる判定対象（即ち、ＮＡＴ特性）の範囲を向上させることが可能となるという優れた効果を奏する。
【発明を実施するための最良の形態】
【００３６】
上記課題を解決するためになされた第１の発明は、ＮＡＴ機能を有する中継機器を介して通信を行うＩＰ通信装置が、第１のＩＰアドレス及び第１のポート番号からなるＳＴＵＮサーバの第１の宛先に対してリクエストを送信する第１の送信テストと、前記第１の宛先に対し、レスポンスの送信元ＩＰアドレス及びポート番号の変更を指定した情報を含むリクエストを送信する第２の送信テストと、第２のＩＰアドレス及び第２のポート番号からなるＳＴＵＮサーバの第２の宛先に対してリクエストを送信する第３の送信テストと、前記第１の宛先に対し、レスポンスの送信元ポート番号のみの変更を指定した情報を含むリクエストを送信する第４の送信テストとを実行することにより行うＮＡＴ種別の判定方法において、前記第１及び第２の宛先とＩＰアドレスまたはポート番号の少なくとも一方が異なる第３の宛先に対してリクエストを送信する第５の送信テストを実行するステップと、全ての宛先に対する少なくとも１回の送信テストの実行が終了した際に、その最後に実行された送信テストのリクエストに対する前記ＳＴＵＮサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報と、それ以前に実行されたいずれかの送信テストのリクエストに対する前記ＳＴＵＮサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報とを比較し、それらのアドレス情報が同一でない場合、前記ＮＡＴ種別を対称型と判定するステップと
を有する構成とする。
【００３７】
これによると、標準的な技術仕様（ＲＦＣ３４８９）に従ってＮＡＴ種別を判定する際に、その誤判定を防止しつつ適切に判定できる判定対象（即ち、ＮＡＴ特性）の範囲を向上させることが可能となる。即ち、同一のＬＡＮ側のポートから３つの異なる宛先（既に、パケット送信した宛先とＩＰアドレスまたはポート番号の少なくとも一方が異なる）に対して送信テストを実行した際にＷＡＮ側のポート番号が変化する（即ち、後発的に対称型ＮＡＴとして機能する）仕様の中継機器（ルータ等）を用いる場合であっても、ＮＡＴ種別の誤判定を防止して、適切な判定が可能となる。
【００３８】
上記課題を解決するためになされた第２の発明は、前記第１乃至第４の送信テストは順次実行され、前記第５の送信テストは、前記第４の送信テストの実行後、そのリクエストに対する前記ＳＴＵＮサーバからのレスポンスがない場合に実行する構成とすることができる。これによると、簡易な方式によりＮＡＴ種別の誤判定を防止して、適切な判定が可能となる。
【００３９】
上記課題を解決するためになされた第３の発明は、前記第１乃至第４の送信テストは順次実行され、前記第５の送信テストは、前記第１乃至第３の送信テストのいずれかの直前に実行する構成とすることができる。これによると、簡易な方式によりＮＡＴ種別の誤判定を防止して、適切な判定が可能となる。
【００４０】
上記課題を解決するためになされた第４の発明は、前記第５の送信テストを実行するステップの後に、前記第１乃至第３の宛先とＩＰアドレスまたはポート番号の少なくとも一方が異なる第４の宛先に対してリクエストを送信する第６の送信テストを実行するステップを更に有する構成とすることができる。
【００４１】
上記課題を解決するためになされた第５の発明は、ＮＡＴ機能を有する中継機器を介して通信を行うＩＰ通信装置において、第１のＩＰアドレス及び第１のポート番号からなるＳＴＵＮサーバの第１の宛先に対してリクエストを送信する第１の送信テストと、前記第１の宛先に対し、レスポンスの送信元ＩＰアドレス及びポート番号の変更を指定した情報を含むリクエストを送信する第２の送信テストと、第２のＩＰアドレス及び第２のポート番号からなるＳＴＵＮサーバの第２の宛先に対してリクエストを送信する第３の送信テストと、前記第１の宛先に対し、レスポンスの送信元ポート番号のみの変更を指定した情報を含むリクエストを送信する第４の送信テストとを実行することによりＮＡＴ種別の判定を行う際に、前記第１及び第２の宛先とＩＰアドレスまたはポート番号の少なくとも一方が異なる第３の宛先に対してリクエストを送信する第５の送信テストを実行するステップと、全ての宛先に対する少なくとも１回の送信テストの実行が終了した際に、その最後に実行された送信テストのリクエストに対する前記ＳＴＵＮサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報と、それ以前に実行されたいずれかの送信テストのリクエストに対する前記ＳＴＵＮサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報とを比較し、それらのアドレス情報が同一でない場合、前記ＮＡＴ種別を対称型と判定するステップとを実行するＮＡＴ種別判定手段を備えた構成とする。
【００４２】
これによると、標準的な技術仕様（ＲＦＣ３４８９）に従ってＮＡＴ種別を判定する際に、その誤判定を防止しつつ適切に判定できる判定対象の範囲を向上させることが可能となる。
【００４３】
上記課題を解決するためになされた第６の発明は、ＮＡＴ機能を有する中継機器を介して通信を行うＩＰ通信装置において複数の送信テストを含むＮＡＴ種別判定処理を定期的に行なうＮＡＴ種別の判定方法であって、前回実行された判定処理の結果がコーン型を示し、今回実行された判定処理の結果が対称型を示す場合は直ちに前記中継機器のＮＡＴ種別が対称型であると決定し、前回実行された判定処理の結果が対称型を示し、今回実行された判定処理の結果がコーン型を示す場合、その後所定回数連続して判定処理の結果がコーン型を示す場合に限り前記中継機器の種別がコーン型であると決定する構成とする。
【００４４】
これによると、ＮＡＴ種別が頻繁に変化するルータに接続された場合であっても、ユーザが手動で設定変更することなく、Ｐ２Ｐ通信が容易な種類にＮＡＴ種別が切り換わった場合にはその状態が安定してから動作モードを自動的に切り換えるので、通信を確実に行なってＩＰ通信装置が電話機の場合も基本性能が確保でき、しかも可能な限りＰ２Ｐ通信などの安価な通信に切り換えることが可能となる。
【００４５】
上記課題を解決するためになされた第７の発明は、ＮＡＴ機能を有する中継機器を介して通信を行うＩＰ通信装置において、複数の送信テストを含むＮＡＴ種別判定処理を定期的に行ない、前回実行された判定処理の結果がコーン型を示し、今回実行された判定処理の結果が対称型を示す場合は直ちに前記中継機器のＮＡＴ種別が対称型であると決定し、前回実行された判定処理の結果が対称型を示し、今回実行された判定処理の結果がコーン型を示す場合はその後所定回数連続して判定処理の結果がコーン型を示す場合に限り前記中継機器の種別がコーン型であると決定する構成とする。
【００４６】
これによると、ＮＡＴ種別が頻繁に変化するルータに接続された場合であっても、ユーザが手動で設定変更することなく、Ｐ２Ｐ通信が容易な種類にＮＡＴ種別が切り換わった場合にはその状態が安定してから動作モードを自動的に切り換えるので、通信を確実に行なってＩＰ通信装置が電話機の場合も基本性能が確保でき、しかも可能な限りＰ２Ｐ通信などの安価な通信に切り換えることが可能となる。
【００４７】
上記課題を解決するためになされた第８の発明は、ＮＡＴ機能を有する中継機器を介して通信を行うＩＰ通信装置において、少なくとも第１のＩＰアドレス及び第１のポート番号からなるＳＴＵＮサーバの第１の宛先に対してリクエストを送信する第１の送信テストと、前記第１の宛先に対し、レスポンスの送信元ＩＰアドレス及びポート番号の変更を指定した情報を含むリクエストを送信する第２の送信テストと、第２のＩＰアドレス及び第２のポート番号からなるＳＴＵＮサーバの第２の宛先に対してリクエストを送信する第３の送信テストと、前記第１の宛先に対し、レスポンスの送信元ポート番号のみの変更を指定した情報を含むリクエストを送信する第４の送信テストを含むＮＡＴ種別の判定処理を定期的に行ない、前回実行された判定処理の結果がコーン型を示し、今回実行された判定処理の結果が対称型を示す場合は直ちに前記中継機器のＮＡＴ種別が対称型であると決定し、前回実行された判定処理の結果が対称型を示し、今回実行された判定処理の結果がコーン型を示す場合はその後所定回数連続して判定処理の結果がコーン型を示す場合に限り前記中継機器の種別がコーン型であると決定するＮＡＴ種別判定手段を備えた構成とする。
【００４８】
これによると、ＮＡＴ種別判定動作に時間を要する場合でも、頻繁にＮＡＴ種別判定動作を行うことなく一定のＮＡＴ種別判定動作で、頻繁にＮＡＴ種別が変化する場合にはＮＡＴ種別が対称型の動作を行うため、安定した通信を行えると共に、ＮＡＴ種別がコーン型に切り換わった場合には、その状態が安定してから動作モードを自動的に切り換えるので、通信を確実に行なってＩＰ通信装置が電話機の場合も基本性能が確保でき、しかも可能な限りＰ２Ｐ通信などの安価な通信に切り換えることが可能となる。
【００４９】
上記課題を解決するためになされた第９の発明は、ＮＡＴ機能を有する中継機器を介して通信を行うＩＰ通信装置において複数の送信テストを含むＮＡＴ種別判定処理を定期的に行なうＮＡＴ種別の判定方法であって、前記ＮＡＴ種別判定処理の結果、Ｐ２Ｐ通信が困難な種類に変更されたことを示す場合は前記ＩＰ通信装置で通信を行うためのＮＡＴ種別の設定を直ちに変更し、前記ＮＡＴ種別判定処理の結果、Ｐ２Ｐ通信が容易な種類に変更されたことを示す場合はその後所定回数連続して同じ判定の結果が得られる場合に限りＮＡＴ種別の設定を変更する構成とする。
【００５０】
これによると、ＮＡＴ種別が変化するルータに接続された場合であっても、ユーザが手動で設定変更することなく、頻繁にＮＡＴ種別が変化する場合にはＰ２Ｐ通信が困難なＮＡＴ種別で動作するため、安定した通信を行えると共に、Ｐ２Ｐ通信が容易な種類にＮＡＴ種別が切り換わった場合には、その状態が安定してから動作モードを自動的に切り換えるので、通信を確実に行なってＩＰ通信装置が電話機の場合も基本性能が確保でき、しかも可能な限りＰ２Ｐ通信などの安価な通信に切り換えることが可能となる。
【００５１】
上記課題を解決するためになされた第１０の発明は、ＮＡＴ機能を有する中継機器を介して通信を行うＩＰ通信装置において、複数の送信テストを含むＮＡＴ種別判定処理を定期的に行ない、前記ＮＡＴ種別判定処理の結果、Ｐ２Ｐ通信が困難な種類に変更されたことを示す場合は前記ＩＰ通信装置で通信を行うためのＮＡＴ種別の設定を直ちに変更し、前記ＮＡＴ種別判定処理の結果、Ｐ２Ｐ通信が容易な種類に変更されたことを示す場合はその後所定回数連続して同じ判定の結果が得られる場合に限りＮＡＴ種別の設定を変更する構成とする。
【００５２】
これによると、ＮＡＴ種別が変化するルータに接続された場合であっても、ユーザが手動で設定変更することなく、頻繁にＮＡＴ種別が変化する場合にはＰ２Ｐ通信が困難なＮＡＴ種別で動作するため、安定した通信を行えると共に、Ｐ２Ｐ通信が容易な種類にＮＡＴ種別が切り換わった場合には、その状態が安定してから動作モードを自動的に切り換えるので、通信を確実に行なってＩＰ通信装置が電話機の場合も基本性能が確保でき、しかも可能な限りＰ２Ｐ通信などの安価な通信に切り換えることが可能となる。
【００５３】
以下、本発明の実施の形態について図面を参照しながら説明する。
【００５４】
図１は、本願発明に係るＩＰ通信装置としての端末装置を有するＩＰ通信システムの概略を示す構成図である。このＩＰ通信システム１は、複数の端末装置（ＩＰ通信装置）Ａ，Ｂ、ＳＩＰサーバ２、ＳＴＵＮサーバ３が、広域ネットワークとしてのインターネット４を介してそれぞれ通信可能に接続された構成を有する。
【００５５】
端末装置Ａ，Ｂは、インターネット４を介して音声や映像等のデータ（以下、「メディアデータ」という。）を通信するためのＩＰ通信機能を有しており、それぞれ異なるＬＡＮ（図示せず）に属し、各ルータ（中継機器）５，６を介してインターネット４に接続される。これら端末装置Ａ，Ｂは、ＳＩＰのＵＡＣ(User Agent Client)として機能する。
本実施形態では、以下で端末装置Ａ，Ｂの機能及び動作等の詳細を説明する際に、必要に応じて端末装置Ａ，ＢをＳＩＰ対応のＩＰ電話装置として取り扱うこととするが、これに限らず端末装置Ａ，Ｂには、ＩＰ通信機能を有する任意の情報処理装置を用いることができる。
【００５６】
ルータ５，６は、端末装置Ａ，Ｂが各ＬＡＮにおいて通信に使用するプライベートな（ＬＡＮ側）ＩＰアドレスと、その外部のインターネット４を介した通信に使用するグローバルな（ＷＡＮ側）ＩＰアドレスとを透過的に相互変換するためのＮＡＴ機能を搭載したブロードバンドルータである。ルータ５，６は、そのＮＡＴ機能により、ＮＡＴの内側から外側へ開始されるアウトバウンド通信を許容する一方、ＮＡＴの外側から内側へ開始されるインバウンド通信を原則として拒否し、また、時間経過等によりＮＡＴの変換テーブルのエントリ（登録内容）を消滅させることで、ファイアウォール的な役割も果たす。
【００５７】
なお、ここで用いる用語「ＮＡＴ」は、プライベートＩＰアドレスとグローバルＩＰアドレスとを変換する技術に限定されるものではなく、ＩＰアドレスの変換に加えてポート番号を変換するＮＡＰＴ(Network Address Port Translation)等の類似技術を含むものとする。また、各ルータ５，６のＮＡＴ機能は、図１０に示したＲＦＣ３４８９で定義されるＮＡＴ種別（完全コーン型（Full Cone）、制限付きコーン型（Restricted Cone）、ポート制限付きコーン型（Port Restricted Cone）、対称型（Symmetric）等）、或いは図１２及び図１３で説明したような後発的な対称型のいずれかに属するものとする。
【００５８】
ＳＩＰサーバ２は、ＵＡＳ(User Agent Server)として機能する呼接続用サーバであり、端末装置Ａ，ＢとのＳＩＰメッセージの送受により端末装置Ａ，Ｂ間の接続を仲介する。ＳＩＰサーバ２は、端末装置Ａ，Ｂからのリクエストに応じて、それら端末装置間の呼接続のための位置情報並びに発呼要求及び応答等の中継を行うプロキシサーバ機能、また、端末装置Ａ，Ｂに関するグローバルアドレス、ポート番号、ＮＡＴ種別等の情報を管理（所定のデータベースへの登録、更新、削除処理等を実行）するレジストラ機能を有する。このＳＩＰサーバ２により接続が確立された端末装置同士は、メディアセッションにおいてメディアデータのＰ２Ｐ通信が可能となる。ここでは、端末装置Ａ，ＢはともにＳＩＰサーバ２を利用する構成としているが、端末装置Ａ，Ｂが互いに異なるプロキシサーバを利用して通信を行う構成も可能である。
【００５９】
ＳＴＵＮサーバ３は、端末装置Ａ，Ｂからのリクエストに応じて、そのグローバルアドレス及びポート番号等の情報（アドレス情報）を通知する機能を有するアドレス情報提供用サーバであり、端末装置Ａ，ＢからのBindingリクエストを受信すると、そのBindingリクエストの送信元のアドレス情報を抽出し、その情報をMAPPED−ADDRESS属性として付加したBindingレスポンスを返信する。これにより、端末装置Ａ，Ｂは、自身が接続された
ルータのグローバルアドレス及びポート番号を認識することができる。
【００６０】
また、後述するように、端末装置Ａ，Ｂは、ＳＴＵＮサーバ３に対して所定の送信テストを実行することにより、ルータ５，６のＮＡＴ種別を判定することができる。この場合、ＳＴＵＮサーバ３は、実体として複数のＩＰアドレス及びポート番号（ここでは、図１１に示したアドレス（Ａ，ｐ）、アドレス（Ａ，ｑ）、アドレス（Ｂ，ｐ）、アドレス（Ｂ，ｑ））を有するサーバから構成されるものとする。
【００６１】
図２は、図１に示した端末装置の主要部の構成を示すブロック図である。端末装置Ａ，Ｂの各々は、アプリケーション１１、ＮＡＴ管理部（ＮＡＴ種別判定手段）１２、ＳＴＵＮ制御部１３、ＵＤＰパケット制御部１４、ネットワークスタック１５を有している。ここでは、本発明に関連する主要な構成について示しているが、端末装置Ａ，Ｂは、図２に示す他、例えば、ＩＰ電話装置として機能するための周知の構成を備えているものとする。
【００６２】
アプリケーション１１は、ユーザの操作に基づき端末装置が提供する各種機能（ここでは、ＩＰ電話装置として動作するための機能）を実行する。
【００６３】
ＮＡＴ管理部１２は、相手装置との通信の開始に先立ってＳＴＵＮ制御部１３に送信テストを実行させ、その結果に基づきＮＡＴ種別の判定を行う。送信テストは、ＳＴＵＮサーバ３に対してBindingリクエストを送信することにより実行される。ＮＡＴ管理部１２は、そのBindingリクエストの応答としてＳＴＵＮサーバ３から受信するBindingレスポンスの有無、及びそのBindingレスポンスに付加された情報（MAPPED−ADDRESS属性として付加されたＩＰアドレス及びポート番号）に基づきＮＡＴ種別の判定を行うことができる。
【００６４】
ＳＴＵＮ制御部１３は、ＳＴＵＮサーバ３との通信により、ＳＴＵＮのプロトコルに基づくＮＡＴ越えに関する処理を実行するものであり、ＮＡＴ越えのためのアドレス情報及びＮＡＴ種別の情報の取得を行う。
【００６５】
ＵＤＰパケット制御部１４は、ＵＤＰまたはＲＴＰのプロトコルに基づく通信処理を実行するものであり、ＵＤＰパケット及びメディアデータ（ここでは、通話音声）をパケット化したＲＴＰパケットの生成並びに送受信を実行する。
【００６６】
ネットワークスタック１５は、ＬＡＮに接続するためのネットワークアダプタを制御し、所定のプロトコルに基づきインターネット４を介した通信を実現する。
【００６７】
図２に示した各構成要素の機能は、例えば、図示しないＣＰＵ(Central Processing Unit)が所定の制御プログラムに従って処理を実行することにより実現することが可能である。
【００６８】
図３は、図１に示した端末装置による第１のＮＡＴ種別の判定方法を示すフロー図である。ここで、送信テスト（I）（第１の送信テスト）、送信テスト（II）（第２の送信テスト）、送信テスト（I'）（第３の送信テスト）及び送信テスト（III）（第４の送信テスト）、並びにこれらに対するＳＴＵＮサーバ３からの応答に関するＳＴ２０１〜ＳＴ２１１の処理については、図１０に示したＳＴ１０１〜ＳＴ１１１にそれぞれ相当するものである。よって、ここでは、それらの説明を省略し、以下で特に言及しない事項については図１０の場合と同様とする。
【００６９】
図３において、端末装置は、送信テスト（III）に対するＳＴＵＮサーバ３からのBindingレスポンスを受信しない場合（ＳＴ２１１：ＮＯ）、さらに、送信テスト（I''）（第５の送信テスト）を実行する（ＳＴ２１２）。この送信テスト（I''）は、図４に示すように、端末装置からルータを介してＳＴＵＮサーバ３の第３の宛先となるアドレス（Ａ，ｑ）に対してBindingリクエストを送信することにより行う。この場合、送信テスト（I）と同様に、CHANGE−REQUEST属性は指定されない。この第３の宛先としては、アドレス（Ａ，ｑ）に限らず、送信テスト（I）の第１の宛先及び送信テスト（I'）の第２の宛先とＩＰアドレスまたはポート番号の少なくとも一方が異なる宛先を用いることができる。例えば、図５に示すように、送信テスト（I''）を、ＳＴＵＮサーバの第３の宛先となるアドレス（Ｂ，ｐ）に対して行うこともできる。この送信テスト（I''）の実行により、同一のＬＡＮ側のポート番号から３つの異なる宛先に対してテストパケットが送信されたことになる。
【００７０】
そこで、端末装置は、送信テスト（I''）のBindingリクエストに対するＳＴＵＮサーバからのBindingレスポンスを受信すると、そのMAPPED−ADDRESS属性として付加されたポート番号が、先の送信テスト（I）の際にMAPPED−ADDRESS属性として付加されたポート番号と同一か否かを判定する（ＳＴ２１３）。このとき、それらのポート番号が同一の場合には、ＮＡＴ種別を「（６）ポート制限付きコーン型」と判定する。一方、ポート番号が同一でない場合には、ＮＡＴ種別を「（８）対称型（後発的）」と判定する。この「（８）対称型（後発的）」は、図１１及び図１２について説明したように、同一のＬＡＮ側のポート番号から３つの異なる宛先に対してパケットを送信した際にＷＡＮ側のポート番号が変化するＮＡＴ特性であることを示す。
【００７１】
次に、第２のＮＡＴ種別の判定方法について説明する。なお、第１のＮＡＴ種別の判定方法と第２のＮＡＴ種別の判定方法とは、どちらかを採用すれば良く両方の判定方法を重複して行う必要はない。
【００７２】
図６は、図１に示した端末装置による第２のＮＡＴ種別の判定方法を示すフロー図である。ここで、ＳＴ３０１〜ＳＴ３０５については、図１０に示したＳＴ１０１〜ＳＴ１０５にそれぞれ相当し、ＳＴ３０７〜ＳＴ３１０については、図１０に示したＳＴ１０６〜ＳＴ１０９にそれぞれ相当し、ＳＴ３１２，ＳＴ３１３については、図１０に示したＳＴ１１０，ＳＴ１１１にそれぞれ相当するものである。よって、ここでは、それらの説明を省略し、以下で特に言及しない事項については図１０の場合と同様とする。
【００７３】
図６において、端末装置は、送信テスト（I）に対するＳＴＵＮサーバ３からのBindingレスポンスを受信し、そのMAPPED−ADDRESS属性として付加されたＩＰアドレスが自身のプライベートなＩＰアドレスと同一でないと判定すると（ＳＴ３０３：ＮＯ）、送信テスト（I''）（第５の送信テスト）を実行する（ＳＴ３０６）。この送信テスト（I''）は、図３のＳＴ２１２の場合と同様に、端末装置からルータを介してＳＴＵＮサーバの第３の宛先となるアドレス（Ａ，ｑ）に対してBindingリクエストを送信することにより行うことができる。
【００７４】
この送信テスト（I''）は、異なる宛先に対する２回目（ＳＴ３０１の送信テスト（I）が１回目）のパケット送信に相当し、さらに、ＳＴ３０９における送信テスト（I'）の実行により、異なる宛先に対して３回目のパケットを送信したことになる。
【００７５】
そこで、端末装置は、ＳＴ３１０においてＩＰアドレスが同一であると判定された場合（ＳＴ３１０：ＹＥＳ）、さらに、そのBindingレスポンスのMAPPED−ADDRESS属性として付加されたポート番号が、先の送信テスト（I）の際にMAPPED−ADDRESS属性として付加されたポート番号と同一か否かを判定する（ＳＴ３１１）。
【００７６】
このとき、端末装置は、それらのポート番号が同一でない場合には、ＮＡＴ種別を「（８）対称型（後発的）」と判定し、それらのポート番号が同一の場合には送信テスト（III）（ＳＴ３１２）に進む。この「（８）対称型（後発的）」は、図３の場合と同様に、同一のＬＡＮ側のポート番号から３つの異なる宛先に対してパケットを送信した際にＷＡＮ側のポート番号が変化するＮＡＴ特性であることを示す。
【００７７】
この場合、ＳＴ３０９でＩＰアドレスが同一か否かを判定（ＳＴ３１０）した後にポート番号が同一か否かを判定（ＳＴ３１１）するので、「（８）対称型（後発的）」がポート番号のみが変化するものであれば、「（５）対称型」と区別して判定することができる。また、ＳＴ３０６における送信テスト（I''）の実行は、ＳＴ３０９における送信テスト（I'）を、異なる宛先に対する３回目のパケット送信とすることを目的とするものである。従って、送信テスト（I''）は、図６に示した場合に限らず、ＳＴ３０１の送信テスト（I）の直前、またはＳＴ３０９の送信テスト（I'）の直前（ＳＴ３０８の後）に実行することも可能である。或いは、送信テスト（I'）（ＳＴ３０９）の後に、送信テスト（I''）を異なる宛先に対する３回目のパケット送信とするべく実行し、その後、ＳＴ３１１と同様にポート番号が同一か否かを判定することもできる。
【００７８】
図７は、図１に示したＩＰ通信システムで実行される通信処理の一例を示すシーケンス図である。ここでは、端末装置Ａ（発呼側）がＳＩＰサーバ２を介して端末装置Ｂ（着呼側）との接続を確立し、メディアデータの送受信を実行する手順を示している。また、各端末装置Ａ，ＢのＮＡＴ種別の判定については、これらの通信処理に先立って実行されるものとする。
【００７９】
まず、端末装置Ａは、ＳＴＵＮサーバ３にBindingリクエストを送信し（１００１）、これを受けたＳＴＵＮサーバ３は、そのBindingリクエストの送信元（ルータ５）のグローバルアドレス及びポート番号の情報をMAPPED−ADDRESS属性として付加したBindingレスポンスを端末装置Ａに対して送信する（１００２）。次に、端末装置Ａは、自身のグローバルアドレス及びポート番号の情報を付加したINVITEリクエストをＳＩＰサーバ２に対して送信し（１００３）、続いて、Bindingリクエストを送信したポート番号を維持するために、ＳＩＰサーバ２に向けてＵＤＰパケット（ダミーパケット）の送信を開始する（１００４）。このＵＤＰパケットの送信は、所定の時間間隔で通信が終了するまで継続的に実行される。
【００８０】
端末装置ＡからINVITEリクエストを受信したＳＩＰサーバ２は、呼び出し中を通知するための180 Ringingメッセージを端末装置Ａに送信し（１００５）、さらに、受信したINVITEリクエストを端末装置Ｂに転送する（１００６）。
【００８１】
INVITEリクエストを受信した端末装置Ｂは、端末装置Ａと同様に、ＳＴＵＮサーバ３にBindingリクエストを送信し（１００７）、ＳＴＵＮサーバ３からのBindingレスポンスにより自身のグローバルアドレス及びポート番号の情報を取得する（１００８）。続いて、端末装置Ｂは、Bindingリクエストを送信したポート番号を維持するために、ＵＤＰパケット（ダミーパケット）の送信を開始する（１００９）。さらに、端末装置Ｂは、呼び出しの準備ができると、呼び出し中を通知するための180 RingingメッセージをＳＩＰサーバ２に送信する（１０１０）。
【００８２】
次に、端末装置Ｂは、ユーザによるオフフックを検出すると（１０１１）、ユーザの応答を通知するための200 OKメッセージをＳＩＰサーバ２に対して送信し（１０１２）、これを受けたＳＩＰサーバ２は、その200 OKメッセージを端末装置Ａに対して送信する（１０１３）。この200 OKメッセージには、通信１００８でＳＴＵＮサーバ３から取得した着呼側の端末装置のグローバルアドレス及びポート番号の情報が付加されている。ただし、ここで付加されるグローバルアドレス及びポート番号は、着呼側のＮＡＴ種別が対称型である場合、ＳＴＵＮサーバ３から取得した値とは異なるものとなり得る。
【００８３】
このような通信により端末装置間の接続が確立されると、端末装置Ａ，Ｂは、メディアセッションにおいて互いにメディアデータ（ここでは、通話音声）をＲＴＰパケットとして互いに送受する（１０１４，１０１５）。なお、オンフック後のセッションの終了等については説明を省略する。
【００８４】
上記通信処理において、例えば、端末装置Ａは、Bindingリクエスト送信（１００１）、INVITEリクエスト送信（１００３）、ＵＤＰパケット送信（１００４）、及びメディアデータ送信（１０１６）に関し、４つの異なる宛先（ＩＰアドレスまたはポート番号の少なくとも一方が異なる）に対してパケット送信を実行することになる。従って、ルータ５が、図３及び図６に示したようなＮＡＴ種別の判定方法において「（８）対称型（後発的）」と判定されるようなＮＡＴ特性を有する場合には、接続を確立する通信において後発的に対称型ＮＡＴとして機能することになる。
【００８５】
ここで、端末装置ＡのＮＡＴ管理部１２は、通信を開始する前に、通信に使用するＬＡＮ側のポート番号を前回の通信に用いた値とは異なる値に変更（例えば、前回の通信で使用したポート番号10000を20000に変更して新たな通信を開始）することができる。これにより、最初に送信するBindingリクエストの宛先が必ず第１の宛先となるので、異なる宛先に対する３回目のパケット送信のタイミングを確実に把握することができ、通信を適切に実行することが可能となる。また、端末装置Ａ，Ｂは、少なくとも一方のＮＡＴ種別が「（８）対称型（後発的）」である場合には、事前にＰ２Ｐ通信を断念するか、或いは専用の中継サーバ（例えば、ＴＵＲＮ(Traversal Using Relay NAT)サーバ）等を介したメディアデータの送受信を必要とすることもある。
【００８６】
なお、図７に示したような通信処理においては、ルータが、同一のＬＡＮ側のポートから異なる宛先に対して４回目のパケットを送信した際にＷＡＮ側のポート番号が変化するようなＮＡＴ特性を有する場合にも、端末装置間の通信に悪影響を及ぼす可能性がある。そこで、そのような仕様のルータであっても適切にＮＡＴ種別の判定が可能なように、図３及び図６に示したＮＡＴ種別の判定方法を、それぞれ次の図８及び図９に示すように変更することができる。
【００８７】
図８は、第１のＮＡＴ種別の判定方法の変更例を示すフロー図である。このＮＡＴ種別の判定方法は、ＳＴ２１２の送信テスト（I''）の実行後にテスト（I'''）（第６の送信テスト）を実行する（ＳＴ２１４）点を除けば、図３に示した方法と同様である。この送信テスト（I'''）は、第１乃至第３の宛先とＩＰアドレスまたはポート番号の少なくとも一方が異なる第４の宛先に対してBindingリクエストを送信することにより行う。例えば、送信テスト（I''）が、アドレス（Ａ，ｑ）に対してBindingリクエストを送信することにより行われた場合、送信テスト（I'''）は、アドレス（Ｂ，ｐ）に対してBindingリクエストを送信することにより行うことができる。
【００８８】
図９は、第２のＮＡＴ種別の判定方法の変更例を示すフロー図である。このＮＡＴ種別の判定方法は、ＳＴ３０６の送信テスト（I''）の実行後にテスト（I'''）（第６の送信テスト）を実行する（ＳＴ３１４）点を除けば、図６に示した方法と同様である。この送信テスト（I'''）は、図８の場合と同様に、第１乃至第３の宛先とＩＰアドレスまたはポート番号の少なくとも一方が異なる第４の宛先に対してBindingリクエストを送信することにより行う。
【００８９】
図８及び図９に示した方法を用いることで、同一のＬＡＮ側のポートから４つの異なる宛先に対してパケットを送信した際にＷＡＮ側のポート番号が変化するＮＡＴ特性を有するルータを用いる場合であっても、ＮＡＴ種別を判定する際に、その誤判定を防止しつつ適切な判定が可能となる。
【００９０】
以下、他の実施の形態について説明する。本実施の形態は、ルータのＮＡＴ種別が自動的に切り換わる場合に対応できる。
【００９１】
前述のように一般家庭内では、ルータのプライベート側（ＬＡＮ側）にパーソナルコンピュータ（以下、ＰＣとする）が接続され、ＩＰ電話の為の電話機も共に接続されることが多い。もしルータがPort Reuse特性を有する機種であると、特にルータのＬＡＮ側にＰＣが接続されている場合、ＰＣ接続の有無やＰＣの動作状況に応じてＮＡＴ種別が頻繁に変わる。端末装置（例えばＩＰ電話機）がＮＡＴ種別判定処理を定期的に行ない、判定処理の周期を短くすればより最新のＮＡＴ種別を把握できるが、その判定処理が通信開始の妨げにもなる。特にＩＰ電話機である場合、電話の発信／着信に影響する。ＮＡＴ種別判定処理は前述の複数の送信テストを行うので、1回の判定処理には数十秒の時間を要し、常に最新のＮＡＴ種別を把握するには限界がある。
【００９２】
本実施の形態は、ＮＡＴ機能を有する中継機器を介して通信を行うＩＰ通信装置において、ＮＡＴ種別の判定処理を定期的に行ない、前回実行された判定処理の結果がコーン型を示し、今回実行された判定処理の結果が対称型を示す場合、すぐにルータのＮＡＴ種別が対称型であると決定し、前回実行された判定処理の結果が対称型を示し、今回実行された判定処理の結果がコーン型を示す場合、その後、所定回数連続して判定処理の結果がコーン型を示す場合に限りＮＡＴルータの種別がコーン型であると決定するＮＡＴ種別判定手段を有する。
【００９３】
以下、図１７に沿って本実施の形態のＮＡＴ種別判定の一例を説明する。ＮＡＴ種別判定処理は例えば1時間に1回の頻度で定期的行われる。最初に、たとえば図３や図６に示す処理を実行してＮＡＴ種別を取得する（ＳＴ４０１）。
【００９４】
次に取得した最新のＮＡＴ種別がその時の動作モードに一致するか否かを判定する（ＳＴ４０２）。一致すれば変化無しとして判定処理を終わる。
【００９５】
取得した最新のＮＡＴ種別がその時の動作モードに一致しない場合（ＳＴ４０２：Ｎｏ）、ＮＡＴ超え難易度を比較する（ＳＴ４０３）。ＳＴ４０３では、そのときの端末で設定されているＮＡＴ種別（端末はそのＮＡＴ種別に沿った動作モードで動作）に対して、取得した最新のＮＡＴ種別が高い難易度であるか否か比較する。容易な種別（例えば完全コーン型）から厳しい種別（制限付きコーン型）に変更され場合(ＳＴ４０３：Ｙｅｓ)は、取得した最新のＮＡＴ種別に従って直ちに端末の動作モードを変更する（ＳＴ４０４）。そして継続時間と継続回数をカウントする管理カウンタを初期化して（ＳＴ４０５）、判定処理を終わる。
【００９６】
ＳＴ４０３での比較の結果がＮｏ（例えば厳しい制限付きコーン型から容易な完全コーン型に変更された場合）であれば、取得した最新のＮＡＴ種別が管理メモリに記録されている情報と一致するか否かを判定する（ＳＴ４０６）。取得した最新のＮＡＴ種別が管理メモリに記録されている情報と一致しない場合(ＳＴ４０６：Ｎｏ)、その取得した最新のＮＡＴ種別の情報を該管理メモリに記録する（ＳＴ４０７）。そして継続時間と継続回数をカウントする管理カウンタを初期化し、その状態から計測を開始する（ＳＴ４０８）。管理メモリは、直前に為されたＮＡＴ種別判定処理によって検知された最新のＮＡＴ種別を記録するために設けられる。
【００９７】
ＳＴ４０６での比較の結果、取得した最新のＮＡＴ種別が管理メモリに記録されている情報と一致した場合(ＳＴ４０６：Ｙｅｓ)は、継続時間と継続回数のカウント値が設定切り換えの条件を満たしているか否かを調べる（ＳＴ４０９）。管理カウンタの値が所定回数に達していないか、または容易な種別に変更された時からの所定時間が経過していない場合（ＳＴ４０９：Ｎｏ）、継続時間と継続回数をカウントする管理カウンタを初期化して（ＳＴ４１０）、判定処理を終わる。
【００９８】
本例では、ＮＡＴが厳しい種別から容易な種別に変更された時から同じ状態が所定回数：５に達し、且つ容易な種別に変更された時からの経過時間が２４Ｈ以上経過したことを条件に設定を切り替える。ＳＴ４０９では管理カウンタの値が所定回数：５に達し且つ２４Ｈ以上経過している場合にＳＴ４０４に移行し、取得した最新のＮＡＴ種別に従って端末の動作モードを変更する。その上で継続時間と継続回数を初期化して（ＳＴ４０５）判定処理を終わる。
【００９９】
図１８に沿って動作の一例を説明する。図１７に示すＮＡＴ種別判定処理が1時間に1回、定期的行われている（△マーク）。ＮＡＴルータが制限付きコーン型(Restricted Cone)で動作し、接続されたＩＰ電話機は制限付きコーン型を前提とした設定（ＲＣモード：ＮＡＴルータが自動で制限付きコーン型(Restricted Cone)で動作し、中継サーバを介さずＰ２Ｐ通信で通話を行うモード）で動作している。ある時、ＬＡＮ側にＰＣが外部との通信を開始することによってＮＡＴ種別が変化し（⇒マーク）、それまで制限付きコーン型(Restricted Cone)であったＮＡＴルータがＬＡＮ側の端末ごとにポート番号を変える対称型(Symmetric)の動作に変更される。その後で最初に行われるＮＡＴ種別判定処理（Ｔ1）によってＩＰ電話機は「対称型」を把握できる。ただＮＡＴ種別が変化してからＴ１までの間はＩＰ電話機は通信できない。
【０１００】
ＮＡＴ種別判定処理（Ｔ1）によってＩＰ電話機が「対称型」を検知すると対称型を前提とした設定に切換える（Ｓｙモード：ＮＡＴルータが制限付きコーン型(Restricted Cone)で動作している環境下で、ＩＰアドレスやポート番号をＮＡＴ越えのための情報として中継サーバに登録することにより中継サーバを介して通話を行うモード）。ＩＰ電話機が対称型の設定であれば、ＩＰアドレスやポート番号をＮＡＴ越えのための情報として中継サーバに登録することにより中継サーバを介して通話が可能になる。
【０１０１】
ＮＡＴ種別判定処理（Ｔ1）の後、その次に実行される判定処理（Ｔ2）の前ににＮＡＴ種別が変化し（⇒マーク）、対称型(Symmetric)であったＮＡＴルータが制限付きコーン型(Restricted Cone)に戻る。ＮＡＴルータが自動で制限付きコーン型(Restricted Cone)に戻ったとしても、ＩＰ電話機は引き続き中継サーバを介した通話が可能である。その後に行われるＮＡＴ種別判定処理（Ｔ2）によってＩＰ電話機は「コーン型」を検知するが、所定回数に達していない限り設定の切換えは行わず、対称型を前提とした設定を維持する（Ｓｙモード）。
【０１０２】
ＮＡＴ種別判定処理（Ｔ2）の後、その次に実行される判定処理（Ｔ3）の前にＬＡＮ側ＰＣが再び外部との通信を開始すると、再びＮＡＴ種別が対称型(Symmetric)に変化するが、ＩＰ電話機の設定は切り換らない。ＩＰ電話機は前回ＮＡＴ種別が対称型に変化してその後の判定処理（Ｔ1）にて「対称型」を検知した以降、対称型を前提とした設定を維持している（Ｓｙモード）。
【０１０３】
次に図１９に沿って、ＩＰ電話機が制限付きコーン型を前提とした設定（ＲＣモード）に戻る場合の動作例を説明する。前述のようにＩＰ電話機は、一度対称型を前提とした設定に切り換ると、「コーン型」を検知する回数が所定回数に達していない限り設定の切換えは行わず、対称型を前提とした設定を維持する。すなわち、Ｔ5、Ｔ6、Ｔ7、Ｔ8 において「コーン型」を検知しても、管理カウンタの値Ｎが所定回数に達していないので設定の切換えは行わない。図１９においてＮＡＴ種別判定処理（Ｔ9）にてＩＰ電話機が「コーン型」を検知した時に「コーン型」を検知した回数が所定回数５（Ｎ＝５）に達したものとする。回数が所定回数５に達し、且つ最初の「コーン型」を検知してから２４Ｈ以上経過したなら、ＮＡＴが「コーン型」で安定したと見なし、制限付きコーン型を前提とした設定（ＲＣモード）に戻す。
【０１０４】
なお、この例では「コーン型」を検知する回数が所定回数：５に達し、且つ最初に「コーン型」を検知してから２４Ｈ以上経過することを条件に設定を切り替えることとしたが、この所定回数および継続時間の設定は諸条件によって任意に選べば良い。
【０１０５】
図２０はＮＡＴ種別とpeer to peer（以下、Ｐ２Ｐ）で通信を行う場合の容易性を表す。複数あるＮＡＴ種別において接続の容易さの順を見ると、最も容易なのが完全コーン型(Full Cone)である、次に制限付きコーン型(Restricted Cone)、その次にポート制限付きコーン型(Port Restricted Cone)がきて、最も厳しいのが対称型(Symmetric)である。以上の実施形態の説明は制限付きコーン型(Restricted Cone)と対称型(Symmetric)の間でＮＡＴ種別が切り換る場合の例であったが、コーン型の中でも完全コーン型(Full Cone)、制限付きコーン型(Restricted Cone)、ポート制限付きコーン型(Port Restricted Cone)で接続の容易さが異なるので、コーン型の中で本発明を適用しても良い。
【０１０６】
すなわち、定期的なＮＡＴ種別判定処理によって容易な種別（例えば完全コーン型）から厳しい種別（制限付きコーン型）に変更されたことを検知すれば端末の設定を直ちに変更する。特にコーン型から対称型へ変化した場合、その時点からＩＰ電話機の動作はサーバを介した通信を行うように動作設定を切り替える（図１６：Ｓｙモード）。電話機がサーバを介した通信を行うように切り替わると、ＮＡＴ越えのための情報として直ぐに中継サーバに登録される。ただし、前述のようにルータが接続されたＰＣの動作状況等に応じて頻繁にＮＡＴ種別を変えるものである場合、わずかな時間の間に再び「コーン型」に戻ることがあり得る。
【０１０７】
本発明では、厳しい種別から容易な種別に変更されたことを検知しても直ぐには設定を変更せず、一定の回数以上継続して検知された場合に限り設定を変更する。すなわち容易な種別への変更が検知されても、その状態が安定するまではＮＡＴ超えが厳しい場合の動作（Ｓｙモード）が維持される。
【０１０８】
ＩＰ電話の接続をできるだけ低コストで行う場合、ＩＰ電話機同士がpeer to peer（以下、Ｐ２Ｐ）通信できるようにするのが望ましいことは言うまでもない。しかし定期的なＮＡＴ種別判定の結果、ある時、ＮＡＴ種別が「コーン型」から「対称型」に変化するとそれ以降は前述のようにＰ２Ｐの通信が困難になる。
【０１０９】
また、それまで「対称型」であったＮＡＴ種別が「コーン型」に切り換わったことが検出された場合は、Ｐ２Ｐの通信が可能にはなるが、前述のようにルータが頻繁にＮＡＴ種別を変える種類のものである場合、わずかな時間の間に再び「対称型」戻ることがあり得る。このようにＮＡＴ種別は予測困難な面があり、ＮＡＴ越えのための情報を中継サーバに登録するにもタイムラグがあるので、定期的なＮＡＴ種別判定だけでは十分とは言えない。
【０１１０】
このようなルータによってはＮＡＴ種別が安定せず、互いに相手側のアドレスやポート番号が正確に判別できない場合があり、Ｐ２Ｐ通信が出来ない場合がある。
【０１１１】
本発明において更に、予めＮＡＴ種別とＰ２Ｐ通信の容易さに対する重み付けを設定しておくことにより、可能な限りＰ２Ｐで通信できるように動作させることができる。
【０１１２】
ＮＡＴ種別判定処理の結果、Ｐ２Ｐ通信が困難な種類に変更されていた場合は端末で通信を行うためのＮＡＴ種別を直ちに変更し、判定処理の結果Ｐ２Ｐ通信が容易な種類に変更されていた場合、一定の期間且つ一定の回数以上継続しなければ、端末で通信を行うためのＮＡＴ種別設定を、その検出したＮＡＴ種別に変更しない。
【０１１３】
この構成により、ＮＡＴ種別が頻繁に変化するルータに接続された場合であっても、ユーザが手動で設定変更することなく、Ｐ２Ｐができない状況なら必ずサーバを介した通信を可能にし、Ｐ２Ｐができる状態が安定してからサーバを介さないＰ２Ｐ通信を提供できるように動作モードを自動的に切り替えることができる。したがって通信は確実に行え、電話機としての基本性能が確保でき、しかも可能な限り安価な通信を実現でき、利用者の期待に沿うことができる。
【産業上の利用可能性】
【０１１４】
本発明に係るＩＰ通信装置及びＩＰ通信装置によるＮＡＴ種別の判定方法は、ＩＰ通信装置が標準的な技術仕様（ＲＦＣ３４８９）に従ってＮＡＴ種別を判定する際に、その誤判定を防止しつつ適切に判定できる判定対象（即ち、ＮＡＴ特性）の範囲を向上させることが可能となるので、ＮＡＴ機能を有する中継機器を介して広域ネットワークに接続されるＩＰ通信装置及びＩＰ通信装置によるＮＡＴ種別の判定方法として有用である。
【図面の簡単な説明】
【０１１５】
【図１】本願発明に係るＩＰ通信装置を有するＩＰ通信システムの構成図
【図２】端末装置の主要部の構成を示すブロック図
【図３】端末装置による第１のＮＡＴ種別の判定方法を示すフロー図
【図４】送信テスト（I''）の一例を示す模式図
【図５】送信テスト（I''）の別の例を示す模式図
【図６】端末装置による第２のＮＡＴ種別の判定方法を示すフロー図
【図７】ＩＰ通信システムで実行される通信処理の一例を示すシーケンス図
【図８】図３の第１のＮＡＴ種別の判定方法の変更例を示すフロー図
【図９】図６の第２のＮＡＴ種別の判定方法の変更例を示すフロー図
【図１０】ＲＦＣ３４８９に定義されたＮＡＴ種別の判定フローを示す図
【図１１】ＮＡＴ種別の判定の際に実行する送信テストの説明図
【図１２】既存のルータのＮＡＴ特性の調査結果の一例を示す図
【図１３】既存のルータのＮＡＴ特性の調査結果の一例を示す図
【図１４】本願発明の他の実施形態に係るＩＰ通信装置の動作環境の一例を示すシステムの構成図
【図１５】既存のルータのPort Reuse特性の概略を説明するための説明図
【図１６】従来の定期的なＮＡＴ種別判定と端末動作モードの変化を示すシーケンス図
【図１７】本実施の形態のＮＡＴ種別判定手段の一例を示すフロー図
【図１８】本実施の形態のＮＡＴ種別判定と端末動作モードの変化を示すシーケンス図
【図１９】本実施の形態のＮＡＴ種別判定と端末動作モードの変化を示すシーケンス図
【図２０】ＮＡＴ種別とＰ２Ｐで通信を行う場合の容易性を表す説明図
【符号の説明】
【０１１６】
１  ＩＰ通信システム
２  ＳＩＰサーバ
３  ＳＴＵＮサーバ
５，６  ルータ（中継機器）
１２  ＮＡＴ管理部
１３  ＳＴＵＮ制御部
１４  ＵＤＰパケット制御部
Ａ，Ｂ  端末装置（ＩＰ通信装置）
【図１】
2008289109.tif 000003
【図２】
2008289109.tif 000004
【図３】
2008289109.tif 000005
【図４】
2008289109.tif 000006
【図５】
2008289109.tif 000007
【図６】
2008289109.tif 000008
【図７】
2008289109.tif 000009
【図８】
2008289109.tif 000010
【図９】
2008289109.tif 000011
【図１０】
2008289109.tif 000012
【図１１】
2008289109.tif 000013
【図１２】
2008289109.tif 000014
【図１３】
2008289109.tif 000015
【図１４】
2008289109.tif 000016
【図１５】
2008289109.tif 000017
【図１６】
2008289109.tif 000018
【図１７】
2008289109.tif 000019
【図１８】
2008289109.tif 000020
【図１９】
2008289109.tif 000021
【図２０】
2008289109.tif 000022