UDP
udp段格式
0 16 31
|16位源端口号 |16位目的端口号|
|16位UDP长度 |16位UDP校验和|
|数据(如果有)|
解析
UDP长度:包含UDP首部和UDP层payload(数据)长度。
UDP校验和:包含UDP首部和UDP层payload的校验和。
UDP协议不面向连接,也不能保证传输的可靠性。
发送端的UDP协议只管把应用程序传来的数据封装为段发给IP层就完成任务了。如果因网络故障无法发送到对方,UDP协议也不会给应用层返回任何错误信息。
接收端的UDP协议层只管把接收到的数据根据端口交给相应的应用程序就算完成任务。如果发送端发过来多个数据包并且在网络上经过不同的路由,到达接收端的顺序已经乱了,UDP协议也不保证按发送时的顺序交给应用层。
通常接收端的UDP协议层将接收到的数据放在一个固定大小的缓冲区中等待应用程序来提取和处理,如果应用程序提取和处理的速度很慢,而发送端发送的速度很快,就会丢失数据包,UDP协议层并不报告这种错误。
UDP协议用来发送一些可靠性不高的消息。基于UDP的TFTP协议一般只用于传送小文件,而基于TCP的FTP协议适用于各种文件的传输。