UDP(User Datagram Protocol)用户数据报协议
特点
无连接,不可靠,面向数据报,全双工。
解释一下这四个词就是:
1 UDP发送数据之前不需要建立连接(更不需要释放连接),因此减少了开销和发送数据之间的时间开销。
2 UDP的传输不可靠:UDP尽最大努力去传输数据,但是不保证数据一定能传到(没有确认能送到数据的功能)。
3 UDP面向数据报传输。发送方的UDP对应用程序传送下来的报文,只添加报头又向下交付,反过来也是,接收方的传输层会只去掉UDP报头再向上传输。
4 全双工: UDP允许数据在两个方向都可以传输(即可以同时发送也可以接收,并不是单向的)
报文结构
UDP数据报有两个部分组成:首部+数据部分。 首部只有八个字节,由四个字段组成,每个字段都是两个字节。
源端口:需要在对方回信时,选用此端口号,不需要的时候用0填充
目的端口:在终点交付报文的时候必须使用。(送到哪)
报文长度:最小值是8,即只有首部部分,最大值是64KB
校验和:用来检验UDP用户数据报在传输过程中是否出错。如果接收方 UDP 发现收到的报文中的目的端口号不正确(即不存在对应于该端口号的应用进程),就丢弃该报文,并由网际控制报文协议 ICMP(Internet Control Management Protocol) 发送 “端口不可达” 差错报文给发送方。虽然在 UDP 之间的通信要用到其端口号,但由于 UDP 之间的通信是无连接的,因此不需要使用套接字socket(TCP 之间的通信必须要在两个套接字之间建立连接)。