740 likes | 877 Views
第 6 章 应用层. 计算机网络. 周继鹏. 应用层概述. 应用层的任务: 应用层是原理体系结构中的最高层,因此应用层的任务不是为上层提供服务,而是为最终用户提供服务。每个应用层协议都是为了解决某一类应用问题,而问题的解决又是通过位于不同主机中的多个进程之间的通信和协同工作来完成的。 应用进程: 为了解决具体的应用问题而彼此通信的进程就称为 “ 应用进程 ” 。而应用层的具体内容就是规定应用进程在通信时所遵循的协议 。
E N D
第6章 应用层 计算机网络 周继鹏
应用层概述 • 应用层的任务: 应用层是原理体系结构中的最高层,因此应用层的任务不是为上层提供服务,而是为最终用户提供服务。每个应用层协议都是为了解决某一类应用问题,而问题的解决又是通过位于不同主机中的多个进程之间的通信和协同工作来完成的。 • 应用进程:为了解决具体的应用问题而彼此通信的进程就称为“应用进程”。而应用层的具体内容就是规定应用进程在通信时所遵循的协议。 • 应用层的重要特点:就是它的"可扩展性"。某个具体的应用层协议所提供的服务往往不能满足用户所有的需要,在此情况下,协议的制定者必须为用户提供对协议进行扩展的手段,使得用户可通过二次开发来满足自己的特殊需求。
TCP/IP体系中应用进程的通信模式 • TCP/IP体系采用了客户-服务器模式使两个应用进程能够进行通信。 • 主要的特征:客户是主叫方,服务器是被叫方。 • 客户软件的特点: • 在进行通信时临时成为客户,但它也可在本地进行其他的计算。 • 被用户调用,在用户的PC机上运行,在打算通信时主动向远地服务器发起通信。 • 可与多个服务器进行通信。 • 不需要特殊的硬件和很复杂的操作系统 • 服务器软件的特点: • 是一种专门用来提供某种服务的程序,可同时处理多个远地客户的请求。 • 在共享计算机上运行。当系统启动时即自动调用,且不断地运行着。 • 被动地等待并接受来自多个客户的通信请求。 • 一般需要强大的硬件和高级的操作系统支持。
客户-服务器通信关系的建立 客户-服务器建立通信关系是客户首先发起连接建立请求,而服务器接受连接建立请求。客户与服务器的通信关系一旦建立,通信就可是双向的,客户和服务器都可以发送和接受信息。对于大多数的应用进程都是使用TCP/IP协议进行通信。 图: 客户进程和服务器进程使用TCP/IP协议进行通信
6.1 域名系统DNS (Domain Name System) • 域名系统概述 • 域名系统的概念:是Internet上解决网上机器命名的一种系统。采用它来管理名字和IP的对应关系. • 域名系统的实现:是一个客户/服务器模式实现的分布式的数据库系统。 • Internet域名:是Internet网络上的一个服务器或一个网络系统的名字,在全世界,没有重复的域名。域名的形式是以若干个英文字母和数字组成,由“.”分隔成几部分,如IBM.COM, EDU.CN,JNU.EDU.CN就是域名。
Internet的域名结构 • Internet的域名结构:是采用层次树状的划分和命名方法。名字空间中一个可被管理的划分(或分区)称为“域”,它表示树状域名空间中的一棵子树 ;这种划分使任一个连接在Internet网络上的一个网络系统,一个服务器或主机都有一个唯一的层次结构的名字,即“域名”,它表示树状域名空间中的一节点,称为相对域名。 • Internet的域名表示:树中每一节点的完整域名为从该节点到根之间路径上的相对域名(标签)序列, *.三级域名.二级域名.顶级域名。如 cs.stanford.edu 图: 域名空间的结构 图: 树型的域名系统
Internet的域名空间 • 目前顶级域名TLD(Top Level Domain)有三类: • 国家顶级域名nTDL: 采用ISO 3166规定。如: cn表示中国,us表示美国。 • 国际顶级域名iTDL: 采用int.国际性的组织可在int下注册。 • 通用顶级域名gTDL: 根据[RFC1591]规定,最早的顶级域名共六个, 如表1 。新增加了七个通用顶级域名,如表2.
我国的一些域名 • 我国的国家顶级域名:cn • 我国的二级域名分为两大类: • 类别域名和行政区域名 • 类别域名 • 学术、教育机构:ac,edu。如中国科学院 www.cas.ac.cn, www.edu.cn,www.jnu.edu.cn • 商业 公司、团体 :com。如中国企业家网www.co.com.cn, • 网络服务机构: net. 如中国互连网络中心(可注册域名)。www.cnnic.net.cn • 政府机构 :国务院www.gov.cn, 国家自然科学基金委员会www.nsfc.gov.cn, 广东省政府www.gd.gov.cn, • 行政区域名 • 行政区域名34个,用于我国的省,自治区,直辖市。如bj,sh, gd www.hdwuli.bj.cn,www.ylfzhj.bj.cn 海南 www.nanhai.gd.cn; 东莞 www.dongguan.gd.cn
… … … 顶级域名 aero com net org edu gov cn uk … … ibm cctv hp edu com bj 二级域名 … … 三级域名 mail www tsinghua pku … mail www 四级域名 因特网的域名空间 根
用域名服务器进行域名解析 • 域名服务器的作用:每一个域名服务器不但能进行一些域名到IP地址的解析,而且具有连接向其它域名服务器的信息。 • 本地域名服务器:也称为默认域名服务器,是一个单位拥有的,当一个主机发出DNS查询时,查询报文首先送到本地域名服务器。 • 根域名服务器:通常用来管辖顶级域(如.com, .edu)。根域名服务器并不直接对顶级域下面所属的域名进行转换,但它能找到下面的所有二级域名的域名服务器。
域abc.com 根域名服务器 管辖区 abc.com 管辖区 y.abc.com 管辖区 abc.com 的授权域名服务器 授权域名服务器 因特网允许各个单位根据具体情况将本单位的域名划分为若干个域名服务器管辖区(zone),并在各管辖区中设置相应的授权域名服务器。每一个主机都必须在授权域名服务器处注册登记。 com abc 管辖区 y.abc.com 的授权域名服务器 x y u v w t
根 org edu com 域 abc.com 区 y.abc.com abc 区 abc.com x y u v w t (b) 区 < 域 区的不同划分方法举例 根 org edu com 域 abc.com abc 区 abc.com x y u v w t (a) 区 = 域
树状结构的 DNS 域名服务器 根域名服务器 根域名服务器 … org 域名服务器 com 域名服务器 edu 域名服务器 顶级域名服务器 abc.com 域名服务器 abc 公司有两个 权限域名服务器 权限域名服务器 y.abc.com 域名服务器
域名服务器有以下四种类型 • 根域名服务器 • 顶级域名服务器 • 权限域名服务器 • 本地域名服务器
根域名服务器——最高层次的域名服务器—— • 根域名服务器是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和 IP 地址。 • 不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助于根域名服务器。 • 在因特网上共有13 个不同 IP 地址的根域名服务器,它们的名字是用一个英文字母命名,从a 一直到 m(前13 个字母)。
根域名服务器共有 13 套装置(不是 13 个机器) • 这些根域名服务器相应的域名分别是 a.rootservers.net b.rootservers.net … m.rootservers.net • 到 2006 年底全世界已经安装了一百多个根域名服务器机器,分布在世界各地。 • 这样做的目的是为了方便用户,使世界上大部分 DNS 域名服务器都能就近找到一个根域名服务器。
举例:根域名服务器 f 的地点分布图 共 40 个机器 • 根域名服务器并不直接把域名直接转换成 IP 地址。 • 在使用迭代查询时,根域名服务器把下一步应当找 • 的顶级域名服务器的 IP 地址告诉本地域名服务器。
域名服务器 • 顶级域名服务器负责管理在该顶级域名服务器注册的所有二级域名。 • 当收到 DNS 查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的 IP 地址)。 • 权限域名服务器负责一个区的域名服务器。 • 当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的 DNS 客户,下一步应当找哪一个权限域名服务器。
本地域名服务器 • 本地域名服务器对域名系统非常重要。 • 当一个主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。 • 每一个因特网服务提供者 ISP,或一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器, • 这种域名服务器有时也称为默认域名服务器。
提高域名服务器的可靠性 • DNS 域名服务器都把数据复制到几个域名服务器来保存,其中的一个是主域名服务器,其他是辅助域名服务器。 • 当主域名服务器出故障时,辅助域名服务器可以保证 DNS 的查询工作不会中断。 • 主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性。
“树根” .edu 顶级 域名服务器 dns.com com .com 顶级 域名服务器 edu xyz abc ② ⑦ 因特网 ③ ⑥ abc 本地域名服务器 dns.xyz.com 授权域名服务器 xyz 本地域名服务器 dns.abc.com 授权域名服务器 … … y x ⑧ u v w ① ④ ⑤ t.y.abc.com 的IP地址是什么? 本地域名服务器 dns.y.abc.com 授权域名服务器 y m.xyz.com … … t.y.abc.com • 当某个名字服务器找不到所需的IP地址的主机名时,就将地址转换请求向着树根的方向传给上一级的名字服务器。这样一直找下去(在最坏的情况下是经过命名树的根结点),最后就能将所需的主机名字找到。 域名转换的递归查询
名字的高速缓存 • 使用名字的高速缓存可优化查询的开销。 • 每个域名服务器都维护一个高速缓存,存放最近用过的名字以及从何处获得名字映射信息的记录。 • 当客户请求域名服务器转换名字时,服务器首先按标准过程检查它是否被授权管理该名字。 • 若未被授权,则查看自己的高速缓存,检查该名字是否最近被转换过。 • 域名服务器向客户报告缓存中有关名字与地址的绑定(binding)信息,并标志为非授权绑定,以及给出获得此绑定的服务器 S 的域名。 • 本地服务器同时也将服务器 S 与 IP 地址的绑定告知客户。
Internet最常用的几个服务 • 远程登录(Telnet):远程, 登录,仿真终端,共享工具 • 电子邮件(Email):电子邮件的收发, 编辑和处理 • 文件传输(FTP):数据互传. • 万维网WWW(World Wide Web):分布式超媒体链接HTML • 新闻组(Newsgroup):提供新闻、信息、交谈、评论等信息资源 • 电子广告牌BBS(Bulletin Board System): 信息发布、谈天交流、分类讨论,可用Telnet或浏览器(IE)访问BBS: • 交谈工具,icq,talk以计算机网络为传输媒体,进行实时交谈. • 广域信息系统(WAIS:Wide Area Information Services):WAIS是一个分布式文本搜索系统,WAIS信息库内容丰富,涉及面广,从各类文档到各类专业文档库
6.2 文件传送协议 • TCP/IP的一个重要的应用是文件的传送。目前有三个主要的协议能用来把文件从一个主机传送到另一个主机: • 文件传送协议FTP(File Transfer Protocol) • 简单文件传送协议TFTP(Trivial File Transfer Protocol) • 网络文件系统NFS(Network File System) • 文件传送协议(FTP) • 文件传送协议FTP是Internet上使用得最广泛的文件传送协议。FTP的主要目的是允许文件从一个主机传送到另一个主机。 • FTP是基于TCP协议的文件传输。与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。
FTP要考虑的问题 网络环境下复制文件的复杂性: (1) 计算机存储数据的格式不同。 (2) 文件的目录结构和文件命名的规定不同。 (3) 对于相同的文件存取功能,操作系统使用的命令不同。 (4) 访问控制方法不同。
FTP 特点 • 文件传送协议 FTP 使用 TCP 可靠的运输服务。 • FTP 的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。 • FTP 使用客户服务器方式。一个 FTP 服务器进程可同时为多个客户进程提供服务。FTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。 • FTP 使用服务器的熟知端口号为 21,使客户进程能够连接上。服务器进程用自己传送数据的熟知端口(20)与客户进程所提供的端口号码建立数据传送连接。 • 由于FTP使用了两个不同的端口号,所以数据连接与控制连接不会发生混乱
客户系统 服务器系统 客户数据连接 数据 传送 控制 客户控制连接 客户数据连接 数据 传送 控制 客户控制连接 操作系统 操作系统 Internet • FTP的两种用户类型: • 指定用户:用户ID(userid)和口令(password)。 • 匿名用户(anonymous user):用户ID必须是 anonymous • FTP的主要工作原理 图:FTP使用的两个TCP连接
FTP & Anonymous FTP Software Program Anonymous FTP Server ftp.pku.edu.cn README ftp ftp.pku.edu.cn Username:anonymous Password:test@pku.edu.cn
简单文件传送协议TFTP • 简单文件传送协议TFTP(Trivial File Transfer Protocol) 是一个很小且易于实现的文件传送协议。 • 简单文件传送协议TFTP的优点是: • TFTP可用于UDP环境。 • TFTP代码所占的内存较小。 • 简单文件传送协议TFTP的主要特点是: • 每次传送的数据PDU中有512字节的数据,但最后一次可不足512字节; • 数据PDU也称为文件块,每个块按序编号,从1开始。 • 支持ASCII码或二进制传送。 • 可对文件进行读或写。 • 使用很简单的首部。 • TFTP的工作原理 • TFTP的工作很像停止等待协议。发送完一个文件块后就等待对方的确认。发完数据后在规定时间内收不到确认就要重发数据PDU。发送确认的一方若在规定时间内收不到下一个文件块,也要重发确认PDU。这样就可保证文件的传送不致因某一个数据报的丢失而告失败。
网络文件系统NFS(Network File System) • 网络文件系统NFS的主要特点 • 网络文件系统NFS除了实现文件和目录共享外,还允许应用进程打开一个远地文件,并能够在该文件的某一个特定的位置上开始读写数据。 • 远程过程调用RPC • NFS由三个独立的部分组成,即:NFS协议本身,通用的远程过程调用RPC(Remote Procedure Call ),通用的外部数据表示XDR(eXternal Data Representation)。 RPC的组成:任何RPC系统都有一些主要的操作元素,包括: • 客户主应用程序 • 协议语言(Protocol Language) • 协议编译器(Protocol Compiler) • 客户存根(stub)过程 • 服务器(存根)程序 • 服务器过程 • 数据表示标准 • 目录服务
RPC的操作过程 一个典型的RPC环境。同其他的TCP/IP应用一样,RPC也应用了客户/服务器模型。 图: RPC的操作过程
6.3 远程登陆Telnet (Telecommunication Network protocol) • 远程登陆Telnet是一个简单的远程终端协议。 • 用户用Telnet就可以在所在地通过TCP连接(即登录)到远地的另一台主机上(使用主机名或IP地址)。有两种登录命令,telnet,relogin(为Berkeley UNIX而开发的) • 如:telnet bbs.zsu.edu.cn, (中山大学BBS) • telnet smth.org (清华BBS) • Telnet也使用客户/服务器模式
Telnet 加州大学 曁南大学 Internet Username: Password: Telnet Server
Telnet功能 Telnet在功能上,是模拟成远端一部电脑系统的终端机,称为网络虚拟终端NVT(Network virtual Terminal),通过网络连线载入该电脑系统,可以执行该电脑系统的任何程序。 因特网 服务器端 客户端 TCP 连接 客户 服务器 使用客户端的格式 使用 NVT 格式 使用服务器端的格式 图: TELNET使用示意图
网络虚拟终端 NVT 格式 • 客户软件把用户的击键和命令转换成 NVT 格式,并送交服务器。 • 服务器软件把收到的数据和命令,从 NVT 格式转换成远地系统所需的格式。 • 向用户返回数据时,服务器把远地系统的格式转换为 NVT 格式,本地客户再从 NVT 格式转换到本地系统所需的格式。
Telnet的工作原理 • 客户端运行Telnet • 建立与服务器端的TCP连接 • 接收用户的输入命令及其他信息; • 将命令及信息处理; • 将相关信息通过TCP 发送给服务器端; • 接收服务器端返回的信息并做相应处理如显示。 • 服务器端不间断地运行服务程序Telnetd • 通知正在准备接受连接的网络软件,服务作业已进入就续状态; • 网络软件建立与客户机的TCP连接; • 等候以标准格式出现的服务请求; • 对到来的服务请求命令给予执行; • 把服务结果按标准格式回送给客户机; • 继续等待服务。
Telnet的命令格式 telnet [remote-system] [port-number] telnet:命令名;remote-system:主机名或IP地址;port-number: 端口号:缺省是23。 • 启动客户程序例 • $telnet pubms.pku.edu.cn (主机名) • $telnet 202.112.7.7 (IP地址) • $telnet <r> (命令格式) • telnet>open pubms.pku.edu.cn <r> (用内部命令open操作) • telnet>open 202.112.7.7 <r> (用内部命令open操作) • 输入用户名(User-ID)和口令(Password) • login: • password: • 在远程机(服务器)提示符下,本地机(客户机)输入远程系统命令, • 退出连接 • 完成任务后,退出连接。 • 在远程系统提示符下键入命令,exit,logout或^D
6.4 电子邮件(Email) • 6.4.1 电子邮件概述: • 电子邮件是最流行的Internet应用。电子邮件是人们在Internet上最先使用的服务。 • 电子邮件系统有它自己的独特之处:方便性,快捷性,廉价性 • 1982年制定了简单邮件传输协议SMTP(Simple Mail Transfer Protocol),只能传送ASCII文件。 • 1993年制定了新的电子邮件标准通用Internet邮件扩充MIME(multipurpose Internet Mail Extensions),能传送文本,声音,图像等。 • 1993年制定了允许用户对电子邮件信箱进行远程存取的协议POP(Post Office Protocol).它是专门开发来适应用户代理和邮件服务器分开这种新的需求的。 • 其中SMTP是发送邮件的协议, POP3 和 IMAP是读取邮件的协议
电子邮件的主要构件 • 用户代理(UA:User Agent)又称为邮件阅读器:编辑、发送、阅读和管理电子邮件。 • 传输代理(MTA :Message Transfer Agent)又称为邮件服务器:起“邮局” 作用,接收用户邮件,根据地址传输,传送到接收方的邮件服务器,并将邮件存放在用户邮箱内。 (读取邮件) (发送邮件) (发送邮件) 用 户 代 理 用 户 代 理 SMTP POP3 邮件 服务器 邮件 服务器 SMTP (TCP 连接) (TCP 连接) (TCP 连接) (发送邮件) 用户邮箱 (读取邮件) SMTP 接收方 POP3 (发送邮件) SMTP 因特网 用户代理 用户代理 邮件缓存 发送端 邮件服务器 接收端 邮件服务器
电子邮件工作模式 邮件服务器之间采用存储转发的工作方式 邮件服务器之间是通过简单邮件传输协议(SMTP)进行对话,TCP端口号为25。 发送邮件时,邮件阅读器就通过和邮件服务器建立SMTP连接,将编辑好的邮件发给邮件服务器; 读取邮件时,邮件阅读器则和邮件服务器通过建立POP连接,将邮件从邮件服务器上读取到本地计算机上。
Mail Server POP3 邮件传输代理 MDA/MTA 用户代理 UA 要发送的 邮件队列 发送者 POP3 hotmail FocMail Outlook SMTP Internet POP3 TCP连接 邮件传输代理 MDA/MTA 接收者 要发送的 邮件队列 用户代理 UA POP3 Mail Server SMTP
6.4.2 简单邮件传送协议 SMTP • SMTP 所规定的就是在两个相互通信的 SMTP 进程之间应如何交换信息。 • 由于 SMTP 使用客户服务器方式,因此负责发送邮件的 SMTP 进程就是 SMTP 客户,而负责接收邮件的 SMTP 进程就是 SMTP 服务器。 • SMTP 规定了 14 条命令和 21 种应答信息。每条命令用 4 个字母组成,而每一种应答信息一般只有一行信息,由一个 3 位数字的代码开始,后面附上(也可不附上)很简单的文字说明。
SMTP 通信的三个阶段 1. 连接建立:连接是在发送主机的 SMTP 客户和接收主机的 SMTP 服务器之间建立的。SMTP不使用中间的邮件服务器。 2. 邮件传送 3. 连接释放:邮件发送完毕后,SMTP 应释放 TCP 连接。
6.4.3 邮件读取协议POP3 和 IMAP • 邮局协议POP是一个非常简单、但功能有限的邮件读取协议,现在使用的是它的第三个版本 POP3。 • POP也使用客户服务器的工作方式。 • 在接收邮件的用户PC机中必须运行POP客户程序,而在用户所连接的ISP的邮件服务器中则运行POP服务器程序。
IMAP 协议(Internet Message Access Protocol) • IMAP 也是按客户服务器方式工作,现在较新的是版本 4,即 IMAP4。 • 用户在自己的 PC 机上就可以操纵 ISP 的邮件服务器的邮箱,就像在本地操纵一样。 • 因此 IMAP 是一个联机协议。当用户 PC 机上的 IMAP 客户程序打开 IMAP 服务器的邮箱时,用户就可看到邮件的首部。若用户需要打开某个邮件,则该邮件才传到用户的计算机上。
IMAP 的特点 • IMAP最大的好处就是用户可以在不同的地方使用不同的计算机随时上网阅读和处理自己的邮件。 • IMAP 还允许收件人只读取邮件中的某一个部分。例如,收到了一个带有视像附件(此文件可能很大)的邮件。为了节省时间,可以先下载邮件的正文部分,待以后有时间再读取或下载这个很长的附件。 • IMAP 的缺点是如果用户没有将邮件复制到自己的 PC 机上,则邮件一直是存放在 IMAP 服务器上。因此用户需要经常与 IMAP 服务器建立连接。
6.4.5 基于万维网的电子邮件 • 电子邮件从 A 发送到网易邮件服务器是使用 HTTP 协议。 • 两个邮件服务器之间的传送使用 SMTP。 • 邮件从新浪邮件服务器传送到 B 是使用 HTTP 协议。 网易邮件服务器 mail.163.com 新浪邮件服务器 mail.sina.com.cn B A HTTP HTTP SMTP
6.4.6 通用因特网邮件扩充 MIME SMTP 有以下缺点: • SMTP 不能传送可执行文件或其他的二进制对象。 • SMTP 限于传送 7 位的 ASCII 码。许多其他非英语国家的文字(如中文、俄文,甚至带重音符号的法文或德文)就无法传送。 • SMTP 服务器会拒绝超过一定长度的邮件。 • 某些 SMTP 的实现并没有完全按照[RFC 821]的 SMTP 标准。
MIME 的特点 • MIME 并没有改动 SMTP 或取代它。 • MIME 的意图是继续使用目前的[RFC 822]格式,但增加了邮件主体的结构,并定义了传送非 ASCII 码的编码规则。