一种报文处理方法以及装置与流程

文档序号:32864278发布日期:2023-01-07 01:29阅读:30来源:国知局
一种报文处理方法以及装置与流程

1.本说明书涉及通信技术领域,尤其涉及一种报文处理方法以及装置。


背景技术:

2.随着互联网技术的发展和深入,人们对于信息安全的需求也逐渐增加,具有信息分析和信息过滤等功能的网络设备也逐渐被应用到互联网中,比如防火墙设备。在当前的网络环境中,需要处理的业务类型也越来越多,流量模式也越来越复杂,一些业务需要按照顺序对报文进行处理和发送,即保序。比如,在防火墙设备等网络设备对报文进行dpi(深度包检测技术,deep packet inspection)时,需要按照报文的先后顺序将其上送到同一个处理器核进行处理。
3.在通过哈希运输进行负载分担时,如果出现大流量的、需要保序的报文,则可能导致这些报文被分配至占用率较高的处理器核,从而造成报文在该处理器核的拥塞,乃至丢包,降低了网络设备进行报文处理和转发的可靠性。


技术实现要素:

4.为克服相关技术中存在的问题,本说明书提供了一种报文处理方法以及装置。
5.结合本说明书实施方式的第一方面,本技术提供了一种报文处理方法,包括:
6.缓存接收到的报文,并在处理器中的收发核所对应的发送队列中记录报文的缓存地址和被置为第一值的转发标记,其中,转发标记为第一值时表示所缓存的报文不能被转发,转发标记为第二值时表示所缓存的报文能够被转发;
7.若确定报文需要进行保序,则根据报文的五元组信息进行哈希运算所得到的哈希结果,将报文上送至处理器中对应的数据核进行处理,并在处理后将转发标记置为第二值;
8.若确定报文不需要进行保序,则根据处理器中各数据核的占用率分发报文进行处理,并在处理后将转发标记置为第二值;
9.按照记录顺序对处理器中各收发核所对应的发送队列进行扫描,若当前的转发标记被置为第一值,则停止对报文的发送,若当前的转发标记被置为第二值,则根据缓存地址读出报文并发送。
10.可选的,在发送队列中,转发标记位于缓存地址前。
11.可选的,缓存接收到的报文,并在处理器中的收发核所对应的发送队列中记录报文的缓存地址和被置为第一值的转发标记,包括:
12.若在快速转发表中匹配到与报文所对应的表项,则基于匹配到的表项对报文进行转发;
13.若在快速转发表中未匹配到与报文所对应的表项,则缓存报文,并在处理器中的收发核所对应的发送队列中记录报文的缓存地址和被置为第一值的转发标记。
14.结合本说明书实施方式的第二方面,本技术提供了一种报文处理装置,包括:
15.缓存单元,用于缓存接收到的报文,并在处理器中的收发核所对应的发送队列中
记录报文的缓存地址和被置为第一值的转发标记,其中,转发标记为第一值时表示所缓存的报文不能被转发,转发标记为第二值时表示所缓存的报文能够被转发;
16.分发单元,用于若确定报文需要进行保序,则根据报文的五元组信息进行哈希运算所得到的哈希结果,将报文上送至处理器中对应的数据核进行处理,若确定报文不需要进行保序,则根据处理器中各数据核的占用率分发报文进行处理
17.标记单元,用于在处理后将报文所对应的转发标记置为第二值;
18.发送单元,用于按照记录顺序对处理器中各收发核所对应的发送队列进行扫描,若当前的转发标记被置为第一值,则停止对报文的发送,若当前的转发标记被置为第二值,则根据缓存地址读出报文并发送。
19.可选的,在发送队列中,转发标记位于缓存地址前。
20.可选的,缓存单元,具体用于若在快速转发表中匹配到与报文所对应的表项,则通过发送单元基于匹配到的表项对报文进行转发;若在快速转发表中未匹配到与报文所对应的表项,则缓存报文,并在处理器中的收发核所对应的发送队列中记录报文的缓存地址和被置为第一值的转发标记。
21.结合本说明书实施方式的第三方面,本技术提供了一种网络设备,包括:处理器、机器可读存储介质以及收发器;
22.处理器,包括一个或多个收发核和数据核,其中,每个收发核设置有发送队列;
23.机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器被机器可执行指令促使:
24.缓存通过收发器接收到的报文,并在处理器中的收发核所对应的发送队列中记录报文的缓存地址和被置为第一值的转发标记,其中,转发标记为第一值时表示所缓存的报文不能被转发,转发标记为第二值时表示所缓存的报文能够被转发;
25.若确定报文需要进行保序,则根据报文的五元组信息进行哈希运算所得到的哈希结果,将报文上送至处理器中对应的数据核进行处理,并在处理后将转发标记置为第二值;
26.若确定报文不需要进行保序,则根据处理器中各数据核的占用率分发报文进行处理,并在处理后将转发标记置为第二值;
27.按照记录顺序对处理器中各收发核所对应的发送队列进行扫描,若当前的转发标记被置为第一值,则停止对报文的发送,若当前的转发标记被置为第二值,则根据缓存地址读出报文并通过收发器进行发送。
28.可选的,在发送队列中,转发标记位于缓存地址前。
29.可选的,缓存通过收发器接收到的报文,并在处理器中的收发核所对应的发送队列中记录报文的缓存地址和被置为第一值的转发标记,包括:
30.若在快速转发表中匹配到与报文所对应的表项,则基于匹配到的表项通过收发器对报文进行转发;
31.若在快速转发表中未匹配到与报文所对应的表项,则缓存报文,并在处理器中的收发核所对应的发送队列中记录报文的缓存地址和被置为第一值的转发标记。
32.可选的,网络设备为防火墙设备。
33.结合本说明书实施方式的第四方面,本技术提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,机器可执行指令促使处理器:实现上述任一
项的方法步骤。
34.本说明书的实施方式提供的技术方案可以包括以下有益效果:
35.本说明书实施方式中,通过将处理器的核分为用于接收和发送报文的收发核以及用于对报文进行处理的数据核,将需要保序处理和无需保序处理的报文进行区分,使相对空闲的数据核处理无需保序的报文,根据五元组信息进行哈希将需要保序的报文上送至一个数据核处理,在收发核所对应的发送队列中检测到未处理完成的报文则停止该报文的发送,从而保证报文的保序以及均衡的负载分担,提升网络设备进行报文处理和转发的可靠性。
36.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
37.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施方式,并与说明书一起用于解释本说明书的原理。
38.图1是本技术所涉及的一种报文处理方法的流程图;
39.图2是本技术所涉及的一种网络设备的结构示意图;
40.图3是本技术实施方式所涉及的一种网络设备中的处理器的结构示意图,其中,处理器中挂载有快速转发表;
41.图4是本技术实施方式所涉及的一种网络设备中的处理器的结构示意图,其中,通过快速转发表对报文分发;
42.图5是本技术实施方式所涉及的一种网络设备对报文进行分发的示意图;
43.图6是本技术实施方式所涉及的一种网络设备中报文与发送队列的对应关系的示意图;
44.图7是本技术实施方式所涉及的报文处理装置的结构示意图。
具体实施方式
45.这里将详细地对示例性实施方式进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施方式中所描述的实施方式并不代表与本说明书相一致的所有实施方式。
46.本技术提供了一种报文处理方法,如图1所示,包括:
47.s100、缓存接收到的报文,并在处理器中的收发核所对应的发送队列中记录报文的缓存地址和被置为第一值的转发标记。
48.如图2所示,网络设备,包括处理器、内存、机器可读存储介质、收发器以及总线,通过总线连接处理器、内存、机器可读存储介质和收发器。
49.在处理器中形成有多个处理器核,从功能上将处理器核分为收发核和数据核,其中,收发核用于接收、根据报文进行查表以及发送报文,数据核用于处理接收到的报文,以图2为例,处理器中设置有一个收发核和三个数据核。
50.在内存中或者处理器中的存储器中可以形成有发送队列,该发送队列为一段存储空间,每一个发送队列对应到一个收发核,该发送队列被设定为先入先出的读写方式。在收
发核通过收发器接收到报文后,可以对报文进行缓存,将缓存该报文的缓存地址记录到发送队列中,并且根据对该报文的报文头进行读取和解析。
51.在记录缓存地址时,还需要记录转发标记,该转发标记用于标识该报文是否需要数据核进行处理。在转发标记为第一值时表示所缓存的报文不能被转发,转发标记为第二值时表示所缓存的报文能够被转发,后述以第一值为0,第二值为1为例进行描述。该转发标记可以根据需要设置于一个报文所对应的缓存地址之前,或者在该缓存地址之后,为了能够快速且无读取消耗地确定当前报文是否能够被发送,在发送队列中,转发标记位于缓存地址前。
52.为了加快报文的转发速率,可选的,步骤s100、缓存接收到的报文,并在处理器中的收发核所对应的发送队列中记录报文的缓存地址和被置为第一值的转发标记,包括:
53.s100a、若在快速转发表中未匹配到与报文所对应的表项,则缓存报文,并在处理器中的收发核所对应的发送队列中记录报文的缓存地址和被置为第一值的转发标记。
54.在网络设备中,针对五元组信息相同的数据流,可以生成快速转发表,该快速转发表中可以记录有数据流的五元组信息。在数据流的首报文到达时,由于快速转发表中未存储有与该报文对应的表项,处理器中的收发核确定需要通过处理器的数据核对该报文进行解析和处理。此时,先将该报文进行缓存,在发送队列中记录转发标记为第一值,并缓存报文的缓存地址。
55.由于该报文的转发标记被标记为第一值,说明该报文需要进行处理暂时不能进行转发,之后,可以将该报文发送至处理器的一个数据核进行处理。处理的过程包括但不限于获取其中的五元组信息,确定转发方式,生成包含五元组信息的快速转发表的表项。针对是否需要进行保序处理,在后续的描述中进行描述。
56.数据核对报文进行处理后,通过收发核将该报文转发出去,此时,在快速转发表中生成了该数据流的报文所对应的表项。
57.s100b、若在快速转发表中匹配到与报文所对应的表项,则基于匹配到的表项对报文进行转发。
58.如果收发核接收到的数据流中包含有已经生成的五元组信息,说明该数据流的报文已经经过了数据核的处理,后续,如图3所示,数据流中的报文可以直接由处理器查表获得出接口等信息进行转发。在快速转发表中匹配到表项的报文无需进行上述的缓存,直接进行转发即可,从而加快处理器对于数据流的转发效率。
59.s101、若确定报文需要进行保序,则根据报文的五元组信息进行哈希运算所得到的哈希结果,将报文上送至处理器中对应的数据核进行处理,并在处理后将转发标记置为第二值。
60.在数据核对报文进行解析时,可以根据首报文的报文头中的信息(例如报文的协议类型)确定该报文是否需要进行保序处理。比如,如果报文为tcp(传输控制协议,transmission control protocol)或udp(用户数据报协议,user datagram protocol)的报文,则确定该报文需要进行保序,如果报文为arp(地址解析协议,address resolution protocol)则确定该报文无需进行保序。
61.在处理器的收发核确定该报文需要进行保序,收发核可以根据报文的五元组信息进行哈希运算,并基于哈希运算的哈希结果将该报文上送至对应的数据核进行处理,如图4
所示,收发核可以根据哈希结果将报文1上送至数据核1进行处理。
62.数据核1接收到报文1后,对报文1进行解析并进行处理,处理后将对应的转发标记置为1,从而标记该报文能够被转发。
63.由于这些需要进行保序的报文经过了处理器的哈希运算,能够保证具有相同五元组信息的报文被上送至同一个数据核进行处理,从而保证了这些报文的处理顺序。
64.s102、若确定报文不需要进行保序,则根据处理器中各数据核的占用率分发报文进行处理,并在处理后将转发标记置为第二值。
65.处理器在运行过程中,会检测并记录每一个处理器核当前的占用率。在如图5所示的场景中,如收发核确定报文2无需进行保序处理,则可以基于占用率从多个数据核中选择一个处于相对空闲状态的数据核处理该报文。比如,在数据核1的占用率为25%,数据核2的占用率为10%,数据核3的占用率为40%的情况下,处理器的收发核在确定数据流的报文无需进行保序时,可以根据各数据核的占用率将报文2分发到数据核2进行处理。
66.在数据核2处理后,可以将发送队列中与报文2相对应的转发标记置为0,以表示报文2已完成处理,可以进行转发。
67.s103、按照记录顺序对处理器中各收发核所对应的发送队列进行扫描,若当前的转发标记被置为第一值,则停止对报文的发送,若当前的转发标记被置为第二值,则根据缓存地址读出报文并发送。
68.收发核在工作过程中,持续扫描与其相对应的发送队列中所记录的信息,如图6所示,发送队列中记录有三对缓存地址和转发标记,其中,缓存地址1和缓存地址2所对应的报文10和报文11为需要进行保序处理的数据流中的报文,缓存地址3所对应的报文20为无需进行保序处理的数据流中的报文。在扫描到转发标记1时,确定该转发标记为1,与该转发标记1相对应的报文10可以被转发,收发核根据缓存地址1从缓存中读取出报文10,并通过收发器进行转发。之后,收发核扫描到转发标记2,确定该转发标记为0,不能被转发,收发核停止对于后续转发标记和缓存地址的读取,等待报文11被处理完成。在报文11被数据核1处理完成后,报文11对应的转发标记2从0被置为1,收发核在扫描到该转发标记2被置为1后,根据缓存地址2从缓存中读取出报文11并转发。
69.此后,收发核可以继续扫描,在转发标记3被置为1的情况下,发送后续的报文20。
70.通过将处理器的核分为用于接收和发送报文的收发核以及用于对报文进行处理的数据核,将需要保序处理和无需保序处理的报文进行区分,使相对空闲的数据核处理无需保序的报文,根据五元组信息进行哈希将需要保序的报文上送至一个数据核处理,在收发核所对应的发送队列中检测到未处理完成的报文则停止该报文的发送,从而保证报文的保序以及均衡的负载分担,提升网络设备进行报文处理和转发的可靠性。
71.相对应的,本技术提供了一种报文处理装置,如图7所示,包括:
72.缓存单元,用于缓存接收到的报文,并在处理器中的收发核所对应的发送队列中记录报文的缓存地址和被置为第一值的转发标记,其中,转发标记为第一值时表示所缓存的报文不能被转发,转发标记为第二值时表示所缓存的报文能够被转发;
73.分发单元,用于若确定报文需要进行保序,则根据报文的五元组信息进行哈希运算所得到的哈希结果,将报文上送至处理器中对应的数据核进行处理,若确定报文不需要进行保序,则根据处理器中各数据核的占用率分发报文进行处理
74.标记单元,用于在处理后将报文所对应的转发标记置为第二值;
75.发送单元,用于按照记录顺序对处理器中各收发核所对应的发送队列进行扫描,若当前的转发标记被置为第一值,则停止对报文的发送,若当前的转发标记被置为第二值,则根据缓存地址读出报文并发送。
76.可选的,在发送队列中,转发标记位于缓存地址前。
77.可选的,缓存单元,具体用于若在快速转发表中匹配到与报文所对应的表项,则通过发送单元基于匹配到的表项对报文进行转发;若在快速转发表中未匹配到与报文所对应的表项,则缓存报文,并在处理器中的收发核所对应的发送队列中记录报文的缓存地址和被置为第一值的转发标记。
78.相对应的,本技术提供了一种网络设备,如图2所示,包括:处理器、机器可读存储介质以及收发器;
79.处理器,包括一个或多个收发核和数据核,其中,每个收发核设置有发送队列;
80.机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器被机器可执行指令促使:
81.缓存通过收发器接收到的报文,并在处理器中的收发核所对应的发送队列中记录报文的缓存地址和被置为第一值的转发标记,其中,转发标记为第一值时表示所缓存的报文不能被转发,转发标记为第二值时表示所缓存的报文能够被转发;
82.若确定报文需要进行保序,则根据报文的五元组信息进行哈希运算所得到的哈希结果,将报文上送至处理器中对应的数据核进行处理,并在处理后将转发标记置为第二值;
83.若确定报文不需要进行保序,则根据处理器中各数据核的占用率分发报文进行处理,并在处理后将转发标记置为第二值;
84.按照记录顺序对处理器中各收发核所对应的发送队列进行扫描,若当前的转发标记被置为第一值,则停止对报文的发送,若当前的转发标记被置为第二值,则根据缓存地址读出报文并通过收发器进行发送。
85.可选的,在发送队列中,转发标记位于缓存地址前。
86.可选的,缓存通过收发器接收到的报文,并在处理器中的收发核所对应的发送队列中记录报文的缓存地址和被置为第一值的转发标记,包括:
87.若在快速转发表中匹配到与报文所对应的表项,则基于匹配到的表项通过收发器对报文进行转发;
88.若在快速转发表中未匹配到与报文所对应的表项,则缓存报文,并在处理器中的收发核所对应的发送队列中记录报文的缓存地址和被置为第一值的转发标记。
89.可选的,网络设备为防火墙设备。
90.可选的,网络设备,还包括内存,该发送队列形成与内存中。
91.相对应的,本技术提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,机器可执行指令促使处理器:实现上述任一项的方法步骤。
92.本说明书的实施方式提供的技术方案可以包括以下有益效果:
93.本说明书实施方式中,通过将处理器的核分为用于接收和发送报文的收发核以及用于对报文进行处理的数据核,将需要保序处理和无需保序处理的报文进行区分,使相对空闲的数据核处理无需保序的报文,根据五元组信息进行哈希将需要保序的报文上送至一
个数据核处理,在收发核所对应的发送队列中检测到未处理完成的报文则停止该报文的发送,从而保证报文的保序以及均衡的负载分担,提升网络设备进行报文处理和转发的可靠性。
94.应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。
95.以上所述仅为本说明书的较佳实施方式而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1