一种报文传输的方法和网络设备与流程

文档序号:16630567发布日期:2019-01-16 06:31阅读:201来源:国知局
一种报文传输的方法和网络设备与流程

本发明涉及通信技术领域,尤其涉及一种报文传输的方法和网络设备。



背景技术:

在用户能够同时通过两条链路接入网络的场景中,通常会在发送端使用令牌桶来确定传输报文的链路。例如,在混合接入(英文:hybridaccess,简称:hg)技术中,用户可以同时使用运营商的固定网络和移动网络,这种hg技术可以明显提高用户的接入带宽,增加接入可靠性。在实现hg技术的过程中,通常会在发送端使用一个令牌桶确定报文是通过固定宽带网络还是通过移动网络传输,即可以按照固定网络的带宽确定发送端令牌桶的令牌注入速率,如果令牌桶当前所含的令牌数量小于报文的长度,表明报文数量超出令牌桶的接收能力,报文的则将报文标记为黄色,如果令牌桶当前所含的令牌数量大于或者等于报文的长度,则将报文标记为绿色。然后标记为黄色的报文通过移动网络传输,标记为绿色的报文通过固定网络传输。

在令牌的注入操作过程中,令牌桶的令牌注入速率为用户期望的报文限流速率,系统通常将令牌注入速率设置为固定网络承诺带宽,所以令牌桶的注入速率是不变的,即使固定网络的链路出现拥塞,而移动网络链处于路空闲的状态下,令牌桶依然按照设定的固定网络带宽注入令牌,导致令牌桶仍将报文长度小于令牌数量的报文染成绿色,并将所述报文通过所述固定网络的链路进行传输,这样就会出现报文继续被分配到拥塞链路进行传输,而另一条链路空闲的现象,使得在流量突发时不能将报文进行合理分流,导致网络负载不均衡。



技术实现要素:

本申请实施例提供了一种报文传输的方法和网络设备,以实现对报文进行合理分流,保证链路带宽被充分利用,尤其在遇到流量突发的情况下,上述方法可以对报文继续按链路优先级进行负载分担,缓解链路传输压力。

第一方面,本申请提供了一种报文传输的方法,该方法应用包括第一链路和第二链路的网络中。所述方法包括:首先发送端根据报文的长度判断第一令牌桶的令牌数量是否满足传输所述报文的要求,其中,所述第一令牌桶的令牌注入速率是根据所述第一链路的带宽设定的。当所述发送端确定所述第一令牌桶的令牌数量满足传输所述报文的要求时,领取传输所述报文所需要数量的令牌,并利用所述第一链路传输所述报文。当所述发送端确定所述第一令牌桶的令牌数量不满足传输所述报文的要求时,进一步判断所述第二链路是否拥塞。当所述发送端确定所述第二链路没有处于拥塞状态时,利用所述第二链路传输所述报文。

发送端通过令牌桶机制对报文进行分流后,进一步通过对链路的拥塞判断来确定发送所述报文的链路,可以避免将所述报文发送到拥塞路径,减少丢包。

结合第一方面,在第一种可能的实现方式中,在所述发送端根据报文的长度判断第一令牌桶的令牌数量是否满足传输所述报文的要求之前,所述方法还包括:

根据所述报文的长度判断第二令牌桶的令牌数量是否满足传输所述报文的要求,所述第二令牌桶的令牌注入速率是根据所述第二链路的带宽设定的。

当所述第二令牌桶的令牌数量满足传输所述报文的要求时,领取传输所述报文所需要数量的令牌,并利用所述第二链路传输所述报文。

相应地,所述发送端根据报文的长度判断第一令牌桶的令牌数量是否满足传输所述报文的要求包括:

当所述第二令牌桶的令牌数量不满足传输所述报文的要求时,所述发送端根据所述报文的长度判断所述第一令牌桶的令牌数量是否满足传输所述报文的要求。

通过上述方案,针对第一链路设置第一令牌桶机制,对第二链路设置第二令牌桶机制,使发送端能够对每条链路的状态进行判断,并依据所述判断结果确定发送所述报文的优先链路,保证对链路带宽的充分利用。

结合第一方面,在第二种可能的实现方式中,所述方法还包括:

当所述发送端确定所述第二链路处于拥塞状态时,利用所述第一链路传输所述报文。

发送端确定第二链路处于拥塞状态,表明所述第二链路不适合再传输报文,如果将所述报文继续发送到所述第二链路就会造成丢包,因此可以利用第一链路发送所述报文,以减少丢包。

结合第一方面,在第三种可能的实现方式中,所述当所述发送端确定所述第二链路处于拥塞状态时,利用所述第一链路传输所述报文包括:

当所述发送端确定所述第二链路处于拥塞状态时,进一步判断所述第一链路是否处于拥塞状态。

当所述发送端确定所述第一链路没有处于拥塞状态时,利用所述第一链路传输所述报文。

通过上述方案,发送端在将所述报文发送到第一链路前,需要进一步判断所述第一链路是否拥塞,以避免在所述第一链路出现拥塞的状态下发送所述报文,减少丢包。

结合第一方面,在第四种可能的实现方式中,所述当所述发送端确定所述第二链路没有处于拥塞状态时,利用所述第二链路进行传输所述报文包括:

当所述第二链路上传输的飞行报文数小于飞行报文门限时,所述发送端确定所述第二链路没有处于拥塞状态。所述飞行报文数是指正在所述第二链路上传输的,并且所述发送端没有收到确认消息的报文的字节数的总和,所述确认消息是指报文被所述第二链路的接收端接收并完成正确排序时向所述发送端发送的确认收到所述报文的消息。所述飞行报文门限是根据所述第二链路能够容纳的报文数量设定的阈值。

通过上述方案,利用飞行报文数与飞行报文门限判断链路是否拥塞,保证了对超出第一链路传输能力的报文继续按照优先级进行分流,以保证链路带宽可以被充分应用。飞行报文门限的设置还可以使得在动态条件下避免第二链路在拥塞状态下仍需传输报文的现象。

结合第一方面,在第五种可能的实现方式中,所述当确定所述第二链路处于拥塞状态时,利用所述第一链路传输所述报文包括:

当所述第二链路上传输飞行报文数大于或等于飞行报文门限时,所述发送端确定所述第二链路处于拥塞状态。所述飞行报文数是指正在所述第二链路上传输的,并且所述发送端没有收到确认消息的报文的字节数的总和。所述确认消息是指报文被所述第二链路的接收端接收并完成正确排序时向所述发送端发送的确认收到所述报文的消息。所述飞行报文门限是根据所述第二链路能够容纳的报文数量设定的阈值。

结合第一方面,在第六种可能的实现方式中,所述第一链路为固定宽带网络的链路,所述第二链路为移动网络的链路,或者所述第一链路为移动网络的链路,所述第二链路为固定网络的链路。

通过上述方案,使用户可以同时接入固定网络和移动网络,明显提高用户的接入带宽,增加接入网络概率。

第二方面,本申请提供了一种报文传输的网络设备,所述网络设备应用于包括第一链路和第二链路的网络中,所述网络设备包括第一判断单元、第二判断单元、获取单元和发送单元。

第一判断单元用于根据报文的长度判断第一令牌桶的令牌数量是否满足传输所述报文的要求。所述第一令牌桶的令牌注入速率是根据所述第一链路的带宽设定的。

第二判断单元用于当确定所述第一令牌桶的令牌数不满足传输所述报文的要求时,进一步判断所述第二链路是否拥塞。

获取单元用于当确定所述第一令牌桶的令牌数量满足传输所述报文的要求时,获取传输所述报文所需要数量的令牌。

发送单元用于当确定所述第一令牌桶的令牌数量满足传输所述报文的要求时,利用所述第一链路发送所述报文。所述发送单元还用于当确定所述第二链路没有处于拥塞状态时,利用所述第二链路发送所述报文。

结合第二方面,在第一种可能的实现方式中,所述网络设备还包括第三判断单元。

所述第三判断单元用于在根据报文的长度判断第一令牌桶的令牌数量是否满足传输所述报文的要求之前,根据所述报文的长度判断第二令牌桶的令牌数量是否满足传输所述报文的要求,所述第二令牌桶的令牌注入速率是根据所述第二链路的带宽设定的。

所述获取单元还用于当所述第二令牌桶的令牌数量满足传输所述报文的要求时,获取传输所述报文所需要数量的令牌。

所述发送单元还用于当所述第二令牌桶的令牌数量满足传输所述报文的要求时,利用所述第二链路发送所述报文。

结合第二方面,在第二种可能的实现方式中,所述发送单元还用于当确定所述第二链路处于拥塞状态时,利用所述第一链路发送所述报文。

结合第二方面,在第三种可能的实现方式中,所述网络设备还包括第四判断单元,

所述第四判断单元用于当确定所述第二链路处于拥塞状态时,进一步判断所述第一链路是否处于拥塞状态。

所述发送单元用于当确定所述第一链路没有处于拥塞状态时,利用所述第一链路发送所述报文。

结合第二方面,在第四种可能的实现方式中,所述第二判断单元用于当所述第二链路上传输的飞行报文数小于飞行报文门限时,所述发送端确定所述第二链路没有处于拥塞状态。所述飞行报文数是指正在所述第二链路上传输的,并且所述发送端没有收到确认消息的报文的字节数的总和。所述确认消息是指报文被所述第二链路的接收端接收并完成正确排序时向所述发送端发送的确认收到所述报文的消息。所述飞行报文门限是根据所述第二链路能够容纳的报文数量设定的阈值。

结合第二方面,在第五种可能的实现方式中,所述第二判断单元用于当所述第二链路上传输的飞行报文数大于或等于飞行报文门限时,确定所述第二链路处于拥塞状态。所述飞行报文数是指正在所述第二链路上传输的,并且所述发送端没有收到确认消息的报文的字节数的总和。所述确认消息是指报文被所述第二链路的接收端接收并完成正确排序时向所述发送端发送的确认收到所述报文的消息,所述飞行报文门限是根据所述第二链路能够容纳的报文数量设定的阈值。

第三方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面、第二方面以及各个可能实现方式的所述的方法。

第四方面,本申请提供了一种网络设备,所述网络设备包括网络接口、处理器、存储器和连接所述网络接口、处理器和存储器的总线。所述存储器用于存储程序、指令或代码,所述处理器用于执行所述存储器中的程序、指令或代码,完成上述第一方面和第二方面以及各个可能实现方式的所述的方法。

附图说明

图1为本发明实施例提供的一种应用场景示意图。

图2为本发明实施例提供的一种报文传输的方法流程示意图。

图3为本发明实施例提供的又一种报文传输的方法流程示意图。

图4为本发明实施例提供的一种报文传输的网络设备。

图5为本发明实施例提供的另一种报文传输的网络设备。

具体实施方式

下面将结合附图对本申请作进一步详细描述。

图1提供了一种报文传输的应用场景架构示意图,该架构包括客户终端设备105、网关103、第一链路101和第二链路102、网络104和混合接入汇聚节点106。客户终端设备105具体可以是电话、个人电脑或者网络访问服务器等。网关103具体可以是家庭网关,是一种用户侧网络设备,能够使客户终端设备105接入网络104。网关103可以为路由器或交换机等设备,汇聚节点106也可以为路由器或交换机等设备。第一链路101具体可以是移动运营商为客户终端设备105提供的接入网络104的链路,第二链路具体可以是固定网络运营商提供的接入网络104的链路,即客户终端设备105可以通过移动网络运营商提供的第一链路101接入网络104,例如客户终端设备105可通过lte(英文:longtermevolution,简称:lte)接入网络104,客户终端设备105也可以通过固定网络运营商提供的第二链路102接入网络104,例如客户终端设备105通过dsl(英文:digitalsubscriberline,简称:dsl)接入网络104。对于网关103来说,既可以选择第一链路101向网络104发送报文,也可以选择第二链路102向网络104发送报文。同样对于混合接入汇聚节点106来说,既可以选择从第一链路101向客户终端设备105发送报文,也可以通过第二链路102向客户终端设备105发送报文。网关103和混合接入汇聚节点106在判断是通过第一链路101还是通过第二链路102发送报文时,可以依据令牌桶染色机制确定传输报文的链路。

在网关103或者混合接入汇聚节点106使用令牌桶染色机制确定发送报文的链路过程中,令牌桶的注入速率是根据第一链路101或者第二链路102的带宽设定的,即令牌桶的注入速率是根据运营商的承诺带宽来设定数值,例如可以将令牌桶的注入速率设定为固定网络运营商承诺的带宽的数值的一半,只要令牌桶还没有装满令牌,新的令牌就会以设定的的速率向令牌桶中注入。以令牌输入速率以第一链路的带宽设定数值为例,当网关103或者混合接入汇聚节点106需要确定发送报文的链路时,可以根据报文的长度判断令牌桶中令牌的数量是否够用,如果令牌桶中令牌数量够用,则将所述报文通过第一链路101传输,如果令牌桶中令牌数量不够用,则将所述报文通过第二链路102传输。在上述确定报文发送链路的过程中,仅根据要发送的报文的长度判断令牌桶中令牌的数量是否够用,而不考虑链路的实际状况,就会导致即使在第一链路101拥塞的状态下,令牌仍然以设定的速率向令牌桶中注入,令牌桶中就会不停的有新的令牌注入,这样令牌桶中的令牌可能一直可以满足所要传输的报文的长度,即使将要传输报文的第一链路101已经处于拥塞状态,所述报文依然会通过第一链路101传输。这样就会出现在第一链路101已经出现拥塞的情况下,即使第二链路102处于空闲状态,网关103或者混合接入汇聚节点106依然会仅根据令牌桶中令牌的数量对链路进行判断,这种方法不仅不能对报文合理分流,而且在流量突发的状态下第一链路101受到很大冲击。需要说明的是,图1所示的应用场景仅仅是本申请实施例的一种应用场景,不应对本申请的应用场景构成限定。

为解决上述技术问题,本发明实施例提供了一种报文传输的方法及网络设备,其中,方法和网络设备是基于同一发明构思的,由于方法及网络设备解决问题的原理相似,因此网络设备与方法的实施可以相互参见,重复之处不再赘述。

参见图2,结合图1中的网络应用场景,图2提供了一种报文传输的方法,所述方法中的发送端可以是图1中网关103或者混合接入汇聚节点106,该方法应用于包括第一链路和第二链路的网络中,所述方法具体包括:

s201,发送端根据报文的长度判断第一令牌桶的令牌数量是否满足传输所述报文的要求,所述第一令牌桶的令牌注入速率是根据所述第一链路的带宽设定的。

在一个具体的实施方式中,发送端在向接收端发送报文之前,在所述发送端设置第一令牌桶,其中,当图1中的网关103将客户终端设备105的报文向网络104发送时,所述网关103为所述发送端,当混合接入汇聚节点106向网络104发送报文时,所述混合接入汇聚节点106为所述发送端。在对所述发送端设置所述第一令牌桶实现对报文染色时,根据第一链路的带宽设定所述第一令牌桶的令牌注入速率,其中,所述第一链路的带宽是指提供所述第一链路接入网络服务的运营商向用户所承诺的网络带宽。举例来说,当所述第一链路为固定网络运营商提供的接入网络的链路,比如通过dsl接入网络,运营商给用户分配的承诺带宽是兆字节每秒(mb/s),可以将所述第一令牌桶的令牌注入速率同样设置为10mb/s,为了避免所述dsl拥塞,还可以将所述第一令牌桶的令牌注入速率设置为所述承诺带宽数值的一半,即将所述第一令牌桶的令牌注入速率设置为5mb/s。当然所述第一令牌桶的令牌注入速率可以根据需要的效果进行调整,但是调整的范围需要根据所述第一链路的带宽进行确定。在确定所述第一令牌桶的令牌注入速率后,根据确定的速率向所述第一令牌桶中注入令牌,直到将所述第一令牌桶注满。当所述发送端接收到报文时,所述发送端会根据所述报文的长度判断所述第一令牌桶中的令牌数量是否满足传输所述报文的要求,即判断所述报文的长度与所述第一令牌桶中的令牌数量的大小。

s202,当所述发送端确定所述第一令牌桶的令牌数量满足传输所述报文的要求时,领取传输所述报文所需要数量的令牌,并利用所述第一链路传输所述报文。

在具体的实施方式中,如果所述第一令牌桶的令牌数量大于或者等于所述报文的长度所需要的令牌数,所述发送端就可以确定所述第一令牌桶的令牌数满足传输所述报文的要求。在所述发送端确定所述第一令牌桶的令牌数量满足传输所述报文的要求后,允许从所述第一令牌桶中领取满足所述报文长度数量的令牌,并将所述报文通过所述第一链路进行传输。

举例来说,在所述发送端确定所述第一令牌桶的令牌数量大于或等于传输所述报文的要求时,将所述报文染成绿色,并从所述第一令牌桶中领取满足所述报文长度数量的令牌,所述发送端将绿色的报文通过所述第一链路进行传输。

s203,当所述发送端确定所述第一令牌桶的令牌数量不满足传输所述报文的要求时,进一步判断所述第二链路是否拥塞。

在具体的实施方式中,第一链路为固定网络运营商提供的接入网络的链路,第二链路为移动运营商提供的接入网络的链路,如果所述第一令牌桶的令牌数量小于所述报文的长度所需要的令牌数,所述发送端就可以确定所述第一令牌桶的令牌数不满足传输所述报文的要求,此时,说明所述报文不适合通过固定网络的链路传输,在考虑将所述报文通过移动网络提供的链路传输所述报文之前,需要进一步判断所述移动网络提供的链路是否处于拥塞。

在另一个具体的实施方式中,第一链路为移动运营商提供的接入网络的链路,所述第二链路为固定运营商提供的接入网络的链路。如果所述第一令牌桶的令牌数量小于所述报文的长度所需要的令牌数,所述发送端就可以确定所述第一令牌桶的令牌数不满足传输所述报文的要求,说明所述报文不适合通过所述移动网络的链路传输,在将所述报文通过固定网络的链路传输前,进一步判断所述固定网络是否处于拥塞状态。在另外的实施方式中,可以理解本申请实施例中的所述第一链路和第二链路为任一运营商提供的接入网络的链路,所述第一链路和所述第二链路可以为相同运营商提供的网络链路,也可以为不同运营商提供的网络链路。

举例来说,以第一链路为dsl,第二链路为lte为例,在所述发送端确定所述第一令牌桶的令牌数量小于传输所述报文的要求时,将所述报文染成红色,红色报文表明不适合通过所述dsl传输,在将所述红色报文通过所述lte进行传输前,还需要判断lte是否拥塞。

s204,当所述发送端确定所述第二链路没有处于拥塞状态时,利用所述第二链路传输所述报文。

在具体的实施方式中,当所述发送端确定所述第二链路没有处于拥塞状态,则可以将所述报文通过所述第二链路传输。

举例来说,如果所述发送端确定第二链路没有处于拥塞状态时,可以将所述报文染成红色,所述发送端将红色报文通过所述第二链路传输。

通过上述方案,根据第一链路的带宽设置第一令牌桶的令牌注入速率,发送端在确定所述第一令牌桶的令牌数量能够满足传输报文的要求时,将所述报文利用所述第一链路传输。当所述发送端确定所述第一令牌桶的令牌数量不能满足传输所述报文的要求时,继续对第二链路的拥塞状态进行判断,如果所述发送端确定所述第二链路没有处于拥塞状态,则可将所述报文利用所述第二链路传输,以避免所述第二链路处于拥塞状态下,所述发送端继续利用所述第二链路传输所述报文,出现丢包现象。

在一个具体的实施方式中,所述当所述发送端确定所述第二链路没有处于拥塞状态时,将所述报文通过所述第二链路进行传输包括:当所述第二链路上传输的飞行报文数小于飞行报文门限时,所述发送端确定所述第二链路没有处于拥塞状态。所述飞行报文数是指正在所述第二链路上传输的,并且所述发送端没有收到确认消息的报文的字节数的总和。所述确认消息是指报文被所述第二链路的接收端接收并完成正确排序时向所述发送端发送的确认收到所述报文的消息。所述飞行报文门限是根据所述第二链路能够容纳的报文数量设定的阈值。

在该具体的实施方式中,判断第二链路是否处于拥塞状态时,可以通过判断所述第二链路上传输的飞行报文数与飞行报文门限的大小确定所述第二链路是否拥塞,其中所述所述飞行报文数是指正在所述第二链路上传输的,并且所述发送端没有收到确认消息的报文的字节数的总和,所述确认消息是指报文被所述第二链路的接收端接收并完成正确排序时向所述发送端发送的确认收到所述报文的消息。飞行报文门限是指对所述第二链路能够容纳的报文数设定的阈值。如果所述飞行报文数小于所述飞行报文门限,则发送端可确定所述第二链路没有处于拥塞状态。

举例来说,一个报文在通过发送端发送后,接收端重新排序缓存正确排序的报文之前,在不考虑丢包的情况下,所述报文在所述第二链路中可能存在在以下几个位置中,所述第二链路的隧道的传输路径中、所述第二链路中的网络设备的缓存中以及接收端的重排序缓存中等。飞行报文数就是指在任意时刻下,已经从所述发送端发送,但发送端尚未收到包含对应确认号(英文:acknowledgmentnumber,简称:ack)的确认消息的报文的字节数总和,比如包括在所述第二链路上传输的、所述第二链路中网络设备的缓存中以及所述第二链路的重排序缓存等中的报文的字节数总和。为了获取所述第二链路的飞行报文数,可以在发送端记录每个通过所述第二链路发送的报文的序列号以及报文的长度,所述发送端在收到接收端发送的回复确认消息后,根据所述回复确认消息中携带的ack将所述发送端记录的与所述ack对应的报文序列号删除,此时,将所述发送端记录的剩余的序列号对应的报文长度相加获得的总和就是所述第二链路的飞行报文数。对于飞行报文门限,可以根据所述第二链路传输时延、带宽以及物理链路上网络设备的缓存空间等信息进行设置,设置所述第二链路上能容纳报文数量的最大值,即设置所述第二链路上传输报文的阈值,例如可以将所述飞行报文门限设置为小于数学式:d×c+b的数值,其中,d为所述第二链路单向时延值,c为所述第二链路的带宽值,b为所述第二链路中网络设备的缓存总空间值,所述数学式表达的是所述第二链路上单向能够容纳报文的最大数值。将所述飞行报文数和所述飞行报文门限的值进行比较,可以确认所述第二链路是否处于拥塞状态,如果所述飞行报文数小于所述飞行报文门限,则所述发送端可以确定所述第二链路没有处于拥塞状态。

上述方法通过发送端对第二链路的飞行报文数和飞行报文门限进行比较,判断所述第二链路是否拥塞,可以更准确的确定所述第二链路的带宽被利用的实时状态,使得在动态条件下可以避免在所述第二链路拥塞状态下继续传输所述报文,能够保证第一链路和所述第二链路的带宽等够被充分利用,使报文按照链路优先级进行负载分担。

在一个具体的实施方式中,所述当所述发送端确定所述第二链路处于拥塞状态时,利用所述第一链路传输所述报文包括:当所述发送端确定所述第二链路处于拥塞状态时,进一步判断所述第一链路是否处于拥塞状态。当所述发送端确定所述第一链路没有处于拥塞状态时,利用所述第一链路传输所述报文。

在一个具体的实施方式中,所述当确定所述第二链路处于拥塞状态时,将所述报文发送到所述第一链路进行传输包括:当所述第二链路上传输的飞行报文数大于或等于飞行报文门限时,所述发送端确定所述第二链路处于拥塞状态,所述飞行报文数是指正在所述第二链路上传输的,并且所述发送端没有收到确认消息的报文的字节数的总和,所述确认消息是指报文被所述第二链路的接收端接收并完成正确排序时向所述发送端发送的确认收到所述报文的消息。所述飞行报文门限是根据所述第二链路能够容纳的报文数量设定的阈值。

在该具体的实施方式中,上述实施例已经详细描述如何判断第二链路是否处于拥塞状态,如果确定所述第二链路的飞行报文数大于或者等于所述第二链路的飞行报文门限,则可确定所述第二链路处于拥塞状态。此时,由于已经确定所述第二链路处于拥塞状态,因此可以将所述报文通过第一链路传输。

在一个具体的实施方式中,在当所述发送端确定所述第二链路处于拥塞状态后至将所述报文通过所述第一链路传输,所述方法还包括:当所述发送端确定所述第二链路处于拥塞状态时,进一步判断所述第一链路是否处于拥塞状态。当所述发送端确定所述第一链路没有处于拥塞状态时,将所述报文通过所述第一链路传输。

在该具体的实施方式中,在发送端确定第二链路处于拥塞状态后,并在将报文通过第一链路进行传输之前,对所述第一链路进行拥塞判断,具体拥塞判断方式可以通过上述实施例中对所述第二链路的拥塞判断方式进行,此处不再赘述。当所述发送端确定所述第一链路没有处于拥塞状态后,再将所述报文通过所述第一链路进行传输。

参考图3,为本申请实施例提供了一种报文传输的方法,结合图1中的网络场景,本申请实施例中的发送端既可以是图1中网关103,也可以是混合接入汇聚节点106,还可以是图2中的发送端,本实施例中的第一令牌桶可以是图2中的第一令牌桶,本实施例中的第一链路可以是图1中的第一链路101,还可以是图2中第一链路,该方法同样应用于包括第一链路和第二链路的网络中,所述方法包括:

s301,发送端根据报文的长度判断第二令牌桶的令牌数量是否满足传输所述报文的要求。所述第二令牌桶的令牌注入速率根据所述第二链路的带宽设定。

在具体的实施方式中,在发送端设置两套令牌桶机制,这两套令牌桶机制分别对应两条链路,即第一令牌桶的令牌注入速率根据第一链路带宽设定,第二令牌桶的令牌注入速率根据第二链路带宽设定速率。令牌桶注入速率的设定可以参考上述步骤s201中所述的方法,此处不再赘述。发送端首先根据报文长度判断所述第二令牌桶的令牌数量是否满足传输所述报文的要求,其中所述第二令牌桶的令牌注入速率根据所述第二链路的带宽设定。

举例来说,当所述第一链路为dsl,第二链路为lte时,发送端根据所述lte的带宽设定所述第二令牌桶的令牌注入速率,发送端接收到报文后根据报文的长度判断所述第二令牌桶的令牌数量是否满足传输所述报文的要求。本领域技术人员可以理解的是第一链路可以是lte,第二链路是dsl,发送端同样可以根据所述dsl的带宽对所述第二令牌桶设定令牌注入速率,所述发送端发送报文之前根据所述报文的长度判断所述第二令牌桶的令牌数量是否满足传输所述报文的要求。

s302,当所述发送端确定所述第二令牌桶的令牌数量满足传输所述报文的要求时,领取传输所述报文所需要数量的令牌,并利用所述第二链路传输所述报文。

在具体的实施方式中,如果所述第二令牌桶的令牌数量等于或者大于传输报文长度所需要的令牌数,领取与传输所述报文数量相同的令牌,并将所述报文通过所述第二链路传输。

举例来说,当第一链路为lte,第二链路为dsl时,如果所述第二令牌桶的令牌数量等于或者大于传输报文长度所需要的令牌数,则可以将所述报文染成红色,领取与传输所述报文数量相同的令牌,红色报文由所述dsl传输。

s303,当所述发送端确定所述第二令牌桶的令牌数量不满足传输所述报文的要求时,根据所述报文的长度判断第一令牌桶的令牌数量是否满足传输所述报文的要求。所述第一令牌桶的令牌注入速率根据所述第一链路的带宽设定。

在具体的实施方式中,当所述发送端确定所述第二令牌桶的令牌数量小于传输所述报文的要求时,将所述报文继续通过第一令牌桶进行判断,所述第一令牌桶的令牌注入速率根据所述第一链路带宽设定数值。

举例来说,当所述第一链路为lte,第二链路为dsl时,如果第二令牌桶的令牌数量小于传输报文长度所需要的令牌数,则说明所述报文不适合通过所述dsl传输,则可将所述报文染成绿色,所述绿色报文不通过所述dsl传输。所述绿色报文需要继续通过第一令牌桶进行判断,其中所述第一令牌桶的令牌注入速率是根据所述lte带宽设定的。

s304,当所述发送端确定所述第一令牌桶的令牌数量满足传输所述报文的要求时,领取传输所述报文所需要数量的令牌,并利用所述第一链路传输所述报文。

在具体的实施方式中,如果发送端确定第一令牌桶的令牌数量能够满足传输报文的要求时,从令牌桶中领取与所述报文长度等同的令牌数,并将所述报文通过所述第一链路传输。

举例来说,当所述第一链路为lte,第二链路为dsl时,发送端可以对不适合所述dsl传输要求的报文染成绿色,接着通过第一令牌桶对所述绿色报文继续判断。当所述发送端确定所述第一令牌桶的令牌数量满足传输所述绿色报文的要求时,将所述绿色报文通过所述lte传输。

s305,当所述发送端确定所述第一令牌桶的令牌数量不满足传输所述报文的要求时,判断所述第二链路是否拥塞。

在具体的实施方式中,当所述发送端确定第一令牌桶的令牌数量不满足传输所述报文的要求时,进一步判断第二链路是否拥塞,对于所述第二链路拥塞的判断既可以采用本领域技术人员的惯用手段,也可以根据图2所述方法中步骤s204中的方法对所述第二链路进行拥塞判断,及使用所述第二链路的飞行报文数和飞行报文门限来判断所述第二链路是否处于拥塞状态,具体实施方法可参考步骤s204,为了简洁,此处不再赘述。

举例来说,当第一链路为lte,第二链路为dsl时,发送端将经过第二令牌桶判断不适合所述dsl传输的报文染成绿色,并通过第一令牌桶继续对所述绿色报文判断。当所述发送端确定所述第一令牌桶的令牌数量不满足传输所述报文的要求时,可以将所述报文染成红色,在将所述红色报文通过所述dsl传输前,对所述dsl链路状态进行判断,即进一步判断所述dsl是否拥塞。

s306,当所述发送端确定所述第二链路没有处于拥塞状态时,利用所述第二链路传输所述报文。

在具体的实施方式中,当发送端确定第二链路没有处于拥塞状态时,表明所述第二链路可以传输所述报文,则可将所述报文通过所述第二链路进行传输。

举例来说,当第一链路为lte,第二链路为dsl时,发送端在确定所述dsl没有处于拥塞状态时,可以利用所述dsl发送所述报文。

s307,当所述发送端确定所述第二链路处于拥塞状态时,利用所述第一链路传输所述报文。

在具体的实施方式中,当发送端确定第二链路处于拥塞状态,表明所述第二链路不适合传输报文,因此可利用第一链路传输所述报文,以避免将所述报文利用所述第二链路发送,造成丢包。

通过上述方案,发送端根据第一链路的带宽设置第一令牌桶的令牌注入速率,并根据第二链路的带宽设置第二令牌桶的令牌注入速率。所述发送端首先根据报文的长度判断所述第=二令牌桶的令牌注入速率是否满足传输所述报文的要求。如果所述第二令牌桶的令牌数量满足传输所述报文的要求,表明所述第二链路适合发送所述报文,则可利用所述第二链路传输所述报文。如果所述发送端确定所述第二令牌桶的令牌数量不满足传输所述报文的要求,则所述发送端继续根据所述第一令牌桶的令牌数量判断是否能够满足传输报文的要求,以判断所述报文是否适合利用所述第一链路进行传输。如果所述发送端确定所述第一令牌桶的令牌数量满足传输所述报文的要求时,利用所述第一链路传输所述报文。如果所述发送端确定所述第一令牌桶的数量不能满足传输所述报文的要求时,表明所述第一链路不适合传输所述报文,则继续判断所述第二链路是否拥塞。如果所述发送端确定所述第二链路没有处于拥塞状态,则利用所述第二链路传输所述报文。这样发送端可以对发送报文的链路进行逐级的优先级判断,将所述报文合理分流,既保证带宽可以被充分利用,还可以通过拥塞判断避免报文被发送到拥塞链路,减小丢包现象。

请参阅图4,为本申请实施例提供一种报文传输的网络设备400,该网络设备400应用于包括第一链路和第二链路的网络中。结合图1中的网络场景,本实施例中的发送端既可以是图1中网关103或者混合接入汇聚节点106,该网络设备400可以执行图2和图3所述方法中发送端的步骤和功能,所述网络设备400包括第一判断单元401、第二判断单元402、获取单元403和所述发送单元404。

所述第一判断单元401,用于根据报文的长度判断第一令牌桶的令牌数量是否满足传输所述报文的要求,所述第一令牌桶的令牌注入速率是根据所述第一链路的带宽设定的。

所述第二判断单元402,用于当确定所述第一令牌桶的令牌数不满足传输所述报文的要求时,进一步判断所述第二链路是否拥塞。

所述获取单元403,用于当确定所述第一令牌桶的令牌数量满足传输所述报文的要求时,获取传输所述报文所需要数量的令牌。

所述发送单元404,用于当确定所述第一令牌桶的令牌数量满足传输所述报文的要求时,利用所述第一链路发送所述报文。所述发送单元404还用于当确定所述第二链路没有处于拥塞状态时,利用所述第二链路发送所述报文。

具体实施方式中,所述第一判断单元401、所述第二判断单元402、获取单元403和所述发送单元404的具体实施方式可以参考图2和图3所述方法中的发送端的相关的功能和步骤,为了简洁,不再赘述。

在一个具体的实施方式中,所述网络设备400还包括第三判断单元405。

所述第三判断单元405,用于在根据报文的长度判断第一令牌桶的令牌数量是否满足传输所述报文的要求之前,根据所述报文的长度判断第二令牌桶的令牌数量是否满足传输所述报文的要求。所述第二令牌桶的令牌注入速率是根据所述第二链路的带宽设定的。

所述获取单元403,还用于当所述第二令牌桶的令牌数量满足传输所述报文的要求时,获取传输所述报文所需要数量的令牌。

所述发送单元404,还用于当所述第二令牌桶的令牌数量满足传输所述报文的要求时,利用所述第二链路发送所述报文。

在一个具体的实施方式中,所述发送单元404还用于当确定所述第二链路处于拥塞状态时,利用所述第一链路发送所述报文。

在一个具体的实施方式中,所述网络设备还包括第四判断单元406。

所述第四判断单元406用于当确定所述第二链路处于拥塞状态时,进一步判断所述第一链路是否处于拥塞状态。

所述发送单元404用于当确定所述第一链路没有处于拥塞状态时,利用所述第一链路发送所述报文。

在一个具体的实施方式中,所述第二判断单元402用于当所述第二链路上传输的飞行报文数小于飞行报文门限时,所述发送端确定所述第二链路没有处于拥塞状态。所述飞行报文数是指正在所述第二链路上传输的,并且所述发送端没有收到确认消息的报文的字节数的总和,所述确认消息是指报文被所述第二链路的接收端接收并完成正确排序时向所述发送端发送的确认收到所述报文的消息。所述飞行报文门限是根据所述第二链路能够容纳的报文数量设定的阈值。

在一个具体的实施方式中,所述第二判断单元402用于当所述第二链路上传输的飞行报文数大于或等于飞行报文门限时,确定所述第二链路处于拥塞状态。所述飞行报文数是指正在所述第二链路上传输的,并且所述发送端没有收到确认消息的报文的字节数的总和。所述确认消息是指报文被所述第二链路的接收端接收并完成正确排序时向所述发送端发送的确认收到所述报文的消息。所述飞行报文门限是根据所述第二链路能够容纳的报文数量设定的阈值。

在一个具体的实施方式中,所述第一链路为固定宽带网络的链路,所述第二链路为移动网络的链路,或者所述第一链路为移动网络的链路,所述第二链路为固定网络的链路。

请参阅图5,为本申请提供了另一种报文中传输的网络设备500,该网络设备500应用于包括第一链路和第二链路的网络中。图5所示的网络设备可以是图1中的网关103,也可以是混合接入汇聚节点106,还可以是图2和图3所述方法中的发送端,可以实现所述发送端的功能。如图5所示,该网络设备包括网络接口501、处理器502、存储器503以及连接该处理器502、存储器503和网络接口501的各种总线504。

处理器502包括但不限于中央处理器(英文:centralprocessingunit,简称:cpu),网络处理器(英文:networkprocessor,简称:np),专用集成电路(英文:application-specificintegratedcircuit,简称:asic)或者可编程逻辑器件(英文:programmablelogicdevice,缩写:pld)中的一个或多个。上述pld可以是复杂可编程逻辑器件(英文:complexprogrammablelogicdevice,缩写:cpld),现场可编程逻辑门阵列(英文:field-programmablegatearray,缩写:fpga),通用阵列逻辑(英文:genericarraylogic,缩写:gal)或其任意组合。

网络接口501可以是有线接口,例如光纤分布式数据接口(英文:fiberdistributeddatainterface,简称:fddi)、以太网(英文:ethernet)接口。网络接口501也可以是无线接口,例如无线局域网接口。

存储器503可以是包括但不限于内容寻址存储器(英文:content-addressablememory,简称:cam),例如三态内容寻址存储器(英文:ternarycam,简称:tcam),随机存取存储器(英文:random-accessmemory,简称:ram)。

存储器503也可以集成在处理器502中。如果存储器503和处理器502是相互独立的器件,存储器503和处理器502相连,例如存储器503和处理器502可以通过总线通信。网络接口501和处理器502可以通过总线通信,网络接口501也可以与处理器502直连。

在一个具体的实施方式中:

所述处理器502用于根据报文的长度判断第一令牌桶的令牌数量是否满足传输所述报文的要求。所述第一令牌桶的令牌注入速率是根据所述第一链路的带宽设定的。当所述发送端确定所述第一令牌桶的令牌数量满足传输所述报文的要求时,领取传输所述报文所需要数量的令牌。当所述发送端确定所述第一令牌桶的令牌数量不满足传输所述报文的要求时,进一步判断所述第二链路是否拥塞。

所述网络接口501用于当所述发送端确定所述第一令牌桶的令牌数量满足传输所述报文的要求时,利用所述第一链路传输所述报文。当所述发送端确定所述第二链路没有处于拥塞状态时,利用所述第二链路传输所述报文。

在该具体实施方式中,所述处理器502和所述网络接口501的具体实现可以参考图2所述方法中的发送端的功能和实施的步骤,为了简洁,不再赘述。

在另一个具体的实施方式中:

所述处理器502用于根据报文的长度判断第二令牌桶的令牌数量是否满足传输所述报文的要求。所述第二令牌桶的令牌注入速率是根据所述第二链路的带宽设定的。当所述发送端确定所述第二令牌桶的令牌数量满足传输所述报文的要求时,领取传输所述报文所需要数量的令牌。当所述发送端确定所述第二令牌桶的令牌数量不满足传输所述报文的要求时,根据报文的长度判断第一令牌桶的令牌数量是否满足传输所述报文的要求。所述第一令牌桶的令牌注入速率是根据所述第一链路的带宽设定的。当所述发送端确定所述第一令牌桶的令牌数量满足传输所述报文的要求时,领取传输所述报文所需要数量的令牌。当所述发送端确定所述第一令牌桶的令牌数量不满足传输所述报文的要求时,进一步判断所述第二链路是否拥塞。

所述网络接口501用于当所述发送端确定所述第一令牌桶的令牌数量满足传输所述报文的要求时,利用所述第一链路传输所述报文。当所述发送端确定所述第二链路没有处于拥塞状态时,利用所述第二链路传输所述报文。当所述发送端确定所述第二链路处于拥塞状态时,利用所述第一链路传输所述报文。

在该具体实施方式中,所述处理器502和所述网络接口501的具体实现可以参考图3所述的发送端的功能和实施的步骤,以及所述第二链路拥塞的判断方法可以参考图2中步骤s204所述的方法,为了简洁,不再赘述。

所述网络设备500可以实现的其他附加功能,以及与其他设备的交互过程,请参照图2和图3所述方法实施例中对发送端的功能和执行步骤的描述,在这里不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

应理解,在本申请的各种实施例中,上述各方法的序号的大小并不意味着执行顺序的先后,各方法的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

在本申请所提供的几个实施例中,应该理解到,所公开的方法和设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

所述集成的单元如果以硬件结合软件的形式实现并作为独立的产品销售或使用时,所述软件可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案对现有技术做出贡献的部分技术特征可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分或全部步骤。而前述的存储介质可以是u盘、移动硬盘、只读存储器(简称:rom,英文:read-onlymemory)、随机存取存储器(简称:ram,英文:randomaccessmemory)、磁碟或者光盘。

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