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

【IPv6】IPv6地址格式及地址分类(组播、单播、任播)整理

IPv6地址格式

       IPv6 地址从 IPv4 地址的 32 bits 扩展到 128 bits,IPv6 地址的表示、书写方式也从 IPv4 的点分十进制,修改16进制的冒号分割

IPv4 点分格式(.)

192.168.11.11

IPv6 冒号分割(:)

2408:8459:3032:0000:0000:0000:0001:a9fd

IPv6 的规范

IPv6 地址,IETF 在标准中规定了 IPv6 的规范文本表示形式:

省略每个字段中的前导零

压缩前:0000:0000:0000:0000:0000:0000:0000:0001
压缩后:::1

使用双冒号 “::” 替换连续全零的字段

       每一块多个前导的0可以省略,一个块全为0可以简写为一个0,,多个块为连续0的话可以简写为:: (地址表示中仅能有一个::)

压缩前:2001:0410:0000:0000:fb00:1200:5000:4500
压缩后:2001:410::fb00:1200:5000:4500

压缩前:2001:0410:0000:1234:fb00:1200:5000:4500
压缩后:2001:410::1234:fb00:1200:5000:4500

压缩前: 3ffe:0000:0000:0000:1010:2a2a:0000:0001
压缩后:3ffe::1010:2a2a:0:1

不允许压缩单个零字段

压缩前: 3ffe:0000:0000:0000:1010:2a2a:0000:0001
压缩后:3ffe::1010:2a2a:0:1

十六进制中的 a, b, c, d, e, f 必须是小写的

2001:0410:0000:1234:fb00:1200:5000:4500

IPv6 地址分类

单播 (Unicast)

        单播地址唯一标识一个 IPv6 节点的接口。发送到单播地址的报文将被发送到由该地址标识的接口。

全球单播地址

       全球单播(Global Unicast) 一般从运营商处申请到的IPv6地址空间为/48,三个最高有效位始终设置为001,再由自己根据需要进一步规划:

       

链路本地单播地址 

        只在本地链路的节点之间使用,不会被路由(不同的链路上可以重复),用来自动地址配置、邻居发现、路由器发现等等,每个ipv6接口都必须具备的地址,且默认自动配置。类似于windows系统中IPv4的169.254.0.0/16地址(link-local IPv4 address)它的有效范围仅仅在所处链路上。以FE80::/10为前缀,11-64位为0,外加一个64bits的接口标识(一般是EUI-64)。

        链路本地地址是仅用于与同一本地链路上的设备进行通信。必须保证这些地址在链路上的唯一性,因为数据包不会被路由到该链路之外。也就是说,路由器不会转发任何以链路本地地址为源地址或目的地址的数据包。所有 IPv6 网络接口都配置链路本地地址,前缀为 fe80::/10 (实际上是 fe80::/64 的子集)。

环回

       与 IPv4 环回地址 127.0.0.1 等价。不能将该地址分配给任何物理接口,主机可以利用此地址向自己发送 IPv6 数据包。在路由器等网络设备上,通常使用环回地址来建立路由协议的邻居。

未指定地址

      未指定地址是全 0 地址,不能分配给接口。未指定地址被用作源地址以表示接口无 IPv6 地址,仅被用做源地址。

本地唯一地址

       其实就是类似ipv4的内网地址,ipv4有三段192.168/16、10/8、172.16~172.31/16,只能在私网内使用,自行配置网段

        本地唯一地址的前缀为:fc00::/7,是对 IPv4 私有地址的替换 (RFC 1918),仅供在一个站点或一组站点中本地使用。本地唯一地址具有全局唯一性,但无法在全球互联网上路由。本地唯一地址解决了 IPv4 和 RFC 1918 地址中出现的一些操作问题,被设计用于企业站点或有限的网络集。
ULAs 必须通过在路由器上配置本地前缀 (Router Advertisement) 或通过 DHCPv6 来分配,地址结

 

内嵌IPv4

        映射 IPv4 地址的 IPv6 地址,用来帮助从 IPv4 迁移到 IPv6,如在 IPv6 套接字上处理 IPv4 连接。使用前缀 ::ffff:0:0/96 (0:0:0:0:0:ffff:0:0/96),例如 ::ffff:192.0.2.124。注意,这里的文本表示方式略有不同,以便更容易在 IPv6 地址中嵌入 32 位 IPv4 地址。

        这个地址就是把IPv4地址包含在IPv6地址中,把IPv6地址的高80位全部设置为0, 然后中间16位设置为1, 低32位设置为IPv4地址。如下图:

image-20210417163307557

组播 (Multicast)

       IPv6 组播(多播)地址是一组接口的标识符(典型在不同节点上)。一个接口可以属于任何数目的组播组。组播地址最高位前8位固定为全1,也就是“FFXX::/8”

       IPv6通信的核心大量的使用了组播(邻居发现协议NDP),IPv6不再使用广播。IPv6的任何节点都能够成为一个组播成员,源节点可以发送数据包到组播组,任何一个组播成员都能收到来自这个组播组的数据包。

well-known组播

Interface-local scope

Link-local scope
 Site-local scope

节点请求(Solicited-Node)

       Solicited-Node多播地址前缀是ff02:0:0:0:0:1:ff00::/104,Solicited-Node多播地址用于主要用于NDP(Neighbor Discovery Protocol)协议,NDP协议的功能有两个:

Address resolution

Duplicate Address Detection (DAD)

       NDP协议的Address resolution功能就类似IPv4的ARP协议,名字都一样,就是根据IP地址请求MAC地址。DAD功能是用来检测局域网中的所有设备的单播地址都是不同的。

        在IPv4环境中,ARP地址解析协议利用广播将MAC请求消息发送给整个以太网链路上的所有主机,目的主机回应ARP Reply从而使发送源获得目的主机的MAC地址。

        节点请求则以一种“点对点”的形式将MAC地址请求消息发送到目标主机(因为主机的请求节点组播地址如FF02::1:FFAA:4C3E在整个链路上是唯一的),所以源主机可以直接将节点请求信息发到目标主机节点请求组播地址上,节点请求组播地址是提高MAC地址解析的核心技术,那么这个目标主机的节点请求组播是如何生成的?

        节点请求组播的构成如下: 该组播地址是将一个单播IPv6地址(可以是本地链路地址也可以是全球单播地址)的后24位填充到一个请求节点组播地址的124位的固定前缀FF02::1:FF中,生成一个唯一的节点请求组播地址。

        如一台IPv6主机的本地链路地址为FECO:0000:0000:0000:0230:18FF:FEAA:4C3E,现在通过对这个地址的实践分析,来理解该地址所对应的节点请求组播地址的构成原理,如下图所示。首先是还原节点请求组播地址的124位固定前缀的标准格式:“FF02:0000:0000:0000:0000:0001:FF”然后取出IPv6主机的本地链路地址FECO:0000:0000:0000:0230:18FF:FEAA:4C3E中的最后24位,填充到“FF02:0000:0000:0000:0000:0001:FF”前缀中,IPv6使用十六进制表达,那么一个十六进制字符是4个二进制位,所以需要将IPv6单播地址中的最后6个字符(二进制为24位)取下填充到124位固定前缀中形成最后的地址:FF02:0000:0000:0000:0000:0001:FFAA:4C3E,最后使用“零压缩”法表示成为:FF02::1:FFAA:4C3E。

 IPv6的组播地址与MAC地址的映射关系

       IPv6的节点请求多播地址去替代了ARP地址解析协议的目标广播地址255.255.255.255,这只能表示IPv6的节点请求从网络层上的优化与改进,在数据链路层优化则是:

        在IPv4的ARP地址解析协议中的请求消息报文的目标链路层地址为FFFF.FFFF.FFFF,那么在IPv6中节点请求消息报文的目标链路层地址是什么?在IPv4中组播的IP地址是可以映射成为数据链路层的MAC地址,在IPv6中这个概念仍然生效,IPv6的节点请求组播地址也可以映射成数据链路层地址,具体方法如下图所示组播的MAC地址是通地IPv6的组播IP地址映射而来,映射的原则是:将IPv6组播地址的后32位取出,填充到固定前缀是3333的MAC地址中来生成数据链路层地址。

Win10系统中通过netsh interface ipv6 show neighbors可查看设备各个接口下的邻居建立情况: 

单播地址到Solicited-Node组播地址的映射

       Solicited-Node组播地址前104位是固定的,还剩下的24位则是来自单播地址,这剩下24位和单播地址是相同的。如下图,把单播地址的低24位拷贝过来,作为Solicited-Node多播地址的低24位。

这个单播地址可以是全局单播地址,也可以是Link-Local单播地址。

Solicited-Node组播地址到MAC地址的映射

        Solicited-Node组播地址要映射到MAC地址上,就是Mac地址的高12位不变,低32位改为Solicited-Node多播地址的低32位。如图所示:


 

组播地址示例

       IPv6 标准为所有的 NTP servers 定义了组播组 ID:0x101
这个组 ID 可以与不同的范围值一起使用:

注意:
临时分配的多播地址只有在定义的范围内才有意义。
组播地址不应用作 IPv6 报文的源地址或出现在任何路由报头中。
node-local scope 修改为 interface-local scope

任播 (Anycast)        

          任播地址的作用是在多台主机或多台路由器提供相同服务的场合下实现冗余性和负载均衡机制。任播并不专用于IPv6,早在1993年的RFC 1546中就已经将任播定义为用于IPv4的试验性规范。该规范为任播定义了专用前缀,使得通过该前缀即可识别任播地址。任播主要应用于DNS和HTTP等服务。为了正确处理这些非全局唯一的地址,该RFC还讨论了需要对TCP做的可能修改。

         但是在实际应用中,任播并没有得到所期望的实现和使用。通常使用的是一种被称为共享单播地址(shared unicast address)的方法。该方法通过将一个普通单播地址分配给多个接口并在路由表中创建多个路由表项。在这种情况下,网络层和传输层都将其视为全局唯一的IP地址。如果不是,那么应用程序中就必须内嵌处理这种有歧义地址的相关机制。一种例外情况就是应用程序采用了独立的无状态请求/应答处理方式,如DNS over UDP。Internet上的根DNS就是使用共享单播地址设立的,该过程无需网络层的任何支持,也能用于IPv6。

        IPv6开发人员在设计之初就考虑如何根据RFC 1546将任播融合到网络层中,因而没有为任播分配特殊前缀。IPv6任播地址空间与全局单播地址完全相同,因而必须为任播参与接口明确说明所配置的是任播地址。在接口包含相同任播地址的区域中,必须在路由表中将每台主机都宣告为一条独立的表项。如果多播接口没有可定义的区域,那么就要通过Internet传播所有的任播表项(这是最坏的一种情况),因而建议不使用或严格限制这类全局任播地址。

        如果网络中的一组路由器都能提供访问公共路由域的能力,那么就可以为这组路由器分配单个地址。客户端向该地址发送数据包时,会被依次转发给可用路由器。一个例子就是RFC 3068中定义的6to4中继任播地址(将在第10章讨论)。移动IPv6规范也使用了任播地址。

       需要注意到是,使用任播地址时,发送端无法控制将数据包发送到特定接口,该决策是在路由协议层面确定的。发送端向任播地址发送多个数据包的时候,数据包可能会到达不同的目的端。因此,如果是一系列请求和应答消息或者数据包被分段了,任播就可能会出现问题。

       RFC 4291 规定的子网路由器的任播地址如下:

        基本上,该地址看起来像一个常规的单播地址,带有指定子网的前缀和设置为全零的标识符。发送到这个地址的数据包将被发送到该子网的一台路由器上。所有路由器都需要支持它们有接口的子网的子网路由器任播地址。

       保留子网任播地址可以有两种格式:   

 

 RFC 2526 规定在每个子网内,最大的 128 个接口标识值将保留为子网任播地址分配。
Reserved anycast IDs

        这种形式的任播地址和共享单播地址之间的主要区别是,在后者中,应用程序需要支持任播,而在前者中,如果可能的话,将避免这种支持。我们需要指导如何使用它和修改现有的有状态传输协议。 

        任播地址与共享单播地址在使用上的主要区别在于,使用共享单播地址时,应用必须支持任播,而使用任播地址时,应用可以不支持任播,因而需要有相应的使用指南并说明如何对现有的状态化传输协议进行修改。Draft-doi-ipv6-anycast-func-term-05.txt描述了IPv6任播的使用条件以及使用要点。 

任播与组播的区别

       任播是将报文转发到一组节点中的一个(仅是一个),而组播却是将 报文转发给一组节点中的所有成员。
        Server A, B, C均申明适用任播地址2001:AD02::1, 路由器根据路由协议决定将目的为2001:AD02::1的报文发给三者中的一个(如:Cost最小的Server C)

IPv6 vs. IPv4 特殊地址

PrefixDesignationIPv4 equivalent
::/128Unspecified
This address may only be used as a source address by an initializing host before it has learned its own addresses.
0.0.0.0
::1/128Loopback
This address is used when a host talks to itself over IPv6. This often happens when one program sends data to another.
127.0.0.1
::ffff/96

Example: ::ffff:192.0.2.47

IPv4-mapped
Used to embed IPv4 addresses in an IPv6 address. One use for this is in a dual-stack transition scenario where IPv4 addresses can be mapped into an IPv6 address. See RFC 4038 for more details.
No IPv4 equivalent. However, you can search for the mapped IPv4 address in the relevant Whois Database.
fc00::/7

Example: fdf8:f535:82e4::53

Unique Local Addresses (ULAs)
Reserved for local use in home and enterprise environments (not public address space).
Private, or RFC 1918 address space:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16
fe80::/10

Example: fe80::200:5aee:feaa:20a2

Link-Local Addresses

Used on a single link or a non-routed common access network, such as an Ethernet LAN. They do not need to be unique outside of that link.

May appear as the source or destination of an IPv6 packet. Routers must not forward IPv6 packets if the source or destination contains a link-local address.

169.254.0.0/16
2001:0000::/32

Example: 2001:0000:4136:e378:8000:
63bf:3fff:fdd2

Teredo
This is a mapped address allowing IPv6 tunnelling through IPv4 NATs. The address is formed using the Teredo prefix, the server’s unique IPv4 address, flags describing the type of NAT, the obscured client port, and the client IPv4 address, which is usually a private address. It is possible to reverse the process and identify the IPv4 address of the relay server, which can then be looked up in the relevant Whois Database.
No IPv4 equivalent
2001:0002::/48

Example: 2001:0002:6c:ab::a

Benchmarking
Reserved for use in documentation. They should not be used as source or destination addresses.
198.18.0.0/15
2002::/16

Example: 2002:cb0a:3cdd:1::1

6to4
A 6to4 gateway adds its IPv4 address to this 2002::/16, creating a unique /48 prefix. As the IPv4 address of the gateway router is used to compose the IPv6 prefix, it is possible to reverse the process and identify the IPv4 address, which can then be looked up in the relevant Whois Database.

See how it works on Potaroo.

There is no IPv4 equivalent, but 192.88.99.0/24 has been reserved as the 6to4 relay anycast address prefix by the IETF.
2001:db8::/32

Example: 2001:db8:8:4::2

Documentation
used in examples and documentation. These should never be source or destination addresses.
  • 192.0.2.0/24
  • 198.51.100.0/24
  • 203.0.113.0/24
2000::/3Global Unicast
The operators of networks using these addresses can be found using the RIR Whois servers listed in the IANA registry.
No equivalent single IPv4 block
ff00::/8

Example: ff01:0:0:0:0:0:0:2

Multicast
Used to identify multicast groups. They should only be used as destination addresses, never as source addresses.
224.0.0.0/4

 参考链接

ipv6地址零压缩方法_IPv6地址详解-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/weixin_39983554/article/details/112415232IPv6 地址格式及报文详解_ipv6格式-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/u013669912/article/details/139904198
华为数通 IPv6 全球单播地址、组播、任播 | Leoco-Blog (zleoco.com)icon-default.png?t=O83Ahttps://www.zleoco.com/?p=2155

 

相关文章:

【IPv6】IPv6地址格式及地址分类(组播、单播、任播)整理

IPv6地址格式 IPv6 地址从 IPv4 地址的 32 bits 扩展到 128 bits,IPv6 地址的表示、书写方式也从 IPv4 的点分十进制,修改16进制的冒号分割 IPv4 点分格式(.) 192.168.11.11 IPv6 冒号分割(:) 2408:8459:3032:0000:0000:0000:0001:a9fd IPv6 的规范…...

Linux数据备份

1、Linux服务器中哪些数据需要备份 1)Linux系统重要数据: ①/root/目录,管理员家目录 ②/home/目录,普通用户家目录 ③/etc/目录 ,系统重要的配置文件保存目录 2)安装服务的数据:例apache①…...

回到原点再出发

原文What Goes Around Comes Around作者Michael Stonebraker & Joseph M. Hellerstein其他译文https://zhuanlan.zhihu.com/p/111322429 1. 摘要 本文总结了近35年来的数据模型方案,分成9个不同的时代,讨论了每个时代的方案。我们指出,…...

SimpleFoc以及SVPWM学习补充记录

SimpleFoc SimpleFOC移植STM32(一)—— 简介 FOC控制的过程是这样的: 对电机三相电流进行采样得到 Ia,Ib,Ic。将 Ia,Ib,Ic 经过Clark变换得到 I_alpha I_beta。将 I_alpha I_beta 经过Park变换得到 Id,Iq。计算 Id,Iq 和其设定值 Id_ref 和…...

免费 Oracle 各版本 离线帮助使用和介绍

文章目录 Oracle 各版本 离线帮助使用和介绍概要在线帮助下载离线文档包:解压离线文档:访问离线文档:导航使用:目录介绍Install and Upgrade(安装和升级):Administration(管理&#…...

刷题 二叉树

二叉树的核心思想 - 递归 - 将问题分解为子问题 题型 递归遍历迭代遍历层序遍历 bfs:队列各种递归题目:将问题分解为子问题二叉搜索树 - 中序遍历是递增序列 TreeNode* &prev 指针树形dp 面试经典 150 题 - 二叉树 104. 二叉树的最大深度 广度优…...

操作系统 | 学习笔记 | 王道 | 4.1 文件系统基础

4.文件管理 4.1 文件系统基础 4.1.1 文件的基本概念 定义 文件是以计算机硬盘为载体的存储在计算机上的信息集合,在用户进行的输入、输出中,以文件位基本单位。 文件管理系统是实现的文件的访问、修改和保存,对文件维护管理的系统。 文件的…...

var let const 之间的区别

在JavaScript中,var、let 和 const 是用于声明变量的三种关键字。它们之间有几个重要的区别: 1. 作用域 var: 声明的变量具有函数作用域,即在整个函数内都可以访问。如果在代码块内(如if或for)使用var,该…...

【springboot】简易模块化开发项目整合Swagger2

接上一项目【springboot】简易模块化开发项目整合MyBatis-plus,进行拓展项目 1.新建模块 右键项目→New→Module,新建一个模块 父项目选择fast-demo,命名为fast-demo-config,用于存放所有配置项 添加后,项目结构如图…...

【Linux第五课-进程概念下】环境变量、程序地址空间

目录 环境变量main参数 --- 命令行参数环境变量环境变量特性 --- 命令行操作main函数的参数获取环境变量environ获取环境变量getenv()获取环境变量unset移除本地变量或环境变量set显示本地变量 代码获取和设置环境变量 本地变量 程序地址空间什么是进程地址空间为什么有地址空间…...

mysql学习教程,从入门到精通,SQL 临时表(37)

1、SQL 临时表 在SQL中,临时表(Temporary Table)是一种在会话或连接期间临时存储数据的表。它们对于存储中间结果、简化复杂查询以及提高性能非常有用。以下是一个创建和使用临时表的示例。 假设我们有一个名为 employees 的表,…...

算法闭关修炼百题计划(四)

仅供个人复习 1.两数相加2.寻找峰值6.岛屿的最大面积3.最大数4.会议室5.最长连续序列6.寻找两个正序数组的中位数 1.两数相加 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请…...

头歌实践教学平台 大数据编程 实训答案(二)

第三阶段 Spark算子综合案例 Spark算子综合案例 - JAVA篇 第1关:WordCount - 词频统计 任务描述 本关任务:使用 Spark Core 知识编写一个词频统计程序。 相关知识 略 编程要求 请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下: …...

路由交换实验指南

案例 01:部署使用 eNSP 平台实验需求: 安装华为 eNSP 网络模拟平台打开 eNSP 平台,新建拓扑并绘制网络能够成功启动交换机、计算机设备 实验步骤: 安装华为 eNSP 网络模拟平台启动安装程序 配置安装内容 防护墙允许 eNSP 程序的…...

了解网页 blob 链接

blob 链接 自从 HTML5 提供了 video 标签,在网页中播放视频变得非常简单,只要在代码中插入一个 video 标签,再将 video 标签的 src 属性设置为视频的链接就可以了。由于 src 指向的是视频文件真实的地址,所以当我们通过浏览器的调…...

OpenGL笔记之事件驱动设计将相机控制类和应用程序类分离

OpenGL笔记之事件驱动设计将相机控制类和应用程序类分离 —— 2024-10-02 下午 bilibili赵新政老师的教程看后笔记 code review! 文章目录 OpenGL笔记之事件驱动设计将相机控制类和应用程序类分离1.代码图片2.分析3.UML4.代码 1.代码图片 运行 Mouse button 1 pressed at (1…...

低代码时代的企业信息化:规范与标准化的重要性

在当今数字化转型的浪潮中,企业的信息化建设正逐步向低代码平台倾斜。低代码不仅仅是简化开发过程,更是对企业内部流程、规范和标准化的深刻理解与应用。本文将探讨低代码在企业信息化中的重要性,特别是在运维和开发流程中的标准化&#xff0…...

理解无监督学习、无监督图像分割

系列文章目录 文章目录 系列文章目录一、无监督学习如何学习 能不能举一个非常具体的例子,带着运算过程的例子总结 二、在图像分割中呢,具体怎样实现无监督示例:使用自编码器和k-means进行无监督图像分割1. **数据准备**2. **构建自编码器**3…...

C语言— exec系列函数

exec系列函数 在C语言编程中,exec 系列函数用于在当前进程中执行一个新程序,从而替换当前进程的映像。这些函数不会返回,除非发生错误。exec 系列函数有多个变体,其中最常用的包括 execl, execle, execlp, execv, execve, execvp…...

命名管道Linux

管道是 毫不相关的进程进程间通信::命名管道 管道 首先自己要用用户层缓冲区,还得把用户层缓冲区拷贝到管道里,(从键盘里输入数据到用户层缓冲区里面),然后用户层缓冲区通过系统调用(write)写…...

【ios】---swift开发从入门到放弃

swift开发从入门到放弃 环境swift入门变量与常量类型安全和类型推断print函数字符串整数双精度布尔运算符数组集合set字典区间元祖可选类型循环语句条件语句switch语句函数枚举类型闭包数组方法结构体 环境 1.在App Store下载Xcode 2.新建项目(可以先使用这个&…...

【AUTOSAR 基础软件】PduR模块详解(通信路由)

文章包含了AUTOSAR基础软件(BSW)中PduR模块相关的内容详解。本文从AUTOSAR规范解析,ISOLAR-AB配置以及模块相关代码分析三个维度来帮读者清晰的认识和了解PduR这一基础软件模块。文中涉及的ISOLAR-AB配置以及模块相关代码都是依托于ETAS提供的…...

[控制理论]—差分变换法与双线性变换法的基本原理和代码实现

差分变换法与双线性变换法的基本原理和代码实现 1.差分变换法 差分变换法就是把微分方程中的导数用有限差分来近似等效,得到一个与原微分方程逼近的差分方程。 差分变换法包括后向差分与前向差分。 1.1 后向差分法 差分变换如下: d e ( t ) d t e…...

【JavaEE】——多线程常用类

阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 引入: 一:Callable和FutureTask类 1:对比Runnable 2&#xff1a…...

Cilium-实战系列-(二)Cilium-Multi Networking-多网络

一、Cilium必要开启的功能 1、enable-multi-network 2、ipam模式选择:multi-pool 二、涉及的CRD资源 1、 ciliumpodippools.cilium.io *通过Cilium管理节点上的pod cidr.网络分为主网络和第二网络。 *主网络的 ciliumpodippools.cilium.io default根据配置文件默认生成的。 …...

springboot自动配置

自动配置的核心就在SpringBootApplication注解上,SpringBootApplication这个注解 底层包含了3个注解,分别是: SpringBootConfiguration ComponentScan EnableAutoConfiguration EnableAutoConfiguration这个注解才是自动配置的核心,它 封…...

mock数据,不使用springboot的单元测试

业务代码 package com.haier.configure.service.impl;import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.haier.common.util.RequestUtil; import com.haier.configure.entity.Langua…...

【pytorch】pytorch入门5:最大池化层(Pooling layers )

文章目录 前言一、定义概念 缩写二、参数三、最大池化操作四、使用步骤总结参考文献 前言 使用 B站小土堆课程 一、定义概念 缩写 池化(Pooling)是深度学习中常用的一种操作,用于降低卷积神经网络(CNN)或循环神经网…...

职场上的人情世故,你知多少?这五点一定要了解

职场是一个由人组成的复杂社交网络,人情世故在其中起着至关重要的作用。良好的人际关系可以帮助我们更好地融入团队,提升工作效率,甚至影响职业发展。在职场中,我们需要了解一些关键要素,以更好地处理人际关系&#xf…...

Python | Leetcode Python题解之第456题132模式

题目: 题解: class Solution:def find132pattern(self, nums: List[int]) -> bool:candidate_i, candidate_j [-nums[0]], [-nums[0]]for v in nums[1:]:idx_i bisect.bisect_right(candidate_i, -v)idx_j bisect.bisect_left(candidate_j, -v)if…...