UDP即(user datagram protocal,用户数据报协议),我们很多人应该都了解过TCP(transp control protocal,传输控制协议),那么可能有人会问了,为什么有了TCP协议还要UDP协议呢?
这是由于UDP协议和TCP协议之间不同的特点,决定了这两种协议的适合的应用场景的不同。接下来就由我来为大家介绍一下UDP协议,并给出UDP编程的Java实现。
一、UDP协议
用户数据报协议(UDP,User Datagram Protocal)是一种面向无连接的传输层协议,提供不可靠的数据传输服务。
无连接是指:
在传输数据之前客户端和服务器端并不建立连接。
不可靠是指:
1、并不保证数据包完全发送出去。
2、不保证数据包能被接收方接收。
3、也不保证接收方接收到的数据包的顺序和发送方的发送顺序一致。
那么为什么这么不负责的协议还有存在的意义呢?原来UDP协议的无连接和不可靠特性是牺牲了可靠性而在其他方面提升性能。
1、提高数据发送速度。
2、节省开销。
因为,TCP协议是一种可靠的,如果数据在传输过程中出现异常,比如发送的数据包丢失,数据包失真,那么TCP协议会要求数据包重新发送。
而且TCP协议是面向连接的数据发送前客户端和服务器端要建立连接,数据发送后客户端和服务器端要断开连接。
以上特点都会影响数据包发送的速度,增加服务器和客户端的开销。
所以我们可以很容易地明白,为什么说UDP的面向无连接和不可靠特性能够提速和节省开销。
经过上述的分析我们可以对UDP协议和TCP协议各自的优缺点都有了一个很清楚的认识,那么什么情况下使用UDP协议,什