5、UDP协议
5.1 UDP的原理
UDP属于运输层协议,称为用户数据报协议,是一种无连接、不可靠的传输协议,它只在低级程度上实现了传输功能,UDP只简单地完成数据从一个进程到另一个进程的交付。
它没有提供任何流量控制机制,收到的报文也没有确认;
只提供检验和计算这种简单差错,当UDP报文校验和计算不成功时,将丢弃这个报文。
携带UDP报文的IP数据报只能交给目的主机,这是一种不完整的交互,因为UDP报文的最终目的站是某个用户进程。因为用户进程创建和撤销都是动态的,UDP报文的发送无法预知接收方的状态,它不可能将该报文的终点标识为机器上某个进程,因此引入端口号的概念。
UDP最终目的地是目的主机上与报文中目的端口号相关联的进程。当UDP接收到递交给某一端口的报文时,但此时没有任何进程与该端口号绑定,则这个报文将会被丢弃。同时ICMP端口不可达差错报文将会返回至源主机。
UDP报文的封装:
UDP报文格式:
为了计算校验和,UDP引入伪首部的概率
5.2 Lwip的实现源码
5.2.1 使用UDP编程
(1)新建控制块
(2)绑定控制块
(3)连接控制块
(4)报文发送
(5)报文发送与递交