一、UDP概述
UDP(User Datagram Protocol , 用户数据报协议)
UDP是一种无连接、不可靠、快速的传输层通信协议。在TCP/IP协议层次模型中,UDP位于IP层之上。应用程序访问UDP层然后使用IP层传送数据报。IP数据报的数据部分即为UDP数据报。IP层的报头指明了源主机和目的主机地址,而UDP层的报头指明了主机上的源端口和目的端口。
二、UDP报文解析
1.报文格式
.png)]
2.特点
-
面向非连接:
UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。
-
不维护连接状态:
一台服务机可同时向多个客户机传输相同的消息。
-
报头大小:
只有8个字节,相对于TCP的20个字节信息包而言UDP的额外开销很小。
-
吞吐量限制:
吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。
-
不可靠交付:
尽最大努力交付,不保证可靠交付,不需要维持复杂的链接状态表。
-
UDP是面向报文的:
发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。
三、TCP和UDP的区别
区别点 | TCP | UDP |
---|---|---|
连接 | 面向连接 | 无连接 |
可靠性 | 可靠的 | 不可靠的 |
有序性 | 有序的 | 不具备有序性 |
速度 | 较慢 | 较快 |
量级 | 重量级(报文头20Byte ) | 轻量级(报文头8Byte ) |