一种路由器地理位置的判断方法

文档序号:9399190阅读:3611来源:国知局
一种路由器地理位置的判断方法
【技术领域】
[0001]本发明涉及信息技术领域,尤其涉及路由器,具体涉及一种路由器地理位置的判断方法。
【背景技术】
[0002]路由器(Router),是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。路由器是互联网络的枢纽、“交通警察”。目前路由器已经广泛应用于各行各业,各种不同档次的产品已成为实现各种骨干网内部连接、骨干网间互联和骨干网与互联网互联互通业务的主力军。
[0003]路由器是用于连接多个逻辑上分开的网络,所谓逻辑网络是代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由器来完成。
[0004]路由器分本地路由器和远程路由器,本地路由器是用来连接网络传输介质的,如光纤、同轴电缆、双绞线;远程路由器是用来连接远程传输介质,并要求相应的设备,如电话线要配调制解调器,无线要通过无线接收机、发射机。路由器是互联网的主要结点设备。
[0005]路由器通过路由决定数据的转发。转发策略称为路由选择(routing),这也是路由器名称的由来(router,转发者)。作为不同网络之间互相连接的枢纽,路由器系统构成了基于TCP/IP的国际互联网络Internet的主体脉络,也可以说,路由器构成了 Internet的骨架。它的处理速度是网络通信的主要瓶颈之一,它的可靠性和稳定性则直接影响着网络互连的质量。因此,在园区内网、地区内网、乃至整个Internet研究领域中,路由器研究始终处于核心地位,其发展历程和方向,成为整个Internet研究的一个缩影。
[0006]路由器的地理位置分析对于国内互联网的省市互连和各运营商互联情况分析有重要意义。目前,路由器地理位置的分析主要是利用路由器的对外公布的IP地址基于公开的第三方发布的IP地理位置库来进行分析,但是存在如下问题:
[0007]1.1P地理位置库没有官方数据,主要是通过第三方人工收集而来,企业、家庭IP地理位置数据较多,缺乏骨干网络IP的数据,部署在骨干网络的路由器也就无从分析。
[0008]2.路由器对外公布的地址通常只有一个,而事实上路由器有多个接口(Interface),每个接口有一个或者多个IP地址,由于第三方IP地理位置库的不准确,导致得到的多个地理位置数据经常产生冲突,导致无法判断其准确地理位置。
[0009]3.依赖于具体的IP地理位置库,不同第三方的IP地理位置库在具体数据上有所区别,导致冲突的情况。

【发明内容】

[0010]针对上述问题,本发明的目的在于提供一种路由器地理位置的判断方法,可以准确的获得路由器的地理位置,即路由器所在省市信息。
[0011]为实现上述目的,本发明采取的技术方案是:
[0012]一种路由器地理位置的判断方法,包括以下步骤:
[0013]I)通过IGMP协议对目标路由器进行别名解析探测,获得目标路由器的多个接口的IP地址;
[0014]2)从多个探测源利用TCP/UPD协议,使用路由跟踪程序(tracert)获得IP数据包访问所述多个接口的IP地址所经过的路径中所有的节点的IP地址、路径顺序及响应时间值;
[0015]3)对步骤I获得的路由器多个接口的IP地址和步骤2获得的到达路由器各接口的路径中各节点的IP地址使用公开的IP地理位置库获得其参考地理位置。
[0016]4)通过对上述特征值(路由器各接口的参考地理位置、到达路由器各接口的路径中经过节点参考地理位置、路径顺序、路径中各节点的响应时间值)使用下述特定规则进行处理和过滤,去除与规则冲突的地理位置数据。
[0017]5)使用步骤4过滤后的路由器各接口的参考地理位置、到达路由器各接口经过的路径中前一个节点参考地理位置、路径中前一个节点到达接口的响应时间进行加权计算得到路由器的真实地理数据。
[0018]进一步地,步骤I)通过IGMP协议对目标路由器进行别名解析探测,这一步可以得到目标路由器的多个接口 IP地址。
[0019]进一步地,为了得到足够多的路径用于后续计算分析,探测源的数量有一定要求;步骤2)使用不少于20个探测源分别使用TCP/UPD协议使用路由跟踪程序获得访问目标路由器多个IP地址的所采取的所有路径。
[0020]进一步地,步骤3)使用的IP地理位置库可以选择互联网免费公开的第三方地理位置库。
[0021]进一步地,步骤4)中使用的特定规则如下:
[0022]1.同一个节点地理位置是唯一的;
[0023]2.同城市两个节点之间的响应时间应小于m;
[0024]3.同省两个城市之间响应时间应处于11和ο之间;
[0025]4.跨省回折数据(路径中A省B省A省的数据)予以纠正或者剔除。
[0026]其中,m是同城市两个节点之间响应时间的最大值,η是同省同两个城市的节点之间的最小响应时间,ο是同省两个城市的节点之间的最大响应时间。
[0027]进一步地,步骤5)中使用的加权计算公式如下:
[0028]P = E Pi+ Σ Pij^Tij/ Σ Tij
[0029]其中,Pi为路由器各节点参考地理位置;
[0030]Pij为到达路由器各接口经过的各条路径中前一个节点参考地理位置;
[0031]Tij为路径中前一个节点到达接口的响应时间。
[0032]本发明通过采用上述技术方案,通过多个协议探测分析路由器的各项特征值,并且利用这些特征值进行迭代、加权计算从而获得路由器准确地理位置信息:具有以下优占.V.
[0033]I)采用多协议探测,不受单一协议的限制。
[0034]2)可以处理网络边界的边缘或末点的路由器;
[0035]3)探测速度快,5分钟内可以完成单一路由器的探测分析。
[0036]4)通过反复迭代对比验证计算,可以排除公开的第三方地理位置库中可疑和不一致的地理位置数据。
【附图说明】
[0037]图1为本发明路由器地理位置的判断方法的流程图。
[0038]图2为本发明多个探测源对路由器探多节接口地址探测得到的路径示意图。
【具体实施方式】
[0039]下面结合附图对本发明的路由器地理位置的判断方法的工作原理及具体的工作过程进行说明如下:
[0040]如图1所示,本方法首先利用IGMP协议对路由器别名进行解析探测。
[0041 ] IGMP: (Internet Group Management Protocol、Internet 组管理协议)协议简介:
[0042]Internet组管理协议(IGMP)是因特网协议家族中的一个组播协议,用于IP主机向任一个直接相邻的路由器报告他们的组成员情况。它规定了处于不同网段的主机如何进行多播通信,其前提条件是路由器本身要支持多播。IGMP信息封装在IP报文中,其IP的协议号为2。
[0043]它用来在ip主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。igmp不包括组播路由器之间的组成员关系信息的传播与维护,这部分工作由各组播路由协议完成。所有参与组播的主机必须实现IGMP。
[0044]参与ip组播的主机可以在任意位置、任意时间、成员总数不受限制地加入或退出组播组。组播路由器不需要也不可能保存所有主机的成员关系,它只是通过IGMP协议了解每个接口连接的网段上是否存在某个组播组的接收者,即组成员。而主机方只需要保存自己加入了哪些组播组。
[0045]IGMP在主机与路由器之间是不对称的:主机需要响应组播路由器的IGMP查询报文,即以igmp membership report报文响应;路由器周期性发送成员资格查询报文,然后根据收到的响应报文确定某个特定组在自己所在子网上是否有主机加入,并且当收到主机的退出组的报告时,发出特定组的查询报文(igmp版本2),以确定某个特定组是否已无成员存在。
[0046]通过IGMP协议解析路由器别名可以获得目标路由器的各接口的IP地址,即获得目标路由器各接口的IP地址集合。
[0047]然后从多个探测源利用TCP/UPD协议使用路由跟踪程序获得探测源发出的IP数据包访问目标路由器各接口的IP地址集合所采取的路径及路径中经过的各节点、经过各节点的响应时间值。
[0048]其中,路由跟踪程序(tracert),用于确定IP数据包访问目标所采取的路径。tracert命令用IP生存时间(TTL)字段和ICMP错误消息来确定从一个主机到网络上其他主机的路由.其命令格式如下:
[0049]tracert[-d][_h maximum_hops][_j computer-1ist][~w timeout]target_name
[0050]通过向目标发送不同IP生存时间(TTL)值的“ Internet控制消息协议(ICMP) ”回应数据包,Tracert诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的TTL递减I。数据包上的TTL减为O时,路由器应该将“ ICMP已超时”的消息发回源系统。
[0051]tracert先发送TTL为I的回应数据包,并在随后的每次发送过程将TTL递增1,直到目标响应或TTL达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP已超时”的消息确定路由。某些路由器不经询问直接丢弃TTL过期的数据包,这在Tracert实用程序中看不到。
[0052]最简单的用法就是"tracert hostname",其中"hostname"是计算机名或想跟踪其路径的计算机的IP地址,tracert将返回他到达目的地的各种IP地址.
[0053]tracert 工作原理
[0054]通过向目标发送不同IP生存时间值的“Internet控制消息协议(ICMP) ”回应数据包,tracert诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的TTL递减
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1