您现在的位置是:首页 > 正文

[计算机网络笔记]第四部分——网络层 选路协议 因特网的选路协议

2024-02-29 15:40:05阅读 1

层次选路:大型网络(比如因特网)不是理想模型,大型网络规模越大,越需要自治管理,所以大型网络需要划分区域以及层次。这是需要自治系统(AS

       在自治系统内部,网络由一个组织统一管理,所以内部可以运行相同的选路协议,遵守相同的规则,同时,一个AS内部还可以再次划分,形成层次

       在自治系统之间,仅仅通过少量的路由器(网关路由器)通信,运行于不同于AS内部的选路协议,自治系统之间彼此独立,可由不同组织管理

       自治系统内的选路算法被称为“自治系统内部选路协议”,因特网使用的有RIPOSPF两种,接下来介绍

       自治系统之间的选路算法被称为“自制系统间选路协议”,因特网使用的BGP算法,接下来介绍。

 

因特网的自治系统内部选路协议:

       RIP(选路信息协议):这是DV算法的实现

         路径费用被定义为跳数,并且规定最大跳数是15,超过15被认为是不可达路径,所以RIP只能用于小型AS

         RIP报文通过UDP协议在520端口传输,因此RIP应当算是一个应用层协议,通过应用层实现了网络层的功能

         RIP每过30秒钟交换一次报文,节点超过180秒没有交换报文,会被其他节点识别为不可用节点

       OSPF(开放最短路径优先协议):这是LS算法的实现

         路径花费可以自定义单位,可以使跳数,也可以是链路容量等

         OSPF报文直接承载在IP报文之上,和TCP/UDP位于同一层,所以需要OSPF自己实现可靠报文传输、链路状态广播等功能

         OSPF是链路状态协议,所以链路的信息需要向全网广播,因此需要洪泛

         每过30秒,无论链路状态是否改变都需要广播一遍

优点:

  1. 安全:自己实现了可靠数据传输等功能
  2. 允许使用多条费用相同的路径传输
  3. 支持AS内部的层次结构,允许AS内部再次划分
  4. 支持单播多播选路

综上所述,在因特网AS内部,OSPF优于RIPOSPF一般用于顶层大型的AS中,RIP用于低层小型AS

因特网的自治系统间选路协议

       BGP协议(边界网关协议)

         BGP是一个运行在TCP之上的179端口的半永久连接

         AS内部交换选路信息使用iBGP报文,在AS间交换信息使用eBGP报文,因此不同AS可以交换可达信息

         BGP报文中,携带的不是主机地址,而是CIDR化的前缀(也就是a.b.c.d/x的形式),用来表示一个子网或者一个子网集合

         BGP中,每一个AS(除了特别用途的)都有一个自治系统号(ASN)用于唯一标识一个AS

         BGP报文中,有一些属性:

       AS-PATH:用来存放该报文已经经过的AS

       NEXT-HOP:用于指示一条AS-PATH开始的接口

 

对于一个AS内,有多条通向外部的目的地的可达路径,这时候路由器使用的策略叫做“热土豆协议”,即从花费最少路径赶快把报文送走。

 

关于多播和广播:

广播策略:

  1. N次单播:简单但是缺点明显:低效而且当目的地是未知的时候不能使用
  2. 洪泛:路由器接受并拷贝报文,向所有邻近路由器转发

a)         无控制洪泛:在有环的路径中会产生广播风暴现象,无限次循环发送同一个报文

b)        受控洪泛:通过(1)序号(2)反向路径转发避免了广播风暴,其中(1)序号使得路由器可以判断是否转发过广播的报文,(2)反向路径转发则规定之后路由器在源和目的之间的最短路径上时才会广播报文

  1. 生成树:将线路虚拟成一棵树进行广播,以控制广播的数量,难点在于生成树的建立和维护

多播策略:多播需要接收方的地址,可通过间接地址来编址(还要用到D类地址)

为了实现多播,还需要两个部分:(1)互联网组管理协议(IGMP(2)多播选路算法

其中(1)互联网组管理协议用于提供多播加入与退出的管理,(2)多播选路算法在主机稠密时使用一棵树共享多播,主机稀疏时使用基于源的多棵树进行选路

 

网站文章

  • 关于代码效率提升的方法心路历程(购物车)

    关于代码效率提升的方法心路历程(购物车)   给为园友们,大家好,最近一直解决执行提速,分析老代码的逻辑并提出优化方案,在这个过程中发现了很多不好的习惯,导致很多程序逻辑执行效率低下,现在将其总结一下...

    2024-02-29 15:39:59
  • java.text.dateformat_java.text 类 DateFormat.Field - Java 中文参考手册

    java.text.dateformat_java.text 类 DateFormat.Field - Java 中文参考手册

    java.lang.Objectjava.text.AttributedCharacterIterator.Attributejava.text.Format.Fieldjava.text.DateF...

    2024-02-29 15:39:30
  • Android应用程序设置让程序不出现在近期任务列表中

    Android应用程序设置让程序不出现在近期任务列表中

    最近一直在学习Android系统,这里做一些Android的知识总结,帮助自己和需要的人提高。如果大家不想应用出现在近期任务列表中,可以设置成true,不知道有没有方法可以让用户自己选择。今天来个简单的:应用程序设置是否出现在近期任务列表中。

    2024-02-29 15:39:24
  • # CIDR 合并(有 bug)

    CIDR 合并(有 bug)为什么为什么只有 90 分 QWQ#include <iostream>#include <string>#include <algorithm>#include <cstdio>#include <vector>#include <cstdlib>#include <set&...

    2024-02-29 15:39:17
  • [操作系统]进程同步和互斥

    [操作系统]进程同步和互斥

    文章目录引言基本概念进程同步临界资源进程互斥信号量整型信号量记录型信号量信号量实现同步和互斥实现互斥实现同步经典进程同步和互斥问题生产者-消费者问题总结 引言 简单总结一下我对进程同步和互斥的理解,用...

    2024-02-29 15:39:11
  • Ros 与 Web 之 API 控制 websocket 与 Rosbridge 联调(1)

    Ros 与 Web 之 API 控制 websocket 与 Rosbridge 联调(1)

    可以在任意电脑端口输入网址然后去访问自己工控ros节点的方式,简单一点就是web和ros,其中会涉及到服务器和客户端的响应,啊这作为电信专业的我现在将要被html和客户端按在地上摩擦了,话不多说开始复盘整体项目的框架和流程。

    2024-02-29 15:38:41
  • 115、Vue和React的区别

    115、Vue和React的区别

    目录 1. Vue和React中diff算法区别 2.数据流的不同 3.组件通信的区别 4、渲染过程不同 5、Vuex和Redux的区别 6、框架本质不同 7、模板渲染方式的不同 8、路由跳转的方式不...

    2024-02-29 15:38:33
  • JavaScript模块化最全总结

    JavaScript模块化最全总结

    JS模块化没有模块化规范的时候在没有CommonJS,AMD,CMD等规范的时候,人们为了让代码模块化,采用了下面这个链接里的方法:http://www.ruanyifeng.com/blog/201...

    2024-02-29 15:38:26
  • pyqt环境配置

    在从源代码构建PyQt5之前,您必须已经构建并安装了sippip3 install sip安装其他的package:pip install pyqt5-tools(产生exe文件)pip intall...

    2024-02-29 15:37:51
  • python常用方法技巧使用总结

    python常用方法技巧使用总结

    01 列表推导式 02 枚举函数 03 通过函数返回多个值 04 像在数学中一样比较多个数字 05 将字符串转换为字符串列表 06 For-Else 方法 07 从列表中找到n个最大/小的元素 08 ...

    2024-02-29 15:37:43