CN1716964A - 维持会话连接 - Google Patents
维持会话连接 Download PDFInfo
- Publication number
- CN1716964A CN1716964A CNA2005100822609A CN200510082260A CN1716964A CN 1716964 A CN1716964 A CN 1716964A CN A2005100822609 A CNA2005100822609 A CN A2005100822609A CN 200510082260 A CN200510082260 A CN 200510082260A CN 1716964 A CN1716964 A CN 1716964A
- Authority
- CN
- China
- Prior art keywords
- message
- agreement
- heartbeat message
- computing equipment
- heartbeat
- 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
Links
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
- 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
- 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
- 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
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (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消息,所以诸如代理服务器这样的中间计算设备可以不将心跳消息解释为“保持活跃”消息,并可维持会话连接。
Description
技术领域
所描述的技术一般涉及数据通信网络,尤其涉及维持会话连接。
背景技术
计算设备用户有时使用其计算设备来与其它用户进行通信。例如,用户可使用计算设备,通过发送或接收键入的消息,如通过使用MICROSOFTMESSENGER(“MESSENGER”)即时消息通信产品,而与另一用户进行通信。作为另一个例子,用户可通过使用话筒说话并通过扬声器或头戴式耳机听见其他用户,如通过使用互联网协议上的话音(“VoIP”)应用程序,而与另一个用户进行通信。这些用户可使用各种计算设备,如个人计算机、个人数字助理、蜂窝电话、启用VoIP的电话,等等。
将这些类型的通信服务提供给用户的应用程序也可能需要提供存在信息(presence information)。存在信息传达用户的能力或者意愿,以使用计算设备进行通信。存在信息可由计算设备自动检测,或者可由用户主动选择。计算设备可自动观察并传递存在信息,如用户“状态”。例如,当用户没有登录到任何计算设备或没有使用(或登录到)观察并传递存在信息的应用程序时,用户状态可被自动表示为“脱机”。当用户启动或登录到诸如MESSENGER等观察并传达存在信息的应用程序时,用户状态可被自动表示为“联机”。当用户一段时间没有在计算设备上执行任何行动时,应用程序可自动表示用户“离开”。用户也可主动选择其状态。例如,用户可表示他们“外出就餐”或者“忙碌”,这可表示他们可能无法立即对来自其他用户的消息做出响应。
多个计算设备可向一注册服务器计算设备注册其存在信息,这样以使“监视程序”,即希望确定用户状态的应用程序,可通过查询注册服务器或预订自动接收存在信息来确定有意义的存在信息。例如,MESSENGER可向注册服务器表明,用户在一段时间内还没有在计算设备上执行任何行动,因此用户存在信息可以是“离开”。启用VoIP的电话可向注册服务器表明,用户已经打了电话,因此该用户的存在信息可以是“接听电话”。当监视程序从注册服务器接收到该存在信息时,它可确定用户状态是“接听电话,且不能对计算设备上的消息做出响应”。然而,若用户开始在计算设备上执行行动,则监视程序可确定用户状态是“接听电话,但能够对计算设备上的消息做出响应”。若用户主动在计算设备上表明其用户状态是“离开”,并使用启用VoIP的电话,则监视程序可确定用户状态是“漫游”。
通信应用程序有时需要确立并管理计算设备之间的会话。会话是在一段时间内出现的计算设备之间的一组交互。例如,诸如MESSENGER或VoIP等实时通信应用程序代表用户建立通信设备之间的会话。这些应用程序可使用诸如“会话发起协议”(“SIP”)等各种机制来建立会话。SIP是一种应用层控制协议,计算设备可使用它来发现另一个计算设备,并建立、修改和终止计算设备之间的会话。
应用程序可将SIP用于另一个协议来发送或接收信息。通过将SIP用于其它协议,应用程序可创建并管理会话,并在会话期间交换信息。以SIP来使用以交换信息的协议可将该信息分割为消息。例如,VoIP应用程序可将长的叙述分割为较短的消息。在会话期间交换消息被称为“对话”。SIP可使用较低级通信层来传输对话的消息,如传输控制协议/互联网协议(“TCP/IP”),它通常用于传输层以及网络层协议。
传输控制协议(”TCP”)是面向连接的、可靠的传递传输层协议。TCP通常被描述为一传输层,它提供应用层(如使用SIP的应用程序)和网络层之间的接口。应用层一般通过发送或接收数据流(如许多数据字节)来与TCP层进行通信。TCP将这个数据流组织为段,它可由诸如互联网协议(“IP”)等在网络层使用的协议携带。这些数据段通常被称为“分组”、“帧”或者“消息”。每条消息一般包含报头和净荷。报头包含用于路由和解释消息所需的数据。净荷包含被发送或接收的实际数据。应用层、传输层以及网络层,连同其它层,共同被称为数据通信栈。
连接中的消息可经过中间计算设备。当发送计算设备数据通信栈的传输层或网络层建立与接收计算设备中数据通信栈的相应层的连接时,由计算设备交换的消息可经过几个中间计算设备。例如,消息可经过代理服务器、网络地址转换器或者网关。这些中间计算设备接收、处理并转发消息。例如,代理服务器可以是连接到内联网的计算设备和连接到因特网的计算设备之间的中介。该代理服务器可例如通过忽略来自内联网外部的连接请求,试图使内联网更安全。
中间计算设备可终止两个计算设备之间的空闲连接,以有效地使用网络资源。例如,在连接到内联网的用户计算设备(“计算设备A”)上执行的MESSENGER或VoIP应用程序可建立与在连接到因特网的另一个计算设备(“计算设备B”)上执行的应用程序的基于SIP的会话。该会话可使用计算设备A和B之间的TCP/IP连接,而且由计算设备交换的消息可经过代理服务器。当在一段时间内没有在连接中交换消息时,代理服务器可关闭它与计算设备B之间的连接,以保存网络资源。然而,计算设备A可能不知道该连接已被关闭,因为它与代理服务器的连接保持打开。结果,在计算设备B上执行的应用程序可能错误地假定计算设备A的应用程序(或用户)不再处于联机状态或者使用该连接。此外,为使代理服务器所连接的内联网更加安全,代理服务器可忽略来自未连接到内联网的设备,诸如连接到因特网的计算设备的连接请求。随后,在连接到内联网的计算设备B上执行的应用程序可能无法查询在计算设备A上执行的应用程序的状态或请求重新建立会话。
中间计算设备即使在计算设备使用“保持活跃”机制的时候也可关闭连接。某些计算设备使用保持活跃机制来保持连接活跃,而不论消息缺乏与否。该机制包括发送“保持活跃”消息,以表明发送者还没有关闭连接。然而,有效的中间计算设备可识别保持活跃消息,并在保持发送计算设备和中间计算设备之间的连接活跃时,可终止与在保持活跃消息中表明的接收者的连接(如,与连接到因特网的计算设备的连接)。
连接可通过发送应用层的有效消息而得到维持。例如,使用传输层中的TCP的SIP应用程序可周期性地发送有效的SIP消息,如REGISTER(寄存器)消息。REGISTER消息可用于使SIP服务器能够将消息发送者的统一资源标识符(“URI”)与发送者使用的计算设备相关联。当有效SIP消息不能被发送或接收时,SIP应用程序可检测到其TCP连接是不可用的。发送REGISTER,或者实际上包含有效数据的任何有效SIP消息的问题,是当多个客户机和服务器需要这样做以维持连接时,这样做可能是计算密集的。在REGISTER消息的情况下,接收这样消息的服务器可能需要对该消息进行语法分析,以确定发送者计算设备的URI和身份,并且可能进一步需要将数据储存在可能在另一个服务器上的数据库中。
这样,不依赖于消息TCP保持活跃或广泛计算处理来维持会话连接的有效方法将具有显著的实用性。
SIP是一种因特网提议标准。其规范“RFC 3261”,可在<http://www.ietf.org/rfc/rfc3261.txt>处获得。用于对涉及事件通知的SIP的扩展的规范“RFC 3265”可在<http://www.ietf.org/rfc/rfc3265.txt>处获得。涉及即时消息通信系统中的存在信息的规范“RFC 2778”可在<http://www.ietf.org/rfc/rfc2778.txt>处获得。涉及SIP中的存在信息的提议规范的草稿可在<http://www.ietf.org/intemet-drafts/draft-ietf-simple-presene-10.txt>处获得。所有这四个规范通过整体引用合并于此。
发明内容
在一实施例中,提供了用于维持会话连接的技术。该技术在不发送消息时可导致会话连接由于超时条件而关闭时发送心跳消息。心跳消息是有效的传输层消息,它会被数据通信栈的较高层处的协议忽略。例如,该技术可发送其净荷中仅包含回车和换行(“CRLF”)的TCP消息。因为TCP层将仅包含CRLF的消息认为是有效TCP消息,所以诸如代理服务器这样的中间计算设备可以不将心跳消息解释为“保持活跃”消息,并可维持会话连接。
附图说明
图1是示出用于维持会话连接的系统的实施例的框图。
图2是示出图1的网络的实施例的框图。
图3是示出由计算设备所使用的数据通信栈的实施例的框图。
图4是示出send_message例程的实施例的流程图。
图5是示出sustain_connection例程的实施例的流程图。
图6是示出send_heartbeat子例程的实施例的流程图。
图7是示出receive_message子例程的实施例的流程图。
图8是示出一实施例中的消息流的消息流图。
图9是示出一实施例中的消息流的消息流图。
图10是示出一实施例中的消息流的框图。
具体实施方式
在一实施例中,提供了用于维持会话连接的技术。该技术在不发送消息可导致会话连接由于超时条件而关闭时发送心跳消息。心跳消息是包含非空净荷的有效传输层消息,它会被数据通信栈的较高层处的协议忽略。例如,该技术可发送在其净荷中仅包含回车和换行(“CRLF”)的TCP消息。因为TCP层将仅包含CRLF的消息认为是有效的TCP消息,所以诸如代理服务器这样的中间计算设备可复位涉及其中发送或接收消息的连接的消息时钟。该消息时钟表明自从消息在连接中被最后一次发送或接收以来已过去的时间量。当连接的消息时钟表明已经过了阈值量的时间(如表明超时条件已经出现)时,中间计算设备可关闭该连接。因为消息时钟在消息被发送或接收时被复位,所以该连接可可以不被关闭,除非另一个消息在阈值量的时间过去之前没有被发送或接收。当接收者计算设备的TCP层将接收到的心跳消息转发到其数据通信栈的较高层时,该较高层可忽略心跳消息。例如,SIP可忽略仅包含诸如空格、制表符、回车、换行或CRLF等空白的其它有效SIP消息。若接收到包含除CRLF之外信息的消息,则较高层可试图将这些消息解释为包含不能被忽略的信息。在各种实施例中,心跳可只包含回车、换行或可在传输层有效但被数据通信栈的较高层忽略的任何数据。这样,通过发送有效传输层消息,如被SIP忽略的心跳消息,即使在处于数据通信栈中高于传输层的层的计算设备之间没有交换任何信息,该技术也可维持会话连接。可在协议的规范或定义中定义何种类型的消息是有效但可被忽略的。
在一实施例中,被传输层以上的层所忽略的消息可包括,如回车、换行、空格、制表符、或者任何一般的空白字符。在一实施例中,只包含空白字符的这样的消息能以回车或换行结束。可用于消息中以维持连接而不导致过量计算负担的字符可通过分析在可能关闭连接的协议(如TCP)之上使用的协议来确定。
现在转到附图,图1是示出用于维持会话连接的系统的实施例的框图。该系统可包含一个或多个客户机102、一个或多个网络104、以及将客户机和网络连接起来的网络,如因特网114。客户机可通过网络连接108连接到因特网。网络104可使用各种形式的数据通信链路110连接到因特网。客户机可以是,如计算机、蜂窝电话、或者连接到因特网的其它设备。网络可以是如内联网。客户机也可使用专用数据通信链路112直接连接到网络。类似地,网络可使用专用数据通信链路112直接连接到其它网络。因特网也可连接到各种其它计算设备(未示出)。这里描述的连接可以是物理的、无线的,并且可实际上可以是任何形式的数据通信网络连接。
图2是示出图1的网络的实施例的框图。网络200包含一个或多个客户机202、服务器204、以及边缘代理服务器212。网络也可包含其它设备(未示出)。所示的网络设备(以及未示出的那些设备)可通过与网络相关联的数据通信网络(未示出)而互联。客户机202和服务器204可执行各种活动,包括交换SIP消息。边缘代理服务器212可以同时连接到网络200(“内部”网络)相连和“外部”网络。如因特网(未示出)。当客户机想要打开到网络外部的服务器的会话时,边缘代理可例如确定该会话是否应被打开,以及应使用哪个通信链路。
图3是示出由图1和图2的计算设备所使用的数据通信栈的实施例的框图。计算设备可使用一个或多个数据通信栈来彼此通信。在所示的示例中,计算设备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应用程序。
当两个计算设备被连接起来时,其数据通信栈的层可具有彼此之间的逻辑或物理连接。例如,当计算设备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等逻辑连接而相连。当数据通信栈的两层具有逻辑连接并交换数据时,该数据可通过物理连接沿着发送计算设备的数据通信栈“向下”发送到数据通信栈的物理层,然后沿着接收计算设备的数据通信栈“向上”发送。例如,当计算设备300的SIP应用程序304与计算设备303的SIP应用程序314进行通信时,SIP应用程序304可将数据传递到传输层306,传输层306可将数据传递到网络层308,网络层308可将数据传递到数据链路层310,数据链路层310可将数据传递到物理层312。物理层312可通过物理连接324传递数据,且最终可将数据传递到物理层322。物理层322可将其接收的数据向上传递到数据链路层320,数据链路层320可将数据传递到网络层318,网络层318可将数据传递到传输层316,传输层最终可将数据传递到SIP应用程序314。
当计算设备301和302在其物理连接上接收数据时,它们也可沿其数据通信栈向上发送数据。可能的情况是,数据通信栈的较低层,而不是应用层,能够处理接收到的数据,而不将其发送到较高层。例如,当SIP应用程序304将SIP消息发送到SIP应用程序时,它可将对应于SIP消息的数据发送到传输层306。计算设备301和302的数据通信栈均接收其物理层上的数据,它们可将接收到的数据沿着数据通信栈向上传递到其各自的传输层。传输层可从接收到的数据中识别出在数据中表示的目的地是计算设备303,它可简单地将数据转发到传输层316(通过其对应的较低层)。这样,计算设备301和302的应用/SIP层可以不必处理或者甚至查看消息。
当任一计算设备301或者302的传输层在一段时间内没有接收到任何数据时,计算设备可关闭对应于计算设备300和303之间的SIP会话的连接。例如,若计算设备301不能在来自计算设备300或者计算设备302的连接上接收任何消息,则它可假定该连接不再是必要的,并关闭该连接。这样,计算设备300和303之间的进一步SIP消息也许无法经过通过计算设备301和302的先前打开的连接。
图4是示出send_message(发送消息)例程的实施例的流程图。该例程可由应用层组件执行,如SIP应用程序的组件,以发送消息。send_message例程可由如在计算设备上执行的SIP应用程序在它将消息发送到在另一个计算设备上执行的SIP应用程序时使用。该例程开始于方框402,那里它接收消息的指示作为参数。在方框404处,该例程复位时钟值,如通过将其设置到零。时钟值是自从消息被最后一次发送以来已经过的时间的指示。这个值可由系统组件检查,以确定连接是否应被关闭。在方框406处,该例程将在方框402处接收到的消息发送到传输层。该例程可使用由传输层所展现的应用程序接口来发送消息。在方框408处,该例程返回到其调用者处。
图5是示出sustain_connection(维持连接)例程的实施例的流程图。该例程由诸如SIP应用程序的组件这样的应用层组件来执行,以维持连接。该连接可能需要在如表示自从消息被最后一次发送以来已经过的时间量的时钟值超过超时值时候被维持。适当的超时数可通过如使用传输层的API来确定传输层的属性而确定,或者可由系统管理员来定义。该例程开始于方框502。在方框504处,该例程确定时钟值是否在超时值附近。若时钟值超过超时值,则该连接可能已经被关闭了。结果,超时值之前的某段时间应当被选择。若时钟值在超时值附近,则该例程继续到方框506。否则,该例程继续到方框508。在方框506处,该例程调用send_heartbeat(发送心跳)子例程,它发送可维持连接的消息。send_heartbeat子例程在下文相关图6来进一步描述。在方框508处,该例程返回到其调用者处。
sustain_connection例程可在与发送或接收消息的线程分离的线程循环中被重复调用。或者,sustain_connection例程可响应于在超时之前以某个指定时间间隔触发的时钟事件而被调用。
或者,sustain_connect例程可简单地以小于超时值的某个时间间隔发送心跳消息,而不论时钟值如何。例如,若代理服务器可在非活动状态一分钟之后超时,则该例程可每隔30秒发送一次心跳消息,即使消息在几秒钟之前已被发送或接收到。
图6是示出send_heartbeat(发送心跳)子例程的实施例的流程图。该子例程由诸如SIP应用程序的组件等应用层组件来执行,以发送心跳消息。该心跳消息可被发送,以维持若在一段时间内在连接中没有发送消息可被关闭的连接。该子例程开始于方框602,那里它接收会话指示作为参数。在方框604处,该子例程创建心跳消息。心跳消息是可被数据通信栈的一层所忽略但也许不能被数据通信栈的另一层所忽略的消息。例如,心跳消息可由SIP应用程序发送,以在TCP连接具有被处理两个具有打开的SIP会话的计算设备之间的消息的另一个计算设备(如代理服务器)关闭的风险时,维持TCP连接。心跳消息例如可仅包含CRLF字符。或者,心跳消息可包含以CRLF结束的一个或多个空格或制表符。若不使用CRLF,心跳消息也可使用回车或换行字符。对TCP层而言,这样的消息可以是有效消息,它在消息被发送或接收时复位时钟值。然而,SIP应用程序可忽略这样的消息。这样,通过发送这样的心跳消息,TCP连接可保持打开,SIP存在信息由此可保持准确,且没有任何无用信息被呈现给SIP应用程序。在另一个实施例中,仅回车或换行字符可在心跳消息中发送。
在方框606处,子例程调用send_message子例程,并将所创建的心跳消息作为参数传递给它。send_message子例程在上文相关图4描述。在方框608处,该子例程返回到其调用者处。
图7是示出receive_message(接收消息)子例程的实施例的流程图。该子例程可由接收者计算设备的应用层组件,如SIP应用程序的组件来执行。该子例程开始于方框702,那里它接收消息指示作为参数。在方框704处,该子例程确定接收到的消息是否为心跳消息。子例程可试图通过检查消息的内容是否仅是回车、换行或者两者兼有,来确定接收到的消息是否为心跳消息。或者,receive_message子例程可被定制,以寻找消息中已知为标识心跳消息的任何其它信息。若接收到的消息是心跳消息,则该子例程继续到方框706。否则,该子例程继续到方框708。在方框706处,该子例程可确认消息。通常,传输层确认消息。然而,在某些情况下,应用层组件可能需要确认消息。因为根据执行该子例程的应用层组件,这个步骤可以是可任选的,所以方框706被表示为虚线。在方框708处,该子例程可将消息转发到如SIP应用程序。在方框710处,该子例程返回到其调用者处。
一接收到消息,子例程就可复位时钟值(未示出),它可用于确定是否需要发送心跳消息以维持会话。
图8是示出一实施例中的消息流的消息流图。在所示的实施例中,计算设备1已经建立了与计算设备2的SIP会话。在会话中交换的消息经过代理服务器。例如,当计算设备1在时间0处发送消息1时,该消息经过代理服务器,且计算设备2在时间1处接收该消息。类似地,当计算设备2在时间2处发送消息2时,该消息在计算设备1在时间3处接收到它之前经过代理服务器。每当代理服务器转发或接收消息时,它可复位时钟。例如,当代理服务器转发消息1时,它将时钟值复位为0。类似地,当代理服务器接收到消息2时,它将时钟值复位到0。时钟值可例如响应于系统时钟而自动递增。若时钟值超过超时值,则代理服务器可关闭与会话相关联的连接。在所示的示例中,计算设备1也许无法在时钟值超过超时值之后发送消息3。
图9是示出一实施例中的消息流的消息流图。在所示的实施例中,计算设备1和2已经在时间0和3之间交换了消息1和2,如图8中所示并在上文中所解释的。在时间4处,计算设备1在识别出超时即将来临(图中用虚线表示)之后,可在时间5所表示的超时之前将心跳消息发送到计算设备2。在发送心跳消息之后,代理服务器可复位时钟,因此,计算设备1能够在时间6处发送消息3,这是因为代理服务器还没有关闭连接。通过在代理服务器超时之前发送心跳消息,系统能够维持计算设备1和2之间的连接。发送心跳消息的计算设备可能需要试图在心跳消息接收者的时钟值也不超过超时值的充足时间内发送心跳消息。
图10是示出一实施例中的消息流的框图。在所示的实施例中,发送者计算设备1000已经打开了与接收者计算设备1002的SIP会话。当发送者计算设备通过其应用/SIP层1004来发送SIP消息1时,传输层1006可将消息分割成两段S1和S2。为防止超时,发送者计算设备可发送心跳消息S3。该心跳消息可包含回车、换行,或者两者兼有,或者表示可被应用程序忽略的心跳消息这样的其它信息。然后,接收者计算设备可发送SIP消息2,它被传输层1016分割成传输消息S4、S5和S6。被分割的消息可以有各种大小。
在一实施例中,计算设备可在某些连接中发送心跳消息,并可将另一机制用于另一个连接来维持其连接。例如,计算设备可在将消息发送到其自己的“宿主(home)”服务器或与之相连的其它计算设备时使用心跳消息,这是因为宿主服务器能够将心跳消息与计算设备的连接相关联,并处存该关联指示。通过这样做,若连接随后丢失的话,服务器能够有效地更新计算设备的存在信息。计算设备可在这样做有利时在其它连接中发送REGISTER器消息。例如,计算设备可在中间设备不能转发心跳消息时发送REGISTER消息。
尽管这里讨论的特定示例涉及使用SIP和TCP,但是其它实施例可使用其它等效或类似的协议。
在其上实现维持会话连接的技术的计算设备可包括中央处理单元、存储器、输入设备(如键盘和定位设备)、输出设备(如显示设备)以及存储设备(如盘驱动器)。存储器和存储设备是计算机可读介质,它可包含实现安全系统的指令。另外,数据结构和消息结构可被储存或通过诸如通信链路上的信号等数据传输介质来发送。可使用各种通信链路,如因特网、局域网、广域网或者点对点拨号连接。
图1示出其中可实现维持会话连接的技术的合适操作环境的示例。该操作环境仅是合适操作环境的一个示例,并非暗示对本系统使用范围或功能的任何限制。适合使用的其它公知的计算系统、环境和配置包括个人计算机、服务器计算机、包括“智能”蜂窝电话的手持式或膝上型设备、多处理器系统、基于微处理器的系统、可编程消费者电子设备、网络PC、小型机、大型机、包括任何上面系统或设备的分布式计算环境,等等。
可在诸如由一个或多个计算机或其它设备执行的程序模块等计算机可执行指令的通用上下文中描述用于维持会话连接的技术。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,它们执行特定的任务或实现特定的抽象数据类型。通常,程序模块的功能可如各实施例中所需的被组合或分布。
如前述,应当认识到,为说明的目的,此处已经描述了本发明的具体实施例,但是在不背离本发明的精神和范围的前提下,可做出不同的修改。因此,本发明只受到所附权利要求书的限制。
Claims (35)
1.一种由计算设备执行用于维持会话连接的方法,包含:
使用第一协议打开与第二计算设备的会话,所述会话具有连接;以及
使用第二协议发送心跳消息,其中,所述第一协议由数据通信栈中高于所述第二协议的较高层使用,所述心跳消息是所述第二协议的有效消息,但可被所述第一协议忽略,并且发送所述心跳消息维持所述会话连接。
2.如权利要求1所述的方法,其特征在于,所述心跳消息包含回车和换行。
3.如权利要求1所述的方法,其特征在于,所述心跳消息在消息时钟到期之前被发送。
4.如权利要求3所述的方法,其特征在于,所述消息时钟测量自从前一消息被发送或接收以来已经过的时间。
5.如权利要求3所述的方法,其特征在于,所述消息时钟涉及由数据通信栈的传输层发送或接收的消息。
6.如权利要求1所述的方法,其特征在于,所述第一协议是会话发起协议。
7.如权利要求6所述的方法,其特征在于,所述第二协议是传输控制协议。
8.如权利要求6所述的方法,其特征在于,所述第二协议是TCP/IP。
9.如权利要求1所述的方法,其特征在于,所述心跳消息被周期性地发送,其中,所述周期性是超时值的函数。
10.如权利要求1所述的方法,其特征在于,所述心跳消息在缺少所述第一协议的消息时被发送。
11.一种计算可读介质,其内容促使计算系统执行一种方法,所述方法包含:
使用第一协议来打开与第二计算设备的会话,所述会话具有连接;
使用所述第一协议来发送消息,其中,所述消息被传输层分割成第二协议的一组消息;以及
使用第二协议来发送心跳消息,其中,所述第一协议由数据通信栈中高于所述第二协议的较高层使用,所述心跳消息是所述第二协议的有效消息,但是它不能被提供到使用所述第一协议的应用程序,而且发送所述心跳消息维持所述会话连接。
12.如权利要求11所述的计算机可读介质,其特征在于,所述心跳消息在使用所述第一协议发送消息之后经过了一段时间时被发送。
13.如权利要求11所述的计算机可读介质,其特征在于,所述心跳消息被周期性地发送,其中,所述周期性是超时值的函数。
14.如权利要求11所述的计算机可读介质,其特征在于,所述心跳消息包含回车和换行。
15.如权利要求11所述的计算机可读介质,其特征在于,所述心跳消息在消息时钟过期之前被发送。
16.如权利要求15所述的计算机可读介质,其特征在于,所述消息时钟测量自从前一消息被发送或接收以来已经过的时间。
17.如权利要求15所述的计算机可读介质,其特征在于,所述消息时钟涉及由数据通信栈的传输层发送或接收的消息。
18.如权利要求11所述的计算机可读介质,其特征在于,所述第一协议是会话发起协议。
19.如权利要求18所述的计算机可读介质,其特征在于,所述第二协议是传输控制协议。
20.如权利要求18所述的计算机可读介质,其特征在于,所述第二协议是TCP/IP。
21.如权利要求11所述的计算机可读介质,其特征在于,所述心跳消息在缺少所述第一协议的消息时被发送。
22.一种用于维持会话连接的系统,包含:
接收消息的组件;以及
确定所接收到的消息是否为心跳消息的组件,其中,所述心跳消息是较低层协议的有效消息,但是它对较高层协议没有效果;以及,当所接收到的消息不是心跳消息时,转发所述消息。
23.如权利要求22所述的系统,其特征在于,所述心跳消息在接收到较高层协议的消息之后经过了一段时间时被接收到,所述时间段少于超时值。
24.如权利要求22所述的系统,其特征在于,所述心跳消息被周期性地接收,其中,所述周期性是超时值的函数。
25.如权利要求22所述的系统,其特征在于,所述心跳消息包含回车和换行。
26.如权利要求22所述的系统,其特征在于,所述心跳消息在消息时钟过期之前被接收到。
27.如权利要求26所述的系统,其特征在于,所述消息时钟测量自从前一消息被发送或接收以来已经过的时间。
28.如权利要求26所述的系统,其特征在于,所述消息时钟涉及由数据通信栈的传输层发送或接收的消息。
29.如权利要求22所述的系统,其特征在于,所述较高层协议是会话发起协议。
30.如权利要求29所述的系统,其特征在于,所述较低层协议是传输控制协议。
31.如权利要求29所述的系统,其特征在于,所述较低层协议是TCP/IP。
32.如权利要求22所述的系统,其特征在于,所接收到的消息在其不是心跳消息时使用较高层协议被转发到应用程序。
33.如权利要求22所述的系统,其特征在于,所述心跳消息包含空白字符。
34.如权利要求33所述的系统,其特征在于,所述空白字符是换行。
35.如权利要求33所述的系统,其特征在于,所述空白字符是回车。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/881,251 | 2004-06-30 | ||
US10/881,251 US7962623B2 (en) | 2004-06-30 | 2004-06-30 | Sustaining session connections |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101621439A Division CN102209119B (zh) | 2004-06-30 | 2005-06-30 | 维持会话连接 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1716964A true CN1716964A (zh) | 2006-01-04 |
CN1716964B CN1716964B (zh) | 2011-07-27 |
Family
ID=35058467
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005100822609A Active CN1716964B (zh) | 2004-06-30 | 2005-06-30 | 维持会话连接 |
CN2011101621439A Active CN102209119B (zh) | 2004-06-30 | 2005-06-30 | 维持会话连接 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101621439A Active CN102209119B (zh) | 2004-06-30 | 2005-06-30 | 维持会话连接 |
Country Status (5)
Country | Link |
---|---|
US (4) | US7962623B2 (zh) |
EP (1) | EP1613019B1 (zh) |
JP (2) | JP5318319B2 (zh) |
KR (1) | KR101109276B1 (zh) |
CN (2) | CN1716964B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101895411A (zh) * | 2009-05-18 | 2010-11-24 | 华为技术有限公司 | 会话管理的方法和设备 |
CN102684949A (zh) * | 2012-06-04 | 2012-09-19 | 北京神州泰岳软件股份有限公司 | 一种长连接下心跳数据包的处理方法、装置和客户端 |
WO2012167464A1 (zh) * | 2011-07-01 | 2012-12-13 | 华为技术有限公司 | 心跳消息发送方法和心跳代理服务器 |
CN102891772A (zh) * | 2011-07-18 | 2013-01-23 | 鸿富锦精密工业(深圳)有限公司 | 网卡性能测试方法及系统 |
CN101473630B (zh) * | 2006-06-16 | 2013-09-04 | 卢森特技术有限公司 | 用于建立对等会话的方法、装置和体系架构 |
Families Citing this family (39)
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 |
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 (zh) * | 2006-10-10 | 2007-04-11 | 华为数字技术有限公司 | 保活nat设备中会话表项的方法和系统 |
EP1928143B1 (en) * | 2006-11-30 | 2009-03-11 | Research In Motion Limited | System and method for maintaining 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 (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 |
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 | 华为技术有限公司 | 心跳消息的处理方法、心跳周期的获取方法及接入网设备 |
GB2493129B (en) * | 2011-07-11 | 2018-07-04 | Metaswitch Networks Ltd | Method and system for managing a sip server |
JP5765123B2 (ja) | 2011-08-01 | 2015-08-19 | 富士通株式会社 | 通信装置、通信方法、通信プログラム及び通信システム |
US10198716B2 (en) * | 2011-11-11 | 2019-02-05 | Microsoft Technology Licensing, Llc | User availability awareness |
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 |
EP3688941A1 (en) * | 2017-09-26 | 2020-08-05 | Nokia Technologies Oy | Method, apparatus, computer program product and computer program |
EP4218207A1 (en) * | 2020-09-21 | 2023-08-02 | 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 (ja) * | 1999-03-05 | 2004-08-04 | エヌ・ティ・ティ・コムウェア株式会社 | 通信回線警報通知装置及び通信回線警報通知方法 |
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 |
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 |
AU2043501A (en) * | 1999-11-17 | 2001-05-30 | 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 |
DE50013978D1 (de) | 2000-09-22 | 2007-03-08 | Siemens Ag | Anordnung zur Prüfung der Erreichtbarkeit eines Clients |
JP4212230B2 (ja) * | 2000-10-31 | 2009-01-21 | 富士通株式会社 | メディア通信システム及び該システムにおける端末装置 |
EP1241847A1 (de) * | 2001-03-13 | 2002-09-18 | Siemens Aktiengesellschaft | Übermittlung von Informationen mit einer verifizierten QoS in einem Kommunikationsnetz |
US20030023730A1 (en) * | 2001-07-27 | 2003-01-30 | Michael Wengrovitz | Multiple host arrangement for multimedia sessions using session initiation protocol (SIP) communication |
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 |
JP4238213B2 (ja) * | 2002-07-29 | 2009-03-18 | アイピートーク株式会社 | インターネット通信システム及びインターネット通信方法及びセッション管理サーバ及び無線通信装置及びプログラム |
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 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | ワイヤレス移動網においてパケットデータリンクの再ネゴシエーションを低減する方法および装置 |
US7483437B1 (en) * | 2003-11-20 | 2009-01-27 | Juniper Networks, Inc. | Method of communicating packet multimedia to restricted endpoints |
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 |
-
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/ja not_active Expired - Fee Related
- 2005-06-28 KR KR1020050056256A patent/KR101109276B1/ko active IP Right Grant
- 2005-06-30 CN CN2005100822609A patent/CN1716964B/zh active Active
- 2005-06-30 CN CN2011101621439A patent/CN102209119B/zh active Active
-
2011
- 2011-06-13 US US13/159,146 patent/US8364774B2/en active Active
-
2012
- 2012-07-27 JP JP2012167317A patent/JP5518954B2/ja 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
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101473630B (zh) * | 2006-06-16 | 2013-09-04 | 卢森特技术有限公司 | 用于建立对等会话的方法、装置和体系架构 |
CN101895411A (zh) * | 2009-05-18 | 2010-11-24 | 华为技术有限公司 | 会话管理的方法和设备 |
CN101895411B (zh) * | 2009-05-18 | 2013-11-06 | 华为技术有限公司 | 会话管理的方法和设备 |
WO2012167464A1 (zh) * | 2011-07-01 | 2012-12-13 | 华为技术有限公司 | 心跳消息发送方法和心跳代理服务器 |
CN103119896A (zh) * | 2011-07-01 | 2013-05-22 | 华为技术有限公司 | 心跳消息发送方法和心跳代理服务器 |
CN102891772A (zh) * | 2011-07-18 | 2013-01-23 | 鸿富锦精密工业(深圳)有限公司 | 网卡性能测试方法及系统 |
CN102684949A (zh) * | 2012-06-04 | 2012-09-19 | 北京神州泰岳软件股份有限公司 | 一种长连接下心跳数据包的处理方法、装置和客户端 |
CN102684949B (zh) * | 2012-06-04 | 2015-02-04 | 北京神州泰岳软件股份有限公司 | 一种长连接下心跳数据包的处理方法、装置和客户端 |
Also Published As
Publication number | Publication date |
---|---|
US7962623B2 (en) | 2011-06-14 |
US8364774B2 (en) | 2013-01-29 |
US9560086B2 (en) | 2017-01-31 |
US20060020707A1 (en) | 2006-01-26 |
CN1716964B (zh) | 2011-07-27 |
JP2012257288A (ja) | 2012-12-27 |
EP1613019A1 (en) | 2006-01-04 |
EP1613019B1 (en) | 2017-04-19 |
US20110246595A1 (en) | 2011-10-06 |
KR20060048616A (ko) | 2006-05-18 |
KR101109276B1 (ko) | 2012-01-30 |
CN102209119B (zh) | 2013-03-13 |
JP5318319B2 (ja) | 2013-10-16 |
US20130144965A1 (en) | 2013-06-06 |
JP5518954B2 (ja) | 2014-06-11 |
CN102209119A (zh) | 2011-10-05 |
US20130151717A1 (en) | 2013-06-13 |
JP2006020301A (ja) | 2006-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1716964B (zh) | 维持会话连接 | |
US6678735B1 (en) | Method and apparatus for a sip client manager | |
US7469299B2 (en) | Bridging user agent and a proxy server for supporting network services | |
US7734705B1 (en) | System and method for flexibly managing heterogeneous message delivery | |
CN1578278B (zh) | 即时消息的传输系统 | |
CN1700680B (zh) | 使用服务器池时有效的消息路由 | |
WO2002003217A1 (en) | System, method, and computer program product for resolving addressing in a network including a network address translator | |
US8351423B2 (en) | Page-mode messaging | |
CN1819585A (zh) | 用于对会话施加限制的方法和系统 | |
EP1139631A1 (en) | Method of initiating a data transfer from a server to a client | |
CN101080041A (zh) | 一种通讯系统中建立通讯业务连接的方法 | |
US8224975B1 (en) | Web service initiation protocol for multimedia and voice communication over internet protocol | |
US20070041402A1 (en) | Handling protocol non-compliant messages | |
US20080137647A1 (en) | VoIP terminal and method for providing multi-call service | |
Gehlen et al. | Mobile P2P web services using SIP | |
CN1747456A (zh) | 对于路由信息减少存储需求 | |
KR101128912B1 (ko) | 인터넷 망을 이용하여 음성을 전송하는 시스템에서의 메세지 데이터 구조 | |
KR100636279B1 (ko) | 브이오아이피 시스템의 자원정보를 이용한 호제어 시스템및 그 방법 | |
IONESCU | An Enriched Finite State Machine Model-based Formalism for Layer-5 Internet Protocols Modelling–An Investigation on Protocol Performance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150506 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150506 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |