写在前面:
仅供学习使用
UDP的简介
-
UDP(User Datagram Protocol,用户数据报协议),提供面向无连接的不可靠传输服务。属于OSI参考模型中的传输层协议。UDP的正式规范是IETF RFC768。UDP在IP报文的协议号是17。
-
UDP协议不提供拥塞控制、流量控制、差错纠正机制。
UDP的特征
-
不可靠、无连接、不分片、速度快、实时性
-
不可靠
通俗点讲就是不靠谱,数据包在传输过程中丢失的话是不会重传的。
-
无连接
通俗点讲就是一个无协商的过程,接收方没有准备,不知道数据包大小,没头没尾的(没有建立和终止会话的过程),容易丢失数据等。当然上面的都是坏处,好处就是速度快,开销小,毕竟无连接也就代表着不用维护连接。
-
不分片
通俗点讲不管应用层发送多大的包UDP协议都会接收,基本不对数据包做任何处理就发送给客户端。
UDP的常用协议
-
DHCP、DNS、TFTP、OICQ、SNMP、RIP、BOOTP等等
UDP的封装
-
UDP有两个字段,数据字段和首部字段。首部字段8个字节,每2个字节组成一个字段,共组成了4个字段。4个字段又分为16位的源端口号、16位的目的端口号、16位的UDP长度和16位的UDP校验和。
UDP常用到的场景
-
直播、IP电话等等一些需要实时数据传输,但是丢失一些数据包对整体造成的影响比较小的场景,就像打电话有时一卡一卡的,这种卡顿相当于丢失了一些数据包,对整体的影响并不是很大。