JP2008236297A - Ip通信装置及びip通信システム並びにこれらのip通信方法 - Google Patents

Ip通信装置及びip通信システム並びにこれらのip通信方法 Download PDF

Info

Publication number
JP2008236297A
JP2008236297A JP2007072109A JP2007072109A JP2008236297A JP 2008236297 A JP2008236297 A JP 2008236297A JP 2007072109 A JP2007072109 A JP 2007072109A JP 2007072109 A JP2007072109 A JP 2007072109A JP 2008236297 A JP2008236297 A JP 2008236297A
Authority
JP
Japan
Prior art keywords
communication
port number
terminal device
packet
nat
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.)
Granted
Application number
JP2007072109A
Other languages
English (en)
Other versions
JP4411332B2 (ja
Inventor
Akira Miyajima
晃 宮嶋
Yasuo Nishida
康夫 西田
Hidenobu Ueki
英伸 上木
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 Holdings Corp
Original Assignee
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2007072109A priority Critical patent/JP4411332B2/ja
Priority to US12/050,515 priority patent/US8144704B2/en
Publication of JP2008236297A publication Critical patent/JP2008236297A/ja
Application granted granted Critical
Publication of JP4411332B2 publication Critical patent/JP4411332B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/253Telephone sets using digital voice transmission
    • H04M1/2535Telephone sets using digital voice transmission adapted for voice communication over an Internet Protocol [IP] network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2517Translation of Internet protocol [IP] addresses using port numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2575NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]

Abstract

【課題】IP通信装置が、相手装置と互いにNAT機能を有する中継機器を介して行う通信において、中継機器のNAT種別の組合せに対し、NAT越えを簡易かつ確実に実現可能な範囲を向上させる。
【解決手段】IP通信装置A〜Hが、相手装置との接続を確立すべく呼制御メッセージの送受信を行うSIP制御部34と、その接続の確立後のメディアセッションにおいて相手装置との間でメディアデータの送受信を行うUDPパケット制御部35と、UDPパケット制御部35が相手装置から受信したメディアデータのパケットの送信元ポート番号の情報を取得し、相手装置に送信するパケットの宛先ポート番号の設定値をその取得した送信元ポート番号と同一の値に変更するRTP管理部42とを備えた構成とし、中継機器の少なくとも一方のNAT種別が対称型である場合でも、NAT越えを簡易かつ確実に実現可能な範囲を向上させる。
【選択図】図3

Description

本発明は、NAT(Network Address Translation)機能を有する中継機器を介して広域ネットワークに接続されるIP(Internet Protocol)通信装置及びこれを備えたIP通信システム並びにこれらのIP通信方法に関する。
従来、企業や家庭内の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越え問題が生じていた。
そのような問題を解決するための方法として、UPnP(Universal Plug and Play)やSTUN(Simple Traversal of User Datagram Protocol)といったプロトコルを利用するものが知られている。UPnPによる方法の場合、例えば、UPnP機能を有するIP通信装置であれば、UPnP IGD(Internet Gateway Device)に対応している中継機器からグローバルIPアドレス及びポート番号等の情報を取得することが可能となる。しかしながら、この方法は、IP通信装置や中継機器等がUPnPに対応可能であることが前提であり、UPnP機能を有していない装置等に適用することは困難であった。また、UPnP機能を有していても中継機器が複数介在している場合には、全ての中継機器の所在を把握することは容易ではなく、必要なグローバルIPアドレス及びポート番号等の情報を取得することは困難であった。一方、STUNによる方法の場合、ネットワーク上にIP通信装置からの要求に応じて必要な情報(グローバルIPアドレス、ポート番号及びNATの種別等)を提供するSTUNサーバを設置することで実現可能となるので、UPnP機能の有無等とは無関係に適用することができる。しかし、STUNによる方法であっても適用される環境によっては一定の限界があることが知られている。
例えば、UPnPやSTUNを利用してNAT越えを実現する従来技術として、異なるルータにそれぞれ接続され、インターネットを介してP2P(Peer to Peer)通信を行う複数の情報処理装置を備えた情報通信システムにおいて、各情報処理装置は、その接続されたルータがUPnP機能を有している場合には、UPnPのプロトコルに基づきグローバルIPアドレス及びポート番号を取得して、それらを交換情報としてインターネット上の情報管理装置に登録する一方、接続されたルータがUPnP機能を有していない場合には、STUNのプロトコルに基づきグローバルIPアドレス及びポート番号を取得して、それらを交換情報として情報管理装置に登録し、各情報処理装置間で通信を実行する際には、情報管理装置から通信相手の交換情報を互いに取得し、当該取得した交換情報に基づきNAT越え通信を実現するようにしたものが知られている(特許文献1参照)。
特開2005−151142号公報
ところで、上述のNATは、実装上の挙動から完全コーン型(Full Cone)、制限付きコーン型(Restricted Cone)、ポート制限付きコーン型(Port Restricted Cone)、及び対称型(Symmetric)の4つの種別に分類される。ここで、対称型NATは、送信元の端末のプライベートなIPアドレス及びポート番号を、送信先となる外部装置の宛先が異なるのに応じて、複数のグローバルなIPアドレス及びポート番号の組に対応づけるものである。従って、特許文献1に記載のような従来技術では、通信を行う情報処理装置の少なくとも一方のNAT種別が対称型である場合には、STUNのプロトコルに基づき取得するグローバルIPアドレス及びポート番号は宛先毎に異なるので、そのNATによる対応づけの方法を事前に把握している等の特別の事情がない限り、ポート番号を正確に判定することができず、NAT越え処理を確実に実行することは困難であった。
本発明は、このような従来技術の課題を鑑みて案出されたものであり、相手装置と互いにNAT機能を有する中継機器を介して行う通信において、中継機器のNAT種別の組み合わせに対し、NAT越えを簡易かつ確実に実現可能な範囲を向上させるIP通信装置及びIP通信システム並びにこれらのIP通信方法を提供することを主目的とする。
本発明のIP通信装置は、広域ネットワークにおいて、相手装置と互いにNAT機能を有する中継機器を介して通信を行うIP通信装置であって、前記相手装置との接続を確立すべく呼接続用サーバを介して呼制御メッセージの送受信を行うシグナリング手段と、前記接続の確立後に前記相手装置との間でメディアデータの送受信を行うデータ通信手段と、前記接続の確立後に前記データ通信手段が受信したメディアデータのパケットの送信元ポート番号の情報を取得し、前記データ通信手段が前記相手装置に送信するパケットの宛先ポート番号の設定値を前記送信元ポート番号と同一の値に変更する通信管理手段とを備えたことを特徴とする。
このように本発明によれば、IP通信装置が、相手装置と互いにNAT機能を有する中継機器を介して行う通信において、中継機器の少なくとも一方のNAT種別が対称型である場合でも、NAT越えを簡易かつ確実に実現可能な範囲を向上させることができるという優れた効果を奏する。
上記課題を解決するためになされた第1の発明は、広域ネットワークにおいて、相手装置と互いにNAT機能を有する中継機器を介して通信を行うIP通信装置であって、 前記相手装置との接続を確立すべく呼接続用サーバを介して呼制御メッセージの送受信を行うシグナリング手段と、前記接続の確立後に前記相手装置との間でメディアデータの送受信を行うデータ通信手段と、前記接続の確立後に前記データ通信手段が受信したメディアデータのパケットの送信元ポート番号の情報を取得し、前記データ通信手段が前記相手装置に送信するパケットの宛先ポート番号の設定値を前記送信元ポート番号と同一の値に変更する通信管理手段とを備えた構成とする。
これによると、相手装置と互いにNAT機能を有する中継機器を介して行う通信において、中継機器のNAT種別の組み合わせに対し、NAT越えを簡易かつ確実に実現可能な範囲を向上させることができる。
特に、IP通信装置及び相手装置が接続される中継装置の一方のNAT種別が対称型である場合でも、完全コーン型と対称型との組み合わせ、または制限付きコーン型と対称型の組み合わせであるときは、専用に設けられた中継サーバ(セッションボーダコントローラ等)を利用することなくメディアデータ通信におけるNAT越えが可能となる。従って、比較的処理負荷が高く設備コストも嵩む専用の中継サーバを利用した処理を低減できるという利点がある。
上記課題を解決するためになされた第2の発明は、前記通信管理手段は、前記送信元ポート番号の情報と前記宛先ポート番号の設定値とを比較し、それらのポート番号の値が異なる場合にのみ、前記宛先ポート番号の設定値を変更する構成とすることができる。
これによると、必要な場合にのみ宛先ポート番号の設定値の変更を実行するので、より簡易な処理によりNAT越えを実現可能な範囲を向上させることができる。
上記課題を解決するためになされた第3の発明は、前記通信管理手段は、前記データ通信手段が前記接続の確立後に前記相手装置から最初に受信したパケットについてのみ、前記宛先ポート番号の設定値の変更を実行する構成とすることができる。
これによると、不正なパケットを正規のパケットとして受信して不適切にポート番号の変更が行われる可能性を最小限にしてセキュリティを高めることができる。この場合、最初に受信したパケットの送信元IPアドレスと、データ通信手段が相手装置に送信するパケットの宛先IPアドレスの設定値とが同一であるときのみ、宛先ポート番号の設定値の変更を実行するようにすることで、セキュリティをより高めることができる。
上記課題を解決するためになされた第4の発明は、前記通信管理手段は、前記データ通信手段に前記相手装置からのパケットを受信する所定のポート番号を維持すべくダミーパケットを送信させる構成とすることができる。
これによると、ダミーパケットの送信によりNATの変換テーブル上に登録されたエントリ(ポート番号等)の消滅を防ぐことで、相手装置からのパケットを確実に受信することができる。この相手装置からのパケットを受信するためのポート番号の情報は、例えば、シグナリング手段が呼制御メッセージの送信を開始する前、或いはシグナリング手段が呼制御メッセージの受信を開始した後に、広域ネットワークに接続されたSTUNサーバとの通信により取得することができる。これにより、最新の適切なポート番号の情報を取得することが可能となる。
この場合、通信管理手段は、データ通信手段によるダミーパケットの送信を、相手装置との通信が終了するまで継続的に実行させることができる。これにより、相手装置との接続を確立する場合だけでなく、相手装置との間でメディアデータの送受信を行う際にも相手装置からのパケットを確実に受信することができる。
上記課題を解決するためになされた第5の発明は、前記広域ネットワークに接続されたアドレス情報提供用サーバとの通信により、自装置が接続された前記中継機器のNAT種別の情報を取得するNAT情報取得手段を更に備え、前記通信管理手段は、前記中継機器のNAT種別が対称型である場合、前記ダミーパケットの送信を実行しない構成とすることができる。
これによると、不要なダミーパケットの送信を防ぎ、より簡易な処理により相手装置からのパケットを確実に受信することができる。
上記課題を解決するためになされた第6の発明は、広域ネットワークにおいて、相手装置と互いにNAT機能を有する中継機器を介して通信を行うIP通信装置であって、予め取得した自IP通信装置側のグローバルアドレスとポート番号とを前記相手装置に送信する送信手段と、前記相手装置のグローバルアドレスとポート番号とを含む応答を前記相手装置から受信する受信手段と、前記受信した前記相手装置のポート番号に向けてメディアデータの送信を開始するとともに前記相手装置からのメディアデータの受信を開始するデータ通信手段と、前記メディアデータの送信を開始した前記相手装置のポート番号と前記相手装置から受信したメディアデータのパケットの送信元ポート番号とが異なる場合、前記送信元ポート番号を前記メディアデータの送信先のポート番号に変更する変更手段とを備えた構成とする。
上記課題を解決するためになされた第7の発明は、広域ネットワークにおいて、互いにNAT機能を有する中継機器を介して通信を行う複数のIP通信装置を有するIP通信システムであって、前記IP通信装置は、他のIP通信装置との接続を確立すべく呼接続用サーバを介して呼制御メッセージの送受信を行うシグナリング手段と、前記接続の確立後に前記他のIP通信装置との間でメディアデータの送受信を行うデータ通信手段と、前記接続の確立後に前記データ通信手段が受信したメディアデータのパケットの送信元ポート番号の情報を取得し、前記データ通信手段が前記他のIP通信装置に送信するパケットの宛先ポート番号の設定値を前記送信元ポート番号と同一の値に変更する通信管理手段とを備えた構成とする。
上記課題を解決するためになされた第8の発明は、広域ネットワークにおいて、相手装置と互いにNAT機能を有する中継機器を介して通信を行うIP通信装置のIP通信方法であって、前記相手装置との接続を確立すべく呼接続用サーバを介して呼制御メッセージの送受信を行うシグナリングステップと、前記接続の確立後に前記相手装置との間でメディアデータの送受信を行うデータ通信ステップとを有し、前記データ通信ステップは、受信したメディアデータのパケットの送信元ポート番号の情報を取得し、前記相手装置に送信するパケットの宛先ポート番号の設定値を前記送信元ポート番号と同一の値に変更する通信管理ステップを含む構成とする。
以下、本発明の実施の形態について図面を参照しながら説明する。
図1は、本願発明に係るIP通信システムの概略を示す構成図である。このIP通信システム1は、複数の端末装置(IP通信装置)A〜H、SIPサーバ(呼接続用サーバ)2、STUNサーバ(アドレス情報提供用サーバ)3が、広域ネットワークとしてのインターネット5を介してそれぞれ通信可能に接続された構成を有する。
端末装置A〜Hは、インターネット5を介して音声や映像等のデータ(以下、「メディアデータ」という。)を通信するためのIP通信機能を有しており、それぞれ異なるLAN(図示せず)に属し、各ルータ(中継機器)11〜18を介してインターネット5に接続される。これら端末装置A〜Hは、SIPクライアントとして機能する。
本実施形態では、以下で端末装置A〜Hの機能及び動作等の詳細を説明する際に、必要に応じて端末装置A〜HをSIP対応のIP電話装置として取り扱うこととするが、これに限らず端末装置A〜Hには、IP通信機能を有する任意の情報処理装置を用いることができる。また、本実施形態では、便宜上、端末装置間の通信を説明する際に端末装置A〜Dを発呼側とし、端末装置E〜Hを着呼側とするが、これに限定されるものではない。
ルータ11〜18は、端末装置A〜Hが各LANにおいて通信に使用するプライベートなIPアドレス(以下、「プライベートアドレス」という。)と、その外部のインターネット5を介した通信に使用するグローバルなIPアドレス(以下、「グローバルアドレス」という。)とを透過的に相互変換するためのNAT機能を搭載したブロードバンドルータである。ルータ11〜18は、そのNAT機能により、NATの内側から外側へ開始されるアウトバウンド通信を許容する一方、NATの外側から内側へ開始されるインバウンド通信を原則として拒否し、また、時間経過等によりNATの変換テーブルのエントリ(登録内容)を消滅させることで、ファイアウォール的な役割も果たす。なお、ここで用いる用語「NAT」は、プライベートアドレスとグローバルアドレスとを変換する技術に限定されるものではなく、IPアドレスの変換に加えてポート番号を変換するNAPT(Network Address Port Translation)等の類似技術を含むものとする。
ここで、各ルータ11〜18のNAT機能は、4種類のNAT種別のうちの何れかに属し、ルータ11,15は完全コーン型(Full Cone)であり、ルータ12,16は制限付きコーン型(Restricted Cone)であり、ルータ13,17はポート制限付きコーン型(Port Restricted Cone)であり、ルータ14,18は対称型(Symmetric)である。従って、端末装置A〜H同士の通信には、図2に示すように、16通りの組み合わせパターンが存在する。以下では、端末装置A〜H同士の通信の組み合わせを示す場合には、図2に示した記号(「F−F」等)を用いる。
SIPサーバ2は、各端末装置A〜HとのSIPメッセージ(呼制御メッセージ)の送受により端末装置A〜H間の接続を仲介する。SIPサーバ2は、各端末装置A〜Hからのリクエストに応じて、それら端末装置間の呼接続のための位置情報並びに発呼要求及び応答等の中継を行うプロキシサーバ機能、また、各端末装置A〜Hに関するグローバルアドレスの情報を管理(所定のデータベースへの登録、更新、削除処理等を実行)するレジストラ機能を有する。このSIPサーバ2により接続が確立された端末装置同士は、メディアセッションにおいてメディアデータのP2P(Peer to Peer)通信が可能となる。ここでは、全ての端末装置A〜HがSIPサーバ2を利用する構成としているが、各端末装置が互いに異なるプロキシサーバを利用して通信を行う構成も可能である。
STUNサーバ3は、端末装置A〜Hからのリクエストに応じて、そのグローバルアドレス及びポート番号等の情報を通知する機能を有しており、端末装置A〜HからのBindingリクエスト(UDPパケット)を受信すると、そのBindingリクエストの送信元のアドレス情報を抽出し、その情報を付加したBindingレスポンスを返信する。これにより、端末装置A〜Hは、自身が接続されたルータのグローバルアドレス及びポート番号を認識することができる。なお、端末装置A〜Hは、RFC3489に定義されたアルゴリズムに従った周知の方法により、STUNサーバに対してBindingリクエストを試験的に送信することで、自身が接続されたルータのNAT種別(完全コーン型、制限付きコーン型、ポート制限付きコーン型、対称型、またはNAT無しのいずれか)の判定を行うことができる。
図3は、図1に示した端末装置A〜Hの主要部の構成を示すブロック図である。各端末装置A〜Hは、アプリケーション31、呼制御部32、STUN制御部33、SIP制御部(シグナリング手段)34、UDPパケット制御部(データ通信手段)35、ミドルウエア36及びネットワークスタック37を有している。ここでは、本発明に関連する主要な構成について示しているが、各端末装置A〜Hは、図3に示す他、例えば、IP電話装置として機能するための周知の構成を備えているものとする。
アプリケーション31は、ユーザの操作に基づき端末装置が提供する各種機能(ここでは、IP電話装置として動作するための機能)を実行する。
呼制御部32は、SIP制御部34、STUN制御部33及びUDPパケット制御部35の動作を管理するシグナリング管理部41及びRTP管理部(通信管理手段)42を有している。シグナリング管理部41は、主としてSIP制御部34によるシグナリング動作、及びSTUN制御部33による情報取得動作を管理し、また、RTP管理部42は、主としてUDPパケット制御部35によるパケット通信動作を管理する。
STUN制御部33は、STUNサーバ3との通信により、STUNのプロトコルに基づくNAT越えに関する処理を実行するものであり、NAT越えのためのアドレス情報及びNAT種別の情報の取得を行う。また、SIP制御部34は、SIPサーバ2との通信により、SIPのプロトコルに基づくシグナリング処理を実行するものであり、相手装置(通信相手となる他の端末装置)との通信を開始する際に、相手装置との間に通信路を設定して呼接続を行う。また、UDPパケット制御部35は、UDPまたはRTPのプロトコルに基づく通信処理を実行するものであり、UDPパケットやメディアデータ(ここでは、通話音声)をパケット化したRTPパケットの生成及び送受信を実行する。
ミドルウエア36は、端末装置がネットワークに接続する際に必要な情報を取得するためのDHCP(Dynamic Host Configuration Protocol)やDNS(Domain Name System)に関連する処理を実行する。
ネットワークスタック37は、LANに接続するためのネットワークアダプタを制御し、所定のプロトコルに基づきインターネット5を介した通信を実現する。
図3に示した各構成要素の機能は、例えば、図示しないCPU(Central Processing Unit)が所定の制御プログラムに従って処理を実行することにより実現することが可能である。
図4は、端末装置A〜HのNAT種別の格納の流れを示すフロー図である。まず、端末装置が起動すると、シグナリング管理部(NAT情報取得手段)41は、周知の方法により、STUNサーバに対してBindingリクエストを試験的に送信し、自身が接続されたルータのNAT種別の判定を行う(ST101)。
そこで、端末装置は、取得したNAT種別の情報を装置内部のメモリあるいはネットワーク上の他装置等に保存する(ST102)。その後、端末装置は、待機状態となり(ST103)、所定の時間間隔(例えば、10分間隔)で、上記ST101及びST102を繰り返し実行する。
NAT種別の情報は、例えば、図5に示すように、各端末装置A〜HのIDと、それに対応する電話番号とともに記憶されても良い。
図6は、図1に示した端末装置A〜Hの発呼処理の流れを示すフロー図である。まず、端末装置のシグナリング管理部41は、STUNサーバ3にBindingリクエストを送信し、これに対するSTUNサーバ3からのBindingレスポンスにより、通信に利用するルータのグローバルアドレス及びポート番号の情報を取得する(ST401)。そこで、シグナリング管理部41は、グローバルアドレス及びポート番号の情報を正常に取得できたか否かを判定し(ST402)、情報を正常に取得できていない場合にはSIPサーバ2または自装置に不具合が生じていると判断して呼を切断する(ST403)。一方、情報を正常に取得できている場合には、シグナリング管理部41は、それらグローバルアドレス及びポート番号の情報を付加したINVITEリクエストを、SIPサーバ2を介して相手装置に送信する(ST404)。
そこで、端末装置のRTP管理部42は、予め調査した自身のNAT種別が対称型でない場合(ST405:NO)には、ST401でBindingリクエストを送信したポート番号(即ち、NAT変換テーブルのエントリ)を維持するために、UDPパケット制御部35によりSIPサーバ2に向けてUDPパケット(ダミーパケット)の送信を開始する(ST406)。このUDPパケットの送信は、所定の時間間隔で継続的に実行される。自身のNAT種別が対称型の場合には、UDPパケットの送信は不要であるのでST406は実行しない。続いて、端末装置は、相手装置からの200 OKメッセージを受信し、この200 OKメッセージに付加された相手装置のグローバルアドレス及びポート番号の情報を、相手装置の宛先のアドレス情報として設定する(ST407)。
このような処理により、相手装置との接続が確立されると、RTP管理部42は、ST407で取得した相手装置のグローバルアドレス及びポート番号に向けてメディアデータ(RTPパケット)の送信を開始する(ST408)。さらに、RTP管理部42は、ST404のINVITEリクエストで相手装置に通知したポート番号でメディアデータの受信を開始する(ST409)。
そこで、RTP管理部42は、相手装置からのRTPパケットを受信すると、当該RTPパケットの送信元ポート番号の情報と、自身が相手装置に対して送信するRTPパケットの宛先ポート番号の設定値とが同一か否かを判定する(ST410)。このとき、それらのポート番号が同一である場合には、RTP管理部42は、ST407で取得した相手装置のポート番号に向けてRTPパケットの送信を継続する。一方、それらのポート番号が異なる場合には、RTP管理部42は、ST407で取得したアドレス情報により設定した宛先ポート番号の設定値を相手装置から新たに受信したRTPパケットの送信元ポート番号と同一の値に変更し、RTPパケットの送信を開始する(ST411)。これにより、通話が成功すると端末装置の着呼処理は終了する。
なお、ST410において、RTPパケットの送信元のグローバルアドレスと、自身が相手装置に対してRTPパケットを送信する宛先のグローバルアドレスとが同一か否かを判定することで、RTPパケットの送信元を特定してセキュリティをより高めることができる。また、ST410においてポート番号の判定を行う対象を、ST407において相手装置から200 OKメッセージを受信した後(即ち、相手装置との接続を確立した後)、最初に受信したRTPパケットのみとすることで、不正なパケットを正規のパケットとして受信して不適切にポート番号の変更が行われる可能性を最小限にしてセキュリティを高めることができる。
図7は、図1に示した端末装置A〜Hの着呼処理の流れを示すフロー図である。まず、端末装置のシグナリング管理部41は、SIPサーバ2を介して相手装置からのINVITEリクエストを受信し、当該メッセージ中に付加された相手装置のグローバルアドレス及びポート番号の情報を取得する(ST501)。ここで取得したグローバルアドレス及びポート番号は、相手装置の宛先のアドレス情報として設定される。続いて、シグナリング管理部41は、STUNサーバ3にBindingリクエストを送信し、これに対するSTUNサーバ3からのBindingレスポンスにより、通信に利用するルータのグローバルアドレス及びポート番号の情報を取得する(ST502)。そこで、シグナリング管理部41は、グローバルアドレス及びポート番号の情報を正常に取得できたか否かを判定し(ST503)、情報を正常に取得できていない場合にはSIPサーバ2または自装置に不具合が生じていると判断して呼を切断する(ST504)。一方、情報を正常に取得できた場合には、次の処理に移行する。
端末装置のRTP管理部42は、予め調査した自身のNAT種別が対称型でない場合(S505:NO)、ST502でBindingリクエストを送信したポート番号を維持するために、ST501でINVITEリクエストを受け取った相手装置に向けてUDPパケットの送信を開始する(ST506)。自身のNAT種別が対称型の場合には、UDPパケットの送信は不要であるのでST506は実行しない。さらに、シグナリング管理部41は、ST502で取得した自身のグローバルアドレス及びポート番号の情報を付加した200 OKメッセージを相手装置に対して送信する(ST507)。
このような処理により、相手装置との接続が確立されると、RTP管理部42は、ST501で取得した相手装置のグローバルアドレス及びポート番号に向けてメディアデータ(RTPパケット)の送信を開始する(S508)。さらに、RTP管理部42は、ST507の200 OKメッセージで相手装置に通知したポート番号でメディアデータの受信を開始する(ST509)。
そこで、RTP管理部42は、相手装置からのRTPパケットを受信すると、当該RTPパケットの送信元ポート番号の情報と、自身が相手装置に対して送信するRTPパケットの宛先ポート番号の設定値とが同一か否かを判定する(ST510)。このとき、それらのポート番号が同一である場合には、RTP管理部42は、ST501で取得した相手装置のポート番号に向けてRTPパケットの送信を継続する。一方、それらのポート番号が異なる場合には、RTP管理部42は、ST501で取得したアドレス情報により設定した宛先ポート番号の設定値を相手装置から新たに受信したRTPパケットの送信元ポート番号と同一の値に変更し、RTPパケットの送信を開始する(ST511)。これにより、通話が成功すると端末装置の着呼処理は終了する。
なお、ST510において、RTPパケットの送信元のグローバルアドレスと、自身が相手装置に対してRTPパケットを送信する宛先のグローバルアドレスとが同一か否かを判定することで、RTPパケットの送信元を特定してセキュリティをより高めることができる。また、ST510においてポート番号の判定を行う対象を、ST507において相手装置から200 OKメッセージを送信した後(即ち、相手装置との接続を確立した後)、最初に受信したRTPパケットのみとすることで、不正なパケットを正規のパケットとして受信して不適切にポート番号の変更が行われる可能性を最小限にしてセキュリティを高めることができる。
図8は、図1に示したIP通信システムで実行される通信処理の一例を示すシーケンス図である。ここでは、主として端末装置のNAT種別の組合せによらずに実行される通信処理について示しており、NAT種別の組み合わせに応じて実行される通信処理の詳細については、図9〜図14に示すこととする。
まず、発呼側の端末装置は、STUNサーバ3にBindingリクエストを送信し(1001)、これを受けたSTUNサーバ3は、そのBindingリクエストの送信元のグローバルアドレス及びポート番号S1の情報を付加したBindingレスポンスを端末装置に対して送信する(1002)。次に、発呼側の端末装置は、自身のグローバルアドレス及びポート番号S1の情報を付加したINVITEリクエストをSIPサーバ2に対して送信し(1003)、続いて、Bindingリクエストを送信したポート番号S1を維持するために、SIPサーバ2に向けてUDPパケット(ダミーパケット)の送信を開始する(1004)。このUDPパケットの送信は、所定の時間間隔(例えば、30sec間隔)で通信が終了するまで継続的に実行される。
発呼側の端末装置からINVITEリクエストを受信したSIPサーバ2は、呼び出し中を通知するための180 Ringingメッセージを端末装置に送信し(1005)、さらに、受信したINVITEリクエストを着呼側の端末装置に転送する(1006)。
INVITEリクエストを受信した着呼側の端末装置は、発呼側の端末装置と同様に、STUNサーバ3にBindingリクエストを送信し(1007)、STUNサーバ3からのBindingレスポンスにより自身のグローバルアドレス及びポート番号S2の情報を取得する(1008)。続いて、着呼側の端末装置は、Bindingリクエストを送信したポート番号S2を維持するために、INVITEで指定されている送信元IPポートに向けてUDPパケット(ダミーパケット)の送信を開始する(1009)。この1009のUDPパケット(ダミーパケット)は、発呼側の端末装置のNAT種別がポート制限付きコーン型の場合は破棄されるが、着呼側の端末装置のS2ポートをキープすることができる。さらに、着呼側の端末装置は、呼び出しをする準備ができると、呼び出し中を通知するための180 RingingメッセージをSIPサーバ2に送信する(1010)。
次に、着呼側の端末装置は、ユーザによるオフフックを検出すると(1011)、ユーザの応答を通知するための200 OKメッセージをSIPサーバ2に対して送信し(1012)、これを受けたSIPサーバ2は、その200 OKメッセージを発呼側の端末装置に対して送信する(1013)。この200 OKメッセージには、通信1008でSTUNサーバ3から取得した着呼側の端末装置のグローバルアドレス及びポート番号S2の情報が付加されている。ただし、ここで付加されるグローバルアドレス及びポート番号は、着呼側のNAT種別が対称型である場合、通信1008でSTUNサーバ3から取得した値とは異なるものとなる。
このような通信により端末装置間の接続が確立されると、端末装置は、メディアセッションにおいて互いにメディアデータ(ここでは、通話音声)をRTPパケットとして互いに送受する(1014)。なお、オンフック後のセッションの終了等については説明を省略する。
図9〜図14は、NAT種別の組み合わせに応じて実行される通信処理の詳細を示すシーケンス図である。これらの通信処理におけるメディアセッションでのNAT越え方法は、SIPサーバ2または相手装置に向けてUDPパケットを送信することによりポート番号を維持するポートキープ処理によって実現するもの(方法A)、相手装置から受信したRTPパケットの送信元ポート番号の情報を取得し、相手装置に送信するRTPパケットの宛先ポート番号の設定値をその送信元ポート番号と同一の値に変更するポート変更処理(ポートキープ処理を併せて実行する場合も含む)によって実現するもの(方法B)に分類することができる。これらのNAT越え方法とNAT種別の組み合わせとの関係を図15に示す。
図9〜図11は、NAT越え方法Aを用いる通信処理の例として、NAT種別がF−F、A−F及びF−Aの場合をそれぞれ示す。図9〜図11では、説明の簡単のため、STUNサーバ3及びSIPサーバ2については図示を省略してある(図12〜図14についても同様)。また、図9〜図11において、図8に示したシーケンス図と概ね同様の処理については同一の符号を付してあり、以下で特に言及しない事項については、図8の場合と同様とする(図12〜図15についても同様)。
図9に示すように、NAT種別がF−Fの場合、まず、発呼側の端末装置Aは、自身のグローバルアドレス及びポート番号S1の情報をSTUNサーバ3に問い合わせて取得する(1001,1002)。次に、端末装置Aは、自身のグローバルアドレス及びポート番号S1の情報を付加したINVITEリクエストを着呼側の端末装置Eに対して送信し(1003,1006)、続いて、ポート番号S1を維持するために、SIPサーバ2に向けてUDPパケットの送信を開始する(1004)。このUDPパケットの送信は、所定の時間間隔で継続的に実行される。
INVITEリクエストを受信した端末装置Eは、端末装置Aと同様に、自身のグローバルアドレス及びポート番号S2の情報をSTUNサーバ3に問い合わせて取得する(1007,1008)。端末装置Eは、端末装置Aと同様に、ポート番号S2を維持するために、端末装置Aに向けてUDPパケットの送信を開始する(1009)。さらに、端末装置Eは、呼び出し中を通知するための180 Ringingメッセージを端末装置Aに送信し(1010)、続いてオフフックを検出すると(1011)、応答を通知するための200 OKメッセージを端末装置Aに送信する(1012,1013)。この200 OKメッセージには、端末装置Eのグローバルアドレス及びポート番号S2の情報が付加されている。
その後のメディアセッションでは、着呼側の端末装置EのRTPパケットが発呼側に先に着く場合(ケース1)と、逆に発呼側の端末装置AのRTPパケットが着呼側に先に着く場合(ケース2)とが考えられ、これら2つのケースを分けて図示してある。また、図において、各通信の矢印上に付された記号●及びそれと破線の矢印で結ばれた記号○は、記号●が付されたアウトバウンド通信によって記号○が付されたインバウンド通信が可能となる(既に存在するNAT変換テーブル上のエントリの消滅を防ぐ場合を含む)ことを示している(図12〜図17についても同様)。また、各通信を示す矢印の先に付された記号×は、その通信が相手装置に到達しないことを示している。
ケース1では、端末装置Eは、先のINVITEリクエストにより取得した端末装置Aのポート番号S1に対してRTPパケットを送信する(2001)。この場合、端末装置AのNAT種別は完全コーン型であり、ポート番号S1は、端末装置Aが継続的に送信するUDPパケットによって維持されているため、端末装置EからのRTPパケットは端末装置Aに到達する。次に、端末装置Aは、先の200 OKメッセージにより取得した端末装置Eのポート番号S2に対してRTPパケットを送信する(2002)。この場合、端末装置EのNAT種別は完全コーン型であり、ポート番号S2は、直前に端末装置Eが端末装置Aに対して行った通信2001(或いは、端末装置Eが継続的に送信するUDPパケット)によって維持されているため、端末装置AからのRTPパケットは端末装置Eに到達する。その後は、通常の通信が可能となる。
一方、ケース2では、端末装置Aは、先の200 OKメッセージにより通知された端末装置Eのポート番号S2に対してRTPパケットを送信する(2003)。このポート番号S2は、端末装置Eが継続的に送信するUDPパケットによって維持されているため、RTPパケットは端末装置Aに到達する。次に、端末装置Eは、先のINVITEリクエストにより取得した端末装置Aのポート番号S1に対してRTPパケットを送信する(2004)。このポート番号S1は、直前に端末装置Aが端末装置Eに対して行った通信2003(或いは、端末装置Aが継続的に送信するUDPパケット)によって維持されているため、端末装置EからのRTPパケットは端末装置Aに到達する。その後は、通常の通信が可能となる。
図10に示すように、NAT種別がA−Fの場合、図9と同様に端末装置同士の接続が確立される(1001〜1011)。その後のメディアセッションにおいて、ケース1では、着呼側の端末装置Eは、先のINVITEリクエストにより取得した発呼側の端末装置Bのポート番号S1に対してRTPパケットを送信する(3001)。この場合、ポート番号S1は、端末装置Bが継続的に送信するUDPパケットによって維持されているが、発呼側の端末装置BのNAT種別は制限付きコーン型(ポート制限付きコーン型の場合も同様)であるので、IPアドレスの制限により端末装置EからのRTPパケットは端末装置B(ルータ12)に拒否される。
次に、端末装置Bは、先の200 OKメッセージにより取得した端末装置Eのポート番号S2に対してRTPパケットを送信する(3002)。この場合、端末装置EのNAT種別は完全コーン型であり、ポート番号S2は、直前に端末装置Eが端末装置Bに対して行った通信3001(或いは、端末装置Eが継続的に送信するUDPパケット)によって維持されているため、端末装置BからのRTPパケットは端末装置Eに到達する。続いて、端末装置Eは、先のINVITEリクエストにより取得した端末装置Bのポート番号S1に対してRTPパケットを送信する(3003)。この場合、直前に端末装置Bが端末装置Eに対して行った通信3002によりIPアドレスの制限が解除され、端末装置EからのRTPパケットは端末装置Bに到達する。その後は、通常の通信が可能となる。
一方、ケース2では、端末装置Bは、先の200 OKメッセージにより取得した端末装置Eのポート番号S2に対してRTPパケットを送信する(3004)。この場合、ポート番号S2は、端末装置Eが継続的に送信するUDPパケットによって維持されているため、端末装置BからのRTPパケットは端末装置Eに到達する。次に、端末装置Eは、先のINVITEリクエストにより取得した端末装置Bのポート番号S1に対してRTPパケットを送信する(3004)。この場合、直前に端末装置Bが端末装置Eに対して行った通信3004によって、端末装置Eに対するIPアドレスの制限が解除されるとともにポート番号S1が維持されるため、端末装置EからのRTPパケットは端末装置Bに到達する。その後は、通常の通信が可能となる。
図11に示すように、NAT種別がF−A場合、図9と同様に端末装置同士の接続が確立される(1001〜1011)。その後のメディアセッションにおいて、ケース1では、着呼側の端末装置Fは、先のINVITEリクエストにより取得した発呼側の端末装置Aのポート番号S1に対してRTPパケットを送信する(4001)。この場合、発呼側の端末装置AのNAT種別は完全コーン型であり、ポート番号S1は、端末装置Aが継続的に送信するUDPパケットによって維持されているため、RTPパケットは端末装置Aに到達する。次に、端末装置Aは、先の200 OKメッセージにより取得した端末装置Fのポート番号S2に対してRTPパケットを送信する(4002)。この場合、端末装置FのNAT種別は制限付きコーン型(ポート制限付きコーン型の場合も同様)であるが、直前に端末装置Fが端末装置Aに対して行った通信4001によって、端末装置Aに対するIPアドレスの制限が解除されるとともにポート番号S2が維持されるため、端末装置AからのRTPパケットは端末装置Fに到達する。その後は、通常の通信が可能となる。
一方、ケース2では、端末装置Aは、先の200 OKメッセージにより取得した端末装置Eのポート番号S2に対してRTPパケットを送信する(4003)。この場合、ポート番号S2は、端末装置Fが継続的に送信するUDPパケットによって維持されているため、端末装置AからのRTPパケットは端末装置Fに到達する。次に、端末装置Fは、先のINVITEリクエストにより取得した端末装置Aのポート番号S1に対してRTPパケットを送信する(4004)。この場合、直前に端末装置Aが端末装置Fに対して行った通信4003によって、端末装置Fに対するIPアドレスの制限が解除されるとともにポート番号S1が維持されるため、端末装置FからのRTPパケットは端末装置Aに到達する。その後は、通常の通信が可能となる。
なお、上記F−F、A−F及びF−A以外の方法Aを適用可能な他のNAT種別の組み合わせについても同様の通信を実行することが可能である。
図12〜図14は、NAT越え方法Bを用いる通信処理の例として、NAT種別がF−S、A−S及びS−Fの場合をそれぞれ示す。
図12に示すように、NAT種別がF−Sの場合、着呼側の端末装置Hは、NAT種別が対称型であるために、ポート番号S2を維持するためのUDPパケットの送信を実行しない点、及び端末装置Aと通信する際のポート番号が、STUNサーバ3に問い合わせたポート番号S2から変更(ポート番号S3に変更)される点を除けば、図9と同様に端末装置同士の接続が確立される(1001〜1011)。
その後のメディアセッションにおいて、ケース1では、着呼側の端末装置Hは、先のINVITEリクエストにより取得した発呼側の端末装置Aのポート番号S1に対してRTPパケットを送信する(5001)。この場合、端末装置AのNAT種別は完全コーン型であり、ポート番号S1は、端末装置Aが継続的に送信するUDPパケットによって維持されているため、RTPパケットは端末装置Aに到達する。このとき、端末装置Aが、先の200 OKメッセージにより取得した端末装置Hのポート番号S2に対してRTPパケットを送信すると(5002)、端末装置AからのRTPパケットを受信可能なポート番号はS3となっているので、そのポート番号S2に向けたRTPパケットは端末装置H(ルータ18)に拒否される。
通信5001でRTPパケットを受信した端末装置Aは、そのRTPパケットの送信元ポート番号S3の情報と、端末装置Hに向けてRTPパケットを送信する宛先ポート番号の設定値S2とを比較し、それらのポート番号が異なるため、宛先ポート番号の設定値S2をS3(即ち、通信5001で受信したRTPパケットの送信元ポート番号と同一の値)に変更してRTPパケットを送信する(5003)。この場合、ポート番号S3は、直前に端末装置Hが端末装置Aに対して行った通信5001によって維持されているため、端末装置AからのRTPパケットは端末装置Hに到達する。その後は、通常の通信が可能となる。
一方、ケース2では、端末装置Aは、先の200 OKメッセージにより取得した端末装置Hのポート番号S2に対してRTPパケットを送信するが(5004)、5002と同様に端末装置Hに拒否される。次に、端末装置Hは、先のINVITEリクエストにより取得した端末装置Aのポート番号S1に対してRTPパケットを送信し(5005)、このRTPパケットは直前に端末装置Aが端末装置Eに対して行った通信5004によって端末装置Aに到達する。
通信5005でRTPパケットを受信した端末装置Aは、通信5003の場合と同様に、宛先ポート番号の設定値S2をS3に変更してRTPパケットを送信する(5006)。この場合、ポート番号S3は、直前に端末装置Hが端末装置Aに対して行った通信5005によって維持されているため、端末装置AからのRTPパケットは端末装置Hに到達する。その後は、通常の通信が可能となる。
ここでは、ポート変更処理の判定を行う対象となるRTPパケットは、相手装置との接続を確立した後に最初に受信したRTPパケット(図中、「1stRTP」)のみとする(図13及び図14についても同様)。これにより、不正なパケットを正規のパケットとして受信して不適切にポート番号の変更が行われる可能性を最小限にしてセキュリティを高めることができる。
図13に示すように、NAT種別がA−Sの場合、着呼側の端末装置Hは、NAT種別が対称型であり、図12と同様に端末装置同士の接続が確立される(1001〜1011)。
その後のメディアセッションにおいて、ケース1では、着呼側の端末装置Hは、先のINVITEリクエストにより取得した発呼側の端末装置Bのポート番号S1に対してRTPパケットを送信する(6001)。この場合、ポート番号S1は、端末装置Bが継続的に送信するUDPパケットによって維持されているが、端末装置BのNAT種別は制限付きコーン型(ポート制限付きコーン型の場合も同様)であるので、IPアドレスの制限により端末装置EからのRTPパケットは端末装置B(ルータ12)に拒否される。次に、端末装置Bは、先の200 OKメッセージにより取得した端末装置Hのポート番号S2に対してRTPパケットを送信する(6002)。この場合、端末装置AからのRTPパケットを受信可能なポート番号はS3となっているので、そのポート番号S2に向けたRTPパケットは端末装置H(ルータ18)に拒否される。そこで、端末装置Hが、通信6001と同様に端末装置Bのポート番号S1に対してRTPパケットを送信すると(6003)、直前に端末装置Bが端末装置Hに対して行った通信6002によって、端末装置Hに対するIPアドレスの制限が解除されるとともにポート番号S1が維持されるため、端末装置HからのRTPパケットは端末装置Bに到達する。
通信6003でRTPパケットを受信した端末装置Bは、そのRTPパケットの送信元ポート番号S3の情報と、端末装置Hに向けてRTPパケットを送信する宛先ポート番号の設定値S2とを比較し、それらのポート番号が異なるため、宛先ポート番号の設定値S2をS3に変更してRTPパケットを送信する(6004)。この場合、ポート番号S3は、直前に端末装置Hが端末装置Aに対して行った通信6003によって維持されているため、端末装置AからのRTPパケットは端末装置Hに到達する。その後は、通常の通信が可能となる。
一方、ケース2では、端末装置Bは、先の200 OKメッセージにより取得した端末装置Hのポート番号S2に対してRTPパケットを送信するが(6005)、6002と同様に端末装置Hに拒否される。次に、端末装置Hは、先のINVITEリクエストにより取得した端末装置Bのポート番号S1に対してRTPパケットを送信し(6006)、RTPパケットは6003と同様に端末装置Bに到達する。
通信6006でRTPパケットを受信した端末装置Bは、通信6004の場合と同様に、宛先ポート番号の設定値S2をS3に変更してRTPパケットを送信する(6007)。この場合、ポート番号S3は、直前に端末装置Hが端末装置Aに対して行った通信6006によって維持されているため、端末装置AからのRTPパケットは端末装置Hに到達する。その後は、通常の通信が可能となる。
図14に示すように、NAT種別がS−Fの場合、発呼側の端末装置DのNAT種別が対称型である点を除けば、図12と概ね同様に端末装置同士の接続が確立される(1001〜1011)。
その後のメディアセッションにおいて、ケース1では、着呼側の端末装置Eは、先のINVITEリクエストにより取得した発呼側の端末装置Dのポート番号S1に対してRTPパケットを送信する(7001)。この場合、端末装置EからのRTPパケットを受信可能なポート番号はS4となっており、そのポート番号S1に向けたRTPパケットは端末装置S(ルータ14)に拒否される。次に、端末装置Dは、先の200 OKメッセージにより取得した端末装置Eのポート番号S2に対してRTPパケットを送信する(7002)。この場合、端末装置EのNAT種別は完全コーン型であり、直前に端末装置Eが端末装置Bに対して行った通信7001(或いは、端末装置Eが継続的に送信するUDPパケット)により、ポート番号S2が維持されるため、端末装置BからのRTPパケットは端末装置Eに到達する。
通信7002でRTPパケットを受信した端末装置Eは、そのRTPパケットの送信元ポート番号S4の情報と、端末装置Dに向けてRTPパケットを送信する宛先ポート番号の設定値S1とを比較し、それらのポート番号が異なるため、宛先ポート番号の設定値S1をS4に変更してRTPパケットを送信する(7003)。この場合、ポート番号S4は、直前に端末装置Dが端末装置Eに対して行った通信7002によって維持されているため、端末装置EからのRTPパケットは端末装置Dに到達する。その後は、通常の通信が可能となる。
一方、ケース2では、端末装置Dは、先の200 OKメッセージにより取得した着呼側の端末装置Eのポート番号S2に対してRTPパケットを送信する(7004)。この場合、ポート番号S2は、端末装置Eが継続的に送信するUDPパケットによって維持されているため、端末装置DからのRTPパケットは端末装置Eに到達する。このとき、端末装置Eが、先のINVITEリクエストにより取得した端末装置Dのポート番号S1に対してRTPパケットを送信すると(7005)、通信7001と同様に端末装置Bに拒否される。
通信7004でRTPパケットを受信した端末装置Eは、通信7003の場合と同様に、宛先ポート番号の設定値S1をS4に変更してRTPパケットを送信する(7006)。この場合、ポート番号S4は、直前に端末装置Dが端末装置Eに対して行った通信7005によって維持されているため、端末装置DからのRTPパケットは端末装置Eに到達する。その後は、通常の通信が可能となる。
なお、上記F−S、A−S及びS−F以外の方法Bを適用可能な他のNAT種別の組合せについても同様の通信を実行することが可能である。
本発明を特定の実施形態に基づいて詳細に説明したが、これらの実施形態はあくまでも例示であって本発明はこれらの実施形態によって限定されるものではない。例えば、本実施形態では、端末装置A〜H間で実行される通信について説明したが、端末装置A〜Hは、インターネット5以外の他のIP網やPSTN網に接続された装置と同様に通信することが可能である。この場合、本発明を実施可能な機能を有する端末装置を識別するために端末装置間で送受される呼制御メッセージに識別情報を付加することができる。
本発明に係るIP通信装置及びIP通信システム並びにこれらのIP通信方法は、IP通信装置が、相手装置と互いにNAT機能を有する中継機器を介して行う通信において、中継機器のNAT種別の組合せに対し、NAT越えを簡易かつ確実に実現可能な範囲を向上させることを可能とするので、NAT機能を有する中継機器を介して広域ネットワークに接続されるIP通信装置及びこれを備えたIP通信システム並びにこれらのIP通信方法として有用である。
本願発明に係るIP通信システムの概略を示す構成図 端末装置間のNAT種別の組合せパターンを示す図 端末装置A〜Hの主要部の構成を示すブロック図 端末装置A〜HのSIPサーバへの登録処理を示すフロー図 端末装置A〜HのSIPサーバへの登録データの一例を示す図 端末装置A〜Hの発呼処理を示すフロー図 端末装置A〜Hの着呼処理を示すフロー図 IP通信システムで実行される通信処理の一例を示すシーケンス図 NAT種別の組合せがF−Fの場合の通信処理を示すシーケンス図 NAT種別の組合せがA−Fの場合の通信処理を示すシーケンス図 NAT種別の組合せがF−Aの場合の通信処理を示すシーケンス図 NAT種別の組合せがF−Sの場合の通信処理を示すシーケンス図 NAT種別の組合せがA−Sの場合の通信処理を示すシーケンス図 NAT種別の組合せがS−Fの場合の通信処理を示すシーケンス図 NAT種別の組合せに対するNAT越え方法を示す図
符号の説明
1 IP通信システム
2 SIPサーバ(呼接続用サーバ)
3 STUNサーバ(アドレス情報提供用サーバ)
32 呼制御部
33 STUN制御部
34 SIP制御部(シグナリング手段)
35 UDPパケット制御部(データ通信手段)
41 シグナリング管理部
42 RTP管理部(通信管理手段)
11〜18 ルータ(中継機器)
A〜H 端末装置(IP通信装置)

Claims (8)

  1. 広域ネットワークにおいて、相手装置と互いにNAT機能を有する中継機器を介して通信を行うIP通信装置であって、
    前記相手装置との接続を確立すべく呼接続用サーバを介して呼制御メッセージの送受信を行うシグナリング手段と、
    前記接続の確立後に前記相手装置との間でメディアデータの送受信を行うデータ通信手段と、
    前記接続の確立後に前記データ通信手段が受信したメディアデータのパケットの送信元ポート番号の情報を取得し、前記データ通信手段が前記相手装置に送信するパケットの宛先ポート番号の設定値を前記送信元ポート番号と同一の値に変更する通信管理手段と
    を備えたことを特徴とするIP通信装置。
  2. 前記通信管理手段は、前記送信元ポート番号の情報と前記宛先ポート番号の設定値とを比較し、それらのポート番号の値が異なる場合にのみ、前記宛先ポート番号の設定値を変更することを特徴とする請求項1に記載のIP通信装置。
  3. 前記通信管理手段は、前記データ通信手段が前記接続の確立後に前記相手装置から最初に受信したパケットについてのみ、前記宛先ポート番号の設定値の変更を実行することを特徴とする請求項1または請求項2に記載のIP通信装置。
  4. 前記通信管理手段は、前記データ通信手段に前記相手装置からのパケットを受信する所定のポート番号を維持すべくダミーパケットを周期的に送信させることを特徴とする請求項1に記載のIP通信装置。
  5. 前記広域ネットワークに接続されたアドレス情報提供用サーバとの通信により、自装置が接続された前記中継機器のNAT種別の情報を取得するNAT情報取得手段を更に備え、
    前記通信管理手段は、前記中継機器のNAT種別が対称型ではない場合、前記ダミーパケットの送信を実行することを特徴とする請求項4に記載のIP通信装置。
  6. 広域ネットワークにおいて、相手装置と互いにNAT機能を有する中継機器を介して通信を行うIP通信装置であって、
    予め取得した自IP通信装置側のグローバルアドレスとポート番号とを前記相手装置に送信する送信手段と、
    前記相手装置のグローバルアドレスとポート番号とを含む応答を前記相手装置から受信する受信手段と、
    前記受信した前記相手装置のポート番号に向けてメディアデータの送信を開始するとともに前記相手装置からのメディアデータの受信を開始するデータ通信手段と、
    前記メディアデータの送信を開始した前記相手装置のポート番号と前記相手装置から受信したメディアデータのパケットの送信元ポート番号とが異なる場合、前記送信元ポート番号を前記メディアデータの送信先のポート番号に変更する変更手段とを備えたことを特徴とするIP通信装置。
  7. 広域ネットワークにおいて、互いにNAT機能を有する中継機器を介して通信を行う複数のIP通信装置を有するIP通信システムであって、
    前記IP通信装置は、
    他のIP通信装置との接続を確立すべく呼接続用サーバを介して呼制御メッセージの送受信を行うシグナリング手段と、
    前記接続の確立後に前記他のIP通信装置との間でメディアデータの送受信を行うデータ通信手段と、
    前記接続の確立後に前記データ通信手段が受信したメディアデータのパケットの送信元ポート番号の情報を取得し、前記データ通信手段が前記他のIP通信装置に送信するパケットの宛先ポート番号の設定値を前記送信元ポート番号と同一の値に変更する通信管理手段と
    を備えたことを特徴とするIP通信システム。
  8. 広域ネットワークにおいて、相手装置と互いにNAT機能を有する中継機器を介して通信を行うIP通信装置のIP通信方法であって、
    前記相手装置との接続を確立すべく呼接続用サーバを介して呼制御メッセージの送受信を行うシグナリングステップと、
    前記接続の確立後に前記相手装置との間でメディアデータの送受信を行うデータ通信ステップと
    を有し、
    前記データ通信ステップは、受信したメディアデータのパケットの送信元ポート番号の情報を取得し、前記相手装置に送信するパケットの宛先ポート番号の設定値を前記送信元ポート番号と同一の値に変更する通信管理ステップを含むことを特徴とするIP通信装置のIP通信方法。
JP2007072109A 2007-03-20 2007-03-20 Ip通信装置及びip通信システム並びにこれらのip通信方法 Expired - Fee Related JP4411332B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007072109A JP4411332B2 (ja) 2007-03-20 2007-03-20 Ip通信装置及びip通信システム並びにこれらのip通信方法
US12/050,515 US8144704B2 (en) 2007-03-20 2008-03-18 IP communication apparatus and IP communication method of such apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007072109A JP4411332B2 (ja) 2007-03-20 2007-03-20 Ip通信装置及びip通信システム並びにこれらのip通信方法

Publications (2)

Publication Number Publication Date
JP2008236297A true JP2008236297A (ja) 2008-10-02
JP4411332B2 JP4411332B2 (ja) 2010-02-10

Family

ID=39774616

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007072109A Expired - Fee Related JP4411332B2 (ja) 2007-03-20 2007-03-20 Ip通信装置及びip通信システム並びにこれらのip通信方法

Country Status (2)

Country Link
US (1) US8144704B2 (ja)
JP (1) JP4411332B2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011041138A (ja) * 2009-08-17 2011-02-24 Oki Networks Co Ltd 通信装置及びプログラム、並びに、通信システム
JP2011077920A (ja) * 2009-09-30 2011-04-14 Brother Industries Ltd 通信システム、端末装置、通信方法、及び通信プログラム
JP2011077922A (ja) * 2009-09-30 2011-04-14 Brother Industries Ltd 通信システム、通信制御装置、通信制御方法、及び通信制御プログラム
JP2011077921A (ja) * 2009-09-30 2011-04-14 Brother Industries Ltd 通信システム
JP2011229182A (ja) * 2011-07-11 2011-11-10 Hitachi Ltd 通信システム
JP2013524363A (ja) * 2010-04-07 2013-06-17 アップル インコーポレイテッド ユーザをオンラインセッションに招待するための装置及び方法
US8706892B2 (en) 2009-03-11 2014-04-22 Hitachi, Ltd. Communication system and server
WO2015162735A1 (ja) * 2014-04-23 2015-10-29 富士通株式会社 通信装置、サーバ、通信システム及び通信方法
US11212250B2 (en) 2017-03-31 2021-12-28 Nec Corporation Relay device, network system, and network control method

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0613417D0 (en) * 2006-07-06 2006-08-16 Group 3 Technology Ltd Method for enabling communication between two network nodes
CN101222388B (zh) * 2007-01-12 2013-01-16 华为技术有限公司 一种确定接入点存在广播/多播缓存帧的方法和系统
US8477761B2 (en) * 2008-03-27 2013-07-02 Ittiam Systems (P) Ltd. Unified session signaling system for use in multimedia communications
US7962627B2 (en) * 2008-12-04 2011-06-14 Microsoft Corporation Peer-to-peer network address translator (NAT) traversal techniques
KR20100134433A (ko) * 2009-06-15 2010-12-23 엘지전자 주식회사 기능 제어부를 갖는 이동 단말기
CN102215274B (zh) * 2010-04-07 2014-04-30 苹果公司 用于邀请用户到在线会话的设备和方法
CN102377834B (zh) * 2010-08-20 2014-02-19 鸿富锦精密工业(深圳)有限公司 网络地址转换设备及通信方法
CN101938532B (zh) * 2010-09-17 2013-07-24 北京神州泰岳软件股份有限公司 基于udp的穿越nat设备的方法及系统
CN101945141B (zh) * 2010-09-17 2014-02-19 北京神州泰岳软件股份有限公司 基于tcp的穿越nat设备的方法及系统
EP2571223A1 (en) * 2011-09-14 2013-03-20 Telefonaktiebolaget LM Ericsson (publ) A gateway and a method therein for enabling sip communication over a non-standard sip transport protocol
CN102724555B (zh) * 2012-07-09 2016-05-11 杭州海康威视数字技术股份有限公司 视频监控系统中的多路码流同端口处理方法及其系统
WO2016108137A1 (en) * 2014-12-31 2016-07-07 Reliance Jio Infocomm Limited A system and method of providing multimedia service to a user equipment
CN105306620B (zh) * 2015-11-13 2016-08-24 吴华瑜 一种数据的传输控制系统
CN106210092B (zh) * 2016-07-19 2019-08-06 天彩电子(深圳)有限公司 一种融合upnp及stun的p2p穿越方法及其系统
CN109120737B (zh) * 2018-08-10 2021-08-31 哈尔滨工业大学(威海) 一种基于泊松模型的递增型对称nat的udp穿透方法与系统
PL3912312T3 (pl) * 2019-01-15 2022-11-21 Telefonaktiebolaget Lm Ericsson (Publ) Zapewnianie usług komunikacyjnych przy użyciu zestawów urządzeń We/Wy
US11889028B2 (en) 2021-04-26 2024-01-30 Zoom Video Communications, Inc. System and method for one-touch split-mode conference access
US11356296B1 (en) * 2021-07-30 2022-06-07 Quantum Networks (SG) Pte. Ltd. System and method for independent binding of virtual networks overlay using a physical network topology
US11916979B2 (en) * 2021-10-25 2024-02-27 Zoom Video Communications, Inc. Shared control of a remote client

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6928082B2 (en) * 2001-03-28 2005-08-09 Innomedia Pte Ltd System and method for determining a connectionless communication path for communicating audio data through an address and port translation device
US7269173B2 (en) * 2002-06-26 2007-09-11 Intel Corporation Roaming in a communications network
KR100511479B1 (ko) * 2002-12-27 2005-08-31 엘지전자 주식회사 Nat를 갖는 망에서의 sip 서비스 방법
US7899932B2 (en) * 2003-01-15 2011-03-01 Panasonic Corporation Relayed network address translator (NAT) traversal
JP2005117587A (ja) 2003-10-10 2005-04-28 Newrong Inc 通信方法
JP4269226B2 (ja) 2003-11-14 2009-05-27 ソニー株式会社 情報通信システムおよび方法、情報処理装置および方法、プログラム並びに記録媒体
JP4260659B2 (ja) 2004-03-12 2009-04-30 エヌ・ティ・ティ・コミュニケーションズ株式会社 パケットのnat透過機能を有する端末装置及びそのプログラム
BRPI0516744A2 (pt) * 2004-06-07 2013-05-28 Sling Media Inc mÉtodos de reproduÇço de fluxo de mÍdia recebido numa rede e produto de programa de computador
US7656870B2 (en) * 2004-06-29 2010-02-02 Damaka, Inc. System and method for peer-to-peer hybrid communications
CN101053218B (zh) 2004-11-08 2011-07-20 松下电器产业株式会社 通信终端和通信方法
JP4741964B2 (ja) 2005-03-18 2011-08-10 パナソニック株式会社 通信装置、通信システム及び通信方法
US20070248085A1 (en) * 2005-11-12 2007-10-25 Cranite Systems Method and apparatus for managing hardware address resolution
US20070253418A1 (en) * 2006-04-27 2007-11-01 D.S.P. Group Ltd. Routing path optimization between sip endpoints
US7929419B2 (en) * 2006-08-04 2011-04-19 Tekelec Methods, systems, and computer program products for inhibiting message traffic to an unavailable terminating SIP server
JP2008085470A (ja) * 2006-09-26 2008-04-10 Fujitsu Ltd Ipアプリケーションサービス提供システム
US7801059B2 (en) * 2007-04-20 2010-09-21 Panasonic Corporation IP communication apparatus and NAT type determination method by the same

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8706892B2 (en) 2009-03-11 2014-04-22 Hitachi, Ltd. Communication system and server
US9485281B2 (en) 2009-03-11 2016-11-01 Hitachi, Ltd. Communication system and server
JP2011041138A (ja) * 2009-08-17 2011-02-24 Oki Networks Co Ltd 通信装置及びプログラム、並びに、通信システム
JP2011077920A (ja) * 2009-09-30 2011-04-14 Brother Industries Ltd 通信システム、端末装置、通信方法、及び通信プログラム
JP2011077922A (ja) * 2009-09-30 2011-04-14 Brother Industries Ltd 通信システム、通信制御装置、通信制御方法、及び通信制御プログラム
JP2011077921A (ja) * 2009-09-30 2011-04-14 Brother Industries Ltd 通信システム
US8433821B2 (en) 2009-09-30 2013-04-30 Brother Kogyo Kabushiki Kaisha Communication system, terminal device and communication control device
US8606931B2 (en) 2009-09-30 2013-12-10 Brother Kogyo Kabushiki Kaisha Communication system, communication control device and communication control method
JP2013524363A (ja) * 2010-04-07 2013-06-17 アップル インコーポレイテッド ユーザをオンラインセッションに招待するための装置及び方法
US9654551B2 (en) 2010-04-07 2017-05-16 Apple Inc. Apparatus and method for inviting users to online sessions
JP2011229182A (ja) * 2011-07-11 2011-11-10 Hitachi Ltd 通信システム
WO2015162735A1 (ja) * 2014-04-23 2015-10-29 富士通株式会社 通信装置、サーバ、通信システム及び通信方法
JPWO2015162735A1 (ja) * 2014-04-23 2017-04-13 富士通株式会社 通信装置、サーバ、通信システム及び通信方法
US10044523B2 (en) 2014-04-23 2018-08-07 Fujitsu Limited Communication apparatus, server, communication system, and communication method
US11212250B2 (en) 2017-03-31 2021-12-28 Nec Corporation Relay device, network system, and network control method

Also Published As

Publication number Publication date
US20080232362A1 (en) 2008-09-25
JP4411332B2 (ja) 2010-02-10
US8144704B2 (en) 2012-03-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
US8650312B2 (en) Connection establishing management methods for use in a network system and network systems using the same
Guha et al. NUTSS: A SIP-based approach to UDP and TCP network connectivity
JP5655009B2 (ja) 拡縮可能なnat通過
US20080215669A1 (en) System and Method for Peer-to-Peer Connection of Clients Behind Symmetric Firewalls
US20060187912A1 (en) Method and apparatus for server-side NAT detection
EP2449749B1 (en) Method and apparatus for relaying packets
US20090313386A1 (en) Communication apparatus, communication method and communication system
US8335211B2 (en) Communication system and control server
US8374178B2 (en) Apparatus and method for supporting NAT traversal in voice over internet protocol system
JP4847403B2 (ja) Ip通信装置及びip通信装置によるnat種別の判定方法
JP4722623B2 (ja) Ip通信装置及びその制御方法
JP2007043374A (ja) Ip通信装置及びそれを備えた構内ネットワークシステム並びにip通信装置の制御方法
JP2006109316A (ja) ゲートウェイ装置および通信接続方法
JP2008311764A (ja) Ip通信装置およびip通信方法ならびに呼制御サーバ
JP4654613B2 (ja) 通信システム、通信方法、アドレス配布システム、アドレス配布方法、通信端末
US9516575B2 (en) Mobile device based proxy for browser-originated procedures
JP4889617B2 (ja) ゲートウエイ装置および通信制御方法
JP4728933B2 (ja) Ip電話通信システム、ip電話通信方法、およびそのプログラム
JP2007329791A (ja) ゲートウェイ装置
JP2010219580A (ja) 通信中継装置、通信端末、及び通信方法
JP4555005B2 (ja) プロトコル変換サーバ
JP4790067B2 (ja) Ipネットワークシステム、ゲートウエイ装置及びip機器
JP2010239516A (ja) 情報通信システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090818

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: 20091020

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: 20091116

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121120

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121120

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131120

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees