1 / 130

第七章 应用层

第七章 应用层 . 主要内容 应用层概述 客户 / 服务器模型 TELNET 域名服务 电子邮件 WWW 文件传输协议 FTP 简单网络管理协议 SNMP 网络安全. 应用程序 : 具有通信功能的分布式进程 用户访问网络的接口 例如: email, file transfer, the Web 应用层协议 : 应用程序的一部分 定义信息格式 定义通信规则 访问下层提供的服务. application transport network data link physical. application transport network

morley
Download Presentation

第七章 应用层

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第七章 应用层 • 主要内容 • 应用层概述 • 客户/服务器模型 • TELNET • 域名服务 • 电子邮件 • WWW • 文件传输协议FTP • 简单网络管理协议SNMP • 网络安全

  2. 应用程序: 具有通信功能的分布式进程 用户访问网络的接口 例如: email, file transfer, the Web 应用层协议: 应用程序的一部分 定义信息格式 定义通信规则 访问下层提供的服务 application transport network data link physical application transport network data link physical application transport network data link physical 7.1 应用层概述(1)

  3. 应用层 文件传输 ●FTP、TFTP、NFS 电子邮件 ●SMTP、POP3 WWW应用 ●HTTP 远程登录 ●Telnet、rlogin 网络管理 ●SNMP 名字管理 ●DNS 传输层 网络层 网络接口

  4. 7.1 应用层概述(2) • 应用层术语 • 进程 process:在主机上运行的应用程序. • 在同一主机内部的两个进程间的通信是通过由OS定义的进程间的通信过程interprocess communication来完成的. • 不同主机上的进程是通过应用层协议application-layer protocol来控制的。 • 用户代理程序 user agent是用户和网络应用程序的接口。 • Web:browser • E-mail: mail reader • streaming audio/video: media player

  5. 7.1 应用层概述(3) • 应用层需要提供那些网络服务? • 可靠性 • 一些应用程序 (如: audio) 允许数据丢失或出错 • 另一些应用程序 (如: file transfer, telnet) 要求100% 可靠。 • 带宽 • 一些应用程序 (如: multimedia)有最小带宽的要求 • 另一些应用程序(如:Email) 对带宽没有特殊要求 • 时延 • 一些应用程序(如: Internet telephony, interactive games) 对时延特别敏感。

  6. 常用应用程序对传输功能的要求 实时性 无 无 无 100’s msec few secs 100’s msec yes and no 带宽 弹性 弹性 弹性 音频: 5Kb-1Mb 视频:10Kb-5Mb 同上 几 Kb/s 以上 弹性 应用程序 文件传输 e-mail Web 网页 实时音频/视频 存储音频/视频 交互式游戏 金融应用 数据丢失 不丢失 不丢失 不丢失 允许丢失 允许丢失 允许丢失 允许丢失 不丢失

  7. TCP 服务: 面向连接:在客户端和服务器进程之间需要建立连接(setup ) 可靠传输 :在发送和接受进程之间 流量控制:发送数据的速度决不超过接收的速度 拥塞控制:当网络超负荷时,束紧发送端口,减缓发送速度 不提供:实时性, 最小带宽承诺 UDP服务: 在客户端和服务器进程之间实现“不可靠的”数据传输 不提供:连接建立, 可靠性保证,流量控制,拥塞控制,实时性, 最小带宽承诺 Internet 的传输协议服务

  8. Internet应用: 应用, 传输协议 应用协议 smtp [RFC 821] telnet [RFC 854] http [RFC 2068] ftp [RFC 959] 专有协议 (e.g. RealNetworks) NSF 专有协议 (e.g., Vocaltec) 应用 e-mail 远程终端访问 Web 文件传输 流媒体 远程文件服务器 IP电话 所依赖的传输协议 TCP TCP TCP TCP TCP or UDP TCP or UDP typically UDP

  9. request reply application transport network data link physical application transport network data link physical 7.2 客户/服务器模型(1) • 基本概念 • 客户/服务器模型是所有网络应用的基础。客户/服务器分别指参与一次通信的两个应用实体,客户方主动地发起通信请求,服务器方被动地等待通信的建立。

  10. 7.2 客户/服务器模型(2) • 客户软件 • 任何一个应用程序当需要进行远程访问时成为客户,这个应用程序也要完成一些本地的计算; • 一般运行于用户的个人计算机上; • 向服务器主动发起通信请求; • 可以访问多个服务器,但一次只能访问一个; • 不需要特殊的硬件和复杂的操作系统。 • 服务器软件 • 是专用的提供某种服务的特权程序,可以同时处理多个远程客户; • 一般在系统启动时被执行,并连续运行以处理多次会话; • 被动的等待远程客户发起通信; • 需要特殊的硬件和复杂的操作系统。

  11. 7.2 客户/服务器模型(3) • 数据在客户和服务器之间是双向流动的,一般是客户发出请求,服务器给出响应。 • 服务器软件的并发性 • 由于服务器软件要支持多个客户的同时访问,它必须具备并发性。服务器软件为每个新到的客户创建一个进程或线程来处理和这个客户的通信。服务器方传送层实体使用客户的源端口号和服务的端口号来确定正确的服务器软件进程(线程)。 • 服务器软件的组成 • 服务器软件一般分为两部分:一部分用于接受请求并创建新的进程或线程,另一部分用于处理实际的通信过程。

  12. 7.2 客户/服务器模型(4) • 客户/服务器之间使用的传送层协议 • 可以是基于连接的TCP协议,要求建立和释放连接,适用于可靠的交互过程; • 也可以是无连接的UDP协议,适用于可靠性要求不高的或实时的交互过程; • 同时使用TCP和UDP的服务,有两种服务器软件的实现或服务器软件同时和TCP、UDP协议交互,不对客户做限制。 • 客户和服务器的交互 • 支持协议:在INTERNET中,客户和服务器的交互通过使用TCP/IP协议栈来完成。因此,客户和服务器所在的机器要求支持完全的协议栈。客户/服务器通过套接字访问传送层服务。

  13. 7.2 客户/服务器模型(5) • 多种服务:一台计算机上可以运行多个服务器软件,但是要求计算机有强大的硬件资源(服务器级别的计算机)和多任务操作系统(UNIX和WIN95/98/2000/NT)。 • 服务的标识:客户是通过服务的标识来访问某种服务的,比如在INTERNET中,服务是用端口号来标识,UNIX在/etc/services文件中定义。服务器软件启动时将其标识通知传送层实体。

  14. 7.3 域名服务(1) • 产生原因 • 32比特的IP地址难于记忆,应该使用符号地址,比如用www.xjtu.edu.cn表示交大web服务器的IP地址。但是,网络本身是使用IP地址的,因此需要一个完成二者之间相互转换的机制。 • 当网络规模比较小时,例如ARPANET,每台主机只需查找一个文件(UNIX的host),该文件中列出了主机与IP地址的对应关系。 • 当网络规模很大时,上述方法就不适用了,因此产生了域名系统DNS(Domain Name System)。 • 域名系统是一个典型的客户/服务器交互系统; • 域名系统是一个多层次的、基于域的命名系统,并使用分布式数据库实现这种命名机制;

  15. 7.3 域名服务(2) • 域名的结构 • INTERNET的顶级域名分为组织结构和地理结构两种。每个域对它下面的子域和机器进行管理。 • DNS中,每台计算机的名字是由“.”所分开的字符数字串所组成的。例如www.xjtu.edu.cn. • 域名是大小写无关的,“edu”和“EDU”相同。域名最长255个字符,每部分最长63个字符。

  16. 7.3 域名服务(3) • 域名服务器 • 区域划分 • DNS将域名空间划分为许多无重叠的区域(zone) ,每个区域覆盖了域名空间的一部分并设有域名服务器对这个区域的域名进行管理。 • 每个区域有一个主域名服务器和若干个备份域名服务器,区域的边界划分是人工设置的,比如:edu.cn xjtu.edu.cn cs.xjtu.edu.cn是三个不同的区域,分别有各自的域名服务器。

  17. 当本地域名服务器不能解析时,就向根域名服务器查询当本地域名服务器不能解析时,就向根域名服务器查询 根域名服务器: 如果域名映射未知,则向授权域名服务器查询 取得映射 将映射返回本地域名服务器 a NSI Herndon, VA c PSInet Herndon, VA d U Maryland College Park, MD g DISA Vienna, VA h ARL Aberdeen, MD j NSI (TBD) Herndon, VA k RIPE London i NORDUnet Stockholm m WIDE Tokyo e NASA Mt View, CA f Internet Software C. Palo Alto, CA b USC-ISI Marina del Rey, CA l ICANN Marina del Rey, CA DNS: 根域名服务器 遍布世界各地的13个根域名服务器

  18. 本地DNS服务器 dns.eurecom.fr DNS解析过程举例 (1) 根域名服务器 主机 surf.eurecom.fr要查询 gaia.cs.umass.edu的IP 地址 1.询问本地DNS服务器, dns.eurecom.fr 2.dns.eurecom.fr如果查询不到则访问根域名服务器 3.根域名服务器访问授权的 服务器 dns.umass.edu 2 4 3 5 授权域名服务器 dns.umass.edu 1 6 请求主机 surf.eurecom.fr gaia.cs.umass.edu

  19. 本地域名服务器 dns.eurecom.fr 中间的域名服务器 dns.umass.edu DNS解析过程举例 (2) 根域名服务器 根域名服务器: • 可能不知道授权域名服务器的地址 • 可能知道中间域名服务器:由它负责联系授权域名服务器 6 2 3 7 5 4 1 8 授权域名服务器 dns.cs.umass.edu 请求主机 surf.eurecom.fr gaia.cs.umass.edu

  20. 递归查询: 对根域名服务器造成工作负担 迭代查询: 被查询的服务器直接把可查询的服务器地址返回 “不懂这个域名, 但可以从这个服务器查到” local name server dns.eurecom.fr intermediate name server dns.umass.edu DNS: 迭代查询 root name server iterated query 2 3 4 7 5 6 1 8 authoritative name server dns.cs.umass.edu requesting host surf.eurecom.fr gaia.cs.umass.edu

  21. 一旦 (任何) 域名服务器得知了某个映射, 就将其 缓存 在一定的时间间隔后缓存的条目将会过期(自动消除) 更新/通知 机制由 IETF负责设计 RFC 2136 http://www.ietf.org/html.charters/dnsind-charter.html DNS: 缓存和更新纪录

  22. DNS:存储资源记录 (RR)的分布式数据库 Type=NS name = 域 (e.g. foo.com) value =该域授权域名服务器的 IP 地址 RR 格式: (name, value, type,ttl) DNS 资源记录 • Type=A • name = 主机名 • value = IP 地址 • Type=CNAME • Name= 别名 www.ibm.com is really servereast.backup2.ibm.com • value =真名 • Type=MX • value = 与 name相关的邮件服务器域名

  23. DNS 协议 :查询和应答报文, 二者格式相同 DNS 协议, 报文 报文首部 • identification: 16 bit # 用于查询, 应答报文使用同样的 # • flags: • 查询 或 应答 • 希望递归 • 可以递归 • 授权应答

  24. DNS 协议, 报文 Name, type fields 查询报文 RRs 响应 来自授权服务器的纪录 其他“帮助”信息

  25. user agent user agent user agent user agent user agent user agent SMTP SMTP SMTP mail server mail server mail server outgoing message queue user mailbox 7.4 电子邮件(1) • 相关协议标准 • 1982年ARPANET提出了RFC821(传输协议)RFC822(消息格式)作为电子邮件协议; • 1984年CCITT提出了X.400建议,但是没有得到普及。 • 体系结构 • 用户代理( UA: User Agent) 又称为邮件阅读器。编辑、发送、阅读和管理电子邮件。 • 传输代理( MTA :Message Transfer Agent )又称为邮件服务器。起“邮局” 作用,接收用户邮件,根据地址传输,传送到接收方的邮件服务器,并将邮件存放在用户邮箱内。

  26. 简单邮件传输协议SMTP SMTP的特点是非常简单明了,容易实现。 它主要定义了邮件格式以及邮件服务器之间如何通过TCP连接进行邮件的传输,而并不规定用户界面等其他标准。收发邮件的双方必须都遵守SMTP协议,否则无法进行邮件的转发。 SMTP协议文档分为两个标准子集: 1. 定义邮件信息的格式,即RFC822; 2. 描述了邮件传输代理之间如何进行邮件的转发,即FC821。 用户代理UA产生的邮件必须符合RFC822定义的格式。支持SMTP协议的邮件传输代理(MTA)之间采用客户/服务器模式。连接发起方称为客户,接受方称为服务器。一旦连接建立,邮件传输代理之间通过SMTP协议进行对话,完成邮件的存储转发功能。 SMTP定义了非常简单的几个命令用来进行邮件的发送,其中包括 HELO,MAIL FROM,RCPT TO,DATA和QUIT。另外还有3个命令VERY,RESET,NOOP用于对邮件传输进行一定的控制。

  27. 7.4 电子邮件(2) • 电子邮件系统提供的五大基本功能: • 成文:指创建消息或回答消息的过程; • 传输:指将消息从发送者传出至接收者; • 报告:将消息的发送情况报告给消息发送者; • 显示:使用相应的工具软件将收到的消息显示给接收者 • 处理:接收者对接收到的消息进行处理,存储/丢弃/转发等等。 • 其它高级功能 • 自动转发、自动回复; • mailbox,创建邮箱存储邮件; • mailing list; • 抄送(cc)、高优先级、加密。

  28. 7.4 电子邮件(3) • 电子邮件的组成 • 信封:接收方的信息,如名字、地址、邮件的优先级和安全级别; • 信件内容:由信头和信体组成,信头包含了用户代理所需的控制信息,信体是真正的内容。 • Fig. 7-39 • 用户代理 • 发送电子邮件 • email地址,例如,webmaster@mail.xjtu.edu.cn • mailing list,例如,students@mail.xjtu.edu.cn • X.400地址,例如,/C=US/SP=MASSACHUSETTS/ L=CAMBRIDGE/PA=360 MEMORIAL DR./CN=KEN SMITH/

  29. 7.4 电子邮件(4) • 阅读电子邮件 • 用户代理在启动时检查用户的mailbox,通知用户是否有新邮件到来。并摘要性的显示邮件的主题、发送者及其邮件的状态。 • 信件格式 • RFC822 • 信件包括信封、若干信头域、一个空行和信体。 • Fig.7-42 • 电子邮件的扩展 • MIME(Multipurpose Internet Mail Extensions),增加了对图像、声音、视频、可执行文件等的支持。使用不同的编码方法将信息转化为ASCII字符流

  30. 邮件报头中各个关键词的含义是: From:表示邮件发送者,包括邮件地址,还可能包括发送方的“真实姓名” Received:接收邮件的路径、日期、时间以及邮件传输代理程序的版本号。 Date:发信时间。 Message-ID:由传输代理分配给该邮件的唯一标识。 To:收件人的电子邮件地址。 Subject:邮件主题,是发件人写的,告诉收件人发送该邮件的目的。 Content-type:邮件正文的类型,是文本还是MIME格式。 Content-length:邮件正文的长度。 Cc:表示抄送,它是“Carbon copy”的缩写,意为“复写副本”,它用来 指定那些将收到该邮件副本的人的邮件地址。 Reply-To:表示对方回信时用的地址。该地址可能和发送方发信时用的地址 不一致。

  31. MIME: multimedia mail extension, RFC 2045, 2056 在报文首部附加额外的信息声明 MIME 内容类型 From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data MIME 版本 数据编码方法 多媒体类型, 子类型, 参数声明 编码后的数据 邮件格式: 多媒体扩展

  32. Text 子类型样例: plain, html Image 子类型样例: jpeg, gif Audio 子类型样例: basic (8-bit mu-law encoded), 32kadpcm(32 kbps coding) Video 子类型样例: mpeg, quicktime Application 需使用其他阅读器的数据 子类型样例: msword, octet-stream MIME 类型声明 Content-Type: type/subtype; parameters

  33. MIME多分部类型 From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=98766789 --98766789 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain Dear Bob, Please find a picture of a crepe. --98766789 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data --98766789--

  34. user agent user agent sender’s mail server SMTP 7.4 电子邮件(5) SMTP POP3 or IMAP • 消息传送协议 • INTERNET使用简单邮件传输协议SMTP完成电子邮件的交换。 • 过程如下 • 消息传输代理在源端主机和目的主机的25号端口之间建立一条TCP连接,使用简单邮件传输协议SMTP协议进行通信; • 在TCP连接建立好之后,作为客户的邮件发送方等待作为服务器的邮件接收方首先传输信息; • 服务器首先发出准备接受的SMTP消息,客户向服务器发出HELO消息,服务器回答以HELO消息,双方进入邮件传输状态; receiver’s mail server

  35. 7.4 电子邮件(6) • 邮件传输过程:客户首先发出邮件的发信人地址(MAIL FROM),然后发出收信人的地址(RCPT TO),服务器确认收信人存在后,发出可以继续发送的指示,客户发送真正的消息(DATA),以‘.’作为结束; • 当客户方邮件发送完之后,服务器开始发送邮件至客户,过程同上; • 两个方向的发送完成之后,释放TCP连接(QUIT)。 • 注意 • 消息以7-比特ASCII码为单位 • 某些特殊字符串(如CRLF.CRLF)不允许在消息中出现,需要编码(例如,base64)

  36. 7.4 电子邮件(7) • SMTP: 发送/存储 到接收方的服务器 • 邮件访问协议: 从服务器中取信 • POP: Post Office Protocol [RFC 1939] • 认证 (agent <-->server) 和下载 • 用户代理和邮箱不在同一机器上,用户代理使用此协议将邮箱中的信件取回本地 • IMAP: Internet Mail Access Protocol [RFC 1730] • 更多功能(更为复杂) • 收信人使用多个用户代理访问同一邮箱,邮件始终保持在邮箱中。 • 在服务器中操作存储在那里的报文 • HTTP: Hotmail , Yahoo! Mail, 263.net,etc. • 加密电子邮件协议:PGP与PEM协议。

  37. 认证阶段 客户端命令: user:用户名 pass:口令 服务器响应 +OK -ERR 交互阶段, 客户端: list:列出报文号码 retr:用报文号码取信 dele:用报文号码删信 quit POP3 协议 S: +OK POP3 server ready C: user alice S: +OK C: pass hungry S: +OK user successfully logged on C: list S: 1 498 S: 2 912 S: . C: retr 1 S: <message 1 contents> S: . C: dele 1 C: retr 2 S: <message 1 contents> S: . C: dele 2 C: quit S: +OK POP3 server signing off

  38. X.400 MHS Function Model UA ---- User Agent MTA ---- Message Transfer Agent MS ---- Message Store AU ---- Access Unit PDAU ---- Physical Delivery Access Unit

  39. 7.5 WWW (1) • WWW(World Wide Web)是用于访问遍布于INTERNET上的相互链接在一起的超文本的一种结构框架。 • 历史 • 1989年,设计WWW的思想产生于欧洲核研究中心CERN; • 1991年,第一个原型在美国的Hypertext ’91会议上展示; • 1993年,第一个图形化浏览器,Mosaic; • 1994年,Andreessen创建NETSCAPE公司,开发WEB的客户和服务器软件; • 同年,CERN和MIT共同创建WWW论坛,制定相关的协议标准,http://www.w3.org。

  40. 7.5 WWW (2) • 术语 • 网页Web page: • 由 “对象”组成 • 通过统一资源定位器URL(Uniform Resource Locator)访问 • 多数网页由以下部分组成: • 基本的 HTML页面 • 一些参考对象 • Web的用户代理即浏览器 browser: • MS Internet Explorer • Netscape Navigator • Web server提供Web服务 http request PC running Explorer http response http request Server running NCSA Web server http response Mac running Navigator

  41. 7.5 WWW (3) 浏览器的功能 • 获得文本信息、录制声音或图像 • 自动显示所获得的信息 • 将获得的信息存储在磁盘上 • 将获得的信息打印到纸上 • 将某一文档中的引用连接到相关文档上

  42. 7.5 WWW (4) • 用户眼中的WEB • WEB是由互相链接在一起的网页构成的,这些网页是由普通文本、超文本Hypertext,以及图表、照片等构成; • 用户通过称为浏览器的软件来观看网页,浏览器取回所请求的网页,解释其中所含的文本和格式命令,并正确的显示出来; • 网页中的文本串若指向其它的网页(此指针称为超级链接Hyperlink,此文本串称为超文本Hypertext),会被特别地显示出来(加下划线),用户若选择此超级链接,浏览器会将此超级链接所指的网页取回; • 当超文本网页中包含声音、动画等其它媒体时,网页被称为是超媒体Hypermedia的。浏览器一般通过外挂的帮助程序来显示这些超媒体信息。

  43. 7.5 WWW (5) • WEB的客户/服务器模型 • 在每个WEB服务器上有一个服务进程在TCP的80端口上监听由浏览器发来的建立连接请求;在连接建立之后,浏览器和服务器之间使用超文本传输协议HTTP协议进行信息传输; • 超级链接是使用URL(统一资源定位符)来找到目标网页的。URL由三部分组成协议://域名[:端口][/文档路径]: • 协议类型(HTTP、FTP、TELNET等); • 网页所在机器的地址(域名或IP地址); • 包含网页的文件名称。 • 浏览器确定URL,通过DNS解析IP地址,建立TCP连接,向服务器发出HTTP的GET请求取回网页,释放连接,并显示网页中所有的文本。然后,浏览器逐一取回网页中的图象。

  44. 7.5 WWW (6) • 超文本传输协议HTTP • HTTP协议由一套从浏览器发往服务器的请求和一套从服务器发往浏览器的响应组成。 • 请求分为两类 • 简单请求:GET网页文件名,服务器回答以网页内容; • 完全请求:GET网页文件名、协议版本号,服务器回答以使用MIME格式编码的网页内容。 • http1.0: RFC 1945;http1.1: RFC 2068 • 超文本标记语言HTML • HTML使用一套标记符号来实现对文本的格式化; • HTML 2.0引入了对表格的支持,允许用户填充信息并将其送回服务器。服务器方使用一个CGI程序进行处理。

  45. 假设用户键入了一个 URL www.someSchool.edu/someDepartment/home.index 1a. http 客户端启动 TCP 连接到www.someSchool.edu上的http 服务器 (进程). Port 80 是 http 服务器的默认端口. http 举例 1b.在www.someSchool.edu 上的http 服务器在 port 80 等待 TCP 的连接请求. “接受” 连接并通知客户端 2.http客户端发送 http 请求报文(包括URL) 进入 TCP 连接插口(socket) 3.http 服务器接收到请求报文, 形成 响应报文( 包含了所请求的对象 ,someDepartment/home.index), 将报文送入插口( socket) time

  46. 5. http 客户端接收到了包含html文件的响应报文。 分析 html 文件, 发现 10 个引用的 jpeg 对象 http 举例 (续.) 4. http 服务器关闭 TCP 连接. time 6.对10 jpeg objects 逐个重复1-5 步

  47. 请求行 (GET, POST, HEAD 命令) GET /somedir/page.html HTTP/1.0 User-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg Accept-language:fr (额外的 carriage return, line feed) 首部 诸行 回车、换行表示 报文结束 http 报文格式: request(请求) • two types of http报文: request, response • http 请求报文: • ASCII (可读格式)

  48. http 请求报文: 一般格式

More Related