相信TCP协议大家都懂,今天我们来讲一下UDP协议。
大家都知道UDP,原来叫做User Datagram Protocol(用户数据报协议),但是UDP协议既不保证送达,失败也不通知,于是,大家就把他们的名字改成了Unreliable Datagram Protocol(不可靠数据报协议)。
那为什么UDP协议不可靠呢?其实要从它的下一层IP说起。
IP层的主要任务,就是按照源IP地址向目标IP地址发送数据报。它并不管这个发送任务能否成功,它将这个发送的结果抛给上层传输层处理了。
这里有一个小知识点,就是存货时间,TLL。这个存活时间并不是一个时间单位,而是一个路由器数量,也就是每一个IP分组,每经过一个路由器,就把存活时间减1,如果这个数等于零了,那么就被抛弃掉了。
在复杂的网络环境中,网络拥塞,负载过高等经常发生,IP分组发送失败也是每时每刻都在发生的。
但是UDP协议只是在原有的基础上增加了源端口、目标端口、长度、校验和4个字段,甚至源端口跟校验和都可以不要。所以UDP协议
- 不保证消息交付:不确认,不重传,无超时
- 不保证交付顺序:不设置包序号,不重排,不会发生队首阻塞
- 不跟踪连接状态: 不必建立连接或重启状态机
- 不需要拥塞控制: 不内置客户端或网络反馈机制