UDP执行一个简单的功能。在发送方,UDP仅是将单独的数据从应用程序传给IP。在接收方,它仅仅将收到的数据从IP传给相应的应用程序。
和TCP不同,UDP没有提供确认机制,因此不能保证使用UDP的应用上发出的任何数据都能到达目的地。UDP本身是不可靠的,那么为什么要使用UDP呢?答案是许多应用需要快速地、一次性地传输一个数据或是一个简单的请求/回应。域名服务系统(DNS)就是这样的一个例子。
更多详细的UDP内容请参考 《TCP/IP协议族》:UDP协议
1、为什么使用UDP而非TCP传送语音
当语音在IP上传输时,我们使用UDP,而不是TCP。这就和通话本身的特点有关。在一次谈话中,可以容忍一两个语音分组丢失。因为语音传送一般使用小分组(持续时间为10ms到40ms)。很显然,现代语音编码技术在没有分组丢失的情况下能够很好的发挥作用,但是,编码和解码的算法确实有能力进行丢失后的恢复,这样,偶尔的分组丢失并不会引起质量的大幅度降低。
另一方面,语音对延时很敏感。不幸的是,在TCP中建立连接的机制和确认机制引入了时延,而这时必须避免的。更糟的是,当发生分组丢失时,TCP将导致分组重传,这样就引入了更多的时延。所以语音传输不使用TCP。