数智资源网
首页 首页 大数据 大数据入门 查看内容

如何利用DNS检测网络中任意两点之间的丢包率

木马童年 2020-10-16 17:16 16 0

丢包是指数据包在网络链路中传播的时候,由于种种原因发生的数据包丢失。丢包率计算在计算机网络中有十分重要的意义,对于大规模分布式应用来说更是如此。例如网络链路的路由设置、P2P流媒体传播、VoIP服务,甚至包 ...

丢包是指数据包在网络链路中传播的时候,由于种种原因发生的数据包丢失。丢包率计算在计算机网络中有十分重要的意义,对于大规模分布式应用来说更是如此。例如网络链路的路由设置、P2P流媒体传播、VoIP服务,甚至包括CDN边缘节点的部署,这些工作都需要丢包率数据的支持。

如何利用DNS检测网络中任意两点之间的丢包率

主流的丢包率测量方法包括两种:

一种是主动测量,这种方法要求对目标链路两端至少一端有足够的控制权,能够控制主机发送ICMP或者UDP包,根据接受结果来计算丢包率。这种方法一个很明显的缺点就是不具备可拓展性。

另一种方法是以IPlane为代表的间接测量方法,这种方法通过测量链路中的一些性能参数,计算得到最终的丢包率——实验证明这种方法计算得到的丢包率与实验得到的结果有较大差距。

这里要介绍的是一种全新的方法——利用DNS来计算网络中任意两点之间的丢包率。

如何测量两台DNS服务器之间的时延?

如何利用DNS检测网络中任意两点之间的丢包率

如图所示,有两台DNS服务器R和T,其中R是开放的DNS服务器,可以接受DNS查询。测量分两步,第一步是缓存,我们拥有一个域名queen.net,并有权限管理其DNS解析设置。先指定子域名T.queen.net的DNS服务器是T。这样在向R发起T.queen.net的NS查询请求时,R会到根域名服务器S1出问询,得到结果(T的IP地址)并返回。然后向R发起xx.T.queen.net的A请求,此时R会向T.queen.net的域名服务器T发起A请求,并得到空结果(err)返回,并将空结果返回给发起请求的客户端M。这样就可以在M处得知R和T之间的时延了。

在已知如何测量两台DNS之间的时延的基础上,如何测量丢包率?

测量丢包率的基石是DNS服务器发送DNS请求的Pattern。通过实验发现,DNS服务器发送DNS请求未得到应答之后,会按照一定的时间间隔模式进行重发:

 

如何利用DNS检测网络中任意两点之间的丢包率

可以看到95%的DNS服务器重发请求都满足一定的模式。注意到以上特征之后就可以来计算两台DNS服务器之间的丢包率了。举例来说,文中第一副图的R和T。假设R的重发模式为2-2-8-16。通过M向R发送xx.T.queen.net的A请求,并记录得到响应的时延数据,展示如下:

 

如何利用DNS检测网络中任意两点之间的丢包率

可以看到绝大多数时延落在400-600之间,很明显这是没有发生丢包的情况。但是有一些时延在2500ms,这些是什么?这些是发生了一次重发的请求响应,因为第一次发送之后,发生了丢包,过了2s之后未得到响应的R重发了一次数据包。

这里可以给出一个计算丢包率的公式了:假设总共有M个DNS请求得到了响应,其中有L个是时延异常的,然后通过对比计算得出L'个包是经过重发得到响应的,那么丢包率的计算公式即为:

Loss Rate =L'/(L'+M);

很简单的一个公式。

如何用DNS服务器估任意两点之间的丢包率?

对于网络中的任意两点A和B,可以分别找到距离A和B最近的DNS服务器R和T。然后用上述方法测量出R和T之间的丢包率,以此作为A和B之间丢包率的近似值。实验结果如下:

 

如何利用DNS检测网络中任意两点之间的丢包率

可以看到,用上面介绍的方法测量出的丢包率和直接发包测量得到的丢包率是非常接近的,证明了方法的可行性和准确性。

计算机网络
0
为您推荐
深入浅出实战讲解-Spark框架实战 集中轰炸Spark-从入门到高级应用及优化课程下载

深入浅出实战讲解-Spark框架实战 集中轰炸Spark-从入

课程名称深入浅出实战讲解-Spark框架实战 集中轰炸Spark-从入门到高级应用及优化课程…...

云计算视频实战经典Hadoop学习,资源教程下载

云计算视频实战经典Hadoop学习,资源教程下载

课程名称云计算视频实战经典Hadoop学习,资源教程下载课程目录1.Hadoop的源起与体系介…...

Spark原理精讲与推荐系统实践案例,资源教程下载

Spark原理精讲与推荐系统实践案例,资源教程下载

课程名称Spark原理精讲与推荐系统实践案例,资源教程下载课程目录Spark 概述Spark Cor…...

北风网数据结构学习视频,资源教程下载

北风网数据结构学习视频,资源教程下载

课程名称北风网数据结构学习视频,资源教程下载课程目录01第一讲数组02第二讲简单排序…...

大数据时代互联网社交媒体数据的分析与应用课程,资源教程下载

大数据时代互联网社交媒体数据的分析与应用课程,资源

课程名称大数据时代互联网社交媒体数据的分析与应用课程,资源教程下载课程介绍大数据…...

炼数成金完整17周Hadoop完全入门学习视频教程 Hadoop数据分析平台第三版视频教程下载

炼数成金完整17周Hadoop完全入门学习视频教程 Hadoop

课程名称炼数成金完整17周Hadoop完全入门学习视频教程 Hadoop数据分析平台第三版视频…...