分组消息的方法和设备的利记博彩app

文档序号:7594119阅读:170来源:国知局
专利名称:分组消息的方法和设备的利记博彩app
技术领域
本发明涉及管理分组(packet)消息的方法和设备。本发明特别应用于经过窄带宽链路的某一类分组消息的优化管理。
已知在许多情况下源实体(entity)经过通讯链路传送消息到接收实体。这些情况中一个公知的问题涉及到通讯链路,源实体经过该链路传送它的消息,而链路的带宽不足以传递预定给接收实体的消息量。
这个问题的一个原始解决方案是在任何给定时间简单地发送可以发送的消息,随后丢弃任何剩余的‘溢出’消息。尽管这个解决方案具有简单的优点,但不能提供对通讯链路的有效使用。突然激活的脉冲串可能导致当溢出消息时一大批消息被丢弃。然而,在激活的脉冲串之后,通讯链路可能返回到只有小量负载的情况。
这里提供了一种用于缓存溢出消息的改进的解决方案。如果在任何给定时间溢出消息不能被发送,它们将不会被简单地丢弃,而是可以被缓存,并且在激活的脉冲串之后,在通讯链路返回到小量负载情况时发送。然而,很清楚对消息缓存器的大小有限制,这样可以想象缓存器本身可能溢出。同时很清楚在消息之间不存在真正的区别,所有的消息被看作同样的重要。
在某些情况下完全可以应用另一种方法,这里各种消息可以被认为具有不同的重要性。当在源实体和接收实体之间的通讯链路产生阻塞时,较重要的消息可以经过通讯链路传送,而较不重要的消息可能被丢弃,或者如上面讨论的被缓存。
单个源实体的这种方法的公知的例子采用了‘分层视频编码’的概念。然而,这种方法也只能能应用于许多争用的源实体的情况,这里源实体和它们相应的消息根据它们的重要性来排列。
与上面情况稍微不同特点的问题是存在许多都传送相同类型消息、争用同时也是相同重要的源实体。一个例子是许多源实体根据它们状态的某一方面传送消息。例如,移动实体可以根据它们的位置传送消息。同样地,传感器实体可以根据环境温度或压力传送消息。
一个更熟悉的例子是网络计算机游戏如‘Quake’(由ID Softwareof Mesquite,TX,USA制作),这里移动物(mobile creatue)在一个或多个服务器计算机上运行的三维虚拟环境中创建。这些移动物源实体的位置可以适当地通知到在连接到服务器的用户计算机上宿主(host)的游戏实体。
典型地,对于接收这种周期性状态更新消息的实体来说,最重要的是确保从所有的源实体接收到有规律的更新。如果许多源实体正在发送具有状态更新的消息,通常,更重要的是接收来自所有源实体的有规律的状态更新,而不是接收来自源实体子集的所有的状态更新,以及即使有也很少的来自剩余源实体的状态更新。也就是说通常更重要的是减少源实体最大可能的状态误差,而不是所有源实体的平均状态误差。
再次使用Quake游戏的例子,如果游戏参与者的人物(character)被高度移动的敌方移动物包围,对于游戏参与者的人物来说,更重要的是知道所有相关的移动物(或者说在短时间以前的它们)在相对较小的误差内,而不是知道这些移动物的子集在非常小的误差内(它们现在),剩余的(高度移动的敌方)移动物的位置具有相当大的误差(它们不久前的位置)。
很清楚简单的分层定向方案如分层视频编码方案不能用于这种情况。如上面表示的,在这个方案中,可以用接收(即使有也很少的)来自较不重要源实体的信息为代价,从最重要的源实体请求所有可利用的信息,同时注意考虑中的问题,从每个被标称相同重要性的所有的源实体请求至少一些信息。
这样,根据本发明的一个方面,提供的分组消息源包括用于在分组消息序列的每个分组消息中包括相应的分组消息有效负载的装置;用于根据一种标号的预定周期序列将优先次序标号与所述序列中每个连续的分组消息相联系的装置;所述优先次序标号的每一个表示若干个优先次序级别中的一个和周期性序列中每个标号的位置,使得该标号和相等或较高优先次序的最近标号之间的连续较低优先次序标号的数字实际上是最大的;以及用于发送这种分组消息的装置。
有益的是,这将确保当许多这种分组消息源正在发送这种分组消息,并且必须竞争有限的带宽,使得根据这些分组的优先次序标号使分组如所需的放弃时,尽可能将来自所有源的表示有规律更新的分组消息发送给接收的用户,而不是将如现有技术的来自源的子集的所有更新、以及即使有也很少的来自剩余源的更新发送。
本发明还提供分组通知方法和操作分组通知系统方法的分组消息系统。
现在根据附图并借助于例子,描述本发明的几个实施例,其中

图1说明本发明第一个实施例;图2说明一个通用计算机;图3说明分组消息结构;图4A和图4B说明第一个程序流程图;图5说明根据本发明第二个实施例的第二个程序流程图;图6说明根据本发明第二个实施例的第三个程序流程图;图7说明示出第二个实施例的性能结果的第一个图形;图8说明示出第二个实施例的另一个性能结果的第二个图形;图9A和图9B说明根据本发明第三个实施例的第四个程序流程图;图10说明示出第三个实施例的性能结果的第三个图形;
图11说明示出第三个实施例的另一个性能结果的第四个图形;以及图12说明本发明的第四个实施例。
现在根据图1、图2、图3和图4描述本发明第一个实施例。图1以示意图的形式说明本发明第一个实施例的结构。图4说明第一个实施例功能的程序流程图。
第一组源实体的每一个根据它当前的状态创建和发送包含信息的分组消息,其中每个源实体具有相关状态。下面讨论消息发送的目的地实体。源实体可以采用许多形式;这种形式的例子是在计算机的软件处理内宿主的实体。
图1通过实例说明在第一个服务器计算机104的第一个软件处理102内宿主的一组源实体100。
这个计算机104如图2说明,它典型地具有至少一个中央处理器(CPU)202、只读存储器(ROM)204、随机存取存储器(RAM)206、如硬盘208的存储装置、用于从存储介质读出和写入的装置如从软盘读出和写入的软盘驱动器210、以及用于连接到另一个装置或通讯网络的输入和输出端口212。
计算机104可以利用任何适当的操作系统,公知的例子如Microsoft WindowsTMNT、Linux或其他许多Unix版本的任何一个。应用程序能够用许多公知的适合于写应用程序的语言来写,其中一个公知的例子是C++。这个操作系统和应用程序可以加载到计算机104的存储装置208。
根据本发明实施例公开的功能各方面可以用计算机104执行的软件应用程序来实现。然后这个软件应用程序可以采用任何适当的计算机可读存储介质形式存储在例如软盘214中,经过软盘驱动器210加载到计算机104用于执行。公知的另一种情况是将软件应用程序存储在CD-ROM(未示出)上,经过CD-ROM驱动器(未示出)加载到计算机104用于执行。另一种公知的情况是经过适当的网络(未示出)将应用程序下载用于计算机104的执行。
在这个实施例中,计算机104具有一个或多个加载到它的软件应用程序,当这些应用程序执行时使计算机104如源实体的主机一样工作。
通常,存在多个这样的服务器计算机。因此,说明宿主在第二个服务器计算机104’上的第二个软件处理102’中的第二组源实体100’。
如上面Quake的例子,例如,源实体可以是在三维虚拟环境中的移动物,如在一个或多个服务器计算机上作为处理运行的虚拟环境的不同部分。借助于简单的例子,虚拟环境中一个地点的一组移动物可以通过在服务器计算机上处理运行的源实体表示,并且虚拟环境的另一个地点的另一组移动物可以通过在第二个服务器计算机上另一个处理运行的源实体表示。
如上所述,每个源实体100具有相关的状态;在这个例子中,每个人物将至少具有虚拟环境内一个相关的位置。这样,在三维虚拟环境移动的每个人物可以根据它们在三维虚拟环境中相应的当前位置创建和发送分组消息。
图3说明这样一个分组消息结构的例子。在常规情况下分组消息300具有标题部分302和有效负载部分304。应该注意不是分组标题302中所有字段同时被本发明所有的实施例所要求。
分组标题302的第一个字段306包含源实体标识的表示。分组标题302的第二个字段308包含预定的目的地实体标识的表示。由于第一个实施例仅有一个目的地,所以不需要设置这个字段。分组标题302的第三个字段310包含在给定优先次序范围上分配的优先次序的表示。
根据本发明,识别优先次序设置的第三个字段310将如下设置。每个单独的分组消息被分配一个优先次序标记,每个优先次序标记表示若干个优先次序等级中的一个。根据预定的周期标记序列,连续的分组被分配这些优先次序标记中的一个,它们被认为由每个分组消息源产生的序列中。关键的是,这个周期序列中每个标记的位置使得它和相等或较高优先次序标记之间连续的较低优先次序标记的数字实际上是最大的。
周期性优先次序这样变化,使得如果分组根据优先次序被丢弃,在理论(notional)序列中剩余的分组将尽可能均匀间隔地留下。应该注意在这方面两个功率(power)的序列长度是有益的。
对于具有0(最低优先次序)到n(最高优先次序)的优先次序范围并且n=7的简单例子来说,在优先次序上相应适当的周期变化是分别具有设置为0、7、2、4、1、6、3、5的优先次序的八个消息(相等的时间间距)的序列。0、7、2、4、1、6、3、5序列将确保当逐个低优先次序必须放弃时,剩余分组将尽可能均匀地间隔。借助于例子,如果由于两个链路容量的业务负荷使得必须从这八个消息的序列放弃一半的分组(这样变为[]、7、2、4、1、6、3、5,然后是[]、7、2、4、[]、6、3、5,然后是[]、7、[]、4、[]、6、3、5,最后是[]、7、[]、4、[]、6、[]、5),可以看出剩余分组在时间上仍然具有相等的间隔,并且将简洁地每两个时间周期提供更新,而不是如最初序列的每个时间周期提供更新。
分组标题302的第四个字段312包含所谓的激活时间(time-to-live)的表示。激活时间将表示为一个给定的时间周期、范围,例如,达到两三百毫秒,而不是常常如分组网络的情况表示为给定链路跳跃的数量。在第一个实施例中这个字段没有设置。
分组标题302的第五个字段314表示有效负载类型。有效负载类型例如可能是用于位置表示。在第一个实施例中这个字段没有设置。
分组有效负载部分304传递数据。在这个例子中典型的有效负载将是位置表示。
参照图4A,在第一个步骤400,源实体创建并且发送这个分组消息流,在分组有效负载中传递位置更新,并且周期地改变分组标题中第四个字段的优先次序。
返回到图1,第一个和第二个服务器计算机104、104’将分别具有第一个和第二个服务器计算机输出端口106、106’。这些相应的第一个和第二个服务器计算机输出端口106、106’通过相应的第一个和第二个高带宽链路108、108’连接到通讯链路接口、链路管理计算机110。这样的高带宽链路108、108’可以典型地采用例如具有每秒100Mbit的相关带宽的快速以太网的形式。
链路管理计算机110可以采用如图2说明的通用计算机的形式。链路管理计算机110可以利用任何适当的操作系统,公知的例子是Mocrosoft WindowsTMNT、Linux或Unix的其他许多版本中任何一种。应用程序可以用写应用程序的许多公知的适当语言来写,其中一个公知的例子是C++。这个操作系统和应用程序可以加载到计算机110的存储装置208中。
根据本发明实施例公开的功能可以采用如链路管理计算机110执行的软件应用程序来实现。这个软件应用程序可以采用任何适当的计算机可读存储介质形式存储,例如在软盘214上,经过软盘驱动器210加载到计算机110用于执行。公知的另一种方法是将软件应用程序存储在CD-ROM(未示出),经过CD-ROM驱动器(未示出)加载到计算机110用于执行。另一种公知的方法是经过适当的网络(未示出)下载软件应用程序用于计算机110的执行。
链路管理计算机110至少具有一个输入端口112,链路管理计算机经过该接口接收源实体发送的分组消息。在这个例子中,对于两个服务器计算机104、104’,说明了第一个和第二个链路管理计算机输入端口112、112’。应该理解第一个和第二个链路管理计算机输入端口112、112’可以是分开的物理端口或者在软件级别上分开的共享的物理端口。
在第二个步骤402,由宿主在第一个和第二个服务器计算机104、104’的源实体发送的分组消息经过相应的第一个和第二个服务器计算机输出端口106、106’、第一个和第二个快速链路108、108’以及第一个和第二个链路管理计算机输出端口112、112’发送到链路管理计算机110。相应的服务器计算机和链路管理计算机之间的链路具有足够的带宽,源实体发送的分组消息能够以与另一个下行延迟相比不明显的延迟传递到链路管理计算机。
在这个实施例中,链路管理计算机110具有一个或多个加载的软件应用程序,在执行时,它使得链路管理计算机运行链路管理器处理114。通过执行软件应用程序将实现程序流程图的适当步骤。
在第三个步骤404,链路管理器处理114接收到达第一个和第二个链路管理计算机输入端口112、112’的分组消息。在第四个步骤406,链路管理器处理114从接收的分组的分组标题302的第四个字段读出优先次序设置。
在第五个步骤408,链路管理器处理114将到达第一个和第二个链路管理计算机输入端口112、112’的分组消息按照优先次序排序分类为简单分类的线性分组队列116。分组消息可以例如分类到具有相同优先次序设置的分组消息组后面的队列116。应该理解借助于另一种方法,具有相同优先次序设置的简单队列116的部分可以对于每个优先次序设置,在作为分开队列的优化实现中容易地排队。
应该理解在另一个步骤(未示出)中,可以检查分组队列116的长度,并且当增加的队列116的长度大于预定限制的队列长度时,被存储的分组消息可以丢弃。
链路管理计算机110还至少具有一个输出端口118。
链路管理计算机110的输出端口118通过公知的服务质量的链路120和特别公知的窄带宽连接到例如接收实体主机124的输入端口122。当链路管理器处理114发送在优先次序队列116最前面的分组消息到链路管理计算机输出端口118时,该消息经过通讯链路120传送到接收实体主机124,然后该主机将消息传递到接收实体(未示出)。
参照图4B,在步骤410,链路管理器将测试是否在窄带宽链路上有多余的容量来发送在队列116最前面的分组消息。如果是这样,在另一个步骤412,链路管理器处理114将发送在优先次序队列116最前面的分组消息到链路管理计算机输出端口118并且输出到链路120。如果不是这样,则步骤410将重复。通过周期的优先次序方案,本发明的链路管理器可以有效地进行分组消息的智能选择;链路过载可能简单地引起随机分组消息丢失的结果,丢失了本发明的优点。
应该理解在队列116最前面的分组消息的发送将涉及到循环处理。链路管理器处理114在试图发送队列分组消息下一个最前面的消息之前必须等待队列分组消息当前最前面的消息已经被发送为止。例如,通过链路管理器处理,确定在队列116最前面的分组消息大小可以获得这一点,它随后可以利用对链路120带宽的了解来计算何时将开始发送队列分组消息最前面的消息。借助于另一种方法,用于发送的分组消息将从缓冲器发送,直到先前的分组消息已经清除了缓冲器为止下一个分组消息才能写入。
典型的窄带宽链路120可以例如是经过公共交换电话网(PSTN)连接的每秒33.6kbit调制解调器链路,或者是每秒128kbit的第二综合业务数字网(ISDN)连接。
借助于例子,接收实体主机124可以运行一个处理,该处理宿主一个预定接收源实体发送的消息的实体。然而,应该理解代替接收实体主机,接收实体可以替代地采用各种形式,甚至不必采用可计算的形式,例如采用简单的数据存储。
只要在任何给定时间由链路管理计算机110接收的分组消息业务量总的带宽小于通讯链路120的已知窄带宽,放置在链路管理器处理队列116的所有分组消息将无排队延迟地在链路120上发送。接收实体将以最小可能的延迟(它仅由网络延迟引起)接收从所有源实体发送的所有分组消息。
然而,可能的情况是越来越多的源实体100、100’的变为激活,导致同数量地增加消息流。另一方面,源实体100、100’它们自己可以变得更加活跃,导致需要对于状态更新消息减少周期。在任何一种情况下,随着分组消息业务量的增加,当输入分组消息业务量总的带宽超过通讯链路120的带宽时产生一个关键点。在这一点它将不再可能同时发送预定给接收实体的所有分组消息。
现在分组消息将开始由链路管理器处理114排队、如上面表示的根据优先次序排序。当新的分组消息到达链路管理计算机110时,它们将被分类到适用于在它们分组标题302中携带优先次序设置的队列部分。
再次对于源实体100、100’发出的分组消息序列的周期性优先次序设置进行讨论。上面提供了分组选择管理的例子,用于在以两倍链路容量运行业务负荷的链路上发送。如果由于两个链路容量的业务负荷使得必须从具有0、7、2、4、1、6、3、5的周期性优先次序序列的八个消息序列中放弃一半的分组,(这样变为[]、7、2、4、1、6、3、5,然后是[]、7、2、4、[]、6、3、5,然后是[]、7、[]、4、[]、6、3、5,最后是[]、7、[]、4、[]、6、[]、5),可以看出剩余分组仍然在时间上具有相等的间隔,并且将简洁地每两个时间周期提供更新,而不是如最初序列的每个时间周期提供更新。
这样当链接管理器处理114开始根据优先次序排队分组消息时,它将在发送较高优先次序消息的同时采用类似于上面给出例子的周期性排序有效地开始放弃(或更确切地说排队)较低的优先次序消息。这样,对于越来越阻塞的链路120,根据本发明实施例的链路管理计算机110将能够继续发送来自所有源实体100、100’的有规律的状态更新。自然地,剩余的有规律的这些更新将变得越来越少地增加窄带宽链路120阻塞,但是这种逐渐降低次数表示了降级服务的适度方式。
下面根据图10和图11说明的第三个实施例性能结果的比较来讨论对于第一个实施例的模拟性能结果。
现在根据图1、图2、图3、图5、图6、图7和图8讨论本发明第二个实施例。第二个实施例与第一个实施例的不同仅仅在于源实体100、100’发送的分组消息300的结构和链路管理器处理114的功能,所以应该再次适当地参照图1、图2和图3。图5和图6说明根据本发明第二个实施例的功能各方面的程序流程图。同时通过执行运行在链路管理计算机110上的软件应用程序,将实现程序流程图的适当步骤。
根据第二个实施例并且特别参照图1和图2,源实体100、100’传送具有下面结构的分组消息300。分组标题302的第一个字段306将设置为发送源实体的标识。识别目的地实体的分组标题302的第二个字段308不需要设置,因为在这个例子中仅存在一个目的地实体。
识别优先次序设置的第三个字段310将如第一个实施例进行设置。每个单独的分组消息根据例如0(最低优先次序)到n(最高优先次序)的范围被分配一个优先次序设置。同样关键的是n+1个这种消息的序列从源实体发出,不具有上述分配给源实体固定的优先次序,而是具有周期性改变的优先次序。周期性优先次序改变使得如果根据优先次序分组被丢弃,序列中剩余的分组将尽可能均匀间隔地留下。
再次,对于n=7的简单例子,在优先次序中相应的适当周期变化是分别具有设置为0、7、2、4、1、6、3、5的优先次序的八个消息的序列。如上所述,0、7、2、4、1、6、3、5序列将确保逐个低优先次序消息被丢弃,剩余的分组消息将是尽可能均匀的间隔。
在第二个实施例中,第四个字段312将设置为激活时间的周期。应该理解不是所有的源实体需要具有相同的分组消息发送周期,改变激活时间的表示允许每个源实体设置它们自己的周期。例如,由于它的特性,给定的源实体可能仅需要每20个标称时间周期发送更新,其中激活时间的周期可以设置在20个标称时间周期。在20个这样的标称时间周期之后,给定的源实体将发出新的更新,所以较旧的更新可以丢弃。
在第二个实施例中,不设置分组标题302的第五个字段314,假定为分组有效负载类型的表示。
如上所述,具有周期性优先次序设置的这种分组消息流从源实体100、100’发出。然后这些分组消息经过相应的第一和第二服务器计算机输出端口106、106’以及第一和第二链路108、108’传递到链路管理计算机110。
参照图5,在第一个步骤500中,在第一和第二链路管理计算机输入端口112、112’接收到这些分组消息之后,它们被传递到链路管理器处理114。
如第一个实施例,链路管理器处理114将根据优先次序排序再次保持一个简单的分组消息队列116。
链路管理处理器114备有一个时钟(未示出),保持例如毫秒级周期测量的本地时间。在第二个步骤502,链路管理器处理114读出在相应的分组标题302的第四个字段312的激活时间设置,在第三个步骤504,将本地时钟时间加上源实体分配设置的激活时间,以创建调节的激活前的时间。在第四个步骤506,这个调节的激活时间随后写回到分组标题302的第四个字段312。
应该理解借助于另一种方法,分组消息和相关的到达时间可以替代地一起存储在队列116中。它的优点是不用重写源实体设置激活时间,但缺点是要求匹配的较大队列存储器。
应该理解只有给定分组消息受到的明显的延迟是由在队列中保持引起的。借助于上面使用的例子,如果给定的分组消息被具有20个标称单位的激活时间表示的链路管理器处理114接收,并且链路管理器处理本地时间是t=100个标称单位,则写入分组标题第四个字段的调节的激活时间将是120个标称单位。由于下面讨论的原因,如果这个分组消息被排队大于20个标称单位的持续时间,由于这个时间,而链路管理器处理本地时间是t=120个标称单位,则分组消息将是超时的。源实体已经发送并且链路管理器处理116应该在这个时间已经接收到另一个分组消息。
在第五个步骤506,链路管理器处理114还读出相应的分组标题302的第三个字段310中每个优先次序设置,然后在第六个步骤510,将分组消息分类为根据优先次序设置排序的简单的队列116。同时,例如分组消息可以分类到具有相同优先次序设置的分组消息组后面的队列116。同样如上所述,借助于另一种方法,具有相同优先次序设置的简单队列116部分可以分开排队。
图6说明的处理可以理解为与图5说明的并行执行。
参照图6,在第一个步骤600,当每个新的分组消息上移到队列116的最前面用于发送到链路120时,链路管理器处理114将再次从队列116最前面的分组消息的分组标题302的第四个字段312读出调节的激活时间的设置。
在第二个步骤602,链路管理器114将这个调节的激活时间与链路管理器处理本地时间相比较。在第三个步骤604,如果链路管理器处理本地时间已经传递了分组消息调节的激活时间,则该分组消息必须被认为是超时的,并且将被链路管理器处理114丢弃。然而,如果链路管理器处理本地时间没有传递分组消息的调节的激活时间,则分组消息的排队时间将不会比它分配的激活时间更长,在第四个步骤606,它将经过链路管理计算机118的输出端口发送到链路以及到用户120的接收实体。如第一个实施例,这时链路管理器处理114将再次测试链路120的容量以发送在优先次序队列116最前面的分组消息。
应该理解对于在窄带宽链路上可利用带宽的优化使用来说,可以进行标题压缩的步骤(未示出)。因为分组消息经过窄带宽链路120发出,标题302部分不再需要,例如,优先次序设置可以被去掉。
如第一个实施例,只要由链路管理计算机110接收的分组消息的瞬时总带宽小于已知的通讯链路120的(低)带宽,放置在链路管理器处理队列116的所有分组消息将没有排队延迟地在链路上发送。接收实体124将接收从所有源实体100、100’发送的分组消息。然而,同样如第一个实施例,随着分组消息业务量的增加,当输入的分组消息业务量总的带宽超过通讯链路120的带宽时产生一个关键点。在该点上将不再可能同时发送所有预定给接收实体的分组消息。
当总的业务量带宽超过窄带宽链路容量时,根据周期性的优先次序设置能够提供优化和适度的降级服务,在这方面本发明第二个实施例将提供本发明第一个实施例所有的优点。然而,如现在将解释的,本发明第二个实施例将提供优于第一个实施例性能的另外的优点。
对于每个消息的激活时间的分配使得避免下面对消息的错误的重新排序。
第一个位置分组消息采用优先次序设置为0,在标称t=0时由给定源实体发送。第二个分组消息采用优先次序设置为7,在标称t=1时发送。第三个分组消息采用优先次序为2,在标称t=2时发送。如果由于窄带宽链路120上阻塞的程度,当接收第一个分组消息时具有最低优先次序设置为0的第一个分组消息不能由链路管理器处理114通过链路发送,它将被排队。一旦接收到分别具有7和2的优先次序设置的第二个和第三个分组消息,链路管理器处理114经过窄带宽链路120直接发送第二个和第三个分组消息到接收实体主机。如果窄带宽链路120上的阻塞随后减缓,并且如果第一个分组消息不具有与它相关的限定的激活时间,则链路管理器处理114经过窄带宽链路将第一个消息发送到接收实体主机。
链路管理器处理114这样处理之后,其结果是在用户已经接收第二个和第三个消息传递的位置更新之前,由用户接收的最后的位置更新消息实际上已经分别开始一个和两个时间周期。代之以,对于消息的激活时间设置将使得消息在可以经过窄带宽链路120发送之前被从链路管理器处理队列116丢弃。
如上所述,应该理解分组消息在传输之前经受的最长的延迟,实际上只有明显的延迟来自于排队。如上面解释的,除了防止分组消息被错误的重新排序的优点以外,激活时间设置还可以更全面的帮助排队存储管理。例如,当队列116达到某一预定长度时,可以扫描分组消息队列116。否则,由超时分组消息占用的存储器空间可以因此释放。然而,仍然需要检查每个分组发送的超时。在另一种情况,在队列116到达某个长度之前它可以被扫描。否则,将释放被超时分组占用的存储器空间,这些分组在小于某个长度时在队列116中排队。
根据图7和图8,描述和讨论通过链路管理器处理的、结合周期性优先次序设置和激活时间设置的这种窄带宽链路管理的优点。
根据如下步骤产生一个模拟。在单个PC机上建立一个‘服务器’处理,具有少量的初始实体,其中每一个拥有位置状态。在同一个机器上建立具有相同状态的‘用户’处理,并且这两个机器通过‘反射器(reflector)’机器(简单地将分组从服务器‘反射’回用户)经过28.8 Kbit/s UDP/IP的链路连接。
服务器以恒定速率并且以对于每个实体固定的周期在随机的方向上移动所有的实体(因此,对于每个实体的分组消息分配激活时间),每个实体给用户发送位置更新。这个例子中的周期性优先次序设置使用n=3,即四个级别的优先次序方案。状态传送的效率可以随后通过估计服务器和用户状态之间的差别来测量。对于理想的链路(无限带宽和零延迟),其状态将是相同的。而非理想的链路,其状态将是不同的,并且这种不同可以通过应用Pythagoras的规则来测量,以确定服务器和用户实体位置之间的距离。
对于给定实体数量的这种状态差别可以采用下面任一个来表示。
1.在长时间周期上所有服务器一用户位置差别的平均值。
2.在长时间周期上最大服务器一用户位置差别的平均值。
随着实体数量的增加,产生的状态更新量也增加了,因此施加在服务器到用户链路的负载也更大。
没有优先次序的发送和具有四个级别的周期性优先次序发送的方法与多达25个实体发送数据的表现十分相同。这是因为小于25个实体在固定时间周期内产生的所有状态更新可以在相同的周期经过服务器发送到用户链路。
随着实体数量的增加,以及由此发送给用户的业务量的增加,没有优先次序时检测的误差迅速地恶化。这是因为UDP链路丢弃过多的数据,基本上对提供的更新进行随机选择。一个实体可以成功地控制传送10个位置更新的序列,同时另一个实体在相同的周期上控制不进行任何传送。
相反,在25和95个实体之间的周期性优先次序方案表明在检测的平均和最大误差上有很大的改进。这是因为周期性优先次序的使用确保当超过链路带宽时,每个发送实体获得可利用的公平的一部分。例如,当产生的业务量是可利用带宽的三倍(75个实体)时,最大的误差大约是没有优先次序时的4倍。
当产生的业务量等于链路带宽乘以优先次序级别的数量时,优先次序方案方法降低到如没有优先次序方法相同的误差级别。这是因为没有足够的带宽可用于传递所有最高优先次序状态更新,因此再次选择更新成为网络的功能。这可以清楚地在最大误差图上看到,如实体方法100的数量。
现在根据图1、图2、图3、图9、图10和图11讨论本发明的第三个实施例。第三个实施例与第一个和第二个实施例的不同仅仅在于通过源实体发送的分组消息的结构和链路管理器处理的功能,所以应该再次适当地参照图1、图2和图3。图9说明本发明第二个实施例的功能各方面的程序流程图。同样通过运行在链路管理计算机上的软件应用程序的执行实现程序流程图的步骤。
根据第三个实施例并且特别参照图3,源实体100、100’采用下面的结构传送分组消息300。分组标题302的第一个字段306将设置为发送源实体的标识。识别目的地实体的分组标题302的第二个字段308不需要设置,因为在这个例子中仅有一个目的地实体。
识别优先次序设置的第三个字段310将再次如第一个和第二个实施例进行设置。每个单独的分组消息根据例如0(最低优先次序)到n(最高优先次序)的范围被分配一个优先次序设置。同样关键的是n+1个这种消息的序列从源实体发出,不采用上述分配给源实体固定的优先次序,而是采用周期性变化的优先次序。周期性优先次序改变使得如果分组根据优先次序被丢弃,序列中剩余的分组将尽可能均匀间隔地留下。
再次,对于n=7的简单例子,在优先次序中相应的适当周期变化是分别具有设置为0、7、2、4、1、6、3、5的优先次序的八个消息的序列。0、7、2、4、1、6、3、5序列将确保逐个低优先次序消息必须被丢弃,具有优先次序为0的消息被首先丢弃,接着是具有优先次序为1的消息等等,剩余的分组将是尽可能均匀的间隔。
在第三个实施例中,假定为激活时间周期的第四个字段312将不设置。然而,在第三个实施例中,假定为分组有效负载类型表示的分组标题302中第五个字段314被设置。
由上面第二个实施例的讨论可以回想起通过与源实体周期相应的发送源实体的激活时间的设置。上面给出的例子具有每20个标称时间单位发送分组消息的源实体,具有相应的20个标称时间单位的激活时间。携带状态更新的每个分组消息不需要比源实体发送周期更长的激活时间,因为在另一个这样的时间周期之后,新状态更新分组消息将已经发送。
在第三个实施例中,不设置激活时间周期。代之以,每个源实体采用以分组有效负载类型的标识设置的分组标题302的第五个字段314发出状态更新消息,在这个例子中它将是位置表示。这样,仅当需要时,每个源实体将发出状态更新分组消息。
根据第三个实施例,链路管理器链路114屏蔽输入的非周期的分组消息,使得来自具有相同有效负载类型的相同源实体的分组消息可以被组合,以形成具有最后可能状态更新的新的分组消息。
这样,如上面讨论的,再次具有周期性优先次序设置的这种分组消息流从源实体100、100’发出。如第一个实施例,这些分组消息随后经过相应的服务器计算机104、104’传递到链路管理计算机110。
参照图9,在第一个步骤900,在第一个和第二个链路管理计算机输入端口112、112’接收这些分组消息之后,它们被随后传递到链路管理器处理114。
在第二个步骤902,当链路管理计算机输入端口112、112’中的一个接收新的分组消息时,链路管理器处理114将读出分组标题302的第一个字段306,以确定发送源实体的标识。可以回想起在这个实施例中,识别目的地实体的分组标题302的第二个字段308不用设置,因为在这个例子中仅有一个目的地实体。在第三个步骤904,链路管理器处理114还读出分组标题302的第五个字段314,假定是分组有效负载类型的表示,在这个例子中它将是位置表示。在第四个步骤906,链路管理器处理114还读出分组标题302的第三个字段310,假定为分配的优先次序设置。
链路管理器处理114将再次保持简单的分组消息队列116,如第一个和第二个实施例根据优先次序排队。
在第五个步骤908,链路管理器处理114随后将扫描这个分组队列116,读出排队的分组消息的分组标题中第一个和第五个字段306、314,以确定是否从该源实体已经接收分组消息,并且具有的该类型有效负载当前被排队。因为假设从源实体发送的分组消息没有明显延迟地到达链路管理计算机110,可以假设较后到达的分组消息比较早到达的分组消息携带更近的状态更新。
应该注意因为根据至少发送源标识和有效负载类型来实现这种匹配,每个发送源实体将自由地表示它要求哪种有效负载类型,希望哪种有效负载类型的指示器(即,源A可以选择表示具有类型=1的位置有效负载,而源B可以表示例如具有相同类型的类型=1的温度有效负载)。
因此,如果链路管理器处理114定位这样一个来自相同源实体的较早分组消息,并且具有仍然排队的相同类型有效负载,则在第六个步骤910,链路管理器处理将读出排队的分组消息的分组标题302的第三个字段310,假定为分配的优先次序设置。
在第七个步骤912,链路管理器处理114可以如下创建一个新的分组消息。参照图2,链路管理器处理将从新接收的分组消息和排队的分组消息的分组标题302第一个字段306读出的公共源实体标识写到新分组消息的分组标题302的第一个字段306。链路管理器处理114将刚从链路管理计算机接收的分组消息的有效负载写入这个新分组消息的有效负载部分304,换句话说是可利用的最近的状态更新。链路管理器处理114将比较排队的分组消息和新接收的分组消息的分组标题302中第三个字段310的优先次序设置,并且将排队的分组消息和新接收的分组消息的两个优先次序中较高的一个写入新的分组消息的分组标题302中第三个字段310。
在第八个步骤914,链路管理器处理114创建了这样一个新的分组消息,然后将这个新的分组消息分类到简单的优先次序序列的队列116。
在第九个步骤916,链路管理器处理114将丢弃新接收的分组消息和排队的分组消息。
通过另一种方法,代替第七个和第八个步骤912、914的处理可以如下实现。如果排队的分组消息具有比新接收的分组更高的优先次序,则新接收的分组消息的有效负载可以简单地复制到排队的分组消息有效负载,新接收的分组消息随后被丢弃。然而,如果新接收的分组具有比排队的分组消息更高的优先次序,则排队的分组消息可以简单地丢弃,并且将新接收的分组消息分类到优先次序队列116。
当链路管理器处理114根据准则没有找到匹配时,则在第十个步骤918将接收的分组消息简单地直接分类到队列116。
如第一个和第二个实施例,借助于本发明的第三个实施例,链路管理器处理114将在发送之前再次测试链路120的容量,以发送在优先次序队列116最前面的分组消息。
如第一个和第二个实施例,只要链路管理计算机110接收的分组消息业务量的瞬时总带宽小于己知的通讯链路120的(低)带宽,放置在链路管理器处理队列116的所有分组消息将没有排队延迟地经过链路120发出。接收实体将接收从所有源实体发送的所有分组消息。同样,如第一个和第二个实施例,随着分组消息业务量的增加,当输入分组消息业务量的总带宽超过通讯链路120的带宽时产生一个关键点。在这个点将不再可能同时发送预定给接收实体的所有分组消息。
当总的业务量带宽超过窄带宽链路容量时,根据周期性优先次序设置能够提供优化和适度的降级服务,在这方面本发明的第三个实施例将提供本发明第一个实施例的所有优点。然而,如现在将要解释的,本发明第三个实施例还将提供优于第一个实施例性能的优点。
参照图10和图11,将更好地表示和讨论本发明第三个实施例通过链路管理器处理的窄带宽链路管理方法的优点。
参照图7和图8的讨论进行类似的模拟。这个实验示出完全不使用优先次序方案、根据它自己的周期性优先次序方案、以及采用消息组合方式的周期性优先次序方案的结果。在这个例子中,使用了具有n=7的周期性优先次序方案,即八个级别优先次序方案。
不使用任何优先次序方案足以完成到某一点,在该点服务器产生的业务量超过为了更新用户(30个实体)可利用的带宽。从这一点开始,随着状态更新被网络随机地丢弃,平均和最大误差增加。
使用根据它自己的8个级别优先次序方案的结果如两个图形的虚线示出。在某些业务量(例如,70个实体和90个实体)时它明显地比没有优先次序的情况完成得好,而在其他业务量(例如,35个实体)时明显地完成得不好。来自这个数据集合误差峰值中的每一个相应于产生的业务量等于能够在服务器和用户之间传递的某一限定容量的整数倍数时。如上面例子所述,引起这些峰值的事件序列是1.在时间t,实体X产生具有优先次序P的状态更新St。
2. St被排队,因为该链路当前被较高的优先次序更新完全利用。
3.在时间t+1,实体X产生具有优先次序大于P的St+1的状态更新。
4.St+1被发送,因为它具有足够高的优先次序来代替任何其它的排队业务量。
5.在新的状态更新阶段的波动允许已经排队的较低优先次序的更新被发送,St被发送,在用户的接收实体将这看作更新St+2。
因此,仅当状态更新阶段产生的速率波动可以引起上面的重新排序情况时,即产生的业务量接近于可利用带宽的某一整数倍时才产生这些误差峰值,一个特定的优先次序级别只是偶尔使得它进入窄带宽链路。
如两个图形的虚线所示,通过本发明的第三个实施例解决了这个问题,其中新的消息与来自相同实体的任何旧的排队消息组合。因此,上面描述的重新排序问题的类型被去除,并且该方案在所有的业务量级别上完成得很好。
参照图3,特别是分组标题302的第二个字段308,应该理解如果提供了相应的不同目的地实体标识,则可能从单个链路管理器发送给多个用户。然后,根据例如每个用户一个这样的队列,链路管理器处理可以保持多个分类的优先次序分组消息队列。
这样,目的地实体标识字段可以由链路管理器使用,以确定任何输入分组应该放置在哪个队列。使用分组目的地字段以确定相关的队列,链路管理器可以随后使用先前描述的方式以将该分组放置在队列中并且随后提供它或丢弃它。应该理解一旦链路管理器支持多个用户、以及由此的多个优先次序分类的分组队列,它将需要在这些队列之间循环,允许在它们每一个的处理时间发送来自它们队列最前面的任何分组,到它们用户的链路可以及时地在该时刻传递。
图12说明根据本发明的第四个实施例。
每个用户1200、1202、1204被认为是单个接收实体1206,具有驻留在它上面的零个或多个发送实体1208。所有的用户连接到链路管理器1210。每个用户1200、1202、1204可以产生来自任何它的发送实体的任何数量的更新,并且将这些交给任何其他用户接收实体。每个更新被发送到链路管理器1210,它具有将输入更新分配给相关的用户1200、1202、1204的任务。因为任何单个用户1200、1202、1204可以接收来自许多其他用户1200、1202、1204的更新,输入端数类型问题产生,因此每个用户仅仅产生有限数量的更新,但特定的用户正在发送比它们网络连接允许带宽更大数量的更新。
为了有效地处理这个问题,链路管理器1210保持对于每个用户的优先次序分类的队列1212、1214、1216,这个队列1212、1214、1216以链路管理器对于用户链路可以支持的带宽向下腾空用于用户1200、1202、1204。使用先前描述的周期性优先次序方案来管理这些队列1212、1214、1216,因此随着每次更新的产生由用户对每个更新分配一个优先次序,以及激活时间或有效负载类型。因此,如果任何用户比它的链路带宽允许接收的被发送更多的更新,链路管理器将起作用,以确保在接收更新的周期中产生适当的降级。
这种方法假设从用户到链路管理器产生的上行业务量将不会超过可利用的链路带宽,即该用户能够调节由发送实体产生的更新周期,以确保在任何单个时间周期产生的总业务量保持在它能够在该相同周期内传送的最大量以下。如果不是这种情况,则在链路管理器使用的相同的方案可以用于用户,即采用优先次序分类的队列、以链路带宽允许的速率从它最前面发送的消息、用于限制队列大小并且防止消息重新排序的激活时间或数据组合方法。
在这个实现中,每个消息将经过多到两个队列传递,一个在离开用户之前,一个在链路管理器等待提供给用户。注意如果使用具有这个双排队方案的激活时间的方法,消息中激活时间必须在消息被发送之前正确地调节。例如,如果在t=0产生具有20个TTL的消息,并且保留在用户一侧队列5个时间周期,则它应该被发送到具有15个TTL的链路管理器(即最初的TTL减去在队列里花费的时间)。
尽管上面的实施例已经说明了通过源将优先次序标记分配给每个分组消息的技术,但并不总是这种情况。只要由源传送的分组消息的序列次序被保留(例如,一个序列次序字段),优先次序标记的分配可以完成源的下行。的确,假定优先次序标记被分配用于决定将接收的分组消息分类到分组消息队列的哪个部分,如上面在两个步骤完成的,分类算法(使用如上的周期性标记序列技术并且了解来自给定源的给定接收分组消息的序列位置)可以用于将接收的分组消息分类到队列的相同部分,具有适当的优先次序标记的分配和基于优先次序分类到队列。
权利要求
1.分组消息源包括用于在分组消息序列的每个分组消息中包括相应的分组消息有效负载的装置;用于根据这种标记的预定周期性序列将优先次序标记与所述序列的每个连续的分组消息相联系的装置;所述优先次序标记的每一个表示若干个优先次序级别中的一个和周期性序列中每个标记的位置,使得该标记和具有相等或较高优先次序的最近标记之间的连续的较低优先次序的数字实际上是最大的;以及用于发送这种分组消息的装置。
2.如权利要求1所述的分组消息源,其中所述分组消息源具有相关的动态状态,并且所述相应的分组消息有效负载包括源状态更新消息。
3.如权利要求1或2所述的分组消息源还包括用于将激活时间设置与每个分组消息相联系的装置。
4.如权利要求1到3中任何一个所述的分组消息源还包括用于将分组消息源标识与每个分组消息相联系的装置;以及用于将分组消息有效负载类型设置与每个分组消息相联系的装置。
5.分组通知系统包括如权利要求1到4中任何一个所述的若干个分组消息源,以及通讯链路接口;所述通讯链路接口包括用于从所述若干个分组消息源接收分组消息的输入端口;用于读出与每个接收的分组消息相联系的优先次序标记的装置;用于按照它们相关的优先次序标记的次序将接收的分组消息排队的队列;以及用于发送在所述队列最前面的每个分组消息到通讯链路的输出端口。
6.如权利要求5所述的分组通知系统,其中根据权利要求3,所述通讯链路接口还包括用于读出与每个接收的分组消息有关的分组消息激活时间设置的装置;用于与每个相应的分组消息相关、表示分组消息已经排队的时间周期的装置;以及用于放弃每个分组消息的装置,该消息的相关表示说明该分组消息排队的时间周期已经大于相关的分组消息激活时间设置。
7.如权利要求5所述的分组通知系统,其中根据权利要求3,所述通讯链路接口还包括时钟;以及用于将从分组消息读出的激活时间设置加上接收分组的本地时间产生的调节的激活时间设置代替与每个分组消息相关的分组消息激活时间设置的装置;用于将时间周期的表示与每个分组消息相关的装置与至少一个分组消息相关,从每个所述分组消息读出的所述调节的激活时间减去所述分组消息到达的本地时间的结果,使得用于丢弃每个分组消息的装置被这样安排,如果所述相关的总和小于或等于零则丢弃分组消息。
8.如权利要求5所述的分组通知系统,其中根据权利要求4,所述通讯链路接口还包括用于从每个接收的分组消息读出分组消息源标识的装置;用于读出与每个接收的分组消息相关的分组消息有效负载类型设置的装置;用于对排队的分组消息测试分组消息队列的装置,该分组消息具有匹配于接收的分组消息的相关源标识;用于读出与匹配的排队分组消息相关的优先次序标记的装置;用于根据优先次序标记,将代替匹配的接收和排队的分组消息的分组消息分类到队列的装置,具有匹配的接收和排队的分组消息的相关源标识,接收的分组消息的有效负载以及无论哪个匹配的接收和排队的分组消息的相关优先次序标记表示较高的优先次序。
9.分组通知系统包括若干个分组消息源,每个包括用于在分组消息序列的每个分组消息中包括相应的分组消息有效负载的装置;以及用于发送这样的分组消息的装置;以及通讯链路接口包括用于从所述若干个分组消息源接收分组消息的输入端口;根据相应分配的优先次序标记将分组消息排队的队列;考虑所述若干个分组消息源每一个的所述序列,根据这种标记的预定周期性序列已经分配所述优先次序标记;所述优先次序标记的每一个表示若干个优先次序级别中的一个和周期性序列中每个标记的位置,使得它和相等或较高优先次序的最近标记之间的连续较低优先次序标记的数字实际上是最大的;以及发送所述队列最前面的每个分组消息到通讯链路的输出端口。
10.分组通知的方法包括在分组消息序列的每个分组消息中包括相应的分组消息有效负载;根据这种标记的预定周期性序列,将优先次序标记与所述序列的每个连续的分组消息相关;所述优先次序标记的每一个表示若干个优先次序级别中的一个和周期性序列中每个标记的位置,使得所述标记和相等或较高优先次序的最近标记之间的连续较低优先次序标记的数字实际上是最大的;以及发送这样的分组消息。
11.一种操作包括若干个分组消息源和通讯链路接口的分组通知系统的方法,所述方法包括根据这种标记的预定周期性序列,考虑分组消息源中每一个的最初序列,将优先次序的标记分配给连续的分组;所述优先次序标记的每一个表示若干个优先次序级别中的一个和周期性序列中每个标记的位置,使得它和相等或较高优先次序之间的连续较低优先次序标记的数字实际上是最大的;根据在所述通讯链路接口相应分配的优先次序标记将所述分组消息在队列中排队;以及发送所述队列最前面的每个分组消息到通讯链路。
12.计算机可读存储介质,所述介质包括读入计算机并且可以由所述计算机执行的计算机可读代码,用于完成权利要求10或11所述的方法。
13.用于管理链路上分组消息的发送的链路管理器;由若干个分组消息源产生的分组消息;每个分组消息源具有相关的状态;每个分组消息包括在n到m范围中相关的分组消息优先次序设置和分组消息源状态更新;每个分组消息周期性地通过所述优先次序设置范围的每个优先次序设置,由m-n+1个分组消息的源发送序列发送,使得根据优先次序从序列逐个丢弃分组消息,该序列剩余的分组消息尽可能均匀地间隔;链路管理器包括至少一个分组消息输入端口,用于接收这样的分组消息;用于读出与每个这样接收的分组消息相关的优先次序设置的装置;用于根据与每个这样接收的分组消息有关的优先次序设置,将每个这样接收的分组消息分类到分组消息队列的装置;用于测试链路是否有足够容量以发送在队列最前面的分组消息的装置;以及用于当链路具有足够的容量时,经过至少一个输出端口发送在队列最前面的分组消息到链路的装置。
14.一种发送来自链路上若干个源的分组消息的管理方法;分组消息由若干个分组消息源产生;每个分组消息源具有相关的状态;每个分组消息包括在n到m范围的相关的分组消息优先次序设置和分组消息源状态更新;每个分组消息周期性地通过所述优先次序设置范围的每个优先次序设置,由m-n+1个分组消息的源发送序列发送,使得根据优先次序从序列逐个丢弃分组消息,该序列剩余的分组消息尽可能均匀地间隔;该方法包括接收在链路管理器至少一个输入端口的这种分组消息;读出与每个这样接收的分组消息有关的优先次序设置;根据与每个这样接收的分组消息相关的优先次序设置,将每个这样接收的分组消息分类到分组消息队列;以及经过链路管理器至少一个输出端口,发送在队列最前面的分组消息到链路。
全文摘要
根据本发明,分组消息序列的每个分组消息根据这样标记的预定周期性序列,以相关的分组消息优先次序标记发送。这些优先次序标记的每一个表示若干个优先次序级别中的一个和周期性序列中每个标记的位置,使得该标记和相等或较高优先次序的最近标记之间的连续较低优先次序的数字实际上是最大的。这样,如果由于阻塞根据优先次序从序列中丢弃分组消息,根据本发明的分组通知方法和设备确保,只要可能,有规律的更新分组消息将仍然从所有的分组消息源接收。
文档编号H04L29/06GK1345503SQ0080585
公开日2002年4月17日 申请日期2000年3月24日 优先权日1999年3月31日
发明者西蒙·尤里安·鲍尔斯, 迈克尔·勒登·海因丝 申请人:英国电讯有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1