应用层协议概述ppt课件.ppt

上传人:小飞机 文档编号:1934014 上传时间:2022-12-27 格式:PPT 页数:86 大小:1.30MB
返回 下载 相关 举报
应用层协议概述ppt课件.ppt_第1页
第1页 / 共86页
应用层协议概述ppt课件.ppt_第2页
第2页 / 共86页
应用层协议概述ppt课件.ppt_第3页
第3页 / 共86页
应用层协议概述ppt课件.ppt_第4页
第4页 / 共86页
应用层协议概述ppt课件.ppt_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《应用层协议概述ppt课件.ppt》由会员分享,可在线阅读,更多相关《应用层协议概述ppt课件.ppt(86页珍藏版)》请在三一办公上搜索。

1、应用层,1,应用层,本讲目标: 网络应用层的概念和实现客户端-服务器范式服务模型通过对常用应用层协议的探讨和分析来学习网络协议,深层次目标 特定协议: dnshttpftpsmtppop,应用层,2,应用层协议,应用层负责的是进程与进程之间的通信应用层协议:应用层的一个“组成部分”定义应用程序需交换的报文 和所需采取的动作位于最高层使用较低层次所提供的通信服务 (TCP, UDP),应用层,3,网络应用程序: 一些术语,进程(Process): 主机中运行中的程序.在某些主机中, 两个进程使用进程间通信 (由 OS管理).而运行在不同主机上的进程则使用应用层协议进行通信,用户代理(User a

2、gent): 软件进程, 是介于用户( above )和网络( below )之间的接口实现应用级协议Web: 浏览器E-mail: OE、Foxmail流媒体: media player,应用层,4,客户端-服务器模式,典型的网络应用都是由两个部分组成: 客户端 和 服务器,客户端:发起同服务器的联系 (“speaks first”)一般都从服务器请求服务, Web: 客户端由浏览器实现; e-mail: 通过OE、Foxmial实现,服务器:向客户端提供所请求的服务e.g., Web 服务器发送被请求的 Web 页面, 邮件服务器传递 e-mail,应用层,5,应用层协议(续),应用程序接

3、口(API: application programming interface)定义应用层和传输层间的接口插口(socket: Internet API)两个进程间的通信, 将数据送入 socket, 或从socket 读出数据,Q: 某个进程如何“标识”另一个 需要与之通信的进程?(SOCKET 套接字)IP 地址-运行另一个进程的主机所拥有的“端口号(PORT #)” 允许接收主机来确定的一个标识,本地进程将报文发送给它SOCKETIP+PORT,应用层,6,关于端口的说明,端口是应用进程的标识,本质上是一个存放在传输层首部的一个字段的值,如TCP端口,UDP端口。端口可以看作传输层对于

4、应用层的SAP端口占两个字节,范围是065535保留使用的端口01023 http:80. Dns:53. Smtp:25 pop:110用户可以使用的端口102465535问题:为什么不使用操作系统的进程号来标识进程。,应用层,7,应用进程需要怎样的传输服务?,数据丢失(Data loss)某些应用 (e.g., audio) 可以容忍某种程度上的数据丢失其他应用 (e.g., 文件传输, telnet) 要求 100% 可靠的数据传输,实时性(Timing)某些应用(e.g., IP 电话, 交互式游戏) 要求较低的时延,带宽(Bandwidth)某些应用(e.g., 多媒体) 对最低带宽

5、有要求其他应用(“弹性应用”) 则可灵活应用所能得到的带宽,应用层,8,常用应用程序对传输功能的要求,应用程序文件传输e-mailWeb 网页实时音频/视频存储音频/视频交互式游戏金融应用,数据丢失不丢失不丢失不丢失允许丢失允许丢失允许丢失允许丢失不丢失,带宽弹性弹性弹性音频: 5Kb-1Mb视频:10Kb-5Mb同上 几 Kb/s 以上弹性,实时性无无无100s msecfew secs100s msecyes and no,应用层,9,Internet 的传输协议服务,TCP 服务:面向连接: 在客户端和服务器进程之间需要建立连接(setup )可靠传输 : 在发送和接受进程之间流量控制:

6、 发送数据的速度决不超过接收的速度 拥塞控制: 当网络超负荷时,束紧发送端口,减缓发送速度不提供: 实时性, 最小带宽承诺,UDP服务:在客户端和服务器进程之间实现“不可靠的”数据传输不提供:连接建立, 可靠性保证,流量控制,拥塞控制,实时性, 最小带宽承诺Q: 既生喻,何生亮? Why is there a UDP?,应用层,10,Internet应用: 应用, 传输协议,应用e-mail远程终端访问Web 文件传输流媒体远程文件服务器IP电话,应用协议smtp RFC 821telnet RFC 854http RFC 2068ftp RFC 959专有协议(e.g. RealNetwor

7、ks)NSF专有协议(e.g., Vocaltec),所依赖的传输协议TCPTCPTCPTCPTCP or UDPTCP or UDPtypically UDP,应用层,11,在IE中输入网址后,首先域名解析DNS,浏览器和DNS服务器交互其次采用http协议,浏览器和Web服务器交互,应用层,12,DNS: 域名系统,自然人: 诸多定义:身份证, 姓名, 护照 #因特网主机, 路由器:IP 地址 (32 bit) 用于数据报寻址“域名”, e.g., 帮助记忆Q: IP 地址和域名之间如何映射(转换) ?,Domain Name System:分布式数据库:由许多域名服务器按层次构成 DNS

8、透明的解决了IP地址和域名的转换问题DNS传输一般使用UDP,端口53。,应用层,13,因特网的域名结构,因特网采用了层次树状结构的命名方法。任何一个连接在因特网上的主机或路由器,都有一个惟一的层次结构的名字,即域名。域名的结构由若干个分量组成,各分量之间用点隔开: .三级域名.二级域名.顶级域名各分量分别代表不同级别的域名。,应用层,14,顶级域名 TLD (Top Level Domain),(1) 国家顶级域名 nTLD:如: .cn 表示中国,.us 表示美国,.uk 表示英国,等等。(2) 国际顶级域名 iTLD:采用.int。国际性的组织可在 .int 下注册。(3) 通用顶级域名

9、 gTLD:最早的顶级域名是: .com 表示公司企业 .net 表示网络服务机构 .org 表示非赢利性组织 .edu 表示教育机构(美国专用) .gov 表示政府部门(美国专用) .mil 表示军事部门(美国专用),因特网的名字空间,com,net,org,edu,gov,mil,coop,biz,info,aero,int,cn,uk,hk,js,sh,bj,org,net,gov,edu,com,ac,pku,fudan,sjtu,tsinghua,树根,cctv,ibm,hp,mot,顶级域名,二级域名,三级域名,mail,ep,四级域名,mail,csnetl,seu,应用层,16

10、,DNS name servers,没有服务器能够保存所有 Name-to-IP 地址的映射本地域名服务器:每个 ISP, 企业可拥有 本地(默认) 域名服务器主机的 DNS 查询首先发往本地域名服务器授权域名服务器:每台主机必须在授权服务器上注册登记可完成域名/地址的转换,为什么不搞集中的DNS?单点失败的问题数据的流通量远程集中式的数据库维护问题难以与时俱进,跟不上发展!,应用层,17,DNS: 根域名服务器,当本地域名服务器不能解析时,就向根域名服务器查询根域名服务器:如果域名映射未知,则向授权域名服务器查询取得映射将映射返回本地域名服务器,遍布世界各地的13个根域名服务器,递归查询,递

11、归与迭代相结合的查询,应用层,20,DNS: 缓存和更新纪录,一旦 (任何) 域名服务器得知了某个映射, 就将其 缓存在一定的时间间隔后缓存的条目将会过期(自动消除)更新/通知 机制由 IETF负责设计RFC 2136http:/www.ietf.org/html.charters/dnsind-charter.html,应用层,21,DNS 纪录,DNS: 存储资源纪录 (RR)的分布式数据库,Type=NSname = 域 (e.g. )value =该域授权域名服务器的 IP 地址,Type=Aname = 主机名value = IP 地址,Type=CNAMEName= 别名 is r

12、eally value =真名,Type=MXvalue = 与 name相关的邮件服务器域名,应用层,22,DNS 协议报文格式,DNS 协议 : 查询和应答报文, 二者格式相同,报文首部identification: 16 bit # 用于查询, 应答报文使用同样的 #flags:查询 或 应答希望递归 可以递归授权应答,应用层,23,DNS 协议报文格式,Name, type fields 查询报文,RRs 响应,来自授权服务器的纪录,其他“帮助”信息,应用层,24,万维网 WWW概述,万维网 WWW (World Wide Web)并非某种特殊的计算机网络。万维网是一个大规模的、联机式

13、的信息储藏所。万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。这种访问方式称为“链接”。,应用层,25,万维网提供分布式服务,万维网站点 A,万维网站点 C,万维网站点 E,万维网站点 D,万维网站点 B,应用层,26,超媒体与超文本,万维网是分布式超媒体(hypermedia)系统,它是超文本(hypertext)系统的扩充。一个超文本由多个信息源链接成。利用一个链接可使用户找到另一个文档。这些文档可以位于世界上任何一个接在因特网上的超文本系统中。超文本是万维网的基础。超媒体与超文本的区别是文档内容不同。超文本文档仅包含文本信息,而超媒体文档还

14、包含其他表示方式的信息,如图形、图像、声音、动画,甚至活动视频图像。,应用层,27,万维网的工作方式,万维网以客户服务器方式工作。浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器。客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。在一个客户程序主窗口上显示出的万维网文档称为页面(page)。,应用层,28,万维网必须解决的问题,(1) 怎样标志分布在整个因特网上的万维网文档? 使用统一资源定位符 URL (Uniform Resource Locator)来标志万维网上的各种文档。使每一个文档在整个因

15、特网的范围内具有惟一的标识符 URL。 (2) 用何协议实现万维网上各种超链的链接? 在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP (HyperText Transfer Protocol)。HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。,应用层,29,万维网必须解决的问题,(3) 怎样使各种万维网文档都能在因特网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链? 超文本标记语言 HTML (HyperText Markup Language)使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到因特网上的

16、任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。(4) 怎样使用户能够很方便地找到所需的信息? 为了在万维网上方便地查找信息,用户可使用各种的搜索工具(即搜索引擎)。,应用层,30,统一资源定位符 URL(uniform resourse location),统一资源定位符 URL 是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示。URL 给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。URL 相当于一个文件名在网络范围的扩展。因此 URL 是与因特网相连的机器上的任何可访问对象的一个指针。,应用层,31,URL 的一般形式,由以冒号隔开的两大部分组

17、成,并且在 URL 中的字符对大写或小写没有要求。URL 的一般形式是:,:/:/ (8-2),应用层,32,URL 的一般形式,由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。URL 的一般形式是:,:/:/ (8-2),应用层,33,URL 的一般形式,由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。URL 的一般形式是:,:/:/ (8-2),应用层,34,使用 HTTP 的 URL,使用 HTTP 的 URL 的一般形式 http:/:/,应用层,35,使用 HTTP 的 URL,使用 HTTP 的 URL 的一般形式 http:/:

18、/,冒号和两个斜线是规定的格式,应用层,36,使用 HTTP 的 URL,使用 HTTP 的 URL 的一般形式 http:/:/,这里写主机的域名,应用层,37,使用 HTTP 的 URL,使用 HTTP 的 URL 的一般形式 http:/:/,HTTP 的默认端口号是 80,通常可省略,应用层,38,使用 HTTP 的 URL,使用 HTTP 的 URL 的一般形式 http:/:/,若再省略文件的项,则 URL 就指到因特网上的某个主页(home page)。,应用层,39,http 协议,http: TCP 传输服务:客户端启动TCP连接(创建插口) 到服务器, 端口 80服务器接受

19、来自客户端的 TCP 连接http 报文(应用层协议报文) 在浏览器 (http client) 和Web服务器(http server)之间进行交换关闭TCP 连接,http 是 “无状态(stateless)”的服务器不保留任何访问过的请求信息,保留状态的协议很复杂哟!过去的历史 (状态) 需要保留一旦浏览器/服务器崩溃, 它们各自的状态视图就会发生分歧,还需要重新核对,小评论,应用层,40,Web: http 协议,超文本传输协议(http: hypertext transfer protocol)万维网应用协议客户端/服务器模式客户端: 浏览器请求、接收、展示 Web对象( objec

20、ts)服务器: Web 服务器发送对象对请求进行响应http1.0: RFC 1945http1.1: RFC 2068,PC runningExplorer,Server runningNCSA Webserver,Mac runningNavigator,http request,http request,http response,http response,应用层,41,http 举例,假设用户键入了一个 URL www.someSchool.edu/someDepartment/home.index,1a. http 客户端启动 TCP 连接到www.someSchool.edu上的

21、http 服务器 (进程). Port 80 是 http 服务器的默认端口.,2. http客户端发送 http 请求报文 (包括URL) 进入 TCP 连接插口(socket),1b. 在www.someSchool.edu 上的http 服务器在 port 80 等待 TCP 的连接请求. “接受” 连接并通知客户端,3. http 服务器接收到请求报文, 形成 响应报文( 包含了所请求的对象 ,someDepartment/home.index), 将报文送入插口( socket),time,(该网页包含文本并引用了10 jpeg 图片),应用层,42,http 举例 (续.),5.

22、http 客户端接收到了包含html文件的响应报文。 分析 html 文件, 发现 10 个引用的 jpeg 对象,6. 对10 jpeg objects 逐个重复1-5 步,4. http 服务器关闭 TCP 连接.,time,应用层,43,非持续和持续连接,(非持续连接)Non-persistenthttp/1.0: 服务器分析请求、响应、关闭 TCP 连接取对象需要2 RTTsTCP 连接对象请求/传送每次传送都要受到TCP连接初始化时的慢启动影响许多浏览器同时打开多个并行的连接来改善性能,(持续连接)Persistenthttp/1.1的默认设置在同一TCP 连接上: 服务器分析请求、

23、响应请求,分析新的请求、.客户端一旦下载到了基本的html文件( base HTML )马上发送对所有引用对象的请求.较少的 RTTs, 较少的慢启动.,应用层,44,流水线和非流水线方式,流水线方式指没有收到上一个请求的对象就发送新的对象的请求非流水线方式指必须要等到上一个请求的对象到达之后再发送新的对象的请求,应用层,45,http 报文格式: request(请求),two types of http报文: request, responsehttp 请求报文:ASCII (可读格式),应用层,46,http 请求报文格式:Request,请求报文的类型是由它所采用的方法决定的。,应用层

24、,47,HTTP 请求报文的一些方法,方法(操作) 意义OPTION 请求一些选项的信息GET 请求读取由URL所标志的信息HEAD 请求读取由URL所标志的信息的首部POST 给服务器添加信息(例如,注释)PUT 在指明的URL下存储一个文档DELETE 删除指明的URL所标志的资源TRACE 用来进行环回测试的请求报文CONNECT用于代理服务器,http 响应报文格式:Response,版 本,状态码,短 语,首部字段名,首部行,:,值,首部字段名,值,:,实体主体(有些响应报文不用),状态行,空格,回车换行,:,CRLF,CRLF,CRLF,CRLF,响应报文的开始行是状态行。状态行包

25、括三项内容,即 HTTP 的版本,状态码,以及解释状态码的简单短语。,应用层,49,状态码都是三位数字,1xx 表示通知信息的,如请求收到了或正在进行处理。2xx 表示成功,如接受或知道了。3xx 表示重定向,表示要完成请求还必须采取进一步的行动。4xx 表示客户的差错,如请求中有错误的语法或不能完成。5xx 表示服务器的差错,如服务器失效无法完成请求。,应用层,50,用户-服务器的交互: 认证(authentication),认证 : 控制对服务器内容的访问信用认证: 一般通过用户名, 口令进行 无状态: 客户端必须在每次请求前进行认证authorization: 就是要求在每个请求报文中提

26、交认证的首部行如果客户端没有提交 authorization: 首部行, 服务器将拒绝访问, 只是在响应报文首部中发送WWW authenticate:,client,server,普通 http 请求报文,401: 认证要求WWW authenticate:,应用层,51,Cookies: 保存 “状态”,服务器产生一个 # , 服务器认识这个 #, 以备不时之需:认证记忆用户的前序访问, 先前的选择服务器在响应报文中发送 “cookie” 给客户端Set-cookie: 1678453客户端可以在后继的请求中发送“cookie” cookie: 1678453,client,server,

27、普通 http 请求报文,普通 http响应报文+Set-cookie: #,cookie-特定的,cookie-特定的,应用层,52,Conditional GET: 客户端缓存机制,目的: 如果客户端缓存了最新的请求对象,则服务器不必重复发送客户端: 在http请求报文中声明所缓存拷贝的生成日期If-modified-since: 服务器: 如果客户端缓存的拷贝是最新的,则在响应报文中不发请求的对象: HTTP/1.0 304 Not Modified,client,server,http请求报文If-modified-since: ,对象未经修改,http请求报文If-modified-

28、since: ,http响应报文HTTP/1.1 200 OK,对象已经修改,应用层,53,Web 缓存:代理服务器 (proxy server),用户设置浏览器: Web 访问经由代理服务器 客户端发送所有的 http 请求到代理服务器代理服务器保存了请求的对象: 代理服务器返回请求的对象 否则代理服务器从原始服务器请求对象,再将其返回给客户端,目的: 满足客户端的请求而无需烦扰原始服务器,client,Proxyserver,client,http request,http request,http response,http response,http request,http resp

29、onse,origin server,origin server,应用层,54,为何Web缓存?,前提: 缓存与客户端比较“接近 “(e.g., 在同一网络中)响应时间较短:缓存的设备与客户端比较近减少了往来与远程服务器间的数据流量因为从学校或本地ISP 通往外部的链路往往是网络瓶颈,originservers,public Internet,institutionalnetwork,10 Mbps LAN,1.5 Mbps access link,institutionalcache,应用层,55,实验:构建Web服务器(iis),使用Iris分析DNS和Http协议,Http是否加密传输?

30、Http的服务器监听端口是否必须是80端口Http1.0和1.1之间的区别Web缓存真的存在么?,应用层,56,用telnet测试 http (客户端操作),1. 用Telnet 连接测试用的服务器(需要预先登录UNIX):,打开 TCP 连接到 port 80(默认的http 服务器端口) 位于 202.117.35.70后续键入的内容将发送到202.117.35.70 的 80 号端口,$telnet 202.117.35.70 80,2. 键入一条 http请求报文:,GET /j1010/hello.htm HTTP/1.0,将该指令键入后 (按两次回车键), 就将此最短之 (但是完整

31、的) GET 请求发到了 http 服务器,3. 请注意观察http服务器发回的响应报文!,应用层,57,ftp: 文件传输协议,传输文件往来与远程主机客户端/服务器模式客户端: 启动传输 (无论与往来远程主机)服务器: 远程主机ftp: RFC 959ftp 服务器: 端口 21,应用层,58,ftp: 分离的控制, 数据连接,ftp客户端在 ftp 服务器的 端口21进行联系, 使用TCP作为传输协议打开两个并行的连接:控制:在客户端和服务器之间交换命令, 响应。称为带外控制:“out of band control”数据: 往来于服务器的文件ftp 维持状态 (state): 当前目录、

32、先前的认证信息等,应用层,59,ftp 命令, 响应,样例命令:在控制通道上传送的ASCII文本USER username(登录)PASS password(登录)LIST (返回当前目录中的文件列表)RETR filename (取 (gets) 文件)STOR filename (存(puts) 文件到远程主机),返回码样例状态码和短语 (同 http)331 Username OK, password required125 data connection already open; transfer starting425 Cant open data connection452 Er

33、ror writing file,应用层,60,实验:构建FTP服务器,分析FTP协议,使用ServU或WftpD使用ftp命令行的方式访问使用cuteftp或flashfxp等窗口模式的ftp客户端问题:ftp的数据连接的端口真的是20么?,电子邮件概述,发送方,邮件缓存,接收端邮件服务器,用户代理,SMTP,SMTP,POP3,发送端邮件服务器,用户代理,用户邮箱,接收方,用户代理,用户代理,邮件服务器,邮件服务器,SMTP,SMTP,POP3,(发送邮件),(发送邮件),(发送邮件),(发送邮件),(读取邮件),(读取邮件),(TCP 连接),(TCP 连接),(TCP 连接),因特网,

34、电子邮件的发送和接收过程,发送方,邮件缓存,接收端邮件服务器,用户代理,发送端邮件服务器,用户代理,接收方,用户代理,用户代理,邮件服务器,邮件服务器,因特网,(1) 发信人调用用户代理来编辑要发送的邮件。用户代理用 SMTP 把邮件传送给发送端邮件服务器。,电子邮件的发送和接收过程,发送方,接收端邮件服务器,用户代理,SMTP,发送端邮件服务器,用户代理,接收方,用户代理,用户代理,邮件服务器,邮件服务器,SMTP,(发送邮件),(发送邮件),(TCP 连接),因特网,(2) 发送端邮件服务器将邮件放入 邮件缓存队列中,等待发送。,电子邮件的发送和接收过程,发送方,邮件缓存,接收端邮件服务器

35、,用户代理,SMTP,发送端邮件服务器,用户代理,接收方,用户代理,用户代理,邮件服务器,邮件服务器,SMTP,(发送邮件),(发送邮件),(TCP 连接),因特网,(3) 运行在发送端邮件服务器的 SMTP 客户进程,发现在邮件缓存中有待发送的邮件,就向运行在接收端邮件服务器的 SMTP 服务器进程发起 TCP 连接的建立。,电子邮件的发送和接收过程,发送方,邮件缓存,接收端邮件服务器,用户代理,SMTP,发送端邮件服务器,用户代理,接收方,用户代理,用户代理,邮件服务器,邮件服务器,SMTP,(发送邮件),(发送邮件),(TCP 连接),因特网,(4) TCP 连接建立后,SMTP 客户进

36、程开始向远程的 SMTP 服务器进程发送邮件。当所有的待发送邮件发完了,SMTP 就关闭所建立的 TCP 连接。,电子邮件的发送和接收过程,发送方,邮件缓存,接收端邮件服务器,用户代理,SMTP,发送端邮件服务器,用户代理,接收方,用户代理,用户代理,邮件服务器,邮件服务器,SMTP,(发送邮件),(发送邮件),(TCP 连接),因特网,(5) 运行在接收端邮件服务器中的 SMTP 服务器进程收到邮件后,将邮件放入收信人的用户邮箱中,等待收信人在方便时进行读取。,电子邮件的发送和接收过程,发送方,邮件缓存,接收端邮件服务器,用户代理,SMTP,发送端邮件服务器,用户代理,接收方,用户代理,用户

37、代理,邮件服务器,邮件服务器,SMTP,(发送邮件),(发送邮件),(TCP 连接),因特网,(6) 收信人在打算收信时,调用用户代理,使用 POP3(或 IMAP)协议将自己的邮件从接收端邮件服务器的用户邮箱中的取回(如果邮箱中有来信的话)。,应用层,68,电子邮件系统的组成,四个重要组件: 用户代理 邮件服务器 邮件传输协议: SMTP,MIME邮件接收协议:pop,IMAP用户代理写作, 编辑, 阅读邮件报文 e.g., Foxmail, OE, elm, Netscape Messenger,IE外发, 接收的报文存储在邮件服务器中,用户邮箱,外发报文队列,应用层,69,电子邮件: s

38、mtp RFC 821,使用 tcp 可靠的传送邮件报文, 端口25直接传输: 发送服务器到接收服务器传输的三个阶段握手(打招呼)报文传输结束命令/响应交互命令: ASCII文本响应: 状态码和短语邮件报文必须使用7-bit ASCII表示,应用层,70,Smtp相关说明,smtp 使用持续连接smtp 要求报文 (首部 & 信体) 全部使用 7-bit ASCII码某些代码组合不允许出现在报文中 (e.g., CRLF.CRLF). 此类数据必须进行编码 (通常使用 base-64 或 quoted printable)smtp 服务器用 CRLF.CRLF 表示邮件报文的结束,与 http

39、的比较:http: pull(拉)smtp: push(推)都使用 ASCII 命令/响应交互, 状态码http: 每个对象分装在各自的响应报文中smtp:多个对象在一个多分部的报文中传送,应用层,71,邮件报文格式,smtp: 交换邮件报文的协议RFC 822: 文本报文格式标准:首部诸行, e.g., To:From:Subject:不同 于 smtp 命令!信体即 “报文”, ASCII characters only,header,body,空行,应用层,72,通用因特网邮件扩充 MIME,SMTP 有以下缺点:SMTP 限于传送 7 位的 ASCII 码。 SMTP 不能传送可执行文

40、件或其他的二进制对象,包括许多其他非英语国家的文字(如中文、俄文,甚至带重音符号的法文或德文)。SMTP 服务器会拒绝超过一定长度的邮件。某些 SMTP 的实现并没有完全按照RFC 821的 SMTP 标准。,应用层,73,MIME 的特点,MIME 并没有改动 SMTP 或取代它。MIME 的意图是继续使用目前的RFC 822格式,但增加了邮件主体的结构,并定义了传送非 ASCII 码的编码规则。,应用层,74,MIME 和 SMTP 的关系,非 ASCII 码,7 位 ASCII 码,MIME,SMTP,MIME,SMTP,7 位 ASCII 码,7 位 ASCII 码,非 ASCII 码

41、,用户,用户,应用层,75,MIME 主要包括三个部分,5 个新的邮件首部字段,它们可包含在RFC 822首部中。这些字段提供了有关邮件主体的信息。定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变。,应用层,76,MIME使用的编码方式Base64编码,本质上是把三个Byte的数据用 4 个Byte表示,这四个Byte 中,实际用到的都只有前面6 bit,这样就不存在只能传输 7bit 的字符的问题,应用层,77,MIME使用的编码方式Quote Printable编码,把一个 8 bit 的字符用两个16进制数值

42、表示,然后在前面加“=”。例如10110011 10110101 10001001经过QP编码后=B3=B5=89。QP编码方式适用于当所传送的数据中只有少量的非ASCII,例如汉字。,应用层,78,MIME 增加 5 个新的邮件首部,MIME-Version: 标志 MIME 的版本。现在的版本号是 1.0。若无此行,则为英文文本。Content-Description: 这是可读字符串,说明此邮件是什么。和邮件的主题差不多。Content-Id: 邮件的惟一标识符。 Content-Transfer-Encoding: 在传送时邮件的主体是如何编码的。Content-Type: 说明邮件的

43、性质。,应用层,79,内容传送编码Content-Transfer-Encoding,最简单的编码就是 7 位 ASCII 码,而每行不能超过 1000 个字符。MIME 对这种由 ASCII 码构成的邮件主体不进行任何转换。 该字段指出此时MIME使用的是quoted-printable,还是Base64 编码。,应用层,80,邮件访问协议,SMTP: 发送/存储 到接收方的服务器邮件访问协议: 从服务器中取信POP: Post Office Protocol RFC 1939认证 (agent server) 和下载 IMAP: Internet Mail Access Protocol

44、RFC 1730更多功能(更为复杂)在服务器中操作存储在那里的报文HTTP: Hotmail , Yahoo! Mail, ,etc.,SMTP,POP3 orIMAP,receivers mail server,应用层,81,POP3 协议,认证阶段客户端命令: user: 用户名pass: 口令服务器响应+OK-ERR交互阶段, 客户端:list: 列出报文号码retr: 用报文号码取信dele:用报文号码删信quit,C: list S: 1 498 S: 2 912 S: . C: retr 1 S: S: . C: dele 1 C: retr 2 S: S: . C: dele 2

45、 C: quit S: +OK POP3 server signing off,S: +OK POP3 server ready C: user alice S: +OK C: pass hungry S: +OK user successfully logged on,应用层,82,IMAP协议,IMAP最大的好处就是用户可以在不同的地方使用不同的计算机随时上网阅读和处理自己的邮件。IMAP 还允许收信人只读取邮件中的某一个部分。例如,收到了一个带有视像附件(此文件可能很大)的邮件。为了节省时间,可以先下载邮件的正文部分,待以后有时间再读取或下载这个很长的附件。IMAP 的缺点是如果用户没有

46、将邮件复制到自己的 PC 机上,则邮件一直是存放在 IMAP 服务器上。因此用户需要经常与 IMAP 服务器建立连接。,应用层,83,实验:使用cmailserver构建邮件服务器,分析smtp和pop协议,应用层,84,本讲小结,应用服务的要求: 可靠性, 带宽, 延迟客户端-服务器范式Internet 传输服务模型面向连接的, 可靠的: TCP不可靠的, 数据报: UDP,Our study of network apps now complete!,特定协议:dnshttpftpsmtp, pop3,应用层,85,本讲小结,典型的请求/应答报文交换:客户请求信息或服务服务器用数据, 状态码进行响应报文格式:首部: 说明数据的信息数据: 进行通信的信息,Most importantly: learned about protocols,控制 vs. 数据报文in-based, out-of-band集中式 vs. 非集中式 无状态 vs. 有状态可靠的 vs. 不可靠的报文传输 “网络边缘上的复杂实体”安全性: 认证,应用层,86,相关习题,对同一个域名向DNS服务器发出好几次的DNS请求报文后,每一次得到IP地址都不一样。这可能吗? HTTP 1.1协议比起HTTP 1.0协议有哪些主要的变化? 电子邮件发送协议一定是smtp么?,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号