当前位置: 首页 > news >正文

计算机网络 笔记 网络层1

 网络层功能概述

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

主要的功能;

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。

相关文章:

计算机网络 笔记 网络层1

网络层功能概述 主要的任务是把分组从源端传输到目的端,为分组交换网上的不同主句提供通信服务,网络层的传输单位是数据报。 主要的功能; 1,路由选择:路由选择指网络层根据特定算法,为数据包从源节点到目…...

【论文笔记】多个大规模数据集上的SOTA绝对位姿回归方法:Reloc3r

abstract 视觉定位旨在确定查询图像相对于姿势图像数据库的相机姿势。 近年来,直接回归相机姿势的深度神经网络由于其快速推理能力而受到欢迎。 然而,现有方法很难很好地推广到新场景或提供准确的相机姿态估计。 为了解决这些问题,我们提出了…...

springMVC---常用注解

目录 一、创建项目 1.依赖 2.web.xml 3.spring-mvc.xml 二、RequestParam注解 1.作用 2.属性 3.代码 DeptController类 启动tomcat 三、RequestBody注解 1.作用 2.属性 3.代码 (1)DeptController类 (2)index.jsp (3)启动tomcat 四、P…...

青龙面板脚本开发指南:高效自动化任务的实现

青龙面板脚本开发指南:高效自动化任务的实现 青龙面板(Qinglong Panel)是一款强大的任务管理平台,支持多种语言的脚本开发和执行。通过在青龙面板中编写和管理脚本,用户可以轻松实现自动化任务,提高工作效…...

深入详解DICOM医学影像定位线相关知识:理解定位线的概念、定位线的作用以及定位线显示和计算原理

DICOM医学影像中的定位线(Localization Line) 在医学影像学中,DICOM是用于存储和交换医学影像的标准格式。定位线(Localization Line)在医学影像的显示和分析中起着重要作用,它帮助医生和医学专业人员在影像中精确地标定重要的解剖结构、区域或特征,辅助进行定位、治疗计…...

网络应用技术 实验七:实现无线局域网

一、实验简介 在 eNSP 中构建无线局域网,并实现全网移动终端互相通信。 二、实验目的 1 、理解无线局域网的工作原理; 2 、熟悉无线局域网的规划与构建过程; 3 、掌握无线局域网的配置方法; 三、实验学时 2 学时 四、实…...

kubeneters-循序渐进Cilium网络(一)

文章目录 概要传统网络不同的网络(或子网)之间通信Kubernetes 中的网络在同一栋大楼内的公寓之间通信跨大楼的通信总结 概要 本文通过“封包追踪”方法,深入解析 Kubernetes 网络通信过程。基于 eBPF 的 Cilium 工具,直观展示了数…...

elasticsearch中IK分词器

1、什么是IK分词器 ElasticSearch 几种常用分词器如下: 分词器分词方式StandardAnalyzer单字分词CJKAnalyzer二分法IKAnalyzer词库分词 分词∶即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库…...

Qt之http客户端类

一、HTTP客户端类功能: 1、POST请求发送: 支持发送JSON格式的数据自动处理请求头设置提供上传进度监控、 2、GET请求发送: 简单的GET请求实现支持下载进度监控 3、状态监控: 通过信号槽机制监控上传/下载进度错误处理和状态回调 /…...

18.C语言文件操作详解:指针、打开、读取与写入

目录 1.文件指针2.fopen3.标准流4.fclose5.EOF6.freopen()7.fgetc与getc8. fputc与putc9.fprintf10.fscanf11.fgets12.fputs13.fwrite14.fread15.feof16.fseek17.ftell18.rewind19.fgetpos()与fsetpos20.ferror与clearerr21.remove22.rename 1.文件指针 本篇原文为&#xff1a…...

深入浅出 OpenResty

1. 引言 1.1. OpenResty简介 OpenResty 是一个基于 Nginx 的高性能 Web 平台,它集成了大量模块,并原生支持 Lua 脚本。这使得开发者能够以非常灵活的方式实现复杂的逻辑,而无需重新编译或扩展 Nginx 核心。OpenResty 的主要特点包括&#x…...

在 .NET 9 中使用 Scalar 替代 Swagger

前言 在.NET 9发布以后ASP.NET Core官方团队发布公告已经将Swashbuckle.AspNetCore(一个为ASP.NET Core API提供Swagger工具的项目)从ASP.NET Core Web API模板中移除,这意味着以后我们创建Web API项目的时候不会再自动生成Swagger API文档了…...

ue5 蒙太奇,即上半身动画和下半身组合在一起,并使用。学习b站库得科技

本文核心 正常跑步动画端枪动画跑起来也端枪 正常跑步动画 端枪动画的上半身 跑起来也端枪 三步走: 第一步制作动画蒙太奇和插槽 第二步动画蓝图选择使用上半身动画还是全身动画,将上半身端枪和下半身走路结合 第三步使用动画蒙太奇 1.开始把&a…...

多活架构的实现原理与应用场景解析

一、多活架构为何如此重要? 企业的业务运营与各类线上服务紧密相连,从日常的购物消费、社交娱乐,到金融交易、在线教育等关键领域,无一不依赖于稳定可靠的信息系统。多活架构的重要性愈发凸显,它宛如一位忠诚的卫士,为业务的平稳运行保驾护航。 回想那些因系统故障引发的…...

一 rk3568 Android 11固件开发环境搭建 (docker)

一 目标 搭建 rk3568 android 系统内核 及固件开发编译调试环境, 支持开发环境导出分享 基于荣品 rk3568 核心板 系统环境: ubuntu22.04 /ubuntu20.04 64位桌面版 编译环境: docker + ubuntu20.04 , 独立的容器隔离环境,不受系统库版本冲突等影响,无性能损耗, 可…...

小结:华为路由器常用的操作指令

以下是华为路由器常用的操作指令&#xff08;适用于华为企业级路由器&#xff0c;基于VRP操作系统&#xff09;&#xff1a; 1. 基本操作命令 进入用户视图模式 <Huawei> &#xff08;默认进入用户视图&#xff09; 进入系统视图模式 <Huawei> system-view [Huawe…...

旅游网站设计与实现

文末附有完整项目代码 在当今数字化时代&#xff0c;旅游网站成为人们获取旅游信息的重要途径。本文将详细介绍旅游网站的设计与实现&#xff0c;让你轻松了解其中的技术奥秘&#xff01; 一、项目背景 随着社会经济的发展&#xff0c;人们对精神消费愈发重视&#xff0c;旅游…...

【AI大模型】BERT GPT ELMo模型的对比

目录 &#x1f354; BERT, GPT, ELMo之间的不同点 &#x1f354; BERT, GPT, ELMo各自的优点和缺点 &#x1f354; 小结 学习目标 理解BERT, GPT, ELMo相互间的不同点理解BERT, GPT, ELMo相互比较下的各自优点和缺点 &#x1f354; BERT, GPT, ELMo之间的不同点 关于特征提取…...

qt 快捷功能 快速生成 setter getter 构造函数 父类虚函数重写 成员函数实现 代码框架 查看父类及父类中的虚函数

qt 快速生成 setter getter 构造函数 父类虚函数重写 成员函数实现 代码框架 1、找到要实现的头文件 2、鼠标移动到在头文件中的类定义的类名上&#xff0c;右键进行选择。 这是插入父类虚函数(父类虚函数重写) 选项弹出来的结果。可以查看到所有父类及父类中的所有的虚函数...

【计算机网络】深入浅出计算机网络

第一章 计算机网络在信息时代的作用 计算机网络已由一种通信基础设施发展成一种重要的信息服务基础设施 CNNIC 中国互联网网络信息中心 因特网概述 网络、互联网和因特网 网络&#xff08;Network&#xff09;由若干结点&#xff08;Node&#xff09;和连接这些结点的链路…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...

腾讯云V3签名

想要接入腾讯云的Api&#xff0c;必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口&#xff0c;但总是卡在签名这一步&#xff0c;最后放弃选择SDK&#xff0c;这次终于自己代码实现。 可能腾讯云翻新了接口文档&#xff0c;现在阅读起来&#xff0c;清晰了很多&…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的&#xff0c;可以通过集中管理和高效资源的分配&#xff0c;来支持多个独立的网站同时运行&#xff0c;让每一个网站都可以分配到独立的IP地址&#xff0c;避免出现IP关联的风险&#xff0c;用户还可以通过控制面板进行管理功…...

Caliper 负载(Workload)详细解析

Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...