SIP中常见的服务器类型
在SIP(Session Initiation Protocol)网络中,除了B2BUA(Back-to-Back User Agent)、路由代理和媒体服务器外,还有其他类型的服务器。以下是所有类型的服务器及其作用、示例和其他相关信息的表格:
| 类型 | 中文名 | 作用 | 示例 | 其他内容 |
|---|---|---|---|---|
| B2BUA | 背靠背用户代理 | 在两个SIP会话之间充当中间人,处理信令和媒体流 | Asterisk, FreeSWITCH | 通常用于SIP trunking和会话控制 |
| Proxy Server | 代理服务器 | 转发SIP请求和响应,不修改消息体 | Kamailio, OpenSIPS | 可以是有状态或无状态的 |
| Redirect Server | 重定向服务器 | 将SIP请求重定向到另一个地址 | SIP Express Router (SER) | 不参与会话建立 |
| Registrar Server | 注册服务器 | 接收和处理SIP注册请求,维护用户位置数据库 | Asterisk, Kamailio | 通常与代理服务器一起使用 |
| Location Server | 位置服务器 | 存储和提供用户的位置信息 | SIP Express Router (SER) | 与注册服务器和代理服务器协同工作 |
| Media Server | 媒体服务器 | 处理音频、视频等媒体流的传输和处理 | Asterisk, FreeSWITCH | 支持多种编解码器 |
| Application Server | 应用服务器 | 提供增值服务,如语音邮件、会议等 | Asterisk, FreeSWITCH | 通常与B2BUA或代理服务器集成 |
| Presence Server | 状态服务器 | 管理和分发用户的状态信息(如在线、离线) | OpenSIPS, Kamailio | 支持SIMPLE协议 |
| Session Border Controller (SBC) | 会话边界控制器 | 保护SIP网络边界,处理NAT穿越和安全问题 | Acme Packet, Sonus | 通常用于企业和服务提供商网络 |
| Gateway | 网关 | 在不同网络或协议之间转换SIP消息 | Cisco网关, Audiocodes | 支持SIP到PSTN的转换 |
这些服务器在SIP网络中扮演不同的角色,协同工作以实现通信功能。
以下是基于 Kamailio、OpenSIPS 和 FreeSWITCH 的表格,列出它们在 SIP 网络中的主要作用、类型、功能以及示例应用:
| 类型 | 中文名 | 作用 | 支持的功能示例 | 适用场景 |
|---|---|---|---|---|
| Kamailio | SIP 代理服务器 | 作为高性能的 SIP 代理、路由器和注册服务器,处理信令转发和路由决策 | 1. SIP 代理 2. 注册服务器 3. 重定向服务器 4. 状态服务器(Presence) | 大规模 VoIP 服务、运营商级 SIP 路由 |
| OpenSIPS | SIP 代理服务器 | 提供 SIP 信令的路由、负载均衡、安全控制和 NAT 穿透等功能 | 1. SIP 代理 2. 注册服务器 3. 负载均衡 4. NAT 穿透 | 企业级 VoIP、SIP 路由优化 |
| FreeSWITCH | 媒体服务器 | 处理媒体流(音频、视频),支持会议、IVR、语音信箱等增值服务 | 1. 媒体服务器 2. 会议桥 3. IVR 系统 4. 语音信箱 | 企业通信、呼叫中心、语音服务 |
| Kamailio | 会话边界控制器 | 提供 SIP 网络边界的安全控制、NAT 穿透和流量管理 | 1. SBC 功能 2. DoS 防护 3. 加密(TLS) 4. 流量整形 | 运营商网络边界、企业 SIP 安全 |
| OpenSIPS | 负载均衡器 | 在多个后端服务器之间分配 SIP 请求,提高系统性能和可靠性 | 1. 负载均衡 2. 故障转移 3. 动态路由 | 高可用性 VoIP 系统、分布式 SIP 网络 |
| FreeSWITCH | 应用服务器 | 提供丰富的通信应用,如语音信箱、会议、录音、TTS(文本转语音)等 | 1. 语音信箱 2. 会议桥 3. 录音 4. TTS/ASR | 企业通信、呼叫中心、语音应用 |
| Kamailio | 状态服务器 | 管理和分发用户状态信息(如在线、离线),支持 SIMPLE 协议 | 1. 状态管理 2. 订阅/通知机制 | 即时通信、状态监控 |
| OpenSIPS | NAT 穿透服务器 | 解决 SIP 和媒体流在 NAT 环境下的通信问题 | 1. NAT 穿透 2. ICE/STUN/TURN 支持 | 企业 VoIP、远程办公通信 |
| FreeSWITCH | 网关 | 支持 SIP 与其他协议(如 PSTN、WebRTC)的转换 | 1. SIP-PSTN 网关 2. WebRTC 网关 | 跨网络通信、PSTN 集成 |
| Kamailio | 重定向服务器 | 将 SIP 请求重定向到其他服务器或地址 | 1. 重定向逻辑 2. 动态路由 | 负载均衡、故障转移 |
| OpenSIPS | 安全网关 | 提供 SIP 信令的加密、认证和防攻击功能 | 1. TLS 加密 2. IP 黑白名单 3. DoS 防护 | 安全通信、防攻击 |
| FreeSWITCH | 会议服务器 | 提供多方音频/视频会议功能 | 1. 会议桥 2. 混音 3. 视频会议 | 企业会议、远程协作 |
总结:
- Kamailio 和 OpenSIPS 主要用于 SIP 信令的处理(如代理、路由、注册、安全等),适合构建高性能的 SIP 核心网络。
- FreeSWITCH 主要用于媒体处理和应用服务(如会议、IVR、语音信箱等),适合构建丰富的通信应用场景。
以下是按 相同类型合并到一行 并分多行显示中文名和作用的表格,基于 Kamailio、OpenSIPS 和 FreeSWITCH 的功能分类整理:
| 类型 | 软件 | 中文名 | 作用 | 支持的功能示例 | 适用场景 |
|---|---|---|---|---|---|
| SIP 代理服务器 | Kamailio OpenSIPS | SIP 代理服务器 SIP 代理服务器 | 处理信令转发、路由决策、注册服务 提供路由、负载均衡、安全控制 | SIP 代理/注册/重定向服务器 SIP 代理/负载均衡/NAT 穿透 | 运营商级 SIP 路由 企业 VoIP |
| 媒体服务器 | FreeSWITCH | 媒体服务器 | 处理音频/视频媒体流,支持会议、IVR、语音信箱 | 媒体流处理/会议桥/IVR 系统 | 呼叫中心/企业通信 |
| 会话边界控制器 | Kamailio | 会话边界控制器 | 保护 SIP 网络边界,实现 NAT 穿透、流量管理 | SBC 功能/DoS 防护/流量整形 | 运营商网络边界 |
| 负载均衡器 | OpenSIPS | 负载均衡器 | 分配 SIP 请求至后端服务器,提升系统可靠性和性能 | 负载均衡/故障转移/动态路由 | 高可用 VoIP 系统 |
| 应用服务器 | FreeSWITCH | 应用服务器 | 提供语音信箱、会议、录音等增值服务 | 语音信箱/会议桥/录音/TTS | 企业通信/语音应用 |
| 状态服务器 | Kamailio | 状态服务器 | 管理用户在线状态(如在线、离线),支持订阅通知机制 | 状态管理/SIMPLE 协议 | 即时通信/状态监控 |
| NAT 穿透服务器 | OpenSIPS | NAT 穿透服务器 | 解决 NAT 环境下的 SIP 和媒体流通信问题 | ICE/STUN/TURN 支持 | 企业 VoIP/远程办公 |
| 网关 | FreeSWITCH | 网关 | 转换 SIP 与其他协议(如 PSTN、WebRTC) | SIP-PSTN 网关/WebRTC 网关 | 跨网络通信/PSTN 集成 |
| 安全网关 | OpenSIPS | 安全网关 | 提供 SIP 信令加密(TLS)、IP 黑白名单和防攻击 | TLS 加密/DDoS 防护 | 安全通信/防攻击 |
| 会议服务器 | FreeSWITCH | 会议服务器 | 支持多方音频/视频会议,实现混音和视频流分发 | 会议桥/混音/视频会议 | 企业会议/远程协作 |
关键说明:
- 合并逻辑:将相同功能类型的服务器合并为一行,不同软件通过换行区分。
- 分列展示:中文名和作用按软件顺序分行对应,避免信息混淆。
- 功能侧重:
- Kamailio:专注 SIP 信令控制(代理、SBC、状态管理)。
- OpenSIPS:强化路由优化和安全(负载均衡、NAT 穿透、安全网关)。
- FreeSWITCH:核心为媒体与应用服务(会议、IVR、网关)。
SBC(会话边界控制器)、代理服务器 和 状态管理 是 SIP 网络中三种不同的功能模块,它们在作用、实现方式和应用场景上有显著区别。以下是它们的详细对比:
1. SBC(会话边界控制器)
- 中文名:会话边界控制器
- 作用:
- 保护 SIP 网络的边界,提供安全性和流量控制。
- 处理 NAT 穿透,解决内外网通信问题。
- 对 SIP 信令和媒体流进行监控和管理。
- 核心功能:
- 安全防护:防止 SIP 信令攻击(如 DoS、DDoS)。
- NAT 穿透:支持 STUN、TURN、ICE 等协议。
- 协议转换:在不同网络或协议之间进行转换(如 SIP 到 SIP-T)。
- 流量管理:控制信令和媒体流的带宽、优先级。
- 应用场景:
- 运营商网络的边界防护。
- 企业 VoIP 系统的 NAT 穿透和安全防护。
- 示例:
- 硬件 SBC:Acme Packet、Sonus。
- 软件 SBC:Kamailio(部分功能)、OpenSIPS(部分功能)。
2. 代理服务器(Proxy Server)
- 中文名:代理服务器
- 作用:
- 转发 SIP 请求和响应,不修改消息体。
- 提供路由决策、负载均衡和故障转移。
- 核心功能:
- 信令转发:将 SIP 请求转发到目标服务器。
- 路由决策:根据配置规则选择最佳路径。
- 负载均衡:将请求分配到多个后端服务器。
- 注册服务:处理用户注册请求,维护用户位置信息。
- 应用场景:
- 运营商级 SIP 路由。
- 企业 VoIP 系统的信令转发和路由优化。
- 示例:
- Kamailio、OpenSIPS。
3. 状态管理(Presence Management)
- 中文名:状态管理
- 作用:
- 管理和分发用户的状态信息(如在线、离线、忙碌)。
- 支持订阅和通知机制,实时更新用户状态。
- 核心功能:
- 状态存储:维护用户的状态信息。
- 订阅/通知:允许用户订阅其他用户的状态,并在状态变化时发送通知。
- 协议支持:通常基于 SIMPLE 协议(SIP for Instant Messaging and Presence Leveraging Extensions)。
- 应用场景:
- 即时通信(IM)系统。
- 企业协作工具中的状态显示。
- 示例:
- Kamailio(支持状态管理功能)。
- 专门的 Presence 服务器(如 Jabber、OpenSIPS 的部分功能)。
三者的区别对比
| 特性 | SBC(会话边界控制器) | 代理服务器(Proxy Server) | 状态管理(Presence Management) |
|---|---|---|---|
| 主要作用 | 保护网络边界,解决 NAT 穿透 | 转发 SIP 信令,提供路由决策 | 管理和分发用户状态信息 |
| 核心功能 | 安全防护、NAT 穿透、流量管理 | 信令转发、负载均衡、注册服务 | 状态存储、订阅/通知机制 |
| 处理对象 | SIP 信令和媒体流 | SIP 信令 | 用户状态信息 |
| 协议支持 | SIP、STUN、TURN、ICE | SIP | SIMPLE(基于 SIP) |
| 应用场景 | 运营商网络边界、企业 VoIP | 运营商级 SIP 路由、企业 VoIP | 即时通信、企业协作工具 |
| 典型示例 | Acme Packet、Kamailio | Kamailio、OpenSIPS | Kamailio、Jabber |
总结
- SBC:专注于网络边界的安全和 NAT 穿透,处理信令和媒体流。
- 代理服务器:专注于 SIP 信令的转发和路由优化。
- 状态管理:专注于用户状态的存储、订阅和通知。
这三者在 SIP 网络中通常协同工作,例如:
- 代理服务器负责信令的路由。
- SBC 负责信令和媒体流的安全与 NAT 穿透。
- 状态管理负责用户状态的实时更新和分发。
开发一套成熟稳定、能够应对高并发和低延迟(毫秒级响应)的 VoIP 系统,需要多种类型的服务器协同工作。以下是关键服务器类型及其作用:
1. SIP 代理服务器(SIP Proxy Server)
- 作用:
- 处理 SIP 信令的转发、路由和负载均衡。
- 提供注册服务,维护用户位置信息。
- 要求:
- 高性能:支持高并发信令处理。
- 低延迟:毫秒级信令转发。
- 示例:
- Kamailio、OpenSIPS。
2. 会话边界控制器(SBC, Session Border Controller)
- 作用:
- 保护 VoIP 系统的边界安全。
- 解决 NAT 穿透问题,确保信令和媒体流的连通性。
- 提供流量控制和 QoS(服务质量)管理。
- 要求:
- 高可靠性:支持故障转移和冗余。
- 高性能:处理大量并发会话。
- 示例:
- 硬件 SBC:Acme Packet、Sonus。
- 软件 SBC:Kamailio(部分功能)。
3. 媒体服务器(Media Server)
- 作用:
- 处理音频、视频等媒体流的编解码、混音和转发。
- 支持会议、IVR(交互式语音应答)、录音等功能。
- 要求:
- 低延迟:确保媒体流的实时性。
- 高性能:支持高并发媒体流处理。
- 示例:
- FreeSWITCH、Asterisk。
4. 注册服务器(Registrar Server)
- 作用:
- 接收和处理用户的 SIP 注册请求。
- 维护用户的位置信息(如 IP 地址、端口)。
- 要求:
- 高可用性:支持用户状态的实时更新。
- 高性能:支持大规模用户注册。
- 示例:
- Kamailio、OpenSIPS。
5. 位置服务器(Location Server)
- 作用:
- 存储和提供用户的位置信息。
- 与注册服务器和代理服务器协同工作,实现用户定位。
- 要求:
- 高性能:快速查询用户位置。
- 高可靠性:数据持久化和备份。
- 示例:
- Kamailio、OpenSIPS。
6. 状态服务器(Presence Server)
- 作用:
- 管理用户的状态信息(如在线、离线、忙碌)。
- 支持订阅和通知机制,实时更新用户状态。
- 要求:
- 低延迟:实时状态更新和通知。
- 高性能:支持大规模用户状态管理。
- 示例:
- Kamailio、Jabber。
7. 网关服务器(Gateway Server)
- 作用:
- 实现 SIP 与其他协议(如 PSTN、WebRTC)的转换。
- 支持跨网络通信。
- 要求:
- 高兼容性:支持多种协议转换。
- 低延迟:确保跨网络通信的实时性。
- 示例:
- FreeSWITCH、Asterisk。
8. 数据库服务器(Database Server)
- 作用:
- 存储用户信息、注册数据、呼叫记录等。
- 支持高并发读写操作。
- 要求:
- 高性能:快速响应查询请求。
- 高可靠性:数据持久化和备份。
- 示例:
- MySQL、PostgreSQL、Redis(用于缓存)。
9. 监控与日志服务器(Monitoring & Logging Server)
- 作用:
- 实时监控系统性能和健康状况。
- 记录日志,便于故障排查和性能优化。
- 要求:
- 高扩展性:支持大规模日志存储和分析。
- 实时性:快速响应监控数据。
- 示例:
- Prometheus、Grafana、ELK Stack(Elasticsearch, Logstash, Kibana)。
10. 负载均衡器(Load Balancer)
- 作用:
- 分配信令和媒体流到多个后端服务器,避免单点故障。
- 提高系统的扩展性和可靠性。
- 要求:
- 高性能:支持高并发流量分发。
- 低延迟:确保流量分发的实时性。
- 示例:
- HAProxy、Nginx、硬件负载均衡器(如 F5)。
11. NAT 穿透服务器(NAT Traversal Server)
- 作用:
- 解决 NAT 环境下的 SIP 和媒体流通信问题。
- 支持 STUN、TURN、ICE 等协议。
- 要求:
- 高性能:支持大规模 NAT 穿透请求。
- 低延迟:确保 NAT 穿透的实时性。
- 示例:
- Coturn(STUN/TURN 服务器)。
12. 应用服务器(Application Server)
- 作用:
- 提供增值服务,如语音信箱、会议、录音、TTS(文本转语音)等。
- 要求:
- 高扩展性:支持多种应用场景。
- 低延迟:确保服务的实时性。
- 示例:
- FreeSWITCH、Asterisk。
服务器架构示例
- 信令层:
- SIP 代理服务器(Kamailio/OpenSIPS)。
- 注册服务器(Kamailio/OpenSIPS)。
- 状态服务器(Kamailio)。
- 媒体层:
- 媒体服务器(FreeSWITCH)。
- NAT 穿透服务器(Coturn)。
- 数据层:
- 数据库服务器(MySQL/Redis)。
- 位置服务器(Kamailio/OpenSIPS)。
- 安全层:
- 会话边界控制器(Kamailio/硬件 SBC)。
- 应用层:
- 应用服务器(FreeSWITCH)。
- 网关服务器(FreeSWITCH)。
- 运维层:
- 监控与日志服务器(Prometheus/ELK Stack)。
- 负载均衡器(HAProxy/Nginx)。
关键优化点
- 高并发:
- 使用高性能服务器软件(如 Kamailio、FreeSWITCH)。
- 采用分布式架构,水平扩展服务器。
- 低延迟:
- 优化网络拓扑,减少跳数。
- 使用高性能硬件和低延迟网络设备。
- 高可靠性:
- 实现冗余和故障转移机制。
- 定期备份关键数据。
通过以上服务器类型和架构设计,可以构建一套成熟稳定、高并发、低延迟的 VoIP 系统。
在SIP(Session Initiation Protocol)会话中,B2BUA(Back-to-Back User Agent)是一种关键组件,用于在两个SIP用户代理(UA)之间进行会话管理。以下是B2BUA的详细说明:
1. B2BUA的定义
B2BUA位于两个SIP UA之间,分别与每个UA建立独立的SIP会话。它作为两个UA的中间节点,处理所有SIP信令,并在两个会话之间进行协调。
2. B2BUA的功能
- 会话管理:B2BUA创建并管理两个独立的SIP会话,分别与每个UA交互。
- 信令处理:它解析、修改并转发SIP消息,确保两个会话的正确通信。
- 媒体控制:B2BUA可以控制媒体流,如转码、转发或记录。
- 安全与策略实施:B2BUA可执行安全策略,如身份验证、加密和访问控制。
- 会话记录:它能够记录会话的详细信息,用于计费或审计。
3. B2BUA的工作流程
- 接收请求:B2BUA收到来自主叫UA的INVITE请求。
- 创建新会话:B2BUA生成一个新的INVITE请求,发送给被叫UA。
- 处理响应:B2BUA接收被叫UA的响应,并转发给主叫UA。
- 会话维护:B2BUA管理两个会话的状态,处理后续的SIP消息(如ACK、BYE等)。
- 终止会话:当一方发送BYE请求时,B2BUA终止两个会话。
4. B2BUA的应用场景
- SIP代理服务器:在复杂网络中,B2BUA用于管理跨不同网络的SIP会话。
- 媒体网关:B2BUA在SIP和传统电话网络之间进行协议转换。
- 会话边界控制器(SBC):SBC使用B2BUA提供安全、策略和媒体控制功能。
- 呼叫中心:B2BUA用于呼叫分配、录音和监控。
5. B2BUA的优缺点
优点:
- 提供灵活的会话管理。
- 支持复杂的网络拓扑和安全策略。
- 能够进行媒体流的控制和转换。
缺点:
- 增加系统复杂性。
- 可能引入额外的延迟。
- 需要更多的计算和存储资源。
6. 示例
假设UA1向UA2发起呼叫:
- UA1发送INVITE到B2BUA。
- B2BUA创建新的INVITE发送给UA2。
- UA2回复200 OK,B2BUA转发给UA1。
- UA1发送ACK,B2BUA转发给UA2。
- 通话结束后,UA1发送BYE,B2BUA终止两个会话。
总结
B2BUA在SIP会话中扮演重要角色,提供会话管理、信令处理、媒体控制和安全策略实施等功能,广泛应用于SIP代理、媒体网关、SBC和呼叫中心等场景。尽管增加了复杂性和资源消耗,但其灵活性和功能性使其成为SIP网络中的关键组件。
相关文章:
SIP中常见的服务器类型
在SIP(Session Initiation Protocol)网络中,除了B2BUA(Back-to-Back User Agent)、路由代理和媒体服务器外,还有其他类型的服务器。以下是所有类型的服务器及其作用、示例和其他相关信息的表格:…...
【C】初阶数据结构4 -- 双向循环链表
之前学习的单链表相比于顺序表来说,就是其头插和头删的时间复杂度很低,仅为O(1) 且无需扩容;但是对于尾插和尾删来说,由于其需要从首节点开始遍历找到尾节点,所以其复杂度为O(n)。那么有没有一种结构是能使得头插和头删…...
小爱音箱控制手机和电视听歌的尝试
最近买了小爱音箱pro,老婆让我扔了,吃灰多年的旧音箱。当然舍不得,比小爱还贵,刚好还有一台红米手机,能插音箱,为了让音箱更加灵活,买了个2元的蓝牙接收模块Type-c供电3.5接口。这就是本次尝试起…...
Kotlin Lambda
Kotlin Lambda 在探索Kotlin Lambda之前,我们先回顾下Java中的Lambda表达式,Java 的 Lambda 表达式是 Java 8 引入的一项强大的功能,它使得函数式编程风格的代码更加简洁和易于理解。Lambda 表达式允许你以一种更简洁的方式表示实现接口&…...
动态库与静态库:深入解析与应用
在软件开发中,库(Library)是预编译的代码集合,用于在多个程序之间共享功能。根据链接方式的不同,库主要分为两种类型:静态库(Static Library) 和 动态库(Dynamic Library…...
List对象进行排序
目录 一、List对象中某个值进行排序 代码示例 注意事项 二、List.sort 和 Collections.sort 异同 1. 方法所属 2. 使用方式 3. 是否修改原列表 4. 泛型支持 5. 性能 6. 适用场景 7. 示例代码对比 使用 testList.sort 使用 Collections.sort 8. 总结 三、为对象多…...
Java 设计模式之备忘录模式
文章目录 Java 设计模式之备忘录模式概述UML代码实现 Java 设计模式之备忘录模式 概述 备忘录(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。方便对该对象恢复到原先保存的状态。 UML Originnato…...
vue3搭建实战项目笔记二
vue3搭建实战项目笔记二 2.1.git管理项目2.2.隐藏tabBar栏2.2.1 方案一:在路由元信息中设置一个参数是否显示tabBar2.2.2 方案二:通过全局设置相对定位样式 2.3.项目里封装axios2.3.1 发送网络请求的两种做法2.3.2 封装axios并发送网络请求2.3.2.1 对axi…...
【原创】解决vue-element-plus-admin无法实现下拉框动态控制表单功能,动态显隐输入框
前言 目前使用vue-element-plus-admin想要做一个系统定时任务功能,可以选择不同的定时任务类型,比如使用cron表达式、周期执行、指定时间执行等。每种类型对应不同的输入框,需要动态显隐输入框才行,但是这个vue-element-plus-adm…...
大疆无人机需要的kml文件如何制作kml导出(大疆KML文件)
大疆无人机需要的轨迹kml文件,是一种专门的格式,这个kml里面只有轨迹点,其它的属性信息都不需要。 BigemapPro提供了专门的大疆格式输出, 软件这里下载 www.bigemap.com 安装后,kml导入如下图: 然后选择…...
前端知识速记--css篇:CSS3中的常见动画及实现方式
前端知识速记–css篇:CSS3中的常见动画及实现方式 常见的CSS3动画 1. 过渡 (Transitions) 过渡是一种非常简单的动画效果,允许你在元素的状态变更时平滑过渡到新状态。 语法格式: transition: property duration timing-function delay;…...
YOLOV8的学习记录(二) yolo8的几个内置模型简介
YOLOv8 是一个多功能的计算机视觉框架,支持多种任务,包括分类(Classify)、检测(Detect)、旋转目标检测(OBB)、姿态估计(Pose)、实例分割(Segment&…...
免费deepseek的API获取教程及将API接入word或WPS中
免费deepseek的API获取教程: 1 https://cloud.siliconflow.cn/中注册时填写邀请码:GAejkK6X即可获取2000 万 Tokens; 2 按照图中步骤进行操作 将API接入word或WPS中 1 打开一个word,文件-选项-自定义功能区-勾选开发工具-左侧的信任中心-信任中心设置…...
Windows操作系统部署Tomcat详细讲解
Tomcat是一个开源的Java Servlet容器,用于处理Java Web应用程序的请求和响应。以下是关于Tomcat的用法大全: 一、安装Tomcat 下载 访问Apache Tomcat官方网站(https://tomcat.apache.org/),根据你的操作系统…...
深入解析A2DP v1.4协议:蓝牙高质量音频传输的技术与实现
1. A2DP概述 A2DP(Advanced Audio Distribution Profile)是一种高质量音频流媒体协议,旨在实现高质量音频内容的分发,通常用于通过蓝牙设备传输音频数据,例如将音乐从便携式播放器传输到耳机或扬声器。与传统的蓝牙语…...
(三)Axure制作转动的唱片
效果图 属性: 图标库:iconfont-阿里巴巴矢量图标库 方形图片转为圆角图片,裁剪,然后加圆角, 唱片和底图是两个图片,点击播放,唱片在旋转。 主要是播放按钮和停止按钮,两个动态面板…...
VueRouter 实例
分析下列代码 const router new VueRouter({mode:history,routes }) 1.const router new VueRouter({ ... })用来创建一个 Vue Router 实例,用于管理 Vue.js 应用的路由。2.mode: history: 作用:启用 HTML5 History 模式,去除…...
Docker 镜像标签使用
写在前面 当使用命令 docker pull mysql 拉取镜像时,其实等价于如下命令 docker pull mysql:latest latest 是默认的标签,字面上理解为最新版本的镜像,实质上 latest 只是镜像的标签名称,跟具体某个版本号地位一样,…...
ASP.NET Core SixLabors.ImageSharp 位图图像创建和下载
从 MVC 控制器内部创建位图图像并将其发送到浏览器;用 C# 编写并与 Linux 和 Windows 服务器兼容。 使用从 ASP.NET MVC 中的控制器下载任何文件类型File。 此示例创建一个位图 (jpeg) 并将其发送到浏览器。它需要 NuGet 包SixLabors.ImageSharp v1.0.4。 另请参…...
蓝桥杯篇---超声波距离测量频率测量
文章目录 简介第一部分:超声波的简介工作原理1.发射超声波2.接收反射波3.计算时间差4.计算距离 硬件连接1.Trig2.Echo 示例代码代码说明注意事项1.声速2.延时精度3.硬件连接 第二部分:频率测量简介频率测量原理1.信号输入2.计数3.计算频率 硬件连接示例代…...
机器学习所需要的数学知识【01】
总览 导数 行列式 偏导数 概理论 凸优化-梯度下降 kkt条件...
【D2】神经网络初步学习
总结:学习了 PyTorch 中的基本概念和常用功能,张量(Tensor)的操作、自动微分(Autograd)、正向传播、反向传播。通过了解认识LeNet 模型,定义神经网络类,熟悉卷积神经网络的基本结构和…...
变相提高大模型上下文长度-RAG文档压缩-3.优化map-reduce(reranker过滤+社区聚类)
我遇到的业务问题实际上是RAG需要处理很多同一对象的日常报告,不像常识类问题,它的相关Document更多而且更分散,日常报告代表数据库里有很多它的内容,而且对象可能只在段落中的几句话提及到。top-k数量受限于大模型长度࿰…...
电解电容的参数指标
容量 这个值通常是室温25℃,在一定频率和幅度的交流信号下测得的容量。容量会随着温度、直流电压、交流电压值的变化而改变。 额定电压 施加在电容上的最大直流电压,通常要求降额使用。 例如额定电压是4V,降额到70%使用,最高施…...
计时器任务实现(保存视频和图像)
下面是一个简单的计时器任务实现,可持续地每秒保存一幅图像,也可持续地每60秒保存一个视频,图像和视频均以当前时间命名: TimerTask类的实现如下: class TimerTask { public:TimerTask(const std::string& path):…...
Django 美化使用ModelForm的输入框
在初次使用ModelForm时,我的html文件代码如下,主要内容是显示一个卡片式表单,通过循环遍历 form 对象动态生成表单字段 {% extends layout.html %}{% block content %} <div class"container"><div class"c1"&g…...
应用层优秀的共享民宿物联网框架该怎么选?
有一说一,应用层优秀的物联网框架通常能帮助提升用户体验、提高运营效率、节能减排等等优势,很多老板也很注重这个层面的设计和打磨,那么对于选择应用层优秀的共享民宿物联网框架时,大家可以从哪几个关键因素进行考量呢࿱…...
【kafka系列】生产者
目录 发送流程 1. 流程逻辑分析 阶段一:主线程处理 阶段二:Sender 线程异步发送 核心设计思想 2. 流程 关键点总结 重要参数 一、核心必填参数 二、可靠性相关参数 三、性能优化参数 四、高级配置 五、安全性配置(可选࿰…...
HCIA-路由器相关知识和面试问题
二、 路由器 2.1 关于路由器的知识 2.1.1 什么是路由器 路由器是一种网络层互联设备,主要用于连接多个逻辑上分开的网络,实现不同网络之间的数据路由和通信。它能根据网络层地址(如 IP 地址)来转发数据包,在网络中起…...
Unity 获取独立显卡数量
获取独立显卡数量 导入插件包打开Demo 运行看控制台日志 public class GetGraphicCountDemo : MonoBehaviour{public int count;// Start is called before the first frame updatevoid Start(){count this.GetIndependentGraphicsDeviceCount();}}...
