网络层总结

news2025/1/15 13:48:42

网络层任务: 分组        从源主机        经多个网络/多段链路        传输到目的主机
两种重要的功能: 分组转发 路由选择
网络层向其上层提供的两种服务 —— 面向连接的虚电路服务、无连接的数据报服务
面向连接的虚电路服务: 可靠通信应由网络自身来保证         广域分组交换网
首先建立网络层连接(虚电路)        逻辑连接,分组沿虚电路按 存储转发方式传送
分组首部携带:①连接建立阶段        完整目的主机地址 ②之后        一条虚电路编号
释放虚电路连接
-
虚电路服务+可靠传输的网络协议        分组无差错按序传输        应用: 广域分组交换网
注意:电话        电路交换        物理连接 
-
无连接的数据报服务: 可靠通信应由用户主机来保证
分组的首部都必须携带目的主机的完整地址
分组可能误码、丢失、重复和失序        尽最大努力交付(不可靠)

网际协议 IP
IPv4地址         每一个主机、路由器 的每一个接口 分配          唯一的 32 比特的标识符

A B C 地址都是 单播地址 ,只有单播地址可以 分配给网络中的主机(或路由器)的各接口
主机号为“全 0 的地址是 网络地址 不能分配 给主机(或路由器)的各接口。
主机号为“全 1 的地址是 广播地址 不能分配 给主机(或路由器)的各接口。
-
A类:
最小网络号为 0 ,表示本网络,不能指派
最小可指派的网络号为 1 ,网络地址为 1 . 0 . 0 . 0
最大可指派的网络号为 126 ,网络地址为 126 . 0 . 0 . 0
最大网络号为 127 ,作为本地环回测试地址,不能指派 127.0.0.1~127.255.255.254
-
B类:
最小可指派的网络号为 128 . 0         网络地址为 128 . 0 . 0 . 0
最大可指派的网络号为 191 . 255     网络地址为 191 . 255 . 0 . 0
-
C类:
最小可指派的网络号为 192 . 0 . 0                 网络地址为 192 . 0 . 0 . 0
最大可指派的网络号为 223 . 255 . 255         网络地址为 223 . 255 . 255 . 0
-

无分类编址

无分类域间路由选择 CIDR
CIDR 地址块: 将网络前缀都相同的、连续的多个无分类IPv4 地址

地址解析协议ARP 

IP地址映射为MAC地址

ARP请求报文(广播) 目的MAC地址为FF-FF-FF-FF-FF-FF
ARP响应报文(单播) 目的MAC地址为发送请求报文的主机MAC地址

只能在局域网内使用arp,不能跨网使用

-

其他类型报文:无故ARP        检查IP地址冲突

IP数据报转发

路由器不转发广播IP数据报(路由器隔离广播域)

IPV4数据报首部格式

  • 版本        4bit
IP 协议的版本
通信双方使用的 IP 协议的版本必须一致。目前广泛使用的 IP 协议的版本号为 4 (即 IPv4
  • 首部长度        4bit        以4B为单位
IPv4 数据报的首部长度
最小取值 0101( 5), 再乘以 4B 单位, 表示 IPv4 数据报首部只有 20 字节固定部分
最大取值 1111( 15) ,再乘以 4B 单位, 表示 IPv4 数据报首部包含 20 字节固定部分和最大
40 字节可变部分
  • 填充
用来确保 IPv4 数据报的首部长度是 4 字节的整数倍 ,使用全 0 进行填充
  • 区分服务        8bit
提供不同等级的服务质量
  • 总长度        16bit        以1B为单位
表示 IPv4 数据报的长度(首部长度 + 数据载荷长度)

-

  • 标识        16bit
同一个 IPv4 数据报的 各分片数据报        有相同的标识
产生一个 IPv4 数据报,计数器值 1 ,值赋给标识字段
  • 标志        3bit

最高位

中间位(DF don't fragment)         1 不允许分片,0 允许分片

最低位(MF more fragment)        1本分片后还有分片,0 后没有分片

  • 片偏移        13bit        以8B为单位
分片 IPv4 数据报的 数据载荷偏移其在 IPv4 数据报的位置有多远

-

  • 生存时间(TTL time to live)         8bit        

最大取值(1111 1111)(255)  

以“ 跳数 ”为单位, 路由器收到待转发的 IPv4 数据报时,将其首部中的该字段的值减 1
若结果不为 0 就转发,否则就丢弃
防止被错误路由的 IPv4 数据报无限制地在因特网中兜圈
  • 协议        8bit 
指明 数据载荷是何种协议数据单元 PDU

  • 首部检验和        16bit

检测首部是否出现差错

IPv4 数据报每经过一个路由器,其首部中的某些字段的值(例如生存时间 TTL 、标志以及片偏移等)都可能发 生变化,因此 路由器都要重新计算一下首部检验和

二进制反码求和运算

由于网际层并不向其高层提供可靠传输的服务,并且计算首部检验和是一项耗时的操作,因此在IPv6中,路由器不再计算首部检验和,从而更快转发IP数据报

-

-

静态路由配置

默认路由

特定主机路由

-

-

路由选择分类

因特网采用分层次的路由选择协议

-

-

路由信息协议 RIP

距离向量:跳数

RIP 将路由器 到直连网络 距离定义为 1
RIP 将路由器 到非直连网络 距离定义为所经过的路由器数加 1
RIP 允许一条路径最多只能包含 15 个路由器, 距离等于 16 时相当于不可达 。因此 RIP 只适用于小型互联网
到达同一目的网络有多条 RIP 距离相等的路由时,可以进行 等价负载均衡

RIP 的基本工作过程
路由器刚开始工作时, 只知道自己到直连网络的 RIP 距离为 1
每个路由器 仅和相邻路由器周期性地交换并更新路由信息
若干次交换和更新后, 每个路由器都知道到达本自治系统 AS 内各网络的最短距离和下一跳路由器 称为 收敛
-
时间参数
路由器每隔 大约 30 向其所有相邻路由器发送路由更新报文。
180 (默认)没有收到某条路由条目的更新报文,则把该路由条目标记为无效(即把 RIP 距离设 置为 16 ,表示不可达),若再过一段时间(如 120 秒),还没有收到该路由条目的更新报文,则将该 路由条目从路由表中删除

-

RIP 存在的问题 —— “坏消息传播得慢”
“坏消息传播得慢”(路由环路、 RIP 距离无穷计数问题)

RIP优点:

如果一个路由器发现了 RIP 距离更短的路 由,那么这种更新信息就传播得很快,即 好消息传播得快”

-

RIP2
RIP1 相比, RIP2 支持 变长子网掩码和 CIDR
RIP2 还提供 简单的鉴别 过程并支持 多播
RIP 相关报文使用运输层的用户数据报协议 UDP进行封装 ,使用的 UDP 端口号为 520
RIP 报文封装 的角度看, RIP 属于 TCP/IP 体系结构的 应用层
RIP 的核心功能是 路由选择 ,这属于 TCP/IP 体系结构的 网际层

-

-

开放最短路径优先( OSPF )协议        为了 克服路由信息协议 RIP 的缺点
使用了 Dijkstra 提出的 最短路径算法 计算路由,从算法上保证了 不会产生路由环路
采用 分布式的链路状态协议
基于 链路状态
不限制网络规模 更新效率高 收敛速度快
链路状态( L ink S tate LS )是指本路由器都和 哪些路由器相邻 ,以及 相应链路的“代价( cost )” 代价 ”用来表示费用、距离、时延和带宽等
计算代价:100Mb/s除以链路带宽( 计算结果小于1的值仍记为1,大于1且有小数的,舍去小数
-
OSPF相邻路由        交换 问候(Hello)分组        建立 邻居关系
问候分组        封装在IP数据报(协议号取值 89)中,发往组播地址224.0.0.5        发送周期10s
40s未收到问候分组则认为不可达        每个路由器建立一张 邻居表
-
链路状态通告(LSA):包括  直连网络 的链路状态信息、 邻居路由器 的链路状态信息
LSA被封装在 链路状态更新(LSU)分组中,采用 可靠的洪泛法发送
洪泛法:   向所有邻居路由器发送链路状态更新分组, 邻居路由器收到后转发给其所有邻居
可靠: 收到LSU后要发送确认, 收到重复的更新分组无需转发 ,但要发回确认
-
链路状态数据库(LSDB)        存储链路状态通告LSA
最终各路由器LSDB将达到一致
-
OSPF 5种分组类型
选举 指定路由器(DR)、备用的指定路由器(BDR)
目的: 减少洪泛发送         问候分组、链路状态更新分组         的数量
-
OSPF划分区域
为了使 OSPF 协议能够 用于规模很大的网络 OSPF 把一个自治系统 AS 再划分为若干个更小的范围 ,称为
自治系统边界路由器( AS B order R outer ASBR ):和其他自治系统交换路由信息
主干路由器( B ack b one R outer BBR ):
区域内路由器( I nternal R outer IR ):
区域边界路由器( A rea B order R outer ABR ):
-

-

边界网关协议( B order G ateway P rotocol BGP
每个AS选一个路由器作为        BGP发言人
两个BGP发言人        一个共享网络连接        是 BGP边界路由器        互为邻站、对等站
BGP发言人的协议:外(BGP)+内(RIP/OSPF)
交换的信息:到目的网络要经过的AS
根据各自策略,找到较好的路径向量, 构造出树形结构且 不存在环路的自治系统连通图
适用于多级结构的因特网
BGP-4的四种报文:
-

-

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

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

相关文章

python学习笔记15 python中的类

上一篇我们介绍了python中的库 ,学习了一些常见的内置库。详细内容可点击–>python学习笔记14 python中的库,常见的内置库(random、hashlib、json、时间、os) 这一篇我们来看一下python中的类 创建一个类 class 类的名称():de…

MySQL数据集成到广东省追溯平台的销售信息同步方案

销售信息同步--外购上报流程2:MySQL数据集成到广东省特殊食品电子追溯平台 在现代数据驱动的业务环境中,确保销售信息的准确性和及时性至关重要。本文将分享一个具体的技术案例,展示如何通过轻易云数据集成平台,将MySQL中的销售信…

【推荐算法】推荐系统的评估

这篇文章是笔者阅读《深度学习推荐系统》第五章推荐系统的评估的学习笔记,在原文的基础上增加了自己的理解以及内容的补充,在未来的日子里会不断完善这篇文章的相关工作。 文章目录 离线评估划分数据集方法客观评价指标P-R曲线ROC/AUCmAPNDCG A/B 测试分…

移植NIOS10.1工程,NIOS10.1路径修改

移植NIOS10.1工程,NIOS10.1路径修改 因工程的需要,使用的NIOS10.1,比较老,这个版本的路径是使用的绝对路径,导致移植工程市回报路径的错误,在13.1之后改为了相对路径,不存在这个问题。 需要修…

WPF+LibVLC开发播放器-LibVLC播放控制

接上一篇&#xff1a; LibVLC在C#中的使用 实现LibVLC播放器播放控制 界面 界面上添加一个Button按钮用于控制播放 <ButtonGrid.Row"1"Width"88"Height"24"Margin"10,0,0,0"HorizontalAlignment"Left"VerticalAlignme…

iOS与Windows间传文件

想用数据线从 windows 手提电脑传文件入 iPhone&#xff0c;有点迂回。 参考 [1]&#xff0c;要在 windows 装 Apple Devices。装完、打开、插线之后会检测到手机&#xff0c;界面&#xff1a; 点左侧栏「文件」&#xff0c;不是就直接可以传&#xff0c;而是要通过某个应用传…

两个畸变矩阵相乘后还是一个2*2的矩阵,有四个畸变元素。1、畸变矩阵吸收了法拉第矩阵。2、畸变矩阵也给法拉第旋转角带来模糊(求解有多种可能)

角度一&#xff1b;恢复畸变的时候也把法拉第旋转恢复了 角度二&#xff1a;求解法拉第旋转角的时候 前面乘的复系数的不同也会带来法拉第旋转角和畸变的不同解 注意&#xff1a;无论多少个畸变矩阵相乘&#xff0c;结果都是2*2的矩阵&#xff0c;也就是畸变参数可以减少…

【Linux】基础IO_文件系统IO_“一切皆文件”_缓冲区

目录 1. 理解"⽂件" 1-1 狭义理解 1-2 ⼴义理解 1-3 ⽂件操作的归类认知 1-4 系统⻆度 访问文件&#xff0c;需要先打开文件&#xff01;那么是由谁打开文件&#xff1f;&#xff1f;&#xff1f; 操作系统要不要把被打开的文件管理起来&#xff1f; 2. 回顾…

【LeetCode】498.对角线遍历

无论何时何地&#xff0c;我都认为对于一道编程题&#xff0c;思考解法的时间用于是实际动手解决问题的2倍&#xff01;如果敲键盘编码需要5min&#xff0c;那么思考解法的过程至少就需要10分钟。 1. 题目 2. 思想 其实这就是一道模拟题&#xff0c;难度中等。做这种题的关键就…

Jupyter Lab打印日志

有时候在 jupyter 中执行运行时间较长的程序&#xff0c;且需要一直信息&#xff0c;但是程序执行到某些时候就不再打印了。 可以开启 日志控制台&#xff0c;将日志信息记录在控制台中。 参考&#xff1a;https://www.autodl.com/docs/jupyterlab/

Hbase整合Mapreduce案例1 hdfs数据上传至hbase中——wordcount

目录 整合结构准备java API 编写pom.xmlMain.javaMap.javaReduce 运行 整合结构 准备 上传hdfs data.txt数据 data.txt I am wunaiieq QAQ 123456 Who I am In todays interconnected world the role of technology cannot be overstated It has revolutionized the way we …

temu登录接口逆向分析(含Py纯算)

文章目录 1. 写在前面2. 接口分析3. 算法还原 【&#x1f3e0;作者主页】&#xff1a;吴秋霖 【&#x1f4bc;作者介绍】&#xff1a;擅长爬虫与JS加密逆向分析&#xff01;Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Python…

python中什么叫做脚本

Python一种面向对象的动态类型语言&#xff0c;是一种脚本语言&#xff0c;常用于各种服务器的维护和自动化运行。它具有丰富和强大的库。它常被称为胶水语言&#xff0c;因为它能够把用其他语言制作的各种模块很轻松地联结在一起。 以.py 结尾的文件就是Python脚本&#xff0…

全面解析 Transformer:改变深度学习格局的神经网络架构

目录 一、什么是 Transformer&#xff1f; 二、Transformer 的结构解析 1. 编码器&#xff08;Encoder&#xff09; 2. 解码器&#xff08;Decoder&#xff09; 3. Transformer 模型结构图 三、核心技术&#xff1a;注意力机制与多头注意力 1. 注意力机制 2. 多头注意力&…

虚幻引擎---材质篇

一、基础知识 虚幻引擎中的材质&#xff08;Materials&#xff09; 定义了场景中对象的表面属性&#xff0c;包括颜色、金属度、粗糙度、透明度等等&#xff1b;可以在材质编辑器中可视化地创建和编辑材质&#xff1b;虚幻引擎的渲染管线的着色器是用高级着色语言&#xff08;…

基于Matlab计算机视觉的车道线识别与前车检测系统研究

随着自动驾驶技术的发展&#xff0c;车道线识别和前车检测成为智能驾驶系统中的核心技术之一。本实训报告围绕基于计算机视觉的车道线识别与前车检测系统展开&#xff0c;旨在通过处理交通视频数据&#xff0c;实时检测车辆所在车道及其与前车的相对位置&#xff0c;从而为车道…

vue.js学习(day 19)

自定义创建项目 ESlint 代码规范 代码规范错误 手动修正 自动修正 settings.json {"emmet.triggerExpansionOnTab": true,"editor.fontSize": 25,// 当保存的时候&#xff0c;eslint自动帮我们修复错误"editor.codeActionsOnSave": {&qu…

物联网——WatchDog(监听器)

看门狗简介 独立看门狗框图 看门狗原理&#xff1a;定时器溢出&#xff0c;产生系统复位信号&#xff1b;若定时‘喂狗’则不产生系统复位信号 定时中断基本结构&#xff08;对比&#xff09; IWDG键寄存器 独立看门狗超时时间 WWDG(窗口看门狗) WWDG特性 WWDG超时时间 由于…

医疗挂号|基于springBoot的医疗挂号管理设计与实现(附项目源码+论文+数据库)

目录 一、摘要 二、相关技术 三、系统设计 四、数据库设计 五、核心代码 六、论文参考 七、源码获取 一、摘要 在如今社会上&#xff0c;关于信息上面的处理&#xff0c;没有任何一个企业或者个人会忽视&#xff0c;如何让信息急速传递&#xff0c;并且归档储存…

lobeChat安装

一、安装Node.js version > v18.17.0 二、下载 cd F:\AITOOLS\LobeChat git clone https://github.com/lobehub/lobe-chat.git &#xff08;下载要是失败就手动下&#xff1a;https://codeload.github.com/lobehub/lobe-chat/zip/refs/heads/main&#xff09; npm install …