UDP—用户数据报协议(User Datagram Protocol)是一个不可靠,无连接协议。UDP套接字是一种数据报套接字(datagram socket)。UDP既可使用IPv4,也可使用IPv6。
UDP概要
UDP是一个简单的传输层协议。应用进程往一个UDP套接字写入一个消息,该消息随后被封装到一个UDP数据报,再被封装到一个IP数据报,然后发送到目的地。
不可靠:UDP不能保证UDP数据报会到达最终目的地,不保证各个数据报在跨越网络后到达的先后顺序不变,也不保证每个数据报只到达一次。
如果一个数据报到达目的地后,经过校验和检测发现错误,或者数据报在网络传输中被丢弃,它就无法在服务器端被投递给UDP套接字,也不会被源端重传。解决:要想确保一个数据报到达目的地,就要在应用程序中添加特性:来自对端的确认,本端的超时与重传。有长度:每个UDP数据报都有一个长度,在正确到达目的地后,这个长度都会随数据一道传递给接收端应用进程。(TCP是一个字节流协议,没有任何记录边界,与UDP不同)
无连接:UDP客户与服务器之间不存在任何长期关系。举例来说,一个UDP客户可以是用同一个套接字创建不同的数据报给不同的服务器;一个UDP服务器也可以使用同一个套接字从若干个不同的客户接收数据报,每个客户一个数据报。
FIXME:具体细节(TCP/IP)