第4章 网络层

4.1网络层的功能

  • 1.异网互联:使用路由器连接数据链路层物理层均不同的网络。【路由器连接的设备物理层,数据链路层和网络层可以不同】

  • 2.转发:从一个端口输入保存后选择另一个端口转发【微观】

  • 3.路由选择:选择合适的路由线路【宏观】

  • 4.SDN的基本概念:

    • 数据平面:
      • 时间短,用硬件实现
      • 路由器内部实现
      • 具体处理转发过程
    • 控制平面
      • 控制和管理网络协议的运行
      • 时间长,用软件实现
      • OSPF,RIP,BGP协议路由选择过程
传统方式SDN方式
路由选择转发都在路由器路由选择在SDN控制器中,转发路由器

SDN优点:①控制更灵活②成本更低
SDN的问题:①安全风险②瓶颈问题

  • 5.拥塞控制:
    • 原因:接收方来不及接收,只能丢弃
    • 判断依据:网络负载增加吞吐量却下将。
    • 方法:
      • 1.开环控制【静态】
      • 2.闭环控制【动态】

4.2 IPv4

4.2.1 IPv4分组

IP数据报过长需要切割成多个分组

1.IPv4分组格式

版本首部长度 (Header Length)区分服务 (Differentiated Services)总长度 (Total Length)
4位,判断是IPv4还是IPv64位,单位是4字节8位,决定路由器发送的优先级16位,单位是1B
标识 (Identification)标志 (Flags)片偏移 (Fragment Offset)
16位,表明来自哪个原始分组3位,第一位无效,第二位为0表示允许分片,第三位为1表示后面还有分组13位,单位是8B
生存时间 (Time to Live)协议 (Protocol)头部校验和 (Header Checksum)
8位,每经过一个路由器减一,为0时丢弃,并返回ICMP8位,表明传输层协议,6代表TCP,17代表UDP16位,只校验首部是否正确
源 IP 地址 (Source IP Address)
32 bits
目标 IP 地址 (Destination IP Address)
32 bits
选项 (Options)填充(Fill)
可变长度,支持数据部分排错可变长度 ,用于填充首部为8字节的整数倍
数据部分
TCP或UDP

单位记忆:一种【总长单位】八片【片偏移量单位】的首饰【首部长度单位】

2. IP数据报分片

如果IP分组过长,且标志位的第二位为0(代表不允许分片)路由器会丢弃分组,并返回ICMP差错报告。
标识代表来自原来的哪一个IP分组。
标志: 第一位无效,第二位【DF】为0标识允许分片,第三位【MF】为1标识后面还有分组


4.3.2 IPv4地址与NAT

1.IPv4地址:
在这里插入图片描述
主机号全为0::网络本身
主机号全为1::广播地址

网络号主机号是否可作为源地址是否可作为目标地址目的
全0全0可以不可以在本网络中代表主机,路由器使用代表默认路由
全0特定值可以不可以本网络的目的主机
全1全1不可以可以本网络广播
特定值全0不可以不可以本网络的网络地址
特定值全1不可以可以特定网络进行广播
127非0非1的有效范围可以可以用于本地测试

私有地址:

  • A类:10.0.0.0 ~ 10.255.255.255
  • B类:172.16.0.0~172.31.0.0
  • C类:192.168.0.0~192.168.255.0

2.网络地址转换NAT
不使用NAT技术,IP分组头部源地址不变。
使用NAT技术,路由器在转发前会将源主机的IP转换成路由器的IP。
路由器无法处理私有IP地址。

  • 使用NAT技术:
    • 发送数据:路由器将源主机IP地址修改为路由器IP地址
    • 接收数据:路由器根据目的地址的端口号修改目的地址IP【局域网内部IP】端口号若没有匹配的表项,直接丢弃。

4.3.3 子网划分与子网掩码,CIDR

1.子网划分

主机号取部分作为子网号,构成三级IP地址
主机号不能全0全1
使用CIDR技术子网号可以全1
外部网络不知道内部子网划分

划分子网后路由器的表项由【目的网络地址,网络子网掩码,下一跳地址】
划分子网:网络地址由
聚合子网:网络地址由

2.子网掩码
子网掩码与IP地址相与获取主机的网络地址。

3.无分类编址CIDR
消除传统A,B,C,D,E类网络划分,在IP地址后面的数字表明使用多少个IP二进制值作为网络地址。

网络前缀相同的是同一CIDR地址快

在路由转发表项匹配都不符合,使用0.0.0.0默认路由,交付给其他路由器处理。

4.网络层转发分组过程
1.提取IP地址
2.使用子网掩码IP地址相与然后和路由器连接的网络的网络号做对比
3.有相同就直接发送,都不符合检查特定地址
4.检测到无路径就对比路由表。有就发送
5.如果没有就使用0.0.0.0默认路由发给其他路由器重复上述操作
6.在IP的生存周期内没有找到目的主机,丢弃IP分组并发出CIMP差错报文


4.3.4 ARP,DHCP,ICMP

每个主机和路由器都有ARP高速缓存

  • 地址解析协议ARP
    • 请求使用广播ARP根据IP地址请求获取对应的MAC地址
    • 响应使用单播发送发送自己的MAC地址
    • ARP协议格式
自己的IP地址需查询的IP地址自己的MAC地址FF-FF-FF-FF-FF-FF(广播MAC地址)
  • 发送IP分组:

    • 1.ARP高速缓存有就直接写入目的MAC地址
    • 2.没有就用FF-FF-FF-FF-FF-FF广播ARP请求
    • 3.局域网内所有主机都能收到
    • 4.然后单播响应ARP请求,写入高速缓存
  • 动态主机配置协议DHCP

基于UDP协议的应用层协议,使用C/S模式

使用广播发出DHCP请求,也使用广播响应请求

  • 过程:

    • 1.客户端使用以广播 【DHCP发现】 询问是否有DHCP服务器
    • 2.DHCP服务器接收到 【DHCP发现】 消息,发送自己愿意分配的IP地址源主机
    • 3.如果主机收到多个 【DHCP】 响应,接受第一个响应的IP,并以广播回复接受使用IP地址其他服务器收回预分配IP
  • 网际控制报文协议ICMP
    种类:

    • ICMP差错报告
      • 1.终点不可达
      • 2.原点抑制
      • 3.超过生命周期
      • 4.参数问题 【数据报首部不正确】
      • 5.改变路由 【选择更好的路由线路】
    • ICMP询问报文
      • 1.回送请求回答报文
      • 2.时间戳请求回答报文
      • 3.地址掩码请求回答报文
      • 4.路由器询问通告报文
  • 不发生ICMP差错报告报文情况:

    • 1.对ICMP差错报告报文
    • 2.第一个分片后的分片
    • 3.所有组播地址的数据报
    • 4.特殊地址如【127.0.0.0或127.0.0.0】
      在这里插入图片描述

4.4 IPv6

  • 解决IP耗尽措施:①采用无分类编址CIDR ②使用NAT转换 ③使用IPv6【根本方法】

  • IPv4和IPv6的主要区别:

    • IPv4长度为32位,IPv6长度128位
    • IPv6可选字段移出首部,变成扩展首部
    • 自动配置IP地址,不需要DHCP服务器
    • IPv6首部8B的整数倍,IPv4首部4B的整数倍
    • IPv6仅可以在主机分片,IPv4可以在主机和路由器分片

注意:IPv6中只能有一个双冒号

IPv6支持单播【点对点】,多播【一对多】,任播【将数据发到一个组的任意一个主机中】通信。

I P v 4 到 I P v 6 过度 { 双栈协议 : 一台设备同时使用 I P v 4 和 I P v 6 地址 隧道技术 : 将协议数据报重新封装 IPv4到IPv6过度 \begin{cases} 双栈协议:一台设备同时使用IPv4和IPv6地址\\ 隧道技术:将协议数据报重新封装 \end{cases} IPv4IPv6过度{双栈协议:一台设备同时使用IPv4IPv6地址隧道技术:将协议数据报重新封装


4.2 路由算法

  • 静态路由算法:【非自适应路由算法】,由管理员手动配置路由信息,不适合大型网络,更新速度慢
  • 动态路由算法:【自适应路由算法】,路由器之间交换路由信息,根据算法优化
  • 层次路由使用原因:①因特网规模大 ②不让外界知道内部网络拓扑结构

路由选择协议 { 内部网关协议 , 在 A S 内部使用, R I P , O S P F 外部网关协议 , 在 A S 之间使用, B G P 路由选择协议 \begin{cases} 内部网关协议,在AS内部使用,RIP,OSPF\\ 外部网关协议,在AS之间使用,BGP \end{cases} 路由选择协议{内部网关协议,AS内部使用,RIP,OSPF外部网关协议,AS之间使用,BGP


4.5 路由协议

内部网关协议:RIP【小型网络,基于距离向量】,OSPF【大型网络,基于链路状态

4.5.1 RIP协议【信息路由协议】

应用层协议,使用UDP传输数据,使用广播交换
每个路由器需要维护到其他网络的唯一最佳路径
一条路径最多只能有15个路由器,等于16时表示不可达,适合小型网络。

  • 特点:

    • 使用距离向量
    • 仅和相邻路由器交换信息。
    • 交换自己知道的所有信息
    • 30秒交换一次
    • 180秒内没交换,确认出现故障,跟新对应表项信息
    • 好消息传得快,坏消息传得慢【跟新收敛慢】
  • 算法:

    • ①交换信息到达时,将下一跳地址改为发送方地址,且跳数加1
    • ②若原来表中没有目的网络,直接加入路由表
    • ③若有相同目的网络,且下一跳地址相同,直接覆盖
    • ④若有相同目的网络,下一跳地址不同留下跳数少的

4.5.2 OSPF协议【开放最短路径优先协议】

使用网络层IP协议。IP协议字段89

  • 特点:

    • 自治系统中所有路由器发送信息,使用洪泛法【类似广播】
    • 发送的是本路由器与相邻路由器的链路状态。
    • 只有链路发生变化时,才洪泛发出信息。
    • 可以根据不同业务类型,计算出不同的路由。如果有多条代价相同的路径,则可以将通信量分配给这几条路径,负载均衡。
    • 不会出现坏消息传得慢
    • 使用迪杰斯特拉算法
    • 规模大时OSPF比RIP好
  • 过程:

    • ①每隔10s给邻居发HELLO问候分组
    • ②设置到邻居的度量metric
    • ③构造链路分组,向邻居发送摘要
    • ④摘要存在,不做处理,没有或更新了的发送链路状态请求分组
    • ⑤收到相邻分组进行更新后返回确认信息。

外部网关协议

4.5.3 边界网关协议(BGP)

应用层协议,基于TCP【提高更可靠服务,减少路由选择】

  • 过程:

    • ①与邻站发言人交换信息
    • ②交换网络可达性
    • 发生变化时跟新【包含完整路径】
  • 特点:

    • ①支持CIDR
    • ②刚运行时交换整个路由表,之后仅在发生变化时更新变化部分

在这里插入图片描述

4.6 IP组播

4.6.1 组播的概念

单播: 发送数据包到一个目的地,使用单播地址,“点对点服务”
广播:发送到同一个局域网的所有设备,使用FF-FF-FF-FF-FF-FFMAC地址
组播:发送到同一个组播IP的主机。源主机仅仅发送一次,路由协议建立组播分发树,尽可能接近目的主机时开始复制和发送不同路线的主机。减少了网络负载和发送者的负担。

在这里插入图片描述


4.6.2 IP组播地址

D类地址,前4位1110【只能作为目的地址】
传输层协议使用UDP

  • 特点:
    • 1.尽力交付,不提供可靠交付
    • 2.只能用于目的地址
    • 3.不产生ICMP差错报文
    • 4.不是所有D类地址都用于组播

物理地址的组播地址范围:
01-00-5E-(00-00-00)至01-00-5E-(7F-FF-FF)
第25位为0,后23位与组播IP的后23位相同
在这里插入图片描述


4.6.3 IGMP和组播路由算法

IGMP:让路由器知道是否有主机的进程退出或参加某组播
组播路由算法:1.基于链路状态的路由选择 2.基于距离-向量的路由选择 3.在任何路由器协议之上,协议无关组播

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

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

相关文章

目前流行的前端框架有哪些?

目前流行的前端框架有很多,它们可以帮助开发者快速构建高质量的前端应用程序。本文将介绍一些目前比较受欢迎的前端框架,并分析它们的优缺点。 React React 是一个由 Facebook 开发的开源前端JavaScript库,用于构建用户界面,尤其…

Ollama本地运行 Mistral-7B-Instruct-v0.3

Ollama本地运行 Mistral-7B-Instruct-v0.3 0. 引言1. 运行 mistral:7b-instruct-v0.3-q8_02. 简单问个问题 0. 引言 Mixtral 5月23日发布了 Mistral-7B-Instruct-v0.3,支持 function calling,今天简单运行一下。 1. 运行 mistral:7b-instruct-v0.3-q8_…

【AI如何帮你编写测试用例并输出表格格式】

1、工具:顺便使用一款生成式AI即可,此处用的是ChatGPT,Kimi这两个工具试验。 2、首先要拿到需求文档,根据需求文档向AI发出如下指令(Prompt) “请根据下面这段需求,编写测试用例: …

python从0开始学习(十二)

目录 前言 1、字符串的常用操作 2、字符串的格式化 2.1 格式化字符串的详细格式(针对format形式) ​编辑 总结 前言 上一篇文章我们讲解了两道关于组合数据类型的题目,本篇文章我们将学习新的章节,学习字符串及正则表达式。 …

【Linux】centos7下载安装Python3.10,下载安装openssl1.1.1

目录 centos7下载安装Python(版本3.10.14) (1)网页下载python压缩包,并解压缩 (2)编译安装 Python在make altinstall时,报错及解决 (3)将安装目录和可执…

EM算法求解高斯混合模型参数公式推导

高斯混合模型介绍 高斯混合模型(Gaussian Mixture Model,简称GMM)是一种经典的概率模型,被广泛应用于数据挖掘、模式识别和机器学习等领域。它采用多个高斯分布组合来对数据进行建模,每个高斯分布对应于数据中的一个子…

ROCm上运行情感分析:使用卷积神经网络

15.3. 情感分析:使用卷积神经网络 — 动手学深度学习 2.0.0 documentation (d2l.ai) 代码 import torch from torch import nn from d2l import torch as d2lbatch_size 64 train_iter, test_iter, vocab d2l.load_data_imdb(batch_size)def corr1d(X, K):w K.s…

分布式任务调度内的 MySQL 分页查询优化

作者:vivo 互联网数据库团队- Qiu Xinbo 本文主要通过图示介绍了用主键进行分片查询的过程,介绍了主键分页查询存在SQL性能问题,如何去创建高效的索引去优化主键分页查询的SQL性能问题。 对于数据分布不均如何发现,提供了一些SQL…

C语言初阶——5操作符

一、算数操作符 除了% 操作符之外,其他的几个操作符可以作用于整数和浮点数。对于/ 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除 法。% 操作符的两个操作数必须为整数。返回的是整除之后的余数。 1、类型转换 C语言…

Simplicity Studui V5 新安装后无法Product Updates

之前(2021年)在SiliconLabs官网下载了SSV5,安装包我也保存在硬盘了,最近换了台电脑安装SSV5后安装 SDK之前必须Product Updates,但死活安装不上,老是提示发生了错误。来来回回卸载安装几十遍,后…

瓦解信息茧房,IPWO打破“墙”的限制

国外与国内的网络之间隔着一道无形的“墙”,这面“墙”让我们避免了海外不法分子的窥视,保护了我们的网络隐私。但是,“墙”的存在同样阻止了我们访问全球网络,获取海外资源,形成巨大的信息茧房。 越来越多的人渴望撕开…

Plant Simulation 双深位立库开发系列教程-出入口参数化

上一节讲到货架参数化,这一节我们继续讲出入口参数化,先看我们需要达到的效果,在Conveyor增加一个出入口设置功能,用户可以通过该功能设置多个出入口 步骤1:创建ConveyorList 在RackLane中新建一个表格ConveyorList,用于存储用户的设置参数 表格设置名字、类型、方向 、…

Docker配置国内镜像源

添加Docker国内镜像源 在/etc/docker/daemon.json文件中添加以下内容: {"registry-mirrors": ["http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn","https://registry.docker-cn.com"] }重启docker s…

paligemma、Grounding-DINO-1.5简单无需标注无需训练直接可以使用的VLM图像到文本模型

1、paligemma 参考:https://github.com/google-research/big_vision/blob/main/big_vision/configs/proj/paligemma/README.md 模型架构: 文本与图像特征一起送入大模型 在线体验网址: https://huggingface.co/spaces/big-vision/paligemma 通过文字prompt既可与图片对话…

ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

QT creator centralwidget前面有个禁止符号

centralwidget前面有个禁止符号:表示分拆布局 在主窗口空白处,右键,选择布局即可选择不同的布局方式,表示对窗口内所有控件部件进行布局,不如垂直布局。

【机器学习】—机器学习和NLP预训练模型探索之旅

目录 一.预训练模型的基本概念 1.BERT模型 2 .GPT模型 二、预训练模型的应用 1.文本分类 使用BERT进行文本分类 2. 问答系统 使用BERT进行问答 三、预训练模型的优化 1.模型压缩 1.1 剪枝 权重剪枝 2.模型量化 2.1 定点量化 使用PyTorch进行定点量化 3. 知识蒸馏…

高光谱成像技术简介,怎么选择成像方案?

目录 一、什么是光谱?二、光谱和光谱分析方法的类型三、多光谱和高光谱的区别四、高光谱在水果品质检测中的应用1. 高光谱成像系统2. 高光谱图像的获取方式3. 高光谱图像处理与分析4. 在水果品质检测中的应用总结 五、针对自己的应用场景怎么使用高光谱技术六、参考…

海山数据库(He3DB)从方法到实践,构建以场景为中心的体验管理体系

编者按:体验优化的过程中设计师经常会遇到几个阶段,发现问题、定义问题、优化问题、查看反馈,但在产品快速迭代的过程中,体验的问题经常被归类到“不紧急”需求中,并逐步转为长尾问题,这些不被重视的问题聚…

【OpenGL实践10】关于几何着色器

目录 一、说明 二、几何着色器 2.1 设置 2.2 基本几何着色器 2.2.1 输入类型 2.2.2 输出类型 2.2.3 顶点输入 2.2.4 顶点输出 2.3 创建几何着色器 2.4 几何着色器和顶点属性 三、动态生成几何体 四、结论 练习 一、说明 几何着色器的应用比较高级,关于…