首页> 中国专利> 用于管理面向连接的按序传送环境中的连接的方法和系统

用于管理面向连接的按序传送环境中的连接的方法和系统

摘要

本发明提供了在按序传送环境中的客户端和服务器之间建立连接的方法和系统。公开的系统和方法包括:客户端,所述客户端配置成通过发送第一类型消息到服务器来请求建立连接;和服务器,所述服务器配置成通过把第二类型消息发送到客户端来确认能够建立连接,该第二类型消息使服务器被连接。第一类型消息启动第一客户端计时器,所述第一客户端计时器测量作为第一最大应答时间的第一预定时间段,以及第二类型消息或数据消息的接收使第一客户端计时器停止。所述连接通过发送第三类型消息被关闭。

著录项

  • 公开/公告号CN102648612A

    专利类型发明专利

  • 公开/公告日2012-08-22

    原文格式PDF

  • 申请/专利权人 意法爱立信有限公司;

    申请/专利号CN201080054350.6

  • 申请日2010-09-30

  • 分类号H04L29/06;

  • 代理机构北京同达信恒知识产权代理有限公司;

  • 代理人黄志华

  • 地址 瑞士普朗莱乌特

  • 入库时间 2023-12-18 07:51:02

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-09-17

    未缴年费专利权终止 IPC(主分类):H04L29/06 授权公告日:20150114 终止日期:20180930 申请日:20100930

    专利权的终止

  • 2015-01-14

    授权

    授权

  • 2012-11-14

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20100930

    实质审查的生效

  • 2012-08-22

    公开

    公开

说明书

相关申请的交叉引用和优先权声明

本申请为2009年9月30日提出的名称为“METHOD AND SYSTEM FORMANAGING A CONNECTION IN A CONNECTION ORIENTED IN-ORDERDELIVERY ENVIRONMENT”的第12/571018号美国正式专利申请的部分继续申请。第12/571018号正式专利申请转让给本申请的受让人,且其全文以引用方式并入本申请。本申请由此根据美国法典第35卷第119条e款要求第12/571018号美国正式专利申请的优先权。

技术领域

本发明涉及用于多元件系统中的元件之间通信的方法和系统,所述多元件系统中的元件由特征为按序传送可传输项的网络互相连接。

背景技术

在当前开发的高度集成系统中,高带宽通信能力作为性能需求的先决条件。此外,遵循第二源原则的系统开发者必须能够从任何制造商选择他的设计中的元件并同时要求这些元件完美地交互操作。这导致形成标准化组织,该标准化组织由多个从事该领域的制造商建立,定义了用于元件以及元件互相通信的标准。一个这样的标准化组织为移动产业处理器接口联盟目前,该组织由大约150个从事移动系统互相通信具体工作的制造商组成。在万维网http://www.mipi.org/可以得到一些信息。

为了使元件间通信标准化,联盟已经规定了UniProSM作为用于移动系统中的连接器件的高速串行链路。UniProSM标准在稳步发展,且目前已发布了标准版本1.0。可以在万维网上的http://en.wikipedia.org/wiki/Unipro的网络百科全书中得到关于该标准的各个版本特点的一些信息。

通过提供互连通信标准,制造商在开发他们的系统时更加灵活,且能够将很好地满足不同需求且由不同供应商提供的元件进行混合以及匹配。UniPro标准或统一协议针对利用高速串行链路的芯片到芯片(chip-to-chip)的网络。其被规定为通用的通信协议,解决例如错误处理、流控制、路由选择和仲裁的一般互连问题。

当前UniPro提供了面向连接的通信,这种通信要求建立连接并同时分配状态和例如缓冲区的其它资源。通常,连接实现了信任端到端流控制以防止通信中涉及的缓冲区溢出。结合保证无数据丢失或误码的可靠网络的使用,这向用户确保了可靠的通信服务。

关于UniPro的未来发展,可预测到的版本提供实时通信类别,因此限制第2层重传的次数,由此通过牺牲数据传送本身的保证来确保对数据包的传送进行时间限制,因为限制第2层重传的次数使数据片段不被传送的几率非常小。当UniPro应用程序的较高层接收相应的报告时,其将必须考虑丢失的片段。基于面向连接通信的可靠的实时通信类别需要启动、保持和终止连接的协议。目前,从传输控制协议TCP,可知三次握手。细节在以下文献中公布:“transmissioncontrol protocol-DARPA internet program protocol specification”,信息科学研究所,南加州大学,IETF RFC(request for comments,请求注解)#793,1981年9月。然而,TCP非常不同于统一协议,这是由于TCP必须应对网络固有的高度不可靠性并因此需要在协议中采取预防措施以应付这样的不可靠性。TCP还假定数据传送没有次序,因为例如数据包可使用网络中的不同路径。因此,TCP使用非常大的顺序号和最大包生存时间以确保连接的管理。然而,UniPro大多在通常达10个节点的小型网络中工作且提供按次序的通信。因此,与使用普通协议相比,UniPro可以使用较少的开销并实现简单性而不放弃功能。

现有技术还已知ATM(异步转移模式)连接设置,其在以下文献中的ITU-TQ.2931中公开:B-ISDN Application protocols for access signalling,ITU-TRecommandation Q.2931,1995年2月。相关的连接设置使用类似于TCP中使用的利用顺序号的机制,所述顺序号在ATM中被称为参考号(reference),然而,ATM也基于大的顺序号,这产生消息开销并因此占用通信通道的带宽。

发明内容

本发明目的是提供一种用于管理面向连接的按序传送环境中的连接的替代方法和系统,其实现适当地分配资源并用最小的消息开销建立和终止连接。

通过一种用于管理面向连接的按序传送环境中的连接的方法解决了该问题,其中:

a)客户端通过发送第一类型消息(1140)到服务器请求建立连接;

b)服务器通过发送第二类型消息到客户端来确认能够建立连接,该第二类型消息使服务器被连接;

c)其中发送第一类型消息启动第一客户端计时器,第一客户端计时器测量作为第一最大应答时间的第一预定时间段,且接收该第二类型消息或数据消息使第一客户端计时器停止;以及

d)其中通过发送第三类型消息关闭连接。

本发明还提供一种用于管理面向连接的按序传送环境中的连接的系统,包括:

服务器,客户端,利用按序传送的网络;其中服务器适于执行上述方法的与服务器关联的任一动作,以及客户端适于执行上述方法的与所述客户端关联的任一动作。

本发明包括计算机程序产品,该计算机程序产品用于在服务器、客户端和路由器等上执行的本发明的任一方法。

本发明还包括存储上文所述计算机程序产品的非临时性机可读信号存储介质。例如,该非临时性机可读信号存储介质可以为例如CDROM或DVDROM的光盘、或者磁带存储器、例如硬盘或软磁盘的磁盘存储器、例如USB记忆棒的固态存储器或闪速存储器等。

有利地,本发明的其他实施方式在附属方面中给出。

便利地,根据本发明的方法提供了最少数量的消息和防止服务器丢失(dropping)第一消息。采用这种方式,尽管使用可靠的网络,但是该方法防止正忙的服务器例如由于处理一连接而不具有用于处理另一连接的可用资源。

便利地,根据本发明的方法的另一实施方式,如果第一预定时间段期满,则另一第一类型消息被发送到服务器以保证在最短的可能时间内建立连接,且同时处理由服务器在第一传输中的第一类型消息的丢失,同时允许服务器足够量的处理时间。

有利地,根据本发明的方法的另一实施方式,接收第二类型消息致使客户端被连接,而发送第四类型消息允许该方法处理不可靠的网络或实时通信类别以与已经接收到确认消息的服务器通信。

有利地,根据本发明的方法的另一实施方式,以从服务器到客户端的第二类型消息的形式的确认消息由第一服务器计时器保护,该第一服务器计时器测量第二预定时间段以防止连接建立中丢失该消息,而从客户端接收第四类型消息使第一服务器计时器停止,该第四类型消息确认来自服务器的该确认消息已被接收。采用这种方法,最小数量的消息保证了连接的安全建立。

便利地,根据本发明的方法的另一实施方式,如果服务器由于处理另一连接或另一应用程序的高处理负荷而没有可用资源,因而不能建立连接,则服务器产生第五类型消息且将第五类型消息发送到客户端。当该消息在客户端被接收时,有利地,该消息允许客户端关闭连接且因此提供了在服务器不可用时则使客户端处在已定义状态的方法。

有利地,根据本发明的方法的另一实施方式,当第三类型消息被发送时,测量第三预定时间段的第二客户端计时器被启动,以确保定义的连接终止,并且一旦在第三预定时间段中没有接收到对该第三类型消息的应答则采取合适措施。

便利地,根据本发明的方法的另一实施方式,当服务器接收第三类型消息时,其发送第六类型消息到客户端以便确认第三类型消息的接收,因此确保了关闭结构化处理和连接建立和终止的管理。

便利地,根据本发明的方法的另一实施方式,一旦不可靠的网络用于传送消息,则第六类型消息的发送启动第二服务器计时器以保护在该情况中与客户端的安全通信,所述不可靠网络对应地为具有用于实时通信的通信类别的网络。

便利地,根据本发明的方法的另一实施方式,一旦客户端接收第六类型消息且因此获知服务器正在关闭连接,则第二客户端计时器停止,同时第七类型消息被发送到服务器以便确认第六类型消息的接收并确保服务器和客户端处于定义的状态。

有利地,根据本发明的方法的另一实施方式,在客户端和服务器之间交换的任一消息能够通过路由器,以增强客户端和服务器之间的通信灵活性,同时允许根据应用(相应地为通信类别)来定义用于连接的所请求的带宽。同时,路由器设置成一旦所需带宽为可用的,才转发接收的消息。

便利地,根据本发明的方法的另一实施方式,一旦路由器可用来提供所请求的带宽,则其还保护带宽分配,直到其从客户端所定址的服务器接收确认消息为止,同时拒绝来自其它服务器和客户端的通信。采用这种方法,防止带宽分配由其他可能的通信伙伴访问。

有利地,根据本发明的方法的另一实施方式允许客户端由应用客户端定址,在客户端发起消息,同时服务器与应用服务器通信且因此通过客户端和服务器交换用于建立通信的消息来在应用服务器和应用客户端之间建立连接,以便借助在应用服务器和应用客户端之间所建立的连接提供数据交换。

有利地,根据本发明的系统提供了服务器和客户端以及按序传送的一网络,该网络以最小配置以执行根据本发明的方法的动作。

有利地,根据本发明的系统的另一实施方式提供一路由器,该路由器用来扩展灵活性和客户端和服务器之间的通信距离,同时利用根据本发明的方法的实施方式。

有利地,根据本发明的系统的另一实施方式,在通信期间没有同时使用的确认消息仅被保存为一种格式的一个信息,且在通信过程中在服务器(对应地客户端)处提供正确的活动。同样,不同时运行的客户端计时器和服务器计时器也仅作为相应地一个服务器计时器和一个客户端计时器实现,相应地一个服务器计时器和一个客户端端计时器在需要时被启动并随后实现根据本发明及其实施方式的方法的在消息交换中的对应的第一和第二服务器计时器、第一和第二客户端计时器。

附图说明

基于附图中说明的示例,在下文将进一步描述本发明的实施方式的示例。其中

图1示出发生在可靠网络中的典型消息交换;

图2示出在可靠的网络中的状态和状态转换的示例的状态机;

图3示出在可靠的网络中服务器的状态和状态转换的示例;

图4示出在不可靠的网络中作为示例的消息流;

图5示出在不可靠的网络中作为客户端示例的状态和状态转换;

图6示出在不可靠的网络中服务器的状态和状态转换的示例;

图7示出在服务器和路由器端之间的消息流和包括带宽分配的路由器的示例;

图8示出在不可靠的网络中在客户端和服务器之间的消息流的示例,其中消息通过路由器;

图9示出在消息流中含有路由器的不可靠网络中作为客户端示例的状态和状态转换;

图10示出在消息流中含有路由器的不可靠网络中作为服务器示例的状态和状态转换;

图11示出作为在不可靠的网络中在客户端和服务器之间的在消息流中含有的路由器的示例的状态和状态转换;

图1 2示出当服务器为忙时在不可靠的网络中在客户端和服务器之间的消息交换的示例;

图1 3示出当第一类型消息丢失时在客户端和服务器之间的消息交换的示例;

图14示出当第二类型消息丢失时在客户端和服务器之间的消息交换的示例;

图15示出当服务器应用程序已经崩溃时在客户端和服务器之间的消息流的示例;

图16示出当服务器为忙时的在不可靠的网络中在客户端和服务器之间的消息流的示例;

图17示出当协议错误发生时在不可靠的网络中在客户端和服务器之间的消息流的示例;

图18示出在含有路由器的不可靠的网络中发生第一错误的示例;

图19示出作为在路径上含有路由器的在客户端和服务器之间的通信中发生的示例的第二错误;

图20示出在客户端和服务器之间具有路由器的发生通信错误的第三示例;

图21示出在客户端和服务器之间的通信中发生的通信错误的第四示例,消息交换经过路由器;

图22示出在不可靠的网络中作为示例的另一消息流;以及

图23示出在不可靠的网络中作为示例的另一消息流。

具体实施方式

将根据具体实施方式并结合附图描述本发明,但本发明不限于此,而仅由权利书要求限制。所述附图仅为示意性的而非限制性的。在附图中,出于说明目的,一些元件的尺寸可以被放大且没有按比例绘制。

在涉及如图2、图3、图5、图6、图9、图10和图11中的状态机的全部的附图描述中,为了效率,使用以下表述来说明状态转换的触发和由此产生的事件:

如<触发>/<动作>这一格式用于状态机中的标记。这里的<触发>充当输入触发的占位符,该输入触发作为引起对应事务的触发。此外,<动作>作为用于与所述事务相关的一组结果事件的占位符。

本说明书和权利要求书中使用了术语“包括”,该术语不排除其它元件或步骤。此外,在说明书和权利要求书中的术语“第一”、“第二”、“第三”等用于区分类似元件,而不一定用来描述顺序或时间次序。应该理解,在合适情况下这样的术语是可以互换的,以及本文所述的发明的实施方式能够以与本文描述或说明的实施方式不同的顺序进行。

图1示出根据本发明的实施方式的用于在可靠的网络中进行连接管理的消息流的示例。在全部的附图讨论中,相同的附图标记在所有的附图中将用于相同的实体且出于效率考虑将省略所述实体的多余的描述。

图1例证了应用客户端1000使用可靠的网络与客户端1100、服务器1200和应用服务器1300进行通信。所述网络可以是简单的链路,或可含有一个或多个路由器。然而,为了简化,在图1中没有示出路由器。应用客户端1000发送消息“T_OPEN.req”1010到此时处于“C_Closed”1130这一状态中的客户端1100,以启动连接的建立。在客户端1100处,一旦第一类型消息“T_SYN”1140被发送到此时处于“S_Listen”状态中的服务器1200,则第一计时器启动。服务器产生消息“T_OPEN.ind”1310到应用服务器1300,如果应用服务器1300能够处理数据,则向服务器回复消息“T_OPEN.rsp”1320。服务器1200用第一服务器计时器测量消息1310和消息1320之间的时间间隔,此时服务器1200为状态“S_WaitRsp”1220。当接收到消息1320时,第一服务器计时器停止,第一服务器计时器测量第二预定时间段,第二类型消息“T_SYN.Ack”1150被发送到客户端1100,使第一客户端计时器停止且产生消息“T_OPEN.cnf”1020,所述第一客户端计时器是在状态“C_WaitAck”1120中产生消息1140时启动的。此时在状态“S_Connected”1230中的服务器1200被连接。此时应用客户端开始发送用于数据传输的请求“T_DATA.req”1030,该请求由客户端1100用确认消息“T_DATA.cnfL”1040确认。服务器1200接收传输的数据“T_DATA”1160并把来自应用客户端的数据“T_DATA.ind”1330发送到应用服务器,应用服务器用消息“T_DATA.rspL”1340进行应答,使服务器处于“S_Connected”状态并使客户端在“T_Connected”状态1110。

应用服务器也可请求数据,这通过以下步骤进行:将消息“T_DATA.req”1350发送到服务器1200,该消息“T_DATA.req”被作为消息“T_DATA”1160转发到客户端1100,接着消息“T_DATA”1160从客户端1100作为消息“T_DATA.ind”1050转发到应用客户端,消息“T_DATA.ind”1050促使应用客户端用消息“T_DATA.rspL”1060应答处于“C_Connected”状态1110的客户端1100。

为了终止连接,应用客户端发送消息“T_CLOSE.req”1070,消息“T_CLOSE.req”1070由客户端1100用消息“T_CLOSE.cnfL”1080确认,客户端1100产生第三类型消息“T_FIN”1170并将其发送到服务器1200,服务器1200用连接关闭指示“T_CLOSE.ind”1370应答应用服务器1300,“T_CLOSE.ind”1370由服务器1300用消息“T_CLOSE.rspL”1380确认,使服务器转移到状态“S_Listen”1240。可替换地,当关闭连接由应用服务器1300用消息“T_CLOSE.req”1070(通过消息“T_CLOSE.cnfL”1080确认)请求并用消息“T_CLOSE.ind”1370(用消息“T_CLOSE.rspL”1380应答)指示时,由服务器1200发送消息“T_FIN”1170,可以关闭连接。通常,在实施方式中说明的相应的消息流可以关于服务器和客户端反向,即,服务器和客户端可以互换。

客户端保持在状态“C_Closed”1130中。虽然可靠的网络形成了通信的基础,但消息1140和消息1150之间仍需要计时器,这是由于如果服务器没有资源用来处理第一类型消息1140,则该消息可能被服务器丢失。消息1310和消息1320之间的计时器由服务器操作,该计时器测量第二预定时间段并选择性地用来监控应用服务器处的通信中所需要的应用程序是否已崩溃或由于另外原因不可用。

为了方便,客户端1100应该提供用于接收消息1150的资源,消息1150倾向于在发送消息1140之后到达。采用这种方式,有利的是,在服务器1200处不需要计时器监控消息1150的正确传输。类似地,客户端1100和/或服务器1200应该提供用于接收/处理消息1170的资源。采用这种方式,消息1170的发送者不需要计时器来防止消息1170的传输损失。

图2示出与图1中所示的消息流相关的状态机,其作为客户端可以采用的状态和状态转换的示例。

为了进一步说明该说明书中状态机的表示法,给出了结合图2的示例,然而其也可以以类似的方式应用于表示状态机的其它附图。

在本文图2中,从状态1130到状态1120的客户端转换2100是通过从应用客户端1000接收到T_OPEN.req(我的_服务器(my_server))触发的,且还引起将T_SYN(到:我的_服务器)发送到服务器1200并且启动客户端1100的Timer_SYN(计时器_SYN)。根据以上表示法,这表示成2100:T_OPEN.req(我的_服务器)/T_SYN(到:我的_服务器),启动Timer_SYN。

就另一个示例而言,用于转换2200的触发事件为Timer_SYN期满,该触发事件还引起将T_SYN(到:我的_服务器)传输到服务器1200并重新启动客户端1100的Timer_SYN。这表示成2200:Timer_SYN超时/T_SYN(到:我的_服务器),重启Timer_SYN。

在状态1130中的客户端可以转换到状态“C_WaitSynAck”1120,该转换对应于2100:T_OPEN.req(我的_服务器)/T_SYN(到:我的_服务器),启动Timer_SYN。客户端保持在状态1120中,这对应于2200:Timer_SYN超时/T_SYN(到:我的_服务器),重启Timer_SYN;然而,根据2150:T_SYN_ERR(从:我的_服务器)/T_OPEN.cnf(错误),停止Timer_SYN,客户端转换回状态1130。从状态1120到状态“C_Connected”1110的转换的发生根据2300:T_SYN_ACK(从:我的_服务器)/T_OPEN.cnf(ok),停止Timer_SYN或者2300:T_DATA(从:我的_服务器)/T_OPEN.cnf(ok),停止Timer_SYN,T_DATA.ind,然而对应于2400:T_DATA.req/T_DATA(到:我的_服务器),或2400:T_DATA(从:我的_服务器)/T_DATA.ind客户端保持在状态1110中,以及通过2500:T_CLOSE.req()/T_CLOSE.cnf,T_FIN(到:我的_服务器),保持在状态1110的客户端转换成状态1130。

图3示出作为状态与状态转换的示例的状态机,服务器可以在图1中所示的消息流的环境中运用。

示出了状态“S_WaitCloseRspE”3220、状态“S_Error”3420、状态“S_WaitOpenRsp”1220、状态“S_Connected”1230以及另外的状态“S_WaitCloseRsp”3320和状态“S_Listen”1210。

通过3350:T_SYN(从:我的_客户端)/T_OPEN.ind(我的_客户端),启动Timer_Rsp,发生从状态1210到状态1220的转换;通过3200:Timer_Rsp超时/停止Timer_Rsp,T_SYN_ERR(到:我的_客户端),发生从状态1220到状态3420的转换;以及,对应于3300:T_OPEN.rsp()/停止Timer_Rsp,T_SYN_ACK(到:我的_客户端),发生从状态1220到状态1230的转换。根据3100:T_OPEN.rsp()/T_CLOSE.ind(),发生从状态3420到状态3220的状态转换。

从状态1230到状态3320发生的另外的转换对应于3450:T_FIN(从:我的_客户端)/T_CLOSE.ind;以及通过3550:T_CLOSE.rsp/T_FIN(到:我的_客户端),发生从状态3320到状态1210的转换。通过事件3650:T_LISTEN.req/-,状态1210被初始触发。根据转换3150:T_SYN(从:任何_客户端)/T_SYN_ERR(到:任何_客户端),服务器保持在状态3420。根据转换3400:T_DATA.req(数据)/T_DATA(到:我的_客户端,数据),或3400:T_DATA(从:我的_客户端,数据)/T_DATA.ind(数据),或3400:T_SYN(从:我的_客户端)/T_SYN_ACK(到:我的_客户端)或3400:T_SYN(从:其他_客户端)/T_SYN_ERR(到:其他_客户端),服务器保持状态1230。根据转换3500:T_DATA.req(数据)/T_DATA(到:我的_客户端,数据),或3500:T_SYN(从:其他_客户端)/T_SYN_ERR(到:其他_客户端),服务器保持在状态3320。

例如,在状态3320中,服务器仍能够发送数据,但将不从客户端接收任何额外数据。

图4示出在不可靠的网络中发生的根据本发明的实施方式的消息流的示例,该不可靠的网络相应地是限制第2层重传的数量的网络。

与图1相比可以容易地识别出,所交换的大多数消息是相同的。由于该事实,重点放在消息流的差异上,该差异把可靠的网络中需要的消息与在不可靠的网络中建立连接所需的消息区分开。如果是不可靠的网络,优选地,提供额外的计时器和消息以补偿不可靠性和确保连接的建立。在该情况下,客户端1100产生第四类型消息“T_ACK_ACK”4150。如果是不可靠的网络引导消息流,则提供该第四类型消息,以监控第二类型消息1150的正确传输。第四类型消息的正确和及时传输通过运行在服务器1200处的第二服务器计时器评估,同时服务器1200处于“S_WaitSynAck”状态7510中。在该情况下,客户端在已发送第四类型消息4150之后,转换成“C_Connected”状态4110。

该消息流的另一特点在于连接的终止,其中,在终止连接期间通过计时器监控对第三类型消息1170的正确应答,同时,客户端本身处于“C_WaitFinAck”状态4110中。一旦从服务器1200接收到确认终止连接的第六类型消息“T_FIN_ACK”4170,则第二客户端计时器停止。

如果基于不可靠的网络传输消息,则链路可能丢弃数据包。对于具有有限的重传数目(例如0或1)以限制消息传送时间的通信类别,情况可能如此。由于该过程,片段或整个消息将不定期地丢失,或者传递消息时,其有效载荷中具有已知错误。因此连接管理消息也可能被丢弃而未处理。具体而言,在此,来自服务器的第二类型消息1150应该优选被保护,因为在因丢失而产生的错误情况中,在起初忙且随后可提供第二类型消息1150之后,服务器保持在状态“S_Connected”1230。

这可能导致这样一种情况,即,服务器呈现为已连接且开始发送数据到未被连接的且因此未准备好接收数据的客户端。

图5示出一状态机,该状态机描述与图4所示的消息流相关的客户端的状态和状态转换的示例。

在该情况下,与图2中示出的在可靠网络中的客户端相比的差异是,该实施方式中示出的不可靠网络中的情景示出了在终止连接过程中添加了一状态“C_waitFinAck”4110。另外的状态为“C_Connected”1110、“C_Closed”1130、“C_WaitSynAck”5120和“C_WaitCloseRsp”5650。

从状态1130到状态5120的转换对应于5150:T_OPEN.req(我的_服务器)/T_SYN(到:我的_服务器),启动Timer_SYN。从状态5120到状态1110的转换对应于5250:T_SYN_ACK(从:我的_服务器)/T_ACK_ACK(到:我的_服务器),T_OPEN.cnf(ok),停止Timer_SYN;以及从状态1110到状态4110对应于转换5450:T_CLOSE.req()/T_FIN(到:我的_服务器),启动Timer_FIN。还可以实现从状态5120到达状态4110,这根据5300:T_SYN_ERR(从:我的_服务器)/T_FIN(到:我的_服务器),启动Timer_FIN。从状态4110到状态1130根据:转换5550:T_FIN_ACK(从:我的_服务器)/T_CLOSE.cnf(),停止Timer_FIN,转换5550:T_FIN(从:我的_服务器)/T_FIN_ACK(到:我的_服务器),T_CLOSE.cnf(),停止Timer_FIN。从状态1110到状态5420根据转换5460:T_FIN(从:我的_客户端)/T_CLOSE.ind()。从状态5420到状态1130根据转换5660:T_CLOSE.rsp()/T_FIN_ACK(到:我的_客户端)。

分别在以下情况中,相应的状态1130、5120、1110和4110被保持:转换5100:T_FIN_ACK(从:任何_服务器)/-,转换5100:T_FIN(从:任何_服务器)/T_FIN_ACK(到:任何_客户端);转换5200:T_FIN_ACK(从:任何_服务器)/-,转换5200:T_FIN(从:任何_服务器)/T_FIN_ACK(到:任何_客户端),转换5200:Timer_SYN超时/T_SYN(到:我的_服务器),重启Timer_SYN;转换5400:T_DATA.req/T_DATA(到:我的_服务器),转换5400:T_DATA(从:我的_服务器)/T_DATA.ind,转换5400:T_FIN_ACK(从:其它_服务器)/-,转换5400:T_FIN(从:其它_服务器)/T_FIN_ACK(到:其他_客户端),转换5400:T_SYN_ACK(从:我的_服务器)/T_ACK_ACK(到:我的_服务器);以及转换5500:T_SYN_ACK(从:我的_服务器)/T_FIN(到:我的_服务器),转换5500:T_SYN_ERR(从:我的_服务器)/T_FIN(到:我的_服务器),转换5500:T_FIN_ACK(从:其它_服务器)/-,转换5500:T_FIN(从:其它_服务器)/T_FIN_ACK(到:其他_客户端),转换5500:Timer_FIN超时/T_FIN(到:我的_服务器),重启Timer_FIN;转换5650:T_FIN_ACK(从:其它_服务器)/-,以及转换5650:T_FIN(从:其它_服务器)/T_FIN_ACK(到:其他_客户端)。

在状态5120的情况下,如果接收到第二类型消息1150,该消息相应地是错误消息,则用第三类型消息1170应答第二类型消息1150。在该情况下,第二客户端计时器被重启。在这种情况下,两个客户端计时器例如为互相排斥的并且因此可以由承担两者的功能的单个计时器实现。

图6示出状态机,该状态机说明了在如图4所示的不可靠网络的通信条件中的服务器1200的状态和状态之间的转换的示例。

此处,与利用可靠网络的服务器的情况对比,服务器1200还接收来自客户端1100的第四类型消息4150,作为确认。其还发出第六类型消息4170。

在图6的图解中,示出了状态“S_WaitCloseRspE”6520和状态“S_Error”6550、状态“S_Listen”1240以及状态“S_WaitOpenRsp”6220和状态“S_WaitSynAck”6620。还示出了状态“S_Connected”1230、状态“S_WaitCloseRsp”6420和状态“S_WaitFinAck”4112。

通过6800:T_LISTEN.req/-,启动状态1240;且如果发生6750:T_FIN(从:任何客户端)/T_FIN_ACK(到:任何_客户端),或者6750:T_FIN_ACK(从:任何客户端)/-,则状态1240被保持。根据6850:T_SYN(从:我的_客户端)/T_OPEN.ind(我的_客户端),启动Timer_Rsp,发生状态1240到状态6220的转换,如果发生6300:T_FIN(从:其他_客户端)/T_FIN_ACK(到:其他客户端),或者6300:T_FIN_ACK(从:其他_客户端)/-,则状态6220被保持。如果发生6250:Timer_Rsp超时/停止Timer_Rsp,T_SYN_ERR(到:我的_客户端),则可以从状态6220到达状态6550;且对应于6150:T_SYN(从:任何_客户端)/T_SYN_ERR(到:任何_客户端),6150:T_FIN(从:任何_客户端)/T_FIN_ACK(到:任何_客户端),或者6150:T_FIN_ACK(从:任何_客户端)/-,则状态6550被保持。从该状态6550,通过6200:T_OPEN.rsp()/T_CLOSE.ind(),可以到达状态6520;根据6100:T_SYN(从:任何_客户端)/T_SYN_ERR(到:任何_客户端),6100:T_FIN(从:任何_客户端)/T_FIN_ACK(到:任何_客户端),或者6100:T_FIN_ACK(从:任何_客户端)/-,状态6520被保持。

发生另一转换从状态6220到状态6620,对应于6350:T_OPEN.rsp()/停止Timer_Rsp,T_SYN_ACK(到:我的_客户端),启动Timer_ACK;相应的状态被保持,这对应于:转换6400:T_SYN(从:我的_客户端)/T_SYN_ACK(到:我的_客户端),转换6400:T_SYN(从:其他_客户端)/T_SYN_ERR(到:其他_客户端),转换6400:T_FIN(从:其他_客户端)/T_FIN_ACK(到:其他_客户端),转换6400:T_FIN_ACK(从:其他_客户端)/-,或者转换6400:Timer_ACK超时/T_SYN_ACK(到:我的_客户端),重启Timer_ACK;以及根据6450:T_ACK_ACK(从:我的_客户端)/停止Timer_ACK,或者6450:T_DATA(从:我的_客户端,数据)/停止Timer_ACK,T_DATA.ind(数据),从状态6620到达状态1230;通过转换6555:T_DATA.req(数据)/T_DATA(到:我的_客户端,数据),转换6555:T_DATA(从:我的_客户端,数据)/T_DATA.ind(数据),转换6555:T_SYN_ACK(从:其他客户端)/-,转换6555:T_SYN(从:其他客户端)/T_SYN_ERR(到:其他客户端),转换6555:T_FIN(从:其他客户端)/T_FIN_ACK(到:其他客户端),或者转换6555:T_FIN_ACK(从:其他客户端)/-,保持状态1230。从状态1230,采用状态6420,这对应于6600:T_FIN(从:我的_客户端)/T_CLOSE.ind();且根据转换6650:T_DATA.req(数据)/T_DATA(到:我的_客户端,数据),转换6650:T_FIN(从:我的_客户端)/-,转换6650:T_SYN(从:其他_客户端)/T_SYN_ERR(到:其他_客户端),转换6650:T_FIN(从:其他_客户端)/T_FIN_ACK(到:其他_客户端),或者转换6650:T_FIN_ACK(从:其他_客户端)/-,状态6420被保持。则其余的是,该状态可以转换到初始状态1240,这对应于6700:T_CLOSE.rsp/T_FIN_ACK(到:我的_客户端)发生。

从状态6555到状态6640的转换对应于6610:T_CLOSE.req()/T_FIN(到:我的客户端),启动Timer_FIN。从状态4112到状态1240的转换对应于6645:T_FIN_ACK(从:我的_客户端)/T_CLOSE.cnf(),停止Timer_FIN以及6645:T_FIN(从:我的_客户端)/T_FIN_ACK(到:我的_客户端),T_CLOSE.cnf(),停止Timer_FIN。状态4112将根据以下转换被保持:转换6640:T_ACK_ACK(从:我的_客户端)/T_FIN(到:我的_客户端),转换6640:T_SYN(从:其他_客户端)/T_SYN_ERR(到:其他_客户端),转换6640:T_FIN(从:其他_客户端)/T_FIN_ACK(到:其他_客户端),转换6640:T_FIN_ACK(从:其他_客户端)/-,Timer_FIN超时/T_FIN(到:我的_客户端),重启Timer_FIN,或者T_DATA(从:我的_客户端,数据)/-。

从状态6620到状态1240的另一转变的发生对应于6500:T_FIN(从:我的_客户端)/T_FIN_ACK(到:我的客户端)。

术语“我的_客户端””是指附图中的应用客户端,而术语“我的_服务器”是指附图中的应用服务器。

图7示出根据本发明的方法的一实施方式的示例,其中在客户端和服务器之间交换的消息通过路由器转发。该方法有利地将带宽预留应用于连接并且在连接建立之前验证可用带宽。该消息图与图4中的示出描述可靠网络中的连接管理的消息流的图之间的主要区别在于,如果路由器存在于客户端1100和服务器1200之间,则路由器转发图4中的在客户端1100和服务器1200之间交换的消息且有利地执行带宽分配,该带宽分配相应地为检验相应的连接所请求的带宽的可用性的带宽评估。具体而言,此处的路由器7500为新的且采用其对应的状态“R_Ready”7510以及“R_Busy”7530。而且,与前面附图中说明的第一类型消息的消息格式相比,这里的第一类型消息的消息格式含有带宽请求且因此通过附图标记7140“T_SYN(bw)”识别。此外,第三类型消息的消息格式现优选含有带宽请求且因此通过附图标记7170“T_FIN(bw)”识别。客户端1000和服务器1100之间的路由器7500在此使用例如一个带宽参数或多个带宽参数来评估所请求的带宽是否满足链路容量,假定链路容量的一部分已经被预留用于其它连接,如果带宽预留成功,则路由器转发所述第一类型消息,否则,例如,路由器产生错误,该错误传递到客户端1000或服务器1100。此外,有利地,路由器还进入状态7530,状态7530表明路由器正忙,路由器不接受用于另一连接的另一带宽预留请求。一旦路由器识别出对于同一对客户端和服务器的从服务器1100传送到客户端1000的作为确认的第二类型消息,该第二类型消息确认所涉及的路由器已经成功预留了所请求的带宽,则路由器返回就绪状态7510。状态“R_Busy”7530例如需要滤除第一类型消息7140的任何可能的重传且有利地防止路由器端的带宽预留的双重更新。此外,与前面附图对比,在此通过第三类型消息7170终止连接,第三类型消息7170含有与第一类型消息7140相同的带宽参数,第一类型消息7140例如在客户端1000和服务器1100处已经被保存,客户端1000和服务器1100发出第三类型消息7170。接收到第三类型消息7170的结果是,路由器7500使其预留的带宽减小。如果消息交换基于可靠的网络进行,则该操作不可能出故障且因此第三类型消息7170不会丢失,因此在该情况下,优选地,不需要计时器跟踪该消息的正确处理。在路由器中的评估过程和存储过程通过框7520表示。

图8给出根据本发明的方法的一实施方式的消息流的另一示例,其中,消息交换在不可靠的网络中进行,该不可靠的网络相应地为支持用于实时通信的通信类别的网络。

与图4中所示的消息流相比,该消息流类似于前一消息流,也包括用于转发在客户端1000和服务器1100之间交换的消息的路由器7500。如上文说明,当详细描述图4中的消息流时,支持不可靠的网络优选地需要密切监控在客户端1000和服务器1100之间交换的消息,还需要在路由器7500处有预防措施。

在此,在引起终止连接期间还需要第四类型消息4150。原因在于,任何路由器的更新需求需要三种消息,一种消息初始化通信且带有带宽,如第一类型消息7140和第三类型消息7170,第二消息确认第一类型消息,如消息1150和消息8150“T_FIN_ACK”,以及第三消息提交带宽变化,如消息4150。在该情况中,如果路由器为忙或者不能施行带宽变化,则路由器7500改变其状态为表示“R_Busy”的7530,如果空闲带宽不足,则路由器产生“S_Error”消息,这将在下文说明。带宽分配和评估在此通过在路由器7500处的框8550进一步表示。

图9示出从客户端侧看的与图7中的消息流相关的状态机的示例的状态和状态转换。

在此可以为下文的状态7120、1110、4110和1130。

从状态1130到状态7120的状态转换的发生对应于9150:T_OPEN.req(我的_服务器,bw)/conn_bw=bw,T_SYN(到:我的_服务器,bw),启动Timer_SYN;而从状态7120到状态4110的状态转换可以对应于9300:T_SYN_ERR(从:我的_服务器)/T_FIN(到:我的_服务器,conn_bw)。另一方面,对于客户端从状态7120到状态1110进行的状态转换根据9250:T_SYN_ACK(从:我的_服务器)/T_ACK_ACK(到:我的_服务器),T_OPEN.cnf(ok),停止Timer_SYN。在状态1110和状态4110之间可以存在的另一转换对应于9400:T_CLOSE.req()/T_FIN(到:我的_服务器,conn_bw),启动Timer_FIN。如果发生以下转换,则相应的状态(分别为1130,7120,9350和9450)得到保持:转换9100:T_FIN_ACK(从:任何服务器)/T_ACK_ACK(到:任何服务器);转换9200:T_FIN_ACK(从:任何服务器)/T_ACK_ACK(到:任何服务器),转换9200:Timer_SYN超时/T_SYN(到:我的_服务器,conn_bw),重启Timer_SYN;转换9350:T_DATA.req/T_DATA(到:我的_服务器),转换9350:T_DATA(从:我的_服务器)/T_DATA.ind,转换9350:T_FIN_ACK(从:其它服务器)/T_ACK_ACK(到:其它_服务器),转换9350:T_SYN_ACK(从:我的_服务器)/T_ACK_ACK(到:我的_服务器);以及转换9450:T_SYN_ACK(从:我的_服务器)/T_FIN(到:我的_服务器,bw),转换9450:T_SYN_NAC(从:我的_服务器)/T_FIN(到:我的_服务器,bw),转换9450:T_FIN_ACK(从:其它_服务器)/T_ACK_ACK(到:其它_服务器),转换9450:超时Timer_FIN/T_FIN(到:我的_服务器,conn_bw),重启Timer_FIN。

在此处,当带宽预留被添加到连接管理时,优选地,所需的带宽要求作为参数提供至消息1010。例如,带宽可以以原始带宽表示,而不是以链路使用比例的替选方式表示,并且可以例如针对每一方向即客户端到服务器以及反向的服务器到客户端而包括不同的值。更详细的带宽描述也是可以的。例如,提供了专用带宽和共享带宽,对于专用带宽,提供了硬件保证(hard guarantee),对于共享带宽,仅提供了软件保证(soft guarantee)。该带宽或一组带宽参数还被添加到第一类型消息7140和第三类型消息7170。当消息1010被接收到时,带宽例如被作为连接带宽保存且随后用于第一类型消息7140和第三类型消息7170。第四类型消息4150确保了在路由器7500处的正确的带宽更新。作为改进,如果第三类型消息7170的带宽参数为0,则第四类型消息4150可以被省略。

图10示出根据本发明的方法的且在图8中的消息流中描述的一实施方式的表示一服务器可以采用的状态和状态转换的状态机的示例。

状态机具有以下状态和状态转换:“S_WaitCloseRsp”10010;“S_Error”10020;1240;“S_WaitOpenRsp”10030;7510;8560;1230和“S_WaitCloseRsp”10040。

通过10100:T_LISTEN.req/-,状态1240被启动;以及状态1240到状态10030发生的转换对应于10150:T_SYN(从:我的_客户端,bw)/T_OPEN.ind(我的_客户端),启动Timer_Rsp。从状态10030到状态10020发生的转换通过10200:Timer_Rsp超时/停止Timer_Rsp,T_SYN_ERR(到:我的_客户端);以及,从状态10020到状态10010的发生对应于10300:T_OPEN.rsp()/T_CLOSE.ind()。

此外,从状态10030到状态7510之间的状态转换的发生对应于10450:T_OPEN.rsp()/停止Timer_Rsp,T_SYN_ACK(到:我的_客户端),启动Timer ACK。

此外,从状态7510可以转换到状态1230,对应于转换10600:T_ACK_ACK(从:我的_客户端)/停止Timer_ACK,转换10600:T_DATA(从:我的_客户端,数据)/停止Timer_ACK,T_DATA.ind(数据);以及从状态7510到状态8560根据10550:T_FIN(从:我的_客户端,bw)/T_FIN_ACK(到:我的_客户端),启动Timer_ACK。此外,从状态1230到状态10040的发生的状态转换通过10700:T_FIN(从:我的_客户端,bw)/T_CLOSE.ind()。从状态10040到状态8560的另一状态转换可以对应于10800:T_CLOSE.rsp/T_FIN_ACK(到:我的_客户端),启动Timer_ACK;以及,返回到起始点即从状态8560到状态1240的转换可以根据10850:T_ACK_ACK(从:我的_客户端)/停止Timer_ACK。

相应的状态(分别为10010、10020、1240、10030、7510、1230和10040)根据以下转换得到保持:转换10350:T_SYN(从:任何_客户端,bw)/T_SYN_ERR(到:任何_客户端),转换10350:T_ACK_ACK(从:任何_客户端)/-;转换10250:T_SYN(从:任何_客户端,bw)/T_SYN_ERR(到:任何_客户端),转换10250:T_ACK_ACK(从:其他_客户端)/-;转换10900:T_ACK_ACK(从:任何_客户端)/-;转换10400:T_ACK_ACK(从:其他_客户端)/-;转换10500:T_SYN(从:我的_客户端,bw)/T_SYN_ACK(到:我的_客户端),转换10500:T_SYN(从:其他_客户端,bw)/T_SYN_ERR(到:其他_客户端),转换10500:T_ACK_ACK(从:其他_客户端)/-,转换10500:Timer_ACK超时/T_SYN_ACK(到:我的_客户端),重启Timer_ACK;转换10650:T_DATA.req(数据)/T_DATA(到:我的_客户端,数据),转换10650:T_DATA(从:我的_客户端,数据)/T_DATA.ind(数据),转换10650:T_SYN_ACK(从:其他_客户端)/-,转换10650:T_SYN(从:其他_客户端,bw)/T_SYN_ERR(到:其他_客户端),转换10650:T_ACK_ACK(从:其他_客户端)/-;以及,转换10750:T_DATA.req(数据)/T_DATA(到:我的_客户端,数据),转换10750:T_FIN(从:我的_客户端,bw)/-;转换10750:T_SYN(从:其他_客户端,bw)/T_SYN_ERR(到:其他_客户端);转换10750:T_ACK_ACK(从:其他_客户端)/-。此外,根据10950:T_CLOSE.rsp/-,发生从状态10010到状态1240的转换。

此外,服务器例如还接收第一类型消息7140和第三类型消息7170上的带宽参数。引入状态8560以便优选地使服务器等待第四类型消息4150。第六类型消息4170在其安全传输中也优选地由计时器保护,该计时器在该第六类型消息4170被发送时启动且如果计时器期满则触发重传。在服务器处的所有计时器可以优选地和有利地以一个计时器实现,因为这些计时器并不同时运行。

图11示出在图8中示出和说明的、根据本发明的方法的实施方式中的用于一路由器可以采用的状态和状态转换的状态机的示例。

可以是以下状态,例如:7510、“R_Busy_Fin”11540和“R_Busy_Syn”11530。

发生状态7510的启动根据11100:R_bw=0,err flag=false。发生从状态7510到状态11540的状态转换对应于11400:T_FIN(从:客户端,到:客户端,bw)/R_客户端=客户端,R_服务器=服务器,R_bw-=bw,T_FIN(从:客户端,到:客户端,bw)。从状态11540返回到状态7510的转换的发生可以对应于11500:T_ACK_ACK(从:R_客户端,到:R_服务器)/err_flag=错误,T_ACK_ACK(从:R_客户端,到:R_服务器)。从状态7510到状态11530的状态转换也可以发生,对应于转换11200:T_SYN(从:客户端,到:客户端,bw),(R_bw+bw)≤MAX_BW/R_客户端=客户端,R_服务器=服务器,R_bw+=bw,T_SYN(从:客户端,到:客户端,bw),或者对应于转换11200:T_SYN(从:客户端,到:客户端,bw),(R_bw+bw)>MAX_BW/R_客户端=客户端,R_服务器=服务器,err_flag=true,T_SYN_ERR(从:客户端,到:客户端);以及,从状态11530返回起始点对应于11350:T_ACK_ACK(从:R_客户端,到:R_服务器)/err_flag=false,T_ACK_ACK(从:R_客户端,到:R_服务器)。在状态11530和状态11540之间发生的另外的状态转换对应于11300:T_FIN(从:客户端,到:客户端,bw)/T_FIN(从:客户端,到:客户端,bw)。

根据以下转换,对应的状态(分别为7510,11540和11530)得以保持:转换11150:T_DATA(从:节点l,到:节点2)/T_DATA(从:节点l,到:节点2),转换11150:OTHER_MSG(从:节点l,到:节点2,...)/OTHER_MSG(从:节点l,到:节点2,...);转换11450:T_FIN_ACK(从:R_服务器,到:R_客户端)/T_FIN_ACK(从:R_服务器,到:R_客户端),转换11450:T_FIN(从:R_客户端,到:R_服务器,bw)/T_FIN(从:R_客户端,到:R_服务器,bw),转换11450:T_FIN(从:其他_客户端,到:其它_服务器,bw)/-,转换11450:T_DATA(从:节点l,到:节点2)/T_DATA(从:节点l,到:节点2),或者转换11450:OTHER_MSG(从:节点l,到:节点2,...)/OTHER_MSG(从:节点l,到:节点2,...);和转换11250:T_SYN_ACK(从:服务器,到:客户端)/T_SYN_ACK(从:服务器,到:客户端),转换11250:T_SYN_ERR(从:服务器,到:客户端)/T_SYN_ERR(从:服务器,到:客户端),转换11250:T_SYN(从:R_客户端,到:R_服务器,bw)&&(err _flag==false)/T_SYN(从:R_客户端,到:R_服务器,bw),转换11250:T_SYN(从:R_客户端,到:R_服务器,bw)&&(err_flag==True)/T_SYN_ERR(从:R_客户端,到:R_服务器),转换11250:T_SYN(从:其他客户端,到:其它服务器,bw)/-,转换11250:T_DATA(从:节点l,到:节点2)/T_DATA(从:节点l,到:节点2),或者转换11250:OTHER_MSG(从:节点l,到:节点2,...)/OTHER_MSG(从:节点l,到:节点2,...)。

例如,路由器在开启连接和关闭连接过程中必须建立状态。初始状态为7510,在该状态中路由器准备好,并且从该状态,路由器将数据包转发到它们的目的地。然而,如果路由器接收第一类型消息7140或第三类型消息7170,则优选地更新路由器带宽预留,且在更新过程中,路由器分别转变成状态11530和11540。如果路由器处在初始状态7510且接收带有足以分配的带宽的消息7140,则其更新带宽并转发该消息至服务器。另一方面,如果带宽可用性不充分,则路由器发出error_flag(错误标记)以防止带宽被更新,且错误消息被发送到服务器而不是转发消息7140。当关闭连接时,error_flag优选地可以用于防止带宽被更新。在以上两种情况中,连接设置中所涉及的客户端和服务器对优选地为安全的以预防由于重传而导致的多带宽更新。在状态7510中,如果路由器接收消息7170,该客户端和服务器对于消息7140也是安全的且路由器带宽优选地以bw增加。

在状态11530中,如果接收到与所保存的客户端和服务器对匹配的第四类型消息4150时,则error_flag被清零且路由器转变成状态7510。如果接收到与所保存的客户端和服务器对匹配的消息7170,则路由器转变成状态11540。优选地,包括消息4150和消息4170的所有消息被转发。以下情况除外:一旦消息7140针对所保存的客户端和服务器对被接收且error_flag(错误标记)被置位。当在状态11540中时,如果接收到匹配所保存的客户端和服务器对的消息4150,则error_flag被清零且路由器转变到状态7510。在该状态中,包括消息4150的所有消息被转发。对于每次连接打开/关闭,路由器需要优选地保存识别与客户端和服务器的标识有关的连接的状态,客户端和服务器的标识由地址和端口组成。例如,最简单的路由器实现可保存如图11所示的单一连接标识。可替换地,路由器可保存若干连接标识,在该情况中,其可以就其能够保存的每一个连接标识采用一个如图11所示的状态机。在该情况下,每次接收到可以保存在连接标识中的消息7140或消息7170时,路由器参与如图11所示的状态和状态转换。如果路由器不能够存储连接标识,优选路由器分别舍弃消息7140和消息7170且不采取进一步动作。

下面的图12到图21讨论了根据本发明的方法的所讨论的实施方式的方法的错误和错误处理的多个示例,可以通过根据本发明的系统以相同的方式处理错误。

图12示出在图1中详细示出的根据本发明的方法的实施方式中可能发生的错误情况的示例。

在该情况中,例如,服务器1200可以为忙,且因此不能够转发第一类型消息1140,因为其在状态1230中,该状态表明当前服务器1200正在处理不同的连接。在该情况中,并不与应用服务器1300建立连接,服务器1200产生错误消息“T_SYN_ERR”12150,当客户端1100接收到该错误消息时,致使客户端转变成关闭连接的状态1130,而非转变成客户端会被连接的状态1110。

图13和图14示出了使用计时器来监控可能被丢失或舍弃的消息的传输。

图13示出错误可能发生在在图1中较详细地讨论的根据本发明的方法的实施方式中的示例。在该示例中,第一类型消息可能被丢失13140,且因此将不能被保持在状态1210中的服务器1200接收或处理。然而,在该示例中,测量第一预定时间段的第一客户端计时器期满导致第一类型消息1140重传以在客户端1100和服务器1200之间建立连接。第一预定时间段优选地以这样的方式定长短:允许服务器1200有充足的处理时间以产生第二类型消息1150,以及在两个方向上有充足的传输时间。当第二类型消息1150被客户端1100接收时,进行如图1中所讨论的进一步处理。

图14说明了在图4中较详细描述的根据本发明的方法的实施方式中可能发生的另一错误及其处理。在该示例中,用附图标记14150表示的第二类型消息被丢失。此外,在该示例中,发生了如图13中的附图标记13010表示的超时,该超时导致重传第一类型消息1140。到达服务器1200的该消息被检测,并且由于因第一类型消息1140在第一时间被接收而引起的从状态1210到状态1220状态转换,这使服务器识别出该消息1140被重传且该消息的源为第一类型消息。允许服务器丢弃重传的消息1140而不处理,并且进行至状态1230的状态转换,其中服务器被连接并发送用于确认的第二类型消息1150。

图15说明了在图1中较详细讨论的根据本发明的方法的实施方式中的消息交换中可能发生的另一错误情况的示例。在该示例中,将讨论如果应用服务器1300处的应用程序崩溃,则可能发生什么。在此,尽管服务器1200已经发送消息1310,但其将收不到来自已崩溃的应用程序的应答1320。这导致第一服务器计时器超时15250,该计时器测量第二预定时间段,在为该第二预定时间段定长短中应该考虑在两个方向的消息传输和用于应用服务器处理消息1310并产生应答1320的时间量。第一服务器计时器因超时15250而发生的期满产生指示错误的状态6550,并将错误消息15150发送至客户端。第一类型消息1140的再一次传输将导致来自服务器1200的错误信息15140,且应答于错误消息15150(相应地为消息15140)产生发送至应用客户端的相应消息15010。在这两种情况下,客户端将关闭连接并移为状态1130。

如果应用服务器用消息T_OPEN.rsp1320应答服务器,则服务器使用消息T_CLOSE.ind1370通知应用服务器连接实际被关闭,并且返回状态S_Listen 1210,在该状态中,服务器准备好接收连接建立请求。

图16给出其消息流在图4中详细讨论的根据本发明的方法的实施方式中的如何处理错误的示例。

在此,也如同前面对于可靠网络的示例中所讨论的,服务器1100为忙且在请求时不能建立连接。因此,其产生错误消息12150以通知客户端1100。这导致在服务器1100处发生连接关闭操作,发出第三类型消息1150,该第三类型消息用从服务器1200发出的第六类型消息4170确认。客户端随后转变到状态1130。

图17讨论了在根据本发明的方法的实施方式中的可能发生的错误情况,在该实施方式中,消息交换基于如图4中较详细讨论的不可靠的网络。由于在不可靠网络中,任何消息可能被损坏或丢失,此外,优选地,为了正确处理第二类型消息1150,该消息应该被监控。如果不是该情况,丢失可导致服务器在第一次忙时被留置在“S_Connected”状态1230,而当请求时,用错误消息12150应答以建立连接,然而,随后断开与其它客户端的连接(用附图标记17150表示)并且在状态1210中再次可用于新连接。然而,错误消息到达客户端1100太迟且在超时13010之后,引起第一类型消息1140的重传,该重传引起服务器开启与应用服务器1300的连接并且在第二类型数据14150丢失时,启动数据1160的传输,数据1160产生协议错误17160。

图18到图21讨论了不同的错误情况,这些错误情况可以在图8和相关说明中详细讨论和示出的根据本发明的方法的实施方式中发生。

其中,路由器7500为忙或由于带宽不可用而不能施行带宽变化请求且由于该情况而产生错误消息。

图18示出处理该情况的第一示例。接收到第一类型消息7140,路由器21500拒绝带宽分配且在21520将错误标记置位。这导致错误消息20140传输到路由器7500,路由器7500将该错误消息转发至客户端1100。路由器7500在20540将错误标记置位。另一方面,接收错误消息20540的客户端启动终止连接,基于错误消息“T_FIN_ERR”20170发送终止。错误消息20170转发到路由器21500,这产生确认消息4170,确认消息4170到达客户端1100时触发产生错误消息“T_OPEN.err”12020。

图19给出图18中讨论的相同错误情况的示例,但消息流和处理方式有略微改变。接收到第一类型消息7140后,路由器21500在19520不将error_flag置位且在错误消息21140中不传输带宽信息到客户端。与前面的示例相反,因此客户端1100可以跟进如图8中所讨论的正常的连接终止。

在该示例中,路由器进入该错误示例中的不同状态“R_BusyERR”19530。正常的连接终止还将释放可用的带宽分配。在图19中给出的示例的情况中,消息处理更容易且需要传输较少量的消息。然而,在图18和图19示出的这两种情况中,优选地,当发出错误消息21140和20140时,路由器需要适用于实现服务器的一些功能。

为了避免路由器有这样的改动,可行的替换方式为将该错误处理转发到服务器1200,这在图20和图21的示例中讨论。

图20给出根据本发明的方法的一实施方式中的其中路由器为忙且信息交换基于不可靠网络的情况下的错误情况处理的示例,该实施方式在图8中进行了说明。

此处类似于图18中讨论的示例,一旦接收到转发的第一类型消息7140且不具有可用带宽,则路由器将error_flag置位并且在该示例中转发新的错误消息20140到服务器1200,服务器1200产生包括带宽参数的错误消息20140。服务器的另一额外任务为用第七类消息4150应答基于客户端1100发出的错误的连接终止。

图21也给出关于图19所讨论的错误处理的示例,但在该情况中,错误处理在服务器1200上进行。作为改进,在图19中的协议被改进成使得:错误消息21140被转发到服务器1200,服务器1200随后负责发送错误消息21140并且处理连接的终止。

对于不可靠的网络,在路由器中用于更新带宽的可行替代方式是利用第二类型消息1150而不是7140进行,和/或利用消息4170而不是7170进行。在此,当第一消息7140和/或7170被接收时,客户端/服务器对如以前一样被保存,标记ERR_flag可以被置位。然而,在该情况中,带宽参数将通过消息1150和消息4170携带。在该错误情况中,错误消息21140没有携带任何带宽参数且将导致不具有带宽的连接终止,因为消息1150和/或消息4170没有做出带宽更新。因此消息4150在该错误示例中可以被进一步优化。

图22与图4的环境类似,示出了通过发送消息“T_CLOSE.req”1070的应用客户端1000关闭连接的情况,其例证了不同的选择。可替换地,通过发送消息“T_CLOSE.req”1070的应用服务器1300也可以关闭连接。而且在该情况下,由此产生的步骤是相同的。当接收消息“T_CLOSE.req”1070时,T/CO服务器1200发送消息“T_FIN”1170时,启动计时器且进入状态“S_WaitFinAck”4112。当T/CO客户端1100接收消息“T_FIN”1170时,其发出消息“T_CLOSE.ind”1370到应用客户端,该应用客户端用消息“T_CLOSE.rsp”4380应答T/CO客户端1100,T/CO客户端接着发送消息“T_FIN_ACK”4170到T/CO服务器并进入状态“C_Closed”1130。当接收消息“T_FIN_ACK”4170时,T/CO服务器使其计时器停止,发送消息“T_CLOSE.cnf”4080到应用服务器1300,并进入状态“S_Listen”1240。

图23也与图4的环境类似,其图示了在T/CO客户端1100和T/CO服务器1200处同时都请求关闭连接的情况。在该情况中,来自T/CO客户端1100和T/CO服务器1200的消息“T_FIN”1070在网络中交叉。当消息“T_FIN”1070在T/CO客户端1100处被接收时,T/CO客户端1100使定时器停止,发送消息“T_FIN_ACK”4170到T/CO服务器1200,且转变成状态“C_Closed”1130。当消息“T_FIN”1070在T/CO服务器1200处被接收时,T/CO服务器1200使定时器停止,发送消息“T_FIN_ACK”4170到T/CO客户端1100,且转变成状态“S_Listen”1240。

本发明还包括,硬件、计算机软件或硬件和计算机软件的结合可以实现该系统的例如在服务器和/或客户端中体现的任何功能。例如客户端和/或服务器的系统可包括通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立门或晶体管逻辑、分立硬件元件或设计的任何组合以实现本文所述的功能。通用处理器可以为微处理器或状态机。处理器还可以作为计算器件的组合实现,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核或任何其他这样的配置。在客户端和/或服务器中使用的处理器适用于执行公开的任一方法。

本发明还包括计算机程序产品,该计算机程序产品包括适用于在任何类型计算器件上执行的代码片段,例如在服务器和/或客户端中使用,即,包括处理引擎的一个计算器件。当在计算器件上执行时,计算机程序产品中的软件代码通过发送第一类型消息到服务器而在客户端上提供请求建立连接的功能。在服务器中,当在计算器件上执行时,软件通过发送第二类型消息到客户端来确认能够建立连接,所述第二类型消息使客户端被连接。软件优选地被设置成使得第一类型消息的发送启动第一客户端计时器,该第一客户端计时器测量作为第一最大应答时间的第一预定时间段,以及软件优选还被设置成使得在第二类型消息或数据消息被接收时,第一客户端计时器停止。软件优选还被设置成使得通过发送第三类型消息关闭连接。

软件优选地还被设置成使得如果第一预定时间段期满,没有接收到第二类型消息,则发送另一第一类型消息。软件优选还被设置成使得如果服务器不能接收连接,则服务器返回错误消息。

软件优选还被设置成使得:

a)接收第二类型消息导致客户端被连接;以及

b)客户端发送第四类型消息到服务器以确认第二类型消息的接收。

软件优选还被设置成使得第二类型消息的发送启动第一服务器计时器,该第一服务器计时器测量作为第二最大应答时间的第二预定时间段,且接收第四类型消息使第一服务器计时器停止。

软件优选还被设置成使得如果服务器不能建立连接,则服务器发送第五类型消息至客户端,导致客户端没有被连接。

软件优选还被设置成使得发送第三类型消息启动第二客户端计时器,该第二客户端计时器测量作为第三最大应答时间的第三预定时间段。

软件优选还被设置成使得服务器通过发送第六类型消息来确认第三类型消息的接收。

软件优选还被设置成使得第六类型消息的发送启动第二服务器计时器,该第二服务器计时器测量作为第四最大应答时间的第四预定时间段。

软件优选还被设置成使得在客户端接收第六类型消息使第二客户端计时器停止;且导致客户端发送第四类型消息。

软件优选还被设置成使得通过服务器发送第三类型消息启动第二服务器计时器,该第二服务器计时器测量作为第三最大应答时间的第三预定时间段。

软件优选还被设置成使得接收到第三类型消息的客户端通过发送第六类型消息来确认第三类型消息的接收。

软件优选还被设置成使得第六类型消息的发送启动第二客户端计时器,该第二客户端计时器测量作为第四最大应答时间的第四预定时间段。

软件优选还被设置成使得服务器接收第六类型消息使第二服务器计时器停止;且导致客户端发送第四类型消息。

软件优选还被设置成使得在客户端与服务器之间的至少一个消息可以经过路由器,其中,该至少一个消息含有用于资源预留的请求;且该路由器仅在能够提供所请求的资源的情况下才转发该至少一个消息。

软件优选还被设置成使得如果路由器转发该至少一个消息,则挂起另外的资源预留请求直到接收第二类型消息为止,该第二类型消息与建立资源预留请求相关的连接所涉及的客户端服务器对相关。

软件优选还被设置成使得,如果连接被关闭,则至少一个消息用于取消资源预留。

软件优选还被设置成使得客户端和服务器分别在对应的应用客户端和对应的应用服务器之间建立连接。

本发明还包括存储上述的计算机程序产品的非临时性的机可读信号存储介质。例如,该非临时性的机可读信号存储介质可以是比如CDROM或DVDROM的光盘、或磁带存储器、比如硬盘或软磁盘的磁盘存储器、比如USB记忆棒的固态存储器、闪存存储器等。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号