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 攻击可分为两个不同的类别:
- 针对 VoIP 服务提供商的攻击。这种 DDoS 攻击有可能使 VoIP 提供商的所有客户的服务中断。它们可能采取多种形式,包括:
以提供商的 Web 应用程序为目标,阻止用户登录
以提供商的服务器为目标,使其 PBX 服务崩溃
关闭 DNS 解析,使用户无法导航到提供商的网站
一些针对 VoIP 提供商的攻击利用了 VoIP 的工作方式——例如,通过 SIP 洪水攻击来淹没支持 SIP 的服务器。其他人可能使用更通用的 DDoS 攻击方法,这些方法对大多数未受保护的网站和服务器有效,如 HTTP 洪水攻击和 SYN 洪水攻击。
此外,曾发生过对 VoIP 提供商进行 DDoS 勒索攻击。在 DDoS 勒索攻击中,在受害者向攻击者支付赎金之前,攻击会一直持续。
- 针对使用 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。