一:前言
用户数据包协议(User Datagram Protocao,UDP)是在现代网络中较常使用的另外一种第4层协议。如果说TCP是为了满足带有内在错误检测的可靠数据传输,那么UDP主要是为了提供高速的传输。UDP是一种尽力服务,通常会被称为无连接协议
一个无连接协议并不会正式地建立和结束主机之间的连接,也不会像TCP那样存在握手和终止的过程
无连接协议意味着不提供可靠性服务,但是依赖于UDP的协议通常都会有自己内置的可靠性服务,或者使用ICMP的一些功能,来保证连接更可靠一些。例如:应用层协议DNS和DHCP高度依赖于数据包在网络上传输的速度,虽然使用了UDP作为它们的传输层协议,但还是他们自己进行错误检查以及重传计时
二:UDP报头结构(固定8个字节)
UDP头比TCP头小得多,也简单的多
源端口:用来传输数据包的端口
目的端口:数据包将要发送的端口
长度:数据包的字节长度(首部+数据,整个UDP的长度)
校验和:用来确保UDP头和数据到达时的完整性
注:UDP并不关心传输的可靠性,所以任何使用UDP的应用在必要的时候都需要采取特殊的步骤,保证可靠的传输
这一点和TCP相反,TCP有自己的一套连接正式发起和结束的程序,也有自己的一些机制来校验包的成功传输