JP5518954B2 - Persisting session connections - Google Patents
Persisting session connections Download PDFInfo
- Publication number
- JP5518954B2 JP5518954B2 JP2012167317A JP2012167317A JP5518954B2 JP 5518954 B2 JP5518954 B2 JP 5518954B2 JP 2012167317 A JP2012167317 A JP 2012167317A JP 2012167317 A JP2012167317 A JP 2012167317A JP 5518954 B2 JP5518954 B2 JP 5518954B2
- Authority
- JP
- Japan
- Prior art keywords
- computing device
- message
- proxy
- heartbeat message
- session
- 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.)
- Active
Links
- 230000002085 persistent effect Effects 0.000 title claims description 8
- 238000004891 communication Methods 0.000 claims description 47
- 238000000034 method Methods 0.000 claims description 29
- 230000000977 initiatory effect Effects 0.000 claims description 8
- 230000032258 transport Effects 0.000 description 36
- 238000010586 diagram Methods 0.000 description 20
- 230000007246 mechanism Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000002459 sustained effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/23—Reliability checks, e.g. acknowledgments or fault reporting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1083—In-session procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer 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)
Description
記載の技術は、一般には、データ・ネットワーク通信に関し、より詳細には、セッション接続の持続(sustaining)に関する。 The described techniques generally relate to data network communications, and more particularly to session connection sustaining.
コンピューティング装置のユーザは時々、そのコンピューティング装置を使用して、他のユーザと通信する。一例として、ユーザは、MICROSOFT MESSENGER(「MESSENGER」)インスタント・メッセージング製品を使用するなどして、タイプされたメッセージを送信し、または受信することによって、コンピューティング装置を使用する別のユーザと通信することができる。別の例では、ユーザは、ボイス・オーバ・インターネット・プロトコル(「VoIP」:Voice over Internet Protocol)アプリケーションを使用するなどして、マイクに向かって話し掛け、またスピーカまたはハンドセットで他のユーザの話を聞くことによって、別のユーザと通信することができる。こうしたユーザは、パーソナル・コンピュータ、携帯情報端末、携帯電話、VoIP対応電話など、様々なコンピューティング装置を使用することができる。 A user of a computing device sometimes uses that computing device to communicate with other users. As one example, a user communicates with another user using a computing device, such as by using a MICROSOFT MESSENGER (“MESSENGER”) instant messaging product, to send or receive typed messages. be able to. In another example, a user speaks into a microphone, such as using a Voice over Internet Protocol (“VoIP”) application, and talks to other users on a speaker or handset. By listening, you can communicate with another user. Such users can use various computing devices such as personal computers, personal digital assistants, mobile phones, VoIP compatible phones, and the like.
ユーザへのこうしたタイプの通信サービスを提供するアプリケーションは、プレゼンス(presence)情報を提供することも必要とすることがある。プレゼンス情報は、ユーザがコンピューティング装置を使用して通信する能力または意思を伝える。プレゼンス情報は、コンピューティング装置によって自動的に検出され、またはユーザによって能動的に選択することができる。コンピューティング装置は、ユーザの「状況(status)」などのプレゼンス情報を自動的に観察し、通信することができる。一例として、ユーザがどのコンピューティング装置にもログオンしていない、またはプレゼンス情報を観察し伝えるアプリケーションを使用(またはそれにログオン)していない場合、ユーザの状況は、「オフライン(off-line)」として自動的に指し示すことができる。ユーザがMESSENGERなど、プレゼンス情報を観察し伝えるアプリケーションを開始し、またはそれにログオンするときに、ユーザ状況は、「オンライン(on-line)」として自動的に指し示すことができる。ユーザがある時間の間、コンピューティング装置上で動作を行わない場合、アプリケーションは、ユーザが「不在」であることを自動的に指し示すことができる。ユーザは、その状態を能動的に選択することもできる。たとえば、ユーザは、「昼食のため外出中である(out for lunch)」または「多忙である(busy)」ことを指し示すことができ、これらは、他のユーザからのメッセージに直ぐに応答することができないことの指標(indication)であるとすることができる。 Applications that provide these types of communication services to users may also need to provide presence information. Presence information conveys the ability or willingness of a user to communicate using a computing device. Presence information can be automatically detected by the computing device or actively selected by the user. The computing device can automatically observe and communicate presence information such as the user's “status”. As an example, if a user is not logged on to any computing device, or is not using (or logged on to) an application that observes and communicates presence information, the user's situation is “off-line” Can be pointed automatically. When a user starts or logs on to an application that observes and communicates presence information, such as MESSENGER, the user status can be automatically indicated as “on-line”. If the user does not perform an operation on the computing device for a period of time, the application can automatically indicate that the user is “absent”. The user can also actively select that state. For example, a user may indicate “out for lunch” or “busy”, which may immediately respond to messages from other users. It can be an indication of what cannot be done.
ユーザの状態を決定したいと望むアプリケーションである「ウォッチャー(watcher)」が、自動的にプレゼンス情報を受信するために登録サーバに問い合わせし、またはそれに加入することによって有意義なプレゼンス情報を決定することができるように、複数のコンピューティング装置が、登録サーバ・コンピューティング装置にプレゼンス情報を登録することができる。一例として、MESSENGERは、ユーザがコンピューティング装置上である時間の間操作を行っていないので、したがってユーザのプレゼンス情報は「不在(away)」である可能性があることを登録サーバに指し示すことができる。VoIP対応電話は、ユーザが電話を掛けたので、したがってユーザのプレゼンス情報は「電話中(on the telephone)」である可能性があることを登録サーバに指し示すことができる。ウォッチャーは、登録サーバからこのプレゼンス情報を受信するときに、ユーザ状況は「電話中であり、コンピューティング装置上のメッセージに応答することができない」と決定することができる。しかし、ユーザがコンピューティング装置上で動作を実施し始める場合、ウォッチャーは、ユーザ状況は「電話中であるが、コンピューティング装置上のメッセージに応答することができる」と決定することができる。ユーザが、ユーザ状況が「不在(away)」であり、またVoIP対応電話を使用していることをコンピューティング装置上に能動的に指し示す場合、ウォッチャーは、ユーザ状況は「ローミング中(roaming)」であると決定することができる。 A “watcher”, an application that wants to determine the state of a user, can determine meaningful presence information by querying or subscribing to a registration server to automatically receive presence information. A plurality of computing devices can register presence information with a registration server computing device so that it can. As an example, MESSENGER may indicate to the registration server that the user's presence information may be “away” because the user has not operated on the computing device for a certain amount of time. it can. A VoIP enabled phone can indicate to the registration server that the user has made a call and therefore the user's presence information may be “on the telephone”. When the watcher receives this presence information from the registration server, the user status may determine that the user status is “calling and cannot respond to messages on the computing device”. However, if the user begins to perform an action on the computing device, the watcher can determine that the user status is “along with a phone call but can respond to messages on the computing device”. If the user indicates that the user status is “away” and actively indicates on the computing device that he / she is using a VoIP enabled phone, the watcher will indicate that the user status is “roaming”. Can be determined.
通信アプリケーションは時々、コンピューティング装置間のセッションを確立し管理することが必要である。セッションは、ある時間にわたって発生する、コンピューティング装置間の1組の対話である。一例として、MESSENGERやVoIPなどのリアルタイム通信アプリケーションは、ユーザに代わって通信装置間のセッションを確立する。こうしたアプリケーションは、「セッション開始プロトコル」(「SIP」:Session Initiation Protocol)など、セッションを確立するための様々な機構を使用することが可能である。SIPは、コンピューティング装置が、互いを発見し、コンピューティング装置間でセッションを確立し、変更し、終了するために使用することができるアプリケーション層の制御プロトコルである。 Communication applications sometimes need to establish and manage sessions between computing devices. A session is a set of interactions between computing devices that occur over a period of time. As an example, real-time communication applications such as MESSENGER and VoIP establish a session between communication devices on behalf of a user. Such applications can use various mechanisms for establishing a session, such as a “Session Initiation Protocol” (“SIP”). SIP is an application layer control protocol that computing devices can use to discover each other, establish, modify, and terminate sessions between computing devices.
アプリケーションは、情報を送信しまたは受信するために、SIPを別のプロトコルと共に使用することができる。SIPを他のプロトコルと共に使用することによって、アプリケーションは、セッションを作成し管理し、またセッション中に情報を交換することができる。情報を交換するためにSIPと共に用いられるプロトコルは、情報をメッセージにセグメント化することができる。一例として、VoIPアプリケーションは、長い話をより短いメッセージにセグメント化することができる。セッション中のメッセージ交換は、「ダイアログ(dialog)」と称される。SIPは、ダイアログのメッセージを移送するために、さらに下のレベルの通信層、たとえば伝送制御プロトコル/インターネット・プロトコル(「TCP/IP」:Transmission Control Protocol/Internet Protocol)を使用することができる。このTCP/IPは、一般的に使用されるトランスポートおよびネットワーク層のプロトコルである。 An application can use SIP with another protocol to send or receive information. By using SIP with other protocols, applications can create and manage sessions and exchange information during sessions. The protocol used with SIP to exchange information can segment the information into messages. As an example, a VoIP application can segment a long story into shorter messages. Message exchange during a session is referred to as a “dialog”. SIP can use lower level communication layers, such as Transmission Control Protocol / Internet Protocol (“TCP / IP”), to transport dialog messages. TCP / IP is a commonly used transport and network layer protocol.
伝送制御プロトコル(「TCP」)は、コネクション型(connection-oriented)の信頼できる配信のトランスポート層プロトコルである。TCPは一般に、トランスポート層と記載され、これはアプリケーション層(SIPを使用するアプリケーションなど)とネットワーク層の間のインターフェースを提供する。アプリケーション層は、一般に、データのストリーム(複数バイトのデータなど)を送信しまたは受信する際に、TCP層と通信する。TCPは、このデータストリームを、インターネットプロトコル(「IP」)などの、ネットワーク層で使用されるプロトコルによって運ばれることが可能なセグメントに編成する。こうしたデータ・セグメントは一般に、「パケット」、「フレーム」または「メッセージ」と称される。それぞれのメッセージは一般に、ヘッダおよびペイロードを含む。ヘッダは、メッセージをルーティングし、解釈するのに必要なデータを含む。ペイロードは、送信されまたは受信される実際のデータを含む。他の層と共に、アプリケーション層、トランスポート層およびネットワーク層はまとめて、データ通信スタックと称される。 The transmission control protocol (“TCP”) is a connection-oriented reliable delivery transport layer protocol. TCP is generally described as a transport layer, which provides an interface between an application layer (such as an application that uses SIP) and a network layer. The application layer generally communicates with the TCP layer when sending or receiving a stream of data (such as multiple bytes of data). TCP organizes this data stream into segments that can be carried by protocols used at the network layer, such as the Internet Protocol ("IP"). Such data segments are commonly referred to as “packets”, “frames” or “messages”. Each message typically includes a header and a payload. The header contains the data necessary to route and interpret the message. The payload contains the actual data that is sent or received. Together with the other layers, the application layer, transport layer and network layer are collectively referred to as the data communication stack.
ある接続内のメッセージは、中間のコンピューティング装置を通過する可能性がある。送信側コンピューティング装置のデータ通信スタックのトランスポートまたはネットワーク層が、受信側コンピューティング装置内のデータ通信スタックの対応する層と接続を確立するときに、コンピューティング装置によって交換されるメッセージは、複数の中間コンピューティング装置を通過する可能性がある。たとえば、メッセージは、プロキシ・サーバ、ネットワーク・アドレス・トランスレータ、またはゲートウェイを通過する可能性がある。こうした中間コンピューティング装置は、メッセージを受信し、処理し、転送する。一例として、プロキシ・サーバは、イントラネットに接続されたコンピューティング装置と、インターネットに接続されたコンピューティング装置の間の仲介役であることが可能である。このプロキシ・サーバは、たとえば、イントラネットの外部からの接続要求を無視するなどによって、イントラネットをより安全なものにしようと試み得る。 Messages in a connection can pass through an intermediate computing device. When the transport or network layer of the data communication stack of the sending computing device establishes a connection with the corresponding layer of the data communication stack in the receiving computing device, the messages exchanged by the computing device are multiple May pass through other intermediate computing devices. For example, the message may pass through a proxy server, network address translator, or gateway. Such intermediate computing devices receive, process and forward messages. As an example, a proxy server can be an intermediary between a computing device connected to an intranet and a computing device connected to the Internet. The proxy server may attempt to make the intranet more secure, for example, by ignoring connection requests from outside the intranet.
中間コンピューティング装置は、ネットワーク・リソースを効率的に使用するために、2つのコンピューティング装置間のアイドル状態の接続を終了させることがある。一例として、イントラネットに接続されたユーザ・コンピューティング装置(「コンピューティング装置A」)上で実行されるMESSENGERまたはVoIPアプリケーションは、インターネットに接続された別のコンピューティング装置(「コンピューティング装置B」)上で実行されるアプリケーションとSIPベースのセッションを確立することができる。このセッションは、コンピューティング装置AとBの間のTCP/IP接続を使用することができ、コンピューティング装置によって交換されるメッセージは、プロキシ・サーバを通過することになる。ある時間の間、接続内でメッセージが交換されない場合、プロキシ・サーバは、ネットワーク・リソースを保存するために、それとコンピューティング装置Bの間の接続を閉じることができる。しかし、コンピューティング装置Aは、プロキシ・サーバとのその接続は開いているので、その接続が閉じていることを認識しないことがある。その結果、コンピューティング装置B上で実行されるアプリケーションは、コンピューティング装置Aのアプリケーション(またはユーザ)がもはやオンライン状態ではなく、または接続を使用していないと、誤って決め込む可能性がある。さらに、プロキシ・サーバが接続されるイントラネットをより安全なものにするために、プロキシ・サーバは、インターネットに接続されたコンピューティング装置など、イントラネットに接続されていない装置からの接続要求を無視することができる。したがって、インターネットに接続されたコンピューティング装置B上で実行するアプリケーションは、その状況を求めて、またはセッションの再確立を要求するために、コンピューティング装置A上で実行されるアプリケーションに問い合わせることが不可能になる可能性がある。 An intermediate computing device may terminate an idle connection between two computing devices in order to efficiently use network resources. As an example, a MESSENGER or VoIP application running on a user computing device connected to an intranet (“Computing Device A”) may be another computing device connected to the Internet (“Computing Device B”). A SIP-based session can be established with the application running above. This session can use a TCP / IP connection between computing devices A and B, and messages exchanged by the computing device will pass through the proxy server. If a message is not exchanged within the connection for some time, the proxy server can close the connection between it and computing device B in order to save network resources. However, computing device A may not recognize that the connection is closed because the connection with the proxy server is open. As a result, an application running on computing device B may mistakenly determine that the application (or user) of computing device A is no longer online or using a connection. In addition, to make the intranet to which the proxy server is connected more secure, the proxy server should ignore connection requests from devices that are not connected to the intranet, such as computing devices connected to the Internet. Can do. Thus, an application running on computing device B connected to the Internet is not able to query the application running on computing device A for its status or to request session re-establishment. May be possible.
中間のコンピューティング装置は、コンピューティング装置が「キープ・アライブ」機構を使用する場合であっても、接続を閉じる可能性がある。コンピューティング装置によっては、キープ・アライブ機構を使用して、メッセージが無いにも拘らず、接続を存続状態に保つ。この機構は、送信側が接続を閉じていないことを指し示すための「キープ・アライブ」メッセージを送信することを伴う。しかし、効率的な中間コンピューティング装置は、キープ・アライブ・メッセージを認識することができ、送信側コンピューティング装置と中間コンピューティング装置の間の接続を存続状態に保ちながら、キープ・アライブ・メッセージ内に示された受信側(インターネットに接続されたコンピューティング装置など)との接続を終了させる可能性がある。 An intermediate computing device may close the connection even if the computing device uses a “keep alive” mechanism. Some computing devices use a keep-alive mechanism to keep the connection alive despite the absence of a message. This mechanism involves sending a “keep alive” message to indicate that the sender has not closed the connection. However, an efficient intermediate computing device can recognize the keep alive message and keep the connection between the sending computing device and the intermediate computing device in a keep alive message. There is a possibility that the connection with the receiving side (such as a computing device connected to the Internet) shown in FIG.
接続は、アプリケーション層の有効なメッセージを送信することによって持続することができる。一例として、トランスポート層のTCPを使用するSIPアプリケーションは、REGISTERメッセージなどの有効なSIPメッセージを定期的に送信することができる。REGISTERメッセージを使用して、SIPサーバが、メッセージ送信側のユニフォーム・リソース識別子(「URI」:Uniform Resource Identifier)を、送信側によって使用されるコンピューティング装置に関連付けることを可能にすることができる。有効なSIPメッセージが送信したりまたは受信したりすることができない場合、SIPアプリケーションは、そのTCP接続が使用不可能であることを検出することができる。 The connection can be sustained by sending a valid message at the application layer. As an example, a SIP application using transport layer TCP can periodically send a valid SIP message, such as a REGISTER message. The REGISTER message may be used to allow the SIP server to associate a message sender's uniform resource identifier (“URI”) with the computing device used by the sender. If a valid SIP message cannot be sent or received, the SIP application can detect that the TCP connection is unavailable.
SIPは、インターネット提案規格である。その仕様、「RFC3261」は、非特許文献1で入手可能である。イベント通知に関するSIP拡張に関する仕様、「RFC3265」は、非特許文献2で入手可能である。インスタントメッセージング・システム内のプレゼンス情報に関する仕様、「RFC2778」は、非特許文献3で入手可能である。SIP内のプレゼンス情報に関する提案仕様のドラフトは、非特許文献4で入手可能である。その4つのすべての仕様全体を本明細書中で参考として援用する。
SIP is an Internet proposed standard. Its specification, “RFC3261”, is available in
REGISTERの送信、または実際に有効なデータを含む任意の有効なSIPメッセージを送信することに関する問題は、複数のクライアントおよびサーバが接続を持続するために送信することを必要とする場合に、送信することは、計算処理上集中的(computationally intensive)になる可能性があることである。REGISTERメッセージの場合、こうしたメッセージを受信するサーバは、送信側のコンピューティング装置のURIおよびIDを決定するために、メッセージの解析を必要とすることがあり、またおそらくは別のサーバ上にあるデータベース内にデータを格納することをさらに必要とする可能性がある。 The problem with sending a REGISTER, or any valid SIP message that actually contains valid data, is sent when multiple clients and servers need to send to persist the connection This can be computationally intensive. In the case of a REGISTER message, the server receiving such a message may require parsing the message to determine the URI and ID of the sending computing device, and possibly in a database on another server. May require further storage of data.
したがって、TCPキープ・アライブに依存したり、またはメッセージに集中的な計算処理を要しないセッション接続を持続することに対する有効な手法は、非常に有用である。 Thus, an effective approach to persisting session connections that rely on TCP keep alives or does not require intensive computational processing on messages is very useful.
セッション接続を持続するための技術が、ある実施形態で、提供される。この技術は、タイム・アウト条件のため、メッセージを送信しないことがセッション接続を閉じる原因になる可能性がある場合に、ハートビート・メッセージを送信する。ハートビート・メッセージは、データ通信スタックのより高いレベルのプロトコルによって無視されることになる有効なトランスポート層メッセージである。一例として、この技術は、ペイロード内にキャリッジ・リターンおよび改行(「CRLF」:carriage return and line feed)だけを含むTCPメッセージを送信することができる。TCP層は、CRLFだけを含むメッセージを有効なTCPメッセージであると見なすので、プロキシ・サーバなどの中間コンピューティング装置は、ハートビート・メッセージを「キープ・アライブ」メッセージとして解釈しないことができ、セッション接続を持続することができる。 Techniques for persisting session connections are provided in certain embodiments. This technique sends a heartbeat message when a timeout condition can cause a session connection to be closed due to a time-out condition. A heartbeat message is a valid transport layer message that will be ignored by higher level protocols in the data communication stack. As an example, the technique may send a TCP message that includes only a carriage return and line feed (“CRLF”) in the payload. Since the TCP layer considers a message containing only CRLF to be a valid TCP message, an intermediate computing device such as a proxy server may not interpret the heartbeat message as a “keep alive” message, Connection can be maintained.
セッション接続を持続するための技術が、ある実施形態で、提供される。この技術は、
タイム・アウト条件のため、メッセージを送信しないことがセッション接続を閉じる原因になる可能性がある場合に、ハートビート・メッセージを送信する。ハートビート・メッセージは、データ通信スタックのより高いレベルのプロトコルによって無視されることになる空でないペイロードを収容する有効なトランスポート層メッセージである。一例として、この技術は、ペイロード内にキャリッジ・リターンおよび改行(「CRLF」)だけを含むTCPメッセージを送信することができる。TCP層は、CRLFだけを含むメッセージを有効なTCPメッセージであると見なすので、プロキシ・サーバなどの中間コンピューティング装置は、メッセージが送信された、または受信された接続に関するメッセージ・クロックを再設定するこができる。メッセージ・クロックは、接続内でメッセージが最後に送信されまたは受信されてから経過した時間量を指し示す。ある接続についてのメッセージ・クロックが閾値の時間量が経過したことを示す(たとえばタイム・アウト状態が発生したことを指し示す)場合、中間コンピューティング装置は、接続を閉じる可能性がある。メッセージ・クロックはメッセージが送信されまたは受信されるときに再設定(reset)されるので、閾値の時間量が経過する前に別のメッセージが送信されまたは受信されないという場合を除いては、接続は閉じられ得ない。受信側コンピューティング装置のTCP層が受信されたハートビート・メッセージをデータ通信スタックのより上の層に転送した後、その上位層は、ハートビート・メッセージを無視することができる。一例として、別な例では、SIPは、スペース、タブ、キャリッジ・リターン、改行またはCRLFなどの空白(white space)だけを含む、有効なSIPメッセージを無視することができる。その上位層は、CRLF以外の情報を含むメッセージを受信する場合には、無視することができない情報を含むものとして、こうしたメッセージを解釈しようと試みることができる。様々な実施形態において、ハートビートは、キャリッジ・リターン、改行、あるいはトランスポート層では有効であるが、データ通信スタックのより上の層のプロトコルによっては無視される任意のデータだけを含むことができる。したがって、SIPによっては無視されるハートビート・メッセージなどの有効なトランスポート層メッセージを送信することによって、この技術は、トランスポート層より上のデータ通信スタック層ではコンピューティング装置間で情報が交換されない場合にも、セッション接続を持続することができる。無視されるが有効であるメッセージの種類については、プロトコルの仕様または定義内で定めることが可能でする。
Techniques for persisting session connections are provided in certain embodiments. This technology
Send a heartbeat message when a timeout condition can cause a session connection to close due to a timeout condition. A heartbeat message is a valid transport layer message that contains a non-empty payload that will be ignored by higher level protocols in the data communications stack. As an example, this technique can send a TCP message that contains only a carriage return and a line feed (“CRLF”) in the payload. Since the TCP layer considers a message containing only CRLF to be a valid TCP message, an intermediate computing device, such as a proxy server, resets the message clock for the connection on which the message was sent or received. I can do this. The message clock indicates the amount of time that has elapsed since the message was last sent or received in the connection. If the message clock for a connection indicates that a threshold amount of time has elapsed (eg, indicating that a time-out condition has occurred), the intermediate computing device may close the connection. Since the message clock is reset when a message is sent or received, the connection is not allowed unless another message is sent or received before the threshold amount of time has elapsed. It cannot be closed. After the receiving computing device's TCP layer forwards the received heartbeat message to a higher layer of the data communication stack, the upper layer can ignore the heartbeat message. As another example, in another example, SIP can ignore valid SIP messages that contain only white spaces such as spaces, tabs, carriage returns, line breaks, or CRLF. If the upper layer receives a message containing information other than CRLF, it can attempt to interpret such a message as containing information that cannot be ignored. In various embodiments, the heartbeat can only contain any data that is valid at the carriage return, line feed, or transport layer, but is ignored by higher layer protocols in the data communication stack. . Thus, by sending valid transport layer messages, such as heartbeat messages that are ignored by SIP, this technology does not exchange information between computing devices in the data communication stack layer above the transport layer. In some cases, the session connection can be maintained. The types of messages that are ignored but valid can be defined in the protocol specification or definition.
ある実施形態では、トランスポート層より上の層によって無視されるメッセージは、キャリッジ・リターン、改行、スペース、タブまたは任意の空白文字などを一般に含むことが可能である。ある実施形態では、空白文字だけを含むこうしたメッセージは、キャリッジ・リターンまたは改行で終了することができる。過度な計算上の負担をもたらさずに接続を持続するためにメッセージ内で使用することができる文字は、接続を閉じることができるプロトコル(TCPなど)より上で使用されるプロトコルを分析することによって決定することができる。 In some embodiments, messages ignored by layers above the transport layer can generally include carriage returns, newlines, spaces, tabs, or any white space characters. In some embodiments, such messages that contain only white space can be terminated with a carriage return or a line feed. Characters that can be used in messages to sustain a connection without incurring excessive computational burden are analyzed by analyzing protocols used above protocols that can close the connection (such as TCP) Can be determined.
次に図面に移ると、図1は、セッション接続を持続するためのシステムの一実施形態を示すブロック図である。このシステムは、1つまたは複数のクライアント102、1つまたは複数のネットワーク104、およびクライアントと前記ネットワークを接続するためのネットワーク、たとえばインターネット114を含む可能性がある。クライアントは、ネットワーク接続108を介してインターネットに接続することができる。ネットワーク104は、様々な形のデータ通信リンク110を使用して、インターネットに接続することができる。クライアントは、コンピュータ、携帯電話、またはインターネットに接続された他の装置などであることが可能である。ネットワークは、イントラネットなどであること可能である。クライアントは、私設のデータ通信リンク(private data communications links)112を使用して、ネットワークに直接に接続されることもできる。同様に、ネットワークは、私設のデータ通信リンク112を使用して、他のネットワークに直接に接続することもできる。インターネットは、様々な他のコンピューティング装置(図示せず)に接続されることもできる。本明細書で述べる接続は、物理接続、無線接続、また実際には任意の形のデータ通信ネットワーク接続である可能性がある。
Turning now to the drawings, FIG. 1 is a block diagram illustrating one embodiment of a system for maintaining a session connection. The system may include one or
図2は、図1のネットワークの一実施形態を示すブロック図である。ネットワーク200は、1つまたは複数のクライアント202、サーバ204およびエッジ・プロキシ・サーバ212を含む。このネットワークは、他の装置(図示せず)をも含むことができる。このネットワークの図示された装置(および図示されていない装置)は、このネットワークに関連するデータ通信ネットワーク(図示せず)を介して相互接続することができる。クライアント202およびサーバ204は、SIPメッセージの交換を含めて、様々な動作を実施することができる。エッジ・プロキシ・サーバ212は、ネットワーク200(「内部」ネットワーク)と、インターネット(図示せず)などの「外部」ネットワークの両方に接続される。クライアントがこのネットワークの外部のサーバとのセッションを開くことを望む場合、エッジ・プロキシは、たとえば、セッションが開かれるべきか、またどの通信リンクが使用されるべきかを決定することができる。
FIG. 2 is a block diagram illustrating one embodiment of the network of FIG. The
図3は、図1および2のコンピューティング装置によって使用されるデータ通信スタックの一実施形態を示すブロック図である。コンピューティング装置は、互いに通信するために、1つまたは複数のデータ通信スタックを使用することができる。図示する例では、コンピューティング装置300は、こうしたコンピューティング装置に関連するデータ通信スタックを使用して、コンピューティング装置303と通信する。コンピューティング装置301および302は、その関連するデータ通信スタックを使用して、コンピューティング装置300と303の間でメッセージを受信し、転送することができる。
FIG. 3 is a block diagram illustrating one embodiment of a data communication stack used by the computing devices of FIGS. Computing devices can use one or more data communication stacks to communicate with each other. In the illustrated example,
コンピューティング装置300は、アプリケーション層304、トランスポート層306、ネットワーク層308、データリンク層310および物理層312を含むデータ通信スタックを有する。アプリケーション層は、SIPアプリケーションおよび他のアプリケーションを含むことができる。SIPアプリケーションは、トランスポート層と通信するコンポーネントまたは層を含むことができる。SIPアプリケーションに属するこの通信層は、ハートビート・メッセージを送信しまたは受信することができる。コンピューティング装置301、302および303は、類似のデータ通信スタックを有することになる。具体的には、コンピューティング装置303は、アプリケーション層314、トランスポート層316、ネットワーク層318、データリンク層320および物理層322を含むデータ通信スタックを有することになる。こうしたアプリケーション層の一部またはすべては、SIPアプリケーションをさらに含むことができる。
The
2つのコンピューティング装置が接続される場合、そのデータ通信スタックの各層は、互いの間の論理的または物理的な接続を有することができる。一例として、コンピューティング装置300がコンピューティング装置301および302を介してコンピューティング装置303に接続される場合、物理層312は、物理接続324を介してコンピューティング装置301の物理層に接続されることができ、このコンピューティング装置301は、物理接続を介してコンピューティング装置302の物理層に接続されることができ、またこのコンピューティング装置302は、物理接続を介してコンピューティング装置303の物理層に接続されることができる。コンピューティング装置はそれぞれ、たとえばモデム、ネットワーク・インターフェース・カード、またはインターネットなどの他の接続を介して互いに接続することができる。インターネットは、電話回線、マイクロ波リンク、ならびにメッセージのための複数のルートを共に形成する他の形の有線および無線接続のなど、様々な物理接続で構成される。実際に、インターネットの初期の目標は、送信者がネットワーク障害に拘らず受信者と通信できるようにすることであった。コンピューティング装置300がコンピューティング装置303にデータを送信するときに、そのデータは、インターネットを介してそれぞれ異なる物理ルートを移動することが可能である。
When two computing devices are connected, each layer of the data communication stack can have a logical or physical connection between them. As an example, when computing
データリンク層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にデータを伝えることができる。
Higher layers of the data communication stack, such as data link layers 310 and 320, network layers 308 and 318,
コンピューティング装置301および302は、その物理接続上でデータを受信するときに、そのデータ通信スタックの上方にデータを送ることになる。データ通信スタックのアプリケーション層より低いレベルは、受信データをそれより上の層に送信せずに、それを処理することができる可能性がある。一例として、SIPアプリケーション304は、SIPアプリケーション314にSIPメッセージを送信するときに、SIPメッセージに対応するデータをトランスポート層306に送ることになる。両方ともが物理層でデータを受信するコンピューティング装置301および302のデータ通信スタックは、そのデータ通信スタックの下から上に、そのそれぞれのトランスポート層に受信データを渡すことになる。データ内に示された宛先がコンピューティング装置303であることを受信データから認識するトランスポート層は、(その対応する下位レベルを介して)トランスポート層316に単にデータを転送することになる。したがって、コンピューティング装置301および302のアプリケーション/SIP層は、メッセージを処理しまたはメッセージを見ることさえ不要であることになる。
When computing
ある時間期間にわたって、コンピューティング装置301または302のトランスポート層によってデータが受信されない場合、コンピューティング装置は、コンピューティング装置300と303の間のSIPセッションに対応する接続を閉じることになる。一例として、コンピューティング装置301は、コンピューティング装置300またはコンピューティング装置302から接続に関するメッセージを受信しなかった場合、その接続はもはや不要であると見なし、その接続を閉じることになる。したがって、コンピューティング装置301と303の間のさらなるSIPメッセージは、前に開いていたコンピューティング装置301および302を通過する接続を通過することが不可能になることになる。
If data is not received by the transport layer of
図4は、send_messageルーチンの一実施形態を示す流れ図である。このルーチンは、メッセージ送信する、SIPアプリケーションのコンポーネントなどの、アプリケーション層コンポーネントによって実施されることになる。send_messageルーチンは、あるコンピューティング装置上で実行されるSIPアプリケーションなどによって、それが別のコンピューティング装置上で実行されるSIPアプリケーションにメッセージを送信するときに使用することができる。このルーチンは、ブロック402で開始し、パラメータとしてメッセージの指標(indication)を受信する。ブロック404で、ルーチンは、クロック値を、たとえばそれを0に設定するなどによって、再設定する。クロック値は、メッセージが最後に受信されてから経過した時間の指標である。この値は、接続が閉じられるべきかどうかを決定するために、システムのコンポーネントによってチェックすることができる。ブロック406で、ブロック402で受信されたメッセージをトランスポート層に送信する。このルーチンは、メッセージを送信するトランスポート層によって公開されたアプリケーション・プログラム・インターフェースを使用することができる。ブロック408で、ルーチンは、その呼出し側に戻る。
FIG. 4 is a flow diagram illustrating one embodiment of the send_message routine. This routine will be implemented by an application layer component, such as a component of a SIP application that sends a message. The send_message routine may be used when sending a message to a SIP application that runs on another computing device, such as by a SIP application running on one computing device. The routine begins at
図5は、sustain_connectionルーチンの一実施形態を示す流れ図である。このルーチンは、接続を持続するために、SIPアプリケーションのコンポーネントなどのアプリケーション層コンポーネントによって実施される。接続は、メッセージが最後に受信されてから経過した時間量を示すクロック値がタイム・アウト値を超える場合などに、持続される必要があることになる。適切なタイム・アウト値は、トランスポート層のAPIを使用してトランスポート層の属性を決定するなどによって決定されることができ、またはシステムの管理者によって定義することができる。ルーチンは、ブロック502で開始する。ブロック504で、ルーチンは、クロック値がほぼタイム・アウト値であるかどうかを判定する。クロック値がタイム・アウト値を超える場合、接続が既に閉じられていることがある。結果として、タイム・アウト値の前のある時間期間が選択されるべきである。クロック値がほぼタイム・アウト値である場合、ルーチンは、ブロック506に続く。そうでない場合、ルーチンは、ブロック508に続く。ブロック506で、ルーチンは、send_heartbeatサブ・ルーチンを呼び出し、これは、接続を持続することができるメッセージを送る。send_heartbeatサブ・ルーチンについて、図6に関して以下でさらに述べる。ブロック508で、ルーチンは、その呼出し側に戻る。
FIG. 5 is a flow diagram illustrating one embodiment of a sustain_connection routine. This routine is implemented by an application layer component, such as a component of a SIP application, to persist the connection. The connection will need to be sustained, such as when the clock value indicating the amount of time that has elapsed since the message was last received exceeds the timeout value. The appropriate timeout value can be determined, such as by determining transport layer attributes using the transport layer API, or can be defined by the administrator of the system. The routine begins at
sustain_connectionルーチンは、メッセージ送信しまたは受信するスレッドとは別個のスレッドのループ内で繰返し呼び出されることになる。あるいは、sustain_connectionルーチンは、タイム・アウト前の指定された時間間隔でトリガされるクロック・イベントに応答して呼び出すこともできる。 The sustain_connection routine will be called repeatedly in a loop of a thread separate from the thread sending or receiving the message. Alternatively, the sustain_connection routine can be called in response to a clock event triggered at a specified time interval before timing out.
あるいは、sustain_connectionルーチンは単に、クロック値に関係なく、タイム・アウト値より小さいある間隔で、ハートビート・メッセージを送信することができる。一例として、1分間活動が無かった後にプロキシ・サーバがタイム・アウトになる場合、このルーチンは、メッセージがほんの数秒前に送信されまたは受信された場合にも、30秒ごとにハートビート・メッセージを送信することができる。 Alternatively, the sustain_connection routine can simply send heartbeat messages at an interval that is smaller than the timeout value, regardless of the clock value. As an example, if the proxy server times out after 1 minute of inactivity, this routine will send a heartbeat message every 30 seconds, even if the message was sent or received just a few seconds ago. Can be sent.
図6は、send_heartbeatサブ・ルーチンの一実施形態を示す流れ図である。このサブ・ルーチンは、ハートビート・メッセージを送信する、SIPアプリケーションのコンポーネントなどの、アプリケーション層コンポーネントによって実施される。ハートビート・メッセージは、ある時間にわたって接続内でメッセージが送信されない場合に閉じる可能性のある接続を持続するために送信することができる。サブ・ルーチンは、ブロック602で開始し、パラメータとしてセッションの指標(indication)を受信する。ボックス604で、サブ・ルーチンは、ハートビート・メッセージを作成する。ハートビート・メッセージは、データ通信スタックのある層によっては無視されることができるが、データ通信スタックの別の層によっては無視されることがないメッセージである。一例として、ハートビート・メッセージは、開いたSIPセッションを有する2つコンピューティング装置間でメッセージを処理する別のコンピューティング装置(プロキシ・サーバなど)によってTCP接続が閉じられる恐れがある場合に、そのTCP接続を持続するために、SIPアプリケーションによって送信することができる。ハートビート・メッセージは、たとえばCRLF文字だけを含むことができる。あるいは、ハートビート・メッセージは、CRLFで終了する1つまたは複数のスペースおよびタブを含むことができる。ハートビート・メッセージは、CRLFを使用するのではなく、キャリッジ・リターンまたは改行文字を使用することもできる。TCP層にとって、こうしたメッセージは、メッセージが送信されまたは受信される際に、クロック値を再設定する有効なメッセージであることになる。しかし、SIPアプリケーションは、こうしたメッセージを無視することができる。したがって、こうしたハートビート・メッセージを送信することによって、TCP接続は開かれた状態で保たれることができ、したがって、SIPプレゼンス情報は正確なままであり、有用でない情報が、SIPアプリケーションに提示されることはない。代替実施形態では、ハートビート・メッセージ内で、単にキャリッジ・リターンまたは改行文字が送信されることになる。
FIG. 6 is a flow diagram illustrating one embodiment of the send_heartbeat subroutine. This sub-routine is implemented by an application layer component, such as a component of a SIP application, that sends a heartbeat message. Heartbeat messages can be sent to persist a connection that may be closed if no message is sent in the connection for some time. The sub-routine begins at
ブロック606で、サブ・ルーチンは、send_messageサブ・ルーチンを呼び出し、それに、作成されたハートビート・メッセージをパラメータとして渡す。send_messageサブ・ルーチンについて、図4に関連して上記で述べている。ブロック608で、サブ・ルーチンは、その呼出し側に戻る。
At block 606, the sub-routine calls the send_message sub-routine and passes the created heartbeat message as a parameter. The send_message sub-routine is described above in connection with FIG. At
図7は、receive_messageサブ・ルーチンの一実施形態を示す流れ図である。このサブ・ルーチンは、SIPアプリケーションなど、受信側コンピューティング装置のアプリケーション層コンポーネントによって実施されることになる。このサブ・ルーチンは、ブロック702で開始し、パラメータとしてメッセージの指標(indication)を受信する。ブロック704で、サブ・ルーチンは、受信されたメッセージがハートビート・メッセージかどうか決定する。サブ・ルーチンは、メッセージの内容が単にキャリッジ・リターン、改行またはその両方かどうかをチェックすることによって、受信されたメッセージがハートビート・メッセージかどうかを決定しようと試みることになる。あるいは、receive_messageサブ・ルーチンは、ハートビート・メッセージを識別すると分かっている、メッセージ内の他の任意の、情報を探すようにカスタマイズすることができる。受信されたメッセージがハートビート・メッセージである場合、サブ・ルーチンは、ブロック706に続く。そうでない場合、サブ・ルーチンは、ブロック708に続く。ブロック706で、サブ・ルーチンは、メッセージに肯定応答することができる。一般に、トランスポート層が、メッセージに肯定応答する。しかし、場合によっては、アプリケーション層コンポーネント層が、メッセージに肯定応答する必要がある場合がある。このステップはサブ・ルーチンを実施するアプリケーション層コンポーネントに応じて任意選択であることができるので、ブロック706は、破線で示されている。ブロック708で、サブ・ルーチンは、SIPアプリケーションなどにメッセージを転送することになる。ブロック710で、サブ・ルーチンは、その呼出し側に戻る。
FIG. 7 is a flow diagram illustrating one embodiment of a receive_message sub-routine. This sub-routine will be implemented by an application layer component of the receiving computing device, such as a SIP application. The sub-routine begins at
メッセージを受信すると、サブ・ルーチンは、クロック値(図示せず)を再設定することになる。このクロック値は、接続を持続するためにハートビート・メッセージが送信される必要があるかどうか決定するために使用することができる。 Upon receipt of the message, the sub-routine will reset the clock value (not shown). This clock value can be used to determine whether a heartbeat message needs to be sent in order to persist the connection.
図8は、ある実施形態におけるメッセージの流れを示すメッセージ流れ図である。図示する実施形態では、コンピューティング装置1が、コンピューティング装置2とSIPセッションを確立している。セッション内で交換されるメッセージは、プロキシ・サーバを通過する。一例として、t=0でコンピューティング装置1がメッセージ1を送信するときに、メッセージはプロキシ・サーバを通過し、t=1で、コンピューティング装置2が、メッセージを受信する。同様に、t=2でコンピューティング装置2がメッセージ2を送信するときに、メッセージは、t=でコンピューティング装置1がそれを受信する前に、プロキシ・サーバを通過する。プロキシ・サーバは、メッセージを転送しまたは受信するときはいつでも、クロックを再設定することができる。一例として、プロキシ・サーバは、メッセージ1を転送するときに、クロック値を0に再設定する。同様に、プロキシ・サーバは、メッセージ2を受信するときに、クロック値を0に再設定する。クロック値は、たとえばシステム・クロックに応答して、自動的に増分されることになる。クロック値がタイム・アウト値を超える場合、プロキシ・サーバは、そのセッションと関連する接続を閉じることになる。図示する例では、コンピューティング装置1は、クロック値がタイム・アウト値を超えた後は、メッセージ3を送信することが不可能となることになる。
FIG. 8 is a message flow diagram illustrating message flow in an embodiment. In the illustrated embodiment,
図9は、ある実施形態におけるメッセージの流れを示すメッセージ流れ図である。図示する実施形態では、図8で示し、上記で説明したように、コンピューティング装置1および2は、時点0と3の間にメッセージ1および2を交換している。t=4で、コンピューティング装置1は、間もなくタイム・アウトになる(図中に破線で示す)ことを認識すると、t=5として示すタイム・アウトになる前に、コンピューティング装置2にハートビート・メッセージを送信することになる。ハートビート・メッセージを送信すると、プロキシ・サーバはクロック値を再設定することができ、したがって、プロキシ・サーバが接続を閉じてないので、コンピューティング装置1は、時点6で、メッセージ3を送信することが可能であることになる。プロキシ・サーバのタイム・アウトの前にハートビート・メッセージを送信することによって、システムは、コンピューティング装置1と2の間で接続を持続することができる。ハートビート・メッセージを送信するコンピューティング装置は、ハートビート・メッセージの受信側のクロック値もまたタイム・アウト値を超過するまでまだ十分な時間があるうちに、ハートビート・メッセージの送信を試みる必要があることになる。
FIG. 9 is a message flow diagram illustrating message flow in an embodiment. In the illustrated embodiment,
図10は、ある実施形態におけるメッセージの流れを示すブロック図である。図示する実施形態では、送信側コンピューティング装置1000は、受信側コンピューティング装置1002とのSIPセッションを開いている。送信側コンピューティング装置がそのアプリケーション/SIP層1004を介してSIPメッセージ1を送信するときに、トランスポート層1006は、そのメッセージを2つのセグメントS1およびS2にセグメント化する可能性がある。タイム・アウトを回避するために、送信側コンピューティング装置は、ハートビート・メッセージS3を送信することができる。ハートビート・メッセージは、キャリッジ・リターン、改行、その両方、またはアプリケーションによっては無視されることになえるハートビート・メッセージを示す他の情報を含むことができる。次いで、受信側コンピューティング装置は、トランスポート層1016によってトランスポート・メッセージS4、S5およびS6としてセグメント化されたSIPメッセージ2を送信することができる。セグメント化されたメッセージは、様々なサイズのものである可能性がある。
FIG. 10 is a block diagram illustrating message flow in an embodiment. In the illustrated embodiment, the sending
ある実施形態では、コンピューティング装置は、一部の接続でハートビート・メッセージを送信することができ、その接続を持続するために、他の接続を含む別の機構を使用することができる。一例として、コンピューティング装置は、それ自体の「ホーム」サーバ、またはそれに接続された他のコンピューティング装置にメッセージを送信するときに、そのホーム・サーバを、そのコンピューティング装置の接続にハートビート・メッセージを関連付け、またその関連付けの指標を格納することが可能であるので、ハートビート・メッセージを使用することができる。そうすることによって、サーバは、後に接続が失われる場合に、そのコンピューティング装置のプレゼンス情報を効率的に更新することを可能とすることができる。コンピューティング装置は、そうすることが有利である可能性がある場合には、他の接続でREGISTERメッセージを送信することができる。一例として、コンピューティング装置は、中間装置がハートビート・メッセージを転送しない場合に、REGISTERメッセージを送信することができる。 In some embodiments, the computing device can send a heartbeat message on some connections and use another mechanism, including other connections, to persist that connection. As an example, when a computing device sends a message to its own “home” server, or other computing device connected to it, it makes the home server a heartbeat connection to the computing device connection. Since it is possible to associate messages and store an indication of the association, heartbeat messages can be used. By doing so, the server may be able to efficiently update the presence information of the computing device if the connection is later lost. The computing device may send a REGISTER message on other connections if it may be advantageous to do so. As an example, the computing device can send a REGISTER message if the intermediate device does not forward the heartbeat message.
本明細書で論じた特定の実施例は、SIPおよびTCPを使用することに言及しているが、代替実施形態は、他の等価または類似のプロトコルを使用することができる。 Although the specific examples discussed herein refer to using SIP and TCP, alternative embodiments may use other equivalent or similar protocols.
セッション接続を持続するための技術が実装されるコンピューティング装置は、中央処理装置、メモリ、入力装置(キーボードおよびポインティング装置など)、出力装置(表示装置など)、および記憶装置(ディスク・ドライブなど)を含むことができる。メモリおよび記憶装置は、セキュリティ・システムを実装する命令を収容することが可能なコンピュータ読取り可能媒体である。さらに、そのデータ構造体およびメッセージ構造体は、格納したり、あるいは通信リンク上の信号などのデータ伝送媒体を介して送信したりすることができる。インターネット、ローカル・エリア・ネットワーク、広域ネットワークまたはポイント・ツー・ポイント・ダイヤルアップ接続など、様々な通信リンクを使用することができる。 Computing devices that implement techniques for persisting session connections include central processing units, memory, input devices (such as keyboards and pointing devices), output devices (such as display devices), and storage devices (such as disk drives). Can be included. Memory and storage devices are computer-readable media that can contain instructions for implementing a security system. Further, the data structure and message structure can be stored or transmitted over a data transmission medium such as a signal on a communication link. Various communication links can be used, such as the Internet, local area networks, wide area networks or point-to-point dial-up connections.
図1に、セッション接続を持続するための技術を実装することが可能な適切なオペレーティング環境の一例を示す。このオペレーティング環境は、適切なオペレーティング環境の一例にすぎず、本システムの使用または機能の範囲についてのどんな制限をも示唆するものではない。使用に適す可能性のある他の周知のコンピューティング・システム、環境および構成には、パーソナル・コンピュータ、サーバ・コンピュータ、「スマート」携帯電話を含むハンドヘルドまたはラップトップ装置、マルチ・プロセッサ・システム、マイクロ・プロセッサ・ベースのシステム、プログラマブルな家電、ネットワークPC、ミニ・コンピュータ、メインフレーム・コンピュータ、上記システムまたは装置のいずれかを含む分散コンピューティング環境などが含まれる。 FIG. 1 shows an example of a suitable operating environment in which techniques for persisting session connections can be implemented. This operating environment is only one example of a suitable operating environment and is not intended to suggest any limitation as to the scope of use or functionality of the system. Other well known computing systems, environments and configurations that may be suitable for use include personal computers, server computers, handheld or laptop devices including “smart” mobile phones, multi-processor systems, Processor based systems, programmable consumer electronics, network PCs, mini computers, mainframe computers, distributed computing environments including any of the above systems or devices, and the like.
セッション接続を持続するための技術について、1つまたは複数のコンピュータまたは他の装置によって実行されるプログラム・モジュールなど、コンピュータ実行可能命令の一般的な文脈で述べることができる。一般に、プログラム・モジュールは、特定のタスクを実施し、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造体などを含む。一般に、プログラム・モジュールの機能は、様々な実施形態で望まれるように、組み合わせられることも、分散されることもある。 Techniques for persisting session connections can be described in the general context of computer-executable instructions, such as program modules, being executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. In general, the functionality of program modules may be combined or distributed as desired in various embodiments.
説明するため、本発明の具体的な実施形態について本明細書で述べたが、上記内容から、本発明の精神および範囲から逸脱せずに様々な修正を行うことができることが理解されよう。したがって、本発明は、添付の特許請求の範囲によって以外は限定されない。 While specific embodiments of the invention have been described herein for purposes of illustration, it will be appreciated that various modifications can be made from the foregoing without departing from the spirit and scope of the invention. Accordingly, the invention is not limited except as by the appended claims.
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 物理(層)
102
306
1006, 1016 transport (layer)
1008, 1018 network (layer)
1010, 1020 Data link (layer)
1012, 1022 Physical (layer)
Claims (16)
前記クライアント計算装置から前記プロキシ計算装置でハートビートメッセージを受信するステップであって、前記クライアント計算装置およびサーバ計算装置は、セッション開始プロトコルを使用してオープンセッションを有し、かつ、前記ハートビートメッセージは、トランスポート層プロトコルの有効なメッセージであって前記セッション開始プロトコルによって無視される、ステップと、
前記クライアント計算装置とサーバ計算装置との間の前記セッション接続のメッセージクロックをリセットするステップと、
前記プロキシ計算装置から前記サーバ計算装置に前記ハートビートメッセージを送信し、それによって、前記ハートビートメッセージを送信するステップは、前記クライアント計算装置とサーバ計算装置との間の前記セッション接続を維持する、ステップと
を含むことを特徴とする方法。 A method performed by a proxy computing device for maintaining a session connection between a client computing device and a server computing device, comprising:
Receiving a heartbeat message from the client computing device at the proxy computing device, wherein the client computing device and the server computing device have an open session using a session initiation protocol, and the heartbeat message Is a transport layer protocol valid message and is ignored by the session initiation protocol; and
Resetting the message clock of the session connection between the client computing device and the server computing device;
Sending the heartbeat message from the proxy computing device to the server computing device, whereby sending the heartbeat message maintains the session connection between the client computing device and the server computing device; A method comprising the steps of:
前記ハートビートメッセージを受信するステップと前記第2のハートビートメッセージを受信するステップとの間のタイムアウト時間が前記一定期間を超えているかを判定するステップと
をさらに含むことを特徴とする請求項1に記載の方法。 Receiving a second heartbeat message at the proxy computing device from the client computing device after a predetermined period after receiving the heartbeat message;
2. The method of claim 1, further comprising: determining whether a time-out period between the step of receiving the heartbeat message and the step of receiving the second heartbeat message exceeds the predetermined period. The method described in 1.
前記クライアント計算装置との接続を通じて、メッセージを受信する前記プロキシ計算装置上で実行可能な第1のコンポーネントと、
前記受信したメッセージを前記サーバ計算装置に送信する前記プロキシ計算装置上で実行可能な第2のコンポーネントと、
前記受信したメッセージがハートビートメッセージであるかを判定する前記プロキシ計算装置であって、前記ハートビートメッセージは、トランスポート層プロトコルの有効なメッセージであってセッション開始プロトコルによって無視され、かつ、前記受信したメッセージがハートビートメッセージであると判定すると、前記クライアント計算装置と前記サーバ計算装置との間の前記セッション接続のメッセージクロックをリセットし、それによって、前記クライアント計算装置と前記サーバ計算装置との間の前記セッション接続を維持する、前記プロキシ計算装置上で実行可能な第3のコンポーネントとを含むことを特徴とするプロキシ計算装置。 A proxy computing device that is communicably connected between a client computing device and a server computing device and is configured to maintain a session connection between the client computing device and the server computing device,
A first component executable on the proxy computing device that receives messages through a connection with the client computing device;
A second component executable on the proxy computing device for transmitting the received message to the server computing device;
The proxy computing device for determining whether the received message is a heartbeat message, wherein the heartbeat message is a valid message of a transport layer protocol, ignored by a session initiation protocol, and the reception If it is determined that the received message is a heartbeat message, the message clock of the session connection between the client computing device and the server computing device is reset, and thereby, between the client computing device and the server computing device. And a third component executable on the proxy computing device that maintains the session connection of the proxy computing device.
セッション開始プロトコルを使用してクライアント計算装置とのセッションを確立するステップであって、前記セッションはセッション接続を有する、ステップと、
プロキシ計算装置を介して、前記クライアント計算装置から、トランスポート層プロトコルを使用してハートビートメッセージを受信するステップであって、前記セッション開始プロトコルは、前記トランスポート層プロトコルよりも高いデータ通信スタックの層によって用いられ、かつ、前記ハートビートメッセージは、前記トランスポート層プロトコルの有効なメッセージであって前記セッション開始プロトコルによって無視され、前記ハートビートメッセージを受信するステップは、前記サーバ計算装置で前記セッション接続を維持する、ステップと、
を含み、
前記セッションは、前記プロキシ計算装置を通じて、前記クライアント計算装置と前記サーバ計算装置との間で確立されて維持され、かつ、前記クライアント計算装置から前記サーバ計算装置で前記ハートビートメッセージを受信するステップの後に、メッセージクロックがリセットされる、ステップとを含むことを特徴とする方法。 A method performed by a server computing device for persisting a session connection comprising:
Establishing a session with a client computing device using a session initiation protocol, the session having a session connection;
Receiving a heartbeat message from the client computing device using a transport layer protocol via a proxy computing device, the session initiation protocol having a higher data communication stack than the transport layer protocol; And the heartbeat message is a valid message of the transport layer protocol and ignored by the session initiation protocol, and receiving the heartbeat message is performed by the server computing device at the session Stay connected, step, and
Including
The session is established and maintained between the client computing device and the server computing device through the proxy computing device and receiving the heartbeat message from the client computing device at the server computing device; And the step of resetting the message clock later.
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 (en) | 2004-06-30 | 2005-06-15 | Persisting session connections |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012257288A JP2012257288A (en) | 2012-12-27 |
JP5518954B2 true JP5518954B2 (en) | 2014-06-11 |
Family
ID=35058467
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005175167A Expired - Fee Related JP5318319B2 (en) | 2004-06-30 | 2005-06-15 | Persisting session connections |
JP2012167317A Active JP5518954B2 (en) | 2004-06-30 | 2012-07-27 | Persisting session connections |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005175167A Expired - Fee Related JP5318319B2 (en) | 2004-06-30 | 2005-06-15 | Persisting session connections |
Country Status (5)
Country | Link |
---|---|
US (4) | US7962623B2 (en) |
EP (1) | EP1613019B1 (en) |
JP (2) | JP5318319B2 (en) |
KR (1) | KR101109276B1 (en) |
CN (2) | CN1716964B (en) |
Families Citing this family (44)
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 |
CA2663317A1 (en) * | 2006-09-13 | 2008-03-20 | Asankya Networks, Inc. | Systems and methods of improving performance of transport protocols in a multi-path environment |
CN1946062A (en) * | 2006-10-10 | 2007-04-11 | 华为数字技术有限公司 | Method and system for keep-alive conversation table in NAT device |
DE602006005690D1 (en) * | 2006-11-30 | 2009-04-23 | Research In Motion Ltd | System and method for maintaining the packet protocol context |
US7961703B2 (en) * | 2006-11-30 | 2011-06-14 | 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 (en) * | 2007-10-10 | 2014-07-08 | 삼성전자주식회사 | Method and Apparatus for Maintaining a DM Session |
JP4557028B2 (en) * | 2008-03-19 | 2010-10-06 | ソニー株式会社 | Information processing apparatus, information processing method, client device, information processing system |
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 (en) * | 2009-05-18 | 2013-11-06 | 华为技术有限公司 | Session management method and device |
US8688826B2 (en) * | 2009-11-30 | 2014-04-01 | Motorola Mobility Llc | Mobile computing device and method with intelligent pushing management |
CN102088470B (en) * | 2009-12-07 | 2014-03-05 | 中兴通讯股份有限公司 | Method and device for deadlock detection and self-recovery of file transfer protocol (FTP) in communication system |
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 (en) * | 2011-03-08 | 2016-02-03 | 华为技术有限公司 | The processing method of heartbeat message, the acquisition methods of heart beat cycle and access network equipment |
CN103119896A (en) * | 2011-07-01 | 2013-05-22 | 华为技术有限公司 | Heartbeat message transmission method and heartbeat proxy server |
GB2493129B (en) * | 2011-07-11 | 2018-07-04 | Metaswitch Networks Ltd | Method and system for managing a sip server |
CN102891772A (en) * | 2011-07-18 | 2013-01-23 | 鸿富锦精密工业(深圳)有限公司 | Method and system for testing performance of network card |
JP5765123B2 (en) | 2011-08-01 | 2015-08-19 | 富士通株式会社 | COMMUNICATION DEVICE, COMMUNICATION METHOD, COMMUNICATION PROGRAM, AND COMMUNICATION SYSTEM |
US10198716B2 (en) * | 2011-11-11 | 2019-02-05 | Microsoft Technology Licensing, Llc | User availability awareness |
CN102684949B (en) * | 2012-06-04 | 2015-02-04 | 北京神州泰岳软件股份有限公司 | Method and device for processing heartbeat data packet under persistent connection, and client |
KR20140038846A (en) * | 2012-09-21 | 2014-03-31 | 삼성전자주식회사 | A method and apparatus for control maintenance of session for an application in a mobile communication system |
US8976768B2 (en) * | 2012-09-27 | 2015-03-10 | Intel Corporation | Peer setup of predefined modulation transmission |
JP6106494B2 (en) * | 2013-03-29 | 2017-03-29 | 株式会社東芝 | COMMUNICATION CONTROL DEVICE, SERVER DEVICE, COMMUNICATION SYSTEM, AND PROGRAM |
US10070480B1 (en) | 2013-04-23 | 2018-09-04 | Sprint Spectrum L.P. | Tearing down a radio link based on keepalive message activity |
CN104348522B (en) * | 2013-07-23 | 2016-09-21 | 普天信息技术研究院有限公司 | A kind of method that heart beating being applicable to low-power consumption bluetooth equipment keeps |
US9535794B2 (en) * | 2013-07-26 | 2017-01-03 | Globalfoundries Inc. | Monitoring hierarchical container-based software systems |
JP6364866B2 (en) * | 2014-03-27 | 2018-08-01 | 富士通株式会社 | Terminal device, communication control system, and communication control method |
CN105610888A (en) * | 2015-09-08 | 2016-05-25 | 华南师范大学 | Method of using socket to push message based on Android and system thereof |
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 |
Family Cites Families (39)
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 |
JP3549762B2 (en) * | 1999-03-05 | 2004-08-04 | エヌ・ティ・ティ・コムウェア株式会社 | Communication line alarm notification device and communication line alarm notification method |
US6631186B1 (en) * | 1999-04-09 | 2003-10-07 | Sbc Technology Resources, Inc. | System and method for implementing and accessing call forwarding services |
US6957346B1 (en) * | 1999-06-15 | 2005-10-18 | Ssh Communications Security Ltd. | Method and arrangement for providing security through network address translations using tunneling and compensations |
US6728365B1 (en) * | 1999-09-13 | 2004-04-27 | Nortel Networks Limited | Method and system for providing quality-of-service on packet-based wireless connections |
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 |
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 |
US6678735B1 (en) * | 2000-01-26 | 2004-01-13 | Nortel Networks Limited | Method and apparatus for a sip client manager |
DE50013978D1 (en) | 2000-09-22 | 2007-03-08 | Siemens Ag | Arrangement for checking the achievability of a client |
JP4212230B2 (en) * | 2000-10-31 | 2009-01-21 | 富士通株式会社 | Media communication system and terminal device in the system |
EP1241847A1 (en) * | 2001-03-13 | 2002-09-18 | Siemens Aktiengesellschaft | Transmision of information with a verified QoS in a communications network |
US20030023730A1 (en) * | 2001-07-27 | 2003-01-30 | Michael Wengrovitz | Multiple host arrangement for multimedia sessions using session initiation protocol (SIP) communication |
CN1177450C (en) * | 2001-09-29 | 2004-11-24 | 华为技术有限公司 | Implementation method of "heartbeat" technology in Internet personal number service |
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 (en) * | 2002-01-09 | 2004-12-03 | 엘지전자 주식회사 | method for controlling the session maintenance in the communication network |
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 (en) * | 2002-03-07 | 2003-09-19 | Teijin Ltd | Method of producing polymorphic crystal of 2-(3-cyano-4- isobutyloxyphenyl)-4-methyl-5-thiazolecarboxylic acid |
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 |
WO2004012086A1 (en) * | 2002-07-29 | 2004-02-05 | Mitsubishi Denki Kabushiki Kaisha | Internet communication system, internet communication method, session management server, radio communication device, communication relay server, and program |
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 |
US7359354B2 (en) * | 2003-06-11 | 2008-04-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus to reduce packet data link renegotiations in a wireless mobile network |
US7760744B1 (en) * | 2003-11-20 | 2010-07-20 | Juniper Networks, Inc. | Media path optimization for multimedia over internet protocol |
KR100661313B1 (en) * | 2003-12-03 | 2006-12-27 | 한국전자통신연구원 | SIP-based multimedia communication system and mobility provision method capable of providing mobility using lifetime number |
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 |
-
2004
- 2004-06-30 US US10/881,251 patent/US7962623B2/en active Active
-
2005
- 2005-06-10 EP EP05105105.0A patent/EP1613019B1/en active Active
- 2005-06-15 JP JP2005175167A patent/JP5318319B2/en not_active Expired - Fee Related
- 2005-06-28 KR KR1020050056256A patent/KR101109276B1/en active IP Right Grant
- 2005-06-30 CN CN2005100822609A patent/CN1716964B/en active Active
- 2005-06-30 CN CN2011101621439A patent/CN102209119B/en active Active
-
2011
- 2011-06-13 US US13/159,146 patent/US8364774B2/en not_active Expired - Lifetime
-
2012
- 2012-07-27 JP JP2012167317A patent/JP5518954B2/en active Active
-
2013
- 2013-01-29 US US13/752,554 patent/US9560086B2/en active Active
- 2013-01-29 US US13/752,545 patent/US20130151717A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP5318319B2 (en) | 2013-10-16 |
EP1613019B1 (en) | 2017-04-19 |
US20130151717A1 (en) | 2013-06-13 |
JP2006020301A (en) | 2006-01-19 |
CN1716964A (en) | 2006-01-04 |
EP1613019A1 (en) | 2006-01-04 |
JP2012257288A (en) | 2012-12-27 |
US20110246595A1 (en) | 2011-10-06 |
US7962623B2 (en) | 2011-06-14 |
CN102209119A (en) | 2011-10-05 |
US9560086B2 (en) | 2017-01-31 |
KR101109276B1 (en) | 2012-01-30 |
US20060020707A1 (en) | 2006-01-26 |
CN1716964B (en) | 2011-07-27 |
US8364774B2 (en) | 2013-01-29 |
KR20060048616A (en) | 2006-05-18 |
CN102209119B (en) | 2013-03-13 |
US20130144965A1 (en) | 2013-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5518954B2 (en) | Persisting session connections | |
US7650384B2 (en) | Maintaining real-time conversations over unreliable connections | |
US6301609B1 (en) | Assignable associate priorities for user-definable instant messaging buddy groups | |
US20070112954A1 (en) | Efficiently detecting abnormal client termination | |
US8386585B2 (en) | Real-time communications over data forwarding framework | |
EP1790149B1 (en) | Method and session initiation protocol (sip) server for the exchange of end-point capabilities | |
US20100030906A1 (en) | Re-establishing a connection for an application layer via a service layer | |
US8190568B2 (en) | System and method for providing interactive communications | |
EP1635521B1 (en) | Reducing storage requirement for route information | |
US20060187931A1 (en) | Communication system and method for providing information on interface connecting network components | |
EP2271995A1 (en) | Real-time communications over data forwarding framework | |
EP1691528A1 (en) | Method and system for placing restrictions on sessions | |
KR20120117979A (en) | Transferring multiple communication modalities during a conversation | |
JP3698698B2 (en) | Establishing calls on intranets and external networks via DMZ | |
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 (en) | Presence information distribution system | |
JP5512919B2 (en) | Service usage sharing method between different services | |
KR20050014129A (en) | Session Initiation Protocol server and SIP message handling method | |
JP2009206648A (en) | Signaling server, data communication system, and signaling processing proxy method and program | |
JP2004228725A (en) | E-mail server | |
Le Kim | THESIS/THÈSE |
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 |