计算机网络——网络层
重点内容:
目录
重点内容:
一.网络层提供的两种服务
二.网际协议IP(IPv4)***
2.0概述
2.1 虚拟互联网
2.2分类的IP地址
A 类地址
B 类地址
C 类地址
IP地址具有的特点
2.3IP地址和硬件地址
2.4地址解析协议 ARP
跨局域网的IP数据报发送对ARP的使用
2.5IP数据报格式
2.6 IP层转发分组的流程
三.划分子网和构造超网
3.1划分子网
1.子网掩码
2.使用子网的分组转发
3.2构造超网
1.无分类编址CIDR
2.最长网络前缀匹配
3.使用二叉线索查找路由表
四.网际控制报文协议 ICMP
4.1 ICMP报文种类
编辑差差错报告报文
不发送ICMP差错报告报文的几种情况
询问报文
五.互联网路由选择协议
1. 静态路由和动态路由
2. 动态路由协议的分类
A. 内部网关协议(IGP,Interior Gateway Protocol)
B. 外部网关协议(EGP,Exterior Gateway Protocol)
3. 路由选择协议的工作原理
路由选择协议基本工作原理:
主要的路由算法:
4. 路由协议的特点
5. 总结
六.IPv6
七.IP多播
八.VPN&NAT
九.多协议标记交换MPLS
一.网络层提供的两种服务
二.网际协议IP(IPv4)***
2.0概述
与 IP 协议配套使用的还有三个协议:
- 地址解析协议 ARP (Address Resolution Protocol)
网际控制报文协议 ICMP (Internet Control Message Protocol) 网际组管理协议 IGMP (Internet Group Management Protocol)
2.1 虚拟互联网
所谓虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用 IP 协议就可以使这些性能各异的网络在网络层上看起来好像是一个统一的网络。
2.2分类的IP地址
IP 地址的编址方法共经过了三个历史阶段。(1) 分类的 IP 地址 。这是最基本的编址方法,在 1981 年就通过了相应的标准协议。(2) 子网的划分 。这是对最基本的编址方法的改进,其标准 RFC 950 在 1985 年通过。(3) 构成超网 。这是比较新的无分类编址方法。 1993 年提出后很快就得到推广应用。本节只讨论最基本的分类的 IP 地址。后两种方法将在 4.3 节中讨论。
IP地址,其中网络号必须是唯一的
A 类地址
- 网络号字段:占 1 个字节(8 位),但是只有 7 位可以用作网络号,因为第一位被固定为 0。
- 可用的网络号数量:2^7 - 2 = 126 个网络。减去 2 是因为:
- 全 0 的网络号(0.0.0.0)被保留表示“本网络”。
- 网络号为 127(127.0.0.0)被保留作为环回地址,用于本机测试。
- 主机号字段:占 3 个字节(24 位)。
- 每个网络中的主机数:2^24 - 2 = 16,777,214。减去 2 是因为:
- 全 0 的主机号(如 5.0.0.0)表示“网络地址”。
- 全 1 的主机号(如 5.255.255.255)表示“广播地址”,用于广播给网络中的所有主机。
- 总地址数:2^31 = 2,147,483,648 个地址,占整个 IP 地址空间的 50%。
B 类地址
- 网络号字段:占 2 个字节(16 位),但前两位被固定为 1 0,因此只剩下 14 位可供使用。
- 可用的网络号数量:2^14 - 1 = 16,383 个网络。减去 1 是因为地址 128.0.0.0 不可用。
- 主机号字段:占 2 个字节(16 位)。
- 每个网络中的主机数:2^16 - 2 = 65,534。减去 2 是因为全 0 和全 1 的主机号地址被保留。
- 总地址数:2^30 = 1,073,741,824 个地址,占整个 IP 地址空间的 25%。
C 类地址
- 网络号字段:占 3 个字节(24 位),前 3 位被固定为 1 1 0,因此剩下 21 位可供使用。
- 可用的网络号数量:2^21 - 1 = 2,097,151 个网络。减去 1 是因为地址 192.0.0.0 不可用。
- 主机号字段:占 1 个字节(8 位)。
- 每个网络中的主机数:2^8 - 2 = 254。减去 2 是因为全 0 和全 1 的主机号地址被保留。
- 总地址数:2^29 = 536,870,912 个地址,占整个 IP 地址空间的 12.5%。
类别 | 网络号字段长度 | 可指派的网络数 | 每个网络的最大主机数 | 总地址数 | 占总地址空间比例 |
---|---|---|---|---|---|
A 类 | 1 字节(7 位) | 126 个网络 | 16,777,214 个主机 | 2,147,483,648 | 50% |
B 类 | 2 字节(14 位) | 16,383 个网络 | 65,534 个主机 | 1,073,741,824 | 25% |
C 类 | 3 字节(21 位) | 2,097,151 个网络 | 254 个主机 | 536,870,912 | 12.5% |
- A 类地址提供最大的主机数,但网络数最少,适用于需要大量主机的大型网络。
- B 类地址具有适中的网络数和主机数,适合中等规模的网络。
- C 类地址提供最多的网络数,但每个网络的主机数最少,适合大量小型网络的分配。
IP地址具有的特点
1. IP 地址的分级结构
IP 地址由 网络号 和 主机号 两部分组成。这种分级的结构带来了两个重要好处:
- 管理上的便利性:网络号由 IP 地址管理机构分配,而主机号则由获得网络号的单位自行分配。这样能够简化地址的管理,减少管理机构的工作量。
- 路由的简化:路由器在转发数据包时只需要根据目的地址的网络号进行转发,而不考虑主机号。这样就能大幅减少路由表中的条目数,减少存储和查找路由表的时间。
2. 多归属主机(Multihomed Host)
一台主机如果同时连接到多个网络,通常会拥有多个 IP 地址。这些 IP 地址的网络号必须是不同的。这样的主机被称为“多归属主机”。同样,路由器通常需要连接多个网络,因此它至少需要有两个 IP 地址。这可以比作一个建筑位于两个街道交叉口,有两个门牌号码。
3. 网络的定义
从互联网的角度来看,一个网络 是指具有相同网络号(net-id)的主机集合。举个例子,如果多个局域网通过转发器或网桥连接,它们仍然属于同一个网络,因为它们具有相同的网络号。只有具有不同网络号的局域网才需要通过路由器进行连接。
4. 网络的平等性
互联网对每个 IP 地址的网络(无论是一个小范围的局域网,还是一个跨越广泛地域的广域网)都一视同仁。所有的网络都被平等对待,IP 地址的分配也遵循这个原则。
2.3IP地址和硬件地址

还有两个重要问题没有解决:(1) 主机或路由器怎样知道应当在 MAC 帧的首部填入什么样的硬件地址?(2) 路由器中的路由表是怎样得出的?
2.4地址解析协议 ARP
地址解析协议 ARP 解决这个问题的方法是在主机 ARP 高速缓存中存放一个从 IP 地址到硬件地址的映射表,并且这个映射表还经常动态更新(新增或超时删除——即存在生存时间)。
请注意,ARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。
当ARP高速缓存中没有对应的映射时,发送ARP请求,其主要内容为:
“我的 IP 地址是 209.0.0.5 ,硬件地址是 00-00-C0-15-AD-18 。我想知道 IP 地址为 209.0.0.6 的主机的硬件地址。
ARP请求广播发送,ARP响应由请求的目标IP单播发送
跨局域网的IP数据报发送对ARP的使用
- 发送方是主机(如 H1),要把 IP 数据报发送到同一个网络上的另一台主机(如 H2)。这时 H1 发送 ARP 请求分组(在网 1 上广播),找到目的主机 H2的硬件地址。
- 发送方是主机(如 H1),要把 IP 数据报发送到另一个网络上的一台主机(如 H3 或 H4)。这时 H1 发送 ARP 请求分组(在网 1 上广播),找到网 1 上的一个路由器 R1 的硬件地址。剩下的工作由路由器 R1 来完成。R1 要做的事情是下面的(3)或(4)。
- 发送方是路由器(如 R1),要把 IP 数据报转发到与 R1连接在同一个网络(网 2)上的主机(如 H3)。这时 R1 发送 ARP 请求分组(在网 2 上广播),找到目的主机 H3的硬件地址。
- 发送方是路由器(如 R1),要把 IP 数据报转发到网 3 上的一台主机(如 H4)。H4与R1 不是连接在同一个网络上。这时 R1 发送 ARP 请求分组(在网 2 上广播),找到连接在网2 上的一个路由器 R2 的硬件地址。剩下的工作由这个路由器 R2 来完成。
这就是为什么路由需要有至少两个IP地址的原因 ,ARP只作用在同一局域网下
2.5IP数据报格式
-
版本——IPv4 or IPv6
-
首部长度——4bit,最大值15,表示首部的长度(一定是4B的倍速)所以
,只有固定长度部分时首部长度为5
-
区分服务——8bit,一般不适用
-
总长度——首部和数据之和的长度,单位为字节,最长
.我们知道IP数据报长度不能超过MAC帧中MTU最大传输单元的长度,一般以太网中的MTU为1500,如果IP数据报 > MTU,则需要分片处理
-
标识——IP数据报因为大于MTU被分片,分片序号,用于重新组装IP数据报
-
标志——3bit,最低位MF (More Fragment)表示是否还有分片,中位DF (Don’t Fragment)表示是否可以分片。
-
片偏移——13bit,片偏移以 8 个字节为偏移单位。
- 生存时间——8bit,现在是最大跳跃次数,其目的是防止无法交付的数据报无限制地在互联网中兜圈子(例如从路由器 R1 转发到 R2,再转发到 R3,然后又转发到 R1),因而白白消耗网络资源。
- 协议——8bit,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的 IP 层知道应将数据部分上交给哪个协议进行处理。
- 首部检验和——16bit,只检验数据报的首部,但不包括数据部分
- 源地址——32bit
- 目的地址——32bit
2.6 IP层转发分组的流程
- 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。
- 若 N 就是与此路由器直接相连的某个网络地址,则进行直接交付,不需要再经过其他的路由器,直接把数据报交付目的主机(这里包括把目的主机地址 D 转换为具体的硬件 地址,把数据报封装为 MAC 帧,再发送此帧);否则就是间接交付,执行(3)。
- 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的 下一跳路由器;否则,执行(4)。
- 若路由表中有到达网络 N 的路由,则把数据报传送给路由表中所指明的下一跳路由 器;否则,执行(5)。
- 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否 则,执行(6)。
- 报告转发分组出错。
三.划分子网和构造超网
3.1划分子网
两级IP<网络号,主机号>因其某些而情况下利用率低、路由表过大引起性能下降并且灵活性不高,现将两级IP改成三级IP:
1.子网掩码
于是就有了子网掩码
2.使用子网的分组转发
路由表样式
- 从收到的数据报的首部提取目的 IP 地址 D。
- 先判断是否为直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和 D 逐位相“与”(AND 操作),看结果是否和相应的网络地址匹配。若匹配,则把分组进行直接交付(当然还需要把 D 转换成物理地址,把数据报封装成帧发送出去),转发任务结束。否则就是间接交付,执行(3)。
- 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。【路由器检查路由表中是否有针对 目的地址 D 的具体主机路由条目。】
- 对路由表中的每一行(目的网络地址,子网掩码,下一跳地址),用其中的子网掩码和 D 逐位相“与”(AND 操作),其结果为 N。若 N 与该行的目的网络地址匹配,则把数据报传送给该行指明的下一跳路由器;否则,执行(5)。
- 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。
- 报告转发分组出错。
3.2构造超网
1.无分类编址CIDR
2.最长网络前缀匹配
3.使用二叉线索查找路由表
二叉线索树中的每一个节点代表一个唯一的网络前缀,并且包含子网掩码
四.网际控制报文协议 ICMP

4.1 ICMP报文种类
差差错报告报文
- 终点不可达 当路由器或主机不能交付数据报时就向源点发送终点不可达报文。
- 时间超过 当路由器收到生存时间为零的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。
- 参数问题 当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
- 改变路由(重定向) 路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。
改变路由解答了路由器是如何由初始状态,更新路由表的问题
具体来说:
在主机刚开始工作时,一般都在路由表中设置一个默认路由器的 IP 地址。而这个默认路由器知道到每一个目的网络的最佳路由。
如果默认路由器发现主机发往某个目的地址的数据报的最佳路由应当经过网络上的另一个路由器 R 时,就用改变路由报文把这情况告诉主机。于是,该主机就在其路由表中增加一个项目:到某某目的地址应经过路由器 R(而不是默认路由器)。

IP 数据报的首部+数据字段的前 8 个字节+ICMP差错报告报文的前 8 个字节 = ICMP差错报告报文
不发送ICMP差错报告报文的几种情况
询问报文
- 回送请求和回答 ICMP 回送请求报文是由主机或路由器向一个特定的目的主机发出的询问。收到此报文的主机必须给源主机或路由器发送 ICMP 回送回答报文。这种询问报文用来测试目的站是否可达以及了解其有关状态。
- 时间戳请求和回答 ICMP 时间戳请求报文是请某台主机或路由器回答当前的日期和时间。在 ICMP 时间戳回答报文中有一个 32 位的字段,其中写入的整数代表从 1900 年1 月 1 日起到当前时刻一共有多少秒。时间戳请求与回答可用于时钟同步和时间测量。
五.互联网路由选择协议
本节将讨论几种常用的路由选择协议,也就是要讨论路由表中的路由是怎样得出的。
互联网路由选择协议(Internet Routing Protocols)是用于在互联网或大型网络中选择路径、交换路由信息的协议。它们确保数据包从源主机传递到目的主机的过程中,选择到最佳的路径。根据路由选择算法和应用范围的不同,互联网路由选择协议可以分为以下几种类型:
1. 静态路由和动态路由
- 静态路由:路由表由网络管理员手动配置,不会根据网络拓扑的变化自动更新。适用于简单且稳定的网络,配置较为固定的环境。
- 动态路由:路由器自动根据网络拓扑和链路状态的变化更新路由表。适用于复杂和变化较大的网络。
2. 动态路由协议的分类
动态路由协议可以根据其工作原理分为以下几种:
A. 内部网关协议(IGP,Interior Gateway Protocol)
内部网关协议用于同一自治系统(AS,Autonomous System)内的路由选择。主要的IGP协议有:
-
RIP(Routing Information Protocol,路由信息协议)
- 工作原理:RIP是基于距离矢量算法的路由选择协议。每个路由器与邻居交换路由信息,计算到目的地的最短路径。使用跳数(hop count)作为度量标准,最大跳数为15,超过15跳的目的地被认为不可达。
- 特点:好消息传输快,坏消息传输慢
- 优点:简单、易于配置。
- 缺点:路由收敛速度慢,最大跳数限制了其应用范围,不能很好地支持大规模网络。
-
OSPF(Open Shortest Path First,开放最短路径优先)
- 工作原理:OSPF是基于链路状态算法的路由协议。每个路由器与所有邻居交换链路状态信息,通过计算最短路径树来选择最佳路由。OSPF支持多个区域划分,能有效减少路由表规模。
- 优点:收敛速度快,支持大规模网络,支持更多的路由策略。
- 缺点:配置较为复杂,需要较高的计算和内存资源。
-
IS-IS(Intermediate System to Intermediate System,中间系统到中间系统)
- 工作原理:IS-IS协议与OSPF类似,也是链路状态协议,通常用于大型ISP或企业网络中。它使用ISO/OSI模型中的链路状态协议,采用Dijkstra算法计算最短路径。
- 优点:灵活性高,适应性强,支持大规模网络。
- 缺点:与OSPF相比,配置稍微复杂,且在应用中较为少见。
B. 外部网关协议(EGP,Exterior Gateway Protocol)
外部网关协议用于不同自治系统之间的路由选择,最常见的外部网关协议是BGP(Border Gateway Protocol,边界网关协议)。
- BGP(Border Gateway Protocol)
- 工作原理:BGP是基于路径向量算法的路由选择协议,广泛应用于互联网的自治系统之间的路由选择。它通过交换路由信息来决定如何传递数据,主要使用AS路径作为度量标准。BGP允许路由器之间的策略控制,比如选择最佳路径、避免循环等。
- 优点:可扩展性强,适应互联网规模的路由需求,能够处理复杂的路由策略。
- 缺点:配置复杂,收敛速度相对较慢,需要较高的计算和内存开销。
3. 路由选择协议的工作原理
路由选择协议基本工作原理:
- 路由表维护:路由器通过路由协议交换路由信息,更新本地的路由表,以确保能根据最佳路径将数据包转发到目的地。
- 数据包转发:当路由器收到数据包时,它会检查数据包的目标地址,并根据路由表选择最佳的下一跳路由器或目的地。
- 路由信息交换:路由器之间通过周期性或按需交换路由信息,来动态地调整路由表以适应网络拓扑变化。
主要的路由算法:
- 距离矢量算法:每个路由器仅了解到达目的地的“距离”(如跳数)和“方向”(下一跳路由器)。通过与邻居交换信息,逐步更新路由表。
- 例子:RIP。
- 链路状态算法:每个路由器了解整个网络拓扑(包括其他路由器的链路状态)。通过计算整个网络的最短路径来更新路由表。
- 例子:OSPF、IS-IS。
- 路径向量算法:通过记录从源到目的地的路径信息,并根据路径选择最优路由。
- 例子:BGP。
4. 路由协议的特点
协议类型 | 特点 |
---|---|
RIP | 简单,基于跳数,收敛速度慢,适用于小规模网络。 |
OSPF | 基于链路状态,支持大规模网络,收敛速度快,支持多个区域。 |
IS-IS | 类似于OSPF,但使用不同的协议格式,适用于大型ISP和企业网络。 |
BGP | 用于自治系统之间,支持复杂的路由策略,适用于互联网规模的网络。 |
5. 总结
- **内部网关协议(IGP)**适用于单一自治系统内的路由选择,主要有RIP、OSPF、IS-IS等。
- **外部网关协议(EGP)**适用于自治系统之间的路由选择,主要有BGP。
- 不同协议适用于不同规模的网络,协议的选择取决于网络规模、性能要求以及管理复杂度。
这些路由选择协议使得全球互联网能够高效、可靠地运行,并且随着技术发展,新的路由协议(如SDN等)正在不断被提出,以支持更加灵活和智能的路由选择。
六.IPv6
七.IP多播
IP多播协议(IP Multicast) 是一种在网络中允许单个源主机将数据同时传送给多个目的主机的通信方式。与广播和单播不同,多播允许通过单个数据报文将数据传输到多个接收者,但不会浪费带宽传送给不需要接收数据的主机。IP多播广泛用于实时视频传输、音频广播、软件更新等应用场景。
1. IP多播地址
IP多播地址位于 IPv4 地址空间的特殊范围,具体为:
- IPv4多播地址范围:从 224.0.0.0 到 233.255.255.255。
- 224.0.0.0 到 224.0.0.255 是保留给 局域网内的协议(如路由协议、网络管理协议)使用。
- 233.0.0.0 到 233.255.255.255 是 源特定多播(SSM, Source-Specific Multicast)使用的范围。
- 239.0.0.0 到 239.255.255.255 是 组织范围多播,可供企业内使用。
多播地址的前 4 位是固定的,即 1110
,这就是多播地址的标识位。为了确保多播地址不会和单播地址冲突,IPv4 为多播分配了一个专门的地址范围。
2. IP多播的工作原理
IP多播采用的是 源-接收者模型,由以下几个步骤组成:
-
源主机发送多播数据:
- 源主机将数据报发送到指定的多播地址,数据报的目的地址是多播组地址,而源地址是源主机的IP地址。
-
加入多播组:
- 目的主机(接收者)需要 加入多播组。这通常通过 Internet Group Management Protocol (IGMP) 完成。在 IPv4 中,IGMP 允许主机报告其希望加入或离开的多播组。路由器通过 IGMP 来维护多播组成员的信息。
-
路由器的角色(多播路由协议):
- 网络中的路由器使用 多播路由协议 来确保从源主机到所有接收者之间的路径。常见的多播路由协议有:
- Protocol Independent Multicast (PIM):支持多播路由,并且独立于任何特定的路由协议。
- PIM-SM(Sparse Mode,稀疏模式):适用于有大量多播接收者的网络,使用 多播树。
- PIM-DM(Dense Mode,密集模式):适用于少量接收者的网络,自动创建多播树。
- Distance Vector Multicast Routing Protocol (DVMRP):基于距离向量的协议,适用于小规模多播。
- MOSPF(Multicast Open Shortest Path First):与 OSPF 类似的协议,专门用于多播。
- Protocol Independent Multicast (PIM):支持多播路由,并且独立于任何特定的路由协议。
- 网络中的路由器使用 多播路由协议 来确保从源主机到所有接收者之间的路径。常见的多播路由协议有:
-
多播数据转发:
- 网络中间的路由器根据多播路由协议信息,决定是否将数据包转发到下一跳的路由器或接收者。多播路由协议确保数据仅送到需要的接收者。
-
数据的接收:
- 目的主机通过其网络接口接收并处理多播数据。主机仅接收属于它的多播组的数据。
3. 多播与单播/广播的对比
特性 | 单播(Unicast) | 广播(Broadcast) | 多播(Multicast) |
---|---|---|---|
地址类型 | 单个源和一个目的 | 单个源和所有主机 | 单个源和多个指定主机 |
带宽效率 | 低(每个目的主机都要接收一份) | 极低(所有主机都接收) | 高(仅接收需要的主机) |
路由要求 | 每个路由器都要知道目的主机的路由表 | 所有路由器必须转发广播数据 | 需要多播路由协议支持 |
适用场景 | 点对点通信(如 HTTP) | 需要广播的场景(如ARP) | 实时数据流、视频/音频广播 |
4. 多播的优势与应用
优势:
- 带宽利用率高:通过一个多播数据报同时传输给多个接收者,避免了广播和单播所带来的带宽浪费。
- 高效的数据分发:适合实时性要求高的应用,如视频会议、直播流、软件更新等。
- 降低网络负担:减少了单个源主机向多个目的主机发送多份数据的负担。
应用:
- 视频广播:多播技术广泛应用于视频流和广播电视的网络传输中,特别是 IPTV 和直播。
- 实时音频传输:例如,在会议中多个参与者可以实时接收到音频数据。
- 分布式系统:在需要进行数据分发的分布式系统中,IP多播也被用来同步系统各个节点的状态。
- 大规模软件更新:将软件补丁同时推送到多个计算机。
5. IGMP(Internet Group Management Protocol)
IGMP 是一个用于管理多播组成员的协议,它工作在 网络层,允许主机动态地报告其对多播组的成员资格。IGMP 协议的工作原理大致如下:
- 加入多播组:主机发送 IGMP 加入消息,表明它希望加入特定的多播组。
- 查询和报告:路由器定期发送 IGMP 查询报文,询问是否仍有主机在接收特定的多播组数据。接收主机会响应 IGMP 报告消息,表明自己仍然是该多播组的成员。
- 离开多播组:当主机不再需要接收多播数据时,它会通过 IGMP 离开该多播组。
6. 多播路由协议(PIM)
PIM 是常用的多播路由协议,它有两种工作模式:
- PIM-SM(稀疏模式):适用于大规模多播环境。多播树只有在需要时才会建立,减少了网络开销。
- PIM-DM(密集模式):适用于网络中大多数主机都需要接收多播数据的情况。
PIM 采用 源-接收者树 或 共享树 来转发数据,保证数据能高效地从源主机传递到所有需要的接收者。
总结
IP多播是一种非常高效的数据传输方式,广泛应用于需要实时传输的应用中。通过多播,源主机可以将数据同时发送给多个目的主机,避免了广播和单播带来的带宽浪费,适用于视频流、音频广播等场景。实现多播需要依赖于 IGMP 协议和多播路由协议(如 PIM),并且必须支持多播地址的使用。
八.VPN&NAT
九.多协议标记交换MPLS
相关文章:
计算机网络——网络层
重点内容: (1) 虚拟互连网络的概念。 (2) IP 地址与物理地址的关系。 (3) 传统的分类的 IP 地址(包括子网掩码)和无分类域间路由选择 CIDR 。 (4) 路由选择协议的工作原理。 目录 重点内容: 一.网络层提供的两种服务 二…...
每打开一个chrome页面都会【自动打开F12开发者模式】,原因是 使用HBuilderX会影响谷歌浏览器的浏览模式
打开 HBuilderX,点击 运行 -> 运行到浏览器 -> 设置web服务器 -> 添加chrome浏览器安装路径 chrome谷歌浏览器插件 B站视频下载助手插件: 参考地址:Chrome插件 - B站下载助手(轻松下载bilibili哔哩哔哩视频)…...
cesium绕点旋转
绕点旋转的原理可以理解为相机一直看向一个点,不断改变相机的位置 let position Cesium.Cartesian3.fromDegrees(longitude, latitude) let lookAtTimer setInterval(() > {let heading viewer.camera.heading;let pitch viewer.camera.pitch;if (heading &…...
JavaScript系列(36)--微服务架构详解
JavaScript微服务架构详解 🏗️ 今天,让我们深入了解JavaScript的微服务架构,这是构建大规模分布式系统的关键技术。 微服务基础概念 🌟 💡 小知识:微服务架构是一种将应用程序构建为一组小型服务的方法&…...
神经网络基础 | 给定条件下推导对应的卷积层参数
神经网络基础 | 给定条件下推导对应的卷积层参数 按照 PyTorch 文档中 给定的设置: H o u t ⌊ H i n 2 padding [ 0 ] − dilation [ 0 ] ( kernel_size [ 0 ] − 1 ) − 1 stride [ 0 ] 1 ⌋ H_{out} \left\lfloor\frac{H_{in} 2 \times \text{padding}[0]…...
面向CTF的python_requests库的学习笔记
看师傅们写的各种脚本羡慕不已,自己却只会一点一点手搓,于是来做个笔记 requests库是干嘛的? 顾名思义,request就是请求,可以用来向服务器发送请求。它可以代替你在网站上发送请求报文,并接受回应报文。简…...
MIAOYUN信创云原生项目亮相西部“中试”生态对接活动
近日,以“构建‘中试’生态,赋能科技成果转化”为主题的“科创天府智汇蓉城”西部“中试”生态对接活动在成都高新区菁蓉汇隆重开幕。活动分为成果展览、“中试”生态主场以及成果路演洽谈对接三大板块。在成果展览环节,成都元来云志科技有限…...
Papers with Code:从代码索引到AI创新引擎
标题:Papers with Code:从代码索引到AI创新引擎 文章信息摘要: Papers with Code从解决机器学习论文代码复现的特定需求起步,通过建立全面的ML资源库和首个系统性leaderboard系统,快速积累了大量用户基础。被Meta收购…...
FastExcel 新一代的潮流 (EasyExcel)
目录 简介 FastExcel的特点 FastExcel使用方法详解 创建实体类和监听器 实现写入和读取功能 Excel转换为PDF 小结 FastExcel与EasyExcel的区别 结论 简介 FastExcel是由原EasyExcel作者在阿里巴巴宣布停止维护EasyExcel之后推出的升级版框架。它继承了EasyExcel的所有…...
Linux静态库与动态库的理解
Linux静态库与动态库的理解 一、静态库如何创建和使用静态库 二、动态库如何创建和使用动态库 三、静态库与动态库的关键区别四、总结 在 Linux 编程中,静态库和动态库是非常重要的概念 一、静态库 静态库是将多个目标文件(.o 文件)打包成一…...
mongoose 支持https踩坑纪实
简述 mongoose是C编写的嵌入式web服务,它能够支持https协议,可以简单的部署,但要做到完美部署,不是那么容易。 部署方法 本人使用的是最新的7.16版,以前版本似乎是要通过修改 头文件中的 MG_ENABLE_SSL 宏定义&…...
人工智能之数学基础:线性表达和线性组合
本文重点 线性表达和线性组合作为线性代数的核心概念,不仅深刻揭示了向量空间的基本性质,也为解决复杂问题提供了直观而有效的方法。 向量组 要想学习线性表达和线性组合,先来理解向量组。在线性代数中,向量组是指由若干个向量构成的集合。这些向量可以是二维的、三维的…...
uniapp——App 监听下载文件状态,打开文件(三)
5 实现下载文件并打开 这里演示,导出Excel 表格 文章目录 5 实现下载文件并打开DEMO监听下载进度效果图为什么 totalSize 一直为0? 相关Api: downloader DEMO 提示: 请求方式支持:GET、POST;POST 方式需要…...
Microsoft SQL Serve的下载与安装
1.访问Microsoft SQL Serve官网 SQL Server 下载 | Microsoft开始使用 Microsoft SQL Server 下载。选择最符合你的数据和工作负载需求的 SQL Server 试用版、版本、工具或连接器。[这里是图片001]https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.下载SQL…...
JMeter 测试Dubbo 接口
在使用 JMeter 进行 Dubbo 接口的测试时,JMeter 本身并没有直接支持 Dubbo 协议(基于 RPC)的插件。但是,我们可以通过以下几种方式来测试 Dubbo 接口: 1. 使用 JMeter 的 Java 请求(JDBC 请求)…...
Java 日志技术、Logback日志框架、日志级别
一. 日志 1. 日志:程序中的日志,通常就是一个文件,里面记录的是程序运行过程中的各种信息。 二. 日志技术 1. 日志技术:可以将系统执行的信息,方便的记录到指定的位置(控制台、文件中、数据库中) 2. 可以随时以开关的…...
美妆系列圣罗兰气垫粉色与黑色有什么区别?
在美妆界,圣罗兰的气垫一直备受青睐,而其中粉色款和黑色款更是有着各自的特点,存在不少区别呢。 从外观设计来看,粉色款整体给人一种温柔、甜美的感觉,外壳颜色清新,很容易击中少女心,携带在身边…...
HTML中的`<!DOCTYPE html>`是什么意思?
诸神缄默不语-个人CSDN博文目录 在学习HTML时,我们经常会看到HTML文档的开头出现<!DOCTYPE html>,它是HTML文件的第一行。很多初学者可能会疑惑,为什么需要这行代码?它到底有什么作用呢?在这篇文章中࿰…...
Sudo命令的配置及使用
概念 sudo 命令是 Linux 系统中一个非常重要的工具,它允许普通用户以超级用户(通常是 root)或其他用户的身份执行命令。从概念上来说,在普通用户在权限不够的时候,通过 sudo 命令 “摇人”,这个 “人” 就是…...
【HarmonyOS NEXT】鸿蒙三方应用跳转到系统浏览器
【HarmonyOS NEXT】鸿蒙三方应用跳转到系统浏览器 一、前言: 从三方应用跳转到系统浏览器是比较常见的功能。 拓展应用功能边界: 三方应用的功能通常相对聚焦和特定,无法涵盖用户可能需要的所有网络浏览需求。跳转到系统浏览器能让用户访问…...
电梯系统的UML文档06
系统传感器 系统值是用于控制系统的。在类图中系统传感器用一个箭头和系统控制对象连接。 类图中的系统传感器包括AtFloor、电梯呼叫器、关门、开门、门反转、楼层呼叫器和驱动(AtFloor,CarCall,DoorClosed,DoorOpen,…...
指针之旅:从基础到进阶的全面讲解
大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 本文目录 引言正文(1)内置数…...
AT8870单通道直流电机驱动芯片
AT8870单通道直流电机驱动芯片 典型应用原理图 描述 AT8870是一款刷式直流电机驱动器,适用于打印机、电器、工业设备以及其他小型机器。两个逻辑输入控制H桥驱动器,该驱动器由四个N-MOS组成,能够以高达3.6A的峰值电流双向控制电机。利用电流…...
RISC-V读书笔记
目录 关于RISC-V 关于RISC-V 简洁 RISC-V是一个崭新的架构,比起来传统的x86-64架构,他更加的简约和现代。下面这种图像阐述了传统的x86的指令集的膨胀速度有多么的吓人(汗颜 这是可以理解的,我们的ISA(Computer Syst…...
游戏开发中常用的设计模式
目录 前言一、工厂模式简单工厂模式工厂方法模式抽象工厂模式 二、单例模式三、观察者模式观察者模式的优势 四、状态模式状态模式的优势 五、策略模式策略模式的优势 六、组合模式七、命令模式八、装饰器模式策略模式与状态模式有什么区别呢? 前言 本文介绍了游戏开发中常用…...
Android 11适配全攻略:从理论到实践
随着Google正式发布Android 11,开发者们迎来了新的挑战和机遇。Android 11不仅带来了全新的用户体验和功能提升,还要求开发者们对应用进行相应的适配,以确保应用的兼容性和稳定性。本文将从理论到实践,全面解析Android 11的适配攻…...
Grafana 统一可视化了,告警如何统一?
对于大部分公司,通常都不止一套监控、可观测性相关的系统,云上的、云下的,开源的、商业的,指标的、日志的、链路的,各个系统体验不同,权限难管,如何统一化并为各个团队赋能,是很多技…...
ubuntu20.04有亮度调节条但是调节时亮度不变
尝试了修改grub文件,没有作用,下载了brightness-controllor,问题解决了。 sudo add-apt-repository ppa:apandada1/brightness-controller sudo apt update sudo apt install brightness-controller 之后在应用软件中找到brightness-contro…...
抖音小程序一键获取手机号
前端代码组件 <button v-if"!isFromOrderList"class"get-phone-btn" open-type"getPhoneNumber"getphonenumber"onGetPhoneNumber">一键获取</button>// 获取手机号回调onGetPhoneNumber(e) {var that this tt.login({f…...
某政务行业基于 SeaTunnel 探索数据集成平台的架构实践
分享嘉宾:某政务公司大数据技术经理 孟小鹏 编辑整理:白鲸开源 曾辉 导读:本篇文章将从数据集成的基础概念入手,解析数据割裂给企业带来的挑战,阐述数据集成的重要性,并对常见的集成场景与工具进行阐述&…...
学习ASP.NET Core的身份认证(基于JwtBearer的身份认证8)
为进一步测试通过请求头传递token进行身份验证,在main.htm中增加layui的数据表格组件,并调用后台服务分页显示数据,后台分页查询数据接口如下所示(测试时,直接将数据写死到代码中,没有查询数据库࿰…...
Android 高德地图API(新版)
新版高德地图 前言正文一、创建应用① 获取PackageName② 获取调试版安全码SHA1③ 获取发布版安全码SHA1 二、配置项目① 导入SDK② 配置AndroidManifest.xml 三、获取当前定位信息① ViewBinding使用和导包② 隐私合规设置③ 权限请求④ 初始化定位⑤ 获取定位信息 四、显示地…...
51c~缺陷检测~合集2
我自己的原文哦~ https://blog.51cto.com/whaosoft/12386431 一、缺陷检测~使用深度学习1 这里研究工业ai, 在制造业中任何公司的主要目标都是为客户生产无缺陷产品。如果在产品开发过程中出现任何内部孔、凹坑、磨损或划痕(由于多种原因,从生产设备…...
强化学习与ai黑科技实例
一.强化学习简介和其应用 (1)强化学习,深度学习,有监督,无监督区别与联系。 1)强化学习讨论的核心就是智能机(agent)怎么在复杂,不确定的环境中最大化它能获得的奖励。 2)人工智能包括机器学习,机器学习包括有监督学习,无监督学习(例如聚类…...
《TikTok归来:机遇与挑战并存》
TikTok 回归:波折中的 “重生” 在全球社交媒体的版图中,TikTok 的存在无疑是一颗璀璨的明星。它以独特的短视频形式、强大的算法推荐以及丰富多样的内容,迅速风靡全球,吸引了数以亿计的用户。然而,其发展并非一帆风顺…...
Rust语言的正则表达式
Rust语言的正则表达式 正则表达式(Regular Expressions,简称Regex)是一种强大的文本处理工具,广泛应用于字符串的搜索、匹配、替换和解析。在Rust语言中,正则表达式的支持既高效又功能强大,非常适合开发者…...
三维扫描赋能文化:蔡司3D扫描仪让木质文化遗产焕发新生-沪敖3D
挪威文化历史博物馆在其修复工作中融入现代3D扫描技术,让数百年的历史焕发新生。 文化历史博物馆的工作 文化历史博物馆是奥斯陆大学的一个院系。凭借其在文化历史管理、研究和传播方面的丰富专业知识,该博物馆被誉为挪威博物馆研究领域的领先机构。馆…...
c# PDF文件合并工具
界面 主要用于发票PDF文件的合并。经常出差要报销的很有用。 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.IO; using System.Linq; using System…...
【16届蓝桥杯寒假刷题营】第1期DAY5
5.依依的询问最小值 - 蓝桥云课 问题描述 依依有个长度为 n 的序列 a,下标从 1 开始。 她有 m 次查询操作,每次她会查询下标区间在 [li,ri] 的 a 中元素和。她想知道你可以重新排序序列 a,使得这 m 次查询的总和最小。 求你求出 m 次…...
.NET周刊【1月第1期 2025-01-05】
国内文章 3款.NET开源、功能强大的通讯调试工具,效率提升利器! https://www.cnblogs.com/Can-daydayup/p/18631410 本文介绍了三款功能强大的.NET开源通讯调试工具,旨在提高调试效率。这些工具包括LLCOM,提供串口调试和自动化处…...
(7)(7.2) 围栏
文章目录 前言 1 通用设置 2 围栏类型 3 破坏栅栏行动 4 使用 RC 通道辅助开关启用栅栏 5 自动高度规避 6 在任务规划器中启用围栏 7 用于遥控飞行训练 8 MAVLink 支持 前言 ArduPilot 支持基于本机的圆柱形(“TinCan”)和多边形和/或圆柱形、…...
1166 Summit (25)
A summit (峰会) is a meeting of heads of state or government. Arranging the rest areas for the summit is not a simple job. The ideal arrangement of one area is to invite those heads so that everyone is a direct friend of everyone. Now given a set of tenta…...
linux_socket
udp 通信 server #include <iostream> #include <arpa/inet.h> #include <unistd.h> #include <cstring>using namespace std;#define UPORT 12511int main(){int sock socket(AF_INET, SOCK_DGRAM, 0); // 创建一个UDP套接字if (sock -1) {cout&…...
Linux探秘坊-------3.开发工具详解(2)
1.动静态库和动静态链接(操作) 静态库是指编译链接时,把库⽂件的代码全部加⼊到可执⾏⽂件中,因此⽣成的⽂件 ⽐较⼤,但在运⾏时也就不再需要库⽂件了。其后缀名⼀般为“.a” 动态库与之相反,在编译链接时并 没有把库⽂件的代码加⼊到可执⾏⽂件中 ,⽽…...
Mysql InnoDB B+Tree是什么?
“mysql中常用的数据库搜索引擎InnoDB,其索引通过BTree的方式进行构建。” 实在想不起来BTree是怎么一回事了。以点带线,将涉及到的数据结构一起复习一下。 文章目录 数据结构定义红黑树定义使命 BTree定义使命 BTree定义 InnoDB BTree 旋转与调整二叉排序树插入删…...
C语言进阶习题【1】指针和数组(1)——一维数组
1. 数组名的意义: sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小。&数组名,这里的数组名表示整个数组,取出的是整个数组的地址。除此之外所有的数组名都表示首元素的地址。(一维数…...
2024:成长、创作与平衡的年度全景回顾
文章目录 1.前言2.突破自我:2024年个人成长与关键突破3.创作历程:从构想到落笔,2024年的文字旅程4.生活与学业的双重奏:如何平衡博客事业与个人生活5.每一步都是前行:2024年度的挑战与收获6.总结 1.前言 回首2024年&a…...
【Linux】网络基础探索:开启你的网络之旅
🌈 个人主页:Zfox_ 🔥 系列专栏:Linux 目录 一:🔥 计算机网络背景 🦋 1-1 网络发展 二:🔥 初识协议 🦋 2-1 协议分层协议分层 vs. 软件分层 🦋 2-…...
function isBulkReadStatement, file SQLiteDatabaseTracking.cpp
一问题:Xcode16.0运行在iPhone16/ios18.0 以上发生闪退, 闪退在 YYCache–>YYKVStorage 文件内。 以上删除保以下错误: function isBulkReadStatement, file SQLiteDatabaseTracking.cpp 解决方案: 找到YYKVStorage文件中_d…...
React 中hooks之useTransition使用总结
目录 概述基本用法使用场景最佳实践注意事项 概述 什么是 useTransition? useTransition 是 React 18 引入的新 Hook,用于标记非紧急的状态更新。它允许组件在状态转换期间保持响应,通过将某些更新标记为"过渡"来推迟它们的渲染。 主要特…...