UDP协议简介
UDP(User Datagram Protocol)传输与IP传输非常类似。你可以将UDP协议看作IP协议暴露在传输层的一个接口。UDP协议同样以数据包(datagram)的方式传输。
当应用程序对传输的可靠性要求不高,但是对传输速度和延迟要求较高时,可以用UDP协议来替代TCP协议在传输层控制数据的转发。UDP将数据从源端发送到目的端时,无需事先建立连接。UDP采用了简单、易操作的机制在应用程序间传输数据,没有使用TCP中的确认技术或滑动窗口机制,因此UDP不能保证数据传输的可靠性,也无法避免接收到重复数据的情况。
UPD的诞生:
尽管UDP协议非常简单,但它的产生晚于更加复杂的TCP协议。早期的网络开发者开发出IP协议和TCP协议分别位于网络层和传输层,所有的通信都要先经过TCP封装,再经过IP封装(应用层->TCP->IP)。开发者将TCP/IP视为相互合作的套装。但很快,网络开发者发现,IP协议的功能和TCP协议的功能是相互独立的。对于一些简单的通信,我们只需要简单的IP传输就可以了,而不需要TCP协议复杂的建立连接的方式(如果过多的建立TCP连接,会造成很大的网络负担,而UDP协议可以相对快速的处理这些简单通信)。UDP协议随之被开发出来。
UDP运用场景:
UDP适合传输对延迟敏感的流量,如语音和视频。在使用TCP协议传输数据时,如果一个数据段丢失或者接收端对某个数据段没有确认,发送端会重新发送该数据段。
让我们设想一下,平时打电话过程中,偶尔出现的信号不好的情况,此时,如果对方在说话,那么我们肯定是听不清楚的,而这些遗失的语音是不会重新出现的(除非你叫对方重新讲一遍)
上面的打电话案例其传输层协议就是使用的UDP,而不是TCP。UDP采用实时传输机制和时间戳来传输语音和视频数据。
使用UDP传输数据时,由应用程序根据需要提供报文到达确认、排序、流量控制等功能。
UDP说的东西不多,只要我们IP协议学的好,UDP并不是很大难题,重点还是TCP的熟练掌握。