発明の概要
データ・セッションにおいて効率的に端末の存在を検知するための技術が、ここに説明される。典型的な実施態様において、与えられた端末aは、1つの、データ・セッション(例えばリアル・タイム・トランスポート・プロトコル(RTP)セッション)において少なくとも1つの他の端末の存在を検知することを要望する。この要望は、例えば、端末aが、所定時間内に他の端末からデータを受け取らなかった場合、あるいは、端末aが、その接続状態は悪くなったと疑う場合に発生し得る。一実施態様において、端末aは、他の端末の各々からの応答を求める要求を生成し、その要求のためにRTP制御プロトコル(RTCP)においてAPPパケットを形成し、少なくとも1つのインターネット・プロトコル(IP)パケットの中にAPPパケットをカプセル化し、そのIPパケットを他の端末へ送信する。それから、端末aは、要求が送信される各端末からの応答について監視する。端末aは、レスポンスがその端末から受信される場合には、そのデータ・セッションに端末が存在することを宣言する。端末aは、レスポンスが受信されない各端末へ1つ以上の追加の要求を送信し得る。端末aは、その端末へ所定の数(例えば2)の要求が送信されて、そして、その端末から応答が受信されない場合には、そのデータ・セッションに端末が不在であることを宣言する。
ここに説明された技術は、(1)その端末の存在についての知識が望まれる時と場合に、要求が直ちに送信され得る、および(2)その要求と応答は少量のネットワーク資源を使用して送信され得る、ので、端末の存在を効率的に検知する。本発明の種々の態様と実施態様は、さらに下記に詳細に説明される。
本発明の特徴および性質は、同様の参照文字が対応するものを全て識別する図面に関連して理解されると、下に示された詳細な説明から、より明らかになるであろう。
詳細な説明
「典型的である(exemplary」という単語は、ここでは、例(example)、事例(instance)、または例示(illustration)として供されることを意味するものとして使用される。「典型的である」として、ここに説明されたすべての実施態様あるいは設計は、必ずしも、他の実施態様あるいは設計よりも好ましい、あるいは有利なものとして、解釈されるべきではない。
図1は、一緒に相互運用するが、しかしそうでなければ互いから独立し得る多数のコミュニケーション・ネットワークで構成された通信システム100を示す。図1では、無線の広域ネットワーク(WWAN)110、無線ローカル・エリア・ネットワーク(WLAN)120および電話網130は、インターネット140および/または他のいくつかのデータ網を介してデータを交換する。
WWAN110は、大きな地理的なエリアに通信サービス区域を提供し、符号分割多元接続(CDMA)ネットワーク、時分割多元接続(TDMA)ネットワーク、周波数分割多元接続(FDMA)ネットワーク、直交周波数分割多元接続(OFDMA)ネットワーク、あるいは他のあるネットワークかもしれない。CDMAネットワークは、cdma2000、広帯域CDMA(W−CDMA)などのような1つ以上の無線アクセス技術(RAT)を実装し得る。cdma2000は、IS−2000、IS−95およびIS−856標準をカバーする。WWAN110は、このようにIS−2000、IS−95およびIS−856を利用するcdma2000ネットワーク、あるいはW−CDMAを利用するユニバーサル・モービル・テレコミュニケーション・システム(UMTS)ネットワークかもしれない。TDMAネットワークは、グローバル移動体通信システム(GSM)、ディジタル・アドバンスト移動電話サービス(D−AMPS)などのような1つ以上のRATを実装し得る。これらの様々なRATおよび標準は、当該技術分野で知られている。
WWAN110は、特別の地理的なエリアに通信サービス区域を提供する各基地局と共に、多数の基地局114を含んでいる。基地局は、一般的には、端末と通信し、アクセス・ポイント、ノードBあるいは他のいくつかの用語と呼ばれるかもしれない固定局である。システム・コントローラ116は、基地局114へ結合されて、これらの基地局に調整と制御をあたえる。システム・コントローラ116は、単一のネットワーク実体(entity)あるいはネットワーク実体の集まりかもしれない。例えば、システム・コントローラ116は、cdma2000ネットワーク用のパケット・データ供給ノード(PDSN)およびパケット制御機能(PCF)含み得る。システム・コントローラ116は、UMTSネットワーク用のゲートウエイGPRSサポート・ノード(GGSN)およびサービングGPRSサポート・ノード(SGSN)を含み得る。
端末112は、基地局114と通信する。
端末もまた、移動局、アクセス端末、ユーザ装置あるいは他のいくつか用語で呼ばれ得る。
端末は、無線装置、携帯電話、無線モデム、携帯情報端末など(PDA)かもしれない。端末は、任意の与えられた瞬間において、フォワードリンクおよび/またはリバースリンク上で、ゼロ、1、または多数の基地局114と通信することができる。
WLAN120は、限られた地理的なエリアに通信サービス区域を提供する。
WLAN120は、IEEE802.11ネットワーク、ブルーツース・ネットワークあるいは他のいくつかのタイプのネットワークかもしれない。WLAN120は、端末122と通信し、および、さらにインターネット140とパケット・データを交換する、1つ以上のアクセス・ポイント124を含んでいる。電話網130は、公衆電話交換網(PSTN)134および構内電話交換器(PBX)136を含んでいる。PSTN134は、従来の平易な古い電話システム(POTS)のための音声通信をサポートする。PBX136は、インバウンドの音声およびデータ呼を適切な宛先へ送り、そして、電話132と他の実体の間の電話通信およびデータの交換を容易にする。他の実体および装置は、さらにホーム・パソコン(PC)142のように、インターネット140を介してデータを交換し得る。
図2は、2つの端末(例えばWWAN110の端末112とWLAN120の端末122)の間のリアルタイム・データ・セッションに使用され得る、典型的なプロトコル・スタック200を示す。プロトコル・スタック200は、トランスポート層、ネットワーク層、リンク層および物理層を含んでいる。
端末112と122は、トランスポート層においてユーザ・データグラム・プロトコル(UDP)あるいは他のいくつかのプロトコルと共に動作するリアル・タイム・トランスポート・プロトコル(RTP)を使用して通信することができる。UDPは、典型的にはネットワーク層でインターネット・プロトコル(IP)の上で動作する。端末112および122は、IPパケット中にトランスポート層データ(例えばUDPのための)をカプセル化することができ、これらのIPパケットを、WWAN110、インターネット140およびWLAN120を介して交換することができる。
端末112とWWAN110の間のリンク層および物理層は、典型的には、無線技術に依存する。cdma2000ネットワークについては、リンク層は、無線リンクプロトコル(RLP)上でポイント・ツー・ポイント・プロトコル(PPP)で実装される。
RLPは、エアーリンク・インターフェース(例えばIS−2000、IS−95、IS−856)の上で動作する。端末122とWLAN120の間のリンク層および物理層もまた、無線技術(例えばIEEE802.11、またはブルーツース)に依存する。WWAN110およびWLAN120は、リンク層と物理層を介してIPパケットを交換する。
プロトコル・スタック200あるいは他のいくつかのプロトコル・スタックは、図1における2つ以上の端末間の通信に使用され得る。
データ・セッションは、図1における端末112、122、132および142の任意の組み合わせ、および任意の数の端末、について確立され得る。データ・セッションは、ボイス・オーバーIP(VoIP)、遠隔会議、テレビ会議などのようなリアルタイムサービス向けかもしれない。端末は、データ・セッションの間に、音声、ビデオなどのようなリアルタイムデータを交換し得る。
一般に、データ・セッションは、データとシグナリングを送信するために様々な層の様々なプロトコルを利用することができる。以下で詳細に説明される実施態様では、データ・セッションはRTPとRTCPを利用する。RTPは、端末間のネットワーク・トランスポート機能を提供し、リアルタイムデータを送信するアプリケーションに適している。RTCPは、RTPによるデータ配信のモニタリングを可能にする。本質的には、データはRTPを使用して送信され得る、また、シグナリングはRTCPを使用して送信され得る。RTPとRTCPは「RTP:リアルタイムアプリケーション用のトランスポート・プロトコル 2003年7月(RTP: A Transport Protocol for Real-Time Applications, July 2003)」とタイトルを付けられたRFC3550に説明されており、それは公に利用可能である。RTPとRTCPは、典型的にはUDPと共に動作する。それは図2に示されるように、典型的にはIPの上で動作する。
端末は、何時でもデータ・セッションに加わり、そして去ってもよい。ある場合では、与えられた端末は、別の端末がデータ・セッションに存在するかどうか知ることを望み得る。これは上に説明されたスキームを使用して達成され得る。しかしながら、これらのスキームは、この検出機能を達成するために必要な程度より多くネットワーク資源を消費する、このゆえにネットワーク資源を浪費する。
与えられた端末がデータ・セッションに存在するかどうかを効率的に決定する技術が、ここに説明される。それらの技術は、2つを超える端末を持ったマルチキャスト・データ・セッションにも、2つの端末を持ったユニキャスト・データ・セッションにも使用され得る。それらの技術は、リンク層、ネットワーク層、トランスポート層などのような様々な層に使用され得る。明瞭さために、それらの技術は、RTP/RTCPによるデータ・セッションについて下記に説明される。
図3は、2つの端末aとbを持つユニキャスト・データ・セッションにおいて端末の存在を確認するプロセス300の実施態様を示す。データ・セッションの間に、端末aとbは、データが利用可能になるように、データを交換し得る。時刻T1で、端末aは、端末bが、そのデータ・セッションにまだ存在しているかどうか知ることを要望する。端末aは、そのとき、時刻T1において端末bにRTCPエコー要求を直ちに送信し得る(図3に示されたように)、あるいは、資源が利用可能になるとすぐに送信し得る。RTCPエコー要求(それはピング要求とも呼ばれる)は、受取り端末からの応答を要請する。端末のbは、RTCPエコー要求を受け取り、時刻T2でRTCPエコー応答(それはピング応答とも呼ばれる)を端末aへ逆戻りに送信することにより応答する。端末aは、RTCPエコー応答を受信し、端末bがデータ・セッションにまだ存在することを認識する。
図3に示されなかったが、端末aは、時刻T1で送信されたRTCPエコー要求について端末bからのRTCPエコー応答を受信しないかもしれない。このことは、悪い接続状態によりRTCPエコー要求が端末のbに達しない、端末のbが存在しない、悪い接続状態によりRTCPエコー応答が端末aに到着しない、等のような、様々な理由によるかもしれない。端末aが、所定時間内にRTCPエコー応答を受信しない場合、そのとき、端末aは、端末bに別のRTCPエコー要求を送信することができる。一般に、端末aは、任意の数のRTCPエコー要求を端末bに送信することができ、そしてRTCPエコー要求を送信する間に任意の時間、待つことができる。端末aが、所定の回数(例えば2)RTCPエコー要求を送信した後、端末bからのRTCPエコー応答を受信しない場合、そのとき、端末aは、端末bがそのデータ・セッションに存在していないと推測することができ、そして適切な是正処置を行ない得る。
端末aは、上に説明されているように、端末bの存在を確認するためにプロセス300を使用し得る。端末aは、また、その接続の条件をチェックするためにプロセス300を使用することもできる。例えば、端末aは、所定の時間(例えば200ミリ秒(ms)、500ms、または1秒)、パケットを少しも受信しないかもしれない。別の例として、端末aは、他の端末へ送信されたパケットのための肯定応答(acknowledgment)を受信しないかもしれない。活動および/または肯定応答の欠如は、端末aの接続状態が、端末aについての知識がないことで悪化したことに起因しているかもしれない。一般に、端末aは、その接続状態が悪化してしまったかどうか決定するために様々な基準を使用することができる。端末aは、そのとき、別の端末へRTCPエコー要求を送信することにより接続をチェックしてもよい。端末aは、RTCPエコー応答が別の端末から受信される場合には、接続状態は良好であると宣言し得る。あるいは、端末aは、所定の数のRTCPエコー要求が送信され、そして、RTCPエコー応答が受信されない場合には、接続状態が悪化していることを宣言し得る。
図4は、N端末aからnを持ったマルチキャスト・データ・セッションにおいて1つ以上の端末の存在を確認するためのプロセス400の一実施態様を示す、ここで、N>2 。データ・セッションの間に、端末aからnは、データが利用可能になるようにデータを交換し得る。時刻T1において、端末aは、端末bからnが、まだデータ・セッションに存在しているどうか知ることを要望する。端末aは、そのとき、時刻T1において端末bからnに向けてRTCPエコー要求を直ちに送信し得る(図4に示されたように)、あるいは、資源が利用可能になるとすぐに送信し得る。下記に説明されているように、単一のRTCPエコー要求は、そのRTCPエコー要求において適切なフィールドをセットし、および/または適切な宛先アドレスを含めることにより、そのデータ・セッションにおいて1の、多数の、あるいは全ての端末に向けて、送信され得る。
端末bは、RTCPエコー要求を受信し、そして時刻T2で、端末aへ逆戻りするようにRTCPエコー応答を送信することにより応答する。各端末cからnもまた、RTCPエコー要求を受信し得る、そして、端末a逆戻りするようにRTCPエコー応答を送信することにより応答し得る。一般に、端末aは、端末bからnの、すべて、またはいくらかのRTCPエコー応答を受信し得る、あるいはいずれからもRTCPエコー応答を受信しない。端末aは、各RTCPエコー応答が端末aによって受信された出所端末が、そのデータ・セッションにおいて存在すると宣言する。
図4に示されていないが、端末aは、時刻T1において送信されたRTCPエコー要求について、1つ以上の端末からのRTCPエコー応答を受信しないかもしれない。端末aは、そのとき、応答しなかった各端末へ別のRTCPエコー要求を送信し得る。一般に、端末aは、他の端末へ任意の数のRTCPエコー要求を送信することができる。端末aは、端末へ所定の数(例えば2)のRTCPエコー要求を送信した後、その端末からRTCPエコー応答が受信されない場合には、そのデータ・セッションに端末が存在しないと推定することができる。
図3および4に示される実施態様については、任意の端末が、単純なRTCPエコー要求の送信により、その対等端末(peer terminal)の存在を検知し得る。少量のネットワーク資源が、RTCPエコー要求およびRTCPエコー応答の送信により消費される。さらに、任意の端末は、この情報が望まれる時および場合には、データ・セッションの間において、対等端末の存在を、いつでも検知することができる。端末は、任意のタイマーが期間満了になることを待つ必要なしに、直ちに、またはネットワーク資源が利用可能なときに、RTCPエコー要求を送信し得る。
RTCPエコー要求およびRTCPエコー応答は、様々なタイプのパケットを使用して送信され得る。一実施態様では、RTCPエコー要求およびRTCPエコー応答は、各々、APPパケットを使用して送信され得る、それはRTCPのアプリケーションに定義されたRTCPパケットである。APPパケットは、独占の使用に向けられ、新しいアプリケーションおよび新しい特徴に関して定義され得る。
図5は、RTCPエコー要求用のAPPパケット500の実施態様を示す。
APPパケット500は、データ・セッションにおける端末の存在を検知するために使用され得る。表1は、APPパケット500のフィールド、各フィールドの長さ(ビットの数において)、および各フィールドの短い説明をリストする。
データ・セッションは、1つ以上のRTPセッションからなるマルチメディア・セッションかもしれない。例えば、テレビ会議のようなマルチメディア・セッションは、オーディオRTPセッションおよびビデオRTPセッションからなり得る。各RTPセッションは、RTPで通信する端末のグループの結合である。各RTPセッションは、そのRTPセッションに参加する端末の同期出所(synchronization source )(SSRC)識別子の個別のセットを維持する。与えられたRTPセッションの各端末は、そのRTPセッションにおいてすべての端末中でユニークなSSRC識別子によって識別される。各RTPセッションの個々の端末は、それらのSSRC識別子によってユニークに識別され得る。与えられた端末は、多数のRTPセッションに同時に参加し得る。
RTCPエコー要求用のAPPパケットは、ブロードキャスト(B)フィールドに真(true)(‘1’)をセットすることによって、与えられたRTPセッションにおけるすべての端末へ送信され得る。この場合、Num_Dest_SSRCフィールドは、0にセットされ得る、そして宛先_SSRCフィールドが省略され得る。RTCPエコー要求用のAPPパケットは、また、ブロードキャスト(B)フィールドに偽(false)(‘0’)をセットし、Num_Dest_SSRCフィールドに、RTCPエコー要求が送信される端末の数をセットし、そして宛先_SSRCフィールドの一例として各受取人端末のSSRC識別子を含ませることにより、与えられたRTPセッションにおける1つ以上の特定の端末へも送信され得る。新しいRTCPエコー要求が送られるごとに、ピング_シーケンスには、新しい値(例えば最終値のインクリメントによって)がセットされる。ピング_シーケンスの値は、対応するRTCPエコー応答にRTCPエコー要求を関連させるために使用される。データ・フィールドは、任意のデータ(例えば接続の状態をチェックするために使用されるデータ)を運び得る。
APPパケット500は、また、RTCPエコー応答にも使用され得る。しかしながら、異なるユニークな名前が名前フィールドのために定義され得る、および/または、異なる値がRTCPエコー応答用のAPPパケットのサブタイプ・フィールドのために使用され得る。RTCPエコー応答用のAPPパケットは、ブロードキャスト・フィールドに偽(false)をセットし、かつ宛先_SSRCフィールドに要求する端末のSSRC識別子を含ませることにより、RTCPエコー要求を送った端末(つまり要求している端末)へ送信され得る。RTCPエコー応答用のAPPパケットは、また(1)ブロードキャスト・フィールドに真(true)をセットすることによってデータ・セッションにおける全ての端末へ、あるいは(2)宛先_SSRCフィールドに各端末のSSRC識別子を含ませることによって1つ以上の他の特定の端末へ、送信され得る。
RTCPエコー要求およびRTCPエコー応答の両方に適当なAPPパケットの具体的な設計は、上に説明された。様々な他の設計が、また、RTCPエコー要求およびRTCPエコー応答用のAPPパケットに使用され得る。RTCPエコー要求およびRTCPエコー応答は、また、APPパケットに加えて他のタイプのパケットで送信され得る。
データ・セッションは、多数のRTPセッションを含み得る。一実施態様において、端末aは、両方の端末が参加者である各RTPセッションの別の端末bへRTCPエコー要求を送信する。この実施態様については、端末aは、端末bが各RTPセッションに存在するかどうか確認することができる。別の実施態様においては、端末aは、1つのRTPセッションの端末bへRTCPエコー要求を送信する。この実施態様については、端末aは、RTCPエコー要求がそのために送られたRTPセッションにおける端末bの存在を確認することができ、そして、他のすべてのRTPセッションに、端末bが同様に存在するか、あるいは不在であるかを推定し得る。
図6は、データ・セッションに他の端末の存在を決定するために与えられた端末aによって実行されるプロセス600を示す。端末aは、データ・セッション(例えばRTPセッション)において少なくとも1つの他の端末の存在を検知することを要望し、そして各端末からの応答を要請するための要求を生成する(ブロック610)。 例えば、この要望は、端末aが所定時間内に他の端末からデータを受信しなかった場合、端末aが、その接続状態が悪化してしまったことに気づいた場合などに発生し得る。端末aは、要求のために少なくとも1つのIPパケットを形成する(ブロック612)。ブロック612については、端末aは、要求用のAPPパケットを形成し、そのAPPパケットを、(1)そのAPPパケットのブロードキャスト・フィールドに真(true)をセットすることによって、そのデータ・セッションにおける全ての端末へ、あるいは(2)そのAPPパケットに各端末のSSRC識別子を含めることによってそのデータ・セッションにおける特定の端末へ、送信し得る。端末aは、それから、APPパケットを少なくとも1つのIPパケット中にカプセル化することができる。
端末aは、他方の端末がそのデータ・セッションに存在するかどうかを確認するために他方の端末へ、その要求用のIPパケットを送信する(ブロック614)。 端末aは、それから、要求が送信される各端末からの応答を監視する(ブロック616)。 端末aは、その端末から応答が受信された場合には、そのデータ・セッションに端末が存在することを宣言する(ブロック618)。 端末aは、応答が受信されない各端末へ1つ以上の追加の要求を送信し得る(ブロック620)。 端末aは、所定回数(例えば2)の要求がその端末へ送信されており、そして応答がその端末から受信されない場合には、そのデータ・セッションに端末は不在であることを宣言することができる(ブロック622)。
図7は、図1における端末112の一実施態様のブロックダイヤグラムを示す。端末112は、WWAN110との通信のための無線モデムを含んでいる。無線モデムの送信パスにおいては、端末112によって送信されるデータおよびシグナリング(例えば、エコー要求あるいはエコー応答のための)が、エンコーダ722によって処理(例えば、フォーマット、エンコード、インターリーブ)され、さらに、データ・チップを得るために変調器(Mod)724によって処理(例えば、変調、チャンネル化、そしてスペクトル拡散)される。送信機(TMTR)732は、それから、アップリンク信号を生成するためにデータ・チップを調整(例えば、アナログ信号に変換、フィルタ、増幅、および周波数アップコンバート)し、それはアンテナ736を介して送信される。受理パスにおいては、WWAN110の中の基地局によって送信されたダウンリンク信号が、アンテナ736によって受信され、受信機(RCVR)738に供給される。受信機738は、受信信号を調整(例えば、フィルタ、増幅、周波数ダウンコンバート、およびディジタル化)し、そしてデータ・サンプルを供給する。復調器(Demod)726は、そのサンプルを処理(例えば、逆拡散、チャンネル化、復調)し、シンボル評価を得る。デコーダ728は、さらにシンボル評価を処理(例えば、デインターリーブ、およびデコード)し、デコードされたデータを得る。エンコーダ722、変調器724、復調器726、およびデコーダ728は、モデム・プロセッサ720によって実装され得る。これらのユニットは、WWAN110によって使用される無線技術(例えばcdma2000あるいはW−CDMA)に従って処理を行なう。
コントローラ/プロセッサ740は、端末112内の様々なユニットの動作を指示する。コントローラ/プロセッサ740は、図3、4および/または6に示されているプロセス300、400および/または600を実行し得る。メモリ742は、端末112のためのプログラム・コードおよびデータを格納する。通信(Comm)ユニット744は、外部装置および/または有線ネットワークとの通信のためのインターフェースを提供する。
ここに説明された技術は、パケット交換のセッションにおける個々の端末の活動状態を検知するために有利に使用され得る。パケット交換のセッションについては、専用の接続は、そのセッションにおいて端末間でセット・アップされない、そして、パケットは適切なルートで送られる、また、端末のための回線が断たれたことを検知する容易な方法はない。対照的に、回線交換セッションについては、専用の接続が、セッションにおいて端末間でセット・アップされる、そして、各端末は、接続が壊れたことを検知することが可能であり得る。ここに説明された技術は、専用の接続を持っていない端末の存在の検知を可能にする。
ここに説明された技術は、アイドル・パケットやタイマーなどのようなキープ・アライブ(keep-alive)メカニズムを使用せずに、端末の検知を可能にする。これらの技術は、要望された時と場合に、エコー要求およびエコー応答のために送られるパケットはごく少数なので、無線ネットワークには特に有利である。これらの技術は、またタイマーの使用を回避する。それは、タイマーを維持するために必要とされるネットワーク資源を浪費しない。
ここに説明された技術は、様々な手段によって実装され得る。例えば、これらの技術は、ハードウェア、ファームウェア、ソフトウェアあるいはそれらの組み合わせで実装され得る。ハードウェアによる実装については、エコー要求およびエコー応答を送信するために使用される処理ユニットは、1つ以上の特定用途向けIC(ASIC)、ディジタル信号プロセッサ(DSP)、ディジタル信号処理装置(DSPD)、プログラム可能論理回路(PLD)、フィールドプログラム可能なゲート・アレイ(FPGA)、プロセッサ、コントローラ、マイクロ・コントローラ、マイクロプロセッサ、電子デバイス、ここに説明した機能を実行することを目指した他の電子ユニット、あるいはそれらの組み合わせの内に実装され得る。
ファームウェアおよび/またはソフトウェアにより実装については、前記技術は、ここに説明された機能を実行するモジュール(例えば、手続き、関数など)で実装され得る。ソフトウェア・コードは、メモリ(例えば図7の中のメモリ742)に格納され、プロセッサ(例えばプロセッサ740)によって実装され得る。前記メモリは、プロセッサ内に実装されるか、あるいはプロセッサの外部に実装され得る。
開示された実施態様の前記説明は、任意の当業者が本発明を製作するか、あるいは使用することを可能にするために提供される。これらの実施態様への様々な修正は、当業者に容易に明らかになるであろう。また、ここに定義された一般的な法則は、発明の趣旨または範囲から外れずに、他の実施態様に適用され得る。したがって、本発明は、ここに示された実施態様に限定されることは意図されず、ここに開示された法則と新規な特徴と一致する最も広い範囲を与えられるべきである。