IP 语音(VoIP)是一个术语,用于描述允许通过 Internet 进行多媒体通信的一组技术。这项技术可以让您与朋友进行 FaceTime 通话,通过 Zoom 进行虚拟课堂课程,甚至可以通过手机拨打一些“正常”电话。
VoIP 背后的原理类似于通过电路交换网络进行的传统数字呼叫。这其中主要的区别在于,编码媒体(例如语音或视频)被划分为小的比特单元,这些比特单元根据专门定义的媒体协议作为 IP 数据包的有效载荷在互联网上传输。
 
与传统的“电路交换”相比,这种语音数据的“分组交换”可以更有效地利用网络资源。因此,通过 VoIP 进行呼叫比通过 POTS(“普通电话服务”)进行呼叫更具成本效益。改用 VoIP 可以将企业的电信成本降低 50% 以上,因此,每三家企业中就有一家已经采用了 VoIP 技术也就不足为奇了。VoIP 具有灵活性、可扩展性,在新冠病毒大流行期间将人们远程聚集在一起特别有用。
 
大多数 VoIP 呼叫背后的一个关键协议是广泛采用的会话发起协议(SIP)。SIP 最初是在RFC-2543(1999)中定义的,旨在作为一种灵活的模块化协议,用于发起呼叫(“会话”),无论是语音或视频,还是双方或多方。
2
速度是 VoIP 的关键
我们都知道,人与人之间的实时通信需要感觉自然、即时和反应迅速。因此,一个好的 VoIP 服务最重要的特征之一就是速度。用户可以将其体验为声音自然的音频和高清视频,没有延迟或卡顿。用户对通话质量的感知通常通过使用诸如语音质量的感知评估和平均意见得分等指标来进行密切的测量和跟踪。虽然 SIP 和其他 VoIP 协议可以通过使用 TCP 或 UDP 作为底层协议来实现,但通常选择 UDP 的原因是因为路由器和服务器处理它们的速度更快。
UDP 是一种不可靠、无状态且没有服务质量(QoS)保证的协议。这意味着路由器和服务器通常使用较少的内存和计算能力来处理 UDP 数据包,因此每秒可以处理更多数据包。通过更快地处理数据包可以更快地组装数据包的有效负载(编码媒体),从而提高通话质量。
 
在“越快越好”的指导方针下,VoIP 服务器将尝试以先到先得的方式尽可能快地处理数据包。因为 UDP 是无状态的,所以它不知道哪些数据包属于现有调用,哪些可以尝试发起新调用。这些详细信息以请求和响应的形式存在于 SIP 标头中,直到网络堆栈的更上层才对其进行处理。
 
当每秒数据包的速率增加超过路由器或服务器的容量时,越快越好实际上变成了一个缺点。虽然传统的电路交换系统在达到容量时会拒绝新的连接,并试图在不造成损害的情况下保持现有连接,但 VoIP 服务器在竞争处理尽可能多的数据包时,将无法在超过容量时处理所有数据包或所有调用。这会导致正在进行的呼叫延迟和中断,以及尝试拨打或接听新呼叫失败。
 
如果没有适当的保护措施,为获得卓越的通话体验而进行的竞争将会付出安全的代价,而恰巧攻击者则学会利用这些代价。