星空5G 导航

路由器的递归查询怎样解释?-

2024-09-12编辑:本站
路由器的递归查询怎样解释?~

比如说有计算机A,路由器BCDE
A想知道 xxx.com所对应的IP是多少?
A就去问B,这时候A是请求者,B是被请求者;
但是B也不知道xxx.com的IP,那么它就去问C,这时个B变成了请求者,C是被请求者
如此递归
到E时,假设E知道xxx.com知道返回了xxx.com的IP给D,然后D再告诉C,C再告诉B,B再告诉了A,这样就完成了查询。。。这样的方式就叫递归。。。

另外还有一种叫迭代。。。
比如说A想知道xxx.com,去请求B,B这时候告诉A说,“C可能xxx.com,你去问它吧”,
这时候A再去请求C,C这时候告诉A说,“D可能xxx.com,你去问它吧”,
。。。
直到A去请求E,这时候E就告诉了A,xxx.com的IP地址是xx.xxx.xx.xx

比如说有计算机A,路由器BCDE
A想知道 xxx.com所对应的IP是多少?
A就去问B,这时候A是请求者,B是被请求者;
但是B也不知道xxx.com的IP,那么它就去问C,这时个B变成了请求者,C是被请求者
如此递归
到E时,假设E知道xxx.com知道返回了xxx.com的IP给D,然后D再告诉C,C再告诉B,B再告诉了A,这样就完成了查询。。。这样的方式就叫递归。。。

另外还有一种叫迭代。。。
比如说A想知道xxx.com,去请求B,B这时候告诉A说,“C可能xxx.com,你去问它吧”,
这时候A再去请求C,C这时候告诉A说,“D可能xxx.com,你去问它吧”,
。。。
直到A去请求E,这时候E就告诉了A,xxx.com的IP地址是xx.xxx.xx.xx
2011年

什么是路由? 所谓路由的过程就是从入站接口接收到数据包,经过CPU的处理(查找路由表,重构二层帧),把“新”包放入到相应的接口的过程。这个过程实际上可以 转化成下面的一个模型:一辆汽车(数据包)走到了一个十字路口,注意,此时它是有目的地的(目的IP地址),比如这辆汽车想去往北京,到了这个十字路口, 看到了有几个牌子上面写着“北京,石家庄,唐山”,那么这个时候驾驶员(CPU)就应该来选择那个去往北京的路口(出站接口),这样也就完成了路由功能。更进一步,微观上的路由查询是怎么进行的。这里所说的微观,并不去讨论路由转发的各种算法,而是去讨论路由器如何去查找路由表。我们先来看一个简单的拓扑
有四个路由器,分别是POOH,TIGGER,PIDET,RABBIT,在这个拓扑下面显示的是POOH的路由表,可以看到,现在已经可以从POOH上查询到了五个网段,也就是说现在达到了全网互通。

举 例来说,如果想达到网段10.1.10.0,CPU开始查找路由表,发现了一个路由条目是到达10.1.10.0的,通过192.168.1.194,而 这个地址就是piglet路由器最左边的那个端口,那么这个192.168.1.194又是怎么到达呢?再一次查找路由表,找到了一个网段 192.168.1.192,这里面就包含了192.168.1.194这个地址,而到达它是通过192.168.1.66来实现的。那么 192.168.1.66又是应该怎么到达?还得继续查找路由表。192.168.1.194

这个过程在周而复始的进行,形成一个递归的过程,知道路由器找到直连网段位置,按照上面的那个实例来说就是当找到192.168.1.64这个条目。

好了,这就是路由器递归查询的过程。
但是,这样的查询方法有什么用途呢?你是否考虑过呢?

先让我们回到一个比较本质的问题上去,路由器和交换机的作用是什么?其实无非是两个作用,一是考虑如何把数据包正确的送到目的地址,二是如何更快的送到。 至于其他的各种安全技术,QoS等等都是为这两个终极目标服务的。由于本篇不涉及到交换机的内容所以在此略过不提,单说路由器,工程师们为了让路由器更好的完成这两个任务做出了不懈的努力,其中一个就是不断改进的包交换方法以达到快速的转发包的目的。

先让我们从历史的角度看一下
最早诞生的是“进程交换”
这种交换很传统,路由器每收到一个包就会通过CPU查找路由表然后送到出站端口,每过来一个包就会这样做一次。这种方法是没有问题的,但是却很慢,明显的效率不高。
为了解决这个问题,“快速交换”诞生了
这 里面有一个前提,也是能开发出“快速交换”的一个先提条件,那就是我们的数据一般都是以流的形式传播的,流,这个词十分形象,就是一串数据包都去往同一个 地方。当工程师发现了这个规律之后,“快速交换”的想法诞生了,所谓快速交换就是,先分析每个流的第一个包,按照进程交换的方式进行查询,然后出站同时把 这个查询的结果保存在一个独立的缓存中。当这个流中剩下的包进站时,路由器不是去查路由表而是去查缓存,这样就能节省CPU的资源,直接把包转发出去。这 样不但提高了包转发的速度,实际上也提高了CPU的使用效率。
最后就是CEF
思科的快速交换,CEF有太多的内容需要讲,相对于前两种交换方式有很大的不同,我在这里只取其在交换形式上的差别。进程交换是当一个新数据流来了后路由第一个包,然后把信息记入缓存来对转发进行加速。而CEF的做法更绝!
连第一个包都不用查了,直接进行缓存操作!而且是在包之前就进行了缓存。

也就是大名鼎鼎的FIB表。

当一个数据包入站的时候,直接查询FIB表而不是路由表,这样就能大大增加转发的速度。
也 许你有疑问,我当初就是有疑问的,本来有好好的路由表,现在又建立了一个FIB表,一个数据包到了不还是需要查找吗?这样有什么作用?很显然现在一般的图 书上并没有写明原因,没有给我一个合理的解释。不过对于这个问题,以及对于CEF的专题讨论我会在下周的时候单独写一篇文章来叙述,让你明白CEF!

现在让我们尊重一个事实,CEF更快!

我用了大量的篇幅来写看似与本篇主题无关的“路由器交换”,我想告诉大家的是“加快交换,远离路由表”,CPU路由查询的次数越少转发的效率越高!

那么现在让我们回到本篇文章的主题“递归路由的查询”,强烈的困惑!人家查一次路由表都嫌多,你却使用递归查询查了那么多遍路由表!
确实,这就是递归查询的最大缺点!也是我们在设计网络的时候必须要考虑的一个问题。不过仔细想一下,既然这是一个极为“不成功”的方法,那么为什么还会允许它的存在呢?这又是为了什么?

递归查询的优势!无与伦比的优势!

我们来看一下这个拓扑,注意一下SANDERZ的静态路由的设计。
这就是一个典型的递归路由的使用案例,可以仔细的看一下。
这里我们先设计一个情景,从显示的路由路由信息来看,现在到达右侧网段的所有数据都要从HEFFALUMP路由器通过,这个时候如果HEFFALUMP坏了,那么必须要从WOOZLE进行路由。
这个时候网络管理员只需要调整一条路由就可以了。

Sanderz(config)# ip route 10.87.14.0 255.255.255.0 10.23.5.95
Sanderz(config)# no ip route 10.87.14.0 255.255.255.0 10.23.5.20

这样就完成了任务。
那么如果不使用递归路由呢?那么图中的每一个路由都要重新设置,如果按照上图的案例来说,我们需要重新写26条路由条目。如果你觉得这样的数量还能忍受, 那么如果有100个,400个网段呢?你要重写200条,800条路由!这个工作量就大了吧,你还能忍受吗?同样是400个网段,使用递归路由还是上面的 两条命令。
借用并改造算法中时间复杂度的概念:不使用递归路由的时间复杂度为O(n),而使用了递归路由的时间复杂度为O(1)!

这也就是递归路由最大的优点!

面对递归路由的优点与缺点,确实是很难办,是需要斟酌的。(这是《ROUTING TCP/IP VOL.1 》的说法)
不过我想其实并不是那么“难办”
从实际的网络应用来讲,现在能够使用静态路由的网络拓扑不会很大,相对于路由器CPU的处理能力来讲不是很大的负担,也就不会很影响速度,所以为了管理的方便我们是可以放心的使用递归路由的。

但是,我这种说法并不包含 两个大的园区网之间用静态路由的情况(教育网),这样的情况还是使用最普通的路有方式吧。

具体情况具体分析,相必大家对与递归路由的优势和缺点也是很熟悉了,能够在其间取舍。

递归查询是DNS功能 路由器的DNS设置
以下是帮你百度的 希望你能有用

所谓递归查询,在DNS的查询方式中可以找到,DNS的查询方式一个是递归查询,也就是本地DNS对本地主机应答的查询方式,本地DNS如果没有一条路由解析,则马上向根域服务器发出请求,接着根据根域服务器的指示,向顶级域服务器发出请求…………,静态路由中的递归查询也是这样的。有四个路由器,分别是POOH,TIGGER,PIDET,RABBIT,在这个拓扑下面显示的是POOH的路由表,可以 看到,现在已经可以从POOH上查询到了五个网段,也就是说现在达到了全网互通。
举例来说,如果想达到网段10.1.10.0,CPU开始查找路由表,发现了一个路由条目是到达10.1.10.0的,通过192.168.1.194,而这个地址就是piglet路由器最左边的那个端口,那么这个192.168.1.194又是怎么到达呢?再一次查找路由表,找到了一个网段 192.168.1.192,这里面就包含了192.168.1.194这个地址,而到达它是通过192.168.1.66来实现的。那么 192.168.1.66又是应该怎么到达?还得继续查找路由表。192.168.1.194这个过程在周而复始的进行,形成一个递归的过程,知道路由器找到直连网段位置,按照上面的那个实例来说就是当找到192.168.1.64这个条目。

  • 设某路由器建立了如下路由表(这三列分别是目的网络、子网掩码和下一跳...
  • 答:路由表有最长前缀匹配原则。这么具体的匹配原则还真没见过,不知楼主看的什么书。从描述上来看,优先匹配路由表的条目,如果条目中没有则匹配最短前缀,再交给默认路由。还有题目中的一个描述是错误的 路由表给的是转发接口,而题目问的却是下一跳地址。。。这是两个概念。拿RIP举例,转发接口的度量是...

  • 把路由器的网关作为设备dns,有什么影响
  • 答:路由器的dns是递归,路由器会向网络上的dns查询。不是路由器负责查询。在路由器里面有dns的设置,一般是动态的。实际效果是一样的,家用无所谓,企业的一般都指定。

  • 什么是DNS服务器?
  • 答:DNS服务器的工作原理 请求解析:当用户在浏览器中输入一个域名并尝试访问时,计算机会向配置的DNS服务器发送一个域名解析请求。缓存查询:DNS服务器首先会检查其缓存中是否已存在该域名的解析结果。如果缓存中有,则直接返回缓存中的IP地址,从而加快访问速度。递归查询:如果DNS服务器的缓存中没有该域名的...

  • 公司不同网段局域网互访?
  • 答:4、递归表查询:分析:当管理员使用静态路由时,只配置了下一跳地址没有出接口时,路由器会先查找路由表,匹配了这条静态之后,再进行二次查表,确定出接口之后才能进行数据转发,这就是递归查询,这样五无疑会增加路由器的CPU消耗,所以建议管理员在配置静态路由时,后面加上出接口和下一跳地址。5、...

  • 思科dnsserver怎么配置
  • 答:1、在路由器上启动DNS服务。2、在路由器上配置公共的域名服务器,这个设置可以使得路由器进行“递归式”的DNS查询。3、配置DNS服务器对本地用户名和IP地址进行映射。

  • EBGP是什么?IBGP是什么?
  • 答:BGP是沟通Internet广域网的主用路由协议,例如不同省份、不同国家之间的路由大多要依靠BGP协议。BGP可分为IBGP(Internal BGP)和EBGP(External BGP)。BGP的邻居关系(或称通信对端/对等实体)是通过人工配置实现的,对等实体之间通过TCP会话交互数据。BGP路由器会周期地发送19字节的保持存活keep-alive...

  • 为什么RIP静态路由不可以跟下一跳
  • 答:你可能理解错了这里的意思 这边的静态路由 ip route 0.0.0.0 0.0.0.0 s1/0 和router rip net 0.0.0.0 里面的两个0.0.0.0 是没有任何关系的 rip中宣告network 0.0.0.0 意思是把路由器中所有直连网段都宣告进RIP协议 如果你的静态路由协议最后用的S1/0,RIP就认为这条路由是S1/0...

  • 电信的光猫连不上路由器怎么办?
  • 答:1.遇到这种情况,先重启电脑试一试,或者把ADSL猫及路由器都重启一下。如果还不行,进入网络共享中心的网络连接窗口,选择本地连接,右键,选择“属性”。如果用的是无线,则选择无线网络连接这一项。2.在本地连接属性窗口,选择“网络”选项卡,然后再选择“Internet 协议版本 4 (TCP/IPv4)”这一项,...

  • 诚心请教关于CEF的问题!
  • 答:而转发方式有分为进程交换和快速交换。现在所谓的CEF转发就是新增的一种转发方式。之所以要开发这个,因为传统的路由器查找方式太过慢了,即使是快速交换也是基于递归查找的,而交换机则快速得多,因为mac是唯一存在,不像路由器的各种子网...为了路由器能达到交换机的查找路由,开发了cef查找~~~利用了路...

  • 建立自有递归DNS服务器
  • 答:例如,路由器内置的DNS即属于此类,本地电脑的DNS通常为192.168.1.1。深入理解DNS递归服务器的解析过程,可借助DNS根服务器的介绍。具体安装、配置、启动和验证过程,请参考红帽文档。通过这些步骤,您将能够构建自己的递归DNS服务器,提升本地网络的DNS查询效率,同时为学习DNS解析过程提供实践平台。

    相关内容

    首页 新知 身健
    返回顶部

    © 星空5G w.xkyn.com