防止数据分组的无序传送的方法

文档序号:7618647阅读:215来源:国知局
专利名称:防止数据分组的无序传送的方法
背景技术
在通过路由器传送信息的典型处理器设备(processor installation)中,当多个信息分组被指定给同一位置时,必须按照接收顺序传送每个分组。当在路由器有且仅有一个处理部件时,这不会造成任何问题。即,如果具有相同目的地地址的两个分组P1和P2到达路由器的相同端口,P1在P2之前到达,并且如果P1和P2都将通过相同端口转发,那么P1应在P2之前在目的地端口传送。即,路由器不应在传送P1之前传送P2。离开顺序应和到达顺序相同。这是重要的,因数当最终的目的地主机收到无序分组时,它隐含地假定还未到达的在前分组是丢失的分组,进而假定网络拥塞正在导致分组丢失,并减小TCP(传输控制协议)窗口。这将通信中涉及的端点之间的有效通信带宽减至最小。
如果只存在一个处理所有分组的处理器部件,那么它顺序处理分组,从而,不存在保持序列的任何问题。但是,现代连网设备具有同时转发分组,以便增大吞吐量的多个处理部件。
作为一个例子,考虑下述情形分组1和分组2均具有相同的目的地地址,并且按照该相同的顺序到达相同的端口。分组1被分配给PE1进行处理,分组2被分配给PE2进行处理,在转发数据分组之前所述处理是必需的。一般来说,PE2可能比PE1处理完其分组更快地处理完分组2。如果不采取恰当的步骤,PE2将在PE1能够传送P1之前把P2传送出系统。这种情形导致无序传送。如果在路由器有且仅有一个处理部件,那么通过完全按照收到分组的顺序处理这些分组,易于解决该问题。
在IBM的其中存在多个处理部件的PowerNP体系结构中,通过利用完成单元标签(completion unit label)解决无序传送的问题。当分组进入系统时,在它被传送给PE之一之前,它被归入通信流中,并被分配“完成单元标签”。属于相同通信流的分组将接收相同的完成单元标签。
在上面的例子中,P1和P2将接收相同的完成单元标签,并且PE的链接列表将被附到该标签上。当P1被分配给PE T1时,T1将位于链接列表的头部。随后,当P2被分配给PE T2时,T2将在尾部被附加在链接列表上。当PE完成分组的处理时,它将试图通过调用命令“借助标签排队”(enqueue with label)传送该帧。这意味着当且仅当正在进行“借助标签排队”尝试的PE位于对应标签的PE队列的头部时,完成单元才将把该帧传送出该端口。在传送该帧之后,该PE将从PE队列的头部被除去。这图解说明于图1中。
如图1中所示,分组1和2属于相同的流。分组1首先到达,随后分组2到达。分组3和4属于相同的流。分组3首先到达,随后分组4到达。分组1被分配给PE1。系统把标签L1分配给分组1和2,因为它们属于同样但却不同的通信流。类似地,标签L2被分配给分组3和4(一般来说,L1将不等于L2)。PE1位于关于标签L1的链接列表的头部,因为它被分配在前到达的分组。出于相同的原因,PE3位于关于L2的列表的头部。当PE完成处理时,当且仅当它们位于列表的头部时,它们才被允许传送分配给它们的分组。这防止分组的无序传输。
但是,这并不解决分组分段(fragmentation)的问题。即,PE把它正在处理的分组分成多个片段(fragment),PE不得不进行多个“排队”操作,以传送它所产生的所有片段。即,P1和P2顺序到达,并被分配给PE PE1和PE2。现在,PE1决定把P1分裂成P1-1、P1-2...P1-m,类似地,PE2决定把P2分裂成P2-1、P2-2...P2-m。出现在不强制人工排序的情况下,如何保持顺序传送的问题。例如,在传送P2的任意片段之前传送P1的所有片段是相当限制性的。实际上要求按照相同的顺序传送P1-1~P1-m。

发明内容
提供一种对从具有多个处理部件的第一处理器设备的路由器到第二处理器设备的信息分组的传送进行排序(sequence)的方法,其中必须按照所述分组到达第一处理器设备的顺序完成所述信息分组的传送。该方法包括下述步骤按照PE被授权处理分组的顺序,形成PE的链接列表,授权处理分组的顺序是在第一处理器设备收到分组的顺序,并把每个信息分组分成连续的多个片段。在第一处理器设备处理每个片段。每个链接列表中的每个信息分组的最后片段依据收到分组的顺序被标记,并按照对每个链接列表上的每个最后片段标记的顺序被排队(enqueue)。链接列表中的每个分组信息的每个片段随着在给定的链接列表中在所述第一处理器设备被处理而被传送给所述第二处理器设备,链接列表上的每个分组的最后片段除外。之后,当且仅当每个分组的最后片段位于队列的头部时,传送处理后的每个分组的最后片段,当被传送时从队列除去该最后片段,并在所述第二处理器设备收到所述指定信息分组的所有片段之后,在所述第二处理器设备由所述片段重新装配每个分组信息。


图1是传送信息分组的一种现有技术的示意图;图2是根据本发明的信息分组的链接列表的分段和传送技术的流程图。
具体实施例方式
根据本发明,提供一种从信息处理设备,例如IBMPowerNP体系结构中的路由器传送PE的链接列表的改进方法。在路由器收到信息的每个分组P1-Pn之后,根据将传送它的端口,它被给予一个完成单元标签,并被分配PE。对于具有相同标签的分组P,产生PE的链接列表。每个链接列表中的每个分组P或PE随后被分段。在链接列表中存在两个分组的情况下,存在片段P1-2,P1-2~P1-m,和P2-1,P2-2~P2-n。但是,只有每个PE中的最后分组P1-m和P2-n收到该标签。其它片段收不到该标签。在每个P1和P2把分组顺序分成片段P1-1~P1m-1和P2~P2n-1之后,这些片段被传送,而不带完成单元标签,并且这些片段最好按照在每个PE中分段的顺序被传送,而不考虑在其它PE中,片段P1-1~P1-m-1和P2-2~P2-n-1的传输顺序。用完成单元标签标记每个分组的最后片段,即P1-m和P2-n,如同现有技术中一样,并且当且仅当每个链接表中每个片段的最后分组位于队列的头部,且该片段所位于的分组P1或P2的所有其它片段均已被传送时,才能传送每个链接列表中每个片段的最后分组。从而避免无序传送,因为除了下述之外,分组1和2的片段按照任意顺序到达最终目的地1)分组1的最后片段在分组2的最后片段之前到达。
2)分组1的其它片段在分组1的最后片段之前到达。
3)分组2的其它片段在分组2的最后片段之前到达。
位于最终目的地的处理部件将开始把片段重新装配成一个完整的分组,一旦它收到属于该分组的所有片段。由于上述条件,最终目的地能够并将在分组2之前重新装配分组1。图2中图解说明了这种方法。从而可看出,除了最后的片段之外,每个分组的各个片段可在路由器的处理部件被处理,并且一旦它们被处理就被传送给目的地,而与该分组位于队列中什么位置无关。只有当队列中的分组的最后片段被处理时,才参考完成单元标签,确定传输的最终顺序的只是指定队列中的分组的最后片段。这允许要传送的分组的多数片段(即除了最后片段之外的所有片段)的传输,而不考虑该分组存在于队列中的什么位置,所述分组从该位置被分段,并且通过按照所需的顺序控制每个分组的最后片段的传输,仍然保持在接收处理器设备接收的数据分组的正确顺序。
当然,根据将从其传送数据分组的端口的数目,可产生多个链接列表。另外,链接列表中仅使用两个信息分组只是例证性的,可包括两个以上的分组,要求是对于特定的链接列表,按照接收的顺序标记,并按照接收的顺序传送每个分组的最后片段。
虽然这里说明了本发明的优选实施例,不过可做出各种设计方面的变化,并且对于计算机体系结构、系统和方法领域的技术人员,以及对于其它领域的技术人员来说,这种的变化是显而易见的。本发明决不局限于上面举例说明的具体编程语言和例证的编程命令,本领域的技术人员易于想到其它软件和硬件实现。于是,本发明的范围只由下面的权利要求限定。
权利要求
1.一种对从具有第一处理器设备的路由器到第二处理器设备的一系列信息分组的传送进行排序的方法,第一处理器设备具有多个处理部件,其中必须按照所述分组到达第一处理器设备的顺序完成所述信息分组的传送,所述方法包括下述步骤按照在所述第一处理器设备接收所述信息分组的顺序,形成信息分组的链接列表;把每个信息分组分成连续的多个片段,并在所述第一处理器设备处理每个片段;依据收到分组的顺序标记每个链接列表中的每个信息分组的最后片段,并对关于每个链接列表中的每个最后片段标记的顺序排队;随着在给定的链接列表上在所述第一处理器设备处理每个分组的每个片段,将每个分组的每个片段的传送给所述第二处理器设备,所述链接列表上每个分组的最后片段除外;之后,当且仅当每个分组的最后片段位于所述链接列表中队列的头部时,传送处理后的每个分组的最后片段,并且当所述最后片段被传送时将其从队列除去;和在所述第二处理器设备收到所述给定信息分组的所有片段之后,在所述第二处理器设备从所述片段重新装配每个信息分组。
2.按照权利要求1所述的方法,其中存在多个链接列表,其中从每个链接列表传送多个信息分组。
3.按照权利要求1所述的方法,其中每个信息分组的片段按照其被分段的顺序传送。
全文摘要
一种对从具有几个处理部件的路由器到接收处理设备的信息分组的传送进行排序的方法,其中必须按照分组到达路由器的顺序完成分组的传送。按照在路由器接收所述分组的顺序,形成分组的链接列表,每个分组被分成连续的多个片段。在路由器处理每个片段。依据收到分组的顺序标记每个链接列表中的每个分组的最后片段,并按照关于每个链接列表上的每个最后片段标记的顺序排队。随着处理而将每个分组的每个片段传送给接收处理设备,在其链接列表上的每个分组的最后片段除外,之后,只有当每个分组的最后片段位于队列的头部时,才传送处理后的每个分组的最后片段。
文档编号H04L12/56GK1700675SQ200510072899
公开日2005年11月23日 申请日期2005年5月17日 优先权日2004年5月20日
发明者克劳德·巴思索, 吉恩·路易斯·加尔维格纳克, 纳塔拉加恩·瓦德亚纳撒恩, 法布里斯·吉恩·沃普兰肯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1