计算机网络 笔记 网络层1

news2025/1/15 20:29:56

 网络层功能概述

主要的任务是把分组从源端传输到目的端,为分组交换网上的不同主句提供通信服务,网络层的传输单位是数据报。

主要的功能;

1,路由选择:路由选择指网络层根据特定算法,为数据包从源节点到目的节点选择最佳传输路径。(控制平面:各种协议,用于控制和管理,长时,软件)

2,分组转发:传输层交付的报文通常较长,网络层会将其分割成较小的数据包(分组),并为每个数据包添加首部,包含源 IP 地址、目的 IP 地址等信息,以实现数据包独立传输与路由。(数据平面:对于数据处理过程中各种具体处理转发的过程,短时,硬件)

3,异构网络互联:不同网络(如以太网、令牌环网、无线局域网等)在传输介质、数据格式、传输速率等方面存在差异,网络层负责连接这些异构网络,实现不同网络间通信。

4,拥塞控制(开环控制,闭环控制):网络层实时监测网络流量与资源利用情况,判断是否发生拥塞。一旦检测到拥塞,网络层采取相应措施缓解,如:限制发送方发送速率;丢弃不重要数据包,为重要数据包腾出空间;调整路由,将部分流量引导到其他较空闲路径。

5,差错控制

网络层的两大平面 :

数据平面和逻辑平面

控制平面:

(传统、每路由器法):

路由选择算法会运行在每台路由器中,并且每个路由器都包含转发和路由选择两个功能

(SDN方法):

路控制平面和路由器分离,路由器仅仅实现转发,远程控制器通过计算和分发转发表来给路由器使用(这是一个可编程的一个软件)

SDN控制器可以去:1维护网络状态信息。2为网络控制应用程序提供信息

SDN的三个层次:

(1)北向API:和网络控制应用程序的接口,实现二者交互,让网络控制应用程序在状态管理层自检实现读写网络状态

(2)网络范围状态管理层:由SDN控制平面做出的最终控制决定,将要求控制器具有有关网络的主机,链路等状态信息(就是一个维护网络状态信息的层次)

(3)通信层:SDN控制器与受控网络设备之间的通信 (包括了南向API和通信协议)

网络控制应用程序:根据SDN控制器提供的方法,监控,编程,控制下面的网络设备(路由器)

数据平面:

完成转发,位于路由器中

路由算法:

静态路由算法(非自适应路由算法)管理员手动配置路由信息

优点:简便、可靠,在负荷稳定、拓扑变化不大的网络中运行效果很好,广泛用于高度安全性的军事网络和较小的商业网络。

缺点:路由更新慢,不适合大规模网络

动态路由算法(自适应路由算法):路由器之间相互交换信息,按照路由优化算法算出路由项表

优点:路由更新快,适用大型网络,及时响应链路费用或网络拓扑变化。

缺点:算法复杂,增加网络负担。

动态路由算法分为 OSPF(全局性路由算法,使用的链路状态。适合大规模网络)和 RIP(分散性路由算法,使用的距离向量,适合小规模网络)

自治系统AS:在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内的路由,同时还使用一种AS之间的路由协议以确定在AS之间的路由。(因为部分单位不想过多的暴露自身协议)

在一个AS内,所有的路由器都必须联通

所以根据这个可以分为内部网关协议(IGP):RIP,OSPF 和 外部网关协议 (BGP)

RIP协议:

一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大优点是简单。

RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组距离)

距离:通常为“跳数”,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1。特别的,从一路由器到直接连接的网络距离为1。RIP允许一条路由最多只能包含15个路由器,因此距离为16表示网络不可达

RIP协议规定

路由器之和相邻的路由器交换信息

交换的信息只回交换自己的路由表(包括距离和下一跳的信息)

每30s回交换一次路由信息,当3分钟没有说到邻居路由器的通告,就会默认邻居没了,从途中删除掉邻居后重新更新路由信息

当各个节点更新完成后的状态叫做 :收敛

算法过程

1.修改相邻路由器发来的RIP报文中所有表项对地址为X的相邻路由器发来的RIP报文,修改此报文中的所有项目:把“下一跳”字段中的地址改为X,并把所有的“距离”字段+1。

2.对修改后的RIP报文中的每一个项目,进行以下步骤:

(1)R1路由表中若没有Net3,则把该项目填入R1路由表

(2)R1路由表中若有Net3,则查看下一跳路由器地址:

若下一跳是X,则用收到的项目替换源路由表中的项目

若下一跳不是X,原来距离比从X走的距离远则更新,否则不作处理。

3.若180s还没收到相邻路由器X的更新路由表,则把X记为不可达的路由器,即把距离设置为16。

4,返回

RIP报文:

首部部分:

命令字段:占 1 字节,用于指示报文的类型。常见取值有 1 和 2 ,1 表示请求报文,用于向相邻路由器请求其路由表信息;2 表示响应报文,用于向请求方或其他路由器发送路由信息。

版本字段:占 1 字节,标识 RIP 协议的版本,目前常用版本为 RIP v2,相比 RIP v1,它支持更多的功能,如子网掩码、认证等。

必须为 0 字段:占 2 字节,该字段在 RIP 报文中必须设置为 0,保留未用。

路由部分:

地址族标识符):占 2 字节,用于标识网络地址的类型,常见值为 2,表示 IP 地址。如果是 0xFFFF,则表示该路由条目用于宣告默认路由。

路由标记:占 2 字节,在 RIP v2 中可用于区分不同来源的路由,比如在引入外部路由时可设置特定的标记。

IP 地址:占 4 字节,指明该路由条目所对应的目的网络的 IP 地址。

子网掩码:占 4 字节,用于指定目的网络的子网掩码,在 RIP v1 中,该字段通常被忽略,因为 RIP v1 不支持可变长子网掩码。

下一跳:占 4 字节,指出去往目的网络的下一跳路由器的 IP 地址。如果该字段为 0.0.0.0,则表示下一跳就是发送该 RIP 报文的路由器。

度量值:占 4 字节,用于表示到达目的网络的距离,RIP 使用跳数作为度量值,取值范围为 1 到 15,16 表示目的网络不可达。

一个报文最多出线25个,RIP报文会塞入到UDP报文的用户数据部分

慢收敛:因为故障导致的路由器自己找不到自己的情况

OSPF协议:

结合SPF算法计的一个协议

基本原理

1.链路状态的感知与通告:OSPF 路由器会收集其周围网络的链路状态信息,包括与哪些路由器相连、链路的带宽、延迟等特性。每台路由器将这些信息封装成链路状态通告LSA,并向自治系统内的其他所有路由器进行泛洪。(广播)

2.构建链路状态数据库(LSDB):每台路由器接收来自其他路由器的 LSA 后,会将其存储在本地的链路状态数据库中。这个数据库实际上是对整个自治系统网络拓扑的完整映射。所有路由器的 LSDB 在稳定状态下应该是一致的.

3.最短路径计算:路由器基于 LSDB,使用 Dijkstra 算法来计算到达每个目的网络的最短路径。以自身为根节点,计算到其他所有节点的最短路径,从而构建出路由表。比如,在一个复杂的网络拓扑中,路由器通过 Dijkstra 算法找到前往各个子网的最优路径,并将这些路径信息添加到路由表中。

只有当链路发生变化后,才会交换信息

算法过程:

1,知道有哪些邻居(发现邻居节点,[HELLO]问候分组,其网络地址)

2,设置和邻居之间的距离

3,构造[DD数据库描述分组],向邻居发送自己的链路状态项目的信息

4  如果无需更新,就不做处理;如果需要更新or自己没有这些节点信息,就会发送[LSR链路状态请求分组],请求更新

5,收到[LSR链路状态请求分组],会发送对应的[LSU链路状态更新分组]

6,更新完毕就要返回确认信息[LSAck链路状态确认分组]

7,Dji更新自己这个节点到其他节点的最短路

当一个路由器的链路状态发生变化,就会

1,泛洪发送[LSU链路状态更新分组]让邻居进行更新

2,其他的节点返回[LSAck链路状态确认分组]

3,Dji更新

OSPF的区域:虽然是自治系统,但是OSPF会对自己这个区域进行划分,一个区域中最多200个

区域分为主干区域(0.0.0.0)和其他区域

路由器的划分:

1.主干路由器,在主干区域的路由器

2.区域边界路由器

(主干路由器和其他区域连接的既是主干路由器,也是区域边界路由器)

3,区域内部路由器

4,自治系统边界路由器,和其他自治系统连接的路由器

OSPF的分组时靠IP数据报发送的

其他特点:

1.每隔30min,要刷新一次数据库中的链路状态。

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

3.OSPF不存在坏消息传的慢的问题,它的收敛速度很快

BGP协议:

1.和其他的AS邻站发言人交换信息

2.交换的信息是网络可达性的信息:

BGP所交换的网络可达性的信息就是要到达某个网络所要经过的一系列AS。当 BGP 发言人互相交换了网络可达性的信息后,各 BGP发言人就根据所采用的策略从收到的路由信息中找出到达各 AS 的较好路由。(也就是交换的路径向量)

3.网络发生变化的时候交换信息

一个BGP发言人要与其他自治系统交换信息的时候要先建立TCP连接.通过TCP传送,在TCP连接上交换BGP报文来建立一个BGP会话,利用BGP会话交换信息

BGP特点
1,BGP 支持 CIDR,因此 BGP的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。

2,在 BGP刚刚运行时,BGP的邻站是交换整个的 BGP路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销都有好处。

BGP -4的四种报文

1.OPEN(打开)报文:用来与相邻的另一个BGP发言人建立关系,并认证发送方。

2.UPDATE(更新)报文:通告新路径或撤销原路径。

3.KEEPALIVE(保活)报文:在无UPDATE时,周期性证实邻站的连通性;也作为OPEN的确认。

4.NOTIFICATION(通知)报文:报告先前报文的差错:也被用于关闭连接。

三种协议的总结:

RIP是一种分布式的基于距离向量的内部网关路由选择协议,通过广播UDP报文来交换路由信息。

OSPF是一个内部网关协议,要交换的信息量较大,应使报文的长度尽量短,所以不使用传输层协议(如UDP或TCP),而是直接采用IP.

BGP是一个外部网关协议,在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输,所以采用TCP。

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

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

相关文章

MyBatis-什么是MyBatis?以及MyBatis的快速入门。

简介 什么是 MyBatis? 什么是MyBatis? MyBatis是一款优秀的 持久层 框架,用于简化JDBC的开发。(框架:是一个半成品软件,是一套可重用的、通用的、软件基础代码模型。在框架的基础上进行软件开发更加高效、规范、通用、…

Linux Kernel 之十 详解 PREEMPT_RT、Xenomai 的架构、源码、构建及使用

概述 现在的 RTOS 基本可以分为 Linux 阵营和非 Linux 阵营这两大阵营。非 Linux 阵营的各大 RTOS 都是独立发展,使用上也相对独立;而 Linux 阵营则有多种不同的实现方法来改造 Linux 以实现实时性要求。本文我们重点关注 Linux 阵营的实时内核实现方法! 本文我们重点关注 …

Swift 趣味开发:查找拼音首字母全部相同的 4 字成语(上)

概述 Swift 语言是一门现代化、安全、强大且还算性感的语言。在去年 WWDC 24 中苹果正式推出了秃头码农们期待许久的 Swift 6.0,它进一步完善了 Swift 语言的语法和语义,并再接再厉——强化了现代化并发模型的安全性和灵活性。 这里我们不妨用 Swift 来…

docker一张图理解

1、push 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库。参数说明: –disable-content-trust : 忽略镜像的校验,默认开启 # 上传本地镜像myapache:v1到镜像仓库中。 docker push myapache:v1 1.2、search 从Docker Hub查找镜像。参数说明: –…

IoTDB 常见问题 QA 第三期

关于 IoTDB 的 Q & A IoTDB Q&A 第三期持续更新!我们将定期汇总我们将定期汇总社区讨论频繁的问题,并展开进行详细回答,通过积累常见问题“小百科”,方便大家使用 IoTDB。 Q1:查询最新值 & null 数据相加方…

MyBatis实现数据库的CRUD

本文主要讲解使用MyBatis框架快速实现数据库中最常用的操作——CRUD。本文讲解的SQL语句都是MyBatis基于注解的方式定义的,相对简单。 Mybatis中#占位符和$拼接符的区别 “#”占位符 在使用MyBatis操作数据库的时候,可以直接使用如下SQL语句删除一条数…

Spring Boot 下的Swagger 3.0 与 Swagger 2.0 的详细对比

先说结论: Swgger 3.0 与Swagger 2.0 区别很大,Swagger3.0用了最新的注释实现更强大的功能,同时使得代码更优雅。 就个人而言,如果新项目推荐使用Swgger 3.0,对于工具而言新的一定比旧的好;对接于旧项目原…

关于2025年智能化招聘管理系统平台发展趋势

2025年,招聘管理领域正站在变革的十字路口,全新的技术浪潮与不断变化的职场生态相互碰撞,促使招聘管理系统成为重塑企业人才战略的关键力量。智能化招聘管理系统平台在这一背景下迅速崛起,其发展趋势不仅影响企业的招聘效率与质量…

go语言的sdk 适合用go原生还是gozero框架开发的判断与总结

在决定是否使用 Go 原生(纯 Go)开发,还是使用 GoZero 框架开发时,主要取决于项目的需求、规模和开发的复杂性。GoZero 框架提供了一些额外的功能,如微服务架构、RPC 支持、API 网关、任务调度等,这些是基于…

Elasticsearch 批量导入数据(_bluk方法)

官方API&#xff1a;https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html 建议先看API POST /<索引名>/_bulk 格式要求&#xff1a; POST _bulk { "index" : { "_index" : "test", "_id" : &q…

Mysql--重点篇--索引(索引分类,Hash和B-tree索引,聚簇和非聚簇索引,回表查询,覆盖索引,索引工作原理,索引失效,索引创建原则等)

索引是数据库中用于加速查询操作的重要机制。通过索引&#xff0c;MySQL可以快速定位到满足查询条件的数据行&#xff0c;而不需要扫描整个表。合理的索引设计可以显著提高查询性能&#xff0c;但不合理的索引可能会导致性能下降和磁盘空间浪费。因此&#xff0c;理解索引的工作…

mybatis-spring @MapperScan走读分析

接上一篇文章&#xff1a;https://blog.csdn.net/qq_26437925/article/details/145100531&#xff0c; 本文注解分析mybatis-spring中的MapperScan注解&#xff0c;则将容易许多。 目录 MapperScan注解定义ConfigurationClassPostProcessor扫描注册beanDefinitionorg.mybatis.s…

【STM32】HAL库USB实现软件升级DFU的功能操作及配置

【STM32】HAL库USB实现软件升级DFU的功能操作及配置 文章目录 DFUHAL库的DFU配置修改代码添加条件判断和跳转代码段DFU烧录附录&#xff1a;Cortex-M架构的SysTick系统定时器精准延时和MCU位带操作SysTick系统定时器精准延时延时函数阻塞延时非阻塞延时 位带操作位带代码位带宏…

计算机视觉算法实战——实时车辆检测和分类(主页有相关源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​​​​​​​​​​​​​​​​​​ 1. 领域介绍✨✨ 实时车辆检测和分类是计算机视觉中的一个重要应用领域&#xff0c;旨在从视频流或…

机器学习(1):线性回归概念

1 线性回归基础 1.1 什么是线性 例如&#xff1a;汽车每小时60KM&#xff0c;3小时可以行使多长距离&#xff1f;已知汽车的速度&#xff0c;则汽车的行使距离只与时间唯一相关。在二元的直角坐标系中&#xff0c;描出这一关系的图是一条直线&#xff0c;所以称为线性关系。 线…

ThinkPHP 8的一对一关联

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 编程与应用开…

探索图像编辑的无限可能——Adobe Photoshop全解析

文章目录 前言一、PS的历史二、PS的应用场景三、PS的功能及工具用法四、图层的概念五、调整与滤镜六、创建蒙版七、绘制形状与路径八、实战练习结语 前言 在当今数字化的世界里&#xff0c;视觉内容无处不在&#xff0c;而创建和编辑这些内容的能力已经成为许多行业的核心技能…

LabVIEW开发X光图像的边缘检测

在医疗影像处理中&#xff0c;X光图像的分析对于骨折、肿瘤等病变的检测非常重要。X光图像中包含许多关键信息&#xff0c;然而&#xff0c;由于图像噪声的干扰&#xff0c;直接从图像中提取有用的特征&#xff08;如骨折的边缘&#xff09;变得非常困难。边缘检测作为图像处理…

SOLID原则学习,接口隔离原则(Interface Segregation Principle, ISP)

文章目录 1. 定义2. 为什么要遵循接口隔离原则&#xff1f;3. 违反接口隔离原则的例子4. 遵循接口隔离原则的改进5. 总结 1. 定义 接口隔离原则&#xff08;Interface Segregation Principle, ISP&#xff09; 接口隔离原则是面向对象设计中的五大原则&#xff08;SOLID&#…

浅谈云计算12 | KVM虚拟化技术

KVM虚拟化技术 一、KVM虚拟化技术基础1.1 KVM虚拟化技术简介1.2 KVM虚拟化技术架构1.2.1 KVM内核模块1.2.2 用户空间工具&#xff08;QEMU、Libvirt等&#xff09; 二、KVM虚拟化技术原理2.1 硬件辅助虚拟化2.2 VMCS结构与工作机制 三、KVM虚拟化技术面临的挑战与应对策略3.1 性…