互联网的路由选择协议
互联网的路由选择协议
文章目录
- 互联网的路由选择协议
- 路由选择协议的几个概念
- 分层次路由选择协议
- 内部网关协议RIP协议
- 距离向量算法
- RIP协议的报文格式
- 内部网关协议OSPF
- OSPF的报文格式
- ✨OSPF的特点
- 外部网关协议BGP
- BGP的报文格式
- 参考
本篇主要讨论的是路由表中的路由是如何得出来的。
路由选择协议的几个概念
✨理想路由算法应该具有的一些特点:
- 算法必须是正确的和完整的 “正确”指的是:沿着路由表所指引的路由,分组一定能够最终到达目的网络和目的主机。
- 算法在计算上应简单 路由选择的计算不应使网络通信量增加太多
- 算法你能适应通信量和网络拓扑结构的变化 换个说法是自适应性
- 算法应具有稳定性 在网络拓扑结构相对稳定的情况下,路由算法应该收敛于一个可接受的解。
- 算法是公平的 路由选择算法应对所有的用户都是平等的。
- 算法应是最佳的 路由选择算法应能够找出最好的路由。所谓的“最佳”只能是相对于某一种网络特定要求下得出的较为合理的选择。
对路由算法按照能否根据网络的通信量或拓扑结构自适应地进行调整变化来分,可以分为静态路由选择策略和动态路由选择策略
静态路由选择也叫做非自适应路由选择,特点是简单开销小,但不能即使适应网络状态的变化。比较适用于简单的小网络。
动态路由选择也叫做自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。
分层次路由选择协议
互联网采用分层次的路由选择协议,有两个原因:
- 互联网的规模非常大,如果让所有的路由器知道所有的网络应该怎么表达,这种路由表将会非常大。
- 单位不愿意外界了解自己网络单位的布局细节和本部门所采用的路由选择协议。
所以将整个互联网划分为许多个自治系统 AS (autonomous system)。
互联网把路由选择协议划分为两大类:
- 内部网关协议 IGP(Interior Gateway Protocol) 目前这类路由选择协议使用得最多,如RIP和OSPF协议。
- 外部网关协议EGP(External Gateway Protocol) 可以联系不同的AS。最常用的是BGP。

自治系统之间的的路由选择叫做域间路由选择(interdomain routing),而在自治系统内部的路由选择叫做域内路由选择(interdomain routing)。

内部网关协议RIP协议
**RIP(Routing Information Protocol)**是一种分布式的基于距离向量的路由选择协议。RIP协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。RIP协议中的距离即跳数。
RIP协议的特点:
- 仅和相邻的路由器交换信息
- 路由器交换的信息是当前本路由器知道的全部信息,即现在的路由表
- 按照固定的时间交换路由信息
在路由器刚开始工作的时候,它的路由表是空的。然后路由器就得出到直接相连的几个网络的距离。接着,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
距离向量算法
对每一个相邻路由器发送过来的RIP报文,按照以下步骤:
- 对地址为X的相邻路由发来的RIP报文,先修改报文中的所有项目:把吓一跳字段中地址都改为X,并把所有的“距离”字段值加1.每一个项目都有三个关键数据,即:到目的网络N,距离是d,下一跳路由是X
- 对修改后的RIP报文中的每一个项目,进行以下步骤:
- 若原来的路由表中没有目的网络N,就把该项目添加到路由表中
- 否则(这个项目在路由表中的项目是:到目的网络N,但下一跳路由器不是X)
- 若收到的项目中的距离d西澳娱路由表中的距离,则进行更新
- 否则什么也不做
- 若3分钟还没有收到相邻路由器的更新路由表,则把此相邻路由记为不可达的路由器,即把距离置为16
- 返回
RIP协议的报文格式
下图是RIP2的报文格式,它和RIP1的首部相同,但后面路由部分不一样。RIP协议使用运输层的UDP进行传送。

RIP的首部占4个字节:
- 命令 占1字节,指出报文段的意义。1表示请求消息;取值为2时表示是响应消息
- 版本 占1字节,指出RIP报文的版本
- 保留 占两字节,用0填充
路由部分:
- 地址族标识符(地址类别) 用来标志所使用的地址协议。如采用IP地址就令这个值为2
- 路由标记 用于填入自治系统号ASN,考虑到RIP可能收到其他自治系统的路由选择信息
- 网络地址
- 子网掩码
- 下一跳路由地址
- 距离(跳数)
RIP的缺点
当网络出现故障时,要经过比较长的时间才能将此信息传送到所有路由器
RIP的优点
实现简单,开销小
内部网关协议OSPF
开放最短路径优先OSPF(Open Shortest Path First)采用了Dijkstra 提出的最短路径算法SPF。
OSPF最主要的特征就是使用分布式的链路状态协议。和RIP相比,OSPF的三个要点和RIP不一样:
- 使用洪泛法,向自治系统中所有路由器发送信息。这就是先用路由器向所有输出端口向相邻的路由器发送信息,相邻的路由器又将此信息发往其相邻的路由器(但不发送给刚刚发来信息的那个路由器)
- 发送的信息就是与本路由器相邻的所有路由器的链路状态。所谓的链路状态说的时本路由器和哪些路由器相邻,以及该链路的“度量”。
- 只有当链路状态发生变化时,路由器才向所有路由用洪范法发送此消息
为了使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干个更小的范围,叫做区域。

OSPF使用层次结构的区域划分。在上层的区域叫做主干区域,用于连通其他在下层区域。其他区域的信息都来自区域边界路由器进行概括。主干区域内的路由器都是主干路由器。主干区域中专门和其他自治系统相连的路由器叫做自治系统边界路由器。
OSPF的报文格式
OSPF直接使用IP数据报传送(其IP数据报首部的协议字段值为89).

OSPF首部各字段含义:
-
版本 当前的版本号为2
-
类型 5种类型
-
问候(Hello),用来发现和维持邻站的可达性
OSPF规定每隔10s要与相邻的路由器交换问候分组,以确保邻站的可达。若有40s未收到邻站的问候分组,则认为该邻站不可达,机会修改链路状态数据库
-
数据库描述(Database Description) 向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息
-
链路状态请求(Link State Request) 向对方请求发送某些链路状态项目的详细信息
-
链路状态更新(Link State Update) 用洪范法对全网更新链路状态
-
链路状态确认(Link State Acknowledgment) 对链路更新分组的确认
-
-
分组长度 包括OSPF首部在内的分组长度,以字节为单位
-
路由器标识符 标志发送给该分组的路由器的接口IP地址
-
区域标识符 分组属于的区域的标识符
-
检验和 检验分组中的差错
-
鉴别类型 目前只有两种:0——不用,1——口令
-
鉴别 鉴别类型为0时就填入0,鉴别类型为1则填入8个字符的口令
除了问候类型的OSPF报文其他四种类型都是用来进行链路数据库的同步。下图给出了OSPF的基本操作,说明了两个路由器需要交换各种类型的分组。

下图为可靠的洪范法发送更新分组的过程

✨OSPF的特点
- OSPF 允许管理员给每条路由指派不同的代价
- 如果到同一个目的的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这叫做负载平衡。
- 所有在OSPF路由器之间交换分组,都有鉴别的功能
- OSPF支持可变长度的子网划分和无分类的编址CIDR
- 由于网络中的链路状态可能发生变化,因此OSPF让每个链路状态都带上一个32位的序号,序号越大状态就越新。
外部网关协议BGP
边界网关协议BGP只是为了寻找一条能够到达目的网络比较好的路由,而不是要找一条最佳路由。BGP采用了路径向量路由选择协议
在配置BGP的时候,每个自治系统的管理员至少选择一个路由器作为该自治系统的BGP发言人。一般来说有两个BGP发言人都是通过一个共享网络连接在一起的。BGP发言人往往就是BGP边界路由器。

简化后可变成

BGP发言人构造的自治系统是树形结构,不存在回路。
BGP的报文格式

BGP使用TCP进行发送
BGP的通用报文包含三个字段。
- 标记 字节,用于鉴别收到的BGP报文
- 长度 2字节,指出把包含通用首部在内的整个BGP报文以字节位为长度
- 类型 1字节,现在对应四种类型
- 类型1 OPEN报文 共6个字段。用来和相邻的另一个BGP发言人建立关系,通信初始化。
- 版本号 1字节
- 本自治系统号 2字节
- 保持时间 2字节
- BGP标识符 4字节
- 可选参数长度 1字节
- 可选参数
- 类型2 UPDATE报文共5个字段。用于通告某一路由信息,以及要列出要撤销的多条路由。
- 不可行路由长度 2字节,指明下一个字段的长度
- 撤销路由 列出所有要撤销的路由
- 路径属性总长度 2字节,指明下一个字节的长度
- 路径属性 定义在这个报文中增加的路径属性
- 网络层可达性信息 NLRI 定义发出此报文的网络,包括网络的前缀位数,IP地址前缀
- 类型3 KEEPLIVE报文只有BGP的19字节长的通用首部。用来周期性地证实邻站的连通性
- 类型4 NOTIFICATION报文有3个字段。用来发送检测到的差错
- 差错代码 1字节
- 差错子代码 1字节
- 差错数据 给出有关差错的诊断信息
- 类型1 OPEN报文 共6个字段。用来和相邻的另一个BGP发言人建立关系,通信初始化。
参考
- 什么是BGP
- 《计算机网络 第7版》
相关文章:
互联网的路由选择协议
互联网的路由选择协议 文章目录互联网的路由选择协议路由选择协议的几个概念分层次路由选择协议内部网关协议RIP协议距离向量算法RIP协议的报文格式内部网关协议OSPFOSPF的报文格式✨OSPF的特点外部网关协议BGPBGP的报文格式参考本篇主要讨论的是路由表中的路由是如何得出来的。…...
接口幂等性处理
1.Token 机制: a首先客户端请求服务端,获取一个 token,每一次请求都获取到一个全新的 token(当然这个 token 会有一个超时时间),将 token 存入 redis 中,然后将 token 返回给客户端。 b客户端…...
数字孪生智慧机场:透视数字化时代下的航空运营
在《智慧民航建设路线图》文件中,民航局明确指出,智慧机场是实现智慧民航的四个核心抓手之一。这一战略性举措旨在推进数字化技术与航空产业的深度融合,为旅客提供更加智能化、便捷化、安全化的出行服务,进一步提升我国民航发展的…...
SpringBoot 文件上传后查看404的问题和解决404后需要访问两次才能查看的问题
文件上传、图片上传的实现见这个: SpringBootVue 实现头像上传功能_Teln_小凯的博客-CSDN博客 在实现上面的功能后,发现查看图片的时候提示404,解决这个方法如下: 1、配置资源静态文件映射 第一个参数是页面请求的地址&#x…...
定时任务使用总结
定时任务表达式生成工具网站:https://cron.qqe2.com/定时任务选型:xxl-job 官方文档:https://www.xuxueli.com/xxl-job/安装定时任务调度中心 xxl-job-admin第一步、先导入xxl-job的数据库:地址:https://gitee.com/xux…...
Jira和Confluence Server版终止支持倒计时365天,企业应对策略汇总
本文对Atlassian最新的Server版政策进行了解读,并给出应对方案;同时我们也将国内热门的替代工具与jira进行了比较细致的对比,以及介绍替换的优惠政策等。今天是2023年2月15日,距离 Atlassian 旗下 Jira、Confluence 等系列产品中国…...
GEE学习笔记九十一:栅格影像叠置分析
最近发现好多人都在问一个问题,两张影像如何取其相交区域?其实这个问题简单来讲就是多张栅格影像进行叠加分析。在GEE中栅格影像不像矢量数据那样有直接的函数来做数据分析,需要我们自己手动写一些代码来实现这些操作。要实现这个功能有很多方…...
linux系统编程入门
一、搭建环境 1、安装 Linux 系统(虚拟机安装、云服务器) https://releases.ubuntu.com/bionic/ 2、安装 XSHELL、XFTP https://www.netsarang.com/zh/free-for-home-school/ 3、安装 visual studio code https://code.visualstudio.com/ 4、Linu…...
JS代码安全防护常见的方式
文章目录1. 常量的混淆1.1 十六进制字符串1.2 unicode字符串1.3 字符串的ASCII码混淆1.4 字符串常量加密1.5 数值常量加密2. 增加逆向分析难度2.1 数组混淆2.2 数组乱序2.3 花指令2.4 jsfuck3. 代码执行流程的防护3.1 流程平坦化3.2 逗号表达式4. 其他代码防护方案4.1 eval加密…...
PHP(13)HTTP协议
PHP(13)HTTP协议一、HTTP请求1. 请求行2. 请求头3. 请求体二、HTTP响应1. 响应行2. 响应头三、设置HTTP响应四、模拟HTTP请求一、HTTP请求 1. 请求行 请求行独占一行。形式:请求方式 资源路径 协议版本号 GET /index.php HTTP/1.1 2. 请求…...
基于支持向量机 (SVM) 用php实现预测气温
Windows 10自带的天气应用有一个基于历史数据预测气温的功能,有一定的参考价值。那么如何去实现这一功能呢?本文采用php进行实现。 使用机器学习方法实现预测当日气温的算法需要涵盖许多的步骤,以下是一种基于支持向量机 (SVM) 的算法的简化…...
MySQL(五)
通过索引进行优化 索引基本知识 索引的优点 1、大大减少了服务器需要扫描的数据量2、帮助服务器避免排序和临时表3、将随机io变成顺序io 索引的用处 1、快速查找匹配WHERE子句的行2、从consideration中消除行,如果可以在多个索引之间进行选择,mysql通常会使用找到…...
Linux常用命令2
目录1.查找find(1)普通用法(2)组合用法2.xargs命令3.管道符4.查看文件内容(1)查看两个文件的差别:diff file1 fille2(2)正序查看文件内容cat(3)倒序查看文件内容tac(4)分页查看文件内容more(5)分页查看文件内容less(6)…...
『C/C++养成计划』Visual Studio Code编辑器配置(外观通用型扩展Minmal)
Visual Studio Code编辑器配置(外观&通用型扩展&Minmal)! 文章目录 一. vscode配置外观|通用型扩展1.1. 色彩主题配置扩展(GitHub Theme)1.2. 图标主题扩展(Material Icon Theme)1.3. 代码高亮扩展(better-comments)1.4. 错误警告扩展(error lens)1.5. 执行代码扩展(c…...
设计模式(适配器模式)
设计模式(适配器模式) 第二章 设计模式之适配器模式(Adapter) 一、Adapter模式介绍 适配器模式位于实际情况和需求之间,填补两者之间的差距。 二、示例程序1(使用继承的适配器) 1.示例程序示…...
在基于全志D1s的芒果派麻雀上运行国产开源rt-smart系统
想必RT-Thread系统大家不陌生了,RT-Thread Smart(简称 rt-smart)是基于 RT-Thread 操作系统衍生的新分支,面向带 MMU,中高端应用的芯片,例如 ARM Cortex-A 系列芯片,MIPS 芯片,带 MM…...
【代码随想录训练营】【Day15】第六章|二叉树|层序遍历|226.翻转二叉树|101.对称二叉树
层序遍历 题目详细:LeetCode.102 层序遍历与上一节讲的三种遍历方式有所不同,层序遍历是指按从上到下,从左到右的顺序,逐层地遍历二叉树的节点。 从其节点的遍历顺序上观察,我们可以发现其跟广度优先遍历࿰…...
基于圆展开自适应三边测量算法的室内定位
基于圆展开自适应三边测量算法的室内定位 具有无线通信功能的移动设备的日益普及刺激了室内定位服务的增长。室内定位用于实时定位设备位置,方便访问。然而,由于大量障碍物,与室外定位相比,室内定位具有挑战性。全球定位系统非常适…...
使用中断子系统实现对LED灯的控制
中断顶半部:不允许耗时操作 代码流程: 1、基于字符设备驱动的注册(手动/自动) 2、基于设备树文件的自定义完成(myled, myirq) 2、基于GPIO子系统实现led的点亮(流水/测试文件控制) 3、中断子系统操作流程 …...
《爆肝整理》保姆级系列教程python接口自动化(十五)--参数关联接口(详解)
简介 我们用自动化新建任务之后,要想接着对这个新建任务操作,那就需要用参数关联了,新建任务之后会有一个任务的Jenkins-Crumb,获取到这个Jenkins-Crumb,就可以通过传这个任务Jenkins-Crumb继续操作这个新建的任务。 …...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...
莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...
基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
企业大模型服务合规指南:深度解析备案与登记制度
伴随AI技术的爆炸式发展,尤其是大模型(LLM)在各行各业的深度应用和整合,企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者,还是积极拥抱AI转型的传统企业,在面向公众…...
AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)
Name:3ddown Serial:FiCGEezgdGoYILo8U/2MFyCWj0jZoJc/sziRRj2/ENvtEq7w1RH97k5MWctqVHA 注册用户名:Axure 序列号:8t3Yk/zu4cX601/seX6wBZgYRVj/lkC2PICCdO4sFKCCLx8mcCnccoylVb40lP...
