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

网络层协议--ip协议

目录

引言

IP协议

协议头格式

16位标识与3位标志与13位片偏移讲解

网段划分(重要)

DHCP技术

CIDR技术

特殊的IP地址

广播主机

IP地址的数量限制

私有IP地址和公网IP地址

路由:在复杂的网络结构中, 找出一条通往终点的路线

简单认识路由器

路由表生成算法



引言

前面介绍了应用层协议--http

传输层协议--tcp、udp

现在学习网络层--ip

后续最后一篇文章,关于数据链路层协议的介绍。

网络层:在复杂的网络环境中确定一个合适的路径。

IP协议

基本概念
主机 : 配有 IP 地址 , 但是不进行路由控制的设备 ; 路由器 : 即配有 IP 地址 , 又能进行路由控制 ; 节点 : 主机和路由器的统称 ;

协议头格式

4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4.
4位头部长度(header length): IP头部的长度是多少个32bit, 也就是 length * 4 的字节数. 4bit表示最大的数字是15, 因此IP头部最大长度是60字节.
8位服务类型(Type Of Service): 3位优先权字段(已经弃用), 4位TOS字段, 和1位保留字段(必须置为0). 4位TOS分别表示: 最小延时, 最大吞吐量, 最高可靠性, 最小成本. 这四者相互冲突, 只能选择一个. 对于ssh/telnet这样的应用程序, 最小延时比较重要; 对于ftp这样的程序, 最大吞吐量比较重要.
16位总长度(total length): IP数据报整体占多少个字节(单位一字节).
16位标识(id): 唯一的标识主机发送的报文. 如果IP报文在数据链路层被分片了, 那么每一个片里面的这个id都是相同的.
3位标志字段: 第一位保留(保留的意思是现在不用, 但是还没想好说不定以后要用到). 第二位置为1表示禁止分片, 这时候如果报文长度超过MTU, IP模块就会丢弃报文. 第三位表示"更多分片", 如果分片了的话,最后一个分片置为1, 其他是0. 类似于一个结束标记.
13位分片偏移(framegament offset): 是 分片相对于原始IP报文开始处的偏移. 其实就是在表示当前分片在原报文中处在哪个位置. 实际偏移的字节数是这个值 * 8 得到的. 因此, 除了 最后一个报文之外(没有更多分片), 其他报文的长度必须是8的整数倍(否则报文就不连续了).
8位生存时间(Time To Live, TTL): 数据报到达目的地的 最大报文跳数. 一 般是64. 每次经过一个路由, TTL-= 1, 一直减到0还没到达, 那么就丢弃了. 这个字段主要是用来 防止出现路由循环
8位协议: 表示上层协议的类型
16位头部校验和: 使用CRC进行校验, 来鉴别头部是否损坏.
32位源地址和32位目标地址: 表示发送端和接收端.
选项字段(不定长, 最多40字节): 略

16位标识与3位标志与13位片偏移讲解

由于IP的总长度是有上限的,因此传输下来的TCP报文可能会被分片。

就是中间这一栏,进行分片控制。

每个分片都要分到报头

后续片偏移的计算不能加上固定报头,只能算第一个报文的偏移时加上报头(因为我们的视角是一个完整的IP报文,只不过被分割

实际上片偏移是偏移量 / 8

其实不建议分片--可能增加丢包概率

网段划分(重要)

IP 地址分为两个部分 , 网络号和主机号
网络号: 保证相互连接的两个网段具有不同的标识;
主机号: 同一网段内, 主机之间具有相同的网络号, 但是必须有不同的主机号;
不同的子网其实就是把网络号相同的主机放到一起.
如果在子网中新增一台主机, 则这台主机的网络号和这个子网的网络号一致, 但是主机号必须不能和子网中的其他主机重复
通过合理设置主机号和网络号, 就可以保证在相互连接的网络中, 每台主机的IP地址都不相同.
那么问题来了 , 手动管理子网内的 IP, 是一个相当麻烦的事情 .
有一种技术叫做DHCP, 能够 自动的给子网内新增主机节点分配IP地址, 避免了手动管理IP的不便.
一般的路由器都带有DHCP功能. 因此路由器也可以看做一个DHCP服务器.

DHCP技术

DHCP(动态主机配置协议)是一种网络协议,用于自动分配和配置网络设备的IP地址和其他网络参数。以下是关于DHCP技术的一些主要特点和信息:

1. **基本功能**:DHCP允许网络设备在加入网络时自动获取IP地址、子网掩码、默认网关和DNS服务器地址等配置信息,从而简化了网络配置过程。

2. **工作原理**:DHCP基于客户端-服务器模型。客户端(如计算机或手机)向网络中的DHCP服务器发送请求,服务器则根据预定的策略和地址池为客户端分配IP地址和其他配置信息。

3. **地址分配策略**:DHCP提供三种IP地址分配策略:

   - 手工分配:管理员为特定设备静态绑定固定的IP地址。

   - 自动分配:服务器为客户端分配无限租期的IP地址。

   - 动态分配:服务器为客户端分配具有租期的IP地址,租期到期后可重新分配。

4. **资源节约与自动维护**:DHCP通过自动分配和释放IP地址,有效地管理和利用IP资源。这种自动维护机制确保了IP地址的合理使用,减少了地址浪费。

5. **应用场景**:DHCP广泛应用于企业、学校、家庭等网络环境中,特别是在大型网络中,它可以快速为新设备提供网络设置,降低了网络管理的复杂性和成本。

综上所述,DHCP技术通过自动化网络配置过程,提高了网络管理的效率和便捷性,同时通过有效的IP资源管理,实现了网络资源的节约和优化。

过去曾经提出一种划分网络号和主机号的方案 , 把所有 IP 地址分为五类 , 如下图所示 ( 该图出 自 [TCPIP])
A 0.0.0.0 127.255.255.255
B 128.0.0.0 191.255.255.255
C 192.0.0.0 223.255.255.255
D 224.0.0.0 239.255.255.255
E 240.0.0.0 247.255.255.255
随着 Internet 的飞速发展 , 这种划分方案的局限性很快显现出来 , 大多数组织都申请 B 类网络地址 , 导致 B类地址很快就分配完了 , A 类却浪费了大量地址。
例如, 申请了一个B类地址, 理论上一个子网内能允许6万5千多个主机(同一ip网络号). A类地址的子网内的主机数更多.然而实际网络架设中, 不会存在一个子网内有这么多的情况. 因此大量的IP地址都被浪费掉了。
针对这种情况提出了新的划分方案 , 称为 CIDR(Classless Interdomain Routing)。

CIDR技术

引入一个额外的子网掩码(subnet mask)来区分网络号和主机号;
子网掩码也是一个 32位的正整数. 通常用一串 "0" 来结尾;
将IP地址和子网掩码进行 "按位与" 操作, 得到的结果就是网络号(注意,将 IP 地址与网络掩码结合时,通过逻辑“与”操作,可以得到 网络地址,这个网络地址 只包含网络号,不包含主机号,因为这是网络层面的通信协议 );
网络号和主机号的划分与这个IP地址是A类、B类还是C类无关;
可见,IP地址与子网掩码做与运算可以得到网络号, 主机号从全0到全1就是子网的地址范围;
IP 地址和子网掩码还有一种更简洁的表示方法 , 例如 140.252.20.68/24,表示IP地址为140.252.20.68, 子网掩码的高24位是1,也就是255.255.255.0
通过CIDR,可以进一步对网络地址中的主机号进行细分,对网络号进行细分。

特殊的IP地址

将IP地址中的主机地址全部设为0, 就成为了网络号, 代表这个局域网;
将IP地址中的 主机地址全部设为1, 就成为了 广播地址, 用于给同一个链路中相互连接的所有主机发送数据包;
127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1

广播主机

广播主机是指在网络上能够发送广播消息的主机。在计算机网络中,广播是一种通信方式,其中一个主机可以向网络上的所有其他主机发送信息,而不需要知道它们的单个地址。以下是关于广播主机的几个关键点:

### 广播地址
- **广播地址** 是一个特殊的IP地址,当数据包被发送到这个地址时,网络上的所有主机都会接收这个数据包
- 在IPv4中,广播地址通常是网络地址的最高位加上全1的主机部分。例如,如果网络地址是192.168.1.0,子网掩码是255.255.255.0,那么广播地址就是192.168.1.255。

### 广播的类型
- **直接广播**:发送到特定网络的广播地址,例如上述的192.168.1.255,只有192.168.1.0网络上的主机能够接收到。
- **有限广播**:使用IP地址255.255.255.255进行的广播,通常用于本地网络,不会被路由器转发。
- **定向广播**:在某些情况下,可以对子网进行定向广播,这需要更复杂的子网划分。

### 广播主机的作用
- **网络发现**:广播可以用来发现网络上的其他主机,例如使用ARP(地址解析协议)来查找某个IP地址对应的MAC地址。
- **服务公告**:服务可以宣布它们的存在,例如DHCP服务器通过广播来提供IP地址配置信息。
- **网络管理**:网络管理员可以使用广播来发送网络管理命令,如重启或关闭网络上的所有主机。

### 广播的限制
- **广播风暴**:广播可能会导致网络拥塞,因为每个主机都需要处理广播消息。
- **安全性问题**:由于广播消息可以被网络上的任何主机接收,因此可能会带来安全风险。
- **不支持广播的网络**:在许多现代网络技术中,如IPv6,广播被设计为不支持的,以避免广播风暴和相关问题。
由于这些限制,现代网络设计倾向于使用多播和单播通信,而不是广播。多播允许消息发送到一组特定的主机,而不是网络上的所有主机。
 

IP地址的数量限制

我们知道 , IP 地址 (IPv4) 是一个 4 字节 32 位的正整数 . 那么一共只有 2 32 次方 个 IP 地址 , 大概是 43 亿左右 . 而TCP/IP协议规定 , 每个主机都需要有一个 IP 地址 .
这意味着 , 一共只有 43 亿台主机能接入网络么 ?
实际上 , 由于一些特殊的 IP 地址的存在 , 数量远不足 43 亿 ; 另外 IP 地址并非是按照主机台数来配置的 , 而是每一个网卡都需要配置一个或多个 IP 地址 .
CIDR 在一定程度上缓解了 IP 地址不够用的问题 ( 提高了利用率 , 减少了浪费 , 但是IP地址的绝对上限并没有增加 ), 仍然不是很够用 . 这时候有三种方式来解决
动态分配IP地址: 只给接入网络的设备分配IP地址. 因此 同一个MAC地址的设备, 每次接入互联网中, 得到的IP地址不一定是相同的;
NAT技术(后面会重点介绍);
IPv6: IPv6并不是IPv4的简单升级版. 这是 互不相干的两个协议, 彼此并不兼容; IPv6用 16字节128位
来表示一个IP地址; 但是目前IPv6还没有普及;

私有IP地址和公网IP地址

如果一个组织内部组建局域网 ,IP 地址只用于局域网内的通信 ,而不直接连到Internet , 理论上 使用任意的 IP地址都可以 , 但是 RFC 1918 规定了用于组建局域网的私有 IP 地址
10.*,前8位是网络号,共16,777,216个地址
172.16.到 172.31.,前12位是网络号,共1,048,576个地址
192.168.*,前16位是网络号,共65,536个地址
包含在这个范围中的, 都成为私有IP, 其余的则称为全局IP(或公网IP);
一个路由器可以配置两个IP地址, 一个是WAN口IP, 一个是LAN口IP(子网IP).
路由器LAN口连接的主机, 都从属于当前这个路由器的子网中.
不同的路由器, 子网IP其实都是一样的(通常都是192.168.1.1). 子网内的主机IP地址不能重复. 但是子网之间的IP地址(核心需求是子网内的通信)就可以重复了.
每一个家用路由器, 其实又作为运营商路由器的 子网中的一个节点. 这样的运营商路由器可能会有很多级, 最外层的运营商路由器, WAN口IP就是一个公网IP了(指的是最外层的运行商的路由器哦).
子网内的主机需要和外网进行通信时, 路由器将IP首部中的IP地址进行替换(替换成WAN口IP), 这样 逐级替换, 最终数据包中的IP地址成为一个公网IP. 这种技术称为NAT(Network Address Translation,网络地址转换).
如果希望我们自己实现的服务器程序, 能够在公网上被访问到, 就需要把程序部署在一台具有外网IP的服务器上. 这样的服务器可以在阿里云/腾讯云上进行购买。

路由:在复杂的网络结构中, 找出一条通往终点的路线

路由的过程 , 就是这样一跳一跳 (Hop by Hop) " 问路 " 的过程 .
所谓 " 一跳 " 就是数据链路层中的一个区间 . 具体在以太网中指从源 MAC 地址到目的 MAC 地址之间的帧传输区间。
IP 数据包的传输过程也和问路一样 .
当IP数据包, 到达路由器时, 路由器会 先查看目的IP;
路由器决定这个数据包是能 直接发送给目标主机, 还是需要发送给下一个路由器;
依次反复, 一直到达目标IP地址
那么如何判定当前这个数据包该发送到哪里呢 ? 这个就依靠每个节点内部维护一个路由表 ;
路由表可以使用route命令查看
如果目的IP命中了路由表, 就直接转发即可;
路由表中的最后一行,主要由下一跳地址和发送接口两部分组成,当目的地址与路由表中其它行都不匹配时,就按缺省路由条目规定的接口发送到下一跳地址。
假设某主机上的网络接口配置和路由表如下 :
这台主机有两个网络接口,一个网络接口连到192.168.10.0/24网络,另一个网络接口连到
192.168.56.0/24网络;
路由表的Destination是目的网络地址,Genmask是子网掩码,Gateway是下一跳地址 ,Iface是发送接
,Flags中的 U标志表示此条目有效(可以禁用某些 条目), G标志表示此条目的下一跳地址是某个路由器的地址,有G标志的条目表示目的网络地址是与本机接口直接相连的网络,不必经路由器转发。
转发过程例1: 如果要发送的数据包的目的地址是192.168.56.3
跟第一行的子网掩码做与运算得 到192.168.56.0,与第一行的目的网络地址不符
再跟第二行的子网掩码做与运算得 到192.168.56.0,正是第二行的目的网络地址(这个只是网络号),因此从eth1接口发送出去;
由于192.168.56.0/24正 是与eth1 接口直接相连的网络,因此可以直接发到目的主机 ,不需要经路由器转发
转发过程例2: 如果要发送的数据包的目的地址是202.10.1.2
依次和路由表前几项进行对比, 发现都不匹配;
按缺省路由条目, 从eth0接口发出去, 发往192.168.10.1路由器;
由192.168.10.1路由器根据它的路由表决定下一跳地址
注意:按位与之后,只能得到网络号,而主机号使用网络号最后为0的位去分别置1去标识。
在这个例子中,192.168.1.0 就是网络地址,它只包含网络号,不包含主机号。主机号是在网络地址基础上通过改变最后一个八位组(在这个例子中)来标识网络内的不同主机。

简单认识路由器

路由表生成算法

路由表可以由网络管理员手动维护 ( 静态路由 ), 也可以通过一些算法自动生成 ( 动态路由 ).
请同学们课后自己调研一些相关的生成算法 , 例如距离向量算法 , LS 算法 , Dijkstra 算法等 .

相关文章:

网络层协议--ip协议

目录 引言 IP协议 协议头格式 16位标识与3位标志与13位片偏移讲解 网段划分(重要) DHCP技术 CIDR技术 特殊的IP地址 广播主机 IP地址的数量限制 私有IP地址和公网IP地址 路由:在复杂的网络结构中, 找出一条通往终点的路线 简单认识路由器 路由表生成算…...

【总结整理】 神经网络与深度学习 邱锡鹏 课后习题答案 扩展阅读链接

本文主要针对神经网络神经网络邱锡鹏 2~8 章的课后习题进行理解的过程中,搜索到的讲的会比较透彻的链接整理。适合有一定基础但是想了解更细的人阅读。 主要参考书籍 首先是本书pdf可在神经网络与深度学习获取; 主要参考的课后习题答案为nndl/solution…...

使用 Three.js 创建一个 3D 人形机器人仿真系统

引言 在这篇文章中,我们将探讨如何使用 Three.js 创建一个简单但有趣的 3D 人形机器人仿真系统。这个机器人可以通过键盘控制进行行走和转向,并具有基本的动画效果。 技术栈 HTML5Three.jsJavaScript 实现步骤 1. 基础设置 首先,我们需要…...

图像修复和编辑大一统 | 腾讯北大等联合提出BrushEdit:BrushNet进阶版来了

文章链接:https://arxiv.org/pdf/2412.10316 项目链接:https://liyaowei-stu.github.io/project/BrushEdit 亮点直击 提出了BrushEdit,这是先前BrushNet模型的高级迭代版本。BrushEdit通过开创基于修复(inpainting)的图…...

【hackmyvm】Adroit靶机wp

tags: HMVjava反编译SQL注入 1. 基本信息^toc 文章目录 1. 基本信息^toc2. 信息收集3. java反编译4. sql注入5. 解密密码6. 提权 靶机链接 https://hackmyvm.eu/machines/machine.php?vmAdroit 作者 alienum 难度 ⭐️⭐️⭐️⭐️️ 2. 信息收集 ┌──(root㉿kali)-[~] └…...

【Python运维】自动化备份与恢复系统的实现:Python脚本实战

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着信息化进程的加速,数据的重要性日益增加,数据丢失的风险也随之增加。为了保证数据安全,定期备份和及时恢复数据是必不可少的操作。本…...

Goland 安装与使用

GoLand安装 官方网址: JetBrains GoLand:不只是 Go IDE 1. 进入官网,点击下载: ​ 2. 如下图一步步安装 ​ ​ ​ ​ ​ 3. 如下图一步步安装...

vue2 升级为 vite 打包

VUE2 中使用 Webpack 打包、开发,每次打包时间太久,尤其是在开发的过程中,本文记录一下 VUE2 升级Vite 步骤。 安装 Vue2 Vite 依赖 dev 依赖 vitejs/plugin-vue2": "^2.3.3 vitejs/plugin-vue2-jsx": "^1.1.1 vite&…...

FreeSwitch中启用WebRTC

在FreeSwitch中启用WebRTC需要进行一系列配置。以下是详细的步骤: 1. 安装必要的依赖: 确保安装了支持WebRTC的依赖库,如libsrtp。 2. 配置SIP Profile: 编辑 conf/sip_profiles/internal.xml 文件,添加或修改以下内…...

R语言的数据类型

标题:《探索R语言数据类型的奥秘》 引言: 在统计学和数据分析的世界里,R语言无疑是一颗璀璨的明星。它以其强大的数据处理能力和丰富的图形展示功能而受到广泛欢迎。然而,要熟练掌握并高效使用R语言,深入了解其数据类…...

基于UNET的图像分类

网络架构 UNet网络是一种革命性的图像分割架构,在图像分类任务中同样展现出卓越的性能。其独特的设计巧妙地平衡了全局信息捕捉和精细细节保留的需求,特别适合处理需要高度精确定位的任务。 UNet的核心设计理念体现在其 对称的编码器-解码器结构 中。这种结构不仅实现了高效…...

css文字折行以及双端对齐实现方式

使用flex布局后&#xff0c;文字超出容器部分不会自动折行了。实现代码如下&#xff1a; <el-row><el-col :span"24"><span class"label">姓名</span><span class"content">{{name}}</span></el-col>…...

华为云语音交互SIS的使用案例(文字转语音-详细教程)

文章目录 题记一 、语音交互服务&#xff08;Speech Interaction Service&#xff0c;简称SIS&#xff09;二、功能介绍1、实时语音识别2、一句话识别3、录音文件识别4、语音合成 三、约束与限制四、使用1、API2、SDK 五、项目集成1、引入pom依赖2、初始化 Client1&#xff09;…...

设计一个监控摄像头物联网IOT(webRTC、音视频、文件存储)

前言&#xff1a; 设计一个完整的 监控摄像头物联网 IoT 平台 涉及 视频直播和点播、WebRTC 和 文件存储模块&#xff0c;可以分为以下几个主要部分&#xff1a;摄像头设备、服务端处理、Web 前端、视频流存储和回放。以下是结合这些技术的一个具体完整流程设计&#xff0c;涵盖…...

学习笔记(prism--视频【WPF-prism核心教程】)--待更新

《一》框架介绍 prism是一个用于WPF…和winUI中构建的松散耦合&#xff0c;可维护和可测试的应用程序框架。帮助WPF开发人员以简化编写&#xff0c;维护和扩展来设计应用程序。 优点&#xff1a;遵循特定的约定&#xff0c;可自动将view/ViewModel建立DataContext的关系&#…...

Kafka无锁设计

前言 在分布式消息队列系统中,Kafka 的无锁设计是其高吞吐量和高并发的核心优势之一。通过避免锁的竞争,Kafka 能够在高并发和大规模的生产环境中保持高效的性能。为了更好地理解 Kafka 的无锁设计,我们首先对比传统的队列模型,然后探讨 Kafka 如何通过无锁机制优化生产者…...

【GO基础学习】gin框架路由详解

文章目录 gin框架路由详解&#xff08;1&#xff09;go mod tidy&#xff08;2&#xff09;r : gin.Default()&#xff08;3&#xff09;r.GET()路由注册 &#xff08;4&#xff09;r.Run()路由匹配 总结 gin框架路由详解 先创建一个项目&#xff0c;编写一个简单的demo&#…...

GPIO+TIM(无PWM)实现呼吸灯功能

程序特点&#xff1a; 1、模块化&#xff0c;可快速移植&#xff0c;5分钟便可完成移植。 2、通过GPIO普通定时器&#xff0c;实现呼吸灯功能。 3、PWM周期为5ms&#xff0c;占空比调节时间为20ms&#xff0c;占空比为100等份&#xff0c;即呼吸灯从暗到亮需要20ms*1002s。 …...

贪心算法.

贪心算法是指只从当前角度出发,做出当前情景下最好的选择,在某种意义上来说是局部最优解,并不从全局的角度做决策.如果贪心策略选择不恰当,可能无法得到全局最优解. 贪心算法的基本流程如下: 1.分析问题,确定优化目标,对变量进行初始化 2.制定贪心策略:在制定贪心策略时需要…...

Linux系统和makefile详解

### Linux系统详解 Linux是一个开源且功能强大的操作系统内核&#xff0c;自1991年由林纳斯托瓦兹首次发布以来&#xff0c;它已经成为全球最流行的操作系统之一。Linux的核心特性包括开源、多用户多任务、高稳定性与安全性&#xff0c;以及良好的跨平台能力。 1. **开源**&a…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

关于easyexcel动态下拉选问题处理

前些日子突然碰到一个问题&#xff0c;说是客户的导入文件模版想支持部分导入内容的下拉选&#xff0c;于是我就找了easyexcel官网寻找解决方案&#xff0c;并没有找到合适的方案&#xff0c;没办法只能自己动手并分享出来&#xff0c;针对Java生成Excel下拉菜单时因选项过多导…...

论文阅读:Matting by Generation

今天介绍一篇关于 matting 抠图的文章&#xff0c;抠图也算是计算机视觉里面非常经典的一个任务了。从早期的经典算法到如今的深度学习算法&#xff0c;已经有很多的工作和这个任务相关。这两年 diffusion 模型很火&#xff0c;大家又开始用 diffusion 模型做各种 CV 任务了&am…...

小智AI+MCP

什么是小智AI和MCP 如果还不清楚的先看往期文章 手搓小智AI聊天机器人 MCP 深度解析&#xff1a;AI 的USB接口 如何使用小智MCP 1.刷支持mcp的小智固件 2.下载官方MCP的示例代码 Github&#xff1a;https://github.com/78/mcp-calculator 安这个步骤执行 其中MCP_ENDPOI…...