DNS前端解析方法及系统技术方案

技术编号:24764111 阅读:37 留言:0更新日期:2020-07-04 11:07
本发明专利技术公开了一种DNS前端解析方法及系统,其中所述方法包括如下步骤:通过轮询确定数据链路层接收到的网络报文;获取所述网络报文所在缓存区的控制权并判断所述网络报文的类型;在所述网络报文属于指定类型的DNS请求时直接执行解析处理,否则按照网络报文类型选择备用流程处理。本发明专利技术可以提高网络收发包的速度,进而提升整体DNS解析的性能。

DNS front end resolution method and system

【技术实现步骤摘要】
DNS前端解析方法及系统
本专利技术涉及计算机网络通信
,尤其涉及一种DNS前端解析方法及系统。
技术介绍
DNS(DomainNameSystem,域名系统)提供了互联网上的一个重要服务,其本质是建立了人的名字世界和底层的二进制协议地址世界的桥梁。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串,通过域名最终得到该域名对应的IP地址的过程叫做域名解析。然而,5G以及物联网的发展,带来了网络流量爆发式的增长,而DNS解析作为互联网的一项基础服务之一,其是否能够提供一个高性能的解析便直接影响到5G以及物联网的最终实现。目前,现有技术中实现DNS解析的架构均采取内核态收发包的架构,而网络报文从网卡经过内核态最终到达用户态的过程存在很大的资源消耗,导致运行在内核态的DNS服务程序极限性能仅能达到200万QPS(Queriespersecond,每秒查询率)左右,这样的速度存在很大的瓶颈,完全无法满足5G以及物联网对DNS解析的要求。
技术实现思路
本专利技术的目的在于提供一种DNS前端解析方法及系统,解决了现有技术中网络收发包速度慢,DNS解析性能不佳的技术问题。为了解决上述技术问题,本专利技术的一种DNS前端解析方法,包括如下步骤:通过轮询确定数据链路层接收到的网络报文;获取所述网络报文所在缓存区的控制权并判断所述网络报文的类型;在所述网络报文属于指定类型的DNS请求时直接执行解析处理,否则按照网络报文类型选择备用流程处理。作为本专利技术上述DNS前端解析方法的进一步改进,所述指定类型的DNS请求为UDP的DNS请求包。作为本专利技术上述DNS前端解析方法的进一步改进,在所述网络报文为TCP的DNS请求包时,通过队列组件传输报文给内核协议栈,以与后端服务器进行TCP解析交互。作为本专利技术上述DNS前端解析方法的进一步改进,在所述网络报文为异常报文或DNS应答包时,执行丢弃处理。作为本专利技术上述DNS前端解析方法的进一步改进,在所述网络报文为DNS报文以外的普通报文时,通过队列组件传输报文给内核协议栈,以使操作系统进行处理。作为本专利技术上述DNS前端解析方法的进一步改进,实现数据链路层收发报文的网卡,在具有若干对收发队列时,为成对的收包队列和发包队列设置对应的前端处理线程,前端处理线程之间采用独立的包括内存池在内的资源。作为本专利技术上述DNS前端解析方法的进一步改进,操作系统通过队列组件连接所述网卡,以配置所述网卡的IP地址、网关及子网掩码。为了解决上述技术问题,本专利技术的一种DNS前端解析系统,包括:轮询单元,用于通过轮询确定数据链路层接收到的网络报文;判断单元,用于获取所述网络报文所在缓存区的控制权并判断所述网络报文的类型;执行单元,用于在所述网络报文属于指定类型的DNS请求时直接执行解析处理,否则按照网络报文类型选择备用流程处理。作为本专利技术上述DNS前端解析系统的进一步改进,在所述执行单元中,所述指定类型的DNS请求为UDP的DNS请求包。作为本专利技术上述DNS前端解析系统的进一步改进,实现数据链路层收发报文的网卡,在具有若干对收发队列时,为成对的收包队列和发包队列设置对应的前端处理线程,前端处理线程之间采用独立的包括内存池在内的资源。与现有技术相比,本专利技术采用轮询的方式接管网卡收发的网络报文,并对网络报文进行分类处理,直接响应其中相应的DNS请求,因为旁路了操作系统中部分关于数据收发的机制,最大化地利用了硬件的潜能。本专利技术可以提高网络收发包的速度,进而提升整体DNS解析的性能。结合附图阅读本专利技术实施方式的详细描述后,本专利技术的其他特点和优点将变得更加清楚。附图说明为了更清楚地说明本专利技术实施方式或现有技术的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见,下面描述中的附图仅仅是本专利技术中记载的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术一实施方式中DNS前端解析方法流程图。图2为本专利技术一实施方式中数据处理的内核旁路方式示意图。图3为本专利技术一实施方式中网络报文分类处理流程图。图4为本专利技术一实施方式中实现DNS解析的流程图。图5为本专利技术一实施方式中向内核协议栈传输报文的示意图。图6为本专利技术一实施方式中从内核协议栈接收报文的示意图。图7为本专利技术一实施方式中DNS前端解析系统示意图。具体实施方式以下将结合附图所示的各实施方式对本专利技术进行详细描述。但这些实施方式并不限定本专利技术,本领域的普通技术人员根据这些实施方式所做出的结构、方法或功能上的变化均包含在本专利技术的保护范围内。需要说明的是,在不同的实施方式中,可能使用相同的标号或标记,但这些并不代表结构或功能上的绝对联系关系。并且,各实施方式中所提到的“第一”、“第二”也并不代表结构或功能上的绝对区分关系,这些仅仅是为了描述的方便。对于DNS解析而言,它的作用就是根据域名查出对应的IP地址,它是HTTP(HyperTextTransferProtocol,超文本传输协议)等协议的前提。通常情况下,终端在需要发起DNS解析时,会向特定的DNS解析服务器发起查询,而相应的DNS解析服务器则会根据接收到的相应DNS请求来实现一定的查询过程,从而返回相应的DNS应答。因此,DNS解析服务器的报文收发及查询效率,直接决定着DNS解析的性能。如图1所示,本专利技术一实施方式中DNS前端解析方法流程图。DNS前端解析方法,具体包括如下步骤:步骤S1、通过轮询确定数据链路层接收到的网络报文。作为DNS解析服务器等计算机设备,会从网络中接收到外部发来的各种网络报文,对于DNS解析服务器而言,主要以DNS报文为主。但是计算机设备并不知道何时能收到上述网络报文,因此则需要设计一个机制去响应未知到达的网络报文。轮询是指通过周期性地询问来主动确定网络报文有没有到达,而中断则是通过一定的硬件结构配合来被动响应,这种被动响应需要打断当前工作的连续性,比如一次中断处理需要将CPU(CentralProcessingUnit,中央处理器)的状态寄存器保存在堆栈,并运行中断服务程序,最后再将保存的状态寄存器信息从堆栈中恢复,整个过程需要至少300个处理器时钟周期,这也就是中断相对于轮询的最大缺点。如图2所示,负责数据链路层报文收发的一般是网卡,网卡为主要工作在数据链路层的网络器件,被设计用来允许计算机设备在计算机网络上进行通讯。在计算机设备上运行的操作系统,以Linux操作系统为例,包括用户态空间和内核态空间。传统的网络报文收发如图2中的左边流程,在内核态空间中通过网卡驱动来完成操作系统与网卡之间的数据传送,网卡通过中断方式通知内核协议栈对报文进行处理,内核协议栈先会对报文的合法性进行必要的校验,本文档来自技高网...

【技术保护点】
1.一种DNS前端解析方法,其特征在于,包括如下步骤:/n通过轮询确定数据链路层接收到的网络报文;/n获取所述网络报文所在缓存区的控制权并判断所述网络报文的类型;/n在所述网络报文属于指定类型的DNS请求时直接执行解析处理,否则按照网络报文类型选择备用流程处理。/n

【技术特征摘要】
1.一种DNS前端解析方法,其特征在于,包括如下步骤:
通过轮询确定数据链路层接收到的网络报文;
获取所述网络报文所在缓存区的控制权并判断所述网络报文的类型;
在所述网络报文属于指定类型的DNS请求时直接执行解析处理,否则按照网络报文类型选择备用流程处理。


2.根据权利要求1所述的DNS前端解析方法,其特征在于,所述指定类型的DNS请求为UDP的DNS请求包。


3.根据权利要求1所述的DNS前端解析方法,其特征在于,在所述网络报文为TCP的DNS请求包时,通过队列组件传输报文给内核协议栈,以与后端服务器进行TCP解析交互。


4.根据权利要求1所述的DNS前端解析方法,其特征在于,在所述网络报文为异常报文或DNS应答包时,执行丢弃处理。


5.根据权利要求1所述的DNS前端解析方法,其特征在于,在所述网络报文为DNS报文以外的普通报文时,通过队列组件传输报文给内核协议栈,以使操作系统进行处理。


6.根据权利要求1所述的DNS前端解析方法,其特征在于,实现数据链路层收...

【专利技术属性】
技术研发人员:张鹏龚道彪
申请(专利权)人:广州根链国际网络研究院有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1