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。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/472037.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《动手学深度学习》中d2l库的安装以及问题解决

当我们在按照《动手学深度学习》这本书或者网课学习时会有需要导入d2l库的使用。​d2I是一个与《动手学深度学习》(Dive into Deep Learning)一书配套的开源教学库,它包含了作者李沐设计的深度学习相关代码和示例。这个库旨在帮助读者通过实践经验来理解…

【大模型实战篇】vLLM的由来以及大模型部署、推理加速实践

1. 问题背景分析及vLLM的由来 大模型毫无疑问,在工作、生活中已经逐渐扮演越来越重要的角色。但大模型的尺寸一般都比较大,处理一个大模型请求的成本可能比传统关键字查询高出 10 倍。推理的成本代价较高,因此提高大模型服务系统的吞吐量&…

常用在汽车PKE无钥匙进入系统的高度集成SOC芯片:CSM2433

CSM2433是一款集成2.4GHz频段发射器、125KHz接收器和8位RISC(精简指令集)MCU的SOC芯片,用在汽车PKE无钥匙进入系统里。 什么是汽车PKE无钥匙进入系统? 无钥匙进入系统具有无钥匙进入并且启动的功能,英文名称是PKE&…

路由器基本原理与配置

一 , 路由是什么? 从源主机到目标主机的转发过程; 二 , 路由器 (1)路由器的工作原理 路由器是一种三层设备,是使用IP地址寻址,实现从源IP到达目标IP地址的端到端的服务&#xff0c…

NPOI 实现Excel模板导出

记录一下使用NPOI实现定制的Excel导出模板&#xff0c;已下实现需求及主要逻辑 所需Json数据 对应参数 List<PurQuoteExportDataCrInput> listData [{"ItemName": "电缆VV3*162*10","Spec": "电缆VV3*162*10","Uom":…

element plus的表格内容自动滚动

<el-table:data"tableData"ref"tableRef"borderstyle"width: 100%"height"150"><el-table-column prop"date" label"名称" width"250" /><el-table-column prop"name" label&…

【Linux网络编程】简单的UDP网络程序

目录 一&#xff0c;socket编程的相关说明 1-1&#xff0c;sockaddr结构体 1-2&#xff0c;Socket API 二&#xff0c;基于Udp协议的简单通信 一&#xff0c;socket编程的相关说明 Socket编程是一种网络通信编程技术&#xff0c;它允许两个或多个程序在网络上相互通信&…

AI 写作(九)实战项目二:智能新闻报道(9/10)

一、项目概述 在当今信息爆炸的时代&#xff0c;新闻传播行业正面临着前所未有的挑战与机遇。随着科技的飞速发展&#xff0c;人们获取信息的渠道日益多样化&#xff0c;对新闻的时效性、准确性和个性化需求也不断提高。在这样的背景下&#xff0c;AI 写作在智能新闻报道中的重…

针对gitgitee的使用

1.下载git 链接 打开终端&#xff0c;桌面鼠标右键 2.配置密钥 登录gitee。 设置密钥 查看官方文档 跟着教程 复制最后的输出进行密钥添加 验证是否添加成功 3.创建&连接远程仓库 创建仓库 git终端进行配置 远程仓库克隆到本地 桌面终端clone,克隆他人|自己的仓库到本地…

DNS批量解析管理软件有什么用

在复杂的网络环境中&#xff0c;DNS批量解析管理软件犹如一把功能强大的钥匙&#xff0c;开启了高效网络管理的大门&#xff0c;为网络运营和维护带来了诸多便利。 1、对于网络服务提供商而言&#xff0c;DNS批量解析管理软件极大地提高了工作效率 传统的DNS解析管理方式在处…

二叉树遍历的非递归实现和复杂度分析

一&#xff0c;用栈实现二叉树先序遍历 1&#xff0c;原理 我用自己的口水话解释一下&#xff1a;准备一个栈&#xff0c;从根节点开始&#xff0c;先判断栈是否为空&#xff0c;如果否&#xff0c;就弹出一个元素&#xff0c;对弹出元素进行自定义处理&#xff0c;再将它的左…

ElasticSearch-全文检索(一)基本介绍

简介 Elasticsearch&#xff1a;官方分布式搜索和分析引擎 | Elastic 全文搜索属于最常见的需求&#xff0c;开源的Elasticsearch是目前全文搜索引擎的首选。 它可以快速地储存、搜索和分析海量数据。维基百科、StackOverflow、Github都采用它 Elastic的底层是开源库Lucene。但…

65 mysql 的 表元数据锁

前言 这里我们来看一下 mysql 这边的 元数据锁, 术语称之为 MDL 我们这里 忽略它的实现, 我们仅仅看 其具体的使用的地方 因为它的实现 也就可以理解为另外一个 表排他锁, 具体的实现来说 和表排他锁 类似 我们这里 仅仅去了解 在各种类型的语句中 MDL 的使用的地方 lock …

【eNSP】路由基础与路由来源——静态路由实验

路由是数据包从源地址到目的地址的传输路径&#xff0c;静态路由是指网络管理员手动配置的路由条目&#xff0c;用于指定数据包从源地址到目的地址的固定路径。以下是关于静态路由的详细介绍。 一、路由的基础知识点 路由的定义&#xff1a; 路由是指在计算机网络中&#xff…

androidstudio入门到放弃配置

b站视频讲解传送门 android_studio安装包&#xff1a;https://developer.android.google.cn/studio?hlzh-cn 下载安装 开始创建hello-world 1.删除缓存 文件 下载gradle文件压缩&#xff1a;gradle-8.9用自己创建项目时自动生成的版本即可&#xff0c;不用和我一样 https://…

从0开始学习--Day26--聚类算法

无监督学习(Unsupervised learning and introduction) 监督学习问题的样本 无监督学习样本 如图&#xff0c;可以看到两者的区别在于无监督学习的样本是没有标签的&#xff0c;换言之就是无监督学习不会赋予主观上的判断&#xff0c;需要算法自己去探寻区别&#xff0c;第二张…

java算法性能调优:详尽探讨时间复杂度与空间复杂度的分析与优化“

接下来我将带领大家进入Java数据结构的深入学习&#xff0c;让我们一同享受Java数据结构中的奥秘。 一、引言 二、时间复杂度 三、空间复杂度 四、Java中的时间复杂度和空间复杂度 五、优化时间复杂度和空间复杂度 七、时间复杂度和空间复杂度的重要性 一&#xff1a;时间…

「AI Infra 软件开源不是一个选项,而是必然」丨云边端架构和 AI Infra专场回顾@RTE2024

在人工智能和开源技术蓬勃发展的当下&#xff0c;AI Infra 项目正经历着日新月异的变革。从跨平台运行时到云边端 AI 基础设施&#xff0c;再到多模态知识助手&#xff0c;创新浪潮席卷而来。这些进步不仅显著提升了技术指标&#xff0c;也为实时音视频处理、边缘计算、大模型应…

【重生之我要苦学C语言】深入理解指针6

深入理解指针6 sizeof和strlen的对比 sizeof 操作符 整型&#xff1a; #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() {int a 10;printf("%zd\n", sizeof(a));printf("%zd\n", sizeof(int));printf("%zd\n", sizeo…

创建vue插件,发布npm

开发步骤&#xff1a;1.创建一个vue项目&#xff0c;2.开发一个组件。 3.注册成插件。 4.vite和package.json配置。5.发布到npm &#xff11;.创建一个vue项目 npm create vuelatest 生成了vue项目之后&#xff0c;得到了以下结构。 在src下创建个plugins目录。用于存放开发的…