专利名称:报文发送的方法及设备的利记博彩app
技术领域:
本发明涉及通信技术领域,尤其涉及一种报文发送的方法及设备。
背景技术:
在IP网络上,从主机1到主机2可能有多条路由,这些路由可以是ECMP (Equal Cost Multi Path,等价路由),也可是非等价路由。判断路径是否等价 的条件是路由开销,即到达路由所指的目的地的代价,以选择最佳路径。影 响路由开销的因素有线路延迟、线路带宽、线路占有率、线路可信度、跳 数、最大传输单元等,并且与协议相关,不同的动态路由协议会选择以上的 一种或几种因素来计算开销值。所以,开销值只有在同一种路由协议下才有 比较意义,不同的路由协议之间的路由开销值没有可比性。
例如,在如图l所示的场景中,主机1到主机2有两条路Pathl A —B —C —D; Path2A —E —F —C —D。若Pathl和Path2的开销相同,则Pathl和 Path2为等价路由,若Pathl和Path2的开销不同,则Pathl和Path2为非等价 路由。如果主机1到主机2的报文既通过Pathl转发,又通过Path2转发,即 Pathl和Path2对主机1到主机2的报文进行了路由负载分担,这样可以提高 链路的利用率。如果Pathl和Path2为等价路由,则它们对主机1到主机2的 报文进行了等价路由负载分担,如果Pathl和Path2为等价路由,则它们对主 机1到主机2的报文进行了非等价路由负载分担。另外,负载分担的方式有 两种,逐包负载分担和逐流负载分担。逐包负载分担是根据负载分担规则对 每个数据包分别进行负载分担,逐流负载分担是根据负载分担规则对不同的 数据流分别进行负载分担,即属于同一数据流的数据包通过相同的路径进行 传输。
现有技术中,使用链表的方式进行等价路由的存储和查询,根据查询得 到的等价路由发送数据包,但是,使用链表的方式对设备的逻辑资源消耗较
5大,不便于逻辑实现。
发明内容
本发明提供了 一种报文发送的方法及设备,减少了等价路由的存储和查 询过程中的逻辑资源消耗,便于逻辑实现。
本发明提供了一种报文发送的方法,应用于包括CPU、逻辑器件和存储 器件,所述方法包括以下步骤
所述CPU生成路由索引表和路由表,并将路由表和路由索引表发送给所 述存储器件进行存储,所述路由索引表中包含路由索引,所述路由表中包含 等价路由块,所述路由索引携带地址匹配模版、指向对应的等价路由块的指 针和对应的等价路由块中的有效路由个数;
所述逻辑器件获取需要发送的报文,在所述存储器件存储的路由索引表 中查找与所述报文的目的地址对应的路由索引,在查找到的路由索引的指针 指向的等价路由块中选择路由记录,根据选择的路由记录发送所述报文。
其中,所述逻辑器件在路由索引表中查找与所述报文的目的地址对应的 路由索引包括
所述逻辑器件将路由索引表中各条路由索引携带的地址匹配模版分别与 所述报文的目的地址进行匹配,选取匹配度最高的路由索引作为所述报文的 目的地址对应的3各由索引。
其中,所述逻辑器件在查找到的路由索引的指针指向的等价路由块中选 择路由记录包括
所述逻辑器件根据所述路由索引携带的等价路由块中的有效路由记录个
数确定存储有效路由的地址,在所有存储有效路由的地址中随机选取一个,
获取选取的地址上存储的路由记录。
其中,所述逻辑器件根据选择的路由记录发送所述报文之后,还包括 所述逻辑器件根据路由选择结果生成快速转发表,并将快速转发表发送
给所述存储器件进行存储,所述快速转发表中记录了所述报文的五元组信息
与选"^的if各由记录的对应关系;若所述逻辑器件获取到后续需要发送的报文,判断后续报文的五元组信 息是否与快速转发表中记录的五元组信息匹配,若判断结果为是,直接根据 所述存储器件存储的快速转发表发送该后续报文,根据所述存储器件存储的 路由索引表进行后续处理。
其中,所述逻辑器件直接根据所述存储器件存储的快速转发表发送该后
续报文包括
所述逻辑器件获取所述快速转发表中记录的该后续传发"^艮文的五元组信 息对应的路由记录,根据路由记录中的出接口号和下一条地址发送所述后续报文。
本发明提供了一种实现报文发送的装置,包括CPU、逻辑器件和存储器 件,其中,
所述存储器件,用于存储路由索引表和路由表;
所述CPU,用于生成路由索引表和路由表,并将路由表和路由索引表发 送给所述存储器件进行存储,所述路由索引表中包含路由索引,所述路由表 中包含等价路由块,所述路由索引携带地址匹配模版、指向对应的等价路由 块的指针和对应的等价路由块中的有效路由个数;
所述逻辑器件,用于获取需要发送的报文,在所述存储器件存储的路由
索引表中查找与所述报文的目的地址对应的路由索引,在查找到的路由索引 的指针指向的等价路由块中选择路由记录,根据选择的路由记录发送所述报文。
其中,所述逻辑器件包括收发单元、查找单元和选择单元,
所述收发单元,用于获取需要发送的报文;根据所述选择单元选择的路 由记录发送所述报文;
所述查找单元,用于在所述存储器件存储的路由索引表中查找与所述收 发单元获取的报文的目的地址对应的路由索引;
所述选择单元,用于在所述查找单元查找到的i 各由索引的指针指向的等 价路由块中选择^各由记录。其中,所述查找单元,具体用于将路由索引表中各条路由索引携带的地 址匹配模版分别与所述报文的目的地址进行匹配,选取匹配度最高的路由索 引作为所述报文的目的地址对应的路由索引。
其中,所述选择单元,具体用于根据路由索引携带的等价路由块中的有 效路由记录个数确定存储有效路由的地址,在所有存储有效路由的地址中随 机选取一个,获取选耳又的地址上存储的^各由记录。
其中,所述逻辑器件,还包括生成单元和判断单元;
所述生成单元,用于根据所述选择模块的路由选择结果生成快速转发表, 并将快速转发表发送给所述存储器件进行存储,所述快速转发表中记录了所 述报文的五元组信息与选择的路由记录的对应关系。
所述判断单元,用于若所述收发单元接收到后续需要发送的报文,判断 后续报文的五元组信息是否与快速转发表中记录的五元组信息匹配;
则所述收发单元,用于若所述判断单元的判断结果为是,获取所述存储 器件存储的快速转发表中记录的该后续传发报文的五元组信息对应的路由记 录,根据路由记录中的出接口号和下一条地址发送所述后续报文;
则所述查找单元,用于若所述判断单元的判断结果为否,在所述存储器 件存储的路由索引表中查找与所述收发单元获取的报文的目的地址对应的路 由索引。
本发明中,CPU生成路由索引表和路由表,并将路由表和路由索引表发 送给所述存储器件进行存储,逻辑器件在获取需要发送的报文后,在存储器 件存储的路由索引表中查找与所述报文的目的地址对应的路由索引,在查找 到的路由索引的指针指向的等价路由块中选择路由记录,根据选择的路由记 录发送所述报文。相比于现有技术中使用链表实现等价路由的存储和查询的 方法,减少了等价路由的存储和查询过程中的逻辑资源消耗,便于逻辑实现。
图l是现有技术中的实际应用场景示意图;图2是本发明中一种报文发送的方法流程图3是本发明中的具体应用场景中的报文发送的方法流程图;
图4是本发明中存储器件存储空间示意图5是本发明中的具体应用场景中的报文发送的方法流程图;
图6是本发明中的实现报文发送的装置结构图7是本发明中的逻辑器件结构图8是本发明中的逻辑器件结构图。
具体实施例方式
本发明主要提供了一种报文发送的方法,主要思路是CPU (Central Processing Unit,中央处理器)生成路由索引表和路由表,并将路由表和路由 索引表发送给存储器件进行存储,逻辑器件在获取需要发送的报文后,在存 储器件存储的路由索引表中查找与所述报文的目的地址对应的路由索引,在 查找到的路由索引的指针指向的等价路由块中选择路由记录,根据选择的路 由记录发送所述报文。相比于现有技术中使用链表实现等价路由的存储和查 询的方法,减少了等价路由的存储和查询过程中的逻辑资源消耗,便于逻辑 实现。具体的,本发明中的存储器件可以是DRAM (Dynamic Random-Access Memory,动态随机存储器),本发明中的逻辑器件可以是FPGA ( Field-Programmable Gate Array,现场可编程门阵列)。
本发明提出了一种报文发送的方法,应用于包括CPU、逻辑器件和存储 器件的设备中,所述方法如图2所示,包括以下步骤
步骤201, CPU生成路由索引表和路由表,并将路由表和路由索引表发 送给存储器件进行存储,路由索引表中包含路由索引,路由表中包含等价路 由块,路由索引携带地址匹配模版、指向对应的等价路由块的指针和对应的 等价路由块中的有效路由个数。
步骤202,逻辑器件获取需要发送的报文,在存储器件存储的路由索引表 中查找与报文的目的地址对应的路由索引,在查找到的路由索引的指针指向 的等价路由块中选择路由记录,根据选择的路由记录发送报文。具体的,本发明提供了一种报文发送的方法,应用于包括CPU、逻辑器 件和存储器件的设备中,所述方法如图3所示,包括以下步骤 步骤301, CPU生成路由索引表和路由表。
具体的,路由索引表中包含路由索引,路由表中包含等价路由块,路由 索引表的路由索引携带地址匹配模版、指向对应的等价路由块的指针和对应 的等价路由块中的有效路由个数。
如图4所示,是一个存储器件的存储空间示意图。路由表和路由索引表 在存储器件的存储空间中进行存储,路由表索引中路由索引的指针指向对应 的等价路由块入口地址。
步骤303,逻辑器件获取到需要发送的报文,报文中包含报文需要被发送 到的目的地址。
步骤304,逻辑器件在存储器件存储的路由索引表中查找与报文的目的地 址对应的路由索引。
具体的,逻辑器件需要将路由索引表中各条路由索引携带的地址匹配模 版分别与所述报文的目的地址进行匹配,选取匹配度最高的路由索引作为报 文的目的地址对应的i 各由索引。
步骤305,逻辑器件在查找到的路由索引的指针指向的等价路由块中选择 路由记录。
具体的,逻辑器件需要根据路由索引携带的等价路由块中的有效路由记 录个数确定存储有效路由的地址,在所有存储有效路由的地址中随机选取一 个,获取选耳又的地址上存4渚的路由记录。
步骤306,逻辑器件根据选择的路由记录发送报文。
具体的,逻辑器件需要根据路由记录中的出接口号和下一条地址发送所 述后续报文。
根据上述步骤301到步骤306的方法可以实现报文的逐包转发,在此基础上,逻辑器件可以根据路由记录的选择结果生成快速转发表,并将快速转 发表存储在存储器件中,后续可以根据该快速转发表实现报文的逐流转发。
所述方法如图5所示,包括
步骤501, CPU生成路由索引表和路由表,并将生成的路由表和路由索 引表发送给存储器件进行存储。
具体的,路由索引表中包含路由索引,路由表中包含等价路由块,路由 索引表的路由索引携带地址匹配模版、指向对应的等价路由块的指针和对应 的等价路由块中的有效路由个数。
步骤502,逻辑器件获取需要发送的报文,并根据存储器件存储的路由索 I表和路由表进行报文转发。
具体的,逻辑器件需要在存储器件存储的路由索引表中查找与报文的目 的地址对应的路由索引,在查找到的路由索引的指针指向的等价路由块中选 择路由记录,根据选择的路由记录发送报文。
步骤503,逻辑器件根据路由选择结果生成快速转发表。快速转发表中记 录了报文的五元组信息与选择的路由记录的对应关系。
步骤504,逻辑器件获取到后续需要发送的报文。
步骤505,逻辑器件判断后续报文的五元组信息是否与快速转发表中记录 的五元组信息匹配,若判断结果为是,转步骤506,若判断结果为否,转步骤 507。文。
具体的,逻辑器件需要获取所述快速转发表中记录的该后续传发报文的 五元组信息对应的路由记录,根据路由记录中的出接口号和下一条地址发送 所述后续报文。
文转发。
具体的,逻辑器件需要在存储器件存储的路由索引表中查找与该后续报 文的目的地址对应的路由索引,在查找到的路由索引的指针指向的等价路由块中选择路由记录,根据选择的路由记录发送该后续报文。
本发明提供了一种实现报文发送的装置,如图6所示,包括CPU 601、 逻辑器件602和存储器件603,其中,
CPU 601,与逻辑器件602连接,用于生成路由索引表和路由表,并将 路由表和路由索引表发送给逻辑器件602,由逻辑器件602将接收到的路由 表和路由索引表存储到存储器件603中,所述路由索引表中包含路由索引, 所述路由表中包含等价路由块,所述路由索引携带地址匹配模版、指向对应 的等价路由块的指针和对应的等价路由块中的有效路由个数。
逻辑器件602,与CPU 601以及存储器件603连接,用于接收到CPU 601 发送的路由表和路由索引表时,将接收到的路由表和路由索引表存储到存储 器件603中;还用于获取需要发送的报文,在存储器件603存储的路由索引 表中查找与所述报文的目的地址对应的路由索引,在查找到的路由索引的指 针指向的等价路由块中选择路由记录,根据选择的路由记录发送报文。
存储器件603,用于存储路由索引表和路由表。
具体的,本发明提供了一种逻辑器件,应用在包括CPU、逻辑器件和存 储器件的装置中,如图7所示,包括收发单元701、查找单元702和选择单元 703,
收发单元701,与选择单元703连接,用于获取需要发送的报文;根据选 择单元703选择的路由记录发送所述报文。
查找单元702,与收发单元701连接,用于在存储器件存储的路由索引表 中查找与收发单元701获取的报文的目的地址对应的i 各由索引。具体的,查 找单元702,用于将路由索引表中各条路由索引携带的地址匹配模版分别与所 述报文的目的地址进行匹配,选取匹配度最高的路由索引作为所述报文的目 的地址对应的路由索引。
选择单元703,与查找单元702连接,用于在查找单元702查找到的路由 索引的指针指向的等价路由块中选择路由记录。具体的,选择单元703,用于根据路由索引携带的等价路由块中的有效路由记录个数确定存储有效路由的 地址,在所有存储有效路由的地址中随机选取一个,获取选取的地址上存储 的3各由"^己录。
具体的,本发明提供了另一种逻辑器件,应用在包括CPU、逻辑器件和 存储器件的装置中,如图8所示,在如图7所示的逻辑器件基础上,还包括 生成单元704和判断单元705,
生成单元704,与选择单元703连接,用于根据选择单元703的路由选择 结果生成快速转发表,并将快速转发表发送给存储器件进行存储,所述快速 转发表中记录了所述报文的五元组信息与选择的路由记录的对应关系。
判断单元705,与收发单元701连接,用于若收发单元701接收到后续需 要发送的报文,判断后续报文的五元组信息是否与快速转发表中记录的五元 组信息匹配;
则收发单元701,还用于若判断单元705的判断结果为是,获取所述存储 器件存储的快速转发表中记录的该后续传发报文的五元组信息对应的路由记 录,根据路由记录中的出接口号和下一条地址发送所述后续报文;
则查找单元702,还与判断单元705连接,用于若判断单元705的判断结 果为否,在存储器件存储的路由索引表中查找与收发单元701获取的报文的 目的地址对应的路由索引。
本发明中,CPU生成路由索引表和路由表,并将路由表和路由索引表通 过逻辑器件存储到存储器件中,逻辑器件在获取需要发送的报文后,在存储 器件存储的路由索引表中查找与所述报文的目的地址对应的路由索引,在查 找到的路由索引的指针指向的等价路由块中选择路由记录,根据选择的路由 记录发送所述报文。相比于现有技术中使用链表实现等价路由的存储和查询 的方法,减少了等价路由的存储和查询过程中的逻辑资源消耗,便于逻辑实 现。通过以上的实施方式的描述,本领域的^支术人员可以清楚地了解到本 发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬 件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技 术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体 现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使 得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行 本发明所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中 的模块或流程并不 一 定是实施本发明所必须的。
本领域技术人员可以理解本发明中的装置中的才莫块可以按照实施例描 述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例 的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进 一步拆分成多个子模块。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于 此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
1、一种报文发送的方法,应用于包括CPU、逻辑器件和存储器件的装置中,其特征在于,所述方法包括以下步骤所述CPU生成路由索引表和路由表,并将路由表和路由索引表发送给所述存储器件进行存储,所述路由索引表中包含路由索引,所述路由表中包含等价路由块,所述路由索引携带地址匹配模版、指向对应的等价路由块的指针和对应的等价路由块中的有效路由个数;所述逻辑器件获取需要发送的报文,在所述存储器件存储的路由索引表中查找与所述报文的目的地址对应的路由索引,在查找到的路由索引的指针指向的等价路由块中选择路由记录,根据选择的路由记录发送所述报文。
2、 如权利要求l所述的方法,其特征在于,所述逻辑器件在路由索引表 中查找与所述"t艮文的目的地址对应的路由索引包括所述逻辑器件将路由索引表中各条路由索引携带的地址匹配模版分别与 所述报文的目的地址进行匹配,选取匹配度最高的路由索引作为所述报文的 目的地址对应的3各由索引。
3、 如权利要求l所述的方法,其特征在于,所述逻辑器件在查找到的路 由索引的指针指向的等价路由块中选择路由记录包括所述逻辑器件根据所述路由索引携带的等价路由块中的有效路由记录个 数确定存储有效路由的地址,在所有存储有效路由的地址中随机选取一个, 获取选取的地址上 存储的路由记录。
4、 如权利要求l所述的方法,其特征在于,所述逻辑器件根据选择的路 由记录发送所述报文之后,还包括所述逻辑器件根据路由选择结果生成快速转发表,并将快速转发表发送 给所述存储器件进行存储,所述快速转发表中记录了所述报文的五元组信息 与选择的路由记录的对应关系;若所述逻辑器件获取到后续需要发送的报文,判断后续报文的五元组信 息是否与快速转发表中记录的五元组信息匹配,若判断结果为是,直接根据 所述存储器件存储的快速转发表发送该后续报文,根据所述存储器件存储的路由索引表进行后续处理。
5、 如权利要求4所述的方法,其特征在于,所述逻辑器件直接根据所述 存储器件存储的快速转发表发送该后续报文包括所述逻辑器件获取所述快速转发表中记录的该后续传发报文的五元组信 息对应的路由记录,根据路由记录中的出接口号和下一条地址发送所述后续 报文。
6、 一种实现报文发送的装置,其特征在于,包括CPU、逻辑器件和存储 器件,其中,所述存储器件,用于存储路由索引表和路由表;所述CPU,用于生成路由索引表和路由表,并将路由表和路由索引表发 送给所述存储器件进行存储,所述路由索引表中包含路由索引,所述路由表 中包含等价路由块,所述路由索引携带地址匹配模版、指向对应的等价路由 块的指针和对应的等价路由块中的有效路由个数;所述逻辑器件,用于获取需要发送的报文,在所述存储器件存储的路由索引表中查找与所述报文的目的地址对应的路由索引,在查找到的路由索引 的指针指向的等价路由块中选择路由记录,根据选择的路由记录发送所述报文。
7、 如权利要求6所述的装置,其特征在于,所述逻辑器件包括收发单元、 查找单元和选择单元,所述收发单元,用于获取需要发送的报文;根据所述选择单元选择的路 由记录发送所述才艮文;所述查找单元,用于在所述存储器件存储的路由索引表中查找与所述收 发单元获取的报文的目的地址对应的路由索引;所述选择单元,用于在所述查找单元查找到的路由索引的指针指向的等 价路由块中选择路由记录。
8、 如权利要求7所述的装置,其特征在于,所述查找单元,具体用于将路由索引表中各条路由索引携带的地址匹配模版分别与所述报文的目的地址进行匹配,选取匹配度最高的路由索引作为 所述报文的目的地址对应的^各由索引。
9、 如权利要求7所述的装置,其特征在于,所述选择单元,具体用于根据路由索引携带的等价路由块中的有效路由 记录个数确定存储有效路由的地址,在所有存储有效路由的地址中随机选取 一个,获取选耳又的地址上存储的^各由记录。
10、 如权利要求7所述的装置,其特征在于,所述逻辑器件,还包括生 成单元和判断单元;所述生成单元,用于根据所述选择模块的路由选择结果生成快速转发表, 并将快速转发表发送给所述存储器件进行存储,所述快速转发表中记录了所 述报文的五元组信息与选择的路由记录的对应关系。所述判断单元,用于若所述收发单元接收到后续需要发送的报文,判断 后续报文的五元组信息是否与快速转发表中记录的五元组信息匹配;则所述收发单元,用于若所述判断单元的判断结果为是,获取所述存储 器件存储的快速转发表中记录的该后续传发报文的五元组信息对应的路由记 录,根据路由记录中的出接口号和下一条地址发送所述后续报文;则所述查找单元,用于若所述判断单元的判断结果为否,在所述存储器 件存储的路由索引表中查找与所述收发单元获取的报文的目的地址对应的路 由索引。
全文摘要
本发明公开了一种报文发送的方法,应用于包括CPU、逻辑器件和存储器件的装置中,所述方法包括以下步骤所述CPU生成路由索引表和路由表,并将路由表和路由索引表通过逻辑器件发送给所述存储器件进行存储,所述路由索引表中包含路由索引,所述路由表中包含等价路由块,所述路由索引携带地址匹配模版、指向对应的等价路由块的指针和对应的等价路由块中的有效路由个数;所述逻辑器件获取需要发送的报文,在所述存储器件存储的路由索引表中查找与所述报文的目的地址对应的路由索引,在查找到的路由索引的指针指向的等价路由块中选择路由记录,根据选择的路由记录发送所述报文。本发明中,减少了等价路由的存储和查询过程中的逻辑资源消耗,便于逻辑实现。
文档编号H04L12/56GK101599910SQ20091015817
公开日2009年12月9日 申请日期2009年7月15日 优先权日2009年7月15日
发明者栗晋升 申请人:杭州华三通信技术有限公司