340 likes | 484 Views
第十二讲 应用层(一). 本讲主要内容. 应用层概述 域名解析协议 DNS 文件传输协议 远程终端协议 Telnet. 9.1 应用层概述. 应用层是网络体系统结构的 最高层 。 应用层的任务 是为最终用户提供服务。每一种应用层协议都是为了解决某一类问题,而每一个问题都对应一个应用程序,在应用层中运行的每一个应用程序称为一个 应用进程 。而应用层的具体内容就是规定应用进程在通信时所遵循的 协议 。. 应用层中协议很多,主要可分为以下几类:. 文件传输类 :如 HTTP (超文本传输协议)、 FTP (文件传输协议)、 TFTP (简单文件传输协议)。
E N D
本讲主要内容 • 应用层概述 • 域名解析协议DNS • 文件传输协议 • 远程终端协议Telnet
9.1应用层概述 • 应用层是网络体系统结构的最高层。 • 应用层的任务是为最终用户提供服务。每一种应用层协议都是为了解决某一类问题,而每一个问题都对应一个应用程序,在应用层中运行的每一个应用程序称为一个应用进程。而应用层的具体内容就是规定应用进程在通信时所遵循的协议。
应用层中协议很多,主要可分为以下几类: • 文件传输类:如HTTP(超文本传输协议)、FTP(文件传输协议)、TFTP(简单文件传输协议)。 • 远程登录类:如Telnet。 • 电子邮件类:如SMTP(简单邮件传输协议)、POP(邮局协议)。 • 网络管理类:如SNMP(简单网络管理协议)、DHCP(动态主机配置协议)。 • 域名解析类:如DNS(域名解析协议)
客户-服务器方式 • 应用层协议虽然种类繁多,但它们有一个共同的特点,都采用客户-服务器方式。客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。 • 客户-服务器方式都是指通信中所涉及的两个应用进程。客户-服务器方式描述的是进程之间服务和被服务的关系。客户是服务请求方,服务器是服务提供方。
客户软件和服务器软件通常还具有以下一些主要特点: 客户软件: • 在进行通信时临时成为客户,但它也可在本地进行其他的计算。 • 被用户调用并在用户的计算机上运行,在打算通信时主动向远地服务器发起通信。 • 可与多个服务器进行通信。 • 不需要特殊的硬件和很复杂的操作系统。
客户软件和服务器软件通常还具有以下一些主要特点: 服务器软件: • 是一种专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。 • 在共享计算机上运行。当系统启动时即自动调用并一直不断地运行着。 • 被动地等待并接受来自多个客户的通信请求。 • 一般需要强大的硬件和高级的操作系统支持。
9.2 域名解析协议DNS9.2.1域名系统 • 20世纪70年代,Internet的前身ARPANET的规模比较小,它只由几百台主机组成。美国的Menlepark的SRI网络信息中心的host.txt文件就包含了所有主机的信息,同时也包括了连接到ARPANET上每台主机的名字到主机IP地址的映射。 • 但是随着ARPANET的增长,这种工作方式无法再维持下去。一方面,host.txt 文件的大小随ARPANET的规模在增长,同时更新过程所带来的通信量增长更快。这就带来了通信量、名字冲突与一致性等一系列新的问题。
域名系统DNS被启用 • 为此,1983年Internet开始采用层次结构的命名树作为主机的名字,并使用域名系统DNS(Domain Name System)。 • Internet的域名系统DNS被设计成一个联机分布式数据库系统,并采用客户-服务器方式。DNS使大多数名字都在本地映射,仅少量映射需要在Internet上通信,这就使得系统的效率大大提高。
Internet采用层次树状结构的命名方法 • 任何一个连接在Internet上的主机或路由器,都有惟一的层次结构的名字,即域名(Domain Name)。域(Domain)是名字空间中一个可被管理的划分。域还可以继续划分为子域,如二级域、三级域等。 • 域名的结构由若干个分量组成,各分量之间用点隔开。 ….三级域名.二级域名.项级域名 • 每一级的域名都由英文字母和数字组成(不超过63个字符,且不区分大小写).完整的域名不超过255个字符。
顶级域名有三大类:国家顶级域名、国际顶级域名、通用顶级域名,表9-1中列出了部分示例。顶级域名有三大类:国家顶级域名、国际顶级域名、通用顶级域名,表9-1中列出了部分示例。
9.2.2域名解析 • 虽然主机域名比IP地址更容易记忆,但在通信时必须将其映射成能直接用于TCP/IP协议通信的IP地址。这个将主机域名映射为IP地址的过程叫域名解析。 • 域名解析有两个方向: • 从主机域名到IP地址的正向解析; • 从IP地址到主机域名的反向解析。
域名服务器 • 域名的解析是由一系列的域名服务器来完成的。 • 域名服务器是回答域名服务查询的计算机,它允许为私人TCP/IP网络和连接公共Internet的用户提供并管理DNS服务,维护DNS名字数据并处理DNS客户端主机名的查询。 • DNS服务器保存了包含主机名和相应IP地址的数据库,例如,如果提供了名字sina.com.cn,DNS服务将返回新浪网站的IP地址202.106.184.200。 • 域名服务器提供服务的监听端口为53。
② ⑦ ③ ⑥ ⑧ ① ④ ⑤ t.y.abc.com 的IP地址是什么? 域名解析过程是一个递归查询的过程 “树根” .edu顶级 域名服务器 dns.com com .com顶级 域名服务器 edu xyz abc 因特网 abc 本地域名服务器 dns.xyz.com 授权域名服务器 xyz 本地域名服务器 dns.abc.com 授权域名服务器 … … y x u v w 本地域名服务器 dns.y.abc.com 授权域名服务器 y m.xyz.com … … t.y.abc.com
9.2文件传输协议 • 9.2.1文件传输协议FTP • 文件传输协议FTP是TCP/IP提供的标准机制,用来从一个主机把文件复制到另一个主机。从一台计算机向另一台计算机传送文件是在联网或互联网环境中最常见的任务。
FTP使用两条连接 • FTP与其他客户-服务器应用程序的不同就是它在主机之间使用两条连接。一条连接用于数据传送,而另一条则用于传送控制信息(命令和响应)。把命令和数据的传送分开使得FTP的效率更刘。控制连接使用非常简单的通信规则。我们需要传送的只是一次一行命令或一行响应。另一方面,数据传送需要更加复杂的规则,因为要传送的数据类型比较多。 • FTP使用两个熟知端口:端口21用作控制连接,而端口20用于数据连接。
图9-4给出了FTP的基本模型。客户有三个构件:用户接口、客户控制进程和客户数据传送进程。服务器有两个构件:服务器控制进程和服务器数据传送进程。控制连接是在控制进程之间进行的。数据连接是在数据传送进程之间进行的。图9-4给出了FTP的基本模型。客户有三个构件:用户接口、客户控制进程和客户数据传送进程。服务器有两个构件:服务器控制进程和服务器数据传送进程。控制连接是在控制进程之间进行的。数据连接是在数据传送进程之间进行的。
两个连接的工作状态 • 在整个FTP会话中,控制连接始终是处于连接状态。 • 数据连接则是在每一次文件传送时,先打开然后关闭。每当涉及到传送文件的命令被使用时,数据连接就被打开,而当数据传送完毕时连接就关闭。 • 换言之,当用户开始FTP会话时,控制连接就打开。在控制连接处于打开状态时,若传送多个文件,则数据连接可以打开和关闭多次。
FTP一般都是交互式地工作。图9-5给出了使用FTP时用户机器上显示出的信息。FTP一般都是交互式地工作。图9-5给出了使用FTP时用户机器上显示出的信息。
9.2.2简单文件传送协议TFTP • 简单文件传输协议(Trivial File Transfer Protocol ,TFTP)是一个简单而开销很小的文件传送协议。与FTP协议相比,TFTP协议具有以下特点: • (1)TFTP按客户机/服务器模式工作,通信建立在UDP运输服务之上。收发双方以512字节大小的带序号文件块为单位,依靠类似等待协议的确认、超时和重传机制保证数据的到达。
TFTP协议具有以下特点: • (2)TFTP不像FTP一样支持交互,而只能支持最基本的文件传输,因此用户不能通过列目录或向服务器发出询问来确定可得到哪些文件。另外,TFTP不支持存取权限,用户不需要用户帐号和口令,但只能存取全局共享的文件。 • (3)TFTP在设计时是用于小文件传输的,它对内存和处理器的要求很低,速度快。TFTP代码所占的内存比FTP小。
TFTP协议具有以下特点: • TFTP的适用范围不像FTP那么广泛,目前,TFTP多用于交换机、路由器等设备Internet网络操作系统镜像和配置文件的备份和升级。
9.3 远程终端协议Telnet • 在分布式计算环境中,常常需要调用远程计算机资源同本地计算机协同工作,这样,就可以用多台计算机来共同完成一个较大的任务。协同操作的工作方式要求用户能够登录到远程计算机中,启动某个进程,并使进程之间能够相互通信。 • 为了达到这个目的,人们开发了远程终端协议(Telnet协议)。Telnet协议是TCP/IP协议族的一部分,它定义了客户机与远程服务器之间的交互过程。
仿真终端 • 远程登录服务是用户使用Telnet命令,使自己的计算机暂时成为远程计算机的一个仿真终端的过程。一旦用户成功地实现了远程登录,用户的计算机就可以像一台与远程计算机直接相连的本地终端一样工作。
远程登录服务采用的是典型的客户-服务器模式,它的工作原理如图9-6所示。 图9-6 Telnet工作原理
Telnet客户程序 • 当用Telnet登录进入远程计算机系统时,事实上启动了两个程序,一个叫Telnet客户程序,它运行在本地机上,另一个叫Telnet服务器程序,它运行在要登录的远程计算机上,本地机上的客户程序要完成如下功能: • (1)建立与服务器的TCP连接。 • (2)从键盘上接收输入的字符。 • (3)把输入的字符串变成标准模式并送给远程服务器。 • (4)从远程服务器接收输出的信息。 • (5)把该信息显示在屏幕上。
Telnet服务器程序 • 远程计算机的“服务”程序,一旦接到你的请求,它马上活动起来,并完成如下功能: • (1)通知计算机,远程计算机已经准备好了。 • (2)等候输入命令。 • (3)对命令作出反应(如显示目录内容,或执行某个程序等)。 • (4)把执行命令的结果送回给计算机。 • (5)重新等候命令。
当运行远程登录时,应首先运行Telnet程序进行联机,有两种运行Telnet的方法:当运行远程登录时,应首先运行Telnet程序进行联机,有两种运行Telnet的方法: 1.运行telnet的第一种方法: • 输入下列命令,并以回车换行结束(下同) 。 • 命令格式:telnet 主机网络地址 端口号(默认可缺省) • 例如:假设用户要连接一台名叫dns的计算机,它的网络地址为dns.hunu.edu.cn, IP地址为202.197.96.1,则连接时应输入命令telnet dns.hunu.edu.cn或telnet 202.197.96.1。
1.运行telnet的第一种方法: • 如果用户要登录的主机与用户的计算机在同一个本地网上,通常可以只输入主机的名字,而不用输入完整的地址,例如上例可以输入: • 命令:telnet dns
2.运行telnet程序的第二种方法: • 输入命令:telnet • 此时程序运行,但并未进行连接(因未指明主机) • 然后屏幕显示:telnet> • 这是telnet的提示符,它表明telnet程序已经运行,并正在等待用户输入使用telnet的命令,如要连接一台远程主机,则使用open命令,即输入命令open,并附上该主机的网络地址,如 • telnet> open dns.hunu.edu.cn
2.运行telnet程序的第二种方法: • 假如Telnet的运行不能与主机确定连接,则用户将会看到主机找不到的信息。例如,假设用户想要连接的远程主机为nipper.com,而用户的输入为: • telnet nippet.com • 则在屏幕上用户将会看到: • nippet.com: unknown host • telnet>
小结 • 应用层协议大多采用客户-服务器模式 • 域名解析协议DNS • 域名 域名解析 域名服务器 • 文件传输协议 • FTP TFTP • 远程终端协议Telnet • 使用方法