1.74k likes | 1.86k Views
计算机网络. 王占全 zhqwang@ecust.edu.cn. application transport network data link physical. application transport network data link physical. application transport network data link physical. 第 8 章 应用层. 应用程序:互相通信的分布的进程 在网络主机上的用户空间运行 互相交换消息 比如 email、ftp 和 web 应用层协议 应用程序的一部分
E N D
计算机网络 王占全 zhqwang@ecust.edu.cn
application transport network data link physical application transport network data link physical application transport network data link physical 第8章 应用层 • 应用程序:互相通信的分布的进程 • 在网络主机上的用户空间运行 • 互相交换消息 • 比如email、ftp和web • 应用层协议 • 应用程序的一部分 • 定义应用程序直接交换的信息以及相应的动作 • 利用底层协议提供的服务 华东理工大学计算机科学与工程系
应用层是网络体系结构的最高层,Internet技术的发展极大地丰富了应用层的内容,如:DNS,FTP,EMAIL,WWW,TELNET,FTFP,SNMP,SMTP,RPC等的发展应用层是网络体系结构的最高层,Internet技术的发展极大地丰富了应用层的内容,如:DNS,FTP,EMAIL,WWW,TELNET,FTFP,SNMP,SMTP,RPC等的发展
本章学习要求: • TCP/IP协议栈与应用层协议之间的关系 • 域名系统的基本工作原理 • 电子邮件的基本工作原理 • 文件传输FTP的基本工作原理 • WWW服务的基本工作原理 • TELNET的基本工作原理 • 应用层协议的分析方法 华东理工大学计算机科学与工程系
Multimedia Dynamic WWW Static WWW FTP and Telnet E-Mail and News Other Internet上的信息趋于交互 To Transactional Pages (Red) andAudio/Video Content (Purple) 2% 100% 7% 7% 14% 16% 80% 27% 28% 23% 60% 15% 40% 39% 23% 12% 20% 17% 18% 17% 14% 13% 0% 8% 1998 2000 1996 华东理工大学计算机科学与工程系 Source: The Yankee Group, 2000
8.1 应用层协议与低层协议的关系 8.1.1 主要的应用层协议 • 网络终端协议Telnet • 文件传输协议FTP • 简单邮件传输协议SMTP • 域名系统DNS • 简单网络管理协议SNMP • 超文本传输协议HTTP 华东理工大学计算机科学与工程系
应用层协议的特点 • 每个应用层协议都是为了解决某一类应用问题,而问题的解决又往往是通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。应用层的具体内容就是规定应用进程在通信时所遵循的协议。 • 应用层的许多协议都是基于客户服务器方式。客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户服务器方式所描述的是进程之间服务和被服务的关系。客户是服务请求方,服务器是服务提供方。 华东理工大学计算机科学与工程系
8.1.2 TCP/IP协议族及之间的关系 华东理工大学计算机科学与工程系
应用层协议类型划分 • 它可以划分为三种类型: • 依赖于面向连接的TCP协议,如TELNET,SMTP,FTP,HTTP,EMAIL等; • 依赖于无面向连接的UDP协议,如SNMP,TFTP等; • 既依赖于TCP协议,又依赖于UDP协议,如DNS。 华东理工大学计算机科学与工程系
8.2 域名系统DNS 8.2.1 域名系统的基本概念 1.为什么有了IP地址,还需要域名? • 域 名— 用字符表示的网络主机名,是一种主机标识符; • IP地址—数字型,难于记忆与理解; 域 名—字符型,直观,便于记忆与理解; • IP地址— 用于网络层; 域 名— 用于应用层; • IP地址与域名都应该是全网唯一的,并且它们之间具有对应关系。 华东理工大学计算机科学与工程系
域名系统续 • 许多应用层软件经常直接使用域名系统DNS (Domain Name System) 。 • 因特网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统 DNS。 • 名字到域名的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。 华东理工大学计算机科学与工程系
2. Internet域名结构 • TCP/IP协议中规定的层次型名字管理机制叫做域名系统; • 域名系统将整个Internet划分为多个顶级域,并为每个顶级域规定了通用的顶级域名; • Internet主机域名的一般格式为: 华东理工大学计算机科学与工程系
因特网的域名结构续 • 因特网采用了层次树状结构的命名方法。 • 任何一个连接在因特网上的主机或路由器,都有一个惟一的层次结构的名字,即域名。 • 域名的结构由若干个分量组成,各分量之间用点隔开: ….三级域名.二级域名.顶级域名 • 如: ecust.edu.cn • 各分量分别代表不同级别的域名。 华东理工大学计算机科学与工程系
顶级域名 TLD (Top Level Domain) (1) 国家顶级域名 nTLD:如: .cn 表示中国,.us 表示美国,.uk 表示英国,等等。 (2) 国际顶级域名 iTLD:采用.int。国际性的组织可在 .int 下注册。 (3) 通用顶级域名 gTLD:最早的顶级域名是: .com 表示公司企业 .net 表示网络服务机构 .org 表示非赢利性组织 .edu 表示教育机构(美国专用) .gov 表示政府部门(美国专用) .mil 表示军事部门(美国专用) 华东理工大学计算机科学与工程系
新增加了七个通用顶级域名 • .aero 用于航空运输企业 • .biz 用于公司和企业 • .coop 用于合作团体 • .info 适用于各种情况 • .museum 用于博物馆 • .name 用于个人 • .pro 用于会计、律师和医师等自由职业者 华东理工大学计算机科学与工程系
因特网的名字空间 树根 顶级域名 … … coop info biz aero com net org edu gov mil int cn uk … cctv hp mot ibm 二级域名 … hk js sh bj net gov edu com ac org … mail 三级域名 tsinghua fudan …… pku ecust … mail csnetl ep 四级域名 华东理工大学计算机科学与工程系
8.2.2 域名服务器的层次结构 1.域名服务器的基本工作原理 • 域名系统的一个主要特点是允许区域自治; • 域名系统在设计了层次的域名的同时,提出了与其相对应的域名服务器系统; • 整个域名系统是以一个大型的分布式数据库的方式工作的; • 大多数具有Internet连接的组织都有一个域名服务器,每个服务器包含连向其他域名服务器的信息,这些服务器形成了一个大的协同工作的域名数据库 。 华东理工大学计算机科学与工程系
2.域名服务器的层次 • DNS服务器的层次是与域名的层次相适应的; • 每一个域名服务器都只对域名体系中的一部分进行管辖; • 一个根服务器(root server)在这个层次体系的顶部,它是顶层域的管辖者; • DNS服务器的层次对应着域名的层次,但是这两者并不是对等的。一个公司网络或校园网可以选择将它所有的域名都放在一个域名服务器上,也可以选择运行几个域名服务器。 华东理工大学计算机科学与工程系
域abc.com 根域名服务器 管辖区 abc.com 管辖区 y.abc.com 管辖区 abc.com 的授权域名服务器 授权域名服务器 • 因特网允许各个单位根据具体情况将本单位的域名划分为若干个域名服务器管辖区(zone),并在各管辖区中设置相应的授权域名服务器。 com abc 管辖区 y.abc.com 的授权域名服务器 x y u v w t 华东理工大学计算机科学与工程系
8.2.3 域名解析 1.域名解析的基本工作原理 • 将域名转换为对应的IP地址的过程称为域名解析; • 完成该功能的软件叫域名解析器; • 每个本地域名服务器配置一个域名解析器软件; • 由于每个服务器都知道根服务器的地址,因此无论经过几步查询,在域名树中最终总会找出正确的解析结果。 华东理工大学计算机科学与工程系
2.域名解析算法 • 递归解析 • 反复解析 华东理工大学计算机科学与工程系
递归解析要求名字服务器系统一次性完成全部名字—地址变换;递归解析要求名字服务器系统一次性完成全部名字—地址变换; • 反复解析是每次请求一个服务器,如果不行再请求别的服务器; • 递归解析的任务主要是由服务器软件承担; • 反复解析的任务主要是由域名解析器软件承担。 华东理工大学计算机科学与工程系
② ⑦ ③ ⑥ ⑧ ① ④ ⑤ t.y.abc.com 的IP地址是什么? 递归查询 “树根” dns.com com .com 顶级 域名服务器 .edu 顶级 域名服务器 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
③ ② ⑤ ④ ⑦ ⑥ ⑧ ① IP(t.y.abc.com) = (198.54.23.15) IP(t.y.abc.com)=? 递归的查询续 根域名服务器 dns.com 本地域名服务器 dns.y.abc.com 本地域名服务器 dns.abc.com 本地域名服务器 dns.xyz.com t.y.abc.com m.xyz.com 华东理工大学计算机科学与工程系
域名解析中客户与服务器的交互过程 华东理工大学计算机科学与工程系
8.2.4 域名系统性能优化 • 复制与缓存 1.复制 • 每个根服务器的许多副本存在于世界各地; • 当一个新的子网加入Internet时,它在本地的DNS服务器中配置一个根服务器表; • 本地的DNS服务器可以为本网用户的域名服务选择响应最快的根服务器; • 在实际应用中,地理上最近的域名服务器往往响应最好。 华东理工大学计算机科学与工程系
2.缓存 • DNS缓存比复制更为重要,使用高速缓存可优化查询的开销; • 每个服务器都保留一个域名缓存,每当查找一个新的域名时,服务器将它置于缓存中; • 主机在启动时从本地域名服务器下载域名和地址的全部数据库,维护存放自己最近使用的域名的高速缓存,并且只在从缓存中找不到域名时才使用域名服务器。 华东理工大学计算机科学与工程系
8.3 电子邮件服务 8.3.1 电子邮件的概念 • 电子邮件服务是目前Internet上使用最频繁的服务; • 电子邮件系统不但可以传输各种格式的文本信息,而且还可以传输图像、声音、视频等多种信息 ; • 邮件服务器系统的核心邮件服务器负责接收用户送来的邮件,并根据收件人地址发送到对方的邮件服务器中,同时负责接收由其他邮件服务器发来的邮件,并根据收件人地址分发到相应的电子邮箱中; • 当用户向ISP申请Internet账户时,ISP就会在它的邮件服务器上建立该用户的电子邮件账户,它包括用户名(user name)与用户密码(password)。 华东理工大学计算机科学与工程系
电子邮件的一些标准 • 在1982年制定出简单邮件传送协议SMTP (Simple Mail Transfer Protocol) 和因特网文本报文格式,它们都已成为因特网的正式标准。 • 1993 年提出了通用因特网邮件扩充MIME (Multipurpose Internet Mail Extensions)。 • MIME 在其邮件首部中说明了邮件的数据类型(如文本、声音、图像、视像等)。在MIME邮件中可同时传送多种类型的数据。 华东理工大学计算机科学与工程系
8.3.2 电子邮件服务的工作过程 • 电子邮件服务基于客户/服务器结构 华东理工大学计算机科学与工程系
电子邮件的最主要的组成构件 (读取邮件) (发送邮件) (发送邮件) 用 户 代 理 用 户 代 理 SMTP POP3 邮件 服务器 邮件 服务器 SMTP (TCP 连接) (TCP 连接) (TCP 连接) (发送邮件) 用户邮箱 (读取邮件) SMTP 接收方 POP3 发送方 (发送邮件) SMTP 因特网 用户代理 用户代理 邮件缓存 发送端 邮件服务器 接收端 邮件服务器 华东理工大学计算机科学与工程系
电子邮件应用程序基本服务功能: • 创建与发送电子邮件; • 接收、阅读与管理电子邮件; • 账号、邮箱与通信簿管理。 电子邮件协议: • 在电子邮件程序向邮件服务器中发送邮件时,使用的是简单邮件传输协议SMTP; • 在电子邮件程序从邮件服务器中读取邮件时,可以使用邮局协议POP3或交互式邮件存取协议IMAP,它取决于邮件服务器支持的协议类型。 华东理工大学计算机科学与工程系
应当注意 • 一个邮件服务器既可以作为客户,也可以作为服务器。 • 例如,当邮件服务器 A 向另一个邮件服务器 B 发送邮件时,邮件服务器 A 就作为 SMTP 客户,而 B 是 SMTP 服务器。 • 当邮件服务器 A 从另一个邮件服务器 B 接收邮件时,邮件服务器 A 就作为 SMTP 服务器,而 B是 SMTP 客户。 华东理工大学计算机科学与工程系
电子邮件系统协议使用情况 华东理工大学计算机科学与工程系
电子邮件的发送和接收过程 (发送邮件) SMTP (TCP 连接) (发送邮件) SMTP 用 户 代 理 用 户 代 理 邮件 服务器 邮件 服务器 接收方 发送方 因特网 用户代理 用户代理 邮件缓存 发送端 邮件服务器 接收端 邮件服务器 (1) 发信人调用用户代理来编辑要发送的邮件。 用户代理用 SMTP 把邮件传送给发送端邮件服务器。 华东理工大学计算机科学与工程系
电子邮件的发送和接收过程 邮件缓存 (发送邮件) 用 户 代 理 用 户 代 理 SMTP 邮件 服务器 邮件 服务器 (TCP 连接) 接收方 发送方 (发送邮件) SMTP 因特网 用户代理 用户代理 发送端 邮件服务器 接收端 邮件服务器 (2) 发送端邮件服务器将邮件放入 邮件缓存队列中,等待发送。 华东理工大学计算机科学与工程系
电子邮件的发送和接收过程 (发送邮件) SMTP (TCP 连接) (发送邮件) SMTP (发送邮件) 用 户 代 理 用 户 代 理 SMTP 邮件 服务器 邮件 服务器 (TCP 连接) 接收方 发送方 (发送邮件) SMTP 因特网 用户代理 用户代理 邮件缓存 发送端 邮件服务器 接收端 邮件服务器 (3) 运行在发送端邮件服务器的 SMTP 客户进程,发现 在邮件缓存中有待发送的邮件,就向运行在接收端邮件 服务器的 SMTP 服务器进程发起 TCP 连接的建立。 华东理工大学计算机科学与工程系
电子邮件的发送和接收过程 (发送邮件) SMTP (TCP 连接) (发送邮件) 用户邮箱 SMTP (发送邮件) 用 户 代 理 用 户 代 理 SMTP 邮件 服务器 邮件 服务器 (TCP 连接) 接收方 发送方 (发送邮件) SMTP 因特网 用户代理 用户代理 邮件缓存 发送端 邮件服务器 接收端 邮件服务器 (4) TCP 连接建立后,SMTP 客户进程开始向远程的 SMTP 服务器进程发送邮件。当所有的待发送邮件发完了,SMTP 就关闭所建立的 TCP 连接。 华东理工大学计算机科学与工程系
电子邮件的发送和接收过程 (发送邮件) SMTP (TCP 连接) (发送邮件) 用户邮箱 SMTP (发送邮件) 用 户 代 理 用 户 代 理 SMTP 邮件 服务器 邮件 服务器 (TCP 连接) 接收方 发送方 (发送邮件) SMTP 因特网 用户代理 用户代理 邮件缓存 发送端 邮件服务器 接收端 邮件服务器 (5) 运行在接收端邮件服务器中的 SMTP 服务器进程收到邮件后,将邮件放入收信人的用户邮箱中,等待收信人在方便时进行读取。 华东理工大学计算机科学与工程系
电子邮件的发送和接收过程 (读取邮件) (发送邮件) SMTP POP3 (TCP 连接) (TCP 连接) (发送邮件) 用户邮箱 SMTP (读取邮件) POP3 (发送邮件) 用 户 代 理 用 户 代 理 SMTP 邮件 服务器 邮件 服务器 (TCP 连接) 接收方 发送方 (发送邮件) SMTP 因特网 用户代理 用户代理 邮件缓存 发送端 邮件服务器 接收端 邮件服务器 (6) 收信人在打算收信时,调用用户代理,使用 POP3(或 IMAP)协议将自己的邮件从接收端邮件服务器的用户邮箱中的取回(如果邮箱中有来信的话)。 华东理工大学计算机科学与工程系
电子邮件的组成 • 电子邮件由信封(envelope)和内容(content)两部分组成。 • 电子邮件的传输程序根据邮件信封上的信息来传送邮件。用户在从自己的邮箱中读取邮件时才能见到邮件的内容。 • 在邮件的信封上,最重要的就是收信人的地址。 华东理工大学计算机科学与工程系
这个用户名在该域名 的范围内是惟一的。 邮箱所在的主机的域名 在全世界必须是惟一的 电子邮件地址的格式 • TCP/IP 体系的电子邮件系统规定电子邮件地址的格式如下: 收信人邮箱名@邮箱所在主机的域名 (8-1) • 符号“@”读作“at”,表示“在”的意思。 • 例如,电子邮件地址 zhqwang@ecust.edu.cn 华东理工大学计算机科学与工程系
命令 描述 • ------------------------------ • HELO 向服务器标识用户身份 发送者能欺骗,说谎,但一般情况下服务器都能检测到。 • MAIL 初始化邮件传输 • mail from: RCPT 标识单个的邮件接收人;常在MAIL命令后面 可有多个rcpt to: • DATA 在单个或多个RCPT命令后,表示所有的邮件接收人已标识,并初始化数据传输,以.结束。 • VRFY 用于验证指定的用户/邮箱是否存在;由于安全方面的原因,服务器常禁止此命令 • EXPN 验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用 • HELP 查询服务器支持什么命令 • NOOP 无操作,服务器应响应OK • QUIT 结束会话 • RSET 重置会话,当前传输被取消 华东理工大学计算机科学与工程系
8.3.4 简单邮件传输协议SMTP及其MIME • SMTP协议运行在TCP协议之上,使用公开端口号25; • SMTP使用简单的命令传输邮件; • SMTP规定了14条命令和21种响应信息; • 每条命令都是由4个字母组成的; • 每一种响应信息一般只有一行信息; • SMTP使用客户/服务器工作模式,发送邮件的SMTP进程是SMTP客户,接收邮件的SMTP进程是SMTP服务器。 华东理工大学计算机科学与工程系
SMTP 通信的三个阶段 1. 连接建立:连接是在发送主机的 SMTP 客户和接收主机的 SMTP 服务器之间建立的。SMTP不使用中间的邮件服务器。 2. 邮件传送 3. 连接释放:邮件发送完毕后,SMTP 应释放 TCP 连接。 华东理工大学计算机科学与工程系
通用因特网邮件扩充 MIMEMIME 概述 SMTP 有以下缺点: • SMTP 不能传送可执行文件或其他的二进制对象。 • SMTP 限于传送 7 位的 ASCII 码。许多其他非英语国家的文字(如中文、俄文,甚至带重音符号的法文或德文)就无法传送。 • SMTP 服务器会拒绝超过一定长度的邮件。 • 某些 SMTP 的实现并没有完全按照[RFC 821]的 SMTP 标准。 华东理工大学计算机科学与工程系
MIME 的特点 • MIME 并没有改动 SMTP 或取代它。 • MIME 的意图是继续使用目前的[RFC 822]格式,但增加了邮件主体的结构,并定义了传送非 ASCII 码的编码规则。 华东理工大学计算机科学与工程系
MIME 和 SMTP 的关系 用户 用户 非 ASCII 码 非 ASCII 码 MIME MIME 7 位 ASCII 码 7 位 ASCII 码 7 位 ASCII 码 SMTP SMTP 华东理工大学计算机科学与工程系
8.3.5 邮件读取协议POP3和IMAP POP3 • 邮局协议POP是一个简单的邮件读取协议; • POP3协议使用客户/服务器的工作方式; • 接收邮件的用户主机运行POP客户程序,ISP的邮件服务器则运行POP服务器程序 ; • POP3协议运行在TCP协议之上,它使用公开的端口号110 ; • POP3协议规定了15条命令和24种响应信息 。 华东理工大学计算机科学与工程系
IMAP • Internet报文存取协议IMAP与POP3都是按客户/服务器方式工作,但它们有很大的差别; • 对于POP3协议,POP3服务器是具有存储转发功能的中间服务器。在邮件交付给用户之后,POP3服务器就不再保存这些邮件; • 当客户程序打开IMAP服务器的邮箱时,用户就可以看到邮件的首部;如果用户需要打开某个邮件,则可以将该邮件传送到用户的计算机;在用户未发出删除邮件的命令前,IMAP服务器邮箱中的邮件一直保存着; • POP3协议是在脱机状态下运行,而IMAP协议是在联机状态或脱机下都可运行。 华东理工大学计算机科学与工程系