JP2012257288A - セッション接続の持続 - Google Patents

セッション接続の持続 Download PDF

Info

Publication number
JP2012257288A
JP2012257288A JP2012167317A JP2012167317A JP2012257288A JP 2012257288 A JP2012257288 A JP 2012257288A JP 2012167317 A JP2012167317 A JP 2012167317A JP 2012167317 A JP2012167317 A JP 2012167317A JP 2012257288 A JP2012257288 A JP 2012257288A
Authority
JP
Japan
Prior art keywords
computing device
message
proxy
session
server
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
JP2012167317A
Other languages
English (en)
Other versions
JP5518954B2 (ja
Inventor
James Evan Undery
エバン アンダーリー ジェームス
Mark Markaryan
マーカーヤン マーク
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2012257288A publication Critical patent/JP2012257288A/ja
Application granted granted Critical
Publication of JP5518954B2 publication Critical patent/JP5518954B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/1083In-session procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/23Reliability checks, e.g. acknowledgments or fault reporting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

【課題】セッション接続を持続するための技術を提供する。
【解決手段】タイム・アウト条件のため、メッセージを送信しないことが、セッション接続が閉じる結果を招くことになる場合に、ハートビート・メッセージを送信する。ハートビート・メッセージは、データ通信スタックのより高いレベルのプロトコルによっては無視される、有効なトランスポート層メッセージであり、そのペイロード内にキャリッジ・リターンおよび改行(「CRLF」)だけを収容するTCPメッセージを送信することができる。TCP層は、CRLFだけを含むメッセージを有効なTCPメッセージであると見なすので、プロキシ・サーバなどの中間のコンピューティング装置は、ハートビート・メッセージを「キープ・アライブ」メッセージとして解釈しないことになり、したがってセッション接続を持続することが可能になる。
【選択図】図10

Description

記載の技術は、一般には、データ・ネットワーク通信に関し、より詳細には、セッション接続の持続(sustaining)に関する。
コンピューティング装置のユーザは時々、そのコンピューティング装置を使用して、他のユーザと通信する。一例として、ユーザは、MICROSOFT MESSENGER(「MESSENGER」)インスタント・メッセージング製品を使用するなどして、タイプされたメッセージを送信し、または受信することによって、コンピューティング装置を使用する別のユーザと通信することができる。別の例では、ユーザは、ボイス・オーバ・インターネット・プロトコル(「VoIP」:Voice over Internet Protocol)アプリケーションを使用するなどして、マイクに向かって話し掛け、またスピーカまたはハンドセットで他のユーザの話を聞くことによって、別のユーザと通信することができる。こうしたユーザは、パーソナル・コンピュータ、携帯情報端末、携帯電話、VoIP対応電話など、様々なコンピューティング装置を使用することができる。
ユーザへのこうしたタイプの通信サービスを提供するアプリケーションは、プレゼンス(presence)情報を提供することも必要とすることがある。プレゼンス情報は、ユーザがコンピューティング装置を使用して通信する能力または意思を伝える。プレゼンス情報は、コンピューティング装置によって自動的に検出され、またはユーザによって能動的に選択することができる。コンピューティング装置は、ユーザの「状況(status)」などのプレゼンス情報を自動的に観察し、通信することができる。一例として、ユーザがどのコンピューティング装置にもログオンしていない、またはプレゼンス情報を観察し伝えるアプリケーションを使用(またはそれにログオン)していない場合、ユーザの状況は、「オフライン(off-line)」として自動的に指し示すことができる。ユーザがMESSENGERなど、プレゼンス情報を観察し伝えるアプリケーションを開始し、またはそれにログオンするときに、ユーザ状況は、「オンライン(on-line)」として自動的に指し示すことができる。ユーザがある時間の間、コンピューティング装置上で動作を行わない場合、アプリケーションは、ユーザが「不在」であることを自動的に指し示すことができる。ユーザは、その状態を能動的に選択することもできる。たとえば、ユーザは、「昼食のため外出中である(out for lunch)」または「多忙である(busy)」ことを指し示すことができ、これらは、他のユーザからのメッセージに直ぐに応答することができないことの指標(indication)であるとすることができる。
ユーザの状態を決定したいと望むアプリケーションである「ウォッチャー(watcher)」が、自動的にプレゼンス情報を受信するために登録サーバに問い合わせし、またはそれに加入することによって有意義なプレゼンス情報を決定することができるように、複数のコンピューティング装置が、登録サーバ・コンピューティング装置にプレゼンス情報を登録することができる。一例として、MESSENGERは、ユーザがコンピューティング装置上である時間の間操作を行っていないので、したがってユーザのプレゼンス情報は「不在(away)」である可能性があることを登録サーバに指し示すことができる。VoIP対応電話は、ユーザが電話を掛けたので、したがってユーザのプレゼンス情報は「電話中(on the telephone)」である可能性があることを登録サーバに指し示すことができる。ウォッチャーは、登録サーバからこのプレゼンス情報を受信するときに、ユーザ状況は「電話中であり、コンピューティング装置上のメッセージに応答することができない」と決定することができる。しかし、ユーザがコンピューティング装置上で動作を実施し始める場合、ウォッチャーは、ユーザ状況は「電話中であるが、コンピューティング装置上のメッセージに応答することができる」と決定することができる。ユーザが、ユーザ状況が「不在(away)」であり、またVoIP対応電話を使用していることをコンピューティング装置上に能動的に指し示す場合、ウォッチャーは、ユーザ状況は「ローミング中(roaming)」であると決定することができる。
通信アプリケーションは時々、コンピューティング装置間のセッションを確立し管理することが必要である。セッションは、ある時間にわたって発生する、コンピューティング装置間の1組の対話である。一例として、MESSENGERやVoIPなどのリアルタイム通信アプリケーションは、ユーザに代わって通信装置間のセッションを確立する。こうしたアプリケーションは、「セッション開始プロトコル」(「SIP」:Session Initiation Protocol)など、セッションを確立するための様々な機構を使用することが可能である。SIPは、コンピューティング装置が、互いを発見し、コンピューティング装置間でセッションを確立し、変更し、終了するために使用することができるアプリケーション層の制御プロトコルである。
アプリケーションは、情報を送信しまたは受信するために、SIPを別のプロトコルと共に使用することができる。SIPを他のプロトコルと共に使用することによって、アプリケーションは、セッションを作成し管理し、またセッション中に情報を交換することができる。情報を交換するためにSIPと共に用いられるプロトコルは、情報をメッセージにセグメント化することができる。一例として、VoIPアプリケーションは、長い話をより短いメッセージにセグメント化することができる。セッション中のメッセージ交換は、「ダイアログ(dialog)」と称される。SIPは、ダイアログのメッセージを移送するために、さらに下のレベルの通信層、たとえば伝送制御プロトコル/インターネット・プロトコル(「TCP/IP」:Transmission Control Protocol/Internet Protocol)を使用することができる。このTCP/IPは、一般的に使用されるトランスポートおよびネットワーク層のプロトコルである。
伝送制御プロトコル(「TCP」)は、コネクション型(connection-oriented)の信頼できる配信のトランスポート層プロトコルである。TCPは一般に、トランスポート層と記載され、これはアプリケーション層(SIPを使用するアプリケーションなど)とネットワーク層の間のインターフェースを提供する。アプリケーション層は、一般に、データのストリーム(複数バイトのデータなど)を送信しまたは受信する際に、TCP層と通信する。TCPは、このデータストリームを、インターネットプロトコル(「IP」)などの、ネットワーク層で使用されるプロトコルによって運ばれることが可能なセグメントに編成する。こうしたデータ・セグメントは一般に、「パケット」、「フレーム」または「メッセージ」と称される。それぞれのメッセージは一般に、ヘッダおよびペイロードを含む。ヘッダは、メッセージをルーティングし、解釈するのに必要なデータを含む。ペイロードは、送信されまたは受信される実際のデータを含む。他の層と共に、アプリケーション層、トランスポート層およびネットワーク層はまとめて、データ通信スタックと称される。
ある接続内のメッセージは、中間のコンピューティング装置を通過する可能性がある。送信側コンピューティング装置のデータ通信スタックのトランスポートまたはネットワーク層が、受信側コンピューティング装置内のデータ通信スタックの対応する層と接続を確立するときに、コンピューティング装置によって交換されるメッセージは、複数の中間コンピューティング装置を通過する可能性がある。たとえば、メッセージは、プロキシ・サーバ、ネットワーク・アドレス・トランスレータ、またはゲートウェイを通過する可能性がある。こうした中間コンピューティング装置は、メッセージを受信し、処理し、転送する。一例として、プロキシ・サーバは、イントラネットに接続されたコンピューティング装置と、インターネットに接続されたコンピューティング装置の間の仲介役であることが可能である。このプロキシ・サーバは、たとえば、イントラネットの外部からの接続要求を無視するなどによって、イントラネットをより安全なものにしようと試み得る。
中間コンピューティング装置は、ネットワーク・リソースを効率的に使用するために、2つのコンピューティング装置間のアイドル状態の接続を終了させることがある。一例として、イントラネットに接続されたユーザ・コンピューティング装置(「コンピューティング装置A」)上で実行されるMESSENGERまたはVoIPアプリケーションは、インターネットに接続された別のコンピューティング装置(「コンピューティング装置B」)上で実行されるアプリケーションとSIPベースのセッションを確立することができる。このセッションは、コンピューティング装置AとBの間のTCP/IP接続を使用することができ、コンピューティング装置によって交換されるメッセージは、プロキシ・サーバを通過することになる。ある時間の間、接続内でメッセージが交換されない場合、プロキシ・サーバは、ネットワーク・リソースを保存するために、それとコンピューティング装置Bの間の接続を閉じることができる。しかし、コンピューティング装置Aは、プロキシ・サーバとのその接続は開いているので、その接続が閉じていることを認識しないことがある。その結果、コンピューティング装置B上で実行されるアプリケーションは、コンピューティング装置Aのアプリケーション(またはユーザ)がもはやオンライン状態ではなく、または接続を使用していないと、誤って決め込む可能性がある。さらに、プロキシ・サーバが接続されるイントラネットをより安全なものにするために、プロキシ・サーバは、インターネットに接続されたコンピューティング装置など、イントラネットに接続されていない装置からの接続要求を無視することができる。したがって、インターネットに接続されたコンピューティング装置B上で実行するアプリケーションは、その状況を求めて、またはセッションの再確立を要求するために、コンピューティング装置A上で実行されるアプリケーションに問い合わせることが不可能になる可能性がある。
中間のコンピューティング装置は、コンピューティング装置が「キープ・アライブ」機構を使用する場合であっても、接続を閉じる可能性がある。コンピューティング装置によっては、キープ・アライブ機構を使用して、メッセージが無いにも拘らず、接続を存続状態に保つ。この機構は、送信側が接続を閉じていないことを指し示すための「キープ・アライブ」メッセージを送信することを伴う。しかし、効率的な中間コンピューティング装置は、キープ・アライブ・メッセージを認識することができ、送信側コンピューティング装置と中間コンピューティング装置の間の接続を存続状態に保ちながら、キープ・アライブ・メッセージ内に示された受信側(インターネットに接続されたコンピューティング装置など)との接続を終了させる可能性がある。
接続は、アプリケーション層の有効なメッセージを送信することによって持続することができる。一例として、トランスポート層のTCPを使用するSIPアプリケーションは、REGISTERメッセージなどの有効なSIPメッセージを定期的に送信することができる。REGISTERメッセージを使用して、SIPサーバが、メッセージ送信側のユニフォーム・リソース識別子(「URI」:Uniform Resource Identifier)を、送信側によって使用されるコンピューティング装置に関連付けることを可能にすることができる。有効なSIPメッセージが送信したりまたは受信したりすることができない場合、SIPアプリケーションは、そのTCP接続が使用不可能であることを検出することができる。
SIPは、インターネット提案規格である。その仕様、「RFC3261」は、非特許文献1で入手可能である。イベント通知に関するSIP拡張に関する仕様、「RFC3265」は、非特許文献2で入手可能である。インスタントメッセージング・システム内のプレゼンス情報に関する仕様、「RFC2778」は、非特許文献3で入手可能である。SIP内のプレゼンス情報に関する提案仕様のドラフトは、非特許文献4で入手可能である。その4つのすべての仕様全体を本明細書中で参考として援用する。
http://www.ietf.org/rfc/rfc3261.txt http://www.ietf.org/rfc/rfc3265.txt http://www.ietf.org/rfc/rfc2778.txt ttp://www.ietf.org/internet-drafts/draft-ietf-simple-presence-l0.txt
REGISTERの送信、または実際に有効なデータを含む任意の有効なSIPメッセージを送信することに関する問題は、複数のクライアントおよびサーバが接続を持続するために送信することを必要とする場合に、送信することは、計算処理上集中的(computationally intensive)になる可能性があることである。REGISTERメッセージの場合、こうしたメッセージを受信するサーバは、送信側のコンピューティング装置のURIおよびIDを決定するために、メッセージの解析を必要とすることがあり、またおそらくは別のサーバ上にあるデータベース内にデータを格納することをさらに必要とする可能性がある。
したがって、TCPキープ・アライブに依存したり、またはメッセージに集中的な計算処理を要しないセッション接続を持続することに対する有効な手法は、非常に有用である。
セッション接続を持続するための技術が、ある実施形態で、提供される。この技術は、タイム・アウト条件のため、メッセージを送信しないことがセッション接続を閉じる原因になる可能性がある場合に、ハートビート・メッセージを送信する。ハートビート・メッセージは、データ通信スタックのより高いレベルのプロトコルによって無視されることになる有効なトランスポート層メッセージである。一例として、この技術は、ペイロード内にキャリッジ・リターンおよび改行(「CRLF」:carriage return and line feed)だけを含むTCPメッセージを送信することができる。TCP層は、CRLFだけを含むメッセージを有効なTCPメッセージであると見なすので、プロキシ・サーバなどの中間コンピューティング装置は、ハートビート・メッセージを「キープ・アライブ」メッセージとして解釈しないことができ、セッション接続を持続することができる。
セッション接続を持続するためのシステムの一実施形態を示すブロック図である。 図1のネットワークの一実施形態を示すブロック図である。 コンピューティング装置によって使用されるデータ通信スタックの一実施形態を示すブロック図である。 send_messageルーチンの一実施形態を示す流れ図である。 sustain_connectionルーチンの一実施形態を示す流れ図である。 send_heartbeatサブ・ルーチンの一実施形態を示す流れ図である。 receive_messageサブ・ルーチンの一実施形態を示す流れ図である。 ある実施形態におけるメッセージ・フローを示すメッセージ流れ図である。 ある実施形態におけるメッセージ・フローを示すメッセージ流れ図である。 ある実施形態におけるメッセージ・フローを示すブロック図である。
セッション接続を持続するための技術が、ある実施形態で、提供される。この技術は、
タイム・アウト条件のため、メッセージを送信しないことがセッション接続を閉じる原因になる可能性がある場合に、ハートビート・メッセージを送信する。ハートビート・メッセージは、データ通信スタックのより高いレベルのプロトコルによって無視されることになる空でないペイロードを収容する有効なトランスポート層メッセージである。一例として、この技術は、ペイロード内にキャリッジ・リターンおよび改行(「CRLF」)だけを含むTCPメッセージを送信することができる。TCP層は、CRLFだけを含むメッセージを有効なTCPメッセージであると見なすので、プロキシ・サーバなどの中間コンピューティング装置は、メッセージが送信された、または受信された接続に関するメッセージ・クロックを再設定するこができる。メッセージ・クロックは、接続内でメッセージが最後に送信されまたは受信されてから経過した時間量を指し示す。ある接続についてのメッセージ・クロックが閾値の時間量が経過したことを示す(たとえばタイム・アウト状態が発生したことを指し示す)場合、中間コンピューティング装置は、接続を閉じる可能性がある。メッセージ・クロックはメッセージが送信されまたは受信されるときに再設定(reset)されるので、閾値の時間量が経過する前に別のメッセージが送信されまたは受信されないという場合を除いては、接続は閉じられ得ない。受信側コンピューティング装置のTCP層が受信されたハートビート・メッセージをデータ通信スタックのより上の層に転送した後、その上位層は、ハートビート・メッセージを無視することができる。一例として、別な例では、SIPは、スペース、タブ、キャリッジ・リターン、改行またはCRLFなどの空白(white space)だけを含む、有効なSIPメッセージを無視することができる。その上位層は、CRLF以外の情報を含むメッセージを受信する場合には、無視することができない情報を含むものとして、こうしたメッセージを解釈しようと試みることができる。様々な実施形態において、ハートビートは、キャリッジ・リターン、改行、あるいはトランスポート層では有効であるが、データ通信スタックのより上の層のプロトコルによっては無視される任意のデータだけを含むことができる。したがって、SIPによっては無視されるハートビート・メッセージなどの有効なトランスポート層メッセージを送信することによって、この技術は、トランスポート層より上のデータ通信スタック層ではコンピューティング装置間で情報が交換されない場合にも、セッション接続を持続することができる。無視されるが有効であるメッセージの種類については、プロトコルの仕様または定義内で定めることが可能でする。
ある実施形態では、トランスポート層より上の層によって無視されるメッセージは、キャリッジ・リターン、改行、スペース、タブまたは任意の空白文字などを一般に含むことが可能である。ある実施形態では、空白文字だけを含むこうしたメッセージは、キャリッジ・リターンまたは改行で終了することができる。過度な計算上の負担をもたらさずに接続を持続するためにメッセージ内で使用することができる文字は、接続を閉じることができるプロトコル(TCPなど)より上で使用されるプロトコルを分析することによって決定することができる。
次に図面に移ると、図1は、セッション接続を持続するためのシステムの一実施形態を示すブロック図である。このシステムは、1つまたは複数のクライアント102、1つまたは複数のネットワーク104、およびクライアントと前記ネットワークを接続するためのネットワーク、たとえばインターネット114を含む可能性がある。クライアントは、ネットワーク接続108を介してインターネットに接続することができる。ネットワーク104は、様々な形のデータ通信リンク110を使用して、インターネットに接続することができる。クライアントは、コンピュータ、携帯電話、またはインターネットに接続された他の装置などであることが可能である。ネットワークは、イントラネットなどであること可能である。クライアントは、私設のデータ通信リンク(private data communications links)112を使用して、ネットワークに直接に接続されることもできる。同様に、ネットワークは、私設のデータ通信リンク112を使用して、他のネットワークに直接に接続することもできる。インターネットは、様々な他のコンピューティング装置(図示せず)に接続されることもできる。本明細書で述べる接続は、物理接続、無線接続、また実際には任意の形のデータ通信ネットワーク接続である可能性がある。
図2は、図1のネットワークの一実施形態を示すブロック図である。ネットワーク200は、1つまたは複数のクライアント202、サーバ204およびエッジ・プロキシ・サーバ212を含む。このネットワークは、他の装置(図示せず)をも含むことができる。このネットワークの図示された装置(および図示されていない装置)は、このネットワークに関連するデータ通信ネットワーク(図示せず)を介して相互接続することができる。クライアント202およびサーバ204は、SIPメッセージの交換を含めて、様々な動作を実施することができる。エッジ・プロキシ・サーバ212は、ネットワーク200(「内部」ネットワーク)と、インターネット(図示せず)などの「外部」ネットワークの両方に接続される。クライアントがこのネットワークの外部のサーバとのセッションを開くことを望む場合、エッジ・プロキシは、たとえば、セッションが開かれるべきか、またどの通信リンクが使用されるべきかを決定することができる。
図3は、図1および2のコンピューティング装置によって使用されるデータ通信スタックの一実施形態を示すブロック図である。コンピューティング装置は、互いに通信するために、1つまたは複数のデータ通信スタックを使用することができる。図示する例では、コンピューティング装置300は、こうしたコンピューティング装置に関連するデータ通信スタックを使用して、コンピューティング装置303と通信する。コンピューティング装置301および302は、その関連するデータ通信スタックを使用して、コンピューティング装置300と303の間でメッセージを受信し、転送することができる。
コンピューティング装置300は、アプリケーション層304、トランスポート層306、ネットワーク層308、データリンク層310および物理層312を含むデータ通信スタックを有する。アプリケーション層は、SIPアプリケーションおよび他のアプリケーションを含むことができる。SIPアプリケーションは、トランスポート層と通信するコンポーネントまたは層を含むことができる。SIPアプリケーションに属するこの通信層は、ハートビート・メッセージを送信しまたは受信することができる。コンピューティング装置301、302および303は、類似のデータ通信スタックを有することになる。具体的には、コンピューティング装置303は、アプリケーション層314、トランスポート層316、ネットワーク層318、データリンク層320および物理層322を含むデータ通信スタックを有することになる。こうしたアプリケーション層の一部またはすべては、SIPアプリケーションをさらに含むことができる。
2つのコンピューティング装置が接続される場合、そのデータ通信スタックの各層は、互いの間の論理的または物理的な接続を有することができる。一例として、コンピューティング装置300がコンピューティング装置301および302を介してコンピューティング装置303に接続される場合、物理層312は、物理接続324を介してコンピューティング装置301の物理層に接続されることができ、このコンピューティング装置301は、物理接続を介してコンピューティング装置302の物理層に接続されることができ、またこのコンピューティング装置302は、物理接続を介してコンピューティング装置303の物理層に接続されることができる。コンピューティング装置はそれぞれ、たとえばモデム、ネットワーク・インターフェース・カード、またはインターネットなどの他の接続を介して互いに接続することができる。インターネットは、電話回線、マイクロ波リンク、ならびにメッセージのための複数のルートを共に形成する他の形の有線および無線接続のなど、様々な物理接続で構成される。実際に、インターネットの初期の目標は、送信者がネットワーク障害に拘らず受信者と通信できるようにすることであった。コンピューティング装置300がコンピューティング装置303にデータを送信するときに、そのデータは、インターネットを介してそれぞれ異なる物理ルートを移動することが可能である。
データリンク層310および320、ネットワーク層308および318、トランスポート層306および316、ならびにアプリケーション層304および314などのデータ通信スタックの高位層は、論理接続326、328、330および332などの論理接続によって接続することができる。データ通信スタックの2つの層が論理接続を有し、データを交換する場合、そのデータは、送信側コンピューティング装置のデータ通信スタックの「下方」、そのデータ通信スタックの物理層に送られ、物理接続を渡り、次いで、受信側コンピューティング装置のデータ通信スタックを「情報に」送ることになる。一例として、コンピューティング装置300のSIPアプリケーション304がコンピューティング装置303のSIPアプリケーション314と通信する場合、SIPアプリケーション304はトランスポート層306にデータを伝え、このトランスポート層はネットワーク層308にデータを伝え、このネットワーク層はデータリンク層310にデータを伝え、このデータリンク層は、物理層312にデータを伝えることになる。物理層312は、物理接続324を介してデータを通信することができ、最終的には物理層322にデータを伝えることになる。物理層322は、それが受信するデータをデータリンク層320に伝え、このデータリンク層は、ネットワーク層318にデータを伝え、このネットワーク層はトランスポート層316にデータを伝え、このトランスポート層は、最終的にはSIPアプリケーション314にデータを伝えることができる。
コンピューティング装置301および302は、その物理接続上でデータを受信するときに、そのデータ通信スタックの上方にデータを送ることになる。データ通信スタックのアプリケーション層より低いレベルは、受信データをそれより上の層に送信せずに、それを処理することができる可能性がある。一例として、SIPアプリケーション304は、SIPアプリケーション314にSIPメッセージを送信するときに、SIPメッセージに対応するデータをトランスポート層306に送ることになる。両方ともが物理層でデータを受信するコンピューティング装置301および302のデータ通信スタックは、そのデータ通信スタックの下から上に、そのそれぞれのトランスポート層に受信データを渡すことになる。データ内に示された宛先がコンピューティング装置303であることを受信データから認識するトランスポート層は、(その対応する下位レベルを介して)トランスポート層316に単にデータを転送することになる。したがって、コンピューティング装置301および302のアプリケーション/SIP層は、メッセージを処理しまたはメッセージを見ることさえ不要であることになる。
ある時間期間にわたって、コンピューティング装置301または302のトランスポート層によってデータが受信されない場合、コンピューティング装置は、コンピューティング装置300と303の間のSIPセッションに対応する接続を閉じることになる。一例として、コンピューティング装置301は、コンピューティング装置300またはコンピューティング装置302から接続に関するメッセージを受信しなかった場合、その接続はもはや不要であると見なし、その接続を閉じることになる。したがって、コンピューティング装置301と303の間のさらなるSIPメッセージは、前に開いていたコンピューティング装置301および302を通過する接続を通過することが不可能になることになる。
図4は、send_messageルーチンの一実施形態を示す流れ図である。このルーチンは、メッセージ送信する、SIPアプリケーションのコンポーネントなどの、アプリケーション層コンポーネントによって実施されることになる。send_messageルーチンは、あるコンピューティング装置上で実行されるSIPアプリケーションなどによって、それが別のコンピューティング装置上で実行されるSIPアプリケーションにメッセージを送信するときに使用することができる。このルーチンは、ブロック402で開始し、パラメータとしてメッセージの指標(indication)を受信する。ブロック404で、ルーチンは、クロック値を、たとえばそれを0に設定するなどによって、再設定する。クロック値は、メッセージが最後に受信されてから経過した時間の指標である。この値は、接続が閉じられるべきかどうかを決定するために、システムのコンポーネントによってチェックすることができる。ブロック406で、ブロック402で受信されたメッセージをトランスポート層に送信する。このルーチンは、メッセージを送信するトランスポート層によって公開されたアプリケーション・プログラム・インターフェースを使用することができる。ブロック408で、ルーチンは、その呼出し側に戻る。
図5は、sustain_connectionルーチンの一実施形態を示す流れ図である。このルーチンは、接続を持続するために、SIPアプリケーションのコンポーネントなどのアプリケーション層コンポーネントによって実施される。接続は、メッセージが最後に受信されてから経過した時間量を示すクロック値がタイム・アウト値を超える場合などに、持続される必要があることになる。適切なタイム・アウト値は、トランスポート層のAPIを使用してトランスポート層の属性を決定するなどによって決定されることができ、またはシステムの管理者によって定義することができる。ルーチンは、ブロック502で開始する。ブロック504で、ルーチンは、クロック値がほぼタイム・アウト値であるかどうかを判定する。クロック値がタイム・アウト値を超える場合、接続が既に閉じられていることがある。結果として、タイム・アウト値の前のある時間期間が選択されるべきである。クロック値がほぼタイム・アウト値である場合、ルーチンは、ブロック506に続く。そうでない場合、ルーチンは、ブロック508に続く。ブロック506で、ルーチンは、send_heartbeatサブ・ルーチンを呼び出し、これは、接続を持続することができるメッセージを送る。send_heartbeatサブ・ルーチンについて、図6に関して以下でさらに述べる。ブロック508で、ルーチンは、その呼出し側に戻る。
sustain_connectionルーチンは、メッセージ送信しまたは受信するスレッドとは別個のスレッドのループ内で繰返し呼び出されることになる。あるいは、sustain_connectionルーチンは、タイム・アウト前の指定された時間間隔でトリガされるクロック・イベントに応答して呼び出すこともできる。
あるいは、sustain_connectionルーチンは単に、クロック値に関係なく、タイム・アウト値より小さいある間隔で、ハートビート・メッセージを送信することができる。一例として、1分間活動が無かった後にプロキシ・サーバがタイム・アウトになる場合、このルーチンは、メッセージがほんの数秒前に送信されまたは受信された場合にも、30秒ごとにハートビート・メッセージを送信することができる。
図6は、send_heartbeatサブ・ルーチンの一実施形態を示す流れ図である。このサブ・ルーチンは、ハートビート・メッセージを送信する、SIPアプリケーションのコンポーネントなどの、アプリケーション層コンポーネントによって実施される。ハートビート・メッセージは、ある時間にわたって接続内でメッセージが送信されない場合に閉じる可能性のある接続を持続するために送信することができる。サブ・ルーチンは、ブロック602で開始し、パラメータとしてセッションの指標(indication)を受信する。ボックス604で、サブ・ルーチンは、ハートビート・メッセージを作成する。ハートビート・メッセージは、データ通信スタックのある層によっては無視されることができるが、データ通信スタックの別の層によっては無視されることがないメッセージである。一例として、ハートビート・メッセージは、開いたSIPセッションを有する2つコンピューティング装置間でメッセージを処理する別のコンピューティング装置(プロキシ・サーバなど)によってTCP接続が閉じられる恐れがある場合に、そのTCP接続を持続するために、SIPアプリケーションによって送信することができる。ハートビート・メッセージは、たとえばCRLF文字だけを含むことができる。あるいは、ハートビート・メッセージは、CRLFで終了する1つまたは複数のスペースおよびタブを含むことができる。ハートビート・メッセージは、CRLFを使用するのではなく、キャリッジ・リターンまたは改行文字を使用することもできる。TCP層にとって、こうしたメッセージは、メッセージが送信されまたは受信される際に、クロック値を再設定する有効なメッセージであることになる。しかし、SIPアプリケーションは、こうしたメッセージを無視することができる。したがって、こうしたハートビート・メッセージを送信することによって、TCP接続は開かれた状態で保たれることができ、したがって、SIPプレゼンス情報は正確なままであり、有用でない情報が、SIPアプリケーションに提示されることはない。代替実施形態では、ハートビート・メッセージ内で、単にキャリッジ・リターンまたは改行文字が送信されることになる。
ブロック606で、サブ・ルーチンは、send_messageサブ・ルーチンを呼び出し、それに、作成されたハートビート・メッセージをパラメータとして渡す。send_messageサブ・ルーチンについて、図4に関連して上記で述べている。ブロック608で、サブ・ルーチンは、その呼出し側に戻る。
図7は、receive_messageサブ・ルーチンの一実施形態を示す流れ図である。このサブ・ルーチンは、SIPアプリケーションなど、受信側コンピューティング装置のアプリケーション層コンポーネントによって実施されることになる。このサブ・ルーチンは、ブロック702で開始し、パラメータとしてメッセージの指標(indication)を受信する。ブロック704で、サブ・ルーチンは、受信されたメッセージがハートビート・メッセージかどうか決定する。サブ・ルーチンは、メッセージの内容が単にキャリッジ・リターン、改行またはその両方かどうかをチェックすることによって、受信されたメッセージがハートビート・メッセージかどうかを決定しようと試みることになる。あるいは、receive_messageサブ・ルーチンは、ハートビート・メッセージを識別すると分かっている、メッセージ内の他の任意の、情報を探すようにカスタマイズすることができる。受信されたメッセージがハートビート・メッセージである場合、サブ・ルーチンは、ブロック706に続く。そうでない場合、サブ・ルーチンは、ブロック708に続く。ブロック706で、サブ・ルーチンは、メッセージに肯定応答することができる。一般に、トランスポート層が、メッセージに肯定応答する。しかし、場合によっては、アプリケーション層コンポーネント層が、メッセージに肯定応答する必要がある場合がある。このステップはサブ・ルーチンを実施するアプリケーション層コンポーネントに応じて任意選択であることができるので、ブロック706は、破線で示されている。ブロック708で、サブ・ルーチンは、SIPアプリケーションなどにメッセージを転送することになる。ブロック710で、サブ・ルーチンは、その呼出し側に戻る。
メッセージを受信すると、サブ・ルーチンは、クロック値(図示せず)を再設定することになる。このクロック値は、接続を持続するためにハートビート・メッセージが送信される必要があるかどうか決定するために使用することができる。
図8は、ある実施形態におけるメッセージの流れを示すメッセージ流れ図である。図示する実施形態では、コンピューティング装置1が、コンピューティング装置2とSIPセッションを確立している。セッション内で交換されるメッセージは、プロキシ・サーバを通過する。一例として、t=0でコンピューティング装置1がメッセージ1を送信するときに、メッセージはプロキシ・サーバを通過し、t=1で、コンピューティング装置2が、メッセージを受信する。同様に、t=2でコンピューティング装置2がメッセージ2を送信するときに、メッセージは、t=でコンピューティング装置1がそれを受信する前に、プロキシ・サーバを通過する。プロキシ・サーバは、メッセージを転送しまたは受信するときはいつでも、クロックを再設定することができる。一例として、プロキシ・サーバは、メッセージ1を転送するときに、クロック値を0に再設定する。同様に、プロキシ・サーバは、メッセージ2を受信するときに、クロック値を0に再設定する。クロック値は、たとえばシステム・クロックに応答して、自動的に増分されることになる。クロック値がタイム・アウト値を超える場合、プロキシ・サーバは、そのセッションと関連する接続を閉じることになる。図示する例では、コンピューティング装置1は、クロック値がタイム・アウト値を超えた後は、メッセージ3を送信することが不可能となることになる。
図9は、ある実施形態におけるメッセージの流れを示すメッセージ流れ図である。図示する実施形態では、図8で示し、上記で説明したように、コンピューティング装置1および2は、時点0と3の間にメッセージ1および2を交換している。t=4で、コンピューティング装置1は、間もなくタイム・アウトになる(図中に破線で示す)ことを認識すると、t=5として示すタイム・アウトになる前に、コンピューティング装置2にハートビート・メッセージを送信することになる。ハートビート・メッセージを送信すると、プロキシ・サーバはクロック値を再設定することができ、したがって、プロキシ・サーバが接続を閉じてないので、コンピューティング装置1は、時点6で、メッセージ3を送信することが可能であることになる。プロキシ・サーバのタイム・アウトの前にハートビート・メッセージを送信することによって、システムは、コンピューティング装置1と2の間で接続を持続することができる。ハートビート・メッセージを送信するコンピューティング装置は、ハートビート・メッセージの受信側のクロック値もまたタイム・アウト値を超過するまでまだ十分な時間があるうちに、ハートビート・メッセージの送信を試みる必要があることになる。
図10は、ある実施形態におけるメッセージの流れを示すブロック図である。図示する実施形態では、送信側コンピューティング装置1000は、受信側コンピューティング装置1002とのSIPセッションを開いている。送信側コンピューティング装置がそのアプリケーション/SIP層1004を介してSIPメッセージ1を送信するときに、トランスポート層1006は、そのメッセージを2つのセグメントS1およびS2にセグメント化する可能性がある。タイム・アウトを回避するために、送信側コンピューティング装置は、ハートビート・メッセージS3を送信することができる。ハートビート・メッセージは、キャリッジ・リターン、改行、その両方、またはアプリケーションによっては無視されることになえるハートビート・メッセージを示す他の情報を含むことができる。次いで、受信側コンピューティング装置は、トランスポート層1016によってトランスポート・メッセージS4、S5およびS6としてセグメント化されたSIPメッセージ2を送信することができる。セグメント化されたメッセージは、様々なサイズのものである可能性がある。
ある実施形態では、コンピューティング装置は、一部の接続でハートビート・メッセージを送信することができ、その接続を持続するために、他の接続を含む別の機構を使用することができる。一例として、コンピューティング装置は、それ自体の「ホーム」サーバ、またはそれに接続された他のコンピューティング装置にメッセージを送信するときに、そのホーム・サーバを、そのコンピューティング装置の接続にハートビート・メッセージを関連付け、またその関連付けの指標を格納することが可能であるので、ハートビート・メッセージを使用することができる。そうすることによって、サーバは、後に接続が失われる場合に、そのコンピューティング装置のプレゼンス情報を効率的に更新することを可能とすることができる。コンピューティング装置は、そうすることが有利である可能性がある場合には、他の接続でREGISTERメッセージを送信することができる。一例として、コンピューティング装置は、中間装置がハートビート・メッセージを転送しない場合に、REGISTERメッセージを送信することができる。
本明細書で論じた特定の実施例は、SIPおよびTCPを使用することに言及しているが、代替実施形態は、他の等価または類似のプロトコルを使用することができる。
セッション接続を持続するための技術が実装されるコンピューティング装置は、中央処理装置、メモリ、入力装置(キーボードおよびポインティング装置など)、出力装置(表示装置など)、および記憶装置(ディスク・ドライブなど)を含むことができる。メモリおよび記憶装置は、セキュリティ・システムを実装する命令を収容することが可能なコンピュータ読取り可能媒体である。さらに、そのデータ構造体およびメッセージ構造体は、格納したり、あるいは通信リンク上の信号などのデータ伝送媒体を介して送信したりすることができる。インターネット、ローカル・エリア・ネットワーク、広域ネットワークまたはポイント・ツー・ポイント・ダイヤルアップ接続など、様々な通信リンクを使用することができる。
図1に、セッション接続を持続するための技術を実装することが可能な適切なオペレーティング環境の一例を示す。このオペレーティング環境は、適切なオペレーティング環境の一例にすぎず、本システムの使用または機能の範囲についてのどんな制限をも示唆するものではない。使用に適す可能性のある他の周知のコンピューティング・システム、環境および構成には、パーソナル・コンピュータ、サーバ・コンピュータ、「スマート」携帯電話を含むハンドヘルドまたはラップトップ装置、マルチ・プロセッサ・システム、マイクロ・プロセッサ・ベースのシステム、プログラマブルな家電、ネットワークPC、ミニ・コンピュータ、メインフレーム・コンピュータ、上記システムまたは装置のいずれかを含む分散コンピューティング環境などが含まれる。
セッション接続を持続するための技術について、1つまたは複数のコンピュータまたは他の装置によって実行されるプログラム・モジュールなど、コンピュータ実行可能命令の一般的な文脈で述べることができる。一般に、プログラム・モジュールは、特定のタスクを実施し、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造体などを含む。一般に、プログラム・モジュールの機能は、様々な実施形態で望まれるように、組み合わせられることも、分散されることもある。
説明するため、本発明の具体的な実施形態について本明細書で述べたが、上記内容から、本発明の精神および範囲から逸脱せずに様々な修正を行うことができることが理解されよう。したがって、本発明は、添付の特許請求の範囲によって以外は限定されない。
102 クライアント
104 ネットワーク
108 ネットワーク接続
110 データ通信リンク
112 プライベート・データ通信リンク
114 インターネット
200 ネットワーク
202 クライアント
204 サーバ
212 プロキシ
300〜303 コンピューティング装置
304 アプリケーション/SIP
306 トランスポート
308 ネットワーク
310 データリンク
312 物理
314 アプリケーション/SIP
316 トランスポート
318 ネットワーク
320 データリンク
322 物理
1000 送信側コンピューティング装置
1002 受信側コンピューティング装置
1004、1014 アプリケーション/SIP(層)
1006、1016 トランスポート(層)
1008、1018 ネットワーク(層)
1010、1020 データリンク(層)
1012、1022 物理(層)

Claims (16)

  1. クライアント計算装置とサーバ計算装置との間のセッション接続を持続するためのプロキシ計算装置によって実行される方法であって、
    前記クライアント計算装置から前記プロキシ計算装置でハートビートメッセージを受信するステップであって、前記クライアント計算装置およびサーバ計算装置は、セッション開始プロトコルを使用してオープンセッションを有し、かつ、前記ハートビートメッセージは、トランスポート層プロトコルの有効なメッセージであって前記セッション開始プロトコルによって無視される、ステップと、
    前記クライアント計算装置とサーバ計算装置との間の前記セッション接続のメッセージクロックをリセットするステップと、
    前記プロキシ計算装置から前記サーバ計算装置に前記ハートビートメッセージを送信し、それによって、前記ハートメッセージを送信するステップは、前記クライアント計算装置とサーバ計算装置との間の前記セッション接続を維持する、ステップと
    を含むことを特徴とする方法。
  2. 前記メッセージクロックをリセットするステップは、前記プロキシ計算装置から前記サーバ計算装置に前記ハートビートメッセージを送信した後に実行することを特徴とする請求項1に記載の方法。
  3. 前記ハートビート・メッセージは、改行およびキャリッジ・リターンの一つまたは複数を含む空白文字を含むことを特徴とする請求項1に記載の方法。
  4. 前記トランスポート層プロトコルはTCP/IPであることを特徴とする請求項1に記載の方法。
  5. 前記メッセージクロックは、前のメッセージが送信または受信されてから経過した時間を測定することを特徴とする請求項1に記載の方法。
  6. 前記メッセージクロックは、データ通信スタックのトランスポート層によって送信または受信されるメッセージに関することを特徴とする請求項1に記載の方法。
  7. 前記プロキシ計算装置は、エッジプロキシサーバであることを特徴とする請求項1に記載の方法。
  8. 前記クライアント計算装置はネットワークの外部に有し、かつ、前記サーバ計算装置は前記ネットワーク内に有することを特徴とする請求項7に記載の方法。
  9. 前記ハートビートメッセージを受信するステップ後一定期間を経て、前記クライアント計算装置から前記プロキシ計算装置で第2のハートビートメッセージを受信するステップと、
    時間間隔が前記一定期間を超えているかを判定するステップと
    をさらに含むことを特徴とする請求項1に記載の方法。
  10. 前記一定期間が前記時間間隔を超えていると判定すると、前記クライアント計算装置と前記サーバ計算装置との間の前記セッション接続をドロップするステップをさらに含むことを特徴とする請求項9に記載の方法。
  11. 前記一定期間が前記時間間隔を超えていないと判定すると、前記メッセージクロックをリセットし、それによって、前記セッション接続を維持するステップをさらに含むことを特徴とする請求項9に記載の方法。
  12. クライアント計算装置とサーバ計算装置との間に通信可能に接続され、前記クライアント計算装置と前記サーバ計算装置との間のセッション接続を持続するように構成されているプロキシ計算装置であって、
    前記クライアント計算装置との接続を通じて、メッセージを受信する前記プロキシ計算装置上で実行可能な第1のコンポーネントと、
    前記受信したメッセージを前記サーバ計算装置に送信する前記プロキシ計算装置上で実行可能な第2のコンポーネントと、
    前記受信したメッセージがハートビートメッセージであるかを判定する前記プロキシ計算装置であって、前記ハートビートメッセージは、トランスポート層プロトコルの有効なメッセージであってセッション開始プロトコルによって無視され、かつ、前記受信したメッセージがハートビートメッセージであると判定すると、前記クライアント計算装置と前記サーバ計算装置との間の前記セッション接続のメッセージクロックをリセットし、それによって、前記クライアント計算装置と前記サーバ計算装置との間の前記セッション接続を維持する、前記プロキシ計算装置上で実行可能な第3のコンポーネントと
    を含むことを特徴とするプロキシ計算装置。
  13. 前記プロキシ計算装置は、エッジプロキシサーバであることを特徴とする請求項12に記載のプロキシ計算装置。
  14. セッション接続を持続するためのサーバ計算装置によって実行される方法であって、
    セッション開始プロトコルを使用してクライアント計算装置とのセッションを確立するステップであって、前記セッションはセッション接続を有する、ステップと、
    プロキシ計算装置を介して、前記クライアント計算装置から、トランスポート層プロトコルを使用してハートビートメッセージを受信するステップであって、前記セッション開始プロトコルは、第2のプロトコルよりも高いデータ通信スタックの層によって用いられ、かつ、前記ハートビートメッセージは、前記トランスポート層プロトコルの有効なメッセージであって前記セッション開始プロトコルによって無視され、前記ハートビートメッセージを受信するステップは、前記サーバ計算装置で前記セッション接続を維持する、ステップと、
    前記クライアント計算装置とサーバ計算装置との間の前記セッション接続のメッセージクロックをリセットするステップと、を含み、
    前記セッションは、前記プロキシ計算装置を通じて、前記クライアント計算装置と前記サーバ計算装置との間で確立されて維持され、かつ、前記クライアント計算装置から前記サーバ計算装置で前記ハートビートメッセージを受信するステップの後に、前記セッション接続がリセットされる、ステップと
    を含むことを特徴とする方法。
  15. 前記ハートビートメッセージは、前記セッション開始プロトコルのメッセージが受信されてから一定期間が経過したときに受信され、前記一定期間はタイムアウト値よりも短いことを特徴とする請求項14に記載の方法。
  16. 前記メッセージクロックは前記プロキシ計算装置によってリセットされることを特徴とする請求項14に記載の方法。
JP2012167317A 2004-06-30 2012-07-27 セッション接続の持続 Active JP5518954B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/881,251 US7962623B2 (en) 2004-06-30 2004-06-30 Sustaining session connections
US10/881,251 2004-06-30

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2005175167A Division JP5318319B2 (ja) 2004-06-30 2005-06-15 セッション接続の持続

Publications (2)

Publication Number Publication Date
JP2012257288A true JP2012257288A (ja) 2012-12-27
JP5518954B2 JP5518954B2 (ja) 2014-06-11

Family

ID=35058467

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2005175167A Expired - Fee Related JP5318319B2 (ja) 2004-06-30 2005-06-15 セッション接続の持続
JP2012167317A Active JP5518954B2 (ja) 2004-06-30 2012-07-27 セッション接続の持続

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2005175167A Expired - Fee Related JP5318319B2 (ja) 2004-06-30 2005-06-15 セッション接続の持続

Country Status (5)

Country Link
US (4) US7962623B2 (ja)
EP (1) EP1613019B1 (ja)
JP (2) JP5318319B2 (ja)
KR (1) KR101109276B1 (ja)
CN (2) CN102209119B (ja)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7506369B2 (en) * 2004-05-27 2009-03-17 Microsoft Corporation Secure federation of data communications networks
US7962623B2 (en) 2004-06-30 2011-06-14 Microsoft Corporation Sustaining session connections
US9654544B2 (en) * 2004-07-19 2017-05-16 International Business Machines Corporation Time-out management for session dependent applications
US8935405B2 (en) * 2005-03-07 2015-01-13 Nokia Corporation Expanding universal plug and play capabilities in power constrained environment
US9055088B2 (en) * 2005-03-15 2015-06-09 International Business Machines Corporation Managing a communication session with improved session establishment
US7921208B2 (en) * 2005-10-24 2011-04-05 Sap Aktiengesellschaft Network time out handling
US9043472B1 (en) * 2006-06-09 2015-05-26 Cisco Technology, Inc. Method and system for providing transmission control protocol dead connection detection
US7643459B2 (en) * 2006-06-16 2010-01-05 Alcatel-Lucent Usa Inc. Methods, devices and architectures for establishing peer-to-peer sessions
EP2069950A4 (en) * 2006-09-13 2017-06-21 Asankya Networks, Inc. Systems and methods of improving performance of transport protocols in a multi-path environment
CN1946062A (zh) * 2006-10-10 2007-04-11 华为数字技术有限公司 保活nat设备中会话表项的方法和系统
US7961703B2 (en) * 2006-11-30 2011-06-14 Research In Motion Limited System and method for maintaining packet protocol context
EP1928143B1 (en) * 2006-11-30 2009-03-11 Research In Motion Limited System and method for maintaining packet protocol context
US8005107B2 (en) * 2007-02-06 2011-08-23 Research In Motion Limited Method and system for robust MAC signaling
US7881318B2 (en) * 2007-02-28 2011-02-01 Microsoft Corporation Out-of-band keep-alive mechanism for clients associated with network address translation systems
US8155128B2 (en) * 2007-09-26 2012-04-10 Alcatel Lucent Method and apparatus for establishing and managing diameter associations
KR101417012B1 (ko) * 2007-10-10 2014-07-08 삼성전자주식회사 Dm 세션을 유지하기 위한 방법 및 장치들
JP4557028B2 (ja) 2008-03-19 2010-10-06 ソニー株式会社 情報処理装置、情報処理方法、クライアント機器、情報処理システム
US8099505B2 (en) 2008-03-26 2012-01-17 Microsoft Corporation Aggregating connection maintenance to optimize resource consumption
SG157991A1 (en) * 2008-07-04 2010-01-29 3Rd Brand Pte Ltd Company Regi Extended messaging platform
CN101895411B (zh) * 2009-05-18 2013-11-06 华为技术有限公司 会话管理的方法和设备
US8688826B2 (en) * 2009-11-30 2014-04-01 Motorola Mobility Llc Mobile computing device and method with intelligent pushing management
CN102088470B (zh) * 2009-12-07 2014-03-05 中兴通讯股份有限公司 通信系统中文件传输协议死锁检测及自恢复的方法与装置
US9923995B1 (en) 2010-02-27 2018-03-20 Sitting Man, Llc Methods, systems, and computer program products for sharing information for detecting an idle TCP connection
US8400923B2 (en) * 2010-10-15 2013-03-19 Telefonaktiebolaget L M Ericsson (Publ) Multipath transmission control protocol proxy
US8407776B2 (en) 2011-02-11 2013-03-26 Good Technology Corporation Method, apparatus and system for provisioning a push notification session
CN102685768B (zh) * 2011-03-08 2016-02-03 华为技术有限公司 心跳消息的处理方法、心跳周期的获取方法及接入网设备
WO2012167464A1 (zh) * 2011-07-01 2012-12-13 华为技术有限公司 心跳消息发送方法和心跳代理服务器
GB2493129B (en) * 2011-07-11 2018-07-04 Metaswitch Networks Ltd Method and system for managing a sip server
CN102891772A (zh) * 2011-07-18 2013-01-23 鸿富锦精密工业(深圳)有限公司 网卡性能测试方法及系统
JP5765123B2 (ja) 2011-08-01 2015-08-19 富士通株式会社 通信装置、通信方法、通信プログラム及び通信システム
US10198716B2 (en) * 2011-11-11 2019-02-05 Microsoft Technology Licensing, Llc User availability awareness
CN102684949B (zh) * 2012-06-04 2015-02-04 北京神州泰岳软件股份有限公司 一种长连接下心跳数据包的处理方法、装置和客户端
KR20140038846A (ko) * 2012-09-21 2014-03-31 삼성전자주식회사 이동 통신 시스템에서 어플리케이션에 대한 세션의 유지를 제어하는 방법 및 장치
US8976768B2 (en) * 2012-09-27 2015-03-10 Intel Corporation Peer setup of predefined modulation transmission
JP6106494B2 (ja) * 2013-03-29 2017-03-29 株式会社東芝 通信制御装置、サーバ装置、通信システム及びプログラム
US10070480B1 (en) 2013-04-23 2018-09-04 Sprint Spectrum L.P. Tearing down a radio link based on keepalive message activity
CN104348522B (zh) * 2013-07-23 2016-09-21 普天信息技术研究院有限公司 一种适用于低功耗蓝牙设备的心跳保持的方法
US9535794B2 (en) * 2013-07-26 2017-01-03 Globalfoundries Inc. Monitoring hierarchical container-based software systems
JP6364866B2 (ja) * 2014-03-27 2018-08-01 富士通株式会社 端末装置、通信制御システム及び通信制御方法
CN105610888A (zh) * 2015-09-08 2016-05-25 华南师范大学 基于安卓的利用socket推送消息的方法和系统
US10812601B2 (en) * 2017-03-07 2020-10-20 Flash Networks Ltd. Method and system for signaling and radio connection optimization over a cellular network
US11122127B2 (en) 2017-08-28 2021-09-14 Qualcomm Incorporated Techniques and apparatuses for modem-assisted heartbeat transmission
WO2019063058A1 (en) * 2017-09-26 2019-04-04 Nokia Technologies Oy METHOD, APPARATUS, COMPUTER PROGRAM PRODUCT AND COMPUTER PROGRAM
US11659047B2 (en) * 2020-09-21 2023-05-23 Arris Enterprises Llc Method and apparatus for management of a network configuration session

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000261548A (ja) * 1999-03-05 2000-09-22 Ntt Communicationware Corp 通信回線警報通知装置及び通信回線警報通知方法
JP2002141938A (ja) * 2000-10-31 2002-05-17 Fujitsu Ltd メディア通信システム及び該システムにおける端末装置、信号変換装置
JP2003502913A (ja) * 1999-06-15 2003-01-21 アスアスホー コミュニケーションズ セキュリティ リミティド トンネリングおよび補償を使用するネットワーク・アドレス翻訳によりセキュリティを与えるための方法および装置
WO2004012086A1 (ja) * 2002-07-29 2004-02-05 Mitsubishi Denki Kabushiki Kaisha インターネット通信システム及びインターネット通信方法及びセッション管理サーバ及び無線通信装置及び通信中継サーバ及びプログラム
JP2004537900A (ja) * 2001-07-27 2004-12-16 アルカテル セッション開始プロトコル(sip)通信を使用するマルチメディアセッション向けの複数ホスト構成

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212175B1 (en) * 1997-04-22 2001-04-03 Telxon Corporation Method to sustain TCP connection
US6266701B1 (en) * 1997-07-02 2001-07-24 Sitara Networks, Inc. Apparatus and method for improving throughput on a data network
US6397253B1 (en) * 1998-10-06 2002-05-28 Bull Hn Information Systems Inc. Method and system for providing high performance Web browser and server communications
US6631186B1 (en) * 1999-04-09 2003-10-07 Sbc Technology Resources, Inc. System and method for implementing and accessing call forwarding services
US6728365B1 (en) * 1999-09-13 2004-04-27 Nortel Networks Limited Method and system for providing quality-of-service on packet-based wireless connections
US7171473B1 (en) * 1999-11-17 2007-01-30 Planet Exchange, Inc. System using HTTP protocol for maintaining and updating on-line presence information of new user in user table and group table
WO2001037139A1 (en) * 1999-11-17 2001-05-25 Planetexchange.Com, Inc. System and method for maintaining presence and communicating over a computer network using the http protocol
US6678735B1 (en) * 2000-01-26 2004-01-13 Nortel Networks Limited Method and apparatus for a sip client manager
EP1191757B1 (de) 2000-09-22 2007-01-17 Siemens Aktiengesellschaft Anordnung zur Prüfung der Erreichtbarkeit eines Clients
EP1241847A1 (de) * 2001-03-13 2002-09-18 Siemens Aktiengesellschaft Übermittlung von Informationen mit einer verifizierten QoS in einem Kommunikationsnetz
CN1177450C (zh) * 2001-09-29 2004-11-24 华为技术有限公司 互联网个人号码业务中“心跳”技术的实现方法
US6970909B2 (en) * 2001-10-11 2005-11-29 The Trustees Of Columbia University In The City Of New York Multi-protocol data communication system supporting wireless telephony and content delivery
US7103067B1 (en) * 2001-12-21 2006-09-05 Cisco Technology, Inc. Mechanism for translating between two different voice-over-IP protocols
KR100459126B1 (ko) * 2002-01-09 2004-12-03 엘지전자 주식회사 통신망의 세션 유지 제어 방법
US7480305B1 (en) * 2002-02-19 2009-01-20 Cisco Technology, Inc. Apparatus and methods for maintaining the registration state of an IP device in a network address port translation (NAPT) environment
JP2003261548A (ja) * 2002-03-07 2003-09-19 Teijin Ltd 2−(3−シアノ−4−イソブチルオキシフェニル)−4−メチル−5−チアゾールカルボン酸の結晶多形体の製造方法
US7136635B1 (en) * 2002-03-11 2006-11-14 Nortel Networks Limited Proxy SIP server interface for session initiation communications
US7080151B1 (en) * 2002-04-01 2006-07-18 Utstarcom, Inc. Method and system for mobile IP home agent redundancy by using home agent control nodes for managing multiple home agents
US7623497B2 (en) * 2002-04-15 2009-11-24 Qualcomm, Incorporated Methods and apparatus for extending mobile IP
US7395336B1 (en) * 2002-05-14 2008-07-01 Sprint Spectrum L.P. Method for managing SIP registrations in a telecommunications network
US7640300B2 (en) * 2002-06-10 2009-12-29 Microsoft Corporation Presence and notification system for maintaining and communicating information
US7272148B2 (en) * 2002-06-27 2007-09-18 Hewlett-Packard Development Company, L.P. Non-ALG approach for application layer session traversal of IPv6/IPv4 NAT-PT gateway
US9497168B2 (en) * 2002-07-30 2016-11-15 Avaya Inc. Method and apparatus for supporting communications between a computing device within a network and an external computing device
US7650415B1 (en) * 2003-03-10 2010-01-19 Network Equipment Technologies, Inc. Gateway for conversion of messages between multiple protocols using separate sessions
US7539759B2 (en) * 2003-04-15 2009-05-26 Panasonic Corporation Session endpoint management protocol
US7020098B2 (en) * 2003-05-28 2006-03-28 Sprint Spectrum L.P. Predictive reservation of a communication link for a packet-based real-time media session
JP4833847B2 (ja) * 2003-06-11 2011-12-07 テレフオンアクチーボラゲット エル エム エリクソン(パブル) ワイヤレス移動網においてパケットデータリンクの再ネゴシエーションを低減する方法および装置
US7760744B1 (en) * 2003-11-20 2010-07-20 Juniper Networks, Inc. Media path optimization for multimedia over internet protocol
KR100661313B1 (ko) * 2003-12-03 2006-12-27 한국전자통신연구원 평생 번호를 사용한 이동성 제공이 가능한 sip 기반의멀티미디어 통신 시스템 및 이동성 제공 방법
US7353279B2 (en) * 2004-01-08 2008-04-01 Hughes Electronics Corporation Proxy architecture for providing quality of service(QoS) reservations
US7177398B2 (en) * 2004-03-13 2007-02-13 Intrado Inc. Bi-directional messaging for an emergency services network
US7962623B2 (en) 2004-06-30 2011-06-14 Microsoft Corporation Sustaining session connections
US7594259B1 (en) * 2004-09-15 2009-09-22 Nortel Networks Limited Method and system for enabling firewall traversal
US7668100B2 (en) * 2005-06-28 2010-02-23 Avaya Inc. Efficient load balancing and heartbeat mechanism for telecommunication endpoints

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000261548A (ja) * 1999-03-05 2000-09-22 Ntt Communicationware Corp 通信回線警報通知装置及び通信回線警報通知方法
JP2003502913A (ja) * 1999-06-15 2003-01-21 アスアスホー コミュニケーションズ セキュリティ リミティド トンネリングおよび補償を使用するネットワーク・アドレス翻訳によりセキュリティを与えるための方法および装置
JP2002141938A (ja) * 2000-10-31 2002-05-17 Fujitsu Ltd メディア通信システム及び該システムにおける端末装置、信号変換装置
JP2004537900A (ja) * 2001-07-27 2004-12-16 アルカテル セッション開始プロトコル(sip)通信を使用するマルチメディアセッション向けの複数ホスト構成
WO2004012086A1 (ja) * 2002-07-29 2004-02-05 Mitsubishi Denki Kabushiki Kaisha インターネット通信システム及びインターネット通信方法及びセッション管理サーバ及び無線通信装置及び通信中継サーバ及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
山居正幸: "イーサネットとTCP/IP 第2章 TCP/IPコア・プロトコル", OPEN DESIGN, vol. No.3, 第7版, JPN6010051819, 1 May 1997 (1997-05-01), pages 18 - 54, ISSN: 0002757720 *

Also Published As

Publication number Publication date
US20060020707A1 (en) 2006-01-26
KR20060048616A (ko) 2006-05-18
EP1613019B1 (en) 2017-04-19
US9560086B2 (en) 2017-01-31
EP1613019A1 (en) 2006-01-04
US20110246595A1 (en) 2011-10-06
CN102209119B (zh) 2013-03-13
US7962623B2 (en) 2011-06-14
CN102209119A (zh) 2011-10-05
JP2006020301A (ja) 2006-01-19
KR101109276B1 (ko) 2012-01-30
JP5518954B2 (ja) 2014-06-11
JP5318319B2 (ja) 2013-10-16
CN1716964B (zh) 2011-07-27
US20130151717A1 (en) 2013-06-13
US8364774B2 (en) 2013-01-29
US20130144965A1 (en) 2013-06-06
CN1716964A (zh) 2006-01-04

Similar Documents

Publication Publication Date Title
JP5518954B2 (ja) セッション接続の持続
US7650384B2 (en) Maintaining real-time conversations over unreliable connections
US8190568B2 (en) System and method for providing interactive communications
US6301609B1 (en) Assignable associate priorities for user-definable instant messaging buddy groups
US7594020B2 (en) Re-establishing a connection for an application layer via a service layer
EP1790149B1 (en) Method and session initiation protocol (sip) server for the exchange of end-point capabilities
EP1635521B1 (en) Reducing storage requirement for route information
US20070112954A1 (en) Efficiently detecting abnormal client termination
US8386585B2 (en) Real-time communications over data forwarding framework
WO2009132345A1 (en) Real-time communications over data forwarding framework
EP1691528A1 (en) Method and system for placing restrictions on sessions
KR20120117979A (ko) 대화 중에 복수의 통신 양식을 전송하는 것
US20060271686A1 (en) Combining SIP requests with SIP responses
US20070005773A1 (en) Re-establishing a connection for an application layer via a service layer using delay
JP4591117B2 (ja) プレゼンス情報配布システム
JP5512919B2 (ja) 異なるサービス間でのサービス利用状況の共有方式
JP5102153B2 (ja) Sipシグナリングにおけるコマンドシーケンス番号の制御方法、サーバ及びプログラム
KR20050014129A (ko) 세션초기화프로토콜(sip) 서버 및 그 메시지 처리 방법
Le Kim THESIS/THÈSE
JP2014039172A (ja) 通信サーバ及びその制御方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130702

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20130704

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130704

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131002

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20131017

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131018

RD15 Notification of revocation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7435

Effective date: 20131018

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140204

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140402

R150 Certificate of patent or registration of utility model

Ref document number: 5518954

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250