TCP与UDP – 哪种协议最适合VoIP?(上)

TCP(传输控制协议)和UDP(用户数据协议)是最广泛使用的数据遍历网络的协议。这些传输协议决定设备之间如何建立连接、交换数据以及连接是否可靠。

这两个协议是网络运作的重要组成部分,每个协议在任一网络环境中都有自己独特的用例。

众所周知,各组织逐渐倾向于利用新技术进行商业通信。目前为止,大多数公司已经放弃了传统的固话通讯,转而使用VoIP来提供更有效的通讯方式。

IP语音或VoIP是一种先进的电话通讯形式,允许各组织不使用固定电话网络,而是互联网来拨打电话。从本质上讲,VoIP使用互联网进行语音和/或视频传输。它通过将模拟信号转换为数据包,然后将它们发送到目的地来实现传输。

在VoIP环境中,通话的音频样本被转换为数据包。通常每一个数据包都包含大约10到30毫秒的音频。由于VoIP使用IP网络进行通信,因此需要一种传输数据的方法。这就是TCP和UDP等传输协议的用武之地了。

为了分解数据,数据包就像在双方之间交换的信件一样。每个数据包都包含在一个信封中,信封上说明了发送方和接收方的地址。

TCP和UDP本质上是两种不同的“信封”。他们记录发件人和收件人的地址,并装入数据包以使其免受损害。但是在数据传输中,上述地址即传输设备的IP地址和对应的端口号。

在本文中,我们将讨论这两个传输协议如何工作,它们的优缺点以及它们在VoIP环境中的应用。

TCP协议(准确性更重要)

专家称TCP协议属“连接导向型”。因为它要在开始数据交换之前建立连接。TCP协议较另一种传输协议更可靠,因为它使用确认系统来确认数据包是否成功传送。

TCP如何运作

要建立连接,启动连接的设备会先向其他设备询问其可用性。在收到发送方的初始请求后,接收方通知发送方其可用性。然后发送方确认接收方已响应,并在接收方可用于通信时开始通信。

完成上述整个过程就建立了连接。这种连接现象称为“三次握手”,此连接完成于数据传输开始之前。这个初始阶段对于保留用于通信的端口并建立可靠连接来说非常重要。

在建立初始连接之后,设备开始交换数据包。每次一方发送数据包后,另一方会发送一份已收到该数据包的确认回复。

TCP协议还具有用于在传输期间恢复丢失的数据分组的错误检测机制。直到丢失的数据包到达另一方,此传输期间的任何丢失的数据包会被重新发送,且数据传输会停止。

这样可确保在传输过程中不会丢失任何数据,并能以正确的顺序传送所有数据包。然而,这也意味着数据传输会有延迟,直到收听方接收到所有丢失的数据包。此外,在TCP协议想要终止连接时,需要重复“3次握手”的操作。

优点与缺点

我们可以看到,TCP协议重视在数据传输期间准确地传递所有数据包。它可以限制网络环境中任何形式的拥塞和停滞。此外,该协议确保所有数据包有序到达,且数据的准确性保持不变。

尽管该协议利于准确传递信息,但相比之下它需要更多的时间和资源来运行。每个数据包都有一个序列号(保证顺序)、确认号和IPv4和IPv6连接中的错误检测校验码。

因此,与UDP传输协议相比,TCP的数据包标头更大。考虑到它还必须处理丢失数据包的确认工作和重传,所以TCP协议开销更大。数据包有时可能需要几秒钟才能成功传输。

应用

TCP是为准确传递信息而构建的,并不适合需要快速传输数据的连接。因此,TCP更适用于强调信息准确性的数据交换,而不是及时性。

例如,TCP协议非常适合传输短信或电子邮件。在这些用例中,信息的准确性比其交付时间更为重要。一封词不达意的短信毫无用处。

同样,TCP非常适合通过IP网络传输文件。通过TCP协议传送文件可确保有序传送这些文件的各部分。此外,该协议非常适合通过远程SSH(安全接壳)在不安全的网络上建立安全连接。

原文标题:TCP vs UDP – Which Protocol Is the Best for VoIP?

作者:Sam Rozenfeld

填写常用邮箱,接收社区更新

WebRTC 中文社区由

运营