精华内容
下载资源
问答
  • 直接路由与非直接路由 ...直接路由是在配置完路由器网络接口IP地址后自动生成,因此,如果没有对这些接口进行特殊限制,这些接口所直连网络之间就可以直接通信。  (2) 间接路由  源主机和目的

    直接路由与非直接路由
        IP协议是根据路由转发数据的。路由器中的路由有两种:直接路由和非直接路由

        (1) 直接路由
        直接路由是指路由器各网络接口所直连的网络之间进行通信所使用的路由。直接路由是在配置完路由器网络接口的IP地址后自动生成的,因此,如果没有对这些接口进行特殊的限制,这些接口所直连的网络之间就可以直接通信。


        (2) 间接路由

       源主机和目的主机不在同一个物理网络上,其数据包的传送必须经过一个或多个路由器进行转送,由两个或多个路由器互连的网络之间的通信所使用的路由称为间接路由。间接路由通常是由人工配置的静态路由或通过运行动态路由协议而获得的动态路由。

     

    ***************************************************************************************************************************************************************************************

     

     

    根据路由器学习路由信息、生成并维护路由表的方法可将路由划分为三种,包括直连路由、静态路由和动态路由。下面将给出三者的各自定义,并对三种路由做相关对比,以便了解它们之间的区别:一 三种路由的划分1 直连路由直连路由是由链路层协议发现的,一般指去往路由器的接口地址所在网段的路径,直连路由无需手工配置,只要接口配置了网络协议地址同时管理状态、物理状态和链路协议均为UP时,路由器能够自动感知该链路存在,接口上配置的IP网段地址会自动出现在路由表中且与接口关联,并动态随接口状态变化在路由表中自动出现或消失。

        2 静态路由静态路由是由网络管理员根据网络拓扑,使用命令在路由器上配置的路由,这些静态路由信息指导报文发送,静态路由方式也无需路由器进行计算,但它完全依赖于网络管理员的手动配置。

        补充一下,默认路由是一种特殊的静态路由,网络管理管理员手工配置了默认路由后,当路由表中与目的地址之间没有匹配的表项时路由器将把数据包发送给默认网关。

        3 动态路由动态路由是指路由器能够自动地建立自己的路由表,且能根据网络拓扑状态变化进行动态调整。动态路由机制依赖于对路由表的维护以及路由器间动态的路由信息交换。路由器间的路由信息交换是基于路由协议实现的,交换路由信息的最终目的是通过路由表找到“最佳”路由。

        二 三种路由的区别主要从三种路由的优缺点及使用场合来加以区别:1 直连路由没什么好说的了,直连路由只能使用于直接相连的路由器端口,非直连的路由器端口是没有直连路由的。

        2 静态路由静态路由信息在缺省情况下是私有的,不会传递给其他的路由器。当然,网络管理员也可通过对路由器设置使之成为共享的。网络管理员易于清楚地了解网络的拓扑结构,便于设置正确的路由信息。静态路由一般适用于较简单的网络环境。

        3 动态路由当网络规模较大或网络拓扑经常发生改变时,此时宜采用动态路由的方式,路由器能够按照相关路由算法自动计算新的路由信息,适应网络拓扑结构的变化。大型和复杂的网络环境通常不宜采用静态路由。网络管理员难以全面地了解整个网络拓扑,同时当网络拓扑和链路状态发生变化时,路由器中的静态路由信息需要大范围地调整,这一工作的难度和复杂程度非常高,所以宜采用动态路由的方式。

    展开全文
  • 动态路由的理解 个人理解:动态路由就是把匹配某种模式下的路由映射到同个组件中,其实本质就是通过url进行传参 比如说:有一个商品Goods的组件,我们需要让不同的商品id都映射到这个组件中,此时就需要用到动态路由...

    动态路由的理解

    个人理解:动态路由就是把匹配某种模式下的路由映射到同个组件中,其实本质就是通过url进行传参
    比如说:有一个商品Goods的组件,我们需要让不同的商品id都映射到这个组件中,此时就需要用到动态路由了。

    动态路由的配置

    可以通过两种方式来传递动态参数:
    (1)、params
    (2)、query

    注意:以下代码的演示都是在history的路由模式下

    params方式的传参

    配置路由的方式:使用冒号:绑定动态参数。

    //index.js中配置路由信息
    const routes = [{
        path: '/goods/:id',
        component: Goods
    }]
    

    路由跳转时,分为:

    (1)使用router-link方式实现路由跳转
    此种方式下,一可以使用字符串,在路径后面直接跟上对应的值,如:
    在这里插入图片描述
    二可以使用对象的方式,如:
    在这里插入图片描述
    注意:

    • params方法中,to属性使用对象的方式,必须由name属性引入路由,不能用path。
    • params方法传参时,属性名必须跟配置路由时的动态参数名一致,否则报错。
      (2)、使用$router的方式进行路由的跳转
    //方法1
     this.$router.push('/goods/' + this.goodsId)
     //方法2
     this.$router.push({
       name: 'goods',
       params: {
         id: this.goodsId
       }
    })
    

    params方式的传参,对应传参后的url地址如下所示:
    在这里插入图片描述
    获取参数的方式:
    $router.params,如本例中想要获取id的值,对应代码为:

    $route.params.id
    
    query方式的传参

    配置路由时,普通配置即可,即原来怎么配置路由,现在就还怎么配置。如:

    const routes = [{
        path: '/goods',
        name: 'goods',
        component: Goods
    }]
    

    路由跳转时,分为:
    (1)使用router-link方式实现路由跳转
    query传参的方式只可以通过对象,不可以使用字符串

    <router-link :to="{path: '/goods', query: {id: goodsId}}">商品</router-link>
    

    (2)、使用$router的方式进行路由的跳转

    this.$router.push({
           path: '/goods',
           query: {
             id: this.goodsId
           }
         })
    
    this.$router.push({
           path: '/goods',
           query: {
             id: this.goodsId
           }
         })
    

    query方式的传参,对应传参后的url地址显示为:
    在这里插入图片描述
    注意:query方式的传参,query对象里面的属性名(如本例中的id)可以随便起名,不像params方式传参时受限。
    同时,此种方式下路由的引入既可以使用path属性,也可以使用name属性。
    获取参数的方式:
    $route.query,如本例中想要获取id 值,代码为:

    $route.query.id
    

    总之,千万要注意:
    (1)、params方式路由的引入只能用name,query方式路由的引入可以用name和path。
    (2)、路由跳转使用 “router”;获取参数使用“route”

    展开全文
  • 动态路由的定义2.动态路由的特点3.动态路由协议概述4.动态路由与静态路由的概述5.按照路由执行算法分类1.离矢量路由协议(通过跳数来选择)2.链路状态路由协议二、路由信息协议(RIP)1.RIP概述2.RIP的特点3.路由表...

    动态路由协议中的路由信息协议(RIP)

    一、动态路由

    1.动态路由的定义

    定义:动态路由是指路由器能够自动地建立自己的路由表,并且能够根据实际情况的变化适时地进行调整。

    2.动态路由的特点

    优点:减少管理任务

    缺点:占用网络带宽

    3.动态路由协议概述

    路由器通过度量值选择最优路由路径,路由器之间用来交换信息的语言

    度量值:跳数、带宽、负载、时延、可靠性、成本

    收敛:当所有路由达到交换路由信息的目的,使所有路由表都达到一致状态的过程。

    4.动态路由与静态路由的概述

    动态路由是与静态路由相对的一个概念,指路由器能够根据路由器之间的交换的特定路由信息自动地建立自己的路由表,并且能够根据链路和节点的变化适时地进行自动调整。当网络中节点或节点间的链路发生故障,或存在其它可用路由时,动态路由可以自行选择最佳的可用路由并继续转发报文。且静态路由一般用于私网、静态网,动态路由一般用于公网。

    5.按照路由执行算法分类

    1.距离矢量路由协议(通过跳数来选择)

    依据从源网络到目标网络所经过的路由器的个数选择路由(跳数),包括RIP、IGRP(思科私有)、BGP(路径矢量协议)、EIGER(高级距离矢量协议)

    2.链路状态路由协议

    综合考虑从源网络到目标网络的各条路径的情况选择路由,包括OSPF、IS-IS

    二、路由信息协议(RIP)

    1.RIP概述

    RIP是一种分布式的基于距离向量的路由选择协议,RIP是基于距离矢量算法的路由协议,它通过UDP报文进行路由信息交换,使用的端口为520。

    RIP的度量值为跳数,但RIP最大跳数只能达到15,当跳数等于或大于16时,则目的网络不可达。

    2.RIP的特点

    1)定期更新
    2)邻居
    3)广播更新
    4)全路由表更新

    3.路由表的形成

    在这里插入图片描述

    1.首先路由器会先学习到自身所在的直连网段的路由信息,形成自己的路由表。上图即’‘C’'是路由器自带网段。

    2.当运行RIP动态路由协议的时候,路由器会每隔30秒向邻居(指的是直接相连的路由器)发送路由表。

    但是在发送之前,会把路由信息的Metric值+1之后传给邻居。

    例如R1传R2,之后R2路由表

    网段(net) 下一跳  跳数(metric)

    10.0.0.0    20.0.0.1    0+1

    20.0.0.0    20.0.0.2    0+1

    Metric是度量值即跳数,是衡量一条路由好坏的一个参数。

    如果是相同路由的情况下,必须要传过来的metric值比自己的小才可以学习,否则不学习。如上比如R1传给R2的“网段20.0.0.0 跳数1”的这条路由,R2自己的路由表里面有一条20.0.0.0的路由,且metric值为0,明显比R1传过来的小,所以不学习这条路由。Metric值越小,优先级就越高。而R1同时传过来的10.0.0.0的路由在R2里面是没有的,所以它会学习过来。

    接下来,轮到R2传给邻居路由了,R1和R3会同时收到R2传过来的路由信息。当然传出之前metric值还是会加1。

    例如R2传R1,R1路由表

    网段(Net )  下一跳     跳数(metric)

    ​ 20.0.0.0     20.0.0.1     0+1

    ​ 30.0.0.0     20.0.0.1    0+1

    ​ 10.0.0.0      20.0.0.1    1+1

    那么同样的因为R2传给R1的20.0.0.0的metric值是1比R1本身的20.0.0.0的metric值大,所以R1也是不学的。所以只会把自身没有的30.0.0.0 加入到自己的路由表里面。即:“网段30.0.0.0 下一跳20.0.0.2 跳数1”

    当R2传给R3的时候,同样30.0.0.0的路由不学习,而只学习“网段20.0.0.0 下一跳30.0.0.0 跳数1”这条路由。

    当R3的周期更新时间到了以后,也会把自己的路由信息metric值加1之后传给邻居R2。那么R2就学到了“网段40.0.0.0 下一跳30.0.0.0 跳数1”这条路由。

    最后到下一个30秒的更新周期的时候,R1又会把自己的路由信息传给邻居R2,而因为三个网段的路由信息R2都有,且三个网段的metric值都大,分别为“1 1 2”所以R2不学,然后R2传给R1的时候,R1就学到了“网段40.0.0.0 下一跳20.0.0.2 跳数2”的路由。
    在这里插入图片描述

    注意:从哪个端口获得的路由信息,以后转发数据的下一跳就是这个端口

    4.路由环路

    1.路由环路的产生原因

    当40.0.0.0的链路down掉的时候,R3的路由周期更新时间30秒到了,就会表示为disable。但是这个时候的R2的路由周期更新时间还没有到30秒,这个时候,R2路由就会发送自己的更新路由表给R3,而R3因为标记了disable,就没有了40.0.0.0的这条路由信息,所以当R2传给R3的时候,它就会学到这条原本是已经down掉的路由信息。然后当R3的路由周期更新时间到的时候,就又会传路由给R2,这样就会形成一个环路,R2不停的给R3传,R3又不停的给R2传,而它们的跳数值因为在每次传之前都会加1,所以会慢慢的越来越大,直到达到最大跳数16。

    在这里插入图片描述

    2.路由环路的解决方法

    1 )水平分割

    从一个接口学到的路由,不会再把这条路由从这个接口转发出去。

    比如,R2从R3学到的路由40.0.0.0的路由是从R2的1口接收进来,那么就不会再把这条路由从1口转发给R3。从而避免了路由环路的产生。同时也能减少路由更新信息占用的链路带宽资源。

    2)毒性逆转

    路由器从某个接口上接收到某个网段的路由信息之后,并不是不往回发送信息了,而是发送,只不过是将这个网段标志为不可达,再发送出去。收到此种的路由信息后,接收方路由器会立刻抛弃该路由,而不是等待其老化时间到。这样可以加速路由的收敛。

    3.RIP版本对比

    RIP v1 RIP v2
    有类路由协议 无类路由协议
    广播更新(255.255.255.255)(不兼容v2) 组播更新(224.0.0.9)(兼容v1)
    不支持VLSM(自动划分) 支持VLSM
    自动路由汇总,不可关闭 自动汇总可关闭,可手工汇总
    不支持不连续子网 支持不连续子网
    报文不携带掩码信息 报文携带掩码信息
    支持外部路由标记,可以根据Tag对路由进行灵活控制
    支持对报文进行验证,提供明文验证和MD5验证两种方式

    其中VLSM指可变长子网掩码

    4.相关配置命令

    [R1]rip 1 ###启动RIP

    [R1-rip-1]version 2 ###启动版本2(缺省为版本1)

    [R1-rip-1]undo summary ###关闭路由器自动聚合(即所有路由信息都会按照IP地址分类归类)

    [R1-rip-1]network 192.168.10.0 (网段) ###宣告主网络号,v2会携带掩码组播更新224.0.0.9,v1不携带,广播更新255.255.255.255

    [R1-rip-1]network 200.1.0.0

    兼容模式

    [R1]int g0/0/1

    [R1-GigabitEthernet0/0/1]rip version 2 multicast ######把设置成rip1路由器的某一接口单独设置成rip版本2

    展开全文
  • 路由参数校验-Nuxt.js 可以让你在动态路由组件中定义参数校验方法 & 嵌套路由-通过 vue-router 子路由创建 Nuxt.js 应用嵌套路由 路由教程 Nuxt.js 依据 pages 目录结构自动生成 vue-router 模块路由配置...

    路由——基础路由-pages的目录结构 & 路由参数校验-Nuxt.js 可以让你在动态路由组件中定义参数校验方法 & 嵌套路由-通过 vue-router 的子路由创建 Nuxt.js 应用的嵌套路由

    路由教程

    Nuxt.js 依据 pages 目录结构自动生成 vue-router 模块的路由配置。

    要在页面之间使用路由,我们建议使用 标签。

    例如:

    <template>
      <nuxt-link to="/">首页</nuxt-link>
    </template>
    

    基础路由

    假设 pages 的目录结构如下:

    pages/
    --| user/
    -----| index.vue
    -----| one.vue
    --| index.vue
    

    那么,Nuxt.js 自动生成的路由配置如下:

    router: {
      routes: [
        {
          name: 'index',
          path: '/',
          component: 'pages/index.vue'
        },
        {
          name: 'user',
          path: '/user',
          component: 'pages/user/index.vue'
        },
        {
          name: 'user-one',
          path: '/user/one',
          component: 'pages/user/one.vue'
        }
      ]
    }
    

    第六步:在page文件夹下,新建demo.vue文件

    <template>
      <div>
        demo
      </div>
    </template>
    
    <script>
    export default {
    
    }
    </script>
    
    <style>
    
    </style>
    

    此时,会自动生成路由地址

    在网址中直接输入localhost:3000/demo,查看demo.vue文件内容

    显示——>demo

    第七步:新建文件夹user和子文件_id.vue

    user/_id.vue

    <template>
      <div>
        用户详情
        {{ $route.params.id }}
    
        <nuxt-link to="/">首页</nuxt-link>
      </div>
    </template>
    
    <script>
    export default {
      // 每一个页面的组件都有一个validate,可以对参数   做校验
      validate ({ params }) {
        // 必须是number类型
        return /^\d+$/.test(params.id)
      }
    }
    </script>
    
    <style>
    
    </style>
    

    第八步:在网址中输入localhost:3000/user/12,可看到——>用户详情12

    第九步:路由参数校验:https://zh.nuxtjs.org/guide/routing

    Nuxt.js 可以让你在动态路由组件中定义参数校验方法。

    举个例子: pages/users/_id.vue

    export default {
      validate ({ params }) {
        // 必须是number类型
        return /^\d+$/.test(params.id)
      }
    }
    

    如果校验方法返回的值不为 truePromise中resolve 解析为false或抛出Error , Nuxt.js 将自动加载显示 404 错误页面或 500 错误页面。

    想了解关于路由参数校验的信息,请参考 页面校验API

    示例

    1. 访问一个不存在的地址,会自动生成一个类404界面

    在这里插入图片描述

    2.访问地址localhost:3000/user/234,会显示——>用户详情 234

    3.当id不是数字时,校验返回false,访问地址localhost:3000/user/abc,会显示404页面

    在这里插入图片描述

    第十步:嵌套路由教程

    你可以通过 vue-router 的子路由创建 Nuxt.js 应用的嵌套路由。

    创建内嵌子路由,你需要添加一个 Vue 文件,同时添加一个与该文件同名的目录用来存放子视图组件。

    Warning: 别忘了在父组件(.vue文件) 内增加<nuxt-child> 用于显示子视图内容。

    假设文件结构如:

    pages/
    --| users/
    -----| _id.vue
    -----| index.vue
    --| users.vue
    

    Nuxt.js 自动生成的路由配置如下:

    router: {
      routes: [
        {
          path: '/users',
          component: 'pages/users.vue',
          children: [
            {
              path: '',
              component: 'pages/users/index.vue',
              name: 'users'
            },
            {
              path: ':id',
              component: 'pages/users/_id.vue',
              name: 'users-id'
            }
          ]
        }
      ]
    }
    

    操作:

    1.新建文件夹user的子文件user/test.vue

    <template>
      <div>
        user-test
        <nuxt-link to="/">首页</nuxt-link>
    
      </div>
    </template>
    
    <script>
    export default {
    
    }
    </script>
    
    <style>
    
    </style>
    

    2.新建文件夹user同层级文件pages/user.vue文件

    <template>
      <div>
        <h1>这是用户管理</h1>
    
        <nuxt-child />
      </div>
    </template>
    
    <script>
    export default {
    
    }
    </script>
    
    <style>
    
    </style>
    

    3.访问用户详情页面

    在这里插入图片描述

    访问test页面

    在这里插入图片描述

    对比:

    之前是这么写的嵌套路由-子路由,在router.js中,父子路由结构如:

    Vue.use(Router)
    
    const router = new Router({
        //父路由
        routes: [{
                path: '/',
                component: Layout,
            //子路由
                children: [
                    { path: '/', name: 'home', component: Home, meta: { keepAlive: true } },
                    { path: '/question', name: 'question', component: Question },
                    { path: '/video', name: 'video', component: Video },
                    { path: '/user', name: 'user', component: User }
                ]
            },
            { path: '/user/profile', name: 'user-profile', component: UserProfile },
            { path: '/user/chat', name: 'user-chat', component: UserChat },
            { path: '/login', name: 'login', component: Login },
            { path: '/search', name: 'search', component: Search },
            { path: '/search/result', name: 'search-result', component: SearchResult },
            { path: '/article/:id', name: 'article', component: Article, meta: { keepAlive: true } }
        ]
    })
    
    展开全文
  • --可以通过query ,param两种方式 区别:query通过url传参,刷新页面还在 params刷新页面不在...-- 动态路由-params --> //在APP.vue中 <router-link :to="'/user/'+userId" replace>用户</router-link...
  • 路由的定义,主要有以下几步: 如果是模块化机制,需要调用 Vue.use(VueRouter) 定义路由组件,如: const Foo = { template: '&lt;div&gt;foo&lt;/div&gt;' }; 定义路由(数组): const ...
  • 动态路由

    2020-11-18 18:39:08
    动态路由协议概述: 路由器之间用来交换信息语言 度量值: 跳数,带宽,负载,时延,可靠性,成本 收敛: 使所有路由表都达到一致状态过程 2.动态路由协议分类 距离矢量路由协议(RIP IGRP) ​ 依据从源网络到目标网络所...
  • 静态路由与动态路由的区别: 定义: 静态路由:静态路由是在路由器中设置固定的路由表;除非网络管理员进行干预,否则静态路由表不会发生变化。 动态路由:由网络中的路由器之间相互通信,传递路由信息,利用收到...
  • 静态路由和动态路由的比较

    千次阅读 2017-09-27 10:40:09
    动态路由:由网络中路由器之间相互通信,传递路由信息,利用收到路由信息更新路由表路由方式。 优点: 静态路由:简单、高效、可靠、网络安全、转发效率高。 动态路由:灵活,能够适时适应网络结构变化,...
  • 动态路由:vue路由,可通过new Router传入路由数组定义实现,也可以通过router.addRoutes实现。通过router.addRoutes动态传入路由定义的方式,称之为动态路由。路由数据可以全部保存在后台数据库中,也可以将路由...
  • 静态路由和动态路由

    2020-07-22 18:43:19
    路由:静态路由和动态路由 定义:从源主机到目标主机转发过程 (一)静态路由(静态路由协议) (1)静态路由 定义:管理员手动配置路由 特点:是单向运行,配置简单,运动稳定,节省设备链路开销,但是对于大型...
  • params方式: 语法: 1.配置路由规则 :传递数据名字 2....实例中定义的变量 方式3:(编程式:(js方式进行参数绑定)) query方式: 语法: 不需要配置路由规则 传参 在模板中...
  • 定义 静态路由:是指路由器中设置固定路由表,除非网络管理员进行干预,否则静态路由项不会... 动态路由:灵活,能够自动适应网络结构变化,无需管理员手工维护,减轻了管理员工作负担。 缺点 静态路由:网...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,049
精华内容 419
关键字:

动态路由的定义