一种处理报文的设备和方法

文档序号:7655806阅读:116来源:国知局
专利名称:一种处理报文的设备和方法
技术领域
本发明涉及网络通信技术,特别是涉及一种处理报文的设备和方法。
背景技术
当报文在网络中传输时,通常需要由网络设备对接收到的报文进行处理 后再转发出去。这里所述的对报文所有处理可以统称为业务处理,比如创建 会话、地址转换等等。当然,实际应用中,根据不同的业务需求,业务处理 的内容可能是不同的。
图1是现有技术中典型的网络设备内部基本结构示意图。网络设备主要 由主控单元、业务处理单元和接口单元组成,所有业务处理单元通过连接单 元与主控单元中的业务控制单元连接在一起。当网络设备的某个接口单元如 接口单元1接收到报文后,接口单元1将接收到的报文发送给与其固定连接
的业务处理单元1;业务处理单元1在主控单元中业务控制单元的控制下, 对接收到的报文进行业务处理。这里所述业务控制单元对业务处理单元的控 制主要指根据会话首个报文所生成的会话控制信息,如会话表、会话处理动 作等等。
上述仅仅是网络设备中某一个业务处理单元对报文的简单的业务处理 过程。实际应用中,在防火墙等与安全产品相关的网络设备中,会话报文不 仅要进行普通的业务处理,还需要对会话的正向数据流报文进行隧道封装再 发送出去,对反向数据流报文进行解封装等有关隧道技术方面的处理,并且 通常指定某个特定的业务处理单元针对某个隧道统一进行隧道处理。在这种 情况下,会话中同 一个报文就可能需要由不同的业务处理单元进行处理。
比如接口单元1接收到需要进行隧道处理的正向数据流报文,先将报
文发送给与自身固定连接的业务处理单元1;业务处理单元1对接收到的报 文进行业务处理后,如果判断出应该由接口单元2对应的业务处理单元2进 行隧道处理,则将报文发送给业务处理单元2;业务处理单元2对报文进行 隧道封装后,再从接口单元2将处理后获得的隧道报文发送出去。相应地, 当接口单元2接收到返回的反向数据流的隧道报文时,先将报文发送给自身 对应的业务处理单元2进行解封装等处理;业务处理单元2再将解封装后的 报文发送给业务处理单元1进行业务处理,再从对应的接口单元l发送出去。 当然,实际应用中,业务处理单元1和业务处理单元2也可能分别对报文进 行部分的业务处理,至于具体情况如何,此处不再赘述。
由于从设备外部接收到报文的接口处理单元所对应的业务处理单元与 进行隧道处理的业务处理单元未必是同一个业务处理单元,如果报文需要进 行隧道处理,同一个会话报文就将被不同的业务处理单元进行处理。在这种 情况下,为了保证会话的正常进行,现有技术不但需要在处理同一个会话报 文的不同业务处理单元中保存会话状态,还需要在不同业务处理单元之间进 行同步过程。这不仅大大增加了网络设备处理报文的复杂度,也消耗了系统 带宽,不利于网络设备对报文进行业务处理。

发明内容
有鉴于此,本发明的第一个发明目的在于提供一种处理报文的设备,不 但可以使业务处理的负荷均衡,而且可以降低网络设备处理报文的负载度, 节约系统带宽。
本发明的第二个发明目的在于提供一种处理报文的方法,不但可以使业 务处理的负荷均衡,而且可以降低网络设备处理报文的负载度,节约系统带宽。
为了达到上述目的,本发明提出的技术方案为
一种处理报文的设备,该设备包括多个接口处理单元和多个业务处理单 元,任意一个接口处理单元通过连接单元与任意一个业务处理单元相连;其中,
接口处理单元,用于接收来自设备外部的报文,如果是会话首个报文,则 从所有业务处理单元中选择一个业务处理单元,通过连接单元将报文发送给选
择出的业务处理单元;如果不是会话首个报文,则将报文发送给已确定的业务 处理单元;
业务处理单元,用于对接收到的报文进行业务处理,如果自身需要对报文
出去;如果需要其它业务处理单元对才艮文进行隧道处理,则将接收到的未进行 业务处理的报文发送给需要对报文进行隧道处理的业务处理单元。
上述方案中,该设备进一步包括与业务处理单元相连的业务控制单元; 所述业务处理单元进一步用于,在接收到l艮文时判断是否为会话的首个才艮 文,如果为首个报文,则发送给业务控制单元,并在确定自身需要对报文进行 隧道处理时将获得的会话转发信息发送给所有的接口处理单元;
所述业务控制单元,用于根据会话的首个报文生成会话转发信息,将生成 的会话转发信息发送给业务处理单元,所述会话转发信息包括业务处理单元标
识;
所述已确定的业务处理单元为会话转发信息中业务处理单元标识所对应 的业务处理单元。
上述方案中,所述会话转发信息还包括报文五元组信息;所述接口处理单 元包括
转发信息存储单元,用于保存会话转发信息;
索引信息提取单元,用于接收来自设备外部的报文并提取报文的五元组信

转发判别单元,用于根据索引信息提取单元所提取的报文的五元组信息判 别转发信息存储单元中是否存在对应的会话转发信息,如果存在,则确定接收 到的报文不是会话的首个报文,并将报文发送给会话转发信息t业务处理单元
标识所对应的业务处理单元;如果不存在,则确定接收到的^J:是会话的首个
报文,并触发选择单元选择一个业务处理单元;
选择单元,用于根据事先设置的选择策略从所有业务处理单元中选择一个, 并将接收到的报文通过连接单元发送给选择出的业务处理单元。 上述方案中,
所述业务控制单元进一步用于,根据首个报文生成会话控制信息,并将生
成的会话控制信息发送给业务处理单元;
所述业务处理单元进行的业务处理为根据会话控制信息对接收到的报文 进行业务处理。
上述方案中,所述业务处理单元包括
报文存储单元,用于保存来自接口处理单元的未经过业务处理的报文; 首包判别单元,用于判断接收到的报文是否为会话的首个报文,如果为首
个报文,则发送给业务控制单元,如果不是首个报文,则发送给业务处理执行
单元;
信息存储单元,用于保存由业务控制单元返回的会话控制信息和会话转发 信息,并在确定自身所在业务处理单元需要进行隧道处理时将获得的会话转发 信息发送给所有的接口处理单元;
业务处理执行单元,用于根据会话控制信息对接收到的报文进行业务处理; 第一判别单元,用于根据业务处理执行单元对报文进行业务处理所获得的
出接口查询接口属性表存储单元,确定与出接口对应的业务处理单元ID号,根 据获得的业务处理单元ID号判别自身所属业务处理单元是否需要进行隧道处 理,如果需要,则将经过业务处理的^f艮文传输给隧道处理单元;否则,将保存 在报文存储单元中的未进行业务处理的报文发送给需要对报文进行隧道处理的 业务处理单元;
接口属性表存储单元,用于保存出接口和业务处理单元ID号的对应关系; 隧道处理单元,用于对报文进行隧道处理,并通过连接单元和接口处理单 元发送出去。
上述方案中,所述业务处理单元包括
报文存储单元,用于保存从接口处理单元接收到的报文;
首包判别单元,用于判断接收到的报文是否为会话的首个报文,如果为首 个报文,则发送给业务控制单元,如果不是首个报文,则发送给业务处理执行
单元;
信息存储单元,用于保存由业务控制单元返回的会话控制信息和会话转发 信息,并在确定自身所在业务处理单元需要进行隧道处理时将获得的会话转发 信息发送给所有的接口处理单元;
业务处理执行单元,用于根据会话控制信息对接收到的报文进行业务处理;
隧道处理单元,用于对报文进行隧道处理;
第二判別单元,用于根据隧道处理的结果判別自身所属业务处理单元是否 需要进行隧道处理,如果需要,则将经过隧道处理的报文通过连接单元和接口 处理单元发送出去;否则,将保存在报文存储单元中的报文发送给需要对报文 进行隧道处理的业务处理单元。
上述方案中,所述接口处理单元进一步用于接收来自设备外部的反向数 据流的报文,并通过连接单元发送给已确定的业务处理单元;
所述业务处理单元进一步用于对接收到的反向数据流的报文进行隧道处 理和业务处理,并通过连接单元和接口处理单元发送出去。
针对本发明第二个发明目的,提出的技术方案为
一种处理报文的方法,该方法包括
a、 接口处理单元判断接收到的报文是否为会话的首个报文,如果是首个报 文,则执行步骤b;否则,将报文发送给已确定的业务处理单元,并执行步骤c;
b、 接口处理单元根据事先设置的选择策略从所有业务处理单元中选择一个 业务处理单元,将接收到的报文发送给选择出的业务处理单元;
c、 业务处理单元对接收到的报文进行业务处理,判断自身是否需要对报文
进行隧道处理,如果是,则在对报文进行隧道处理后发送出去;否则,将接收
到的未进行业务处理的报文发送给需要对报文进行隧道处理的业务处理单元,
对报文进行业务处理和隧道处理后发送出去。
上述方案中,步骤c所述业务处理单元判断自身是否需要对报文进行隧道
处理的方法为
所述业务处理单元在报文进行业务处理的过程中获得出接口 ,根据出接口 查询事先保存的接口属性表,获得对应的业务处理单元ID号,所述接口属性表 包括出接口和对应的业务处理单元ID号;如果获得的业务处理单元ID号和自 身业务处理单元ID号相同,则所述业务处理单元判断出自身需要对报文进行隧 道处理;否则,不需要对报文进行隧道处理;或者,
所述业务处理单元对经过业务处理的报文进行隧道处理,并在隧道处理后 获得业务处理单元ID号,如果获得的业务处理单元ID号和自身业务处理单元 ID号相同,则所述业务处理单元判断出自身需要对报文进行隧道处理;否则, 不需要对报文进行隧道处理。
上述方案中,步骤c所述业务处理单元对接收到的报文进行业务处理的方 法为根据获得的会话控制信息对接收到的报文进行业务处理;
所述业务处理单元获得会话控制信息的方法为所述业务处理单元判断接 收到的报文是否为会话的首个报文,如果为首个报文,则发送给业务控制单元, 并接收由业务控制单元生成并返回的会话控制信息。
上述方案中,所述业务处理单元判断接收到的报文是否为会话的首个报文 的方法为
判断报文是否存在首包标志,如果存在,则为会话的首个报文; 或者,
根据报文中的五元组信息查询已有的会话控制信息中的会话表,如果不存 在对应的会话表项,则报文为会话的首个报文。
上述方案中,业务控制单元接收到来自业务处理单元发送的报文时,该方 法进一步包括
所述业务控制单元根据接收到的报文生成会话转发信息,并将生成的会话 转发信息返回给业务处理单元,所述会话转发信息包括业务处理单元标识;
步骤c所述业务处理单元在判断出自身需要对报文进行隧道处理时进一步 包括业务处理单元将获得的会话转发信息发送给所有的接口处理单元保存;
步骤a所述已确定的业务处理单元为接口处理单元保存的会话转发信息 中业务处理单元标识所对应的业务处理单元。
上述方案中,所述会话转发信息还包括与业务处理单元标识对应的报文五
接口处理单元接收来自设备外部的报文并提取报文的五元组信息,根据提 取的报文的五元组信息判别自身的会话转发信息是否保存有对应的业务处理单 元标识,如果没有,则确定接收到的报文是会话的首个报文;否则,确定接收 到的报文不是会话的首个报文。
上述方案中,步骤b所述选择策略为随机选择策略或轮流选择策略。
上述方案中,所述报文为正向数据流的报文。
上述方案中,当接口处理单元接收到反向数据流的报文时,该方法进一步 包括
接口处理单元将接收到的反向数据流的报文发送给已确定的业务处理单 元,已确定的业务处理单元对接收到的返向数据流的4艮文进行隧道处理和业务 处理,并将处理后的报文发送出去。
综上所述,本发明提出一种处理报文的设备和方法,由于业务处理单元 接收到报文后,如果需要其它业务处理单元对报文进行隧道处理,可以将接 收到的报文发送给需要对报文进行隧道处理的业务处理单元,以保证同一个 业务处理单元统一对报文进行处理,而不需要在对报文进行隧道处理的业务 处理单元中和其它业务处理单元中都保存会话状态,也不需要在对报文进行
了处理报文的复杂度,节约了系统带宽。


图1是现有技术中典型的网络设备内部基本结构示意图
图2是本发明处理报文的设备内部结构示意图3是本发明设备中接口处理单元的内部结构示意图4a是本发明设备中业务处理单元的内部结构实施例一的示意图; 图4b是本发明设备中业务处理单元的内部结构实施例二的示意图; 图5是本发明设备处理报文方法流程图; 图6是本发明设备处理报文方法实施例一的流程图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体 实施例对本发明作进 一 步地详细描述。
图2是本发明处理报文的设备结构示意图。如图2所示,该设备包括
多个接口处理单元201和多个业务处理单元202,任意一个接口处理单 元201通过连接单元203与任意一个业务处理单元202相连;其中,
接口处理单元201,用于接收来自设备外部的报文,如果是会话首个报文, 则从所有业务处理单元202中选择一个,通过连接单元203将报文发送给选择 出的业务处理单元202;如果不是会话首个报文,则将报文发送给已确定的业 务处理单元202;
业务处理单元202,用于对接收到的报文进行业务处理,如果自身需要对 报文进行隧道处理,则在对报文进行隧道处理后通过连接单元203和接口处理 单元201发送出去;如果自身无需对报文进行隧道处理,则将接收到的未进行 业务处理的报文通过连接单元203发送给需要对报文进行隧道处理的业务处理 单元202。
这里,由于任意一个接口处理单元201可以通过连接单元203与任意一 个业务处理单元202相连,当某个接口处理单元201接收到会话的首个报文 时,可以从所有的业务处理单元202中选择一个,即接口处理单元201和 业务处理单元202不再一一对应地绑定在一起。至于4妄口处理单元201如何 选择一个业务处理单元202则可以根据事先设置的选择策略来实现,所述选 择策略可以为随机选择策略、轮流选择策略等。
本发明提出的业务处理单元202在接收到来自接口处理单元201发送的
首个报文时,并不仅仅进行普通的业务处理,还在自身需要对报文进行隧道
处理时,对报文进行隧道处理后通过连接单元203和4妄口处理单元201发送 出去,在需要其它业务处理单元对报文进行隧道处理时,将接收到的未经过 业务处理的报文发送给需要对报文进行隧道处理的业务处理单元202。这里, 接收到报文的业务处理单元202自身是否需要对报文进行隧道处理,以及应 该由哪个业务处理单元202对该报文进行隧道处理等可以在业务处理过程 或隧道处理后确定,其情况在下面描述业务处理单元202的内部结构时进行 详细介绍。
也就是说,业务处理单元202接收到首个报文时存在两种情况
第一种情况是接收到首个报文的业务处理单元202自身需要对该报文 进行隧道处理,即选择出的业务处理单元与需要对报文进行隧道处理的业务 处理单元是同一个单元。在这种情况下,直"l妄由选择出的业务处理单元202 对报文进行业务处理以及隧道处理即可。
第二种情况是接收到首个报文的业务处理单元202自身无需对该报文 进行隧道处理,而需要由其它业务处理单元202对该寺艮文进行隧道处理,即 选择出的业务处理单元与需要对报文进行隧道处理的业务处理单元不是同 一个单元。在这种情况下,需要由选择出的业务处理单元202进行重定向, 即将首个报文发送给需要对该报文进行隧道处理的业务处理单元202,由 该单元对首个报文进行业务处理以及隧道处理。
不管是哪种情况,当对会话的首个报文进行处理后,也就确定了处理后 续报文的业务处理单元,即会话的后续报文都将直接发送给需要对报文进行 隧道处理的业务处理单元。
实际应用中,实现报文处理的设备中还可以进一步包括与业务处理单 元202相连的业务控制单元204。在这种情况下,业务处理单元202还进一 步用于在接收到报文时判断是否为会话的首个报文,如果为首个报文,则发 送给业务控制单元204,并在确定自身需要对报文进行隧道处理时将获得的 会话转发信息发送给所有的接口处理单元201。业务控制单元204则用于根
据会话的首个报文生成会话转发信息,将生成的会话转发信息发送给业务处
理单元202,所述会话转发信息包括业务处理单元标识。此时,所述已确定 的业务处理单元为接口处理单元201保存的会话转发信息中业务处理单元 标识所对应的业务处理单元。
当然,这里所述的业务控制单元204可以有一个或一个以上,与业务处 理单元202相连的方式也有很多。比如所有的业务处理单元202通过另一 连接单元与同一个业务控制单元相连;或者,每一个业务处理单元202直接 与自身对应的一个业务控制单元相连;或者,任意一个业务处理单元202通 过连接单元与任意一个业务控制单元相连等等。
但不管设备中包括多少业务控制单元204,业务控制单元204与业务处 理单元202的连接关系如何,本发明所述的4妄口处理单元201的内部结构示 意图可以如图3所示,包括
转发信息存储单元2011,用于保存会话转发信息。
索引信息提取单元2012,用于接收来自设备外部的报文并提取报文的五元 组信息。
转发判别单元2013,用于根据索引信息提取单元2012所提取的报文的五 元组信息判别转发信息存储单元2011中是否存在对应的会话转发信息,如果存 在,则确定接收到的报文不是会话的首个报文,并将报文发送给会话转发信息 中业务处理单元标识所对应的业务处理单元202;如果不存在,则确定接收到 的报文是会话的首个报文,并触发选择单元2014选择一个业务处理单元。
选择单元2014,用于根据事先设置的选择策略从所有业务处理单元202中 选择一个,并将接收到的报文通过连接单元203发送给选择出的业务处理单元 202。所述选择策略可以为随机选择策略、轮流选择策略等。
上述是接口处理单元201的内部结构。实际应用中,当接口处理单元201 接收到首个报文并发送给通过选择策略选择出的业务处理单元202后,该业务 处理单元202还需要将首个报文发送给业务控制单元204,业务控制单元204 还可以根据报文生成会话控制信息,并将生成的会话控制信息发送给业务处理
单元202。此后,业务处理单元202就是根据获得的会话控制信息对报文进行 业务处理的。
不管设备中包括多少业务控制单元,业务控制单元与业务处理单元202 的连接关系如何,本发明所述的业务处理单元202的内部结构示意图可以如 图4a所示,包括
报文存储单元2021a,用于保存来自接口处理单元201的未经过业务处理 的报文。
首包判别单元2022a,用于判断接收到的报文是否为会话的首个报文,如 果为首个报文,则发送给业务控制单元204;如果不是首个报文,则发送给业 务处理执行单元2023a。这里,判断接收到的报文是否为会话的首个报文的方 法可以根据不同的报文而不同。比如接收到的报文为TCP等报文时,其方法可 以为判断报文是否存在首包标志,如果存在,则为会话的首个报文。又比如 接收到的报文为UDP等报文时,其方法可以为根据报文中的五元组信息查询 已有的会话表,如果不存在对应的会话表项,则报文为会话的首个报文。
信息存储单元2023a,用于保存由业务控制单元204返回的会话控制信息 和会话转发信息,并在确定自身所在业务处理单元需要进行隧道处理时将获得 的会话转发信息发送给所有的接口处理单元202。
业务处理执行单元2024a,用于根据会话控制信息对接收到的报文进行业 务处理。
第一判别单元2025a,用于根据业务处理执行单元2024a对报文进行业务处 理所获得的出接口查询接口属性表存储单元2027a,确定与出接口对应的业务 处理单元ID号,根据获得的业务处理单元ID号判别自身所属业务处理单元是 否需要进行隧道处理,如果需要,则将经过业务处理的报文传输给隧道处理单 元2026a;否则,将保存在报文存储单元2021a中的未进行业务处理的报文发 送给需要对报文进行隧道处理的业务处理单元。
显然,如果出接口对应的业务处理单元ID号与第一判别单元2025a自身所 属业务处理单元的ID号相同,则第一判别单元2025a可以确定自身所属业务处
17
理单元需要对报文进行隧道处理;否则,就可以确定自身所属业务处理单元无 需对报文进行隧道处理,而需要由该业务处理单元ID对应的业务处理单元进行处理。
隧道处理单元2026a,用于对报文进行隧道处理,并通过连接单元203和 接口处理单元201发送出去。
接口属性表存储单元2027a,用于保存出接口和业务处理单元ID号的对应 关系。
也就是说,当业务处理单元202接收到报文时,先将接收到的未经过业务 处理的报文保存在报文存储单元2021a中。首包判别单元2022a判别接收到的 报文是否为会话的首个报文,如果为首个报文,则发送给业务控制单元204; 如果不是首个报文,则发送给业务处理执行单元2024a。这里,不管是否为首 个报文,在对报文进行业务处理时,都可以从信息存储单元2023a中获得会话 控制信息。业务处理执行单元2024a根据会话控制信息对接收到的报文进行业 务处理,在业务处理的过程中通过查询转发表获得出接口。第一判别单元2025a 根据获得的出接口查询接口属性表存储单元2027a,确定与出接口对应的业务 处理单元ID号,并判别自身所属业务处理单元是否需要进行隧道处理,如果需 要,则将经过业务处理的报文传输给隧道处理单元2026a,由隧道处理单元 2026a进行隧道处理;否则,将保存在报文存储单元2021a中的未进行业务处 理的报文发送给需要对报文进行隧道处理的业务处理单元。当然,如果某个业 务处理单元202自身无需对报文进行隧道处理,而需要其它的业务处理单元202 对报文进行隧道处理,则还可以进一步将信息存储单元2023a中保存的会话控 制信息和会话转发信息删除。
实际应用中,本发明所述的业务处理单元202的内部结构示意图还可以 如图4b所示,包括
报文存储单元2021b,用于保存来自接口处理单元201的才艮文; 首包判别单元2022b,用于判断接收到的报文是否为会话的首个报文,如 果为首个报文,则发送给业务控制单元204,如果不是首个报文,则发送给业
务处理执行单元2024b;这里,判断报文是否为会话的首个报文的方法可以与 图4a中的首包判别单元2022a相同,此处不再赘述。
信息存储单元2023b,用于保存由业务控制单元204返回的会话控制信息 和会话转发信息,并在确定自身所在业务处理单元需要进行隧道处理时将获得 的会话转发信息发送给所有的接口处理单元202;
业务处理执行单元2024b,用于根据会话控制信息对接收到的报文进行业 务处理;
第二判别单元2025b,用于根据隧道处理的结果判别自身所属业务处理单 元是否需要进行隧道处理,如果需要,则将经过隧道处理的报文通过连接单元 203和接口处理单元201发送出去;否则,将保存在报文存储单元2021b中的 报文发送给需要对报文进行隧道处理的业务处理单元。
隧道处理单元2026b,用于对报文进行隧道处理。
实际应用中,在隧道处理单元2026b对报文进行隧道处理后,可以确定 对报文进行隧道处理的业务处理单元ID号。至于如何在隧道处理后确定业 务处理单元ID号属于现有技术,此处不再赘述。
也就是说,当业务处理单元202接收到报文时,先将接收到的未经过业 务处理的报文保存在报文存储单元2021b中。首包判别单元2022b判别接收 到的报文是否为会话的首个报文,如果为首个报文,则发送给业务控制单元 204;如果不是首个报文,则发送给业务处理执行单元2024b。如果是首个 报文,业务控制单元204将返回会话控制信息和会话转发信息,并保存在业 务处理单元202的信息存储单元2023b中;如果不是首个报文,则可以确定 业务控制单元204之前已经返回会话控制信息和会话转发信息,并保存在业 务处理单元202的信息存储单元2023b中。总之,不管是否为首个报文,当 对报文进行业务处理时,业务处理执行单元2024b都可以从信息存储单元 2023b中获得会话控制信息,根据会话控制信息对报文进行业务处理。之后, 再由隧道处理单元2026b对经过业务处理的才艮文进行隧道处理。第二判别单 元2025b根据隧道处理后获得的业务处理单元ID号就可以判别自身所属业
务处理单元是否需要进行隧道处理,如果需要,则将已经经过隧道处理的报
文通过连接单元203和接口处理单元201发送出去;否则,将保存在报文存 储单元2021b中的未进行业务处理和隧道处理的报文发送给需要对报文进 行隧道处理的业务处理单元,即发送给隧道处理后获得的业务处理单元ID 号所对应的业务处理单元。与图4a中的业务处理单元相同,这里,如果某 个业务处理单元202自身无需对报文进行隧道处理,而需要其它的业务处理 单元202对报文进行隧道处理,也可以进一步将信息存储单元2023b中保存 的会话控制信息和会话转发信息删除。
这里,图4b与图4a的区别主要在于,第一判别单元2025a是根据业务 处理过程中获得的出接口确定对应的业务处理单元ID号的,而第二判别单 元2025b是在对报文进行隧道处理后确定对应的业务处理单元ID号。如果 采用图4a的结构,需要事先将出接口和业务处理单元ID的对应关系记录在 接口属性表中。对报文进行业务处理后,直接根据获得的出接口查询接口属 性表就可以确定需要进行隧道处理。如果采用图4b的结构,无论业务处理 单元自身是否需要对报文进行隧道处理,都可以先进行隧道处理,并在隧道 处理结束后获得业务处理单元ID。此时,如果根据获得的业务处理单元ID 号判断出自身需要对报文进行隧道,则直接将已经进行隧道处理的报文发送 出去即可;如果判断出自身无需对报文进行隧道处理,则发送给相应的业务 处理单元。
上述是对接口处理单元201接收到的正向数据流的报文情况。实际应用 中,由于会话通常是双向的,接口处理单元201还可能接收到反向数据流的 报文。在这种情况下,所述接口处理单元201还可以进一步用于接收来自 设备外部的反向数据流的报文,并通过连接单元203发送给已确定的业务处 理单元。所述业务处理单元还可以进一步用于对接收到的反向数据流的报 文进行隧道处理和业务处理,并通过连接单元203和接口处理单元201发送 出去。
本发明所述的网络设备可以为防火墙等L4 L7网络设备,所述连接单
元可以为设备中的交换网板,所述业务处理单元为设备中业务板中的业务处 理单元,所述接口处理单元为设备中业务板或主控板中的接口处理单元。
针对上述处理报文的设备,本发明还提出一种处理报文的方法。图5是本 发明处理报文方法的流程图。如图5所示,该方法包括
步骤501 步骤502:接口处理单元判断接收到的报文是否为会话的首个报 文,如果是首个报文,则执行步骤503;否则,将报文发送给已确定的业务处 理单元,并执行步骤504。
本步骤中,接口处理单元接收到的报文分为两种情况
一种情况为报文是会话的首个报文;另一种情况为报文不是会话的首 个报文。对于会话的首个报文,接口处理单元中应该是首次接收到该会话的报 文,还不明确应该由哪个业务处理单元进行处理,需要才艮据步骤503从所有的 业务处理单元中选择一个;对于不是首个报文的情况,显然接口处理单元之前 已经接收过同一个会话中的其它报文,应该由同一个业务处理单元进行处理, 即应该由已确定的业务处理单元进4亍处理。
步骤503:接口处理单元根据设置的选择策略从所有业务处理单元中选择 一个业务处理单元,将接收到的报文发送给选择出的业务处理单元。
这里所述选择策略可以由应用本发明方案的用户自行确定,比如随机选择 策略、轮流选择策略等。所谓随机选择策略就是指接口处理单元随机从所有的 业务处理单元中选择一个,而轮流选择策略则指按照某种事先M^定的顺序从业 务处理单元中选择一个。比如当前处理某个会话的单元为业务处理单元4, 如果接口处理单元又接收到另一个会话的首个报文,则可以将其发送给业务处 理单元5进行处理。
步骤504:业务处理单元对接收到的报文进行业务处理。
实际应用中,业务处理单元可以根据获得的会话控制信息对接收到的报文 进行业务处理,获得会话控制信息的方法可以为
当业务处理单元接收到报文时,判断接收到的报文是否为会话的首个报文, 如果为首个报文,则发送给业务控制单元,并接收由业务控制单元生成并返回
的会话控制信息。
这里,业务处理单元判断接收到的报文是否为会话的首个报文的方法可以 根据不同的报文而不同。比如业务处理单元判断报文是否存在首包标志,如 果存在,则为会话的首个报文。这种方法适合于首个报文携带首包标志的情况,
比如TCP报文等。又比如业务处理单元根据才艮文中的五元组信息查询已有的 会话表,如果不存在对应的会话表项,则报文为会话的首个报文。这种方法适 合于首个报文没有携带首包标志的情况,比如UDP报文等。
另外,实际应用中,当业务控制单元接收到来自业务处理单元发送的报文 时,还可以根据接收到的报文生成会话转发信息,并将生成的会话转发信息返 回给业务处理单元,所述会话转发信息包括报文五元组信息和对应的业务处理 单元标识。
步骤505 ~步骤507:业务处理单元判断自身是否需要对报文进行隧道处 理,如果是,则在对报文进行隧道处理后发送出去;否则,将接收到的未进行 业务处理的报文发送给需要对报文进行隧道处理的业务处理单元,对报文进行 业务处理和隧道处理后发送出去。
接收到报文的业务处理单元可能是由步骤503选择出的准备处理首个报文 的业务处理单元,也可能是在步骤501中就已经明确的准备处理不是首个报文 的业务处理单元。但不管哪种报文,都应该由业务处理单元在步骤504-步骤 507对接收到的报文进行统一处理。
这里,业务处理单元判断自身是否需要对报文进行隧道处理可以有两种方

第一种方法是根据在对报文进行业务处理过程中获得的出接口,根据出 接口查询事先保存的接口属性表,获得对应的业务处理单元ID号,所述接口属 性表包括出接口和对应的业务处理单元ID号;如果获得的业务处理单元ID与 自身业务处理单元ID号相同,则确定自身需要对报文进行隧道处理;否则,无 需对报文进行隧道处理。
第二种方法是对经过业务处理的报文进行隧道处理,在隧道处理后获
得业务处理单元ID号,如果获得的业务处理单元ID与自身ID号相同,则 确定自身需要对报文进行隧道处理;否则,无需对报文进行隧道处理。
当然,由于第一种方法是在经过业务处理后进行判断的,如果判断出需 要自身对报文进行隧道处理,则还需要进一步对报文进行隧道处理,之后再 将经过隧道处理的报文发送出去。而第二种方法是在隧道处理后进行判断 的,如果判断出自身需要对报文进行隧道处理,则直接将已经经过隧道处理 的报文发送出去即可。
本发明中,由于接口处理单元和业务处理单元是分离的,并没有绑定在 一起。为了在处理首个报文后,业务处理单元还可以对该报文的后续报文继 续进行处理,在判断出业务处理单元自身需要对报文进行隧道处理时,还可 以获得的会话转发信息发送给所有的接口处理单元。此后,不论哪个接口处 理单元接收到同一会话的其它后续报文,就可以根据保存的会话转发信息将 报文发送给已确定的业务处理单元,即会话转发信息中业务处理单元标识所 对应的业务处理单元。这里,所述会话转发信息可以由会话控制单元在将会 话控制信息返回给业务处理单元时一并下发。由于一个会话的数据流可以通 过其报文五元组信息来唯一标识,所以,会话转发信息可以包括报文五元组 信息和对应的业务处理单元标识。当接口处理单元接收报文时,按照报文的 五元组信息就可以将接收到的报文分配到相应的业务处理单元中。
需要注意的是,与现有技术中接口单元将接收到的报文直接发送给自身固 定连接的业务处理单元不同,本发明的接口处理单元是按照会话转发信息来分 配接收到的报文,而会话转发信息中业务处理单元标志所对应的业务处理单元 是在接收到首个报文时,明确自身需要对报文进行隧道处理的业务处理单元。 也就是说,会话的首个报文以及后续才艮文必定由需要对报文进行隧道处理的业 务处理单元来实现处理,而无需由不同的业务处理单元来处理同一个会话。所 以,其它处理单元不必保存会话状态,需要对报文进行隧道处理的业务处理单 元也不必再与其它业务处理单元执行同步过程,大大降低了设备处理报文的复 杂度,节约了系统带宽。
为了更好地说明本发明方案,下面用 一 个实施例进行详细描述。
本实施例中,假设处理报文的设备为防火墙网络设备,为L4 L7网络设备, 会话数据流的报文为TCP报文,首个报文携带有首包标志。另外,假设本实施 例的业务处理单元在隧道处理后判断自身是否需要对报文进行隧道处理。图6 是本实施例的流程图。如图6所示,本实施例可以包括
步骤601:接口处理单元接收来自设备外部的报文。
步骤602:接口处理单元提取报文的五元组信息。
步骤603:接口处理单元根据提取的报文的五元组信息判別自身是否保 存有对应的会话转发信息,如果没有,则确定接收到的报文是会话的首个报 文,并执行步骤604;否则,确定接收到的报文不是会话的首个报文,并执 行步骤605。
步骤604:接口处理单元根据事先设置的选择策略从所有业务处理单元 中选择一个业务处理单元,将接收到的报文发送给选择出的业务处理单元, 再执行步骤606。
所述选择策略可以为随机选择策略、轮流选择策略等。
步骤605:接口处理单元将接收到的报文发送给会话转发信息中业务处 理单元标识所对应的业务处理单元。
步骤606:业务处理单元根据报文的首包标志判断接收到的报文是否为 会话的首个报文,如果为首个报文,则执行步骤607;否则,执行步骤608。
步骤607:业务处理单元将报文发送给业务控制单元,并接收由业务控 制单元生成并返回的会话控制信息和会话转发信息。
步骤608:业务处理单元根据获得的会话控制信息对报文进行业务处理 和隧道处理。
步骤609~步骤611:业务处理单元根据隧道处理后获得的业务处理单 元ID号判断自身是否需要对报文进行隧道处理,如果是,则直接将报文发 送出去;否则,将接收到的未进行业务处理的报文发送给获得的业务处理单 元ID对应的业务处理单元,由获得的业务处理单元ID对应的业务处理单元
对报文进行业务处理和隧道处理后发送出去。
这里,业务处理单元是根据隧道处理后获得的业务处理单元ID号判断
自身是否需要对报文进行隧道处理。实际应用中,业务处理单元也可以根据 业务处理过程中获得的出接口查询接口属性表判断自身是否需要对报文进
行隧道处理,其具体情况可以参见上述对于业务处理单元202的描述,此处 不再赘述。
如果业务处理单元判断出自身需要对报文进行隧道处理,还可以将获得 会话转发信息下发给所有的接口处理单元,以便于接口处理单元在接收到后 续报文时按照会话转发信息直接将报文发送给业务处理单元。
如果业务处理单元判断出自身不需要对报文进行隧道处理,而需要其它 业务处理对报文进行隧道处理,就将未进行业务处理的报文发送给需要对报 文进行隧道处理的业务处理单元,即经过隧道处理所获得的业务处理单元ID 所对应的业务处理单元。所述需要对报文进行隧道处理的业务处理单元接收 到报文后,需要对报文进行业务处理以及隧道处理。为了所有业务处理单元 对报文进行统一处理,需要对报文进行隧道处理的业务处理单元的处理过程 实际上可以和步骤606-步骤611相同,并且将自身获得的会话转发信息下 发给所有的接口处理单元。
上述是对接收到正向数据流报文的情况,如果接收到反向数据流的报 文,由于所有接口处理单元都保存有该会话的会话转发信息,接口处理单元 可以直接根据会话转发信息将报文发送给需要对报文进行隧道处理的业务 处理单元,由该业务处理单元对报文进行隧道处理和业务处理,并将处理后 的报文发送出去。
应用本实施例方案,由于当业务处理单元接收到报文后,在自身无需对 报文进行隧道处理,而需要其它业务处理单元进行隧道处理的情况下,可以 将接收到的报文发送给需要对报文进行隧道处理的业务处理单元,以保证统 一对报文进行处理,而不需要在对报文进行隧道处理的业务处理单元中和其 它业务处理单元中都保存会话状态,也不需要在对报文进行隧道处理的业务
处理单元和其它业务处理单元之间进行同步过程,大大降低了处理报文的复 杂度,节约了系统带宽。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的 保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改 进等,均应包含在本发明的保护范围之内。
权利要求
1、一种处理报文的设备,其特征在于,该设备包括多个接口处理单元和多个业务处理单元,任意一个接口处理单元通过连接单元与任意一个业务处理单元相连;其中,接口处理单元,用于接收来自设备外部的报文,如果是会话首个报文,则从所有业务处理单元中选择一个业务处理单元,通过连接单元将报文发送给选择出的业务处理单元;如果不是会话首个报文,则将报文发送给已确定的业务处理单元;业务处理单元,用于对接收到的报文进行业务处理,如果自身需要对报文进行隧道处理,则在对报文进行隧道处理后通过连接单元和接口处理单元发送出去;如果需要其它业务处理单元对报文进行隧道处理,则将接收到的未进行业务处理的报文发送给需要对报文进行隧道处理的业务处理单元。
2、 根据权利要求1所述的设备,其特征在于,该设备进一步包括与业务 处理单元相连的业务控制单元;所述业务处理单元进一步用于,在接收到报文时判断是否为会话的首个报 文,如果为首个报文,则发送给业务控制单元,并在确定自身需要对报文进行 隧道处理时将获得的会话转发信息发送给所有的接口处理单元;所述业务控制单元,用于根据会话的首个报文生成会话转发信息,将生成 的会话转发信息发送给业务处理单元,所述会话转发信息包括业务处理单元标 识;所述已确定的业务处理单元为会话转发信息中业务处理单元标识所对应 的业务处理单元。
3、 根据权利要求2所述的设备,其特征在于,所述会话转发信息还包括报 文五元组信息;所述接口处理单元包括转发信息存储单元,用于保存会话转发信息;索引信息提取单元,用于接收来自设备外部的报文并提取报文的五元组信 台.转发判别单元,用于根据索引信息提取单元所提取的报文的五元组信息判 别转发信息存储单元中是否存在对应的会话转发信息,如果存在,则确定接收 到的报文不是会话的首个报文,并将报文发送给会话转发信息t业务处理单元标识所对应的业务处理单元;如果不存在,则确定接收到的报文是会话的首个 报文,并触发选择单元选择一个业务处理单元;选择单元,用于根据事先设置的选择策略从所有业务处理单元中选择一个, 并将接收到的报文通过连接单元发送给选择出的业务处理单元。
4、 根据权利要求2所述的设备,其特征在于,所述业务控制单元进一步用于,根据首个报文生成会话控制信息,并将生 成的会话控制信息发送给业务处理单元;所述业务处理单元进行的业务处理为根据会话控制信息对接收到的报文 进行业务处理。
5、 根据权利要求4所述的设备,其特征在于,所述业务处理单元包括 报文存储单元,用于保存来自接口处理单元的未经过业务处理的报文; 首包判别单元,用于判断接收到的报文是否为会话的首个报文,如果为首个报文,则发送给业务控制单元,如果不是首个报文,则发送给业务处理执行 单元;信息存储单元,用于保存由业务控制单元返回的会话控制信息和会话转发 信息,并在确定自身所在业务处理单元需要进行隧道处理时将获得的会话转发 信息发送给所有的接口处理单元;业务处理执行单元,用于才艮据会话控制信息对接收到的报文进行业务处理; 第一判别单元,用于根据业务处理执行单元对报文进行业务处理所获得的出接口查询接口属性表存储单元,确定与出接口对应的业务处理单元ID号,根 据获得的业务处理单元ID号判别自身所属业务处理单元是否需要进行隧道处 理,如果需要,则将经过业务处理的报文传输给隧道处理单元;否则,将保存 在报文存储单元中的未进行业务处理的报文发送给需要对报文进行隧道处理的 业务处理单元;接口属性表存储单元,用于保存出接口和业务处理单元ID号的对应关系; 隧道处理单元,用于对报文进行隧道处理,并通过连接单元和接口处理单 元发送出去。
6、 根据权利要求4所述的设备,其特征在于,所述业务处理单元包括 报文存储单元,用于保存从接口处理单元接收到的报文; 首包判别单元,用于判断接收到的报文是否为会话的首个报文,如果为首个报文,则发送给业务控制单元,如果不是首个报文,则发送给业务处理执行 单元;信息存储单元,用于保存由业务控制单元返回的会话控制信息和会话转发 信息,并在确定自身所在业务处理单元需要进行隧道处理时将获得的会话转发 信息发送给所有的接口处理单元;业务处理执行单元,用于根据会话控制信息对接收到的报文进行业务处理;隧道处理单元,用于对报文进行隧道处理;第二判别单元,用于根据隧道处理的结果判别自身所属业务处理单元是否 需要进行隧道处理,如果需要,则将经过隧道处理的报文通过连接单元和接口 处理单元发送出去;否则,将保存在报文存储单元中的报文发送给需要对报文 进行隧道处理的业务处理单元。
7、 根据权利要求1至6任一项所述的设备,其特征在于,所述接口处理单 元进一步用于接收来自设备外部的反向数据流的报文,并通过连接单元发送 给已确定的业务处理单元;所述业务处理单元进一步用于对接收到的反向数据流的报文进行隧道处 理和业务处理,并通过连接单元和接口处理单元发送出去。
8、 一种处理^t艮文的方法,其特征在于,该方法包括a、 接口处理单元判断接收到的报文是否为会话的首个报文,如果是首个报 文,则执行步骤b;否则,将报文发送给已确定的业务处理单元,并执行步骤c;b、 接口处理单元根据事先设置的选择策略从所有业务处理单元中选择一个 业务处理单元,将接收到的报文发送给选择出的业务处理单元;c、业务处理单元对接收到的报文进行业务处理,判断自身是否需要对报文 进行隧道处理,如果是,则在对报文进行隧道处理后发送出去;否则,将接收对报文进行业务处理和隧道处理后发送出去。
9、 根据权利要求8所述的方法,其特征在于,步骤c所述业务处理单元判 断自身是否需要对报文进行隧道处理的方法为所述业务处理单元在报文进行业务处理的过程中获得出接口 ,根据出接口 查询事先保存的接口属性表,获得对应的业务处理单元id号,所述接口属性表 包括出接口和对应的业务处理单元id号;如果获得的业务处理单元id号和自 身业务处理单元id号相同,则所述业务处理单元判断出自身需要对报文进行隧 道处理;否则,不需要对报文进行隧道处理;或者,所述业务处理单元对经过业务处理的报文进行隧道处理,并在隧道处理后 获得业务处理单元id号,如果获得的业务处理单元id号和自身业务处理单元 id号相同,则所述业务处理单元判断出自身需要对报文进行隧道处理;否则, 不需要对报文进行隧道处理。
10、 根据权利要求8所述的方法,其特征在于,步骤c所述业务处理单元 对接收到的报文进行业务处理的方法为根据获得的会话控制信息对接收到的 报文进行业务处理;所述业务处理单元获得会话控制信息的方法为所述业务处理单元判断接 收到的报文是否为会话的首个报文,如果为首个报文,则发送给业务控制单元, 并接收由业务控制单元生成并返回的会话控制信息。
11、 根据权利要求IO所述的方法,其特征在于,所述业务处理单元判断接 收到的报文是否为会话的首个报文的方法为判断报文是否存在首包标志,如果存在,则为会话的首个报文;或者,根据报文中的五元组信息查询已有的会话控制信息中的会话表,如果不存 在对应的会话表项,则报文为会话的首个报文。
12、 根据权利要求IO所述的方法,其特征在于,业务控制单元接收到来自 业务处理单元发送的报文时,该方法进一步包括所述业务控制单元根据接收到的报文生成会话转发信息,并将生成的会话 转发信息返回给业务处理单元,所述会话转发信息包括业务处理单元标识;步骤c所述业务处理单元在判断出自身需要对报文进行隧道处理时进一步 包括业务处理单元将获得的会话转发信息发送给所有的接口处理单元保存;步骤a所述已确定的业务处理单元为接口处理单元保存的会话转发信息 中业务处理单元标识所对应的业务处理单元。
13、 根据权利要求12所述的方法,其特征在于,所述会话转发信息还包括 与业务处理单元标识对应的报文五元组信息,步骤a所述接口处理单元判断报 文是否为会话首个报文的方法为接口处理单元接收来自设备外部的报文并提取报文的五元组信息,根据提 取的报文的五元组信息判别自身的会话转发信息是否保存有对应的业务处理单 元标识,如果没有,则确定接收到的报文是会话的首个报文;否则,确定接收 到的报文不是会话的首个报文。
14、 根据权利要求8所述的方法,其特征在于,步骤b所述选择策略为 随机选择策略或轮流选择策略。
15、 根据权利要求7至14任一项所述的方法,其特征在于,所述报文为正 向数据流的报文。
16、 根据权利要求7至14任一项所述的方法,其特征在于,当接口处理单 元接收到反向数据流的报文时,该方法进一步包括接口处理单元将接收到的反向数据流的报文发送给已确定的业务处理单 元,已确定的业务处理单元对接收到的反向数据流的报文进行隧道处理和业务 处理,并将处理后的报文发送出去。
全文摘要
本发明提供一种处理报文的设备和方法,接口处理单元从业务处理单元中选择一个作为处理报文的业务处理单元;如果该业务处理单元需要对报文进行隧道处理,则在对报文进行隧道处理后发送出去;如果需要其它业务处理单元进行隧道处理,则将报文发送给需要对报文进行隧道处理的业务处理单元,应用本发明方案,由于可以由业务处理单元统一对报文进行处理,不需要在对报文进行隧道处理的业务处理单元中和其它业务处理单元中都保存会话状态,也不需要在对报文进行隧道处理的业务处理单元和其它业务处理单元之间进行同步过程,从而大大降低了处理报文的复杂度,节约了系统带宽。
文档编号H04L12/46GK101110772SQ200710120218
公开日2008年1月23日 申请日期2007年8月13日 优先权日2007年8月13日
发明者常向青, 晓 李, 邹旭东 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1