2.用户数据报协议(UDP)
UDP全称是User Datagram Protocol,中文名为用户数据报协议。UDP 提供无连接的网络服务,该服务对消息中传输的数据提供不可靠的、最大努力传送。这意味着它不保证数据报的到达,也不保证所传送数据包的顺序是否正确。UDP数据包的头部结构如图1-26所示。
源端口 | 目的端口 |
用户数据包的长度 | 校验和 |
数据 |
图1-26 UDP数据包头部结构
(1)源、目的端口:作用与TCP数据段中的端口号字段相同,用来标识源端和目标端的应用进程。
(2)用户数据包的长度:标明UDP头部和UDP数据的总长度字节。
(3)校验和:用来对UDP头部和UDP数据进行校验。
提示:这里与TCP是不同的,对UDP来说,此字段是可选项,而TCP数据段中的校验和字段是必须有的。
要使用UDP,应用程序必须提供源和目标应用程序的IP地址和UDP端口号。尽管某些UDP端口和TCP端口使用相同的编号,但这两种端口是截然不同且相互独立的。与TCP端口一样,1024以下的UDP端口号是由IANA分配的端口。表1-5列出了一些常用的UDP端口。
表1-5 UDP常见端口号
UDP端口号 | 描 述 |
53 | DNS 名称查询 |
69 | TFTP简单文件传输协议 |
137 | NetBIOS 名称服务 |
138 | NetBIOS 数据报服务 |
161 | 简单网络管理协议(SNMP) |
520 | 路由信息协议(RIP) |
也许你会问:“既然UDP是一种不可靠的网络协议,那么还有什么使用价值或必要呢?”其实不然,在有些情况下UDP可能会变得非常有用。因为UDP具有TCP所望尘莫及的速度优势。虽然TCP中植入了各种安全保障功能,但是在实际执行的过程中会占用大量的系统开销,无疑使速度受到严重的影响。反观UDP由于排除了信息可靠传递机制,将安全和排序等功能移交给上层应用来完成,极大地降低了执行时间,使速度得到了保证。