(12)发明专利申请
(10)申请公布号 CN 107124482 A(43)申请公布日 2017.09.01
(21)申请号 201710386061.X(22)申请日 2017.05.26
(71)申请人 深圳市米联科信息技术有限公司
地址 518000 广东省深圳市宝安区新安街
道兴华二路灵芝园新村B栋501(72)发明人 熊峰
(74)专利代理机构 深圳市精英专利事务所
44242
代理人 冯筠(51)Int.Cl.
H04L 29/12(2006.01)
权利要求书1页 说明书7页 附图3页
(54)发明名称
一种DNS数据包转发方法、系统及路由器(57)摘要
本发明提供了一种可以提升DNS解析成功率和速率的DNS数据包转发方法、系统及路由器。该DNS数据包转发方法包括有:接收客户端的DNS请求数据包,根据接收到的UDP格式DNS请求数据包生成至少一非UDP格式DNS请求数据包,将UDP格式DNS请求数据包和非UDP格式DNS请求数据包分别发送至DNS服务器;接收DNS服务器的DNS响应数据包,将接收到的非UDP格式DNS响应数据包转换成UDP格式DNS响应数据包,并将UDP格式DNS响应数据包发送给客户端。与现有技术相比,该方法采用多协议DNS请求策略,多线并发,只要有一路完成了DNS解析即可正常上网,减少了因UDP包丢失造成的DNS解析失败,提升了DNS解析成功率;同时,在UDP延迟较大时,非UDP格式的响应包会先于UDP响应包返回,提升DNS解析速率。
CN 107124482 ACN 107124482 A
权 利 要 求 书
1/1页
1.一种DNS数据包转发方法,其特征在于,所述DNS数据包转发方法包括有:接收客户端的DNS请求数据包,根据接收到的UDP格式DNS请求数据包生成至少一非UDP格式DNS请求数据包,将UDP格式DNS请求数据包和非UDP格式DNS请求数据包分别发送至DNS服务器;
接收DNS服务器的DNS响应数据包,将接收到的非UDP格式DNS响应数据包转换成UDP格式DNS响应数据包,并将UDP格式DNS响应数据包发送给客户端。
2.如权利要求1所述的DNS数据包转发方法,其特征在于:在接收客户端的DNS请求数据包后,判断客户端是否打开DNS多线程开关,如否,将接收到的DNS请求数据包直接发送至DNS服务器,如是,根据接收到的UDP格式DNS请求数据包生成至少一非UDP格式DNS请求数据包,将UDP格式DNS请求数据包和非UDP格式DNS请求数据包分别发送至DNS服务器。
3.如权利要求1所述DNS数据包转发方法,其特征在于:所述非UDP格式DNS请求数据包包括TCP格式DNS请求数据包,在发送TCP格式DNS请求数据包时,通过TCP Socket方式进行。
4.如权利要求1所述DNS数据包转发方法,其特征在于,在发送DNS请求数据包时,将UDP格式请求数据包发送至指定上游DNS服务器,而将非UDP格式请求数据发送至第三方DNS服务器。
5.如权利要求1所述的DNS数据包转发方法,其特征在于,在接收DNS响应数据包时,将第N次接收到的重复的DNS响应数据包丢弃。
6.一种DNS数据包转发系统,其特征在于,所述DNS数据包转发系统包括有:DNS请求数据包发送模块,其用于接收客户端的DNS请求数据包,根据接收到的UDP格式DNS请求数据包生成至少一非UDP格式DNS请求数据包,将UDP格式DNS请求数据包和非UDP格式DNS请求数据包分别发送至DNS服务器;
DNS响应数据包发送模块,其用于接收DNS服务器的响应数据包,将接收到的非UDP格式DNS响应数据包转换成UDP格式DNS响应数据包,并将UDP格式DNS响应数据包发送给客户端。
7.如权利要求6所述的DNS数据包转发系统,其特征在于:所述DNS请求数据包发送模块包括有一判断单元,其用于在所述DNS请求数据包发送模块接收客户端的DNS请求数据包后,判断客户端是否打开DNS多线程开关。
8.如权利要求6所述的DNS数据包转发系统,其特征在于:所述DNS请求数据包发送模块包括有一TCP Socket创建单元,其用于创建TCP Socket。
9.如权利要求6所述的DNS数据包转发系统,其特征在于:DNS响应数据包发送模块包括有一丢弃单元,其用于在接收DNS响应数据包时,将第N次接收到的重复的DNS响应数据包丢弃。
10.一种路由器,其特征在于:所述路由器包括有存储器和处理器,所述存储器存储有可由所述处理器执行的如权利要求6-9所述的DNS请求数据包发送模块、DNS响应数据包发送模块。
2
CN 107124482 A
说 明 书
一种DNS数据包转发方法、系统及路由器
1/7页
技术领域
[0001]本发明涉及网络通信技术领域,尤其涉及一种DNS数据包转发方法、系统及路由器。
背景技术
[0002]在网络通信中,通常将IP(Internet Protocol,因特网协议)地址作为主机的网络层标识,由于IP地址是由一串数字组成,不便于记忆,于是为了便于记忆产生了与IP地址对应的主机域名。在通信过程中,由于需要使用主机的IP地址对该主机进行访问,因此需要能够将主机域名转换成相应的IP地址。DNS(域名系统,Domain Name System)是一种用于TCP/IP(传输控制协议/因特网互联协议,Transmiss ion Control Protocol/Internet Protocol)的应用程序的分布式数据库,它提供主机名字和IP地址之间的转换信息。域名解析方法如下:1)客户端向DNS服务器发送域名解析请求;2)DNS服务器对域名进行解析;3)DNS服务器将解析结果返回给客户端;以及4)客户端从该结果中选择一个IP地址进行访问。[0003]当前,大多数应用(客户端)都是以UDP(User Datagram Protocol的简称,中文名是用户数据报协议)格式包的形式往外发送DNS解析请求,路由器对于DNS解析请求都是直接往设定的DNS服务器进行转发,并不做处理。然而,直接转发DNS解析请求的UDP格式包存在以下的几个问题:
[0004]1.UDP是不可靠的协议,DNS解析请求包可能会在发送过程中丢失或者DNS解析响应包可能会在接收过程中丢失。[0005]2.一些运营商环境下,会出现用户的UDP包被随机丢弃的现象,特别是一些自建DNS,相比专业的DNS服务商,存在更大的概率出现用户的UDP包被随机丢弃的现象。[0006]这些上述问题大大影响DNS解析的成功率和速率,轻则拖慢用户上网速度,影响用户体验;重则导致用户断网,无法打开网页。发明内容
[0007]本发明所要解决的技术问题在于提供一种可以提升DNS解析成功率和速率的DNS数据包转发方法、系统及路由器。[0008]为解决上述技术问题,本发明的提供了一种DNS数据包转发方法,该方法包括有:[0009]接收客户端的DNS请求数据包,根据接收到的UDP格式DNS请求数据包生成至少一非UDP格式DNS请求数据包,将UDP格式DNS请求数据包和非UDP格式DNS请求数据包分别发送至DNS服务器;
[0010]接收DNS服务器的DNS响应数据包,用于将接收到的非UDP格式DNS响应数据包转换成UDP格式DNS响应数据包,并将UDP格式DNS响应数据包发送给客户端。[0011]上述DNS数据包转发方法采用多协议DNS请求策略,在将UDP格式DNS请求数据包发送至DNS服务器的同时,将UDP格式DNS请求数据包转换为至少一非UDP格式DNS请求数据包并发送至DNS服务器,多线并发,只要有一路完成了DNS解析即可正常上网。与现有技术相
3
CN 107124482 A
说 明 书
2/7页
比,减少了因UDP包丢失造成的DNS解析失败,提升了DNS解析成功率;而且,在UDP延迟较大时,非UDP格式的响应包会先于UDP响应包返回,提升了DNS解析速率。[0012]为解决上述技术问题,本发明提供了一种DNS数据包转发系统,该系统包括有:[0013]DNS请求数据包发送模块,用于接收客户端的DNS请求数据包,根据接收到的UDP格式DNS请求数据包生成至少一非UDP格式DNS请求数据包,将UDP格式DNS请求数据包和非UDP格式DNS请求数据包分别发送至DNS服务器;[0014]DNS响应数据包发送模块,接收DNS服务器的响应数据包,将接收到的非UDP格式DNS响应数据包转换成UDP格式DNS响应数据包,并将UDP格式DNS响应数据包发送给客户端。[0015]上述DNS数据包转发系统采用多协议DNS请求策略,在将UDP格式DNS请求数据包发送至DNS服务器的同时,将UDP格式DNS请求数据包转换为至少一非UDP格式DNS请求数据包并发送至DNS服务器,多线并发,只要有一路完成了DNS解析即可正常上网。与现有技术相比,减少了因UDP包丢失造成的DNS解析失败,提升了DNS解析成功率;而且,在UDP延迟较大时,非UDP格式的响应包会先于UDP响应包返回,提升了DNS解析速率。[0016]为解决上述技术问题,本发明还提供了一种路由器,该路由器包括有一存储器和一处理器,所述存储器存储有可由所述处理器执行的DNS请求数据包发送模块以及DNS响应数据包发送模块。所述DNS请求数据包发送模块用于接收客户端的DNS请求数据包,根据接收到的UDP格式DNS请求数据包生成至少一非UDP格式DNS请求数据包,将UDP格式DNS请求数据包和非UDP格式DNS请求数据包分别发送至DNS服务器;所述DNS响应数据包发送模块用于接收DNS服务器的响应数据包,将接收到的非UDP格式DNS响应数据包转换成UDP格式DNS响应数据包,并将UDP格式DNS响应数据包发送给客户端。[0017]上述路由器采用多协议DNS请求策略,在将UDP格式DNS请求数据包发送至DNS服务器的同时,将UDP格式DNS请求数据包转换为至少一非UDP格式DNS请求数据包并发送至DNS服务器,多线并发,只要有一路完成了DNS解析即可正常上网。与现有技术相比,减少了因UDP包丢失造成的DNS解析失败,提升了DNS解析成功率;而且,在UDP延迟较大时,非UDP格式的响应包会先于UDP响应包返回,提升了DNS解析速率。附图说明
[0018]图1为本发明一个实施例中的DNS数据包转发方法流程图;[0019]图2为本发明另一个实施例中的DNS数据包转发方法流程图;
[0020]图3为本发明一个实施例中的DNS数据包转发系统的结构示意图;[0021]图4为本发明一个实施例中的路由器的结构示意图。
具体实施方式
[0022]为使本领域的普通技术人员更加清楚地理解本发明的目的、技术方案和优点,以下结合附图和实施例对本发明做进一步的阐述。
[0023]图1示出了本发明一个实施例中的DNS数据包转发方法流程图。[0024]如图1所示,在本发明的一些实施例中,DNS数据包转发方法包括有步骤:[0025]S101:接收客户端的DNS请求数据包。[0026]用户在访问网络资源时,用户客户端根据用户输入的域名向DNS服务器发送DNS请
4
CN 107124482 A
说 明 书
3/7页
求数据包,DNS请求数据包在用户客户端与DNS服务器之间传输,需要经过网关设备或路由设备的中转。用户客户端与网关设备或路由设备之间的数据传输采用UDP协议、HTTP协议以及其他传输协议,在本实施例中,用户客户端与网关设备或路由设备之间的数据传输采用UDP协议。网关设备或路由设备首先接收客户端发送的UDP格式DNS请求数据包数据包,再将DNS请求数据包数据包转发至指定的DNS服务器。[0027]S102:判断客户端是否打开DNS多线程开关。[0028]网关设备或路由设备设置有DNS多线程开关,用户可以对所述DNS多线程开关进行控制。网关设备或路由设备在接收客户端的DNS请求数据包后,判断客户端是否打开DNS多线程开关,如是,执行步骤S103,如否,执行步骤S105。[0029]S103:根据接收到的UDP格式DNS请求数据包生成至少一非UDP格式DNS请求数据包。
[0030]网关设备或路由设备对接收到的UDP格式DNS请求数据包进行处理,根据UDP格式DNS请求数据包生成TCP(Transmiss ion Control Protocol传输控制协议)或HTTP(HyperText Transfer Protocol,超文本传输协议)或其他格式的DNS请求数据包,以适用TCP、HTTP及其他非UDP传输协议。生成的过程,可以是根据UDP格式DNS请求数据包生成一个非UDP格式数据包,也可以同时生成多个非UDP格式数据包,生成多个非UDP格式数据包时,每个数据包的格式不一样。[0031]S104:将非UDP格式DNS请求数据包发送至DNS服务器。
[0032]网关设备或路由设备将由步骤S103生成的一个或多个非UDP格式的DNS请求数据包发送至指定上游DNS服务器,非UDP格式的DNS请求数据包也可以发送至的第三方DNS服务器。
[0033]S105:将UDP格式DNS请求数据包发送至DNS服务器。
[0034]网关设备或路由设备将接收到的DNS请求数据包不做处理,直接发送至指定上游DNS服务器。[0035]S106:接收客户端的DNS请求数据包。
[0036]DNS服务器接收到UDP格式及其他非UDP格式的多个DNS请求数据包后,会返回对应数量及对应格式的DNS响应数据包。例如接收到一个UDP格式请求数据包及一个TCP格式的请求数据包,DNS服务器会返回一个UDP格式响应数据包及一个TCP格式响应数据包,网关设备或路由设备接收DNS服务器会返回的DNS响应数据包。网关设备或路由设备接收到的DNS响应数据包的数量可能与DNS服务器返回的DNS响应数据包数量相同,也可能比DNS服务器返回的DNS响应数据包数量更少(在接收过程中丢失了)。[0037]S107:判断DNS响应数据包是否为UDP格式。
[0038]网关设备或路由设备对接收到的DNS响应数据包进行格式判断,若DNS响应数据包为UDP格式,执行步骤S109;若DNS响应数据包为非UDP格式,执行步骤S108。[0039]S108:将接收到的非UDP格式DNS响应数据包转换成UDP格式DNS响应数据包。[0040]S109:将UDP格式DNS响应数据包发送给客户端。
[0041]网关设备或路由设备将接收到的UDP格式DNS响应数据包及由非UDP格式DNS响应数据包转换得到的UDP格式DNS响应数据包发送给客户端,客户端根据解析结果获取IP地址,并访问IP地址指向的网络资源。
5
CN 107124482 A[0042]
说 明 书
4/7页
本发明实施例的DNS数据包转发方法,采用多协议DNS请求策略,在将UDP格式DNS
请求数据包发送至DNS服务器的同时,将UDP格式DNS请求数据包转换为至少一非UDP格式DNS请求数据包并发送至DNS服务器,多线并发,只要有一路完成了DNS解析即可正常上网。与现有技术相比,1)减少了因UDP包丢失造成的DNS解析失败,提升了DNS解析成功率。在UDP延迟较大时,非UDP格式的响应包会先于UDP响应包返回,提升了DNS解析速率。2)非UDP是以透明的方式对用户的DNS请求进行代理,用户对此不可见,将非UDP协议DNS请求透明叠加在原有的DNS请求过程上,不修改原有的DNS请求,因此不会对原有的DNS请求造成任何影响,也无需用户侧作任何设置。3)设置了DNS多线程开关,可以随时随意DNS多线请求进行控制。4)非UDP DNS请求过程可以选用第三方公共服务器,使得可靠性得到保障,也无需自建服务器。
[0043]在一些优选实施例中,在执行S106接收客户端的DNS请求数据包的步骤时,若接收到重复的DNS响应数据包,则将重复的DNS响应数据包丢弃。需要说明的是,网关设备或路由设备接收到多个DNS响应数据包时,若这些DNS响应数据包包含的解析信息都指向同一域名,则所接收到的多个DNS响应数据包相互重复。对于这些重复的DNS响应数据包,按时序,从接收到的第1个DNS响应数据包算起,将第N(N≥2)个DNS响应数据包丢弃,进行去重复。[0044]相应地,在执行S107判断DNS响应数据包是否为UDP格式的步骤时,仅对去重复后的DNS响应数据包(按时序,接收到的第1个DNS响应数据包)进行格式判断,若DNS响应数据包为UDP格式,执行步骤S109;若DNS响应数据包为非UDP格式,执行步骤S108。[0045]相应地,在执行S108将接收到的非UDP格式DNS响应数据包转换成UDP格式DNS响应数据包的步骤时,仅对去重复后的DNS响应数据包(按时序,接收到的第1个DNS响应数据包)进行格式转换。[0046]相应地,在执行S109将UDP格式DNS响应数据包发送给客户端的步骤时,仅向客户端发送一个UDP格式DNS响应数据包。
[0047]图2示出了本发明另一个实施例中的DNS数据包转发方法流程图。[0048]如图2所示,在本发明的一些实施例中,DNS数据包转发方法包括有步骤:[0049]S201:接收客户端的DNS请求数据包。[0050]用户在访问网络资源时,用户客户端根据用户输入的域名向DNS服务器发送DNS请求数据包,DNS请求数据包在用户客户端与DNS服务器之间传输,需要经过网关设备或路由设备的中转。用户客户端与网关设备或路由设备之间的数据传输采用UDP协议、HTTP协议以及其他传输协议,在本实施例中,用户客户端与网关设备或路由设备之间的数据传输采用UDP协议。网关设备或路由设备首先接收客户端发送的UDP格式DNS请求数据包数据包,再将DNS请求数据包数据包转发至指定的DNS服务器。[0051]S202:判断客户端是否打开DNS双线程开关。[0052]网关设备或路由设备设置有DNS双线程开关,用户可以对所述DNS双线程开关进行控制。网关设备或路由设备在接收客户端的DNS请求数据包后,判断客户端是否打开DNS双线程开关,如是,执行步骤S203,如否,执行步骤S205。[0053]S203:根据接收到的UDP格式DNS请求数据包生成TCP格式DNS请求数据包。[0054]网关设备或路由设备对接收到的UDP格式DNS请求数据包进行处理,根据UDP格式DNS请求数据包生成TCP格式的DNS请求数据包,以适用TCP传输协议。
6
CN 107124482 A[0055]
说 明 书
5/7页
S204:创建TCP Socket,将TCP格式DNS请求数据包发送至DNS服务器。
[0056]网关设备或路由设备将由步骤S103生成的TCP格式的DNS请求数据包发送至指定上游DNS服务器或的第三方DNS服务器。TCP格式的DNS请求数据包采用TCP协议,具体过程包括:创建TCP Socket(中文名:套接字,源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字);将所述TCP格式的DNS请求数据包通过TCP Socket发送至指定上游DNS服务器或其他的第三方DNS服务器。[0057]S205:将UDP格式DNS请求数据包发送至DNS服务器。
[0058]网关设备或路由设备将接收到的DNS请求数据包不做处理,直接发送至指定上游DNS服务器。[0059]S206:接收客户端的DNS请求数据包。
[0060]DNS服务器接收到UDP格式及TCP格式的DNS请求数据包后,会返回一个UDP格式DNS响应数据包及一个TCP格式DNS响应数据包,网关设备或路由设备接收DNS服务器会返回的DNS响应数据包。网关设备或路由设备接收DNS服务器会返回的DNS响应数据包时,可能接收到一个UDP格式DNS响应数据包及一个TCP格式DNS响应数据包,也有可能仅接收到一个UDP格式DNS响应数据包或仅接收到一个TCP格式DNS响应数据包。[0061]S207:判断DNS响应数据包是否为UDP格式。
[0062]网关设备或路由设备对接收到的DNS响应数据包进行格式判断,若DNS响应数据包为UDP格式,执行步骤S209;若DNS响应数据包为非UDP格式,执行步骤S208。[0063]S208:将接收到的TCP格式DNS响应数据包转换成UDP格式DNS响应数据包,并关闭TCP Socket。[00]S209:将UDP格式DNS解析响应包发送给客户端。
[0065]网关设备或路由设备将接收到的UDP格式DNS响应数据包及由TCP格式DNS响应数据包转换得到的UDP格式DNS响应数据包发送给客户端,客户端根据解析结果获取IP地址,并访问IP地址指向的网络资源。
[0066]本发明实施例的DNS数据包转发方法,采用多协议DNS请求策略,在将UDP格式DNS请求数据包发送至DNS服务器的同时,将UDP格式DNS请求数据包转换为一TCP格式DNS请求数据包并发送至DNS服务器,双线并发,只要有一路完成了DNS解析即可正常上网。与现有技术相比,1)减少了因UDP包丢失造成的DNS解析失败,提升了DNS解析成功率。在UDP延迟较大时,TCP格式的响应包会先于UDP响应包返回,提升了DNS解析速率。2)TCP是以透明的方式对用户的DNS请求进行代理,用户对此不可见,将TCP协议DNS请求透明叠加在原有的DNS请求过程上,不修改原有的DNS请求,因此不会对原有的DNS请求造成任何影响,也无需用户侧作任何设置。3)设置了DNS双线程开关,可以随时随意DNS双线请求进行控制。4)TCP协议DNS请求过程可以选用第三方公共服务器,使得可靠性得到保障,也无需自建服务器。[0067]在一些优选实施例中,在执行S206接收客户端的DNS请求数据包的步骤时,若接收到重复的DNS响应数据包,则将重复的DNS响应数据包丢弃。需要说明的是,网关设备或路由设备接收到1个UDP格式DNS响应数据包及1个TCP格式时,若这2个DNS响应数据包包含的解析信息都指向同一域名,则所接收到的这2个DNS响应数据包相互重复。对于这2个重复的DNS响应数据包,按时序,从接收到的第1个DNS响应数据包算起,将第2个DNS响应数据包丢弃,进行去重复。
7
CN 107124482 A[0068]
说 明 书
6/7页
相应地,在执行S207判断DNS响应数据包是否为UDP格式的步骤时,仅对去重复后
的DNS响应数据包(按时序,接收到的第1个DNS响应数据包)进行格式判断,若是,执行步骤S209;若否,执行步骤S208。[0069]相应地,在执行S208将接收到的TCP格式DNS响应数据包转换成UDP格式DNS响应数据包的步骤时,仅对去重复后的DNS响应数据包(按时序,接收到的第1个DNS响应数据包)进行格式转换。[0070]相应地,在执行S209将UDP格式DNS响应数据包发送给客户端的步骤时,仅向客户端发送一个UDP格式DNS响应数据包。
[0071]图3示出了本发明一个实施例中的DNS数据包转发系统的结构示意图。[0072]如图3所示,在本发明的一些实施例中,DNS数据包转发系统包括有DNS请求数据包发送模块10及DNS响应数据包发送模块20。
[0073]所述DNS请求数据包发送模块10,用于接收客户端的DNS请求数据包,根据接收到的UDP格式DNS请求数据包生成至少一非UDP格式DNS请求数据包,将UDP格式DNS请求数据包和非UDP格式DNS请求数据包分别发送至DNS服务器。所述DNS请求数据包发送模块10的工作流程与图1所示实施例中的S101、S103、S104、S105相同,这里就不再赘述。[0074]所述DNS响应数据包发送模块20,用于接收DNS服务器的响应数据包,将接收到的非UDP格式DNS响应数据包转换成UDP格式DNS响应数据包,并将UDP格式DNS响应数据包发送给客户端。所述DNS响应数据包发送模块20的工作流程与图1所示实施例中的S106、S107、S108、S109相同,这里就不再赘述。
[0075]本发明实施例的DNS数据包转发系统,采用多协议DNS请求策略,在将UDP格式DNS请求数据包发送至DNS服务器的同时,将UDP格式DNS请求数据包转换为至少一非UDP格式DNS请求数据包并发送至DNS服务器,多线并发,只要有一路完成了DNS解析即可正常上网。与现有技术相比,减少了因UDP包丢失造成的DNS解析失败,提升了DNS解析成功率。同时在UDP延迟较大时,非UDP格式的响应包会先于UDP响应包返回,提升了DNS解析速率。[0076]如图3所示,在本发明的一些优选实施例中,所述DNS请求数据包发送模块10包括有一判断单元11。
[0077]所述判断单元11,用于在所述DNS请求数据包发送模块10接收客户端的DNS请求数据包后,判断客户端是否打开DNS多线程开关。所述包括有判断单元11的DNS请求数据包发送模块10的工作流程与图1所示实施例中的S101、S102、S103、S104、S105相同,这里就不再赘述。本发明实施例的DNS数据包转发系统,设置了DNS多线程开关,可以随时随意DNS多线请求进行控制。
[0078]如图3所示,在本发明的一些优选实施例中,所述DNS请求数据包发送模块10包括有一TCP Socket创建单元12。[0079]所述TCP Socket创建单元12,用于创建TCP Socket,为所述DNS请求数据包发送模块10向DNS服务器发送TCP格式的DNS请求数据包的提供传输通道。[0080]如图3所示,在本发明的一些优选实施例中,所述DNS响应数据包发送模块20包括有一丢弃单元21。
[0081]所述丢弃单元21,用于在接收DNS响应数据包时,将第N次接收到的重复的DNS响应数据包丢弃。所述DNS响应数据包发送模块20接收到多个DNS响应数据包时,若这些DNS响应
8
CN 107124482 A
说 明 书
7/7页
数据包包含的解析信息都指向同一域名,则所接收到的多个DNS响应数据包相互重复。对于这些重复的DNS响应数据包,按时序,从接收到的第1个DNS响应数据包算起,所述丢弃单元21将第N(N≥2)个DNS响应数据包丢弃,进行去重复。
[0082]图4示出了本发明一个实施例中的路由器的结构示意图。[0083]如图4所示,在本发明的一些实施例中,路由器包括有存储器1和处理器2,所述存储器1存储有可由所述处理器2执行的DNS请求数据包发送模块100、DNS响应数据包发送模块200。所述DNS请求数据包发送模块100的结构及工作流程与图3所示实施例中的DNS请求数据包发送模块10相同,所述DNS响应数据包发送模块200的结构及工作流程与图3所示实施例中的DNS响应数据包发送模块20相同,这里不再赘述。[0084]本发明实施例中的路由器,多协议DNS请求策略,在将UDP格式DNS请求数据包发送至DNS服务器的同时,将UDP格式DNS请求数据包转换为至少一非UDP格式DNS请求数据包并发送至DNS服务器,多线并发,只要有一路完成了DNS解析即可正常上网。与现有技术相比,减少了因UDP包丢失造成的DNS解析失败,提升了DNS解析成功率;而且,在UDP延迟较大时,非UDP格式的响应包会先于UDP响应包返回,提升了DNS解析速率。[0085]以上所述仅为本发明的优选实施例,而非对本发明做任何形式上的。本领域的技术人员可在上述实施例的基础上施以各种等同的更改和改进,凡在权利要求范围内所做的等同变化或修饰,均应落入本发明的保护范围之内。
9
CN 107124482 A
说 明 书 附 图
1/3页
图1
10
CN 107124482 A
说 明 书 附 图
2/3页
图2
11
CN 107124482 A
说 明 书 附 图
3/3页
图3
图4
12
因篇幅问题不能全部显示,请点此查看更多更全内容