用户数据报协议(UDP)是无连接协议,也称透明协议,位于传输层。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。
UDP协议与TCP协议的区别
TCP协议参考链接:传输控制协议(tcp)
- TCP提供面向连接的传输,通信前要先建立连接(三次握手机制); UDP提供无连接的传输,通信前不需要建立连接。
- TCP提供可靠的传输(有序,无差错,不丢失,不重复); UDP提供不可靠的传输。
- TCP面向字节流的传输,因此它能将信息分割成组,并在接收端将其重组; UDP是面向数据报的传输,没有分组开销。
- TCP提供拥塞控制和流量控制机制; UDP不提供拥塞控制和流量控制机制。
TCP就是为了解决IP层不可靠的协议,那UDP是不可靠的,为什么不直接使用IP协议而要使用UDP协议呢?
IP协议参考:IPv4和IPv6介绍及区别
- 一个重要的原因是IP协议中并没有端口(port)的概念。IP协议进行的是IP地址到IP地址的传输。但每台计算机中需要有多个通信通道,一个端口就代表了这样的一个通信通道。UDP协议实现了端口,从而让数据包可以在送到IP地址的基础上,进一步可以送到某个端口。
既然UDP是不可靠的,为什么不用TCP协议,还要用UDP协议呢?
- 因为没有三次握手,所以会起步比较快,延时小;
- 另外,由于不需要双方持续在线,所以server不用维护巨量的并发连接,节省了系统资源;
- 因为没有重传确认,虽然到达的数据可能会有所缺失,但在不影响使用的情况下,能更高效的利用网络带宽。
UDP报文格式