域名解析查询请求的处理方法及装置转让专利

申请号 : CN202110029084.1

文献号 : CN112887442B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王信大

申请人 : 杭州迪普科技股份有限公司

摘要 :

本公开涉及一种域名解析查询请求的处理方法、装置、电子设备及计算机可读介质。可用于域名解析服务器,该方法包括:获取域名解析查询报文,并放入查询报文等待队列;基于所述查询报文等待队列由所述域名解析查询报文中提取报文信息,所述报文信息包括:源IP地址,域名信息,请求类型;将域名解析查询报文的报文地址,所述域名信息,所述请求类型发送至域名匹配等待队列;将所述源IP地址和所述报文地址发送至响应报文查询等待队列;基于所述域名匹配等待队列和所述报文查询等待队列的处理结果响应所述域名解析查询请求。本公开的方法,能够提高设备的中央处理器利用率,提升域名解析查询服务的效率,缩短域名解析查询请求的响应时间。

权利要求 :

1.一种域名解析查询请求的处理方法,可用于域名解析服务器,其特征在于,包括:基于多个中央处理器和其对应的多个队列分别处理所述域名解析查询请求的计算;

建立第一中央处理器和其对应的查询报文等待队列;

建立第二中央处理器和其对应的域名匹配等待队列,域名匹配就绪队列;

建立第三中央处理器和其对应的响应报文查询等待队列,响应报文查询就绪队列;

建立第四中央处理器和其对应的响应报文发送等待队列;

获取域名解析查询报文,并放入查询报文等待队列;

基于所述查询报文等待队列由所述域名解析查询报文中提取报文信息,所述报文信息包括:源IP地址,域名信息,请求类型;

将域名解析查询报文的报文地址,所述域名信息,所述请求类型发送至域名匹配等待队列;

将所述源IP地址和所述报文地址发送至响应报文查询等待队列;

基于所述域名匹配等待队列和所述报文查询等待队列的处理结果响应所述域名解析查询请求。

2.如权利要求1所述的方法,其特征在于,基于所述域名匹配等待队列和所述报文查询等待队列的处理结果响应所述域名解析查询请求,包括:循环提取所述域名匹配等待队列上的所述报文地址,所述域名信息,所述请求类型;

基于所述报文地址,所述域名信息,所述请求类型和预设的域名解析记录进行匹配;

在匹配成功时,将所述域名解析查询报文标记为域名匹配就绪状态;

在匹配不成功时,将所述域名解析查询报文标记为域名匹配错误状态。

3.如权利要求1所述的方法,其特征在于,基于所述域名匹配等待队列和所述报文查询等待队列的处理结果响应所述域名解析查询请求,包括:循环提取所述响应报文查询等待队列的所述源IP地址和所述报文地址;

根据所述源IP地址和预设的域名解析记录中路由地址进行匹配;

在匹配成功时,将所述域名解析查询报文标记为响应报文查询就绪状态;

在匹配不成功时,将所述域名解析查询报文标记为响应报文查询错误状态。

4.如权利要求 3所述的方法,其特征在于,基于所述域名匹配等待队列和所述报文查询等待队列的处理结果响应所述域名解析查询请求,还包括:检查所述域名解析查询报文的所有状态以响应所述域名解析查询请求。

5.如权利要求4所述的方法,其特征在于,检查所述域名解析查询报文的所有状态以响应所述域名解析查询请求,包括:在所述域名解析查询报文的状态包括域名匹配就绪状态、响应报文查询就绪状态时,将所述路由地址,所述域名解析记录,所述报文地址发送至响应报文发送等待队列。

6.如权利要求5所述的方法,其特征在于,检查所述域名解析查询报文的所有状态以响应所述域名解析查询请求,还包括:在所述域名解析查询报文的状态包括域名匹配错误状态时,将所述域名解析查询报文丢弃;

在所述域名解析查询报文的状态包括响应报文查询错误状态时,将所述域名解析查询报文丢弃。

7.如权利要求3所述的方法,其特征在于,基于所述域名匹配等待队列和所述报文查询等待队列的处理结果响应所述域名解析查询请求,包括:响应报文发送等待队列循环查询所述域名匹配等待队列和所述报文查询等待队列的处理结果;

由所述处理结果中提取所述域名解析查询报文,所述路由地址,所述域名解析记录,所述报文地址;

基于所述域名解析查询报文,所述路由地址,所述域名解析记录,所述报文地址构造响应报文。

8.如权利要求7所述的方法,其特征在于,还包括:基于所述路由地址发送所述响应报文。

9.一种域名解析查询请求的处理装置,可用于域名解析服务器,其特征在于,包括:获取报文模块,用于获取域名解析查询报文,并放入查询报文等待队列,其中所述域名解析查询请求的计算基于多个中央处理器和其对应的多个队列分别处理,所述查询报文等待队列由第一中央处理器处理;

提取信息模块,用于基于所述查询报文等待队列由所述域名解析查询报文中提取报文信息,所述报文信息包括:源IP地址,域名信息,请求类型;

域名匹配模块,用于将域名解析查询报文的报文地址,所述域名信息,所述请求类型发送至域名匹配等待队列,其中域名匹配等待队列以及域名匹配就绪队列由第二中央处理器处理;

报文查询模块,用于将所述源IP地址和所述报文地址发送至响应报文查询等待队列,其中响应报文查询等待队列以及响应报文查询就绪队列由第三中央处理器处理;

响应请求模块,用于基于所述域名匹配等待队列和所述报文查询等待队列的处理结果响应所述域名解析查询请求,其中响应报文发送等待队列中的响应由第四中央处理器处理。

说明书 :

域名解析查询请求的处理方法及装置

技术领域

[0001] 本公开涉及计算机信息处理领域,具体而言,涉及一种域名解析查询请求的处理方法、装置、电子设备及计算机可读介质。

背景技术

[0002] 域名系统(Domain Name System,DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。Internet上当一台主机要访问另外一台主机时,必须首先获知其地址,TCP/IP中的IP地址是由四段以“.”分开的数字组成,记起来总是不如名字那么方便,所以,就采用了域名系统来管理名字和IP的对应关系。
[0003] 在现有技术中,从设备接收到DNS请求开始,一个基本的DNS查询流程如下:
[0004] 1、DNS查询报文信息提取,提取出报文的源IP,域名信息,请求类型。
[0005] 2、根据报文中的域名信息、请求类型匹配设备中配置的记录信息。从而取得响应信息。
[0006] 3、根据取得的响应信息构造DNS响应报文。
[0007] 4、根据报文的源IP查找路由。
[0008] 5、根据路由结果将DNS响应报文发送出去。
[0009] 上述过程是顺序执行。对于多CPU系统,设备会根据某种分担算法,将DNS查询报文分配到各个CPU执行上述查询过程。但也是在前面的步骤执行完毕后,才执行后面的步骤,多CPU系统不能充分发挥优势,比如当负载不是很大时,某些CPU是空闲状态,而某些CPU要独立完成查询任务,CPU利用率不高,单个DNS查询请求的响应时间过长。
[0010] 因此,需要一种新的域名解析查询请求的处理方法、装置、电子设备及计算机可读介质。
[0011] 在所述背景技术部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

[0012] 有鉴于此,本公开提供一种域名解析查询请求的处理方法、装置、电子设备及计算机可读介质,能够提高设备的中央处理器利用率,提升域名解析查询服务的效率,缩短域名解析查询请求的响应时间。
[0013] 本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
[0014] 根据本公开的一方面,提出一种域名解析查询请求的处理方法,可用于域名解析服务器,该方法包括:获取域名解析查询报文,并放入查询报文等待队列;基于所述查询报文等待队列由所述域名解析查询报文中提取报文信息,所述报文信息包括:源IP地址,域名信息,请求类型;将域名解析查询报文的报文地址,所述域名信息,所述请求类型发送至域名匹配等待队列;将所述源IP地址和所述报文地址发送至响应报文查询等待队列;基于所述域名匹配等待队列和所述报文查询等待队列的处理结果响应所述域名解析查询请求。
[0015] 在本公开的一种示例性实施例中,还包括:基于多个中央处理器和其对应的多个队列分别处理所述域名解析查询请求的计算。
[0016] 在本公开的一种示例性实施例中,还包括:建立第一中央处理器和其对应的查询报文等待队列;建立第二中央处理器和其对应的域名匹配等待队列,域名匹配就绪队列;建立第三中央处理器和其对应的响应报文查询等待队列,响应报文查询就绪队列;建立第四中央处理器和其对应的响应报文发送等待队列。
[0017] 在本公开的一种示例性实施例中,基于所述域名匹配等待队列和所述报文查询等待队列的处理结果响应所述域名解析查询请求,包括:循环提取所述域名匹配等待队列上的所述报文地址,所述域名信息,所述请求类型;基于所述报文地址,所述域名信息,所述请求类型和预设的域名解析记录进行匹配;在匹配成功时,将所述域名解析查询报文标记为域名匹配就绪状态;在匹配不成功时,将所述域名解析查询报文标记为域名匹配错误状态。
[0018] 在本公开的一种示例性实施例中,基于所述域名匹配等待队列和所述报文查询等待队列的处理结果响应所述域名解析查询请求,包括:循环提取所述响应报文查询等待队列的所述源IP地址和所述报文地址;根据所述源IP地址和预设的域名解析记录中路由地址进行匹配;在匹配成功时,将所述域名解析查询报文标记为响应报文查询就绪状态;在匹配不成功时,将所述域名解析查询报文标记为响应报文查询错误状态。
[0019] 在本公开的一种示例性实施例中,基于所述域名匹配等待队列和所述报文查询等待队列的处理结果响应所述域名解析查询请求,还包括:检查所述域名解析查询报文的所有状态以响应所述域名解析查询请求。
[0020] 在本公开的一种示例性实施例中,检查所述域名解析查询报文的所有状态以响应所述域名解析查询请求,包括:在所述域名解析查询报文的状态包括域名匹配就绪状态、响应报文查询就绪状态时,将所述路由地址,所述域名解析记录,所述报文地址发送至响应报文发送等待队列。
[0021] 在本公开的一种示例性实施例中,检查所述域名解析查询报文的所有状态以响应所述域名解析查询请求,还包括:在所述域名解析查询报文的状态包括域名匹配错误状态时,将所述域名解析查询报文丢弃;在所述域名解析查询报文的状态包括响应报文查询错误状态时,将所述域名解析查询报文丢弃。
[0022] 在本公开的一种示例性实施例中,基于所述域名匹配等待队列和所述报文查询等待队列的处理结果响应所述域名解析查询请求,包括:响应报文发送等待队列循环查询所述域名匹配等待队列和所述报文查询等待队列的处理结果;由所述处理结果中提取所述域名解析查询报文,所述路由地址,所述域名解析记录,所述报文地址;基于所述域名解析查询报文,所述路由地址,所述域名解析记录,所述报文地址构造响应报文。
[0023] 在本公开的一种示例性实施例中,还包括:基于所述路由地址发送所述响应报文。
[0024] 根据本公开的一方面,提出一种域名解析查询请求的处理装置,可用于域名解析服务器,该装置包括:获取报文模块,用于获取域名解析查询报文,并放入查询报文等待队列;提取信息模块,用于基于所述查询报文等待队列由所述域名解析查询报文中提取报文信息,所述报文信息包括:源IP地址,域名信息,请求类型;域名匹配模块,用于将域名解析查询报文的报文地址,所述域名信息,所述请求类型发送至域名匹配等待队列;报文查询模块,用于将所述源IP地址和所述报文地址发送至响应报文查询等待队列;响应请求模块,用于基于所述域名匹配等待队列和所述报文查询等待队列的处理结果响应所述域名解析查询请求。
[0025] 根据本公开的一方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上文的方法。
[0026] 根据本公开的一方面,提出一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上文中的方法。
[0027] 根据本公开的域名解析查询请求的处理方法、装置、电子设备及计算机可读介质,获取域名解析查询报文,并放入查询报文等待队列;基于所述查询报文等待队列由所述域名解析查询报文中提取报文信息,所述报文信息包括:源IP地址,域名信息,请求类型;将域名解析查询报文的报文地址,所述域名信息,所述请求类型发送至域名匹配等待队列;将所述源IP地址和所述报文地址发送至响应报文查询等待队列;基于所述域名匹配等待队列和所述报文查询等待队列的处理结果响应所述域名解析查询请求的方式,能够提高设备的中央处理器利用率,提升域名解析查询服务的效率,缩短域名解析查询请求的响应时间。
[0028] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。

附图说明

[0029] 通过参照附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0030] 图1是根据一示例性实施例示出的一种域名解析查询请求的处理方法的流程图。
[0031] 图2是根据一示例性实施例示出的一种域名解析查询请求的处理方法的流程图。
[0032] 图3是根据另一示例性实施例示出的一种域名解析查询请求的处理方法的流程图。
[0033] 图4是根据另一示例性实施例示出的一种域名解析查询请求的处理方法的流程图。
[0034] 图5是根据另一示例性实施例示出的一种域名解析查询请求的处理方法的流程图。
[0035] 图6是根据一示例性实施例示出的一种域名解析查询请求的处理装置的框图。
[0036] 图7是根据一示例性实施例示出的一种电子设备的框图。
[0037] 图8是根据一示例性实施例示出的一种计算机可读介质的框图。

具体实施方式

[0038] 现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
[0039] 此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
[0040] 附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
[0041] 附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
[0042] 应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本公开概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
[0043] 本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本公开所必须的,因此不能用于限制本公开的保护范围。
[0044] 图1是根据一示例性实施例示出的一种域名解析查询请求的处理方法的流程图。域名解析查询请求的处理方法10至少包括步骤S102至S110。
[0045] 如图1所示,在S102中,获取域名解析查询报文,并放入查询报文等待队列。
[0046] 在S104中,基于所述查询报文等待队列由所述域名解析查询报文中提取报文信息,所述报文信息包括:源IP地址,域名信息,请求类型。
[0047] 在S106中,将域名解析查询报文的报文地址,所述域名信息,所述请求类型发送至域名匹配等待队列。循环提取所述域名匹配等待队列上的所述报文地址,所述域名信息,所述请求类型;基于所述报文地址,所述域名信息,所述请求类型和预设的域名解析记录进行匹配;在匹配成功时,将所述域名解析查询报文标记为域名匹配就绪状态;在匹配不成功时,将所述域名解析查询报文标记为域名匹配错误状态。
[0048] 在S108中,将所述源IP地址和所述报文地址发送至响应报文查询等待队列。循环提取所述响应报文查询等待队列的所述源IP地址和所述报文地址;根据所述源IP地址和预设的域名解析记录中路由地址进行匹配;在匹配成功时,将所述域名解析查询报文标记为响应报文查询就绪状态;在匹配不成功时,将所述域名解析查询报文标记为响应报文查询错误状态。
[0049] 在S110中,基于所述域名匹配等待队列和所述报文查询等待队列的处理结果响应所述域名解析查询请求。更具体的,可例如检查所述域名解析查询报文的所有状态以响应所述域名解析查询请求。
[0050] 其中,检查所述域名解析查询报文的所有状态以响应所述域名解析查询请求,可包括:
[0051] 在所述域名解析查询报文的状态包括域名匹配就绪状态、响应报文查询就绪状态时,将所述路由地址,所述域名解析记录,所述报文地址发送至响应报文发送等待队列。
[0052] 在所述域名解析查询报文的状态包括域名匹配错误状态时,将所述域名解析查询报文丢弃;
[0053] 在所述域名解析查询报文的状态包括响应报文查询错误状态时,将所述域名解析查询报文丢弃。
[0054] 在一个实施例中,还包括:响应报文发送等待队列循环查询所述域名匹配等待队列和所述报文查询等待队列的处理结果;由所述处理结果中提取所述域名解析查询报文,所述路由地址,所述域名解析记录,所述报文地址;基于所述域名解析查询报文,所述路由地址,所述域名解析记录,所述报文地址构造响应报文。更具体的,可基于所述路由地址发送所述响应报文。
[0055] 根据本公开的域名解析查询请求的处理方法,获取域名解析查询报文,并放入查询报文等待队列;基于所述查询报文等待队列由所述域名解析查询报文中提取报文信息,所述报文信息包括:源IP地址,域名信息,请求类型;将域名解析查询报文的报文地址,所述域名信息,所述请求类型发送至域名匹配等待队列;将所述源IP地址和所述报文地址发送至响应报文查询等待队列;基于所述域名匹配等待队列和所述报文查询等待队列的处理结果响应所述域名解析查询请求的方式,能够提高设备的中央处理器利用率,提升域名解析查询服务的效率,缩短域名解析查询请求的响应时间。
[0056] 图2是根据一示例性实施例示出的一种域名解析查询请求的处理方法的流程图。域名解析查询请求的处理方法20是对域名解析查询请求的处理方法10的补充描述。
[0057] 如图2所示,在S202中,建立第一中央处理器和其对应的查询报文等待队列。可在第一CPU中设置查询报文信息提取单元和其对应的查询报文等待队列。查询报文信息提取单元的查询报文等待队列,用于存放设备收到的DNS查询请求报文。
[0058] 在S204中,建立第二中央处理器和其对应的域名匹配等待队列,域名匹配就绪队列。可在第二CPU中设置域名匹配单元和其对应的域名匹配等待队列、域名匹配就绪队列。域名匹配单元的域名匹配等待队列,用于存放待本单元处理的报文域名;域名匹配单元的域名匹配就绪队列,用于在本单元已经处理完的报文,但是该报文暂时不能被继续执行时,则将该报文加入到就绪队列。域名匹配就绪队列上的报文可存在两个状态:域名匹配就绪状态或域名匹配错误状态。
[0059] 在S206中,建立第三中央处理器和其对应的响应报文查询等待队列,响应报文查询就绪队列。可在第三CPU中设置响应报文查询路由单元和其对应的响应报文查询等待队列、响应报文查询就绪队列。响应报文查询路由单元的响应报文查询等待队列,用于存放待本单元处理的报文域名;响应报文查询路由单元的响应报文查询就绪队列,用于在本单元已经处理完的报文,但是该报文暂时不能被继续执行时,则将该报文加入到就绪队列。响应报文查询就绪队列上的报文可存在两个状态:响应报文查询就绪状态或响应报文查询错误状态。
[0060] 在S208中,建立第四中央处理器和其对应的响应报文发送等待队列。可在第四CPU中设置响应报文发送单元和其对应的响应报文发送响等待队列。响应报文发送单元的响应报文发送等待队列,用于存放上一步处理好的报文。
[0061] 响应报文发送单元循环检查响应报文发送等待队列,取出待处理的报文,根据路由结果、报文地址、DNS记录构造响应报文并发送。
[0062] 在S210中,基于多个中央处理器和其对应的多个队列分别处理所述域名解析查询请求的计算。更具体的,可采用“多cpu流水线处理”的方式,将DNS查询过程拆分为4个环节,设置4个对应的处理单元。每个处理单元在单独的CPU上运行,整体是流水线过程,其中域名匹配单元、响应报文查询路由单元可采用并行处理。
[0063] 更进一步的,还可采用“多cpu流水线处理”与“单cpu处理完整DNS查询”的组合方法进行DNS查询。
[0064] 在一个具体的实施例中,以上4个处理单元分别有4种cpu专门执行。设备共有m个cpu处理DNS业务,对应上述4个环节分别有4个cpu采用四级流水线操作,另外m‑4个cpu采用单cpu处理完整DNS业务的方法。更进一步的,当以上4个处理单元的任意等待队列满时,将报文送到单cpu处理完整DNS查询流程处,以进行DNS查询处理。
[0065] 四个单元的单独用时分别时t1,t2,t3,t4。则不采用流水线解析的响应时间约T1=t1+t2+t3+t4,采用本方案的响应时间约为T2=t1+MAX(t2,t3)+t4。总体时间T1小于T2,即响应时间缩短。
[0066] 另外由于流水线方式,很少有一些cpu空闲而另外一些cpu很忙的情况,提升cpu的利用率,从而提高单位时间的DNS服务效率,同时还能提升单个DNS查询的平均响应时间。提高了服务质量。
[0067] 应清楚地理解,本公开描述了如何形成和使用特定示例,但本公开的原理不限于这些示例的任何细节。相反,基于本公开公开的内容的教导,这些原理能够应用于许多其它实施例。
[0068] 图3是根据另一示例性实施例示出的一种域名解析查询请求的处理方法的流程图。图3所示的流程30是对查询报文信息提取单元工作过程的详细描述。
[0069] 如图3所示,在S302中,循环检查查询报文等待队列。
[0070] 在S304中,提取域名解析查询报文的报文信息。
[0071] 在S306中,将域名解析查询报文的报文地址,域名信息,请求类型发送至域名匹配等待队列。
[0072] 在S308中,将所述源IP地址和所述报文地址发送至响应报文查询等待队列。
[0073] 当接收到DNS查询报文时,首先由查询报文提取单元循环检查自己的查询报文等待队列,取出待处理的报文提取出报文信息,包括源IP地址、域名、类型。
[0074] 查询报文提取单元将查到的域名、类型以及报文地址(该地址可以唯一标识该DNS查询请求)加入到域名匹配单元的域名匹配等待队列。
[0075] 同时将查到的源IP地址以及报文地址加到响应报文查路由单元的响应报文查询等待队列。
[0076] 图4是根据另一示例性实施例示出的一种域名解析查询请求的处理方法的流程图。图4所示的流程40是对域名匹配单元工作过程的详细描述。
[0077] 如图4所示,在S402中,循环提取域名匹配等待队列上的报文地址,域名信息,请求类型。
[0078] 在S404中,基于所述报文地址,所述域名信息,所述请求类型和预设的域名解析记录进行匹配。
[0079] 在S406中,在匹配成功时,将所述域名解析查询报文标记为域名匹配就绪状态。
[0080] 在S408中,在匹配不成功时,将所述域名解析查询报文标记为域名匹配错误状态。
[0081] 域名匹配单元循环检查域名匹配等待队列,根据域名查找设备上预先配置的DNS记录。如果成功,标识报文状态为域名匹配就绪状态,否则标识域名匹配错误状态。报文从域名匹配等待队列出队,检查报文的状态:
[0082] A)如果有响应报文查询就绪状态,则将响应报文查询就绪队列的报文出队,如果有域名匹配响应报文查询就绪状态,则将响应报文查询队列中得到的路由结果,以及DNS记录、报文地址加入到响应报文发送响等待队列;如果有域名匹配错误状态。则将报文丢弃。
[0083] B)如果有响应报文查询错误状态,则将就响应报文查询就绪队列的报文出队,将报文丢弃。
[0084] C)否则将报文加入就域名匹配就绪队列。
[0085] 图5是根据另一示例性实施例示出的一种域名解析查询请求的处理方法的流程图。图5所示的流程50是对响应报文查询路由单元工作过程的详细描述。
[0086] 如图5所示,在S502中,循环提取响应报文查询等待队列的源IP地址和报文地址。
[0087] 在S504中,根据所述源IP地址和预设的域名解析记录中路由地址进行匹配。
[0088] 在S506中,在匹配成功时,将所述域名解析查询报文标记为响应报文查询就绪状态。
[0089] 在S508中,在匹配不成功时,将所述域名解析查询报文标记为响应报文查询错误状态。
[0090] 响应报文查询路由单元循环检查响应报文查询等待队列,根据源IP查找路由。如果成功,标识报文状态为响应报文查询就绪状态,否则标识响应报文查询错误状态。报文从响应报文查询等待队列出队,检查报文的状态:
[0091] A)如果有域名匹配响应报文查询就绪状态,则将域名匹就绪队列的报文出队,如果有响应报文查询就绪状态,则将域名匹配就绪队列中得到的DNS记录结果,以及路由结果、报文地址加入到响应报文发送等待队列;如果有响应报文查询错误状态。则将报文丢弃。
[0092] B)如果有域名匹配错误状态,则将域名匹配就绪队列的报文出队,将报文丢弃。
[0093] C)否则将报文加入响应报文查询就绪队列。
[0094] 本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本公开提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
[0095] 此外,需要注意的是,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
[0096] 下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
[0097] 图6是根据另一示例性实施例示出的一种域名解析查询请求的处理装置的框图。如图6所示,域名解析查询请求的处理装置60包括:获取报文模块602,提取信息模块604,域名匹配模块606,报文查询模块608,响应请求模块610。
[0098] 获取报文模块602用于获取域名解析查询报文,并放入查询报文等待队列;
[0099] 提取信息模块604用于基于所述查询报文等待队列由所述域名解析查询报文中提取报文信息,所述报文信息包括:源IP地址,域名信息,请求类型;
[0100] 域名匹配模块606用于将域名解析查询报文的报文地址,所述域名信息,所述请求类型发送至域名匹配等待队列;
[0101] 报文查询模块608用于将所述源IP地址和所述报文地址发送至响应报文查询等待队列;
[0102] 响应请求模块610用于基于所述域名匹配等待队列和所述报文查询等待队列的处理结果响应所述域名解析查询请求。
[0103] 根据本公开的域名解析查询请求的处理装置,获取域名解析查询报文,并放入查询报文等待队列;基于所述查询报文等待队列由所述域名解析查询报文中提取报文信息,所述报文信息包括:源IP地址,域名信息,请求类型;将域名解析查询报文的报文地址,所述域名信息,所述请求类型发送至域名匹配等待队列;将所述源IP地址和所述报文地址发送至响应报文查询等待队列;基于所述域名匹配等待队列和所述报文查询等待队列的处理结果响应所述域名解析查询请求的方式,能够提高设备的中央处理器利用率,提升域名解析查询服务的效率,缩短域名解析查询请求的响应时间。
[0104] 图7是根据一示例性实施例示出的一种电子设备的框图。
[0105] 下面参照图7来描述根据本公开的这种实施方式的电子设备700。图7显示的电子设备700仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0106] 如图7所示,电子设备700以通用计算设备的形式表现。电子设备700的组件可以包括但不限于:至少一个处理单元710、至少一个存储单元720、连接不同系统组件(包括存储单元720和处理单元710)的总线730、显示单元740等。
[0107] 其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元710执行,使得所述处理单元710执行本说明书中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元710可以执行如图1,图2,图3,图4中所示的步骤。
[0108] 所述存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)7201和/或高速缓存存储单元7202,还可以进一步包括只读存储单元(ROM)7203。
[0109] 所述存储单元720还可以包括具有一组(至少一个)程序模块7205的程序/实用工具7204,这样的程序模块7205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0110] 总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
[0111] 电子设备700也可以与一个或多个外部设备700’(例如键盘、指向设备、蓝牙设备等)通信,使得用户能与该电子设备700交互的设备通信,和/或该电子设备700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口750进行。并且,电子设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器760可以通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
[0112] 通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,如图8所示,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD‑ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本公开实施方式的上述方法。
[0113] 所述软件产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0114] 所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0115] 可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0116] 上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现如下功能:获取域名解析查询报文,并放入查询报文等待队列;基于所述查询报文等待队列由所述域名解析查询报文中提取报文信息,所述报文信息包括:源IP地址,域名信息,请求类型;将域名解析查询报文的报文地址,所述域名信息,所述请求类型发送至域名匹配等待队列;将所述源IP地址和所述报文地址发送至响应报文查询等待队列;基于所述域名匹配等待队列和所述报文查询等待队列的处理结果响应所述域名解析查询请求。
[0117] 本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0118] 通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD‑ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施例的方法。
[0119] 以上具体地示出和描述了本公开的示例性实施例。应可理解的是,本公开不限于这里描述的详细结构、设置方式或实现方法;相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。