计算机网络(自顶向下)学习笔记——网络层

news2025/4/6 3:36:26

第四章—网络层

4.1、概述

转发功能和路由选择功能的区别?

  • 转发涉及在单个的路由中从一条入链路到一条出链路的传送
  • 路由选择涉及一个网络的所有路由器,他们经路由选择协议共同交互,决定分组从源到目地结点所采用的的路径

4.1.1、转发和路由选择

网络层两种最重要功能:

  • 转发:当一个分组到达路由器到一条输入链路时,路由器必须将该分组移动到合适的输出链路
  • 路由选择:当分组从发送方流向接收方时,网络层必须决定这些分组所采用的路 由或路径。计算这些路径需要用到路由选择算法

路由选择算法:

每台路由器具有一张转发表 (forwaring table) 。路由器通过检查到达分组首部字段的 值来转发分组,然后使用该值在该路由器的转发表中索引查询 存储在转发表项中的该首 部的值指出了该分组将被转发的路由器的输出链路接口 分组首部中的该值可能是该分组 的目的地址或该分组所属连接的指示,这取决于网络层协议。

路由选择算法由两种模式:

集中式:算法在某个中心场点执行,并向每台路由器下载路由选择信息

分布式:使用运行在每台路由器上的分布式 路由选择算法的一部分

**分组交换机:**指一台通用分组交换设备,根据分组首部字段值从输入链路接口转移分组到输出链路接口。
**链路层交换机:**基于链路层字段中的值做转发决定
**路由器:**基于网络层字段值做转发决定
**连接建立:**某些网络结构(ATM、帧中继、MPLS)除了转发和路由选择功能,还有连接建立功能。要求从源到目的地沿着所选择路径彼此握手,建立连接。

image-20221212200219995

4.1.2、网络服务模型

网络服务模型 (network service model) 定义了分组在发送与接收端系 统之间的端到端运输特性。

当运输层向网络层传递分组时,能由网络层提供的特定服务有:

  • **确保交付:**该服务确保分组将最终到达其目的地
  • **具有时延上界的确保交付:**该服务不确保分组交付
  • **有序分组交付:**该服务确保分组以它们发送的顺序到达目的地
  • **确保最小带宽:**模拟在发送和接收主机之间一条特定的比特率的传输链路的行为
  • **确保最大时延抖动:**该服务确保位于发送方的两个相继分组之间的时间等于在目的地接收他们之间的时间量
  • **安全性服务:**使用仅由源和目的主机所知晓的一个秘密会话密钥,在源主机中的网络 层能够加密向目的主机发送的所有数据报负载

因特网的网络层提供了单一的服务,称为尽力而为服务 (best- effort service),无带宽保证,无丢包保证,无顺序保证,不定时,无拥塞指示。

4.2、虚电路和数据报网络

仅在网络层提供连接服务的计算机网络称为虚电路 (Virtual-Circuit, VC) 网络;

仅在网络层提供无连接服务的计算机网络称为数据报网络 (datagram network)

4.2.1、虚电路网络

包括ATM、帧中继的体系结构是虚电路网络,在网络层使用连接。IP是数据报网络

一条虚电路的组成如下:

​ ①源和目的主机之间的路径(即一系列链路和路由器) ;

​ ②VC 号,沿着该路径的每段链路的一个号码;

​ ③沿着该路径的每台路由器中的转发表表

image-20221212211826763

在虚电路网络中,该网络的路由器必须为进行中的连接维持连接状态信息( connection state information) 。特别是,每当跨越一台路由器创建一个新连接,必须在该路由器的 转发表中增加一个新的连接项;每当释放一个连接,必须从该表中删除该项 值得注意的 是,即使没有 vc 号转换,仍有必要维持连接状态信息,该信息将 vc 号与输出接口号联 系起来。

虚电路的三个明显不同的阶段:

  • ·**虚电路建立:**在建立阶段,发送运输层与网络层联系,指定接收方地址,等待网络建立虚电路。网络层决定发送方与接收方之间的路径,即该虚电路的所有分组 要通过的一系列链路与路由器。网络层也为沿着该路径的每条链路决定一个 vc 号。最后,网络层在沿着路径的每台路由器的转发表中增加一个表项 在虚电路 建立期间,网络层还可以预留该虚电路路径上的资源(如带宽)
  • **数据传送:**一旦创建了虚电路,分组就可以开始沿该虚电路流 动了

image-20221212212220235

  • **虚电路拆除:**当发送方(或接收方)通知网络层它希望终止该虚电路时,就启动 这个阶段 然后网络层通常将通知网络另一侧的端系统结束呼叫,井更新路径上 每台分组路由器中的转发表以表明该虚电路已不存在了

**信令报文:**端系统向网络发送指示虚电路启动与终止的报文,以及路由器之间传递的用于建立 虚电路(即修改路由器表中的连接状态)的报文

**信令协议:**用来交换信令报文的协议

4.2.2、数据报网络

数据报网络中,每当一个端系统要发送分组,它就为该分组加上目的端系统的地 址,然后将分组推进网络中。

image-20221212212728981

image-20221212212749465

路由器用分组的目的地址的**前缀( prefix)**与该表中的表项 进行匹配;如果存在一个匹配项,则路由器向与该匹配项相联系的链路转发分组

当有多个匹配时,该路由器使用最长前缀匹配规则( longest prefix matching rule) ;即在该表中寻找最伏的匹配项,并向与最长前缀匹配相关联的链路 接口转发分组

4.3、路由器工作原理

**路由器结构概况:**高层面(非常简化的)通用路由器体系架构(路由器转发平面

  • 路由:运行路由选择算法/协议-生成路由表
  • 转发:从输入到输出链路交换数据报-根据路由表进行分组转发

image-20221212213129313

输入端口:

  • 要执行将 条输入的物理链路与路 由器相连接的物理层功能
  • 要执行需要与位于人链路远端的数据链路层 交互的数据链路层功能
  • 在输入端口坯要完成查找功能
  • 控制分组(如携带路由选择协议信息的分 组)从输人端口转发到路由选择处理器

**交换结构:**交换结构将路由器的输入端口与输出端口相连接 这种交换结构完全 包含在路由器中,即它是 个网络路由器中的网络

**输出端口:**输出端口存储从交换结构接收的分组,并通过执行必要的链路层和物 理层功能在输入链路上传输这些分组

**路由选择器:**路由选择处理器执行路由选择协议,维护路由选择表以及连接的链路状态信息,并为路由器计算转发表

4.3.1、输入端口

image-20221212213900923

线路端接:Bit级的接收

数据链路层:路由协议动作、解封装

分布式交换(查找、转发、排队):

  • 根据数据报头的信息:如目的地址,在输入端口内存中的转发表中查找合适的输出端口
  • **基于目标的转发:**仅仅依赖于IP数据报的目标IP地址
  • **通用转发:**基于头部字段的任意集合进行转发

4.3.2、交换结构

  • 将分组从输入缓冲区传输到合适的输出端口

  • 交换速率:分组可以按照该速率从输入传输到输出

经内存交换结构
  1. 在输入端口与输出端口之间的交换是在 CPU (路由选择处理器)的直接控制下完成的
  2. 分组被拷贝到系统内存,CPU从分组的头部提取出目标地址,查找转发表,找到对应的输出端口,拷贝到输出端口
  3. 转发速率被内存的带宽限制 (数据报通过BUS两遍)
  4. 一次只能转发一个分组
经总线交换结构
  1. 数据报通过共享总线,从输入端 口转发到输出端口
  2. 总线竞争: 交换速度受限于总线 带宽
  3. 1次处理一个分组
经互联网的交换(纵横模式)
  1. 同时并发转发多个分组,克服总线带宽 限制
  2. Banyan(榕树)网络,crossbar(纵横) 和其它的互联网络被开发,将多个处理 器连接成多处理器
  3. 当分组从端口A到达,转给端口Y;控 制器短接相应的两个总线
  4. 高级设计:将数据报分片为固定长度的 信元,通过交换网络交换

image-20221212215219338

4.3.3、输出端口

输出端口处理取出存放在输出端口内存巾的分组并将其发送到输出链路上 ,选择和取出排队的分组进行传输,执行所需链路层和物理层的功能

image-20221212215346220

4.3.4、输出端口排队

  • 假设交换速率Rswitch是Rline的N倍(N:输入端口的数量)
  • 当多个输入端口同时向输出端口发送时,缓冲该分组(当通 过交换网络到达的速率超过输出速率则缓存)
  • 排队带来延迟,由于输出端口缓存溢出则丢弃数据报

image-20221212215645341

输出端口的一个分组调度程序必须在这些排队的分组中选取一个发送。分组调度程序在提供服务质量保证上有很大的作用
主动队列管理(RQM)
缓存填满前丢弃(或首部加个标记)一个分组,向发送方提供一个拥塞信号
随机早期检测算法(RED):平均队列长度在某个范围内时,以某种概率被丢弃/标记。
线路前部阻塞(HOL)

深色阴影分组必须等待。但不仅该分组要等待,左下角队列中排在该分组之后的浅色阴影分组也要等待,即使右侧输出端口中无竞争。这种现象叫做线路前部阻塞(HOL)

image-20221212220031580

4.4、网际协议:因特网中的转发和编址

与协议IP配置套的还有三个协议:

  • 地址解析协议ARP(Address Resolution Protocol)
  • 网际控制报文协议ICMP(Internet Control Message Protocol)
  • 网际组管理协议IGMP(Internet Group Management Protocol)

互联网的网络层:主机,路由器中的网络层功能

image-20221213192759919

4.4.1、数据报

IPv4的数据报格式:

image-20221213192920633

  • ·版本(号): 这 4 比特规定了数据报的 IP 协议版本 通过查看版本号,路由器能 够确定如何解释 数据报的剩余部分 不同的 版本使用不同的数据报格式
  • **首部长度:**一般的IP 数据报具有 20 字节的首部
  • **服务类型:**服务类型 (TOS) 比特包含在 IPv4 首部巾,以便使不同类型的 数据 报(例如,一些特别要求低时延、高吞吐量或可靠性的数据报)能相互区别开来
  • **数据报长度:**数据报的理论最大长度为 65535 字节 然而,数据报很少有超过15 字节的
  • 标识、标志、片偏移: 这三个字段与所谓 分片有关
  • 寿命: 寿命 (Time-To- Live TTL) 字段用来确保数据报不会永远(如由于民时间 的路由选择环路)在网络中循环
  • **协议:**该字段仅在一个 数据报到达其最终目的地才会有用 该字段值指示了 IP 数据报的数据部分应交给哪个特定的运输层协议
  • **首部检验和:**首部检验和用于帮助路由器检测收到的 数据报中的比特错误。首 部检验和是这样计算的:将首部中的每 个字节当作一个数,用反码运算对这些 数求和 。
  • **源和目的 地址:**当某源生成一个数据报时,它在源 字段中插入它的四地址, 在目的 IP 地址字段中插人其最终目的地的地址
  • 选项: 选项字段允许 首部被扩展
  • 数据(有效载荷):
IP数据报分片

并不是所有链路层协议都能承载相同长度的网络层分组 的协议能承载大数据报,而有的协议只能承载小分组,以太网帧能够承载不超过 1500 节的数据,而某些广域网链路的帧可承载不超过 576 字节的数据。一个链路层帧能 承载的最大数据量叫做最大传送单元( Maximum Transmission Unit , MTU)

例如:一个 字节的数据报 (20 字节 IP 首部加上 3980 字节 有效载荷)到达一台路由器,且必须被转发到一条 MTU 15∞字节的链路上 这就意味 着初始数据报中 3980 字节数据必须被分配为 个独立的片(其中的每个片也是一个1P数 据报) 假定初始数据报贴上的标识号为 777 。

image-20221213194742364

4.2.2、IPv4编址

IP地址及其表示方法

IP地址由互联网名字和数字分配机构ICANN(Internet Corporation for Assigned Names and Numbers)进行分配

IP地址都是32位的二进制代码。为了提高可读性,我们将32位IP地址中的每隔 8 位插入一个空格,为了方便记忆我们将其等效位十进制数,并在每个数之间插入一个小数点。这叫做点分十进制记忆法

IP地址由两部分组成:

  • 网络号
  • 主机号

IP地址在整个互联网范围内是唯一的

IP地址的分类

image-20221213202632444

一般不指派的IP地址:

网络号主机号源地址使用目的地址使用代表的意思
00可以不可在网络上的本主机
0X可以不可在本网络上主机号为X的主机
全1全1不可可以只在本网络上进行广播(各路由均不转发)
Y全1不可可以对网络号为Y的网络上的所有主机进行广播
127非全0或全1的任何数可以可以用于本地软件环回测试
无分类编制CIDR
  1. 网络前缀:

无分类域间路由选择CIDR(Classless Inter_Domain Routing)

CIDR的定义的IP地址是:IP地址::= {<网络前缀>, <主机号>}

image-20221213204516935

  1. 地址块

CIDR把 网络前缀相同的所有连续的IP地址组成一个"CIDR 地址块"

  • 例如:已知IP地址 128.14.35.7/20 是某CIDR地址块中的一个地址,现在把他写成二进制表示形式:前20位是网络前缀,后12位是主机号

128.14.35.7/20=10000000 00001110 00100011 00000111

  • 最小地址:128.14.32.0/20=10000000 00001110 00100000 00000000
  • 最大地址:128.14.32.0/20=10000000 00001110 00101111 11111111
  1. 地址掩码

地址掩码(简称掩码):由一连串 1 和接着的一连串 0 组成,而 1 的个数就是网络前缀的长度。

/20地址块的地址掩码是:11111111 11111111 11110000 0000000,这个CIDR记法表示为:255.255.240.0/20

  • A类网络,地址掩码为:255.0.0.0或255.0.0.0/8
  • B类网络,地址掩码为:255.255.0.0或255.255.0.0/16
  • C类网络,地址掩码为:255.255.255.0或255.255.255.0/24

把二进制的IP地址和地址掩码进行按位运算,即可得出网络地址

image-20221213211504481

常用的CIDR地址块

image-20221213211650510

DHCP

如何获取地址、分配地址?
1. 获取一块地址
子网获取IP地址:由ISP从它大块地址中分配
ISP获取IP地址:IP地址由因特网名字和编号分配机构ICANN管理(也管理DNS根服务器、AS标识号)。ICANN向区域性因特网注册机构分配地址,处理本地域内的地址分配/管理
2.获取主机地址
组织获得一块地址,就可为组织内的主机、路由器接口逐个分配IP地址
主机地址能手动配置,也能自动配置,即动态主机配置协议DHCP
3.动态主机配置协议DHCP—UDP
DHCP允许主机自动获取一个IP地址
DHCP可配置,可以使主机每次连网获得相同IP地址,也可每次分配一个临时IP地址。
DHCP还允许主机查看子网掩码、默认网关(第一跳路由器地址)、本地DNS服务器地址
DHCP能将主机连接进一个网络的自动能力,常被称为即插即用协议
DHCP是一个客户-服务器协议。新来的主机要获得自使用的IP地址等网络配置信息
每个子网都有一台DHCP服务器
若子网没有DHCP服务器,则由一个路由器做DHCP中继代理,该代理知道该网络的DHCP服务器地址

image-20221213212334206

发现新主机时DHCP的四个步骤:

  • **DHCP 服务器发现 :**一台新到的主机的首要任务是发现一个要与其交互的 DHCP 服务器 这可通过使用 DHCP 发现报文 (DHCP discover message) 来完成, 客户在 UDP 分组中向端口67的发送该发现报文
  • DHCP 服务器提供:
    • DHCP收到DHCP发现报文后,响应一个DHCP提供报文,仍然使用广播地址,因为此时新客户并没有IP地址
    • 可能有多台DHCP服务器,每台服务器提供的报文中,有向客户主机推荐的IP地址、网络掩码以及IP地址租用期
  • DHCP请求: 客户从提供中选一个,向选中的服务器提供一个DHCP请求报文进行响应,回显配置参数
  • DHCP:
    • 服务器用 DHCP ACK 报文 (DHCP ACK message) DHCP 请求报文 进行响应,证实所要求的参数
    • 一旦客户收到 DHCP ACK 后,交互便完成了,并且该客户能够在租用期内使用 DHCP 分配的 lP 地址
网络地址转换

动机: 本地网络只有一个有效IP地址:

  • 不需要从ISP分配一块地址,可用一个IP地址用 于所有的(局域网)设备–省钱
  • 可以在局域网改变设备的地址情况下而无须通知 外界
  • 可以改变ISP(地址变化)而不需要改变内部的 设备地址
  • 局域网内部的设备没有明确的地址,对外是不可 见的–安全

实现:

  • 外出数据包:替换源地址和端口号为NAT IP地址 和新的端口号,目标IP和端口不变 …远端的C/S将会用NAP IP地址,新端口号作为目标地址
  • 记住每个转换替换对(在NAT转换表中) … 源IP,端口 vs NAP IP ,新端口
  • 进入数据包:替换目标IP地址和端口号,采用存 储在NAT表中的mapping表项,用(源IP,端口)

NAT转换表:

image-20221213213153554

对NAT是有争议的:

  • 路由器只应该对第3层做信息处理,而这里对端口号(4层)作了处 理
  • 违反了end-to-end 原则
    • 端到端原则:复杂性放到网络边缘:无需借助中转和变换,就可以直接传送到目标主机
    • NAT可能要被一些应用设计者考虑, eg, P2P applications
    • 外网的机器无法主动连接到内网的机器上
    • 地址短缺问题可以被IPv6 解决
UPnP

NAT 穿越正越来越多地由通用即插即用( UPnP) 提供, UPnP是 种允许主机发现并 配置邻近 NAT 的协议 。 0 UPnP要求主机和 NAT 都是 UPnP兼容的。使用UPnP,在主机上运行的应用程序能为某些请求的公共端口号请求一个NAT映射**(专用IP地址,专用端口号 — 公共IP地址,公共端口号)**。如果某NAT接收请求并生成映射,来自外部的结点能发起到(公共IP地址,公共端口号)的TCP连接。

4.2.3、IPv6

初始动机: 32-bit地址空间将会被很快用完

另外的动机: 头部格式改变帮助加速处理和转发

  • TTL-1
  • 头部checksum
  • 分片
  • 头部格式改变帮助QoS

IPv6 数据报格式:

  • 固定的40 字节头部
  • 数据报传输过程中,不允许分片

image-20221213214117674

IPv6中引人的最重要的变化显示在其数据报格式中:

  • 扩大的地址容量: IPv6 地址长度从 32 比特增加到 128 比特
  • 简化高效的 40 字节首部: 许多叫字段已被舍弃或作为选 因而所形成的 40 字节定长首部允许更快地处理 数据报。
  • 流标签与优先级: IPv6 有一个难以捉摸的 (flow) 定义
IPv6的字段
  • **版本号(version):**不同的IP协议版本使用不同的数据报格式。

  • **通信量等级(Traffic Classes):**使得源节点和路由器能够识别IPv6信息包的优先级。与IPv4服务类型TOS字段含义类似。

  • **流标签(Flow Label):**标记那些需要IPv6路由器特殊处理(如一种非默认服务质量或实时服务)的信息包顺序。

  • **有效负载长度(Payload Length):**定长40字节数据报首部后面的字节数量,包括扩展报头和负载数据,即数据报长度-40。

  • **下一个首部(Next Header):**当IPv6没有扩展报头时,该字段的作用和IPv4的上层协议字段一样。当含有扩展报头时,该字段的值即为第一个扩展报头的类型。

  • **跳限制(Hop Limit):**转发数据报的每台路由器对该字段的值减1,若减为0则丢弃该数据报。

  • 源和目的IP地址(Source/Destination Address)

  • **数据(Data):**当数据报到达目的地时,该有效载荷就从IP数据报移出,并交给下一个首部字段中指定的协议。

  • 源和目的IP地址(Source/Destination Address)

从IPv4到IPv6的迁移

**双栈:**引人 IPv6使能结点的最直接方式可能是一种双栈( dual- stack) 方法,即使用该方法的IPv6 结点还具有完整的 IPv4 实现

image-20221213215046637

**隧道:**允许如E 接收、源于 IPv6 数据报 隧道依据的基本思想如下:假定两个 IPv6 点(如图中的 E) 要使用 IPv6 数据报进行交互,但它们是经由中间IPv4路由器互联的 我们将两台 IPv6 路由器之间的中间 IPv4路由器的集合称为一个隧道( tunnel) , 如图 4-26 所示 借助于隧道,在隧道发送端的 IPv6结点(如 B) 可将整个 IPv6 数据报放 到一个 IPv4 数据报的数据(有效载荷)字段中。

image-20221213215321985

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

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

相关文章

Metal每日分享,调整透明度滤镜效果

本案例的目的是理解如何用Metal实现调整透明度效果滤镜&#xff0c;核心就是改变图像像素的透明度值&#xff1b; Demo HarbethDemo地址 实操代码 // 透明度滤镜 let filter C7Opacity.init(opacity: 0.75)// 方案1: ImageView.image try? BoxxIO(element: originImage, …

java MybatisPlus入门 字段映射 分页查询 逻辑删除 乐观锁

MyBatisPlus&#xff08;简称MP&#xff09;是基于MyBatis框架基础上开发的增强型工具&#xff0c;旨在简化开发、提高效率 入门案例 继承BaseMapper<自己的domain类> 就可以了&#xff0c;自动装配后直接会有各种方法 标准数据层开发 MP分页查询功能 条件查询 NULL值控制…

玩以太坊链上项目的必备技能(单位以及全局变量-Solidity之旅七)

以太币单位&#xff08;Ether&#xff09; 甭管是虚拟货币还是现实中的“稳定币”&#xff0c;他们都有各自的货币单位。当然咯&#xff0c;作为以太坊区块链上交易的虚拟货币以太坊也是有属于自己的那一套货币单位的。 而目前以太币&#xff08;Ether&#xff09;主要分为这…

python批量下载apache文件服务器文件

此脚本用于下载apache文件服务器中制定某个文件夹下所有文件与文件夹。 包含下载单个文件的方法、拼接url递归下载的方法、参数解析。 1 下载文件 功能点&#xff1a; 文件下载 以追加写的方式打开一个新文件&#xff0c;按照块大小写入文件 with open(filepath, wb) as fi…

Kafka实战 - 03 Kafka生产者:将X平台的告警和事件数据接入到S平台

文章目录1. 项目背景2. 依赖和配置3. 生产者配置 KafkaConfiguration4. 同步数据Topic枚举 SyncDataTopicEnum5. 请求体 DataSyncQo6. 同步数据控制层 AppSyncDataController7. 同步数据业务层 XdrDataSyncServiceImpl1. 项目背景 资产可能会遭受各种网络攻击&#xff0c;安全…

[附源码]Python计算机毕业设计SSM基于JAVA语言的宠物寄养管理(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

1,4-丁炔二醇BYD物料中含有大量铜离子、二氧化硅等杂质怎么办?

1,4-丁炔二醇BYD&#xff08;but-2-yne-1,4-diol&#xff09;是一种重要的中间体化工原料&#xff0c;广泛应用于生产丁二醇及其下游产品、维生素B6的主要原料&#xff0c;还可以用于镀镍的增亮剂、防腐抑制剂等领域。 1,4&#xff0d;丁二醇&#xff08;BDO&#xff09;是一种…

[附源码]Python计算机毕业设计SSM基于web的社团管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

免费开源的图片修复工具Lama Cleaner

什么是 Lama Cleaner &#xff1f; Lama Cleaner 是由 SOTA AI 模型提供支持的图像修复工具。可以从图片中移除任何不需要的物体、缺陷和人&#xff0c;或者擦除并替换&#xff08;powered by stable diffusion&#xff09;图片上的任何东西。 看看官方提供的视频&#xff0c;应…

图片怎么转换成PDF格式?这两种方法都可以实现转换

怎么把图片转换成PDF格式呢&#xff1f;大家在日常中也会经常使用到图片&#xff0c;不管是出门游玩还是办公学习&#xff0c;图片都会给我们带来极大的便利。但是一旦图片的数量多了起来&#xff0c;我们又不能删除&#xff0c;那么这些图片的存放就是一个关键的问题&#xff…

[附源码]计算机毕业设计的小说阅读系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis MavenVue等等组成&#xff0c;B/S模式…

“数据湖存储”冠军杯足球赛开幕,腾讯云存储出征!

“数据湖存储”冠军杯是数据湖领域内的世界级赛事&#xff0c;随着云上“数据湖存储”产品理念的逐步普及&#xff0c;今年的比赛也获得了国内外众多球迷的关注。腾讯云以COS、GooseFS、GooseFSx、元数据加速器、COS加速器等球员组成的球队一路披荆斩棘&#xff0c;成为最闪耀的…

化工集团公司安全风险智能化管控平台

加快数字化发展&#xff0c;大力推进信息化、工业化融合&#xff0c;是国家新时代、新阶段作出的重要决策部署&#xff0c;是化工集团公司打造世界领先企业的必由之路。要充分认识加快数字化发展的重要性紧迫性。要锚定集团公司数字化转型升级的总目标&#xff0c;坚持顶层设计…

Java 开发如何通过 IoT 边缘 ModuleSDK 进行协议转换

操作场景 使用 ModuleSDK 开发插件应用&#xff0c;接入其他协议设备&#xff08;如 HTTP 请求数据&#xff09;&#xff0c;将其他协议的数据转化为 MQTT 协议 JSON 数据上报到 IoTDA。 代码解析 项目结构如下 ModbusDriver 代码解析 片段一 通过 DriverClient.createFromEnv…

[附源码]Nodejs计算机毕业设计基于Web课堂签到管理系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

web开发框可以为提升办公效率赋能吗?

提升办公效率可以引用专业的web开发框架&#xff0c;值得一提的是&#xff0c;随着数字化时代的到来&#xff0c;要想做好数据管理&#xff0c;低代码开发平台功不可没&#xff0c;在做好数据管理的过程中发挥了重要的应用价值。研发低代码开发平台&#xff0c;流辰信息一直都以…

从BI到ABI,守正创新的思迈特软件持续推进国产BI产业创新

‍‍数据智能产业创新服务媒体——聚焦数智 改变商业近年来&#xff0c;国内外数字化转型加速渗透&#xff0c;企业客户已不再满足“用上”数据&#xff0c;能否“用好”数据、提升管理效率成为企业数字化转型的核心诉求。在提升企业管理效率的工具中&#xff0c;商业智能&…

Linux C编程一站式学习笔记1

Linux C编程一站式学习笔记 chap1程序的基本概念 打算重学计算机&#xff0c;重学C语言 这本书的前言写的真好 实在是惭愧… 文章目录Linux C编程一站式学习笔记 chap1程序的基本概念一.程序和编程语言1.什么是程序2.程序由指令组成3.编程语言编译执行过程解释执行过程本节总结…

力扣(LeetCode)1697. 检查边长度限制的路径是否存在(C++)

并查集离线查询 由于评测系统对 vectorvectorvector 的排序可能较慢&#xff0c;使用结构体保存 vectorvectorvector &#xff0c;接下来的查询和边集就对结构体操作。 结构体的属性 aaa 点 、 bbb 点 、ccc 长度、 ddd 顺序。重载 <<< &#xff0c;排序时按照 ccc …

ssm+Vue计算机毕业设计校园图书漂流系统(程序+LW文档)

ssmVue计算机毕业设计校园图书漂流系统&#xff08;程序LW文档&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技…