网络基础:路由路由协议

路由是指在计算机网络中选择路径来传输数据包的过程和机制;它包括路径选择、数据包转发、以及维持网络连接所需的各种协议和算法,路由的目标是确保数据包能够高效且可靠地从源设备传输到目标设备;常见的能够实现路由功能网络设备有:

①路由器(Router):路由器是最常见的用于实现路由功能的设备,连接多个网络并转发数据包。
②三层交换机(Layer 3 Switch):三层交换机除了传统的二层交换功能外还具备路由功能,能在第三层(网络层)进行数据包转发。
③无线网状网络(Mesh Network)设备:在无线网状网络中,每个节点都可以充当路由器,负责数据包的转发;常见于大范围无线覆盖或物联网(IoT)应用中。
④防火墙(Firewall):许多防火墙设备也具有路由功能,特别是在需要安全和网络边界保护的场景下。

路由器(具有路由功能的网络设备)连接不同的网络段或子网;它通过检查数据包的目标地址,并根据路由表来决定下一跳,将数据包转发到正确的路径上。

路由表(Routing Table)

路由表是路由器中存储路径信息的数据结构。每条记录通常包括以下信息:

目标网络地址(Destination Network Address):要到达的网络或子网的地址。
子网掩码(Subnet Mask):用于区分网络部分和主机部分的掩码。
下一跳(Next Hop):下一跳路由器的地址,数据包将被转发到这个路由器。
接口(Interface):路由器用于发送数据包的网络接口。
度量(Metric):用于表示路径的代价,常见度量包括跳数、带宽、延迟等。

查看路由器的路由表是网络管理的重要部分,不同品牌的路由器可能有不同的命令和界面;以下是查看华为、思科(Cisco)和华三(H3C)路由器路由表的方法,并分析路由表中的各个字段。

1. 华为路由器

使用以下命令查看路由表:

display ip routing-table
路由表示例及字段分析
Destination/Mask    Proto  Pre  Cost  Flags NextHop        Interface
0.0.0.0/0           Static 60   0     D     192.168.1.1    GigabitEthernet0/0/1
10.0.0.0/8          Direct 0    0     D     10.0.0.1       GigabitEthernet0/0/2
192.168.1.0/24      Direct 0    0     D     192.168.1.1    GigabitEthernet0/0/1

Destination/Mask:目标网络及其子网掩码。

Proto:路由协议(例如,Static表示静态路由,Direct表示直连路由)。

Pre:优先级。

Cost:路由开销。

Flags:路由标志(D表示动态路由)。

NextHop:下一跳地址。

Interface:出接口。

2. 思科(Cisco)路由器

查看路由表

使用以下命令查看路由表:

show ip route

路由表示例及字段分析

C    192.168.1.0/24 is directly connected, GigabitEthernet0/0
L    192.168.1.1/32 is directly connected, GigabitEthernet0/0
S    0.0.0.0/0 [1/0] via 192.168.1.254, GigabitEthernet0/1

C:直连路由(Connected)。

L:本地路由(Local)。

S:静态路由(Static)。

Destination/Mask:目标网络及其子网掩码。

[AD/Metric]:路由的管理距离(AD)和度量值(Metric)。

via:下一跳地址。

Interface:出接口。

3. 华三(H3C)路由器

查看路由表

使用以下命令查看路由表:

display ip routing-table
路由表示例及字段分析
Destination/Mask    Proto  Pre  Cost  NextHop        Interface
0.0.0.0/0           Static 60   0     192.168.1.1    GigabitEthernet1/0/1
10.1.0.0/16         Direct 0    0     10.1.0.1       GigabitEthernet1/0/2
192.168.1.0/24      Direct 0    0     192.168.1.1    GigabitEthernet1/0/1

Destination/Mask:目标网络及其子网掩码。

Proto:路由协议(例如,Static表示静态路由,Direct表示直连路由)。

Pre:优先级。

Cost:路由开销。

NextHop:下一跳地址。

Interface:出接口。

各个字段的含义:
目标网络/掩码:定义了路由器可以到达的网络。
协议(Proto):表明路由是通过哪种方式学习到的,例如静态路由、动态路由或直连路由。
优先级(Pre)和开销(Cost):这些字段用于决定路由的优先级,数值越低优先级越高。
下一跳(NextHop):数据包应该发送到哪个IP地址,以便继续前往最终目标。
出接口(Interface):数据包离开路由器的物理或逻辑接口。

在上面的路由表中都有标识该路由条目是通过什么路由协议学到的;那么这个路由协议又是什么东西呢?接下来我们就好好来说道说道。

路由协议

路由协议是网络设备之间共享路由信息并选择最佳路径的协议。不同的路由协议适用于不同的网络环境。下面是一些常见的路由协议及其特性:

1. 静态路由(Static Routing)

静态路由是手动配置的路由条目,不依赖于路由协议的自动更新。适用于小型网络或需要严格控制路由路径的环境;静态路由协议比较简单,下篇文章讲(包含配置)。

2. 动态路由协议

动态路由协议自动发现和维护路由表条目,适用于中大型网络;它们分为内部网关协议(IGP)和外部网关协议(EGP)。

①内部网关协议(IGP)
内部网关协议(IGP,Interior Gateway Protocol)是用于自治系统(AS,Autonomous System)内路由选择的协议。自治系统是由一个或多个网络组成,并由一个单一的管理实体控制,通常是一个企业或组织。IGP协议在AS内部的路由器之间交换路由信息,以确定数据包的最佳传输路径。

常用的IGP:OSPF、EIGRP、IS-IS、RIP

②外部网关协议(EGP)
外部网关协议(EGP,Exterior Gateway Protocol)用于不同自治系统(AS,Autonomous System)之间的路由选择;EGP协议负责在互联网上的多个自治系统之间交换路由信息,以确保数据包能够跨越多个AS传输到达目标目的地

常用的EGP:BGP

用一张图来标识内部网关协议和外部网关协议的关系:

自治系统(AS):AS(Autonomous System)是由一个或多个网络组成,并由单一的管理实体控制的网络集合。AS内部使用IGP进行路由选择。

此处还可以用一张图来帮助我们针对动态路由协议进行总结:

在这张总结图中也可以看到在这里我们IGP分为距离矢量路由协议和链路状态路由协议,那么距离矢量和链路状态又有什么区别呢?

①距离矢量路由协议

距离矢量路由协议是一种路由选择协议,通过每个路由器维护一张包含所有已知目的地和距离(跳数)的路由表来实现路由选择;每个路由器通过定期向其邻居广播其整个路由表来更新和传播路由信息。

距离矢量路由协议工作原理:

1.初始路由表:每个路由器初始化其路由表,只包含直连网络。
2.定期更新:每个路由器定期向其所有邻居发送其整个路由表。
3.路由更新传播:路由器接收到邻居的路由表后,更新其路由表以反映新的信息。如果发现到某个目的地的更短路径,更新其路由表并将更改传播给邻居。

上面的图片圆形为路由器,方形为网络,数字为各个路由器路由表中记录的到达对应网络的开销数值。(没写数字则标识没有对应的路由)

①路由表(初始状态):

A的路由表:N1: 直连,跳数 0、N2: 直连,跳数 1

B的路由表:N2: 直连,跳数 0、N3: 直连,跳数 1

C的路由表:N3: 直连,跳数 0、N1: 直连,跳数 1

路由更新过程:

A 向 B 和 C 发送路由表:B 接收到 A 的路由表,发现到达 N1 的路径(跳数 1)更短,更新其路由表。

C 接收到 A 的路由表,发现到达 N2 的路径(跳数 2)可用,更新其路由表。

B 向 A 和 C 发送路由表:A 接收到 B 的路由表,发现到达 N3 的路径(跳数 2)可用,更新其路由表。

C 接收到 B 的路由表,发现到达 N2 的路径(跳数 1)更短,更新其路由表。

C 向 A 和 B 发送路由表:A 接收到 C 的路由表,发现到达 N3 的路径(跳数 1)更短,更新其路由表。

B 接收到 C 的路由表,发现到达 N1 的路径(跳数 2)可用,更新其路由表。

②路由表(更新后):

A的路由表:N1: 直连,跳数 0、N2: 直连,跳数 1、N3: 通过 C,跳数 1

B的路由表:N2: 直连,跳数 0、N3: 直连,跳数 1、N1: 通过 A,跳数 1

C的路由表:N3: 直连,跳数 0、N1: 直连,跳数 1、N2: 通过 B,跳数 1

通过以上分析,我们确保了每个路由器在更新后的路由表中都包含了到达目的地的最短路径;以上就是距离矢量路由协议的工作原理分析。

②链路状态路由协议

链路状态路由协议(Link-State Routing Protocol)是一种广泛用于计算机网络中的路由协议,其主要特点是每个路由器通过交换链路状态信息来维护一个网络拓扑图,然后使用该拓扑图计算出最短路径。以下是链路状态路由协议的基本概念和工作原理:

拓扑图维护:每个路由器通过定期发送链路状态广播(LSA,Link State Advertisement)消息来描述自己的邻居和链路状态(如链路的带宽、延迟等)。这些信息被存储在路由器的链路状态数据库(Link State Database)中。

全局拓扑计算:使用收集到的链路状态信息,每个路由器构建出整个网络的拓扑图。这张拓扑图包含所有路由器和它们之间的链路状态信息。

最短路径计算:基于构建的拓扑图,每个路由器使用最短路径算法(如Dijkstra算法)计算到达网络中所有其他路由器的最短路径。这些最短路径形成了路由表,用于决定数据包的转发路径。

路由信息传播:路由器之间通过交换链路状态信息来保持拓扑图的最新状态。如果网络拓扑发生变化(如链路故障或恢复),受影响的路由器会更新链路状态信息,并重新计算路径。

常见的链路状态路由协议:OSPF、IS-IS

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深入探讨C++的高级反射机制

反射是一种编程语言能力,允许程序在运行时查询和操纵对象的类型信息。它广泛应用于对象序列化、远程过程调用、测试框架、和依赖注入等场景。 由于C语言本身的反射能力比较弱,因此C生态种出现了许多有趣的反射库和实现思路。我们在本文一起探讨其中的奥秘…

VSCode插件开发经验小结

从零基础接手DX扩展开发维护,到完成DX扩展从O2平台迁移到 VSCode 平台,现在也积累了一些经验,本文将对这一过程中的学习经历做一个简单小结,也希望可以通过本文帮助想要开发 VSCode 扩展的同学可以更快速的上手。 VSCode (Visual …

Spring事务及其传播机制(一)

目录 1.事务回顾 1.1什么是事务 1.2事务的四大重要特性(ACID) 1.3事务的操作 2.Spring中事务的实现 2.1编程式事务(了解) 2.2声明式事务Transactional 3.Transactional作用 3.1重新抛出异常 3.2手动回滚事务 1.事务回顾…

STM32第八课:Su-03t语音识别模块

文章目录 需求一、SU03T语音识别模块二、模块配置流程1.固件烧录2.配置串口和传输引脚3.中断函数4.double类型转换5 数据发送6.接收处理 三、该模块完整代码总结 需求 基于上次完成空气质量传感器,利用SU03T语音识别模块,实现空气质量的语音问答播报。 …

代发考生战报:6月25号 南宁 HCIP-Transmission传输 H31-341考试884分通过

代发考生战报:6月25号 南宁 HCIP-Transmission传输 H31-341考试884分通过 ,今天我和同事两个人去考的,我考试遇到1个新题,他遇到两个新题,客服提供的题库很稳定,全覆盖了,轻松通过,考…

EBS请求通过一段SQL输出EXCEL文件

一.设计初衷 1.EBS请求输出excel文件常用的有3种模式: 1.1.RTF模板XML数据源 1.2 package输出html格式 1.3 package输出excel对应的xml文本 2.上面三种模式开发起来都比较麻烦,而且输出的是xls的文件,如果导出的数据很多,文件特别大。 3.…

Go-知识测试-单元测试

Go-知识测试-单元测试 1. 定义2. 使用3. testing.common 测试基础数据4. testing.TB 接口5. 单元测试的原理5.1 context 单元测试的调度5.1.1 等待并发执行 testContext.waitParallel5.1.2 并发测试结束 testContext.release 5.2 测试执行 tRunner5.3 启动测试 Run5.4 启动并发…

<电力行业> - 《第9课:输电(二)》

4 输送电能流程 输送电能总共有:发电站→升压变压器→高压输电线→降压变压器→用电单位等五个流程。 电力工业初期,发电厂建在电力用户附近,直接向用户送电,所以那个时候只有发电和用电两个环节。 随着电力生产规模和负荷中心规…

基于MongoDB的电影影评分析

项目源码及资料 项目介绍 1、从豆瓣网爬取Top10的电影数据 爬取网址: https://movie.douban.com/top250 1.1 爬取Top10的影视信息 mv_data [] i 0 for x in soup.select(.item):i 1mv_name re.search(>([^<])<, str(x.select(.info > .hd > a > .tit…

ASP.NET Core 6.0 使用 Action过滤器

Action过滤器 在ASP.NET Core中&#xff0c;Action过滤器用于在执行Action方法之前或之后执行逻辑。你可以创建自定义的Action过滤器来实现这一点。 继承 ActionFilterAttribute 类&#xff1a; [TypeFilter(typeof(CustomAllActionResultFilterAttribute))]public IActionRe…

Pc端多功能视频混剪工具/便携版打开即用

PC便携版 视频批量剪辑大师&#xff0c;全自动剪辑神器&#xff0c;会打字就能做视频 多功能&#xff0c;视频混剪&#xff0c;视频配音&#xff0c;文字生成语音&#xff0c;图片合成视频&#xff0c;自动识别音频并生成字幕等功能 链接&#xff1a;https://pan.baidu.com/…

【原创实现 设计模式】Spring+策略+模版+工厂模式去掉if-else,实现开闭原则,优雅扩展

1 定义与优点 1.1 定义 策略模式&#xff08;Strategy Pattern&#xff09;属于对象的⾏为模式。他主要是用于针对同一个抽象行为&#xff0c;在程序运行时根据客户端不同的参数或者上下文&#xff0c;动态的选择不同的具体实现方式&#xff0c;即类的行为可以在运行时更改。…

代码随想录算法训练营第四十七天| 188.买卖股票的最佳时机IV ,309.最佳买卖股票时机含冷冻期 ,714.买卖股票的最佳时机含手续费

188. 买卖股票的最佳时机 IV - 力扣&#xff08;LeetCode&#xff09; class Solution {public int maxProfit(int k, int[] prices) {int[][] dp new int[prices.length][2*k];for(int i0;i<2*k;i){if(i%2 0){dp[0][i] -prices[0];}else{dp[0][i] 0;} }for(int i1;i…

C语言 | Leetcode C语言题解之第206题反转链表

题目&#xff1a; 题解&#xff1a; struct ListNode* reverseList(struct ListNode* head) {if (head NULL || head->next NULL) {return head;}struct ListNode* newHead reverseList(head->next);head->next->next head;head->next NULL;return newHea…

使用Java连接数据库并且执行数据库操作和创建用户登录图形化界面(3)专栏里有上两步的源代码

创建用户登录程序&#xff0c;验证用户账号和密码信息是否在数据库student中的用户表tb_account中存在。用户登录界面如下图所示&#xff1a; 当单击“登录”按钮时&#xff0c;处理以下几种情况&#xff1a; &#xff08;1&#xff09;用户名未输入&#xff0c;提示用户名不能…

Apache Ranger 2.4.0 安装部署

1、安装ranger admin 2、源码编译Ranger wget https://www.apache.org/dist/ranger/2.4.0/apache-ranger-2.4.0.tar.gz tar zxvf apache-ranger-2.4.0.tar.gz cd apache-ranger-2.4.0 mvn -Pall clean mvn clean package -DskipTests maven settting可以设置阿里云进行资源下载…

【漏洞复现】金和OA 未授权访问

【产品介绍】 金和OA协同办公管理系统C6软件&#xff08;简称金和OA&#xff09;&#xff0c;本着简单、适用、高效的原则&#xff0c;贴合企事业单位的实际需求&#xff0c;实行通用化、标准化、智能化、人性化的产品设计&#xff0c;充分体现企事业单位规范管理、提高办公效…

fiddler抓包工具

概念 概念&#xff1a; Fiddler是一个http协议调试代理工具&#xff0c;它能够记录并检查所有你的电脑和互联网之间的http通讯。 http&#xff1a;不加密&#xff0c;端口为80 https&#xff1a;加密&#xff0c;端口为443 原理&#xff1a; 其实就在访问服务器时&#xff0…

Python逻辑控制语句 之 判断语句--if语句的基本结构

1.程序执行的三大流程 顺序 分支&#xff08;判断&#xff09; 循环 2.if 语句的介绍 单独的 if 语句,就是 “如果 条件成⽴,做什么事” 3.if 语句的语法 if 判断条件: 判断条件成立&#xff0c;执行的代码…

reactor网络模型的原理与实现

一、rector网络模型 对高并发编程&#xff0c;网络连接上的消息处理&#xff0c;可以分为两个阶段&#xff1a;等待消息准备好、消息处理。当使用默认的阻塞套接字时&#xff0c;往往是把这两个阶段合而为一&#xff0c;这样操作套接字的代码所在的线程就得睡眠来等待消息准备好…