用户数据报协议 UDP 是 Internet 传输层协议,提供无连接、不可靠、数据报尽力传输服务。
不仅如此,在发送方依次发送的报文段,UDP 即便将这些报文段送达到接收进程,也可能是乱序到达的。UDP 没有拥塞机制,所有 UDP 发送端可以用任何速率向其下层(即网络层)注入数据。当然,实际端到端吞吐量可能小于这种速率,这可能是因为中间链路的带宽受限或因为网络拥塞而造成的。
使用 UDP 的主要原因:
虽然 UDP 提供不可靠传输服务,但使用 UDP 的应用仍然可以实现可靠数据参数。这可以通过在应用程序自身中建立可靠传输机制来完成,如 停-等协议或滑动窗口协议等。也就是说,应用进程可以使用 UPD 的同时进行可靠通信,只是需要在应用层设计可靠传输机制而已。
int socket()
:创建套接字。int bind()
:绑定套接字的本地端点地址。ssize_t sendto()
:发送数据。ssize_t recvfrom()
:接收数据。int close()
:关闭套接字。