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

ac的dhcp池里option43配错导致ap无法上线问题排查过程

dhcp池里ac地址配错,导致ap无法上线问题排查过程

问题:ap手动设置ac的ip正常注册在线,但dhcp获得ip和ac地址发现无法在ac上注册成功。

组网:

ac旁路结构,路由器lan口地址172.16.1.1,开dhcp服务,option43提供ac的地址172.16.1.206,地址池172.16.100-200,网关ip172.16.1.1。

解决过程:

如上图,路由器上开dhcp服务,给ap提供dhcp服务,dhcp池设置ip范围是172.16.1.100-172.16.1.200,掩码24,gw是172.16.1.1,ac的地址是172.16.1.206

ap1上电后,查看dhcp分配情况,发现分配地址是172.16.1.200,但在ac172.16.1.206上看不到ap1上线

路由器上

ac上

ap1 ping正常

登录ap,设置ac地址为手动配置172.16.1.206,并在路由器4口抓包

发现ac上,看到ap上线了

抓包tcpdump  -i eth4   -nnev  udp port  5246  -c 20 抓ap的capwap消息,udp port是5246,并抓20包自动退出-c 20,-nnev是关闭dns查询,数字化显示,显示mac地址,并显示详情

tcpdump: listening on eth4, link-type EN10MB (Ethernet), capture size 262144 bytes

17:29:35.427300 6c:ef:c6:65:ab:c0 > 64:c3:41:b2:18:21, ethertype IPv4 (0x0800), length 567: (tos 0x7,CE, ttl 64, id 43379, offset 0, flags [DF], proto UDP (17), length 553)

    172.16.1.200.5246 > 172.16.1.206.5246: UDP, length 525

17:29:35.427579 64:c3:41:b2:18:21 > 6c:ef:c6:65:ab:c0, ethertype IPv4 (0x0800), length 277: (tos 0x7,CE, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 263)

    172.16.1.206.5246 > 172.16.1.200.5246: UDP, length 235

17:29:40.429262 6c:ef:c6:65:ab:c0 > 64:c3:41:b2:18:21, ethertype IPv4 (0x0800), length 825: (tos 0x7,CE, ttl 64, id 43559, offset 0, flags [DF], proto UDP (17), length 811)

    172.16.1.200.5246 > 172.16.1.206.5246: UDP, length 783

17:29:40.429650 64:c3:41:b2:18:21 > 6c:ef:c6:65:ab:c0, ethertype IPv4 (0x0800), length 277: (tos 0x7,CE, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 263)

    172.16.1.206.5246 > 172.16.1.200.5246: UDP, length 235

17:29:40.431498 6c:ef:c6:65:ab:c0 > 64:c3:41:b2:18:21, ethertype IPv4 (0x0800), length 603: (tos 0x7,CE, ttl 64, id 43560, offset 0, flags [DF], proto UDP (17), length 589)

    172.16.1.200.5246 > 172.16.1.206.5246: UDP, length 561

17:29:40.432161 64:c3:41:b2:18:21 > 6c:ef:c6:65:ab:c0, ethertype IPv4 (0x0800), length 1050: (tos 0x7,CE, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 1036)

    172.16.1.206.5246 > 172.16.1.200.5246: UDP, length 1008

17:29:40.616124 6c:ef:c6:65:ab:c0 > 64:c3:41:b2:18:21, ethertype IPv4 (0x0800), length 80: (tos 0x7,CE, ttl 64, id 43564, offset 0, flags [DF], proto UDP (17), length 66)

    172.16.1.200.5246 > 172.16.1.206.5246: UDP, length 38

17:29:40.616458 64:c3:41:b2:18:21 > 6c:ef:c6:65:ab:c0, ethertype IPv4 (0x0800), length 60: (tos 0x7,CE, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 44)

   

发现ap的mac是6c:ef:c6:65:ab:c0,ip是172.16.1.200,ac的ip是172.168.1.206,mac地址是64:c3:41:b2:18:21,2毫秒后,开始有响应。

root@IIIoT:~# arp  -n   ap上执行命令arp -n
IP address       HW type     Flags       HW address            Mask     Device
172.16.1.1       0x1         0x2         20:1f:54:f5:36:61     *        br-wan
172.16.1.206     0x1         0x2         64:c3:41:b2:18:21     *        br-wan

ap的banner显示mac地址

NAME:           WAP6240-IE
 MAC:            6c:ef:c6:65:ab:c0

奇怪,删除ap上手动配置ac地址,改成从dhcp的option43里获取ac地址,重启ap,在路由器上再次抓包

~ # tcpdump  -i eth4  -nnev  udp port  5246  -c 20

tcpdump: listening on eth4, link-type EN10MB (Ethernet), capture size 262144 bytes

17:58:51.777366 6c:ef:c6:65:ab:c0 > 20:1f:54:f5:36:61, ethertype IPv4 (0x0800), length 567: (tos 0x7,CE, ttl 64, id 52870, offset 0, flags [DF], proto UDP (17), length 553)发给了这个mac地址

    172.16.1.200.5246 > 17.16.1.206.5246: UDP, length 525  发出的目的ip 是17.16.1.206,好像ip错了,正确的ip是172.16.1.206,ip第一段错了

17:58:58.793246 6c:ef:c6:65:ab:c0 > 20:1f:54:f5:36:61, ethertype IPv4 (0x0800), length 567: (tos 0x7,CE, ttl 64, id 53510, offset 0, flags [DF], proto UDP (17), length 553)

    172.16.1.200.5246 > 17.16.1.206.5246: UDP, length 525  没有响应,在重发

17:59:22.803515 6c:ef:c6:65:ab:c0 > 20:1f:54:f5:36:61, ethertype IPv4 (0x0800), length 567: (tos 0x7,CE, ttl 64, id 54484, offset 0, flags [DF], proto UDP (17), length 553)

    172.16.1.200.5246 > 17.16.1.206.5246: UDP, length 525 没有响应,在重发

17:59:52.823960 6c:ef:c6:65:ab:c0 > 20:1f:54:f5:36:61, ethertype IPv4 (0x0800), length 567: (tos 0x7,CE, ttl 64, id 56270, offset 0, flags [DF], proto UDP (17), length 553)

    172.16.1.200.5246 > 17.16.1.206.5246: UDP, length 525  没有响应,在重发

18:00:18.835629 6c:ef:c6:65:ab:c0 > 20:1f:54:f5:36:61, ethertype IPv4 (0x0800), length 567: (tos 0x7,CE, ttl 64, id 57090, offset 0, flags [DF], proto UDP (17), length 553)

    172.16.1.200.5246 > 17.16.1.206.5246: UDP, length 525  没有响应,在重发

18:00:20.843741 6c:ef:c6:65:ab:c0 > 20:1f:54:f5:36:61, ethertype IPv4 (0x0800), length 567: (tos 0x7,CE, ttl 64, id 57274, offset 0, flags [DF], proto UDP (17), length 553)

    172.16.1.200.5246 > 17.16.1.206.5246: UDP, length 525  没有响应,在重发

18:00:39.874509 6c:ef:c6:65:ab:c0 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 567: (tos 0x7,CE, ttl 64, id 18424, offset 0, flags [DF], proto UDP (17), length 553)

    172.16.1.200.5246 > 255.255.255.255.5246: UDP, length 525  发出二层广播和三层广播发现消息

18:00:39.875037 64:c3:41:b2:18:21 > 6c:ef:c6:65:ab:c0, ethertype IPv4 (0x0800), length 277: (tos 0x7,CE, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 263)

    172.16.1.206.5246 > 172.16.1.200.5246: UDP, length 235  有ac的响应

18:00:39.875166 20:1f:54:f5:36:61 > 6c:ef:c6:65:ab:c0, ethertype IPv4 (0x0800), length 277: (tos 0x7,CE, ttl 64, id 53519, offset 0, flags [DF], proto UDP (17), length 263)

    172.16.1.1.5246 > 172.16.1.200.5246: UDP, length 235  有另一个ac的响应

18:00:44.876971 6c:ef:c6:65:ab:c0 > 20:1f:54:f5:36:61, ethertype IPv4 (0x0800), length 825: (tos 0x7,CE, ttl 64, id 46801, offset 0, flags [DF], proto UDP (17), length 811)

172.16.1.200.5246 > 172.16.1.1.5246: UDP, length 783  选择向这个ac的响应

18:00:44.877689 20:1f:54:f5:36:61 > 6c:ef:c6:65:ab:c0, ethertype IPv4 (0x0800), length 277: (tos 0x7,CE, ttl 64, id 54647, offset 0, flags [DF], proto UDP (17), length 263)

    172.16.1.1.5246 > 172.16.1.200.5246: UDP, length 235

18:00:44.879582 6c:ef:c6:65:ab:c0 > 20:1f:54:f5:36:61, ethertype IPv4 (0x0800), length 603: (tos 0x7,CE, ttl 64, id 46802, offset 0, flags [DF], proto UDP (17), length 589)

  发现最初ap发出的ip错误,mac地址发给20:1f:54:f5:36:61查询发现是路由器lan口地址,重发几次后,发出广播消息,所有的ac都会响应。

XOS#show  ip arp
   IP Address       MAC Address     Interface  Type
   172.16.1.187  c0:a6:6d:45:06:80  vlan1.3     ether
  172.16.81.205  00:0f:c9:24:10:b1  vlan1.1     ether
     172.16.1.1  20:1f:54:f5:36:61  vlan1.3     ether   发现这是路由器lan口地址对应mac是20:1f:54:f5:36:61,最初ap的capwap消息发给了路由器lan口mac地址
   172.16.1.200  6c:ef:c6:65:ab:c0  vlan1.3     ether
Total arp count : 4 

tcpdump不好判断,生成抓包文件,下载下拉查看

/mnt/userspace # tcpdump  -i eth4  -w  abc0.pcap 生成抓包文件

tcpdump: listening on eth4, link-type EN10MB (Ethernet), capture size 262144 bytes

^C311 packets captured  中断后生成文件

313 packets received by filter

0 packets dropped by kernel

crt打开tftp服务器,准备传出文件

cmd下查看udp69端口是否打开?

C:\>netstat  -aon | findstr :69    查看69端口是那个进程号打开,行尾红色为进程号,本例为22560
  UDP    0.0.0.0:69             *:*                                    22560
  UDP    [::]:69                *:*                                        22560

C:\>tasklist  | findstr  22560   根据进程号查询文件名
SecureCRT.exe                22560 Console                    1     59,104 K 证明是crt打开了文件

确定文件保存目录

路由器里传出文件

/mnt/userspace # tftp  -pl  abc0.pcap   172.16.81.205  tftp传出文件

abc0.pcap            100% |*************************************************************| 34733  0:00:00 ETA传递完成

在已经获得tftp目录下打开抓包文件,并过滤bootp,arp和capwap消息

现在问题是dhcp获得的ac地址错误,导致ap注册关联消息发给网关

检查一下dhcp的offer消息

Value: 800c0131372e31362e312e323036   17.16.1.206

在ap上查询

root@IIIoT:~#

root@IIIoT:~# cd  /tmp

root@IIIoT:/tmp# cat  wtp.cfg  dhcp获得ac的地址,

<WTP_DHCP_AC_IPV4_ADDR> 17.16.1.206   发现这个地址错误

root@IIIoT:/tmp# cat wtp.ip   这是目前ap连接的ac的ip地址

172.16.1.1  发现是网关的地址

在路由器上查看配置

修正

路由器上重新抓包查看:

tcpdump  -i eth4 -nnev  ether host 6c:ef:c6:65:ab:c0

19:56:08.315353 20:1f:54:f5:36:61 > 6c:ef:c6:65:ab:c0, ethertype IPv4 (0x0800), length 342: (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)

    172.16.1.1.67 > 172.16.1.200.68: BOOTP/DHCP, Reply, length 300, xid 0xaf764a47, Flags [none]

          Your-IP 172.16.1.200

          Client-Ethernet-Address 6c:ef:c6:65:ab:c0

          Vendor-rfc1048 Extensions

            Magic Cookie 0x63825363

            DHCP-Message Option 53, length 1: Offer

            Server-ID Option 54, length 4: 172.16.1.1

            Lease-Time Option 51, length 4: 86400

            Subnet-Mask Option 1, length 4: 255.255.255.0

            Default-Gateway Option 3, length 4: 172.16.1.1

            Domain-Name-Server Option 6, length 4: 114.114.114.114

Vendor-Option Option 43, length 15: 128.13.1.49.55.50.46.49.54.46.49.46.50.48.54

    ascii码显示的ac地址                                          1 7  2  .  1  6  . 1  .  2  0 6 

19:56:09.304704 6c:ef:c6:65:ab:c0 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 60: Ethernet (len 6), IPv4 (len 4), Request who-has 172.16.1.206 tell 172.16.1.200, length 46  arp查询

19:56:09.305024 64:c3:41:b2:18:21 > 6c:ef:c6:65:ab:c0, ethertype ARP (0x0806), length 60: Ethernet (len 6), IPv4 (len 4), Reply 172.16.1.206 is-at 64:c3:41:b2:18:21, length 46 arp响应

capwap消息

19:56:14.311909 6c:ef:c6:65:ab:c0 > 64:c3:41:b2:18:21, ethertype IPv4 (0x0800), length 825: (tos 0x7,CE, ttl 64, id 18791, offset 0, flags [DF], proto UDP (17), length 811)

    172.16.1.200.5246 > 172.16.1.206.5246: UDP, length 783  注册消息

19:56:14.312308 64:c3:41:b2:18:21 > 6c:ef:c6:65:ab:c0, ethertype IPv4 (0x0800), length 277: (tos 0x7,CE, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 263)

    172.16.1.206.5246 > 172.16.1.200.5246: UDP, length 235  响应

问题总结:

原以为dhcp获得的ac地址和手动设置ac地址两个发discover包会有所区别,起始没有区别。

获得地址错误,查询路由器发现不是直连路由,会发向网关mac地址。

相关文章:

ac的dhcp池里option43配错导致ap无法上线问题排查过程

dhcp池里ac地址配错&#xff0c;导致ap无法上线问题排查过程 问题&#xff1a;ap手动设置ac的ip正常注册在线&#xff0c;但dhcp获得ip和ac地址发现无法在ac上注册成功。 组网&#xff1a; ac旁路结构&#xff0c;路由器lan口地址172.16.1.1&#xff0c;开dhcp服务&#xff0…...

第1章:LangChain4j的聊天与语言模型

LangChain4J官方文档翻译与解析 目标文档路径: https://docs.langchain4j.dev/tutorials/chat-and-language-models/ 语言模型的两种API类型 LangChain4j支持两种语言模型&#xff08;LLM&#xff09;的API&#xff1a; LanguageModel&#xff1a;这种API非常简单&#xff0c;…...

Cython学习笔记1:利用Cython加速Python运行速度

Cython学习笔记1&#xff1a;利用Cython加速Python运行速度 CythonCython 的核心特点&#xff1a;利用Cython加速Python运行速度1. Cython加速Python运行速度原理2. 不使用Cython3. 使用Cython加速&#xff08;1&#xff09;使用pip安装 cython 和 setuptools 库&#xff08;2&…...

【从0做项目】Java音缘心动(1)———项目介绍设计

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 零&#xff1a;项目结果展示 一&#xff1a;音乐播放器Web网页介绍 二&#xff1a;前期准备工作&…...

智慧农业新生态 | 农业数字化服务平台——让土地生金,让服务无忧

一部手机管农事&#xff0c;从播种到丰收&#xff0c;全链路数字化赋能&#xff01; 面向农户、农机手、农服商、农资商打造的一站式农业产业互联网平台&#xff0c;打通农资交易、农机调度、农服管理、技术指导全场景闭环&#xff0c;助力乡村振兴提效增收。 三大核心场景&am…...

C++编程,#include <iostream>详解,以及using namespace std;作用

在C编程中&#xff0c;#include <iostream> 是用来包含输入/输出流头文件的预处理指令。它允许程序使用标准的输入/输出对象如 std::cout 和 std::cin&#xff0c;以便与标准输入和输出流进行交互。这一头文件是编写输入输出操作时必不可少的部分。 讲到这里&#xff0c…...

jetbrains IDEA集成大语言模型

一、CodeGPT ‌CodeGPT‌是由CSDN打造的一款生成式AI产品&#xff0c;专为开发者量身定制。它能够提供强大的技术支持&#xff0c;帮助开发者在学习新技术或解决实际工作中的各种计算机和开发难题‌1。 idea集成 1.在线安装&#xff1a;直接在线安装 2.离线安装 JetBrains Mar…...

理解都远正态分布中指数项的精度矩阵(协方差逆矩阵)

之前一直不是很理解这个公式为什么用这个精度矩阵&#xff0c;为什么这么巧合&#xff0c;为什么是它&#xff0c;百思不得其解&#xff0c;最近有了一些新的理解&#xff1a; 1. 这个精度矩阵相对公平合理的用统一的方式衡量了变量间的关系&#xff0c;但是如果是公平合理的衡…...

使用 Spark NLP 实现中文实体抽取与关系提取

在自然语言处理(NLP)领域,实体抽取和关系提取是两个重要的任务。实体抽取用于从文本中识别出具有特定意义的实体(如人名、地名、组织名等),而关系提取则用于识别实体之间的关系。本文将通过一个基于 Apache Spark 和 Spark NLP 的示例,展示如何实现中文文本的实体抽取和…...

less-8 boolen盲注,时间盲注 函数补全

获取当前数据库名 import requestsdef inject_database(url):namemax_length20 # 假设数据库名称最大长度为20# ASCII范围&#xff1a;数字、字母、下划线&#xff08;_&#xff09;low{a: 97, z: 122, A: 65, Z: 90, 0: 48, 9: 57, _: 95}high{97: a, 122: z, 65: A, 90: Z,…...

[NKU]C++基础课(五)补充:结构体

【3.3】C结构体介绍_哔哩哔哩_bilibili 结构体 最厉害的学生 现有N名同学参加了期末考试&#xff0c;并且获得了每名同学的信息: 1 姓名(不超过8个字符的仅有英文小写字母的字符串) 2 语文、数学、英语成绩(均为不超过150的自然数)。 3 总分最高的学生就是最厉害的。 请输…...

亲测可用,IDEA中使用满血版DeepSeek R1!支持深度思考!免费!免配置!

作者&#xff1a;程序员 Hollis 之前介绍过在IDEA中使用DeepSeek的方案&#xff0c;但是很多人表示还是用的不够爽&#xff0c;比如用CodeChat的方案&#xff0c;只支持V3版本&#xff0c;不支持带推理的R1。想要配置R1的话有特别的麻烦。 那么&#xff0c;今天&#xff0c;给…...

springcloud整合seata

1、前置安装与了解&#xff1a; 1、nacos的安装&#xff1a;docker安装nacos并挂载 2、seata的安装&#xff1a;docker安装seata并挂载&#xff0c;同时注册到nacos 3、spring-boot版本为2.6.12&#xff0c;spring-cloud-alibaba版本为2021.0.4.0&#xff0c;spring-cloud版本…...

Html5学习教程,从入门到精通,HTML5 简介语法知识点及案例代码(1)

HTML5 简介 HTML5 是最新的 HTML 标准&#xff0c;它引入了许多新特性&#xff0c;使网页开发更加强大和灵活。以下是一些关键的 HTML5 语法知识点&#xff1a; 1. 文档类型声明 (DOCTYPE) HTML5 的文档类型声明非常简单&#xff1a; <!DOCTYPE html>2. 字符编码 HT…...

Django加bootstrap实现上传文件含有进度条

1. 项目结构 myproject/ ├── myproject/ │ ├── settings.py │ ├── urls.py │ └── ... ├── myapp/ │ ├── templates/ │ │ └── upload.html │ ├── views.py │ ├── urls.py │ └── ... └── media/ # 手动创…...

八大排序算法(2)交换排序-冒泡排序 和 快速排序

快速排序&#xff08;Quick Sort&#xff09; 和 冒泡排序&#xff08;Bubble Sort&#xff09; 都是常见的交换排序算法&#xff0c;它们的核心思想都是通过交换元素来实现排序。但是&#xff0c;它们的工作原理和性能差异非常大。下面我们来详细对比这两种排序算法&#xff1…...

Python的那些事第二十三篇:Express(Node.js)与 Python:一场跨语言的浪漫邂逅

摘要 在当今的编程世界里,Node.js 和 Python 像是两个性格迥异的超级英雄,一个以速度和灵活性著称,另一个则以强大和优雅闻名。本文将探讨如何通过 Express 框架将 Node.js 和 Python 结合起来,打造出一个高效、有趣的 Web 应用。我们将通过一系列幽默风趣的实例和表格,展…...

STM32MP157A单片机移植Linux驱动

在stm32mp157a单片机移植Linux操作系统&#xff0c;并移植内核驱动&#xff0c;在应用程序中使用3个线程&#xff0c;分别实现控制单片机上3个led流水灯的功能、蜂鸣器控制的功能、风扇控制的功能。 需求整理&#xff1a; 1.驱动程序-->led1.c&#xff0c;led2.c&#xff…...

Qt程序退出相关资源释放问题

目录 问题背景&#xff1a; aboutToQuit 代码举例 closeEvent事件 代码举例 程序退出方式 quit() exit(int returnCode 0) close() 问题背景&#xff1a; 实际项目中程序退出前往往需要及进行一些资源释放、配置保存、线程中断等操作&#xff0c;避免资源浪费&#xff…...

【大学生职业规划大赛备赛PPT资料PDF | 免费共享】

自取链接&#xff1a; 链接&#xff1a;https://pan.quark.cn/s/4fa45515325e &#x1f4e2; 同学&#xff0c;你是不是正在为职业规划大赛发愁&#xff1f; 想展示独特思路却不知如何下手&#xff1f; 想用专业模板却找不到资源&#xff1f; 别担心&#xff01;我整理了全网…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

SpringAI实战:ChatModel智能对话全解

一、引言&#xff1a;Spring AI 与 Chat Model 的核心价值 &#x1f680; 在 Java 生态中集成大模型能力&#xff0c;Spring AI 提供了高效的解决方案 &#x1f916;。其中 Chat Model 作为核心交互组件&#xff0c;通过标准化接口简化了与大语言模型&#xff08;LLM&#xff0…...

人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型

在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重&#xff0c;适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解&#xff0c;并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...

【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解

一、前言 在HarmonyOS 5的应用开发模型中&#xff0c;featureAbility是旧版FA模型&#xff08;Feature Ability&#xff09;的用法&#xff0c;Stage模型已采用全新的应用架构&#xff0c;推荐使用组件化的上下文获取方式&#xff0c;而非依赖featureAbility。 FA大概是API7之…...