CN104410725A - Gpu的处理方法、系统以及基于gpu的dns解析方法和系统 - Google Patents
Gpu的处理方法、系统以及基于gpu的dns解析方法和系统 Download PDFInfo
- Publication number
- CN104410725A CN104410725A CN201410476371.7A CN201410476371A CN104410725A CN 104410725 A CN104410725 A CN 104410725A CN 201410476371 A CN201410476371 A CN 201410476371A CN 104410725 A CN104410725 A CN 104410725A
- Authority
- CN
- China
- Prior art keywords
- dns
- gpu
- query data
- resolution
- domain name
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种GPU的处理方法、系统以及基于GPU的DNS解析方法和系统,其中基于GPU的DNS解析方法包括如下步骤:获取DNS查询报文,并对其进行预处理,生成GPU可识别的DNS查询数据;将DNS查询数据按并行队列写入CPU与GPU的第一共享内存中;通过GPU从第一共享内存中读取DNS查询数据,并利用GPU根据DNS查询数据进行DNS解析,生成DNS解析数据包,且将DNS解析数据包按并行队列写入CPU与GPU的第二共享内存中;CPU从第二共享内存中读取DNS解析数据包,合并处理DNS解析数据包并重整为网络格式数据。本发明利用闲置的GPU资源及其并发运算能力,可以更好地应对并发数据。
Description
【技术领域】
本发明涉及网络通信领域,具体涉及一种GPU的处理方法、系统以及基于GPU的DNS解析方法和系统。
【背景技术】
随着近年移动互联网的发展,IPv4(Internet Protocol Version 4,第4版互联网协议)地址已经日渐枯竭,对于IPv6(Internet Protocol Version 6,第6版互联网协议)的需求也日益增长,但目前来说IPv4到IPv6之间还需要一个很长的过渡期,而在这个漫长的过渡期内IPv4和IPv6之间互通的网络设备将会扮演非常重要的角色。目前采用高速网络处理器和高性能通用计算平台组成硬件平台,在高速网络处理器上实现大吞吐量的IPv4和IPv6网络数据的收发,在高性能通用计算平台上运行IPv4和IPv6互通协议和一些应用网关、网络管理等功能的软件,从而形成IPv4/IPv6互通网关(Gateway)。为了实现高可用性和高效性,目前网关都会采取多计算板的方式进行冗余备份以及均衡负载设计。
IPv4/IPv6互通网关的DNS(Domain Name System,域名系统)服务器和普通的纯IPv4或IPv6服务器不同,其需要在解析或者逆解析时对IP地址进行特殊处理,所以一般转换协议的DNS服务器都会部署在网关上。目前IPv4/IPv6互通网关都是使用CPU(Central Processing Unit,中央处理器)进行计算的,CPU的单计算能力虽然强大,但是其可同时支持的线程数不多,而IPv4/IPv6互通网关经常有大流量并发的情况,所以一般IPv4/IPv6互通网关在部署转换协议和其需要的DNS服务器时,为了高效率地处理多用户的并发情况,一般采用分布式的部署(即转换协议在一块计算板上,其所需要的DNS服务器在另外一个计算板上)。如果要实现网关的高可用性,则需要另外两块计算板作为转换协议和DNS服务器的备份,占用较多的硬件资源。
IPv4/IPv6互通网关在的过渡协议运算过程需要大量的计算过程,如果是多用户并发的情况下,需要同时耗费大量的计算资源,而通用CPU采用的是串行计算方式,处理能力有限,导致同时支持的连接数量有限。而当今互联网接入设备众多,加上各类需要高数据流量的业务应用,网络上通过的数据流量每年都在急剧增加,必然导致IPv4和IPv6互通网关需要进行大量DNS解析和转换计算,在网关的CPU处理能力不足情况下,将导致网络拥塞,降低服务质量。
GPU(Graphics Processing Unit,图形处理器)是显示芯片,也称显卡,是一种专门在个人计算机、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上进行图像运算工作的微处理器,能够进行浮点预算和并行运算。目前,计算机和网关设备上都配置有GPU,但主要用于普通显示功能,GPU的性能得不到高效率的利用,造成大程度的浪费。
【发明内容】
基于此,本发明为解决现有的IPv4/IPv6互通网关DNS解析存在的问题,提出一种基于GPU的DNS解析方法,利用GPU的并行运算能力,在多用户并发的情况下,通过GPU进行IPv4/IPv6互通网关的DNS解析运算。
本发明实施例的内容如下:
一种基于GPU的DNS解析方法,包括如下步骤:
获取DNS查询报文,并对其进行预处理,生成GPU可识别的DNS查询数据;
将所述DNS查询数据按并行队列写入CPU与GPU的第一共享内存中;
通过GPU从所述第一共享内存中读取所述DNS查询数据,并利用GPU根据所述DNS查询数据进行DNS解析,生成DNS解析数据包,且将所述DNS解析数据包按并行队列写入CPU与GPU的第二共享内存中;
从所述第二共享内存中读取DNS解析数据包,合并处理所述DNS解析数据包并重整为网络格式数据。
相应的,本发明实施例提供一种基于GPU的DNS解析系统,包括:
获取模块,用于获取DNS查询报文;
预处理模块,用于对所述DNS查询报文进行预处理,生成GPU可识别的DNS查询数据;
第一写入模块,用于将所述DNS查询数据按并行队列写入CPU与GPU的第一共享内存中;
GPU控制模块,用于通过GPU从所述第一共享内存中读取所述DNS查询数据,并利用GPU根据所述DNS查询数据进行DNS解析,生成DNS解析数据包,且将所述DNS解析数据包按并行队列写入CPU与GPU的第二共享内存中;
解析结果处理模块,用于从所述第二共享内存中读取DNS解析数据包,合并处理所述DNS解析数据包并重整为网络格式数据。
本发明实施例还提供一种GPU的处理方法,包括如下步骤:
获取CPU处理DNS查询报文后生成的DNS查询数据;
根据所述DNS查询数据判断DNS解析类型;
根据DNS查询数据获取对应的在GPU内存的DNS列表或上一级DNS服务器中存储的DNS信息;
根据所述DNS查询数据对应的DNS信息以及所述DNS解析类型生成所述DNS解析数据包。
相应的,提供一种GPU的处理系统,包括:
DNS查询数据获取模块,用于获取CPU处理DNS查询报文后生成的DNS查询数据;
解析类型判断模块,用于根据所述DNS查询数据判断DNS解析类型;
DNS查询模块,用户根据所述DNS查询数据获取对应的在GPU内存的DNS列表或上一级DNS服务器中存储的DNS信息;
结果生成模块,用于根据所述DNS查询数据对应的DNS信息以及所述DNS解析类型生成所述DNS解析数据包。
本发明利用闲置的GPU资源及其并发运算能力,进行DNS解析运算,在降低CPU计算负载的同时提高了IPv4/IPv6互通网关单片计算板的并发处理能力,可以更好地应对并发数据。
利用本发明可以在保证转换协议和DNS解析协议性能的情况下,将原本需要两台计算板进行的工作集合在一台计算板上,降低了网关设备的硬件成本,在同样硬件资源下可以做更多冗余备份工作,提高设备的总体可用性。
本发明还利用了GPU自身的内存资源,将DNS列表放置在GPU内存中,可以在不影响计算机CPU所占有内存的情况下提高DNS查询速度。
【附图说明】
图1为IPv4和IPv6互通网关的架构图;
图2为本发明实施例中一种基于GPU的DNS解析方法的流程示意图;
图3为本发明的基于GPU的DNS解析方法中一种CPU与GPU的工作流程图;
图4为本发明实施例中GPU根据DNS查询数据进行DNS解析的流程示意图;
图5为一种具体实施方式中GPU进行DNS解析的的流程示意图;
图6为本发明实施例中一种基于GPU的DNS解析系统的结构示意图;
图7为本发明实施例中获取模块的结构示意图;
图8为本发明实施例中GPU控制模块的结构示意图;
图9为本发明实施例中一种GPU的处理系统的结构示意图。
【具体实施方式】
下面结合附图对本发明的内容作详细描述。
本实施例中所述的方法可用于IPv4/IPv6互通网关或类似装置中,该互通网关在网络中的位置如图1所示,其一端连接IPv4网络,另一端连接IPv6网络,IPv4网络和IPv6网络可以通过该网关实现互通的功能。IPv4/IPv6互通网关或类似装置主要由高性能计算平台和网络处理平台构成,硬件平台上有部署有多块高性能计算板,交换板主要用于内部对外的数据交换。
如图2所示,本实施例中的基于GPU的DNS解析方法,包括如下步骤:
S110获取DNS查询报文,并对其进行预处理,生成GPU可识别的DNS查询数据;
S120将所述DNS查询数据按并行队列写入CPU与GPU的第一共享内存中;
S130通过GPU从所述第一共享内存中读取所述DNS查询数据,并利用GPU根据所述DNS查询数据进行DNS解析,生成DNS解析数据包,且将所述DNS解析数据包按并行队列写入CPU与GPU的第二共享内存中;
S140从所述第二共享内存中读取DNS解析数据包,合并处理所述DNS解析数据包并重整为网络格式数据。
首先,CPU从网络报文中获取DNS查询报文,在一种实施方式中,网卡将接收到的报文放入网卡缓存队列中,CPU会从网卡缓存队列中过滤出DNS查询报文,并放入DNS报文接收队列;然后从所述DNS报文接收队列中获取所述DNS查询报文。
由于GPU处理格式一般是多维格式,为了提高GPU的运算效率,CPU对DNS查询报文进行预处理,将其整理成多维数组格式,生成DNS查询数据。
普通单核CPU在处理数据时采用串行的方式,而GPU采用多线程并行的方式,为了充分利用GPU的优势,将DNS查询数据放入并行队列中,等待写入CPU和GPU的第一共享内存中。
由于CPU和GPU数据交互部分在整个DNS解析过程中会暂用较多的时间,较佳的,在把数据缓冲区填满后才进行写入操作,将已经预处理好的并行队列统一写入CPU与GPU的第一共享内存中。
CPU将数据写入第一共享内存后,就可以执行其他任务,而DNS解析运算的工作则交由GPU并行处理,可以有效地利用GPU空闲资源并节省CPU资源。
GPU获取到第一共享内存中的并行队列信息后,并行根据各队列的DNS查询数据进行DNS解析,将解析结果整理成DNS解析数据包,然后将DNS解析数据包放入并行队列,并写入CPU与GPU的第二共享内存中。CPU从该第二共享内存读取已处理结果,合并队列中的数据且将GPU处理后的数据重整为网络格式数据,并写入待发送队列。网卡接口可读取发送队列中的信息,根据路由路径将各数据包通过物理网卡分发出去。图3中示出了出了基于GPU的DNS解析方法中一种CPU与GPU的工作流程图。
如图4所示,在一种实施方式中,GPU根据所述DNS查询数据进行DNS解析的过程包括如下步骤:
S131根据所述DNS查询数据判定DNS解析类型;
S132根据所述DNS查询数据在GPU内存的DNS列表中查询对应的DNS信息,若查询到对应的DNS信息,则进入S134;若未查询到对应的DNS信息,则进入133;
S133访问上一级DNS服务器,获取所述DNS查询数据对应的DNS信息;
S134根据所述对应的DNS信息以及所述DNS解析类型生成所述DNS解析数据包。
GPU在进行DNS解析运算时,优先在自身GPU内存中的DNS列表中进行查询,若查询到对应的DNS信息,直接生成解析结果,若未查询到对应的DNS信息时,则访问上一级的DNS服务器,在上一级服务器中获取DNS信息,由该DNS信息生成DNS解析数据包。较佳的,将从上一级DNS服务器中获取的DNS信息保存到GPU内存的DNS列表,方便下一次的解析运算。
当然,GPU在进行解析运算时,也可以直接从上一级DNS服务器获取DNS信息。
下面结合一个更具体的实施方式,来说明GPU进行DNS解析运算的过程。
图5为该实施方式中GPU进行DNS解析的流程示意图。GPU在进行DNS解析时,首先需要判断DNS请求的类型,即通过DNS查询数据判定DNS解析类型,如DNS查询数据中包含A、AAAA、PTR等命令,其中A表示IPv4正向解析,即由域名查询IPv4地址,AAAA表示IPv6正向解析,即由域名查询IPv6地址,PTR为反向解析请求,即通过IP地址查询域名。
根据DNS查询数据判断DNS解析类型是正向解析还是反向解析,然后根据域名或者IP地址进行查询。优先的,先在GPU内存中的DNS列表中进行查询,如果在DNS列表中未查询到对应的DNS信息,则访问上一级DNS服务器,从上一级DNS服务器中获取DNS信息。若上一级DNS服务器处于IPv4网络中,则其存储的DNS信息包括域名以及该域名对应的IPv4地址,若上一级DNS服务器处于IPv6网络中,则其存储的DNS信息包括域名以及对应的IPv6地址。在本具体实施方式中,DNS列表存储的DNS信息包括域名以及该域名对应的IPv4地址和IPv6地址。
在正向解析的情况下,根据DNS查询数据中包含的域名信息在DNS列表查询该域名对应的DNS信息,如果找到对应的记录,获取了该域名对应的IPv4地址和IPv6地址,则根据查询结果生成DNS解析数据包,并将其放入队列等待发送。
以百度为例,DNS查询数据中包含的域名为www.baidu.com,在DNS列表中查询是否有百度对应的记录,如有,则获取其对应的IP地址。例如,DNS列表中存储的DNS信息如下:
www.baidu.com | 180.97.33.67 | 2001:da8:ff::b461:2143 |
其中,180.97.33.67为百度的IPv4地址,2001:da8:ff::b461:2143为百度对应的IPv6地址。根据百度域名以及对应的IPv4地址和IPv6地址生成DNS解析数据包,将其作为解析结果放入队列。
如果在DNS列表中未找到对应的DNS信息,则访问上一级DNS服务器,获取DNS查询数据对应的IPv4地址或IPv6地址,根据网络地址转换规则将该对应的IPv4地址或IPv6地址进行转换,再根据DNS查询数据以及转换后的IP地址生成DNS解析数据包。仍以百度为例,在上一级DNS服务器中查询到百度对应的IPv4地址为180.97.33.67,则根据NAT64中的DNS规则,将IPv4地址180.97.33.67转换为IPv6地址2001:da8:ff::b461:2143。然后将百度域名www.baidu.com以及对应的IP地址(包括IPv4地址和IPv6地址)作为解析结果生成DNS解析数据包。
较佳的,已经解析过的DNS信息会保存在GPU内存中,下一次就可以在DNS列表中直接查询到该DNS信息,提高查询效率。
当DNS解析类型为反向解析时,根据DNS查询数据中包含的IP地址在DNS列表查询该IP地址对应的DNS信息。DNS查询数据中包含的IP地址为IPv4地址或者IPv6地址,如果查询到对应的记录,则根据查询结果生成DNS解析数据包,并将其放入队列等待发送。
以百度为例,DNS查询数据中包含的IP地址为180.97.33.67,这是一个IPv4地址,在DNS列表中查询是否有对应的记录,例如,DNS列表中存储了如下DNS信息:
www.baidu.com | 180.97.33.67 | 2001:da8:ff::b461:2143 |
其中,www.baidu.com为百度的域名,180.97.33.67为百度的IPv4地址,2001:da8:ff::b461:2143为百度对应的IPv6地址,根据百度域名以及对应的IPv4地址和IPv6地址生成DNS解析数据包,将其作为解析结果放入队列。
如果在DNS列表中未找到对应的DNS信息,则访问上一级DNS服务器,获取DNS查询数据对应的IPv4地址或IPv6地址,根据网络地址转换规则将该对应的IPv4地址或IPv6地址进行转换,再根据DNS查询数据以及转换后的IP地址生成DNS解析数据包。继续以百度为例,在上一级DNS服务器中查询到IPv4地址180.97.33.67对应的域名为www.baidu.com,根据NAT64中的DNS规则,将IPv4地址180.97.33.67转换为IPv6地址2001:da8:ff::b461:2143。然后将百度域名www.baidu.com以及对应的IP地址(包括IPv4地址和IPv6地址)作为解析结果生成DNS解析数据包。
另外,也可以根据DNS查询数据直接访问上一级DNS服务器,获取DNS信息。
根据解析类型返回相应的处理结果,并将处理完的DNS解析数据包放入并行队列中。然后等队列缓冲区满后,将处理后的信息写入至CPU与GPU的第二共享内存中。
本发明还提供了一种基于GPU的DNS解析系统,该DNS解析系统利用GPU资源进行DNS解析运算,调用CPU与GPU实现DNS解析的相互协作,显著提高了解析效率。该DNS解析系统如图6所示,包括:
获取模块110,用于获取DNS查询报文;
预处理模块120,用于对所述DNS查询报文进行预处理,生成GPU可识别的DNS查询数据;
第一写入模块130,用于将所述DNS查询数据按并行队列写入CPU与GPU的第一共享内存中;
GPU控制模块140,用于通过GPU从所述第一共享内存中读取所述DNS查询数据,并利用GPU根据所述DNS查询数据进行DNS解析,生成DNS解析数据包,且将所述DNS解析数据包按并行队列写入CPU与GPU的第二共享内存中;
解析结果处理模块150,用于从所述第二共享内存中读取DNS解析数据包,合并处理所述DNS解析数据包并重整为网络格式数据。
如图7所示,在一种具体实施方式中,所述获取模块110包括:
接收模块1101,用于从网卡缓存队列中过滤出DNS查询报文,并放入DNS报文接收队列;
拉取模块1102,用于从所述DNS报文接收队列中获取所述DNS查询报文。
如图8所示,在一种具体实施方式中,所述的GPU控制模块140包括:
判断模块1401,用于根据所述DNS查询数据判断DNS解析类型;
查询模块1402,用于根据所述DNS查询数据获取对应的在GPU内存的DNS列表或上一级DNS服务器中存储的DNS信息;
生成模块1403,用于根据所述DNS查询数据对应的DNS信息以及所述DNS解析类型生成所述DNS解析数据包。
判断模块1401根据DNS查询数据判断DNS解析类型是正向解析还是反向解析,然后查询模块1402根据域名或者IP地址进行查询。优先的,查询模块1402先在GPU内存中的DNS列表中进行查询,如果在DNS列表中未查询到对应的DNS信息,则访问上一级DNS服务器,从上一级DNS服务器中获取DNS信息。若上一级DNS服务器处于IPv4网络中,则其存储的DNS信息包括域名以及该域名对应的IPv4地址,若上一级DNS服务器处于IPv6网络中,则其存储的DNS信息包括域名以及对应的IPv6地址。在一种具体实施方式中,DNS列表存储的DNS信息包括域名以及该域名对应的IPv4地址和IPv6地址。
在正向解析的情况下,查询模块1402根据DNS查询数据中包含的域名信息在DNS列表中查询该域名对应的DNS信息,如果找到对应的记录,获取了该域名对应的IPv4地址和IPv6地址,则生成模块1403根据查询结果(域名以及对应的IPv4地址和IPv6地址)生成DNS解析数据包。
如果查询模块1402在DNS列表中未找到对应的DNS信息,则访问上一级DNS服务器,获取DNS查询数据对应的IPv4地址或IPv6地址,生成模块1403根据网络地址转换规则将该对应的IPv4地址或IPv6地址进行转换,再根据DNS查询数据以及转换后的IP地址生成DNS解析数据包。较佳的,查询模块1402通过访问上一级DNS服务器获取了DNS查询数据对应的DNS信息后,将该DNS信息(包括域名以及对应的IPv4地址和IPv6地址)存储至GPU内存的DNS列表,下一次就可以在DNS列表中直接查询到该DNS信息,提高查询效率。
当DNS解析类型为反向解析时,查询模块1402根据DNS查询数据中包含的IP地址在DNS列表查询该IP地址对应的DNS信息。DNS查询数据中包含的IP地址为IPv4地址或者IPv6地址,如果查询到对应的记录,则生成模块1403根据查询结果生成DNS解析数据包。
以百度为例,DNS查询数据中包含的IP地址为180.97.33.67,这是一个IPv4地址,查询模块1402在DNS列表中查询是否有对应的记录,例如,DNS列表中存储了如下DNS信息:
www.baidu.com | 180.97.33.67 | 2001:da8:ff::b461:2143 |
其中,www.baidu.com为百度的域名,180.97.33.67为百度的IPv4地址,2001:da8:ff::b461:2143为百度对应的IPv6地址,则生成模块1403根据百度域名以及对应的IPv4地址和IPv6地址生成DNS解析数据包。
如果查询模块1402在DNS列表中未找到对应的DNS信息,则访问上一级DNS服务器,获取DNS查询数据对应的IPv4地址或IPv6地址,生成模块1403根据网络地址转换规则将该对应的IPv4地址或IPv6地址进行转换,再根据DNS查询数据以及转换后的IP地址生成DNS解析数据包。继续以百度为例,查询模块1402在上一级DNS服务器中查询到IPv4地址180.97.33.67对应的域名为www.baidu.com,生成模块1403根据网络地址转换规则NAT64,将IPv4地址180.97.33.67转换为IPv6地址2001:da8:ff::b461:2143。然后将百度域名www.baidu.com以及对应的IP地址(包括IPv4地址和IPv6地址)作为解析结果生成DNS解析数据包。
另外,查询模块1402也可以根据DNS查询数据直接访问上一级DNS服务器,获取DNS信息。
GPU控制模块140根据解析类型返回相应的处理结果,并将处理完的DNS解析数据包放入并行队列中。然后等队列缓冲区满后,将处理后的信息写入至CPU与GPU的第二共享内存中。
上述的基于GPU的DNS解析系统利用闲置的GPU资源及其并发运算的能力,在降低CPU计算负载的同时提高了IPv4/IPv6互通网关(或类似设备)单片计算板的并发处理能力,可以更好地应对并发数据。而且,该系统还可以利用GPU自身的内存资源,将DNS列表放置在GPU内存中,可以在不影响计算机CPU所占内存的情况下提高DNS信息的查询速度。IPv4/IPv6互通网关或类似设备如果采用本发明提供的基于GPU的DNS解析系统,可以实现在拥有较少的硬件资源时(如只有两块计算板),仍可进行冗余备份,从而大大提高硬件平台的硬件利用率。
本发明还提供一种GPU的处理系统,如图9所示,包括:
DNS查询数据获取模块210,用于获取CPU处理DNS查询报文后生成的DNS查询数据;
解析类型判断模块220,用于根据所述DNS查询数据判断DNS解析类型;
DNS查询模块230,用于根据所述DNS查询数据获取对应的在GPU内存的DNS列表或上一级DNS服务器中存储的DNS信息;
结果生成模块240,用于根据所述DNS查询数据对应的DNS信息以及所述DNS解析类型生成所述DNS解析数据包。
在一种实施方式中,所述DNS查询模块230在访问上一级DNS服务器并获取了所述DNS查询数据对应的DNS信息后,将该DNS信息存储至GPU内存的DNS列表。
该GPU的处理系统充分利用GPU的并发运算能力以及GPU内存资源,进行DNS的解析运算,将该GPU的处理系统应用到现有的GPU中,扩展了GPU的应用范围,充分发挥其并行计算的优势,避免性能浪费。
上述系统各模块其功能的实现可采用上述的方法,此处不再进行赘述。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于GPU的DNS解析方法,其特征在于,包括如下步骤:
获取DNS查询报文,并对其进行预处理,生成GPU可识别的DNS查询数据;
将所述DNS查询数据按并行队列写入CPU与GPU的第一共享内存中;
通过GPU从所述第一共享内存中读取所述DNS查询数据,并利用GPU根据所述DNS查询数据进行DNS解析,生成DNS解析数据包,且将所述DNS解析数据包按并行队列写入CPU与GPU的第二共享内存中;
从所述第二共享内存中读取DNS解析数据包,合并处理所述DNS解析数据包并重整为网络格式数据。
2.根据权利要求1所述的基于GPU的DNS解析方法,其特征在于,利用GPU根据所述DNS查询数据进行DNS解析的过程包括如下步骤:
根据所述DNS查询数据判断DNS解析类型;
根据DNS查询数据获取对应的在GPU内存的DNS列表中存储的DNS信息或者上一级DNS服务器中存储的DNS信息;
根据所述DNS查询数据对应的DNS信息以及所述DNS解析类型生成所述DNS解析数据包。
3.根据权利要求2所述的基于GPU的DNS解析方法,其特征在于,还包括如下步骤:
在从上一级DNS服务器获取了所述DNS查询数据对应的DNS信息后,将该DNS信息存储至GPU内存的DNS列表。
4.根据权利要求2所述的基于GPU的DNS解析方法,其特征在于,包括下列各项中的任一项:
所述DNS列表中存储的DNS信息包括域名以及该域名对应的IPv4地址和IPv6地址,上一级DNS服务器中存储的DNS信息包括域名以及该域名对应的IPv4地址或IPv6地址;当所述DNS解析类型为正向解析时,在所述DNS列表中获取所述DNS查询数据对应的IPv4地址和IPv6地址,并根据所述DNS查询数据以及对应的IPv4地址和IPv6地址生成所述DNS解析数据包;或者访问上一级DNS服务器,获取所述DNS查询数据对应的IPv4地址或IPv6地址,根据网络地址转换规则将该对应的IPv4地址或IPv6地址进行转换,根据所述DNS查询数据以及转换后的IPv6地址或IPv4地址生成所述DNS解析数据包;
所述DNS列表中的DNS信息包括域名以及该域名对应的IPv4地址和IPv6地址,上一级DNS服务器中存储的DNS信息包括域名以及该域名对应的IPv4地址或IPv6地址;当所述DNS解析类型为反向解析时,在所述DNS列表中获取所述DNS查询数据对应的域名,根据该对应的域名以及该域名对应的IPv4地址和IPv6地址生成所述DNS解析数据包,或者访问上一级DNS服务器,获取所述DNS查询数据对应的域名,并将DNS查询数据对应的IPv4地址或IPv6地址进行转换,根据所述DNS查询数据对应的域名以及转换后的IPv6地址或IPv4地址生成所述DNS解析数据包。
5.一种GPU的处理方法,其特征在于,包括如下步骤:
获取CPU处理DNS查询报文后生成的DNS查询数据;
根据所述DNS查询数据判断DNS解析类型;
根据DNS查询数据获取对应的在GPU内存的DNS列表中存储的DNS信息或上一级DNS服务器中存储的DNS信息;
根据所述DNS查询数据对应的DNS信息以及所述DNS解析类型生成所述DNS解析数据包。
6.根据权利要求5所述的GPU的处理方法,其特征在于,包括下列各项中的任一项:
所述DNS列表中存储的DNS信息包括域名以及该域名对应的IPv4地址和IPv6地址,上一级DNS服务器中存储的DNS信息包括域名以及该域名对应的IPv4地址或IPv6地址;当所述DNS解析类型为正向解析时,在所述DNS列表中获取所述DNS查询数据对应的IPv4地址和IPv6地址,并根据所述DNS查询数据以及对应的IPv4地址和IPv6地址生成所述DNS解析数据包;或者访问上一级DNS服务器,获取所述DNS查询数据对应的IPv4地址或IPv6地址,根据网络地址转换规则将该对应的IPv4地址或IPv6地址进行转换,根据所述DNS查询数据以及转换后的IPv6地址或IPv4地址生成所述DNS解析数据包;
所述DNS列表中存储的DNS信息包括域名以及该域名对应的IPv4地址和IPv6地址,上一级DNS服务器中存储的DNS信息包括域名以及该域名对应的IPv4地址或IPv6地址;当所述DNS解析类型为反向解析时,在所述DNS列表中获取所述DNS查询数据对应的域名,根据该对应的域名以及该域名对应的IPv4地址和IPv6地址生成所述DNS解析数据包,或者访问上一级DNS服务器,获取所述DNS查询数据对应的域名,并将DNS查询数据对应的IPv4地址或IPv6地址进行转换,根据所述DNS查询数据对应的域名以及转换后的IPv6地址或IPv4地址生成所述DNS解析数据包。
7.一种基于GPU的DNS解析系统,其特征在于,包括:
获取模块,用于获取DNS查询报文;
预处理模块,用于对所述DNS查询报文进行预处理,生成GPU可识别的DNS查询数据;
第一写入模块,用于将所述DNS查询数据按并行队列写入CPU与GPU的第一共享内存中;
GPU控制模块,用于通过GPU从所述第一共享内存中读取所述DNS查询数据,并利用GPU根据所述DNS查询数据进行DNS解析,生成DNS解析数据包,且将所述DNS解析数据包按并行队列写入CPU与GPU的第二共享内存中;
解析结果处理模块,用于从所述第二共享内存中读取DNS解析数据包,合并处理所述DNS解析数据包并重整为网络格式数据。
8.根据权利要求7所述的基于GPU的DNS解析系统,其特征在于,所述GPU控制模块包括:
判断模块,用于根据所述DNS查询数据判断DNS解析类型;
查询模块,用于根据所述DNS查询数据获取对应的在GPU内存的DNS列表或上一级DNS服务器中存储的DNS信息;
生成模块,用于根据所述DNS查询数据对应的DNS信息以及所述DNS解析类型生成所述DNS解析数据包。
9.根据权利要求8所述的基于GPU的DNS解析系统,其特征在于,所述查询模块在访问上一级DNS服务器并获取了所述DNS查询数据对应的DNS信息后,将该DNS信息存储至GPU内存的DNS列表。
10.一种GPU的处理系统,其特征在于,包括:
DNS查询数据获取模块,用于获取CPU处理DNS查询报文后生成的DNS查询数据;
解析类型判断模块,用于根据所述DNS查询数据判断DNS解析类型;
DNS查询模块,用户根据所述DNS查询数据获取对应的在GPU内存的DNS列表或上一级DNS服务器中存储的DNS信息;
结果生成模块,用于根据所述DNS查询数据对应的DNS信息以及所述DNS解析类型生成所述DNS解析数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410476371.7A CN104410725A (zh) | 2014-09-17 | 2014-09-17 | Gpu的处理方法、系统以及基于gpu的dns解析方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410476371.7A CN104410725A (zh) | 2014-09-17 | 2014-09-17 | Gpu的处理方法、系统以及基于gpu的dns解析方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104410725A true CN104410725A (zh) | 2015-03-11 |
Family
ID=52648320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410476371.7A Pending CN104410725A (zh) | 2014-09-17 | 2014-09-17 | Gpu的处理方法、系统以及基于gpu的dns解析方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104410725A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104994186A (zh) * | 2015-07-08 | 2015-10-21 | 华为技术有限公司 | 媒体访问控制地址的查询方法、处理器及装置 |
CN107124286A (zh) * | 2016-02-24 | 2017-09-01 | 深圳市知穹科技有限公司 | 一种海量数据高速处理、交互的系统及方法 |
CN110955640A (zh) * | 2019-11-26 | 2020-04-03 | 深圳市卡牛科技有限公司 | 跨系统数据文件的处理方法、装置、服务器和存储介质 |
CN112887442A (zh) * | 2021-01-11 | 2021-06-01 | 杭州迪普科技股份有限公司 | 域名解析查询请求的处理方法及装置 |
US11263145B2 (en) | 2018-08-31 | 2022-03-01 | Nyriad Limited | Vector processor storage |
CN117290098A (zh) * | 2023-09-22 | 2023-12-26 | 中国科学院自动化研究所 | 基于gpu内联直通的高速数据处理方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101262410A (zh) * | 2007-03-07 | 2008-09-10 | 上海亿人通信终端有限公司 | 基于nat-pt的dns应用层网关的实现方法 |
CN101651718A (zh) * | 2009-08-27 | 2010-02-17 | 中国电信股份有限公司 | 一种改变ip流量所用协议栈的方法和系统 |
CN101789981A (zh) * | 2010-03-18 | 2010-07-28 | 杭州华三通信技术有限公司 | 双协议栈数据传输的方法和设备 |
EP1841183B1 (en) * | 2004-12-20 | 2013-03-06 | Alcatel Lucent | A method for updating the host's dns during the ipv6 stateless adress configuration and the apparatus thereof |
CN103167045A (zh) * | 2011-12-12 | 2013-06-19 | 中国电信股份有限公司 | 选择网络层协议的方法、 dns 服务器和域名管理系统 |
CN103888552A (zh) * | 2012-12-24 | 2014-06-25 | 中国电信股份有限公司 | 快速访问互联网的方法、系统与终端装置 |
-
2014
- 2014-09-17 CN CN201410476371.7A patent/CN104410725A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1841183B1 (en) * | 2004-12-20 | 2013-03-06 | Alcatel Lucent | A method for updating the host's dns during the ipv6 stateless adress configuration and the apparatus thereof |
CN101262410A (zh) * | 2007-03-07 | 2008-09-10 | 上海亿人通信终端有限公司 | 基于nat-pt的dns应用层网关的实现方法 |
CN101651718A (zh) * | 2009-08-27 | 2010-02-17 | 中国电信股份有限公司 | 一种改变ip流量所用协议栈的方法和系统 |
CN101789981A (zh) * | 2010-03-18 | 2010-07-28 | 杭州华三通信技术有限公司 | 双协议栈数据传输的方法和设备 |
CN103167045A (zh) * | 2011-12-12 | 2013-06-19 | 中国电信股份有限公司 | 选择网络层协议的方法、 dns 服务器和域名管理系统 |
CN103888552A (zh) * | 2012-12-24 | 2014-06-25 | 中国电信股份有限公司 | 快速访问互联网的方法、系统与终端装置 |
Non-Patent Citations (2)
Title |
---|
HAN S,JANG K,PARK KS,ET AL.: "PacketShader: a GPU Accelerated Software Router", 《ACM SIGCOMM COMPUTER COMMUNICATION REVIEW》 * |
YI WANG ETC.: "Wire Speed Name Lookup: A GPU-based Approach", 《10TH USENIX SYMPOSIUM ON NETWORKED SYSTEMS DESIGN AND IMPLEMENTATION》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104994186A (zh) * | 2015-07-08 | 2015-10-21 | 华为技术有限公司 | 媒体访问控制地址的查询方法、处理器及装置 |
CN107124286A (zh) * | 2016-02-24 | 2017-09-01 | 深圳市知穹科技有限公司 | 一种海量数据高速处理、交互的系统及方法 |
US11263145B2 (en) | 2018-08-31 | 2022-03-01 | Nyriad Limited | Vector processor storage |
US11263144B2 (en) | 2018-08-31 | 2022-03-01 | Nyriad Limited | Block device interface using non-volatile pinned memory |
US11347653B2 (en) | 2018-08-31 | 2022-05-31 | Nyriad, Inc. | Persistent storage device management |
US11782844B2 (en) | 2018-08-31 | 2023-10-10 | Nyriad Inc. | Vector processor storage |
CN110955640A (zh) * | 2019-11-26 | 2020-04-03 | 深圳市卡牛科技有限公司 | 跨系统数据文件的处理方法、装置、服务器和存储介质 |
CN110955640B (zh) * | 2019-11-26 | 2024-04-23 | 深圳市卡牛科技有限公司 | 跨系统数据文件的处理方法、装置、服务器和存储介质 |
CN112887442A (zh) * | 2021-01-11 | 2021-06-01 | 杭州迪普科技股份有限公司 | 域名解析查询请求的处理方法及装置 |
CN112887442B (zh) * | 2021-01-11 | 2023-02-07 | 杭州迪普科技股份有限公司 | 域名解析查询请求的处理方法及装置 |
CN117290098A (zh) * | 2023-09-22 | 2023-12-26 | 中国科学院自动化研究所 | 基于gpu内联直通的高速数据处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104410725A (zh) | Gpu的处理方法、系统以及基于gpu的dns解析方法和系统 | |
CN100470550C (zh) | 一种信息存储的方法、信息查找的方法及引擎装置 | |
CN102843426B (zh) | 基于智能父节点的Web缓存资源共享系统和方法 | |
CN111107081B (zh) | 基于dpdk的多进程dns服务方法和系统 | |
CN103856393A (zh) | 基于数据库的分布式消息中间件系统及其运行方法 | |
CN101640664B (zh) | 一种互联网门户服务系统及其管理方法 | |
CN102447778A (zh) | 一种展示消息的方法及消息展示装置 | |
US20100058451A1 (en) | Load balancing for services | |
CN109729187B (zh) | 一种代理通信方法、系统、装置及存储介质 | |
CN103905526A (zh) | 一种调度方法及服务器 | |
CN105721538A (zh) | 数据访问的方法和装置 | |
CN103067486B (zh) | 基于PaaS平台的大数据处理方法 | |
CN111431757A (zh) | 虚拟网络的流量采集方法及装置 | |
US20160275042A1 (en) | Zero-copy data transmission system | |
CN101778050A (zh) | 负载均衡方法、装置和系统 | |
CN1230756C (zh) | 用于处理状态查询的网络控制器 | |
CN110175152A (zh) | 一种日志查询方法、中转服务器集群及日志查询系统 | |
CN103167002A (zh) | 发送名片的方法及系统 | |
CN114710571B (zh) | 数据包处理系统 | |
CN101196928A (zh) | 一种内容搜索方法、系统以及引擎分发单元 | |
CN111600812A (zh) | 一种报文的处理方法、处理装置、可读介质和系统 | |
CN102932209A (zh) | 服务器机群的状态检测方法和装置 | |
CN103888364A (zh) | 报文分流方法及设备 | |
WO2020068978A1 (en) | Hosting machine learning models | |
CN1638336A (zh) | 分区环境中的远程加电功能 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150311 |