计算机网络————网络层
文章目录
- 网络层设计思路
- IP地址
- IP地址分类
- IP地址与硬件地址
- 协议
- ARP和RARP
- IP
- 划分子网和构造超网
- 划分子网
- 构造超网(无分类编址CIDR)
- ICMP
- 虚拟专用网VPN和网络地址转换NAT
- VPN
- NAT
网络层设计思路
- 网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
- 网络在发送分组时不需要先建立连接,每一个分组(也就是IP数据报)独立发送,与其前后的分组无关。
- 网络层不提供服务质量的承诺,可靠通信由网络的主机中的运输层负责(包括差错处理、流量控制等)
- 好处:网络造价大大降低,运行方式灵活,能适应多种应用。
IP地址
IP地址:就是因特网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围是唯一的32位标识符。IP地址的结构使得可以在因特网上很方便地进行寻址。
IP地址由因特网名字与号码指派公司ICANN进行分配
IP地址的编址方法:
- 分类的IP地址。最近本的编址方法
- 子网的划分。对最基本的编址方法的改进
- 构成超网。误分类编址方法
“分类的IP地址”:就是把IP地址划分为若干个固定类,每一类地址都由两个固定长度的字段组成,
- 第一个字段是网络号net-id,标志主机(或路由器)所连接到的网络,在整个因特网范围内必须唯一
- 第二个字段是主机号host-id,标志该主机(或路由器),在它前面的网络号所指明的网络范围内必须唯一
一个IP地址在整个因特网上是唯一的
IP地址::={<网络号>, <主机号>}
"::="表示定义为
IP地址分类
- A类、B类和C类地址都是单播地址(一对一通信),是最常用的
- A、B、C类地址的网络号字段分别为1,2,3字节,网络号字段的最前面有1~3位的类别位,数值分别规定为0,10,110
- A、B、C类地址的主机号字段分别为3个、2个和1个字节长
- D类地址(前四位是1110)用于多播(一对多通信)
- E类地址(前四位是1111)保留为以后用
- 注:近年来已广泛使用无分类IP地址进行路由选择
IP地址的指派范围:
一般不使用的特殊IP地址:
IP地址的一些特点:
- 分等级的地址结构
- 方便管理,只分配网络号,主机号由得到该网络号的单位自行分配
- 路由器仅根据目的主机所连接的网络号来转发分株,减少路由表所占的存储空间和查找路由表时间
- 一个网络是指具有相同网络号net-id的主机的集合,因此,用转发器或网桥连接起来的若干个局域网仍为一个网络
IP地址与硬件地址
- 局域网里,硬件地址固化在网卡上的ROM中,因此常将硬件地址称为物理地址。局域网的MAC帧中的源地址和目的地址都是硬件地址,因此硬件地址又称为MAC地址。
- 但有时,如X.25网,计算机的硬件地址并不是固化在ROM中的。
区别:
- 物理地址是数据链路层和物理层使用的地址
- IP地址是网络层和以上各层使用的地址,是一种逻辑地址
协议
IP协议
与IP协议配套使用的还有四个协议
- 地址解析协议ARP(Address Resolution Protocol)
- 逆地址解析协议RARP(Reverse Address Resolution Protocol)
- 网际控制报文协议ICMP(Internet Control Message Protocol)
- 网际组管理协议IGMP(Internet Group Management Protocol)
- IP经常要使用ARP和RARP
- ICMP和IGMP要使用IP协议
ARP和RARP
RARP的主要功能是:只知道自己硬件地址的主机能够通过RARP协议找出其IP地址。现在DHCP协议已经包含RARP协议的功能,因此不再单独使用RARP协议。
ARP
- 每一个主机都设有一个ARP高速缓存,里面有本局域网上的各主机和路由器的IP地址到硬件地址的映射表
- 在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表,并且这个映射表经常动态更新。
获取硬件地址流程:
- 主机A要向本局域网上的某个主机B发送IP数据报时,先在ARP高速缓存中查看有无主机B的IP地址。
- 如有,就在ARP高速缓存中查出其对应的硬件地址,再把这个硬件地址写入MAC帧,然后通过局域网把该MAC帧发往此硬件地址
- 如没有,主机A就自动运行ARP寻找B的硬件地址
- ARP进程在本局域网上广播发送一个ARP请求分组
- 在本局域网上的所有主机上运行的ARP进程都收到此ARP请求分组
- 主机B在ARP请求分组中见到自己的IP地址,就向主机A发送ARP响应分组,并写入自己的硬件地址。其余所有主机不理睬这个ARP请求分组
- 主机A收到主机B的ARP响应分组后,就在其ARP高速缓存中写入主机B的IP地址到硬件地址的映射
- 注:这个过程,主机B收到A的ARP请求分组时,就把A的这一地址映射写入主机B自己的ARP高速缓存中。
ARP高速缓存中的每一个映射地址项目都设置生存时间
IP
一个IP数据报由首部和数据两部分组成,首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。固定部分的后面是一些可选字段,长度是可变的。
数据报首部的固定部分中的各字段:
版本:4位。IPv4,IPv6
首部长度:4位。单位是32位字,即4字节。最大可表示十进制数值是15,即1111,最大就是15×4=60字节。IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。
区分服务:8位。旧标准中叫服务类型。1998年IETF把这个字段改名为区分服务DS(Differentiated Services)。只有在使用区分服务时,才起作用。
总长度:16位。指首部和数据之和的长度,单位是字节。因此数据报的最大长度为 2 16 − 1 = 65535 2^{16}-1=65535 216−1=65535字节
- IP层下面的每一种数据链路层都有其自己的帧格式,其中包括的帧格式中的数据字段的最大长度,称为最大传送单元MTU(Maximum Transfer Unit) ,此数据报总长度(首部加上数据部分)一定不能超过下面的数据链路层的MTU值。
- 实际上使用的数据报长度很少有超过1500字节的。
- 为了保证传输效率,规定,所有的主机和路由器必须能够处理的IP数据报长度不得小于576字节,即最小的IP数据报的总长度。
- 当数据报长度超过网络所容许的最大传送单元MTU时,就必须把过长的数据报进行分片后才能在网络上传送。这时,数据报首部中的“总长度”字段指的是分片后的每一个分片的首部长度与数据长度的总和。
标识(identification):16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。当数据报的长度超过MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。相同的标识字段的值使分片后的各数据报片的标识字段中。相同的标识字段的值使分片后的各数据报片后的各数据报片最后能正确地重装成为原来的数据报。
标志(flag):3位,但目前只有两位有意义。
- 标志字段中最低位记为MF(More Fragment)。MF=1表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。
- 标志字段中间的一位记为DF(Don’t Fragment),意思是“不能分片”,只有当DF=0时才允许分片。
片偏移:13位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。相对于用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。也就是说,每个分片的长度一定是8字节(64位)的整数倍。
生存时间TTL:8位。表明数据报在网络中的寿命。由发送数据报的源点设置这个字段,目的是防止无法交付的数据报无限制地在因特网中兜圈子,因而白白消耗网络资源。最初以秒为单位,随着技术发展,改为“跳数限制”,单位为跳数。路由器在转发数据报之前就把TTL减一,若减小为0,就丢弃,不再转发。
协议:8位。指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。
首部校验和:16位。只检验数据报的首部,但不包括数据部分。为0,首部未发生变化,保留数据报,否则认为出现差错,将此数据报丢弃。
源地址:32位
目的地址:32位
数据报首部的可变部分:
就是一个选项字段。选项字段用来支持排错、测量以及安全等措施。此字段的长度可变,从1个字节到40个字节不等,取决于所选择的项目。
划分子网和构造超网
划分子网
两级IP地址到三级IP地址:
- 两级IP地址不够灵活
- 增加一个“子网号字段”
- 这种做法叫做划分子网,或子网寻址或子网路由选择
基本思路:
- 划分子网是一个单位内部的事情,本单位以外的网络看不见这个网络是由多少个子网构成的,对外仍然表现为一个网络
- 从网络的主机号接用若干位作为子网号subnet-id,主机号就相应减少了同样的位数。
- IP地址::={<网络号>, <子网号>, <主机号>}
- 从其他网络发送给本单位的某个主机IP数据报,仍然是根据IP数据报的目的网络号找到连接在本单位网络上的路由器。此路由器在收到IP数据报后,再按目的网络号和子网号找到目的子网,再把IP数据报交付给目的主机
子网掩码:
- 为了使路由器能很方便地从数据报中的目的IP地址中提取出索要找的子网的网络地址,路由器就要使用子网掩码。
- 子网掩码也是32位,由一串1和跟随的一串0组成。1对应于IP地址中原来的net-id加上subnet-id,而子网掩码中的0对应于现在的host-id。
- 例子:
- 如果一个网络不划分子网,就使用默认子网掩码。默认子网掩码中的1对应net-id,这样可以不用查找该地址的类别位就能知道是哪一类的IP地址。
划分子网增加了灵活性,却减少了能够连接在网络上的主机总数。使用子网划分后,路由表包括:目的网络地址、子网掩码和下一跳地址
构造超网(无分类编址CIDR)
无分类域间路由选择CIDR:
- 消除了传统的A类、B类和C类地址以及划分子网的概念,可以更有效地分配IPv4地址空间。
- CIDR把32位IP地址划分为两个部分:
- 前面的部分是“网络前缀”,用来指明网络
- 后面的部分用来知名主机
- 无分类的两级编址:
- IP地址::={<网络前缀>, <主机号>}
- 使用“斜线记法”,或称为CIDR记法,即在IP地址后面加上斜线“/”,然后写上网络前缀所占的位数。
- CIDR把网络前缀相同的连续的IP地址组成一个“CIDR地址块”。只要知道CIDR地址快中的任何一个地址,就可以知道这个地址块的起始地址(即最小地址)和最大地址,以及地址块中的地址数。
- 例子:
- 128.14.35.7/20,前20位是网络前缀,后面是主机号
- 这个地址所在地址块中的最小地址和最大地址可以很方便的得出
- 最小地址 128.14.32.0
- 最大地址 128.14.47.255
- 主机号全0和全1的地址一般不使用,只使用这两个地址之间的地址。
- 为了更方便的进行路由选择,使用32的地址掩码,也是一串1和一串0组成,1的个数是网络前缀的长度。
- 斜线记法中,斜线后面的数值就是地址掩码中1的个数
- 由于一个CIDR地址块中有很多地址,所以在路由表中就利用CIDR地址块来查找目的网络。这种地址的聚合常称为路由聚合,它使得路由表中的一个项目可以表示原来传统分类地址的很多个(例如上千个)路由。
- 路由聚合也称为构成超网
最长前缀匹配
使用CIDR时,采用了网络前缀这种记法,IP地址由网络前缀和主机号这两个部分组成,因此在路由表中的项目也要有相应的改变。每个项目由网络前缀和下一跳地址组成,在查找路由表时可能会得到不止一个匹配结果,如何选择呢?
- 从匹配结果中选择具有最长网络前缀的路由。这叫最长前缀匹配。又称为最长匹配或最佳匹配。
ICMP
- 为了更有效地转发IP数据报和提高交付成功的机会。
- ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。
- ICMP报文作文IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。
ICMP报文分类
1、ICMP差错报告报文
2、ICMP询问报文
ICMP报文的前4个字节是统一格式,共有三个字段:即类型、代码和校验和。
代码字段是为了进一步区分某种类型中的几种不同情况。
校验和字段用来检验整个ICMP报文。
接着4个字节的内容与ICMP的类型有关。
最后面是数据字段,其长度取决于ICMP的类型。
常用ICMP报文类型:
ICMP差错报告报文:
1、终点不可达:路由器或主机不能交付数据报时,就向源点发送终点不可达报文。
2、源点抑制:路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢
3、时间超过:路由器收到生存时间为0的数据报时,除丢弃数据报外,还向源点发送时间超过报文。
当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。
4、参数问题:路由器或目的主机收到的数据报首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
5、改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器
差错报文格式:
常用的ICMP询问报文:
1、回送请求和回答:
ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出的询问。收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。这种询问报文用来测试目的站是否可达以及了解其有关状态。
2、时间戳请求和回答:
时间戳请求报文是请某个主机或路由器回答当前的日期和时间。时间戳请求和回答可用来与回答可用来进行时钟同步和测量时间。回答报文有一个32位的字段,写入的整数代表从1900年1月1日其到当前时刻一共有多少秒。
ICMP应用举例
1、分组网间探测PING(Packet InterNet Groper),用来测试两个主机之间的可达性。用到了ICMP回送请求与回送回答报文。是应用层直接使用网络层ICMP的一个例子,没有通过运输层的TCP或UDP。
2、traceroute(unix),tracert(Windows)
Traceroute从源主机向目的主机发送一连串的IP数据报,数据报中封装的是无法交付的UDP用户数据报。
虚拟专用网VPN和网络地址转换NAT
VPN
专用地址
- 这些地址只能用于一个机构的内部通信,而不能用于和因特网上的主机通信。
- 专用地址只用作本地地址而不能用作全球地址。
- 在因特网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。
- RFC1918指明的专用地址是:
- 专用IP地址的互联网称为专用互联网或本地互联网,或叫做专用网。
- 专用IP地址也叫做可重用地址
很大机构有许多部门分布在相距很远的一些地点,在每个地点都有自己的专用网。
如果要通信:
1、租用电信公司的通信线路为本机构专用。
简单方便,线路的租金高
2、利用公用的因特网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用VPN(Virtual Private Network)
如果不同网点之间的通信必须经过公用的因特网,但又有保密的要求,那么所有通过因特网传送的数据都必须加密。
NAT
另外一种情况,专用网络内部的一些主机本来已经分配到本地IP地址,但又想和因特网上的主机通信(不需要加密),采取什么措施?
NAT(Network Address Translation)需要在专用网连接到因特网的路由器上安装NAT软件,装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。这样,所有使用本地地址的主机载荷外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。
相关文章:

计算机网络————网络层
文章目录 网络层设计思路IP地址IP地址分类IP地址与硬件地址 协议ARP和RARPIP划分子网和构造超网划分子网构造超网(无分类编址CIDR) ICMP 虚拟专用网VPN和网络地址转换NATVPNNAT 网络层设计思路 网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数…...

el-table刷新后保持高亮并改变状态字段
一、需求: 1、点击左侧右边显示具体内容 2、点击右边确认 左侧依旧高亮并且改变启动状态颜色 3、点击刷新、重置、高级搜索等不高亮 右边也不显示具体内容 二、效果图: 三、具体实施 1、定义highlight-current-row 是否高亮行 <el-table ref&quo…...
ARM Ubuntu内核更新记录
1,系统版本说明:ARM 鲲鹏920 cat /etc/lsb-release DISTRIB_IDUbuntu DISTRIB_RELEASE18.04 DISTRIB_CODENAMEbionic DISTRIB_DESCRIPTION"Ubuntu 18.04.5 LTS" 2, 将source.list中的deb-src打开 # 默认注释了源码镜像以提高 apt…...
【sgUploadTray】上传托盘自定义组件,可实时查看上传列表进度
【sgUploadTray】上传托盘自定义组件,可实时查看上传列表进度 特性: 可以全屏可以还原尺寸可以最小化可以回到右下角默认位置支持删除队列数据 sgUploadTray源码 <template><div :class"$options.name" :show"show" :size…...

改进二进制粒子群算法在配电网重构中的应用(Matlab实现)【论文复现】
目录 0 概述 1 配电网重构的目标函数 2 算例 3 matlab代码实现 0 概述 配电系统中存在大量的分段开关和联络开关,配电网重构正是通过调整分段开关和联络升大的组合状态来变换网络结构,用于优化配电网某些指标,使其达到最优状态。正常运行时,则通…...

【文章系列解读】Nerf
1. Nerf NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 2020年8月3日 (0)总结 NeRF工作的过程可以分成两部分:三维重建和渲染。(1)三维重建部分本质上是一个2D到3D的建模过程ÿ…...

基于springboot,vue网上订餐系统
开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 前端技术 :VueElementUI 服务端技术:springbootmybatisredis 本系统分用户前台和管理后台两部分,项…...
Nautilus Chain 更换全新测试网,主网即将在不久上线
目前,Nautilus Chain 正在为主网上线前的最后阶段做准备,据悉该链更新了全新的测试网,在此前版本的测试网的基础上进行了全新的技术升级,最新测试网版本与生态发展的技术规划更为贴近。本次测试网升级将会是最后一次测试网版本的迭…...
攻防世界web:Web_php_wrong_nginx_config,python3后门
网上的wp中关于Web_php_wrong_nginx_config的后门代码都是python2的(源码来自:Weevely:一个 PHP 混淆后门的代码分析 - Phukers Blog) 以下是转换成python3的版本 # encoding: utf-8from random import randint, choice from ha…...

【VUE】解决图片视频加载缓慢/首屏加载白屏的问题
1 问题描述 在 Vue3 项目中,有时候会出现图片视频加载缓慢、首屏加载白屏的问题 2 原因分析 通常是由以下原因导致的: 图片或视频格式不当:如果图片或视频格式选择不当,比如选择了无损压缩格式,可能会导致文件大小过大…...

spring复习:(35)在getBean时,在哪里根据普通bean和工厂bean进行区分处理来返回的?
在AbstractBeanFactory的doGetBean方法: 调用的getObjectForBeanInstance方法部分代码如下: 如果不是工厂bean,则直接将实例返回,否则调用getObjectFromFactoryBean方法获取工厂bean的getObject方法返回的对象 protected Object getObjectF…...

Jenkins全栈体系(二)
Jenkins 第三章 Jenkins Git Maven 自动化部署配置 十、几种构建方式 快照依赖构建/Build whenever a SNAPSHOT dependency is built 当依赖的快照被构建时执行本job 触发远程构建 (例如,使用脚本) 远程调用本job的restapi时执行本job job依赖构建/Build after other proj…...

c++11 标准模板(STL)(std::basic_istream)(九)
定义于头文件 <istream> template< class CharT, class Traits std::char_traits<CharT> > class basic_istream : virtual public std::basic_ios<CharT, Traits> 类模板 basic_istream 提供字符流上的高层输入支持。受支持操作包含带格式的…...

OpenSource - Spring Startup Ananlyzer
文章目录 🚀Optimization of Spring Startup核心能力📈Spring应用启动数据采集报告应用启动时长优化 📈Spring应用启动数据采集报告安装jar包配置项应用启动自定义扩展 🚀应用启动时长优化支持异步化的Bean类型接入异步Bean优化 开…...

ES6迭代器、Set、Map集合和async异步函数
目录 迭代器 Iterator 的作用 Iterator 的遍历过程 Set Map集合 map和对象区别? async异步函数 迭代器 迭代器(Iterator)就是这样一种机制。它是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署Iterator接口&…...

mac android studio设置跟mac系统一样的快捷键
mac版的android studio 跟mac系统的快捷键不一样,主要修改了下面几组操作,为了跟mac系统快捷键相同 setting->Keymap 搜索bottom 修改3个快捷键: cmd↓ 设置让鼠标移动到屏幕最后面 shiftcmd↓ 选中从当前位置到屏幕最下面 option↓. 或者 end 滚动到屏幕最下方 // 因为默认…...

Java-通过IP获取真实地址
文章目录 前言功能实现测试 前言 最近写了一个日志系统,需要通过访问的 IP 地址来获取真实的地址,并且存到数据库中,我也是在网上看了一些文章,遂即整理了一下供大家参考。 功能实现 这个是获取正确 IP 地址的方法,可…...
Java代码实现word转PDF
import com.spire.doc.Document; import com.spire.doc.FileFormat; import lombok.extern.slf4j.Slf4j; public class WordConvertPdf { /** * word转pdf * param wordPathName word文件路径及名称 * param pdfPathName pdf生成路径及名称 */ public static void wordToPdf(…...
Java设计模式-简单工厂(Simple Factory)模式
介绍 简单工厂(Simple Factory)模式,又称为静态工厂方法(Static Factory Method)模式。 由一个工厂类来创建具体产品,即创建具体类的实例。 简单工厂模式从概念上涉及三个角色: 抽象产品角色…...
微软所有业务线梳理
目录 一、Windows 二、Office 三、Surface 四、Xbox 五、Azure 六、Dynamics 七、LinkedIn 八、Bing...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型
在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重,适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解,并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...
用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法
用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法 大家好,我是Echo_Wish。最近刷短视频、看直播,有没有发现,越来越多的应用都开始“懂你”了——它们能感知你的情绪,推荐更合适的内容,甚至帮客服识别用户情绪,提升服务体验。这背后,神经网络在悄悄发力,撑起…...

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

UE5 音效系统
一.音效管理 音乐一般都是WAV,创建一个背景音乐类SoudClass,一个音效类SoundClass。所有的音乐都分为这两个类。再创建一个总音乐类,将上述两个作为它的子类。 接着我们创建一个音乐混合类SoundMix,将上述三个类翻入其中,通过它管理每个音乐…...

PydanticAI快速入门示例
参考链接:https://ai.pydantic.dev/#why-use-pydanticai 示例代码 from pydantic_ai import Agent from pydantic_ai.models.openai import OpenAIModel from pydantic_ai.providers.openai import OpenAIProvider# 配置使用阿里云通义千问模型 model OpenAIMode…...