多递送路线分组排序的制作方法

文档序号:7992972阅读:214来源:国知局
多递送路线分组排序的制作方法
【专利摘要】一种混合网络设备能够实现用于指示经由多个分组路线传送的与共同分组流相关联的各个分组的顺序以及用于管理脱序分组到达的功能性。在混合通信网络中,第一网络设备可确定与经由第一网络设备和第二网络设备之间的多个分组路线从第二网络设备接收到的关联于一分组流的多个分组相关联的序列标识符。第一网络设备可以至少部分地基于与该多个分组相关联的序列标识符来检测接收到的该多个分组中的一个或多个分组的脱序递送。因此,第一网络设备可基于与该多个分组相关联的序列标识符来对该多个分组的至少一子集进行重排序。
【专利说明】多递送路线分组排序
[0001]相关申请
[0002]本申请要求于2011年11月3日提交的美国申请N0.13/288,319的优先权权益。
[0003]背景
[0004]本发明主题内容的实施例一般涉及通信系统领域,尤其涉及多递送路线分组排序。
[0005]混合通信网络通常包括使用具备桥接能力的设备互连的多种联网技术(例如,无线局域网(WLAN)技术、电力线通信技术、以太网等),这些具备桥接能力的设备在这些不同网络技术和介质之间转发分组以便形成单个经扩展的通信网络。通常,通信机制和协议细节(例如设备和拓扑发现、与其他网络的桥接等等)是每种联网技术所特有的。混合通信网络可提供与一种或多种不同的网络技术相关联的不同路线以便将分组从源网络设备递送到目的地网络设备。
[0006]概述
[0007]在一些实施例中,一种方法包括:在通信网络中的第一网络设备处,确定与经由第一网络设备和第二网络设备之间的多个分组路线从第二网络设备接收到的关联于一分组流的多个分组相关联的序列标识符,其中经由该多个分组路线中的每一个分组路线接收到该多个分组的一子集;至少部分地基于与这多个分组相关联的序列标识符来检测经由该多个分组路线接收到的关联于该分组流的该多个分组中的一个或多个分组的脱序递送;以及响应于所述检测经由该多个分组路线接收到的关联于该分组流的该多个分组中的一个或多个分组的脱序递送,基于与该多个分组相关联的序列标识符来对该多个分组的至少一子集进行重排序。
[0008]在一些实施例中,所述确定与经由第一网络设备和第二网络设备之间的多个分组路线从第二网络设备接收到的关联于该分组流的多个分组相关联的序列标识符还包括确定该多个分组中的每一个分组是否包括由第二网络设备的混合适配层插入的副序列标识符;响应于确定该多个分组中的每一个分组包括由第二网络设备的混合适配层插入的副序列标识符,在第一网络设备处确定与该多个分组中的每一个分组相关联的副序列标识符;以及响应于确定该多个分组中的每一个分组不包括副序列标识符,在第一网络设备处确定与该多个分组中的每一个分组相关联的主序列标识符,其中与所述多个分组中的每一个分组相关联的主序列标识符是由第二网络设备的较高协议层插入的。
[0009]在一些实施例中,响应于确定多个分组中的每一个分组包括由第二网络设备的混合适配层插入的副序列标识符,所述确定与多个分组中的每一个分组相关联的副序列标识符还包括对于该多个分组中的每一个分组,从该分组的一个或多个报头字段中读取副序列标识符。
[0010]在一些实施例中,响应于确定多个分组中的每一个分组包括由第二网络设备的混合适配层插入的副序列标识符,所述确定与多个分组中的每一个分组相关联的副序列标识符还包括对于该多个分组中的每一个分组,基于分组的报头字段和分组的净荷中的至少一者来确定该分组的分组签名;将该分组的分组签名与序列表分组中的多个分组签名进行比较,其中该序列表分组包括与分组流中的该多个分组中的对应的每一个分组相关联的多个分组签名以及对应的多个序列标识符,其中该序列表分组是从第二网络设备向第一网络设备提供的;基于所述将分组的分组签名与序列表分组中的该多个分组签名进行比较来确定该分组的分组签名匹配于序列表分组中的该多个分组签名中的第一分组签名;以及响应于所述确定该分组的分组签名匹配于序列表分组中的该多个分组签名中的第一分组签名,将该多个序列标识符中对应于该多个分组签名中的第一分组签名的第一序列标识符标识为与该分组相关联的序列标识符。
[0011]在一些实施例中,副序列标识符是在与分组相关联的虚拟局域网(VLAN)标签的一个或多个位中的至少一个位中指示的,其中VLAN标签中的指示副序列标识符的该一个或多个位与预定编码相关联。
[0012]在一些实施例中,所述检测经由多个分组路线接收到的关联于分组流的多个分组中的一个或多个分组的脱序递送还包括,对于该多个分组中的每一个分组,确定与该分组相关联的序列标识符是否按照与先前在第一网络设备处接收到的关联于该分组流的对应的一个或多个先前接收到的分组相关联的一个或多个序列标识符的顺序;响应于确定与该分组相关联的序列标识符按照与关联于该分组流的对应的一个或多个先前接收到的分组相关联的一个或多个序列标识符的顺序,确定该分组对于关联于该分组流的该一个或多个先前接收到的分组是按序的;以及响应于确定与该分组相关联的序列标识符未按照与关联于该分组流的对应的一个或多个先前接收到的分组相关联的一个或多个序列标识符的顺序,确定该分组对于关联于该分组流的该一个或多个先前接收到的分组是脱序的。
[0013]在一些实施例中,所述检测经由多个分组路线接收到的关联于该分组流的多个分组中的一个或多个分组的脱序递送还包括将该多个分组中的该一个或多个分组存储在重排序缓冲器中;并且所述基于与该多个分组相关联的序列标识符来对该多个分组的至少该子集进行重排序还包括对于该多个分组的该子集中的每一个分组,将该分组与先前存储在该重排序缓冲器中的一个或多个分组一起进行重排序。
[0014]在一些实施例中,所述检测经由多个分组路线接收到的关联于该分组流的多个分组中的一个或多个分组的脱序递送还包括对于该多个分组中的每一个分组,基于与该分组相关联的序列标识符来确定该分组是否在顺序上早于该多分组中的已被提供给第一网络设备的较高协议层以便进行处理的最后一个分组;响应于确定该分组在顺序上早于该多个分组中的已被提供给第一网络设备的较高协议层以便进行处理的最后一个分组,在第一网络设备处丢弃该分组;以及响应于确定该分组在顺序上晚于该多个分组中的已被提供给第一网络设备的较高协议层以便进行处理的最后一个分组,基于与该分组相关联的序列标识符来对该分组进行重排序。
[0015]在一些实施例中,序列标识符包括序列号和时间戳中的至少一者。
[0016]在一些实施例中,响应于所述基于与多个分组相关联的序列标识符来对该多个分组的至少该子集进行重排序,该方法还包括向第一网络设备的较高协议层提供该多个分组的至少该子集以便进行处理。
[0017]在一些实施例中,所述检测经由多个分组路线接收到的关联于该分组流的该多个分组中的一个或多个分组的脱序递送包括至少部分地基于与该多个分组相关联的序列标识符来确定是否在第一网络设备处检测到与相同的序列标识符相关联的两个或更多分组;以及响应于确定在第一网络设备处检测到与相同的序列标识符相关联的两个或更多分组,提供与该相同的序列标识符相关联的该两个或更多分组中的第一分组,以便所述基于与该多个分组相关联的序列标识符来对该多个分组的至少该子集进行所述重排序,并且丢弃与相同的序列号相关联的该两个或更多分组中的其余分组。
[0018]在一些实施例中,一种方法包括:在通信网络中的第一网络设备处,确定要经由第一网络设备和该通信网络中的第二网络设备之间的多个分组路线来将关联于一分组流的多个分组传送到第二网络设备;将副序列标识符插入关联于该分组流的该多个分组中的每一个分组,其中该副序列标识符是由第一网络设备的混合适配层插入的;以及经由该多个分组路线将该多个分组传送到第二网络设备,其中调度经由该多个分组路线中的每一个分组路线来传送该多个分组的一子集。
[0019]在一些实施例中,所述将副序列标识符插入关联于该分组流的该多个分组中的每一个分组包括除了由第一网络设备的较高协议层插入的主序列标识符之外还将副序列标识符插入该多个分组中的每一个分组;或者响应于确定关联于该分组流的该多个分组不包括主序列标识符来将副序列标识符插入该多个分组中的每一个分组。
[0020]在一些实施例中,所述将副序列标识符插入关联于第二分组流的一个或多个分组中的每一个分组还包括对于该一个或多个分组中的每一个分组,将副序列标识符插入该分组的报头字段;以及将包括副序列标识符的该分组传送到第二网络设备。
[0021]在一些实施例中,所述将副序列标识符插入关联于该分组流的该多个分组中的每一个分组还包括对于该多个分组中的每一个分组,基于该分组的报头字段和该分组的净荷中的至少一者来确定唯一地标识该分组的分组签名;生成包括与该多个分组中的每一个分组相关联的分组签名以及与该多个分组中的每一个分组相关联的对应的副序列标识符的序列表分组;将该序列表分组传送到第二网络设备以指示将从第一网络设备向第二网络设备传送该一个或多个分组的次序;以及根据序列表分组中所指示的分组次序来向第二网络设备传送该多个分组。
[0022]在一些实施例中,该方法还包括在第一网络设备处确定经由该多个分组路线中的第一分组路线而不是该多个分组路线中的第二分组路线来传送该多个分组中的一个或多个分组;经由第二分组路线来传送该多个分组中的第一分组,其中该多个分组中的第一分组是将经由第二分组路线来传送的最后一个分组;响应于所述经由第二分组路线来传送该多个分组中的第一分组,在预定时间间隔内阻止经由第二分组路线和第一分组路线来传送该多个分组中的后续分组,其中该多个分组中的第一分组是将经由第二分组路线传送的最后一个分组;以及在该预定时间间隔逝去后经由第一分组路线传送该多个分组中的后续分组。
[0023]在一些实施例中,通信网络设备包括一个或多个网络接口以及与该一个或多个网络接口耦合的重排序单元,该重排序单元可操作用于:确定与在该通信网络设备处经由该网络设备和第二通信网络设备之间的多个分组路线从第二通信网络设备接收到的关联于一分组流的多个分组相关联的序列标识符,其中经由该多个分组路线中的每一个分组路线接收到该多个分组的一子集;至少部分地基于与该多个分组相关联的序列标识符来检测经由该多个分组路线接收到的关联于该分组流的该多个分组中的一个或多个分组的脱序递送;以及响应于重排序单元检测到经由该多个分组路线接收到的关联于该分组流的该多个分组中的一个或多个分组的脱序递送,基于与该多个分组相关联的序列标识符来对该多个分组的至少一子集进行重排序。
[0024]在一些实施例中,所述重排序单元可操作用于确定与经由该通信网络设备和第二通信网络设备之间的多个分组路线从第二通信网络设备接收到的关联于该分组流的该多个分组相关联的序列标识符还包括该重排序单元可操作用于确定该多个分组中的每一个分组是否包括由第二通信网络设备的混合适配层插入的副序列标识符;响应于所述重排序单元确定该多个分组中的每一个分组包括由第二通信网络设备的混合适配层插入的副序列标识符,确定与该多个分组中的每一个分组相关联的副序列标识符;以及响应于所述重排序单元确定该多个分组中的每一个分组不包括副序列标识符,确定与该多个分组中的每一个分组相关联的主序列标识符,其中与该多个分组中的每一个分组相关联的主序列标识符是由第二通信网络设备的较高协议层插入的。
[0025]在一些实施例中,响应于所述重排序单元确定该多个分组中的每一个分组包括由第二通信网络设备的混合适配层插入的副序列标识符,所述重排序单元可操作用于确定与该多个分组中的每一个分组相关联的副序列标识符还包括所述重排序单元可操作用于对于该多个分组中的每一个分组,从该分组的一个或多个报头字段中读取副序列标识符。
[0026]在一些实施例中,响应于所述重排序单元确定该多个分组中的每一个分组包括由第二通信网络设备的混合适配层插入的副序列标识符,所述重排序单元可操作用于确定与该多个分组中的每一个分组相关联的副序列标识符还包括所述重排序单元可操作用于对于该多个分组中的每一个分组,基于分组的报头字段和分组的净荷中的至少一者来确定该分组的分组签名;将该分组的分组签名与序列表分组中的多个分组签名进行比较,其中该序列表分组包括与该分组流中的该多个分组中的对应的每一个分组相关联的多个分组签名以及对应的多个序列标识符,其中该序列表分组是从第二通信网络设备向该通信网络设备提供的;基于所述重排序单元将该分组的分组签名与序列表分组中的该多个分组签名进行比较来确定该分组的分组签名匹配于序列表分组中的该多个分组签名中的第一分组签名;以及响应于所述重排序单元确定该分组的分组签名匹配于序列表分组中的该多个分组签名中的第一分组签名,将该多个序列标识符中对应于该多个分组签名中的第一分组签名的第一序列标识符标识为与该分组相关联的序列标识符。
[0027]在一些实施例中,所述重排序单元可操作用于检测经由该多个分组路线接收到的关联于该分组流的该多个分组中的一个或多个的脱序递送还包括所述重排序单元可操作用于对于该多个分组中的每一个分组,确定与该分组相关联的序列标识符是否按照与先前在该通信网络设备处接收到的关联于该分组流的对应的一个或多个先前接收到的分组相关联的一个或多个序列标识符的顺序;响应于所述重排序单元确定与该分组相关联的序列标识符按照与关联于该分组流的对应的一个或多个先前接收到的分组相关联的该一个或多个序列标识符的顺序,确定该分组对于关联于该分组流的该一个或多个先前接收到的分组是按序的;以及响应于所述重排序单元确定与该分组相关联的序列标识符未按照与关联于该分组流的对应的一个或多个先前接收到的分组相关联的该一个或多个序列标识符的顺序,确定该分组对于关联于该分组流的该一个或多个先前接收到的分组是脱序的。
[0028]在一些实施例中,所述重排序单元可操作用于检测经由该多个分组路线接收到的关联于该分组流的该多个分组中的一个或多个的脱序递送还包括所述重排序单元可操作用于将该多个分组中的该一个或多个存储在重排序缓冲器中;并且所述重排序单元可操作用于基于与该多个分组相关联的序列标识符来对该多个分组的至少该子集进行重排序还包括所述重排序单元可操作用于对于该多个分组的该子集中的每一个分组,将该分组与先前存储在重排序缓冲器中的一个或多个分组一起进行重排序。
[0029]在一些实施例中,所述重排序单元可操作用于检测经由该多个分组路线接收到的关联于该分组流的该多个分组中的一个或多个分组的脱序递送还包括所述重排序单元可操作用于对于该多个分组中的每一个分组,基于与该分组相关联的序列标识符来确定该分组是否在顺序上早于该多分组中的已被提供给该通信网络设备的较高协议层以便进行处理的最后一个分组;响应于所述重排序单元确定该分组在顺序上早于该多分组中的已被提供给该通信网络设备的较高协议层以便进行处理的最后一个分组,在该通信网络设备处丢弃该分组;以及响应于所述重排序单元可操作用于确定该分组在顺序上晚于该多分组中的已被提供给第一通信网络设备的较高协议层以便进行处理的最后一个分组,基于与该分组相关联的序列标识符来对该分组进行重排序。
[0030]在一些实施例中,有一个或多个其中存储有指令的机器可读存储介质,这些指令在被一个或多个处理器执行时使该一个或多个处理器执行以下操作,包括:确定与在第一网络设备处经由第一网络设备和第二网络设备之间的多个分组路线从第二网络设备接收到的关联于一分组流的多个分组相关联的序列标识符,其中经由该多个分组路线中的每一个分组路线接收到该多个分组的一子集;至少部分地基于与该多个分组相关联的序列标识符来检测经由该多个分组路线接收到的关联于该分组流的该多个分组中的一个或多个分组的脱序递送;以及响应于所述检测经由该多个分组路线接收到的关联于该分组流的该多个分组中的一个或多个分组的脱序递送的操作,基于与该多个分组相关联的序列标识符来对该多个分组的至少一子集进行重排序。
[0031]在一些实施例中,所述确定与经由第一网络设备和第二网络设备之间的多个分组路线从第二网络设备接收到的关联于该分组流的该多个分组相关联的序列标识符的操作还包括确定该多个分组中的每一个分组是否包括由第二网络设备的混合适配层插入的副序列标识符;响应于确定该多个分组中的每一个分组包括由第二网络设备的混合适配层插入的副序列标识符,确定与该多个分组中的每一个分组相关联的副序列标识符;以及响应于确定该多个分组中的每一个分组不包括副序列标识符,确定与该多个分组中的每一个分组相关联的主序列标识符,其中与该多个分组中的每一个分组相关联的主序列标识符是由第二网络设备的较高协议层插入的。
[0032]在一些实施例中,响应于确定该多个分组中的每一个分组包括由第二网络设备的混合适配层插入的副序列标识符,所述确定与该多个分组中的每一个分组相关联的副序列标识符的操作还包括对于该多个分组中的每一个分组,从该分组的一个或多个报头字段中读取副序列标识符。
[0033]在一些实施例中,响应于确定该多个分组中的每一个分组包括由第二网络设备的混合适配层插入的副序列标识符,所述确定与该多个分组中的每一个分组相关联的副序列标识符的操作还包括对于该多个分组中的每一个分组,基于分组的报头字段和分组的净荷中的至少一者来确定该分组的分组签名;将该分组的分组签名与序列表分组中的多个分组签名进行比较,其中该序列表分组包括与该分组流中的该多个分组中的对应的每一个分组相关联的多个分组签名以及对应的多个序列标识符,其中该序列表分组是从第二网络设备向第一网络设备提供的;基于所述将分组的分组签名与序列表分组中的该多个分组签名进行比较的操作来确定该分组的分组签名匹配于序列表分组中的该多个分组签名中的第一分组签名;以及响应于所述确定该分组的分组签名匹配与序列表分组中的该多个分组签名中的第一分组签名的操作,将该多个序列标识符中对应于该多个分组签名中的第一分组签名的第一序列标识符标识为与该分组相关联的序列标识符。
[0034]在一些实施例中,所述检测经由该多个分组路线接收到的关联于该分组流的该多个分组中的一个或多个的脱序递送的操作还包括对于该多个分组中的每一个分组,确定与该分组相关联的序列标识符是否按照与先前在第一网络设备处接收到的关联于该分组流的对应的一个或多个先前接收到的分组相关联的一个或多个序列标识符的顺序;响应于确定与该分组相关联的序列标识符按照与关联于该分组流的对应的一个或多个先前接收到的分组相关联的一个或多个序列标识符的顺序,确定该分组对于关联于该该分组流的该一个或多个先前接收到的分组是按序的;以及响应于确定与该分组相关联的序列标识符未按照与关联于该分组流的对应的一个或多个先前接收到的分组相关联的一个或多个序列标识符的顺序,确定该分组对于关联于该分组流的该一个或多个先前接收到的分组是脱序的。
[0035]附图简述
[0036]通过参考附图,可以更好地理解本发明的诸实施例并使众多目的、特征和优点为本领域技术人员所显见。
[0037]图1是解说混合通信网络中的示例分组重排序机制的框图;
[0038]图2是解说用于实现多个联网接口的混合设备的示例协议栈的概念图;
[0039]图3是解说用于指示与从源混合设备向目的地混合设备传送的分组相关联的传输次序的示例操作的流程图;
[0040]图4是解说用于在目的地混合设备处对脱序分组进行检测和重排序的示例操作的流程图;
[0041]图5是图4的继续并且也描绘了用于在目的地混合设备处对脱序分组进行检测和重排序的示例操作;以及
[0042]图6是解说包括用于混合通信网络中的分组重排序的机制的电子设备的一个实施例的框图。
[0043]实施例描述
[0044]以下描述包括体现本发明主题内容的技术的示例性系统、方法、技术、指令序列、以及计算机程序产品。然而应理解,所描述的实施例在没有这些具体细节的情况下也可实践。例如,尽管在一些实施例中,分组排序机制可针对包括无线局域网(WLAN)设备(例如,IEEE802.11设备)、电力线网络设备(例如,HomePlug AV)以及以太网设备的混合通信网络来实现,但是在其他实施例中,分组排序机制可以在可包括实现其他标准/协议(例如,WiMAX等等)的其他合适类型的网络设备的混合通信网络中实现。在其他实例中,公知的指令实例、协议、结构和技术未被详细不出以免混淆本描述。
[0045]源通信设备通常按有序的分组顺序向目的地通信设备传送数据。作为对接收到的数据进行分析的一部分,目的地通信设备通常确保以与源通信设备传送分组相同的次序处理这些分组。常规的通信网络通常提供两个通信设备之间经过该网络的单条路线,因为源和目的地通信设备只利用单个接口来彼此通信。然而,混合通信网络通常被形成为跨不同网络技术和通信介质的通信网段(或子网)的互连。混合通信网络可包括具有多个网络接口且被配置成跨不同网络技术进行操作的混合设备。混合设备可使用多个网络接口中的任一个网络接口来经由混合通信网络传送/接收分组。因此,在源混合设备和目的地混合设备之间可以存在多条路线。例如,如果源和目的地混合设备各自包括三个网络接口,则在源和目的地混合设备之间可至少存在九条路线。因为混合通信网络可提供源和目的地混合设备之间的多条路线,并且因为源混合设备可同时使用多个网络接口(以及多个分组路线)来传送与同一分组流相关联的各个分组,所以一个或多个分组可能脱序到达目的地混合设备。脱序分组到达可扰乱目的地混合设备的较高协议层或应用的操作。现有的用于管理脱序分组的技术通常是针对包括单个网络接口的常规通信设备、针对只提供通信设备之间的单条路线的常规通信网络、或针对即使有多条路线可用也只使用单条路线的通信设备来优化的。在用于管理脱序分组的某些协议中,脱序分组到达可能触发源设备处的拥塞控制,该拥塞控制进而可能由于拥塞控制扼流机制而导致低吞吐量。此外,目的地混合设备所采用的某些通信协议(例如,用户数据报协议(UDP))可能不包括内建的分组重排序机制。在目的地混合设备处缺少用于管理脱序分组的可靠机制可能降低混合设备的性能和吞吐量。
[0046]在一些实施例中,混合设备可实现用于管理由于使用多条路线来递送分组流而导致的脱序分组到达的机制。在一个实施例中,源混合设备可指示与被调度为要传送到目的地混合设备的每一个分组相关联的序列标识符。源混合设备还可确定与被调度为要传送的每一个分组相关联的分组流。基于该分组流,源混合设备可以从多个分组路线中确定要用于传送这些分组的两个或更多分组路线。源混合设备可以在多条分组路线之间进行主动切换以便传送与同一分组流相关联的分组。响应于接收到分组,目的地混合设备可标识与同一分组流相关联且经由多条分组路线接收到的分组。目的地混合设备可使用与接收到的分组相关联的序列标识符以及与(属于同一分组流的)先前接收到的分组相关联的序列标识符来确定接收到的分组是否是脱序的。基于序列标识符,目的地混合设备可以对与分组流相关联的各个分组进行重排序,并且能够以适当的次序释放这些分组以便进行后续处理。如本文描述的用于指示分组次序和用于基于序列标识符来对脱序分组进行重排序的这些和其它机制可使得目的地混合设备能够管理可能由于使用多条分组路线来传送与同一分组流相关联的各个分组而导致的脱序分组到达。
[0047]图1是解说混合通信网络100中的示例分组重排序机制的框图。混合通信网络100包括混合设备102和112以及转发设备120和122。混合设备102包括发射机单元104和接收机单元106。发射机单元104包括序列指示单元108和路由单元110。混合设备112还包括发射机单元114和接收机单元115。接收机单元115包括重排序单元116和重排序缓冲器118。虽然未在图1中描绘,但混合设备102的接收机单元106也可包括重排序单元和重排序缓冲器。同样,虽然未在图1中描绘,但混合设备112的发射机单元114也可包括序列指示单元和路由单元。转发设备120和122可以是常规(也被称为旧式)通信设备或混合通信设备。在一些实现中,混合设备102和110可以包括多个网络接口,这些网络接口中的每一个网络接口将该混合设备连接到通信网络的不同分段(此处被称为通信网段或网段)。例如,混合设备102和110各自可以包括三个网络接口(例如电力线接口、以太网接口和WLAN接口),这些网络接口分别使得混合设备102能够连接到电力线通信网段、以太网和WLAN。
[0048]在一个实现中,如图2所描绘的,混合设备102和110的联网功能性可使用根据国际标准组织(ISO)开放系统互连(OSI)参考模型的“分层”办法来分成各个子功能。该组联网协议层可被称为“协议栈”。图2描绘了用于实现多个联网接口的混合设备的示例协议栈200。注意,尽管将就源混合设备102来描述图2的协议栈,但目的地混合设备112也可实现如图2所描绘的相同(或相似)的协议栈。在图2的示例协议栈200中,混合设备与两个通信接口相关联。因此,该协议栈200包括两个物理(PHY)层202和204以及对应的两个媒体接入控制(MAC)层206和208。MAC层206和PHY202层将混合设备耦合到一个通信网段222 (例如,以太网)。类似地,MAC层208和PHY层204将该混合设备耦合到另一个通信网段224 (例如,电力线通信网络)。注意,通信网段222和204各自可以是扩展的桥接网络(诸如混合通信网络)的一部分。协议栈200包括网络层212。网络层212可实现网际协议版本4 (IPv4)通信协议、网际协议版本6 (IPv6)通信协议、AppleTalk?通信协议或其它合适的网络层协议。协议栈200还包括网络层212和MAC层206和208之间的“混合适配层”210。在一个示例中,如图2所描绘的,混合适配层210可包括序列指示单元108、路由单元110、重排序单元116以及用于指示分组的传输次序和用于对脱序分组进行重排序的其它功能性。如将在以下图1和3-5中进一步描述的,序列指示单元108可确定和指示从(或将从)混合设备传送分组的顺序。路由单元110可确定用于将与分组流相关联的各个分组传送到目的地设备的两个或更多分组路线。分组流可包括传达与同一应用相关联且作为同一通信连接或会话的一部分的数据的一系列分组。响应于经由混合通信网络100接收到(与该分组流相关联的)各个分组,重排序单元116可执行用于以下动作的操作:确定与接收到的分组相关联的序列号,检测混合设备处的脱序分组到达,以及对脱序分组进行重排序(如果有必要的话)。协议栈200还包括跨网络层212操作的传输层214。传输层214可包括传输控制协议(TCP)、用户数据报协议(UDP)或取决于混合设备所实现的网络层协议的其它合适的传输层协议。协议栈200还描绘了利用其它协议层202-214来与其它设备通信的三个应用216、218和220。
[0049]在一些实现中,应用层(包括应用216、218和220)、传输层214和网络层212可被统称为“较高协议层”。MAC层206和208以及PHY层202和204可被统称为“较低协议层”。混合适配层210可实现用于管理混合设备中的与单组较高协议层(例如,所实现的每一种网络协议类型的单个网络层212和所实现的每一种传输协议类型的单个传输层214)但与多个联网接口(例如,多个PHY层和MAC层)的通信的功能性。在一个实现中,混合适配层210可以与下面的MAC层206和208对接,以管理联网资源并做出对协议栈中的较高层而言透明的迅速分组路线改变。混合适配层210还可使得较高协议层能够如同该源混合设备102仅包括单个MAC层和对应的单个PHY层那样来操作。注意,图2所描绘的协议栈200解说了混合设备102和110的架构的一个实施例。在其他实现中,混合设备102和110可包括其它合适的层或子层,这取决于可能实现的联网技术和可选协议。例如,某些联网技术可实现MAC层之上的以太网汇聚层。作为另一示例,某些联网技术可包括逻辑链路控制(LLC)协议层。此外,一个或多个其它子层可执行此处在图1、3-6中描述的功能性。回头参考图1,混合设备102 ( “源混合设备”)可提供分组顺序的指示(如将在阶段A中描述的),以使得能够在混合设备112 ( “目的地混合设备”)处进行分组重排序(在阶段B-D中描述)。
[0050]在阶段A,源混合设备102的序列指示单元108确定要在将经由两个或更多分组路线向目的地混合设备112传送的关联于一分组流的多个分组之中的每一个分组中插入序列标识符。序列标识符可以是时间戳、序列号或另一种类型的序列标识符。在一些实现中,源混合设备102的较高协议层(例如,传输协议层214)可以在向混合适配层210提供被调度为要向目的地混合设备112传送的分组之前在这些分组中插入序列标识符。由较高协议层插入的序列标识符此处被称为“主序列标识符”。在阶段A,混合适配层210的序列指示单元108可确定是否要向其中每一个分组添加与主序列标识符相异的序列标识符(例如,由混合适配层210生成)。由混合适配层210(即,序列指示单元108)生成和插入的序列标识符此处被称为“副序列标识符”。如将在以下参考图3进一步描述的,序列指示单元108可确定分组是否包括主序列标识符以及是否要添加与分组相关联的副序列标识符。
[0051]在一些实现中,混合通信网络100可提供源混合设备102和目的地混合设备112之间的多个分组路线。如图1的示例中所描绘的,混合通信网络100可经由转发设备120和122来提供源混合设备102和目的地混合设备112之间的三个分组路线。为了沿分组路线124传送分组,源混合设备102将分组传送到转发设备120,转发设备120进而将分组传送到目的地混合设备112。为了沿分组路线126传送分组,源混合设备102将分组传送到转发设备122,转发设备122进而将分组传送到目的地混合设备112。为了沿分组路线128传送分组,源混合设备102将分组传送到转发设备120。转发设备120将分组传送到转发设备122,转发设备122进而将分组传送到目的地混合设备112。在一些实现中,如图1所描绘的,分组路线124、126和128可以在将分组从源混合设备102路由至目的地混合设备112的转发设备(以及其它中间通信设备)方面有所不同。在其他实现中,分组路线124、126和128也可以在以下各项有所不同:从其传送分组的网络接口( “源通信接口”)、接收到分组的网络接口(“目的地通信接口”)和/或用于传送分组的通信网段。如将在图3中进一步描述的,在一些实现中,路由单元110可以至少部分地基于与用于传送与特定分组流相关联的各个分组的多个分组路线中的每一个分组路线相关联的路线特性(例如,话务量、拥塞、性能等)来在这些分组路线之间进行切换。在另一实现中,路由单元110可以至少部分地基于与要传送的分组相关联的分组流来选择用于向目的地混合设备112传送分组的两个或更多分组路线。在序列指示单元108将副序列标识符插入被调度为要传送的分组中之后,路由单元110可经由所选分组路线(例如,通过在两个或更多所选分组路线之间交替传送分组)向目的地混合设备112传送分组。目的地混合设备112可接收分组并可执行以下在阶段B-D中描述的操作,以便至少部分地基于序列标识符来对接收到的分组进行重排序(如果有必要的话)。
[0052]在阶段B,目的地混合设备112的重排序单元116至少部分地基于与该多个接收到的分组相关联的序列标识符来检测经由这两个或更多分组路线从源混合设备接收到的关联于该分组流的该多个接收到的分组中的一个或多个分组的脱序递送。响应于经由这两个或更多分组路线从源混合设备102接收到多个分组,重排序单元116可以读取与每一个接收到的分组相关联的序列标识符。在一些实现中,重排序单元116可将与接收到的分组相关联的序列标识符同与一个或多个先前接收到的关联于同一分组流的分组相关联的序列标识符(例如,与最后一个接收到的分组相关联的序列标识符)进行比较。相应地,重排序单元116可确定接收到的分组对于先前接收到的分组是否是脱序的以及是否应执行重排序操作。例如,对于特定分组流,重排序单元116可能在接收到具有序列号“7”的分组之后接收到具有序列号“5”的分组。因此,重排序单元116可确定接收到的分组(具有序列号5)未按照先前接收到的分组的顺序。
[0053]在阶段C,响应于检测到经由这两个或更多分组路线接收到的关联于该分组流的该多个分组中的一个或多个分组的脱序递送,重排序单元116基于与该多个分组相关联的序列标识符来对该多个分组的至少一子集进行重排序。在一些实现中,对于未按照同一分组流中的先前接收到的分组的顺序的每一个接收到的分组,重排序单元116将该接收到的分组存储在重排序缓冲器118中,直到它能够基于序列号来重新建立正确的次序。重排序单元116可执行任何合适的重排序技术以在重排序缓冲器118中对接收到的分组以及一个或多个先前接收到的分组进行重排序。注意,在一些实现中,如将在图4-5中进一步描述的,响应于确定接收到的分组未按照先前接收到的分组的顺序,重排序单元116可确定该分组是否是在已提供了该序列中的后续分组以供较高协议层处理之后接收到的。如果是,则重排序单元116可丢弃此接收到的分组。否则,重排序单元116可将该分组存储在重排序缓冲器118中并且可以对重排序缓冲器118中的分组进行重排序。
[0054]在阶段D,重排序单元116响应于确定要提供接收到的分组以供后续处理来释放存储在重排序缓冲器118中的每一个接收到的分组。如将在图5中进一步描述的,重排序单元116可以响应于确定一个或多个分组在重排序缓冲器118中是按顺序的,在预定时间间隔后,或者在重排序缓冲器118达到阈值容量时提供该一个或多个分组以供较高协议层进行后续处理。
[0055]图3是解说用于指示与从源混合设备向目的地混合设备传送的分组相关联的传输次序的示例操作的流程图(“流程”)300。流程300始于图3中的框302。
[0056]在框302,源混合设备确定要将多个分组传送到目的地混合设备。参考图1的示例,源混合设备102可确定要将该多个分组传送到目的地混合设备112。该流程在框304继续。
[0057]在框304,确定是否要向被调度为要传送到目的地混合设备的该多个分组添加副序列标识符。如上所述,在一些实现中,源混合设备102的较高协议层(例如,传输协议层214)可以在向混合适配层210提供被调度为要传送到目的地混合设备112的该多个分组之前在这些分组之中的每一个分组中插入主序列标识符。在框304,混合适配层210的序列指示单元108可确定是否要在该多个分组之中的每一个分组中插入相关联的副序列标识符。在一些实现中,序列指示单元108可确定分组是否已经包括主序列标识符(先前由较高协议层插入)。例如,如果源混合设备102实现TCP,则TCP传输层214可以在各分组中插入32字节主序列号。如果序列指示单元108确定分组包括主序列标识符,则序列指示单元108可确定不要在这些分组中插入副序列标识符。作为另一示例,如果源混合设备102实现UDP,则UDP传输层214可能并不在各分组中插入主序列标识符。如果序列指示单元108确定该多个分组不包括主序列标识符,则序列指示单元108可确定要在各分组中插入副序列标识符。
[0058]在一些实施例中,序列指示单元108可使用任何合适的归类技术来确定与被调度为要传送的该多个分组相关联的(诸)分组流,并相应地确定是否要在这些分组中插入序列标识符、要在这些分组中插入什么类型的序列标识符、以及应被插入这些分组中的序列标识符的值。例如,基于对被调度传送的多个分组进行分析,序列指示单元108可确定被调度为要传送的分组的一子集是第一分组流(例如由第一应用生成)的一部分,而其余分组是第二分组流(例如由第二应用生成)的一部分。序列指示单元108还可确定第一应用使用TCP (其插入主序列标识符的)而第二应用使用UDP (其不插入主序列标识符)。相应地,序列指示单元108可确定不要向作为第一分组流的一部分的那些分组添加副序列标识符,并且可确定要向作为第二分组流的一部分的那些分组添加副序列标识符。如果确定了要向分组添加副序列标识符,则该流程在框306继续。否则,如果确定不要向分组添加副序列标识符,则源混合设备102可依靠目的地混合设备112使用主序列标识符来检测脱序分组递送并对脱序分组进行重排序,并且流程在框308继续。
[0059]在框306,源混合设备将副序列标识符插入分组流的被调度为要向目的地混合设备传送的该多个分组中。在一些实现中,序列指示单元108可将适当的副序列号插入与分组流相关联的每一个分组中。(对于要传送的每一个分组)序列指示单元108可使得该分组的序列号字段递增“I”、递增该分组中所包含的字节的数量、或递增另一合适的递增值。在另一实现中,序列指示单元108可将适当的副时间戳(或时间戳和序列号两者)插入与分组流相关联的每一个分组中。序列指示单元108可采用各种技术来将副序列标识符插入被调度为要传送的分组中。例如,序列指示单元108可使用为指示分组次序而保留的特殊虚拟局域网(VLAN)标签编码、基于预定EtherType (以太类型)值的新标签、分组报头中的备用/未使用分组字段、分组报头中的新分组字段、或其它合适的技术来将副序列标识符插入分组中。具体而言,可以使用VLAN标签来插入副序列标识符,可以使用VLAN标签来对副序列标识符进行编码,可以使用特殊的保留编码来对副序列标识符连同其它信息(例如,VLAN标识符或流标识信息)进行编码。
[0060]在一些实现中,序列指示单元108可周期性地传送(例如,在单独的序列表分组中)分组签名或其它分组归类信息以及源混合设备102将传送分组的次序的指示。在一个示例中,序列表分组可包括与被调度为要传送的多个分组(例如,分组流的预定数量的分组)相关联的分组签名和对应的副序列标识符。在另一个示例中,序列表分组可包括与(分组流中的)已经被传送的多个分组相关联的分组签名和对应的主序列标识符。序列指示单元108可采用任何合适的技术来确定分组签名。例如,可使用循环冗余校验(CRC)计算方法(或独立于分组路线的另一种合适的计算方法)来生成分组签名(例如,CRC值)。如将在以下图4-5中进一步描述的,目的地混合设备112可使用该序列表分组来确定应按其来组织和处理这些分组的正确次序。
[0061]在一些实现中,除了指示将(或已经)传送的分组的顺序之外,序列指示单元108还可传送与分组相关联的分组流的指示(例如,作为该分组的一部分、在序列表分组中或者在另一不同的分组中)。与分组相关联的流标识信息可使用特殊的保留VLAN标签编码、基于预定EtherType值的新标签、备用/保留的分组报头字段、和/或分组中的新分组报头字段来添加。还注意,在一些实现中,与分组的第一传输和该分组的后续重传相关联的序列标识符可以是相同的,并且序列标识符可指示相对的传送顺序。该流程在框308继续。
[0062]在框308,确定用于传送与同一分组流相关联的该多个分组的两个或更多分组路线。响应于序列指示单元108将副序列标识符插入这些分组中,流程300从框306移至框308。响应于确定不应在这些分组中插入副序列标识符(例如,因为有主序列标识符可用),流程300还从框304移至框308。在一些实现中,路由单元110可以至少部分地基于与用于传送与特定分组流相关联的各个分组的多个分组路线中的每一个分组路线相关联的路线特性(例如,话务量、拥塞、性能等)来在这些分组路线之间进行切换。经由多个分组路线来传送与单个分组流相关联的分组可提高集总吞吐量,减少递送等待时间,并允许静态或动态网络链路负载平衡以便高效地使用可用网络资源。例如,路由单元110可确定分组路线124、126和128可被用于传送与第一分组流相关联的分组。路由单元110可确定(例如,基于对路线特性进行分析来确定)要经由分组路线124传送与该分组流相关联的分组中的1/5,经由分组路线128传送与该分组流相关联的分组中的另一 1/5,并经由分组路线126传送与该分组流相关联的分组中的其余3/5。换言之,一旦确定要向目的地混合设备112传送分组流的5个分组,路由单元110可经由分组路线124传送第一分组,经由分组路线128传送第二分组,并经由分组路线126传送其余3个分组。作为另一示例,路由单元110可以在逐个分组的基础上在使用分组路线126和分组路线128之间交替。换言之,路由单元110可以沿分组路线126按顺序传送分组“n”、“n+2”等,并且可以沿着分组路线128传送分组“n+l”、“n+3”等,以便为该分组流获得最高吞吐量。如上所述,如果与分组路线128相关联的递送等待时间大于与分组路线126相关联的递送等待时间,则沿着分组路线128在时间上更早传送的分组可能比沿着分组路线126传送的分组到达得晚,从而导致目的地混合设备112处的脱序分组到达。该流程在框310继续。
[0063]在框310,经由这两个或更多分组路线将该多个分组传送到目的地混合设备。例如,路由单元110可以于在框308选择的适当分组路线上将该多个分组传送(或者可使传输单元传送)到目的地混合设备112。该流程从框310结束。响应于接收到与同一分组流相关联的该多个分组,目的地混合设备可基于序列标识符来对各分组进行重排序(如果有必要的话),如以下将在图4-5中描述的。
[0064]尽管图3描述了序列指示单元108基于分组是否包括主序列标识符来确定是否要将副序列标识符插入这些分组中,但实施例不受此限定。在其他实施例中,序列指示单元108可将副序列标识符插入分组中,而不管这些分组是否包括主序列标识符。这可简化用于在源混合设备102处指示分组次序以及用于在目的地混合设备112处对分组进行重排序的操作。
[0065]图4和图5描绘了解说用于在目的地混合设备处对脱序分组进行检测和重排序的示例操作的流程图400。流程400始于图4中的框402。
[0066]在框402,目的地混合设备接收源混合设备传送的分组。参考图1的示例,目的地混合设备112的重排序单元116可以沿一分组路线(从源混合设备102)接收与分组流相关联的分组。在一些实现中,该分组可以是与分组流相关联的、从源混合设备102经由两个或更多分组路线传送到目的地混合设备112的多个分组之一。例如,与分组流相关联的多个分组的一子集可经由第一分组路线接收,而该多个分组的其余子集可经由第二分组路线接收。作为另一示例,源混合设备102可以在逐个分组的基础上交替分组传输。源混合设备102可经由第一分组路线传送与分组流相关联的多个分组中的第一分组,在第二分组路线上传送与该分组流相关联的该多个分组中的第二分组,经由第一分组路线传送与该分组流相关联的该多个分组中的第三分组,以此类推。该流程在框404继续。
[0067]在框404,确定是否检测到与接收到的分组相关联的副序列标识符。例如,重排序单元116可确定接收到的分组是否包括副序列标识符。如上所述,在一些实现中,副序列标识符是由源混合设备102的混合适配层210添加到分组的并且可包括与该分组相关联的序列号、时间戳和/或其它合适的序列标识符。在一些实现中,重排序单元116可读取与接收到的分组相关联的一个或多个报头字段以确定接收到的分组是否包括副序列标识符。重排序单元116还可确定是否从源混合设备102接收到包括与对应的一个或多个分组相关联的一个或多个副序列标识符的列表的序列表分组(以上在图3中描述)。如果接收到序列表分组,则在框404,重排序单元116可确定是否能从该序列表分组中标识出与接收到的分组相关联的副序列标识符。如果检测到与接收到的分组相关联的副路由序列标识符,则流程在框408处继续。否则,该流程在框406继续。
[0068]在框406,如果未检测到副序列标识符,则检测由源混合设备的较高协议层插入的与该分组相关联的主序列标识符。如果重排序单元116确定接收到的分组不包括副序列标识符,则流程400从框404移至框406。在一些实现中,源混合设备102的(常规协议栈中的)较高协议层中的一个或多个协议层(网络层212、传输层214、应用216、218、220)可将主序列标识符插入被调度为要传送的分组中。例如,如果源混合设备102实现TCP,则TCP传输层212可以在被调度为要传送的分组中插入主序列号。重排序单元116可“窥探”接收到的分组的报头字段和/或可采用其它分组检视机制来确定与接收到的分组相关联的主序列标识符。在重排序单元116确定与接收到的分组相关联的主序列标识符之后,流程在框410处继续。
[0069]在框408,确定由源混合设备的混合适配层插入的与分组相关联的副序列标识符。如果重排序单元116确定接收到的分组包括副序列标识符,则流程400从框404移至框408。如上文在图3中描述的,源混合设备102的混合适配层210可取决于与被调度为要传送的分组相关联的分组流来在该分组中插入副序列标识符。在一个实现中,重排序单元116可读取接收到的分组的适当的报头字段以确定与接收到的分组相关联的副序列标识符。在另一个实现中,重排序单元116可使用先前接收到的序列表分组来确定与接收到的分组相关联的副序列标识符。在该实现中,重排序单元116可计算分组签名(例如,CRC值),从序列表分组中标识该分组签名,并读取与在序列表分组中所标识出的分组签名相对应的副序列标识符。在另一实现中,重排序单元116可暂时将接收到的分组存储在重排序缓冲器118中,等待从源混合设备102接收序列表分组,并响应于接收到序列表分组来确定与接收到的分组相关联的副序列标识符。在重排序单元116确定与接收到的分组相关联的副序列标识符之后,流程在框410处继续。
[0070]在框410,基于与分组相关联的序列标识符,确定在目的地混合设备处是否检测到脱序分组递送。在一些实现中,接收方重排序单元116可将接收到的分组分拣到各个分组流中(例如,基于与接收到的分组相关联的报头中的一个或多个字段,基于序列表分组中的信息等)。重排序单元116可使用分组归类技术和/或分组报头中的信息(例如,由源混合设备102插入)来标识属于特定分组流的分组。重排序单元116然后可确定与在框402接收到的分组属于同一分组流的一个或多个先前接收到的分组的序列标识符(例如,主序列标识符或副序列标识符)。在一些实现中,重排序单元116可跟踪(例如,在预定存储器位置)与关联于该分组流的最后一个接收到的分组相关联的序列标识符。在另一实现中,响应于确定与接收到的分组相关联的序列标识符,重排序单元116可检查重排序缓冲器118并且可确定与存储在重排序缓冲器118中的分组相关联的序列标识符。例如,重排序单元116可确定接收到的分组的序列号为50。重排序单元116可确定最后一个接收到的分组的序列号为45。因此,重排序单元116可确定接收到的分组被脱序或即未根据预定次序地递送到目的地混合设备112 ( “脱序分组递送”)。替换地,如果重排序单元116确定最后一个接收到的分组的序列号是49,则重排序单元116可确定没有检测到脱序分组递送。如果与接收到的分组相关联的序列标识符大于预期序列号(基于接收到的序列中的最后一个分组),则检测到脱序分组递送并且流程在图5中的框412处继续。否则,该流程在图5中的框422处继续。
[0071]在图5中的框412,确定接收到的分组在顺序上是否早于在目的地混合设备112处已经被提供以供进行处理的最后一个分组。如果重排序单元116确定检测到脱序分组递送,则流程400从图4中的框410移至图5中的框412。在框412,重排序单元116可确定与已被提供以供较高协议层处理的(与在框402接收到的分组属于同一分组流的)最后一个分组相关联的序列标识符。重排序单元116然后可确定接收到的分组的序列标识符是否小于已被提供以供处理的最后一个分组的序列标识符。例如,重排序单元116可确定接收到的分组的时间戳为16:20:00。重排序单元116还可确定与存储在重排序缓冲器118中的分组相关联的时间戳和/或已被提供以供处理的最后一个分组的时间戳的范围。如果已被提供以供处理的最后一个分组的时间戳是16:25:00(即,大于当前接收到的分组的时间戳),则重排序单元116然后可确定接收到的分组在顺序上早于已被提供以供在目的地混合设备112处进行处理的最后一个分组。因此,该流程在框414继续。然而,如果已被提供以供处理的最后一个分组的时间戳是16:19:00( S卩,小于当前接收到的分组的时间戳),则重排序单元116然后可确定接收到的分组在顺序上晚于已被提供以供处理的最后一个分组。因此,该流程在框416继续。
[0072]在框414,丢弃接收到的分组。如果重排序单元116基于序列标识符来确定接收到的分组在顺序上早于在目的地混合设备112处已被提供以供进行处理的最后一个分组,则流程400从框412移至框414。例如,重排序单元116可确定不要向较高协议层提供此接收到的分组并且可以在已经向目的地混合设备112提供在顺序上晚于此接收到的分组的分组以供处理的情况下丢弃该分组。作为另一示例,重排序单元116可以在该分组是在用于接收该分组的预定时间间隔逝去后接收到的情况下丢弃该分组。该流程在框418继续。
[0073]在框416,将接收到的分组存储在重排序缓冲器中,并且根据序列标识符来对接收到的分组进行重排序。如果重排序单元116确定接收到的分组在顺序上晚于已被提供以供处理的最后一个分组,则流程400从框412移至框416。重排序单元116可将接收到的分组存储在重排序缓冲器118中。在一些实现中,重排序缓冲器118的大小可至少部分地基于以下各项来动态(或静态)配置:往返行程延迟、在源混合设备102和目的地混合设备112所采用的通信协议支持多次重传尝试情况下的多个往返行程延迟、接收到序列中的最后一个分组与接收到脱序分组之间的最大可接受延迟、重传延迟、混合通信网络100中的预期延迟、以及其它此类因素等。例如,如果最大可接受往返行程延迟是IOOms且每一个分组的最大长度是20ms,则重排序缓冲器118的大小(例如,可被存储在重排序缓冲器118中的分组数量)可被选择成使得在等待序列中的下一个分组到达目的地混合设备112的同时至少有4个脱序分组可被存储在重排序缓冲器中。
[0074]在一个实现中,重排序单元116可基于序列标识符来对重排序缓冲器118中的分组进行重排序,以使得与同一分组流相关联的分组按顺序(或近乎按顺序)被递送到较高协议层和应用。例如,重排序单元116可确定接收到的分组的序列号为50并且重排序缓冲器118包括具有序列号47、48、52和54的分组。相应地,重排序单元116可通过将具有序列号50的接收到的分组插入在具有序列标识符48和52的分组之间来对分组进行重排序。在另一实现中,重排序单元116可以按接收到分组的次序将这些分组存储在重排序缓冲器118中,并且可更新与重排序缓冲器118中的每一个条目相关联的列表或标志以指示应释放所存储的分组以供处理的次序。参考上述示例,在重排序缓冲器118包括具有序列号47、48,52和54的分组的情况下,重排序单元116可分别赋予标签“P1”、“P2”、“P3”和“P4”以指示应释放这些分组以供处理的次序。响应于接收到具有序列号50的分组,重排序单元116可将具有序列号50的该分组存储在具有序列号54的分组之后。重排序单元116可通过更新与存储在重排序缓冲器118中的分组相关联的标签来指示新分组次序。换言之,重排序单元116可以分别向具有序列号47、48、50、52和54的分组赋予标签“Ρ1”、“Ρ2”、“Ρ3”、“Ρ4”和新标签“Ρ5”。如将在下文中在框420-422中描述的,重排序单元116可将分组从重排序缓冲器118释放到目的地混合设备112处的较高协议层和应用,以使得(在源混合设备102处建立的)原始分组次序得以维持。该流程在框418继续。
[0075]在框418,确定是否应提供一个或多个分组以供后续处理。例如,重排序单元116可确定是否应向目的地混合设备112的较高协议层提供来自重排序缓冲器118的分组以供后续处理。如上所述,在维护重排序缓冲器118时,重排序单元116可尝试按照与源混合设备102传送与一分组流相关联的分组相同的次序来释放(以供后续处理)这些分组。在一些实现中,重排序单元116可响应于检测到按正确次序的两个或更多分组来确定要向较高协议层提供重排序缓冲器118中的分组。在另一实现中,重排序单元116可响应于检测到接收到的分组按照已被提供给较高协议层的最后一个分组的顺序来直接将接收到的分组提供给较高协议层(而不存储在重排序缓冲器118中)。
[0076]在一些实现中,为了防止目的地混合设备112无限地等待为了接收到被放弃/丢弃的分组(或防止过度的分组递送延迟),重排序单元116可采用超时机制并且可以在预定的缓冲器时间间隔逝去后从重排序缓冲器118中释放分组。该预定的缓冲器时间间隔可至少部分地基于以下各项来确定:预期往返行程确认时间、重传延迟和/或用于递送与一分组流相关联的分组的各分组路线之间的递送等待时间的最大差异。例如,如果目的地混合设备112在预定的缓冲器时间间隔内未能接收到按顺序的分组,则重排序单元116可确定分组传输(或重传)失败、该分组将不会被递送,并且可以从重排序缓冲器118中释放具有比此失败分组更大的序列号的分组。在另一实现中,重排序单元116可以在重排序缓冲器118变满或超出缓冲器阈值水平时释放分组以供后续处理。缓冲器阈值水平可基于以下各项来选择:可以在目的地混合设备112处累积的最大数据量、用于递送与一分组流相关联的分组的各分组路线的递送等待时间、以及其它此类因素。如果确定应提供一个或多个分组以供较高协议层进行后续处理,则流程在框420处继续。否则,该流程结束。
[0077]在框420,标识要被释放以供目的地混合设备的较高协议层进行后续处理的一个或多个分组。该流程在框422继续。
[0078]在框422,按适当顺序提供一个或多个分组以供目的地混合设备的较高协议层进行处理。例如,重排序单元116可以按照适当顺序提供接收到的分组和/或来自重排序缓冲器118的一个或多个分组以供目的地混合设备112的较高协议层进行处理。在一些实现中,被释放到较高协议层的分组序列可以是按序的,但该序列在一个或多个丢失分组未被接收到(例如在预定的缓冲器时间间隔期间)或者已被丢弃的情况下可以不包括这些丢失分组。例如,如果在预定的缓冲器时间间隔期间或者在缓冲器达到其阈值容量之前没有接收到具有序列号5的分组,则可以按1、2、3、4、6、7等的次序向较高协议层提供来自重排序缓冲器118的分组。该流程从框422结束。
[0079]注意,尽管图4描述了重排序单元116确定(在框404)接收到的分组是否包括副序列标识符,但是诸实施例不受此限定。在如上所述的一些实施例中,源混合设备102可被配置成将副序列标识符插入分组中,而不管该分组是否包括主序列标识符。在该实施例中,目的地混合设备112可被配置成使用副序列标识符来对脱序分组进行检测和重排序,而不管该分组是否包括主序列标识符。在另一实施例中,目的地混合设备112可确定是要使用主序列标识符还是副序列标识符来对脱序分组进行检测和重排序。
[0080]应理解,图1-5是旨在帮助理解实施例的示例,而不应被用于限定实施例或限定权利要求的范围。诸实施例可执行附加操作、执行较少操作、以不同次序执行操作、并行地执行操作、以及以不同方式执行一些操作。尽管图5描述了目的地混合设备112响应于检测到脱序分组递送而对分组进行重排序,但各实施例不受此限定。在一些实施例中,取决于由源和目的地混合设备实现的通信协议、接收分组的应用等,在目的地混合设备112处可能不要求对较高协议层的按序分组递送。在一些实施例中,在确定是否在目的地混合设备112处检测到脱序分组递送(在图4的框410)之前,可以确定向目的地混合设备112的较高协议层按序地递送分组是否是必要或有用的。例如,混合适配层210的重排序单元116在确定了内建于较高协议层(例如,IPv4协议套集中的TCP)中的重排序机制足以处置脱序分组递送的情况下可以不执行以上在图4-5中描述的各项操作。作为另一示例,如在图4-5中描述的分组重排序机制可以在确定了较高协议层不包括用于对脱序分组进行重排序的功能性(或包括的功能性非常有限)的情况下执行。
[0081]在一些实现中,源混合设备102可被配置成在切换到第二分组路线(例如,分组路线126)之前等待对在第一分组路线(例如,分组路线124)上传送的分组的确认(例如,来自目的地混合设备112)。源混合设备102可以在第一分组路线124上重传分组直到接收到确认或者直到预定时间间隔逝去。源混合设备102可以直到在第一分组路线124上传送的分组已得到确认才经由第二分组路线126来传送分组。然而,在其他实现中,源混合设备102可以不等待来自目的地混合设备112的确认。源混合设备102可改为在经由第一分组路线124传送最后一个分组之后在不等待确认的情况下经由第二分组路线126来传送分组。例如,如果源混合设备102是每一个分组(或每隔一个分组)地在分组路线之间切换,则源混合设备102可以不等待来自目的地混合设备112的确认。替换地,在一些实现中,源混合设备102可经由第二分组路线126来传送第一分组路线124的未经确认的分组。
[0082]在一些实现中,源混合设备102可以在一个或多个替代分组路线(例如,分组路线126)上重复经由指定分组路线(例如,分组路线124)传送的分组。可通过将源混合设备101配置成传送一个或多个重复分组来减少与一分组路线相关联的递送特性(例如,吞吐量、等待时间、差错率、可靠性等)上的降级的影响。在一个示例中,路由单元110可通过沿着用于传送与一分组流相关联的各个分组的这两个或更多分组路线(例如,经由分组路线124和分组路线126两者)传送同一分组的副本来重复该分组,以提高该分组被成功地递送到目的地混合设备112的概率和/或减少分组递送等待时间。在一些实现中,路由单元110可确定要(在另一分组路线126上)重传先前经由分组路线之一 124传送的预定数量的分组。在另一实现中,路由单元110可确定要重复沿着源混合设备102和目的地混合设备112之间的特定分组路线传送的分组。例如,路由单元110可以只重复经由分组路线124传送的分组。路由单元110可确定不要重复经由分组路线126和128传送的分组。在另一实现中,路由单元110可以在经由分组路线124传送的分组没有得到目的地混合设备112确认的情况下确定要在另一分组路线126上重传这些分组。例如,路由单元110可确定未在预定确认时间间隔内接收到对经由分组路线124传送的分组的确认。相应地,路由单元110可经由另一分组路线126将该分组重传到目的地混合设备112。
[0083]在目的地混合设备112处,重排序单元116可使用由源混合设备102的序列指示单元108 (或较高协议层)插入在分组中的序列标识符来检测重复分组。例如,如果重复分组被赋予与原始分组相同的序列标识符,则接收到具有相同的序列标识符的多个分组可指示存在重复分组。在另一实现中,重排序单元116可基于分组签名来检测重复分组。例如,如果重排序单元116检测到具有相同的分组签名的两个分组,则这可指示这两个检测到的分组是彼此重复的。重排序单元116可维护与近期接收到的分组相关联的分组签名的记录,并且可使用接收到的分组签名的该记录来检测重复分组。重排序单元116然后可丢弃重复的分组。
[0084]尽管未在图1-5中描绘,但注意在一些实现中,源混合设备102可采用时延技术来维持目的地混合设备112处的适当的分组次序。参考图1的示例,路由单元110可以至少部分地基于与被调度为要传送的分组相关联的分组流、路线特性等来采用多个分组路线传送分组。在一些实现中,在沿着第一分组路线124传送最后一个分组后,发射机处理单元106可等待(并阻止分组传输)长达预定等待时间间隔以确保经由第一分组路线124传送的所有分组都在分组路线改变之前到达目的地混合设备112。预定等待时间间隔可以是经由第一分组路线124传送最后一个分组与经由下一个分组路线126传送第一个分组之间的持续时间,在该持续时间期间源混合设备102可以不向目的地混合设备112传送任何分组。例如,响应于确定在分组路线124和126上交替传输与一分组流相关联的分组,路由单元110可以在分组路线124上传输第一分组,等待预定时间间隔,在分组路线126上传送第二分组,等待预定时间间隔,在分组路线124上传送第三分组,以此类推。预定等待时间间隔可基于以下各项来动态(或静态)配置:通过混合通信网络100经由当前分组路线124来递送与特定流相关联的分组可能需要的估计时间、在其中可以从目的地混合设备112接收到较高协议层确认分组的最大时间间隔、当前分组路线延迟、与混合通信网络100相关联的等待时间、与被指派传送与一分组流相关联的分组的分组路线相关联的等待时间、接收到序列中的最后一个分组与接收到脱序分组之间的最大延迟、重传延迟、重排序缓冲器118的大小和/或其它此类因素。在一些实现中,如果源混合设备102和目的地混合设备112所采用的通信协议支持多次重传尝试,则预定等待时间间隔可以至少部分地基于多个往返行程延迟来确定。在一些实现中,目的地混合设备112可检测预定等待时间延迟并且可确定与该分组流相关联的分组路线的改变。在其它实现中,目的地混合设备112可能无法显式地检测预定等待时间延迟或分组路线改变。通过在用于传送与该分组流相关联的分组的分组路线的改变之间强制实施预定等待时间延迟,源混合设备102能够尽力确保在目的地混合设备112处以正确的次序接收到从源混合设备102传送的分组。此外,注意在一些实现中,源混合设备102可基于目的地混合设备112的处理能力来确定是否要使用上述时延机制。例如,如果目的地混合设备112未被配置成检测序列标识符和/或如果目的地设备110未被配置成对脱序分组进行重排序,则源混合设备102可确定要使用时延机制来使得能够在目的地混合设备112处按序地接收到分组。
[0085]在一些实施例中,时延机制和副序列标识符的传输可以是互斥操作。然而,在其他实施例中,除了传送与分组相关联的副序列标识符之外,源混合设备102还能够强制实施预定等待时间延迟(如上所述)。在其他实施例中,源混合设备102在分组包括主序列标识符的情况下能够强制实施预定等待时间延迟但可不实现副序列标识符。在其他实现中,源混合设备102能够实施预定等待时间延迟,并且即使在分组包括主序列标识符的情况下亦能实现副序列标识符。
[0086]虽然图5描述了用于在丢失的分组在预定的缓冲器时间间隔逝去后被接收到的情况下和/或在顺序上晚于接收到的丢失分组的分组已经被释放到较高协议层的情况下丢弃丢失分组的操作,但在一些实现中,重排序单元116可以将所有接收到的分组提供给较高协议层,而不管接收到的分组在顺序上早/晚于已经被提供给较高协议层的分组。在该实现中,重排序单元116可以只丢弃已经被提供给较高协议层的重复分组。然而,在其他实现中,通过观察确认分组和/或通过经由到达定时(例如,过度延迟的帧可被假定为重传)、到达接口、指示分组重传的报头或其它分组报头字段来推断出重传,重排序单元116能够显式地检测重传的分组。重排序单元116可以只提供重传的分组以供后续处理,而不管顺序上较晚的分组是否已经被提供给较高协议层。最后,注意序列指示单元108、路由单元110、重排序单元116和重排序缓冲器118可以与常规协议栈(例如,传输层214等)中实现的任何常规的较高层重排序机制分开并且作为对这些上层重排序机制的补充。
[0087]各实施例可采取全硬件实施例、全软件实施例(包括固件、常驻软件、微代码等)、或组合了软件与硬件方面的实施例的形式,其在本文可全部被统称为“电路”、“模块”或“系统”。此外,本发明主题内容的实施例可采取实施在任何有形表达介质中的计算机程序产品的形式,该有形表达介质具有实施在该介质中的计算机可使用程序代码。所描述的实施例可作为可包括其上存储有指令的机器可读介质的计算机程序产品、或软件来提供,这些指令可用来编程计算机系统(或其他(诸)电子设备)以根据实施例来执行过程——无论本文中是否有所描述,因为本文中未枚举每种可构想到的变体。机器可读介质包括用于以机器(例如,计算机)可读的形式(例如,软件、处理应用)来存储或传送信息的任何机构。机器可读介质可以是机器可读存储介质、或机器可读信号介质。例如,机器可读存储介质可包括但不限于磁存储介质(例如,软盘);光存储介质(例如,CD-ROM);磁光存储介质;只读存储器(ROM);随机存取存储器(RAM);可擦除可编程存储器(例如,EPROM和EEPR0M);闪存;或适于存储电子指令的其它类型的有形介质。机器可读信号介质可包括其中实施有计算机可读程序代码的所传播数据信号,例如电、光、声、或其他形式的所传播信号(例如,载波、红外信号、数字信号等)。实施在机器可读信号介质上的程序代码可以使用任何合适的介质来传送,包括但不限于有线、无线、光纤缆线、RF或其他通信介质。
[0088]用于执行诸实施例的操作的计算机程序代码可以用一种或更多种编程语言的任何组合来编写,包括面向对象编程语言(诸如Java、Smalltalk、C++或类似语言)、以及常规过程编程语言(诸如“C编程语言或类似编程语言”)。该程序代码可完全地在用户的计算机上、部分地在用户的计算机上、作为自立软件包、部分地在用户的计算机上并且部分地在远程计算机上、或者完全地在远程计算机或服务器上执行。在后一情景中,远程计算机可通过任何类型的网络(包括局域网(LAN)、个域网(PAN)、或广域网(WAN))连接到用户的计算机,或者该连接可(例如,使用因特网服务供应商来通过因特网)对外部计算机进行。
[0089]图6是包括用于在混合通信网络中基于与分组相关联的序列标识符来进行分组重排序的机制的电子设备600的一个实施例的框图。在一些实现中,电子设备600可以是以下各项之一:膝上型计算机、平板计算机、上网本、移动电话、智能设施、电力线通信设备、游戏控制台、网络桥接设备、或包括被配置成跨多个通信网段进行通信的混合通信单元的其他电子系统。电子设备600包括处理器单元602 (可能包括多个处理器、多个内核、多个节点、和/或实现多线程处理等等)。电子设备600包括存储器单元606。存储器单元606可以是系统存储器(例如,高速缓存、SRAM、DRAM、零电容器RAM、双晶体管RAM、eDRAM、EDO RAM、DDR RAM、EEPROM、NRAM、RRAM、SONOS, PRAM等中的一者或多者)或者上面已经描述的机器可读介质的可能实现中的任何一个或多个。电子设备600还包括总线610 (例如,PC1、ISA、PC1-Express、HyperTransport?、InfiniBand?、NuBus, AHB, AXI 等)、以及网络接口 604,
该网络接口 604包括无线网络接口(例如,WLAN接口、蓝牙?接口、WiMAX接口、ZigBee?
接口、无线USB接口等)和有线网络接口(例如,电力线通信接口、以太网接口等)中的至少一者。在一些实现中,电子设备600可包括多个网络接口一每一个网络接口将电子设备600耦合至不同的通信网段。例如,电子设备600可包括电力线通信接口、以太网接口、和WLAN接口,它们分别将电子设备600与电力线通信网段、以太网和无线局域网相耦合。
[0090]电子设备600还包括通信单元608。通信单元608包括发射机单元612和接收机单元618。发射机单元612包括序列指示单元614和路由单元616。接收机单元618包括重排序单元620和重排序缓冲器622。在某些实例中,电子设备600可用作向目的地设备传送一个或多个分组的源设备。在这些实例中,对于被调度为要沿两个或更多分组路线传送的关联于一分组流的多个分组,序列指示单元614可确定并插入(如果有必要的话)副序列标识符。路由单元616可标识应被用于传送分组的这两个或更多分组路线并且相应地能够传送这些分组,如以上在图1-3中描述的。在其它实例中,电子设备600可用作经由两个或更多分组路线从源设备接收关联于一分组流的多个分组的目的地设备。在这些实例中,重排序单元620可实现用于以下操作的功能性:基于序列标识符来检测脱序分组递送,对接收到的分组进行重排序(例如,使用重排序缓冲器622),以及提供分组以供后续处理,如以上在图1、4和5中描述的。这些功能性中的任一个都可部分地(或完全地)在硬件中和/或在处理器单元602上实现。例如,该功能性可用专用集成电路来实现、在处理器单元602中所实现的逻辑中实现、在外围设备或卡上的协处理器中实现等。此外,诸实现可包括更少的组件或包括图6中未解说的附加组件(例如,视频卡、音频卡、附加网络接口、外围设备等)。处理器单元602、存储器单元606以及网络接口 604被耦合至总线610。尽管被解说为耦合至总线610,但是存储器单元606也可耦合至处理器单元602。
[0091]尽管各实施例是参考各种实现和利用来描述的,但是将理解,这些实施例是解说性的且本发明主题内容的范围并不限于这些实施例。一般而言,如本文中所描述的用于多递送路线分组排序的技术可以用符合任何一个或多个硬件系统的设施来实现。许多变体、修改、添加和改进都是可能的。
[0092]可为本文描述为单个实例的组件、操作、或结构提供复数个实例。最后,各种组件、操作、以及数据存储之间的边界在某种程度上是任意性的,并且在具体解说性配置的上下文中解说了特定操作。其他的功能性分配是已预见的并且可落在本发明主题内容的范围内。一般而言,在示例性配置中呈现为分开的组件的结构和功能性可被实现为组合式结构或组件。类似地,被呈现为单个组件的结构和功能性可被实现为分开的组件。这些以及其他变体、修改、添加及改进可落在本发明主题内容的范围内。
【权利要求】
1.一种方法,包括: 在通信网络的第一网络设备处,确定与经由所述第一网络设备和第二网络设备之间的多个分组路线从所述第二网络设备接收到的关联于一分组流的多个分组相关联的序列标识符,其中经由所述多个分组路线中的每一个分组路线接收到所述多个分组的一子集; 至少部分地基于与所述多个分组相关联的序列标识符来检测经由所述多个分组路线接收到的关联于所述分组流的所述多个分组中的一个或多个分组的脱序递送;以及 响应于所述检测到经由所述多个分组路线接收到的关联于所述分组流的所述多个分组中的一个或多个分组的脱序递送,基于与所述多个分组相关联的序列标识符来对所述多个分组的至少一子集进行重排序。
2.如权利要求1所述的方法,其特征在于,所述确定与经由所述第一网络设备和所述第二网络设备之间的多个分组路线从所述第二网络设备接收到的关联于所述分组流的多个分组相关联的序列标识符还包括: 确定所述多个分组中的每一个分组是否包括由所述第二网络设备的混合适配层插入的副序列标识符; 在所述第一网络设备处,响应于确定所述多个分组中的每一个分组包括由所述第二网络设备的混合适配层插入的副序列标识符来确定与所述多个分组中的每一个分组相关联的副序列标识符;以及 在所述第一网络设 备处,响应于确定所述多个分组中的每一个分组不包括所述副序列标识符来确定与所述多个分组中的每一个分组相关联的主序列标识符,其中与所述多个分组中的每一个分组相关联的所述主序列标识符是由所述第二网络设备的较高协议层插入的。
3.如权利要求2所述的方法,其特征在于,响应于确定所述多个分组中的每一个分组包括由所述第二网络设备的混合适配层插入的副序列标识符,所述确定与所述多个分组中的每一个分组相关联的副序列标识符还包括: 对于所述多个分组中的每一个分组,从所述分组的一个或多个报头字段中读取所述副序列标识符。
4.如权利要求2所述的方法,其特征在于,响应于确定所述多个分组中的每一个分组包括由所述第二网络设备的混合适配层插入的副序列标识符,所述确定与所述多个分组中的每一个分组相关联的副序列标识符还包括: 对于所述多个分组中的每一个分组, 基于分组的报头字段和所述分组的净荷中的至少一者来确定所述分组的分组签名; 将所述分组的分组签名与序列表分组中的多个分组签名进行比较,其中所述序列表分组包括与所述分组流的所述多个分组中的对应的每一个分组相关联的多个分组签名以及对应的多个序列标识符,其中所述序列表分组是从所述第二网络设备向所述第一网络设备提供的; 基于所述将所述分组的分组签名与所述序列表分组中的多个分组签名进行比较来确定所述分组的分组签名匹配于所述序列表分组中的多个分组签名中的第一分组签名;以及 响应于所述确定所述分组的分组签名匹配于所述序列表分组中的多个分组签名中的第一分组签名,将所述多个序列标识符中对应于所述多个分组签名中的第一分组签名的第一序列标识符标识为与所述分组相关联的序列标识符。
5.如权利要求2所述的方法,其特征在于,所述副序列标识符是在与所述分组相关联的虚拟局域网(VLAN)标签的一个或多个位中的至少一个位中指示的,其中所述VLAN标签中的指示所述副序列标识符的所述一个或多个位与预定编码相关联。
6.如权利要求1所述的方法,其特征在于,所述检测经由所述多个分组路线接收到的关联于所述分组流的多个分组中的一个或多个分组的脱序递送还包括: 对于所述多个分组中的每一个分组: 确定与所述分组相关联的序列标识符是否按照与先前在所述第一网络设备处接收到的关联于所述分组流的对应的一个或多个先前接收到的分组相关联的一个或多个序列标识符的顺序; 响应于确定与所述分组相关联的序列标识符按照与关联于所述分组流的对应的一个或多个先前接收到的分组相关联的一个或多个序列标识符的顺序,确定所述分组对于与所述分组流相关联的所述一个或多个先前接收到的分组是按序的;以及 响应于确定与所述分组相关联的序列标识符未按照与关联于所述分组流的对应的一个或多个先前接收到的分组相关联的一个或多个序列标识符的顺序,确定所述分组对于关联于所述分组流的所述一个或多个先前接收到的分组是脱序的。
7.如权利要求1所述的方法,其特征在于: 所述检测经由所述多个分组路线接收到的关联于所述分组流的多个分组中的一个或多个分组的脱序递送还包括将所述多个分组中的所述一个或多个分组存储在重排序缓冲器中;以及 所述基于与所述多个分组相关联的序列标识符来对所述多个分组的至少所述子集进行重排序还包括对于所述多个分组的所述子集中的每一个分组,将所述分组与先前存储在所述重排序缓冲器中的一个或多个分组一起进行重排序。
8.如权利要求1所述的方法,其特征在于,所述检测经由所述多个分组路线接收到的关联于所述分组流的多个分组中的一个或多个分组的脱序递送还包括: 对于所述多个分组中的每一个分组: 基于与所述分组相关联的序列标识符,确定所述分组是否在顺序上早于所述多个分组中的已被提供给所述第一网络设备的较高协议层以供处理的最后一个分组; 响应于确定所述分组在顺序上早于所述多个分组中的已被提供给所述第一网络设备的较高协议层以供处理的最后一个分组,在所述第一网络设备处丢弃所述分组;以及 响应于确定所述分组在顺序上晚于所述多个分组中的已被提供给所述第一网络设备的较高协议层以供处理的最后一个分组,基于与所述分组相关联的序列标识符来对所述分组进行重排序。
9.如权利要求1所述的方法,其特征在于,所述序列标识符包括序列号和时间戳中的至少一者。
10.如权利要求1所述的方法,其特征在于,响应于所述基于与所述多个分组相关联的序列标识符来对所述多个分组的至少所述子集进行重排序,所述方法还包括: 向所述第一网络设备的较高协议层提供所述多个分组的至少所述子集以供处理。
11.如权利要求1所述的方法,其特征在于,所述检测经由所述多个分组路线接收到的关联于所述分组流的多个分组中的一个或多个分组的脱序递送包括: 至少部分地基于与所述多个分组相关联的序列标识符来确定在所述第一网络设备处是否检测到与相同的序列标识符相关联的两个或更多分组; 响应于确定在所述第一网络设备处检测到与所述相同的序列标识符相关联的两个或更多分组, 提供与所述相同的序列标识相关联的两个或更多分组中的第一分组,以便基于与所述多个分组相关联的序列标识符来对所述多个分组的至少所述子集进行所述重排序;以及丢弃与所述相同的序列号相关联的所述两个或更多分组中的其余分组。
12.—种方法,包括: 在通信网络中的第一网络设备处,确定要经由所述第一网络设备和所述通信网络中的第二网络设备之间的多个分组路线将关联于一分组流的多个分组传送到所述第二网络设备; 将副序列标识符插入关联于所述分组流的所述多个分组中的每一个分组,其中所述副序列标识符是由所述第一网络设备的混合适配层插入的;以及 经由所述多个分组路线将所述多个分组传送到所述第二网络设备,其中调度经由所述多个分组路线中的每一个分组路线来传送所述多个分组的一子集。
13.如权利要求12所述的方法,其特征在于,所述将所述副序列标识符插入与所述分组流相关联的多个分组中的每一个分组包括: 除了由所述第一网络设备的较高协议层插入的主序列标识符之外,还将所述副序列标识符插入所述多个分组之中的每一个分组中;或者 响应于确定关联于所述分组流的所述多个分组不包括所述主序列标识符,将所述副序列标识符插入所述多个分组之中的每一个分组中。
14.如权利要求12所述的方法,其特征在于,所述将所述副序列标识符插入关联于所述第二分组流的一个或多个分组之中的每一个分组中还包括: 对于所述一个或多个分组中的每一个分组: 将所述副序列标识符插入所述分组的报头字段中;以及 将包括所述副序列标识符的分组传送到所述第二网络设备。
15.如权利要求12所述的方法,其特征在于,所述将所述副序列标识符插入关联于所述分组流的所述多个分组中的每一个分组还包括: 对于所述多个分组中的每一个分组,基于所述分组的报头字段和所述分组的净荷中的至少一者来确定唯一地标识所述分组的分组签名; 生成包括与所述多个分组中的每一个分组相关联的分组签名以及与所述多个分组中的每一个分组相关联的对应的副序列标识符的序列表分组; 将所述序列表分组传送到所述第二网络设备以指示将从所述第一网络设备向所述第二网络设备传送所述一个或多个分组的次序;以及 根据所述序列表分组中所指示的分组次序来向所述第二网络设备传送所述多个分组。
16.如权利要求12所述的方法,其特征在于,还包括: 在所述第一网络设备处,确定要经由所述多个分组路线中的第一分组路线而不是所述多个分组路线中的第二分组路线来传送所述多个分组中的一个或多个分组;经由所述第二分组路线来传送所述多个分组中的第一分组,其中所述多个分组中的第一分组是将经由所述第二分组路线来传送的最后一个分组; 响应于所述经由所述第二分组路线来传送所述多个分组中的第一分组,在预定时间间隔内阻止经由所述第二分组路线和所述第一分组路线来传送所述多个分组中的后续分组,其中所述多个分组中的第一分组是将经由所述第二分组路线传送的最后一个分组;以及在所述预定时间间隔逝去后经由所述第一分组路线传送所述多个分组中的后续分组。
17.一种通信网络设备,包括: 一个或多个网络接口 ;以及 与所述一个或多个网络接口耦合的重排序单元,所述重排序单元能操作用于:确定与在所述通信网络设备处经由所述通信网络设备和第二通信网络设备之间的多个分组路线从所述第二通信网络设备接收到的关联于一分组流的多个分组相关联的序列标识符,其中经由所述多个分组路线中的每一个分组路线接收到所述多个分组的一子集;至少部分地基于与所述多个分组相关联的序列标识符来检测经由所述多个分组路线接收到的关联于所述分组流的所述多个分组中的一个或多个分组的脱序递送;以及 响应于所述重排序单元检测到经由所述多个分组路线接收到的关联于所述分组流的所述多个分组中的一个或多个分组的脱序递送,基于与所述多个分组相关联的序列标识符来对所述多个分组的至少一子集进行重排序。
18.如权利要求17所述的通信网络设备,其特征在于,所述重排序单元能操作用于确定与经由所述通信网络设备和所述第二通信网络设备之间的多个分组路线从所述第二通信网络设备接收到的关联于所述分组流的多个分组相关联的序列标识符还包括所述重排序单元能操作用于: 确定所述多个分组中的每一个分组是否包括由所述第二通信网络设备的混合适配层插入的副序列标识符; 响应于所述重排序单元确定所述多个分组中的每一个分组包括由所述第二通信网络设备的混合适配层插入的副序列标识符,确定与所述多个分组中的每一个分组相关联的副序列标识符;以及 响应于所述重排序单元确定所述多个分组中的每一个分组不包括所述副序列标识符,确定与所述多个分组中的每一个分组相关联的主序列标识符,其中与所述多个分组中的每一个分组相关联的所述主序列标识符是由所述第二通信网络设备的较高协议层插入的。
19.如权利要求18所述的通信网络设备,其特征在于,响应于所述重排序单元确定所述多个分组中的每一个分组包括由所述第二通信网络设备的混合适配层插入的副序列标识符,所述重排序单元能操作用于确定与所述多个分组中的每一个分组相关联的副序列标识符还包括所述重排序单元能操作用于: 对于所述多个分组中的每一个分组,从该分组的一个或多个报头字段中读取所述副序列标识符。
20.如权利要求18所述的通信网络设备,其特征在于,响应于所述重排序单元确定所述多个分组中的每一个分组包括由所述第二通信网络设备的混合适配层插入的副序列标识符,所述重排序单元能操作用于确定与所述多个分组中的每一个分组相关联的副序列标识符还包括所述重排序单元能操作用于:对于所述多个分组中的每一个分组: 基于分组的报头字段和所述分组的净荷中的至少一者来确定该分组的分组签名; 将该分组的分组签名与序列表分组中的多个分组签名进行比较,其中所述序列表分组包括与所述分组流的所述多个分组中的对应的每一个分组相关联的多个分组签名以及对应的多个序列标识符,其中所述序列表分组是从所述第二通信网络设备向所述通信网络设备提供的; 基于所述重排序单元将该分组的分组签名与所述序列表分组中的多个分组签名进行比较来确定该分组的分组签名匹配于所述序列表分组中的多个分组签名中的第一分组签名;以及 响应于所述重排序单元确定该分组的分组签名匹配于所述序列表分组中的多个分组签名中的第一分组签名,将所述多个序列标识符中对应于所述多个分组签名中的第一分组签名的第一序列标识符标识为与该分组相关联的序列标识符。
21.如权利要求17所述的通信网络设备,其特征在于,所述重排序单元能操作用于检测经由所述多个分组路线接收到的关联于所述分组流的多个分组中的一个或多个的脱序递送还包括所述重排序单元能操作用于: 对于所述多个分组中的每一个分组: 确定与该分组相关联 的序列标识符是否按照与先前在所述通信网络设备处接收到的关联于所述分组流的对应的一个或多个先前接收到的分组相关联的一个或多个序列标识符的顺序; 响应于所述重排序单元确定与该分组相关联的序列标识符按照与关联于所述分组流的对应的一个或多个先前接收到的分组相关联的一个或多个序列标识符的顺序,确定该分组对于关联于所述分组流的所述一个或多个先前接收到的分组是按序的;以及 响应于所述重排序单元确定与所述分组相关联的序列标识符未按照与关联于所述分组流的对应的一个或多个先前接收到的分组相关联的一个或多个序列标识符的顺序,确定所述分组对于关联于所述分组流的所述一个或多个先前接收到的分组是脱序的。
22.如权利要求17所述的通信网络设备,其特征在于: 所述重排序单元能操作用于检测经由所述多个分组路线接收到的关联于所述分组流的多个分组中的一个或多个的脱序递送还包括所述重排序单元能操作用于将所述多个分组中的所述一个或多个存储在重排序缓冲器中;以及 所述重排序单元能操作用于基于与所述多个分组相关联的序列标识符来对所述多个分组中的至少所述子集进行重排序还包括所述重排序单元能操作用于对于所述多个分组的所述子集中的每一个分组,将该分组与先前存储在所述重排序缓冲器中的一个或多个分组一起进行重排序。
23.如权利要求17所述的通信网络设备,其特征在于,所述重排序单元能操作用于检测经由所述多个分组路线接收到的关联于所述分组流的多个分组中的一个或多个的脱序递送还包括所述重排序单元能操作用于: 对于所述多个分组中的每一个: 基于与该分组相关联的序列标识符,确定该分组是否在顺序上早于所述多个分组中的已被提供给所述通信网络设备的较高协议层以供处理的最后一个分组;响应于所述重排序单元确定该分组在顺序上早于所述多个分组中的已被提供给所述通信网络设备的较高协议层以供处理的最后一个分组,在所述通信网络设备处丢弃该分组;以及 响应于所述重排序单元能操作用于确定该分组在顺序上晚于所述多个分组中的已被提供给所述第一通信网络设备的较高协议层以供处理的最后一个分组,基于与该分组相关联的序列标识符来对该分组进行重排序。
24.一种或多种其中存储有指令的机器可读存储介质,所述指令在被一个或多个处理器执行时使所述一个或多个处理器执行以下操作,包括: 确定与在第一网络设备处经由所述第一网络设备和第二网络设备之间的多个分组路线从所述第二网络设备接收到的关联于一分组流的多个分组相关联的序列标识符,其中经由所述多个分组路线中的每一个分组路线接收到所述多个分组的一子集; 至少部分地基于与所述多个分组相关联的序列标识符来检测经由所述多个分组路线接收到的关联于所述分组流的所述多个分组中的一个或多个分组的脱序递送;以及 响应于所述检测经由所述多个分组路线接收到的关联于所述分组流的所述多个分组中的一个或多个分组的脱序递送的操作,基于与所述多个分组相关联的序列标识符来对所述多个分组中的至少一子集进行重排序。
25.如权利要求24所述的机器可读存储介质,其特征在于,所述确定与经由所述第一网络设备和所述第二网络设备之间的多个分组路线从所述第二网络设备接收到的关联于所述分组流的多个分组相关联的序列标识符的操作还包括: 确定所述多个分组中的每一个分组是否包括由所述第二网络设备的混合适配层插入的副序列标识符; 响应于确定所述多个分组中的每一个分组包括由所述第二网络设备的混合适配层插入的副序列标识符来确定与所述多个分组中的每一个分组相关联的副序列标识符;以及 响应于确定所述多个分组中的每一个分组不包括所述副序列标识符来确定与所述多个分组中的每一个分组相关联的主序列标识符,其中与所述多个分组中的每一个分组相关联的所述主序列标识符是由所述第二网络设备的较高协议层插入的。
26.如权利要求25所述的机器可读存储介质,其特征在于,响应于确定所述多个分组中的每一个分组包括由所述第二网络设备的混合适配层插入的副序列标识符,所述确定与所述多个分组中的每一个分组相关联的副序列标识符的操作还包括: 对于所述多个分组中的每一个分组,从该分组的一个或多个报头字段中读取所述副序列标识符。
27.如权利要求25所述的机器可读存储介质,其特征在于,响应于确定所述多个分组中的每一个分组包括由所述第二网络设备的混合适配层插入的副序列标识符,所述确定与所述多个分组中的每一个分组相关联的副序列标识符的操作还包括: 对于所述多个分组中的每一个分组: 基于分组的报头字段和所述分组的净荷中的至少一者来确定所述分组的分组签名; 将所述分组的分组签名与序列表分组中的多个分组签名进行比较,其中所述序列表分组包括与所述分组流的所述多个分组中的对应的每一个分组相关联的多个分组签名以及对应的多个序列标识符,其中所述序列表分组是从所述第二网络设备向所述第一网络设备提供的; 基于所述将所述分组的分组签名与所述序列表分组中的多个分组签名进行比较的操作来确定所述分组的分组签名匹配所述序列表分组中的多个分组签名中的第一分组签名;以及 响应于所述确定所述分组的分组签名匹配于所述序列表分组中的多个分组签名中的第一分组签名的操作,将所述多个序列标识符中对应于所述多个分组签名中的第一分组签名的第一序列标识符标识为与所述分组相关联的序列标识符。
28.如权利要求24所述的机器可读存储介质,其特征在于,所述检测经由所述多个分组路线接收到的关联于所述分组流的多个分组中的一个或多个的脱序递送的操作还包括: 对于所述多个分组中的每一个分组: 确定与所述分组相关联的序列标识符是否按照与先前在所述第一网络设备处接收到的关联于所述分组流的对应的一个或多个先前接收到的分组相关联的一个或多个序列标识符的顺序; 响应于确定与所述分组相关联的序列标识符按照与关联于所述分组流的对应的一个或多个先前接收到的分组相关联的一个或多个序列标识符的顺序,确定所述分组对于关联于所述分组流的所述一个或多个先前接收到的分组是按序的;以及 响应于确定与所述分组相关联的序列标识符未按照与关联于所述分组流的对应的一个或多个先前接收到的分组相关联的一个或多个序列标识符的顺序,确定所述分组对于关联于所述分组流的所述一个或多个先前接收到的分组是脱序的。
【文档编号】H04L12/701GK103918233SQ201280054127
【公开日】2014年7月9日 申请日期:2012年11月2日 优先权日:2011年11月3日
【发明者】S·B·小施鲁姆, R·E·纽曼 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1