CN104410725A - Gpu的处理方法、系统以及基于gpu的dns解析方法和系统 - Google Patents

Gpu的处理方法、系统以及基于gpu的dns解析方法和系统 Download PDF

Info

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
Application number
CN201410476371.7A
Other languages
English (en)
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.)
South China University of Technology SCUT
GCI Science and Technology Co Ltd
Original Assignee
South China University of Technology SCUT
GCI Science and Technology 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 South China University of Technology SCUT, GCI Science and Technology Co Ltd filed Critical South China University of Technology SCUT
Priority to CN201410476371.7A priority Critical patent/CN104410725A/zh
Publication of CN104410725A publication Critical patent/CN104410725A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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解析方法和系统
【技术领域】
本发明涉及网络通信领域,具体涉及一种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解析数据包。
CN201410476371.7A 2014-09-17 2014-09-17 Gpu的处理方法、系统以及基于gpu的dns解析方法和系统 Pending CN104410725A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 中国电信股份有限公司 快速访问互联网的方法、系统与终端装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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