HTTPDNS服务器的连接方法、装置及设备与流程

文档序号:18471541发布日期:2019-08-20 20:21阅读:440来源:国知局
HTTPDNS服务器的连接方法、装置及设备与流程

本公开涉及互联网技术领域,尤其涉及一种httpdns服务器的连接方法、装置及设备。



背景技术:

随着互联网技术的飞速发展,网络服务成为人们生活中不可缺少的一项服务,当前,互联网企业通常使用域名来给用户提供服务。但是,现有的提供服务的方式,都或多或少地无法避免在互联网环境中遭遇到各种域名被缓存、用户跨网访问缓慢等问题。这很可能给互联网企业带来巨大的损失。

为了解决现有技术中的问题,httpdns(基于http协议的域名系统)应运而生,httpdns是为移动客户端量身定做的基于http协议和域名解析的流量调度解决方案,用于解决现有技术localdns(本地域名系统)解析异常以及流量调度不准等问题。httpdns相比传统dns具有防劫持、精准调度、0ms解析延迟、快速生效等优点。

现有技术中,httpdns服务是基于tcp、tls协议的,需要建立tcp、tls握手,初次握手需要3或4个rtt(round-triptime,往返时延),导致httpdns服务的延迟较高。



技术实现要素:

本公开提供一种httpdns服务器的连接方法、装置及设备,以解决现有技术httpdns服务的延迟较高等缺陷。

本公开第一个方面提供一种httpdns服务器的连接方法,包括:

所述httpdns服务器接收客户端基于quic协议发送的连接请求;

所述httpdns服务器响应所述连接请求,与所述客户端建立连接。

本公开第二个方面提供一种httpdns服务器的连接装置,包括:

接收模块,用于所述httpdns服务器接收客户端基于quic协议发送的连接请求;

响应模块,用于所述httpdns服务器响应所述连接请求,与所述客户端建立连接。

本公开第三个方面提供一种电子设备,包括:至少一个处理器和存储器;

所述存储器存储计算机程序;所述至少一个处理器执行所述存储器存储的计算机程序,以实现第一个方面提供的方法。

本公开第四个方面提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现第一个方面提供的方法。

本公开提供的httpdns服务器的连接方法、装置及设备,通过httpdns服务器响应客户端基于quic协议发送的连接请求,与客户端建立连接,实现了基于quic协议的httpdns服务器的连接,可以有效降低httpdns服务器的连接时延。

附图说明

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本公开一实施例提供的httpdns服务器的连接方法的流程示意图;

图2为本公开另一实施例提供的httpdns服务器的连接方法的流程示意图;

图3为本公开一实施例提供的quic握手的交互示意图;

图4为本公开一实施例提供的http获取数据的交互示意图;

图5为本公开一实施例提供的httpdns服务器的连接装置的结构示意图;

图6为本公开一实施例提供的电子设备的结构示意图;

图7为本公开一实施例提供的电子设备的示例性结构示意图。

通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。

首先对本公开所涉及的名词进行解释:

dns:domainnamesystem,是互联网的一项服务。它作为将域名和ip地址相互映射的一个分布式数据库,能够使用户更方便地访问互联网。dns使用tcp和udp端口53。

httpdns:基于http协议的域名系统,使用http协议进行域名解析,域名解析请求直接发送到httpdns服务器,从而绕过运营商的本地域名系统localdns。

quic:quickudpinternetconnection,基于udp的低时延的互联网传输层协议。quic很好地解决了传输层和应用层面临的各种需求,包括处理更多的连接,安全性,和低延迟。quic融合了包括tcp,tls,http/2等协议的特性,但基于udp传输。quic的一个主要目标就是减少连接延迟,当客户端第一次连接服务器时,quic只需要1rtt的延迟就可以建立可靠安全的连接,相对于tcp+tls的1-3次rtt要更加快捷。之后客户端可以在本地缓存加密的认证信息,在再次与服务器建立连接时可以实现0-rtt的连接建立延迟。quic同时复用了http/2协议的多路复用功能(multiplexing),但由于quic基于udp所以避免了http/2的线头阻塞(head-of-lineblocking)问题。因为quic基于udp,运行在用户域而不是系统内核,使得quic协议可以快速的更新和部署,从而很好地解决了tcp协议部署及更新的困难。

本公开实施例提供的httpdns服务器的连接方法,适用于客户端与httpdns服务器建立连接,httpdns为客户端用户提供服务的的场景。

此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。

下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。

本公开一实施例提供一种httpdns服务器的连接方法,用于客户端与httpdns服务器之间建立连接。本公开实施例的执行主体为httpdns服务器的连接装置,该装置可以设置在httpdns服务器中。

如图1所示,为本公开实施例提供的httpdns服务器的连接方法的流程示意图,该方法包括:

步骤101,httpdns服务器接收客户端基于quic协议发送的连接请求。

具体的,当客户端需要httpdns服务器为其提供域名解析服务时,首先需要与httpdns服务器建立连接,客户端可以获取httpdns服务器的ip地址,根据httpdns服务器的ip地址,向httpdns服务器发送连接请求,为了降低连接延时,客户端基于quic协议向httpdns服务器发送连接请求。httpdns服务器则可以接收客户端基于quic协议发送的连接请求。

连接请求可以包括建立连接时所需要的消息,还可以包括建立连接之后客户端与httpdns服务器传输的加密信息。比如连接请求可以包括:连接标识、客户端参数、验证关联信息等等quic协议中定义的信息,具体不再赘述。连接请求可以是客户端首次与httpdns服务器建立连接的连接请求,可以包括初步客户端握手消息。客户端发送连接请求后,等待接收httpdns服务器返回响应消息,比如等待httpdns服务器返回接受消息serverreject消息。

示例性的,客户端基于quic协议向httpdns服务器发送clienthelloquic数据包,clienthelloquic数据包中可以包括协议版本、客户端参数及其他一些相关信息。

步骤102,httpdns服务器响应连接请求,与客户端建立连接。

具体的,httpdns服务器接收到客户端基于quic协议发送的连接请求后,可以响应客户端的连接请求,比如返回serverrejectquic数据包,serverrejectquic数据包可以包括服务配置信息serverconfig,完成与客户端的quic握手,与客户端建立安全连接。

本公开实施例提供的httpdns服务器的连接方法,通过httpdns服务器响应客户端基于quic协议发送的连接请求,与客户端建立连接,实现了基于quic协议的httpdns服务器的连接,可以有效降低httpdns服务器的连接时延。

本公开另一实施例对上述实施例提供的方法做进一步补充说明。

如图2所示,为本公开实施例提供的httpdns服务器的连接方法的流程示意图。

作为一种可实施的方式,在上述实施例的基础上,可选地,步骤101具体可以包括:

步骤1011,httpdns服务器接收客户端发送的clienthelloquic数据包。

相应地,步骤102,具体可以包括:

步骤1021,httpdns服务器根据clienthelloquic数据包,返回serverrejectquic数据包,完成quic握手,与客户端建立连接。

如图3所示,为本公开实施例提供的quic握手的交互示意图。其中服务端是指httpdns服务器。客户端与httpdns服务器在首次连接时,采用基于quic协议的握手减少了一个rtt,可以降低httpdns服务的延迟。httpdns携带的数据量比较小,一般小于一个mtu,即一个数据包就可以完成httpdns数据的传输,握手消耗的rtt直接决定了httpdns服务的延迟。

作为另一种可实施的方式,在上述实施例的基础上,可选地,步骤102之后,该方法还可以包括:

步骤103,httpdns服务器接收客户端发送的http请求。

步骤104,httpdns服务器根据http请求返回http响应。

具体的,在完成quic握手,httpdns服务器与客户端建立安全连接之后,客户端还需要向httpdns服务器发送http请求,httpdns服务器响应客户端的http请求,完成httpdns数据传输。

如图4所示,为本公开实施例提供的http获取数据的交互示意图。

作为另一种可实施的方式,在上述实施例的基础上,可选地,在步骤104之后,该方法还可以包括:

步骤105,httpdns服务器接收客户端发送的域名解析请求,域名解析请求包括待解析的目标域名。

步骤106,httpdns服务器根据目标域名,确定对应的目标ip地址。

步骤107,httpdns服务器将目标ip地址返回给客户端,以使客户端根据目标ip地址访问对应的服务器。

具体的,在httpdns服务器与客户端建立连接后,httpdns服务器则可以为客户端提供域名解析服务。客户端可以将要访问的网络的域名(称为目标域名)携带在域名解析请求中发送给httpdns服务器,httpdns服务器接收到客户端发送的域名解析请求之后,对目标域名进行解析,确定目标域名对应的目标ip地址,发送给客户端,客户端接收到目标ip地址后,则可以根据目标ip地址访问其要访问的目标服务器,目标服务器则可以为客户端提供网络服务。httpdns服务器解析目标域名的方式可以为现有技术中任意一种可实施的方式,本实施例不做限定。

其中,域名解析请求为基于http的消息格式,httpdns服务器以http的消息格式将域名解析结果反馈给客户端。

可选地,步骤106具体可以包括:

httpdns服务器基于预设ip库,对目标域名进行解析,获得目标域名对应的目标ip地址。

具体的,可以在httpdns服务器预设ip库,客户端通过基于数据库远程查询方式查询httpdns服务器的预设ip库,比如可以通过sql(structuredquerylanguage,结构化查询语言)查询httpdns服务器预存的域名解析结果)。

可选地,httpdns服务器中的域名解析结果还可以是httpdns服务器预先在本地缓存区域存储的。具体可以根据实际需求设置。

需要说明的是,本公开实施例中各可实施的方式可以单独实施,也可以在不冲突的情况下以任意组合方式结合实施本公开不做限定。

本公开实施例提供的httpdns服务器的连接方法,通过httpdns服务器响应客户端基于quic协议发送的连接请求,与客户端建立连接,实现了基于quic协议的httpdns服务器的连接,可以有效降低httpdns服务器的连接时延。

本公开再一实施例提供一种httpdns服务器的连接装置,用于执行上述实施例的方法。

如图5所示,为本公开实施例提供的httpdns服务器的连接装置的结构示意图。该httpdns服务器的连接装置30包括接收模块31和响应模块32。

其中,接收模块,用于httpdns服务器接收客户端基于quic协议发送的连接请求;响应模块,用于httpdns服务器响应连接请求,与客户端建立连接。

关于本公开实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

根据本公开实施例提供的httpdns服务器的连接装置,通过httpdns服务器响应客户端基于quic协议发送的连接请求,与客户端建立连接,实现了基于quic协议的httpdns服务器的连接,可以有效降低httpdns服务器的连接时延。

本公开又一实施例对上述实施例提供的装置做进一步补充说明,以执行上述实施例提供的方法。

作为一种可实施的方式,在上述实施例的基础上,可选地,接收模块,具体用于:

httpdns服务器接收客户端发送的clienthelloquic数据包;

响应模块,具体用于:

httpdns服务器根据clienthelloquic数据包,返回serverrejectquic数据包,完成quic握手,与客户端建立连接。

作为另一种可实施的方式,在上述实施例的基础上,可选地,接收模块,还用于:

httpdns服务器接收客户端发送的http请求;

响应模块,还用于:

httpdns服务器根据http请求返回http响应。

作为另一种可实施的方式,在上述实施例的基础上,可选地,接收模块,还用于:httpdns服务器接收客户端发送的域名解析请求,域名解析请求包括待解析的目标域名;

响应模块,还用于:httpdns服务器根据目标域名,确定对应的目标ip地址;httpdns服务器将目标ip地址返回给客户端,以使客户端根据目标ip地址访问对应的服务器。

可选地,响应模块,具体用于:

httpdns服务器基于预设ip库,对目标域名进行解析,获得目标域名对应的目标ip地址。

关于本公开实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

需要说明的是,本公开实施例中各可实施的方式可以单独实施,也可以在不冲突的情况下以任意组合方式结合实施本公开不做限定。

根据本公开实施例的httpdns服务器的连接装置,通过httpdns服务器响应客户端基于quic协议发送的连接请求,与客户端建立连接,实现了基于quic协议的httpdns服务器的连接,可以有效降低httpdns服务器的连接时延。

本公开再一实施例提供一种电子设备,用于执行上述实施例提供的方法。该电子设备可以为httpdns服务器。

如图6所示,为本公开实施例提供的电子设备的结构示意图。该电子设备50包括:至少一个处理器51和存储器52;

存储器存储计算机程序;至少一个处理器执行存储器存储的计算机程序,以实现上述实施例提供的方法。

根据本公开实施例的电子设备,通过httpdns服务器响应客户端基于quic协议发送的连接请求,与客户端建立连接,实现了基于quic协议的httpdns服务器的连接,可以有效降低httpdns服务器的连接时延。

作为一种示例性的实施例,可选地,如图7所示,为本公开实施例提供的电子设备的示例性结构示意图。该电子设备800可以包括处理装置(例如中央处理器、图形处理器等)801,其可以根据存储在只读存储器(rom)802中的程序或者从存储装置808加载到随机访问存储器(ram)803中的程序而执行各种适当的动作和处理。在ram803中,还存储有电子设备800操作所需的各种程序和数据。处理装置801、rom802以及ram803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。

通常,以下装置可以连接至i/o接口805:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置806;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置807;包括例如磁带、硬盘等的存储装置808;以及通信装置809。通信装置809可以允许电子设备800与其他设备进行无线或有线通信以交换数据。虽然图7示出了具有各种装置的电子设备800,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置809从网络上被下载和安装,或者从存储装置808被安装,或者从rom802被安装。在该计算机程序被处理装置801执行时,执行本公开实施例的方法中限定的上述功能。

需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。

本公开又一实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,计算机程序被执行时实现上述任一实施例提供的方法。

根据本公开实施例的计算机可读存储介质,通过httpdns服务器响应客户端基于quic协议发送的连接请求,与客户端建立连接,实现了基于quic协议的httpdns服务器的连接,可以有效降低httpdns服务器的连接时延。

在本公开所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本公开实施例方案的目的。

另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本公开各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

最后应说明的是:以上各实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述各实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1