计算机网络技术及应用(第2版)
第9章 应用层职业教育中心 高进喜
9.1应用层概述
应用层是网络体系统结构的最高层。应 用层的任务是为最终用户提供服务。每 一种应用层协议都是为了解决某一类问 题,而每一个问题都对应一个应用程序, 在应用层中运行的每一个应用程序称为 一个应用进程。而应用层的具体内容就 是规定应用进程在通信时所遵循的协议。
应用层中协议很多,主要可分 为以下几类:
文件传输类:如HTTP(超文本传输协议)、 FTP(文件传输协议)、TFTP(简单文件传输 协议)。 远程登录类:如Telnet。 电子邮件类:如SMTP(简单邮件传输协议)、 POP(邮局协议)。 网络管理类:如SNMP(简单网络管理协议)、 DHCP(动态主机配置协议)。 域名解析类:如DNS(域名解析协议)
应用层协议虽然种类繁多,但它们有一个共同 的特点,都采用客户-服务器方式。客户 (client)和服务器(server)都是指通信中所 涉及的两个应用进程。客户-服务器方式都是指 通信中所涉及的两个应用进程。客户-服务器方 式描述的是进程之间服务和被服务的关系。客 户是服务请求方,服务器是服务提供方。客户 软件和服务器软件通常还具有以下一些主要特 点:
客户软件:
(1)在进行通信时临时成为客户,但它 也可在本地进行其他的计算。 (2)被用户调用并在用户的计算机上运 行,在打算通信时主动向远地服务器发 起通信。 (3)可与多个服务器进行通信。 (4)不需要特殊的硬件和很复杂的操作 系统。
服务器软件:
(1)是一种专门用来提供某种服务的程序, 可同时处理多个远地或本地客户的请求。 (2)在共享计算机上运行。当系统启动时即 自动调用并一直不断地运行着。 (3)被动地等待并接受来自多个客户的通信 请求。 (4)一般需要强大的硬件和高级的操作系统 支持。
图9-1给出客户和服务器进程的通信示意图。 功能较强的计算机可同时运行多个服务器 进程。
应用层 客户 运输层 网络层 数据链路层 物理层
客户发起连接建立请求 服务器接受连接建立请求
应用层 服务器 运输层 网络层 数据链路层 物理层
因特网
9.2域名解析协议DNS
9.2.1域名系统 20世纪70年代,Internet的前身ARPANET的规模比较小,它只由 几百台主机组成。美国的Menlepark的SRI网络信息中心的host.txt 文件就包含了所有主机的信息,同时也包括了连接到ARPANET上 每台主机的名字到主机IP地址的映射。Host.txt文件由SRI网络信 息中心负责进行维护。SRI网络信息中心每周更新数据一次到两 次,每次更
新后的数据由SRI网络信息中心的主机向外发送。 ARPANET管理人员也将它们的改动用E-mail发送给SRI网络信息中 心,同时定期从SRI网络信息中心的主机获取最新的host.txt文件。 但是随着ARPANET的增长,这种工作方式无法再维持下去。一方 面,host.txt 文件的大小随ARPANET的规模在增长,同时更新过 程所带来的通信量增长更快。这就带来了通信量、名字冲突与一 致性等一系列新的问题。
为此,1983年Internet开始采用层次结构 的命名树作为主机的名字,并使用域名 系统DNS(Domain Name System)。 Internet的域名系统DNS被设计成一个联 机分布式数据库系统,并采用客户-服务 器方式。DNS使大多数名字都在本地映 射,仅少量映射需要在Internet上通信, 这就使得系统的效率大大提高。
Internet采用层次树状结构的命名方法。任何一个连接 在Internet上的主机或路由器,都有惟一的层次结构的 名字,即域名(Domain Name)。域(Domain)是名 字空间中一个可被管理的划分。域还可以继续划分为 子域,如二级域、三级域等。 域名的结构由若干个分量组成,各分量之间用点隔开。 ….三级域名.二级域名.项级域名 每一级的域名都由英文字母和数字组成(不超过63个 字符,且不区分大小写).完整的域名不超过255个字 符。
Internet的域名结构如图9-2所 示。树根 顶级域名
… coop info biz aero com net org edu gov mil int cn uk … cctv … ibm hp mot 二级域名 … hk js sh bj org net gov edu com ac三级域名 四级域名mail
…
tsinghua pku fudan sjtu seu
mail csnetl ep
…
顶级域名有三大类:国家顶级域名、国际 顶级域名、通用顶级域名,表9-1中列出了 部分示例。类别 域名 .cn 国家顶级域名 .us .uk .ca 国际顶级域名 含义 中国 美国 英国 加拿大
.int.com .edu
国际性组织公司、企业 教育机构 政府部门 非赢利性组织 网络服务机构
通用顶级域名
.gov .org .net
9.2.2域名解析
虽然主机域名比IP地址更容易记忆,但 在通信时必须将其映射成能直接用于 TCP/IP协议通信的IP地址。这个将主机 域名映射为IP地址的过程叫域名解析。
域名解析有两个方向:从主机域名到IP地址的 正向解析;从IP地址到主机域名的反向解析。 域名的解析是由一系列的域名服务器来完成的。 域名服务器器是回答域名服务查询的计算机, 它允许为私人TCP/IP网络和连接公共Internet 的用户提供并管理DNS服务,维护DNS名字数 据并处理DNS客户端主机名的查询。DNS服务 器保存了包含主机名和相应IP地址的数据库, 例如,如果提供了名字,DNS服务 将返回新浪网站的IP地址202.106.184.200。域 名服务器提供服务的监听端口为
53。
域名解析过程是一个递归查询的过程。 下面用一个例子说明这个过程。
原始服务器 1 Filts.cs.vu.nl 8
Cs.vu 域名服务器 Cs.vu.nl
2
Edu 域名服务器
Yale 域名服务器 3 Yale.edu 6
4
CS.Yale 域名服务器 Cs.yale.edu
7
5
图9-3域名解析的递归查询过程
9.2文件传输协议
9.2.1文件传输协议FTP 文件传输协议FTP是TCP/IP提供的标准机 制,用来从一个主机把文件复制到另一 个主机。从一台计算机向另一台计算机 传送文件是在联网或互联网环境中最常 见的任务。
FTP与其他客户-服务器应用程序的不同就是它 在主机之间使用两条连接。一条连接用于数据 传送,而另一条则用于传送控制信息(命令和 响应)。把命令和数据的传送分开使得FTP的 效率更刘。控制连接使用非常简单的通信规则。 我们需要传送的只是一次一行命令或一行响应。 另一方面,数据传送需要更加复杂的规则,因 为要传送的数据类型比较多。 FTP使用两个熟知端口:端口21用作控制连接, 而端口20用于数据连接。
图9-4给出了FTP的基本模型。客户有三个构件: 用户接口、客户控制进程和客户数据传送进程。 服务器有两个构件:服务器控制进程和服务器数 据传送进程。控制连接是在控制进程之间进行的。 数据连接是在数据传送进程之间进行的。
在整个FTP会话中,控制连接始终是处于 连接状态。数据连接则是在每一次文件 传送时,先打开然后关闭。每当涉及到 传送文件的命令被使用时,数据连接就 被打开,而当数据传送完毕时连接就关 闭。换言之,当用户开始FTP会话时,控 制连接就打开。在控制连接处于打开状 态时,若传送多个文件,则数据连接可 以打开和关闭多次。
FTP一般都是交互式地工作。图9-5给出了 使用FTP时用户机器上显示出的信息。[01] ftp nic.ddn.mil [02] connected to nic.ddn.mil [03] 220 nic FTP server (Sunos 4.1)ready. [04] Name: anonymous [05] 331 Guest login ok, send ident as password. [06] Password: abc@xyz.math.yale.edu [07] 230 Guest login ok, access restrictions apply. [08] ftp> cd rfc [09] 250 CWD command successful. [10] ftp> get rfc1261.txt nicinfo [11] 200 PORT command successful. [12] 150 ASCII data connection for rfc1261.txt (128.36.12.27,1401) (4318 bytes). [13] 226 ASCII Transfer complete. local: nicinfo remote: rfc1261.txt 4488 bytes received in 15 seconds (0.3 Kbytes/s). [14] ftp> quit [15] 221 Goodbye.
9.2.2简单文件传送协议TFTP
简单文件传输协议(Trivial File Transfer Protocol ,TFTP)是一个简单而开销很小的文 件传送协议。与FTP协议相比,TFTP协议具有 以下特点: (1)TFTP按客户机/服务器模式工作,通信建 立在UDP运输服务之上。收发双方以512字节 大小
的带序号文件块为单位,依靠类似等待协 议的确认、超时和重传机制保证数据的到达。