【计算机网络】网络层-控制平面(学习笔记)

news2024/11/28 17:53:31

一、路由原理

1、网络层功能

1)数据平面

转发:将分组从路由器的一个输入端口移到合适的输出端口

2)控制平面

路由:确定分组从源到目标的路径

2、路由算法

  1. 路径长度
  2. 可靠性
  3. 延迟
  4. 带宽
  5. 负载
  6. 通信代价

3、路由的原则

1)正确性

算法必须是正确的和完整的,使分组一站一站接力,正确发向目标站

完整:目标所有的站地址,在路由表中都能找到相应的表项,没有处理不了的目标站地址

2)简单性

算法在计算机上应简单:最优但复杂的算法,时间上延迟很大,不实用,不应为了获取路由信息增加很多的通信量

3)健壮性

算法应能适应通信量和网络拓扑的变化:通信量变化,网络拓扑的变化算法能很快适应;不向很拥挤的链路发数据,不向断了的链路发送数据

4)稳定性

产生的路由不应该摇摆

5)公平性

对每一个站点都公平

6)最优性

某一个指标的接近最优,时间上,费用上,等指标,或综合指标

4、路由协议

  1. 直连路由:路由器直接交付
  2. 静态路由:设置固定路由表,除非网络管理员干预,否则静态路由不发生变化
  3. 动态路由:路由器之间相互通信,传递路由信息,利用收到的路由信息,更新自己路由表的过程,能实时使用网络结构的变化

5、自治系统AS

自治系统AS(Autonomous System)的定义:在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内的路由,同时还使用一种AS之间的路由选择协议用以确定分组在AS之间的路由

现在对自治系统AS的定义是强调下面的事实:尽管一个AS使用了多种内部路由选择协议和度量,但重要的是一个AS对其他AS表现出的是一个单一的和一致的路由选择策略

二、AS的路由选择

1、RIP距离向量算法

1)RIP概述

在 1982年发布的BSD-UNIX 中实现

采用 Distance vector 算法

2)RIP通告

在邻居之间每30秒交换通告报文

定期且在改变路由的时候发送通告报文,在对方的请求下可以发送通告报文

要点

  1. 仅和相邻路由器交换信息
  2. 交换的信息是当前路由器所知道的全部信息,即自己的路由表
  3. 按固定的时间间隔交换路由信息
3)RIP链路失效和恢复

如果180秒没有收到通告信息 => 邻居或者链路失效

  1. 发现经过这个邻居的路由已失效
  2. 新的通告报文会传递给邻居
  3. 邻居因此发出新的通告 (如果路由变化的话)
  4. 链路失效快速(?)地在整网中传输
  5. 使用毒性逆转阻止ping-pong回路(不可达的距离:跳数无限 = 16 段)
4)RIP进程处理

RIP 以应用进程的方式实现,通告报文通过UDP报文传送,周期性重复

网络层的协议使用了传输层的服务,以应用层实体的方式实现

5)RIP协议优缺点
  1. RIP存在一个问题就是当网络出现故障时,要经过比较长的时间才能将此信息传达到所有的路由器
  2. RIP协议最大的优点就是实现简单,开销较小
  3. RIP限制了网络的规模,并能使用的最大距离为15(16表示不可达)
  4. 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增大

2、OSPF内部网关协议

1)OSPF协议的基本特点

最短路径优先 是因为使用了Dijkstra提出的最短路径算法SPF

OSPF只是一个协议的名字,它并不表示其他的路由选择协议不是最短路径优先

OSPF是分布式的链路状态协议

2)OSPF三个要点
  1. 向本自治系统中所有的路由器发送消息,这里使用的方法是洪泛法
  2. 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息 => 链路状态就是说明本路由器都和哪些路由器相邻,以及该链路的度量
  3. 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息
3)层次化的OSPF

为了使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干个更小的范围,叫做区域(area)

2个级别的层次性:本地, 骨干

  1. 链路状态通告仅仅在本地区域Area范围内进行
  2. 每一个节点拥有本地区域的拓扑信息
  3. 关于其他区域,知道去它的方向,通过区域边界路由器

区域边界路由器: 汇总(聚集)到自己区域内网络的距离,向其它区域边界路由器通告

骨干路由器: 在骨干区域内运行OSPF路由

边界路由器: 连接其它的AS的边界路由

4)OSPF的特点

1.OSPF对不同的链路可根据IP分组的不同服务类型TOS而设置成不同的代价,因此,OSPF对于不同类型的业务可计算出不同的路由

2.如果到同一个目的网络有多条相同的路径,那么可以将通信量分配给这几条路径,这叫作多路径间的负载平衡

3.所有在OSPF路由器之间交换的分组都具有鉴别的功能

4.支持可变长度的子网划分和无分类编址CIDR

5.每一个链路状态都带上一个32位符号,序号越大,状态就越新

6.OSPF还规定了每隔一段时间,要刷新一次数据库中的链路状态

7.由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而整个互联网的规模并无直接关系,因此当互联网规模很大时,OSPF协议要距离向量协议RIP好得多

8.OSPF没有坏消息传得慢的问题,据统计,其相应网络变化的时间小于100ms

三、ISP的路由选择

1、BGP

1)BGP概述
  1. BGP是不同自治系统的路由器之间交换路由信息的协议
  2. BGP较新的版本是2006年1月发表的BGP-4,即RFC 4271~4278
  3. BGP-4 简写为 BGP
2)BGP发言人
  1. 每一个自治系统至少有一个路由器作为该自治系统的 BGP发言人
  2. 两个BGP发言人都是通过一个共享网络连接在一起的,而BGP发言人往往是BGP边界路由器,但也可以不是BGP边界路由器
3)BGP交换路由信息

1.一个BGP发言人与其他自治系统中的BGP发言人要交换路由信息,就要先建立TCP连接,然后在此连接上交换BGP报文建立BGP会话,利用BGP会话交换路由信息

2.使用TCP连接可以提供可靠服务,也简化了路由选择协议

3.使用TCP连接交换路由信息的两个BGP发言人,彼此成为了对方的邻站或对等站

4)BGP协议的特点
  1. BGP协议交换路由信息的节点数量级是自治系统数的量级,这要比这些自治系统中的网络数少很多
  2. 每一个自治系统中BGP发言人(或边界路由器)的数目是很少的,这样就使得自治系统之间的路由选择不敢过分复杂
  3. BGP支持CIDR,因此BGP的路由表就应当包括目的网络前缀,下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列
  4. 在BGP刚刚运行时,BGP的邻站是交换整个的BGP路由表,但以为只需要在发生变化时更新有变化的部分,这样做对节省网络宽带和减少路由器的处理开销方面都有好处

四、AS和ISP路由方式不同的原因

1、策略方面

Inter-AS:管理员需要控制通信路径,谁在使用它的网络进行数据传输

Intra-AS:一个管理者,所以无需策略。AS内部的各子网的主机尽可能地利用资源进行快速路由

2、规模方面

AS间路由必须考虑规模问题,以便支持全网的数据转发

AS内部路由规模不是一个大的问题

  1. 如果AS太大,可将此AS分成小的AS => 规模可控
  2. AS之间只不过多了一个点而已
  3. AS内部路由支持层次性,层次性路由节约了表空间,降低了更新的数据流量

3、性能方面

Intra-AS:关注性能

Inter-AS:策略可能比性能更重要

五、典型的路由器的结构

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1055546.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2021-06-11 51蛋骗鸡用小数点作秒指示,分钟计时.(怎么用二个数码管做分的倒计时,DP亮灭来计秒)

缘由怎么用二个数码管做分的倒计时,DP亮灭来计秒,求思路 - 24小时必答区 #include "REG52.h" sbit K1 P1^5; sbit K2 P1^6; sbit K3 P1^7; sbit BUZ1P1^0; bit k0; unsigned char code SmZiFu[]{63,6,91,79,102,109,125,7,127,111,128};//0-9. unsign…

4. 条件查询

首先区分下match,match_phrase,term, 参考:https://zhuanlan.zhihu.com/p/592767668?utm_id0 1、全量查询分页指定source 示例:请求地址为http://127.0.0.1:9200/students/_search,请求体为: {"query":…

git使用,一点点

查看自己有没有安装git git --version 如果没有安装请执行sudo yum install -y git来安装 git 指令 git log 查看日志 git pull 同步远端和本地仓库 这就是冲突的报错: 所以这个时候你要同步一下git pull

MATLAB中d2d函数用法

目录 语法 说明 示例 重新采样离散时间模型 重新采样已识别的离散时间模型 d2d函数的功能是重新采样离散时间模型。 语法 sys1 d2d(sys, Ts) sys1 d2d(sys, Ts, method) sys1 d2d(sys, Ts, opts) 说明 sys1 d2d(sys, Ts)将离散时间动态系统模型 sys 重新采样&#…

【精品】Springboot 接收发送日期类型的数据

问题 无法请求到后台,后台报错:[Failed to convert property value of type java.lang.String to required type java.time.LocalDateTime for property : 2023-10-02T09:26:16.06908:00 WARN 14296 --- [p-nio-80-exec-1] .w.s.m.s.Defaul…

【中秋国庆不断更】OpenHarmony组件内状态变量使用:@State装饰器

State装饰的变量,或称为状态变量,一旦变量拥有了状态属性,就和自定义组件的渲染绑定起来。当状态改变时,UI会发生对应的渲染改变。 在状态变量相关装饰器中,State是最基础的,使变量拥有状态属性的装饰器&am…

2021-06-09 51单片机:两个独立按键控制一个led,k1按下松开led闪烁三次,k2按下LED闪烁五次

缘由51单片机:两个独立按键控制一个led,k1按下松开led闪烁三次,k2按下LED闪烁五次_嵌入式-CSDN问答 #include "REG52.h" sbit K1 P1^0; sbit K2 P1^1; sbit LEDP0^0; void main() {unsigned char Xd0,ss0;unsigned int wei0;while(1){if(K10&&Xd0){ss3*2;…

程序调试技巧

多线程调试 有个开关的,在Eclipse里默认开启,在IntelliJ IDEA里默认是没有开启的。也就是说如果你在IDEA里代码里加断点,虽然一个线程的断了下来,但其他线程的已经执行过了。此处把线程的suspend设置成和Eclipse模式一样之后&…

华为云云耀云服务器L实例评测|Elasticsearch的Docker版本的安装和参数设置 端口开放和浏览器访问

前言 最近华为云云耀云服务器L实例上新,也搞了一台来玩,期间遇到各种问题,在解决问题的过程中学到不少和运维相关的知识。 本篇博客介绍Elasticsearch的Docker版本的安装和参数设置,端口开放和浏览器访问。 其他相关的华为云云…

固定式工业RFID读写器有哪些特点?如何选型?

工业读写器可分为便携式读写器和固定式读写器,固定式读写器主要是将读写器固定在某一位置钟,常常应用在工位、生产、进入库等场景中。但是很多人并不了解固定式读写器都有哪些特点,具体应该怎么选型,下面我们就一起来了解一下。 固…

.Net Core后端架构实战【介入IOC控制反转】

引言 Inversion of Control,简称IOC,即控制反转。记得当初刚实习的时候公司的带我的人和我提到过IOC这个概念,当初完全不知道是 啥东西。后来有幸写了半年Java,SpringBoot里面业务开发随处可见IOC。再后来我写.Net Core用到的第一个框架Blog.Core项目,它里 面IRepository与R…

利用DMA的触发循环实现eTMR的PWM周期计数

利用DMA的触发循环实现对eTMR的PWM周期计数 文章目录 利用DMA的触发循环实现对eTMR的PWM周期计数引言分析问题eTMR的调试模式ModulizationFTM的多次重载事件终极大招-使用触发链 解决问题确认DMAMUX中的eTMR相关触发源eTMR产生触发信号 软件总结参考文献 引言 最近在同客户一起…

朝气蓬勃 后生可畏

介绍: 线段树是一棵二叉搜索树,思想与分治很想,把一段区间平分平分再平分,平分到不能平分为止,可以进行方便的区间修改和区间查询,当然,树状数组能做的单点修改、单点查询,线段树也可以更好地实现,总之,线段树是树状数组的升级版,此外,线段树能做的平衡树也能做,但…

Acwing 839. 模拟堆

Acwing 839. 模拟堆 题目描述思路讲解代码展示 题目描述 思路讲解 代码展示 #include <iostream> #include <algorithm> #include <string.h>using namespace std;const int N 100010;int h[N], ph[N], hp[N], cnt;void heap_swap(int a, int b) {swap(ph[…

2021-06-17 51蛋骗鸡0-99自动加减

缘由怎么实现两位秒表自动加减_嵌入式-CSDN问答 #include "REG52.h" sbit K1 P1^5; sbit K2 P1^6; sbit K3 P1^7; sbit K4 P1^4; //sbit LED1P1^0; //sbit LED2P1^1; //sbit LED3P1^2; //sbit LED4P1^3; bit k0; unsigned char code SmZiFu[]{63,6,91,79,102,10…

CentOS安装OpenNebula(一)

OpenNebula是一个非常成熟的云平台&#xff0c;&#xff0c;十分简单&#xff0c;但是功能十分丰富。它提供了十分灵活的解决方案&#xff0c;让用户能建立并管理企业云和虚拟的数据中心。 OpenNebula是专门为云计算打造的开源系统&#xff0c;用户可以使用Xen、KVM、VMware等…

JAVA 异常分类及处理

1 概念 如果某个方法不能按照正常的途径完成任务&#xff0c;就可以通过另一种路径退出方法。在这种情况下会抛出一个封装了错误信息的对象。此时&#xff0c;这个方法会立刻退出同时不返回任何值。另外&#xff0c;调用 这个方法的其他代码也无法继续执行&#xff0c;异常处理…

controller-manager学习三部曲之一:通过脚本文件寻找程序入口

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)&#xff1a;https://github.com/zq2599/blog_demos 关于《controller-manager学习三部曲》 《controller-manager学习三部曲》是欣宸原创的kubernetes深入学习系列之一&#xff0c;在前面的《client-go实战》系…

Pikachu靶场——目录遍历漏洞和敏感信息泄露

文章目录 1. 目录遍历漏洞1.1 源码分析1.2 漏洞防御 2. 敏感信息泄露2.1 漏洞防御 1. 目录遍历漏洞 漏洞描述 目录遍历漏洞发生在应用程序未能正确限制用户输入的情况下。攻击者可以利用这个漏洞&#xff0c;通过在请求中使用特殊的文件路径字符&#xff08;如 …/ 或 %2e%2e…

Acwing 838. 堆排序

Acwing 838. 堆排序 题目描述思路讲解代码展示 题目描述 思路讲解 堆是一颗完全二叉树&#xff0c;除了最下面一层&#xff0c;其余是满的&#xff0c;最后一层从左到右排列 小根堆&#xff1a;每个点小于等于左右两堆&#xff0c;所以根节点就是最小值 大根堆&#xff1a;每个…