CN107872390A - 一种路由选择方法及报文转发设备 - Google Patents

一种路由选择方法及报文转发设备 Download PDF

Info

Publication number
CN107872390A
CN107872390A CN201610858883.9A CN201610858883A CN107872390A CN 107872390 A CN107872390 A CN 107872390A CN 201610858883 A CN201610858883 A CN 201610858883A CN 107872390 A CN107872390 A CN 107872390A
Authority
CN
China
Prior art keywords
message
outgoing interface
route
retransmission rate
preset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610858883.9A
Other languages
English (en)
Inventor
张训伟
朱小蕾
毛闪闪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Digital Technologies Suzhou Co Ltd
Original Assignee
Huawei Digital Technologies Suzhou Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Digital Technologies Suzhou Co Ltd filed Critical Huawei Digital Technologies Suzhou Co Ltd
Priority to CN201610858883.9A priority Critical patent/CN107872390A/zh
Publication of CN107872390A publication Critical patent/CN107872390A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/33Flow control; Congestion control using forward notification

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例公开了一种路由选择方法和报文转发设备,报文转发设备在获取需要转发的报文后,获取等价路由中各个路由的出接口的报文重传率,选择出接口的报文重传率最低的路由作为优选路由来转发报文。从上述过程可以看出,报文转发设备在选路时可以不依赖于外部设备,完全在设备自身实现,减小报文被丢弃的概率,提升业务传输质量;而且不需要占用业务带宽,因此不需要增加出接口的带宽。

Description

一种路由选择方法及报文转发设备
技术领域
本发明涉及网络技术领域,更具体地说,涉及一种路由选择方法及报文转发设备。
背景技术
等价路由(Equal Cost Multipath Routing,ECMP)技术是指报文转发设备将报文发送到同一个目的地时存在多条等价的路径。这些等价的路径也叫等价路由。设备在转发去往该目的地的报文时,会在该多条等价的路径中选择至少一条路径来转发报文,以在各条路径间实现负载分担。如果其中一条路径的链路中断,该链路上的流量会在剩余的可用等价路径间重新进行一次计算分配,实现新的负载均衡,从而减小链路中断造成的影响。
下面以网关路由器为例说明目前较常用的一种路由选择方法:网关路由器转发报文之前对报文进行复制,将复制的报文分别使用不同的路由进行转发。根据收到响应报文的时间确定不同路由的延时情况,从而选择延时最小的路由作为最优的转发路由,后续将报文使用该最优路由进行转发。然而,将报文复制后进行发送会占用业务流量的带宽。与此同时被复制多份的相同的报文被发送到对端时,可能会被对端识别为攻击报文而被丢弃,从而降低业务传输质量。
发明内容
本发明的目的是提供一种路由选择方法及报文转发设备,以提高业务传输质量。
本申请的第一方面提供了一种路由选择方法,通过所述报文转发设备的入接口接收报文;根据所述报文的目的地址,确定到达所述目的地址的等价路由,所述等价路由包括至少两个不同的路由;确定所述至少两个不同的路由中每个路由分别对应的所述报文转发设备的出接口;获取每个所述出接口的预置的报文重传率;基于每个所述出接口的预置的报文重传率,确定优选路由,所述优选路由用于发送所述报文。从上述过程可以看出,报文转发设备在选路时不依赖于外部设备,完全在设备自身实现,减小报文被丢弃的概率,提升业务传输质量;而且不需要占用业务带宽,因此不需要增加出接口的带宽。
在一种实现方式中,所述基于每个所述出接口的预置的报文重传率,确定优选路由,包括:根据每个所述出接口的预置的报文重传率,选择出预置的报文重传率小于预设重传率阈值的出接口;确定选择出的出接口对应的路由为优选路由。
在另一种实现方式中,所述基于每个所述出接口的预置的报文重传率,确定优选路由,包括:根据每个所述出接口的预置的报文重传率,选择出预置的报文重传率最小的出接口;确定选择出的出接口对应的路由为优选路由。
在一又种实现方式中,所述基于每个所述出接口的预置的报文重传率,确定优选路由,包括:将每个所述出接口的预置的报文重传率乘以相同的数值,得到每个所述出接口对应的第一计算数值;将各个所述出接口对应的第一计算数值相加,得到和值;将得到的至少两个所述第一计算数值依次分配给每个所述出接口,所述出接口对应的预置的报文重传率越小,被分配的第一计算数值越大;为每个所述出接口配置编号,每个所述出接口被配置的编号的个数等于该出接口被分配的第一计算数值,每个编号的取值为自然数,切均小于所述和值,不同的出接口被配置的编号不同;对所述报文的源地址和目的地址进行预设运算,得到第二计算数值;将所述第二计算数值对所述和值取模;将每个所述出接口被配置的编号与所述取模结果进行比较,选择出编号与取模结果相同的出接口;确定选择出的出接口对应的路由为优选路由。
在一种实现方式中,所述路由选择方法还包括:判断是否达到扫描时间;若达到扫描时间,统计所述报文转发设备的各个所述出接口的报文重传率;将所述报文转发设备的各个所述出接口的预置的报文重传率更新为最新统计得到的报文重传率。通过对各个出接口周期性进行扫描,以对各个出接口的报文重传率进行周期性统计,从而实现根据等价路由的质量实时调整报文从重传率低的出接口发送。
在一种实现方式中,所述统计所述报文转发设备的各个所述出接口的报文重传率,包括:对于所述报文转发设备的每一个出接口,统计该出接口传输的每一条数据流中重传报文的数量,以及每一条数据流传输的报文的总数;将该出接口传输的所有数据流中重传报文的总数除以该出接口传输的所有数据流传输的报文的总数,得到该出接口的报文重传率。
在另一种实现方式中,所述统计所述报文转发设备的各个所述出接口的报文重传率,包括:对于所述报文转发设备的每一个出接口,对该出接口传输的数据流进行采样,获得该出接口传输的预设数目条数据流;统计该出接口的预设数目条数据流中每一条数据流中重传报文的数量,以及每一条数据流传输的报文的总数;对所述预设数目条数据流中每一条数据流中重传报文的数量求和得到重传报文的总数,对所述预设数目条数据流中每一条数据流传输的报文的总数求和得到该出接口传输的报文的总数;将所述重传报文的总数除以该出接口传输的报文的总数,得到该出接口的报文重传率。
在一种实现方式中,所述重传报文是指序列号相同的报文。
本申请的第二方面提供一种报文转发设备,所述报文转发设备包括:处理器、存储器和网络接口;其中,所述网络接口包括至少一个用于接收报文的入接口,以及至少两个用于发送报文的出接口;所述存储器用于存储指令或指令相关数据;所述处理器用于执行所述指令,以通过所述入接口接收报文;根据所述报文的目的地址,确定到达所述目的地址的等价路由,所述等价路由包括至少两个不同的路由;确定所述至少两个不同的路由中每个路由分别对应的出接口;获取每个所述出接口的预置的报文重传率;基于每个所述出接口的预置的报文重传率,确定优选路由,所述优选路由用于发送所述报文。可以看出,报文转发设备在选路时可以不依赖于外部设备,完全在设备自身实现,减小报文被丢弃的概率,提升业务传输质量;而且不需要占用业务带宽,因此不需要增加出接口的带宽。
在一种实现方式中,所述处理器用于基于每个所述出接口的预置的报文重传率,确定优选路由,包括:所述处理器用于,根据每个所述出接口的预置的报文重传率,选择出预置的报文重传率小于预设重传率阈值的出接口;确定选择出的出接口对应的路由为优选路由。
在另一种实现方式中,所述处理器用于基于每个所述出接口的预置的报文重传率,确定优选路由,包括:所述处理器用于,根据每个所述出接口的预置的报文重传率,选择出预置的报文重传率最小的出接口;确定选择出的出接口对应的路由为优选路由。
在又一种实现方式中,所述处理器用于基于每个所述出接口的预置的报文重传率,确定优选路由,包括:所示处理器用于,将每个所述出接口的预置的报文重传率乘以相同的数值,得到每个所述出接口对应的第一计算数值;将各个所述出接口对应的第一计算数值相加,得到和值;将得到的至少两个所述第一计算数值依次分配给每个所述出接口,所述出接口对应的预置的报文重传率越小,被分配的第一计算数值越大;为每个所述出接口配置编号,每个所述出接口被配置的编号的个数等于该出接口被分配的第一计算数值,每个编号的取值为自然数,切均小于所述和值;不同的出接口被配置的编号不同;对所述报文的源地址和目的地址进行预设运算,得到第二计算数值;将所述第二计算数值对所述和值取模;将每个所述出接口被配置的编号与所述取模结果进行比较,选择出编号与取模结果相同的出接口;确定选择出的出接口对应的路由为优选路由。
在一种实现方式中,处理器还用于,判断是否达到扫描时间;若达到扫描时间,统计各个所述出接口的报文重传率;将各个所述出接口的预置的报文重传率更新为最新统计得到的报文重传率。通过对各个出接口周期性进行扫描,以对各个出接口的报文重传率进行周期性统计,从而实现根据等价路由的质量实时调整报文从重传率低的出接口发送。
在一种实现方式中,所述处理器用于统计各个所述出接口的报文重传率,包括:所述处理器用于,对于每一个路由的出接口,统计该出接口传输的每一条数据流中重传报文的数量,以及每一条数据流传输的报文的总数;将该出接口传输的所有数据流中重传报文的总数除以该出接口传输的所有数据流传输的报文的总数,得到该出接口的报文重传率。
在另一种实现方式中,所述处理器用于统计各个所述出接口的报文重传率,包括:所述处理器用于,对于每一个路由的出接口,对该出接口传输的数据流进行采样,获得该出接口传输的预设数目条数据流;统计所述预设数目条数据流中每一条数据流中重传报文的数量,以及每一条数据流传输的报文的总数;对所述预设数目条数据流中每一条数据流中重传报文的数量求和得到重传报文的总数,对所述预设数目条数据流中每一条数据流传输的报文的总数求和得到该出接口传输的报文的总数;将所述重传报文的总数除以该出接口传输的报文的总数,得到该出接口的报文重传率。
在一种实现方式中,所述重传报文是指序列号相同的报文。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的等价路由多出口的场景示例图;
图2a为本发明实施例提供的路由选择方法的一种实现流程图;
图2b为本发明实施例提供的基于每个出接口的预置的报文重传率,确定优选路由的一种实现流程图;
图3为本发明实施例提供的更新出接口的报文重传率的一种实现流程图;
图4为本发明实施例提供的哈希链的一种结构示例图;
图5为本发明实施例提供的哈希链的另一种结构示例图;
图6为本发明实施例提供的报文转发设备的一种结构示意图;
图7为本发明实施例提供的路由器的一种结构示意图。
说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的部分,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示的以外的顺序实施。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,图1是一个典型的等价路由多出口的场景示例图,其中,P2,P3和P4是报文转发设备中等价路由的三个出接口,报文转发设备从入接口P1接收报文后,报文转发设备会根据等价路由的选路算法从P2,P3和P4三个出接口中选择一个接口将报文发送出去。
本发明实施例的基本思想是:报文转发设备将等价路由中每个路由的出接口的报文的重传率作为影响等价路由的选路算法的参数,将流量引导到报文重传率低的接口发送,减小报文被丢弃的概率,提升业务传输质量。
请参阅图2a,图2a为本发明实施例提供的路由选择方法的一种实现流程图,可以包括:
步骤S21:报文转发设备从入接口接收报文,该报文可以是传输控制协议(Transmission Control Protocol,TCP)报文。报文转发设备可以是路由器等配置有等价路由的报文转发设备。等价路由可以包括至少两个不同的路由。
步骤S22:报文转发设备根据接收到的报文的目的地址、确定到达该目的地址的等价路由,该等价路由包括至少两个不同的路由,
步骤S23:报文转发设备确定上述至少两个不同的路由中每个路由分别对应的报文转发设备的出接口。
报文转发设备中,不同的路由对应报文转发设备的不同的出接口。
步骤S24:报文转发设备获取每个上述出接口的预置的报文重传率。
报文转发设备预先根据各个出接口的报文传输情况为每个出接口配置了报文重传率。该各个出接口的报文重传率可以保存在报文转发设备的内存中。报文转发设备至少可以基于出接口的报文重传率从等价路由中选择优选路由。
步骤S25:报文转发设备基于上述每个出接口的预置的报文重传率,确定优选路由。
在一个可选的实施例中,报文转发设备可以只根据每个出接口的预置的报文重传率,确定优选路由。例如以下两种方式。
方式一,报文转发设备可以在获取各个出接口的预置的报文重传率后,将各个出接口的预置的报文重传率与预设重传率阈值进行比较,选择出预置的报文重传率小于预设重传率阈值的出接口,将选择出的出接口对应的路由作为优选路由。该方式在具体实施时,可以选择出任意一个预置的报文重传率小于预设重传率阈值的出接口,将该选择出的出接口对应的路由作为优选路由;也可以按照预定的出接口顺序,依次将出接口的预置的报文重传率与预设重传率阈值进行比较,得到第一个预置的报文重传率与预设重传率阈值的出接口后,将该出接口对应的路由作为优选路由。
方式二,报文转发设备可以在获取各个出接口的预置的报文重传率后,将各个出接口的预置的重传率进行比较,选择出预置的报文重传率最小的出接口,将选择出的出接口对应的路由作为优选路由。
在另一个可选的实施例中,报文转发设备可以将每个出接口的预置的报文重传率作为附加参数,确定优选路由,例如以下两种方式。
方式一,
请参阅图2b,图2b为本发明实施例提供的基于每个出接口的预置的报文重传率,确定优选路由的一种实现流程图。
步骤S251,报文转发设备将每个上述出接口的预置的报文重传率乘以相同的数值,得到每个上述出接口对应的第一计算数值,第一计算数值优选为正整数。第一计算数值用于计算优选路由的索引,还用于为上述每个出接口配置编号。
步骤S252,将所有第一计算数值相加,得到和值。
步骤S253,基于第一计算数值为上述每个出接口配置编号。具体过程为:
将计算得到的上述第一计算数值分配给每个上述出接口,即每个上述出接口分配一个第一计算数值;其中,报文转发设备的出接口对应的预置的报文重传率越小,被分配的第一计算数值越大;为报文转发设备的每个上述出接口配置编号,每个上述出接口被配置的编号的个数等于该处接口被分配给该出接口的第一计数值,每个编号的取值为自然数,且均小于上述所有第一计数值的和值。不同的出接口被配置的编号不同。
步骤S254,报文转发设备从入接口接收的报文中提取源地址和目的地址,对该源地址和目的地址进行预设运算,得到第二计算数值。
源地址和目的地址可以均为IP(Internet Protocol)地址。
该预设运算可以是双字节相加运算。具体可以为:将源IP地址中的四个单字节的数字两两组合,得到两个双字节的数字;将目的IP地址中的四个单字节的数字两两组合,得到另外两个双字节的数字;其中,目的IP地址中的四个单字节的数字的组合方式与源IP地址中的四个单字节的数字的组合方式相同;将得到的四个双字节的数字相加,得到第二计算数值。
步骤S255,将第二计算数值对该和值取模;取模结果即为优选路由的索引。其中,取模运算具体为:
第二计算数值除以和值得到的余数。例如,5对3取模的取模结果即为:5除以3得到的余数2。
步骤S256,将每个上述出接口配置的编号与取模结果进行比较,选择出编号与取模结果相同的接口,将选择出的出接口对应的路由作为为优选路由。
通过本发明实施例提供的方法,给重传率低的端口分别更多的编号,使得重传利率低的端口被选中的概率提高,减小报文被丢弃的概率,提升业务传输质量。
方式二,
在又一个可选的实施例中,报文转发设备还可以通过如下方式将每个出接口的预置的报文重传率作为附加参数,确定优选路由,具体可以为:
报文转发设备依据m类参数确定各出接口的优先级。其中m为大于或等于2的整数;报文重传率是m类参数中的一种参数,与其他m-1类其他参数共同来计算各出接口的优先级。
本发明实施例中,针对每个出接口,报文转发设备通过m种算法分别计算该出接口的m类不同参数的值。例如,通过本申请提供的获取报文重传率的算法,计算报文重传率这一参数的参数值。
报文转发设备根据预置的参数值和优先级系数的转换规则,对各个上述出接口的同一类参数的参数值进行转换,得到每个出接口的与该类参数对应的优先级系数,则每个出接口对应m个优先级系数。
本发明实施例中,优先级系数的取值越高,表征出接口被选中的优先级越高;或者,优先级系数的取值越低,表征出接口被选中的优先级越高。
报文转发设备获取每一类参数的预置权重系数,将每个上述出接口的m个优先级系数加权求和,得到每个上述出接口的综合优先级系数;根据每个上述出接口的综合优先级系数,确定优先级最高的出接口。
若优先级系数的取值越高,表征出接口被选中的优先级越高,则综合优先级系数取值越高,表征出接口被选中的优先级越高。
若优先级系数的取值越低,表征出接口被选中的优先级越高。则综合优先级系数取值越低,表征出接口被选中的优先级越高。
将优先级最高的出接口对应的路由确定为优选路由。
下面举例说明报文转发设备将每个出接口的预置的报文重传率作为附加参数确定优选路由的具体实现方式。
假设等价路由包括5个不同路由,分别为L1、L2、L3、L4、L5,对应的出接口依次为P1、P2、P3、P4、P5,各个出接口预置的报文重传率依次为1%,3%,2%,4%,5%。
本示例中,将各个出接口的预置的报文重传率均乘以100,得到5个第一计算数值,分别为:出接口P1对应的第一计算数值为1,出接口P2对应的第一计算数值为3,出接口P3对应的第一计算数值为2,出接口P4对应的第一计算数值为4,出接口P5对应的第一计算数值为5。
按照报文重传率最小的出接口分配的第一计算数值最大,报文重传率次小的出接口分配的第一计算数值第二大的原则,将第一计算数值重新分配给各个出接口。则本示例中,为出接口P1分配的第一计算数值为5,为出接口P2分配的第一计算数值为3,为出接口P3分配的第一计算数值为4,为出接口P4分配的第一计算数值为2,为出接口P5分配的第一计算数值为1。
计算5个第一计算数值的和值,具体为:5+4+3+2+1=15。则5个出接口配置的编号共15个,该15个编号的取值分别为0-14。其中,为出接口P1配置0-14中的5个编号,为出接口P2配置0-14中的3个编号,为出接口P3配置0-14中的4个编号,为出接口P4配置0-14中的2个编号,为出接口P5配置0-14中的1个编号。例如,为出接口P1配置0、1、2、3、4五个编号,为出接口P2配置5、6、7三个编号,为出接口P3配置8、9、10、11四个编号,为出接口P4配置12、13两个编号,为出接口P5配置14这一个编号。当然,这里只是举例说明,还可以有其它的配置方式,只要各个接口被配置的编号的个数与被分配的第一计算数值相同,且每个编号的取值小于5个第一计算数值的和值15即可。
假设报文转发设备接收到的报文中,源IP地址为1.2.3.4,目的IP地址为5.6.7.8。本示例中对源IP地址和目的IP地址进行双字节相加运算,具体为:源IP地址的前两个单字节数字组合,得到双字节数字12;源IP地址的后两个单字节数字组合,得到双字节数字34;目的IP地址的前两个单字节数字组合,得到双字节数字56;目的IP地址的后两个单字节数字组合,得到双字节数字78;四个双字节数字相加,得到第二计算数值:12+34+56+78=180。
第二计算数值180对和值15取模,得到取模结果为0。则与取模结果相同的编号为出接口P1的编号,而路由L1的出接口为P1,则路由L1被确定为优选路由。
在另一个示例中,假设等价路由包括5个不同路由,分别为L1、L2、L3、L4、L5,对应的出接口依次为P1、P2、P3、P4、P5,各个出接口的预置的报文重传率依次为1%,2%,2%,4%,5%。
本示例中,将各个出接口的预置的报文重传率均乘以100,得到5个第一计算数值,分别为:出接口P1对应的第一计算数值为1,出接口P2对应的第一计算数值为2,出接口P3对应的第一计算数值也为2,出接口P4对应的第一计算数值为4,出接口P5对应的第一计算数值为5。
按照报文重传率最小的出接口分配的第一计算数值最大,报文重传率次小的出接口分配的第一计算数值第二大的原则,将第一计算数值重新分配给各个出接口。则本示例中,为出接口P1分配的第一计算数值为5,为出接口P2分配的第一计算数值为4,为出接口P3分配的第一计算数值为4,为出接口P4分配的第一计算数值为2,为出接口P5分配的第一计算数值为1。
计算5个第一计算数值的和值,具体为:5+4+4+2+1=16。则5个出接口配置的编号共16个,该16个编号的取值分别为0-15。其中,为出接口P1配置0-14中的5个编号,为出接口P2配置0-14中的4个编号,为出接口P3配置0-14中的4个编号,为出接口P4配置0-14中的2个编号,为出接口P5配置0-14中的1个编号。例如,为出接口P1配置0、1、2、3、4五个编号,为出接口P2配置5、6、7、8四个编号,为出接口P3配置9、10、11、12四个编号,为出接口P4配置13、14两个编号,为出接口P5配置15这一个编号。当然,这里只是举例说明,还可以有其它的配置方式,只要各个接口配置的编号的个数与分配的第一计算数值相同,且编号取值小于5个第一计算数值的和值16即可。
假设报文转发设备接收到的报文中,源IP地址为1.2.3.4,目的IP地址为5.6.7.8。本示例中对源IP地址和目的IP地址进行双字节相加运算,具体为:源IP地址的前两个单字节数字组合,得到双字节数字12;源IP地址的后两个单字节数字组合,得到双字节数字34;目的IP地址的前两个单字节数字组合,得到双字节数字56;目的IP地址的后两个单字节数字组合,得到双字节数字78;四个双字节数字相加,得到第二计算数值:12+34+56+78=180.
第二计算数值180对和值16取模,得到取模结果为4。则与取模结果相同的编号为出接口P1的编号,而路由L1的出接口为P1,则路由L1被确定为优选路由。
在又一个示例中,假设等价路由包括5个不同路由,分别为L1、L2、L3、L4、L5,对应的出接口依次为P1、P2、P3、P4、P5,各个出接口的预置的报文重传率依次为1%,2%,3%,4%,5%。
在获取等价路由中各个出接口的预置的报文重传率后,报文转发设备根据报文重传率计算各个出接口的优先级系数。假设报文重传率低于或等于1%时,出接口的优先级系数记为1;报文重传率大于1%,且小于或等于2%时,出接口的优先级系数记为2;报文重传率大于2%,且小于或等于3%时,出接口的优先级系数记为3;报文重传率大于3%,且小于或等于4%时,出接口的优先级系数记为4;报文重传率大于4%,且小于或等于5%时,出接口的优先级系数记为5;报文重传率大于5%时,出接口的优先级系数记为6。则对各个出接口的报文重传率进行转换,得到出接口P1、P2、P3、P4、P5的优先级系数依次为:1,2,3,4,5。其中,优先级系数越小,表征优先级越高。为便于叙述,将根据报文重传率计算得到的优先级系数记为第一类优先级系数。
报文转发设备将接收的报文复制5份,将复制得到的5个报文分别路由L1、L2、L3、L4、L5进行转发,并记录各个路由上报文的转发时间,然后从各个路由接收响应报文,确定响应报文的接收时间,将每个路由上响应报文的接收时间与复制报文的转发时间的时间差确定为每个路由的延时,根据每个路由的延时确定每个路由的出接口的优先级系数。具体的,假设路由L1、L2、L3、L4、L5的延时依次为:0.003秒,0.010秒,0.001秒,0.005秒,0.007秒。并假设延时小于或等于0.001秒时,出接口的优先级系数记为为1;延时大于0.001秒,且小于或等于0.003秒时,出接口的优先级系数记为2;延时大于0.003秒,且小于或等于0.005秒时,出接口的优先级系数记为3;延时大于0.005秒,且小于或等于0.007秒时,出接口的优先级系数记为4;延时大于0.007秒,且小于或等于0.009秒时,出接口的优先级系数记5;延时大于0.009秒时,出接口的优先级系数记6。则对各个出接口的报文重传率进行转换,得到出接口P1、P2、P3、P4、P5的优先级系数依次为:2,6,1,3,4。其中,优先级系数越小,表征优先级越高。为便于叙述,将根据路由的延时计算得到的优先级系数记为第二类优先级系数。
本示例中,假设第一类优先级系数的权重系数为0.6,第二类优先级系数的权重系数为0.4。则对出接口P1的两类优先级系数加权求和,得到出接口P1的综合优先级系数,具体为:0.6×1+0.4×2=1.4;对出接口P2的两类优先级系数加权求和,得到出接口P2的综合优先级系数,具体为:0.6×2+0.4×6=3.6;对出接口P3的两类优先级系数加权求和,得到出接口P3的综合优先级系数,具体为:0.6×3+0.4×1=2.2;对出接口P4的两类优先级系数加权求和,得到出接口P4的综合优先级系数,具体为:0.6×4+0.4×3=3.6;对出接口P5的两类优先级系数加权求和,得到出接口P5的综合优先级系数,具体为:0.6×5+0.4×4=4.6。
显然,出接口P1的综合优先级系数最低,而路由L1的出接口为P1,则路由L1被确定为优选路由。
在一个可选的实施例中,若报文转发设备没有获取各个路由的出接口的报文重传率,例如,报文转发设备还没有为每个出接口配置报文重传率的情况,则报文转发设备可以通过平均分配原则选择路由,即为每个路由分配相同数量的报文进行发送。
在确定优选路由后,报文转发设备通过优选路发送上述报文。
后续在接收到其它报文后,若该其它报文的等价路由与上述报文的等价路由相同,则可以通过上述优选路由发送该其它报文,而不必重新选择优选路由,这样可以降低报文转发设备的功耗。当然,如果一直通过上述优选路由发送上述报文,会导致等价路由负载失衡,因此,为了保证等价路由的负载均衡,可以周期性进行执行上述选路算法,即周期性更新优选路由。
在一个可选的实施例中,若优选路由有多个,则可以从中选择一个优选路由发送报文。或者,可以选择两个或更多个优选路由发送报文,此时,可以将需要发送的报文平均分配到各个优选路由上进行发送。当然,每个报文只能从中选择一个路由进行发送。
通过本发明实施例提供的路由选择方法,报文转发设备在选路时可以不依赖于外部设备,完全在设备自身实现,减小报文被丢弃的概率,提升业务传输质量;而且不需要占用业务带宽,因此不需要增加出接口的带宽。或者,可以通过出接口的报文重传率影响路由选择算法,将报文通过报文重传率低的接口转发出去,从另一个方面减小报文被丢弃的概率,提升业务传输质量。
在一个可选的实施例中,报文转发设备可以定期更新各个出接口的报文重传率,以便于选择出的优选路由更加符合实际的路由负载情况,从而更加精确的进行等价路由间的负载均衡。如图3所示,为本发明实施例提供的更新出接口的报文重传率的一种实现流程图,可以包括:
步骤S31:报文转发设备判断是否达到扫描时间,若判断结果为是,则执行步骤S32,否则,继续执行步骤S31。
需要说明的是,步骤S31可以在步骤S21~步骤S26中任意一个步骤之前执行,也可以在步骤S21~步骤S26中任意一个步骤之后执行,或者,步骤S31可以与步骤S21~步骤S26中任意一个步骤同步执行。
步骤S32:报文转发设备统计各个出接口的报文重传率。由于每个出接口均可以传输多条数据流,而每条数据流由多个报文组成,基于此,可以通过如下两种方式中的任意一种统计各个出接口的报文重传率。
方式一:
对于每一个出接口,统计该出接口传输的每一条数据流中重传报文的数量,以及每一条数据流传输的报文的总数。
将该出接口传输的所有数据流中重传报文的总数除以该出接口传输的所有数据流传输的报文的总数,得到该出接口的报文重传率。
方式二:
对于每一个出接口,对该出接口传输的数据流进行采样,获得该出接口传输的预设数目条数据流。
统计该预设数目条数据流中每一条数据流中重传报文的数量,以及每一条数据流传输的报文的总数。
对该预设数目条数据流中每一条数据流中重传报文的数量求和得到重传报文的总数,对该预设数目条数据流中每一条数据流传输的报文的总数求和得到该出接口传输的报文的总数;
将上述重传报文的总数除以该出接口传输的报文的总数,得到该出接口的报文重传率。
方式二与方式一的不同之处在于,方式一中,是对出接口传输的每个数据流均进行统计,而方式二中,是对出接口中传输的部分数据流进行统计。方式一的优点在于统计结果更精确,而方式二的优点在于统计速度更快。
不管是方式一还是方式二,在统计一个数据流中重传报文的数量时,可以将该数据流中报文的序列号相同的报文的数量作为该数据流中重传报文的数量。也就是说,重传报文是指序列号相同的报文。
若一个数据流中只有一个序列号重复,则该数据流中具有该一个序列号的报文的数量即为该数据流中重传报文的数量。而若该数据流中有n个序列号重复,则该数据流中具有上述n个序列号的报文的数量即为该数据流中重传报文的数量。其中,n为大于1的整数。报文具有上述n个序列号是指,报文中的序列号为上述n个序列号中的其中一个。
步骤S33:将各个路由的出接口的预置的报文重传率更新为最新统计得到的报文重传率。
本发明实施例中,对各个出接口周期性进行扫描,以对各个出接口的报文重传率进行周期性统计并更新,从而实现根据等价路由的质量实时调整报文从出接口的报文重传率较低的路由发送。
下面结合图1说明本发明实施例提供的路由选择方法的一种实现方式:
报文转发设备分别对P2,P3和P4三个出接口的数据流进行采样,将采样的数据流中的报文缓存在报文转发设备的内存中。可以以哈希链的方式存放报文,一条数据流中的报文均存在哈希链的同一个节点上,即哈希链的一个节点存放一条数据流中的报文。
在一个可选的实施例中,哈希链可以是一个一维的数据存储结构,如图4所示,为本发明实施例提供的哈希链的一种示例图。在该哈希链中,每个一维坐标对应一个节点,每个节点用于存放一个链表,该链表用于挂载一条数据流中的报文。由于不同的出接口传输的数据流不同,同一数据流中传输的报文的五元组相同,不同的数据流中传输的报文的五元组不同,因此,不同的节点可以通过出接口的名称和报文的五元组进行区分。
基于图4所示哈希链,将报文存储到哈希链中的一个节点中的一种实现方式可以为:
获取报文中的报文五元组和出接口名称;
根据报文五元组和出接口名称对哈希链节点进行遍历,以查找该报文所属的节点;该报文所属的节点即为所存放的链表的五元组和出接口名称为报文中的报文五元组和出接口名称的节点。
将报文挂载到所查找到的节点存放的链表中;
若没有找到该报文所属的节点,则新建一个节点,在该新建节点建立链表,将报文挂载到该新建的链表中。
报文的五元组包括:源IP地址、源端口号、协议号、目的IP地址和目的端口号。而当报文均是遵循同一协议的报文时,报文中的协议号也是相同的。基于此,在一可选的实施例中,不同的节点可以通过出接口的名称和报文的四元组进行区分;报文四元组包括:源IP地址、源端口号、目的IP地址和目的端口号。相应的,基于图4所示哈希链,将报文存储到哈希链中的一个节点中的另一种实现方式可以为:
获取报文中的报文四元组和出接口名称;
根据报文四元组和出接口名称对哈希链节点进行遍历,以查找该报文所属的节点;该报文所属的节点即为所存放的链表的四元组和出接口名称为报文中的报文四元组和出接口名称的节点。
将报文挂载到所确定节点存放的链表中;
若没有找到该报文所属的节点,则新建一个节点,在该新建节点建立链表,将报文挂载到该新建的链表中。
发明人研究发现,通过图4所示哈希链存储报文时,存储效率较低。为了提高存储效率,本发明实施例提供另一种数据存储结构。
在另一个可选的实施例中,哈希链可以是一个二维的数据存储结构,如图5所示,为本发明实施例提供的哈希链的另一种结构示意图。在该哈希链中,每个二维坐标对应一个节点,每个节点用于存放一个链表,该链表用于挂载一条数据流中的报文。不同的节点可以通过出接口的名称和报文的五元组进行区分。其中,每个二维坐标的第一维度的坐标与报文的五元组或四元组相关联;每个二维坐标的第二维度的坐标用于区分不同的链表。
基于图5所示哈希链,将报文存储到哈希链中的一个节点中的一种实现方式可以为:
获取报文中的报文五元组和出接口名称;
根据报文五元组计算报文在二维数据结构的第一维度的坐标;具体的,可以对报文的五元组做异或运算,然后将异或运算结果对二维数据结构的第一纬度上的坐标数取模,得到报文在二维数据结构的第一维度的坐标。如图5所示,二维数据结构的第一纬度上的坐标数为N。
根据报文五元组和出接口名称,对哈希链中第一维度的坐标为计算得到的第一维度的坐标的节点进行遍历,以查找该报文所属的节点;
将报文挂载到所查找到的节点存放的链表中;
若没有找到该报文所属的节点,则新建一个节点,该新建节点的第一维度的坐标为上述计算得到的第一维度的坐标,在该新建节点建立链表,将报文挂载到该新建的链表中。
在一可选的实施例中,不同的节点可以通过出接口的名称和报文的四元组进行区分;报文四元组包括:源IP地址、源端口号、目的IP地址和目的端口号。相应的,基于图5所示哈希链,将报文存储到哈希链中的一个节点中的另一种实现方式可以为:
获取报文中的报文四元组和出接口名称;
根据报文四元组计算报文在二维数据结构的第一维度的坐标;具体的,可以对报文的四元组做异或运算,然后将异或运算结果对二维数据结构的第一纬度上的坐标数取模,得到报文在二维数据结构的第一维度的坐标。如图5所示,二维数据结构的第一纬度上的坐标数为N。
根据报文四元组和出接口名称,对哈希链中第一维度的坐标为计算得到的第一维度的坐标的节点进行遍历,以查找该报文所属的节点;
将报文挂载到所查找到的节点存放的链表中;若
没有找到该报文所属的节点,则新建一个节点,该新建节点的第一维度的坐标为上述计算得到的第一维度的坐标,在该新建节点建立链表,将报文挂载到该新建的链表中。
与图4所示实施例相比,图5所示实施例中,在通过哈希链存储报文时,先通过报文五元组计算第一维度的坐标,在查找报文所属的节点时,只需遍历第一维度的坐标为计算得到的第一维度的坐标的节点即可确定报文所属的节点,减少了节点查找量,从而提供报文存储速度。
在一可选的实施例中,在确定报文所属的节点后,将报文的序列号挂载到所确定的节点存储的链表中。
与图4和图5所示实施例不同,本发明实施例中,在确定报文所属的节点后,是不将报文挂载到所确定的节点存储的链表中,而是只将报文中的序列号挂载到所确定的节点存储的链表中,由于报文中的序列号所占用的存储空间小于整个报文所占用的存储空间,因而,通过本发明实施例可以减少哈希链所存储的数据量,从而减少所占用的数据存储空间。
报文转发设备可以以固定周期对哈希链上每个节点存储的链表进行循环遍历。也就是说,报文转发设备根据周期确定达到扫描时间时,对哈希链上每个节点存储的链表进行循环遍历。在每一个周期内,报文转发设备对每个节点存储的链表中挂载的报文或报文序列号进行遍历,确定每条数据流中序列号相同的报文的数量,以及每条数据流中的总的报文的数量。根据接口名称可以判断出该数据流属于哪个出接口。遍历到某个数据流时,统计完该数据流中的报文重传率之后,将该数据流从哈希链上删除。
每个循环周期统计一次P2,P3和P4三个出接口的重传报文的数量,P2接口的重传报文的数量除以P2接口采样的数据流中报文总数,得到P2接口的报文重传率;同理,P3接口的重传报文的数量除以P3接口采样的数据流中报文总数,得到P3接口的报文重传率;P4接口的重传报文的数量除以P4接口采样的数据流中报文总数,得到P4接口的报文重传率。
存储P2,P3和P4三个出接口的报文重传率。在下次循环统计得到新的报文重传率之前,P2,P3和P4三个出接口的报文重传率不变。
当报文转发设备从P1接口接收到报文时,根据P2,P3和P4三个出接口的报文重传率从P2,P3和P4三个出接口中选择报文重传率小于预置重传率阈值的出接口转发该报文。
与方法实施例相对应,本申请还提供一种报文转发设备,请参阅图6,图6为本发明实施例提供的报文转发设备的一种结构示意图,该报文转发设备可以包括:处理器61、存储器62和网络接口63。
其中,网络接口63包括至少一个用于接收报文的如接口,以及至少两个用于发送报文的出接口。
存储器62用于存储指令或指令相关数据;
处理器61用于执行存储器62存储的指令,以通过入接口接收报文;根据接收到的报文的目的地址,确定到达该目的地址的等价路由,等价路由包括至少两个不同的路由;确定上述至少两个不同的路由中每个路由分别对应的出接口;获取每个上述出接口的预置的报文重传率;基于每个上述出接口的预置的报文重传率确定优选路由,该优选路由用于发送接收到的报文。
其中,通过入接口接收到的报文可以为TCP报文。不同的路由对应报文转发设备的不同的出接口。
处理器61预先根据各个出接口的报文传输情况为每个出接口配置了报文重传率。该各个出接口的报文重传率可以存储在报文转发设备的内存中。处理器61至少可以基于出接口的报文重传率从等价路由中选择优选路由。
在一可选的实施例中,处理器61可以只根据每个出接口的预置的报文重传率确定优选路由。例如,
处理器61可以用于,根据每个上述出接口的预置的报文重传率,选择出预置的报文重传率小于预设重传率阈值的出接口;确定选择出的出接口对应的路由为优选路由。或者,
处理器61可以用于,根据每个上述出接口的预置的报文重传率,选择出预置的报文重传率最小的出接口;确定选择出的出接口对应的路由为优选路由。
在另一可选的实施例中,处理器61可以将每出接口的预置的报文重传率作为附加参数,确定优选路由,例如,
处理器61可以用于,将每个上述出接口的预置的报文重传率乘以相同的数值,得到每个上述出接口对应的第一计算数值;将各个上述出接口对应的第一计算数值相加,得到和值;将得到的上述第一计算数值依次分配给每个上述出接口,上述出接口对应的预置的报文重传率越小,被分配的第一计算数值越大;为每个上述出接口配置编号,每个上述出接口被配置的编号的个数等于该处接口被分配的第一计算数值,每个编号的取值为自然数、且均小于上述和值;不同的出接口被配置的编号不同;对接收到的报文的源地址和目的地址进行预设运算,得到第二计算数值;将第二计算数值对上述和值取模;将每个上述出接口被配置的编号与取模结果进行比较,选择出编号与取模结果相同的出接口;确定选择出的出接口对应的路由为优选路由。具体过程可参见前述方法实施例,这里不在赘述。
在又一可选的实施例中,处理器61可以通过如下方式将每个出接口的预置的报文重传率作为附加参数,确定优选路由,例如,
处理器61可以用于,报文转发设备依据m类参数确定各出接口的优先级。其中m为大于或等于2的整数;报文重传率是m类参数中的一种参数,与其他m-1类其他参数共同来计算各出接口的优先级,具体为:针对每个出接口,报文转发设备通过m种算法分别计算该出接口的m类不同参数的值;根据预置的参数值和优先级系数的转换规则,对各个上述出接口的同一类参数的参数值进行转换,得到每个出接口的与该类参数对应的优先级系数,则每个出接口对应m个优先级系数;报文转发设备获取每一类参数的预置权重系数,将每个上述出接口的m个优先级系数加权求和,得到每个上述出接口的综合优先级系数;根据每个上述出接口的综合优先级系数,确定优先级最高的出接口;将优先级最高的出接口对应的路由确定为优选路由。具体过程可参见前述方法实施例,这里不在赘述。
在一个可选的实施例中,若处理器61没有获取各个路由的出接口的报文重传率,例如,处理器61还没有为每个出接口配置报文重传率的情况,则报文转发设备可以通过平均分配原则选择路由,即为每个路由分配相同数量的报文进行发送。
在一个可选的实施例中,若优选路由有多个,则可以从中选择一个优选路由发送报文。或者,可以选择两个或更多个优选路由发送报文,此时,可以将需要发送的报文平均分配到各个优选路由上进行发送。当然,每个报文只能从中选择一个路由进行发送。
在确定优选路由后,处理器61通过优选路由传输从如接口接收到的报文。
后续在接收到其它报文后,若该其它报文的等价路由与上述报文的等价路由相同,则处理器61可以通过上述优选路由发送该其它报文,而不必重新选择优选路由,这样可以降低报文转发设备的功耗。当然,如果一直通过上述优选路由发送上述报文,会导致等价路由负载失衡,因此,为了保证等价路由的负载均衡,可以周期性进行执行上述选路算法,即周期性更新优选路由。
在一可选的实现方式中,处理器61还可以用于:判断是否达到扫描时间;若达到扫描时间,统计各个上述出接口的报文重传率;将各个上述出接口预置的报文重传率更新为最新统计得到的报文重传率。
通过对各个出接口周期性进行扫描,以对各个出接口的报文重传率进行周期性统计并更新,实现根据等价路由的质量实时调整报文从重传率较低的出接口发送。
在一种可选的实现方式中,处理器61统计各个上述出接口的报文重传率的一种实现方式可以为:
处理器61对于每一个路由的出接口,统计该出接口传输的每一条数据流中重传报文的数量,以及每一条数据流传输的报文的总数;
处理器61将该出接口传输的所有数据流中重传报文的总数除以该出接口传输的所有数据流传输的报文的总数,得到该出接口的报文重传率。
具体过程可参见前述方法实施例,这里不在赘述。
在一种可选的实现方式中,处理器61统计各个上述出接口的报文重传率的另一种实现方式可以为:
处理器61对于每一个路由的出接口,对该出接口传输的数据流进行采样,获得该出接口传输的预设数目条数据流;
处理器61统计该预设数目条数据流中每一条数据流中重传报文的数量,以及每一条数据流传输的报文的总数;
处理器61对该预设数目条数据流中每一条数据流中重传报文的数量求和得到重传报文的总数,对该预设数目条数据流中每一条数据流传输的报文的总数求和得到该出接口传输的报文的总数;
处理器61将上述重传报文的总数除以该出接口传输的报文的总数,得到该出接口的报文重传率。
统计各个出接口的报文重传率的上述两种实现方式的不同之处在于,前一方式中,是对出接口传输的每个数据流均进行统计,而后一方式中,是对出接口传输中的部分数据流进行统计。前一方式的优点在于统计结果更精确,而后一方式的优点在于统计速度更快。
不管是那种方式,在统计一个数据流中重传报文的数量时,可以将该数据流中报文的序列号相同的报文的数量作为该数据流中重传报文的数量。也就是说,重传报文是指序列号相同的报文。
若一个数据流中只有一个序列号重复,则该数据流中具有该一个序列号的报文的数量即为该数据流中具有该序列号的报文的数量。而若该数据流中有n个序列号重复,则该数据流中重复的报文的数量为该数据流中具有上述n个序列号的报文的数量即为该数据流中重传报文的数量。其中,n为大于1的整数。报文具有上述n个序列号是指,报文中的序列号为上述n个序列号中的其中一个。
在一可选的实施例中,上述报文转发设备可以是路由器,或者可以是其它具有等价路由功能的设备,如,交换机,防火墙设备等,另外,具有三层转发功能的报文转发设备基本上都具有等价路由功能。如图7所示,为本发明实施例提供的路由器的一种结构示意图。至少可以包括:
主控板、接口板和交换网板;其中,
路由器控制面的功能由主控板的各管控单元及单板上的管控单元构成。单板可以为接口板或线卡等,图7中的中央处理器即为单板上的管控单元。主控板上主要有3类功能单元:系统管理控制单元、系统时钟单元和系统维护单元。系统管理控制单元、系统时钟单元属于控制平面功能单元,系统维护单元属于监控平面功能单元,主控板与单板通过系统总线与系统背板相连实现各单元之间的互通。主控板可能有一个或多个,有多个的时刻可以包括主用主控板和备用主控板。需要说明的是,图7中未示出系统背板。
路由器转发面的功能由交换网板和接口板上的网络处理器71、存储器72和网络接口73实现。
所有TCP/IP报文,包括协议报文和数据报文,如果需要从一个接口板转发到其它接口板,都通过独立的矩阵交换网,即图7中的交换网板,进行转发。而当接口板需要将TCP/IP报文转发到其它报文转发设备时,则需要通过网络处理器71、存储器72和网络接口73实现,具体的,
存储器72用于存储指令或指令相关数据;
网络处理器71用于执行存储器72存储的指令,以通过入接口接收报文;根据接收到的报文的目的地址,确定到达该目的地址的等价路由,等价路由包括至少两个不同的路由;确定上述至少两个不同的路由中每个路由分别对应的出接口;获取每个上述出接口的预置的报文重传率;基于每个上述出接口的预置的报文重传率确定优选路由,该优选路由用于发送接收到的报文。
网络处理器71还可以用于,判断是否达到扫描时间;若达到扫描时间,统计各个上述出接口的报文重传率;将各个上述出接口预置的报文重传率更新为最新统计得到的报文重传率。
网络处理器71统计各个上述出接口的报文重传率可以包括:网络处理器71对于每一个出接口,统计该出接口传输的每一条数据流中重传报文的数量,以及每一条数据流传输的报文的总数;将该出接口传输的所有数据流中重传报文的总数除以该出接口传输的所有数据流传输的报文的总数,得到该出接口的报文重传率。
网络处理器71统计各个上述出接口的报文重传率可以包括:网络处理器71对于每一个出接口,对该出接口传输的数据流进行采样,获得该出接口传输的预设数目条数据流;统计该预设数目条数据流中每一条数据流中重传报文的数量,以及每一条数据流传输的报文的总数;对该预设数目条数据流中每一条数据流中重传报文的数量求和得到重传报文的总数,对该预设数目条数据流中每一条数据流传输的报文的总数求和得到该出接口传输的报文的总数;将上述重传报文的总数除以该出接口传输的报文的总数,得到该出接口的报文重传率。重传报文是指序列号相同的报文。
结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM(ElectricallyErasable Programmable Read-Only Memory)存储器、寄存器、硬盘、移动硬盘、CD-ROM(Compact Disc Read-Only Memory)或者本领域熟知的任何其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (14)

1.一种路由选择方法,其特征在于,由报文转发设备执行,所述方法包括:
通过所述报文转发设备的入接口接收报文;
根据所述报文的目的地址,确定到达所述目的地址的等价路由,所述等价路由包括至少两个不同的路由;
确定所述至少两个不同的路由中每个路由分别对应的所述报文转发设备的出接口;
获取每个所述出接口的预置的报文重传率;
基于每个所述出接口的预置的报文重传率,确定优选路由,所述优选路由用于发送所述报文。
2.根据权利要求1所述的方法,其特征在于,所述基于每个所述出接口的预置的报文重传率,确定优选路由,包括:
根据每个所述出接口的预置的报文重传率,选择出预置的报文重传率小于预设重传率阈值的出接口;
确定选择出的出接口对应的路由为优选路由。
3.根据权利要求1所述的方法,其特征在于,所述基于每个所述出接口的预置的报文重传率,确定优选路由,包括:
根据每个所述出接口的预置的报文重传率,选择出预置的报文重传率最小的出接口;
确定选择出的出接口对应的路由为优选路由。
4.根据权利要求1所述的方法,其特征在于,所述基于每个所述出接口的预置的报文重传率,确定优选路由,包括:
将每个所述出接口的预置的报文重传率乘以相同的数值,得到每个所述出接口对应的第一计算数值;
将各个所述出接口对应的第一计算数值相加,得到和值;
将得到的至少两个所述第一计算数值依次分配给每个所述出接口,所述出接口对应的预置的报文重传率越小,被分配的第一计算数值越大;为每个所述出接口配置编号,每个所述出接口被配置的编号的个数等于该出接口被分配的第一计算数值,每个编号的取值为自然数、且均小于所述和值,不同的出接口被配置的编号不同;
对所述报文的源地址和目的地址进行预设运算,得到第二计算数值;
将所述第二计算数值对所述和值取模;
将每个所述出接口被配置的编号与取模结果进行比较,选择出编号与取模结果相同的出接口;
确定选择出的出接口对应的路由为优选路由。
5.根据权利要求1所述的方法,其特征在于,还包括:
判断是否达到扫描时间;
若达到扫描时间,统计所述报文转发设备的各个所述出接口的报文重传率;
将所述报文转发设备的各个所述出接口的预置的报文重传率更新为最新统计得到的报文重传率。
6.根据权利要求5所述的方法,其特征在于,所述统计所述报文转发设备的各个所述出接口的报文重传率,包括:
对于所述报文转发设备的每一个出接口,统计该出接口传输的每一条数据流中重传报文的数量,以及每一条数据流传输的报文的总数;
将该出接口传输的所有数据流中重传报文的总数除以该出接口传输的所有数据流传输的报文的总数,得到该出接口的报文重传率。
7.根据权利要求5所述的方法,其特征在于,所述统计所述报文转发设备的各个所述出接口的报文重传率,包括:
对于所述报文转发设备的每一个出接口,对该出接口传输的数据流进行采样,获得该出接口传输的预设数目条数据流;
统计所述预设数目条数据流中每一条数据流中重传报文的数量,以及每一条数据流传输的报文的总数;
对所述预设数目条数据流中每一条数据流中重传报文的数量求和得到重传报文的总数,对所述预设数目条数据流中每一条数据流传输的报文的总数求和得到该出接口传输的报文的总数;
将所述重传报文的总数除以该出接口传输的报文的总数,得到该出接口的报文重传率。
8.一种报文转发设备,其特征在于,包括:处理器、存储器和网络接口;其中,
所述网络接口包括至少一个用于接收报文的入接口,以及至少两个用于发送报文的出接口;
所述存储器用于存储指令或指令相关数据;
所述处理器用于执行所述指令,以通过所述入接口接收报文;根据所述报文的目的地址,确定到达所述目的地址的等价路由,所述等价路由包括至少两个不同的路由;确定所述至少两个不同的路由中每个路由分别对应的出接口;获取每个所述出接口的预置的报文重传率;基于每个所述出接口的预置的报文重传率,确定优选路由,所述优选路由用于发送所述报文。
9.根据权利要求8所述的报文转发设备,其特征在于,所述处理器用于基于每个所述出接口的预置的报文重传率,确定优选路由,包括:
所述处理器用于,根据每个所述出接口的预置的报文重传率,选择出预置的报文重传率小于预设重传率阈值的出接口;确定选择出的出接口对应的路由为优选路由。
10.根据权利要求8所述的报文转发设备,其特征在于,所述处理器用于基于每个所述出接口的预置的报文重传率,确定优选路由,包括:
所述处理器用于,根据每个所述出接口的预置的报文重传率,选择出预置的报文重传率最小的出接口;确定选择出的出接口对应的路由为优选路由。
11.根据权利要求8所述的报文转发设备,其特征在于,所述处理器用于基于每个所述出接口的预置的报文重传率,确定优选路由,包括:
所示处理器用于,将每个所述出接口的预置的报文重传率乘以相同的数值,得到每个所述出接口对应的第一计算数值;将各个所述出接口对应的第一计算数值相加,得到和值;
将得到的至少两个所述第一计算数值依次分配给每个所述出接口,所述出接口对应的预置的报文重传率越小,被分配的第一计算数值越大;为每个所述出接口配置编号,每个所述出接口被配置的编号的个数等于该出接口被分配的第一计算数值,每个编号的取值为自然数、且均小于所述和值;不同的出接口被配置的编号不同;
对所述报文的源地址和目的地址进行预设运算,得到第二计算数值;将所述第二计算数值对所述和值取模;将每个所述出接口被配置的编号与取模结果进行比较,选择出编号与取模结果相同的出接口;确定选择出的出接口对应的路由为优选路由。
12.根据权利要求8所述的报文转发设备,其特征在于,所述处理器还用于,判断是否达到扫描时间;若达到扫描时间,统计各个所述出接口的报文重传率;将所述各个所述出接口的预置的报文重传率更新为最新统计得到的报文重传率。
13.根据权利要求12所述的报文转发设备,其特征在于,所述处理器用于统计各个所述出接口的报文重传率,包括:
所述处理器用于,对于每一个路由的出接口,统计该出接口传输的每一条数据流中重传报文的数量,以及每一条数据流传输的报文的总数;将该出接口传输的所有数据流中重传报文的总数除以该出接口传输的所有数据流传输的报文的总数,得到该出接口的报文重传率。
14.根据权利要求12所述的报文转发设备,其特征在于,所述处理器用于统计各个所述出接口的报文重传率,包括:
所述处理器用于,对于每一个路由的出接口,对该出接口传输的数据流进行采样,获得该出接口传输的预设数目条数据流;统计所述预设数目条数据流中每一条数据流中重传报文的数量,以及每一条数据流传输的报文的总数;对所述预设数目条数据流中每一条数据流中重传报文的数量求和得到重传报文的总数,对所述预设数目条数据流中每一条数据流传输的报文的总数求和得到该出接口传输的报文的总数;将所述重传报文的总数除以该出接口传输的报文的总数,得到该出接口的报文重传率。
CN201610858883.9A 2016-09-28 2016-09-28 一种路由选择方法及报文转发设备 Pending CN107872390A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610858883.9A CN107872390A (zh) 2016-09-28 2016-09-28 一种路由选择方法及报文转发设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610858883.9A CN107872390A (zh) 2016-09-28 2016-09-28 一种路由选择方法及报文转发设备

Publications (1)

Publication Number Publication Date
CN107872390A true CN107872390A (zh) 2018-04-03

Family

ID=61761026

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610858883.9A Pending CN107872390A (zh) 2016-09-28 2016-09-28 一种路由选择方法及报文转发设备

Country Status (1)

Country Link
CN (1) CN107872390A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113660160A (zh) * 2021-08-20 2021-11-16 烽火通信科技股份有限公司 一种ucmp负载分担的方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1798096A (zh) * 2004-12-28 2006-07-05 杭州华为三康技术有限公司 在路由器或交换机上进行多出口流量管理的方法和设备
CN101764855A (zh) * 2009-12-30 2010-06-30 福建星网锐捷网络有限公司 一种提供域名解析服务的方法、装置及系统
CN101980487A (zh) * 2010-10-22 2011-02-23 中兴通讯股份有限公司 一种路由选择出口的方法和装置
CN102905337A (zh) * 2012-10-15 2013-01-30 南京邮电大学 自组织网络中基于跨层设计的路由方法
CN103582007A (zh) * 2013-11-26 2014-02-12 无锡清华信息科学与技术国家实验室物联网技术中心 传感器网络的路由方法、装置及传感器节点和网络
US20150071109A1 (en) * 2013-09-09 2015-03-12 Grigori Dzekon Methods and Systems for Packet Delivery Based Upon Embedded Instructions

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1798096A (zh) * 2004-12-28 2006-07-05 杭州华为三康技术有限公司 在路由器或交换机上进行多出口流量管理的方法和设备
CN101764855A (zh) * 2009-12-30 2010-06-30 福建星网锐捷网络有限公司 一种提供域名解析服务的方法、装置及系统
CN101980487A (zh) * 2010-10-22 2011-02-23 中兴通讯股份有限公司 一种路由选择出口的方法和装置
CN102905337A (zh) * 2012-10-15 2013-01-30 南京邮电大学 自组织网络中基于跨层设计的路由方法
US20150071109A1 (en) * 2013-09-09 2015-03-12 Grigori Dzekon Methods and Systems for Packet Delivery Based Upon Embedded Instructions
CN103582007A (zh) * 2013-11-26 2014-02-12 无锡清华信息科学与技术国家实验室物联网技术中心 传感器网络的路由方法、装置及传感器节点和网络

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
寒月映灯: ""关于路由协议跨层设计的学习日志"", 《HTTP://BLOG.SINA.COM.CN/S/BLOG_78BD53EF0100R81V.HTML》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113660160A (zh) * 2021-08-20 2021-11-16 烽火通信科技股份有限公司 一种ucmp负载分担的方法和装置

Similar Documents

Publication Publication Date Title
US11575559B1 (en) Monitoring and detecting causes of failures of network paths
US8661295B1 (en) Monitoring and detecting causes of failures of network paths
CN104335537B (zh) 用于层2多播多路径传送的系统和方法
CN100518106C (zh) 多路径动态路由算法
EP2911348A1 (en) Control device discovery in networks having separate control and forwarding devices
CN103716208B (zh) 支持大象流的网络管理方法、系统、交换机和网络
US20110063979A1 (en) Network traffic management
CN106533960A (zh) 一种基于Fat‑Tree结构的数据中心网络路由方法
EP3154224A1 (en) Systems and methods for maintaining network service levels
US10411972B2 (en) Determining impact of network failures
JPH1065733A (ja) 高速ルーティング制御方式
JPH04233848A (ja) 情報伝送方法及び装置
CN106961387A (zh) 一种基于转发路径自迁移的链路型DDoS防御方法及系统
US9001667B1 (en) Monitoring and detecting causes of failures of network paths
CN1761244A (zh) 设置边界网关协议路由选择通知功能的方法
CN108809847A (zh) 实现负载均衡的方法、装置和网络系统
CN107948103A (zh) 一种基于预测的交换机pfc控制方法及控制系统
CN109842574A (zh) 一种基于可编程网络技术的多宿主网络路由转发方法
CN102356602A (zh) 监视传输中分组以优化网络中的分组流量的系统和方法
CN108234320A (zh) 报文传输方法及交换机
US11005777B2 (en) Software defined prober
CN101789949A (zh) 一种实现负荷分担的方法和路由设备
JP5621576B2 (ja) パケット中継装置
CN114448899A (zh) 一种均衡数据中心网络负载的方法
CN107872390A (zh) 一种路由选择方法及报文转发设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20180403

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180403

RJ01 Rejection of invention patent application after publication