CN109802951B - 一种报文转发方法、设备及存储设备 - Google Patents

一种报文转发方法、设备及存储设备 Download PDF

Info

Publication number
CN109802951B
CN109802951B CN201811626212.5A CN201811626212A CN109802951B CN 109802951 B CN109802951 B CN 109802951B CN 201811626212 A CN201811626212 A CN 201811626212A CN 109802951 B CN109802951 B CN 109802951B
Authority
CN
China
Prior art keywords
message
forwarded
processor
protocol type
application identification
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
CN201811626212.5A
Other languages
English (en)
Other versions
CN109802951A (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.)
Neusoft Corp
Original Assignee
Neusoft Corp
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 Neusoft Corp filed Critical Neusoft Corp
Priority to CN201811626212.5A priority Critical patent/CN109802951B/zh
Publication of CN109802951A publication Critical patent/CN109802951A/zh
Application granted granted Critical
Publication of CN109802951B publication Critical patent/CN109802951B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例公开了一种报文转发方法及设备,当转发处理器接收到待转发报文时,首先查找该待转发报文的会话表,如果查找到会话表,则获取该会话表进行转发。当未查找到该待转发报文的会话表,则转发处理器在应用识别快表中查找该待转发报文的协议类型,如果查找到该待转发报文的协议类型且未查找到父连接信息,则根据协议类型建立会话表,并根据会话表转发。如果未查找到待转发报文的协议类型,则第二处理器根据待转发报文的目的地址及目的端口识别协议类型,转发处理器根据协议类型建立会话表,并根据会话表转发。如果在应用识别快表中查找到待转发报文的父连接信息,则转发处理器直接根据父连接信息建立待转发报文的会话表,并根据会话表转发。

Description

一种报文转发方法、设备及存储设备
技术领域
本申请涉及通信技术领域,具体涉及一种报文转发方法、设备及存储设备、程序产品。
背景技术
防火墙等网络设备的报文转发系统的性能是用户重视的性能指标,在实际应用场景中报文的各种应用类型同时存在,其中关于动态端口报文的性能开销相对而言实现最复杂。
动态端口类的报文一般分为父连接和子连接,例如在FTP(File TransferProtocol,文件传输协议)中,交互控制指令的控制连接为父连接,基于父连接,交互数据的数据连接即为子连接。在父连接建立后,通常会约定所使用的通信端口,子连接基于所约定使用的通信端口进行通信,在该过程中,子连接所使用的通信端口即为动态端口。
在现有技术中,网络设备在接收到报文后,会查找是否存在该报文对应的会话表,如果存在,则依照该会话表进行报文转发,如果不存在,则需要建立该报文对应的会话表。对于需要建立会话表的报文,如果为父连接报文,则还需要建立该父连接的子连接对应的会话表模板,以使得再次接收到报文时,通过查找该会话表模板,确定接收到的报文是否为子连接报文,如果是子连接报文,则根据该会话表模板建立子连接报文对应的会话表。
因此,在网络设备接收到报文后,需要首先查找会话表,确定是否存在该报文的会话表,如果不存在,则还需要查找会话表模板,以确定该报文是否为子连接报文。但是,子连接报文只占全部报文的一小部分,该种报文转发方式,对于所有报文均需要进行两次全局查找,也即对于大部分非子连接报文,会存在一次浪费的查找会话表模板的过程。导致该种报文转发方式,实现复杂,效率较为低下,使得报文转发性能开销较大。
发明内容
有鉴于此,本申请实施例提供一种报文转发方法、设备及存储设备、程序产品,以解决现有技术中针对报文转发效率低下以及开销较大的问题。
为解决上述问题,本申请实施例提供的技术方案如下:
一种报文转发方法,第一处理器建立应用识别快表,所述应用识别快表中保存有非动态端口表项以及动态端口表项,每一所述非动态端口表项包括目的地址、目的端口以及对应的协议类型,每一所述动态端口表项包括目的地址、目的端口以及对应的父连接信息;所述方法包括:
转发处理器接收待转发报文,查找是否存在所述待转发报文的会话表;
如果存在所述待转发报文的会话表,所述转发处理器获取所述待转发报文的会话表;
如果不存在所述待转发报文的会话表,所述转发处理器根据所述待转发报文的目的地址以及目的端口在所述应用识别快表中进行查找;
如果从所述应用识别快表中查找到所述待转发报文对应的协议类型且未查找到所述待转发报文对应的父连接信息,所述转发处理器根据所述待转发报文对应的协议类型建立所述待转发报文的会话表;
如果从所述应用识别快表中未查找到所述待转发报文对应的协议类型,所述转发处理器将所述待转发报文发送给第二处理器,所述第二处理器根据所述待转发报文的目的地址以及目的端口识别对应的协议类型,所述转发处理器根据所述待转发报文对应的协议类型建立所述待转发报文的会话表;
如果从所述应用识别快表中查找到所述待转发报文对应的父连接信息,所述转发处理器根据所述待转发报文对应的父连接信息建立所述待转发报文的会话表;
所述转发处理器根据所述待转发报文的会话表对所述待转发报文进行转发。
在一种可能的实现方式中,如果所述第二处理器根据所述待转发报文的目的地址以及目的端口识别对应的协议类型之后,所述方法还包括:
所述第一处理器将所述待转发报文的目的地址、目的端口以及对应的协议类型作为所述非动态端口表项写入所述应用识别快表。
在一种可能的实现方式中,所述转发处理器从所述应用识别快表中查找到所述待转发报文对应的协议类型之后,或者,所述转发处理器获取所述待转发报文对应的协议类型之后,所述方法还包括:
如果根据所述待转发报文对应的协议类型确定所述待转发报文为父连接报文,所述第一处理器将所述待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息作为所述动态端口表项写入所述应用识别快表。
在一种可能的实现方式中,所述第一处理器将所述待转发报文的目的地址、目的端口以及对应的协议类型作为所述非动态端口表项写入所述应用识别快表,包括:
所述第二处理器将所述待转发报文的目的地址、目的端口以及对应的协议类型添加到通知队列;
所述第一处理器从所述通知队列中读取所述待转发报文的目的地址、目的端口以及对应的协议类型,将所述待转发报文的目的地址、目的端口以及对应的协议类型作为所述非动态端口表项确定为待写入表项;所述第一处理器将所述待写入表项写入所述应用识别快表。
在一种可能的实现方式中,所述第一处理器将所述待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息作为所述动态端口表项写入所述应用识别快表,包括:
所述转发处理器将所述待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息添加到通知队列;
所述第一处理器从所述通知队列中读取所述待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息,将所述待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息作为所述动态端口表项确定为待写入表项;所述第一处理器将所述待写入表项写入所述应用识别快表。
在一种可能的实现方式中,所述第一处理器将待写入表项写入所述应用识别快表,包括:
所述第一处理器从内存池中申请空闲表项;
所述第一处理器将所述空闲表项添加到所述应用识别快表中;
所述第一处理器将所述待写入表项写入所述空闲表项。
在一种可能的实现方式中,所述方法还包括:
所述第一处理器将所述应用识别快表中超时的非动态端口表项从所述应用识别快表中删除;
和/或,所述第一处理器将所述应用识别快表中删除位置一动态端口表项从所述应用识别快表中删除。
在一种可能的实现方式中,所述方法还包括:
所述转发处理器将所述应用识别快表中需要删除的动态端口表项的删除位置一。
在一种可能的实现方式中,如果根据所述待转发报文对应的协议类型确定所述待转发报文为父连接报文,所述第一处理器将所述待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息作为所述动态端口表项写入所述应用识别快表之后,所述方法还包括:
所述转发处理器将所述待转发报文的子连接报文的通信两端标识以及目标处理器的标识写入网络设备,以使所述网络设备接收到与所述待转发报文的子连接报文的通信两端标识相匹配的后续报文时,将所述后续报文发送给所述目标处理器,所述目标处理器是根据所述待转发报文对应的父连接信息确定的。
一种报文转发设备,所述设备包括:
第一处理器、转发处理器以及第二处理器;
所述第一处理器,用于建立应用识别快表,所述应用识别快表中保存有非动态端口表项以及动态端口表项,每一所述非动态端口表项包括目的地址、目的端口以及对应的协议类型,每一所述动态端口表项包括目的地址、目的端口以及对应的父连接信息;
所述转发处理器,用于接收待转发报文,查找是否存在所述待转发报文的会话表;如果存在所述待转发报文的会话表,获取所述待转发报文的会话表;如果不存在所述待转发报文的会话表,根据所述待转发报文的目的地址以及目的端口在所述应用识别快表中进行查找;如果从所述应用识别快表中查找到所述待转发报文对应的协议类型且未查找到所述待转发报文对应的父连接信息,根据所述待转发报文对应的协议类型建立所述待转发报文的会话表;如果从所述应用识别快表中未查找到所述待转发报文对应的协议类型,将所述待转发报文发送给第二处理器;
所述第二处理器,用于根据所述待转发报文的目的地址以及目的端口识别对应的协议类型;
所述转发处理器,还用于根据所述待转发报文对应的协议类型建立所述待转发报文的会话表;如果从所述应用识别快表中查找到所述待转发报文对应的父连接信息,根据所述待转发报文对应的父连接信息建立所述待转发报文的会话表;根据所述待转发报文的会话表对所述待转发报文进行转发。
在一种可能的实现方式中,如果所述第二处理器根据所述待转发报文的目的地址以及目的端口识别对应的协议类型之后,所述第一处理器,还用于将所述待转发报文的目的地址、目的端口以及对应的协议类型作为所述非动态端口表项写入所述应用识别快表。
在一种可能的实现方式中,所述转发处理器从所述应用识别快表中查找到所述待转发报文对应的协议类型之后,或者,所述转发处理器获取所述待转发报文对应的协议类型之后,如果根据所述待转发报文对应的协议类型确定所述待转发报文为父连接报文,所述第一处理器,还用于将所述待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息作为所述动态端口表项写入所述应用识别快表。
在一种可能的实现方式中,所述第二处理器,具体用于将所述待转发报文的目的地址、目的端口以及对应的协议类型添加到通知队列;
所述第一处理器,具体用于从所述通知队列中读取所述待转发报文的目的地址、目的端口以及对应的协议类型,将所述待转发报文的目的地址、目的端口以及对应的协议类型作为所述非动态端口表项确定为待写入表项;将所述待写入表项写入所述应用识别快表。
在一种可能的实现方式中,所述转发处理器,具体用于将所述待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息添加到通知队列;
所述第一处理器,具体用于从所述通知队列中读取所述待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息,将所述待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息作为所述动态端口表项确定为待写入表项;将所述待写入表项写入所述应用识别快表。
在一种可能的实现方式中,所述第一处理器,具体用于从内存池中申请空闲表项;将所述空闲表项添加到所述应用识别快表中;将所述待写入表项写入所述空闲表项。
在一种可能的实现方式中,所述第一处理器,还用于将所述应用识别快表中超时的非动态端口表项从所述应用识别快表中删除;
和/或,所述第一处理器,还用于将所述应用识别快表中删除位置一动态端口表项从所述应用识别快表中删除。
在一种可能的实现方式中,所述转发处理器,还用于将所述应用识别快表中需要删除的动态端口表项的删除位置一。
在一种可能的实现方式中,如果根据所述待转发报文对应的协议类型确定所述待转发报文为父连接报文,所述第一处理器将所述待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息作为所述动态端口表项写入所述应用识别快表之后,所述转发处理器,还用于将所述待转发报文的子连接报文的通信两端标识以及目标处理器的标识写入网络设备,以使所述网络设备接收到与所述待转发报文的子连接报文的通信两端标识相匹配的后续报文时,将所述后续报文发送给所述目标处理器,所述目标处理器是根据所述待转发报文对应的父连接信息确定的。
一种计算机可读存储介质,所述机算机可读存储介质中存储有指令,当所述指令在报文转发测试设备上运行时,使得所述报文转发测试设备执行上述的报文转发方法。
一种计算机程序产品,所述计算机程序产品在报文转发测试设备上运行时,使得所述报文转发测试设备执行上述的报文转发方法。
由此可见,本申请实施例具有如下有益效果:
本申请实施例首先在第一处理器建立了应用识别快表,该应用识别快表中包括非动态端口表项以及动态端口表项,其中,每个非动态端口表项包括目的地址、目的端口以及对应的协议类型;动态端口表项包括目的地址、目的端口以及对应的父连接信息。当转发处理器接收到待转发报文时,首先查找该待转发报文对应的会话表,如果查找到该待转发报文的会话表时,则获取该会话表,并根据会话表对待转发报文进行转发。
当未查找到该待转发报文对应的会话表时,则转发处理器在应用识别快表中查找该待转发报文对应的协议类型,如果查找到该待转发报文对应的协议类型且未查找到该待转发报文对应的父连接信息,代表该待转发报文为非子连接报文,则根据该协议类型建立该待转发报文的会话表,并根据会话表对待转发报文进行转发。如果未查找到待转发报文对应的协议类型,则第二处理器根据待转发报文的目的地址以及目的端口识别对应的协议类型,转发处理器获取待转发报文对应的协议类型并根据该协议类型建立该待转发报文的会话表,并根据会话表转发待转发报文。
如果在应用识别快表中查找到待转发报文对应的父连接信息时,代表该待转发报文为子连接报文,则转发处理器直接根据父连接信息建立待转发报文的会话表,并根据会话表转发待转发报文。
可见,通过本申请实施例提供的技术方案,应用识别快表中即包括有非子连接报文对应的协议类型,也包括有子连接报文对应的父连接信息。当需要建立非子连接报文的会话表时,可以通过查询应用识别快表获取该非子连接报文对应的协议类型,以便利用该协议类型建立会话表,无需再进行协议类型识别,而且,提高建立会话表效率。而对于需要建立子连接报文的会话表时,通过查询应用识别快表获取该子连接对应的父连接信息,通过该父连接信息直接建立该子连接报文的会话表,提高建立会话表效率,以及降低转发开销。因此,在查找应用识别快表时,不同的报文可以获得相应的信息,提高了查找应用识别快表的效率。
附图说明
图1为本申请实施例提供的一种报文转发方法的流程图;
图2为本申请实施例提供的一种报文转发应用场景示例图;
图3为本申请实施例提供的一种报文转发设备结构图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。
为便于理解本申请实施例提供的技术方案,下面将先对本申请的背景技术进行说明。
发明人在对传统的报文转发方法研究中发现,当接收到待转发报文时,首先查找是否存在对应的会话表,如果不存在,则通过查找会话模板确定该待转发报文是否为子连接报文,如果为子连接报文则根据会话模板建立会话表,如果不为子连接报文,则还需要进行协议类型识别、转发策略匹配等步骤,以建立会话表。由于非子连接报文占全部报文的一大部分,且会话模板中仅包括子连接的信息,当通过查找会话模板来确定报文是否为子连接时,会造成多次无用的查找操作,降低转发效率。另外,父子连接的相关性较大,需同步删除会话模板以及父连接信息,因此,需要建立二者相应的关系网,在异构网络中实现难度较大。
基于此,本申请实施例提供了一种报文转发方法,具体为,首先第一处理器建立应用识别快表,该应用识别快表包括非动态端口表项和动态端口表项,其中,非动态端口表项包括报文的目的地址、目的端口以及对应的协议类型,动态端口表型包括目的地址、目的端口以及对应的父连接信息。当转发处理器获取到待转发报文时,如果不存在待转发报文的会话表时,则可以根据待转发报文的目的地址、目的端口在应用识别快表中进行查找。当在应用识别模块中查找到该待转发报文对应的父连接信息时,代表该待转发报文为子连接报文,则转发处理器可以根据父连接信息建立该待转发报文的会话表,以进行报文转发。当在应用识别快表中查找到该待转发报文对应的协议类型且未查找到待转发报文对应的父连接信息时,代表该待转发报文为非子连接报文,则转发处理器可以根据待转发报文对应的协议类型建立待转发报文的会话表,以进行报文转发。当在应用识别模块中未查找待转发报文对应的协议类型时,则可以先进行协议类型识别,转发处理器再根据协议类型建立待转发报文的会话表,以进行报文转发。
也就是,在进行查找应用识别快表时,即便未查找到该待转发报文的父连接信息,但可以获取该待转发报文对应的协议类型,从而在建立会话表时,无需再进行协议类型识别,提高建立会话表以及转发报文的效率,避免对资源的浪费。
另外,本申请实施例还可以将应用识别快表中删除位置为1的动态端口表项从应用识别快表中删除,由于动态端口表项中包括父连接信息,因此,在删除该动态表项时,也删除了父连接信息,实现了同步删除。
为便于理解本申请实施例提供的报文转发技术方案,下面将结合附图对该方案进行说明。
参见图1,该图为本申请实施例提供的一种报文转发方法的流程图,本申请实施例提供的一种报文转发方法可以应用于报文转发设备,该报文转发设备可以包括一个第一处理器、至少一个转发处理器以及至少一个第二处理器。其中,第一处理器以及转发处理器属于快速模块,第二处理器属于慢速模块,转发处理器以及第二处理器一一对应。首先可以在第一处理器建立应用识别快表,应用识别快表中保存有非动态端口表项以及动态端口表项,每一非动态端口表项包括目的地址、目的端口以及对应的协议类型,每一动态端口表项包括目的地址、目的端口以及对应的父连接信息。然后利用应用识别快表进行报文转发,以下对本申请实施例提供的报文转发方法进行说明,如图1 所示,该方法可以包括:
S101:转发处理器接收待转发报文,查找是否存在待转发报文的会话表。
S102:如果存在待转发报文的会话表,转发处理器获取待转发报文的会话表。
本实施例中,当转发处理器接收到待转发报文时,首先查找是否存在该待转发报文对应的会话表,会话表中可以包括待转发报文如何进行转发的信息。如果存在,则获取该待转发报文的会话表,并根据该会话表对该待转发报文进行转发。如果不存在待转发报文的会话表,则执行S103及后续操作建立会话表。
S103:如果不存在待转发报文的会话表,转发处理器根据待转发报文的目的地址以及目的端口在应用识别快表中进行查找。
本实施例中,当转发处理器中不存在该待转发报文的会话表时,则需要新建会话表。具体的,可以根据该转发报文的目的地址以及目的端口在应用识别快表中进行查找,以获取该待转发报文对应的父连接信息或者待转发报文对应的协议类型等信息。
可以理解的是,每个待转发报文中可以包括五元组信息,通过解析待转发报文可以获取该待转发报文的目的地址以及目的端口,以便根据待转发报文的目的地址以及目的端口在应用识别快表中进行查找。其中,报文五元组包括(源IP地址、源端口、目的IP地址,目的端口,通信协议)。
其中,应用识别快表为预先建立的,该应用识别快表保存有非动态端口表项以及动态端口表项。每一非动态端口表项包括目的地址、目的端口以及对应的协议类型,每一动态端口表项包括目的地址、目的端口以及对应的父连接信息。其中,父连接信息可以包括父连接会话地址。具体可以参见表1,表1的上半部分表示非动态端口表项,下半部分表示动态端口表项。非动态端口表项可以包括目的地址、目的端口以及协议类型。动态端口项可以包括目的地址、目的端口以及父连接信息,该父连接信息可以为父连接会话地址。
表1应用识别快表
目的地址 目的端口 协议类型 删除项
dip1 dport1 A timer
dip2 dport2 B
dipx dportx X
dipy dporty Y
目的地址 目的端口 父连接会话地址 删除项
dip1 dport1 H 0或1
dip2 dport2 Z 0或1
dipx dportx K 0或1
通过表1可知,当所接收到待转发报文可以通过应用识别快表中的非动态表项中查找到该待转发报文对应的协议类型且未在动态表项中查找到该待转发报文对应的父连接信息时,表明该待转发报文为非子连接报文,即非动态端口连接报文(普通报文)和父连接报文。当通过应用识别快表中的动态表项查找到该待转发报文对应的父连接信息时,表明该待转发报文为子连接报文。
其中,删除项可以用于删除非动态端口表项和动态端口表项,非动态端口表项中可以通过超时机制进行删除,而动态端口表项可以通过置位方式进行删除。在无需删除动态端口表项时,则删除项为0,需要删除时,将其置为 1,具体应用将在后续实施例中进行说明。需要说明的是,表1所示应用识别快表的内容仅作为示例,不对应用识别快表进行限制。
S104:如果从应用识别快表中查找到待转发报文对应的协议类型且未查找到待转发报文对应的父连接信息,转发处理器根据待转发报文对应的协议类型建立待转发报文的会话表。
本实施例中,当转发处理器通过查找应用识别快表获得待转发报文对应的协议类型,但未查找到待转发报文对应的父连接信息,表明当前待转发报文为非子连接,即该待转发报文为非动态端口连接报文或者为父连接报文,则根据待转发报文对应的协议类型建立该待转发报文的会话表。
在具体实现时,每一第二处理器中可以包括协议类型识别模块以及策略匹配模块。当获取到该待转发报文对应的协议类型时,转发处理器将待转发报文以及对应的协议类型发送给策略匹配模块,以使得策略匹配模块可以根据该待转发报文对应的协议类型进行会话表建立策略的匹配,并将匹配结果发送给转发处理器,由转发处理器根据匹配结果建立该待转发报文的会话表。在实际应用时,不同协议类型可以对应不同的会话表建立策略,在建立会话表之前,需要根据协议类型匹配策略,以便根据匹配结果建立会话表。
另外,当待转发报文为非动态端口连接报文时,只需根据待转发报文对应的协议类型建立会话表;而当待转发报文为父连接报文时,在根据待转发报文对应的协议类型建立会话表之后,还要将会话表的信息添加到应用识别快表中,具体添加方式将在后续实施例进行说明。
S105:如果从应用识别快表中未查找到待转发报文对应的协议类型,转发处理器将待转发报文发送给第二处理器,第二处理器根据待转发报文的目的地址以及目的端口识别对应的协议类型,转发处理器根据待转发报文对应的协议类型建立待转发报文的会话表。
本实施例中,当未从应用识别快表中查找到该待转发报文对应的协议类型时,则需要根据待转发报文的目的地址以及目的端口识别对应的协议类型,再根据该待转发报文对应的协议类型建立待转发报文的会话表。
在具体实现时,转发处理器可以将待转发报文发送给第二处理器中的协议类型识别模块,以识别获得该待转发报文对应的协议类型。再将待转发报文以及对应的协议类型发送给策略匹配模块,获得策略匹配结果,并将策略匹配结果发送给转发处理器,建立会话表。
在实际应用中,根据目的地址以及目的端口识别协议类型的原理在于,使用同一目的地址同一目的端口的应用在短时间内是不会发生变化的,因此可以利用目的地址以及目的端口识别对应的协议类型。
另外,当识别待转发报文对应的协议类型为非动态端口连接报文时,则根据协议类型建立会话表。同时,还可以将新识别的协议类型添加到应用识别快表中。当识别待转发报文对应的协议类型为父连接报文时,则在根据待转发报文对应的协议类型建立会话表之后,还要可以将会话表的信息以及识别的协议类型添加到应用识别快表中,具体添加方式将在后续实施例进行说明。
S106:如果从应用识别快表中查找到待转发报文对应的父连接信息,转发处理器根据待转发报文对应的父连接信息建立待转发报文的会话表。
本实施例中,当从应用识别快表中查找到待转发报文对应的父连接信息时,表明该待转发报文为子连接报文,则转发处理器可以根据待转发报文对应的父连接信息建立待转发报文的会话表。
S107:根据待转发报文的会话表对待转发报文进行转发。
本实施例中,当建立待转发报文的会话表后,转发处理器可以直接根据该会话表对该待转发报文进行转发。
通过本申请实施例提供的技术方案,由于建立会话表需要该报文的协议类型,而本申请中应用识别快表包括协议类型,当需要建立非子连接报文的会话表时,可以通过查询应用识别快表获取该非子连接报文对应的协议类型,以便利用该协议类型建立会话表,无需再进行协议类型识别,而且,提高建立会话表效率。而对于需要建立子连接报文的会话表时,通过查询应用识别快表获取该子连接对应的父连接信息,通过该父连接信息直接建立该子连接报文的会话表,提高建立会话表效率,以及降低转发开销。
通过上述实施例可知,当从应用识别快表中未查找到待转发报文对应的协议类型时,可以根据待转发报文的目的地址以及目的端口识别该待转发报文对应的协议类型。当识别获取待转发报文对应的协议类型时,则将待转发报文的目的地址、目的端口以及对应的协议类型作为非动态端口表项向写入应用识别快表中。即,向应用识别快表中添加新的协议类型,以使得当转发处理器接收到新的协议类型对应的待转发报文时,可以查找到该新的待转发报文对应的协议类型。
在一种可能的实现方式中,提供了一种向应用识别快表中写入非动态表项的实现方式,即如果第二处理器根据待转发报文的目的地址以及目的端口识别对应的协议类型之后,第一处理器将待转发报文的目的地址、目的端口以及对应的协议类型作为非动态端口表项写入应用识别快表。具体为,第二处理器将待转发报文的目的地址、目的端口以及对应的协议类型添加到通知队列;第一处理器从通知队列中读取待转发报文的目的地址、目的端口以及对应的协议类型,将待转发报文的目的地址、目的端口以及对应的协议类型作为非动态端口表项确定为待写入表项;将待写入表项写入应用识别快表中。
在具体实现时,可以由第一处理器创建通知队列,以接收待转发报文的目的地址、目的端口以及对应的协议类型。然后,第一处理器从通知队列中读取待转发报文的目的地址、目的端口以及对应的协议类型,将其作为待写入表项写入应用识别快表中。
进一步地,当获取到待转发报文对应的协议类型后,还可以根据协议类型确定该待转发报文是否为父连接报文,如果为父连接报文,则将待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息作为动态端口表项写入应用识别快表。
在一种可能的实现方式中,提供了一种添加动态端口表项的实现方式,即转发处理器从应用识别快表中查找到待转发报文对应的协议类型之后,或者,转发处理器获取待转发报文对应的协议类型之后,如果根据待转发报文对应的协议类型确定待转发报文为父连接报文,第一处理器将待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息作为动态端口表项写入应用识别快表。具体为,转发处理器将待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息添加到通知队列;第一处理器从通知队列中读取待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息,将待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息作为动态端口表项确定为待写入表项;将待写入表项写入所述应用识别快表。
即,只有第一处理器可以对该应用识别快表进行写入操作,不允许其他处理器对应用识别快表进行写入操作,避免多个处理器同时进行写操作时影响转发性能,从而保证多个处理器之间并发完全无需加锁。
为便于理解,参见图2,该图为本申请实施例提供的一种应用场景示例图,其中,CPU1和CPU2中为具有报文转发功能的转发处理器,转发处理器属于快速模块,转发处理器进行报文转发相关工作,即存在待转发报文的会话表时基于会话表转发待转发报文,不存在待转发报文的会话表时,建立待转发报文的会话表。
第二处理器中的协议类型识别模块和策略匹配模块属于慢速模块,协议类型识别模块用于根据待转发报文的目的地址以及目的端口识别对应的协议类型,策略匹配模块用于根据待转发报文的协议类型进行会话表建立策略的匹配,并将匹配结果发送给对应的转发处理器,由转发处理器根据匹配结果建立该待转发报文的会话表。
应用识别快表所在的第一处理器CPUS也属于快速模块,即第一处理器 CPUS中保存有应用识别快表,只有CPUS可以对应用识别快表进行写入(包括增加、删除、替换)操作,而转发处理器或者第二处理器只能对应用识别快表进行读取和置位操作,从而保证多个处理器竞争完全无需加锁。
当CPU1接收到网卡发送的待转发报文且未保存该待转发报文对应的会话表时,CPU1可以直接查询应用识别快表。当应用识别快表中包括待转发报文对应的父连接信息时,则CPU1根据父连接信息建立待转发报文的会话表。当应用识别快表中仅包括待转发报文对应的协议类型时,则CPU1将待转发报文的协议类型发送给策略匹配模块,由策略匹配模块给出建立会话表的策略。
当CPU1获取到策略匹配结果后,根据该策略匹配结果建立待转发报文的会话表。如果该待转发报文为父连接报文时,将CPU1将待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息添加到通知队列中,由 CPUS从通知队列中获取待写入表项写入应用识别模块。
当CPU1通常查询应用识别快表中未包括待转发报文对应的协议类型,则 CPU1将待转发报文发送给协议类型识别模块,以使得协议类型识别模块根据待转发报文的目的地址以及目的端口识别该待转发报文对应的协议类型。然后,协议类型识别模块将待转发报文对应的协议类型发送给策略匹配模块,以获得该待转发报文对应匹配结果,并将匹配结果发送给CPU1。CPU1接收到匹配结果后,根据匹配结果建立该待转发报文的会话表。
同时,当该待转发报文为非动态端口连接报文时,则CPU1将待转发报文的目的地址、目的端口以及对应的协议类型添加到通知队列中,CPUS从通知队列中获取待写入表项,将待写入表项写入应用识别快表中。当待转发报文为动态端口父连接时,则CPU1将待转发报文的目的地址、目的端口、对应的父连接信息以及对应的协议类型添加到通知队列,由CPUS将目的地址、目的端口以及对应的协议类型写入应用识别快表中的非动态表项中,将目的地址、目的端口以及对应父连接信息写入到应用识别快表。
也即本申请实施例中,在快速模块单独构建应用识别快表,当可以在应用识别快表中查找到待转发报文对应的协议类型时,不需要再去慢速模块的协议类型识别模块中识别协议类型,只需要进行策略匹配即可,从而减少了报文进入协议类型识别模块的次数,提升整体性能。
同理,当CPU2接收到网卡发送的待转发报文,也执行上述操作。即,具有转发功能的CPU只能查询应用识别快表,使得多个CPU之间查找无需加锁防止竞争,提升整体转发性能。
以下继续基于上述实施例说明的内容,对第一处理器如何将待写入表项写入应用识别快表的实现方式进行说明。
在一种可能的实现方式中,本实施例提供了一种第一处理器将待写入表项写入应用识别快表实现方案,具体为,第一处理器从内存池中申请空闲表项;第一处理器将空闲表项添加到应用识别快表中;第一处理器将待写入表项写入空闲表项。
在具体实现时,第一处理器可以预先为应用识别快表配置内存池,并将其设置为共享内存方式,以使得其他CPU可以查询该应用识别快表。当存在待写入表项时,从内存池中申请空闲表项,并将该空闲表型添加到应用识别快表中,将待写入表项写入空闲表项,从而完成新表项的添加。
在实际应用时,当待写入表项对应的待转发报文为非动态端口连接报文时,第一处理器从通知队列中获取待写入表项,从通知队列中将该待转发报文的目的地址、目的端口以及对应的协议类型写入非动态表项的空闲表项中。同时,将该表项的类型设置为timer模式,以使得第一处理器维护超时机制。当待写入表项对应的待转发报文为父连接报文时,从通知队列中将该待转发报文的目的地址、目的端口以及对应的父连接信息写入动态表项中空闲表项中。同时,将该表项的类型设置为static模式。
可以理解的是,预先为应用识别快表分配的内存池的空间是有限的,为避免空间占满造成内存泄露,需要及时删除应用识别快表中已经失效的表项,以更新应用识别快表。具体可以为,第一处理器将应用识别快表中超时的非动态端口表项从应用识别快表中删除;和/或,第一处理器将应用识别快表中删除位置一非动态端口表项从应用识别快表中删除。
通过表1可知,应用识别快表中非动态端口表项以及动态端口表项均可以包括删除项,其中非动态端口表项中的删除项可以设置为根据时间进行删除,即将超过预设时间的非动态端口表项从应用识别快表中删除。而应用识别快表中动态端口通过将删除项置一进行删除。当转发处理器从应用识别快表中查找到待转发报文对应的父连接会话信息后,如果需要删除该动态端口表项时,可以由转发处理器将应用识别快表中需要删除的动态端口表项的删除位置一。需要说明的是,转发处理器和第二处理器可以对应用识别快表进行置位操作。
即在具体实现时,当各个转发处理器需要删除应用识别快表中某项动态端口表项时,则可以将该动态端口表项的删除项置一,第一处理器可以定时将置一的动态端口表项删除。也就是,各个转发处理器无法直接删除应用识别快表中的表项,避免多个处理器之间的竞争,提高整体转发性能。
另外,由于动态端口的特殊性,父连接断开后子连接也同时需要删除。同理子连接出现异常,父连接也同样受到影响。在多核系统中,如果父子连接的会话表分别建立在不同转发处理器,那么多处理器在处理会话时,出现竞争或者倒核问题,会导致实现复杂度大幅增加,同时也会影响性能。
为了保证多核之间处理父子连接时无需加锁处理,提升整体性能的同时也减少代码复杂度,将父连接和子连接的会话表建立在同一转发处理器中。具体为,如果根据待转发报文对应的协议类型确定待转发报文为父连接报文,第一处理器将待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息作为动态端口表项写入应用识别快表之后,转发处理器将待转发报文的子连接报文的通信两端标识以及目标处理器的标识写入网络设备,以使网络设备接收到与待转发报文的子连接报文的通信两端标识相匹配的后续报文时,将后续报文发送给目标处理器,目标处理器是根据待转发报文对应的父连接信息确定的。
在具体实现时,当根据待转发报文对应的协议类型确定待转发报文为父连接报文时,可以根据父连接信息确定出父连接报文的会话表所在转发处理器,即为目标处理器。
然后为使得子连接的会话表与父连接的会话表可以建立在同一个处理器,则转发处理器可以将待转发报文的子连接报文的通信两端标识以及目标处理器的标识写入网络设备,以使所述网络设备接收到与所述待转发报文的子连接报文的通信两端标识相匹配的后续报文时,将所述后续报文发送给所述目标处理器。即后续接收到的报文为父连接报文对应的子连接报文时,也可以进入父连接报文的会话表所在转发处理器。
其中,待转发报文的子连接报文的通信两端标识可以为源IP地址以及目的IP地址,目标处理器的标识可以为ID。当网络设备接收到的后续报文时,则将该后续报文的源IP地址与目的IP地址与网络设备保存的源IP地址以及目的IP地址匹配时,则将后续报文发送到对应的ID目标处理器中,以便该目标处理器可以根据会话表转发后续报文。其中,网络设备可以为网卡,也可以为防火墙,本实施例在此不做限定。
在具体实现时,可以将待转发报文的子连接报文的五元组写入网络设备中,其中,待转发报文的子连接报文的五元组可以包括(源地址、源端口、目的地址、目的端口、应用协议)以及(目的地址、目的端口、源地址、源端口、应用协议)。则在匹配时,可以根据后续报文的五元组获得匹配结果。
综上所述,通过应用识别快表可以提高新建报文会话时的查找效率,同时应用识别快表设计为局部表项,且表项添加采用内存池机制,仅应用识别快表所在的第一处理器CPUS可以进行增加、删除、替换操作,其他处理器则只能进行查找操作和置位操作。应用识别快表的写入表项操作并不是其他处理器直接操作应用识别快表,而是通过消息队列通知第一处理器CPUS来增加、删除表项。
多个转发处理器之间可以同时进行查找应用识别快表操作,完全不需要加锁操作,保证多个转发处理器转发性能,不因为查找应用识别快表有任何影响。另外应用识别快表中由动态端口表项和非动态端口表项组成,分别采用不同的超时机制维护,避免因为队列堵塞等原因造成内存泄漏。
最后,动态端口父子连接的会话表被设计为同一个转发处理器获得,减少竞争处理导致的性能开销,减少实现复杂度。
基于上述方法实施例,本申请实施例还提供了一种报文转发设备,下面将结合附图对该设备进行说明。
参见图3,该图为本申请实施例提供的一种报文转发设备结构图,如图3 所示,该设备可以包括:第一处理器301、转发处理器302以及第二处理器303。
所述第一处理器301,用于建立应用识别快表,所述应用识别快表中保存有非动态端口表项以及动态端口表项,每一所述非动态端口表项包括目的地址、目的端口以及对应的协议类型,每一所述动态端口表项包括目的地址、目的端口以及对应的父连接信息;
所述转发处理器302,用于接收待转发报文,查找是否存在所述待转发报文的会话表;如果存在所述待转发报文的会话表,获取所述待转发报文的会话表;如果不存在所述待转发报文的会话表,根据所述待转发报文的目的地址以及目的端口在所述应用识别快表中进行查找;如果从所述应用识别快表中查找到所述待转发报文对应的协议类型且未查找到所述待转发报文对应的父连接信息,根据所述待转发报文对应的协议类型建立所述待转发报文的会话表;如果从所述应用识别快表中未查找到所述待转发报文对应的协议类型,将所述待转发报文发送给第二处理器;
所述第二处理器303,用于根据所述待转发报文的目的地址以及目的端口识别对应的协议类型;
所述转发处理器302,还用于根据所述待转发报文对应的协议类型建立所述待转发报文的会话表;如果从所述应用识别快表中查找到所述待转发报文对应的父连接信息,根据所述待转发报文对应的父连接信息建立所述待转发报文的会话表;根据所述待转发报文的会话表对所述待转发报文进行转发。
在一种可能的实现方式中,如果所述第二处理器根据所述待转发报文的目的地址以及目的端口识别对应的协议类型之后,所述第一处理器,还用于将所述待转发报文的目的地址、目的端口以及对应的协议类型作为所述非动态端口表项写入所述应用识别快表。
在一种可能的实现方式中,所述转发处理器从所述应用识别快表中查找到所述待转发报文对应的协议类型之后,或者,所述转发处理器获取所述待转发报文对应的协议类型之后,如果根据所述待转发报文对应的协议类型确定所述待转发报文为父连接报文,所述第一处理器,还用于将所述待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息作为所述动态端口表项写入所述应用识别快表。
在一种可能的实现方式中,所述第二处理器,具体用于将所述待转发报文的目的地址、目的端口以及对应的协议类型添加到通知队列;
所述第一处理器,具体用于从所述通知队列中读取所述待转发报文的目的地址、目的端口以及对应的协议类型,将所述待转发报文的目的地址、目的端口以及对应的协议类型作为所述非动态端口表项确定为待写入表项;将所述待写入表项写入所述应用识别快表。
在一种可能的实现方式中,所述转发处理器,具体用于将所述待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息添加到通知队列;
所述第一处理器,具体用于从所述通知队列中读取所述待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息,将所述待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息作为所述动态端口表项确定为待写入表项;将所述待写入表项写入所述应用识别快表。
在一种可能的实现方式中,所述第一处理器,具体用于从内存池中申请空闲表项;将所述空闲表项添加到所述应用识别快表中;将所述待写入表项写入所述空闲表项。
在一种可能的实现方式中,所述第一处理器,还用于将所述应用识别快表中超时的非动态端口表项从所述应用识别快表中删除;
和/或,所述第一处理器,还用于将所述应用识别快表中删除位置一动态端口表项从所述应用识别快表中删除。
在一种可能的实现方式中,所述转发处理器,还用于将所述应用识别快表中需要删除的动态端口表项的删除位置一。
在一种可能的实现方式中,如果根据所述待转发报文对应的协议类型确定所述待转发报文为父连接报文,所述第一处理器将所述待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息作为所述动态端口表项写入所述应用识别快表之后,所述转发处理器,还用于将所述待转发报文的子连接报文的通信两端标识以及目标处理器的标识写入网络设备,以使所述网络设备接收到与所述待转发报文的子连接报文的通信两端标识相匹配的后续报文时,将所述后续报文发送给所述目标处理器,所述目标处理器是根据所述待转发报文对应的父连接信息确定的。
需要说明的是,本实施例中各个模块的实现已在上述方法实施例中进行详细描述,本实施例在此不再赘述。
另外,本申请实施例还提供一种计算机可读存储介质,所述机算机可读存储介质中存储有指令,当所述指令在报文转发测试设备上运行时,使得所述报文转发测试设备执行所述的报文转发方法。
本申请实施例提供一种计算机程序产品,所述计算机程序产品在报文转发测试设备上运行时,使得所述报文转发测试设备执行所述的报文转发方法。
通过本申请实施例提供的技术方案,应用识别快表中即包括有非子连接报文对应的协议类型,也包括有子连接报文对应的父连接信息。当需要建立非子连接报文的会话表时,可以通过查询应用识别快表获取该非子连接报文对应的协议类型,以便利用该协议类型建立会话表,无需再进行协议类型识别,而且,提高建立会话表效率。而对于需要建立子连接报文的会话表时,通过查询应用识别快表获取该子连接对应的父连接信息,通过该父连接信息直接建立该子连接报文的会话表,提高建立会话表效率,以及降低转发开销。因此,在查找应用识别快表时,不同的报文可以获得相应的信息,提高了查找应用识别快表的效率。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或 c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (12)

1.一种报文转发方法,其特征在于,第一处理器建立应用识别快表,所述应用识别快表中保存有非动态端口表项以及动态端口表项,每一所述非动态端口表项包括目的地址、目的端口以及对应的协议类型,每一所述动态端口表项包括目的地址、目的端口以及对应的父连接信息;所述方法包括:
转发处理器接收待转发报文,查找是否存在所述待转发报文的会话表;
如果存在所述待转发报文的会话表,所述转发处理器获取所述待转发报文的会话表;
如果不存在所述待转发报文的会话表,所述转发处理器根据所述待转发报文的目的地址以及目的端口在所述应用识别快表中进行查找;
如果从所述应用识别快表中查找到所述待转发报文对应的协议类型且未查找到所述待转发报文对应的父连接信息,所述转发处理器根据所述待转发报文对应的协议类型建立所述待转发报文的会话表;
如果从所述应用识别快表中未查找到所述待转发报文对应的协议类型,所述转发处理器将所述待转发报文发送给第二处理器,所述第二处理器根据所述待转发报文的目的地址以及目的端口识别对应的协议类型,所述转发处理器根据所述待转发报文对应的协议类型建立所述待转发报文的会话表;
如果从所述应用识别快表中查找到所述待转发报文对应的父连接信息,所述转发处理器根据所述待转发报文对应的父连接信息建立所述待转发报文的会话表;
所述转发处理器根据所述待转发报文的会话表对所述待转发报文进行转发。
2.根据权利要求1所述的方法,其特征在于,如果所述第二处理器根据所述待转发报文的目的地址以及目的端口识别对应的协议类型之后,所述方法还包括:
所述第一处理器将所述待转发报文的目的地址、目的端口以及对应的协议类型作为所述非动态端口表项写入所述应用识别快表。
3.根据权利要求1所述的方法,其特征在于,所述转发处理器从所述应用识别快表中查找到所述待转发报文对应的协议类型之后,或者,所述转发处理器获取所述待转发报文对应的协议类型之后,所述方法还包括:
如果根据所述待转发报文对应的协议类型确定所述待转发报文为父连接报文,所述第一处理器将所述待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息作为所述动态端口表项写入所述应用识别快表。
4.根据权利要求2所述的方法,其特征在于,所述第一处理器将所述待转发报文的目的地址、目的端口以及对应的协议类型作为所述非动态端口表项写入所述应用识别快表,包括:
所述第二处理器将所述待转发报文的目的地址、目的端口以及对应的协议类型添加到通知队列;
所述第一处理器从所述通知队列中读取所述待转发报文的目的地址、目的端口以及对应的协议类型,将所述待转发报文的目的地址、目的端口以及对应的协议类型作为所述非动态端口表项确定为待写入表项;所述第一处理器将所述待写入表项写入所述应用识别快表。
5.根据权利要求3所述的方法,其特征在于,所述第一处理器将所述待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息作为所述动态端口表项写入所述应用识别快表,包括:
所述转发处理器将所述待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息添加到通知队列;
所述第一处理器从所述通知队列中读取所述待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息,将所述待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息作为所述动态端口表项确定为待写入表项;所述第一处理器将所述待写入表项写入所述应用识别快表。
6.根据权利要求4所述的方法,其特征在于,所述第一处理器将待写入表项写入所述应用识别快表,包括:
所述第一处理器从内存池中申请空闲表项;
所述第一处理器将所述空闲表项添加到所述应用识别快表中;
所述第一处理器将所述待写入表项写入所述空闲表项。
7.根据权利要求5所述的方法,其特征在于,所述第一处理器将待写入表项写入所述应用识别快表,包括:
所述第一处理器从内存池中申请空闲表项;
所述第一处理器将所述空闲表项添加到所述应用识别快表中;
所述第一处理器将所述待写入表项写入所述空闲表项。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述方法还包括:
所述第一处理器将所述应用识别快表中超时的非动态端口表项从所述应用识别快表中删除;
和/或,所述第一处理器将所述应用识别快表中删除位置一动态端口表项从所述应用识别快表中删除。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
所述转发处理器将所述应用识别快表中需要删除的动态端口表项的删除位置一。
10.根据权利要求3所述的方法,其特征在于,如果根据所述待转发报文对应的协议类型确定所述待转发报文为父连接报文,所述第一处理器将所述待转发报文的子连接报文的目的地址、目的端口以及对应的父连接信息作为所述动态端口表项写入所述应用识别快表之后,所述方法还包括:
所述转发处理器将所述待转发报文的子连接报文的通信两端标识以及目标处理器的标识写入网络设备,以使所述网络设备接收到与所述待转发报文的子连接报文的通信两端标识相匹配的后续报文时,将所述后续报文发送给所述目标处理器,所述目标处理器是根据所述待转发报文对应的父连接信息确定的。
11.一种报文转发设备,其特征在于,所述设备包括:
第一处理器、转发处理器以及第二处理器;
所述第一处理器,用于建立应用识别快表,所述应用识别快表中保存有非动态端口表项以及动态端口表项,每一所述非动态端口表项包括目的地址、目的端口以及对应的协议类型,每一所述动态端口表项包括目的地址、目的端口以及对应的父连接信息;
所述转发处理器,用于接收待转发报文,查找是否存在所述待转发报文的会话表;如果存在所述待转发报文的会话表,获取所述待转发报文的会话表;如果不存在所述待转发报文的会话表,根据所述待转发报文的目的地址以及目的端口在所述应用识别快表中进行查找;如果从所述应用识别快表中查找到所述待转发报文对应的协议类型且未查找到所述待转发报文对应的父连接信息,根据所述待转发报文对应的协议类型建立所述待转发报文的会话表;如果从所述应用识别快表中未查找到所述待转发报文对应的协议类型,将所述待转发报文发送给第二处理器;
所述第二处理器,用于根据所述待转发报文的目的地址以及目的端口识别对应的协议类型;
所述转发处理器,还用于根据所述待转发报文对应的协议类型建立所述待转发报文的会话表;如果从所述应用识别快表中查找到所述待转发报文对应的父连接信息,根据所述待转发报文对应的父连接信息建立所述待转发报文的会话表;根据所述待转发报文的会话表对所述待转发报文进行转发。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在报文转发测试设备上运行时,使得所述报文转发测试设备执行权利要求1-10任一项所述的报文转发方法。
CN201811626212.5A 2018-12-28 2018-12-28 一种报文转发方法、设备及存储设备 Active CN109802951B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811626212.5A CN109802951B (zh) 2018-12-28 2018-12-28 一种报文转发方法、设备及存储设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811626212.5A CN109802951B (zh) 2018-12-28 2018-12-28 一种报文转发方法、设备及存储设备

Publications (2)

Publication Number Publication Date
CN109802951A CN109802951A (zh) 2019-05-24
CN109802951B true CN109802951B (zh) 2020-12-29

Family

ID=66558062

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811626212.5A Active CN109802951B (zh) 2018-12-28 2018-12-28 一种报文转发方法、设备及存储设备

Country Status (1)

Country Link
CN (1) CN109802951B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114051060A (zh) * 2022-01-11 2022-02-15 深圳市明源云科技有限公司 多协议共享端口代理转发方法、装置、设备及存储介质
CN114401149B (zh) * 2022-01-30 2022-09-06 杭州立思辰安科科技有限公司 防火墙网卡负载均衡机制中协议动态端口处理方法、系统、设备和存储介质
CN115065735A (zh) * 2022-03-08 2022-09-16 阿里巴巴(中国)有限公司 报文处理方法及电子设备
CN114978807A (zh) * 2022-05-12 2022-08-30 北京天融信网络安全技术有限公司 一种通信方法及电子设备
CN114978643B (zh) * 2022-05-13 2023-08-29 北京天融信网络安全技术有限公司 一种通信方法、网络设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101499958A (zh) * 2008-02-01 2009-08-05 华为技术有限公司 高速物理接口实现子接口的方法、系统和路由设备
CN106059945A (zh) * 2016-05-13 2016-10-26 浙江宇视科技有限公司 一种流量控制方法及视频监控系统
CN106789617A (zh) * 2016-12-22 2017-05-31 东软集团股份有限公司 一种报文转发方法及装置
US9960951B1 (en) * 2016-03-15 2018-05-01 CSC Holdings, LLC System, method, and medium for determining a failure of a network element
CN108363621A (zh) * 2018-01-18 2018-08-03 东软集团股份有限公司 numa架构下的报文转发方法、装置、存储介质及电子设备
WO2018174512A1 (ko) * 2017-03-20 2018-09-27 엘지전자 주식회사 공기조화기 및 그 제어방법
CN108667880A (zh) * 2017-03-31 2018-10-16 华为技术有限公司 一种负载均衡系统、方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102761499B (zh) * 2011-04-26 2015-02-04 国基电子(上海)有限公司 网关及其避免受攻击的方法
CN104041095B (zh) * 2012-08-22 2018-05-11 华为技术有限公司 深度报文检测解析结果共享/获取方法、系统及其相应设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101499958A (zh) * 2008-02-01 2009-08-05 华为技术有限公司 高速物理接口实现子接口的方法、系统和路由设备
US9960951B1 (en) * 2016-03-15 2018-05-01 CSC Holdings, LLC System, method, and medium for determining a failure of a network element
CN106059945A (zh) * 2016-05-13 2016-10-26 浙江宇视科技有限公司 一种流量控制方法及视频监控系统
CN106789617A (zh) * 2016-12-22 2017-05-31 东软集团股份有限公司 一种报文转发方法及装置
WO2018174512A1 (ko) * 2017-03-20 2018-09-27 엘지전자 주식회사 공기조화기 및 그 제어방법
CN108667880A (zh) * 2017-03-31 2018-10-16 华为技术有限公司 一种负载均衡系统、方法及装置
CN108363621A (zh) * 2018-01-18 2018-08-03 东软集团股份有限公司 numa架构下的报文转发方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN109802951A (zh) 2019-05-24

Similar Documents

Publication Publication Date Title
CN109802951B (zh) 一种报文转发方法、设备及存储设备
CN109981493B (zh) 一种用于配置虚拟机网络的方法和装置
US10461958B2 (en) Packet transmission method and apparatus
CN111416865B (zh) 一种基于拟态防御的协议代理处理方法及系统
US10979317B2 (en) Service registration method and usage method, and related apparatus
US11201760B2 (en) Data forwarding method and apparatus based on operating system kernel bridge
JP2019525604A (ja) ネットワーク機能nf管理方法及びnf管理装置
CN109088957B (zh) Nat规则管理的方法、装置和设备
CN109474713B (zh) 报文转发方法和装置
CN110971702A (zh) 服务调用方法、装置、计算机设备及存储介质
CN114500467A (zh) 一种地址冲突检测方法、地址冲突检测装置及电子设备
US10904094B2 (en) Extending a known topology of a network using data obtained from monitoring the network
KR20110063328A (ko) 물리적 인터페이스 질의 및 선택을 갖는 원격 프로지져 로출(rpc) 바인드 서비스
CN107077429A (zh) 数据读取方法、设备和系统
CN111049750B (zh) 一种报文转发方法、系统及设备
CN110855810B (zh) 一种nat转换方法、装置、网络安全设备及存储介质
EP3939236B1 (en) Node and cluster management on distributed self-governed ecosystem
CN106790441B (zh) 创建策略模板表的方法及装置、会话处理的方法及装置
EP4383076A1 (en) Data processing method and apparatus, computer device, and computer-readable storage medium
CN116016448A (zh) 一种服务网络访问方法、装置、设备及存储介质
CN111193805B (zh) 一种资源发现的方法及装置
CN110912797B (zh) 一种广播报文的转发方法及装置
CN115225634A (zh) 虚拟网络下的数据转发方法、装置及计算机程序产品
US20210377718A1 (en) Pattern affinity for discovery
CN112612793A (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
GR01 Patent grant
GR01 Patent grant