目录

一、基本概念

1、理想的路由算法应具备的特点

2、分层次的路由选择协议

二、内部网关协议RIP

1、特点

2、路由交换信息

3、距离向量算法

4、坏消息传送慢问题

5、RIP报文格式

三、内部网关协议OSPF

1、特点

2、其他特点

3、自治系统区域划分

4、OSPF的5中分组类型

5、OFPS数据报格式


该章节主要讨论如何得到路由表

一、基本概念

1、理想的路由算法应具备的特点

正确和完整:所有的数据分组一定最终能到达终点
简单:不能有太大开销,增加通信负担
自适应:自动调整各个路径的负载,1负担大了就走2
稳定:网络拓扑和通信量稳定时,路由路径不能老是变化
公平:大多数用户的时延都差不多
最佳:最目标要求而言,相对最优

静态路由选择:人工配置,用于小网络
动态路由选择:由算法自适应网络变化而动态调整路由表达到最佳

2、分层次的路由选择协议

许多单位不希望别人知道自己的路由选择协议细节,同时希望上网
因此,把整个互联网分为一个个自治系统(autonomous system) AS
一个自治系统由一个单一的技术来管理多个网络、IP地址和路由器
A自治系统有A的一套,B有B的一套
你打你的,我打我的
于是,将整个互联网的路由协议分为两层:
在一个自治系统内部使用的路由器协议:内部网关协议(Internal Gateway Protocal)
在不同自治系统之间使用的路由器协议:外部网关协议(External Gateway Protocal)
自治系统内的路由选择:域内路由选择
不同资质系统之间的路由选择:域间路由选择

常用内部网关协议是RIP和OSPF
常用外部网关协议是BGP-4

二、内部网关协议RIP

1、特点

路由信息协议RIP:Routing Information Protocol
是基于距离向量的路由协议
路由表中维护本网络到每一个目的网络的距离
距离如何定义:路由器和直接连接的网络距离为1(也可以定义为0,不影响)
因此,距离也叫做跳数,每经过一个网络,跳数+1
该协议人为:好的协议就是路径短
路径最多15,16不可达
因此RIP只适用于小网络
RIP对两个路由器之间,不能同时拥有多个路由
只能有一个,就是跳数最短,网络最少的一条
不管这一条速度快还是慢,我只管短还是长,不管速度

2、路由交换信息

本路由器需要和其他路由器交换信息建立路由表
那么:
和哪些路由器交换信息?所有的路由器吗?
仅和相邻路由器交换信息,不相邻不交换

交换什么信息?部分信息还是所有信息?
交换全部信息,即所有的路由表信息

什么时候交换信息?条件满足才交换还是隔一段时间就交换?
按固定的时间间隔交换信息,例如每隔30s

路由器刚开始工作的时候,路由表是空的
路由收敛:自治系统内所有节点得到正确的路由信息
路由表更新的原则是:找出每个目的网路的最短距离

3、距离向量算法

A的相邻路由器是B
从B->A发来的路由表信息有三个:
目的网络Net,距离d,下一跳

因为对A来说,到B的下一跳只能是B
所以,B发来的路由表的下一跳都是B
因此,对A来说,B发来的路由只有以下几种:

A原来没有
那就加上

A有,目的网络一样,查看下一跳
如果下一跳也是B,直接换掉(不管距离长短)
如果吓一跳不是B(也就是说有别的路径可以到达目的)
这个时候就看距离,那个距离短,用哪个

3分钟还没有收到相邻路由器信息
即A3分钟还没有收到B的路由信息,把到B的路由距离设置为16
标记不可到达

总结:
Net没有,加上去
Net一样,看下一跳:下一跳相同,直接更新;下一跳不一样,看谁短

4、坏消息传送慢问题

由于上述的更新策略,导致一下问题:
坏消息传的慢
什么意思?
举个例子,如图:


此时Net1故障,R1无法到达Net1,将到Net1距离改为16
30s后,将路由表发送给邻居R2
但是,还没到30s,R2就给R1发送自己的路由表信息了
此时,R2到达Net1的信息是:Net1 3 R2
该条信息到达R1后,一对比,Net1 16 直接
下一跳不相同,但是距离更短,更换
于是,R1到Net1的路由被换成:Net1 3 R2

到达30s后,R1再把Net1 4 R1发送给R2
一对比,R2为Net1 2 R1 
 下一跳一样,直接换

于是,二者不断更新循环
直到距离加到16才停止
此时,才知道Net1故障
即所谓坏消息慢

5、RIP报文格式

RIP报文用运输层用户数据报UDP的数据部分传送
格式如下:

RIP报文:首部 + 路由部分
路由部分:自治系统号ASN(可能收到本自治系统外的路由信息)
目的网络、下一跳路由器地址、距离

一个RIP报文最多带25个路由
超过必须用下一个报文来传送

综上所述,由于RIP所采取的路由更新策略
导致了其结构性上的缺点:
1、最大距离15(16不可达),只能用于小网络  
2、更换信息,传送所有路由信息,开销大
3、坏消息传的慢,更新过程收敛时间长

因此,对于大网络来说,RIP路由策略不适合
于是,有了OSPF路由协议

三、内部网关协议OSPF

1、特点

1、向本自治系统所有路由器发送信息,洪泛法
路由器向所有接口发送信息
相邻路由器除收到接口,对其余所有接口发送信息
以此类推
最后,所有路由器收到该信息副本

2、发送信息为:所有相邻路由器链路状态
什么是链路状态?
该路由器和哪些路由器相邻
该链路代价(费用、距离、时延、宽带等)

3、每隔一段时间 / 链路状态发生变化:则洪泛

由上述三点特征,使得:
所有路由器拥有全网(本自治系统内)的拓扑结构图
也就是建立了一个链路状态数据库
该数据库记录:全网有多少路由器、相邻情况、代价情况等
于是,每一个路由器就可以根据这些数据,使用Dijkstra最短路径算法计算自己的路由表

(OSPF链路状态数据库更新快,因此更新过程收敛快)

2、其他特点

1、OSPF允许管理员给每条路指定代价
2、到同一个网络,有多条路代价相同,可以对通信进行均衡平摊
3、路由器交换分组具有鉴别能力,坏的路由器不发
4、支持变长网络地址划分,支持误分类网络编制CIDR
5、网络链路经常变化,因此让链路状态带序号,更新一次,序号+1
     于是序号越大,状态越新

3、自治系统区域划分

为了让OSPF应用于更大的网络
OSPF将一个自治系统网路划分为更小的区域
每个区域用32位标识区域,用点分十进制记录
每个区域路由器最好不超过200个

划分好以后:
1、洪泛只局限在一个区域内,以减少通信量
路由器只直到本区域内的网络拓扑

2、为区域间通信,对区域划分层次:
上层为主干区域,32位标识规定为0.0.0.0
在主干区域的路由器:叫做主干路由器

区域交界的路由器:叫做区域边界路由器
每个区域至少一个区域边界路由器,以维护其他区域通信

在自治系统边界之间的路由器:叫做自治系统边界路由器
负责和其他路由器通信

上述所做的区域划分和层次划分
目的只有一个:减少路由信息交互负担
以增强OSPF协议对更大网络的适应

4、OSPF的5中分组类型

1、问候分组
用于发现和维持邻居的可达性
说人话就是发个消息,看邻居家能不能去
规定每10s发送一次
如果40s没有收到某个邻居发来的问候分组,则认为邻居死了,设置为不可达
其余四个分组都是用于同步链路状态信息的

2、数据库描述分组
向邻居发送自己的所有链路状态数据

3、数据链路请求分组
请求邻居发送人家的某些链路状态

4、链路状态更新分组
对全网洪泛(本区域内)
(OSPF核心功能)

5、链路状态确认分组
对链路更新的确认
向发送链路状态更新分组的路由器发送确认分组
我收到邻居的链路状态分组,我得告诉人家,我确实收到了

5、OFPS数据报格式

OSPF分组作为IP数据报的数据部分
IP首部协议为89
OSPF分组很短

注意:
洪泛并非所有的路由器都洪泛发送本地链路状体信息
这代价很大
那么怎么做呢?
假设路由器A B相邻
A的数据库摘要和B的数据库摘要互相交换
于是:
A知道有些自己没有,但B有
同理,B也如此
于是,
A向B发送自己缺少的链路状态请求,这些我没有,但是B你有,你告诉我
B也向A发送自己缺少的链路状态请求,
经过多轮两两之间的交换
最后所有路由器都有了全部的信息

每隔一段时间,如30分钟,OSPF刷新一次链路状态数据库

四、学习本章需要具备能力

1、根据RIP路由策略得到路由表

2、认识RIP的特点

3、理解路由算法

4、RIP路由算法的优点和缺点,例如坏消息、收敛、不可达等

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

同品牌的系列广告要如何保证宣传的连贯性?

对于品牌的系列广告而言,内容的连贯性十分重要。如果系列广告之间缺乏内在联系,不仅会削弱品牌形象的统一性,还可能导致用户的认知混乱。保证宣传内容的连贯性不是让每则广告完全相同,而是在变化中保持核心要素的一致性。我们该如…

深度学习:激活函数Activaton Function

一、为什么需要激活函数?神经网络本质上是多个线性变换(矩阵乘法)叠加。如果没有激活函数,即使叠加多层,整体仍等价于一个线性函数:这样的网络无法学习和拟合现实世界中复杂的非线性关系。激活函数的作用&a…

deepseek: 切分类和长函数到同名文件中

import re import sys import os import ast from tokenize import generate_tokens, COMMENT, STRING, NL, INDENT, DEDENT import iodef extract_entities(filename):"""提取类和函数到单独文件"""with open(filename, r, encodingutf-8) as f…

新型融合肽递送外泌体修饰可注射温敏水凝胶用于骨再生

温敏水凝胶因能模拟细胞外基质微环境,且具有原位注射性和形态适应性,在骨组织工程中应用广泛。小肠黏膜下层(SIS)作为天然细胞外基质来源,富含 I 型和 III 型胶原蛋白及多种生物活性因子,其制备的水凝胶在组…

SPI接口的4种模式(根据时钟极性和时钟相位)

SPI(Serial Peripheral Interface) 接口根据时钟极性(CPOL)和时钟相位(CPHA)的不同组合,共有 4种工作模式。这些模式决定了数据采样和传输的时序关系,是SPI通信中必须正确配置的关键…

Java:高频面试知识分享2

HashSet 和 TreeSet 的区别?底层实现:HashSet 基于 HashMap 实现,使用哈希表存储元素;TreeSet 基于 TreeMap,底层为红黑树。元素顺序:HashSet 无序;TreeSet 会根据元素的自然顺序或传入的 Compa…

C语言习题讲解-第九讲- 常见错误分类等

C语言习题讲解-第九讲- 常见错误分类等1. C程序常见的错误分类不包含:( )2. 根据下面递归函数:调用函数 Fun(2) ,返回值是多少( )3. 关于递归的描述错误的是:( &#x…

A∗算法(A-star algorithm)一种在路径规划和图搜索中广泛使用的启发式搜索算法

A∗A*A∗算法(A-star algorithm)是一种在路径规划和图搜索中广泛使用的启发式搜索算法,它结合了Dijkstra算法的广度优先搜索思想和启发式算法的效率优势,能够高效地找到从起点到终点的最短路径。 1. 基本原理 A*算法的核心是通过估…

UniappDay06

1.填写订单-渲染基本信息 静态结构&#xff08;分包&#xff09;封装请求API import { http } from /utils/http import { OrderPreResult } from /types/orderexport const getmemberOrderPreAPI () > {return http<OrderPreResult>({method: GET,url: /member/orde…

论文略读:GINGER: Grounded Information Nugget-Based Generation of Responses

SIGIR 2025用户日益依赖对话助手&#xff08;如 ChatGPT&#xff09;来满足多种信息需求&#xff0c;这些需求包括开放式问题、需要推理的间接回答&#xff0c;以及答案分布在多个段落中的复杂查询RAG试图通过在生成过程中引入检索到的信息来解决这些问题但如何确保回应的透明性…

从内部保护你的网络

想象一下&#xff0c;你是一家高端俱乐部的老板&#xff0c;商务贵宾们聚集在这里分享信息、放松身心。然后假设你雇佣了最顶尖的安保人员——“保镖”——站在门口&#xff0c;确保你准确掌握所有进出的人员&#xff0c;并确保所有人的安全。不妨想象一下丹尼尔克雷格和杜安约…

Redis 中 ZipList 的级联更新问题

ZipList 的结构ZipList 是 Redis 中用于实现 ZSet 的压缩数据结构&#xff0c;其元素采用连续存储方式&#xff0c;具有很高的内存紧凑性。ZipList 结构组成如下&#xff1a;zlbytes&#xff1a;4字节&#xff0c;记录整个ziplist的字节数zltail&#xff1a;4字节&#xff0c;记…

【苍穹外卖项目】Day05

&#x1f4d8;博客主页&#xff1a;程序员葵安 &#x1faf6;感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb; 一、Redis入门 Redis简介 Redis是一个基于内存的 key-value 结构数据库 基于内存存储&#xff0c;读写性能高适合存储热点数据&#xff08;热…

语音识别dolphin 学习笔记

目录 Dolphin简介 Dolphin 中共有 4 个模型&#xff0c;其中 2 个现在可用。 使用demo Dolphin简介 Dolphin 是由 Dataocean AI 和清华大学合作开发的多语言、多任务语音识别模型。它支持东亚、南亚、东南亚和中东的 40 种东方语言&#xff0c;同时支持 22 种汉语方言。该模…

视频生成中如何选择GPU或NPU?

在视频生成中选择GPU还是NPU&#xff0c;核心是根据场景需求、技术约束和成本目标来匹配两者的特性。以下是具体的决策框架和场景化建议&#xff1a; 核心决策依据&#xff1a;先明确你的“视频生成需求” 选择前需回答3个关键问题&#xff1a; 生成目标&#xff1a;视频分辨率…

从豆瓣小组到深度洞察:一个基于Python的舆情分析爬虫实践

文章目录 从豆瓣小组到深度洞察:一个基于Python的舆情分析爬虫实践 摘要 1. 背景 2. 需求分析 3. 技术选型与实现 3.1 总体架构 3.2 核心代码解析 4. 难点分析与解决方案 5. 总结与展望 对爬虫、逆向感兴趣的同学可以查看文章,一对一小班教学:https://blog.csdn.net/weixin_…

RustDesk 使用教程

说明&#xff1a; 使用RustDesk 需要在不同的电脑安装对应系统型号的客户端&#xff0c;然后再去云服务器安装一个服务端即可。 1、到网站下载客户端&#xff1a;https://rustdesk.com/zh-cn/ 两台电脑安装客户端。 2、在云服务器安装服务端 1&#xff09;官网教程&#xff1a;…

【C语言网络编程基础】TCP 服务器详解

在网络通信中&#xff0c;TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是一种可靠、面向连接的协议。一个 TCP 服务器正是基于这种协议&#xff0c;为客户端提供稳定的网络服务。本文将详细介绍 TCP 服务器的基本原理和工作流程。 一、什…

一篇就够!Windows上Docker Desktop安装 + 汉化完整指南(包含解决wsl更新失败方案)

前言 在现代软件开发和人工智能应用中&#xff0c;环境的稳定性和可移植性至关重要。Docker 作为一种轻量级的容器化技术&#xff0c;为开发者提供一致的运行环境&#xff0c;使得软件可以在不同平台上无缝运行&#xff0c;极大地提升了开发和部署的效率。无论是本地开发、测试…

设计模式(二十四)行为型:访问者模式详解

设计模式&#xff08;二十四&#xff09;行为型&#xff1a;访问者模式详解访问者模式&#xff08;Visitor Pattern&#xff09;是 GoF 23 种设计模式中最具争议性但也最强大的行为型模式之一&#xff0c;其核心价值在于将作用于某种数据结构中的各元素的操作分离出来&#xff…