图 新手入门:了解网络应用与网络协议( 五 )


UDP服务
UDP是一个不提供非必要服务的轻量级传输协议,具有一个最简约的服务模型 。UDP是无连接的,因此两个进程彼此通信之前没有握手过程 。UDP提供不可靠的数据传输服务,也就是说当一个进程往自己的UDP套接字发出一个消息时,UDP不能保证这个消息会最终到达接收套接字 。另外,就确实到达接收套接字的消息而言,它们的到达顺序也可能与发送顺序不一致 。
UDP不包含拥塞控制机制,因此发送进程能够以任意速率往UDP套接字倾注数据 。尽管不能保证所有的数据都到达接收套接字,但是仍会有相当比例的数据到达 。实时应用程序的开发人员往往选择在UDP上运行他们的应用 。与TCP类似,UTP也不提供任何延迟保证 。
下表指出了一些流行的因特网应用所用的传输协议 。我们看到,电子邮件、远程终端访问、web和文件传送都使用TCP 。这些应用选择TCP的主要原因在于TCP提供可靠的数据传输服务,能够保证所有数据最终到达其目的地 。我们还看到,因特网电话一般运行在UDP之上 。一个因特网电话应用的两端都得以某个最小速率跨网络发送数据:与TCP相比,UDP更可能满足这个要求 。另外,因特网电话应用可容忍数据丢失,因此并不需要由TCP提供的可靠数据传输服务 。
表2:流行的应用及采用的协议
我们已经指出,TCP和UDP都不提供定时保证,这是不是意味着时间敏感的应用不能运行在当今的因特网上呢?其答案显然是否定的——时间敏感的应用已在因特网上存在好多年了 。这些应用往往工作得相当出色,因为它们已被设计成能够尽最大程度地对付这种缺乏保证的服务 。尽管如此,当延迟过大时(这在公共因特网中是常事),最聪明的设计也有其局限 。总之,当今的因特网通常能够为时间敏感的应用提供满足的服务,但不能提供任何定时或带宽上的保证 。
本文预备介绍的网络应用
因特网上,公众域和专属的应用层出不穷 。我们不想百科全书式地罗列一大堆因特网应用,于是选了少数几个既重要且流行的应用集中讨论 。我们将具体地讨论4个流行的应用:Web、文件传送、电子邮件、目录服务 。我们首先讨论web,其原因不仅在于web是一个极其流行的应用,还在于它的应用层协议(即HTTP)相对简单,可用于阐明网络协议的许多要害因素 。接下来讨论文件传送,因为其协议与HTTP恰好形成对照,使得我们可以强调一些额外因素 。我们还讨论电子邮件,它是因特网中第一个高度流行的应用 。应该看到,现代的电子邮件使用不止一个应用层协议 。Web、文件传送和电于邮件有共同的服务需求:需要可靠的传输服务,没有非凡的定时需求,能接受弹性带宽服务 。TCP提供的服务完全满足这3个应用 。域名系统(Domain Name System,DN5)是我们讨论的第4个应用,它为因特网提供目录服务 。多数用户不会直接与DNS打交道;相反,他们通过其他应用(包括即将讨论的那3个应用)间接求助于DNS 。DNS精妙地展示了可以怎样在因特网中实现分布式数据库 。这4个即将讨论的应用对时间都不大敏感 。