一种混合接入网络中处理报文的方法及网络设备与流程

文档序号:14409626阅读:347来源:国知局
一种混合接入网络中处理报文的方法及网络设备与流程

本申请涉及通信技术领域,特别涉及一种混合接入网络中处理报文的方法及网络设备。



背景技术:

混合接入(hybridaccess,ha)网络是指将不同的接入网络连接捆绑起来提供给同一用户使用。混合接入网络能够使用户体验高速的网络使用。例如,两种不同的接入网络为数字用户专线(digitalsubscriberline,dsl)和长期演进(longtermevolution,lte)。目前,一种可能实现ha的方式是:运营商侧网络设备与用户侧网络设备之间通过通用路由封装(genericroutingencapsulation,gre)隧道绑定实现混合接入网络的应用。运营商侧网络设备可以是混合接入汇聚点(hybridaccessaggregationpoint,haap),用于捆绑连接不同的接入网络,为用户提供高速的互联网接入;用户侧网络设备可以是家庭网关(homegateway,hg),能够允许两种不同接入网络同时接入,如,可以同时允许固定宽带网络和移动网络的接入。

现有技术中,在混合接入网络中,基于令牌桶来实现负载分担。以dsl和lte两种接入网络为例,haap与ha之间的两条链路分别看作两条隧道,即dsl隧道和lte隧道。发送端使用染色机制,根据dsl隧道和lte隧道带宽来决定报文的染色,根据染色,来确定报文沿dsl隧道还是lte隧道发送。

如图1所示,发送端维护两个令牌桶,dsl令牌桶(图1中用左斜杠示出)和lte令牌桶(图1中用右斜杠示出)。按照dsl和lte隧道带宽确定两个令牌桶的大小。进入dsl令牌桶的报文被标记为绿色(图1中用左斜杠示出),超过dsl令牌桶接收能力的报文进入lte令牌桶,进入lte令牌桶的数据报文被标记为黄色(图1中用右斜杠示出)。最终,绿色报文沿着dsl隧道发送,黄色报文沿着lte隧道发送。

假设dsl隧道和lte隧道的带宽是固定的,上述基于令牌桶的负载分担机制无法根据dsl隧道和lte隧道的带宽的动态变化来调整负载的分割比例。在dsl隧道出现拥塞的情况下,还依旧按照dsl隧道的固定带宽向dsl隧道注入负载,且lte隧道即便是空闲的,也无法合理被用户使用,这样不但会导致丢包等传输错误,系统资源利用率也会很大程度降低,阻碍混合接入技术的实现。



技术实现要素:

本申请实施例提供一种混合接入网络中处理报文的方法及网络设备,用以实现网络带宽的实时监测及负载均衡,缓解因网络突发情况导致的主链路拥塞,提升网络带宽。

本申请实施例提供的具体技术方案如下:

第一方面,提供一种混合接入网络中处理报文的方法,所述混合接入网络包括第一网络设备和第二网络设备,所述第一网络设备和第二网络设备之间建立有第一隧道和第二隧道。所述第一网络设备中包括第一缓存和第二缓存,所述第一缓存用于存储第一发送窗口,所述第二缓存用于存储第二发送窗口。首先,第一网络设备通过所述第一隧道向所述第二网络设备发送所述第一发送窗口中的数据报文。然后,第一网络设备根据第二网络设备反馈的确认响应,动态调整第一发送窗口的大小。当第一发送窗口的大小大于等于第一阈值时,后续接收到的数据报文进入第二发送窗口,通过所述第二隧道发送给所述第二网络设备。这样,可以实现网络带宽的实时监测及负载均衡,缓解因网络突发情况导致的主链路拥塞,提升网络带宽。

在一个可能的实施方式中,所述第一网络设备通过所述第一隧道将所述第一发送窗口中的第一数据报文发送给所述第二网络设备,所述第一数据报文中携带第一子链路编号,所述第一子链路编号用于表示所述第一数据报文在所述第一隧道中的序列号。响应于接收到所述第二网络设备发送的第一确认响应,所述第一网络设备按照第一比例增加所述第一发送窗口的大小。所述第一确认响应中携带第一确认号,所述第一确认号是根据所述所述第一子链路编号得到的,所述第一确认号用于指示所述第一网络设备所述第二网络设备已经收到所述第一数据报文。响应于在第一预定时间内未接收到所述第二网络设备发送的所述第一确认响应,所述第一网络设备按照第二比例减小所述第一发送窗口的大小,所述第二比例大于所述第一比例。之后,所述第一网络设备接收第二数据报文,到达所述第二数据报文的目的地址的下一跳为所述第二网络设备。当确定所述第一发送窗口的大小大于等于第一阈值时,所述第一网络设备将所述第二数据报文存储至所述第二缓存,所述第二数据报文进入所述第二发送窗口。所述第一网络设备通过所述第二隧道向所述第二网络设备发送所述第二数据报文。这样,第一网络设备通过第二网络设备接收数据报文的情况,按照“慢增”、“快减”的方式来控制发送速率,可以根据实际网络状况合理分配第一隧道和第二隧道两条隧道的流量。避免第一隧道因网络突发导致阻塞而带来的负载分担不适当,合理利用了网络带宽。

在一个可能的实施方式中,所述第一隧道的优先级高于所述第二隧道。其中,所述第一网络设备通过所述第一隧道将所述第一发送窗口中的第一数据报文发送给所述第二网络设备之前,所述第一网络设备确定所述第一发送窗口的大小小于所述第一阈值,所述第一网络设备将所述第一数据报文存储至所述第一缓存,所述第一数据报文进入所述第一发送窗口。通过优先级的设定,更好的利用网络传输质量好的主链路,提高了通信效率。

在一个可能的实施方式中,所述第一确认响应为所述第二网络设备向所述第一网络设备发送的第三数据报文或者第一通用路由封装gre控制报文。提供更多可能的反馈确认响应的方式。

在一个可能的实施方式中,所述第一确认响应为所述第三数据报文,所述第三数据报文中包括确认号字段,所述确认号字段中携带所述第一确认号。由此,当第二网络设备接收到所述第一数据报文后,如果第二网络设备需要刚好要向所述第一网络设备发送所述第三数据报文,则可以将所述第一确认号携带在所述第三数据报文中,当第一网络设备接收到所述第三数据报文后,解析所述第三数据报文,根据所述第一确认号,确认所述第二网络设备已经接收到所述第一数据报文。通过第二网络设备向第一网络设备发送的数据报文来反馈确认响应,使得无须单独发送报文以反馈确认响应,减少了第一网路设备和第二网络设备之间交互的报文的数量,也节约了带宽资源。

在一个可能的实施方式中,所述第一确认响应为第一gre控制报文,所述第一gre控制报文包括确认报文属性attribute字段,所述确认报文attribute字段包括属性类型attributetype字段,属性长度attributelength字段以及确认号acknowledgementnumber字段,所述attributetype字段表示所述确认报文attribute字段的类型为通知已接收到数据报文的类型,所述acknowledgementnumber字段用于承载所述第一确认号。通过gre控制报文来通告确认号,实现网络带宽的实时监测和自动调整,无需人工干预。

在一个可能的实施方式中,所述第二网络设备包括第三缓存,所述第三缓存用于存储第一接收窗口,所述第一网络设备通过所述第一隧道将所述第一发送窗口中的第一数据报文发送给所述第二网络设备之前,所述第一网络设备接收所述第二网络设备发送的通知报文,所述通知报文用于通知所述第一接收窗口的大小,所述第一接收窗口的大小为m;响应于接收到所述通知报文,所述第一网络设备将所述第一发送窗口的大小设置为l,l<m,l和m均大于0。

在一个可能的实施方式中,所述第一发送窗口的大小为所述第一接收窗口大小的一半;所述第二发送窗口的大小为所述第二接收窗口大小的一半。

在一个可能的实施方式中,所述通知报文为第二gre控制报文,所述第二gre控制报文包括窗口大小属性windowsizeattribute字段,所述windowsizeattribute字段包括attributetype字段,attributelength字段以及窗口大小windowsize字段,所述attributetype字段表示所述windowsizeattribute字段的类型为通知窗口大小的类型,所述windowsize字段用于承载所述第一接收窗口的大小。通过gre控制报文来通告窗口大小,实现发送窗口的自动设定和调整,无需人工干预。

在一个可能的实施方式中,所述第二数据报文中携带第二子链路编号,所述第二子链路编号用于表示所述第二数据报文在所述第二隧道中的序列号;所述第一网络设备通过所述第二隧道将所述第二发送窗口中的第二数据报文向所述第二网络设备发送之后,响应于接收到所述第二网络设备发送的第二确认响应,所述第一网络设备按照第三比例增加所述第二发送窗口的大小,所述第二确认响应中携带第二确认号,所述第二确认号是根据所述第二子链路编号得到的,所述第二确认号用于指示所述第一网络设备所述第二网络设备已经收到所述第二数据报文;响应于在第二预定时间内未接收到所述第二网络设备发送的所述第二确认响应,所述第一网络设备按照第四比例减小所述第二发送窗口的大小,所述第四比例大于所述第三比例。这样,第一网络设备通过第二网络设备接收数据报文的情况,按照“慢增”、“快减”的方式来控制发送速率。

在一个可能的实施方式中,第二网络设备在接收到第二数据报文后,获取接收到的第二数据报文中携带的第二子链路编号,在向第一网络设备返回的第二确认响应中携带第二确认号,第二确认号是根据第二子链路编号得到的。

在一个可能的实施方式中,第二确认响应可以为第二网络设备向第一网络设备发送的第四数据报文,第四数据报文中包括确认号字段,在确认号字段中携带第二确认号。可选的,第二确认号与第二子链路编号相同。通过第二网络设备向第一网络设备发送的数据报文来反馈确认响应,使得无须单独发送报文以反馈确认响应,减少了第一网路设备和第二网络设备之间交互的报文的数量,也节约了带宽资源。

在一个可能的实施方式中,第二确认响应还可以为第三gre控制报文,第二网络设备在接收到第一网络设备发送的第二数据报文之后,通过向第一网络设备发送的第三gre控制报文向第一网络设备通知已经接收到第二数据报文。

在一个可能的实施方式中,第三gre控制报文包括确认报文属性attribute字段,确认报文attribute字段包括属性类型attributetype字段,属性长度attributelength字段以及确认号acknowledgementnumber字段,attributetype字段表示确认报文attribute字段的类型为通知已接收到数据报文的类型,acknowledgementnumber字段用于承载第二确认号。通过gre控制报文来通告确认号,实现网络带宽的实时监测和自动调整,无需人工干预。

第二方面,提供一种混合接入网络中处理报文的方法,所述混合接入网络包括第一网络设备和第二网络设备,所述第一网络设备和第二网络设备之间建立有第一隧道和第二隧道,所述第一隧道和所述第二隧道通过绑定连接形成虚拟绑定隧道,所述第一网络设备中包括包括第一缓存和第二缓存,所述第一缓存用于存储第一发送窗口,所述第二缓存用于存储第二发送窗口,所述第二网络设备中包括排序缓存,第二网络设备在接收第一网络设备发送的数据报文后,向第一网络设备反馈确认响应,通知第一网络设备已经接收到了数据报文,以使第一网络设备动态调整发送窗口的大小。这样,可以实现网络带宽的实时监测及负载均衡,缓解因网络突发情况导致的主链路拥塞,提升网络带宽。

在一个可能的实施方式中,所述第二网络设备接收所述第一网络设备通过所述第一隧道发送的所述第一发送窗口中的第一数据报文,所述第一数据报文中携带第一子链路编号和第一全局编号。所述第一子链路编号用于表示所述第一数据报文在所述第一隧道中的序列号。所述第一全局编号表示所述第一数据报文在所述虚拟绑定隧道中的序列号。所述第二网络设备接收所述第一网络设备通过所述第二隧道发送的所述第二发送窗口中的第二数据报文。所述第二数据报文中携带第二子链路编号和第二全局编号。所述第二子链路编号用于表示所述第二数据报文在所述第二隧道中的序列号,所述第二全局编号用于表示所述第二数据报文在所述虚拟绑定隧道中的序列号。所述第二网络设备将所述第一数据报文和所述第二数据报文存储到排序缓存,根据所述第一全局编号和所述第二全局编号对所述第一数据报文和所述第二数据报文进行排序。响应于所述第二网络设备将所述第一数据报文存储到所述排序缓存,所述第二网络设备向所述第一网络设备发送第一确认响应,以使得所述第一网络设备收到所述第一确认响应后,按照第一比例增加所述第一发送窗口的大小。所述第一确认响应中携带第一确认号。所述第一确认号是根据所述第一子链路编号得到的。所述第一确认号用于指示所述第一网络设备所述第二网络设备已经收到所述第一数据报文。

响应于所述第二网络设备将所述第二数据报文存储到所述排序缓存,所述第二网络设备向所述第一网络设备发送所述第二确认响应,以使得所述第一网络设备在收到所述第二确认响应后,按照第三比例增加所述第二发送窗口的大小。所述第二确认响应中携带第二确认号,所述第二确认号是根据所述第二子链路编号得到的,所述第二确认号用于指示所述第一网络设备所述第二网络设备已经收到所述第二数据报文。第二网络设备可以准确通知第一网络设备接收到的数据报文,以便于第一网络设备动态调整隧道带宽,控制第一发送窗口的发送速率,避免因网络突发导致阻塞而带来的负载分担不适当,合理利用了网络带宽。

在一个可能的实施方式中,所述第一确认响应为所述第二网络设备向所述第一网络设备发送的第三数据报文或者第一通用路由封装gre控制报文。提供更多可能的反馈确认响应的方式。

在一个可能的实施方式中,所述第一确认响应为所述第三数据报文,所述第三数据报文中包括确认号字段,所述确认号字段中携带所述第一确认号。通过第二网络设备向第一网络设备发送的数据报文来反馈确认响应,使得无须单独发送报文以反馈确认响应,减少了第一网路设备和第二网络设备之间交互的报文的数量,也节约了带宽资源。

在一个可能的实施方式中,所述第一确认响应为第一gre控制报文,所述第一gre控制报文包括确认报文属性attributetlv字段,所述确认报文attributetlv字段用于承载所述第一确认号。通过gre控制报文来通告确认号,实现网络带宽的实时监测和自动调整,无需人工干预。

在一个可能的实施方式中,所述第二网络设备通过所述第一隧道接收所述第一网络设备发送的第一数据报文之前,所述第二网络设备向所述第一网络设备发送第一通知报文。所述第一通知报文用于通知所述第一接收窗口的大小,所述第一接收窗口的大小用于所述第一网络设备设置所述第一发送窗口的大小。所述第二网络设备通过所述第二隧道接收所述第一网络设备发送的第二数据报文之前,所述第二网络设备向所述第一网络设备发送第二通知报文,所述第二通知报文用于通知所述第二接收窗口的大小,所述第二接收窗口的大小用于所述第一网络设备设置所述第二发送窗口的大小。

在一个可能的实施方式中,所述第一通知报文为第二gre控制报文,所述第二通知报文为第四gre控制报文。所述第二gre控制报文包括窗口大小属性windowsizeattributetlv字段。所述第四gre控制报文包括窗口大小属性windowsizeattributetlv字段。所述第二gre控制报文中的windowsizeattributetlv字段用于承载所述第一接收窗口的大小。所述第四gre控制报文中的windowsizeattributetlv字段用于承载所述第二接收窗口的大小。通过gre控制报文来通告窗口大小,实现发送窗口的自动设定和调整,无需人工干预。

第三方面,提供一种混合接入网络中的第一网络设备,该第一网络设备具有实现上述第一方面和第一方面的任一种可能的实施方式中第一网络设备行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

第四方面,提供一种混合接入网络中的第二网络设备,该第二网络设备具有实现上述第二方面和第二方面的任一种可能的实施方式中第二网络设备行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

第五方面,提供一种混合接入网络中的第一网络设备,该第一网络设备包括收发器,处理器,存储器,所述处理器以及存储器之间通过总线系统相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,该执行使得处理器执行第一方面或第一方面的任一可能的实施方式中的方法。

第六方面,提供一种混合接入网络中的第二网络设备,该第二网络设备包括收发器,处理器,存储器,所述处理器以及存储器之间通过总线系统相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,该执行使得处理器执行第二方面或第二方面的任一可能的实施方式中的方法。

第七方面,提供了一种通信系统,该通信系统包括第三方面或第五方面所述的第一网络设备和第四方面或第六方面所述的第二网络设备。

第八方面,提供了一种计算机存储介质,用于存储计算机程序,该计算机程序包括用于执行第一方面、第二方面、第一方面的任一可能的实施方式或第二方面的任一可能的实施方式中的方法的指令。

本申请实施例提供了一种混合接入网络中的处理报文的方法及网络设备,第一网络设备根据第二网络设备反馈的信息,调整第一网络设备不同链路的带宽,主链路溢出的流量及时导向其他链路,在提升网络带宽的同时,缓解了因网络突发情况导致的主链路拥塞。

附图说明

图1为现有技术中基于令牌桶来实现负载分担的示意图;

图2为本申请实施例中ha网络架构示意图;

图3为本申请实施例中混合接入网络中处理报文的方法流程示意图;

图4为本申请实施例中发送窗口、接收窗口示意图;

图5为本申请实施例中数据报文协议扩展示意图;

图6为本申请实施例中混合接入网络中第一网络设备的结构示意图之一;

图7为本申请实施例中混合接入网络中第二网络设备的结构示意图之一;

图8为本申请实施例中混合接入网络中第一网络设备的结构示意图之二;

图9为本申请实施例中混合接入网络中第二网络设备的结构示意图之二。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

除非有相反的说明,本申请实施例提及“第一”、“第二”、“第三”以及“第四”等序数词用于对多个对象进行区分,不用于限定多个对象的顺序。

本申请实施例可应用于混合接入网络,本申请实施例中,混合接入网络中包括第一网络设备和第二网络设备,第一网络设备和第二网络设备之间建立有两条链路。在两条链路上分别传输数据报文和/或控制报文,一条链路可以看做一条隧道,即第一网络设备和第二网络设备之间建立有两条隧道,为第一隧道和第二隧道。第一隧道和第二隧道通过绑定连接形成虚拟绑定隧道。可以理解为,第一网络设备与第二网络设备之间的互通的所有数据报文通过该虚拟绑定隧道传输,该所有数据报文包括通过第一隧道和通过第二隧道传输的数据报文。具体地,所述虚拟绑定隧道例如可以是gre隧道,点到点协议(英文:point-to-pointtunnellingprotocol,pptp)隧道,用户数据协议(英文:userdatagramprotocol,udp)隧道等,本申请对此不作具体限定。

在本申请实施例中,第一发送窗口可以理解为欲通过第一隧道发送的、缓存在第一网络设备且尚未被发送的数据报文序列。第二发送窗口可以理解为欲通过第一隧道发送的、缓存在第一网络设备且尚未被发送的数据报文序列。第一接收窗口可以理解为第二网络设备接收到第一发送窗口通过第一隧道发送的、并缓存下来,且尚未进入排序缓存的数据报文序列。第二接收窗口可以理解为第二网络设备接收到第二发送窗口通过第二隧道发送的、并缓存下来,且尚未进入排序缓存的数据报文序列。排序缓存可以理解为用于第二网络设备对虚拟绑定隧道接收到的所有数据报文序列进行排序的缓存。窗口大小可以理解为可以容纳数据报文序列的长度。发送窗口和接收窗口的定义符合传输控制协议(英文:transmissioncontrolprotocol,tcp)的规定。各个隧道上的发送窗口和接收窗口独立管理。第一网络设备中包括第一缓存和第二缓存,第一缓存用于存储第一发送窗口,第二缓存用于存储第二发送窗口。第二网络设备中包括第三缓存和第四缓存,第三缓存用于存储第一接收窗口,第二缓存用于存储第二接收窗口。

本申请实施例描述的应用场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

一种可能的混合接入网络架构示例如图2所示。第一网络设备为用户侧网络设备hg,第二网络设备为运营商侧网络设备haap;或者,第一网络设备为运营商侧网络设备haap,第二网络设备为用户侧网络设备hg。用户侧网络设备hg能够为用户提供至少两种接入网络的的接入,如图2中所示,为诸如手机、电脑、固定电话等终端设备提供如dsl的固定网络,为诸如具有无线通信功能的手持设备提供如lte的移动网络的接入,运营商侧网络设备haap为用户提供高速的混合网络接入。

hg与haap之间通过虚拟绑定隧道实现混合接入。第一网络设备发送的所有报文采用全局编号,全局编号用于表示第一网络设备发送的所有数据报文在虚拟绑定隧道中的序列号,其中,所有报文包括在dsl隧道中传输的报文和在lte隧道中传输的报文。第二网络设备根据全局编号恢复报文顺序,从而实现hg与haap之间混合接入网络的数据传输机制。图2中示出的混合接入网络中的应用场景仅是一种示例,实际混合接入网络中还可以包括其他形式的结构,本申请中不作限制。

下面基于图2所示的混合接入网络架构,结合附图对本申请实施例提供的混合接入网络中处理报文的方法及网络设备作详细说明。

需要说明的是,第一网络设备和第二网络设备之间通过第一隧道和第二隧道发送数据,还可以通过两条以上的隧道来发送数据,本申请实施例中以两条隧道为例介绍。

参阅图3所示,本申请实施例中混合接入网络中处理报文的方法流程如下所述。

步骤301、第一网络设备通过第一隧道将第一发送窗口中的第一数据报文发送给第二网络设备。

步骤302、第二网络设备接收所述第一数据报文之后,向第一网络设备返回第一确认响应;

第一确认响应用于指示第二网络设备接收到基于第一发送窗口发送的第一数据报文。

这里有一种特殊情况是,第二网络设备可能没有接收到第一网络设备发送的第一数据报文,或者第二网络设备解析错误等原因,第二网络设备未向第一网络设备返回第一确认响应。

步骤303、第一网络设备根据第一确认响应的接收情况,来动态调整第一发送窗口的大小。

具体地,响应于接收到第二网络设备发送的第一确认响应,第一网络设备按照第一比例增加第一发送窗口的大小。

第一网络设备可能由于链路质量不好或者第二网络设备未返回第一确认响应等原因,在第一预定时间内未接收到第一确认响应。响应于在第一预定时间内未接收到第二网络设备发送的第一确认响应,第一网络设备按照第二比例减小第一发送窗口的大小,第二比例大于第一比例。

在一种可能的实施方式中,将第一预定时间设置为大于等于第一数据报文由第一网络设备传输到第二网络设备的时长与第一确认响应由第二网络设备传输到第一网络设备的时长之和。

步骤304、第一网络设备通过第二隧道将第二数据报文发送给第二网络设备。可选的,第一隧道的优先级高于第二隧道。即当第一隧道和第二隧道的链路状态正常的情况下,第一网络设备当产生待发送的数据报文时,优先通过第一隧道发送。具体地,两个隧道之间的优先级顺序可以通过两个隧道的时延优先级来确定,也可以通过两个发送窗口的大小来确定,具体优先级确定方式本申请中不作限定。

第一网络设备接收所述第一数据报文后,在第一缓存具有缓存空间时,优先将所述第一数据报文缓存到第一缓存,进入第一发送窗口,并通过第一隧道将所述数据报文发送给第二网络设备。如步骤303所述,根据接收第二网络设备返回的第一确认响应的情况,来动态调整第一发送窗口的大小。第一网络设备预先设定第一发送窗口大小的第一阈值,根据第一发送窗口大小与第一阈值的大小关系,来选择第一发送窗口还是第二发送窗口来发送数据报文。

相应地,在步骤301第一网络设备通过第一隧道将第一发送窗口中的第一数据报文发送到第二网络设备之前,第一网络设备响应于确定第一发送窗口的大小小于第一阈值,第一网络设备选择将第一数据报文存储至第一缓存,第一数据报文进入第一发送窗口。

相应地,在步骤304中,第一网络设备将第二数据报文通过第二隧道发送之前,响应于确定第一发送窗口的大小大于等于第一阈值,第一网络设备将第二数据报文存储至第二缓存,第二数据报文进入第二发送窗口。

在一个具体的实施方式中,所述第一阈值可以是能够容纳的数据报文序列的u最大长度。但本申请实施例不限于此。

在一个具体的实施方式中,当第一网络设备接收到待发送的数据报文时,第一网络设备会先确定待发送的数据报文的长度。若待发送数据报文的长度不大于当前第一缓存可存储空间的大小,则第一网络设备将待发送的数据报文存储到第一缓存,进入第一发送窗口,并通过第一隧道发送给第二网络设备。若待发送数据报文的长度大于第一缓存可存储空间的大小,则第一网络设备将待发送的数据报文缓存到第二缓存,进入第二发送窗口并通过第二隧道发送给第二网络设备。本申请实施例中,在第一数据报文中携带第一子链路编号,在第二数据报文中携带第二子链路编号。第一子链路编号用于表示第一数据报文在第一隧道中的序列号,第二子链路编号用于表示第二数据报文在第二隧道中的序列号。具体地,第一网络设备向第二网络设备发送的第一数据报文的序列号字段被分成两部分,一部分用于携带第一子链路编号(即tunnelsequencenumber);一部分用于携带原有数据报文协议中定义的全局编号(即bondingsequencenumber)。第二数据报文的序列号字段被分成两部分,一部分用于携带第二子链路编号,一部分用于携带原有数据报文协议中定义的全局编号。

全局编号用于表征第一网络设备发送的所有数据报文在第一隧道和第二隧道通过绑定连接形成虚拟绑定隧道中的序列号。其中,该所有数据报文包括在第一隧道中传输和在第二隧道中传输的数据报文。为方便说明,用第一全局编号表示第一发送窗口中的第一数据报文在虚拟绑定隧道中的序列号。用第二全局编号表示第二发送窗口中的第二数据报文在虚拟绑定隧道中的序列号。第二网络设备在接收到第一数据报文和第二数据报文后,将第一数据报文和第二数据报文保存到排序缓存,并根据第一全局编号和第二全局编号对第一数据报文和第二数据报文进行排序。具体地,首先,第二网络设备接收到所述第一数据报文以后,将所述第一数据报文存储至第三缓存中,以使得第一数据报文进入第一接收窗口。然后,第一接收窗口中的数据报文,包括第一数据报文,会进入排序缓存中。第二网络设备接收到第二数据报文以后,将第二数据报文存储至第四缓存中,以使得第二数据报文进入第二接收窗口。然后,第二接收窗口中的数据报文,包括第二数据报文,会进入排序缓存中。在排序缓存中,第二网络设备根据每个数据报文的全局编号,对所有的数据报文进行排序。如上所述,需要说明的是,在上述步骤302中,第二网络设备在接收到第一数据报文后,向第一网络设备返回第一确认响应之前,会将第一数据报文先存储到排序缓存,然后根据第一数据报文中携带的第一全局编号确定第一数据报文在排序缓存中的位置。这样,只有在第一数据报文进行排序缓存后,第二网络设备才会返回第一确认响应,避免了数据报文因不能全部处理导致的拥塞,通过这样设计能够向第一网络设备反映实际网络状况,更能合理利用系统带宽。

第二网络设备在接收到第一数据报文后,获取接收到的第一数据报文中携带的第一子链路编号,在向第一网络设备返回的第一确认响应中携带第一确认号,第一确认号是根据第一子链路编号得到的,第一确认号用于指示第一网络设备第二网络设备已经收到第一数据报文。

在一个具体的实施方式中,第一确认号与第一子链路编号采取相同的方式进行表示。例如第二网络设备接收到所述第一数据报文后,获取所述第一数据报文中携带的所述第一子链路编号,并在所述第一确认响应中,将该第一子链路编号作为所述第一确认号回复给所述第一网络设备。所述第一子链路编号例如可以是阿拉伯数字,或者字母,本申请对此不作具体限定。

在另一个具体的实施方式中,所述第一确认号是根据与所述第一子链路编号之间的映射关系而得到的。在一个具体的实施方式中,所述第二网络设备中可以保存一个映射关系表,所述映射关系表用于保存所述子链路编号与确认号的映射关系。所述第二网络设备获取所述第一子链路编号,根据所述映射关系表得到与所述第一子链路编号对应的第一确认号。相应的,所述第一网络设备中也保存有所述映射关系表。所述映射关系例如可以通过以下方式建立:例如,第一子链路编号为阿拉伯数字1,而第一确认号为与数字1相映射的字母a。需要说明的是,上述映射关系的建立方式仅是例举,具体可以通过多种不同的方式实现,本领域技术人员可以想到的任何来建立这种对应关系的手段都覆盖在本申请实施例中的映射规则中。映射关系表的具体形式可以以多种不同的方式实现,可以以表格的形式,也可以是其他的方式表达该对应关系,本申请对此不做限定。

通过第一确认号,第一网络设备可以获知第二网络设备已接收到与第一确认号对应的第一子链路编号的第一数据报文。

第一网络设备和第二网络设备之间可以互传数据报文,可选的,第一确认响应可以为第二网络设备向第一网络设备发送的数据报文,记为第三数据报文,第三数据报文的格式与第一数据报文和第二数据报文相同,均包含子链路编号和全局编号,除此之外,若第三数据报文为第一确认响应,则第三数据报文中还包括确认号字段,在确认号字段中携带第一确认号,可选的,第一确认号与第一子链路编号相同。

第一确认响应还可以为gre控制报文(记为第一gre控制报文),第二网络设备在接收到第一网络设备发送的第一数据报文之后,通过向第一网络设备发送的gre控制报文向第一网络设备通知已经接收到第一数据报文。

第一gre控制报文包括确认报文属性attribute字段,确认报文attribute字段包括属性类型长度值(即tlv)字段,具体包括属性类型attributetype字段,属性长度attributelength字段以及确认号acknowledgementnumber字段,attributetype字段表示确认报文attribute字段的类型为通知已接收到数据报文的类型,acknowledgementnumber字段用于承载第一确认号。

可选的,在步骤304第一网络设备将第二数据报文通过第二隧道向第二网络设备发送之后,第二网络设备接收到第一网络设备通过第二隧道发送的第二数据报文,第二网络设备向第一网络设备返回第二确认响应。

第二确认响应用于表征第二网络设备接收到基于第二发送窗口发送的第二数据报文。

这里有一种特殊情况是,第二网络设备可能没有接收到第一网络设备发送的第二数据报文,或者第二网络设备解析错误等原因,第二网络设备未向第一网络设备返回第二确认响应。

第一网络设备根据第二确认响应的接收情况,来动态调整第二发送窗口的大小。

具体地,响应于接收到第二网络设备发送的第二确认响应,第一网络设备按照第三比例增加第二发送窗口的大小。

第一网络设备可能由于链路质量不好或者第二网络设备未返回第二确认响应等原因,在第二预定时间内未接收到第二确认响应。响应于在第二预定时间内未接收到第二网络设备发送的第二确认响应,第一网络设备按照第四比例减小第二发送窗口的大小,第四比例大于第三比例。

在一种可能的实施方式中,将第二预定时间设置为大于等于第二数据报文由第一网络设备传输到第二网络设备的时长与第二确认响应由第二网络设备传输到第一网络设备的时长之和。

第二网络设备在接收到第二数据报文后,获取接收到的第二数据报文中携带的第二子链路编号,在向第一网络设备返回的第二确认响应中携带第二确认号,第二确认号与第二子链路编号互为映射。

通过第二确认号,第一网络设备可以获知第二网络设备已接收到与第二确认号对应的第二子链路编号的第二数据报文。

第二确认响应可以为第二网络设备向第一网络设备发送的第四数据报文,第四数据报文的格式与第三数据报文、第一数据报文、第二数据报文相同,第四数据报文中包括确认号字段,在确认号字段中携带第二确认号。可选的,第二确认号与第二子链路编号相同。

第二确认响应还可以为与第一gre控制报文格式相同的gre控制报文(记为第三gre控制报文),第二网络设备在接收到第一网络设备发送的第二数据报文之后,通过向第一网络设备发送的第三gre控制报文向第一网络设备通知已经接收到第二数据报文。

第三gre控制报文包括确认报文属性attribute字段,确认报文attribute字段属性类型长度值(即tlv)字段,具体包括属性类型attributetype字段,属性长度attributelength字段以及确认号acknowledgementnumber字段,attributetype字段表示确认报文attribute字段的类型为通知已接收到数据报文的类型,acknowledgementnumber字段用于承载第二确认号。

关于发送窗口(包括第一发送窗口和第二发送窗口)和接收窗口(第二发送窗口和第二接收窗口)大小的设定,可以通过下述设计:

第二网络设备根据第一隧道的带宽来确定第一接收窗口的大小,根据第二隧道的带宽来确定第二接收窗口的大小。例如,按照接收窗口大小=带宽*增量值的方式确定,增量值(即delta值)由网络管理员来设定,一般设置为50ms。第二网络设备通过第一隧道向第一网络设备发送第一通知报文,第一通知报文用于通知第一接收窗口的大小m;第二网络设备通过第二隧道向第一网络设备发送第二通知报文,第二通知报文用于通知第二接收窗口的大小m’。

第一网络设备响应于接收到第一通知报文,将第一发送窗口的大小设置为l,l<m;第一网络设备响应于接收到第二通知报文,将第二发送窗口的大小设置为l’,l’<m’,l、l’、m、m’均大于0。一种具体的实施方式中,第一发送窗口的大小l为第一接收窗口m大小的一半;第二发送窗口的大小l’为第二接收窗口大小m’的一半,但本申请不限于此

第一通知报文为gre控制报文(记为第二gre控制报文),第二gre控制报文包括窗口大小属性windowsizeattribute字段,windowsizeattribute字段属性类型长度值(即tlv)字段,具体包括attributetype字段,attributelength字段以及窗口大小windowsize字段,attributetype字段表示windowsizeattribute字段的类型为通知窗口大小的类型,windowsize字段用于承载第一接收窗口的大小。

第二通知报文的格式与第一通知报文的格式相同,记为第四gre控制报文,在第四gre控制报文的windowsize字段承载第二接收窗口的大小。

这里需要说明的是,第一gre控制报文和第二gre控制报文的格式相同,第一网络设备通过attributetype字段携带的内容来区分gre控制报文是通知报文还是确认响应。

下面结合具体的应用场景对图3所示的混合接入网络中处理报文的方法做进一步详细说明。

假设第一网络设备为hg,第二网络设备为haap,第一隧道为dsl隧道,第二隧道为lte隧道。

haap将lte隧道的lte接收窗口大小设定为8kbyte,将dsl隧道的接dsl收窗口大小设定为6kbyte。haap通过第一隧道向hg发送包含windowsize字段的gre控制报文,hg根据windowsize字段获知dsl隧道的dsl接收窗口大小设定为6kbyte;haap通过第二隧道向hg发送包含windowsize字段的gre控制报文,hg根据windowsize字段获知lte隧道的lte接收窗口大小为8kbyte。优选的,将发送窗口大小设置为接收窗口大小的一半。hg将dsl链路的dsl发送窗口大小设定为dsl接收窗口大小的一半,即3kbyte;将lte链路的lte发送窗口大小设定为lte接收窗口大小的一半,即4kbyte。

hg产生数据流待发送时,按照数据流的大小和两个发送窗口的大小分配负载分担。如图4所示,假设数据流中每个数据报文的全局编号分别为4、5、6、7、8、9,每个数据报文的大小为1kbyte。当前dsl发送窗口的大小为3kbyte,当前lte发送窗口的大小为4kbyte。由于dsl隧道的优先级高于lte隧道,因此,将待发送的数据流中的数据报文先放置dsl发送窗口对应的dsl缓存,dsl发送窗口对应的dsl缓存满的情况下,将溢出流量放置于lte发送窗口对应的lte缓存。按照顺序将dsl发送窗口中的全局编号为4、5、6的数据报文通过dsl隧道发送,并在全局编号为4、5、6的数据报文中分别承载dsl子链路编号,依次为1、2、3。lte发送窗口中的全局编号为7、8、9的数据报文通过lte隧道发送,并在全局编号为7、8、9的数据报文中分别承载lte子链路编号,依次为1、2、3。

具体可通过数据报文协议扩展实现子链路编号的携带。如图5所示,为hg与haap之间互通的数据报文的扩展字段,将原来数据报文中的序列号字段分成两部分,一部分为子链路编号,表征该数据报文在第一隧道或第二隧道上的序列号,一部分为全局编号,表征该数据报文在整个绑定隧道上的序列号。

两个发送窗口中的数据报文分别通过dsl隧道和lte隧道发送。haap分别接收各自隧道传过来的数据报文。haap每接收到一个数据报文,向hg返回一个确认响应。该确认响应可以为haap向hg发送的数据报文,那么,通过扩展数据报文协议,haap在数据报文中携带确认号(acknowledgementnumber)字段,可选的,haap将收到的hg发送的数据报文中携带的子链路编号作为确认号。

由于haap和hg均既可以为发送设备又可以为接收设备,因此,如图5所示,32bit的序列号字段被分为两部分,双方发送的数据报文协议扩展后,每个数据报文中均包括全局编号、子链路编号和确认号。其中,预留字段在发送时各个位都置为0。

另外,该确认响应还可以为haap向hg发送的gre控制报文,在gre控制报文中携带确认号字段。具体地,通过将接收到的数据报文中的子链路编号作为确认号来构造确认号字段,回复给hg。

hg根据haap基于dsl隧道返回的确认响应,来动态调整dsl发送窗口的大小;根据haap基于lte隧道返回的确认响应,来动态调整dsl发送窗口的大小。

hg接收到一个确认响应,按照确认响应中包括的确认号来确定是哪一个子链路编号的数据报文被接收到了,若确认接收,则将对应发送窗口按照一定比例增加,若未接收,则将对应发送窗口按照一定比例减少。

例如,hg向haap通过dsl发送窗口发送子链路编号为1的数据报文后,接收到haap通过dsl接收窗口返回的包含确认号为1的确认响应,则将dsl发送窗口大小增加1kbyte,变为4kbyte。同样,若hg接收到包含确认号为2的确认响应,也会将dsl发送窗口大小增加1kbyte,变为5kbyte。若通过dsl发送窗口发送子链路编号为1、2、3的数据报文均被haap接收到,hg接收到haap返回的携带确认号为1、2、3的确认响应,则hg将dsl的发送窗口大小增加为6kbyte,这个大小与dsl接收窗口大小一致,为dsl发送窗口大小的上限。

相反,若hg向haap通过dsl发送窗口发送子链路编号为1的数据报文后,在设定时长内没有接收到haap通过dsl接收窗口返回的包含确认号为1的确认响应,则将dsl发送窗口大小减半,例如,dsl发送窗口大小为3kbyte的情况下,减半取整,hg将dsl发送窗口大小减为1kbyte,或2kbyte。

这样,hg通过haap接收数据报文的情况,按照“慢增”、“快减”的方式来控制发送速率,可以根据实际网络状况合理分配dsl隧道和lte隧道两条隧道的流量。通过gre控制报文来通告窗口大小和确认号,实现网络带宽的实时监测和发送窗口的自动设定和调整。

基于与图3所示的混合接入网络中处理报文的方法同一发明构思,参阅图6所示,本申请实施例还提供了一种混合接入网络中的第一网络设备600,该第一网络设备可以用于执行图3所示的方法。第一网络设备包括:

第一存储单元601,用于存储第一发送窗口;

第二存储单元602,用于存储第二发送窗口;

发送单元603,用于通过所述第一隧道将所述第一发送窗口中的第一数据报文发送给所述第二网络设备,第一数据报文中携带第一子链路编号,第一子链路编号用于表示第一数据报文在第一隧道中的序列号;

处理单元604,用于响应于接收到第二网络设备发送的第一确认响应,按照第一比例增加第一发送窗口的大小,第一确认号是根据所述第一子链路编号得到的,所述第一确认号用于指示所述第一网络设备所述第二网络设备已经收到所述第一数据报文;

处理单元604,还用于响应于在第一预定时间内未接收到第二网络设备发送的第一确认响应,第一网络设备按照第二比例减小第一发送窗口的大小,第二比例大于第一比例;

接收单元605,用于接收第二数据报文,到达所述第二数据报文的目的地址的下一跳为所述第二网络设备。

处理单元604,还用于当确定所述第一发送窗口的大小大于等于第一阈值时,将所述第二数据报文存储至所述第二存储单元中,使得所述第二数据报文进入所述第二发送窗口。

发送单元603,还用于通过所述第二隧道向所述第二网络设备发送所述第二数据报文,所述第二发送窗口通过所述第二隧道与所述第二接收窗口通信。可选的,第一隧道的优先级高于第二隧道,所述处理单元604,还用于在所述发送单元603通过所述第一隧道将所述第一发送窗口中的第一数据报文发送给所述第二网络设备之前,确定所述第一发送窗口的大小小于所述第一阈值,将所述第一数据报文存储至所述第一存储单元,以使所述第一数据报文进入所述第一发送窗口。

可选的,第一确认响应为第三数据报文,第三数据报文中包括确认号字段,确认号字段中携带第一确认号。

可选的,第一确认响应为第一gre控制报文,第一gre控制报文包括确认报文attribute字段属性类型长度值(即tlv)字段。具体包括属性类型attributetype字段,属性长度attributelength字段以及确认号acknowledgementnumber字段。attributetype字段表示确认报文attribute字段的类型为通知已接收到数据报文的类型,acknowledgementnumber字段用于承载第一确认号。

可选的,第二网络设备还包括第三存储单元,所述第三存储单元用于存储第一接收窗口。所述接收单元605,还用于在所述发送单元603通过所述第一隧道将所述第一发送窗口中的第一数据报文发送给所述第二网络设备之前,接收所述第二网络设备发送的通知报文,所述通知报文用于通知所述第一接收窗口的大小,所述第一接收窗口的大小为m;

处理单元604,还用于响应于接收单元接收到通知报文,将第一发送窗口的大小设置为l,l<m,l和m均大于0。

可选的,通知报文为第二gre控制报文,第二gre控制报文包括窗口大小属性windowsizeattribute字段,windowsizeattribute字段包括attributetype字段,attributelength字段以及窗口大小windowsize字段,attributetype字段表示windowsizeattribute字段的类型为通知窗口大小的类型,windowsize字段用于承载第一接收窗口的大小。

可选的,第二数据报文中携带第二子链路编号,第二子链路编号用于表示第二数据报文在第二隧道中的序列号;

基于与图3所示的混合接入网络中处理报文的方法同一发明构思,参阅图7所示,本申请实施例还提供了一种混合接入网络中的第二网络设备700,该第二网络设备可以用于执行图3所示的方法。所述第一混合接入网络包括第一网络设备和所述第二网络设备700。所述第一网络设备和第二网络设备700之间建立有第一隧道和第二隧道,所述第一隧道和所述第二隧道通过绑定连接形成虚拟绑定隧道。所述第一网络设备包括第一存储单元和第二存储单元。所述第一存储单元用于存储第一发送窗口,所述第二存储单元用于存储第二发送窗口。所述第一网络设备具体可以是所述第一网络设备600。所述第二网络设备700包括:

接收单元701,701用于接收所述第一网络设备通过所述第一隧道发送的所述第一发送窗口中的第一数据报文,以及,接收所述第一网络设备通过所述第二隧道发送的所述第二发送窗口中的第二数据报文;

第一数据报文中携带第一子链路编号和第一全局编号,第一子链路编号用于表示第一数据报文在第一隧道中的序列号,第一全局编号表示第一数据报文在虚拟绑定隧道中的序列号。第二数据报文中携带第二子链路编号和第二全局编号,第二子链路编号用于表示第二数据报文在第二隧道中的序列号,第二全局编号用于表示第二数据报文在虚拟绑定隧道中的序列号。

处理单元702,用于将第一数据报文和第二数据报文存储到排序缓存,根据第一全局编号和第二全局编号对第一数据报文和第二数据报文进行排序;

发送单元703,用于在所述处理单元702将所述第一数据报文存储到所述排序缓存后,向所述第一网络设备发送第一确认响应,以使得所述第一网络设备收到所述第一确认响应后,按照第一比例增加所述第一发送窗口的大小。所述第一确认响应中携带第一确认号,所述第一确认号是根据所述第一子链路编号得到的。所述第一确认号用于指示所述第一网络设备所述第二网络设备已经收到所述第一数据报文。

发送单元703,还用于在所述处理单元702将所述第二数据报文存储至所述排序缓存后,向所述第一网络设备发送第二确认响应,以使得所述第一网络设备在收到所述第二确认响应后,按照第三比例增加所述第二发送窗口的大小。所述第二确认响应中携带第二确认号,所述第二确认号是根据所述第二子链路编号得到的。所述第二确认号用于指示所述第一网络设备所述第二网络设备已经收到所述第二数据报文。

可选的,第一确认响应为第三数据报文,第三数据报文中包括确认号字段,确认号字段中携带第一确认号。

可选的,第一确认响应为第一gre控制报文,第一gre控制报文包括确认报文属性attribute字段。确认报文attribute字段包括属性类型attributetype字段,属性长度attributelength字段以及确认号acknowledgementnumber字段。attributetype字段表示确认报文attribute字段的类型为通知已接收到数据报文的类型。acknowledgementnumber字段用于承载第一确认号。

可选的,发送单元703还用于:

在接收单元701接收第一网络设备通过第一隧道发送的第一发送窗口中的第一数据报文之前,向第一网络设备发送第一通知报文。第一通知报文用于通知第一接收窗口的大小,第一接收窗口的大小用于第一网络设备设置第一发送窗口的大小。在接收单元701接收第一网络设备通过第二隧道发送的第二发送窗口中的第二数据报文之前,向第一网络设备发送第二通知报文。第二通知报文用于通知第二接收窗口的大小,第二接收窗口的大小用于第二网络设备设置第一发送窗口的大小,

可选的,第一通知报文为第二gre控制报文,第二通知报文为第四gre控制报文,第二gre控制报文包括窗口大小属性windowsizeattributetlv字段和第四gre控制报文包括窗口大小属性windowsizeattributetlv字段,第二gre控制报文中的windowsizeattributetlv字段用于承载第一接收窗口的大小;第四gre控制报文中的windowsizeattributetlv字段用于承载第二接收窗口的大小。

所述第一存储单元,第二存储单元,第三存储单元可以是缓存。

基于与图3所示的混合接入网络中处理报文的方法同一发明构思,参阅图8所示,本申请实施例还提供了一种混合接入网络中的第一网络设备800,该第一网络设备800可用于执行图3所示的方法。其中,第一网络设备800包括收发器801、处理器802、存储器803和总线804,处理器802以及存储器803之间通过总线804系统相连,处理器802用于执行存储器803中的代码,当代码被执行时,该执行使得处理器执行以下操作:

通过所述第一隧道将所述第一发送窗口中的第一数据报文发送给所述第二网络设备,所述第一数据报文中携带第一子链路编号,所述第一子链路编号用于表示所述第一数据报文在所述第一隧道中的序列号;

响应于接收到所述第二网络设备发送的第一确认响应,按照第一比例增加所述第一发送窗口的大小,所述第一确认响应中携带第一确认号,所述第一确认号是根据所述第一子链路编号得到的,所述第一确认号用于表征所述第二网络设备已经收到所述第一数据报文;

响应于在第一预定时间内未接收到所述第二网络设备发送的所述第一确认响应,按照第二比例减小所述第一发送窗口的大小,所述第二比例大于所述第一比例;

接收第二数据报文,到达所述第二数据报文的目的地址的下一跳为所述第二网络设备;

当确定所述第一发送窗口的大小大于等于第一阈值时,将所述第二数据报文存储至所述第二缓存,所述第二数据报文进入所述第二发送窗口,所述第一网络设备通过所述第二隧道向所述第二网络设备发送所述第二数据报文。

可选的,第一隧道的优先级高于第二隧道,处理器802还用于:

通过所述第一隧道将所述第一发送窗口中的第一数据报文发送给所述第二网络设备之前,确定所述第一发送窗口的大小小于所述第一阈值,所述第一网络设备将所述第一数据报文存储至所述第一缓存,所述第一数据报文进入所述第一发送窗口。

可选的,处理器802还用于,通过收发器801将第一发送窗口中的第一数据报文发送到第二网络设备之前,通过收发器801接收第二网络设备发送的通知报文。该通知报文用于通知第一接收窗口的大小,第一接收窗口的大小为m;响应于收发器801接收到通知报文,将第一发送窗口的大小设置为l,l<m,l和m均大于0。

处理器802还用于在收发器801通过第二隧道向第二网络设备的发送第二数据报文之后,响应于接收到第二网络设备发送的第二确认响应,按照第三比例增加第二发送窗口的大小。第二确认响应中携带第二确认号,第二确认号与第二子链路编号互为映射,第二确认响应用于通知第一网络设备第二网络设备已经收到第二数据报文。以及响应于在第二预定时间内未接收到第二网络设备发送的第二确认响应,按照第四比例减小第二发送窗口的大小,第四比例大于第三比例。

处理器802可以是中央处理器(英文:centralprocessingunit,缩写:cpu),网络处理器(英文:networkprocessor,缩写:np)或者cpu和np的组合。

处理器802还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specificintegratedcircuit,缩写:asic),可编程逻辑器件(英文:programmablelogicdevice,缩写:pld)或其组合。上述pld可以是复杂可编程逻辑器件(英文:complexprogrammablelogicdevice,缩写:cpld),现场可编程逻辑门阵列(英文:field-programmablegatearray,缩写:fpga),通用阵列逻辑(英文:genericarraylogic,缩写:gal)或其任意组合。

存储器803可以包括易失性存储器(英文:volatilememory),例如随机存取存储器(英文:random-accessmemory,缩写:ram);存储器803也可以包括非易失性存储器(英文:non-volatilememory),例如快闪存储器(英文:flashmemory),硬盘(英文:harddiskdrive,缩写:hdd)或固态硬盘(英文:solid-statedrive,缩写:ssd);存储器803还可以包括上述种类的存储器的组合。

基于与图3所示的混合接入网络中处理报文的方法同一发明构思,参阅图9所示,本申请实施例还提供了一种混合接入网络中的第二网络设备900,该第二网络设备900可用于执行图3所示的方法。其中,第二网络设备900包括收发器901、处理器902,存储器903和总线904,处理器902以及存储器903之间通过总线904相连,处理器902用于执行存储器中903的代码,当代码被执行时,该执行使得处理器执行以下操作:

接收所述第一网络设备通过所述第一隧道发送的所述第一发送窗口中的第一数据报文,所述第一数据报文中携带第一子链路编号和第一全局编号,所述第一子链路编号用于表示所述第一数据报文在所述第一隧道中的序列号,所述第一全局编号表示所述第一数据报文在所述虚拟绑定隧道中的序列号;所述第二网络设备接收所述第一网络设备通过所述第二隧道发送的所述第二发送窗口中的第二数据报文,所述第二数据报文中携带第二子链路编号和第二全局编号,所述第二子链路编号用于表示所述第二数据报文在所述第二隧道中的序列号,所述第二全局编号用于表示所述第二数据报文在所述虚拟绑定隧道中的序列号;所述第二网络设备将所述第一数据报文和所述第二数据报文存储到所述排序缓存,根据所述第一全局编号和所述第二全局编号对所述第一数据报文和所述第二数据报文进行排序;

响应于所述第二网络设备将所述第一数据报文存储至所述排序缓存后,所述第二网络设备向所述第一网络设备发送第一确认响应,以使得所述第一网络设备收到所述第一确认响应后,按照第一比例增加所述第一发送窗口的大小,所述第一确认响应中携带第一确认号,所述第一确认号是根据所述第一子链路编号得到的,所述第一确认号用于指示所述第一网络设备所述第二网络设备已经收到所述第一数据报文;

响应于所述第二网络设备将所述第二数据报文存储至所述排序缓存后,所述第二网络设备向所述第一网络设备发送所述第二确认响应,以使得所述第一网络设备在收到所述第二确认响应后,按照第三比例增加所述第二发送窗口的大小,所述第二确认响应中携带第二确认号,所述第二确认号是根据所述第二子链路编号得到的,所述第二确认号用于指示所述第一网络设备所述第二网络设备已经收到所述第二数据报文。

可选的,第一确认响应为第三数据报文,第三数据报文中包括确认号字段,确认号字段中携带第一确认号。

可选的,第一确认响应为第一gre控制报文,第一gre控制报文包括确认报文属性attribute字段,确认报文attribute字段包括属性类型attributetype字段,属性长度attributelength字段以及确认号acknowledgementnumber字段,attributetype字段表示确认报文attribute字段的类型为通知已接收到数据报文的类型,acknowledgementnumber字段用于承载第一确认号。

可选的,处理器902还用于:

在通过第一隧道接收第一网络设备发送的第一发送窗口中的第一数据报文之前,向第一网络设备发送第一通知报文,第一通知报文用于通知第一接收窗口的大小,第一接收窗口的大小用于第一网络设备设置第一发送窗口的大小。通过第二隧道接收第一网络设备发送的第二发送窗口中的第二数据报文之前,向第一网络设备发送第二通知报文,第二通知报文用于通知第二接收窗口的大小,第二接收窗口的大小用于第一网络设备设置第二发送窗口的大小。

可选的,第一通知报文为第二gre控制报文,第二通知报文为第四gre控制报文,第二gre控制报文包括窗口大小属性windowsizeattributetlv字段和第四gre控制报文包括窗口大小属性windowsizeattributetlv字段,第二gre控制报文中的windowsizeattributetlv字段用于承载第一接收窗口的大小;第四gre控制报文中的windowsizeattributetlv字段用于承载第二接收窗口的大小。

处理器902可以是中央处理器(英文:centralprocessingunit,缩写:cpu),网络处理器(英文:networkprocessor,缩写:np)或者cpu和np的组合。

处理器902还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specificintegratedcircuit,缩写:asic),可编程逻辑器件(英文:programmablelogicdevice,缩写:pld)或其组合。上述pld可以是复杂可编程逻辑器件(英文:complexprogrammablelogicdevice,缩写:cpld),现场可编程逻辑门阵列(英文:field-programmablegatearray,缩写:fpga),通用阵列逻辑(英文:genericarraylogic,缩写:gal)或其任意组合。

存储器903可以包括易失性存储器(英文:volatilememory),例如随机存取存储器(英文:random-accessmemory,缩写:ram);存储器903也可以包括非易失性存储器(英文:non-volatilememory),例如快闪存储器(英文:flashmemory),硬盘(英文:harddiskdrive,缩写:hdd)或固态硬盘(英文:solid-statedrive,缩写:ssd);存储器903还可以包括上述种类的存储器的组合。

需要说明的是,图6-7提供的装置,可用于实现图3所示的方法。一个具体的实现方式中,图6中的处理单元604可以用图8中的处理器802实现,发送单元603、接收单元605均可以由图8中的收发器801实现。图7中的处理单元702可以用图9中的处理器902实现,接收单元701和发送单元703均可以由图9中收发器901的实现。

本申请还提供了一种通信系统,包括第一网络设备和第二网络设备,第一网络设备可以是图6、图8对应的实施例所提供的设备。第二网络设备可以是图7、图9对应的实施例所提供的设备。所述通信系统用于执行图3对应的实施例的方法。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本说明书的各个部分均采用递进的方式进行描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点介绍的都是与其他实施例不同之处。尤其,对于装置和系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例部分的说明即可。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1