JP4847403B2 - Ip通信装置及びip通信装置によるnat種別の判定方法 - Google Patents

Ip通信装置及びip通信装置によるnat種別の判定方法 Download PDF

Info

Publication number
JP4847403B2
JP4847403B2 JP2007171133A JP2007171133A JP4847403B2 JP 4847403 B2 JP4847403 B2 JP 4847403B2 JP 2007171133 A JP2007171133 A JP 2007171133A JP 2007171133 A JP2007171133 A JP 2007171133A JP 4847403 B2 JP4847403 B2 JP 4847403B2
Authority
JP
Japan
Prior art keywords
request
transmission test
transmission
response
type
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007171133A
Other languages
English (en)
Other versions
JP2008289109A5 (ja
JP2008289109A (ja
Inventor
弘一 早田
晃 宮嶋
武 菅
宗孝 鷲津
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2007171133A priority Critical patent/JP4847403B2/ja
Priority to US12/104,783 priority patent/US7801059B2/en
Publication of JP2008289109A publication Critical patent/JP2008289109A/ja
Publication of JP2008289109A5 publication Critical patent/JP2008289109A5/ja
Application granted granted Critical
Publication of JP4847403B2 publication Critical patent/JP4847403B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Small-Scale Networks (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、NAT(Network Address Translation)機能を有する中継機器を介して広域ネットワークに接続されるIP(Internet Protocol)通信装置及びIP通信装置によるNAT種別の判定方法に関する。
従来、企業や家庭内のLAN(Local Area Network)に接続されたIP通信装置(IP電話等)は、所定の中継機器(ルータ等)を介してWAN(Wide-Area Network)に接続されるのが一般的である。そのような中継機器として、LANのみで通用するプライベートなIPアドレスと、外部のWANへのアクセスに利用できるグローバルなIPアドレスとを透過的に相互変換するためのNAT機能を搭載しているものが存在し、これによれば、LANに接続される機器に対するIPアドレスの付与の自由度が高まり、またLANのセキュリティも高まるという利点がある。
しかし、例えば、上記NAT機能を有する中継機器を介してWANに接続されたIP通信装置によりIP電話サービスを利用する場合、呼制御プロトコルとして用いるSIP(Session Initiation Protocol)等ではIPパケットのデータ部にプライベートIPアドレスやポート番号を付加して通信を行うため、IPパケットのヘッダ部分のIPアドレスのみを変換するNAT機能では対応できず、また、IPパケットのデータ部にグローバルIPアドレスを付加しようとした場合でも、IP通信装置は自らが利用するグローバルアドレスやポート番号の情報を自身では把握できないという問題があった。その結果、中継機器が壁となってWAN側からの通信パケットがLAN側に到達しないという、いわゆるNAT越え問題が生じていた。
そのような問題を解決するための方法として、STUN(Simple Traversal of User Datagram Protocol)を利用するものが知られている。例えば、グローバルネットワーク上に情報提供用のSTUNサーバを設置することで、IP通信装置はNAT越えに必要な情報(グローバルIPアドレス、ポート番号及びNATの種別等)を取得することが可能となる。
STUNのプロトコルを利用してNAT越えを実現する従来技術として、例えば、異なるルータにそれぞれ接続され、インターネットを介してP2P(Peer to Peer)通信を行う複数の情報処理装置を備えた情報通信システムにおいて、各情報処理装置は、その接続されたルータがUPnP機能を有している場合には、UPnPのプロトコルに基づきグローバルIPアドレス及びポート番号を取得して、それらを交換情報としてインターネット上の情報管理装置に登録する一方、接続されたルータがUPnP機能を有していない場合には、STUNのプロトコルに基づきグローバルIPアドレス及びポート番号を取得して、それらを交換情報として情報管理装置に登録し、各情報処理装置間で通信を実行する際には、情報管理装置から通信相手の交換情報を互いに取得し、当該取得した交換情報に基づきNAT越え通信を実現するようにしたものが知られている(特許文献1参照)。
特開2005−151142号公報
ところで、IETF(Internet Engineering Task Force)が発行するRFC(Request For Comment)3489に定義されるアルゴリズムによれば、NATの種別は、完全コーン型(Full Cone)、制限付きコーン型(Restricted Cone)、ポート制限付きコーン型(Port Restricted Cone)、及び対称型(Symmetric)の4つの種別に分類される。
ここで、RFC3489に定義されたアルゴリズムに従うNAT種別の判定フローの例を図10に、また、その判定の際に実行する送信テストの概略を図11に示す。
図10に示すように、まず、NAT種別を判定する端末装置は送信テスト(I)を実行する(ST101)。この送信テスト(I)は、図11(a)に示すように、端末装置からNAT機能を有するルータを介してSTUNサーバの第1の宛先であるIPアドレスA及びポート番号p(以下、同様のIPアドレス及びポート番号の組合せを「アドレス(A,p)」のように記載ものとする。)に対してBindingリクエストを送信することにより行う。この場合、STUNサーバに対してBindingレスポンスの送信元IPアドレス及びポート番号の変更を要求するCHANGE−REQUEST(送信元情報変更要求)属性は指定されない。続いて、端末装置は、STUNサーバからの応答があったか否かを判定し(ST102)、応答がなかった場合には、「(1)UDPをブロックするファイアウォールが存在している」と判定する。一方、端末装置は、STUNサーバからのBindingレスポンスを受信した場合(ST102:YES)、そのMAPPED−ADDRESS(マッピングアドレス)属性として付加されたIPアドレス(即ち、STUNサーバが受信したBindingリクエストの送信元IPアドレス)が、端末装置のプライベートIPアドレスと同一か否かを判定する(ST103)。
そこで、IPアドレスが同一の場合、端末装置は、自身がNAT配下にないと判断し、更に送信テスト(II)を実行する(ST104)。この送信テスト(II)では、図11(b)に示すように、送信テスト(I)と同一の宛先(アドレス(A,p))に対してBindingリクエストを送信するが、CHANGE−REQUEST属性において、STUNサーバが応答する際の送信元として、Bindingリクエストの受信先とは異なるIPアドレス及びポート番号(アドレス(B,q))を設定する。そこで、端末装置は、STUNサーバからの応答があったか否かを判定し(ST105)、応答がなかった場合には、「(2)アドレス変換をしないが、対称型NATのようにUDPをブロックするファイアウォールが存在している」と判定する。一方、STUNサーバからのBindingレスポンスを受信した場合(ST105:YES)、「(3)アクセス制限のないオープン・インターネット」であると判定する。
一方、ST103においてIPアドレスが同一でない(自身がNAT配下にある)場合、端末装置は、ST104と同様の送信テスト(II)を実行し(ST106)、STUNサーバからの応答があったか否かを判定する(ST107)。そこで、応答があった場合には、指示どおりに、Bindingリクエストの受信先とは異なるIPアドレス及びポート番号(アドレス(B,q))から応答が返ってきたので、端末装置は、ルータのNAT種別を「(4)完全コーン型(Full Cone)」であると判定する。一方、応答がなかった場合(ST107:NO)、続いて、端末装置は送信テスト(I')を実行する(ST108)。この送信テスト(I')は、図11(d)に示すように、端末装置からルータを介してSTUNサーバの第2の宛先であるアドレス(B,q)に対してBindingリクエストを送信することにより行う。この場合、送信テスト(I)と同様に、CHANGE−REQUEST属性は指定されない。
次に、端末装置は、送信テスト(I')のBindingリクエストに対するSTUNサーバからのBindingレスポンスを受信すると、そのMAPPED−ADDRESS属性として付加されたIPアドレス及びポート番号(即ち、STUNサーバが受信したBindingリクエストの送信元IPアドレス及びポート番号)が、先の送信テスト(I)の際にMAPPED−ADDRESS属性として付加されたIPアドレス及びポート番号と同一か否かを判定する(ST109)。そこで、IPアドレス及びポート番号が同一でない場合、STUNサーバの異なるIPアドレス宛にBindingリクエストを送信したときに送信元のルータのポート番号が変更されることがわかるので、端末装置は、ルータのNAT種別を「(5)対称型(Symmetric)」であると判定する。
一方、ST109においてIPアドレスが同一である場合、続いて、端末装置は送信テスト(III)を実行し(ST110)、STUNサーバからの応答があったか否かを判定する(ST111)。この送信テスト(III)では、図11(c)に示すように、送信テスト(I)と同一の宛先(アドレス(A,p))に対してBindingリクエストを送信するが、CHANGE−REQUEST属性において、STUNサーバが応答する際の送信元として、Bindingリクエストの受信先とは異なるポート番号(アドレス(A,q))を設定する。そこで、応答がなかった場合には、同一IPアドレスかつ異なるポート番号からの応答が返ってこないので、端末装置は、ルータのNAT種別を「(6)ポート制限付きコーン型(Port Restricted Cone)」であると判定し、一方、応答があった場合には、異なるポート番号であっても、同一IPアドレスであれば応答が返って来る事から、NAT種別を「(7)制限付きコーン型(Restricted Cone)」であると判定する。このように、NAT配下の端末装置は、上記送信テスト(I)〜(III)及び(I')を適宜実行することで、そのNAT種別を判定することが可能である。
しかしながら、本発明者らの調査によれば、上記のようなRFC3489に準拠したNAT種別の判定フローを用いた場合に、誤判定を生じさせ得る挙動を示すルータが存在するという知見が得られている。この調査は、端末装置の同一のLAN側ポート番号から調査対象のルータを介して異なる宛先(複数のIPアドレス及びポート番号)に対してテストパケットを送信し、ルータのWAN側ポート番号の変化を検出することにより行った。本発明者らが実施した調査の結果の一部を図12及び図13に示す。
図12において、テスト1(1−1〜1−3)は、まず、LAN側ポート番号を10000に設定し、第1の宛先(宛先IPアドレス:192.168.0.200、宛先ポート番号:17000)に送信すると、WAN側ポート番号が10000に設定され(1−1)、次に、第1の宛先からポート番号を変更した第2の宛先(宛先IPアドレス:192.168.0.200、宛先ポート番号:15000)に送信すると、WAN側ポート番号が同様に10000に設定され(1−2)、さらに、第2の宛先からIPアドレスを変更した第3の宛先(宛先IPアドレス:192.168.0.3、宛先ポート番号:15000)に送信すると、WAN側ポート番号が変更されて33576に設定される(1−3)ことを示している。
また、テスト2(2−1〜2−3)は、まず、LAN側ポート番号を20000に設定し、第1の宛先(宛先IPアドレス:192.168.0.200、宛先ポート番号:17000)に送信すると、WAN側ポート番号が20000に設定され(2−1)、次に、第1の宛先からIPアドレス及びポート番号を変更した第2の宛先(宛先IPアドレス:192.168.0.3、宛先ポート番号:15000)に送信すると、WAN側ポート番号が同様に20000に設定され(2−2)、さらに、第2の宛先からIPアドレスを変更した第3の宛先(宛先IPアドレス:192.168.0.200、宛先ポート番号:15000)に送信すると、WAN側ポート番号が変更されて33602に設定される(2−3)ことを示している。
他のテスト3〜6についても、同様に宛先IPアドレスまたはポート番号の少なくとも一方を変更(変更したIPアドレス及びポート番号には「※」が付してある。)して3回のテストパケット送信を実行した結果を示している。これらの調査結果より、調査対象のルータでは、同一のLAN側のポートから宛先を変更(直前の宛先とIPアドレスまたはポート番号の少なくとも一方が異なる)しながら3回目のテストパケットを送信した際にWAN側のポート番号が変更されることがわかった。そこで、更に詳細に調査した結果が図13である。
図13において、テスト7(7−1〜7−4)は、上記テスト1における1−1及び1−2と同様のパケット送信7−1,7−2を実行した後に、パケット送信7−1と同一の第1の宛先(IPアドレス:192.168.0.200、宛先ポート番号:17000)に送信しても、WAN側ポート番号は同様に10000に設定される(7−3)ことを示している。そこで、さらに、第1の宛先からIPアドレス及びポート番号を変更した第3の宛先(IPアドレス:192.168.0.3、宛先ポート番号:15000)に送信すると、WAN側ポート番号が変更されて33576に設定される(7−4)。
また、テスト8(8−1〜8−3)は、まず、LAN側ポート番号を20000に設定し、第1の宛先(宛先IPアドレス:192.168.0.200、宛先ポート番号:15000)に送信すると、WAN側ポート番号が20000に設定され(8−1)、次に、第1の宛先からポート番号を変更した第2の宛先(宛先IPアドレス:192.168.0.200、宛先ポート番号:16000)に送信すると、WAN側ポート番号が同様に20000に設定され(8−2)、さらに、第1及び第2の宛先とは別のポート番号を設定した第3の宛先(宛先IPアドレス:192.168.0.200、宛先ポート番号:17000)に送信すると、WAN側ポート番号が変更されて33018に設定される(8−3)ことを示している。
これらの調査結果より、調査対象のルータでは、同一のLAN側のポートから3つの異なる宛先(既に、パケット送信した宛先とIPアドレスまたはポート番号の少なくとも一方が異なる)に対してテストパケットを送信した際にWAN側のポート番号が変更される(即ち、ルータのNAT種別が後発的に対称型となる)ことがわかった。
上記調査対象となったルータを使用して図10に示したようなNAT種別の判定を実行した場合、送信テスト(I)〜(III)及び(I')では、送信テスト(I')の宛先のみが他と異なる(即ち、2つの異なる宛先に対してパケット送信を実行する)ので、実際は、後発的に対称型NATとして機能し得るルータであるにもかかわらず、ST111において「(6)ポート制限付きコーン型」という誤った判定がなされることになる。
従って、一般に、STUNによって取得した情報に基づきNAT経由の通信を行う場合には、事前にNATの種別を確認しておく必要があるが、上記調査のようなルータが使用された場合、端末装置は、対称型(後発的)を制限付きコーン型と誤判定することにより、NAT越え処理を適切に実行することができない場合があった。また、特許文献1に記載のような従来技術において、上記調査のようなルータが使用された場合、端末装置はNATのポート番号を正確に予測することができず、NAT越え処理を適切に実行することが困難となるという問題があった。
また、本発明者らの調査によると、ルータの種類によっては動作環境に応じてポート番号の割り当てのルールが変わり、上記のようなNAT種別判定処理を定期的に行うとある時点から異なるNAT種別として検出される場合がある。動作環境に応じてポート番号割り当てのルールが変わるものの中に、 Port Reuseと呼ばれる動作があり、現在出回っているルータの中に幾らかの割合で存在する。
このPort Reuseの動作が発生する動作環境の一例を図14に示す。図14(a)(b)において示したNATルータはLAN側に接続された端末装置(通信装置、Internet接続機器)の送信元ポート番号と同じポート番号を用いてNAT設定を行うPort Reuse性質を有するルータである。
図15はPort Reuse特性の概略を説明するための図である。図15に示されるようにNATルータはInternet接続機器のポート番号[Pa]を発信元とするパケットをWAN側に送り出す場合にルータのWAN側ポート番号としてもポート番号[Pa]をそのまま使い、ポート番号を[Pa]としてWAN側に送り出す。Internet接続機器のポート番号[Pb]を発信元とするパケットをWAN側に送り出す場合も同様に、NATルータのWAN側ポート番号としてポート番号[Pb]をそのまま使う。ポート番号[Pc]を発信元とするパケットをWAN側に送り出す場合も同様である。このように、LAN側機器からの発信元ポート番号を含むパケットに、WAN側のポート番号として当該発信元ポート番号と同一のポート番号をそのまま割り当てる特性のことを「Port Reuse」という。
例えば一般家庭内では、ルータのプライベート側(LAN側)にパーソナルコンピュータ(以下、PCとする)が接続している場合が多く、それに加えてIP電話の利用を開始した場合には、ルータのLAN側にIP電話の為の電話機とPCが共に接続されることが多い。もしルータがPort Reuse特性を有する機種であると、特にルータのLAN側にPCが接続されている場合、そのPCとWAN側のサーバあるいは他の端末との間で大容量ファイルを転送しているような場合に、その転送にかかる間じゅうNATルータはPCからの発信元ポート番号を含むパケットにWAN側のポート番号として当該発信元ポート番号と同一のポート番号をそのまま割り当てる動作を行なう。
図14(a)のように Port Reuse性質を有するNATルータのLAN側に接続された通信端末装置(例えばIP電話機)の制御により前述のNAT種別判定処理を行った時に通常はNAT種別が「(7)制限付きコーン型」として検出される場合であっても、同じNATルータのLAN側に図14(b)に示すようにPCと通信端末装置を共に接続すると以下のようなことが起こる。
先にInternet接続機器(例えばPC)が送信元ポート番号:PaでWAN側のサーバに接続して大量データのダウンロードを始め、そのダウンロードの最中に他方の端末(IP電話機)でNAT種別判定を送信元ポート番号:Paで行うと、先に通信を開始したPCの通信ポートにWAN側のポート番号Paが割り当てているために、あとから接続したIP電話機に対してWAN側のPaのポート番号は使用できず、この場合NATルータ内で規定されたポート番号Pbが割り当てられる。
このようにPort Reuse特性を有するNATルータの中には、他の機器とポート番号が重複したことにより、NATルータ内部で規定された他のポート番号を割り当てた場合、その間はNAT種別が対称型である場合と同じ動作を行うものがあるため、その間にNAT種別判定処理をおこなうと「(5)対称型」と判定されることがある。すなわちLAN側のPCが未使用なら「コーン型」の動作をするルータであっても、そのPCがWAN側とファイル転送を開始すればその間は「対称型」に変化する。PCが通信を終了すればまた「コーン型」に戻る。このようにLAN側機器の動作状況に応じてNAT種別が頻繁に変わることになる。
前述の現象によりIP電話機が一時的に通信不可になることがある。図16において、NAT種別判定処理は例えば1時間に1回の頻度で定期的行われる(△マーク)。ある時、LAN側のPCが外部との通信を開始することによってNAT種別が変化し(⇒マーク)、それまで制限付きコーン型(Restricted Cone)であったNATルータがLAN側の端末ごとにポート番号を変える対称型(Symmetric)の動作に変わると、それがLAN側のIP電話機で把握できるまでの間はNATの種別を誤認識している場合と同様の処理となるため、NAT越え処理を適切に実行することが困難になる。NATルータの動作が切り替わったあとで処理される種別判定処理によってIP電話機は「対称型」への変化を検知することができ、この時点でNATルータのNAT種別を検知することができるため、これ以降の処理で適切なNAT越えのための通信制御を行うことが可能となる。
しかしながら、NATルータに接続されている環境の変化(PCの通信終了など)により、定期的なNAT種別判定で「制限付きコーン型」と検出される場合もある。本検出の後、再びPCが外部との通信を開始すると、前記同様、IP電話機がNAT種別判定を行い、NAT種別を把握できるまでの間はNAT越え処理を適切に実行することが困難になり、動作環境により、この状態が繰り返されるという問題があった。
このようにNAT種別がルータが動作環境に応じて変わる場合、PCと外部の通信が頻繁に繰り返されるとIP電話機が通信できなくなる期間が頻発し、電話機としての利便性が低下してしまう。
本発明は、このような従来技術の課題を鑑みて案出されたものであり、標準的な技術仕様(RFC3489)に従ってNAT種別を判定する際に、その誤判定を防止しつつ適切に判定できる判定対象(即ち、NAT特性)の範囲を向上させたIP通信装置及びIP通信装置によるNAT種別の判定方法を提供することを主目的とする。
本発明のIP通信装置によるNAT種別の判定方法は、NAT機能を有する中継機器を介して通信を行うIP通信装置が、第1のIPアドレス及び第1のポート番号からなるSTUNサーバの第1の宛先に対してリクエストを送信する第1の送信テストと、前記第1の宛先に対し、レスポンスの送信元IPアドレス及びポート番号の変更を指定した情報を含むリクエストを送信する第2の送信テストと、第2のIPアドレス及び第2のポート番号からなるSTUNサーバの第2の宛先に対してリクエストを送信する第3の送信テストと、前記第1の宛先に対し、レスポンスの送信元ポート番号のみの変更を指定した情報を含むリクエストを送信する第4の送信テストとを実行することにより行うNAT種別の判定方法において、前記第1及び第2の宛先とIPアドレスまたはポート番号の少なくとも一方が異なる第3の宛先に対してリクエストを送信する第5の送信テストを実行するステップと、前記第1、第2、第3の宛先に対する各々少なくとも1回の送信テストの実行が終了した際に、その最後に実行された送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報と、前記最後に実行された送信テストより前に実行されたいずれかの送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報とを比較し、それらのアドレス情報が同一でない場合、前記NAT種別を対称型と判定するステップとを有することを特徴とする。
また、本発明のIP通信装置によるNAT種別の判定方法は、NAT機能を有する中継機器を介して通信を行うIP通信装置が、第1のIPアドレス及び第1のポート番号からなるSTUNサーバの第1の宛先に対してリクエストを送信する第1の送信テストと、前記第1の宛先に対し、レスポンスの送信元IPアドレス及びポート番号の変更を指定した情報を含むリクエストを送信する第2の送信テストと、第2のIPアドレス及び第2のポート番号からなるSTUNサーバの第2の宛先に対してリクエストを送信する第3の送信テストと、前記第1の宛先に対し、レスポンスの送信元ポート番号のみの変更を指定した情報を含むリクエストを送信する第4の送信テストとを実行することにより行うNAT種別の判定方法において、前記第1及び第2の宛先とIPアドレスまたはポート番号の少なくとも一方が異なる第3の宛先に対してリクエストを送信する第5の送信テストを実行するステップと、前記第5の送信テストを実行するステップの後に、前記第1乃至第3の宛先とIPアドレスまたはポート番号の少なくとも一方が異なる第4の宛先に対してリクエストを送信する第6の送信テストを実行するステップと、前記第1、第2、第3、第4の宛先に対する各々少なくとも1回の送信テストの実行が終了した際に、その最後に実行された送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報と、前記最後に実行された送信テストより前に実行されたいずれかの送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報とを比較し、それらのアドレス情報が同一でない場合、前記NAT種別を対称型と判定するステップとを有することを特徴とする。
このように本発明によれば、IP通信装置が標準的な技術仕様(RFC3489)に従ってNAT種別を判定する際に、その誤判定を防止しつつ適切に判定できる判定対象(即ち、NAT特性)の範囲を向上させることが可能となるという優れた効果を奏する。
上記課題を解決するためになされた第1の発明は、NAT機能を有する中継機器を介して通信を行うIP通信装置が、第1のIPアドレス及び第1のポート番号からなるSTUNサーバの第1の宛先に対してリクエストを送信する第1の送信テストと、前記第1の宛先に対し、レスポンスの送信元IPアドレス及びポート番号の変更を指定した情報を含むリクエストを送信する第2の送信テストと、第2のIPアドレス及び第2のポート番号からなるSTUNサーバの第2の宛先に対してリクエストを送信する第3の送信テストと、前記第1の宛先に対し、レスポンスの送信元ポート番号のみの変更を指定した情報を含むリクエストを送信する第4の送信テストとを実行することにより行うNAT種別の判定方法において、前記第1及び第2の宛先とIPアドレスまたはポート番号の少なくとも一方が異なる第3の宛先に対してリクエストを送信する第5の送信テストを実行するステップと、前記第1、第2、第3の宛先に対する各々少なくとも1回の送信テストの実行が終了した際に、その最後に実行された送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報と、前記最後に実行された送信テストより前に実行されたいずれかの送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報とを比較し、それらのアドレス情報が同一でない場合、前記NAT種別を対称型と判定するステップとを有する構成とする。
これによると、標準的な技術仕様(RFC3489)に従ってNAT種別を判定する際に、その誤判定を防止しつつ適切に判定できる判定対象(即ち、NAT特性)の範囲を向上させることが可能となる。即ち、同一のLAN側のポートから3つの異なる宛先(既に、パケット送信した宛先とIPアドレスまたはポート番号の少なくとも一方が異なる)に対して送信テストを実行した際にWAN側のポート番号が変化する(即ち、後発的に対称型NATとして機能する)仕様の中継機器(ルータ等)を用いる場合であっても、NAT種別の誤判定を防止して、適切な判定が可能となる。
上記課題を解決するためになされた第2の発明は、NAT機能を有する中継機器を介して通信を行うIP通信装置が、第1のIPアドレス及び第1のポート番号からなるSTUNサーバの第1の宛先に対してリクエストを送信する第1の送信テストと、前記第1の宛先に対し、レスポンスの送信元IPアドレス及びポート番号の変更を指定した情報を含むリクエストを送信する第2の送信テストと、第2のIPアドレス及び第2のポート番号からなるSTUNサーバの第2の宛先に対してリクエストを送信する第3の送信テストと、前記第1の宛先に対し、レスポンスの送信元ポート番号のみの変更を指定した情報を含むリクエストを送信する第4の送信テストとを実行することにより行うNAT種別の判定方法において、前記第1及び第2の宛先とIPアドレスまたはポート番号の少なくとも一方が異なる第3の宛先に対してリクエストを送信する第5の送信テストを実行するステップと、前記第5の送信テストを実行するステップの後に、前記第1乃至第3の宛先とIPアドレスまたはポート番号の少なくとも一方が異なる第4の宛先に対してリクエストを送信する第6の送信テストを実行するステップと、前記第1、第2、第3、第4の宛先に対する各々少なくとも1回の送信テストの実行が終了した際に、その最後に実行された送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報と、前記最後に実行された送信テストより前に実行されたいずれかの送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報とを比較し、それらのアドレス情報が同一でない場合、前記NAT種別を対称型と判定するステップとを有する構成とする。
上記課題を解決するためになされた第3の発明は、第1または第2の発明において、前記第1乃至第4の送信テストは順次実行され、前記第5の送信テストは、前記第4の送信テストの実行後、そのリクエストに対する前記STUNサーバからのレスポンスがない場合に実行する構成とすることができる。これによると、簡易な方式によりNAT種別の誤判定を防止して、適切な判定が可能となる。
上記課題を解決するためになされた第4の発明は、第1または第2の発明において、前記第1乃至第4の送信テストは順次実行され、前記第5の送信テストは、前記第1乃至第3の送信テストのいずれかの直前に実行する構成とすることができる。これによると、簡易な方式によりNAT種別の誤判定を防止して、適切な判定が可能となる。
上記課題を解決するためになされた第5の発明は、第3の発明において、前記第1の送信テストを実行し、前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報が自己のアドレス情報と同一でない場合に前記第2の送信テストを実行し、当該リクエストにおいて変更を指定したアドレス情報からレスポンスがあった場合に前記中継機器のNAT種別が完全コーン型であると判定するステップと、前記変更を指定したアドレス情報からレスポンスがなかった場合に前記第3の送信テストを実行し、この第3の送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報と、前記第1の送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報とが同一である場合にさらに前記第4の送信テストを実行し、当該リクエストにおいて変更を指定したアドレス情報からレスポンスがあった場合に前記中継機器のNAT種別が制限付きコーン型であると判定するステップと、前記第4の送信テストに対してレスポンスがなかった場合に前記第5の送信テストを実行し、この第5の送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のポート番号と、前記第1の送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のポート番号とが同一である場合に前記中継機器のNAT種別がポート制限付きコーン型であると判定するステップとをさらに有する構成とする。
上記課題を解決するためになされた第6の発明は、第4の発明において、前記第1の送信テストを実行し、前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報が自己のアドレス情報と同一でない場合に前記第5の送信テストと前記第2の送信テストを続けて実行し、前記第2の送信テストのリクエストにおいて変更を指定したアドレス情報からレスポンスがあった場合に前記中継機器のNAT種別が完全コーン型であると判定するステップと、前記変更を指定したアドレス情報からレスポンスがなかった場合に前記第3の送信テストを実行し、この第3の送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報と、前記第1の送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報とが同一である場合にさらに前記第4の送信テストを実行し、この第4の送信テストのリクエストにおいて変更を指定したアドレス情報からレスポンスがあった場合に前記中継機器のNAT種別が制限付きコーン型であると判定するステップと、前記第4の送信テストに対してレスポンスがなかった場合に前記中継機器のNAT種別がポート制限付きコーン型であると判定するステップとをさらに有する構成とする。
上記課題を解決するためになされた第7の発明は、NAT機能を有する中継機器を介して通信を行うIP通信装置において、第1のIPアドレス及び第1のポート番号からなるSTUNサーバの第1の宛先に対してリクエストを送信する第1の送信テストと、前記第1の宛先に対し、レスポンスの送信元IPアドレス及びポート番号の変更を指定した情報を含むリクエストを送信する第2の送信テストと、第2のIPアドレス及び第2のポート番号からなるSTUNサーバの第2の宛先に対してリクエストを送信する第3の送信テストと、前記第1の宛先に対し、レスポンスの送信元ポート番号のみの変更を指定した情報を含むリクエストを送信する第4の送信テストとを実行することによりNAT種別の判定を行う際に、前記第1及び第2の宛先とIPアドレスまたはポート番号の少なくとも一方が異なる第3の宛先に対してリクエストを送信する第5の送信テストを実行するステップと、前記第1、第2、第3の宛先に対する各々少なくとも1回の送信テストの実行が終了した際に、その最後に実行された送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報と、前記最後に実行された送信テストより前に実行されたいずれかの送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報とを比較し、それらのアドレス情報が同一でない場合、前記NAT種別を対称型と判定するステップとを実行するNAT種別判定手段を備えた構成とする。
これによると、標準的な技術仕様(RFC3489)に従ってNAT種別を判定する際に、その誤判定を防止しつつ適切に判定できる判定対象の範囲を向上させることが可能となる。
上記課題を解決するためになされた第8の発明は、NAT機能を有する中継機器を介して通信を行うIP通信装置において、第1のIPアドレス及び第1のポート番号からなるSTUNサーバの第1の宛先に対してリクエストを送信する第1の送信テストと、前記第1の宛先に対し、レスポンスの送信元IPアドレス及びポート番号の変更を指定した情報を含むリクエストを送信する第2の送信テストと、第2のIPアドレス及び第2のポート番号からなるSTUNサーバの第2の宛先に対してリクエストを送信する第3の送信テストと、前記第1の宛先に対し、レスポンスの送信元ポート番号のみの変更を指定した情報を含むリクエストを送信する第4の送信テストとを実行することによりNAT種別の判定を行う際に、前記第1及び第2の宛先とIPアドレスまたはポート番号の少なくとも一方が異なる第3の宛先に対してリクエストを送信する第5の送信テストを実行するステップと、前記第5の送信テストを実行するステップの後に、前記第1乃至第3の宛先とIPアドレスまたはポート番号の少なくとも一方が異なる第4の宛先に対してリクエストを送信する第6の送信テストを実行するステップと、前記第1、第2、第3、第4の宛先に対する各々少なくとも1回の送信テストの実行が終了した際に、その最後に実行された送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報と、前記最後に実行された送信テストより前に実行されたいずれかの送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報とを比較し、それらのアドレス情報が同一でない場合、前記NAT種別を対称型と判定するステップとを実行するNAT種別判定手段を備えた構成とする。
上記課題を解決するためになされた第9の発明は、第7または第8の発明において、前記第1乃至第4の送信テストは順次実行され、前記第5の送信テストは、前記第4の送信テストの実行後、そのリクエストに対する前記STUNサーバからのレスポンスがない場合に実行する構成とする。
上記課題を解決するためになされた第10の発明は、第7または第8の発明において、前記第1乃至第4の送信テストは順次実行され、前記第5の送信テストは、前記第1乃至第3の送信テストのいずれかの直前に実行する構成とする。
上記課題を解決するためになされた第11の発明は、第9の発明において、前記NAT種別判定手段は、前記第1の送信テストを実行し、前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報が自己のアドレス情報と同一でない場合に前記第2の送信テストを実行し、当該リクエストにおいて変更を指定したアドレス情報からレスポンスがあった場合に前記中継機器のNAT種別が完全コーン型であると判定するステップと、前記変更を指定したアドレス情報からレスポンスがなかった場合に前記第3の送信テストを実行し、この第3の送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報と、前記第1の送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報とが同一である場合にさらに前記第4の送信テストを実行し、当該リクエストにおいて変更を指定したアドレス情報からレスポンスがあった場合に前記中継機器のNAT種別が制限付きコーン型であると判定するステップと、
前記第4の送信テストに対してレスポンスがなかった場合に前記第5の送信テストを実行し、この第5の送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のポート番号と、前記第1の送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のポート番号とが同一である場合に前記中継機器のNAT種別がポート制限付きコーン型であると判定するステップとをさらに実行する構成とする。
上記課題を解決するためになされた第12の発明は、第10の発明において、前記NAT種別判定手段は、前記第1の送信テストを実行し、前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報が自己のアドレス情報と同一でない場合に前記第5の送信テストと前記第2の送信テストを続けて実行し、前記第2の送信テストのリクエストにおいて変更を指定したアドレス情報からレスポンスがあった場合に前記中継機器のNAT種別が完全コーン型であると判定するステップと、前記変更を指定したアドレス情報からレスポンスがなかった場合に前記第3の送信テストを実行し、この第3の送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報と、前記第1の送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報とが同一である場合にさらに前記第4の送信テストを実行し、この第4の送信テストのリクエストにおいて変更を指定したアドレス情報からレスポンスがあった場合に前記中継機器のNAT種別が制限付きコーン型であると判定するステップと、前記第4の送信テストに対してレスポンスがなかった場合に前記中継機器のNAT種別がポート制限付きコーン型であると判定するステップとをさらに実行する構成とする。
上記課題を解決するためになされた第13の発明は、第5または第6の発明において、前記NAT種別判定方法による判定を定期的に行ない、前回実行された判定の結果がコーン型を示し、今回実行された判定の結果が対称型を示す場合は直ちに前記中継機器のNAT種別が対称型であると決定し、前回実行された判定の結果が対称型を示し、今回実行された判定の結果がコーン型を示す場合、その後所定回数連続して判定の結果がコーン型を示す場合に限り前記中継機器のNAT種別がコーン型であると決定する構成とする。
これによると、NAT種別が頻繁に変化するルータに接続された場合であっても、ユーザが手動で設定変更することなく、P2P通信が容易な種類にNAT種別が切り換わった場合にはその状態が安定してから動作モードを自動的に切り換えるので、通信を確実に行なってIP通信装置が電話機の場合も基本性能が確保でき、しかも可能な限りP2P通信などの安価な通信に切り換えることが可能となる。
上記課題を解決するためになされた第14の発明は、第11または第12の発明において、前記NAT種別判定手段よる判定を定期的に行ない、前回実行された判定の結果がコーン型を示し、今回実行された判定の結果が対称型を示す場合は直ちに前記中継機器のNAT種別が対称型であると決定し、前回実行された判定の結果が対称型を示し、今回実行された判定の結果がコーン型を示す場合はその後所定回数連続して判定の結果がコーン型を示す場合に限り前記中継機器のNAT種別がコーン型であると決定する構成とする。
これによると、NAT種別が頻繁に変化するルータに接続された場合であっても、ユーザが手動で設定変更することなく、P2P通信が容易な種類にNAT種別が切り換わった場合にはその状態が安定してから動作モードを自動的に切り換えるので、通信を確実に行なってIP通信装置が電話機の場合も基本性能が確保でき、しかも可能な限りP2P通信などの安価な通信に切り換えることが可能となる。
以下、本発明の実施の形態について図面を参照しながら説明する。
図1は、本願発明に係るIP通信装置としての端末装置を有するIP通信システムの概略を示す構成図である。このIP通信システム1は、複数の端末装置(IP通信装置)A,B、SIPサーバ2、STUNサーバ3が、広域ネットワークとしてのインターネット4を介してそれぞれ通信可能に接続された構成を有する。
端末装置A,Bは、インターネット4を介して音声や映像等のデータ(以下、「メディアデータ」という。)を通信するためのIP通信機能を有しており、それぞれ異なるLAN(図示せず)に属し、各ルータ(中継機器)5,6を介してインターネット4に接続される。これら端末装置A,Bは、SIPのUAC(User Agent Client)として機能する。
本実施形態では、以下で端末装置A,Bの機能及び動作等の詳細を説明する際に、必要に応じて端末装置A,BをSIP対応のIP電話装置として取り扱うこととするが、これに限らず端末装置A,Bには、IP通信機能を有する任意の情報処理装置を用いることができる。
ルータ5,6は、端末装置A,Bが各LANにおいて通信に使用するプライベートな(LAN側)IPアドレスと、その外部のインターネット4を介した通信に使用するグローバルな(WAN側)IPアドレスとを透過的に相互変換するためのNAT機能を搭載したブロードバンドルータである。ルータ5,6は、そのNAT機能により、NATの内側から外側へ開始されるアウトバウンド通信を許容する一方、NATの外側から内側へ開始されるインバウンド通信を原則として拒否し、また、時間経過等によりNATの変換テーブルのエントリ(登録内容)を消滅させることで、ファイアウォール的な役割も果たす。
なお、ここで用いる用語「NAT」は、プライベートIPアドレスとグローバルIPアドレスとを変換する技術に限定されるものではなく、IPアドレスの変換に加えてポート番号を変換するNAPT(Network Address Port Translation)等の類似技術を含むものとする。また、各ルータ5,6のNAT機能は、図10に示したRFC3489で定義されるNAT種別(完全コーン型(Full Cone)、制限付きコーン型(Restricted Cone)、ポート制限付きコーン型(Port Restricted Cone)、対称型(Symmetric)等)、或いは図12及び図13で説明したような後発的な対称型のいずれかに属するものとする。
SIPサーバ2は、UAS(User Agent Server)として機能する呼接続用サーバであり、端末装置A,BとのSIPメッセージの送受により端末装置A,B間の接続を仲介する。SIPサーバ2は、端末装置A,Bからのリクエストに応じて、それら端末装置間の呼接続のための位置情報並びに発呼要求及び応答等の中継を行うプロキシサーバ機能、また、端末装置A,Bに関するグローバルアドレス、ポート番号、NAT種別等の情報を管理(所定のデータベースへの登録、更新、削除処理等を実行)するレジストラ機能を有する。このSIPサーバ2により接続が確立された端末装置同士は、メディアセッションにおいてメディアデータのP2P通信が可能となる。ここでは、端末装置A,BはともにSIPサーバ2を利用する構成としているが、端末装置A,Bが互いに異なるプロキシサーバを利用して通信を行う構成も可能である。
STUNサーバ3は、端末装置A,Bからのリクエストに応じて、そのグローバルアドレス及びポート番号等の情報(アドレス情報)を通知する機能を有するアドレス情報提供用サーバであり、端末装置A,BからのBindingリクエストを受信すると、そのBindingリクエストの送信元のアドレス情報を抽出し、その情報をMAPPED−ADDRESS属性として付加したBindingレスポンスを返信する。これにより、端末装置A,Bは、自身が接続された
ルータのグローバルアドレス及びポート番号を認識することができる。
また、後述するように、端末装置A,Bは、STUNサーバ3に対して所定の送信テストを実行することにより、ルータ5,6のNAT種別を判定することができる。この場合、STUNサーバ3は、実体として複数のIPアドレス及びポート番号(ここでは、図11に示したアドレス(A,p)、アドレス(A,q)、アドレス(B,p)、アドレス(B,q))を有するサーバから構成されるものとする。
図2は、図1に示した端末装置の主要部の構成を示すブロック図である。端末装置A,Bの各々は、アプリケーション11、NAT管理部(NAT種別判定手段)12、STUN制御部13、UDPパケット制御部14、ネットワークスタック15を有している。ここでは、本発明に関連する主要な構成について示しているが、端末装置A,Bは、図2に示す他、例えば、IP電話装置として機能するための周知の構成を備えているものとする。
アプリケーション11は、ユーザの操作に基づき端末装置が提供する各種機能(ここでは、IP電話装置として動作するための機能)を実行する。
NAT管理部12は、相手装置との通信の開始に先立ってSTUN制御部13に送信テストを実行させ、その結果に基づきNAT種別の判定を行う。送信テストは、STUNサーバ3に対してBindingリクエストを送信することにより実行される。NAT管理部12は、そのBindingリクエストの応答としてSTUNサーバ3から受信するBindingレスポンスの有無、及びそのBindingレスポンスに付加された情報(MAPPED−ADDRESS属性として付加されたIPアドレス及びポート番号)に基づきNAT種別の判定を行うことができる。
STUN制御部13は、STUNサーバ3との通信により、STUNのプロトコルに基づくNAT越えに関する処理を実行するものであり、NAT越えのためのアドレス情報及びNAT種別の情報の取得を行う。
UDPパケット制御部14は、UDPまたはRTPのプロトコルに基づく通信処理を実行するものであり、UDPパケット及びメディアデータ(ここでは、通話音声)をパケット化したRTPパケットの生成並びに送受信を実行する。
ネットワークスタック15は、LANに接続するためのネットワークアダプタを制御し、所定のプロトコルに基づきインターネット4を介した通信を実現する。
図2に示した各構成要素の機能は、例えば、図示しないCPU(Central Processing Unit)が所定の制御プログラムに従って処理を実行することにより実現することが可能である。
図3は、図1に示した端末装置による第1のNAT種別の判定方法を示すフロー図である。ここで、送信テスト(I)(第1の送信テスト)、送信テスト(II)(第2の送信テスト)、送信テスト(I')(第3の送信テスト)及び送信テスト(III)(第4の送信テスト)、並びにこれらに対するSTUNサーバ3からの応答に関するST201〜ST211の処理については、図10に示したST101〜ST111にそれぞれ相当するものである。よって、ここでは、それらの説明を省略し、以下で特に言及しない事項については図10の場合と同様とする。
図3において、端末装置は、送信テスト(III)に対するSTUNサーバ3からのBindingレスポンスを受信しない場合(ST211:NO)、さらに、送信テスト(I'')(第5の送信テスト)を実行する(ST212)。この送信テスト(I'')は、図4に示すように、端末装置からルータを介してSTUNサーバ3の第3の宛先となるアドレス(A,q)に対してBindingリクエストを送信することにより行う。この場合、送信テスト(I)と同様に、CHANGE−REQUEST属性は指定されない。この第3の宛先としては、アドレス(A,q)に限らず、送信テスト(I)の第1の宛先及び送信テスト(I')の第2の宛先とIPアドレスまたはポート番号の少なくとも一方が異なる宛先を用いることができる。例えば、図5に示すように、送信テスト(I'')を、STUNサーバの第3の宛先となるアドレス(B,p)に対して行うこともできる。この送信テスト(I'')の実行により、同一のLAN側のポート番号から3つの異なる宛先に対してテストパケットが送信されたことになる。
そこで、端末装置は、送信テスト(I'')のBindingリクエストに対するSTUNサーバからのBindingレスポンスを受信すると、そのMAPPED−ADDRESS属性として付加されたポート番号が、先の送信テスト(I)の際にMAPPED−ADDRESS属性として付加されたポート番号と同一か否かを判定する(ST213)。このとき、それらのポート番号が同一の場合には、NAT種別を「(6)ポート制限付きコーン型」と判定する。一方、ポート番号が同一でない場合には、NAT種別を「(8)対称型(後発的)」と判定する。この「(8)対称型(後発的)」は、図11及び図12について説明したように、同一のLAN側のポート番号から3つの異なる宛先に対してパケットを送信した際にWAN側のポート番号が変化するNAT特性であることを示す。
次に、第2のNAT種別の判定方法について説明する。なお、第1のNAT種別の判定方法と第2のNAT種別の判定方法とは、どちらかを採用すれば良く両方の判定方法を重複して行う必要はない。
図6は、図1に示した端末装置による第2のNAT種別の判定方法を示すフロー図である。ここで、ST301〜ST305については、図10に示したST101〜ST105にそれぞれ相当し、ST307〜ST310については、図10に示したST106〜ST109にそれぞれ相当し、ST312,ST313については、図10に示したST110,ST111にそれぞれ相当するものである。よって、ここでは、それらの説明を省略し、以下で特に言及しない事項については図10の場合と同様とする。
図6において、端末装置は、送信テスト(I)に対するSTUNサーバ3からのBindingレスポンスを受信し、そのMAPPED−ADDRESS属性として付加されたIPアドレスが自身のプライベートなIPアドレスと同一でないと判定すると(ST303:NO)、送信テスト(I'')(第5の送信テスト)を実行する(ST306)。この送信テスト(I'')は、図3のST212の場合と同様に、端末装置からルータを介してSTUNサーバの第3の宛先となるアドレス(A,q)に対してBindingリクエストを送信することにより行うことができる。
この送信テスト(I'')は、異なる宛先に対する2回目(ST301の送信テスト(I)が1回目)のパケット送信に相当し、さらに、ST309における送信テスト(I')の実行により、異なる宛先に対して3回目のパケットを送信したことになる。
そこで、端末装置は、ST310においてIPアドレスが同一であると判定された場合(ST310:YES)、さらに、そのBindingレスポンスのMAPPED−ADDRESS属性として付加されたポート番号が、先の送信テスト(I)の際にMAPPED−ADDRESS属性として付加されたポート番号と同一か否かを判定する(ST311)。
このとき、端末装置は、それらのポート番号が同一でない場合には、NAT種別を「(8)対称型(後発的)」と判定し、それらのポート番号が同一の場合には送信テスト(III)(ST312)に進む。この「(8)対称型(後発的)」は、図3の場合と同様に、同一のLAN側のポート番号から3つの異なる宛先に対してパケットを送信した際にWAN側のポート番号が変化するNAT特性であることを示す。
この場合、ST309でIPアドレスが同一か否かを判定(ST310)した後にポート番号が同一か否かを判定(ST311)するので、「(8)対称型(後発的)」がポート番号のみが変化するものであれば、「(5)対称型」と区別して判定することができる。また、ST306における送信テスト(I'')の実行は、ST309における送信テスト(I')を、異なる宛先に対する3回目のパケット送信とすることを目的とするものである。従って、送信テスト(I'')は、図6に示した場合に限らず、ST301の送信テスト(I)の直前、またはST309の送信テスト(I')の直前(ST308の後)に実行することも可能である。或いは、送信テスト(I')(ST309)の後に、送信テスト(I'')を異なる宛先に対する3回目のパケット送信とするべく実行し、その後、ST311と同様にポート番号が同一か否かを判定することもできる。
図7は、図1に示したIP通信システムで実行される通信処理の一例を示すシーケンス図である。ここでは、端末装置A(発呼側)がSIPサーバ2を介して端末装置B(着呼側)との接続を確立し、メディアデータの送受信を実行する手順を示している。また、各端末装置A,BのNAT種別の判定については、これらの通信処理に先立って実行されるものとする。
まず、端末装置Aは、STUNサーバ3にBindingリクエストを送信し(1001)、これを受けたSTUNサーバ3は、そのBindingリクエストの送信元(ルータ5)のグローバルアドレス及びポート番号の情報をMAPPED−ADDRESS属性として付加したBindingレスポンスを端末装置Aに対して送信する(1002)。次に、端末装置Aは、自身のグローバルアドレス及びポート番号の情報を付加したINVITEリクエストをSIPサーバ2に対して送信し(1003)、続いて、Bindingリクエストを送信したポート番号を維持するために、SIPサーバ2に向けてUDPパケット(ダミーパケット)の送信を開始する(1004)。このUDPパケットの送信は、所定の時間間隔で通信が終了するまで継続的に実行される。
端末装置AからINVITEリクエストを受信したSIPサーバ2は、呼び出し中を通知するための180 Ringingメッセージを端末装置Aに送信し(1005)、さらに、受信したINVITEリクエストを端末装置Bに転送する(1006)。
INVITEリクエストを受信した端末装置Bは、端末装置Aと同様に、STUNサーバ3にBindingリクエストを送信し(1007)、STUNサーバ3からのBindingレスポンスにより自身のグローバルアドレス及びポート番号の情報を取得する(1008)。続いて、端末装置Bは、Bindingリクエストを送信したポート番号を維持するために、UDPパケット(ダミーパケット)の送信を開始する(1009)。さらに、端末装置Bは、呼び出しの準備ができると、呼び出し中を通知するための180 RingingメッセージをSIPサーバ2に送信する(1010)。
次に、端末装置Bは、ユーザによるオフフックを検出すると(1011)、ユーザの応答を通知するための200 OKメッセージをSIPサーバ2に対して送信し(1012)、これを受けたSIPサーバ2は、その200 OKメッセージを端末装置Aに対して送信する(1013)。この200 OKメッセージには、通信1008でSTUNサーバ3から取得した着呼側の端末装置のグローバルアドレス及びポート番号の情報が付加されている。ただし、ここで付加されるグローバルアドレス及びポート番号は、着呼側のNAT種別が対称型である場合、STUNサーバ3から取得した値とは異なるものとなり得る。
このような通信により端末装置間の接続が確立されると、端末装置A,Bは、メディアセッションにおいて互いにメディアデータ(ここでは、通話音声)をRTPパケットとして互いに送受する(1014,1015)。なお、オンフック後のセッションの終了等については説明を省略する。
上記通信処理において、例えば、端末装置Aは、Bindingリクエスト送信(1001)、INVITEリクエスト送信(1003)、UDPパケット送信(1004)、及びメディアデータ送信(1016)に関し、4つの異なる宛先(IPアドレスまたはポート番号の少なくとも一方が異なる)に対してパケット送信を実行することになる。従って、ルータ5が、図3及び図6に示したようなNAT種別の判定方法において「(8)対称型(後発的)」と判定されるようなNAT特性を有する場合には、接続を確立する通信において後発的に対称型NATとして機能することになる。
ここで、端末装置AのNAT管理部12は、通信を開始する前に、通信に使用するLAN側のポート番号を前回の通信に用いた値とは異なる値に変更(例えば、前回の通信で使用したポート番号10000を20000に変更して新たな通信を開始)することができる。これにより、最初に送信するBindingリクエストの宛先が必ず第1の宛先となるので、異なる宛先に対する3回目のパケット送信のタイミングを確実に把握することができ、通信を適切に実行することが可能となる。また、端末装置A,Bは、少なくとも一方のNAT種別が「(8)対称型(後発的)」である場合には、事前にP2P通信を断念するか、或いは専用の中継サーバ(例えば、TURN(Traversal Using Relay NAT)サーバ)等を介したメディアデータの送受信を必要とすることもある。
なお、図7に示したような通信処理においては、ルータが、同一のLAN側のポートから異なる宛先に対して4回目のパケットを送信した際にWAN側のポート番号が変化するようなNAT特性を有する場合にも、端末装置間の通信に悪影響を及ぼす可能性がある。そこで、そのような仕様のルータであっても適切にNAT種別の判定が可能なように、図3及び図6に示したNAT種別の判定方法を、それぞれ次の図8及び図9に示すように変更することができる。
図8は、第1のNAT種別の判定方法の変更例を示すフロー図である。このNAT種別の判定方法は、ST212の送信テスト(I'')の実行後にテスト(I''')(第6の送信テスト)を実行する(ST214)点を除けば、図3に示した方法と同様である。この送信テスト(I''')は、第1乃至第3の宛先とIPアドレスまたはポート番号の少なくとも一方が異なる第4の宛先に対してBindingリクエストを送信することにより行う。例えば、送信テスト(I'')が、アドレス(A,q)に対してBindingリクエストを送信することにより行われた場合、送信テスト(I''')は、アドレス(B,p)に対してBindingリクエストを送信することにより行うことができる。
図9は、第2のNAT種別の判定方法の変更例を示すフロー図である。このNAT種別の判定方法は、ST306の送信テスト(I'')の実行後にテスト(I''')(第6の送信テスト)を実行する(ST314)点を除けば、図6に示した方法と同様である。この送信テスト(I''')は、図8の場合と同様に、第1乃至第3の宛先とIPアドレスまたはポート番号の少なくとも一方が異なる第4の宛先に対してBindingリクエストを送信することにより行う。
図8及び図9に示した方法を用いることで、同一のLAN側のポートから4つの異なる宛先に対してパケットを送信した際にWAN側のポート番号が変化するNAT特性を有するルータを用いる場合であっても、NAT種別を判定する際に、その誤判定を防止しつつ適切な判定が可能となる。
以下、他の実施の形態について説明する。本実施の形態は、ルータのNAT種別が自動的に切り換わる場合に対応できる。
前述のように一般家庭内では、ルータのプライベート側(LAN側)にパーソナルコンピュータ(以下、PCとする)が接続され、IP電話の為の電話機も共に接続されることが多い。もしルータがPort Reuse特性を有する機種であると、特にルータのLAN側にPCが接続されている場合、PC接続の有無やPCの動作状況に応じてNAT種別が頻繁に変わる。端末装置(例えばIP電話機)がNAT種別判定処理を定期的に行ない、判定処理の周期を短くすればより最新のNAT種別を把握できるが、その判定処理が通信開始の妨げにもなる。特にIP電話機である場合、電話の発信/着信に影響する。NAT種別判定処理は前述の複数の送信テストを行うので、1回の判定処理には数十秒の時間を要し、常に最新のNAT種別を把握するには限界がある。
本実施の形態は、NAT機能を有する中継機器を介して通信を行うIP通信装置において、NAT種別の判定処理を定期的に行ない、前回実行された判定処理の結果がコーン型を示し、今回実行された判定処理の結果が対称型を示す場合、すぐにルータのNAT種別が対称型であると決定し、前回実行された判定処理の結果が対称型を示し、今回実行された判定処理の結果がコーン型を示す場合、その後、所定回数連続して判定処理の結果がコーン型を示す場合に限りNATルータの種別がコーン型であると決定するNAT種別判定手段を有する。
以下、図17に沿って本実施の形態のNAT種別判定の一例を説明する。NAT種別判定処理は例えば1時間に1回の頻度で定期的行われる。最初に、たとえば図3や図6に示す処理を実行してNAT種別を取得する(ST401)。
次に取得した最新のNAT種別がその時の動作モードに一致するか否かを判定する(ST402)。一致すれば変化無しとして判定処理を終わる。
取得した最新のNAT種別がその時の動作モードに一致しない場合(ST402:No)、NAT超え難易度を比較する(ST403)。ST403では、そのときの端末で設定されているNAT種別(端末はそのNAT種別に沿った動作モードで動作)に対して、取得した最新のNAT種別が高い難易度であるか否か比較する。容易な種別(例えば完全コーン型)から厳しい種別(制限付きコーン型)に変更され場合(ST403:Yes)は、取得した最新のNAT種別に従って直ちに端末の動作モードを変更する(ST404)。そして継続時間と継続回数をカウントする管理カウンタを初期化して(ST405)、判定処理を終わる。
ST403での比較の結果がNo(例えば厳しい制限付きコーン型から容易な完全コーン型に変更された場合)であれば、取得した最新のNAT種別が管理メモリに記録されている情報と一致するか否かを判定する(ST406)。取得した最新のNAT種別が管理メモリに記録されている情報と一致しない場合(ST406:No)、その取得した最新のNAT種別の情報を該管理メモリに記録する(ST407)。そして継続時間と継続回数をカウントする管理カウンタを初期化し、その状態から計測を開始する(ST408)。管理メモリは、直前に為されたNAT種別判定処理によって検知された最新のNAT種別を記録するために設けられる。
ST406での比較の結果、取得した最新のNAT種別が管理メモリに記録されている情報と一致した場合(ST406:Yes)は、継続時間と継続回数のカウント値が設定切り換えの条件を満たしているか否かを調べる(ST409)。管理カウンタの値が所定回数に達していないか、または容易な種別に変更された時からの所定時間が経過していない場合(ST409:No)、継続時間と継続回数をカウントする管理カウンタを初期化して(ST410)、判定処理を終わる。
本例では、NATが厳しい種別から容易な種別に変更された時から同じ状態が所定回数:5に達し、且つ容易な種別に変更された時からの経過時間が24H以上経過したことを条件に設定を切り替える。ST409では管理カウンタの値が所定回数:5に達し且つ24H以上経過している場合にST404に移行し、取得した最新のNAT種別に従って端末の動作モードを変更する。その上で継続時間と継続回数を初期化して(ST405)判定処理を終わる。
図18に沿って動作の一例を説明する。図17に示すNAT種別判定処理が1時間に1回、定期的行われている(△マーク)。NATルータが制限付きコーン型(Restricted Cone)で動作し、接続されたIP電話機は制限付きコーン型を前提とした設定(RCモード:NATルータが自動で制限付きコーン型(Restricted Cone)で動作し、中継サーバを介さずP2P通信で通話を行うモード)で動作している。ある時、LAN側にPCが外部との通信を開始することによってNAT種別が変化し(⇒マーク)、それまで制限付きコーン型(Restricted Cone)であったNATルータがLAN側の端末ごとにポート番号を変える対称型(Symmetric)の動作に変更される。その後で最初に行われるNAT種別判定処理(T1)によってIP電話機は「対称型」を把握できる。ただNAT種別が変化してからT1までの間はIP電話機は通信できない。
NAT種別判定処理(T1)によってIP電話機が「対称型」を検知すると対称型を前提とした設定に切換える(Syモード:NATルータが制限付きコーン型(Restricted Cone)で動作している環境下で、IPアドレスやポート番号をNAT越えのための情報として中継サーバに登録することにより中継サーバを介して通話を行うモード)。IP電話機が対称型の設定であれば、IPアドレスやポート番号をNAT越えのための情報として中継サーバに登録することにより中継サーバを介して通話が可能になる。
NAT種別判定処理(T1)の後、その次に実行される判定処理(T2)の前ににNAT種別が変化し(⇒マーク)、対称型(Symmetric)であったNATルータが制限付きコーン型(Restricted Cone)に戻る。NATルータが自動で制限付きコーン型(Restricted Cone)に戻ったとしても、IP電話機は引き続き中継サーバを介した通話が可能である。その後に行われるNAT種別判定処理(T2)によってIP電話機は「コーン型」を検知するが、所定回数に達していない限り設定の切換えは行わず、対称型を前提とした設定を維持する(Syモード)。
NAT種別判定処理(T2)の後、その次に実行される判定処理(T3)の前にLAN側PCが再び外部との通信を開始すると、再びNAT種別が対称型(Symmetric)に変化するが、IP電話機の設定は切り換らない。IP電話機は前回NAT種別が対称型に変化してその後の判定処理(T1)にて「対称型」を検知した以降、対称型を前提とした設定を維持している(Syモード)。
次に図19に沿って、IP電話機が制限付きコーン型を前提とした設定(RCモード)に戻る場合の動作例を説明する。前述のようにIP電話機は、一度対称型を前提とした設定に切り換ると、「コーン型」を検知する回数が所定回数に達していない限り設定の切換えは行わず、対称型を前提とした設定を維持する。すなわち、T5、T6、T7、T8 において「コーン型」を検知しても、管理カウンタの値Nが所定回数に達していないので設定の切換えは行わない。図19においてNAT種別判定処理(T9)にてIP電話機が「コーン型」を検知した時に「コーン型」を検知した回数が所定回数5(N=5)に達したものとする。回数が所定回数5に達し、且つ最初の「コーン型」を検知してから24H以上経過したなら、NATが「コーン型」で安定したと見なし、制限付きコーン型を前提とした設定(RCモード)に戻す。
なお、この例では「コーン型」を検知する回数が所定回数:5に達し、且つ最初に「コーン型」を検知してから24H以上経過することを条件に設定を切り替えることとしたが、この所定回数および継続時間の設定は諸条件によって任意に選べば良い。
図20はNAT種別とpeer to peer(以下、P2P)で通信を行う場合の容易性を表す。複数あるNAT種別において接続の容易さの順を見ると、最も容易なのが完全コーン型(Full Cone)である、次に制限付きコーン型(Restricted Cone)、その次にポート制限付きコーン型(Port Restricted Cone)がきて、最も厳しいのが対称型(Symmetric)である。以上の実施形態の説明は制限付きコーン型(Restricted Cone)と対称型(Symmetric)の間でNAT種別が切り換る場合の例であったが、コーン型の中でも完全コーン型(Full Cone)、制限付きコーン型(Restricted Cone)、ポート制限付きコーン型(Port Restricted Cone)で接続の容易さが異なるので、コーン型の中で本発明を適用しても良い。
すなわち、定期的なNAT種別判定処理によって容易な種別(例えば完全コーン型)から厳しい種別(制限付きコーン型)に変更されたことを検知すれば端末の設定を直ちに変更する。特にコーン型から対称型へ変化した場合、その時点からIP電話機の動作はサーバを介した通信を行うように動作設定を切り替える(図16:Syモード)。電話機がサーバを介した通信を行うように切り替わると、NAT越えのための情報として直ぐに中継サーバに登録される。ただし、前述のようにルータが接続されたPCの動作状況等に応じて頻繁にNAT種別を変えるものである場合、わずかな時間の間に再び「コーン型」に戻ることがあり得る。
本発明では、厳しい種別から容易な種別に変更されたことを検知しても直ぐには設定を変更せず、一定の回数以上継続して検知された場合に限り設定を変更する。すなわち容易な種別への変更が検知されても、その状態が安定するまではNAT超えが厳しい場合の動作(Syモード)が維持される。
IP電話の接続をできるだけ低コストで行う場合、IP電話機同士がpeer to peer(以下、P2P)通信できるようにするのが望ましいことは言うまでもない。しかし定期的なNAT種別判定の結果、ある時、NAT種別が「コーン型」から「対称型」に変化するとそれ以降は前述のようにP2Pの通信が困難になる。
また、それまで「対称型」であったNAT種別が「コーン型」に切り換わったことが検出された場合は、P2Pの通信が可能にはなるが、前述のようにルータが頻繁にNAT種別を変える種類のものである場合、わずかな時間の間に再び「対称型」戻ることがあり得る。このようにNAT種別は予測困難な面があり、NAT越えのための情報を中継サーバに登録するにもタイムラグがあるので、定期的なNAT種別判定だけでは十分とは言えない。
このようなルータによってはNAT種別が安定せず、互いに相手側のアドレスやポート番号が正確に判別できない場合があり、P2P通信が出来ない場合がある。
本発明において更に、予めNAT種別とP2P通信の容易さに対する重み付けを設定しておくことにより、可能な限りP2Pで通信できるように動作させることができる。
NAT種別判定処理の結果、P2P通信が困難な種類に変更されていた場合は端末で通信を行うためのNAT種別を直ちに変更し、判定処理の結果P2P通信が容易な種類に変更されていた場合、一定の期間且つ一定の回数以上継続しなければ、端末で通信を行うためのNAT種別設定を、その検出したNAT種別に変更しない。
この構成により、NAT種別が頻繁に変化するルータに接続された場合であっても、ユーザが手動で設定変更することなく、P2Pができない状況なら必ずサーバを介した通信を可能にし、P2Pができる状態が安定してからサーバを介さないP2P通信を提供できるように動作モードを自動的に切り替えることができる。したがって通信は確実に行え、電話機としての基本性能が確保でき、しかも可能な限り安価な通信を実現でき、利用者の期待に沿うことができる。
本発明に係るIP通信装置及びIP通信装置によるNAT種別の判定方法は、IP通信装置が標準的な技術仕様(RFC3489)に従ってNAT種別を判定する際に、その誤判定を防止しつつ適切に判定できる判定対象(即ち、NAT特性)の範囲を向上させることが可能となるので、NAT機能を有する中継機器を介して広域ネットワークに接続されるIP通信装置及びIP通信装置によるNAT種別の判定方法として有用である。
本願発明に係るIP通信装置を有するIP通信システムの構成図 端末装置の主要部の構成を示すブロック図 端末装置による第1のNAT種別の判定方法を示すフロー図 送信テスト(I'')の一例を示す模式図 送信テスト(I'')の別の例を示す模式図 端末装置による第2のNAT種別の判定方法を示すフロー図 IP通信システムで実行される通信処理の一例を示すシーケンス図 図3の第1のNAT種別の判定方法の変更例を示すフロー図 図6の第2のNAT種別の判定方法の変更例を示すフロー図 RFC3489に定義されたNAT種別の判定フローを示す図 NAT種別の判定の際に実行する送信テストの説明図 既存のルータのNAT特性の調査結果の一例を示す図 既存のルータのNAT特性の調査結果の一例を示す図 本願発明の他の実施形態に係るIP通信装置の動作環境の一例を示すシステムの構成図 既存のルータのPort Reuse特性の概略を説明するための説明図 従来の定期的なNAT種別判定と端末動作モードの変化を示すシーケンス図 本実施の形態のNAT種別判定手段の一例を示すフロー図 本実施の形態のNAT種別判定と端末動作モードの変化を示すシーケンス図 本実施の形態のNAT種別判定と端末動作モードの変化を示すシーケンス図 NAT種別とP2Pで通信を行う場合の容易性を表す説明図
符号の説明
1 IP通信システム
2 SIPサーバ
3 STUNサーバ
5,6 ルータ(中継機器)
12 NAT管理部
13 STUN制御部
14 UDPパケット制御部
A,B 端末装置(IP通信装置)

Claims (14)

  1. NAT機能を有する中継機器を介して通信を行うIP通信装置が、第1のIPアドレス及び第1のポート番号からなるSTUNサーバの第1の宛先に対してリクエストを送信する第1の送信テストと、前記第1の宛先に対し、レスポンスの送信元IPアドレス及びポート番号の変更を指定した情報を含むリクエストを送信する第2の送信テストと、第2のIPアドレス及び第2のポート番号からなるSTUNサーバの第2の宛先に対してリクエストを送信する第3の送信テストと、前記第1の宛先に対し、レスポンスの送信元ポート番号のみの変更を指定した情報を含むリクエストを送信する第4の送信テストとを実行することにより行うNAT種別の判定方法において、
    前記第1及び第2の宛先とIPアドレスまたはポート番号の少なくとも一方が異なる第3の宛先に対してリクエストを送信する第5の送信テストを実行するステップと、
    前記第1、第2、第3の宛先に対する各々少なくとも1回の送信テストの実行が終了した際に、その最後に実行された送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報と、前記最後に実行された送信テストより前に実行されたいずれかの送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報とを比較し、それらのアドレス情報が同一でない場合、前記NAT種別を対称型と判定するステップと、
    を有することを特徴とするIP通信装置によるNAT種別の判定方法。
  2. NAT機能を有する中継機器を介して通信を行うIP通信装置が、第1のIPアドレス及び第1のポート番号からなるSTUNサーバの第1の宛先に対してリクエストを送信する第1の送信テストと、前記第1の宛先に対し、レスポンスの送信元IPアドレス及びポート番号の変更を指定した情報を含むリクエストを送信する第2の送信テストと、第2のIPアドレス及び第2のポート番号からなるSTUNサーバの第2の宛先に対してリクエストを送信する第3の送信テストと、前記第1の宛先に対し、レスポンスの送信元ポート番号のみの変更を指定した情報を含むリクエストを送信する第4の送信テストとを実行することにより行うNAT種別の判定方法において、
    前記第1及び第2の宛先とIPアドレスまたはポート番号の少なくとも一方が異なる第3の宛先に対してリクエストを送信する第5の送信テストを実行するステップと、
    前記第5の送信テストを実行するステップの後に、前記第1乃至第3の宛先とIPアドレスまたはポート番号の少なくとも一方が異なる第4の宛先に対してリクエストを送信する第6の送信テストを実行するステップと、
    前記第1、第2、第3、第4の宛先に対する各々少なくとも1回の送信テストの実行が終了した際に、その最後に実行された送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報と、前記最後に実行された送信テストより前に実行されたいずれかの送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報とを比較し、それらのアドレス情報が同一でない場合、前記NAT種別を対称型と判定するステップと
    を有することを特徴とするIP通信装置によるNAT種別の判定方法。
  3. 前記第1乃至第4の送信テストは順次実行され、前記第5の送信テストは、前記第4の送信テストの実行後、そのリクエストに対する前記STUNサーバからのレスポンスがない場合に実行することを特徴とする請求項1または請求項2に記載のIP通信装置によるNAT種別の判定方法。
  4. 前記第1乃至第4の送信テストは順次実行され、前記第5の送信テストは、前記第1乃至第3の送信テストのいずれかの直前に実行することを特徴とする請求項1または請求項2に記載のIP通信装置によるNAT種別の判定方法。
  5. 前記第1の送信テストを実行し、前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報が自己のアドレス情報と同一でない場合に前記第2の送信テストを実行し、当該リクエストにおいて変更を指定したアドレス情報からレスポンスがあった場合に前記中継機器のNAT種別が完全コーン型であると判定するステップと、
    前記変更を指定したアドレス情報からレスポンスがなかった場合に前記第3の送信テストを実行し、この第3の送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報と、前記第1の送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報とが同一である場合にさらに前記第4の送信テストを実行し、当該リクエストにおいて変更を指定したアドレス情報からレスポンスがあった場合に前記中継機器のNAT種別が制限付きコーン型であると判定するステップと、
    前記第4の送信テストに対してレスポンスがなかった場合に前記第5の送信テストを実行し、この第5の送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のポート番号と、前記第1の送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のポート番号とが同一である場合に前記中継機器のNAT種別がポート制限付きコーン型であると判定するステップと
    をさらに有することを特徴とする請求項3記載のIP通信装置によるNAT種別の判定方法。
  6. 前記第1の送信テストを実行し、前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報が自己のアドレス情報と同一でない場合に前記第5の送信テストと前記第2の送信テストを続けて実行し、前記第2の送信テストのリクエストにおいて変更を指定したアドレス情報からレスポンスがあった場合に前記中継機器のNAT種別が完全コーン型であると判定するステップと、
    前記変更を指定したアドレス情報からレスポンスがなかった場合に前記第3の送信テストを実行し、この第3の送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報と、前記第1の送信テストのリ
    クエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報とが同一である場合にさらに前記第4の送信テストを実行し、この第4の送信テストのリクエストにおいて変更を指定したアドレス情報からレスポンスがあった場合に前記中継機器のNAT種別が制限付きコーン型であると判定するステップと、
    前記第4の送信テストに対してレスポンスがなかった場合に前記中継機器のNAT種別がポート制限付きコーン型であると判定するステップと
    をさらに有することを特徴とする請求項4記載のIP通信装置によるNAT種別の判定方法。
  7. NAT機能を有する中継機器を介して通信を行うIP通信装置において、
    第1のIPアドレス及び第1のポート番号からなるSTUNサーバの第1の宛先に対してリクエストを送信する第1の送信テストと、前記第1の宛先に対し、レスポンスの送信元IPアドレス及びポート番号の変更を指定した情報を含むリクエストを送信する第2の送信テストと、第2のIPアドレス及び第2のポート番号からなるSTUNサーバの第2の宛先に対してリクエストを送信する第3の送信テストと、前記第1の宛先に対し、レスポンスの送信元ポート番号のみの変更を指定した情報を含むリクエストを送信する第4の送信テストとを実行することによりNAT種別の判定を行う際に、
    前記第1及び第2の宛先とIPアドレスまたはポート番号の少なくとも一方が異なる第3の宛先に対してリクエストを送信する第5の送信テストを実行するステップと、
    前記第1、第2、第3の宛先に対する各々少なくとも1回の送信テストの実行が終了した際に、その最後に実行された送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報と、前記最後に実行された送信テストより前に実行されたいずれかの送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報とを比較し、それらのアドレス情報が同一でない場合、前記NAT種別を対称型と判定するステップと
    を実行するNAT種別判定手段を備えたことを特徴とするIP通信装置。
  8. NAT機能を有する中継機器を介して通信を行うIP通信装置において、
    第1のIPアドレス及び第1のポート番号からなるSTUNサーバの第1の宛先に対してリクエストを送信する第1の送信テストと、前記第1の宛先に対し、レスポンスの送信元IPアドレス及びポート番号の変更を指定した情報を含むリクエストを送信する第2の送信テストと、第2のIPアドレス及び第2のポート番号からなるSTUNサーバの第2の宛先に対してリクエストを送信する第3の送信テストと、前記第1の宛先に対し、レスポンスの送信元ポート番号のみの変更を指定した情報を含むリクエストを送信する第4の送信テストとを実行することによりNAT種別の判定を行う際に、
    前記第1及び第2の宛先とIPアドレスまたはポート番号の少なくとも一方が異なる第3の宛先に対してリクエストを送信する第5の送信テストを実行するステップと、
    前記第5の送信テストを実行するステップの後に、前記第1乃至第3の宛先とIPアドレスまたはポート番号の少なくとも一方が異なる第4の宛先に対してリクエストを送信する第6の送信テストを実行するステップと、
    前記第1、第2、第3、第4の宛先に対する各々少なくとも1回の送信テストの実行が終了した際に、その最後に実行された送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報と、前記最後に実行された送信テストより前に実行されたいずれかの送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報とを比較し、それらのアドレス情報が同一でない場合、前記NAT種別を対称型と判定するステップと
    を実行するNAT種別判定手段を備えたことを特徴とするIP通信装置。
  9. 前記第1乃至第4の送信テストは順次実行され、前記第5の送信テストは、前記第4の送信テストの実行後、そのリクエストに対する前記STUNサーバからのレスポンスがない場合に実行することを特徴とする請求項7または請求項8に記載のIP通信装置。
  10. 前記第1乃至第4の送信テストは順次実行され、前記第5の送信テストは、前記第1乃至第3の送信テストのいずれかの直前に実行することを特徴とする請求項7または請求項8に記載のIP通信装置。
  11. 前記NAT種別判定手段は、
    前記第1の送信テストを実行し、前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報が自己のアドレス情報と同一でない場合に前記第2の送信テストを実行し、当該リクエストにおいて変更を指定したアドレス情報からレスポンスがあった場合に前記中継機器のNAT種別が完全コーン型であると判定するステップと、
    前記変更を指定したアドレス情報からレスポンスがなかった場合に前記第3の送信テストを実行し、この第3の送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報と、前記第1の送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報とが同一である場合にさらに前記第4の送信テストを実行し、当該リクエストにおいて変更を指定したアドレス情報からレスポンスがあった場合に前記中継機器のNAT種別が制限付きコーン型であると判定するステップと、
    前記第4の送信テストに対してレスポンスがなかった場合に前記第5の送信テストを実行し、この第5の送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のポート番号と、前記第1の送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のポート番号とが同一である場合に前記中継機器のNAT種別がポート制限付きコーン型であると判定するステップと
    をさらに実行することを特徴とする請求項9記載のIP通信装置。
  12. 前記NAT種別判定手段は、
    前記第1の送信テストを実行し、前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報が自己のアドレス情報と同一でない場合に前記第5の送信テストと前記第2の送信テストを続けて実行し、前記第2の送信テストのリクエストにおいて変更を指定したアドレス情報からレスポンスがあった場合に前記中継機器のNAT種別が完全コーン型であると判定するステップと、
    前記変更を指定したアドレス情報からレスポンスがなかった場合に前記第3の送信テストを実行し、この第3の送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報と、前記第1の送信テストのリクエストに対する前記STUNサーバからのレスポンスに付加された当該リクエストの送信元のアドレス情報とが同一である場合にさらに前記第4の送信テストを実行し、この第4の送信テストのリクエストにおいて変更を指定したアドレス情報からレスポンスがあった場合に前記中継機器のNAT種別が制限付きコーン型であると判定するステップと、
    前記第4の送信テストに対してレスポンスがなかった場合に前記中継機器のNAT種別がポート制限付きコーン型であると判定するステップと
    をさらに実行することを特徴とする請求項10記載のIP通信装置。
  13. 前記NAT種別判定方法による判定を定期的に行ない、
    前回実行された判定の結果がコーン型を示し、今回実行された判定の結果が対称型を示す場合は直ちに前記中継機器のNAT種別が対称型であると決定し、
    前回実行された判定の結果が対称型を示し、今回実行された判定の結果がコーン型を示す
    場合、その後所定回数連続して判定の結果がコーン型を示す場合に限り前記中継機器のNAT種別がコーン型であると決定することを特徴とする請求項5または請求項6記載のIP通信装置によるNAT種別の判定方法。
  14. 前記NAT種別判定手段よる判定を定期的に行ない、
    前回実行された判定の結果がコーン型を示し、今回実行された判定の結果が対称型を示す場合は直ちに前記中継機器のNAT種別が対称型であると決定し、
    前回実行された判定の結果が対称型を示し、今回実行された判定の結果がコーン型を示す場合はその後所定回数連続して判定の結果がコーン型を示す場合に限り前記中継機器のNAT種別がコーン型であると決定することを特徴とする請求項11または請求項12記載のIP通信装置。
JP2007171133A 2007-04-20 2007-06-28 Ip通信装置及びip通信装置によるnat種別の判定方法 Expired - Fee Related JP4847403B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007171133A JP4847403B2 (ja) 2007-04-20 2007-06-28 Ip通信装置及びip通信装置によるnat種別の判定方法
US12/104,783 US7801059B2 (en) 2007-04-20 2008-04-17 IP communication apparatus and NAT type determination method by the same

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2007111827 2007-04-20
JP2007111827 2007-04-20
JP2007171133A JP4847403B2 (ja) 2007-04-20 2007-06-28 Ip通信装置及びip通信装置によるnat種別の判定方法

Publications (3)

Publication Number Publication Date
JP2008289109A JP2008289109A (ja) 2008-11-27
JP2008289109A5 JP2008289109A5 (ja) 2010-06-17
JP4847403B2 true JP4847403B2 (ja) 2011-12-28

Family

ID=40148375

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007171133A Expired - Fee Related JP4847403B2 (ja) 2007-04-20 2007-06-28 Ip通信装置及びip通信装置によるnat種別の判定方法

Country Status (1)

Country Link
JP (1) JP4847403B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5273001B2 (ja) 2009-09-30 2013-08-28 ブラザー工業株式会社 通信システム、端末装置、通信方法、及び通信プログラム
JP2011172143A (ja) * 2010-02-22 2011-09-01 Brother Industries Ltd 通信装置、通信方法、および通信システム
JP5454399B2 (ja) * 2010-07-15 2014-03-26 パナソニック株式会社 ラージスケールnat検出装置、アプリケーション切替装置、ラージスケールnat検出方法およびアプリケーション切替方法
KR101263783B1 (ko) * 2010-12-27 2013-05-13 삼성에스디에스 주식회사 릴레이 서버를 이용한 데이터 전송 시스템 및 방법
JP5696514B2 (ja) * 2011-02-08 2015-04-08 沖電気工業株式会社 メディア通信装置、方法及びプログラム、並びに、メディア通信システム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4480535B2 (ja) * 2004-09-30 2010-06-16 株式会社アドイン研究所 トンネル装置、中継装置、端末装置、呼制御システム、ip電話システム、会議装置、これらの制御方法及びプログラム
JP4084365B2 (ja) * 2005-03-08 2008-04-30 株式会社東芝 通信装置、通信方法および通信プログラム
JP4741964B2 (ja) * 2005-03-18 2011-08-10 パナソニック株式会社 通信装置、通信システム及び通信方法
JP2008085470A (ja) * 2006-09-26 2008-04-10 Fujitsu Ltd Ipアプリケーションサービス提供システム
US8656017B2 (en) * 2007-05-16 2014-02-18 Microsoft Corporation Peer-to-peer collaboration system with edge routing

Also Published As

Publication number Publication date
JP2008289109A (ja) 2008-11-27

Similar Documents

Publication Publication Date Title
JP4411332B2 (ja) Ip通信装置及びip通信システム並びにこれらのip通信方法
US7801059B2 (en) IP communication apparatus and NAT type determination method by the same
US10298629B2 (en) Intercepting and decrypting media paths in real time communications
JP4276568B2 (ja) ルータ及びsipサーバ
Keranen et al. Interactive connectivity establishment (ICE): A protocol for network address translator (NAT) traversal
JP3855909B2 (ja) ポリシ設定可能なピアツーピア通信システム
Guha et al. NUTSS: A SIP-based approach to UDP and TCP network connectivity
US7440455B2 (en) Registration of multiple VoIP devices
US20060187912A1 (en) Method and apparatus for server-side NAT detection
US20090313386A1 (en) Communication apparatus, communication method and communication system
US20080215669A1 (en) System and Method for Peer-to-Peer Connection of Clients Behind Symmetric Firewalls
US20070101414A1 (en) Method for stateful firewall inspection of ice messages
JP4847403B2 (ja) Ip通信装置及びip通信装置によるnat種別の判定方法
JP5988407B1 (ja) 通信経路制御装置、通信経路制御システム、通信経路制御方法及び通信経路制御プログラム
EP2075980A1 (en) A method and network communication system for redirecting network communication port
JP2008131393A (ja) 呼制御装置の呼制御方法及び呼制御装置
JP4722623B2 (ja) Ip通信装置及びその制御方法
KR20040110032A (ko) 에스아이피 서버 및 이를 이용한 십 단말간 통화 방법
JP3933183B2 (ja) 通信システム、情報処理装置、サーバ、および通信方法
JP5926164B2 (ja) セッションボーダーコントローラに対する高速振り分け方法及び接続システム
JP4886612B2 (ja) Ip通信装置およびip通信方法ならびに呼制御サーバ
JP3849711B2 (ja) 通信システム、情報処理装置、サーバ、および通信方法
JP5609519B2 (ja) Sip機器
JP2006109316A (ja) ゲートウェイ装置および通信接続方法
JP4889617B2 (ja) ゲートウエイ装置および通信制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100426

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110628

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110722

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110819

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110927

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111013

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141021

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees