UDP协议的特点
用户数据报协议(UDP)只在IP的数据报服务之上增加了很少一点功能,就是复用和分用的功能以及差错检测的功能,这里所说的复用和分用,就是使用端口标识不同的应用层协议。
- UDP协议将应用程序要传的内容原封不动的封装之后发走,不加编号和分段
- UDP的主要特点是: UDP是无连接的,即发送数据之前不需要建立连接(当然发送数据结束时也没有连接可释放),因此减少了开销和发送数据之前的时延。(计算机域名解析用的就是UDP协议,如果发的数据包失败了,解析没有成功就再发一遍,尝试多次,直到失败或者成功,虽然udp是不可靠的,但是它会尝试多次)
- UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表(这里面有许多参数),通信的两端不用保持连接,因此节省系统资源。
- UDP是面向报文的,发送方的UDP对应用程序交下来的报文,添加首部后就向下交付给网络层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。(应用程序给我是什么样的就是什么样的,将整个报文发走)
- UDP没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。很多的实时应用(如IP电话、实时视频会议等)要求源主机以恒定的速率发送数据,并且允许在网络发生拥塞时丢失一些数据,但却不允许数据有太大的时延。UDP正好适合这种要求。
- UDP支持一对一、一对多、多对一和多对多的交互通信。 UDP的首部开销小,只有8字节,比TCP的20字节的首部要短。
在udp发送的过程中发送失败在发送一遍是由应用程序来决定
UDP面向应用层报文
不同的应用都使用udp协议,通过加上不同的端口来区分不同的应用。
可以看到上面应用程序要发的内容就是我要传输的内容,不需要分段,加上upd首部和网络层首部就变成了数据包。
UDP的首部格式
(1)源端口。源端口号。在需要对方回信时选用。不需要时可用全0。
(2)目的端口。目的端口号。在终点交付报文时必须要使用到。
(3)长度。UDP用户数据报的长度(udp首部+udp数据包数据部分),其最小值是8(仅有首部)。
(4)检验和。检测UDP用户数据报在传输中是否有错。有错就丢弃。
UDP校验和计算