加速报文转发的方法、装置、电子设备及存储介质与流程

未命名 09-24 阅读:49 评论:0


1.本发明涉及通信技术领域,尤其涉及一种加速报文转发的方法、装置、电子设备及存储介质。


背景技术:

2.网络层是开放式系统互联通信参考模型(open system interconnection reference mode,osi)中的第三层,介于传输层和数据链路层之间,主要用于实现两个网络系统数据之间的透明传送。网络层通过互联网协议(internet protocol,ip)寻址来建立两个节点之间的连接,为源端的传输层送来的报文选择合适的路由和交换节点,正确无误地按照地址传送给目的端的传输层。网络层也称为ip协议层或ip层。
3.现有技术中,ip层转发报文的流程较长,根据转发报文类型(如内网报文和远端报文)和设备配置(如源网络地址转换(network address translation,nat)和目的nat)的不同,转发流程可能涉及桥接、目的nat、源nat、路由查找、邻居信息查找等多个流程,每个流程都有一系列的耗时计算操作,每个报文均需要经历上述耗时流程中的一个或多个,严重消耗了系统资源,降低了系统的吞吐率。


技术实现要素:

4.针对现有技术存在的问题,本发明提供一种加速报文转发的方法、装置、电子设备及存储介质。
5.第一方面,本发明提供一种加速报文转发的方法,包括:获取互联网协议ip层连接的首包从以太网入接口到以太网出接口的转发过程中的信息;基于所述转发过程中的信息,创建所述ip层连接对应的报文转发规则,并将所述报文转发规则添加到转发规则集合中;在接收到新的报文后,基于所述转发规则集合进行所述报文的转发处理。
6.在一些实施例中,所述报文转发规则中包括以下至少一项:报文五元组信息;网络地址转换nat信息;桥接转换信息;以太网接口信息;时间戳信息。
7.在一些实施例中,所述报文五元组信息包括原始报文五元组信息、出方向报文五元组信息和回方向报文五元组信息中的至少一项。
8.在一些实施例中,所述nat信息包括目的nat转换信息和源nat转换信息中的至少一项。
9.在一些实施例中,所述以太网接口信息包括以下至少一项:
以太网入接口和所述以太网入接口的媒体访问控制mac地址;以太网出接口和所述以太网出接口的mac地址。
10.在一些实施例中,所述基于所述转发规则集合进行所述报文的转发处理,包括:使用所述报文的原始报文五元组信息查询所述转发规则集合;在查询到匹配的报文转发规则的情况下,根据所述匹配的报文转发规则完成所述报文的修改和重新封装,并将封装后的报文转发给所述匹配的报文转发规则中的以太网出接口。
11.在一些实施例中,所述根据所述匹配的报文转发规则完成所述报文的修改和重新封装,包括:根据所述匹配的报文转发规则更新所述报文的ip层报头和传输层报头;更新所述报文的生存时间ttl值,并重新计算所述报文的首部校验和;使用邻居信息封装所述报文的以太网报头。
12.在一些实施例中,所述根据所述匹配的报文转发规则完成所述报文的修改和重新封装,包括:根据所述匹配的报文转发规则中的时间戳信息,判断所述匹配的报文转发规则是否超时;在所述匹配的报文转发规则未超时的情况下,根据所述匹配的报文转发规则完成所述报文的修改和重新封装。
13.在一些实施例中,所述方法还包括:确定所述报文成功发出,更新所述匹配的报文转发规则中的时间戳信息。
14.在一些实施例中,在基于所述转发规则集合进行所述报文的转发处理之前,所述方法还包括:检测所述报文是否为ipv4或ipv6报文;在所述报文为ipv4或ipv6报文的情况下,对所述报文进行合法性检查。
15.第二方面,本发明还提供一种加速报文转发的装置,包括:信息获取模块,用于获取互联网协议ip层连接的首包从以太网入接口到以太网出接口的转发过程中的信息;规则创建模块,用于基于所述转发过程中的信息,创建所述ip层连接对应的报文转发规则,并将所述报文转发规则添加到转发规则集合中;转发处理模块,用于在接收到新的报文后,基于所述转发规则集合进行所述报文的转发处理。
16.在一些实施例中,所述报文转发规则中包括以下至少一项:报文五元组信息;网络地址转换nat信息;桥接转换信息;以太网接口信息;时间戳信息。
17.在一些实施例中,所述报文五元组信息包括原始报文五元组信息、出方向报文五元组信息和回方向报文五元组信息中的至少一项。
18.在一些实施例中,所述nat信息包括目的nat转换信息和源nat转换信息中的至少一项。
19.在一些实施例中,所述以太网接口信息包括以下至少一项:以太网入接口和所述以太网入接口的媒体访问控制mac地址;以太网出接口和所述以太网出接口的mac地址。
20.在一些实施例中,所述基于所述转发规则集合进行所述报文的转发处理,包括:使用所述报文的原始报文五元组信息查询所述转发规则集合;在查询到匹配的报文转发规则的情况下,根据所述匹配的报文转发规则完成所述报文的修改和重新封装,并将封装后的报文转发给所述匹配的报文转发规则中的以太网出接口。
21.在一些实施例中,所述根据所述匹配的报文转发规则完成所述报文的修改和重新封装,包括:根据所述匹配的报文转发规则更新所述报文的ip层报头和传输层报头;更新所述报文的生存时间ttl值,并重新计算所述报文的首部校验和;使用邻居信息封装所述报文的以太网报头。
22.在一些实施例中,所述根据所述匹配的报文转发规则完成所述报文的修改和重新封装,包括:根据所述匹配的报文转发规则中的时间戳信息,判断所述匹配的报文转发规则是否超时;在所述匹配的报文转发规则未超时的情况下,根据所述匹配的报文转发规则完成所述报文的修改和重新封装。
23.在一些实施例中,所述装置还包括:时间戳更新模块,用于确定所述报文成功发出,更新所述匹配的报文转发规则中的时间戳信息。
24.在一些实施例中,所述装置还包括检查模块,用于:在基于所述转发规则集合进行所述报文的转发处理之前,检测所述报文是否为ipv4或ipv6报文;在所述报文为ipv4或ipv6报文的情况下,对所述报文进行合法性检查。
25.第三方面,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述第一方面所述的加速报文转发的方法。
26.第四方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上所述第一方面所述的加速报文转发的方法。
27.本发明提供的加速报文转发的方法、装置、电子设备及存储介质,通过获取ip层连接的首包从以太网入接口到以太网出接口的转发过程中的信息来创建每条ip层连接对应的报文转发规则,并添加到转发规则集合中用于后续报文的转发处理,可以大大节省后续报文的转发处理流程,大幅节省了系统资源,提高了系统吞吐率。
附图说明
28.为了更清楚地说明本发明或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
29.图1为相关技术提供的ip报文格式的示意图;图2为相关技术提供的常见网络层报文发送路径示意图;图3为相关技术提供的转发报文流程的示意图;图4为本发明提供的加速报文转发的方法的流程示意图;图5为本发明提供的信息收集点位置示例图;图6为本发明提供的ip层报文加速处理流程示例图;图7为本发明提供的加速报文转发的装置的结构示意图;图8为本发明提供的电子设备的结构示意图。
具体实施方式
30.本发明中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
31.本发明中术语“多个”是指两个或两个以上,其它量词与之类似。
32.本发明中术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”所区别的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。
33.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
34.为了便于更加清晰地理解本发明的技术方案,首先对本发明相关的一些技术内容进行介绍。
35.ip协议是传输控制协议(transmission control protocol,tcp)/ip协议簇中的核心协议,也是tcp/ip的载体,所有tcp、用户数据报协议(user datagram protocol,udp)、互联网控制消息协议(internet control message protocol,icmp)和互联网组管理协议(internet group management protocol,igmp)的协议数据都以ip数据报格式在协议栈中传输,ip协议提供不可靠、无连接的数据传输服务。
36.不可靠指的是ip协议不保证数据报能成功送达目的地,ip协议只提供尽量好的传输服务。如果传输过程中出现错误,如路径上的某个路由器暂时用尽它的缓存区,导致新数据报无法被正常转发,ip协议将简单的丢弃该数据报,并给源端发送一个icmp消息,具体的可靠性要求由更高层的协议保证。
37.无连接指ip协议不维护后续数据报的状态信息,每个数据报的处理都是互相独立
的。数据报可以不按照发送顺序接收,因为连续发送的数据报分别独立进行路由选择,可能因为网络拓扑变化而选择不同的路线,因此可能顺序发送的数据报并非顺序抵达。
38.图1为相关技术提供的ip报文格式的示意图,如图1所示,典型的ip报文格式主要包括以下几项:(1)版本:4位,指ip协议的版本,目前广泛使用的ip协议版本号为4(即ipv4)和6(即ipv6)。
39.(2)首部长度:4位,指的是以32位为单位的报文头长度。
40.(3)服务类型:8位,区分服务字段(differentiated services,ds)。只有在使用区分服务时,这个字段才起作用。
41.(4)总长度:16位,指首部及数据之和的长度,单位是字节。最大长度为65535字节。
42.(5)标识符:16位,用于标识一个报文或同属于一个报文的各个分片。
43.(6)标志:3位,标志字段的最低位记为mf(more fragment),mf=1即表示后面“还有分片”的数据报,mf=0表示这已是若干数据报片中的最后一个。标志字段中间的一位记为df(don’t fragment),意思是“不能分片”,只有当 df=0时才允许分片。
44.(7)偏移:指片偏移,13位,较长的报文在分片后,用于标识某片在原报文中的相对位置。
45.(8)生存期:指生存时间(time to live,ttl),8位,由报文发送端的系统设置,每经过一个路由器转发后其值就减1,减至0后被丢弃。用于避免报文在找不到目地时不断被转发,浪费网络资源。
46.(9)协议:8位,标识上层使用的协议。
47.(10)校验和:指首部校验和,16位,只对ip数据包首部进行校验,不包含数据部分,每经过一个路由器都要重新计算首部校验和。
48.(11)源ip:指源ip地址,32位,表示数据发送端的主机ip。
49.(12)目的ip:指目的ip地址,32位,表示数据要接收的主机ip。
50.(13)选项:选项字段,长度为0-40字节。
51.(14)数据:即数据载荷。
52.图2为相关技术提供的常见网络层报文发送路径示意图,如图2所示,对于不同的场景可以使用不同的报文发送路径。
53.场景1:送往本地主机的报文流程介绍(沿着1-2-3-6-7的路径送达本地主机)。
54.(1)主机从以太网入接口接收到报文。如果报文的目的媒体访问控制(media access control,mac)地址是本地主机,报文将进入ip层进一步处理;如果报文的目的mac地址不是本地主机,报文被丢弃。
55.(2)进ip层的报文在进行路由查找前,要进行合法检查,如果报文分片还要进行报文重组。
56.(3)将合法的报文使用ip地址进行路由查找。对于目的地是本地主机的报文会找到一条指向本地的路由。
57.(4)报文经过传输层协议处理后,经由应用层协议。
58.(5)报文最终交到本地主机的应用程序,即应用程序接收到报文。
59.场景2:转发报文流程介绍(沿着1-2-3-4-5-11-12的路径转发报文)。
60.(1)主机从以太网入接口接收到报文,与送往本地主机的报文流程相同。
61.(2)报文路由前处理,与送往本地主机的报文流程相同。
62.(3)对于转发的报文,路由查找时会发现一条去往其他主机的路由。
63.(4)对报文进行转发合法性检查,回减报文生存期ttl。
64.(5)使用路由信息重新封装报文的以太网报头,将报文交给以太网出接口驱动程序。
65.(6)在以太网出接口将报文重新发出。
66.场景3:本地主机发送报文流程介绍(沿着8-9-10-11-12的路径发送报文)。
67.(1)本地主机应用程序发送的报文经过应用层协议进入网络协议栈。
68.(2)在ip层将报文进行ip封装,如果报文过大,需要对报文进行分片封装发送。
69.(3)使用路由协议查找报文的出接口。
70.(4)使用路由信息封装报文的以太网报头,将报文交给以太网出接口驱动程序。
71.(5)在以太网出接口将报文重新发出。
72.图3为相关技术提供的转发报文流程的示意图,如图3所示,转发报文流程主要包括:(1)报文从以太网入接口进入主机。
73.(2)判断报文是否局域网报文。如果是局域网报文,也就是内网报文,进入网桥处理流程,查询网桥接口选择出接口,进行二层转发。
74.(3)如果报文是远端报文,进入ip层转发报文。
75.(4)判断报文是否需要进行目的nat转换。如果需要进行目的nat转换,进入目的nat转换流程,使用目的nat规则更新报文的目的ip和目的端口。
76.(5)使用报文的目的ip查询路由表,选择报文的出接口。
77.(6)判断报文是否需要进行源nat转换。如果需要进行源nat转换,进入源nat转换流程,使用源nat规则更新报文的源ip和源端口。
78.(7)将报文转发到出接口,对报文进行以太网封装。
79.(8)判断报文使用的邻居信息是否存在。ipv4使用的邻居协议是地址解析协议(address resolution protocol,arp),ipv6使用的邻居协议是邻居发现协议(neighbor discovery protocol,ndp)。如果邻居信息不存在,使用报文对应的邻居协议查询邻居信息。
80.(9)使用邻居信息封装报文的以太网头部。
81.(10)将报文从出接口发出。
82.传统的转发报文方案,每一个待转发的报文都需要经历图3所示的转发报文流程,其中可能涉及桥接、目的nat、源nat、路由查找、邻居信息查找等一系列耗时计算操作,这严重消耗了系统资源,降低了系统的吞吐率。
83.针对上述问题,本发明提供一种解决方案,其实现原理为:ip层五元组(源ip、目的ip、源端口、目的端口、传输层协议)可以用于唯一的标识一条ip层连接,可以将ip层连接的首包从以太网入接口到以太网出接口的转发过程中的信息记录下来,形成报文转发规则供后续的报文使用,从而避免了后续报文的桥接、目的nat、源nat、路由查找等流程的耗时计算,可以节省大量的系统资源,进而提高系统的吞吐率。
84.图4为本发明提供的加速报文转发的方法的流程示意图,如图4所示,该方法包括如下步骤:步骤400、获取互联网协议ip层连接的首包从以太网入接口到以太网出接口的转发过程中的信息。
85.步骤401、基于所述转发过程中的信息,创建所述ip层连接对应的报文转发规则,并将所述报文转发规则添加到转发规则集合中。
86.步骤402、在接收到新的报文后,基于所述转发规则集合进行所述报文的转发处理。
87.具体地,该方法中各步骤的执行主体可以是加速报文转发的装置,该装置可通过软件和/或硬件实现,该装置可集成在电子设备中,电子设备可以是智能控制一体机(比如智能轨道交通领域中集计算、存储、交换、监控等功能为一体的智能控制一体机)、交换机、防火墙、软件定义网络(software-defined networking,sdn)产品等。
88.一条ip层连接是指在互联网上,两台设备之间通过ip协议建立的通信连接。ip层五元组(源ip、目的ip、源端口、目的端口、传输层协议)可用于唯一标识一条ip层连接。ip层连接的首包指的是该ip层连接的第一个数据包(或者称报文、数据报等)。
89.对于每条ip层连接的首包,由于首包转发时,尚未创建该ip层连接对应的报文转发规则,所以首包会沿着普通报文的转发路径转发,比如采用图3所示的报文转发流程。加速报文转发的装置可以获取(收集或记录)每条ip层连接的首包从以太网入接口到以太网出接口的转发过程中的信息,并使用该信息来创建每条ip层连接所对应的报文转发规则,并将该报文转发规则添加到转发规则集合中供后续新接收到的报文转发使用。
90.本发明中,转发规则集合的具体存储形式并不做限制,例如可以是数据库、缓存队列或者其他可用于信息存储的形式。可以理解,在第一条报文转发规则添加到转发规则集合之前,该转发规则集合为空集,随着报文转发规则不断的创建,新的报文转发规则不断添加到该转发规则集合中,因此转发规则集合是不断更新的,对后续新接收到的报文进行转发处理都使用最新的转发规则集合。
91.需要说明的是,步骤402中所述的新的报文可以是将报文转发规则添加到转发规则集合中之后所接收到的任意报文,本发明对此不做限制。例如:该新的报文可以是已创建报文转发规则的ip层连接除首包以外的后续报文,或者可以是尚未创建报文转发规则的新的ip层连接的首包(当然,这些首包可能无法在转发规则集合中查询到匹配的报文转发规则,从而其转发过程不能加速处理)。
92.图5为本发明提供的信息收集点位置示例图,如图5所示,信息收集点(即用于收集每条ip层连接的首包从以太网入接口到以太网出接口的转发过程中的信息的收集点)可以设置在以太网出接口使用邻居信息封装报文阶段(比如报文封装前或报文封装后,具体不做限制,能够完整收集到所需的信息即可,所需收集的信息可以根据实际需要灵活设定)。
93.在一些实施例中,收集的主要信息包括以下至少一项:(1)原始报文五元组(源ip、目的ip、源端口、目的端口、传输层协议)信息,用于唯一标识一条ip层连接。
94.(2)是否需要进行目的nat转换。
95.(3)是否需要进行源nat转换。
96.(4)出方向报文五元组信息,如果进行目的nat转换会改变报文的目的ip和目的端口,如果进行源nat转换会改变报文的源ip和源端口,出方向报文五元组信息用于记录nat转换后的报文五元组信息。
97.(5)是否需要进行桥接转换。
98.(6)以太网入接口和以太网入接口的mac地址。
99.(7)以太网出接口和以太网出接口的mac地址。
100.(8)信息收集的时间戳。
101.加速报文转发的装置可以使用上述收集的信息来创建每条ip层连接所对应的报文转发规则,用于加速后续报文的转发处理。
102.在一些实施例中,所述报文转发规则中可以包括以下至少一项:(1)报文五元组信息。
103.该报文五元组信息包括报文转发过程中涉及到的各种报文五元组(源ip、目的ip、源端口、目的端口和传输层协议)的信息。
104.在一些实施例中,所述报文五元组信息包括原始报文五元组信息、出方向报文五元组信息和回方向报文五元组信息中的至少一项。
105.其中,原始报文五元组信息可以填写上述收集的信息中的原始报文五元组信息;出方向报文五元组信息可以填写上述收集的信息中的出方向报文五元组信息。
106.回方向报文五元组信息指的是ip层连接的回复报文方向的报文五元组信息,可用于快速匹配回应报文。该回方向报文五元组信息与出方向报文五元组信息中源(ip、端口)和目的(ip、端口)地址调换。例如:出方向报文五元组信息(ip1、ip2、端口1、端口2、传输层协议),回方向报文五元组信息(ip2、ip1、端口2、端口1、传输层协议)。该项中可以根据上述收集的信息中的出方向报文五元组信息填写相应的回方向报文五元组信息。
107.(2)网络地址转换nat信息。
108.该nat信息包括报文转发过程中与nat转换相关的各种信息。
109.在一些实施例中,所述nat信息可以是用于指示是否进行nat转换的信息,其可以包括目的nat转换信息和源nat转换信息中的至少一项。
110.例如,目的nat转换信息可以指示是否需要进行目的nat转换,该项中可以根据上述收集的信息填写需要进行目的nat转换或者不需要进行目的nat转换。
111.例如,源nat转换信息可以指示是否需要进行源nat转换,该项中可以根据上述收集的信息填写需要进行源nat转换或者不需要进行源nat转换。
112.(3)桥接转换信息。
113.该桥接转换信息包括报文转发过程中与桥接转换相关的各种信息。
114.在一些实施例中,所述桥接转换信息可以是用于指示是否进行桥接转换的信息,该项中可以根据上述收集的信息填写需要进行桥接转换或者不需要进行桥接转换。
115.(4)以太网接口信息。
116.该以太网接口信息可以包括以太网入接口的相关信息、以太网出接口的相关信息中的至少一项。
117.例如,以太网入接口的相关信息可以包括具体的以太网入接口和该以太网入接口的mac地址,该项中可以填写上述收集的信息中的以太网入接口和以太网入接口的mac地
址。
118.例如,以太网出接口的相关信息可以包括具体的以太网出接口和该以太网出接口的mac地址,该项中可以填写上述收集的信息中的以太网出接口和以太网出接口的mac地址。
119.(5)时间戳信息。
120.创建报文转发规则时该时间戳信息可以填写上述收集的信息中的信息收集的时间戳。可选地,后续该时间戳信息可以进行更新。该时间戳信息可用于检测报文转发规则是否超时。
121.创建报文转发规则后,加速报文转发的装置可以将报文转发规则添加到转发规则集合中,在后续接收到新的报文时,加速报文转发的装置便可以查询转发规则集合,根据报文转发规则中存储的信息来节省相应的转发处理流程,加速报文转发。
122.在一些实施例中,报文转发规则可以以哈希(hash)表的形式存储并添加到转发规则集合中,用于提高转发规则查询效率。
123.本发明提供的加速报文转发的方法,通过获取ip层连接的首包从以太网入接口到以太网出接口的转发过程中的信息来创建每条ip层连接对应的报文转发规则,并添加到转发规则集合中用于后续报文的转发处理,可以大大节省后续报文的转发处理流程,大幅节省了系统资源,提高了系统吞吐率。
124.在一些实施例中,所述基于所述转发规则集合进行所述报文的转发处理,包括:使用所述报文的原始报文五元组信息查询所述转发规则集合;在查询到匹配的报文转发规则的情况下,根据所述匹配的报文转发规则完成所述报文的修改和重新封装,并将封装后的报文转发给所述匹配的报文转发规则中的以太网出接口。
125.具体地,加速报文转发的装置接收到新的报文后,首先可以获取报文的原始报文五元组信息,使用该信息查询转发规则集合,以获取相匹配的报文转发规则。
126.若查询到匹配的报文转发规则(比如匹配到转发规则中的原始报文五元组信息或者回报文方向五元组信息),则可以使用该匹配的报文转发规则直接进行该报文的修改和报文的重新封装,并直接将封装后的报文转发到以太网接口,节省了桥接、目的nat、源nat、路由查找等流程。
127.在一些实施例中,所述根据所述匹配的报文转发规则完成所述报文的修改和重新封装,包括:根据所述匹配的报文转发规则更新所述报文的ip层报头和传输层报头;更新所述报文的生存时间ttl值,并重新计算所述报文的首部校验和;使用邻居信息封装所述报文的以太网报头。
128.具体地,使用匹配的报文转发规则进行报文的修改和报文的重新封装时,加速报文转发的装置可以先根据匹配的报文转发规则中的内容更新报文的ip层报头和传输层报头,例如:根据匹配的报文转发规则中出方向报文五元组信息更新ip层报头中的源ip、目的ip,更新传输层报头中的源端口、目的端口。
129.然后,加速报文转发的装置可以更新报文的ttl值(即将ttl值减1),并重新计算报文的首部校验和。
130.之后,加速报文转发的装置可以使用邻居信息封装报文的以太网报头。可选地,加速报文转发的装置可以判断报文使用的邻居信息是否存在,如果邻居信息不存在,使用报文对应的邻居协议查询邻居信息。
131.在一些实施例中,所述根据所述匹配的报文转发规则完成所述报文的修改和重新封装,包括:根据所述匹配的报文转发规则中的时间戳信息,判断所述匹配的报文转发规则是否超时;在所述匹配的报文转发规则未超时的情况下,根据所述匹配的报文转发规则完成所述报文的修改和重新封装。
132.具体地,在使用匹配的报文转发规则进行报文的修改和重新封装之前,加速报文转发的装置可以先判断该匹配的报文转发规则是否超时,若超时则不使用该匹配的报文转发规则,不对报文进行加速处理;若不超时才使用该匹配的报文转发规则进行报文的修改和重新封装。
133.超时检测可以通过报文转发规则中的时间戳信息实现,例如可以设置一个时长,假设为5秒,则若当前检测时间与所匹配的报文转发规则中的时间戳信息之间的间隔超过5秒,那么可以判断匹配的报文转发规则超时,反之,若当前检测时间与所匹配的报文转发规则中的时间戳信息之间的间隔不超过5秒,那么可以判断匹配的报文转发规则未超时。
134.通过利用报文转发规则中的时间戳信息进行超时检测,可以避免使用到无效的报文转发规则,提高报文转发的成功率。
135.在一些实施例中,该方法还包括:确定所述报文成功发出,更新所述匹配的报文转发规则中的时间戳信息。
136.具体地,若确定报文成功发出,加速报文转发的装置可以及时更新该匹配的报文转发规则中的时间戳信息。例如,可以将报文成功发出的时间戳信息作为该匹配的报文转发规则中更新的时间戳信息。
137.通过在报文成功发出后及时更新报文转发规则中的时间戳信息,保证了超时检测的准确性。
138.在一些实施例中,在基于所述转发规则集合进行所述报文的转发处理之前,该方法还包括:检测所述报文是否为ipv4或ipv6报文;在所述报文为ipv4或ipv6报文的情况下,对所述报文进行合法性检查。
139.具体地,接收到报文后,在基于转发规则集合进行报文的转发处理之前,加速报文转发的装置可以先对报文进行一些前置检查,包括检测报文的版本是否符合加速处理的要求、报文是否符合合法性检查的要求等。
140.本发明中,可以先检测报文的版本是否为ipv4或ipv6版本,若不是ipv4报文也不是ipv6报文,则不进行加速处理,按照普通报文转发流程进行处理即可。若报文为ipv4或ipv6报文,则进一步对报文进行合法性检查,比如检查报文ip地址、ip层报文格式、传输层报文格式、ttl等,合法检测不过的报文不进行加速处理。
141.通过在加速处理前先进行前置检查,可以过滤掉不符合加速处理要求的报文,进一步节省系统资源,提高系统吞吐率。
142.图6为本发明提供的ip层报文加速处理流程示例图,该ip层报文加速处理流程的入口点在以太网入接口接收到报文之后、转发流程处理之前;该ip层报文加速处理流程的出口点在以太网出接口使用邻居信息封装报文之后、驱动程序发送报文之前,如图5中所示的报文加速入口和报文加速出口。如图6所示,该ip层报文加速处理流程主要包括:(1)报文从以太网入接口进入主机。
143.(2)报文进入加速处理流程。
144.(3)检测报文是否是ipv4或ipv6报文。
145.(4)对报文进行合法性检查,如检查报文ip地址、ip层报文格式、传输层报文格式、ttl等,合法检测不过的报文不进行加速处理。
146.(5)获取报文的原始五元组信息。
147.(6)用获取到的原始五元组信息查询转发规则数据库(存储转发规则集合的数据库)。
148.(7)如果没有匹配的转发规则,则不对报文进行加速处理。
149.(8)通过检测转发规则的时间戳,判断查询到的转发规则是否超时,默认超时时间为5秒。如果超时,则删除当前转发规则,不对报文进行加速处理。
150.(9)使用转发规则更新报文的ip层报头、传输层报头。
151.(10)更新报文的ttl值,重新计算报文的校验和。
152.(11)使用邻居信息封装报文以太网报头。
153.(12)将封装好的报文转给转发规则中存储的以太网出接口。
154.(13)在以太网出接口将报文发出。
155.(14)如果报文成功发出则更新转发规则的时间戳。
156.下面对本发明提供的加速报文转发的装置进行描述,下文描述的加速报文转发的装置与上文描述的加速报文转发的方法可相互对应参照。
157.图7为本发明提供的加速报文转发的装置的结构示意图,如图7所示,该装置包括:信息获取模块700,用于获取互联网协议ip层连接的首包从以太网入接口到以太网出接口的转发过程中的信息;规则创建模块710,用于基于所述转发过程中的信息,创建所述ip层连接对应的报文转发规则,并将所述报文转发规则添加到转发规则集合中;转发处理模块720,用于在接收到新的报文后,基于所述转发规则集合进行所述报文的转发处理。
158.在一些实施例中,所述报文转发规则中包括以下至少一项:报文五元组信息;网络地址转换nat信息;桥接转换信息;以太网接口信息;时间戳信息。
159.在一些实施例中,所述报文五元组信息包括原始报文五元组信息、出方向报文五元组信息和回方向报文五元组信息中的至少一项。
160.在一些实施例中,所述nat信息包括目的nat转换信息和源nat转换信息中的至少
一项。
161.在一些实施例中,所述以太网接口信息包括以下至少一项:以太网入接口和所述以太网入接口的媒体访问控制mac地址;以太网出接口和所述以太网出接口的mac地址。
162.在一些实施例中,所述基于所述转发规则集合进行所述报文的转发处理,包括:使用所述报文的原始报文五元组信息查询所述转发规则集合;在查询到匹配的报文转发规则的情况下,根据所述匹配的报文转发规则完成所述报文的修改和重新封装,并将封装后的报文转发给所述匹配的报文转发规则中的以太网出接口。
163.在一些实施例中,所述根据所述匹配的报文转发规则完成所述报文的修改和重新封装,包括:根据所述匹配的报文转发规则更新所述报文的ip层报头和传输层报头;更新所述报文的生存时间ttl值,并重新计算所述报文的首部校验和;使用邻居信息封装所述报文的以太网报头。
164.在一些实施例中,所述根据所述匹配的报文转发规则完成所述报文的修改和重新封装,包括:根据所述匹配的报文转发规则中的时间戳信息,判断所述匹配的报文转发规则是否超时;在所述匹配的报文转发规则未超时的情况下,根据所述匹配的报文转发规则完成所述报文的修改和重新封装。
165.在一些实施例中,所述装置还包括:时间戳更新模块,用于确定所述报文成功发出,更新所述匹配的报文转发规则中的时间戳信息。
166.在一些实施例中,所述装置还包括检查模块,用于:在基于所述转发规则集合进行所述报文的转发处理之前,检测所述报文是否为ipv4或ipv6报文;在所述报文为ipv4或ipv6报文的情况下,对所述报文进行合法性检查。
167.在此需要说明的是,本发明提供的上述装置,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
168.图8为本发明提供的电子设备的结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(communications interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行上述各实施例提供的任一所述加速报文转发的方法,例如:获取互联网协议ip层连接的首包从以太网入接口到以太网出接口的转发过程中的信息;基于所述转发过程中的信息,创建所述ip层连接对应的报文转发规则,并将所述报文转发规则添加到转发规则集合中;在接收到新的报文后,基于所述转发规则集合进行所述报文的转发处理。
169.此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为
独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
170.在此需要说明的是,本发明提供的电子设备,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
171.另一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可实现上述各实施例提供的任一所述加速报文转发的方法,例如:获取互联网协议ip层连接的首包从以太网入接口到以太网出接口的转发过程中的信息;基于所述转发过程中的信息,创建所述ip层连接对应的报文转发规则,并将所述报文转发规则添加到转发规则集合中;在接收到新的报文后,基于所述转发规则集合进行所述报文的转发处理。
172.在此需要说明的是,本发明提供的非暂态计算机可读存储介质,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
173.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
174.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
175.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术特征:
1.一种加速报文转发的方法,其特征在于,包括:获取互联网协议ip层连接的首包从以太网入接口到以太网出接口的转发过程中的信息;基于所述转发过程中的信息,创建所述ip层连接对应的报文转发规则,并将所述报文转发规则添加到转发规则集合中;在接收到新的报文后,基于所述转发规则集合进行所述报文的转发处理。2.根据权利要求1所述的加速报文转发的方法,其特征在于,所述报文转发规则中包括以下至少一项:报文五元组信息;网络地址转换nat信息;桥接转换信息;以太网接口信息;时间戳信息。3.根据权利要求2所述的加速报文转发的方法,其特征在于,所述报文五元组信息包括原始报文五元组信息、出方向报文五元组信息和回方向报文五元组信息中的至少一项。4.根据权利要求2所述的加速报文转发的方法,其特征在于,所述nat信息包括目的nat转换信息和源nat转换信息中的至少一项。5.根据权利要求2所述的加速报文转发的方法,其特征在于,所述以太网接口信息包括以下至少一项:以太网入接口和所述以太网入接口的媒体访问控制mac地址;以太网出接口和所述以太网出接口的mac地址。6.根据权利要求2至5任一项所述的加速报文转发的方法,其特征在于,所述基于所述转发规则集合进行所述报文的转发处理,包括:使用所述报文的原始报文五元组信息查询所述转发规则集合;在查询到匹配的报文转发规则的情况下,根据所述匹配的报文转发规则完成所述报文的修改和重新封装,并将封装后的报文转发给所述匹配的报文转发规则中的以太网出接口。7.根据权利要求6所述的加速报文转发的方法,其特征在于,所述根据所述匹配的报文转发规则完成所述报文的修改和重新封装,包括:根据所述匹配的报文转发规则更新所述报文的ip层报头和传输层报头;更新所述报文的生存时间ttl值,并重新计算所述报文的首部校验和;使用邻居信息封装所述报文的以太网报头。8.根据权利要求6所述的加速报文转发的方法,其特征在于,所述根据所述匹配的报文转发规则完成所述报文的修改和重新封装,包括:根据所述匹配的报文转发规则中的时间戳信息,判断所述匹配的报文转发规则是否超时;在所述匹配的报文转发规则未超时的情况下,根据所述匹配的报文转发规则完成所述报文的修改和重新封装。9.根据权利要求6所述的加速报文转发的方法,其特征在于,所述方法还包括:
确定所述报文成功发出,更新所述匹配的报文转发规则中的时间戳信息。10.根据权利要求1至5任一项所述的加速报文转发的方法,其特征在于,在基于所述转发规则集合进行所述报文的转发处理之前,所述方法还包括:检测所述报文是否为ipv4或ipv6报文;在所述报文为ipv4或ipv6报文的情况下,对所述报文进行合法性检查。11.一种加速报文转发的装置,其特征在于,包括:信息获取模块,用于获取互联网协议ip层连接的首包从以太网入接口到以太网出接口的转发过程中的信息;规则创建模块,用于基于所述转发过程中的信息,创建所述ip层连接对应的报文转发规则,并将所述报文转发规则添加到转发规则集合中;转发处理模块,用于在接收到新的报文后,基于所述转发规则集合进行所述报文的转发处理。12.一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至10任一项所述加速报文转发的方法。13.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至10任一项所述加速报文转发的方法。

技术总结
本发明提供一种加速报文转发的方法、装置、电子设备及存储介质,涉及通信技术领域,该方法包括:获取互联网协议IP层连接的首包从以太网入接口到以太网出接口的转发过程中的信息;基于所述转发过程中的信息,创建所述IP层连接对应的报文转发规则,并将所述报文转发规则添加到转发规则集合中;在接收到新的报文后,基于所述转发规则集合进行所述报文的转发处理。大幅节省了系统资源,提高了系统吞吐率。提高了系统吞吐率。提高了系统吞吐率。


技术研发人员:吴正中 张辉 汤小梁 唐才荣 孔祥开 王晓东 张东东
受保护的技术使用者:北京城建智控科技股份有限公司
技术研发日:2023.08.24
技术公布日:2023/9/22
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐