车载以太网测试-11【网络层-ICMP协议】

目录

  • 1 摘要
  • 2 ICMP协议帧结构
    • 2.1 IP头部
    • 2.2 ICMP头部
    • 2.3 ICMP数据部分
    • 2.4 示例:ICMP回显请求(Ping请求)
  • 3 ICMP协议在车载以太网的应用
    • 3.1 为什么需要ICMP?
      • 3.1.1 网络连通性测试
      • 3.1.2 错误报告
      • 3.1.3 网络性能监测
      • 3.1.4 路径MTU发现
      • 3.1.5 网络拥塞控制
    • 3.2 车载以太网ICMP应用示例
      • 3.2.1 网络连通性测试示例
      • 3.2.2 错误报告示例
      • 3.2.3 网络性能监测
      • 3.2.4 路径MTU发现
  • 4 总结

1 摘要

ICMP(Internet Control Message Protocol,互联网控制报文协议)属于 OSI模型的第三层(网络层)
ICMP是TCP/IP协议族的一部分,主要用于在IP网络中传递控制信息和错误报告。它通常用于诊断网络问题(如ping命令)或报告错误(如目标不可达、超时等)。本文主要对ICMP的报文结构和车载以太网的应用进行详细介绍。

2 ICMP协议帧结构

ICMP(Internet Control Message Protocol,互联网控制报文协议)是TCP/IP协议族中的一个重要协议,主要用于在IP网络中传递控制消息和错误报告。ICMP报文封装在IP数据报中,其帧结构如下:

2.1 IP头部

ICMP报文是封装在IP数据报中的,因此首先有一个IP头部。IP头部的结构如下:

  • 版本(Version):4位,表示IP协议的版本,IPv4为4。
  • 头部长度(IHL):4位,表示IP头部的长度,以4字节为单位。
  • 服务类型(Type of Service, ToS):8位,表示服务质量。
  • 总长度(Total Length):16位,表示整个IP数据报的长度,包括IP头部和数据部分。
  • 标识(Identification):16位,用于标识IP数据报。
  • 标志(Flags):3位,用于控制分片。
  • 片偏移(Fragment Offset):13位,表示分片在原始数据报中的位置。
  • 生存时间(Time to Live, TTL):8位,表示数据报在网络中的生存时间。
  • 协议(Protocol):8位,表示上层协议,ICMP的值为1。
  • 头部校验和(Header Checksum):16位,用于校验IP头部的完整性。
  • 源IP地址(Source IP Address):32位,表示发送方的IP地址。
  • 目的IP地址(Destination IP Address):32位,表示接收方的IP地址。

2.2 ICMP头部

ICMP头部紧跟在IP头部之后,结构如下:

字段名大小(字节)描述
类型(Type)1表示ICMP报文的类型,如回显请求(8)、回显应答(0)、目的不可达(3)等。
代码(Code)1提供与类型字段相关的更多信息,如目的不可达的具体原因。
校验和(Checksum)2用于检测ICMP报文的完整性。
可变部分(Variable)可变根据ICMP报文的类型和代码,包含不同的信息,如回显请求的标识符和序列号等。
  • 类型(Type):8位,表示ICMP报文的类型。常见的类型有:
    • 0: Echo Reply(回显应答)
    • 3: Destination Unreachable(目的不可达)
    • 8: Echo Request(回显请求)
    • 11: Time Exceeded(超时)
    • 12: Parameter Problem(参数问题)
    • 13: Timestamp Request(时间戳请求)
    • 14: Timestamp Reply(时间戳应答)
  • 代码(Code):8位,表示ICMP报文的子类型。例如,类型为3(目的不可达)时,代码可以表示具体的不可达原因。
  • 校验和(Checksum):16位,用于校验ICMP报文的完整性。
  • 其他字段(Other Fields):根据ICMP报文类型的不同,其他字段的内容和长度也会有所不同。

常见ICMP报文类型及其代码
以下是一些常见的ICMP报文类型及其代码:

类型代码描述
00回显应答(Echo Reply)
30目的网络不可达(Destination Network Unreachable)
31目的主机不可达(Destination Host Unreachable)
32目的协议不可达(Destination Protocol Unreachable)
33目的端口不可达(Destination Port Unreachable)
34需要分片但DF标志位已设置(Fragmentation Needed and DF Flag Set)
35源路由失败(Source Route Failed)
36目的网络未知(Destination Network Unknown)
37目的主机未知(Destination Host Unknown)
80回显请求(Echo Request)
110TTL超时(Time Exceeded in Transit)
111分片重组超时(Fragment Reassembly Time Exceeded)
120参数问题(Parameter Problem)

2.3 ICMP数据部分

ICMP数据部分的内容取决于ICMP报文的类型和代码。例如:

  • Echo Request/Reply:包含标识符(Identifier)和序列号(Sequence Number),用于匹配请求和应答。
  • Destination Unreachable:包含导致不可达的原始IP数据报的头部和部分数据。
  • Time Exceeded:包含导致超时的原始IP数据报的头部和部分数据。

2.4 示例:ICMP回显请求(Ping请求)

以下是ICMP回显请求(Ping请求)的帧结构示例:

字段名描述
类型(Type)8回显请求(Echo Request)
代码(Code)0
校验和(Checksum)0xABCD示例校验和(实际值需计算)
标识符(Identifier)0x1234用于匹配请求和应答的标识符
序列号(Sequence Number)0x0001用于标识请求的序列号
数据(Data)可变可选的数据字段,通常包含时间戳或其他信息

通过这种结构,ICMP协议能够在IP网络中有效地传递控制信息和错误报告,帮助网络管理员诊断和解决网络问题。

3 ICMP协议在车载以太网的应用

3.1 为什么需要ICMP?

ICMP(Internet Control Message Protocol,互联网控制报文协议)是TCP/IP协议族中的一个重要组成部分,主要用于在IP网络中传递控制信息和错误报告。它的存在对于网络的正常运行和故障排查至关重要。
以下是ICMP协议在车载以太网中的具体应用场景和功能:

3.1.1 网络连通性测试

  • Ping命令:通过发送ICMP Echo Request消息并接收Echo Reply消息,可以快速检测车载以太网中各个节点(如ECU、网关、传感器等)之间的连通性。
  • 应用场景:在车辆启动或网络初始化时,验证网络设备的连接状态。

3.1.2 错误报告

  • 错误通知:当车载以太网中的设备(如ECU)无法到达目标地址或数据包传输失败时,ICMP会发送错误消息(如Destination Unreachable、Time Exceeded等)给源设备。
  • 应用场景:帮助诊断网络故障,例如路由问题、设备不可达或数据包丢失。

3.1.3 网络性能监测

  • 延迟和丢包率测量:通过ICMP消息的往返时间(RTT)和丢包情况,可以评估车载以太网的实时性能。
  • 应用场景:在车辆运行过程中,监测网络延迟和稳定性,确保关键数据(如ADAS、自动驾驶相关数据)的及时传输。

3.1.4 路径MTU发现

  • MTU探测:ICMP协议支持路径MTU发现功能,通过发送ICMP消息确定数据包在网络传输中的最大传输单元(MTU)。
  • 应用场景:在车载以太网中优化数据传输效率,避免数据包分片。

3.1.5 网络拥塞控制

  • 拥塞通知:ICMP Source Quench消息(虽然已被弃用,但在某些场景下仍可使用)可以通知发送方降低数据发送速率。
  • 应用场景:在车载以太网中,当网络负载过高时,可以通过ICMP消息调整数据传输速率,避免网络拥塞。

3.2 车载以太网ICMP应用示例

3.2.1 网络连通性测试示例

要通过ICMP协议发送Ping命令来检测网络连通性,可以通过发送ICMP Echo Request消息(即Ping命令)并接收Echo Reply消息,可以快速检测车载以太网中各个节点之间的连通性。这种方法简单且有效,适用于网络诊断和故障排查。以下是一个示例,说明如何在车载以太网中使用Ping命令来检测节点之间的连通性:

1.示例场景:
假设车载以太网中有以下节点:

  • ECU1:IP地址为192.168.1.10
  • ECU2:IP地址为192.168.1.20
  • 网关:IP地址为192.168.1.1
  • 传感器:IP地址为192.168.1.30

2. 操作步骤:

  1. 连接到车载以太网

    • 使用笔记本电脑或其他设备通过以太网接口连接到车载以太网,确保设备与车载网络在同一子网内。
  2. 使用Ping命令检测连通性

    • 打开命令行终端(如Windows的CMD或Linux的Terminal)。
    • 使用Ping命令向各个节点发送ICMP Echo Request消息,并等待Echo Reply消息。

    示例命令

    # 检测与ECU1的连通性
    ping 192.168.1.10# 检测与ECU2的连通性
    ping 192.168.1.20# 检测与网关的连通性
    ping 192.168.1.1# 检测与传感器的连通性
    ping 192.168.1.30
    
  3. 分析结果

    • 如果收到Echo Reply消息,表明与目标节点的连通性正常。例如:
      Reply from 192.168.1.10: bytes=32 time=1ms TTL=64
      
    • 如果未收到Echo Reply消息,表明与目标节点的连通性存在问题。例如:
      Request timed out.
      
  4. 进一步排查

    • 如果某个节点无法Ping通,可以检查以下内容:
      • 目标节点的IP地址配置是否正确。
      • 网络线缆是否连接正常。
      • 目标节点是否处于正常工作状态。
      • 防火墙或网络配置是否阻止了ICMP流量。

5. 注意事项:

  • 网络延迟:在车载以太网中,网络延迟通常较低。如果Ping的延迟较高,可能表明网络中存在拥塞或干扰。
  • 网络配置:确保所有节点的IP地址配置正确,且处于同一子网内。
  • 安全设置:某些设备可能配置了防火墙或安全策略,阻止了ICMP流量,导致Ping命令无法正常工作。

通过这种方式,可以快速检测车载以太网中各个节点之间的连通性,帮助诊断网络问题。

3.2.2 错误报告示例

在车载以太网中,如果设备(如ECU)无法到达目标地址或数据包传输失败,ICMP(Internet Control Message Protocol)会发送错误消息给源设备。以下是一个示例场景:

1. 场景描述:
假设在车载以太网中,ECU_A 尝试发送一个数据包到 ECU_B,但由于某些原因(如网络故障、目标设备不可达等),数据包无法成功传输。

2. 可能发生的ICMP错误消息:

  • Destination Unreachable(目标不可达)

    • 原因:ECU_B 无法到达,可能是由于网络故障、目标设备关闭或路由配置错误。
    • ICMP消息:ECU_A 会收到一个 ICMP Destination Unreachable 消息,指示目标设备无法到达。
  • Time Exceeded(超时)

    • 原因:数据包在传输过程中超过了其生存时间(TTL),可能是由于网络中存在环路或路由配置错误。
    • ICMP消息:ECU_A 会收到一个 ICMP Time Exceeded 消息,指示数据包在传输过程中超时。
  • Fragmentation Needed(需要分片)

    • 原因:数据包的大小超过了网络的MTU(最大传输单元),并且数据包被标记为不可分片。
    • ICMP消息:ECU_A 会收到一个 ICMP Fragmentation Needed 消息,指示数据包需要分片但无法分片。

3. 示例流程:

  • ECU_A 发送数据包

    • ECU_A 尝试发送一个数据包到 ECU_B,假设目标IP地址为 192.168.1.100。
  • 网络故障

    • 由于网络故障,数据包无法到达 ECU_B。
  • ICMP错误消息生成

    • 中间路由器或交换机检测到数据包无法到达目标地址,生成一个 ICMP Destination Unreachable 消息。
  • ICMP消息发送

    • ICMP Destination Unreachable 消息被发送回 ECU_A,指示目标设备无法到达。
  • ECU_A 处理ICMP消息

    • ECU_A 接收到 ICMP 错误消息后,可以根据消息类型采取相应的措施,如重试发送、记录错误日志或通知上层应用。

4. 示例ICMP消息内容:

ICMP Destination Unreachable Message:Type: 3 (Destination Unreachable)Code: 1 (Host Unreachable)Checksum: [校验和]Unused: 0Original IP Header: [原始IP头信息]Original Data: [原始数据包的前8字节]

在车载以太网中,ICMP协议在网络通信中扮演着重要的角色,特别是在检测和处理网络故障时。通过发送ICMP错误消息,源设备可以及时了解数据传输中的问题,并采取相应的措施来恢复或优化网络通信。

3.2.3 网络性能监测

在车载以太网中,实时性能的评估至关重要,尤其是对于自动驾驶、高级驾驶辅助系统(ADAS)等应用场景。通过测量ICMP(Internet Control Message Protocol)消息的往返时间(RTT)和丢包率,可以有效地评估网络的延迟和可靠性。以下是一个示例说明如何进行这些测量以及如何解读结果。

1. 测量工具
常用的工具包括ping命令、mtr(My Traceroute)或其他网络诊断工具。这些工具可以发送ICMP Echo请求并接收Echo回复,从而计算RTT和丢包率。

2. 测量步骤
假设我们有两个车载以太网节点:Node ANode B,我们想要测量从Node ANode B的延迟和丢包率。

(1) 使用ping命令
Node A上执行以下命令:

ping -c 100 Node_B_IP

其中:

  • -c 100表示发送100个ICMP Echo请求。
  • Node_B_IPNode B的IP地址。

(2) 分析输出
命令执行完毕后,会输出类似以下的结果:

PING Node_B_IP (Node_B_IP): 56 data bytes
64 bytes from Node_B_IP: icmp_seq=0 ttl=64 time=1.234 ms
64 bytes from Node_B_IP: icmp_seq=1 ttl=64 time=1.345 ms
...
--- Node_B_IP ping statistics ---
100 packets transmitted, 95 received, 5% packet loss, time 99010ms
rtt min/avg/max/mdev = 1.234/1.345/1.456/0.123 ms

(3) 结果解读

  • 丢包率:在上述示例中,丢包率为5%(100个包中丢失了5个)。对于车载以太网,通常要求丢包率非常低(接近0%),以确保数据的可靠传输。

  • RTT(往返时间):RTT的平均值为1.345 ms,最小值为1.234 ms,最大值为1.456 ms。RTT的稳定性(通过mdev表示)为0.123 ms。较低的RTT和较小的抖动(mdev)表明网络具有良好的实时性能。

3. 结论
通过测量ICMP消息的RTT和丢包率,可以有效地评估车载以太网的实时性能。在本示例中,虽然RTT表现良好,但5%的丢包率可能表明网络存在一些问题,需要进一步排查和优化。



3.2.4 路径MTU发现

MTU(Maximum Transmission Unit,最大传输单元)探测是网络通信中的一个重要机制,用于确定数据包在网络传输中的最大大小,以避免分片和提高传输效率。ICMP(Internet Control Message Protocol)协议支持路径MTU发现(Path MTU Discovery,PMTUD)功能,通过发送ICMP消息来确定路径中的最小MTU。

  • 路径MTU发现的工作原理:
  1. 发送探测包:源主机发送一个带有“不分片”(DF, Don’t Fragment)标志的IP数据包,其大小等于当前路径的MTU。
  2. 检测MTU:如果中间设备的MTU小于数据包的大小,设备会丢弃数据包,并返回一个ICMP“需要分片”消息(Type 3, Code 4),其中包含该设备的MTU值。
  3. 调整MTU:源主机根据收到的ICMP消息调整数据包的大小,重新发送。
  4. 重复过程:直到数据包能够成功传输到目标主机,源主机最终确定路径的最小MTU。
  • 示例:
    假设源主机向目标主机发送数据,路径中经过多个网络设备,每个设备的MTU可能不同。
  1. 初始MTU:源主机假设路径的MTU为1500字节(以太网的默认MTU),发送一个1500字节的数据包,并设置DF标志。
  2. 中间设备:路径中的某个设备的MTU为1400字节,发现数据包过大,丢弃数据包,并返回一个ICMP“需要分片”消息,指示MTU为1400字节。
  3. 调整MTU:源主机将MTU调整为1400字节,重新发送数据包。
  4. 成功传输:数据包成功到达目标主机,路径MTU确定为1400字节。
  • 代码示例(Python模拟ICMP PMTUD):
    以下是一个简单的Python示例,模拟ICMP路径MTU发现的过程:
import socket
import structdef send_ping(dest_ip, mtu):# 创建原始套接字sock = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_ICMP)sock.setsockopt(socket.IPPROTO_IP, socket.IP_MTU_DISCOVER, socket.IP_PMTUDISC_DO)# 构造ICMP Echo请求包icmp_type = 8  # ICMP Echo Requesticmp_code = 0icmp_checksum = 0icmp_id = 1234icmp_seq = 1icmp_data = b"a" * (mtu - 28)  # 数据部分,减去IP头和ICMP头# 计算校验和def checksum(data):if len(data) % 2:data += b'\x00's = sum(struct.unpack('!%dH' % (len(data) // 2), data))s = (s >> 16) + (s & 0xffff)s += s >> 16return ~s & 0xfffficmp_checksum = checksum(struct.pack('!BBHHH', icmp_type, icmp_code, icmp_checksum, icmp_id, icmp_seq) + icmp_data)# 构造完整的ICMP包icmp_packet = struct.pack('!BBHHH', icmp_type, icmp_code, icmp_checksum, icmp_id, icmp_seq) + icmp_datatry:sock.sendto(icmp_packet, (dest_ip, 1))print(f"Sent ICMP Echo Request with MTU={mtu}")except socket.error as e:print(f"Failed to send with MTU={mtu}: {e}")finally:sock.close()def path_mtu_discovery(dest_ip):mtu = 1500  # 初始MTUwhile mtu >= 68:  # 最小MTU为68字节send_ping(dest_ip, mtu)mtu -= 100  # 逐步减少MTUif __name__ == "__main__":dest_ip = "192.168.1.1"  # 目标IP地址path_mtu_discovery(dest_ip)
  • 说明:
    • 该示例模拟了ICMP路径MTU发现的过程,通过逐步减少MTU并发送ICMP Echo请求,直到成功传输。
    • 实际应用中,操作系统和网络设备会自动处理路径MTU发现,无需手动实现。

4 总结

以上是对车载以太网ICMP协议的帧结构、在车载以太网常用应用以及常用应用示例进行了介绍。希望能对大家理解车载以太网ICMP协议有所帮助!

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

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

相关文章

HarmonyOS NEXT - 电商App实例三( 网络请求axios)

使用axios开发网络请求是一个非常常见的任务,尤其是Web前端开发者,对它非常熟悉。axios是一个基于Promise的HTTP客户端,支持浏览器和Node.js环境,使用简单且功能强大。 在harmonyOS中,如果想使用axios,可以…

19、TCP连接四次挥手的过程,为什么是四次?【高频】

四次挥手的过程 假设客户端主动发起。 第一次挥手:客户端向服务器 发送 FIN,表示 自己要断开数连接。随后,客户端 进入 FIN-WAIT-1 状态;服务器收到后,变为CLOSE_WAIT状态 第二次挥手:服务器 发送ACK 作为…

蓝桥云客 挖矿

0挖矿 - 蓝桥云课 问题描述 小蓝正在数轴上挖矿,数轴上一共有 n 个矿洞,第 i 个矿洞的坐标为 ai​。小蓝从 0 出发,每次可以向左或向右移动 1 的距离,当路过一个矿洞时,就会进行挖矿作业,获得 1 单位矿石&…

ssm:商业异常处理流程

第一步 定义全局R类制定标准 代码定义了一个通用的返回类 R<T>&#xff0c;用于封装API请求的结果&#xff0c;包括状态码、消息和数据。该类使用了Lombok的Data注解来减少样板代码&#xff08;如getter、setter方法等&#xff09;的编写。以下是代码的一些解释和建议&am…

Inficon IC5 沉积控制器 IC/5 型号

Inficon IC5 沉积控制器 IC/5 型号

农业建设项目管理系统评测:8款推荐工具优缺点分析

本文主要介绍了以下8款农业建设项目管理系统&#xff1a;1.PingCode&#xff1b; 2. Worktile &#xff1b;3. 建米农业工程项目管理系统&#xff1b;4. 开创云数字农业管理平台&#xff1b; 5. Trimble Ag Software&#xff1b;6.Conservis&#xff1b; 7. Agworld &#xff1…

大视频背景暗黑风格的wordpress企业主题免费下载

整体风格是黑色的&#xff0c;首页首屏大视频背景&#xff0c;动态效果非常好。向下滚动时&#xff0c;滚动的特效也不错。 原文 https://www.bixugao.com/wp/26.html

西门子S7-1200 PLC远程调试技术方案(巨控GRM532模块)

三步快速实现远程调试 硬件部署 准备西门子S7-1200 PLC、巨控GRM552YW-C模块及编程电脑。GRM552YW-C通过网口与PLC连接&#xff0c;支持4G/5G/Wi-Fi/有线网络接入&#xff0c;无需复杂布线。 软件配置 安装GVCOM3配置软件&#xff0c;注册模块&#xff08;输入唯一序列号与密…

系统思考:客户价值

“真正的市场竞争&#xff0c;不是比谁更能制造产品&#xff0c;而是比谁更能创造价值。” ——杰夫贝索斯 在组织辅导中&#xff0c;我经常问团队一个问题&#xff1a;“我们的客户是谁&#xff1f;”大多数人的第一反应是——“支付费用的就是客户。” 这在过去的市场扩张阶…

Centos7网卡 Failed to start LSB: Bring up/down networking

Centos7网卡 Failed to start LSB: Bring up/down networking 检查虚拟网络编辑器配置无误编辑ifcfg-ens33文件 Centos7重启网卡服务失败错误如下 给Centos7系统使用NAT模式配置静态IP地址&#xff1a; 检查虚拟网络编辑器配置无误 编辑ifcfg-ens33文件 vim /etc/sysconfig/ne…

第一个vue项目

项目目录 启动vue项目 npm run serve 1.vue.config.js文件 (CLI通过vue-cli-serve启动项目&#xff0c;解析配置配置文件vue-condig-js&#xff09; // vue.config.js //引入path板块&#xff0c;这是Node.js的一个内置模块&#xff0c;用于处理文件路径&#xff0c;这里引用…

【Qt】QWidget属性介绍

&#x1f3e0;个人主页&#xff1a;Yui_ &#x1f351;操作环境&#xff1a;Qt Creator &#x1f680;所属专栏&#xff1a;Qt 文章目录 前言1. enabled属性2.geometry属性2.1 改变控件位置2.2 女神表白程序2.3 知识补充——window frame 3. windowsTitle属性4. windowIcon属性…

嵌入式八股ARM篇

前言 ARM篇主要介绍一下寄存器和中断机制,至于汇编这一块…还请大家感兴趣自行学习 1.寄存器 R0 - R3 R4 - R11 寄存器 R0 - R3一般用作函数传参 R4 - R11用来保存程序运算的中间结果或函数的局部变量 在函数调用过程中 注意在发生异常的时候 cortex-M0架构会自动将R0-R3压入…

nerfstudio以及相关使用记录(长期更新)

NeRFStudio 是NeRF/3DGS研究和开发的集成平台。 提供了一个用户友好的界面和一系列工具&#xff0c;帮助研究人员和开发者更高效地构建、训练和评估 NeRF 模型。以前使用的时候用完就丢一边了&#xff0c;没有注意记录&#xff0c;现在有一个工程调用了nerfstudio&#xff0c;部…

《论分布式系统架构设计及其应用》架构师论文

【摘要】 2022年3月&#xff0c;我参与了某金融科技公司“智能风控云平台”项目的研发工作&#xff0c;担任系统架构师职务&#xff0c;负责分布式系统架构设计与核心技术选型。该平台旨在为银行、保险等金融机构提供实时风险评估、反欺诈及数据服务&#xff0c;需支撑每秒十万…

黄金还能再涨吗?

写在前面&#xff1a;【财富自由计算助手】已上线&#xff0c;快算算你的财富自由要多少 逻辑比事实更真实。 最近&#xff0c;黄金涨得妈都不认。 连菜市场大妈都在讨论&#xff0c;要不要囤点黄金。 2022 年初&#xff0c;俄乌冲突升级为全面战争以来&#xff0c;黄金价格…

AutoDev × MCP 双向赋能:AutoDev 即 MCP 服务,MCP 服务即 AutoDev 指令

在 Agentic Coding 这一话题下&#xff0c;工具使用&#xff08;Tool Use/Function calling&#xff09;是一个非常有意思的话题。完成一个软件开发任务&#xff0c;需要使用到大量的工具&#xff0c; 除去在 IDE 及其插件生态本身提供的功能外&#xff0c;还会使用到大量的外部…

DataWhale 大语言模型 - GPT和DeepSeek模型介绍

本课程围绕中国人民大学高瓴人工智能学院赵鑫教授团队出品的《大语言模型》书籍展开&#xff0c;覆盖大语言模型训练与使用的全流程&#xff0c;从预训练到微调与对齐&#xff0c;从使用技术到评测应用&#xff0c;帮助学员全面掌握大语言模型的核心技术。并且&#xff0c;课程…

安装 oepn-webui报错 Cannot connect to host api.openai.com:443 ssl

一、发现问题 安装 open-webui 的报错 api.openai.com 不通&#xff0c;因为 open-webui 最新版和以前的不一样了&#xff0c;所以网上的很多资料都用不了&#xff0c;经过一番摸索&#xff0c;找到解决办法 另外如果发现浏览器打开之后白屏&#xff0c;则是因为后台正在配置…

【6】树状数组学习笔记

前言 树状数组是我学的第一个高级数据结构&#xff0c;属于 log ⁡ \log log 级数据结构。 其实现在一般不会单独考察数据结构&#xff0c;主要是其在其他算法&#xff08;如贪心&#xff0c;DP&#xff09;中起到优化作用。 长文警告&#xff1a;本文一共 995 995 995 行…