Page 49 - Web性能权威指南
P. 49
第 3 章
UDP的构成
1980 年 8 月,紧随 TCP/IP 之后,UDP(User Datagram Protocol,用户数据报协议)
被 John Postel 加入了核心网络协议套件 。当时,正值 TCP 和 IP 规范分立为两个单
独的 RFC。这个时间点非常重要,稍后我们会看到,UDP 的主要功能和亮点并不
在于它引入了什么特性,而在于它忽略的那些特性。UDP 经常被称为无(Null)协
议,RFC 768 描述了其运作机制,全文完全可以写在一张餐巾纸上。
• 数据报
一个完整、独立的数据实体,携带着从源节点到目的地节点的足够信息,对这些
节点间之前的数据交换和传输网络没有任何依赖。
数据报(datagram)和分组(packet)是两个经常被人混用的词,实际上它们还是
有区别的。分组可以用来指代任何格式化的数据块,而数据报则通常只用来描述那
些通过不可靠的服务传输的分组,既不保证送达,也不发送失败通知。正因为如此,
很多场合下人们都把 UDP 中 User(用户)的 U,改成 Unreliable(不可靠)的 U,
于是 UDP 就成了“不可靠数据报协议”(Unreliable Datagram Protocol)。这也是为
什么把 UDP 分组称为数据报更为恰当的原因。
关于 UDP 的应用,最广为人知同时也是所有浏览器和因特网应用都赖以运作的,就
是 DNS(Domain Name System,域名系统)。DNS 负责把对人类友好的主机名转换
成 IP 地址。可是,尽管浏览器有赖于 UDP,但这个协议以前从未被看成网页和应
用的关键传输机制。HTTP 并未规定要使用 TCP,但现实中所有 HTTP 实现(以及
构建于其上的所有服务)都使用 TCP。
31