网络网络层之(5)IPv6协议

网络网络层之(5)IPv6协议


Author: Once Day Date: 2024年5月12日

一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦…

漫漫长路,有人对你微笑过嘛…

全系列文档可参考专栏:通信网络技术_Once-Day的博客-CSDN博客。

参考文章:

  • 《TCP/IP详解卷一》
  • 【网络协议详解】——IPv6协议(学习笔记)_ipv6 csdn-CSDN博客
  • 一文看懂IPv6 - 知乎 (zhihu.com)
  • IPv6网络协议 | 最全参考资料 - whilewell - 博客园 (cnblogs.com)
  • Info-Finder(在线工具) 报文格式 (huawei.com)
  • IP 报文格式大全 (huawei.com)

文章目录

  • 网络网络层之(5)IPv6协议
        • 1. 介绍
          • 1.1 IPv6协议
          • 1.2 IPv6相关协议
          • 1.3 相关RFC文档
          • 1.4 RFC2460和RFC 8200区别
        • 2. 报文格式
          • 2.1 IPv6报文格式
          • 2.2 IPv4首部和IPv6首部差别
          • 2.3 IPv6流标签
          • 2.4 IPv6扩展首部
          • 2.5 IPv6逐跳选项和目的地选项
          • 2.6 IPv6超大有效载荷
          • 2.7 IPv6隧道封装限制
          • 2.8 IPv6路由头部
          • 2.9 IPv6分片头部

1. 介绍
1.1 IPv6协议

随着互联网的快速发展,IPv4地址空间面临耗尽的问题。为了解决这一问题,互联网工程任务组(IETF)在20世纪90年代初开始研究下一代互联网协议。经过多年的努力,IPv6协议最终于1998年12月由IETF正式发布。

IPv6(互联网协议版本6)是互联网协议(IP)的最新版本,旨在解决IPv4地址枯竭问题,并为未来互联网的发展提供更好的支持。

主要特点如下:

  1. 巨大的地址空间:IPv6使用128位地址,总地址数量是2的128次方,理论上可以说地址数量近乎无限,IPv6可以给地球上的每粒沙子都分到1个地址。
  2. 简化的报文头:IPv6优化了报文头结构,并且固定头部大小为40字节,减少了开销,提高了路由效率。
  3. 内置安全性:IPv6支持IPsec协议,可以实现端到端的加密和身份验证。
  4. 更好的服务质量(QoS):IPv6引入了流标签和优先级字段,方便实现差异化服务。
  5. 无状态自动配置:IPv6支持无状态地址自动配置(SLAAC),简化了网络管理。

与IPv4的区别和联系:

  1. 地址长度不同:IPv4使用32位地址,而IPv6使用128位地址。
  2. 报文头结构不同:IPv6简化了报文头结构,取消了某些字段,并引入了扩展头。
  3. 安全性不同:IPv6内置了IPsec支持,而IPv4需要额外配置。
  4. 过渡机制:为了实现从IPv4到IPv6的平滑过渡,引入了多种过渡机制,如双栈、隧道等。
  5. 兼容性:IPv6是向后兼容的,可以与IPv4共存。但IPv4设备无法直接与IPv6设备通信,需要借助过渡机制。

IPv6是互联网协议的未来,它解决了IPv4地址枯竭问题,并为未来互联网的发展提供了更好的支持。

1.2 IPv6相关协议

这些协议族协同工作,构建了一个完整的IPv6网络架构,每个协议都有其特定的功能和用途:

  • IPv6基本协议(RFC 8200),定义了IPv6数据包的格式和处理规则,包括地址格式、报文头结构、扩展头等。

  • ICMPv6(互联网控制消息协议版本6,RFC 4443),用于传递错误消息和控制信息,包括邻居发现、路径MTU发现、多播侦听器发现等功能。

  • NDPv6(邻居发现协议版本6,RFC 4861),用于发现同一链路上的邻居节点,包括路由器发现、前缀发现、地址解析、重复地址检测等功能

  • DHCPv6(动态主机配置协议版本6,RFC 8415),用于自动分配IPv6地址和配置网络参数,包括有状态和无状态两种模式。

  • IPsec(互联网安全协议,RFC 4301),提供了Authentication Header(AH)和Encapsulating Security Payload(ESP)两种安全机制,用于保护IPv6数据包的完整性、机密性和真实性。

  • MLD(多播侦听器发现协议,RFC 3810),用于IPv6组播管理,允许主机向路由器报告其所在的多播组,类似于IPv4中的IGMP协议。

  • SEND(安全性增强的邻居发现协议,RFC 3971),为NDPv6提供安全性增强,防止欺骗攻击。

  • 移动IPv6(RFC 6275),支持移动节点在不同网络之间漫游,保持通信连续性。

  • 流量标签(RFC 3697),用于标识一个流,以便网络设备提供特定的服务质量(QoS)。

  • 隧道协议(如6to4、6rd、ISATAP等),用于在IPv4网络上传输IPv6数据包,实现IPv6过渡。

1.3 相关RFC文档

以下是与IPv6相关的主要RFC文档:

  • RFC 2460 - Internet Protocol, Version 6 (IPv6) Specification,定义了IPv6协议的基本规范,包括地址格式、报文格式等。

  • RFC 4291 - IP Version 6 Addressing Architecture,描述了IPv6的地址体系结构,包括地址类型、格式和分配方式。

  • RFC 4443 - Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification,定义了ICMPv6协议,用于传递错误消息和控制信息。

  • RFC 4861 - Neighbor Discovery for IP version 6 (IPv6),描述了IPv6的邻居发现协议(NDP),用于发现同一链路上的邻居节点。

  • RFC 4862 - IPv6 Stateless Address Autoconfiguration,定义了IPv6的无状态地址自动配置(SLAAC)机制。

  • RFC 3315 - Dynamic Host Configuration Protocol for IPv6 (DHCPv6),描述了DHCPv6协议,用于自动分配IPv6地址和配置网络参数。

  • RFC 4301 - Security Architecture for the Internet Protocol,定义了IPsec协议,为IPv6提供安全性保护。

  • RFC 3810 - Multicast Listener Discovery Version 2 (MLDv2) for IPv6, 描述了MLDv2协议,用于IPv6组播管理。

  • RFC 3971 - SEcure Neighbor Discovery (SEND),为NDP提供安全性增强,防止欺骗攻击。

  • RFC 6275 - Mobility Support in IPv6,描述了移动IPv6协议,支持移动节点在不同网络之间漫游。

  • RFC 3697 - IPv6 Flow Label Specification,定义了IPv6流量标签,用于标识一个流,提供服务质量(QoS)。

  • RFC 5095 - Deprecation of Type 0 Routing Headers in IPv6,废弃了IPv6中的0型路由头,以提高安全性。

  • RFC 7045 - Transmission and Processing of IPv6 Extension Headers,规定了IPv6扩展头的传输和处理规则。

  • RFC 8200 - Internet Protocol, Version 6 (IPv6) Specification,更新了RFC 2460,是当前IPv6协议的最新规范。

1.4 RFC2460和RFC 8200区别

RFC 2460和RFC 8200都是关于IPv6协议规范的文档,但RFC 8200是RFC 2460的更新版本:

  1. 文档状态,RFC 2460是IPv6的原始规范,发布于1998年12月。RFC 8200是IPv6的更新规范,发布于2017年7月,废弃了RFC 2460。

  2. 扩展头的处理,RFC 2460中,节点必须按照扩展头在报文中出现的顺序依次处理每个扩展头。RFC 8200中,节点只需查看目标地址之前的扩展头,处理顺序不再严格要求。

  3. 逐跳选项扩展头的处理,RFC 2460要求所有节点都必须处理逐跳选项扩展头。RFC 8200允许中间节点在转发数据包时忽略逐跳选项扩展头,以提高性能。

  4. 路由头的处理,RFC 2460定义了0型路由头(RH0),但后来发现RH0存在安全漏洞。RFC 8200明确禁止使用RH0,并引用了RFC 5095关于弃用RH0的规定。

  5. 分片头的处理,RFC 2460中,分片头可以出现在扩展头链的任意位置。RFC 8200要求分片头必须紧跟在目标地址之后,以简化分片处理。

  6. 校验和的计算,RFC 2460和RFC 8200对IPv6报文校验和的计算方法做了一些细微的调整,以适应扩展头处理方式的变化。

RFC 8200在保持IPv6协议基本不变的情况下,对一些细节做了优化和调整,以提高协议的安全性、效率和实现的灵活性

2. 报文格式
2.1 IPv6报文格式

IPv6数据包由两部分组成:IPv6基本首部和有效载荷。IPv6基本首部是固定长度的40字节。

在这里插入图片描述

IPv6首部字段介绍如下:

  • 版本(Version,4位),指定互联网协议的版本号,对于IPv6,其值为6。
  • 通信类型(Traffic Class,8位),用于区分不同类型的数据包,以提供差异化服务,分为两个小字段:差异化服务(DiffServ或DS,6位)显式拥塞通知(ECN,2位)
  • 流标签(Flow Label,20位),用于标识一个特定的流,以便网络设备提供特定的服务质量(QoS)。
  • 有效载荷长度(Payload Length,16位),指定IPv6数据包中有效载荷的长度,以字节为单位。
  • 下一个首部(Next Header,8位),指定紧跟在IPv6基本首部之后的扩展头或上层协议类型,如TCP、UDP等。
  • 跳数限制(Hop Limit,8位),指定数据包在网络中可以经过的最大跳数,每经过一个节点就减1,当跳数限制为0时,数据包将被丢弃。
  • 源地址(Source Address,128位),指定数据包的源IPv6地址。
  • 目标地址(Destination Address,128位),指定数据包的目标IPv6地址。
2.2 IPv4首部和IPv6首部差别

IPv6首部相对于IPv4首部进行了一些字段的删除和更改:

  • 版本(Version),IPv4和IPv6都有版本字段,但IPv6的版本号固定为6。
  • 首部长度(Header Length),IPv6删除了首部长度字段,因为IPv6的基本首部长度固定为40字节。
  • 总长度(Total Length),IPv6删除了总长度字段,引入了有效载荷长度(Payload Length)字段,只指定有效载荷的长度。
  • 标识(Identification)、标志(Flags)、片偏移(Fragment Offset),IPv6删除了这些字段,因为IPv6不允许中间节点进行分片,相应功能包含在IPv6数据报的分片扩展首部中。
  • 生存时间(Time to Live,TTL),IPv6将生存时间字段重命名为跳数限制(Hop Limit),功能相同。
  • 协议(Protocol),IPv6将协议字段重命名为下一个首部(Next Header),功能相同。
  • 首部校验和(Header Checksum),IPv6删除了首部校验和字段,因为链路层和上层协议已经提供了足够的错误检测机制。
  • 选项(Options),IPv6删除了选项字段,引入了扩展头的概念,更加灵活和高效。
2.3 IPv6流标签

IPv6首部中的流标签(Flow Label)字段是一个20位的标识符,用于标识一个特定的数据流。流标签的主要功能是为IPv6数据包提供一种特殊的处理方式,以满足某些应用或服务的需求。

  • 服务质量(QoS)支持,流标签可以用于识别需要特定服务质量的数据流,如实时音视频、在线游戏等。

  • 流量工程(Traffic Engineering),流标签可以用于实现流量工程,即根据网络状态和策略,将特定的数据流导向指定的网络路径。

  • 负载均衡(Load Balancing),流标签可以用于实现负载均衡,即将同一数据流的数据包分配到不同的网络路径或服务器上处理。

  • 流量统计和分析,流标签可以用于识别和统计特定的数据流,如用户会话、应用流量等。

  • 流量加密和认证,流标签可以与IPsec等安全机制结合使用,为特定的数据流提供加密和认证服务。

需要注意的是,流标签的使用是可选的,并非所有的IPv6数据包都必须使用流标签。流标签的值由源节点生成,并在数据包的整个生命周期内保持不变,中间节点不能修改流标签的值,但可以根据流标签提供特定的处理

2.4 IPv6扩展首部

参考华为产品支持文档:IP 报文格式大全 (huawei.com)

扩展报头。IPv6取消了IPv4报头中的选项字段,并引入了多种扩展报文头,在提高处理效率的同时还增强了IPv6的灵活性,为IP协议提供了良好的扩展能力。当超过一种扩展报头被用在同一个分组里时,报头必须按照下列顺序出现:

  • IPv6基本报头,顺序1,值41。
  • 逐跳选项扩展报头(Hop-by-Hop Options),顺序2,值为0,在IPv6基本报头中定义。
  • 目的选项扩展报头(Destination Options),顺序3/8,值为60,指那些将被分组报文的最终目的地处理的选项。
  • 路由扩展报头(Routing),顺序4,值为43,用于源路由选项和Mobile IPv6。
  • 分片扩展报头(Fragment),顺序5,值为44,在源节点发送的报文超过Path MTU时对报文分片时使用。
  • 授权扩展报头(Authentication Header),顺序6,值为51,用于IPSec,提供报文验证、完整性检查。定义和IPv4中相同)
  • 封装安全有效载荷扩展报头(Encapsulating Security Payload),顺序7,值为50,用于IPSec,提供报文验证、完整性检查和加密。定义和IPv4中相同。
  • 上层扩展报头,如TCP/UDP/ICMP等,详细请见:IP 报文格式大全 (huawei.com)。

除了目的选项扩展报头出现两次(一次在路由扩展报头之前,另一次在上层扩展报头之前),其余扩展报头只出现一次。不是所有的扩展报头都需要被转发路由设备查看和处理的。路由设备转发时根据基本报头中Next Header值来决定是否要处理扩展头。

2.5 IPv6逐跳选项和目的地选项

IPv6逐跳选项和目的选项都是IPv6扩展头部,用于在IPv6数据包中携带额外的信息。它们的编码格式如下:

|动作(2位)|chg(1位)|类型子字段(5位)|选项数据长度(8位)|选项数据.....
|-----   Type(选项类型)    ------|
  • 逐跳选项(Hop-by-Hop Options)和目的选项(Destination Options)都可以出现多次,选项统一编码为TLV格式(类型-长度-值)。
  • 动作,在选项没有被识别时指示一个IPv6节点如何执行下一步动作。
  • 改变(chg),指明在数据包转发时选项数目是否改变。
  • 选项数据长度,给出选项数据的字节长度。

选项类型的前两位“动作”字段用于确定不识别选项时的处理方式:

  • 00:忽略该选项,继续处理头部。
  • 01:丢弃数据包,保持沉默。
  • 10:丢弃数据包,并发送一个ICMP参数问题消息给源地址(除非数据包有多播目的地址)。
  • 11:丢弃数据包,并发送一个ICMP参数问题消息给源地址(即使数据包有多播目的地址)。

下面是携带在逐跳选项(H)或者目的地选项(D)扩展头部中的IPv6选项:

选项名头部(H/D)动作改变类型长度RFC文档
填充1(Pad1)H/D0000N/ARFC 8200
填充N(PadN)H/D0001可变RFC 8200
超大有效载荷(Jumbo Payload)H1101948RFC 2675
隧道封装限制(Tunnel Encapsulation Limit)D00044RFC 2473
路由器警告(Router Alert)H00054RFC 2711
快速启动(Quick-Start)H00168RFC 4782
家乡地址(Home Address)D01020116RFC 6275
CALIPSOD00078-256RFC 5570

表格说明:

  • 头部(H/D):H表示逐跳选项,D表示目的地选项。
  • 动作:表示节点不识别选项时的处理方式,参考之前提到的选项类型前两位。
  • 改变:表示选项是否可以被中间节点修改,"0"表示不可修改。
  • 类型:选项的类型值。
  • 长度:选项的长度范围(以字节为单位)。
2.6 IPv6超大有效载荷

IPv6超大有效载荷(Jumbo Payload)选项是一种IPv6逐跳选项,用于支持长度超过65535字节的IPv6数据包。在IPv6基本头部中,有效载荷长度字段为16位,最大值为65535。当数据包长度超过此限制时,就需要使用Jumbo Payload选项。

  • 当IPv6数据包的有效载荷长度超过65535字节时,IPv6基本头部中的有效载荷长度字段必须设置为0
  • Jumbo Payload选项必须作为逐跳选项头部的最后一个选项出现。
  • 所有处理Jumbo Payload选项的节点都必须支持超过65535字节的数据包。
  • 如果节点不支持Jumbo Payload选项,它应该发送一个ICMP参数问题消息。

使用场景:

  • IPv6 Jumbograms:支持超大数据包传输,提高网络效率,特别适用于高速网络环境。
  • 大规模数据传输:如科学计算、数据中心之间的数据迁移等。
2.7 IPv6隧道封装限制

IPv6隧道封装限制(Tunnel Encapsulation Limit)选项是一种IPv6目的地选项,用于限制IPv6数据包在封装隧道中的嵌套深度。当IPv6数据包通过多个隧道传输时,每个隧道都会为数据包添加一层新的封装。如果嵌套深度过大,可能会导致数据包处理延迟增加、网络性能下降,甚至出现环路。

  • Tunnel Encapsulation Limit选项仅在目的地选项头部中有效。
  • 当一个节点接收到带有Tunnel Encapsulation Limit选项的数据包时,它应该检查隧道封装限制字段的值:
    • 如果该值为0,节点应该丢弃数据包并发送一个ICMP参数问题消息。
    • 如果该值非0,节点应该将其减1,并将数据包转发到下一个隧道或最终目的地。
  • 当一个节点封装数据包时,如果数据包中已经存在Tunnel Encapsulation Limit选项,节点应该将隧道封装限制字段的值减1。如果减1后的值为0,节点应该丢弃数据包并发送一个ICMP参数问题消息。
  • 如果封装后的数据包中不存在Tunnel Encapsulation Limit选项,节点可以在新的目的地选项头部中插入该选项,并设置适当的隧道封装限制值。

使用场景:

  • 防止隧道嵌套过深:通过限制隧道嵌套深度,可以避免数据包在网络中无限循环或过度延迟。
  • 网络安全:限制隧道嵌套深度可以降低某些类型的攻击(如DOS攻击)的风险。
2.8 IPv6路由头部

IPv6路由头部(Routing Header)是一种IPv6扩展头部,用于指定数据包在到达最终目的地之前经过的一个或多个中间节点。通过使用路由头部,源节点可以控制数据包的转发路径,实现诸如源路由、移动IPv6等功能。

|下一个头部(1字节)|头部扩展长度(1字节)|路由类型(1字节)|剩余部分(1字节)|保留(4字节)|N个IPv6地址...
  • 下一个头部,标识跟在路由头部后面的头部类型。
  • 头部扩展长度,表示路由头部的长度(不包括前8字节),以8字节为单位。
  • 路由类型,标识路由头部的类型,不同类型有不同的格式和处理方式。
  • 剩余部分,指示剩余未处理的路由段数量。
  • 保留地址,保留为零值。
  • IPv6地址,包含特定于路由类型的数据,如路由地址列表。

常见的路由类型:

  • 类型0(已弃用),源路由,指定数据包经过的完整节点列表。
  • 类型1,宽松源路由(Nimrod,已弃用)。
  • 类型2,移动IPv6的路由头部,用于优化移动节点与对应节点之间的通信。
  • 类型3,RPL(IPv6路由协议for 低功耗有损网络)的源路由头部。
  • 类型4,节点定义的路由头部,用于实验或特定应用。

处理流程:

  1. 当一个节点接收到带有路由头部的数据包时,它应该检查路由类型字段:
    • 如果节点不支持该路由类型,它应该丢弃数据包并发送一个ICMP参数问题消息,指向路由类型字段。
    • 如果节点支持该路由类型,它应该根据类型特定数据和剩余部分字段来处理数据包。
  2. 处理完路由头部后,节点应该将剩余部分字段减1,并将数据包转发到下一个目的地(如果还有剩余路由段)或最终目的地。
  3. 如果剩余部分字段减为0,表示路由头部已处理完毕,数据包应该被传递到上层协议或应用程序。

过度使用路由头部可能会引入安全风险(如IP欺骗、DOS攻击等)和性能问题,一些路由类型(如类型0)由于安全问题已被弃用

2.9 IPv6分片头部

IPv6分片头部(Fragment Header)是一种IPv6扩展头部,用于支持IPv6数据包的分片和重组功能。当一个IPv6数据包的大小超过传输路径的MTU(最大传输单元)时,需要对数据包进行分片。分片头部包含了分片相关的信息,以便目的节点能够正确地重组分片。

|下一个头部(8位)|保留0(8位)|分片偏移(13位)|Res(2位)|M(1位)|标识符(32位)
  • 下一个头部,标识跟在分片头部后面的头部类型。
  • 保留,保留字段,必须设置为0。
  • 分片偏移,指定分片在原始数据包中的偏移量,以8字节为单位。
  • Res,保留字段,必须设置为0。
  • M标志,指示是否还有更多的分片,1表示后面还有分片,0表示这是最后一个分片。
  • 标识,标识属于同一原始数据包的所有分片,用于重组。

处理流程

  1. 当一个节点需要发送的数据包大小超过传输路径的MTU时,它应该对数据包进行分片:
    • 将原始数据包划分为多个小于等于MTU的分片。
    • 为每个分片生成一个新的IPv6头部,并设置分片头部的相关字段。
    • 将每个分片作为独立的IPv6数据包发送。
  2. 当一个节点接收到带有分片头部的数据包时:
    • 检查分片头部的字段是否有效,如果无效,丢弃数据包并发送ICMP参数问题消息。
    • 根据标识字段判断分片是否属于同一原始数据包。
    • 使用分片偏移和数据包长度将分片按顺序组装起来。
    • 当收到所有分片(M标志为0的分片)时,重组原始数据包并传递给上层协议或应用程序。
  3. 如果一个节点在重组过程中遇到问题(如缺失分片、重叠分片等),它应该丢弃所有相关分片并发送ICMP超时消息。

IPv6的分片功能与IPv4有所不同。在IPv6中,只有源节点可以执行分片,中间节点不允许对数据包进行分片。这种设计可以简化网络处理,提高效率。







Alt

Once Day

也信美人终作土,不堪幽梦太匆匆......

如果这篇文章为您带来了帮助或启发,不妨点个赞👍和关注,再加上一个小小的收藏⭐!

(。◕‿◕。)感谢您的阅读与支持~~~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

啥都吃的打字练习软件TL(TypeLetters)

今天给大家安利一款啥都吃的打字练习软件——TL(TypeLetters)。 为什么说TL啥都吃呢?很简单,因为不管是科技的、还是时事的、或者潮流的、或者热点的,凡是英文的资料TL都能通通吃下去,所以说TL是来者不拒&…

QT C++ widget layout 嵌套 例子2

在上篇文章中描述了实中套虚(用setLayout),虚中套实(用addWidget)。 本文再加1条,虚中套虚(用addLayout)。 所谓虚中套虚,是layout 套 layout 。 另外用循环代码生成从…

新书速览|MATLAB科技绘图与数据分析

提升你的数据洞察力,用于精确绘图和分析的高级MATLAB技术。 本书内容 《MATLAB科技绘图与数据分析》结合作者多年的数据分析与科研绘图经验,详细讲解MATLAB在科技图表制作与数据分析中的使用方法与技巧。全书分为3部分,共12章,第1…

【鸿蒙+全国产瑞芯微】智慧楼宇解决方案 | 如何实现多场景下智慧化、精细化楼宇管理?

随着数字化、智能化与工作生活的联结日渐紧密,聚焦人性化服务,以数字和科技匹配多重需求,加速商业楼宇智能化转型的脚步,逐步形成智慧楼宇产品矩阵。 方案亮点 01/数字标牌——形象展示 企业文化宣传、公告通知等 播放内容统一远…

blender 制作圆角立方体模型,倒角实现。cocos 使用。导出fbx

图片: 步骤: 1.首先创建一个立方体,这里可以使用默认的立方体。 2.在属性面板选择如“扳手”图标一样的修改器工具。 3.设置数量和段数实现圆角的圆滑效果,没有菱角。 保存导出相关的教程:

object.key()用法

object.key(obj) 一、概念:返回一个由一个给定对象的自身可枚举属性组成的数组。 二、用法: 1、参数为对象:则返回为 对象属性名组成的数组。 let obj {日期:date,姓名:userName,地址:address}console.log(Object.k…

使用Go和JavaScript爬取股吧动态信息的完整指南

引言 在现代金融生态系统中,信息流动的速度和效率对于市场的健康和投资者的成功至关重要。股市信息,特别是来自活跃交流平台如股吧的实时数据,为投资者提供了一个独特的视角,帮助他们洞察市场趋势和投资者情绪。这些信息不仅能够…

Bovine Serum Albumin ELISA kit(牛血清白蛋白)

牛血清白蛋白(Bovine serum albumin, BSA)是一种提取自牛的血清白蛋白。成熟的牛血清白蛋白含有583个氨基酸。像其他血清白蛋白一样,牛血清白蛋白在毛细血管内提供胶体渗透压,运输脂肪酸、胆红素、矿物质和激素,并在作…

Windows电脑使用Docker安装AList网盘神器并配置公网地址打造私人云存储空间

文章目录 前言1. 使用Docker本地部署Alist1.1 本地部署 Alist1.2 访问并设置Alist1.3 在管理界面添加存储 2. 安装cpolar内网穿透3. 固定Alist公网地址 前言 本文和大家分享如何在Windows系统使用Docker本地部署Alist全平台网盘神器,然后结合cpolar内网穿透工具实现…

论文阅读:The Unreasonable Ineffectiveness of the Deeper Layers 层剪枝与模型嫁接的“双生花”

作者实证研究了针对流行的开放式预训练 LLM 系列的简单层修剪策略,发现在不同的 QA 基准上,直到去掉一大部分(最多一半)层(Transformer 架构)后,性能的下降才会降到最低。为了修剪这些模型&…

自然资源-“十四五”规划引领,审批智慧化提升-值得学习

自然资源-“十四五”规划引领,审批智慧化提升-值得学习 2022年1月12日,国务院正式印发了《“十四五”数字经济发展规划》(国发〔2021〕29号),从八个方面对“十四五”期间我国数字经济发展做出总体部署。其中第五点要求…

Q1季度电饭煲家电行业线上市场(京东天猫淘宝)销售数据排行榜

鲸参谋监测的2024年Q1季度线上电商平台(天猫淘宝京东)电饭煲家电销售数据已出炉! 今年Q1季度,电饭煲销售成绩不如预期。根据鲸参谋数据显示,今年Q1季度在线上电商平台(淘宝天猫京东)电饭煲销量…

Qt-FFmpeg开发-打开摄像头直接显示YUYV422图像(12)

Qt-FFmpeg开发-打开摄像头直接显示YUYV422图像📀 文章目录 Qt-FFmpeg开发-打开摄像头直接显示YUYV422图像📀1、概述📸2、实现效果💽3、主要代码🔍4、完整源代码📑 更多精彩内容👉个人内容分类汇…

Android Saving Activity State使用说明和注意事项

1、说明 在管理activity生命周期的简单介绍中提到当一个activity被暂停或停止时,该activity的状态被保留。因为当activity对象被暂停或停止时仍然保留在内存中,所有有关成员的信息和当前的状态仍然可用。这样,用户对该activity所做的任何更改…

全国大学生数学建模竞赛【集训营E题】丨 近5年赛题实现,模拟参赛体验

全国大学生数学建模竞赛E题集训营即将开营 基于Python的近5年E题数学建模基础巩固 近5年E题赛题实现 模拟参赛体验与作品评审

Ansys Zemax|HUD 设计实例

说明 本文介绍了HUD设计实例。 实例说明 规格如下: 显示器尺寸:24*8mm 眼盒尺寸:100*40mm 放大倍率:5 (虚像尺寸 120*40mm) 虚像距离:1.8m 最终光学系统的整体布局如下图所示。 从HUD发出的…

【Linux取经路】文件中的数据是如何被写进磁盘的?

文章目录 一、操作系统对物理内存的管理1.1 物理内存与磁盘的数据交换1.2 操作系统对物理内存的管理 二、再来看文件打开和写入2.1 文件页缓冲区的引入2.2 向文件中写入的过程 三、结语 一、操作系统对物理内存的管理 1.1 物理内存与磁盘的数据交换 物理内存与磁盘之间的数据…

专业的服贸会服务团队-媒体邀约宣传

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 2024服贸会开展在即,许多企业都做好了的参展的准备,北京麦塔文化提供专业的展览展会服务,下面做个简单介绍。 、会场搭建团队: 负责整个活…

如何完美实现文件外发防泄漏,保护核心数据资产?

不管是大型企业,还是小型创业公司,不论企业规模大小,每天都会有大量的文件要进行内部传输协作和对外发送使用,数据的生产也是企业业务生产力的体现之一。因此文件外发防泄漏是企业信息安全中的一个重要议题,为了防止企…

MTATLAB--一元线性回归分析

一文让你彻底搞懂最小二乘法(超详细推导) 在进行一元线性回归分析时,使用最小二乘法进行解题,关于最小二乘法具体看上述文章。 数据文件在文章顶部可见,将第一列数据作为自变量x,第二列数据作为应变量y。建…