节省物联网设备报文验证时间的通信中转方法及装置与流程

文档序号:25544217发布日期:2021-06-22 07:28阅读:136来源:国知局
节省物联网设备报文验证时间的通信中转方法及装置与流程

本发明涉及一种报文优化方法和装置,具体涉及一种用于优化dns应答报文的方法和装置。



背景技术:

dns域名与ip地址之间是一一对应的,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。根据rfc1035中对dns报文描述,dns应答(dnsresponse)报文中资源记录部分是用于答复dns客户端请求的dns数据库记录,是在报文的最后三个字段包含回答问题区域(answers),权威名称服务器区域(authoritativenameservers)和附加信息区域(additionalrecords)。其中常见的资源记录类型有主机a记录,cname别名记录和名称服务器ns记录。a记录是名称解析的重要记录,它用于将特定的主机名映射到对应主机的ip地址上。ns是记录a记录或cname记录指定负责此dns区域的权威名称服务器。a记录和ns记录的区别是,a记录直接给出目的ip,ns记录将dns解析任务交给特定的服务器,ns记录中记录的ip即为该特定服务器的ip地址。

目前市面上大部分网络通信中转设备对dnsresponse报文处理,都是直接把dns服务器的dnsresponse报文转发给dns客户端。dnsresponse报文其中的资源记录部分存在多条冗余的a记录和ns记录,实际上dns客户端只需要dnsresponse报文其中的一条a记录或cname记录,和指向它们的ns记录就可以完成网站访问的寻址工作,而其他冗余的记录只会大大增加dns客户端验证该记录能确切访问到网站的时间。特别在没有外接电源模块的客户端设备中,因为设备需要定期访问站点共享内部储存的数据,查询的dnsresponse报文中如果存在大量冗余的资源记录将会延长设备工作时间(设备在待机情况下处于休眠模式,减少功耗),使得设备用电过多,导致设备理论工作总时长降低和电源的更换时间提前。



技术实现要素:

本发明的目的是为了克服现有dns应答报文中存在大量冗余的资源记录将会使得网络中转设备增加工作时间去接收报文和验证报文的问题,提供了一种节省物联网设备报文验证时间的通信中转方法及装置。

本发明的一种节省物联网设备报文验证时间的通信中转方法,节省物联网设备报文验证时间的通信中转方法,方法具体步骤如下:

步骤一、获取dns请求报文中的客户端识别信息,并在接收到对应客户端的dns响应报文后,根据客户端识别信息获取该dns响应报文中问题回答区域的资源记录、权威名称服务器区域的资源记录和附加信息区域的资源记录;

步骤二、在所有问题回答区域的资源记录的ip地址中,挑选出至少一个ip地址作为优化ip地址,优化ip地址的数量小于所有ip地址的数量;

步骤三、在原dns响应报文中保留优化ip地址所在的问题回答区域的资源记录,删除其他问题回答区域的资源记录,以及权威名称服务器区域的资源记录和附加信息区域的资源记录,得到重构的dns响应报文;并将重构的dns响应报文发送至对应客户端。

进一步地,步骤二的具体步骤如下:

步骤二一、验证所有ip地址所对应服务器的性能;

步骤二二、自性能最高的服务器开始,挑选至少一个服务器所对应的ip地址作为优化ip地址。

进一步地,步骤二一中验证所有ip地址所对应服务器的性能具体步骤如下;

步骤二一一、获取服务器的至少一个当前性能指标;

步骤二一二、根据当前性能指标的权重计算得到当前性能指标的评分,并将所有的当前性能指标的评分相加得到对应服务器的性能总评分;

步骤二三、按照性能总评分的大小,将所有服务器的性能由高到低进行排序。

进一步地,步骤三还包括如下步骤:

存储优化ip地址,并定期检验优化ip地址是否为最新的优化ip地址;

如果优化ip地址不为最新的优化ip地址,则返回步骤二获得最新的优化ip地址。

本发明的节省物联网设备报文验证时间的通信中转装置,包括:

获取模块,用于获取dns请求报文中的客户端识别信息,并在接收到对应客户端的dns响应报文后,根据客户端识别信息获取该dns响应报文中问题回答区域的资源记录、权威名称服务器区域的资源记录和附加信息区域的资源记录;

优化模块,与获取模块连接,用于在所有问题回答区域的资源记录的ip地址中,挑选出至少一个ip地址作为优化ip地址,优化ip地址的数量小于所有ip地址的数量;

报文重构发送模块,与验证模块连接,用于在原dns响应报文中保留优化ip地址所在的问题回答区域的资源记录,删除其他问题回答区域的资源记录,以及权威名称服务器区域的资源记录和附加信息区域的资源记录,得到重构的dns响应报文;并将重构的dns响应报文发送至对应客户端。。

进一步地,ip地址挑选模块包括:

服务器性能验证模块,用于验证所有ip地址所对应服务器的服务器性能;

ip地址挑选模块,与服务器性能验证模块连接,用于自性能最高的服务器开始,挑选至少一个服务器所对应的ip地址作为优化ip地址。

进一步地,服务器性能验证模块还包括:

性能指标获取模块,用于获取服务器的至少一个当前性能指标;

评分计算模块,与性能指标获取模块连接,用于根据当前性能指标的权重计算得到当前性能指标的评分,并将所有的当前性能指标的评分相加得到对应服务器的性能总评分;

性能排序模块,与评分计算模块连接,用于按照性能总评分的大小,将所有服务器的性能由高到低进行排序。

进一步地,选择模块还包括:

存储模块,用于存储优化ip地址,并定期检验优化ip地址是否为最新的优化ip地址;

如果最优ip地址不为最新的优化ip地址,则返回优化模块获得最新的优化ip地址。

本发明的有益效果是:

本发明的节省物联网设备报文验证时间的通信中转方法及装置可以减少约25%~30%的dns客户端包处理数据量,并且不需要dns客户端再验证除最优ip地址外的ip地址,减少了dns客户端接收和验证dns应答报文的时间,从而减少了dns客户端的功耗。

附图说明

图1为本发明的节省物联网设备报文验证时间的通信中转方法的流程图;

图2为本发明的节省物联网设备报文验证时间的通信中转装置的结构示意图。

具体实施方式

具体实施方式一,本实施方式的一种节省物联网设备报文验证时间的通信中转方法中:

dnsresponse报文中存在回答问题区域(answers),权威名称服务器区域(authoritativenameservers)和附加信息区域(additionalrecords)。其中在answer中有数量为1~n(n>=2)的记录;authoritativenameservers中有数量为1~m(m>=2)的记录;additionalrecords中有数量为1~m(m>=2)的记录。

针对标准dns报文中存在冗余资源记录导致客户端设备需要增加工作时间去接收报文和验证报文可用记录的问题,我们将在网络中转设备(通信中转装置)上增设获取模块1、验证模块2、选择模块3和储存模块4;

获取模块1:网络中转设备获取并记录dns客户端发送的dnsrequest报文中关键信息包括但不限于:源ip地址(sourceipaddress);源mac地址(sourcemacaddress);事务id(transactionid)等用户(客户端)识别码,当接收到对应的dnsresponse报文时获取其中answers,authoritativenameservers和additionalrecords中的资源记录信息。

优化模块2,用于挑选出至少一个优化ip地址,其中优化ip地址的获取可以通过如下三种方式:

1、通过服务器性能验证模块2-1和ip地址挑选模块2-2进行获取:

当获取资源记录信息后,服务器性能验证模块2-1通过性能指标获取模块2-1-1、评分计算模块2-1-2和性能排序模块2-1-3同时验证answer区域的所有记录中的ipaddress对应服务器的性能。其中,

通过性能指标获取模块2-1-1,获取性能指标,包括但不限于丢包率p(packetloss),延迟d(delay),吞吐量t(throughput)等;由于服务器性能可能随着时间以及人为进行改变,因此获取的性能指标均指的是当前的性能指标,即当前丢包率、当前延迟和当前吞吐量;

评分计算模块2-1-2:根据如下公式,计算得到丢包率评分p_grade、延迟评分d_grade和吞吐量评分t_grade:

p_grade=(1-p)*p_w;

d_grade=((max_d-d)/max_d)*d_w;

t_grade=(t/max_t)*t_w;

其中,p_w、d_w和t_w分别为丢包率的权重值、延迟的权重值和吞吐量的权重值;max_d为预设的服务器最大延迟;max_t为服务器带宽所对应的最大吞吐量;

步骤二三、根据如下公式,计算得到ip地址所对应的服务器性能总评分:

ip_grade=p_grade+d_grade+t_grade;

计算所有ip地址所对应服务器的性能总评分。

上述的,延迟评分d_grade和吞吐量评分t_grade的计算包括网速优先模式和带宽优先模式;

网速优先模式中,延迟评分d_grade>吞吐量评分t_grade;

带宽优先模式中,延迟评分d_grade<吞吐量评分t_grade。

通过性能排序模块2-1-3,将性能总评分排序,并将性能总评分最大的服务器作为最优性能的服务器。

即如果存在i个记录的ipaddress:ip1,ip2,……,ipi,(i=1,2...n)。设置packetloss=p占权重最高为p_w=0.4,另外根据用户的要求,如果是网速优先的应用,设置delay=d,权重数值为d_w=0.4;troughput=t,权重设置为t_w=0.2;如果是带宽优先,则设置d_w=0.2,t_w=0.4。

三者理论数值相加总评分(理论满分)为grade=p_grade+d_grade+t_grade=1;

p_grade=(1-p)*p_w;

d_grade=((max_d-d)/max_d)*d_w(max_d默认设置为1000ms,但是具体值根据实际状况进行调整)

t_grade=(t/max_t)*t_weight(max_t根据接入网络线路的总带宽设置)

如果ip1_grade>ip2_grade>....>ipi_grade,则我们认为ip1为最优ip地址。

ip地址挑选模块2-2,自性能最高的服务器开始,挑选至少一个服务器所对应的ip地址作为优化ip地址。并且,将最优性能的服务器所对应的ip地址作为最优ip地址。该最优ip地址为优化ip地址中一个,即性能最高的服务器所对应的ip地址。

通过报文重构发送模块3,得出优化ipaddress后,对原dnsresponse报文进行精简,保留优化ipaddress的answer区域记录,并删除其余answer区域的记录,authoritativenameservers和additionalrecords中的资源记录信息。转发重构后的dnsresponse报文到dns客户端。

或报文重构发送模块3,得出最优ipaddress后,对原dnsresponse报文进行精简,保留最优ipaddress的answer区域记录,并删除其余answer区域的记录,authoritativenameservers和additionalrecords中的资源记录信息。转发重构后的dnsresponse报文到dns客户端。

通过储存模块4,记录该dns客户端访问的url的优化ipaddress,定期通过验证模块更新该url对应的优化ipaddress,当dns客户端访问该url时,构建只有优化ipaddress记录的dnsresponse报文发送到dns客户端,从而减少询问dns服务器的时间。

或通过通过储存模块4,记录该dns客户端访问的url的最优ipaddress,定期通过验证模块更新该url对应的最优ipaddress,当dns客户端访问该url时,构建只有最优ipaddress记录的dnsresponse报文发送到dns客户端,从而减少询问dns服务器的时间。

如表1和表2所示,通过对baidu.com和google.com的测试,使用改进后的方法可以减少约25%~30%的dns客户端包处理数据量。另外因为网络中转设备已经帮助dns客户端测试过哪个ip地址是最优的,因此不需要dns客户端再验证其余的ip地址,减少了dns客户端验证的功耗。

表1采用现有方法的测试结果

表2采用本实施方式中的方法的测试结果

上述的网络中转设备可以包括但不限于:无线路由器,交换机。

客户端设备可以是但不限于:iot设备,其中特别是没有外接充电模块的iot设备。因为这类iot设备没有独立电源,定期会对采集到的数据进行同步处理,通过网络中转设备提供的dnsresponse报文可以减少它的苏醒工作的时间和验证报文中哪些记录可用的验证时间。

最佳实施例,本实施例是对实施方式一的进一步说明:

在步骤二中、在所有问题回答区域的资源记录的ip地址中,总是挑选出第一个接收的dns响应报文中所对应的的ip地址作为优化ip地址。

即优化模块2,用于在所有问题回答区域的资源记录的ip地址中,总是挑选出第一个接收的dns响应报文中所对应的的ip地址作为优化ip地址。

并且,该最佳实施例中,所挑选出的ip地址可以不只为一个,即挑选出第一个~第n个接收的dns响应报文中所对应的的ip地址作为优化ip地址,其中n小于所有ip地址的数量。

最佳实施例,本实施例是对实施方式一的进一步说明:在步骤二中、在所有问题回答区域的资源记录的ip地址中,随机挑选出一个dns响应报文中所对应的的ip地址作为优化ip地址。

即优化模块2,用于在所有问题回答区域的资源记录的ip地址中,随机挑选出一个dns响应报文中所对应的的ip地址作为优化ip地址。

并且,该最佳实施例中,所挑选出的ip地址可以不只为一个,即随机挑选出n个接收的dns响应报文中所对应的的ip地址作为优化ip地址,其中n小于所有ip地址的数量。

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