CN112118167B - 一种跨网隧道数据快速传输方法 - Google Patents

一种跨网隧道数据快速传输方法 Download PDF

Info

Publication number
CN112118167B
CN112118167B CN202010827915.5A CN202010827915A CN112118167B CN 112118167 B CN112118167 B CN 112118167B CN 202010827915 A CN202010827915 A CN 202010827915A CN 112118167 B CN112118167 B CN 112118167B
Authority
CN
China
Prior art keywords
cross
network tunnel
message
tunnel data
network
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
CN202010827915.5A
Other languages
English (en)
Other versions
CN112118167A (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.)
Shenzhen Forward Industrial Co Ltd
Original Assignee
Shenzhen Forward Industrial Co Ltd
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 Shenzhen Forward Industrial Co Ltd filed Critical Shenzhen Forward Industrial Co Ltd
Priority to CN202010827915.5A priority Critical patent/CN112118167B/zh
Publication of CN112118167A publication Critical patent/CN112118167A/zh
Application granted granted Critical
Publication of CN112118167B publication Critical patent/CN112118167B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种跨网隧道数据快速传输方法,涉及数据通信技术领域,其包括跨网隧道数据报文的接收、缓存、规则快速匹配、格式检查以及发送,本发明基于轮询的方式实现跨网隧道报文的接收和发送,不易出现丢包情况,能提高接收和发送效率;采用共享内存缓存跨网隧道数据报文,格式检查中直接访问所述共享内存中的跨网隧道数据报文,提升了格式检查的效率,进一步提高跨网隧道报文的处理效率,实现跨网隧道报文的快速转发;基于cache的跨网隧道规则快速匹配,使得跨网隧道报文快速匹配规则,避免因为规则匹配而导致的报文性能过低问题。

Description

一种跨网隧道数据快速传输方法
技术领域
本发明涉及数据通信技术领域,具体而言,涉及一种跨网隧道数据快速传输方法。
背景技术
在网间互联的隧道数据转发过程中,为了保证不同网系之间跨网通信是可控的,需要对跨网的隧道报文进行规则检查以及格式检查。
对现有技术中网间互联的隧道数据转发系统的一些缺陷进行说明:
1)N2N跨网隧道报文采用在Linux内核的netfilter框架中注册勾子函数的方式,处理收到跨网隧道报文,并实现向外转发。因此在收发报文时,就需要软中断来触发,这会导致收发处理不够及时,造成转发性能的浪费,同时冗余的linux协议栈处理流程,同样会导致跨网隧道报文的转发处理缓慢,影响转发性能。
2)跨网隧道报文规则生成,是根据优先级生成一张链表,优先级高的就更靠近链表头,这样在遍历链表匹配规则时,就能优先保证匹配到更高优先级的规则。但是若在转发的过程中每个报文都通过链表去匹配规则,就会大大地降低转发性能。
3)N2N跨网隧道报文由于使用的是linux内核转发,报文存储时,理所当然使用的skb存储跨网隧道报文。但是在做报文的格式检查时,会将报文通过linux的NF_QUEUEN机制,送到应用层在做格式检查,这就会存在内核态的数据报文往用户态拷贝的过程,会极大的损耗性能,降低转发效率。
发明内容
本发明在于提供一种跨网隧道数据快速传输方法,其能够缓解上述问题。
为了缓解上述的问题,本发明采取的技术方案如下:
一种跨网隧道数据快速传输方法,包括跨网隧道数据报文的接收、缓存、规则快速匹配、格式检查以及发送;
通过轮询的方式接收和发送跨网隧道数据报文;
采用共享内存缓存跨网隧道数据报文;
在进行规则快速匹配的过程中,使用cache存储器缓存所述跨网隧道数据报文的转发规则;
在进行格式检查的过程中,直接访问所述共享内存中的跨网隧道数据报文。
本方案的技术效果是:基于轮询的方式实现跨网隧道报文的接收和发送,不易出现丢包情况,能提高接收和发送效率;采用共享内存缓存跨网隧道数据报文,格式检查中直接访问所述共享内存中的跨网隧道数据报文,提升了格式检查的效率,进一步提高跨网隧道报文的处理效率,实现跨网隧道报文的快速转发;基于cache的跨网隧道规则快速匹配,使得跨网隧道报文快速匹配规则,避免因为规则匹配而导致的报文性能过低问题。
进一步地,所述跨网隧道数据报文的接收方法具体为:
通过轮询的方式从网卡的报文接收队列接收跨网隧道数据报文;
将跨网隧道数据报文放入软件报文接收队列;
通过轮询的方式从所述软件报文接收队列接收跨网隧道数据报文。
本方案的技术效果是:软件报文接收队列能与共享内存建立映射关系,便于获取数据。
进一步地,所述跨网隧道数据报文在放入软件报文接收队列前,需进行处理,具体包括:对跨网隧道数据报文进行解析,通过三元组对解析后的报文进行hash。
本方案的技术效果是:可把任意长度的输入通过散列算法变换成固定长度的输出。
进一步地,所述三元组为{源IP,目的IP,协议}。
进一步地,所述跨网隧道数据报文的发送方法具体为:将跨网隧道数据报文放入软件报文发送队列,通过轮询的方式将软件报文接收队列中的跨网隧道数据报文送入网卡发送队列,之后发送至其它网系的业务处理单元。
本方案的技术效果是:软件报文发送队列能与共享内存建立映射关系,便于获取数据。
进一步地,所述共享内存的地址在配置文件中进行指定,在数据快速传输系统的快速转发引擎初始化的过程中,将共享内存映射到所述软件报文接收队列以及软件报文发送队列。
本方案的技术效果是:能多核处理提升安全网关的整体转发性能。
进一步地,从网卡的报文接收队列接收到的跨网隧道数据报文,通过DMA通道存于所述共享内存。
本方案的技术效果是:便于转发程序处理共享内存中的数据。
进一步地,所述快速转发引擎为用于将跨网隧道数据报文送至所述软件报文接收队列的网卡驱动程序。
本方案的技术效果是:网卡驱动程序不将报文送上linux协议栈,避免冗余的linux协议栈处理流程,提高转发处理速度。
进一步地,在对跨网隧道数据报文进行格式检查时,先将分片的数据报文合并后再进行检查。
本方案的技术效果是:更利于数据报文的格式检查。
进一步地,在对跨网隧道数据报文进行格式检查时,首先将数据报文格式描述成XML文本并加载到安全网关内,安全网关通过XML文本解析,生成一套逻辑格式树代码,并通过该逻辑格式树代码进行数据报文的格式检查。
本方案的技术效果是:能够保证数据报文格式检查的灵活性。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举本发明实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本发明实施例跨网隧道数据快速传输方法的流程图;
图2是本发明实施例跨网隧道报文的组织结构示意图;
图3是本发明实施例硬件接收队列和软件接收队列的对应关系示意图;
图4是本发明实施例Cache的组织结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,本发明实施例所述跨网隧道数据快速传输方法所涉及到的业务处理单元包括快速转发引擎、N2N隧道协议检查模块、规则匹配模块、格式检查模块、交换控制模块以及跨网摆渡模块。
本发明方法使用共享内存的方式缓存报文,共享内存的地址在配置文件中进行指定,在快速转发引擎初始化的过程中,就将共享内存映射到软件报文接收队列和软件报文发送队列上,这样收到报文之后可以通过DMA直接将跨网隧道报文存到共享内存里面,方便转发程序处理,为了方便跨网隧道报文的存储管理,其组织方式设计如图2所示。
其中,图2(a)为巨大帧报文,如果网口支持巨帧转发,收到的数据报文就会在快速转发引擎中组成图2(a)所示的报文结构,多个n2n跨网隧道报文通过next指针串起来,并且除了第一个n2n隧道报文结构中保存了报文的二层、三层信息之外,其他片中只含有应用数据部分。
图2(b)为分片报文,分片报文通过next_pkt指针串联成链,每个n2n跨网隧道报文接口里面都包含有完整的二层、三层头部信息。但是具体的应用数据通过data执行指向原始报文的应用数据,不做应用数据的内存拷贝,在隧道报文接收到发送的所有处理流程中,只有对二层、三层头部信息的处理,不会对应用数据做任何形式的拷贝,通过指针引用的方式,访问实际的应用数据,进行报文的格式检查,以实现内存零拷贝的目的,提高跨网隧道报文的转发效率。
以某跨域安全网关为例。该安全网关将不同网域的终端路由隔离,控制终端用户入网,通过在不同业务处理单元之间摆渡跨网隧道报文,实现不同网域之间的数据互通,同时完成跨网数据的规则检查和审计等功能,达到跨网数据可控的目的,具体如下:
1)当网口收到报文之后,快速转发引擎通过轮询的方式不断从网卡的报文接收队列中接收报文,然后对收到的报文进行初步解析之后,通过三元组(源IP、目的IP、协议)进行hash,将报文送到相对应的cpu上的软件报文接收队列。然后转发程序同样以轮询的方式从软件报文接收队列上接收跨网隧道报文,并做后续的处理。
其中,硬件接收队列和软件接收队列的对应关系如图3所示。在快速转发引擎初始化时,就为每个cpu的软件报文接收队列分配好n2n_packet的共享内存,并且将硬件接收队列通过DMA映射到软件报文接收队列,这样网口收到报文之后,快速转发引擎就可以将报文直接存到共享内存里面,方便后续处理。
在本实施例中,快速转发引擎为网卡驱动程序,只不过该驱动程序不将报文送上协议栈,而是将报文映射到快速转发程序的软件报文接收队列。
2)转发程序在初始化时,通过配置,将跨网隧道处理转发实例绑定到不同的cpu上,以便多核处理提升安全网关的整体转发性能。当转发实例通过轮询的方式在对应cpu的软件接收队列中,收到跨网隧道数据报文之后,开始进行一系列的安全处理,包括n2n隧道协议常规检查,跨网规则检查,报文深度格式检查,交换控制,跨网摆渡等。
3)跨网隧道报文规则检查,在首次收到不同流的跨网隧道数据报文时,才去遍历规则链表匹配规则。需要对合法的跨网隧道数据报文进行解封装处理,还原出原始报文,然后对原始报文的五元组(源ip、目的ip、协议、源端口、目的端口),按规则优先级链表进行规则匹配。当匹配到规则链表时,生成基于流的五元组的cache表,cache表通过hash表组织,使用流的五元组计算hash表的键值,使hash表散列的足够开。当下次有相同流的跨网隧道报文被收到时,都优先从cache表中查找该流的处理结果,如果cache中没有时,再去查找规则链表。
Cache的组织结构如图4所示。Cache使用固定时间超时的机制来保证跨网规则的有效性,及时删除老化的cache表,避免内存的浪费。为了避免规则不能及时反映规则链表的变化,当规则链表有变化时需要刷新cache,以保证cache表的实时有效性。同时需要对规则cache增加超时机制,当cache超时之后需要重新查找规则链表,形成新的cache,保证跨网隧道报文传输的准确性。
4)格式检查模块在对跨网隧道数据报文处理上进行深度分析,解析其格式的合法性。其在数据传输上可能将完整的数据进行分片发送,因此该安全网关通过流分片重组技术,将分片的业务数据合并,得到完整的业务数据块,便于格式检查。
具体业务采用将业务报文格式描述成XML文本的方式,加载到安全网关内,安全网关通过XML文本解析,生成一套该业务的逻辑格式树代码,这样可以保证格式检查的灵活性。
同时为了避免原有格式检查,需要将跨网隧道报文从内核态拷贝到用户态这个过程,影响跨网隧道报文的转发效率,在本发明中,将格式检查集成到了每个cpu的转发实例中,可以直接访问存储在共享内存中的跨网隧道报文,提升格式检查的效率,进一步提高跨网隧道报文的处理效率,实现跨网隧道报文的快速转发。
5)跨网隧道报文格式检查通过之后,再通过交换控制模块,经由名录路由对安全合规的跨网隧道报文目的IP进行查找,得到目标数据业务属于哪个网系,再从安全网关上的槽位与网系对应关系得到该跨网数据的摆渡目标槽位。
6)获取到目标槽位之后,摆渡模块将报文进行NAT转换,将跨网隧道报文送到当前cpu的软件报文发送队列,快速转发引擎通过轮询的方式接收软件报文发送队列的跨网隧道数据报文,然后将其送到网卡发送队列,完成处理后的跨网隧道报文的发送流程。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种跨网隧道数据快速传输方法,包括跨网隧道数据报文的接收、缓存、规则快速匹配、格式检查以及发送,其特征在于,该方法还包括:
通过轮询的方式接收和发送跨网隧道数据报文;
采用共享内存缓存跨网隧道数据报文;
在进行规则快速匹配的过程中,使用cache存储器缓存所述跨网隧道数据报文的转发规则;
所述跨网隧道数据报文的接收方法具体为:
通过轮询的方式从网卡的报文接收队列接收跨网隧道数据报文;
将跨网隧道数据报文放入软件报文接收队列;
通过轮询的方式从所述软件报文接收队列接收跨网隧道数据报文;
所述跨网隧道数据报文在放入软件报文接收队列前,需进行处理,具体包括:对跨网隧道数据报文进行解析,通过三元组对解析后的报文进行hash;
所述跨网隧道数据报文的发送方法具体为:将跨网隧道数据报文放入软件报文发送队列,通过轮询的方式将软件报文接收队列中的跨网隧道数据报文送入网卡发送队列,之后发送至其它网系的业务处理单元;
所述共享内存的地址在配置文件中进行指定,在数据快速传输系统的快速转发引擎初始化的过程中,将共享内存映射到所述软件报文接收队列以及软件报文发送队列;
在进行格式检查的过程中,直接访问所述共享内存中的跨网隧道数据报文。
2.根据权利要求1所述的跨网隧道数据快速传输方法,其特征在于,所述三元组为{源IP,目的IP,协议}。
3.根据权利要求1所述的跨网隧道数据快速传输方法,其特征在于,从网卡的报文接收队列接收到的跨网隧道数据报文,通过DMA通道存于所述共享内存。
4.根据权利要求1所述的跨网隧道数据快速传输方法,其特征在于,所述快速转发引擎为用于将跨网隧道数据报文送至所述软件报文接收队列的网卡驱动程序。
5.根据权利要求1所述的跨网隧道数据快速传输方法,其特征在于,在对跨网隧道数据报文进行格式检查时,先将分片的数据报文合并后再进行检查。
6.根据权利要求1所述的跨网隧道数据快速传输方法,其特征在于,在对跨网隧道数据报文进行格式检查时,首先将数据报文格式描述成XML文本并加载到安全网关内,安全网关通过XML文本解析,生成一套逻辑格式树代码,并通过该逻辑格式树代码进行数据报文的格式检查。
CN202010827915.5A 2020-08-17 2020-08-17 一种跨网隧道数据快速传输方法 Active CN112118167B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010827915.5A CN112118167B (zh) 2020-08-17 2020-08-17 一种跨网隧道数据快速传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010827915.5A CN112118167B (zh) 2020-08-17 2020-08-17 一种跨网隧道数据快速传输方法

Publications (2)

Publication Number Publication Date
CN112118167A CN112118167A (zh) 2020-12-22
CN112118167B true CN112118167B (zh) 2022-04-12

Family

ID=73805102

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010827915.5A Active CN112118167B (zh) 2020-08-17 2020-08-17 一种跨网隧道数据快速传输方法

Country Status (1)

Country Link
CN (1) CN112118167B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113225311B (zh) * 2021-03-24 2022-03-08 深圳市风云实业有限公司 一种基于身份标识的跨网隧道传输方法
CN114363257B (zh) * 2021-12-29 2023-10-17 杭州迪普信息技术有限公司 隧道报文的五元组匹配方法及装置
CN114567674B (zh) * 2022-02-25 2024-03-15 腾讯科技(深圳)有限公司 一种数据处理方法、装置、计算机设备以及可读存储介质
CN115296956B (zh) * 2022-07-29 2024-03-22 广东浪潮智慧计算技术有限公司 一种内核的隧道转发方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012159305A1 (zh) * 2011-06-28 2012-11-29 华为技术有限公司 一种分布式多进程通信方法和装置
CN104796337A (zh) * 2015-04-10 2015-07-22 京信通信系统(广州)有限公司 一种转发报文的方法及装置
CN110149262A (zh) * 2019-04-02 2019-08-20 视联动力信息技术股份有限公司 一种信令报文的处理方法和装置、及存储介质
CN110321713A (zh) * 2019-07-08 2019-10-11 北京可信华泰信息技术有限公司 基于双体系架构的可信计算平台的动态度量方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012159305A1 (zh) * 2011-06-28 2012-11-29 华为技术有限公司 一种分布式多进程通信方法和装置
CN104796337A (zh) * 2015-04-10 2015-07-22 京信通信系统(广州)有限公司 一种转发报文的方法及装置
CN110149262A (zh) * 2019-04-02 2019-08-20 视联动力信息技术股份有限公司 一种信令报文的处理方法和装置、及存储介质
CN110321713A (zh) * 2019-07-08 2019-10-11 北京可信华泰信息技术有限公司 基于双体系架构的可信计算平台的动态度量方法和装置

Also Published As

Publication number Publication date
CN112118167A (zh) 2020-12-22

Similar Documents

Publication Publication Date Title
CN112118167B (zh) 一种跨网隧道数据快速传输方法
CN111371779B (zh) 一种基于dpdk虚拟化管理系统的防火墙及其实现方法
US6049808A (en) System and method for efficient remote disk I/O
KR101969194B1 (ko) 네트워킹 장치 가상화를 위한 패킷 처리 오프로딩 기법
US9356844B2 (en) Efficient application recognition in network traffic
US10666564B2 (en) Increasing entropy across routing table segments
US20070171911A1 (en) Routing system and method for managing rule entry thereof
CN1593041A (zh) 具有多个首部的包的解封装和封装的方法、装置和计算机程序
US20210359952A1 (en) Technologies for protocol-agnostic network packet segmentation
CN113746749A (zh) 网络连接设备
US20190387051A1 (en) Method, device and computer program product for managing network system
WO2018032510A1 (zh) 应用于存储设备中的访问请求的处理方法和装置
US9985885B1 (en) Aggregating common portions of forwarding routes
US9906443B1 (en) Forwarding table updates during live packet stream processing
US20230269148A1 (en) High-Speed Packet Filtering
CN111309700B (zh) 一种面向多共享目录树的控制方法及系统
CN113411380A (zh) 基于fpga可编程会话表的处理方法、逻辑电路和设备
WO2012075818A1 (zh) 报文包头的解析方法、包头解析预处理装置和网络处理器
CN117997833A (zh) 数据转发系统及其控制方法
US6976149B1 (en) Mapping technique for computing addresses in a memory of an intermediate network node
WO2024021801A1 (zh) 报文转发装置及方法、通信芯片及网络设备
CN116599892A (zh) 一种服务器系统、路由方法、装置及电子设备和存储介质
US20200226099A1 (en) Method and apparatus for improving hash searching throughput in the event of hash collisions
US10541914B2 (en) Data packet forwarding method and network device
CN114338529B (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