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

VoIP是什么?

IP 语音 (VoIP)(Voice over Internet Protocol) 是一种通过互联网拨打电话的方法。与旧的固定电话系统不同,互联网并非设计用于在连接的人之间实时传输音频信号。必须构建专门的技术和协议才能使之成为可能,这些技术和协议构成了 VoIP。如今,VoIP 已成为一种高效的音频和视频实时通信方法。

VoIP 已被广泛采用。在许多行业中,它是电话系统的主要形式,取代了固定电话(其技术名称是“公共交换电话网”)。

相比固定电话,VoIP 有几个优势。它更灵活、更容易增加线路、通常比传统电话服务更便宜、支持视频以及音频,而且可以从任何位置使用。

然而,VoIP 很容易受到服务中断和网络攻击的影响,而固定电话大多不受其影响(如 DDoS 攻击)。VoIP 还依赖于稳定的互联网连接和电源。

*实时是指来自所有连接用户的信息在创建后立即传递,而不是储存起来之后再传输。

音频如何通过 VoIP 传播?
假设 Alice 使用 VoIP 电话线路呼叫 Bob。Alice 拿起一个支持 VoIP 的听筒,拨通了鲍勃的号码,然后说:“你好,Bob。”要想让 Alice 的话到达 Bob 那里,必须发生什么?

建立连接:VoIP 服务在 Alice 和 Bob 的听筒之间建立一个数字连接。由专门的网络协议来处理过程的这一部分。
模拟到数字:Alice 的听筒将她的声音转换为数字信息。
编码:该数字信息被编码和压缩,以便其可以在互联网上传播。
数据包:Alice 语音的编码数字版本被分成较小的块,称为数据包,每个数据包都包含几个由各种网络协议附加的标头。
数据包在互联网上传播:数据包先由 Alice 的局域网 (LAN) 路由器转发,然后由其他各种路由器转发到 VoIP 服务提供商的专用交换机 (PBX) 内的 VoIP 服务器。该服务器将数据包路由到 Bob 的电话。数据包从一个网络转发到另一个网络,直到到达 Bob 的 LAN 路由器,该路由器最后将数据包转发到 Bob 的听筒。
Bob 听到 Alice 的声音: 反向执行第 2 步到第 4 步:数据包被重新组合成压缩后的 Alice 的数字语音,然后解压缩,然后由 Bob 听筒的扬声器作为声音播放。
尽管涉及的步骤很多,但整个过程应该是在几毫秒内完成。理想情况下,应当不存在人类可察觉的延迟,Bob 几乎在 Alice 说出这句话的同时就听到了她说的“你好,Bob”。延迟的时长取决于他们本地网络的效率和带宽,以及 Alice 和 Bob 之间的距离(由距离造成的延时被称为延迟)。

建立连接后,剩下的过程可以在两端同时发生。一个支持 VoIP 的电话可以同时发送和接收音频数据,因此,如果 Alice 和 Bob 不小心在同一时间问对方“你好吗?”,他们会在说话时听到对方的声音。

VoIP 的“互联网协议”部分是什么意思?
在互联网上传输的数据,无论是文本和代码(如本网页中的内容)、图像还是音频内容(如 VoIP 中的声音),都被分成称为“数据包”的小部分。这些数据包在构成互联网的电线和设备上传输,然后由接收它们的设备解释为可用的内容。

互联网协议 (IP),是将数据包格式化的标准化方法,使联网成为可能。IP 描述了如何处理这些数据包、如何提供有关其内容的信息,以及其他要求。任何具有互联网功能的设备都可以自动创建和解释 IP 数据包。基本上所有互联网服务都建立在 IP 上,包括 VoIP,这也是其名为“IP 语音”的原因。

VoIP 在 IP 的基础上使用什么协议?
一些协议在 IP 之上运行,使不同类型的互联网服务成为可能。首先是传输协议,它们有助于确保数据包到达正确的地方并被正确接收。IP 可以与传输控制协议 (TCP) 或用户数据报协议 (UDP) 搭配使用。

大多数 VoIP 服务使用 UDP(而非 TCP)作为其传输协议,因为 UDP 速度更快——这与一对多的流媒体服务形成鲜明对比,后者使用更可靠的 TCP 来确保每一秒的音频和视频都得到传递。

应用程序层协议是在传输协议之上使用的。这些协议将数据转换成面向用户的应用程序可以解释的形式。大部分互联网使用超文本传输协议 (HTTP) 作为应用程序层协议。然而,VoIP 使用比 HTTP 更适合实时传输音频和视频数据的其他协议。

VoIP 应用程序层协议因 VoIP 服务而异。一些供应商使用开放协议,如以下协议:

会话初始协议 (SIP) 建立和结束通话。在上面的示例中,Alice 的 VoIP 服务可能使用 SIP 来建立她的电话与 Bob 的电话之间的连接。
实时传输协议 (RTP) 携带通话的实际音频和视频内容。
安全实时传输协议 (SRTP) 是 RTP 的加密版本。
媒体网关控制协议 (MGCP) 控制 VoIP 和公共交换电话网之间的连接。
H.323 执行与 SIP 相同的功能,但它是基于二进制而不是基于文本。如今,H.323 已使用不多。
这些协议是公开记录的,任何人都可以使用它们。不过,有一些 VoIP 供应商使用专有协议。与使互联网成为可能并承载大部分互联网流量的开放协议不同,这些专有协议是封闭的,供应商的服务条款可能禁止对其进行反向工程。它们仍然在 TCP、UDP 和 IP 等开放协议的基础上运行。

VoIP 的专有协议示例包括:

Skype 协议:该协议由 Skype 开发,仅用于 Skype 应用程序。Microsoft 在收购 Skype 后于 2014 年废止了该协议,并将其替换为:
Microsoft 通知协议 24 (MNP24):Skype 自 2014 年以来一直使用该协议。
瘦客户端控制协议 (SCCP):该专有协议属于 Cisco。
Inter-Asterisk eXchange (IAX):用于使用特定类型的开源 PBX 软件(称为 Asterisk)的 VoIP 服务。
什么原因导致 VoIP 服务中断?
互联网连接不良:低带宽的互联网连接使数据包难以通过,从而会影响音频质量。没有互联网连接意味着 VoIP 根本无法工作。

网络拥堵:如果一次在网络上交换了太多的数据,VoIP 电话可能无法有效地传输数据包——就像高速公路上车辆过多会减慢行驶速度一样。

UDP 超时:如上所述,VoIP 通常在 UDP 传输协议上运行。防火墙可能会出于安全考虑而终止超过一定时间的 UDP 连接。

网络攻击:与任何基于互联网的服务一样,VoIP 也容易受到攻击。特别是,VoIP 服务经常成为分布式拒绝服务 (DDoS) 攻击的目标。这些攻击可能使 VoIP 服务一次性离线几分钟、几小时或几天。

为什么 VoIP 容易受到分布式拒绝服务 (DDoS) 攻击?
几乎任何网络协议都可以用于发起 DDoS 攻击。攻击者通常会把目标锁定在 VoIP 上,因为这类攻击会直接影响企业效率——当企业无法打电话,就无法完成很多工作。

广义上讲,VoIP DDoS 攻击可分为两个不同的类别:

  1. 针对 VoIP 服务提供商的攻击。这种 DDoS 攻击有可能使 VoIP 提供商的所有客户的服务中断。它们可能采取多种形式,包括:

以提供商的 Web 应用程序为目标,阻止用户登录
以提供商的服务器为目标,使其 PBX 服务崩溃
关闭 DNS 解析,使用户无法导航到提供商的网站
一些针对 VoIP 提供商的攻击利用了 VoIP 的工作方式——例如,通过 SIP 洪水攻击来淹没支持 SIP 的服务器。其他人可能使用更通用的 DDoS 攻击方法,这些方法对大多数未受保护的网站和服务器有效,如 HTTP 洪水攻击和 SYN 洪水攻击。

此外,曾发生过对 VoIP 提供商进行 DDoS 勒索攻击。在 DDoS 勒索攻击中,在受害者向攻击者支付赎金之前,攻击会一直持续。

  1. 针对使用 VoIP 的组织的攻击。这些攻击一次只针对一个组织,而不是中断多个 VoIP 提供商客户的服务。托管自己的 VoIP 网络和服务器的组织可能特别容易受到攻击。与大型 VoIP 提供商不同,当他们的主要 VoIP 服务器成为 SIP 洪水攻击或其他攻击的目标时,他们可能没有大量的备份服务器来切换。

VoIP 中的 SIP 洪水攻击
VoIP 中最容易遭受 DDoS 攻击的一个方面是 SIP。基于 SIP 的 DDoS 攻击很难阻止,因为和 HTTP 一样,SIP 是一个基于文本的协议,很难区分非法 SIP 请求和合法 SIP 请求。
SIP INVITE 洪水攻击使用虚假的“INVITE”请求来发起呼叫,从而淹没 SIP 服务器。服务器必须处理每一个此类请求,导致减缓或拒绝为合法呼叫提供服务。SIP REGISTER 洪水攻击与此类似,只是使用“REGISTER”消息而不是“INVITE”。
攻击者还可以发送特别构建的 SIP 消息,通过导致服务器重启或部分故障来中断服务器。一次又一次地发送此类信息可能导致在很长一段时间内拒绝为合法用户提供服务。
Cloudflare DDoS 缓解措施有助于防止 VoIP DDoS 攻击。Cloudflare 的网络容量比有记录以来最大的 DDoS 攻击大了许多倍。深入了解用于 Web 应用程序的 Cloudflare DDoS 防护,或用于保护内部网络的 Magic Transit。

相关文章:

VoIP是什么?

IP 语音 (VoIP)(Voice over Internet Protocol) 是一种通过互联网拨打电话的方法。与旧的固定电话系统不同,互联网并非设计用于在连接的人之间实时传输音频信号。必须构建专门的技术和协议才能使之成为可能,这些技术和协议构成了 …...

MySQL 中的集群部署方案

文章目录 MySQL 中的集群部署方案MySQL ReplicationMySQL Group ReplicationInnoDB ClusterInnoDB ClusterSetInnoDB ReplicaSetMMMMHAGalera ClusterMySQL ClusterMySQL Fabric 总结参考 MySQL 中的集群部署方案 MySQL Replication MySQL Replication 是官方提供的主从同步方…...

《设计模式》创建型模式总结

目录 创建型模式概述 Factory Method: 唯一的类创建型模式 Abstract Factory Builder模式 Prototype模式 Singleton模式 最近在参与一个量化交易系统的项目,里面涉及到用java来重构部分vnpy的开源框架,因为是框架的搭建,所以会涉及到像…...

Conda安装与使用中的若干问题记录

Conda安装与使用中的若干问题记录 1.Anaconda 安装失败1.1.问题复述1.2.问题解决(安装建议) 2.虚拟环境pip install未安装至本虚拟环境2.1.问题复述2.2.问题解决 3.待补充 最近由于工作上的原因,要使用到Conda进行虚拟环境的管理,…...

人力资源招聘系统的革新之路:从传统到智能的转变

在全球化与数字化交织的今天,企业间的竞争日益激烈,而人才作为企业发展的核心驱动力,其重要性不言而喻。传统的人力资源招聘方式,如依赖纸质简历、人工筛选、面对面面试等,不仅效率低下,且难以精准匹配企业…...

Python网络爬虫与数据采集实战——网络协议与HTTP

目录 1. HTTP协议简介 2. 常见的请求方法 3. 状态码含义 实际应用中的HTTP协议 1. 如何在爬虫中使用HTTP协议 2. 模拟浏览器请求与爬虫反爬虫技术 3. 高级HTTP请求 实现爬虫时HTTP协议的优化与常见问题 总结 1. HTTP协议简介 HTTP的定义与作用 HTTP(超文本…...

从零开始的c++之旅——二叉搜索树

1、二叉搜索树概念 1. ⼆叉搜索树的概念 ⼆叉搜索树⼜称⼆叉排序树,它或者是⼀棵空树,或者是具有以下性质的⼆叉树: • 若它的左⼦树不为空,则左⼦树上所有结点的值都⼩于等于根结点的值 • 若它的右⼦树不为空,则右⼦树上所有结…...

CSS回顾-基础知识详解

一、引言 在前端开发领域,CSS 曾是构建网页视觉效果的关键,与 HTML、JavaScript 一起打造精彩的网络世界。但随着组件库的大量涌现,我们亲手书写 CSS 样式的情况越来越少,CSS 基础知识也逐渐被我们遗忘。 现在,这种遗…...

Elasticsearch 查询时 term、match、match_phrase、match_phrase_prefix 的区别

Elasticsearch 查询时 term、match、match_phrase、match_phrase_prefix 的区别 keyword 与 text 区别term 查询match 查询match_phrase 查询match_phrase_prefix 查询写在最后 在讲述 es 查询时 term、match、match_phrase、match_phrase_prefix 的区别之前,先来了…...

低代码平台:跨数据库处理的重要性与实现方式

一、低代码平台概述 低代码平台作为一种创新的软件开发工具,为开发者带来了极大的便利。它具备可视化编程工具和大量预构建组件,这使得开发者无需编写大量代码就能创建应用程序,显著降低了软件开发的技术门槛。无论是专业开发人员还是业务人员…...

【jvm】如何破坏双亲委派机制

目录 1.说明2.重写ClassLoader的loadClass方法2.1 原理2.2 实现步骤2.3 注意事项 3.使用线程上下文类加载器3.1 原理3.2 实现步骤3.3 应用场景 4.利用SPI机制4.1 原理4.2 实现步骤4.3 应用场景 5.Tomcat等容器的自定义类加载器5.1 原理5.2 实现方式5.3 应用场景 1.说明 1.双亲委…...

ReactPress与WordPress:一场内容管理系统的较量

ReactPress Github项目地址:https://github.com/fecommunity/reactpress WordPress官网:https://wordpress.org/ ReactPress与WordPress:一场内容管理系统的较量 在当今数字化时代,内容管理系统(CMS)已成为…...

网络安全练习之 ctfshow_web

文章目录 VIP题目限免(即:信息泄露题)源码泄露前台JS绕过协议头信息泄露robots后台泄露phps源码泄露源码压缩包泄露版本控制泄露源码(git)版本控制泄露源码2(svn)vim临时文件泄露cookie泄露域名txt记录泄露敏感信息公布内部技术文档泄露编辑器…...

在 Service Worker 中caches.put() 和 caches.add()/caches.addAll() 方法他们之间的区别

在 Service Worker 中,caches.put(request, response) 和 caches.add(request)/caches.addAll(requests) 方法都用于将资源添加到缓存中,但它们的使用场景和目的略有不同。 caches.put(request, response),一用在fetch事件当中,由…...

UNIAPP发布小程序调用讯飞在线语音合成+实时播报

语音合成能够将文字转化为自然流畅的人声,提供100发音人供您选择,支持多语种、多方言和中英混合,可灵活配置音频参数。广泛应用于新闻阅读、出行导航、智能硬件和通知播报等场景。 在当下大模型火爆的今日,语音交互页离不开语音合…...

跳房子(弱化版)

题目描述 跳房子,也叫跳飞机,是一种世界性的儿童游戏,也是中国民间传统的体育游戏之一。 跳房子的游戏规则如下: 在地面上确定一个起点,然后在起点右侧画 n 个格子,这些格子都在同一条直线上。每个格子内…...

ubuntu22 安装 minikube

在Ubuntu 22上安装Minikube,你可以按照以下步骤进行: 安装依赖: 更新系统并安装必要的依赖项: sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl安装Docker: Minikube可以使用D…...

STM32 | 超声波避障小车

超声波避障小车 一、项目背题 由于超声波测距是一种非接触检测技术,不受光线、被测对象颜色等的影响,较其它仪器更卫生,更耐潮湿、粉尘、高温、腐蚀气体等恶劣环境,具有少维护、不污染、高可靠、长寿命等特点。因此可广泛应用于…...

打造旅游卡服务新标杆:构建SOP框架与智能知识库应用

随着旅游业的蓬勃兴起,旅游卡产品正逐渐成为市场的焦点。为了进一步提升服务质量和客户体验,构建一套高效且标准化的操作流程(SOP)变得尤为重要。本文将深入探讨如何构建旅游卡的SOP框架,并介绍如何利用智能知识库技术…...

通过脚本,发起分支合并请求和打tag

#!/bin/bash # Set GitLab API URL and access token GITLAB_API_URL"http://IP/api/v4" ACCESS_TOKEN"Token秘钥" # Define repository IDs declare -A repo_ids( ["gitIP:kingmq/client.git"]"123" ["gitIP:kingmq/s…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 ​ 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

探索Selenium:自动化测试的神奇钥匙

目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...

Python常用模块:time、os、shutil与flask初探

一、Flask初探 & PyCharm终端配置 目的: 快速搭建小型Web服务器以提供数据。 工具: 第三方Web框架 Flask (需 pip install flask 安装)。 安装 Flask: 建议: 使用 PyCharm 内置的 Terminal (模拟命令行) 进行安装,避免频繁切换。 PyCharm Terminal 配置建议: 打开 Py…...