CN110784553B - 报文封装方法、设备及域名解析*** - Google Patents

报文封装方法、设备及域名解析*** Download PDF

Info

Publication number
CN110784553B
CN110784553B CN201911072417.8A CN201911072417A CN110784553B CN 110784553 B CN110784553 B CN 110784553B CN 201911072417 A CN201911072417 A CN 201911072417A CN 110784553 B CN110784553 B CN 110784553B
Authority
CN
China
Prior art keywords
network
domain name
request
network request
requests
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
CN201911072417.8A
Other languages
English (en)
Other versions
CN110784553A (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.)
Nanjing Yaxin Zhiwang Technology Co ltd
Original Assignee
Nanjing Yaxin Zhiwang 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 Nanjing Yaxin Zhiwang Technology Co ltd filed Critical Nanjing Yaxin Zhiwang Technology Co ltd
Priority to CN201911072417.8A priority Critical patent/CN110784553B/zh
Publication of CN110784553A publication Critical patent/CN110784553A/zh
Application granted granted Critical
Publication of CN110784553B publication Critical patent/CN110784553B/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
    • 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]
    • 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/457Network directories; Name-to-address mapping containing identifiers of data entities on a computer, e.g. file names
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

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

Abstract

本发明公开了报文封装方法、设备及域名解析***。其中,报文封装方法包括步骤:每隔第一时间对来自客户端的网络请求进行排序,生成请求队列;从请求队列中依次选取第一数目个网络请求,并将所选取的网络请求分为第一分组和第二分组;根据网络请求所属的分组,确定出与域名相关的报文信息;根据网络请求对应的客户端的IP地址和所确定的报文信息,组装得到响应结果;以及将响应结果返回客户端。本发明一并公开了用于执行上述方法的计算设备。

Description

报文封装方法、设备及域名解析***
技术领域
本发明涉及计算机技术领域,尤其涉及报文封装方法、设备及域名解析***。
背景技术
DNS(Domain Name System,域名解析***)是互联网架构中最基础、最核心的一项服务,它的作用是实现域名与IP地址的相互映射,使上网者能方便地访问互联网,而不用去记忆枯燥繁琐的IP数字串。其为众多网络应用提供了根本性支撑。
wireformat是一种国际通用的DNS传输报文格式,为了提升DNS的性能,通常将解析数据封装成wireformat报文格式,最后由终端解读报文格式。作为DNS数据传输的基石,wireformat的封装方法对性能要求极高,面对每秒数以百万计的DNS请求,如何封装wireformat报文以提升性能成为很重要的课题,然而当前许多封装方法,其效果都不太理想。
现有的封装wireformat报文的方法常为顺序封装。对于每一次DNS解析请求,顺序地将响应封装为wireformat报文。这种方式虽然确保了DNS解析的正确性,但针对每一次请求、都进行一次封装,无疑增加了性能开销。
鉴于上述原因,亟需一种新的报文封装方案。
发明内容
为此,本发明提供了一种新的报文封装方案及其对应的域名解析***,以力图解决或至少缓解上面存在的至少一个问题。
根据本发明的一个方面,提供了一种报文封装方法,适于在计算设备中执行,包括步骤:每隔第一时间对来自客户端的网络请求进行排序,生成请求队列;从请求队列中依次选取第一数目个网络请求,并将所选取的网络请求分为第一分组和第二分组;根据网络请求所属的分组,确定出与域名相关的报文信息;根据网络请求对应的所述客户端的IP地址和所确定的报文信息,组装得到响应结果;以及将响应结果返回客户端。
可选地,在根据本发明的方法中,从请求队列中依次选取第一数目个网络请求,并将所选取的网络请求分为第一分组和第二分组的步骤包括:从请求队列中依次选取第一数目个排序后的网络请求;按照预设白名单,对所选取的网络请求进行匹配;若从预设白名单中匹配到所述网络请求,则将网络请求作为第一分组;若从预设白名单中未匹配到所述网络请求,则将网络请求作为第二分组。
可选地,在根据本发明的方法中,根据网络请求所属的分组,确定出与域名相关的报文信息的步骤包括:若网络请求属于第一分组,则根据预设白名单,从网络请求中确定出与域名相关的报文信息。
可选地,在根据本发明的方法中,根据网络请求所属的分组,确定出与域名相关的报文信息的步骤还包括:若网络请求属于第二分组,则将网络请求发送至解析设备,以便解析设备对所述网络请求进行逐级解析,直到确定出与域名相关的报文信息;接收由解析设备确定出的与域名相关的报文信息。
可选地,在根据本发明的方法中,每隔第一时间对来自客户端的网络请求进行排序,生成请求队列的步骤包括:接收来自客户端的网络请求;以及根据网络请求中所包含的域名,每隔第一时间对网络请求进行排序,并利用排序后的网络请求生成请求队列,其中,请求队列将包含相似域名的网络请求排在一起。
可选地,在根据本发明的方法中,第一时间和第一数目均与每秒查询率相关。
可选地,根据本发明的方法还包括步骤:关联存储客户端的IP地址和网络请求的标识符。
可选地,根据本发明的方法中,还包括生成预设白名单的步骤。
可选地,在根据本发明的方法中,生成预设白名单的步骤包括:从所接收到的网络请求中定期统计域名出现的次数;利用出现次数大于预设值的域名,生成预设白名单。
可选地,根据本发明的方法还包括步骤:对预设白名单中的域名进行预解析,得到与域名相关的报文信息并缓存。
根据本发明的另一方面,还提供了一种报文封装设备,包括:队列生成模块,适于每隔第一时间对来自客户端的网络请求进行排序,生成请求队列;分组模块,适于从请求队列中依次选取第一数目个网络请求,并将所选取的网络请求分为第一分组和第二分组,还适于根据网络请求所属的分组,确定出与域名相关的报文信息,以及根据网络请求对应的客户端的IP地址和所确定的报文信息,组装得到响应结果;以及分组模块还适于将响应结果返回客户端。
可选地,在根据本发明的报文封装设备中,队列生成模块还适于在接收到来自客户端的网络请求时,根据网络请求中所包含的域名,每隔第一时间对网络请求进行排序,并利用排序后的网络请求生成请求队列,其中,请求队列将包含相似域名的网络请求排在一起。
可选地,在根据本发明的报文封装设备中,分组模块还适于从请求队列中依次选取第一数目个排序后的网络请求,并按照预设白名单,对所选取的网络请求进行匹配:若从预设白名单中匹配到所述网络请求,则将网络请求作为第一分组;若从预设白名单中未匹配到网络请求,则将网络请求作为第二分组。
可选地,在根据本发明的报文封装设备中,分组模块还适于在网络请求属于第一分组时,根据预设白名单,从网络请求中确定出与域名相关的报文信息;以及在网络请求属于第二分组时,将网络请求发送至解析设备,以便解析设备对网络请求进行逐级解析,直到确定出与域名相关的报文信息;分组模块还适于接收由解析设备确定出的与域名相关的报文信息。
可选地,在根据本发明的报文封装设备中,分组模块还适于关联存储客户端的IP地址和网络请求的标识符,以便根据网络请求的标识符所对应的客户端的IP地址、和所确定的报文信息,组装得到响应结果。
可选地,在根据本发明的报文封装设备中,还包括:白名单生成模块,适于从所接收到的网络请求中定期统计域名出现的次数,并利用出现次数大于预设值的域名,生成预设白名单。
根据本发明的另一方面,还提供了一种域名解析***,包括:如上所述的报文封装设备;解析设备,适于对来自报文封装设备的网络请求进行逐级解析,直到确定出网络请求中与域名相关的报文信息,并返回给报文封装设备。
根据本发明的一个方面,提供一种计算设备,包括:至少一个处理器;和存储有程序指令的存储器,其中,程序指令被配置为适于由至少一个处理器执行,程序指令包括用于执行如上所述任一方法的指令。
根据本发明的一个方面,提供一种存储有程序指令的可读存储介质,当程序指令被计算设备读取并执行时,使得计算设备执行如上所述的任一方法。
根据本发明的方案,按照分组对网络请求进行处理,属于一个小组中的网络请求,只需解析一次。并且,若网络请求属于预设白名单,则根据预解析的结果直接得到该网络请求的解析结果。这样,针对多次相同域名请求,只做一次解析,提高了***性能,同时降低***开销。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的域名解析***100的场景示意图;
图2示出了根据本发明一个实施例的计算设备200的示意图;以及
图3示出了根据本发明一个实施例的报文封装方法300的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的域名解析***100的场景示意图。如图1所示,域名解析***100与至少一个客户端010相连。用户通过操作客户端010发送网络请求给域名解析***100。在一种实施例中,网络请求例如是HTTP请求。例如,用户要访问某个网站时,在浏览器地址栏中输入该网站的域名,生成一个HTTP请求给域名解析***100。域名解析***100负责将该网络请求中所包含的域名转换为对应的IP地址,以调出该IP地址对应的网站给用户。
如图1,域名解析***100包括报文封装设备110和解析设备120。其中,报文封装设备110对网络请求进行分组,并按照网络请求所属的分组,对网络请求进行处理。
一个wireformat报文一般包括head、quires、answers、additional部分,其中head记录了该网络请求的标识符(ID)等客户端信息;而quires和answers受到域名影响,和客户端关联不大。关于wireformat报文的具体格式,此处不做过多阐述。在根据本发明的实施例中,对于一部分网络请求,报文封装设备110可以直接确定出其与域名相关的报文信息(即,quires和answers),并将确定出的报文信息以报文的形式缓存在缓存中,便于报文封装设备110对其进行组装,得到响应结果。对于另一部分网络请求,报文封装设备110无法直接确定出其与域名相关的报文信息,将其发送至解析设备120。由解析设备120对这些网络请求进行逐级解析,直到确定出网络请求中与域名相关的报文信息。之后,解析设备120将所确定出的报文信息返回给报文封装设备110,由其组装得到响应结果。
进一步地,报文封装设备110包括队列生成模块112、分组模块114和白名单生成模块116。
队列生成模块112每隔第一时间对来自客户端010的网络请求进行排序,生成请求队列。根据本发明的实施例,队列生成模块112在接收到来自客户端010的网络请求时,根据网络请求中所包含的域名,每隔第一时间对网络请求进行排序,并利用排序后的网络请求生成请求队列,其中,该请求队列将包含相同或相似域名的网络请求排在一起。在一种实施例中,若几个网络请求中所包含的主域名相同,则认为这几个网络请求包含相同或相似域名。
分组模块114从请求队列中依次选取第一数目个网络请求,并将所选取的网络请求分为第一分组和第二分组。
需要说明的是,第一时间和第一数目的取值,均随每秒查询率(QPS,常用于衡量域名服务器在规定时间内所处理的流量多少)而变化。一般地,QPS越大,第一时间的取值越小、第一数目的取值越大;QPS越小,第一时间的取值越大、第一数目的取值越小。
在根据本发明的实施例中,分组模块114按照网络请求中所包含的域名对网络请求进行分组。例如,分组模块114先将具有相同域名的网络请求分为一个小组,关于相同域名的定义可参见上文所述。然后,根据域名的访问频率,将访问频率高的域名所对应的网络请求,作为第一分组,将其他的域名所对应的网络请求,作为第二分组。
在根据本发明的实施方式中,报文封装设备110采取如下方式来确定访问频率高的域名。报文封装设备110定期分析网络请求中的域名分布,将域名访问频率高的作为一组,生成预设白名单。具体地,利用白名单生成模块116从所接收到的网络请求中定期统计域名出现的次数,并将出现次数大于预设值的域名分到一个组里,作为预设白名单。通常,设在一段时间内,X为某个域名出现的次数,Y为所接收到的网络请求的总数(即,样本容量),Z为阈值,则满足X≥Y*Z的所有域名均可以被视为访问频率高的域名,其中X、Y通过当前样本计算得出,Z根据实际情况可设置,一般控制在0.1≥Z≥0.001,即,筛选出10-1000个访问频率高的域名,当然不限于此。
这样,分组模块114从请求队列中依次选取第一数目个排序后的网络请求,并按照预设白名单,对所选取的网络请求进行匹配:若从预设白名单中匹配到该网络请求,则将该网络请求作为第一分组;若从预设白名单中未匹配到该网络请求,则将该网络请求作为第二分组。
另外,分组模块114还会关联存储客户端010的IP地址和该网络请求的标识符,以便在后期用于组装生成响应结果。
在对网络请求进行分组后,分组模块114就可以根据网络请求所属的分组,确定出与域名相关的报文信息,即,确定quires和answers信息。具体地,当网络请求属于第一分组时,分组模块114根据预设白名单,从网络请求中确定出与域名相关的报文信息。当网络请求属于第二分组时,分组模块114将网络请求发送至解析设备120,由解析设备120对网络请求进行逐级解析,直到确定出与域名相关的报文信息。
在根据本发明的实施例中,解析设备120使用内存特有的数据结构,而不是外部的缓存数据库,以降低网络时延、提高数据复用率、增强服务稳定性。关于缓存数据结构,使用DNS高速缓存架构,将域名逐级存入缓存。如图1示出了根据本发明一个实施例的解析设备120,将常访问的域名存入一级缓存,不常访问的域名存入二级缓存,剩下的其他域名则从迭代***中获取。
解析设备120在逐级解析确定出与余名相关的报文信息后,再将所确定出的报文信息返回给分组模块114。
而后,分组模块114根据网络请求对应的客户端010的IP地址,确定该网络请求的标识符,并结合客户端010的IP地址,生成头部信息(即head),再和与域名相关的报文信息一起,组装得到响应结果。
最终,分组模块114将响应结果返回客户端010。
根据本发明的实施方式,域名解析***100及其组成部分(报文封装设备110和解析设备120),均可以通过如下所述的计算设备200来实现。图2示出了根据本发明一个实施例的计算设备200的示意图。
如图2所示,在基本的配置202中,计算设备200典型地包括***存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和***存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,***存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。***存储器206可以包括操作***220、一个或者多个应用222以及程序数据224。在一些实施方式中,应用222可以布置为在操作***上由一个或多个处理器204利用程序数据224执行指令。
计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以是这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
计算设备200可以实现为服务器,例如文件服务器、数据库服务器、应用程序服务器和WEB服务器等,也可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。当然,计算设备200也可以实现为小尺寸便携(或者移动)电子设备的一部分。在根据本发明的实施例中,计算设备200被配置为执行根据本发明的报文封装方法300。计算设备200的应用222中包含执行方法300的多条程序指令。
图3示出了根据本发明一些实施例的报文封装方法300的流程示意图。该方法300适于在域名解析***100、尤其是报文封装设备110中执行。应当指出,方法300中的步骤描述,是对域名解析***100的进一步补充和说明。故,相同部分此处不再赘述。
方法300始于步骤S310。在步骤S310中,报文封装设备110每隔第一时间对来自客户端010的网络请求进行排序,生成请求队列。
在根据本发明的实施例中,在接收到来自客户端的网络请求时,报文封装设备110根据该网络请求中所包含的域名,每隔第一时间对网络请求进行排序,并利用排序后的网络请求生成请求队列。其中,请求队列将包含相似域名的网络请求排在一起。关于本发明实施例对相似域名的定义,可参考前文***100中的相关描述。
其中,第一时间与每秒查询率相关。具体地,每秒查询率越大,第一时间的取值就越小;反之,每秒查询率越小,第一时间的取值就越大。
随后在步骤S320中,从请求队列中依次选取第一数目个网络请求,并将所选取的网络请求分为第一分组和第二分组。根据本发明的实施方式,按照网络请求中所包含的域名对网络请求进行分组。进一步地,按两个步骤进行分组。首先,将具有相同域名的网络请求分成一个小组。然后,再根据每个小组的域名的访问频率,将访问频率高的域名所对应的网络请求,作为第一分组;将其他域名所对应的请求,作为第二分组。
表1示出了根据本发明一个实施例的对网络请求分组的示例。如表1,第一分组中包含3个小组的网络请求,这3个小组的网络请求又分别包含相同的域名A、B、C。第二分组中包含2个小组的网络请求,这2个小组的网络请求又分别包含相同的域名D和E。应当指出,此处仅作为示意性地说明,本发明实施例不受限于此。
表1分组示例
Figure BDA0002261369960000091
Figure BDA0002261369960000101
基于上述描述,根据本发明的实施方式,通过预设白名单来确定哪些网络请求属于第一分组、哪些网络请求属于第二分组。具体地,从请求队列中依次选取第一数目个排序后的网络请求;按照预设白名单,对所选取的网络请求进行匹配:若从预设白名单中匹配到网络请求,则将该网络请求作为第一分组;若从预设白名单中未匹配到网络请求,则将该网络请求作为第二分组。
其中,第一数目与每秒查询率相关。每秒查询率越大,第一数目的取值就越大;反之,每秒查询率越小,第一数目的取值就越小。
故,方法300还包括预先生成预设白名单的步骤。
生成预设白名单的步骤具体包括:首先,从所接收到的网络请求中定期统计域名出现的次数;接着,利用出现次数大于预设值的域名,生成预设白名单。关于生成预设白名单的具体事例可参考前文关于白名单生成模块116的描述,此处不再赘述。
应当指出,报文封装设备110可以定期地统计域名请求分布,以更新预设白名单。
此外,报文封装设备110还会对预设白名单中的域名进行预解析,得到与域名相关的报文信息并缓存,以便于后期能够较快地确定出属于第一分组的网络请求中与域名相关的报文信息。
根据本发明的实施方式,在执行完步骤S320后,还会关联存储客户端010的IP地址和该网络请求的标识符。
随后在步骤S330中,根据网络请求所属的分组,确定出与域名相关的报文信息。
在一种实施方式中,若网络请求属于第一分组,则根据预设白名单,从网络请求中确定出与域名相关的报文信息。具体地,预设白名单中已经对域名进行了预解析,存储有与该域名相关的报文信息。故此处不用再对当前网络请求包含的域名进行解析,直接从预设白名单存储的报文信息中确定出与当前网络请求所包含的域名相关的报文信息即可。
在又一种实施方式中,若网络请求属于第二分组,则将该网络请求发送至解析设备120。由解析设备120对该网络请求进行逐级解析,直到确定出与域名相关的报文信息。需要说明的是,解析设备120在对网络请求进行解析时,根据步骤S320中分出的小组进行解析(如表1所示)。若分出的小组个数为x,网络请求的总个数为y,传统解析复杂度为y。设属于第二分组(即,不属于白名单)的网络请求个数为z,则解析复杂度为x+z。当属于第一分组(即,白名单)的网络请求较多时,根据本发明实施例的解析复杂度远小于传统解析复杂度。
之后,报文封装设备110接收由解析设备120所确定出的与域名相关的报文信息。
随后在步骤S340中,根据网络请求对应的客户端010的IP地址和所确定的报文信息,组装得到响应结果。
在一种实施例中,根据网络请求对应的客户端010的IP地址,确定该网络请求的标识符。基于客户端010的IP地址和网络请求的标识符,生成头部信息(即head),再按照wireformat报文的格式,将头部信息与步骤S330所确定的报文信息(即quires和answers)相组合,最终得到响应结果。
最后在步骤S350中,将响应结果返回客户端010。
根据本发明的方案,按照分组对网络请求进行处理,属于一个小组中的网络请求,只需解析一次。并且,若网络请求属于预设白名单,则根据预解析的结果直接得到该网络请求的解析结果。这样,针对多次相同域名请求,只做一次解析,提高了***性能,同时降低***开销。
另外,解析结果直接以报文形式存在于缓存中,无需转换,直接组装。换言之,一次组装,多次使用。针对多个不同IP地址的相同域名解析请求,只解析一次,再根据客户端的IP地址返回给客户端。节省了字符转为报文的步骤,提高了域名解析***的性能。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与本发明的示例一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
本发明一并公开了:
A7、如A1-6中任一项所述的方法,其中,在根据网络请求所属的分组,确定出与域名相关的报文信息的步骤之前,还包括步骤:关联存储客户端的IP地址和网络请求的标识符。A8、如A1-7中任一项所述的方法,还包括:生成预设白名单的步骤。A9、如A8所述的方法,其中,生成预设白名单的步骤包括:从所接收到的网络请求中定期统计域名出现的次数;利用出现次数大于预设值的域名,生成预设白名单。A10、如A9所述的方法,还包括步骤:对预设白名单中的域名进行预解析,得到与域名相关的报文信息并缓存。
B12、如B11所述的报文封装设备,其中,队列生成模块还适于在接收到来自客户端的网络请求时,根据网络请求中所包含的域名,每隔第一时间对网络请求进行排序,并利用排序后的网络请求生成请求队列,其中,请求队列将包含相似域名的网络请求排在一起。B13、如B11或12所述的报文封装设备,其中,分组模块还适于从所述请求队列中依次选取第一数目个排序后的网络请求,并按照预设白名单,对所选取的网络请求进行匹配:若从预设白名单中匹配到所述网络请求,则将网络请求作为第一分组;若从预设白名单中未匹配到网络请求,则将网络请求作为第二分组。B14、如B11-13中任一项所述的报文封装设备,其中,分组模块还适于在网络请求属于第一分组时,根据预设白名单,从网络请求中确定出与域名相关的报文信息;以及在网络请求属于第二分组时,将网络请求发送至解析设备,以便解析设备对网络请求进行逐级解析,直到确定出与域名相关的报文信息;分组模块还适于接收由解析设备确定出的与域名相关的报文信息。B15、如B11-14中任一项所述的报文封装设备,其中,分组模块还适于关联存储客户端的IP地址和网络请求的标识符,以便根据网络请求的标识符所对应的客户端的IP地址、和所确定的报文信息,组装得到响应结果。B16、如B13-15中任一项所述的报文封装设备,还包括:白名单生成模块,适于从所接收到的网络请求中定期统计域名出现的次数,并利用出现次数大于预设值的域名,生成预设白名单。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机***的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。

Claims (19)

1.一种报文封装方法,所述方法适于在计算设备中执行,所述方法包括步骤:
每隔第一时间对来自客户端的网络请求进行排序,生成请求队列;
从所述请求队列中依次选取第一数目个网络请求,并将所选取的网络请求分为第一分组和第二分组,包括:将具有相同域名的网络请求分成一个小组,根据每个小组的域名的访问频率,将访问频率高的域名所对应的网络请求,作为第一分组,将其他域名对应的请求,作为第二分组;
根据所述网络请求所属的分组,确定出与域名相关的报文信息,其中,当所述网络请求属于第二分组时,按照网络请求所属的小组进行解析;根据所述网络请求对应的所述客户端的IP地址和所确定的报文信息,组装得到响应结果;以及
将响应结果返回所述客户端;
其中,所确定的所述报文信息以报文的形式缓存。
2.如权利要求1所述的方法,其中,所述从请求队列中依次选取第一数目个网络请求,并将所选取的网络请求分为第一分组和第二分组的步骤包括:
从所述请求队列中依次选取第一数目个排序后的网络请求;
按照预设白名单,对所选取的网络请求进行匹配;
若从预设白名单中匹配到所述网络请求,则将所述网络请求作为第一分组;
若从预设白名单中未匹配到所述网络请求,则将所述网络请求作为第二分组。
3.如权利要求1或2所述的方法,其中,所述根据网络请求所属的分组,确定出与域名相关的报文信息的步骤包括:
若所述网络请求属于第一分组,则根据预设白名单,从所述网络请求中确定出与域名相关的报文信息。
4.如权利要求3所述的方法,其中,所述根据网络请求所属的分组,确定出与域名相关的报文信息的步骤还包括:
若所述网络请求属于第二分组,则将所述网络请求发送至解析设备,以便所述解析设备对所述网络请求进行逐级解析,直到确定出与域名相关的报文信息;
接收由所述解析设备确定出的与域名相关的报文信息。
5.如权利要求1或2所述的方法,其中,所述每隔第一时间对来自客户端的网络请求进行排序,生成请求队列的步骤包括:
接收来自客户端的网络请求;以及
根据网络请求中所包含的域名,每隔第一时间对所述网络请求进行排序,并利用排序后的网络请求生成请求队列,其中,所述请求队列将包含相似域名的网络请求排在一起。
6.如权利要求5所述的方法,其中,所述第一时间和第一数目均与每秒查询率相关。
7.如权利要求1或2所述的方法,其中,在所述根据网络请求所属的分组,确定出与域名相关的报文信息的步骤之前,还包括步骤:
关联存储所述客户端的IP地址和所述网络请求的标识符。
8.如权利要求1或2所述的方法,还包括:生成预设白名单的步骤。
9.如权利要求8所述的方法,其中,所述生成预设白名单的步骤包括:
从所接收到的网络请求中定期统计域名出现的次数;
利用出现次数大于预设值的域名,生成预设白名单。
10.如权利要求9所述的方法,还包括步骤:
对预设白名单中的域名进行预解析,得到与域名相关的报文信息并缓存。
11.一种报文封装设备,包括:
队列生成模块,适于每隔第一时间对来自客户端的网络请求进行排序,生成请求队列;
分组模块,适于从所述请求队列中依次选取第一数目个网络请求,并将所选取的网络请求分为第一分组和第二分组,包括:将具有相同域名的网络请求分成一个小组,根据每个小组的域名的访问频率,将访问频率高的域名所对应的网络请求,作为第一分组,将其他域名对应的请求,作为第二分组,还适于根据所述网络请求所属的分组,确定出与域名相关的报文信息,其中,当所述网络请求属于第二分组时,按照网络请求所属的小组进行解析,以及根据所述网络请求对应的所述客户端的IP地址和所确定的报文信息,组装得到响应结果,其中,所确定的所述报文信息以报文的形式缓存;以及
所述分组模块还适于将所述响应结果返回所述客户端。
12.如权利要求11所述的报文封装设备,其中,
所述队列生成模块还适于在接收到来自客户端的网络请求时,根据网络请求中所包含的域名,每隔第一时间对所述网络请求进行排序,并利用排序后的网络请求生成请求队列,其中,所述请求队列将包含相似域名的网络请求排在一起。
13.如权利要求11或12所述的报文封装设备,其中,
所述分组模块还适于从所述请求队列中依次选取第一数目个排序后的网络请求,并按照预设白名单,对所选取的网络请求进行匹配:若从预设白名单中匹配到所述网络请求,则将所述网络请求作为第一分组;若从预设白名单中未匹配到所述网络请求,则将所述网络请求作为第二分组。
14.如权利要求11或12所述的报文封装设备,其中,
所述分组模块还适于在所述网络请求属于第一分组时,根据预设白名单,从所述网络请求中确定出与域名相关的报文信息;以及在所述网络请求属于第二分组时,将所述网络请求发送至解析设备,以便所述解析设备对所述网络请求进行逐级解析,直到确定出与域名相关的报文信息;
所述分组模块还适于接收由所述解析设备确定出的与域名相关的报文信息。
15.如权利要求11或12所述的报文封装设备,其中,
所述分组模块还适于关联存储所述客户端的IP地址和所述网络请求的标识符,以便根据所述网络请求的标识符所对应的所述客户端的IP地址、和所确定的报文信息,组装得到响应结果。
16.如权利要求11或12所述的报文封装设备,还包括:
白名单生成模块,适于从所接收到的网络请求中定期统计域名出现的次数,并利用出现次数大于预设值的域名,生成预设白名单。
17.一种域名解析***,包括:
如权利要求11或12所述的报文封装设备;
解析设备,适于对来自所述报文封装设备的网络请求进行逐级解析,直到确定出所述网络请求中与域名相关的报文信息,并返回给所述报文封装设备。
18.一种计算设备,包括:
至少一个处理器;和
存储有程序指令的存储器,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-10中任一项所述方法的指令。
19.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-10中任一项所述的方法。
CN201911072417.8A 2019-11-05 2019-11-05 报文封装方法、设备及域名解析*** Active CN110784553B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911072417.8A CN110784553B (zh) 2019-11-05 2019-11-05 报文封装方法、设备及域名解析***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911072417.8A CN110784553B (zh) 2019-11-05 2019-11-05 报文封装方法、设备及域名解析***

Publications (2)

Publication Number Publication Date
CN110784553A CN110784553A (zh) 2020-02-11
CN110784553B true CN110784553B (zh) 2021-12-21

Family

ID=69389232

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911072417.8A Active CN110784553B (zh) 2019-11-05 2019-11-05 报文封装方法、设备及域名解析***

Country Status (1)

Country Link
CN (1) CN110784553B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112887442B (zh) * 2021-01-11 2023-02-07 杭州迪普科技股份有限公司 域名解析查询请求的处理方法及装置
CN113472875A (zh) * 2021-06-28 2021-10-01 深信服科技股份有限公司 一种连接复用方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102340549A (zh) * 2010-07-22 2012-02-01 ***通信集团公司 一种域名解析方法及装置
CN102571997A (zh) * 2010-12-29 2012-07-11 ***通信集团北京有限公司 一种数据访问的方法、***及设备
CN105472056A (zh) * 2015-11-23 2016-04-06 中国互联网络信息中心 Dns递归服务器分层缓存方法和***
CN106412000A (zh) * 2016-07-27 2017-02-15 厦门易名科技股份有限公司 一种域名查询的处理方法
CN106888280A (zh) * 2017-03-29 2017-06-23 北京奇虎科技有限公司 Dns更新方法、装置及***

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8966121B2 (en) * 2008-03-03 2015-02-24 Microsoft Corporation Client-side management of domain name information
CN105897942A (zh) * 2015-09-17 2016-08-24 乐视云计算有限公司 一种域名解析***及域名解析方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102340549A (zh) * 2010-07-22 2012-02-01 ***通信集团公司 一种域名解析方法及装置
CN102571997A (zh) * 2010-12-29 2012-07-11 ***通信集团北京有限公司 一种数据访问的方法、***及设备
CN105472056A (zh) * 2015-11-23 2016-04-06 中国互联网络信息中心 Dns递归服务器分层缓存方法和***
CN106412000A (zh) * 2016-07-27 2017-02-15 厦门易名科技股份有限公司 一种域名查询的处理方法
CN106888280A (zh) * 2017-03-29 2017-06-23 北京奇虎科技有限公司 Dns更新方法、装置及***

Also Published As

Publication number Publication date
CN110784553A (zh) 2020-02-11

Similar Documents

Publication Publication Date Title
CN109271411B (zh) 报表生成方法、装置、计算机设备及存储介质
JP6626211B2 (ja) ショートリンクを処理する方法及び装置並びにショートリンクサーバ
CN111427766B (zh) 一种请求处理方法、装置和代理服务器
CN111651464B (zh) 数据处理方法、***及计算设备
CN110808987B (zh) 识别恶意域名的方法及计算设备
CN110784553B (zh) 报文封装方法、设备及域名解析***
US20190052553A1 (en) Architectures and methods for deep packet inspection using alphabet and bitmap-based compression
CN113329069B (zh) 一种即时通信方法、***及计算设备
CN110334086B (zh) 数据去重方法、装置、计算机设备以及存储介质
CN111629081A (zh) 互联网协议ip地址数据处理方法、装置及电子设备
CN112306881A (zh) 模拟数据生成方法、装置、设备及存储介质
CN114598597B (zh) 多源日志解析方法、装置、计算机设备及介质
CN104052679A (zh) 网络流量的负载均衡方法和装置
CN113688617A (zh) 一种生成表格页面的方法及计算设备
CN107508705B (zh) 一种http元素的资源树构建方法及计算设备
CN111814029A (zh) 一种数据查询方法、***及计算设备
CN114070844B (zh) 一种文件下载方法、装置、计算设备及存储介质
CN107317892B (zh) 一种网络地址的处理方法、计算设备及可读存储介质
CN116795913A (zh) 数据导出方法、数据导入方法、数据导出导入***
CN110716713A (zh) 一种生成项目代码的方法及计算设备
CN113590699B (zh) 一种接口请求处理方法、***及计算设备
CN114338529B (zh) 五元组规则匹配方法及装置
CN114205424B (zh) 账单文件解压方法、装置、计算机设备和存储介质
CN113656830B (zh) 数据库脱敏语法解析方法、***、计算机及可读存储介质
CN108874994A (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