一种高效的末跳路由发现技术
发布时间:2021-01-26 10:37
本文提出了一种高效的目标主机末跳路由器发现方法,此方法相比于traceroute发包量显著降低。通过向目标发送精心构造的UDP大端口包,能够一次探测获取网络距离,两次探测即可获取末跳路由器。考虑互联网存活主机中仅有20%对UDP大端口进行响应,本文又提出二分法进行网络距离计算,进而获取末跳路由器信息。与traceroute相比,能够稳定有效地降低发包量,不受网络距离的影响。
【文章来源】:智能计算机与应用. 2020,10(01)
【文章页数】:4 页
【部分图文】:
ICMP端口不可达报文结构
为了捕获目标返回的ICMP消息和末跳路由器信息,需要2个监听器(Listener)分别监听ICMP端口不可达报文和ICMP生存时间超时报文。该方法的时序图如图2所示。具体设计流程可表述为:首先,UDP Sender构造UDP大端口探测包发送给目标主机,若目标主机指定端口未开放,返回ICMP端口不可达报文,此报文的数据部分填充为原始UDP报文;当本地ICMP端口不可达Listener捕获到目标主机返回的报文后,从报文的ICMP负载部分提取UDP大端口探测包中的生存时间raw_ttl,根据raw_ttl计算网络距离;向目标主机发送TTL为网络距离减1的探测包,此探测包到达目标主机的末跳路由器时TTL值刚好减为零,触发末跳路由器返回生存时间超时报文,本地ICMP生存时间超时Listener会捕获末跳路由器返回的报文,从报文中提取末跳路由器信息。
二分法通过不断缩小初始设置的TTL范围直到确定真实的网络距离。算法流程如图3所示。算法设计流程可表述如下:对于给定的初始TTL范围[1,30],每次探测包的初始TTL取范围的中间值mid_ttl;如果收到生存时间超时报文,记录time_exceeded_flag为mid_ttl,TTL范围应取右半边[mid_ttl,30];如果收到目标主机回复的报文,说明mid_ttl大于等于实际网络距离,记录echo_reply_flag=mid_ttl,范围应该取左半边[1,mid_ttl],以此类推,直到满足公式(1)为止。该式可写作如下数学形式:算法设计步骤详见如下:
本文编号:3000962
【文章来源】:智能计算机与应用. 2020,10(01)
【文章页数】:4 页
【部分图文】:
ICMP端口不可达报文结构
为了捕获目标返回的ICMP消息和末跳路由器信息,需要2个监听器(Listener)分别监听ICMP端口不可达报文和ICMP生存时间超时报文。该方法的时序图如图2所示。具体设计流程可表述为:首先,UDP Sender构造UDP大端口探测包发送给目标主机,若目标主机指定端口未开放,返回ICMP端口不可达报文,此报文的数据部分填充为原始UDP报文;当本地ICMP端口不可达Listener捕获到目标主机返回的报文后,从报文的ICMP负载部分提取UDP大端口探测包中的生存时间raw_ttl,根据raw_ttl计算网络距离;向目标主机发送TTL为网络距离减1的探测包,此探测包到达目标主机的末跳路由器时TTL值刚好减为零,触发末跳路由器返回生存时间超时报文,本地ICMP生存时间超时Listener会捕获末跳路由器返回的报文,从报文中提取末跳路由器信息。
二分法通过不断缩小初始设置的TTL范围直到确定真实的网络距离。算法流程如图3所示。算法设计流程可表述如下:对于给定的初始TTL范围[1,30],每次探测包的初始TTL取范围的中间值mid_ttl;如果收到生存时间超时报文,记录time_exceeded_flag为mid_ttl,TTL范围应取右半边[mid_ttl,30];如果收到目标主机回复的报文,说明mid_ttl大于等于实际网络距离,记录echo_reply_flag=mid_ttl,范围应该取左半边[1,mid_ttl],以此类推,直到满足公式(1)为止。该式可写作如下数学形式:算法设计步骤详见如下:
本文编号:3000962
本文链接:https://www.wllwen.com/guanlilunwen/ydhl/3000962.html