UDP
- UDP 是 User Datagram Protocol 的简称,中文名是用户数据报协议,是一种无连接、不可靠的协议,它只是简单地实现从一端主机到另一端主机的数据传输功能,这些数据通过 IP 层发送,在网络中传输,到达目标主机的顺序是无法预知的。
- 在发送的一端,UDP 只是把上层应用的数据封装到 UDP 报文中(直接就添加了个UDP首部),在差错检测方面,仅仅是对数据进行了简单的校验,然后将其封装到 IP 数据报中发送出去。(也就是封装好了,直接发送出去,然后什么都不管了)
- 在接收端,无论是否收到数据,它都不会产生一个应答发送给源主机,并且如果接收到数据发送校验错误,那么接收端就会丢弃该 UDP 报文,也不会告诉源主机,这样子传输的数据是无法保障其准确性的,如果想要其准确性,那么就需要应用程序来保障了。(直接拆包,检验错误就直接丢弃)
- 与 TCP 协议一样,UDP 报文协议根据对应的端口号传递到目标主机的应用线程
- 支持一对一,一对多,多对一,多对多的交互通信。(而TCP只能一对一)
UDP 控制块
- 与 TCP 协议一样,为了更好管理 UDP 报文,LwIP 定义了一个 UDP 控制块
- 记录与 UDP 通信的所有信息,如源端口号、目标端口号、源 IP 地址、目标 IP 地址以及收到数据时候的回调函数等等
|