首页 > 其他分享 >路由架构(一)

路由架构(一)

时间:2023-02-05 21:34:49浏览次数:37  
标签:架构 信息 目的地 路由器 路由 路由表

路由表的数据来源

主机和路由器利用路由表来转发数据,路由表中的每一条记录都给出了到目的网络的下一跳地址。通过路由表的方式,我们已经知道如果传递信息。但是现在,我们要思考另一个问题,那就是路由表的数据如果获得?更具体一点,我们要获得什么样的信息以及如何获得信息?

总体上来说,建立路由牵扯到两个步骤:初始化和更新。一个路由器或者主机必须在它启动的时候建立一个初始路由表。同样的,如果网络发生了变化,那么路由器或者主机必须更新它们的路由表(例如硬件故障, 导致某个网络无法访问)。

初始化依赖于硬件和操作系统。在某些系统中,路由器会从存储中读取路由表信息,或者通过一个启动脚本来初始化。另外有些系统会广播(或者多播)一条用于发现邻居并且请求邻居提供关于正在被使用的网络地址信息。

一旦建立了初始的路由表,路由器就要面对路由变化的情况。对于小型的系统,可以手动的更新信息,但是对于大型的系统,这很明显是不切实际的,所以需要自动的更新信息。

通过局部信息进行转发

主机和路由器的区别是主机对整个互联网的结构知之甚少。主机不会拥有所有可能目的地的完整信息,甚至所有可能网络的完整信息。 事实上,主机的路由表通常只有两条记录:一条用于本地网络的记录,一条用于直连的路由器的记录。

主机是是否可以总是使用局部信息转发数据?答案是在某些情况下可以的。考虑两种架构,第一种是中心式的架构,一路使用局部信息进行转发,最终到达一个中心的路由器,这个中心的路由器知道到往所有目的地的路径,这样就可以到达目的地了,类似于一种星形的结构。第二种情况是,所有路由器都知道前往所有目的地的路径,这样只要数据转发给了路由器,那么就可以前往目的地了。

很遗憾的是,这两种架构都是在现实中无法实现的。没有任何硬件能够实现第一种架构的中央路由器,第二种架构更加不可能。因此,我们就需要设计一种架构出来,使得主机可以总是使用局部信息进行转发。

为了理解互联网的路由架构,考虑这样一个情况。一座城市被一条河流划分成东西两边,中间有一座大桥连通东西两个城区。假设东西两个城区互相没有路牌指向在对方的目的地。东城区的所有路牌都列出了东城区的所有目的地以及一个通往大桥的默认路径,西城区就是同样如此。这样,如果东城区的人想要前往西城区,会按照路牌的指示前往大桥,经过大桥,按照路牌的指示,最终到达目的地。但是这样有一个缺点,如果我们想去一个不存在的地点,我们就会来回的穿越这座桥。

最原始的互联网架构以及核心路由器

在TCP/IP首次被开发出来时,互联网上的网址都连接上APRANET网络,它是一个骨干网。在初期,每个网址的路由表信息都是手动维护的,但是随着网络的壮大,手动维护已不再可能继续使用,迫切的需要自动化的方法。但是,骨干网的概念仍然被使用。

互联网的设计者选择了星形结构的路由架构。最初始的设计使用了一组规模较小的,中央式的路由器。这组路由器有着到达所有目的地的信息,外部的路由器只有局部信息,他们只需要将数据转发给这组路由器,那么最终就可以使数据到达目的地。十分的类似于之前提到过的城市架构。

这组维护所有目的地信息的中央路由器被称为互联网的核心。因为每个核心路由器都知道到所有可能目的地的路径,所以它们并不需要默认路径。这组路由器有时也会被称为default-free zone

自动路径传播以及FIB

原始的互联网核心系统避免了默认路由的存在,因为它在核心路由器之间传播每一个核心路由器可能到达的所有的目的地的完整信息。

路由协议有两个重要的功能,首先,它需要计算最短路径,其次,它必须对网络错误和网络拓补发生变化做出对应的响应。

从概念上来说,路由协议和转发机制是完全独立的,即路由协议是一个使用IP的独立进程。路由协议需要学习目的地,计算到每一个目的地的最短路径,并且将信息传播给其他的核心路由器。

尽管路由协议计算最短路径,但是路由软件不会直接在路由表信息里存储数据。取而代之的是,路由软件创建一个Forwarding Information Base(FIB)。FIB可能会包含路由表里不存在的信息。

当FIB发生变换时,路由软件重新计算路由表,然后安装新的路由表。

标签:架构,信息,目的地,路由器,路由,路由表
From: https://www.cnblogs.com/riasartemis/p/17083412.html

相关文章

  • 600 元的三口性价比 2.5G All in One,安装 PVE + 爱快主路由
    硬件配件名称价格入手渠道准系统惠普800G1SFF准系统180¥+20¥(运费)=200¥闲鱼内存威刚DDR316004GB*228.9¥*2=57.8¥淘宝CPUIntel至强......
  • Server-基于Sokcet(C#)长连接架构游戏服务器+数据库表结构设计
    由于项目需要,公司的后端迟迟无法就位,自己便利用C#搭建了一套简单的服务器项目。整个服务器的框架使用到MVC设计思想:涉及到的系统有:登录、注册、房间等废话不多说,上......
  • 路由与控制器
    MVC概述Egg中的控制器controllerfruits.jsconstController=require("egg").Controller;//引入Controller类classFruitsControllerextendsController{a......
  • RBMQ案例四:路由模式
      使仅订阅消息的子集成为可能。例如,我们将能够仅将关键错误消息定向到日志文件(以节省磁盘空间),同时仍然能够在控制台上打印所有日志消息。 通过路由来匹配对应的......
  • TP-LINK 路由器密码加密方法
       functionorgAuthPwd(a){returnthis.securityEncode(a,"RDpbLfCPsJZ7fiv","yLwVl0zKqws7LgKPRQ84Mdt708T1qQ3Ha7xv3H7NyU84p21BriUWBU43odz3iP4rBL3cD......
  • 深入理解前端中的 hash 和 history 路由
    我们在使用Vue或者React等前端渲染时,通常会有hash路由和history路由两种路由方式。hash路由:监听url中hash的变化,然后渲染不同的内容,这种路由不向服务器发送......
  • vue.js客服系统实时聊天项目开发(二十二)vue项目中router.js路由介绍
    vue项目的路由就相当于我们在网址url上输入的地址,访问的具体网址就是路由拿到项目先看看路由文件,就能知道具体的访问地址了例如下面的router.jsimportVuefrom'vue'......
  • 5分钟了解系统架构设计(4)
    最近梳理了之前学习的架构设计相关的一些课程学习总结,将其整理成了一个大纲脑图,以每篇5分钟系列展现出来,希望对你有所帮助。本篇,我们聚焦架构设计和架构拆分的原则。理......
  • 领域驱动设计(DDD)——架构设计
    系统与子系统系统:泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能独立完成的工作能力的群体。子系统:也是由一群关联的个体组成的系统,多半是在更大的系统......
  • vue的路由的注意点
    2.vue路由-声明式导航2.0声明式导航-基础使用目标:可用全局组件router-link来替代a标签vue-router提供了一个全局组件router-linkrouter-link实质上最终会......