《第2章应用层PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第2章应用层PPT讲稿.ppt(107页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第2章应用层第1页,共107页,编辑于2022年,星期一2022年10月11日2目 录n应用层协议原理nWEB应用和HTTP协议n文件传输协议:FTPn因特网中的电子邮件nDNS:因特网的目录服务nP2P应用第2页,共107页,编辑于2022年,星期一2022年10月11日32.1 应用层协议原理n常见的网络应用常见的网络应用q上网浏览新闻IE、Maxthon、FireFoxq处理电子邮件Outlook Express、FoxMailq聊天QQ、MSN Messenger、UCq网络电话SkyPe、Net2Phoneq网络游戏对战CS、魔兽世界、联众q资源共享FTP、BT、EMULEq在线视频
2、VOD、ppLiveq搜索引擎Google、百度、MSN Search第3页,共107页,编辑于2022年,星期一2022年10月11日42.1 应用层协议原理 看了这么多成功的网络应用,可能你会跃跃欲试,很想编写一个类似于Google这样的超级网络应用,期待自己有一天也能成功迈入世界级的IT风云人物之列,甚至试图问鼎一下世界首富 那么现在的你应该做些什么呢?第4页,共107页,编辑于2022年,星期一2022年10月11日52.1 应用层协议原理n知道什么是网络应用程序知道什么是网络应用程序q可以向网络发送数据q可以从网络接收数据q可以对数据进行处理q也许还能够n将数据展现在界面上,以非常友
3、好的方式让你知道它在做什么n不时弹出一个小窗口,提示你不要太辛勤工作了,以表示对你无微不至的关怀 第5页,共107页,编辑于2022年,星期一2022年10月11日62.1 应用层协议原理n决定你的网络应用所采用的体系结构决定你的网络应用所采用的体系结构q客户/服务器体系结构(C/S):Web、FTPqP2P体系结构:EMULE、BitTorrentq混合体系结构:QQ第6页,共107页,编辑于2022年,星期一2022年10月11日72.1 应用层协议原理n客户客户/服务器体系结构特征服务器体系结构特征q存在一个能够向客户机提供服务的服务器,e.g.,Web服务器q存在一个或者多个主动连接服
4、务器,试图从服务器那里获取所需服务的客户机,e.g.,IE浏览器q特别注意1:客户之间不能互相通信q特别注意2:为提高服务器的处理能力,通常采用服务器群集(Server Farm)客户/服务器第7页,共107页,编辑于2022年,星期一2022年10月11日82.1 应用层协议原理nP2P体系结构特征体系结构特征q任何一方既提供服务又享受服务q结点之间可以直接通信q结点的地址以及他们之间的连接可能随时发生变化q例如:Gnutellaq特别注意:P2P体系结构非常容易扩展,但也特别难以管理 P2P第8页,共107页,编辑于2022年,星期一2022年10月11日92.1 应用层协议原理n混合体系
5、结构qC/S体系结构和P2P体系结构的混合体q 考虑第一个P2P应用Napster和即时通信(IM)第9页,共107页,编辑于2022年,星期一2022年10月11日102.1 应用层协议原理n网络应用涉及各个组成部分的交互网络应用涉及各个组成部分的交互q同一台主机上的进程之间通信的规则,由操作系统制定,和计算机网络无关,本课程不讨论。如需要了解,可参阅操作系统及相关书籍q不同主机上的进程之间通信的规则和网络相关,这套规则在计算机网络中,称之为“应用层协应用层协议议”,也是本章重点讨论的内容第10页,共107页,编辑于2022年,星期一2022年10月11日112.1 应用层协议原理n当你的网
6、络应用程序运行起来后,就变成当你的网络应用程序运行起来后,就变成了网络应用进程。产生了如下问题:了网络应用进程。产生了如下问题:q当你的网络应用和其它人开发的网络应用共同运行在一台主机上时,如何对这些网络应用进行区分?q通信子网只负责把数据交付到主机,并不负责把数据交付到应用进程,主机如何知道数据该交付到哪个网络应用进程?第11页,共107页,编辑于2022年,星期一2022年10月11日122.1 应用层协议原理n一个例子一个例子q你有一个信箱(非电子的),并且每天都会查看一次信箱,取走新的信件和报纸。q但是家里有七口人n邮局只负责根据信件上的门派号码把信送到信箱里n家里的每个成员根据收信人
7、姓名从信箱里拿到自己的信件n信箱就像主机,而家里的每个成员就像主机上运行的网络进程n信箱靠门派号码寻址,主机靠IP地址寻址n家庭成员靠姓名寻址,主机上的进程靠端口号寻址n通过主机+端口号可以找到一台主机上的进程(靠门派号+收件人姓名才能找到收件人)第12页,共107页,编辑于2022年,星期一2022年10月11日132.1 应用层协议原理n类比到因特网,提供了类似的解决方法,类比到因特网,提供了类似的解决方法,那就是那就是“套接字(套接字(Socket)”q每个网络应用进程都有一个属于自己的套接字,该套接字在整个因特网上独一无二n主机地址:标识该网络应用进程运行在因特网上哪一台主机上,通常使
8、用32位的IP地址进行标识n端口地址:在该主机上标识该网络应用进程,通常使用16位的端口号进行标识qe.g.,WEB Server:80;Mail Server:25;n套接字的长度为48位第13页,共107页,编辑于2022年,星期一2022年10月11日142.1 应用层协议原理n进程通过套接字来接进程通过套接字来接收和发送报文收和发送报文n套接字相当于一个通套接字相当于一个通道道q发送进程将报文交给套接字q套接字将这些报文传输到接收进程的套接字processTCP withbuffers,variablessockethost orserverprocessTCP withbuffers
9、,variablessockethost orserverInternetcontrolled byapp developer第14页,共107页,编辑于2022年,星期一2022年10月11日152.1 应用层协议原理n因特网会给网络应用提供很多不同类型的服务,你的网络应用需要哪些服务呢?q数据的可靠传输:你的网络应用是否需要可靠?q带宽的自动控制:你的网络应用对带宽是否敏感?q传输和反馈的实时性q安全性:SSL(安全套接字层,在应用层实现)第15页,共107页,编辑于2022年,星期一2022年10月11日162.1 应用层协议原理n常见应用程序对传输服务的要求应用程序应用程序文件传输文件
10、传输电子邮件电子邮件Web 网页网页实时音频实时音频/视频视频存储存储音频音频/视频视频交互式游戏交互式游戏即时讯息即时讯息数据丢失数据丢失不能丢失不能丢失不能丢失允许丢失允许丢失允许丢失允许丢失不能丢失带宽带宽弹性弹性弹性音频:5Kb-1Mb视频:10Kb-5Mb同上 几 Kb/s 以上弹性时间敏感时间敏感不不不100s msecfew secs100s msecyes and no第16页,共107页,编辑于2022年,星期一2022年10月11日172.1 应用层协议原理n因特网运输层将所提供的服务整合成两类传因特网运输层将所提供的服务整合成两类传输服务,你需要决定你的网络应用使用哪一输
11、服务,你需要决定你的网络应用使用哪一类传输服务。类传输服务。q传输控制协议TCPn面向连接:在客户端和服务器进程之间需要建立连接n可靠传输:在发送进程和接收进程之间n流量控制:发送数据的速度不能超过接收的速度 n拥塞控制:当网络超负荷时,约束发送端口,减缓发送速度n不提供:实时性,最小带宽承诺第17页,共107页,编辑于2022年,星期一2022年10月11日182.1 应用层协议原理qUDPn在客户端和服务器进程之间实现“不可靠的”数据传输n不提供:连接建立,可靠性保证,流量控制,拥塞控制,实时性,最小带宽承诺第18页,共107页,编辑于2022年,星期一2022年10月11日192.1 应
12、用层协议原理n因特网常见应用采用的传输协议因特网常见应用采用的传输协议应用应用电子邮件电子邮件远程终端访问远程终端访问Web 文件传输文件传输流媒体流媒体IP电话电话应用协议应用协议smtp RFC 821telnet RFC 854http RFC 2068ftp RFC 959HTTP(如YouTube)、RTPSIP、RTP或专用协议(如Skype)所依赖的传输协议所依赖的传输协议TCPTCPTCPTCPTCP or UDP通常使用 UDP第19页,共107页,编辑于2022年,星期一2022年10月11日202.1 应用层协议原理n至此你已经获得了构造属于你自己的网络应用所需要的最基本
13、的知识。n但是这还远远不够,你还需要继续学习:q协议到底怎样工作q套接字如何工作q传输层的服务是如何提供的qIP地址是怎么回事q网卡和网线起了什么样的作用q如何保证网络应用的安全性和性能 第20页,共107页,编辑于2022年,星期一2022年10月11日212.2 WEB应用和HTTP协议n历史的回顾历史的回顾q19世纪70年代,电话的发明,扩展了人类通信的范围,增强了人类通信的实效性q20世纪20年代,广播收音机和电视的发明,极大的丰富了人类可获取信息q20世纪90年代,WEB的发明,极大的提高了人类主动获取信息的能力n广播、收音机、电视和广播、收音机、电视和WEB的比较的比较q广播形式和
14、按需操作q你不能发布电视节目,但可以发布WEB内容第21页,共107页,编辑于2022年,星期一2022年10月11日222.2 WEB应用和HTTP协议nWEB的构成的构成qWEB服务器:IIS、Apache、TomCatq浏览器:IE、Maxthon、Firefoxq协议n信息表达的协议HTMLn信息传输的协议HTTP说明:WEB属于C/S模式第22页,共107页,编辑于2022年,星期一2022年10月11日232.2 WEB应用和HTTP协议nWEB内容的表达内容的表达qWeb 页面由一些对象组成。q对象可以是HTML文件,JPEG图片,音频文件,Java AppletqHTML文件是
15、Web页面的基础,它可以包括各种各样的对象,是一个容器对象n如果一个HTML文件包含5个图片,就一共有6个对象q任何一个对象都可以用 URL来定位qURL的例子: WEB应用和HTTP协议nWEB内容的传输内容的传输HTTP协议协议q客户端/服务器模式n客户端:浏览器请求、接收、展示 Web对象n服务器:Web 服务器发送对象,对请求进行响应qhttp1.0:RFC 1945qhttp1.1:RFC 2068运行IE浏览器的PC运行IIS的服务器运行FireFox浏览器的PChttp requesthttp requesthttp responsehttp response第24页,共107页
16、,编辑于2022年,星期一2022年10月11日252.2 WEB应用和HTTP协议HTTP:TCP 传输服务:q客户端启动TCP连接请求(创建套接字)到服务器,端口 80q服务器接受来自客户端的 TCP 连接请求并建立连接qhttp 报文(应用层协议报文)在浏览器(http client)和Web服务器(http server)之间进行交换q关闭TCP 连接http 是“无状态(stateless)”的n服务器不保留任何访问过的请求信息小评论保留状态的协议很复杂!q过去的历史(状态)需保留q一旦浏览器/服务器崩溃,它们各自的状态视图就会发生分歧,还需要重新进行核对。第25页,共107页,编辑
17、于2022年,星期一2022年10月11日262.2 WEB应用和HTTP协议nHTTP1.0的传输模式的传输模式非持久连接非持久连接假设用户键入了一个 URL 客户端启动 TCP 连接到上的http 服务器(进程).Port 80 是 http 服务器的默认端口.2.http客户端发送 http 请求报文(包括URL)进入 TCP 连接插口(socket)1b.在 上的http 服务器在 port 80 等待 TCP 的连接请求.“接受”连接并通知客户端3.http 服务器接收到请求报文,形成 响应报文(包含了所请求的对象,cs/index.htm),将报文送入插口(socket)time(
18、该网页包含文本并引用了10 jpeg 图片)第26页,共107页,编辑于2022年,星期一2022年10月11日272.2 WEB应用和HTTP协议5.http 客户端接收到了包含html文件的响应报文。分析 html 文件,发现 10 个引用的 jpeg 对象6.对10 jpeg objects 逐个重复1-5 步4.http 服务器关闭 TCP 连接.time第27页,共107页,编辑于2022年,星期一2022/10/112.1 网络应用层原理第2章:应用层-28响应时间模型nRTT:一个小分组从一个小分组从client到到server,再回到,再回到client的时间。的时间。(Rou
19、nd Trip Time)响应时间:n1个 RTT 启动TCP连接n1个 RTT:从开始发送请求到响应报文的第一个字节到达的时间n文件传输时间total=2RTT+文件传输时间time to transmit fileinitiate TCPconnectionRTTrequestfileRTTfilereceivedtimetime第28页,共107页,编辑于2022年,星期一2022年10月11日292.2 WEB应用和HTTP协议n非持久连接工作机制分析非持久连接工作机制分析q取对象需要2 RTTs(Round-Trip Time)nTCP 连接n对象请求/传送q许多浏览器同时打开多个并
20、行的连接来改善性能考虑:如果有1万台客户机访问WEB服务器的某个页面,该页面有100个对象,那就意味着需要100万个连接,1个服务器能够支持吗?第29页,共107页,编辑于2022年,星期一2022年10月11日302.2 WEB应用和HTTP协议nHTTP1.1引入的新传输模式引入的新传输模式持久连接持久连接q服务器在发送响应后,不再断开TCP连接,而是保持该连接,用于后续对象的传送,直至该连接“休息”了一个较长的时间后,才断开该连接q减少了对服务器端连接数的需要,从而减少了对服务器端套接字资源的占用,提高了服务器的负载能力q持久连接又可以分为n非流水线方式:一个对象传输完成方能传输下一个n
21、流水线方式:可以一次性发送所有请求,逐个接收第30页,共107页,编辑于2022年,星期一2022年10月11日312.2 WEB应用和HTTP协议nHTTP报文类型报文类型qHTTP请求报文qHTTP响应报文第31页,共107页,编辑于2022年,星期一2022年10月11日322.2 WEB应用和HTTP协议nHTTP请求报文请求报文q一段典型的HTTP请求报文GET/somedir/page.html HTTP/1.0 Host:www.someschool.edu Connection:close User-agent:Mozilla/4.0Accept-language:fr(额外的
22、 carriage return,line feed)请求行请求行(GET,POST,HEAD 命令命令)首部首部 诸行诸行回车、换行表示回车、换行表示报文结束报文结束第32页,共107页,编辑于2022年,星期一2022年10月11日332.2 WEB应用和HTTP协议qHTTP请求报文的一般格式第33页,共107页,编辑于2022年,星期一2022年10月11日342.2 WEB应用和HTTP协议n请求行支持的方法请求行支持的方法qHTTP1.0 定义的方法nGETq向服务器请求指定URL的对象q主体为空nPOSTq请求一个WEB页面的同时用于向服务器提交表单数据q主体部分为表单数据q 注
23、意:可以不使用POST方法,而使用GET方法发送表单数据以获取新的WEB页面。例如: WEB应用和HTTP协议nHEADq请求服务器返回一个响应报文,但是仅仅只需要获得响应的协议头,该报文中并不包含请求的对象。该方法常常用来进行故障跟踪。qHTTP1.1新定义的方法nPUTq上传文件,文件放在实体主体字段中,目标路径由URL字段标明nDELETEq删除URL字段中指定的文件第35页,共107页,编辑于2022年,星期一2022年10月11日362.2 WEB应用和HTTP协议nHTTP响应报文响应报文q一段典型的HTTP响应报文HTTP/1.0 200 OK Connection closeD
24、ate:Mon,03 Aug 2009 12:00:15 GMT Server:Apache/1.3.0(Unix)Last-Modified:Sun,7 Jun 2009.Content-Length:6821 Content-Type:text/html data data data data data.状态行状态行(协议状态码协议状态码状态短语状态短语)首部首部 诸行诸行数据数据,e.g.,被请求的被请求的html文件文件第36页,共107页,编辑于2022年,星期一2022年10月11日372.2 WEB应用和HTTP协议qHTTP响应报文的一般格式第37页,共107页,编辑于2022
25、年,星期一2022年10月11日382.2 WEB应用和HTTP协议n常见的常见的HTTP响应状态码和短语响应状态码和短语200 OKq请求成功,被请求的对象在报文中301 Moved Permanentlyq被请求的对象被移动,新位置在报文中有说明(Location:)400 Bad Requestq服务器不能解释请求报文404 Not Foundq服务器上找不到请求的对象505 HTTP Version Not Supportedq服务器不支持请求报文使用的HTTP协议版本第38页,共107页,编辑于2022年,星期一2022年10月11日392.2 WEB应用和HTTP协议n用户用户服务
26、器交互:服务器交互:CookieqWEB站点使用Cookie的目的n限制用户的访问n把内容和用户身份关联起来qCookie技术的组成部分:n在HTTP响应报文中有一个Cookie首部行n在HTTP请求报文中也有一个Cookie首部行n在用户的端系统中保留了一个Cookie文件,由用户浏览器负责管理n在Web站点有一个后端数据库第39页,共107页,编辑于2022年,星期一2022年10月11日402.2 WEB应用和HTTP协议qCookie工作流程客户端客户端服务器服务器http请求报文http响应报文+Set-cookie:1678 http请求报文cookie:1678http响应报文h
27、ttp请求报文cookie:1678http响应报文Cookie特定动作Cookie特定动作服务器为用户创建ID:1678后端数据库的记录访问访问Cookie fileamazon:1678ebay:8734Cookie fileebay:8734Cookie fileamazon:1678ebay:8734一周以后:第40页,共107页,编辑于2022年,星期一2022年10月11日412.2 WEB应用和HTTP协议qCookies能为我们带来什么好处呢?n身份认证n“购物车”n“产品推荐”n用户会话状态 (Web、E-mail)Cookies和隐私性:nCookies允许网站获得相当多的
28、用户的信息n你可能会向网站提供你的姓名和E-Mail地址n搜索引擎也可以使用cookie技术获得很多的信息n广告公司也可以通过用户访问过的网站来获得用户的相关信息第41页,共107页,编辑于2022年,星期一2022年10月11日422.2 WEB应用和HTTP协议nWEB缓存缓存q目的n加速客户端访问WEB页面的速度,减少时延n减少局域网与外部因特网交换的数据量,从而在达到同等服务质量的同时,可以使用较小的网络带宽,节约费用客户端WEB 缓存客户端http requesthttp requesthttp responsehttp responsehttp requesthttp respon
29、seWeb服务器第42页,共107页,编辑于2022年,星期一2.2 WEB应用和HTTP协议nWEB缓存缓存q缓存同时充当客户和服务器q一般缓存由ISP来购买并安装(大学、公司、居民区ISP)为什么要用到Web缓存?n减少客户请求的响应时间n减少一个机构因特网链接的通信量n因特网上存在大量的Web缓存以便内容提供商能更有效地分发内容2022年10月11日43第43页,共107页,编辑于2022年,星期一2022年10月11日442.2 WEB应用和HTTP协议n缓存举例缓存举例q假设n平均对象的大小=100,000 bitsn浏览器对这些对象的平均访问速率为15个/秒n从因特网一侧的路由器转
30、发HTTP请求到它收到响应报文的平均时间为 2秒初始服务器因特网机构网络10 Mbps 局域网1.5 Mbps 访问链路第44页,共107页,编辑于2022年,星期一2022年10月11日452.2 WEB应用和HTTP协议q结果n总延迟 =因特网延迟+访问链路延迟+局域网延迟n局域网的流量强度=0.15n接入链路的流量强度=1n当流量强度为1时,时延可能非常大,从而导致总时延可能要以分钟来计算原始服务器因特网机构网络10 Mbps 局域网1.5 Mbps 访问链路流量强度流量强度=La/R=(15个请求个请求/秒秒 x 100kb/请求请求)/R局域网:局域网:15*100kb/10*100
31、0K=0.15Internet:15*100kb/1.5*1000K=1第45页,共107页,编辑于2022年,星期一2022年10月11日462.2 WEB应用和HTTP协议n改进方案改进方案1增加出口带宽增加出口带宽q假设n将访问链路带宽增加到10Mbpsq结果n局域网的流量强度=0.15,n接入链路的流量强度=0.15n 这时访问延迟和局域网延迟最多数十毫秒n总延迟 =Internet延迟+访问延迟+局域网延迟 2 sec 请注意:增加出口带宽的费用是非常昂贵的第46页,共107页,编辑于2022年,星期一2022年10月11日472.2 WEB应用和HTTP协议n改进方案改进方案2 架
32、设架设WEB缓存缓存q假设命中率为0.4q结果n40%的请求几乎可以马上得到响应,时延大概10msn60%的请求必须从服务器上获得响应n接入链路的流量强度减少到0.6,其导致的延迟可以忽略(例如10msec)。n总的平均延迟 =Internet 延迟+访问延迟+局域网延迟 0.6 x(2.01)秒+0.4 x(0.01s)略大于1.2 secs,好于方案1原始服务器因特网机构网络10 Mbps LAN1.5 Mbps 访问链路WEB 缓存代价:一台普通代价:一台普通PC+一套免费的一套免费的WEB缓存软件缓存软件第47页,共107页,编辑于2022年,星期一2022年10月11日482.2 W
33、EB应用和HTTP协议n条件条件GET方法的使用方法的使用q目的:更新WEB缓存中的WEB对象副本q举例nWEB缓存向WEB服务器发送请求报文GET/fruit/kiwi.gif HTTP/1.1Host:第48页,共107页,编辑于2022年,星期一2022年10月11日492.2 WEB应用和HTTP协议nWEB服务器向该WEB缓存发送响应报文HTTP/1.1 200 OKDate:Mon,6 Jul 2009 15:39:29Server:Apache/1.3.0(Unix)Last-Modified:Wed,1 Jul 2009 09:23:24Content Type:image/g
34、if(data data data data data data)第49页,共107页,编辑于2022年,星期一2022年10月11日502.2 WEB应用和HTTP协议n一周后,一个客户端请求该对象,为判断WEB缓存中的该对象副本是否最新的,该WEB缓存向原始服务器发出一个条件GET方法,执行更新检查GET/fruit/kiwi.gif HTTP/1.1Host:If-Modified-Since:Wed,1 Jul 2009 09:23:24第50页,共107页,编辑于2022年,星期一2022年10月11日512.2 WEB应用和HTTP协议n如果该对象没有被修改过,WEB缓存上的仍然是
35、最新版本,则WEB服务器发送如下响应报文HTTP/1.1 304 Not ModifiedDate:Mon,13 Jul 2009 15:39:29Server:Apache/1.3.0(Unix)(实体主体为空)第51页,共107页,编辑于2022年,星期一2022年10月11日522.2 WEB应用和HTTP协议n如果该对象在此之后被修改过,WEB服务器上有最新版本,则WEB服务器发送新版本的对象给WEB缓存HTTP/1.1 200 OKDate:Mon,13 Jul 2009 15:39:29Server:Apache/1.3.0(Unix)Last-Modified:Sat,11 Ju
36、l 2009 09:23:24Content Type:image/gif(data data data data data data)第52页,共107页,编辑于2022年,星期一2022年10月11日532.3 文件传送协议:FTPnFTP简况简况(RFC 959)q使用TCP协议传输数据qC/S模式q端口:21/20文件传输FTP服务器FTP用户接口FTP客户机本地文件系统远程文件系统用户第53页,共107页,编辑于2022年,星期一2022年10月11日542.3 文件传送协议:FTPnFTP与与HTTP传输文件的共同点传输文件的共同点q均使用TCP协议nFTP与与HTTP传输文件的不
37、同点传输文件的不同点qFTP的控制信息是带外传送的,而HTTP的控制信息则是带内传送的nFTP存在两个并行的连接q控制连接:持久连接,保存状态q数据连接:非持久连接,针对会话的每一次文件传输都需要建立一个新的数据连接。FTP客户机FTP服务器TCP 控制连接 端口 21TCP 数据连接 端口 20第54页,共107页,编辑于2022年,星期一2022年10月11日552.3 文件传送协议:FTPqFTP连接是有状态的,而HTTP连接则是无状态的nFTP服务器会在整个会话期间维护用户的状态信息q把用户帐户和控制连接联系起来q追踪用户在远程目录树上的位置q对活动的用户会话的状态进行追踪,以限制FT
38、P会话总数第55页,共107页,编辑于2022年,星期一2022年10月11日562.3 文件传送协议:FTPn常见的常见的FTP命令命令qUSER username(向服务器传送用户标识)qPASS password(向服务器传送用户口令)qLIST(返回当前目录中的文件列表)qRETR filename(取(get)文件)qSTOR filename(存(put)文件到远程主机)第56页,共107页,编辑于2022年,星期一2022年10月11日572.3 文件传送协议:FTPn常见的常见的FTP应答应答q331 Username OK,password requiredq125 data
39、 connection already open;transfer startingq425 Cant open data connectionq452 Error writing file注意:FTP的应答和HTTP的应答是否很类似?第57页,共107页,编辑于2022年,星期一2022年10月11日582.4 因特网中的电子邮件n电子邮件系统的构成电子邮件系统的构成q用户代理 q邮件服务器 q简单邮件传输协议:SMTP用户邮箱外发报文队列mailserveruseragentuseragentuseragentmailserveruseragentuseragentmailserverus
40、eragentSMTPSMTPSMTP第58页,共107页,编辑于2022年,星期一2022年10月11日592.4 因特网中的电子邮件n用户代理用户代理q写作,编辑,阅读邮件报文qe.g.OE、FoxMailn邮件服务器邮件服务器q邮箱 包含了收到的用户邮件(尚未被阅读)q报文 队列包含了要向外发送的邮件报文nSMTP 协议协议用于发送邮件用于发送邮件q客户端:将邮件发送到邮件服务器q“服务器”:接收和转发邮件用户邮箱外发报文队列mailserveruseragentuseragentuseragentmailserveruseragentuseragentmailserveruserage
41、ntSMTPSMTPSMTP第59页,共107页,编辑于2022年,星期一2022年10月11日602.4 因特网中的电子邮件n一次邮件传送过程一次邮件传送过程nAlice使用用户代理撰写邮件给:bobsomeschool.edunAlice 的用户代理通过SMTP将邮件给她的邮件服务器;邮件被保存在消息队列中nSMTP的客户端向Bob的邮件服务器建立一个TCP连接nSMTP的客户端通过这个TCP连接用SMTP协议发送Alice的邮件到Bob的邮件服务器nBob的邮件服务器将这个消息存储到Bob的邮箱中nBob使用他的用户代理阅读这个消息(取邮件,POP3,IMAP)用户代理邮件服务器邮件服务
42、器用户代理123456第60页,共107页,编辑于2022年,星期一2022年10月11日612.4 因特网中的电子邮件nSMTP协议协议q使用 TCP可靠的传送邮件报文,端口25q直接传输:发送服务器到接收服务器q传输的三个阶段n握手(打招呼)n报文传输n结束q命令/响应交互n命令(client-Server):ASCII文本n响应(Server-Client):状态码和短语q邮件报文必须使用7-bit ASCII表示第61页,共107页,编辑于2022年,星期一2022年10月11日622.4 因特网中的电子邮件S:220 hamburger.edu-(mailserver)C:HELO
43、crepes.fr-(client hostname)S:250 Hello crepes.fr,pleased to meet you C:MAIL FROM:S:250 alicecrepes.fr.Sender ok C:RCPT TO:S:250 bobhamburger.edu.Recipient ok C:DATA S:354 Enter mail,end with.on a line by itself C:Do you like ketchup?C:How about pickles?C:.S:250 Message accepted for delivery C:QUIT S
44、:221 hamburger.edu closing connection第62页,共107页,编辑于2022年,星期一2022/10/112.1 网络应用层原理第2章:应用层-63自测 smtp 交互:n$telnet MailServerName 25n见到邮件服务器的 220 响应后n键入 HELO,MAIL FROM,RCPT TO,DATA,QUIT 命令 上述过程可以不使用用户代理,就能直接将电子邮件发送出去(因为目前大部分邮件服务器的交互过程趋于复杂,本试验不一定都能进行)。第63页,共107页,编辑于2022年,星期一2022年10月11日642.4 因特网中的电子邮件nSMT
45、P评述评述qSMTP使用持久连接qSMTP要求报文(首部&信体)全部使用 7-bit ASCII码q某些代码组合不允许出现在报文中(e.g.,CRLF.CRLF).此类数据必须进行编码(如 base-64编码)qSMTP服务器用 CRLF.CRLF 表示邮件报文的结束nSMTP vs HTTPq都使用 ASCII 命令/响应来交互并使用状态码qSMTP要求报文 全部使用 7-bit ASCII码,而HTTP没有这个限制qHTTP:pull(拉)vs SMTP:push(推)nHTTP:文件的接受者发起连接nSMTP:文件的发送者发起连接qHTTP的每个对象分装在各自的响应报文中,而SMTP的多
46、个对象在一个“多分部”的报文中传送第64页,共107页,编辑于2022年,星期一2022年10月11日652.4 因特网中的电子邮件n邮件报文格式邮件报文格式q首部诸行,e.g.,nTo:nFrom:nSubject:它不同 于 smtp 命令。前者是邮件报文的一部分,后者是握手协议的一部分。q信体n即“报文”,只能是ASCII 码headerbody空行第65页,共107页,编辑于2022年,星期一2022年10月11日662.4 因特网中的电子邮件n非非ASCII码数据的码数据的MIME扩展扩展From:alicecrepes.fr To:bobhamburger.edu Subject:
47、Picture of yummy crepe.MIME-Version:1.0 Content-Transfer-Encoding:base64 Content-Type:image/jpeg base64 encoded data.base64 encoded data 多媒体类型多媒体类型,子类型子类型,参数参数声明声明数据编码方法数据编码方法MIME 版本版本编码后的数据编码后的数据第66页,共107页,编辑于2022年,星期一2022年10月11日672.4 因特网中的电子邮件n从邮箱获取邮件的方法从邮箱获取邮件的方法qPOP3协议(Post Office Protocol)qIMAP
48、协议(Internet Mail Access Protocol)qHTTP第67页,共107页,编辑于2022年,星期一2022年10月11日682.4 因特网中的电子邮件nPOP3协议的认证阶段协议的认证阶段ntelnet mailserver 110q客户端命令:nuser:用户名npass:口令q服务器响应n+OKn-ERRS:+OK POP3 server ready C:user alice S:+OK C:pass hungry S:+OK user successfully logged on第68页,共107页,编辑于2022年,星期一2022年10月11日692.4 因特网
49、中的电子邮件nPOP3协议的交互协议的交互命令命令qlist:列出报文号码qretr:用报文号码取信qdele:用报文号码删信qquit退出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 C:quit S:+OK POP3 server signing off第69页,共107页,编辑于2022年,星期一2022年10月11日702.4 因特网中的电子邮件nPOP3讨论讨论q“下载-删除”方式:用户如果更换客户机无法再次阅读原来的邮件q“下载-保存”方式:在不同的邮件服务器上保存邮件的副本qPOP3
50、会话是无状态的,以简化服务的实现q用户使用POP3协议无法在邮件服务器上对自己的邮件进行重组织,只能将邮件下载到本地计算机进行重组织思考:Outlook Express如何取邮件?它为何可以组织文件夹?第70页,共107页,编辑于2022年,星期一2022年10月11日712.4 因特网中的电子邮件nIMAP协议协议q相比POP3具有更多特色,也更复杂q将所有的邮件都保存在服务器上q允许用户在服务器上组织自己的邮件目录qIMAP维护了IMAP会话的用户状态信息:q允许用户代理获取报文组件n只读取报文的报文首部n只读取MIME报文的一部分第71页,共107页,编辑于2022年,星期一2022/1