CN102857426B - 一种网络设备及其转发数据流的方法 - Google Patents

一种网络设备及其转发数据流的方法 Download PDF

Info

Publication number
CN102857426B
CN102857426B CN201210306832.7A CN201210306832A CN102857426B CN 102857426 B CN102857426 B CN 102857426B CN 201210306832 A CN201210306832 A CN 201210306832A CN 102857426 B CN102857426 B CN 102857426B
Authority
CN
China
Prior art keywords
data packet
logic function
module
processing
information
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
CN201210306832.7A
Other languages
English (en)
Other versions
CN102857426A (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.)
BEIJING NETENTSEC Inc
Original Assignee
BEIJING NETENTSEC Inc
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 BEIJING NETENTSEC Inc filed Critical BEIJING NETENTSEC Inc
Priority to CN201210306832.7A priority Critical patent/CN102857426B/zh
Publication of CN102857426A publication Critical patent/CN102857426A/zh
Application granted granted Critical
Publication of CN102857426B publication Critical patent/CN102857426B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种网络设备转发数据流的方法,所述方法包括:根据已记录的逻辑功能信息,判断是否需要对当前数据流的当前数据包进行逻辑功能处理;如果不需要,则根据已记录的当前数据流的逻辑功能信息,将所述数据包直接发送出去;如果需要,则对所述数据包进行逻辑功能处理后发送出去。相应的,本发明还公开了一种能够实现上述转发方法的网络设备,提高了网络设备的转发性能和吞吐量,同时不再受具体逻辑功能复杂度的影响。

Description

一种网络设备及其转发数据流的方法
技术领域
本发明涉及互联网技术,尤其涉及一种网络设备及其转发数据流的方法。
背景技术
互联网日益丰富,承载的内容越来越复杂,针对网络流量进行分析管理的网络设备也逐渐普及。
目前,通过网络设备实现网络流量转发的过程包括:首先,通过网卡接收数据包,再经由系统协议族处理后传输到达逻辑功能模块,逻辑功能模块中对所述数据包进行逻辑功能处理(如路由处理、防火墙处理、或入侵检测等),会得到功能结论,根据所述功能结论判断可以继续发送,则再将所述数据包经由系统协议族的处理传送出去,从而完成数据包的转发。由此可以看出,复杂的协议族处理逻辑和复杂的逻辑功能都将会极大程度的影响网络设备的整体转发性能。
发明内容
有鉴于此,本发明的主要目的在于提供一种网络设备及其转发数据流的方法,能够简化网络设备转发数据流的处理流程,从而提升网络设备的转发性能。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种网络设备转发数据流的方法,所述方法包括:
根据已记录的逻辑功能信息,判断是否需要对当前数据流的当前数据包进行逻辑功能处理;
如果不需要,则根据已记录的当前数据流的逻辑功能信息,将所述数据包直接发送出去;
如果需要,则对所述数据包进行逻辑功能处理后发送出去。
在上述方案中,所述对所述数据包进行逻辑功能处理后发送出去,包括:
使用系统协议栈将所述数据包传送给逻辑功能模块;
逻辑功能模块对所述数据包进行逻辑功能处理,得到所述数据包的逻辑功能信息;
根据所述数据包的逻辑功能信息,使用系统协议栈将所述数据包传送出去。
在上述方案中,所述得到所述数据包的逻辑功能信息后,所述方法还包括:记录所述数据包的逻辑功能信息。
在上述方案中,所述方法还包括:预先定义转发策略;
所述根据已记录的逻辑功能信息,判断是否需要对当前数据流的当前数据包进行逻辑功能处理,包括:
查询与当前数据流对应的转发策略,根据当前数据流对应的转发策略、以及已记录的当前数据流的逻辑功能信息,判断是否对当前接收到的数据包进行逻辑功能处理。
在上述方案中,所述逻辑功能处理为:路由功能处理、深度包检测DPI处理、网络地址转换NAT处理、入侵检测、防火墙功能处理、或内容审计处理;
所述逻辑功能信息为:路由信息、DPI识别信息、NAT信息、入侵检测结果、防火墙功能处理结果、或内容审计结果。
本发明还提供了一种网络设备,所述网络设备包括:判断模块、发送模块、逻辑功能模块和协议栈处理模块;其中,
判断模块,用于根据已记录的逻辑功能信息,判断是否需要对当前数据流的当前数据包进行逻辑功能处理,不是则通知所述发送模块,是则通知所述协议栈处理模块;
发送模块,用于在接收到所述判断模块的通知时,根据已记录的当前数据流的逻辑功能信息,将所述数据包直接发送出去;
协议栈处理模块,用于在所述判断模块的通知时,将所述数据包传送给所述逻辑功能模块;
逻辑功能模块,用于对所述数据包进行逻辑功能处理后通过所述协议栈处理模块发送出去。
在上述方案中,所述逻辑功能模块,用于对所述数据包进行逻辑功能处理,得到所述数据包的逻辑功能信息;
所述协议栈处理模块,用于在所述判断模块的通知时,将所述数据包传送给所述逻辑功能模块;在所述逻辑功能模块对数据包进行逻辑功能处理后,根据所述数据包的逻辑功能信息,使用系统协议栈将所述数据包传送出去。
在上述方案中,所述网络设备还包括记录模块,用于记录当前数据流各数据包的逻辑功能信息;
所述逻辑功能模块,还用于在得到所述数据包的逻辑功能信息后,将所述数据包的逻辑功能信息发送给所述记录模块;
发送模块,用于在接收到所述判断模块的通知时,根据所述记录模块已记录的当前数据流的逻辑功能信息,将所述数据包直接发送出去。
在上述方案中,所述判断模块,用于预先定义转发策略;查询与当前数据流对应的转发策略,根据当前数据流对应的转发策略、以及已记录的当前数据流的逻辑功能信息,判断是否对当前接收到的数据包进行逻辑功能处理。
在上述方案中,所述逻辑功能模块进行的逻辑功能处理,为:路由功能处理、深度包检测DPI处理、网络地址转换NAT处理、入侵检测、防火墙功能处理、或内容审计处理;
所述逻辑功能信息为:路由信息、DPI识别信息、NAT信息、入侵检测结果、防火墙功能处理结果、或内容审计结果。
本发明的网络设备及其转发数据流的方法,根据已记录的逻辑功能信息判断是否需要进行逻辑功能处理,并在不需要进行逻辑功能处理时直接将当前的数据包发送出去,从而提高了网络设备的转发性能和吞吐量,同时其性能也不再受具体逻辑功能复杂度的影响。
附图说明
图1为本发明网络设备转发数据流的方法的流程示意图;
图2为本发明实施例一网络设备的组成结构示意图;
图3为本发明实施例一网络设备转发数据流的流程示意图;
图4为本发明实施例二网络设备转发数据流的流程示意图;
图5为本发明实施例三网络设备转发数据流的流程示意图;
图6为本发明实施例四网络设备转发数据流的流程示意图;
图7为本发明实施例五网络设备转发数据流的流程示意图。
具体实施方式
如图1所示,本发明一种网络设备转发数据流的方法可以包括:
步骤101:根据已记录的逻辑功能信息,判断是否需要对当前数据流的当前数据包进行逻辑功能处理,如果不需要,则继续步骤102;如果需要,则继续步骤103;
步骤102:根据已记录的当前数据流的逻辑功能信息,将所述数据包直接发送出去;
步骤103:对所述数据包进行逻辑功能处理后发送出去。
这里,所述对所述数据包进行逻辑功能处理后发送出去,可以包括:使用系统协议栈将所述数据包传送给逻辑功能模块;逻辑功能模块对所述数据包进行逻辑功能处理,得到所述数据包的逻辑功能信息;根据所述数据包的逻辑功能信息,使用系统协议栈将所述数据包传送出去。其中,所述得到所述数据包的逻辑功能信息后,所述方法还包括:记录所述数据包的逻辑功能信息。
这里,所述方法还包括:预先定义转发策略;所述根据已记录的逻辑功能信息,判断是否需要对当前数据流的当前数据包进行逻辑功能处理,包括:查询与当前数据流对应的转发策略,根据当前数据流对应的转发策略、以及已记录的当前数据流的逻辑功能信息,判断是否对当前接收到的数据包进行逻辑功能处理。
相应的,本发明还提供了一种网络设备,所述网络设备包括:判断模块、发送模块、逻辑功能模块和协议栈处理模块;其中,判断模块,用于根据已记录的逻辑功能信息,判断是否需要对当前数据流的当前数据包进行逻辑功能处理,不是则通知所述发送模块,是则通知所述协议栈处理模块;发送模块,用于在接收到所述判断模块的通知时,根据已记录的当前数据流的逻辑功能信息,将所述数据包直接发送出去;协议栈处理模块,用于在所述判断模块的通知时,将所述数据包传送给所述逻辑功能模块;逻辑功能模块,用于对所述数据包进行逻辑功能处理后通过所述协议栈处理模块发送出去。
具体地,所述逻辑功能模块,用于对所述数据包进行逻辑功能处理,得到所述数据包的逻辑功能信息;所述协议栈处理模块,用于在所述判断模块的通知时,将所述数据包传送给所述逻辑功能模块;在所述逻辑功能模块对数据包进行逻辑功能处理后,根据所述数据包的逻辑功能信息,使用系统协议栈将所述数据包传送出去。
这里,所述网络设备还包括记录模块,用于记录当前数据流各数据包的逻辑功能信息;所述逻辑功能模块,还用于在得到所述数据包的逻辑功能信息后,将所述数据包的逻辑功能信息发送给所述记录模块;发送模块,用于在接收到所述判断模块的通知时,根据所述记录模块已记录的当前数据流的逻辑功能信息,将所述数据包直接发送出去。
具体地,所述判断模块,用于预先定义转发策略;查询与当前数据流对应的转发策略,根据当前数据流对应的转发策略、以及已记录的当前数据流的逻辑功能信息,判断是否对当前接收到的数据包进行逻辑功能处理。
实施例一
本实施例,以路由为例,详细说明本发明的网络设备转发数据流的过程。
本实施例中,网络设备的组成结构如图2所示,主要可以包括:接收模块、判断模块、逻辑功能模块、记录模块、协议栈处理模块、发送模块;其中,接收模块用于接收需转发的数据流;判断模块,用于根据所述记录模块中已记录的所述数据流的路由信息,判断所述接收模块当前接收到的数据包是否需要进行路由功能处理,是则通知所述协议栈处理模块,使用系统协议栈将所述接收模块当前接收到的数据包传送给所述逻辑功能模块,否则通知发送模块,由所述发送模块根据所述记录模块中已记录的所述数据流的路由信息直接将所述数据包发送出去;逻辑功能模块,用于对所述协议栈处理模块传送过来的数据包进行路由功能处理,得到所述数据包的路由信息;记录模块用于对记录所述逻辑功能模块得到的所述数据包的路由信息;协议栈处理模块还用于在所述逻辑功能模块得到所述数据包的路由信息后,根据所述数据包的路由信息,使用系统协议栈将所述逻辑功能模块处理后的数据包传送出去。
如图3所示,本实施例中,网络设备转发数据流的具体流程可以包括:
步骤301:接收需转发的数据流;
步骤302:根据已记录所述数据流的路由信息,判断是否对当前接收的数据包进行路由功能处理,如果否,则继续步骤307;如果是,则继续步骤303;
实际应用中,可以预先定义转发策略,在判断当前数据包是否需要进行路由功能处理时,首先查询到与当前数据流对应的转发策略,再根据当前数据流对应的转发策略、以及已记录的路由信息,判断是否对当前接收到的数据包进行路由功能处理。如果所述当前数据流对应的转发策略允许仅对指定的数据包进行路由功能处理,则判断当前接收到的数据包是否为所述指定的数据包,并判断当前是否记录了该数据流的路由信息,如果当前接收到的数据包为所述指定的数据包或当前未记录该数据流的路由信息,则判断需要对当前接收的数据包进行路由功能处理;如果当前接收到的数据包不是所述指定的数据包且当前已记录了该数据流的路由信息,则判断不需要对当前接收的数据包进行路由功能处理。
具体地,所述转发策略可以是对一个数据流中各数据包进行路由功能处理的策略,例如,在一个数据流中各数据包均需要进行相同的路由功能处理时,可以仅对某些指定的数据包进行路由功能处理;或者,在一个数据流各数据包均具有相同的路由信息时,可以仅对某些指定的数据包进行路由功能处理。实际应用中,可以根据数据流中各数据包的属性信息判断其各数据包是否具有相同的路由信息或是否需要进行相同的路由功能处理。
步骤303:使用系统协议栈对当前接收到的数据包进行传输处理,传送到逻辑功能模块;
步骤304:逻辑功能模块对所述数据包进行路由功能处理,得到所述数据包的输出端口以及下一跳地址等路由信息,并且重写链路层数据包头;
步骤305:记录所述数据包的路由信息;
步骤306:根据所述数据包的路由信息,使用系统协议栈将所述数据包通过相应的网口传送出去,结束当前流程。
步骤307:根据已记录所述数据流的路由信息,直接将所述数据包转发出去,结束当前流程。
实施例二
本实施例,以深度包检测(DPI,DeepPacketInspection)为例,详细说明本发明的网络设备转发数据流的过程。
本实施例中,网络设备的组成结构与实施例一中相似,所不同是的,本实施例中,判断模块,用于根据所述记录模块中已记录的所述数据流的DPI识别信息,判断所述接收模块当前接收到的数据包是否需要进行DPI处理,是则通知所述协议栈处理模块,使用系统协议栈将所述接收模块当前接收到的数据包传送给所述逻辑功能模块,否则通知发送模块,由所述发送模块根据所述数据包的DPI识别信息直接将所述接收模块当前接收到的数据包发送出去;逻辑功能模块,用于对所述协议栈处理模块传送过来的数据包进行DPI处理,得到所述数据包的DPI识别信息;记录模块用于对记录所述逻辑功能模块得到的所述数据包的DPI识别信息;协议栈处理模块还用于在所述逻辑功能模块得到所述数据包的DPI识别信息后,根据所述数据包的DPI识别信息,使用系统协议栈将所述逻辑功能模块处理后的数据包传送出去。
如图4所示,本实施例中,网络设备转发数据流的具体流程可以包括:
步骤401:接收需转发的数据流;
步骤402:根据已记录所述数据流的DPI识别信息,判断是否对当前接收的数据包进行DPI处理,如果否,则继续步骤407;如果是,则继续步骤403;
实际应用中,可以预先定义转发策略,在判断当前数据包是否需要进行DPI处理时,首先查询到与当前数据流对应的转发策略,再根据当前数据流对应的转发策略、以及已记录的DPI识别信息,判断是否对当前接收到的数据包进行DPI处理。如果所述当前数据流对应的转发策略允许仅对指定的数据包进行DPI处理,则判断当前接收到的数据包是否为所述指定的数据包,并判断当前是否记录了该数据流的DPI识别信息,如果当前接收到的数据包为所述指定的数据包或当前未记录该数据流的DPI识别信息,则判断需要对当前接收的数据包进行DPI处理;如果当前接收到的数据包不是所述指定的数据包且当前已记录了该数据流的DPI识别信息,则判断不需要对当前接收的数据包进行DPI处理。
具体地,所述转发策略可以是对一个数据流中各数据包进行DPI处理的策略,例如,在一个数据流中各数据包均需要进行相同的DPI处理时,可以仅对某些指定的数据包进行DPI处理;或者,在一个数据流各数据包均具有相同的DPI属性时,可以仅对某些指定的数据包进行DPI处理。实际应用中,可以根据数据流中各数据包的DPI属性判断是否需要对其各数据包进行相同的DPI处理。
步骤403:使用系统协议栈对当前接收到的数据包进行传输处理,传送到逻辑功能模块;
步骤404:逻辑功能模块对所述数据包进行DPI处理,得到所述数据包的DPI识别信息;
步骤405:记录所述数据包的DPI识别信息;
步骤406:根据所述数据包的DPI识别信息,使用系统协议栈将所述数据包通过相应的网口传送出去,结束当前流程。
步骤407:根据已记录所述数据流的DPI识别信息,直接将所述数据包转发出去,结束当前流程。
这里,根据DPI识别信息将数据包发送出去或传送出去,包括:如果所述DPI识别信息指示当前数据包DPI已通过,则将所述数据包发送出去或传送出去;如果所述DPI识别信息指示当前数据包DPI未通过,则不发送或传送所述数据包。
实施例三
本实施例,以网络地址转换(NAT,NetworkAddressTranslation)为例,详细说明本发明的网络设备转发数据流的过程。
本实施例中,网络设备的组成结构与实施例一中相似,所不同是的,本实施例中,判断模块,用于根据所述记录模块中已记录的所述数据流的NAT信息,判断所述接收模块当前接收到的数据包是否需要进行NAT处理,是则通知所述协议栈处理模块,使用系统协议栈将所述接收模块当前接收到的数据包传送给所述逻辑功能模块,否则通知发送模块,由所述发送模块根据所述数据包的NAT信息直接将所述接收模块当前接收到的数据包发送出去;逻辑功能模块,用于对所述协议栈处理模块传送过来的数据包进行NAT处理,得到所述数据包的NAT信息;记录模块用于对记录所述逻辑功能模块得到的所述数据包的NAT信息;协议栈处理模块还用于在所述逻辑功能模块得到所述数据包的NAT信息后,根据所述数据包的NAT信息,使用系统协议栈将所述逻辑功能模块处理后的数据包传送出去。
如图5所示,本实施例中,网络设备转发数据流的具体流程可以包括:
步骤501:接收需转发的数据流;
步骤502:根据已记录所述数据流的NAT信息,判断是否对当前接收的数据包进行NAT处理,如果否,则继续步骤507;如果是,则继续步骤503;
实际应用中,可以预先定义转发策略,在判断当前数据包是否需要进行NAT处理时,首先查询到与当前数据流对应的转发策略,再根据当前数据流对应的转发策略、以及已记录的NAT信息,判断是否对当前接收到的数据包进行NAT处理。如果所述当前数据流对应的转发策略允许仅对指定的数据包进行NAT处理,则判断当前接收到的数据包是否为所述指定的数据包,并判断当前是否记录了该数据流的NAT信息,如果当前接收到的数据包为所述指定的数据包或当前未记录该数据流的NAT信息,则判断需要对当前接收的数据包进行NAT处理;如果当前接收到的数据包不是所述指定的数据包且当前已记录了该数据流的NAT信息,则判断不需要对当前接收的数据包进行NAT处理。
具体地,所述转发策略可以是对一个数据流中各数据包进行NAT处理的策略,例如,在一个数据流中各数据包均需要进行相同的NAT处理时,可以仅对某些指定的数据包进行NAT处理;或者,在一个数据流各数据包均具有相同的NAT属性时,可以仅对某些指定的数据包进行NAT处理。实际应用中,可以根据数据流中各数据包的NAT属性判断是否需要对其各数据包进行相同的DPI处理。
步骤503:使用系统协议栈对当前接收到的数据包进行传输处理,传送到逻辑功能模块;
步骤504:逻辑功能模块对所述数据包进行NAT处理,得到所述数据包的NAT信息;
这里,所述NAT处理是将数据包IP数据包头中的IP地址转换为另一个IP地址的过程。数据包的NAT信息可以包括NAT处理前的IP地址、和NAT处理后的IP地址。
步骤505:记录所述数据包的NAT信息;
步骤506:根据所述数据包的NAT信息,使用系统协议栈将所述数据包通过相应的网口传送出去,结束当前流程。
步骤507:根据已记录所述数据流的NAT信息,直接将所述数据包转发出去,结束当前流程。
这里,根据NAT信息将数据包发送出去或传送出去,具体为:根据NAT处理后的IP地址,将所述数据部发送出去或传送出去。
实施例四
本实施例,以入侵检测为例,详细说明本发明的网络设备转发数据流的过程。
本实施例中,网络设备的组成结构与实施例一中相似,所不同是的,本实施例中,判断模块,用于根据所述记录模块中已记录的所述数据流的入侵检测结果,判断所述接收模块当前接收到的数据包是否需要进行入侵检测,是则通知所述协议栈处理模块,使用系统协议栈将所述接收模块当前接收到的数据包传送给所述逻辑功能模块,否则通知发送模块,由所述发送模块根据所述数据包的入侵检测结果直接将所述接收模块当前接收到的数据包发送出去;逻辑功能模块,用于对所述协议栈处理模块传送过来的数据包进行入侵检测,得到所述数据包的入侵检测结果;记录模块用于对记录所述逻辑功能模块得到的所述数据包的入侵检测结果;协议栈处理模块还用于在所述逻辑功能模块得到所述数据包的入侵检测结果后,根据所述数据包的入侵检测结果,使用系统协议栈将所述逻辑功能模块处理后的数据包传送出去。
如图6所示,本实施例中,网络设备转发数据流的具体流程可以包括:
步骤601:接收需转发的数据流;
步骤602:根据已记录所述数据流的入侵检测结果,判断是否对当前接收的数据包进行入侵检测,如果否,则继续步骤607;如果是,则继续步骤603;
实际应用中,可以预先定义转发策略,在判断当前数据包是否需要进行入侵检测时,首先查询到与当前数据流对应的转发策略,再根据当前数据流对应的转发策略、以及已记录的入侵检测结果,判断是否对当前接收到的数据包进行入侵检测。如果所述当前数据流对应的转发策略允许仅对指定的数据包进行入侵检测,则判断当前接收到的数据包是否为所述指定的数据包,并判断当前是否记录了该数据流的入侵检测结果,如果当前接收到的数据包为所述指定的数据包或当前未记录该数据流的入侵检测结果,则判断需要对当前接收的数据包进行入侵检测;如果当前接收到的数据包不是所述指定的数据包且当前已记录了该数据流的入侵检测结果,则判断不需要对当前接收的数据包进行入侵检测。
具体地,所述转发策略可以是对一个数据流中各数据包进行入侵检测的策略,例如,在一个数据流中各数据包均需要进行相同的入侵检测时,可以仅对某些指定的数据包进行入侵检测;或者,在一个数据流各数据包均具有相同的安全属性时,可以仅对某些指定的数据包进行入侵检测。实际应用中,可以根据数据流中各数据包的安全属性判断是否需要对其各数据包进行相同的入侵检测。
步骤603:使用系统协议栈对当前接收到的数据包进行传输处理,传送到逻辑功能模块;
步骤604:逻辑功能模块对所述数据包进行入侵检测,得到所述数据包的入侵检测结果;
这里,所述入侵检测是对数据包是否安全进行检测的过程。数据包的入侵检测结果可以包括指示所述数据包为安全信息的标识或指示所述数据包为危险信息的标识等。
步骤605:记录所述数据包的入侵检测结果;
步骤606:根据所述数据包的入侵检测结果,使用系统协议栈将所述数据包通过相应的网口传送出去,结束当前流程。
步骤607:根据已记录所述数据流的入侵检测结果,直接将所述数据包转发出去,结束当前流程。
这里,根据入侵检测结果将数据包发送出去或传送出去,包括:如果所述入侵检测结果指示当前数据包已通过入侵检测(即该数据包属安全信息),则将所述数据包发送出去或传送出去;如果所述入侵检测结果指示当前数据包未通过入侵检测(即该数据包属危险信息),则拒绝发送或传送所述数据包,也就是说过滤掉该数据包。
这里,对于防火墙功能,基于防火墙功能处理结果判断是否对当前数据包进行防火墙功能处理,其转发数据流的具体实现过程与上述的入侵检测中转发数据流的过程类似,不再赘述。
实施例五
本实施例,以内容审计为例,详细说明本发明的网络设备转发数据流的过程。
本实施例中,网络设备的组成结构与实施例一中相似,所不同是的,本实施例中,判断模块,用于根据所述记录模块中已记录的所述数据流的内容审计结果,判断所述接收模块当前接收到的数据包是否需要进行内容审计处理,是则通知所述协议栈处理模块,使用系统协议栈将所述接收模块当前接收到的数据包传送给所述逻辑功能模块,否则通知发送模块,由所述发送模块根据所述数据包的内容审计结果直接将所述接收模块当前接收到的数据包发送出去;逻辑功能模块,用于对所述协议栈处理模块传送过来的数据包进行内容审计处理,得到所述数据包的内容审计结果;记录模块用于对记录所述逻辑功能模块得到的所述数据包的内容审计结果;协议栈处理模块还用于在所述逻辑功能模块得到所述数据包的内容审计结果后,根据所述数据包的内容审计结果,使用系统协议栈将所述逻辑功能模块处理后的数据包传送出去。
如图7所示,本实施例中,网络设备转发数据流的具体流程可以包括:
步骤701:接收需转发的数据流;
步骤702:根据已记录所述数据流的内容审计结果,判断是否对当前接收的数据包进行内容审计处理,如果否,则继续步骤707;如果是,则继续步骤703;
实际应用中,可以预先定义转发策略,在判断当前数据包是否需要进行内容审计处理时,首先查询到与当前数据流对应的转发策略,再根据当前数据流对应的转发策略、以及已记录的内容审计结果,判断是否对当前接收到的数据包进行内容审计处理。如果所述当前数据流对应的转发策略允许仅对指定的数据包进行内容审计处理,则判断当前接收到的数据包是否为所述指定的数据包,并判断当前是否记录了该数据流的内容审计结果,如果当前接收到的数据包为所述指定的数据包或当前未记录该数据流的内容审计结果,则判断需要对当前接收的数据包进行内容审计处理;如果当前接收到的数据包不是所述指定的数据包且当前已记录了该数据流的内容审计结果,则判断不需要对当前接收的数据包进行内容审计处理。
具体地,所述转发策略可以是对一个数据流中各数据包进行内容审计的策略,例如,在一个数据流中各数据包均需要进行相同的内容审计处理时,可以仅对某些指定的数据包进行内容审计;或者,在一个数据流各数据包均具有相同内容时,可以仅对某些指定的数据包进行内容审计处理。实际应用中,可以根据数据流中各数据包的内容属性判断是否需要对其各数据包进行相同的内容审计处理。
步骤703:使用系统协议栈对当前接收到的数据包进行传输处理,传送到逻辑功能模块;
步骤704:逻辑功能模块对所述数据包进行内容审计处理,得到所述数据包的内容审计结果;
这里,所述内容审计处理是对数据包的内容进行审计处理的过程。数据包的内容审计结果可以包括对所述数据包的内容进行统计处理得到的统计数据等信息。
步骤705:记录所述数据包的内容审计结果;
步骤706:根据所述数据包的内容审计结果,使用系统协议栈将所述数据包通过相应的网口传送出去,结束当前流程。
步骤707:根据已记录所述数据流的内容审计结果,直接将所述数据包转发出去,结束当前流程。
这里,根据入侵检测结果将数据包发送出去或传送出去,包括:如果所述内容审计结果指示当前数据包已通过内容审计(即该数据包属安全信息),则将所述数据包发送出去或传送出去;如果所述内容审计结果指示当前数据包未通过内容审计(即该数据包属危险信息),则拒绝发送或传送所述数据包,也就是说过滤掉该数据包。
需要说明的是,本发明网络设备转发数据流的方法也适用于设置代理服务器、网络数据缓存等逻辑功能,其具体实现流程可以基于上述各实施例的相关流程直接得到,不再赘述。
实际应用中,还可以结合并发优化技术,例如,在转发数据流的过程中,还可以将网络设备的发送模块和协议栈处理模块分别由不同的CPU来实现,从而能更大限度的提高网络转发性能,保证数据流转发的高速和稳定。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (8)

1.一种网络设备转发数据流的方法,其特征在于,所述方法包括:
预先定义转发策略,查询与当前数据流对应的转发策略,根据当前数据流对应的转发策略、以及已记录的当前数据流的逻辑功能信息,判断是否对当前接收到的数据包进行逻辑功能处理;
如果不需要,则根据已记录的当前数据流的逻辑功能信息,将所述数据包直接发送出去;
如果需要,则对所述数据包进行逻辑功能处理后发送出去;
其中,所述转发策略为:对一个数据流中各数据包进行路由功能处理的策略。
2.根据权利要求1所述网络设备转发数据流的方法,其特征在于,所述对所述数据包进行逻辑功能处理后发送出去,包括:
使用系统协议栈将所述数据包传送给逻辑功能模块;
逻辑功能模块对所述数据包进行逻辑功能处理,得到所述数据包的逻辑功能信息;
根据所述数据包的逻辑功能信息,使用系统协议栈将所述数据包传送出去。
3.根据权利要求2所述网络设备转发数据流的方法,其特征在于,所述得到所述数据包的逻辑功能信息后,所述方法还包括:记录所述数据包的逻辑功能信息。
4.根据权利要求1至3任一项所述网络设备转发数据流的方法,其特征在于,所述逻辑功能处理为:路由功能处理、深度包检测DPI处理、网络地址转换NAT处理、入侵检测、防火墙功能处理、或内容审计处理;
所述逻辑功能信息为:路由信息、DPI识别信息、NAT信息、入侵检测结果、防火墙功能处理结果、或内容审计结果。
5.一种网络设备,其特征在于,所述网络设备包括:判断模块、发送模块、逻辑功能模块和协议栈处理模块;其中,
判断模块,用于查询与当前数据流对应的转发策略,根据当前数据流对应的转发策略、以及已记录的当前数据流的逻辑功能信息,判断是否对当前接收到的数据包进行逻辑功能处理,不是则通知所述发送模块,是则通知所述协议栈处理模块;
发送模块,用于在接收到所述判断模块的通知时,根据已记录的当前数据流的逻辑功能信息,将所述数据包直接发送出去;
协议栈处理模块,用于在所述判断模块的通知时,将所述数据包传送给所述逻辑功能模块;
逻辑功能模块,用于对所述数据包进行逻辑功能处理后通过所述协议栈处理模块发送出去;
其中,所述转发策略为预先定义的转发策略;所述转发策略为:对一个数据流中各数据包进行路由功能处理的策略。
6.根据权利要求5所述的网络设备,其特征在于,
所述逻辑功能模块,用于对所述数据包进行逻辑功能处理,得到所述数据包的逻辑功能信息;
所述协议栈处理模块,用于在所述判断模块的通知时,将所述数据包传送给所述逻辑功能模块;在所述逻辑功能模块对数据包进行逻辑功能处理后,根据所述数据包的逻辑功能信息,使用系统协议栈将所述数据包传送出去。
7.根据权利要求6所述的网络设备,其特征在于,
所述网络设备还包括记录模块,用于记录当前数据流各数据包的逻辑功能信息;
所述逻辑功能模块,还用于在得到所述数据包的逻辑功能信息后,将所述数据包的逻辑功能信息发送给所述记录模块;
发送模块,用于在接收到所述判断模块的通知时,根据所述记录模块已记录的当前数据流的逻辑功能信息,将所述数据包直接发送出去。
8.根据权利要求5至7任一项所述的网络设备,其特征在于,
所述逻辑功能模块进行的逻辑功能处理,为:路由功能处理、深度包检测DPI处理、网络地址转换NAT处理、入侵检测、防火墙功能处理、或内容审计处理;
所述逻辑功能信息为:路由信息、DPI识别信息、NAT信息、入侵检测结果、防火墙功能处理结果、或内容审计结果。
CN201210306832.7A 2012-08-24 2012-08-24 一种网络设备及其转发数据流的方法 Active CN102857426B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210306832.7A CN102857426B (zh) 2012-08-24 2012-08-24 一种网络设备及其转发数据流的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210306832.7A CN102857426B (zh) 2012-08-24 2012-08-24 一种网络设备及其转发数据流的方法

Publications (2)

Publication Number Publication Date
CN102857426A CN102857426A (zh) 2013-01-02
CN102857426B true CN102857426B (zh) 2015-12-16

Family

ID=47403629

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210306832.7A Active CN102857426B (zh) 2012-08-24 2012-08-24 一种网络设备及其转发数据流的方法

Country Status (1)

Country Link
CN (1) CN102857426B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107070928B (zh) * 2017-04-19 2020-08-21 北京网康科技有限公司 一种应用层防火墙及其处理方法
CN115174473A (zh) * 2022-08-09 2022-10-11 展讯通信(上海)有限公司 数据处理方法、装置及中继设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645894A (zh) * 2009-09-01 2010-02-10 成都市华为赛门铁克科技有限公司 网络代理实现方法及装置
CN101699796A (zh) * 2009-09-09 2010-04-28 成都飞鱼星科技开发有限公司 一种基于流信任的数据报文高速转发的方法、系统及路由器
CN102065017A (zh) * 2010-12-31 2011-05-18 成都市华为赛门铁克科技有限公司 一种报文处理方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645894A (zh) * 2009-09-01 2010-02-10 成都市华为赛门铁克科技有限公司 网络代理实现方法及装置
CN101699796A (zh) * 2009-09-09 2010-04-28 成都飞鱼星科技开发有限公司 一种基于流信任的数据报文高速转发的方法、系统及路由器
CN102065017A (zh) * 2010-12-31 2011-05-18 成都市华为赛门铁克科技有限公司 一种报文处理方法及装置

Also Published As

Publication number Publication date
CN102857426A (zh) 2013-01-02

Similar Documents

Publication Publication Date Title
US9736051B2 (en) Smartap arrangement and methods thereof
US7636305B1 (en) Method and apparatus for monitoring network traffic
RU2576473C2 (ru) Сетевая система и способ маршрутизации
US8402538B2 (en) Method and system for detecting and responding to harmful traffic
US8149705B2 (en) Packet communications unit
EP2387180B1 (en) Network communication with unaddressed network devices
US9419889B2 (en) Method and system for discovering a path of network traffic
EP2482497B1 (en) Data forwarding method, data processing method, system and device thereof
US20130160122A1 (en) Two-stage intrusion detection system for high-speed packet processing using network processor and method thereof
CN104717101B (zh) 深度包检测方法和系统
CN103139315A (zh) 一种适用于家庭网关的应用层协议解析方法
CN109496409B (zh) 一种数据传送的方法和虚拟交换机
CN102055674B (zh) Ip报文及基于该ip报文的信息处理方法及装置
EP1517517A1 (en) IP time to live (ttl) field used as a covert channel
CN103609070A (zh) 网络流量检测方法、系统、设备及控制器
JP2003525557A (ja) 迅速なパケット・フィルタリング及びパケット・プロセシングのためのシステム、デバイス及び方法
CN101534248B (zh) 深度报文识别方法和系统及业务板
KR101292873B1 (ko) 네트워크 인터페이스 카드장치 및 상기 네트워크 인터페이스 카드장치를 이용한 트래픽 처리 방법
US20150288601A1 (en) Ip data packet sending method and label switching router
CN112165460A (zh) 流量检测方法、装置、计算机设备和存储介质
CN102857426B (zh) 一种网络设备及其转发数据流的方法
CN106254252B (zh) 一种Flow spec路由的下发方法和装置
KR101715107B1 (ko) 리트로액티브 네트워크 검사 시스템 및 그 제공방법
CN102546387B (zh) 一种数据报文的处理方法、装置及系统
KR20110040152A (ko) 공격자 패킷 역추적 방법 및 이를 위한 시스템

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant