CN106170956B - 一种路由方法和设备 - Google Patents

一种路由方法和设备 Download PDF

Info

Publication number
CN106170956B
CN106170956B CN201480037879.5A CN201480037879A CN106170956B CN 106170956 B CN106170956 B CN 106170956B CN 201480037879 A CN201480037879 A CN 201480037879A CN 106170956 B CN106170956 B CN 106170956B
Authority
CN
China
Prior art keywords
entry
address
routing
data packet
destination address
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.)
Active
Application number
CN201480037879.5A
Other languages
English (en)
Other versions
CN106170956A (zh
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 Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN106170956A publication Critical patent/CN106170956A/zh
Application granted granted Critical
Publication of CN106170956B publication Critical patent/CN106170956B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供了一种方法和设备,可以给查找表条目增加运算字段,增强了查找表条目的表达能力,从而提高了查找表条目的聚合能力。该方法包括:接收数据包,所述数据包中携带所述数据包的目的地址;在路由表中确定与所述目的地址对应的匹配条目,其中,所述路由表的条目中包含地址运算符和网络标识,所述匹配条目的网络标识的有效位与所述目的地址的有效位按照所述匹配条目的地址运算符进行运算的逻辑运算结果为真;从根据所述匹配条目中输出端口信息确定的输出端口发送所述数据包。通过本发明公开的技术方案,可以减小查找表的规模,有效降低网络设备对片上存储空间的需求,从而减小了芯片面积、成本、查表时间及功耗。

Description

一种路由方法和设备
技术领域
本发明涉及互联网信息服务领域,特别是涉及一种查表路由方法和设备。
背景技术
当前的计算机网络,比如以太网和因特网,一般采用包交换技术(又称“分组交换”)对数据进行传输。在包交换网络中,主机节点间通信时,通信数据首先在源主机节点被切分和封装在一个个数据包,并注入网络,然后经过网络设备的路由和转发进行传输,最终数据包到达目的主机节点,恢复和合并成原有通信数据。在该过程中,网络设备,比如交换机和路由器,对每一个数据包进行独立的路由和转发,即当一个数据包到达网络设备的输入端口时,网络设备基于数据包中的地址信息,比如目的MAC地址或目的IP地址,确定该数据包的输出端口,并将该数据包从输入端口交换到输出端口。通常,将“确定数据包的输出端口的过程”称为“路由”,将“数据包从输入端口交换到输出端口的过程”称为“转发”。在当前的大部分网络设备中,对数据包的路由是通过查表实现的:在网络设备中存在一张或多张逻辑“查找表”,也叫“路由表”(比如,MAC转发表或IP路由表),每个表包含一个或多个表条目,每个表条目包含地址匹配信息和输出端口等信息;通过提取数据包中的地址信息和表条目中的地址信息进行匹配,以确定匹配的表条目,并从匹配的表条目中提取输出端口信息以确定输出端口。这种路由方式称为“查表路由”。
在计算机网络中,查表路由有着广泛的使用。比如,由二层交换机构建的以太网中,交换机中存放着一张学习得到的“转发表”,该表的表条目中包含MAC地址和输出端口号等信息。当交换机接收到一个数据包时,从数据包中提取目的MAC地址,并将它与转发表中表条目的MAC地址进行比较,以确定匹配的表条目(目的MAC地址与表条目中的MAC地址相等),从而得到输出端口号。在IP网络中,路由器也执行类似的查表路由机制:在每个路由器中存放着通过路由协议学习得到的查找表(路由表),查找表的表条目中包含网络标识、网络掩码、输出端口号和下一跳网络标识等信息。当路由器接收到一个数据包时,从数据包中提取目的IP地址,并执行基于掩码的匹配,以确定匹配的表条目,从而得到输出端口号和下一跳网络标识等信息。
对于网络设备,查表路由的性能通常是其性能的瓶颈,而查找表的大小是查表路由性能的决定因素和网络设备成本的关键因素。通常查找表越大,查表速度就越慢,查表过程消耗的功耗就越多。同时,查找表越大,所需要的片上存储或片外存储就越多,进而要求设备有很大的片上或片外存储容量。因为存储容量,尤其是片上存储容量,是非常昂贵的,这会大幅度地增加网络设备成本。更重要的是,对于给定的网络设备,其所拥有的片上或片外存储容量是有限的,所以能支持的表容量是有限的。当表大小超过表容量时,部分表条目就会丢失,导致路由失败。因为表大小与网络规模成正向关系,所以表的大小还影响到网络设备所能构建的网络的最大规模。因此,需要开发新的技术来解决这一问题。
发明内容
有鉴于此,本发明实施例提供了一种路由方法和设备,提高了查找表条目的聚合能力,从而减小了查找表的规模。
第一方面,本发明实施例提供了一种路由方法,包括:
接收数据包,所述数据包中携带所述数据包的目的地址;
在路由表中确定与所述目的地址对应的匹配条目,其中,所述路由表的条目中包含地址运算符和网络标识,所述匹配条目的网络标识的有效位与所述目的地址的有效位按照所述匹配条目的地址运算符进行运算的逻辑运算结果为真;
从根据所述匹配条目中输出端口信息确定的输出端口发送所述数据包。
结合第一方面,在第一种可能的实现方式中,所述网络标识的有效位为将所述网络标识当做的一个整体数值,所述目的地址的有效位是指将所述目的地址当做的一个整体数值。
结合第一方面或以上任一项可能的实现方式,在第二种可能的实现方式中,所述路由表的条目中还包括掩码,所述目的地址的有效位为所述目的地址与所述掩码位与操作的结果当做的一个整体数值,所述网络标识的有效位为所述网络标识与所述掩码位与操作的结果当做的一个整体数值。
结合第一方面或以上任一项可能的实现方式,在第三种可能的实现方式中,所述掩码包括连续掩码和非连续掩码。
结合第一方面或以上任一项可能的实现方式,在第四种可能的实现方式中,所述路由表的条目中还包括优先级信息,所述优先级信息用于指示所属条目的优先级;
所述在路由表中确定与所述目的地址对应的匹配条目,包括:在路由表中查找条目的网络标识的有效位与所述目的地址的有效位按照该条目的地址运算符进行运算的逻辑运算结果为真的条目,并根据所述查找到的条目的优先级信息,从所述查找到的条目中,选择优先级最高的条目,作为所述匹配条目。
结合第一方面或以上任一项可能的实现方式,在第五种可能的实现方式中,所述在路由表中确定与所述目的地址对应的匹配条目,包括:按照优先级从高到低的顺序在路由表中查找条目的网络标识的有效位与所述目的地址的有效位按照该条目的地址运算符进行运算的逻辑运算结果为真的条目,将所述找到的第一个条目作为所述匹配条目,其中,所述查找表的条目按照优先级进行排序。
结合第一方面或以上任一项可能的实现方式,在第六种可能的实现方式中,所述从根据所述匹配条目中的输出端口信息确定的输出端口发送所述数据包包括:根据地址信息按照所述匹配条目中输出端口信息进行运算的结果,确定所述输出端口,并将所述数据包从所述输出端口进行发送,所述地址信息包括以下至少一种:所述目的地址、所述数据包的源地址、所述匹配条目的网络标识和当前节点地址。
结合第一方面或以上任一项可能的实现方式,在第七种可能的实现方式中,所述从根据所述匹配条目中输出端口信息确定的输出端口发送所述数据包,包括:根据哈希算法从所述输出端口信息中记录的多个端口中选择一个端口作为所述输出端口,并将所述数据包从所述输出端口进行转发。
结合第一方面或以上任一项可能的实现方式,在第八种可能的实现方式中,所述匹配条目还包含操作信息,所述操作信息用于指示对所述数据包进行操作,则根据所述匹配条目中输出端口信息确定的输出端口转发发送所述数据包之前,进一步包括:根据所述匹配条目中的操作信息,对所述数据包进行操作。
结合第一方面或以上任一项可能的实现方式,在第九种可能的实现方式中,所述地址运算符包括:不等于、大于、小于、大于等于或小于等于。
第二方面,本发明实施例提供了一种路由方法,包括:
接收数据包,所述数据包中携带所述数据包的目的地址;
在路由表中确定与所述目的地址对应的匹配条目;
根据地址信息按照所述匹配条目中输出端口信息进行运算的结果,确定所述输出端口,并将所述数据包从所述输出端口进行发送,所述地址信息包括以下至少一种:所述目的地址、所述数据包的源地址、所述匹配条目的网络标识和当前节点地址。
结合第二方面,在第一种可能的实现方式中,所述路由表的条目中包含地址运算符和网络标识,所述匹配条目的网络标识的有效位与所述目的地址的有效位按照所述匹配条目的地址运算符进行运算的逻辑运算结果为真。
结合第二方面或以上任一项可能的实现方式,在第二种可能的实现方式中,所述网络标识的有效位为将所述网络标识当做的一个整体数值,所述目的地址的有效位是指将所述目的地址当做的一个整体数值。
结合第二方面或以上任一项可能的实现方式,在第三种可能的实现方式中,所述路由表的条目中还包括掩码,所述目的地址的有效位为所述目的地址与所述掩码位与操作的结果当做的一个整体数值,所述网络标识的有效位为所述网络标识与所述掩码位与操作的结果当做的一个整体数值。
结合第二方面或以上任一项可能的实现方式,在第四种可能的实现方式中,所述掩码包括连续掩码和非连续掩码。
结合第二方面或以上任一项可能的实现方式,在第五种可能的实现方式中,所述路由表的条目中还包括优先级信息,所述优先级信息用于指示所属条目的优先级;
所述在路由表中确定与所述目的地址对应的匹配条目,包括:在路由表中查找条目的网络标识的有效位与所述目的地址的有效位按照该条目的地址运算符进行运算的逻辑运算结果为真的条目,并根据所述查找到的条目的优先级信息,从所述查找到的条目中,选择优先级最高的条目,作为所述匹配条目。
结合第二方面或以上任一项可能的实现方式,在第六种可能的实现方式中,所述在路由表中确定与所述目的地址对应的匹配条目,包括:按照优先级从高到低的顺序在路由表中查找条目的网络标识的有效位与所述目的地址的有效位按照该条目的地址运算符进行运算的逻辑运算结果为真的条目,将所述找到的第一个条目作为所述匹配条目,其中,所述查找表的条目按照优先级进行排序。
结合第二方面或以上任一项可能的实现方式,在第七种可能的实现方式中,所述匹配条目还包含操作信息,所述操作信息用于指示对所述数据包进行操作,则根据所述匹配条目中输出端口信息确定的输出端口转发发送所述数据包之前,进一步包括:根据所述匹配条目中的操作信息,对所述数据包进行操作。
结合第二方面或以上任一项可能的实现方式,在第八种可能的实现方式中,所述地址运算符包括:不等于、大于、小于、大于等于或小于等于。
第三方面,本发明实施例提供了一种用于路由的计算设备,包括:处理器、存储器、总线和通信接口;
所述存储器用于存储计算设备执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述计算设备执行第一方面或第一方面任一项可能的实现方式的方法,或执行第二方面或第二方面任一项可能的实现方式的方法。
第四方面,本发明实施例提供了一种路由设备,包括:
接收单元,用于接收数据包,所述数据包中携带所述数据包的目的地址;
匹配单元,用于在路由表中确定与所述目的地址对应的匹配条目,其中,所述路由表的条目中包含地址运算符和网络标识,所述匹配条目的网络标识的有效位与所述目的地址的有效位按照所述匹配条目的地址运算符进行运算的逻辑运算结果为真;
发送单元,用于从根据所述匹配条目中输出端口信息确定的输出端口发送所述数据包。
结合第四方面,在第一种可能的实现方式中,所述网络标识的有效位为将所述网络标识当做的一个整体数值,所述目的地址的有效位是指将所述目的地址当做的一个整体数值。
结合第四方面或以上任一项可能的实现方式,在第二种可能的实现方式中,所述路由表的条目中还包括掩码,所述目的地址的有效位为所述目的地址与所述掩码位与操作的结果当做的一个整体数值,所述网络标识的有效位为所述网络标识与所述掩码位与操作的结果当做的一个整体数值。
结合第四方面或以上任一项可能的实现方式,在第三种可能的实现方式中,所述掩码包括连续掩码和非连续掩码。
结合第四方面或以上任一项可能的实现方式,在第四种可能的实现方式中,所述路由表的条目中还包括优先级信息,所述优先级信息用于指示所属条目的优先级;
所述匹配单元用于在路由表中确定与所述目的地址对应的匹配条目,包括:所述匹配单元在路由表中查找条目的网络标识的有效位与所述目的地址的有效位按照该条目的地址运算符进行运算的逻辑运算结果为真的条目,并根据所述查找到的条目的优先级信息,从所述查找到的条目中,选择优先级最高的条目,作为所述匹配条目。
结合第四方面或以上任一项可能的实现方式,在第五种可能的实现方式中,所述匹配单元用于在路由表中确定与所述目的地址对应的匹配条目,包括:所述匹配单元按照优先级从高到低的顺序在路由表中查找条目的网络标识的有效位与所述目的地址的有效位按照该条目的地址运算符进行运算的逻辑运算结果为真的条目,将所述找到的第一个条目作为所述匹配条目,其中,所述查找表的条目按照优先级进行排序。
结合第四方面或以上任一项可能的实现方式,在第六种可能的实现方式中,所述发送单元用于从根据所述匹配条目中的输出端口信息确定的输出端口发送所述数据包包括:所述发送单元根据地址信息按照所述匹配条目中输出端口信息进行运算的结果,确定所述输出端口,并将所述数据包从所述输出端口进行发送,所述地址信息包括以下至少一种:所述目的地址、所述数据包的源地址、所述匹配条目的网络标识和当前节点地址。
结合第四方面或以上任一项可能的实现方式,在第七种可能的实现方式中,所述发送单元用于从根据所述匹配条目中的输出端口信息确定的输出端口发送所述数据包包括:所述发送单元根据哈希算法从所述输出端口信息中记录的多个端口中选择一个端口作为所述输出端口,并将所述数据包从所述输出端口进行转发。
结合第四方面或以上任一项可能的实现方式,在第八种可能的实现方式中,所述设备还包括操作单元,所述匹配条目还包含操作信息,所述操作信息用于指示对所述数据包进行操作,所述操作单元用于根据所述匹配条目中的操作信息,对所述数据包进行操作。
结合第四方面或以上任一项可能的实现方式,在第九种可能的实现方式中,所述地址运算符包括:不等于、大于、小于、大于等于或小于等于。
第五方面,本发明实施例提供了一种路由设备,包括:
接收单元,用于接收数据包,所述数据包中携带所述数据包的目的地址;
匹配单元,用于在路由表中确定与所述目的地址对应的匹配条目;
发送单元,用于根据地址信息按照所述匹配条目中输出端口信息进行运算的结果,确定所述输出端口,并将所述数据包从所述输出端口进行发送,所述地址信息包括以下至少一种:所述目的地址、所述数据包的源地址、所述匹配条目的网络标识和当前节点地址。
结合第五方面,在第一种可能的实现方式中,所述路由表的条目中包含地址运算符和网络标识,所述匹配条目的网络标识的有效位与所述目的地址的有效位按照所述匹配条目的地址运算符进行运算的逻辑运算结果为真。
结合第五方面或以上任一项可能的实现方式,在第二种可能的实现方式中,所述网络标识的有效位为将所述网络标识当做的一个整体数值,所述目的地址的有效位是指将所述目的地址当做的一个整体数值。
结合第五方面或以上任一项可能的实现方式,在第三种可能的实现方式中,所述路由表的条目中还包括掩码,所述目的地址的有效位为所述目的地址与所述掩码位与操作的结果当做的一个整体数值,所述网络标识的有效位为所述网络标识与所述掩码位与操作的结果当做的一个整体数值。
结合第五方面或以上任一项可能的实现方式,在第四种可能的实现方式中,所述掩码包括连续掩码和非连续掩码。
结合第五方面或以上任一项可能的实现方式,在第五种可能的实现方式中,所述路由表的条目中还包括优先级信息,所述优先级信息用于指示所属条目的优先级;
所述匹配单元用于在路由表中确定与所述目的地址对应的匹配条目,包括:所述匹配单元在路由表中查找条目的网络标识的有效位与所述目的地址的有效位按照该条目的地址运算符进行运算的逻辑运算结果为真的条目,并根据所述查找到的条目的优先级信息,从所述查找到的条目中,选择优先级最高的条目,作为所述匹配条目。
结合第五方面或以上任一项可能的实现方式,在第六种可能的实现方式中,所述匹配单元用于在路由表中确定与所述目的地址对应的匹配条目,包括:所述匹配单元按照优先级从高到低的顺序在路由表中查找条目的网络标识的有效位与所述目的地址的有效位按照该条目的地址运算符进行运算的逻辑运算结果为真的条目,将所述找到的第一个条目作为所述匹配条目,其中,所述查找表的条目按照优先级进行排序。
结合第五方面或以上任一项可能的实现方式,在第七种可能的实现方式中,所述设备还包括操作单元,所述匹配条目还包含操作信息,所述操作信息用于指示对所述数据包进行操作,所述操作单元用于根据所述匹配条目中的操作信息,对所述数据包进行操作。
结合第五方面或以上任一项可能的实现方式,在第八种可能的实现方式中,所述地址运算符包括:等于、不等于、大于、小于、大于等于或小于等于。
可选的,以上任一方面或任一方面的任一可能的实现方式中,网络标识包括但不限于MAC地址、IP地址等。
可选的,以上任一方面或任一方面的任一可能的实现方式中,OP两边的比较项各自作为一个整体数值进行比较。
可选的,以上任一方面或任一方面的任一可能的实现方式中,OP两边的比较项可以从第1维到第n维呈高字节到低字节顺序排列或从第1维到第n维呈低字节到高字节顺序排列。
可选的,以上任一方面或任一方面的任一可能的实现方式中,OP两边的比较项还可以各自从n维标签中选择其中的m维标签作为一个整体数值进行比较,该m维标签从第1维到第m维呈高字节到低字节顺序排列或从第1维到第m维呈低字节到高字节顺序排列。
可选的,以上任一方面或任一方面的任一可能的实现方式中,优先级可以是一个数值,用以标识查找表条目的优先级高低,可以是数值越大优先级越高,也可以是数值越小优先级越高。优先级也可以是其他能够区别大小或顺序的表达方式,比如英文字符等。
可选的,以上任一方面或任一方面的任一可能的实现方式中,查找表中的条目按照优先级从高到低或者从低到高的顺序排列。
可选的,输出端口算法支持加、减、乘、除、移位等所有的数学运算符中的至少一种。
根据本实施例提供的技术方案,通过给查找表条目增加运算字段,增强了查找表条目的表达能力,提高了查找表条目的聚合能力。从而减小了查找表的规模,降低了片上存储需求,减小了芯片面积、成本、查表时间及功耗,提高了网络规模可扩展性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一路由方法应用场景的系统逻辑结构示意图;
图2为一路由方法应用场景的系统逻辑结构示意图;
图3为依据本发明一实施例的路由方法的示范性流程图;
图4为依据本发明一实施例的路由方法的示范性流程图;
图5为依据本发明一实施例的查找表示意图;
图6为依据本发明一实施例的路由方法应用场景的系统逻辑结构示意图;
图7为依据本发明一实施例的路由方法应用场景的系统逻辑结构示意图;
图8为依据本发明一实施例的路由方法应用场景的系统逻辑结构示意图;
图9为依据本发明一实施例的路由设备的逻辑结构示意图;
图10为依据本发明一实施例的路由设备的逻辑结构示意图;
图11为依据本发明一实施例的路由系统硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一个路由方法应用场景的系统逻辑结构示意图。如图1所示,网络设备2采用最长前缀匹配技术对数据包进行转发,该技术通过聚合具有相同网络标识前缀和输出的查找表条目实现查找表的压缩,在接收到数据包后,通过最长前缀匹配技术实现匹配条目的查找。
可选的,网络设备2包括但不限于路由器、交换机等;所述网络标识包括但不限于网际协议互联网协议(Internet Protocol,简称IP)地址、硬件媒体接入控制(MediaAccess Control,简称MAC)地址等。
该技术使用查找表的一般结构如图1所示。查找表的每个表条目包括匹配域和动作域两部分。匹配域包括网络标识,或包含网络标识和掩码,用于实现查表时的条目匹配。其中,网络标识可以是任意地址标签,一般的表示形式可以为A1.A2.....An;掩码为前缀连续掩码。动作域包含数据包操作信息,一般至少包括输出端口信息。为了减小查找表规模,使用基于网络地址聚合的压缩技术——将具有相同网络标识前缀和输出的查找表条目合并为一个条目,对查找表进行压缩。如图1所示,通过聚合具有相同网络标识前缀和输出的表条目可以将网络设备2的原始查找表的6个表条目压缩为4个,从而实现查找表压缩的目的。
如图1所示,网络设备2接收到网络C发送的数据包后,从数据包提取数据包的目的节点的IP地址信息,目的IP地址为100.50.10.6,根据压缩后的查找表,基于匹配条件“(目的地址&掩码)==(网络标识&掩码)”执行路由查找,从压缩后的查找表查找与目的IP地址匹配的条目。如果存在匹配的表条目,从所有匹配的表条目中选择具有最长网络标识前缀的条目作为最终匹配条目,如果没有匹配条目,则执行网络设备设定的默认操作。如图1所示,查找表的第3和第4个表条目与IP地址匹配,基于最长前缀匹配原则,选择第4个表条目作为最终配条目,从最终匹配的表条目中提取输出端口等信息,以为数据包处理(比如,转发)提供信息,在图1中,网络设备2将从网络C接收的数据包从端口3转发出去,从而实现数据包的路由。
图1中的基于最长前缀匹配的查表路由技术对于简单的分层聚合网络的路由算法的执行是高效的,但对于很多高性能网络的路由算法的执行是低效的,不能实现对查找表的有效压缩,甚至不能执行。图2是一路由方法应用场景的系统逻辑结构示意图,如图2所示,所示网络是高性能计算机和数据中心中一种非常重要的网络一一胖树,在该图中胖树网络使用目的地址路由(Dst-Routing)算法,并利用上述传统查表路由技术对该路由算法进行实现,来执行数据包的路由查找。胖树Dst-Routing路由算法是一种向上/向下路由(Up-Down Routing),其路由规则是:当源主机节点向目的主机节点发送数据包时,数据包首先从源节点出发,一直向上路由和转发到源和目的主机交换节点的最近公共祖先交换节点(交换机或路由器),然后进入向下路由和转发阶段,一直向下路由和转发到目的主机节点。在向上和向下路由时,交换节点的输出端口号由目的主机节点的目的地址和交换节点所在层号确定。
可选的,当胖树按照图2方式对交换机和主机节点编址,如果数据包的目的主机节点网络标识为A1.A2.....An,数据包当前到达的交换节点所在层号为L,则向上路由时选择端口M/2+An-L作为输出端口号,向下路由时选择An-L作为输出端口号,其中n为胖树层数,M为交换节点端口数。
如图2所示,利用基于最长前缀匹配的查表路由技术实现胖树Dst-Routing路由算法时,假设数据包从源节点1.0.0传送到目的节点3.1.1,其路由路径经过交换节点1.1.3,交换节点1.1.3的查找表如表1所示,
表1
网络标识 掩码 输出端口
1.0.0 255.255.0 0
1.1.0 255.255.0 1
0.0.0 255.255.0 2
0.1.0 255.255.0 3
2.0.0 255.255.0 2
2.1.0 255.255.0 3
3.0.0 255.255.0 2
3.1.0 255.255.0 3
基于匹配条件“(目的地址&掩码)==(网络标识&掩码)”执行路由查找,可知表1的最后一个条目的逻辑运算结果为真,表示匹配,匹配的最后一个条目的输出端口为端口3,交换节点1.1.3将数据包从输出端口3转发。由表1可知,网络设备节点<1.1.3>的查找表的表条目数(8条)远多于交换机的端口数(4个),相比无压缩情况(16条,即等于主机节点数),仅实现了50%的压缩。当网络规模扩展到数十万节点规模时,表大小和查表效率将成为严重的问题。因此,利用最长前缀匹配查表路由技术实现胖树Dst-Routing是非常低效的,不能实现有效的查找表压缩。其低效的根源是受限的查找表条目表达能力,使得表条目不能高效地聚合。
图3为依据本发明一实施例的路由方法300的示范性流程图,以实现更有效的路由转发。在具体实现过程中,路由方法300可以由例如但不限于路由器或交换机执行。如图3所示,该方法300具体为:
S302:接收数据包,所述数据包中携带所述数据包的目的地址。
S304:在路由表中确定与所述目的地址对应的匹配条目,其中,所述路由表的条目中包含地址运算符和网络标识,所述匹配条目的网络标识的有效位与所述目的地址的有效位按照所述匹配条目的地址运算符进行运算的逻辑运算结果为真。
S306:从根据所述匹配条目中输出端口信息确定的输出端口发送所述数据包。
可选的,网络标识包括但不限于MAC地址、IP地址等。
可选的,该地址运算符包括但不限于等于(==)、不等于(≠)、大于(>)、小于(<)、大于等于(≥)和小于等于(≤)等关系比较操作。
可选的,所述网络标识的有效位为将所述网络标识当做的一个整体数值,所述目的地址的有效位是指将所述目的地址当做的一个整体数值。例如,将IP地址11.12.14.10,作为数值11121410来看。从而可以按照地址运算符进行运算。
可选的,所述路由表的条目中还包括掩码,所述目的地址的有效位为所述目的地址与所述掩码位与操作的结果当做的一个整体数值,所述网络标识的有效位为所述网络标识与所述掩码位与操作的结果当做的一个整体数值。
可选的,为了增强掩码操作后网络标识的表达能力,所述掩码包括连续掩码和非连续掩码,例如255.0.255.0。
可选的,地址运算符两边的比较项各自作为一个整体数值进行比较。
可选的,地址运算符的比较项可以从第1维到第n维呈高字节到低字节顺序排列或从第1维到第n维呈低字节到高字节顺序排列。
可选的,地址运算符的比较项还可以各自从n维标签中选择其中的m维标签作为一个整体数值进行比较,该m维标签从第1维到第m维呈高字节到低字节顺序排列或从第1维到第m维呈低字节到高字节顺序排列。
可选的,所述路由表的条目中还包括优先级信息,所述优先级信息用于指示所属条目的优先级;
所述在路由表中确定与所述目的地址对应的匹配条目,包括:在路由表中查找条目的网络标识的有效位与所述目的地址的有效位按照该条目的地址运算符进行运算的逻辑运算结果为真的条目,并根据所述查找到的条目的优先级信息,从所述查找到的条目中,选择优先级最高的条目,作为所述匹配条目。
可选的,优先级可以是一个数值,用以标识查找表条目的优先级高低,可以是数值越大优先级越高,也可以是数值越小优先级越高。优先级也可以是其他能够区别大小或顺序的表达方式,比如英文字符等。
可选的,所述在路由表中确定与所述目的地址对应的匹配条目,包括:按照优先级从高到低的顺序在路由表中查找条目的网络标识的有效位与所述目的地址的有效位按照该条目的地址运算符进行运算的逻辑运算结果为真的条目,将所述找到的第一个条目作为所述匹配条目,其中,所述查找表的条目按照优先级进行排序。
可选的,所述从根据所述匹配条目中的输出端口信息确定的输出端口发送所述数据包包括:根据地址信息按照所述匹配条目中输出端口信息进行运算的结果,确定所述输出端口,并将所述数据包从所述输出端口进行发送,所述地址信息包括以下至少一种:所述目的地址、所述数据包的源地址、所述匹配条目的网络标识和当前节点地址。
可选的,所述从根据所述匹配条目中输出端口信息确定的输出端口发送所述数据包,包括:根据哈希算法从所述输出端口信息中记录的多个端口中选择一个端口作为所述输出端口,并将所述数据包从所述输出端口进行转发。
可选的,输出端口算法支持加、减、乘、除、移位等所有的数学运算符中的至少一种。
可选的,所述匹配条目还包含操作信息,所述操作信息用于指示对所述数据包进行操作,则根据所述匹配条目中输出端口信息确定的输出端口转发发送所述数据包之前,进一步包括:根据所述匹配条目中的操作信息,对所述数据包进行操作。
根据本实施例提供的技术方案,通过给查找表条目增加运算字段,增强了查找表条目的表达能力,提高了查找表条目的聚合能力。从而减小了查找表的规模,降低了片上存储需求,减小了芯片面积、成本、查表时间及功耗,提高了网络规模可扩展性。
图4为依据本发明一实施例的路由方法400的示范性流程图,以实现更有效的路由转发。在具体实现过程中,路由方法400可以由例如但不限于路由器或交换机执行。如图4所示,该方法400具体为:
S402:接收数据包,所述数据包中携带所述数据包的目的地址。
S404:在路由表中确定与所述目的地址对应的匹配条目。
S406:根据地址信息按照所述匹配条目中输出端口信息进行运算的结果,确定所述输出端口,并将所述数据包从所述输出端口进行发送,所述地址信息包括以下至少一种:所述目的地址、所述数据包的源地址、所述匹配条目的网络标识和当前节点地址。
可选的,输出端口算法支持加、减、乘、除、移位等所有的数学运算符中的至少一种。
可选的,所述路由表的条目中包含地址运算符和网络标识,所述匹配条目的网络标识的有效位与所述目的地址的有效位按照所述匹配条目的地址运算符进行运算的逻辑运算结果为真。
可选的,所述网络标识的有效位为将所述网络标识当做的一个整体数值,所述目的地址的有效位是指将所述目的地址当做的一个整体数值。
可选的,所述路由表的条目中还包括掩码,所述目的地址的有效位为所述目的地址与所述掩码位与操作的结果当做的一个整体数值,所述网络标识的有效位为所述网络标识与所述掩码位与操作的结果当做的一个整体数值。
可选的,为了增强掩码操作后网络标识的表达能力,所述掩码包括连续掩码和非连续掩码,例如255.0.255.0。
可选的,地址运算符两边的比较项各自作为一个整体数值进行比较。
可选的,地址运算符的比较项可以从第1维到第n维呈高字节到低字节顺序排列或从第1维到第n维呈低字节到高字节顺序排列。
可选的,地址运算符的比较项还可以各自从n维标签中选择其中的m维标签作为一个整体数值进行比较,该m维标签从第1维到第m维呈高字节到低字节顺序排列或从第1维到第m维呈低字节到高字节顺序排列。
可选的,所述路由表的条目中还包括优先级信息,所述优先级信息用于指示所属条目的优先级;
所述在路由表中确定与所述目的地址对应的匹配条目,包括:在路由表中查找条目的网络标识的有效位与所述目的地址的有效位按照该条目的地址运算符进行运算的逻辑运算结果为真的条目,并根据所述查找到的条目的优先级信息,从所述查找到的条目中,选择优先级最高的条目,作为所述匹配条目。
可选的,所述在路由表中确定与所述目的地址对应的匹配条目,包括:按照优先级从高到低的顺序在路由表中查找条目的网络标识的有效位与所述目的地址的有效位按照该条目的地址运算符进行运算的逻辑运算结果为真的条目,将所述找到的第一个条目作为所述匹配条目,其中,所述查找表的条目按照优先级进行排序。
可选的,所述匹配条目还包含操作信息,所述操作信息用于指示对所述数据包进行操作,则根据所述匹配条目中输出端口信息确定的输出端口转发发送所述数据包之前,进一步包括:根据所述匹配条目中的操作信息,对所述数据包进行操作。
可选的,可选的,该地址运算符包括但不限于等于(==)、不等于(≠)、大于(>)、小于(<)、大于等于(≥)和小于等于(≤)等关系比较操作。
可选的,网络标识包括但不限于MAC地址、IP地址等。
根据本实施例提供的技术方案,通过给查找表条目增加运算字段,增强了查找表条目的表达能力,提高了查找表条目的聚合能力。从而减小了查找表的规模,降低了片上存储需求,减小了芯片面积、成本、查表时间及功耗,提高了网络规模可扩展性。
图5为依据本发明一实施例的查找表500结构示意图。如图5所示,查找表500包括匹配域502和动作域504。
匹配域502包括但不限于网络标识和地址运算符。
可选的,网络标识可以表示为一个n维标签A1.A2.....An,从左到右可以分别称为第1维,第2维,......,第n维。网络标识的每一维是一个数值,根据需要可以表示成二进制、十进制和十六进制等任意进制形式。
可选的,网络标识包括但不限于MAC地址、IP地址等。
可选的,匹配域502还包括掩码,掩码是一个与网络标识相对应的n维标签,其维数和每一维数值的位数与网络标识相同。掩码与网络标识进行二进制“位与(&)”操作,以产生用于执行查找表匹配的地址,因此可以认为掩码中某一维数值的某一个二进制位为1,则网络标识中对应的二进制位有效。
可选的,为了增强掩码操作后网络标识的表达能力,掩码字段同时支持连续和非连续掩码,例如255.0.255.0。
可选的,地址运算符包括但不限于等于(==)、不等于(≠)、大于(>)、小于(<)、大于等于(≥)和小于等于(≤)等关系比较操作。OP用于执行比较操作“目的地址OP网络标识”或者“(目的地址&掩码)OP(网络标识&掩码)”,其中“&”表示位与操作。
可选的,OP两边的比较项各自作为一个整体数值进行比较。
可选的,OP两边的比较项可以从第1维到第n维呈高字节到低字节顺序排列或从第1维到第n维呈低字节到高字节顺序排列。
可选的,OP两边的比较项还可以各自从n维标签中选择其中的m维标签作为一个整体数值进行比较,该m维标签从第1维到第m维呈高字节到低字节顺序排列或从第1维到第m维呈低字节到高字节顺序排列。
例如,“210.10.10.0|255.0.255.0|≠”表示“第1维和第3维数值不等于210和10的地址的集合”,以此可以过滤某个地址子集;
“11.12.13.14.15|0.0.0.255.0|==”表示“第4维的数值为14,以此可以比较地址中某一维的数值;
“11.12.13.14|255.255.255.255|>”表示地址值比11.12.13.14大的地址。假设目的地址为“11.12.14.10”,则执行的比较操作为“(11.12.14.10 & 255.255.255.255)>(11.12.13.14 & 255.255.255.255)”即“11.12.14.10>11.12.13.14”,结果为“真(True)”,以此可以比较两个地址的大小。
可选的,匹配域502还包含优先级信息,优先级的作用是:当存在多个匹配条目时,选择优先级最高的匹配条目为最终匹配条目。优先级可以是一个数值,用以标识查找表条目的优先级高低,可以是数值越大优先级越高,也可以是数值越小优先级越高。优先级也可以是其他能够区别大小或顺序的表达方式,比如英文字符等。
可选的,查找表500的所有条目是按照优先级从高到低进行排序的,当进行匹配的时候,按照优先级从高到低的顺序就行匹配。
可选的,输出端口字段支持静态和动态两种输出端口表示。静态端口表示与传统查找表一致,用某一具体常数值表示端口号。动态端口表示基于算法实现,以此增强查找表条目中输出端口的表达能力。
动态输出端口的表达式包括但不限于以下操作:DimValue(addr,k),FirstDiffDim(addr1,addr2)或FirstDiffDimValue(addr1,addr2)等操作。
其中,DimValue(addr,k):取地址addr中的第k维分量(下文缩写为“DV”);
FirstDiffDim(addr1,addr2):比较地址addr1和地址addr2两个地址,并返回第一个不同维度分量的维度号(下文缩写为“FDD”);
FirstDiffDimValue(addr1,addr2):比较地址addr1和地址addr2两个地址,确定第一个不同维度的维度号,并返回addr1在该维度的分量(下文缩写为“FDDV”)。
可选的,动态端口支持地址符号表示,地址符号包括但不限于:目的地址(dst),源地址(src),当前节点地址(hst),网络标识(net)等。addr、addr1和addr2均可以为目的地址(dst),源地址(src),当前节点地址(hst)或网络标识(net)中的任一一种。其中,dst为数据包中的目的地址,src为数据包中的源地址,hst为数据包当前所到达的节点(包括网络设备)的地址,net是当前节点的查找表的当前处理的查找表条目中的网络标识字段的值。
可选的,动态端口算法支持加、减、乘、除、移位等所有的数学运算符中的至少一种。
例如,“DV(dst,2)”表示“取目的地址中第2维地址分量作为输出端口”。当dst为5.6.7.8.9时,其输出端口为6;
“DV(dst,4)+4”表示“取目的地址中第4维地址分量值加4作为输出端口”。当dst为5.6.7.8.9时,输出端口为12。
“FDD(dst,src)”表示“取目的和源地址中维度分量不同的第一个维度号作为输出端口”。当dst为1.5.7,src为1.6.4时,输出端口为2。
“FDDV(dst,src)”表示“取目的和源地址中第一个不同维度分量所在维度的目的地址分量作为输出端口”。当dst为1.5.7,src为1.6.4时,输出端口为5。
可选的,输出端口包含N个端口,所述N个端口中的任意一个端口均能实现所述数据包的转发,其中N为大于0的自然数。
例如,“List(2,4,6)”表示“端口2、4和6”;“Range(6,10)”表示“端口6~10”。
可选的,如果输出端口支持N个可用端口,则网络设备根据哈希算法从所述N个端口中选择一个转发端口,用于数据包的转发。
可选的,动作域504还支持其他动作信息,用于对数据包进行操作。
根据本实施例公开的查找表结构,通过给查找表条目增加运算字段,增强了查找表条目的表达能力,提高了查找表条目的聚合能力。从而减小了查找表的规模,降低了片上存储需求,减小了芯片面积、成本、查表时间及功耗,提高了网络规模可扩展性。
图6为依据本发明一实施例的查表路由方法应用场景600的系统逻辑结构示意图,如图6所示,所示网络是高性能计算机和数据中心中一种非常重要的网络——胖树,图中显示了使用本发明的方法,胖树网络执行基于目的地址路由(Dst-Routing)算法的查表路由实现和数据包从源节点1.0.0到目的节点3.1.1的路由转发过程。胖树Dst-Routing路由算法是一种向上/向下路由(Up-Down Routing),其路由规则是:当源主机节点向目的主机节点发送数据包时,数据包首先从源节点出发,一直向上路由和转发到源和目的主机交换节点的最近公共祖先交换节点(交换机或路由器),然后进入向下路由和转发阶段,一直向下路由和转发到目的主机节点。在向上和向下路由时,交换节点的输出端口号由目的主机节点的网络标识(目的地址)和交换节点所在层号确定。
可选的,当胖树按照图6方式对交换机和主机节点编址,如果数据包的目的主机节点的目的地址为A1.A2.....An,数据包当前到达的交换节点所在层号为L,则向上路由时选择端口M/2+An-L作为输出端口号,向下路由时选择An-L作为输出端口号,其中n为胖树层数,M为交换节点端口数。
在本实施例中,端节点(主机节点)地址表示为A1.A2.A3,交换节点地址表示为B1.B2.(L+M/2),其中M为交换节点的端口数。
数据包要从源节点1.0.0发送到目的节点3.1.1,当采用目的地址路由算法时,基于目的地址路由经过交换节点1.0.2,1.1.3,1.1.4,3.1.3和3.1.2。根据本发明的路由方法进行数据包的路由转发时,交换节点1.0.2的查找表如表2所示,当数据包到达交换节点1.0.2时,交换节点1.0.2处的网络设备从数据包提取目的节点地址,其目的节点地址为3.1.1,按照“(目的地址&掩码)OP(网络标识&掩码)”的逻辑结果查找匹配条目,如果结果为“真”,则表示匹配。“(3.1.1&255.255.0)==(1.0.0&255.255.0)”的逻辑运算结果为“假”,表示不匹配;“(3.1.1&255.255.0)≠(1.0.0&255.255.0)”的逻辑运算结果为“真”,表示匹配。匹配条目的输出端口为动态输出端口,DV(dst,3)+2=DV(3.1.1,3)+2=3,根据动态端口算法和目的地址可知最终输出端口为端口3,交换节点1.0.2将数据包从端口3转发。与端口3相连的的下一跳交换节点是1.1.3,所以数据包从交换节点1.0.2的端口3发出后到达交换节点1.1.3。
表2
网络标识 掩码 操作符 输出端口
1.0.0 255.255.0 == DV(dst,3)
1.0.0 255.255.0 DV(dst,3)+2
交换节点1.1.3的查找表如表3所示,“(3.1.1&255.0.0)==(1.0.0&255.0.0)”的逻辑运算结果为“假”,表示不匹配;“((3.1.1&255.0.0)≠(1.0.0&255.0.0)”的逻辑运算结果为“真”,表示匹配。匹配条目的输出端口为动态输出端口,DV(dst,2)+2=DV(3.1.1,2)+2=3,根据动态端口算法和目的地址可知最终输出端口为端口3,交换节点1.3.1将数据包从端口3转发。与端口3相连的的下一跳交换节点是1.1.4,所以数据包从交换节点1.1.3的端口3发出后到达交换节点1.1.4。
表3
网络标识 掩码 操作符 输出端口
1.0.0 255.0.0 == DV(dst,2)
1.0.0 255.0.0 DV(dst,2)+2
交换节点1.1.4的查找表如表4所示,“(3.1.1&0.0.0)==(0.0.0&0.0.0)”的逻辑运算结果为“真”,表示匹配。匹配条目的输出端口为动态输出端口,DV(dst,1)=DV(3.1.1,1)=3,根据动态端口算法和目的地址可知最终输出端口为端口3,交换节点1.1.4将数据包从端口3转发,与端口3相连的的下一跳交换节点是3.1.3,所以交换节点1.1.4将数据包从端口3转发给交换节点3.1.3。
表4
网络标识 掩码 操作符 输出端口
0.0.0 0.0.0 == DV(dst,1)
交换节点3.1.3的查找表如表5所示,“(3.1.1&255.0.0)==(3.0.0&255.0.0)”的逻辑运算结果为“真”,表示匹配;“((3.1.1&255.0.0)≠(3.0.0&255.0.0)”的逻辑运算结果为“假”,表示不匹配。匹配条目的输出端口为动态输出端口,DV(dst,2)=DV(3.1.1,2)=1,根据动态端口算法和目的地址可知最终输出端口为端口1,交换节点3.1.3将数据包从端口1转发,与端口1的相连的下一跳交换节点是3.1.2,所以交换节点3.1.3将数据包从端口1转发给交换节点3.1.2。
表5
网络标识 掩码 操作符 输出端口
3.0.0 255.0.0 == DV(dst,2)
3.0.0 255.0.0 DV(dst,2)+2
交换节点3.1.2的查找表如表6所示,“(3.1.1&255.255.0)==(3.1.0&255.255.0)”的逻辑运算结果为“真”,表示匹配;“((3.1.1&255.255.0)≠(3.1.0&255.255.0)”的逻辑运算结果为“假”,表示不匹配。匹配条目的输出端口为动态输出端口,DV(dst,3)=DV(3.1.1,3)=1,根据动态端口算法和目的地址可知最终输出端口为端口1,交换节点3.1.2将数据包从端口1转发,与端口1相连的的下一跳节点为目的节点3.1.1,所以交换节点1.3.1将数据包从端口1转发给目的节点3.1.1,从而完成数据包从源节点1.0.0到目的节点3.1.1的路由和转发。
表6
网络标识 掩码 操作符 输出端口
3.1.0 255.255.0 == DV(dst,3)
3.1.0 255.255.0 DV(dst,3)+2
当胖树的层数为n,目的地址(dst)为D1.D2.D3..Dn-L..Dn-1.Dn,交换机节点端口数为M,当前交换节点所在层号为L,当前交换节点地址为C1.C2.....Cn-1.(L+M/2)时,按照Dst-Routing路由算法,胖树顶层交换节点的查找表可表示为表7所示的一般形式,非顶层交换节点查找表可表示为表8所示的一般形式。为了便于表示,此处掩码字段用二进制表示。
表7
网络标识 掩码 操作符 输出端口
A<sub>1</sub>.A<sub>2</sub>.….A<sub>n-L-1</sub>.0.….0 11…1.11…1.….11…1.00…0.….00…0 == DV(dst,n-L)
表8
网络标识 掩码 操作符 输出端口
A<sub>1</sub>.A<sub>2</sub>.….A<sub>n-L-1</sub>.0.….0 11…1.11…1.….11…1.00…0.….00…0 == DV(dst,n-L)
A<sub>1</sub>.A<sub>2</sub>.….A<sub>n-L-1</sub>.0.….0 11…1.11…1.….11…1.00…0.….00…0 DV(dst,n-L)+M/2
根据本实施例公开的路由方法,通过给查找表条目增加运算字段,增强了查找表条目的表达能力,从而提高了查找表条目的聚合能力。减小了查找表的规模,降低了对片上存储空间的需求,从而减小了芯片面积、成本、查表时间及功耗,提高了网络规模可扩展性。
图7为依据本发明一实施例的路由方法应用场景700的系统逻辑结构示意图,如图7所示,以二维网格(mesh)网络的XY路由算法为例,说明本发明的应用场景。Mesh网络是一种规则的直接网络,每个节点既是计算节点也是交换节点。在n维mesh网络中,在每一维上每个节点仅和它相邻的(两个)节点相连。Mesh网络具有连线短,易于封装,局部性好,能够增量扩展等优点,因此被广泛使用。
如图7所示,以节点2.2为例,依据本发明,其查找表如表9所示,
表9
网络标识 掩码 操作符 优先级 输出端口
2.0 255.0 10 0
2.0 255.0 10 2
0.2 0.255 20 1
0.2 0.255 20 3
基于本实施例公开的路由方法,对于由任意端口数的节点和任意维数构建的Mesh网络,任何节点的查找表所需条目数不多于该节点的端口数。
图8为依据本发明一实施例的路由方法应用场景800的系统逻辑结构示意图,如图8所示,以BCube网络为例,说明本发明路由方法的应用场景。BCube是一种利于大规模网络的模块化解决方案,利用超立方体的节点连接关系作为递归规律,同层次不同递归单元中相同位置上的所有服务器都通过一个交换机相互连接。该结构要求每个服务器都装有多个端口,具备超立方体连通性高、直径小、可靠性高的优点。
数据包从源节点1.2传送到目的节点3.3时,依次经过节点2.5,3.2和3.4,根据本发明的路由方法进行数据包的转发时,源节点1.2的查找表如表10所示,数据包目的节点地址为3.3,按照“(目的地址&掩码)OP(网络标识&掩码)”的逻辑结果查找匹配条目,如果结果为“真”,则表示匹配。表10仅有一个条目,且“(目的地址&0.0)==(网络标识&00)”的逻辑运算结果恒为“真”,表示匹配。匹配条目的输出端口为动态输出端口,2-FDD(dst,hst)=2-FDD(3.3,1.2)=1,根据动态端口算法和目的地址可知最终输出端口为端口1,源节点1.2将数据包从端口1发出,与端口1相连的下一跳交换节点是2.5,源节点1.2将数据包从端口1转发给交换节点2.5。
表10
网络标识 掩码 操作符 输出端口
0.0 0.0 == 2-FDD(dst,hst)
交换节点2.5的查找表如表11所示,表11仅有一个条目,且“(目的地址&0.0)==(网络标识&0.0)”的逻辑运算结果恒为“真”,表示匹配。匹配条目的输出端口为动态输出端口,DV(dst,1)=DV(3.3,1)=3,根据动态端口算法和目的地址可知最终输出端口为端口3,交换节点2.5将数据包从端口3发出,与端口3相连的下一跳节点是3.2,交换节点2.5将数据包从端口3转发给节点3.2。
表11
网络标识 掩码 操作符 输出端口
0.0 0.0 == DV(dst,1)
节点3.2的查找表如表12所示,表12仅有一个条目,且“(目的地址&0.0)==(网络标识&00)”的逻辑运算结果恒为“真”,表示匹配。匹配条目的输出端口为动态输出端口,2-FDD(dst,hst)=2-FDD(3.3,3.2)=0,根据动态端口算法和目的地址可知最终输出端口为端口0,节点3.2将数据包从端口0转发,与端口0相连的下一跳交换节点是3.4,节点3.2将数据包从端口0转发给交换节点3.4。
表12
网络标识 掩码 操作符 输出端口
0.0 0.0 == 2-FDD(dst,hst)
交换节点3.4的查找表如表13所示,表13仅有一个条目,且“(目的地址&0.0)==(网络标识&00)”的逻辑运算结果恒为“真”,表示匹配。匹配条目的输出端口为动态输出端口,DV(dst,2)=DV(3.3,2)=3,根据动态端口算法和目的地址可知最终输出端口为端口3,交换节点3.4将数据包从端口3发出。与端口3相连的下一跳节点为目的节点3.3,所以交换节点3.4将数据包从端口3转发给目的节点3.3。
表13
网络标识 掩码 操作符 输出端口
0.0 0.0 == DV(dst,2)
根据本实施例公开的路由方法,通过给查找表条目增加运算字段,增强了查找表条目的表达能力,从而提高了查找表条目的聚合能力,对于由任意端口数的交换节点和任意网络层数构建的BCube网络,任何节点的查找表都仅需1个查找表条目。可以大幅度地降低对片上存储空间的需求,从而减小了芯片面积、成本、查表时间及功耗,提高网络可扩展性。
图9是依据本发明一实施例的路由设备900的逻辑结构示意图,如图9所示,路由设备900至少包括:接收单元902,匹配单元904,发送单元906。
接收单元902,用于接收数据包,所述数据包中携带所述数据包的目的地址;
匹配单元904,用于在路由表中确定与所述目的地址对应的匹配条目,其中,所述路由表的条目中包含地址运算符和网络标识,所述匹配条目的网络标识的有效位与所述目的地址的有效位按照所述匹配条目的地址运算符进行运算的逻辑运算结果为真;
发送单元906,用于从根据所述匹配条目中输出端口信息确定的输出端口发送所述数据包。
可选的,地址运算符两边的比较项各自作为一个整体数值进行比较。
可选的,地址运算符两边的比较项可以从第1维到第n维呈高字节到低字节顺序排列或从第1维到第n维呈低字节到高字节顺序排列。
可选的,地址运算符两边的比较项还可以各自从n维标签中选择其中的m维标签作为一个整体数值进行比较,该m维标签从第1维到第m维呈高字节到低字节顺序排列或从第1维到第m维呈低字节到高字节顺序排列。
可选的,所述网络标识的有效位为将所述网络标识当做的一个整体数值,所述目的地址的有效位是指将所述目的地址当做的一个整体数值。
可选的,所述路由表的条目中还包括掩码,所述目的地址的有效位为所述目的地址与所述掩码位与操作的结果当做的一个整体数值,所述网络标识的有效位为所述网络标识与所述掩码位与操作的结果当做的一个整体数值。
可选的,为了增强掩码操作后网络标识的表达能力,掩码字段同时支持连续和非连续掩码,例如255.0.255.0。
可选的,所述路由表的条目中还包括优先级信息,所述优先级信息用于指示所属条目的优先级;
所述匹配单元904用于在路由表中确定与所述目的地址对应的匹配条目,包括:所述匹配单元904在路由表中查找条目的网络标识的有效位与所述目的地址的有效位按照该条目的地址运算符进行运算的逻辑运算结果为真的条目,并根据所述查找到的条目的优先级信息,从所述查找到的条目中,选择优先级最高的条目,作为所述匹配条目。
可选的,优先级可以是一个数值,用以标识查找表条目的优先级高低,可以是数值越大优先级越高,也可以是数值越小优先级越高。优先级也可以是其他能够区别大小或顺序的表达方式,比如英文字符等。
可选的,所述匹配单元904用于在路由表中确定与所述目的地址对应的匹配条目,包括:所述匹配单元904按照优先级从高到低的顺序在路由表中查找条目的网络标识的有效位与所述目的地址的有效位按照该条目的地址运算符进行运算的逻辑运算结果为真的条目,将所述找到的第一个条目作为所述匹配条目,其中,所述查找表的条目按照优先级进行排序。
可选的,所述发送单元906用于从根据所述匹配条目中的输出端口信息确定的输出端口发送所述数据包包括:所述发送单元906根据地址信息按照所述匹配条目中输出端口信息进行运算的结果,确定所述输出端口,并将所述数据包从所述输出端口进行发送,所述地址信息包括以下至少一种:所述目的地址、所述数据包的源地址、所述匹配条目的网络标识和当前节点地址。
可选的,输出端口算法支持加、减、乘、除、移位等所有的数学运算符中的至少一种。
可选的,所述发送单元906用于从根据所述匹配条目中的输出端口信息确定的输出端口发送所述数据包包括:所述发送单元906根据哈希算法从所述输出端口信息中记录的多个端口中选择一个端口作为所述输出端口,并将所述数据包从所述输出端口进行转发。
可选的,所述设备还包括操作单元,所述匹配条目还包含操作信息,所述操作信息用于指示对所述数据包进行操作,所述操作单元用于根据所述匹配条目中的操作信息,对所述数据包进行操作。
可选的,该地址运算符包括但不限于等于(==)、不等于(≠)、大于(>)、小于(<)、大于等于(≥)和小于等于(≤)等关系比较操作。
图10是依据本发明一实施例的路由设备1000的逻辑结构示意图,如图10所示,路由设备1000至少包括:接收单元1002,匹配单元1004,发送单元1006。
接收单元1002,用于接收数据包,所述数据包中携带所述数据包的目的地址;
匹配单元1004,用于在路由表中确定与所述目的地址对应的匹配条目;
发送单元1006,用于根据地址信息按照所述匹配条目中输出端口信息进行运算的结果,确定所述输出端口,并将所述数据包从所述输出端口进行发送,所述地址信息包括以下至少一种:所述目的地址、所述数据包的源地址、所述匹配条目的网络标识和当前节点地址。
可选的,输出端口算法支持加、减、乘、除、移位等所有的数学运算符中的至少一种。
可选的,所述路由表的条目中包含地址运算符和网络标识,所述匹配条目的网络标识的有效位与所述目的地址的有效位按照所述匹配条目的地址运算符进行运算的逻辑运算结果为真。
可选的,地址运算符两边的比较项各自作为一个整体数值进行比较。
可选的,地址运算符两边的比较项可以从第1维到第n维呈高字节到低字节顺序排列或从第1维到第n维呈低字节到高字节顺序排列。
可选的,地址运算符两边的比较项还可以各自从n维标签中选择其中的m维标签作为一个整体数值进行比较,该m维标签从第1维到第m维呈高字节到低字节顺序排列或从第1维到第m维呈低字节到高字节顺序排列。
可选的,所述网络标识的有效位为将所述网络标识当做的一个整体数值,所述目的地址的有效位是指将所述目的地址当做的一个整体数值。
可选的,所述路由表的条目中还包括掩码,所述目的地址的有效位为所述目的地址与所述掩码位与操作的结果当做的一个整体数值,所述网络标识的有效位为所述网络标识与所述掩码位与操作的结果当做的一个整体数值。
可选的,所述掩码包括连续掩码和非连续掩码。
可选的,所述路由表的条目中还包括优先级信息,所述优先级信息用于指示所属条目的优先级;
所述匹配单元1004用于在路由表中确定与所述目的地址对应的匹配条目,包括:所述匹配单元1004在路由表中查找条目的网络标识的有效位与所述目的地址的有效位按照该条目的地址运算符进行运算的逻辑运算结果为真的条目,并根据所述查找到的条目的优先级信息,从所述查找到的条目中,选择优先级最高的条目,作为所述匹配条目。
可选的,优先级可以是一个数值,用以标识查找表条目的优先级高低,可以是数值越大优先级越高,也可以是数值越小优先级越高。优先级也可以是其他能够区别大小或顺序的表达方式,比如英文字符等。
可选的,所述匹配单元1004用于在路由表中确定与所述目的地址对应的匹配条目,包括:所述匹配单元1004按照优先级从高到低的顺序在路由表中查找条目的网络标识的有效位与所述目的地址的有效位按照该条目的地址运算符进行运算的逻辑运算结果为真的条目,将所述找到的第一个条目作为所述匹配条目,其中,所述查找表的条目按照优先级进行排序。
可选的,所述设备还包括操作单元,所述匹配条目还包含操作信息,所述操作信息用于指示对所述数据包进行操作,所述操作单元用于根据所述匹配条目中的操作信息,对所述数据包进行操作。
可选的,该地址运算符包括但不限于等于(==)、不等于(≠)、大于(>)、小于(<)、大于等于(≥)和小于等于(≤)等关系比较操作。
可选的,网络标识包括但不限于MAC地址、IP地址等。
图11是依据本发明一实施例的计算设备设备1100的硬件结构示意图。如图11所示,计算设备1100包括处理器1102、存储器1104、输入/输出接口1106、通信接口1108和总线1110。其中,处理器1102、存储器1104、输入/输出接口1106和通信接口1108通过总线1110实现彼此之间的通信连接。
处理器1102可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本发明实施例所提供的技术方案。
存储器1104可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器1104可以存储操作系统和其他应用程序。在通过软件或者固件来实现本发明实施例提供的技术方案时,用于实现本发明实施例提供的技术方案的程序代码保存在存储器1104中,并由处理器1102来执行。
输入/输出接口1106用于接收输入的数据和信息,输出操作结果等数据。
通信接口1108使用例如但不限于收发器一类的收发装置,来实现计算设备1100与其他设备或通信网络之间的通信。
总线1110可包括一通路,在计算设备1100各个部件(例如处理器1102、存储器1104、输入/输出接口1106和通信接口1108)之间传送信息。
应注意,尽管图11所示的计计算设备1100仅仅示出了处理器1102、存储器1104、输入/输出接口1106、通信接口1108以及总线1110,但是在具体实现过程中,本领域的技术人员应当明白,计算设备1100还包含实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当明白,计算设备1100还可包含实现其他附加功能的硬件器件。此外,本领域的技术人员应当明白,计算设备1100也可仅仅包含实现本发明实施例所必须的器件,而不必包含图11中所示的全部器件。
图11所示的硬件结构以及上述描述适用于本发明实施例所提供的各种路由设备,适用于执行本发明实施例所提供的各种路由方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:移动硬盘、只读存储器(英文:Read-Only Memory,简称ROM)、随机存取存储器(英文:Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。

Claims (37)

1.一种路由方法,其特征在于,包括:
接收数据包,所述数据包中携带所述数据包的目的地址;
在路由表中确定与所述目的地址对应的匹配条目,其中,所述路由表的条目中包含地址运算符和网络标识,所述匹配条目的网络标识的有效位与所述目的地址的有效位按照所述匹配条目的地址运算符进行运算的逻辑运算结果为真;
从根据所述匹配条目中输出端口信息确定的输出端口发送所述数据包。
2.根据权利要求1所述的路由方法,其特征在于,所述网络标识的有效位为将所述网络标识当做的一个整体数值,所述目的地址的有效位是指将所述目的地址当做的一个整体数值。
3.根据权利要求1所述的路由方法,其特征在于,所述路由表的条目中还包括掩码,所述目的地址的有效位为所述目的地址与所述掩码位与操作的结果当做的一个整体数值,所述网络标识的有效位为所述网络标识与所述掩码位与操作的结果当做的一个整体数值。
4.根据权利要求3所述的路由方法,其特征在于,所述掩码包括连续掩码和非连续掩码。
5.根据权利要求1-4任一项所述的路由方法,其特征在于,所述路由表的条目中还包括优先级信息,所述优先级信息用于指示所属条目的优先级;
所述在路由表中确定与所述目的地址对应的匹配条目,包括:在路由表中查找条目的网络标识的有效位与所述目的地址的有效位按照该条目的地址运算符进行运算的逻辑运算结果为真的条目,并根据所述查找到的条目的优先级信息,从所述查找到的条目中,选择优先级最高的条目,作为所述匹配条目。
6.根据权利要求1-4任一项所述的路由方法,其特征在于,所述在路由表中确定与所述目的地址对应的匹配条目,包括:按照优先级从高到低的顺序在路由表中查找条目的网络标识的有效位与所述目的地址的有效位按照该条目的地址运算符进行运算的逻辑运算结果为真的条目,将所述找到的第一个条目作为所述匹配条目,其中,所述查找表的条目按照优先级进行排序。
7.根据权利要求1-4任一项所述的路由方法,其特征在于,所述从根据所述匹配条目中的输出端口信息确定的输出端口发送所述数据包包括:根据地址信息按照所述匹配条目中输出端口信息进行运算的结果,确定所述输出端口,并将所述数据包从所述输出端口进行发送,所述地址信息包括以下至少一种:所述目的地址、所述数据包的源地址、所述匹配条目的网络标识和当前节点地址。
8.根据权利要求1-4任一项所述的路由方法,其特征在于,所述从根据所述匹配条目中输出端口信息确定的输出端口发送所述数据包,包括:根据哈希算法从所述输出端口信息中记录的多个端口中选择一个端口作为所述输出端口,并将所述数据包从所述输出端口进行转发。
9.根据权利要求1-4任一项所述的路由方法,其特征在于,所述匹配条目还包含操作信息,所述操作信息用于指示对所述数据包进行操作,则根据所述匹配条目中输出端口信息确定的输出端口转发发送所述数据包之前,进一步包括:根据所述匹配条目中的操作信息,对所述数据包进行操作。
10.根据权利要求1-4任一项所述的路由方法,其特征在于,所述地址运算符包括:不等于、大于、小于、大于等于或小于等于。
11.一种路由方法,其特征在于,包括:
接收数据包,所述数据包中携带所述数据包的目的地址;
在路由表中确定与所述目的地址对应的匹配条目;
根据地址信息按照所述匹配条目中输出端口信息进行运算的结果,确定所述输出端口,并将所述数据包从所述输出端口进行发送,所述地址信息包括以下至少一种:所述目的地址、所述数据包的源地址、所述匹配条目的网络标识和当前节点地址;
所述路由表的条目中包含地址运算符和网络标识,所述结果指示所述匹配条目的网络标识的有效位与所述目的地址的有效位按照所述匹配条目的地址运算符进行运算的逻辑运算结果为真。
12.根据权利要求11所述的路由方法,其特征在于,所述网络标识的有效位为将所述网络标识当做的一个整体数值,所述目的地址的有效位是指将所述目的地址当做的一个整体数值。
13.根据权利要求11所述的路由方法,其特征在于,所述路由表的条目中还包括掩码,所述目的地址的有效位为所述目的地址与所述掩码位与操作的结果当做的一个整体数值,所述网络标识的有效位为所述网络标识与所述掩码位与操作的结果当做的一个整体数值。
14.根据权利要求13所述的路由方法,其特征在于,所述掩码包括连续掩码和非连续掩码。
15.根据权利要求11-14任一项所述的路由方法,其特征在于,所述路由表的条目中还包括优先级信息,所述优先级信息用于指示所属条目的优先级;
所述在路由表中确定与所述目的地址对应的匹配条目,包括:在路由表中查找条目的网络标识的有效位与所述目的地址的有效位按照该条目的地址运算符进行运算的逻辑运算结果为真的条目,并根据所述查找到的条目的优先级信息,从所述查找到的条目中,选择优先级最高的条目,作为所述匹配条目。
16.根据权利要求11-14任一项所述的路由方法,其特征在于,所述在路由表中确定与所述目的地址对应的匹配条目,包括:按照优先级从高到低的顺序在路由表中查找条目的网络标识的有效位与所述目的地址的有效位按照该条目的地址运算符进行运算的逻辑运算结果为真的条目,将所述找到的第一个条目作为所述匹配条目,其中,所述查找表的条目按照优先级进行排序。
17.根据权利要求11-14任一项所述的路由方法,其特征在于,所述匹配条目还包含操作信息,所述操作信息用于指示对所述数据包进行操作,则根据所述匹配条目中输出端口信息确定的输出端口转发发送所述数据包之前,进一步包括:根据所述匹配条目中的操作信息,对所述数据包进行操作。
18.根据权利要求11-14任一项所述的路由方法,其特征在于,所述地址运算符包括:不等于、大于、小于、大于等于或小于等于。
19.一种计算设备,其特征在于,包括:处理器、存储器、总线和通信接口;
所述存储器用于存储计算设备执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述计算设备执行权利要求1-18任一项所述的方法。
20.一种路由设备,其特征在于,包括:
接收单元,用于接收数据包,所述数据包中携带所述数据包的目的地址;
匹配单元,用于在路由表中确定与所述目的地址对应的匹配条目,其中,所述路由表的条目中包含地址运算符和网络标识,所述匹配条目的网络标识的有效位与所述目的地址的有效位按照所述匹配条目的地址运算符进行运算的逻辑运算结果为真;
发送单元,用于从根据所述匹配条目中输出端口信息确定的输出端口发送所述数据包。
21.根据权利要求20所述的路由设备,其特征在于,所述网络标识的有效位为将所述网络标识当做的一个整体数值,所述目的地址的有效位是指将所述目的地址当做的一个整体数值。
22.根据权利要求20所述的路由设备,其特征在于,所述路由表的条目中还包括掩码,所述目的地址的有效位为所述目的地址与所述掩码位与操作的结果当做的一个整体数值,所述网络标识的有效位为所述网络标识与所述掩码位与操作的结果当做的一个整体数值。
23.根据权利要求22所述的路由设备,其特征在于,所述掩码包括连续掩码和非连续掩码。
24.根据权利要求20-23任一项所述的路由设备,其特征在于,所述路由表的条目中还包括优先级信息,所述优先级信息用于指示所属条目的优先级;
所述匹配单元用于在路由表中确定与所述目的地址对应的匹配条目,包括:所述匹配单元在路由表中查找条目的网络标识的有效位与所述目的地址的有效位按照该条目的地址运算符进行运算的逻辑运算结果为真的条目,并根据所述查找到的条目的优先级信息,从所述查找到的条目中,选择优先级最高的条目,作为所述匹配条目。
25.根据权利要求20-23任一项所述的路由设备,其特征在于,所述匹配单元用于在路由表中确定与所述目的地址对应的匹配条目,包括:所述匹配单元按照优先级从高到低的顺序在路由表中查找条目的网络标识的有效位与所述目的地址的有效位按照该条目的地址运算符进行运算的逻辑运算结果为真的条目,将所述找到的第一个条目作为所述匹配条目,其中,所述查找表的条目按照优先级进行排序。
26.根据权利要求20-23任一项所述的路由设备,其特征在于,所述发送单元用于从根据所述匹配条目中的输出端口信息确定的输出端口发送所述数据包包括:所述发送单元根据地址信息按照所述匹配条目中输出端口信息进行运算的结果,确定所述输出端口,并将所述数据包从所述输出端口进行发送,所述地址信息包括以下至少一种:所述目的地址、所述数据包的源地址、所述匹配条目的网络标识和当前节点地址。
27.根据权利要求20-23任一项所述的路由设备,其特征在于,所述发送单元用于从根据所述匹配条目中的输出端口信息确定的输出端口发送所述数据包包括:所述发送单元根据哈希算法从所述输出端口信息中记录的多个端口中选择一个端口作为所述输出端口,并将所述数据包从所述输出端口进行转发。
28.根据权利要求20-23任一项所述的路由设备,其特征在于,所述设备还包括操作单元,所述匹配条目还包含操作信息,所述操作信息用于指示对所述数据包进行操作,所述操作单元用于根据所述匹配条目中的操作信息,对所述数据包进行操作。
29.根据权利要求20-23任一项所述的路由设备,其特征在于,所述地址运算符包括:不等于、大于、小于、大于等于或小于等于。
30.一种路由设备,其特征在于,包括:
接收单元,用于接收数据包,所述数据包中携带所述数据包的目的地址;
匹配单元,用于在路由表中确定与所述目的地址对应的匹配条目;
发送单元,用于根据地址信息按照所述匹配条目中输出端口信息进行运算的结果,确定所述输出端口,并将所述数据包从所述输出端口进行发送,所述地址信息包括以下至少一种:所述目的地址、所述数据包的源地址、所述匹配条目的网络标识和当前节点地址;
所述路由表的条目中包含地址运算符和网络标识,所述结果指示所述匹配条目的网络标识的有效位与所述目的地址的有效位按照所述匹配条目的地址运算符进行运算的逻辑运算结果为真。
31.根据权利要求30所述的路由设备,其特征在于,所述网络标识的有效位为将所述网络标识当做的一个整体数值,所述目的地址的有效位是指将所述目的地址当做的一个整体数值。
32.根据权利要求30所述的路由设备,其特征在于,所述路由表的条目中还包括掩码,所述目的地址的有效位为所述目的地址与所述掩码位与操作的结果当做的一个整体数值,所述网络标识的有效位为所述网络标识与所述掩码位与操作的结果当做的一个整体数值。
33.根据权利要求32所述的路由设备,其特征在于,所述掩码包括连续掩码和非连续掩码。
34.根据权利要求30-33任一项所述的路由设备,其特征在于,所述路由表的条目中还包括优先级信息,所述优先级信息用于指示所属条目的优先级;
所述匹配单元用于在路由表中确定与所述目的地址对应的匹配条目,包括:所述匹配单元在路由表中查找条目的网络标识的有效位与所述目的地址的有效位按照该条目的地址运算符进行运算的逻辑运算结果为真的条目,并根据所述查找到的条目的优先级信息,从所述查找到的条目中,选择优先级最高的条目,作为所述匹配条目。
35.根据权利要求30-33任一项所述的路由设备,其特征在于,所述匹配单元用于在路由表中确定与所述目的地址对应的匹配条目,包括:所述匹配单元按照优先级从高到低的顺序在路由表中查找条目的网络标识的有效位与所述目的地址的有效位按照该条目的地址运算符进行运算的逻辑运算结果为真的条目,将所述找到的第一个条目作为所述匹配条目,其中,所述查找表的条目按照优先级进行排序。
36.根据权利要求30-33任一项所述的路由设备,其特征在于,所述设备还包括操作单元,所述匹配条目还包含操作信息,所述操作信息用于指示对所述数据包进行操作,所述操作单元用于根据所述匹配条目中的操作信息,对所述数据包进行操作。
37.根据权利要求30-33任一项所述的路由设备,其特征在于,所述地址运算符包括:等于、不等于、大于、小于、大于等于或小于等于。
CN201480037879.5A 2014-12-29 2014-12-29 一种路由方法和设备 Active CN106170956B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/095351 WO2016106506A1 (zh) 2014-12-29 2014-12-29 一种路由方法和设备

Publications (2)

Publication Number Publication Date
CN106170956A CN106170956A (zh) 2016-11-30
CN106170956B true CN106170956B (zh) 2019-04-12

Family

ID=56283795

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480037879.5A Active CN106170956B (zh) 2014-12-29 2014-12-29 一种路由方法和设备

Country Status (2)

Country Link
CN (1) CN106170956B (zh)
WO (1) WO2016106506A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109617927B (zh) * 2019-01-30 2021-04-16 新华三信息安全技术有限公司 一种匹配安全策略的方法及装置
CN110401602B (zh) * 2019-07-23 2022-07-12 苏州浪潮智能科技有限公司 一种网络端口的流表确定方法和装置
CN113497763B (zh) * 2020-03-19 2024-06-07 华为技术有限公司 一种路由查找装置、方法和数据转发设备
CN111698169B (zh) * 2020-05-29 2022-04-05 中国航空工业集团公司西安航空计算技术研究所 基于帧内容的通信端口提取方法
TWI778716B (zh) 2020-07-23 2022-09-21 美商光禾科技股份有限公司 根據查表處理封包的方法和系統
CN114124704B (zh) * 2021-11-19 2024-01-23 北京天融信网络安全技术有限公司 路由优化方法、装置、电子设备及存储介质
CN114338525B (zh) * 2021-12-28 2023-07-21 中国电信股份有限公司 路由自动聚合方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102970150A (zh) * 2011-09-01 2013-03-13 日电(中国)有限公司 用于数据中心的可扩展组播转发方法和设备
CN104168201A (zh) * 2014-08-06 2014-11-26 福建星网锐捷网络有限公司 一种多路径转发的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061712A (en) * 1998-01-07 2000-05-09 Lucent Technologies, Inc. Method for IP routing table look-up

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102970150A (zh) * 2011-09-01 2013-03-13 日电(中国)有限公司 用于数据中心的可扩展组播转发方法和设备
CN104168201A (zh) * 2014-08-06 2014-11-26 福建星网锐捷网络有限公司 一种多路径转发的方法及装置

Also Published As

Publication number Publication date
CN106170956A (zh) 2016-11-30
WO2016106506A1 (zh) 2016-07-07

Similar Documents

Publication Publication Date Title
CN106170956B (zh) 一种路由方法和设备
CN105049359B (zh) 用于分布式路由表查找的分布式路由器的入口计算节点和机器可读介质
JP6177890B2 (ja) 別個のインフィニバンドサブネット間のトラフィックをファットツリールーティングに基づいてルーティングするためのシステムおよび方法
CN103401777B (zh) Openflow的并行查找方法和系统
CN104769884B (zh) 利用流数据的转发表优化
CN108521378A (zh) 异构协议报文的转发方法、装置和网络交换设备
CN100413285C (zh) 基于网络处理器的高速多维报文分类算法的设计和实现
CN103326943B (zh) 数据流重路由方法和控制器
CN109218301A (zh) 多协议间软件定义的帧头映射的方法和装置
US20160218975A1 (en) Information processing system, information processing apparatus and control method of information processing system
CN107211036A (zh) 一种数据中心网络组网的方法以及数据中心网络
CN102857414A (zh) 一种转发表写入、报文转发方法及装置
CN101594319A (zh) 表项查找方法和装置
CN106453091B (zh) 路由器转发平面的等价路由管理方法和装置
CN104811382A (zh) 数据包的处理方法与装置
CN118301056A (zh) 分段路由方法及装置
WO2020073988A1 (zh) 一种路由表项生成方法、字典树生成方法和装置
CN107786497B (zh) 生成acl表的方法和装置
CN104025520A (zh) 查找表的创建方法、查询方法、控制器、转发设备和系统
CN111147372A (zh) 下行报文发送、转发方法和装置
CN103685041B (zh) 一种基于比特粒度可编程的路由器及路由方法
CN100472427C (zh) 一种数据包递归流分类方法
CN104252504B (zh) 数据查询方法、设备和系统
CN103457855B (zh) 无类域间路由表建立、以及报文转发的方法和装置
CN106936731A (zh) 软件定义网络sdn中的报文转发的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant