1、第第2讲讲:应用层应用层1第第2讲讲:应用层应用层本讲目标本讲目标:n网络应用层的概念和实网络应用层的概念和实现现p客户端客户端-服务器范式服务器范式pP2P结构结构p服务模型服务模型n通过对常用应用层协议通过对常用应用层协议的探讨和分析来学习网的探讨和分析来学习网络协议络协议深层次目标深层次目标 n特定协议特定协议:phttppftppsmtpppop pdns应用层协议原理应用层协议原理(当我们想要将想法变成真实的网络应用)(当我们想要将想法变成真实的网络应用)n研发网络应用程序的研发网络应用程序的核心是写出能够运行核心是写出能够运行在不同的端系统和通在不同的端系统和通过网络彼此通信的程过
2、网络彼此通信的程序。序。n重要的是,你不需要重要的是,你不需要编写在网络核心设备编写在网络核心设备上运行的软件,因为上运行的软件,因为网络核心并不在应用网络核心并不在应用层起作用。层起作用。n应用程序的体系结构应用程序的体系结构明显不同于网络的体明显不同于网络的体系结构。系结构。n从应用程序的研发者从应用程序的研发者的角度看,网络的体的角度看,网络的体系结构是固定的,并系结构是固定的,并为应用程序提供了特为应用程序提供了特定的服务集合。定的服务集合。2第第2讲讲:应用层应用层3客户端客户端/服务器体系结构服务器体系结构客户端客户端:n发起同服务器的联系发起同服务器的联系;n一般都从服务器请求服
3、务;一般都从服务器请求服务;n可能总是打开,也可能有时;可能总是打开,也可能有时;n客户机之间不直接通信客户机之间不直接通信nWeb:客户端由浏览器实现客户端由浏览器实现;e-mail:通过通过OE、Foxmial实现实现服务器服务器:n向客户端提供所请求的服务向客户端提供所请求的服务n总是打开的总是打开的ne.g.,Web 服务器发送被请求的服务器发送被请求的 Web 页面页面,邮件服务器传递邮件服务器传递 e-mail服务器场(主机群集)服务器场(主机群集):n通常是基础设施密集通常是基础设施密集n购买安装和维护服务器场,支付大量互联和带宽费用购买安装和维护服务器场,支付大量互联和带宽费用
4、第第2讲讲:应用层应用层4P2P体系结构体系结构特点:特点:n任意间断连接的主机对任意间断连接的主机对称为称为对等方;对等方;n对等方之间直接相互通信;对等方之间直接相互通信;n对等方不为服务提供商所有;对等方不为服务提供商所有;n某些应用具有混合的体系结构(某些应用具有混合的体系结构(由客户机由客户机/服务器和服务器和P2P元素结合元素结合而成);而成);n不需要庞大的服务器基础设施和不需要庞大的服务器基础设施和服务器带宽,降低了成本;服务器带宽,降低了成本;n自扩展性自扩展性n每个对等方都由请求服务而产每个对等方都由请求服务而产生负载,但每个对等方都向其生负载,但每个对等方都向其他对等提供
5、服务从而为系统增他对等提供服务从而为系统增加了服务能力加了服务能力第第2讲讲:应用层应用层5应用程序应用程序和和应用层协议应用层协议应用程序应用程序:沟通沟通,分布式的进程分布式的进程p运行在网络主机中的运行在网络主机中的“用户空用户空间间”p在应用程序间交换报文在应用程序间交换报文pe.g.,email,ftp,Web应用层协议:应用层协议:p应用层的一个应用层的一个“组成部分组成部分”p定义应用程序需交换的报文定义应用程序需交换的报文 和和所需采取的动作所需采取的动作p使用较低层次所提供的通信服使用较低层次所提供的通信服务务(TCP,UDP)applicationtransportnetw
6、orkdata linkphysicalapplicationtransportnetworkdata linkphysicalapplicationtransportnetworkdata linkphysical第第2讲讲:应用层应用层6进程通信进程通信进程进程(Process):主机中运行主机中运行中的程序中的程序.n当进程运行在相同的端系当进程运行在相同的端系统之中时统之中时,两个进程使用两个进程使用进程间通信机制相互通信进程间通信机制相互通信(由由 OS管理管理).n而运行在不同主机上的进而运行在不同主机上的进程则使用应用层协议进行程则使用应用层协议进行通信通信.n发送进程创建并向网
7、络发发送进程创建并向网络发送报文,接收进程接收这送报文,接收进程接收这些报文并可能负责回送报些报文并可能负责回送报文文.n网络应用程序由成对的进网络应用程序由成对的进程组成,我们将这两个进程组成,我们将这两个进程之一标示为客户机,另程之一标示为客户机,另一个标示为服务器;一个标示为服务器;n在给定的一对进程间通信在给定的一对进程间通信会话中,发起通信(即在会话中,发起通信(即在该会话开始时与其他进程该会话开始时与其他进程联系)的进程称为客户机联系)的进程称为客户机,在会话开始时等待联系,在会话开始时等待联系的进程为服务器;的进程为服务器;第第2讲讲:应用层应用层7进程与计算机网络之间的接口进程
8、与计算机网络之间的接口进程通过一个称为进程通过一个称为套接字套接字的软件的软件接口在网络上发送和接收报文接口在网络上发送和接收报文n套接字是一台主机内应用层和套接字是一台主机内应用层和传输层间的接口传输层间的接口n又称为应用程序和网络之间的又称为应用程序和网络之间的应用程序编程接口(应用程序编程接口(Application Programming Interface,API)n应用程序开发者可以控制套机应用程序开发者可以控制套机贼在应用层端的所有东西,但贼在应用层端的所有东西,但是对该套接字的运输层端几乎是对该套接字的运输层端几乎没有控制没有控制n1、选择运输层协议;、选择运输层协议;2、设、
9、设定几个运输层参数。定几个运输层参数。Q:某个进程如何某个进程如何“认认定定”另一个需要与之另一个需要与之通信的进程通信的进程?pIP 地址地址-运行另一个运行另一个进程的主机所拥有的进程的主机所拥有的p“端口号(端口号(PORT#)”允许接收主机来允许接收主机来确定的一个标识,本确定的一个标识,本地进程将报文发送给地进程将报文发送给它它第第2讲讲:应用层应用层8应用进程需要怎样的传输服务应用进程需要怎样的传输服务?数据丢失(数据丢失(Data loss)n容忍丢失的应用容忍丢失的应用(e.g.,audio)可以容忍某种程可以容忍某种程度上的数据丢失度上的数据丢失n可靠数据传输可靠数据传输(e
10、.g.,文文件传输件传输,telnet)要求要求100%可靠的数据传输可靠的数据传输n安全性(安全性(Safe)n运输层能够为应用程序运输层能够为应用程序提供一种或多种安全性提供一种或多种安全性服务服务ne.g.,数据加密、解密,数据加密、解密,完整性,端点鉴别等完整性,端点鉴别等带宽(带宽(Bandwidth)n带宽敏感的应用带宽敏感的应用(e.g.,因特网电因特网电话等、多媒体应用话等、多媒体应用)对最低带宽对最低带宽有要求有要求n如果不能提供这么种吞吐量,那如果不能提供这么种吞吐量,那么应用程序或以较低速率编码,么应用程序或以较低速率编码,或放弃发送(自适应编码技术)或放弃发送(自适应编
11、码技术)n弹性应用弹性应用(e.g.,文件传输文件传输)则可则可灵活应用所能得到的带宽灵活应用所能得到的带宽实时性(实时性(Timing)某些应用某些应用(e.g.,IP 电话等交互式实电话等交互式实时应用程序时应用程序)要求较低的时延要求较低的时延第第2讲讲:应用层应用层9常用应用程序对传输功能的要求常用应用程序对传输功能的要求应用程序应用程序文件传输文件传输e-mailWeb 网页网页实时音频实时音频/视频视频存储存储音频音频/视频视频交互式游戏交互式游戏金融应用金融应用数据丢失数据丢失不丢失不丢失不丢失容忍丢失容忍丢失容忍丢失不丢失带宽带宽弹性弹性弹性音频:5Kb-1Mb视频:10Kb-
12、5Mb同上 几 Kb/s 以上弹性实时性实时性无无无100 msfew secs100msyes and no第第2讲讲:应用层应用层10Internet 的传输协议服务的传输协议服务TCP 服务:n面向连接服务面向连接服务:在客户端和服在客户端和服务器进程之间需要建立连接务器进程之间需要建立连接(互相交换运输层控制信息)(互相交换运输层控制信息)n可靠数据传输服务可靠数据传输服务:无差错无差错、按适当顺序交付发送的数据、按适当顺序交付发送的数据n流量控制流量控制:发送数据的速度决发送数据的速度决不超过接收的速度不超过接收的速度 n拥塞控制拥塞控制:当网络超负荷时,当网络超负荷时,束紧发送端口
13、,减缓发送速度束紧发送端口,减缓发送速度n不提供不提供:实时性实时性,最小带宽承最小带宽承诺诺UDP服务:n不保证报文能够被接收进程不保证报文能够被接收进程接收到,接收进程接收到的接收到,接收进程接收到的报文也可能是乱序到达的。报文也可能是乱序到达的。n发送端可以以任何速率向下发送端可以以任何速率向下面的网络层注入数据,虽然面的网络层注入数据,虽然端对端的实际吞吐量可能小端对端的实际吞吐量可能小于这一速率于这一速率n可以容忍一定的数据丢失,可以容忍一定的数据丢失,同时又有最低速率要求同时又有最低速率要求n不提供不提供:连接建立连接建立,可靠性可靠性保证保证,流量控制流量控制,拥塞控制拥塞控制,
14、实时性实时性,最小带宽承诺最小带宽承诺第第2讲讲:应用层应用层11Internet应用应用:应用应用,传输协议传输协议应用应用e-mail远程终端访问远程终端访问Web 文件传输文件传输流媒体流媒体远程文件服务器远程文件服务器IP电话电话应用协议应用协议smtp RFC 821telnet RFC 854http RFC 2068ftp RFC 959专有协议专有协议(e.g.RealNetworks)NSF专有协议专有协议(e.g.,Vocaltec)所依赖的传输协议所依赖的传输协议TCPTCPTCPTCPTCP or UDPTCP or UDPtypically UDP第第2讲讲:应用层应
15、用层12应用层协议应用层协议n我们通过把我们通过把报文报文发送到套接字中来使网络间相互通信发送到套接字中来使网络间相互通信n应用层协议定义了运行在不同端系统上的应用程序进程如应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递报文,特别的是定义了:何相互传递报文,特别的是定义了:p交换的报文类型,如请求报文和响应报文交换的报文类型,如请求报文和响应报文p各种报文类型的语法,如报文中的各个字段及其详细描述各种报文类型的语法,如报文中的各个字段及其详细描述p字段的语义,即包含在字段中的信息的含义字段的语义,即包含在字段中的信息的含义p进程何时、如何发送报文及对报文进行响应的规则进程何时、如
16、何发送报文及对报文进行响应的规则n有些应用层协议是由有些应用层协议是由RFC文档定义的(公告领域),有些文档定义的(公告领域),有些是专用应用层协议是专用应用层协议n应用层协议只是网络应用的一部分。应用层协议只是网络应用的一部分。n我们重点讨论:我们重点讨论:Web、文件传输、电子邮件、目录服务和、文件传输、电子邮件、目录服务和P2PWeb应用和应用和HTTP协议协议n20实际实际90年代初期,万维网(年代初期,万维网(World Wide Web)出现,它)出现,它极大改变了人们与工作环境内外交流的方式。极大改变了人们与工作环境内外交流的方式。nWeb按需操作,信息发布简单,超链接和搜索引擎
17、使得打开按需操作,信息发布简单,超链接和搜索引擎使得打开站点获取信息非常方便,表单和站点获取信息非常方便,表单和Java小程序使得用户可以和小程序使得用户可以和站点进行交换,越来越多的多媒体信息直接出现在页面上。站点进行交换,越来越多的多媒体信息直接出现在页面上。nWeb页面由对象组成,对象就是文件,如页面由对象组成,对象就是文件,如HTML文件、文件、JPEG图像文件、图像文件、Java小程序或视频片段文件等,这些文件通过一小程序或视频片段文件等,这些文件通过一个个URL地址寻址。地址寻址。nURL由存放对象的主机名和对象的路径名两部分组成。由存放对象的主机名和对象的路径名两部分组成。www
18、.someSchool.edu/someDepartment/home.indexnWeb浏览器:浏览器:IE、MYIE、FIREFOX、Netscape。nWeb服务器:服务器:Apache、IIS。第第2讲讲:应用层应用层14Web:http 协议协议超文本传输协议超文本传输协议(http:hypertext http:hypertext transfer protocoltransfer protocol)n万维网应用协议,定义了万维网应用协议,定义了WebWeb客户机客户机是如何向是如何向WebWeb服务器请求服务器请求WebWeb页面,页面,以及服务器如何将以及服务器如何将WebWe
19、b页面传送给客页面传送给客户机的户机的n客户端客户端/服务器模式服务器模式p客户端客户端:浏览器请求、接收、展浏览器请求、接收、展示示 Web Web对象(对象(objectsobjects)p服务器服务器:Web Web 服务器发送对象对服务器发送对象对请求进行响应请求进行响应nhttp1.0:RFC 1945http1.0:RFC 1945nhttp1.1:RFC 2068http1.1:RFC 2068PC runningExplorerServer runningNCSA WebserverMac runningNavigatorhttp requesthttp requesthttp
20、 responsehttp response第第2讲讲:应用层应用层15http 协议协议http协议使用协议使用TCP 作为它的支撑传输层协议作为它的支撑传输层协议n客户端启动客户端启动TCP连接到服务器连接到服务器,端口端口 80n服务器接受来自客户端的服务器接受来自客户端的 TCP 连接连接nhttp 报文报文(应用层协议报文应用层协议报文)在浏览器在浏览器(http client)和和Web服务器服务器(http server)之间进行交换之间进行交换n关闭关闭TCP 连接连接n服务器向客户机发送被请求的文件时,并不保存任服务器向客户机发送被请求的文件时,并不保存任何关于客户机的状态信
21、息何关于客户机的状态信息(无状态协议无状态协议)nWeb服务器总是打开的,具有固定的服务器总是打开的,具有固定的IP地址,它服地址,它服务于数以百万计的不同浏览器。务于数以百万计的不同浏览器。第第2讲讲:应用层应用层16http 举例举例(非持久连接非持久连接)假设用户键入了一个假设用户键入了一个 URL www.someSchool.edu/someDepartment/home.index1a.http 客户端启动客户端启动 TCP 连接到连接到www.someSchool.edu上的上的http 服务器服务器(进程进程).Port 80 是是 http 服务器的默认端口服务器的默认端口.
22、2.http客户端客户端发送发送 http 请求报请求报文文(包括包括URL)进入进入 TCP 连接插连接插口(口(socket)1b.在在www.someSchool.edu 上上的的http 服务器在服务器在 port 80 等待等待 TCP 的连接请求的连接请求.“接受接受”连连接并通知客户端接并通知客户端3.http 服务器接收到请求报文服务器接收到请求报文,形成形成 响应报文(响应报文(包含了所请求的对象包含了所请求的对象,someDepartment/home.index),将报将报文送入插口(文送入插口(socket)time(该网页包含文本并引用了10 jpeg 图片)第第2讲
23、讲:应用层应用层17http 举例举例(非持久连接续非持久连接续.)5.http 客户端接收到了包含客户端接收到了包含html文件的响应报文。文件的响应报文。分分析析 html 文件文件,发现发现 10 个个引用的引用的 jpeg 对象对象6.对对10 jpeg objects 逐个重复逐个重复1-5 步步4.http 服务器关闭服务器关闭 TCP 连接连接.time套接字在连接过程中,客户机和服务器上分别有一个套接字与该连接相关联,它们都从套接字接口接收和发送HTTP报文第第2讲讲:应用层应用层18非持续和持续连接非持续和持续连接(非持续连接)(非持续连接)Non-persistentnht
24、tp/1.0:服务器分析请求、服务器分析请求、响应、关闭响应、关闭 TCP 连接连接n取对象需要取对象需要2 RTTspTCP 连接连接p对象请求对象请求/传送传送n每次传送都要受到每次传送都要受到TCP连接初连接初始化时的慢启动影响始化时的慢启动影响n许多浏览器同时打开多个并行许多浏览器同时打开多个并行的连接来改善性能的连接来改善性能n必须为每一个请求的对象建立必须为每一个请求的对象建立和维护一个全新的连接,对服和维护一个全新的连接,对服务器的负担很重务器的负担很重(持续连接)(持续连接)Persistentnhttp/1.1的默认设置的默认设置n在同一在同一TCP 连接上连接上:服务器服务
25、器分析请求、响应请求,分析分析请求、响应请求,分析新的请求、新的请求、.n客户端一旦下载到了基本的客户端一旦下载到了基本的html文件(文件(base HTML)马上发送对所有引用对象的马上发送对所有引用对象的请求请求.n较少的较少的 RTTs,较少的慢启较少的慢启动动.往返时间RTT:一个分组从客户机到服务器再回到客户机所花费的时间。第第2讲讲:应用层应用层19http 报文格式报文格式:request(请求)(请求)ntwo types of http报文报文:request,responsenhttp 请求请求报文报文:pASCII(可读格式可读格式)GET/somedir/page.h
26、tml HTTP/1.0 User-agent:Mozilla/4.0 Accept:text/html,image/gif,image/jpeg Accept-language:fr(额外的 carriage return,line feed)请求行请求行(GET,POST,HEAD 命令命令)首部首部 行行回车、换行表示回车、换行表示报文结束报文结束第第2讲讲:应用层应用层20http 请求报文请求报文:一般格式一般格式方法字段的取值方法字段的取值nGET:绝大部分的:绝大部分的HTTP请求报文使用请求报文使用GET,当浏,当浏览器请求一个对象时,使用此方法;览器请求一个对象时,使用此方法
27、;nPOST:在用户提交表单时使用,实体主体中的:在用户提交表单时使用,实体主体中的内容就是用户在表单字段输入的值;内容就是用户在表单字段输入的值;nHEAD:类似于:类似于GET,但响应报文中并不返回请,但响应报文中并不返回请求对象,常用来故障跟踪;求对象,常用来故障跟踪;nPUT:常和:常和Web发行工具联合使用,用户利用它发行工具联合使用,用户利用它来讲对象上传到来讲对象上传到Web服务器上制定的路径;也被服务器上制定的路径;也被应用程序用来向应用程序用来向Web服务器上传对象;服务器上传对象;nDELETE:用户或者应用程序可以删除:用户或者应用程序可以删除Web服务服务器上的对象器上
28、的对象第第2讲讲:应用层应用层22http 报文格式报文格式:response(响应)(响应)HTTP/1.0 200 OK Date:Thu,06 Aug 1998 12:00:15 GMT Server:Apache/1.3.0(Unix)Last-Modified:Mon,22 Jun 1998.Content-Length:6821 Content-Type:text/html data data data data data.状态行状态行(协议状态码协议状态码状态短语状态短语)首部首部 诸行诸行数据数据,e.g.,被请求的被请求的html文件文件第第2讲讲:应用层应用层23http
29、响应状态码和短语响应状态码和短语200 OKp请求成功请求成功,被请求的对象在报文中被请求的对象在报文中301 Moved Permanentlyp被请求的对象被移动过被请求的对象被移动过,新的位置在报文中有说明新的位置在报文中有说明 (Location:)(Location:)400 Bad Requestp服务器不懂请求报文服务器不懂请求报文404 Not Foundp服务器上找不到请求的对象服务器上找不到请求的对象505 HTTP Version Not Supportedp服务器不支持请求报文所使用的服务器不支持请求报文所使用的HTTPHTTP协议版本协议版本位于(服务器位于(服务器-
30、客户端)响应报文的第一行客户端)响应报文的第一行.样例样例:第第2讲讲:应用层应用层24自行测试自行测试 http(客户端操作客户端操作)1.用用Telnet 连接测试用的服务器(需要预先登录连接测试用的服务器(需要预先登录UNIX):打开打开 TCP 连接到连接到 port 80(默认的默认的http 服务器端口服务器端口)位于位于 202.117.35.70后续键入的内容将发送到后续键入的内容将发送到202.117.35.70 的的 80 号端口号端口$telnet 202.117.35.70 802.键入一条键入一条 http请求报文请求报文:GET/j1010/hello.htm HT
31、TP/1.0将该指令键入后将该指令键入后(按两次回车键按两次回车键),就就将此最短之将此最短之(但是完整的但是完整的)GET 请求发到了请求发到了 http 服务器服务器3.请注意观察请注意观察http服务器发回的响应报文服务器发回的响应报文!第第2讲讲:应用层应用层25用户用户-服务器的交互服务器的交互:认证(认证(authentication)认证认证:控制对服务器内容的访问控制对服务器内容的访问n信用认证信用认证:一般通过用户名一般通过用户名,口口令进行令进行 n无状态无状态:客户端必须在每次请求客户端必须在每次请求前进行认证前进行认证pauthorization:就是要求在每就是要求在
32、每个请求报文中提交认证的首个请求报文中提交认证的首部行部行p如果客户端没有提交如果客户端没有提交 authorization:首部行首部行,服务服务器将拒绝访问器将拒绝访问,只是在响应只是在响应报文首部中发送报文首部中发送WWW authenticate:clientserver普通普通 http 请求报文请求报文401:认证要求认证要求WWW authenticate:普通普通 http 请求报文请求报文+Authorization:普通普通 http响应报文响应报文普通普通 http 请求报文请求报文+Authorization:普通普通 http响应报文响应报文time第第2讲讲:应用层
33、应用层26Cookies:保存保存“状态状态”n服务器产生一个服务器产生一个#,服务器认识这个服务器认识这个#,以以备不时之需备不时之需:p认证认证p记忆用户的前序访问记忆用户的前序访问,先前的选择先前的选择n服务器在响应报文中发服务器在响应报文中发送送“cookie”给客户端给客户端Set-cookie:1678453n客户端可以在后继的请客户端可以在后继的请求中发送求中发送“cookie”cookie:1678453clientserver普通 http 请求报文普通 http响应报文+Set-cookie:#普通 http 请求报文cookie:#普通 http响应报文普通 http 请
34、求报文cookie:#普通 http响应报文cookie-特定的cookie-特定的Cookies:保存保存“状态状态”n在用户端系统中保留有一个在用户端系统中保留有一个cookie文件,由用文件,由用户浏览器管理;户浏览器管理;n在在Web站点有一个后端数据库,为每一个识别站点有一个后端数据库,为每一个识别码创建一个表项;码创建一个表项;n通过表项的设计,服务可以跟踪用户的活动,通过表项的设计,服务可以跟踪用户的活动,知道用户访问了哪些页面,按照什么顺序,什知道用户访问了哪些页面,按照什么顺序,什么时间;还可以和用户的注册信息与识别码相么时间;还可以和用户的注册信息与识别码相关联,使得用户可
35、以不用重复输入一些信息;关联,使得用户可以不用重复输入一些信息;n举例,淘宝购物中的用户登录、购物车、最近举例,淘宝购物中的用户登录、购物车、最近查看的商品。查看的商品。第第2讲讲:应用层应用层28Web 缓存:代理服务器缓存:代理服务器(proxy server)n用户设置浏览器用户设置浏览器:Web 访问经由代理服务器访问经由代理服务器 n客户端发送所有的客户端发送所有的 http 请求到代理服务器请求到代理服务器p代理服务器保存了请代理服务器保存了请求的对象求的对象:代理服务代理服务器返回请求的对象器返回请求的对象 p否则代理服务器从原否则代理服务器从原始服务器请求对象始服务器请求对象,
36、再再将其返回给客户端将其返回给客户端 目的目的:满足客户端的请求而无需烦扰原始服务器满足客户端的请求而无需烦扰原始服务器clientProxyserverclienthttp requesthttp requesthttp responsehttp responsehttp requesthttp responseorigin serverorigin serverhttp requesthttp response第第2讲讲:应用层应用层29为什么使用为什么使用Web缓存缓存?前提前提:缓存与客户端比较缓存与客户端比较“接近接近“(e.g.,在同一在同一网络中网络中)n响应时间较短响应时间较短
37、:缓存与客缓存与客户端比较户端比较“接近接近“n减少了内部网与因特网减少了内部网与因特网接入链路上的通信量接入链路上的通信量p因为从学校或本地因为从学校或本地ISP 通通往外部的链路往往是网络往外部的链路往往是网络瓶颈瓶颈originserverspublic Internetinstitutionalnetwork10 Mbps LAN1.5 Mbps access linkinstitutionalcache第第2讲讲:应用层应用层30Conditional GETn目的目的:解决存放在缓存器中解决存放在缓存器中的对象拷贝可能是陈旧的的对象拷贝可能是陈旧的n客户端客户端:在在http请求报
38、文中请求报文中声明所缓存拷贝的生成日期声明所缓存拷贝的生成日期If-modified-since:n服务器服务器:如果客户端缓存的如果客户端缓存的拷贝是最新的,则在响应报拷贝是最新的,则在响应报文中不发请求的对象文中不发请求的对象:HTTP/1.0 304 Not Modifiedclientserverhttp请求报文If-modified-since:http响应报文HTTP/1.0 304 Not Modified对象未经修改http请求报文If-modified-since:http响应报文HTTP/1.1 200 OK对象已经修改第第2讲讲:应用层应用层31ftp:文件传输协议文件传
39、输协议n传输文件往来与远程主机传输文件往来与远程主机n客户端客户端/服务器模式服务器模式p客户端客户端:启动传输启动传输p服务器服务器:远程主机远程主机nftp:RFC 959nftp 服务器服务器:端口端口 21file transferFTPserverFTPuserinterfaceFTPclientlocal filesystemremote filesystemuser at host第第2讲讲:应用层应用层32ftp:分离的控制分离的控制,数据连接数据连接nftp客户端在客户端在 ftp 服务器的服务器的 端口端口21进行联系进行联系,使用使用TCP作为传输协议作为传输协议n打开两
40、个并行的连接打开两个并行的连接:p控制控制:在客户端和服务器之间交换在客户端和服务器之间交换命令命令,响应。称为带外控制:响应。称为带外控制:“out of band control”p数据数据:往来于服务器的文件往来于服务器的文件nftp 维持状态维持状态(state):在整个会在整个会话期间保留用户的状态信息,特别是话期间保留用户的状态信息,特别是服务器必须把用户账户和控制连接联服务器必须把用户账户和控制连接联系起来。系起来。n针对会话中的每一次文件传输都需要针对会话中的每一次文件传输都需要建立一个新的数据连接,即数据连接建立一个新的数据连接,即数据连接时非持久的。时非持久的。FTPcli
41、entFTPserverTCP control connectionport 21TCP data connectionport 20第第2讲讲:应用层应用层33ftp 命令命令,响应响应样例命令样例命令:n在控制通道上传送的在控制通道上传送的ASCII文本文本pUSER username(登录)(登录)pPASS password(登录)(登录)pLIST(返回当前目录(返回当前目录中的文件列表中的文件列表)pRETR filename(取(取(gets)文件)文件)pSTOR filename(存存(puts)文件到远程主机)文件到远程主机)返回码样例返回码样例n状态码和短语状态码和短语(
42、同同 http)p331 Username OK,password requiredp125 data connection already open;transfer startingp425 Cant open data connectionp452 Error writing file第第2讲讲:应用层应用层34电子邮件电子邮件3个重要组件个重要组件:n用户代理用户代理 user agentn邮件服务器邮件服务器 mail servern简单邮件传输协议简单邮件传输协议:smtp用户代理用户代理n保存、撰写保存、撰写,恢复恢复,转发和阅转发和阅读邮件报文读邮件报文ne.g.,Foxmai
43、l,OE,elm,Netscape Messengern外发外发,接收的报文存储在邮接收的报文存储在邮件服务器中件服务器中mailserveruseragentuseragentuseragentmailserveruseragentuseragentmailserveruseragentSMTPSMTPSMTP第第2讲讲:应用层应用层35电子邮件电子邮件:邮件服务器邮件服务器Mail Servers n邮箱邮箱 管理和维护发送给他管理和维护发送给他的报文的报文n报文队列报文队列 包含了外发的包含了外发的 邮件报文邮件报文SMTP 协议协议用在邮件服务器用在邮件服务器之间发送邮件之间发送邮件n
44、客户端客户端:将邮件发送到邮将邮件发送到邮件服务器件服务器n“服务器服务器”:接收和转发邮接收和转发邮件件mailserveruseragentuseragentuseragentmailserveruseragentuseragentmailserveruseragentSMTPSMTPSMTP用户邮箱外发报文队列第第2讲讲:应用层应用层36电子邮件电子邮件:SMTP RFC 821n使用使用 tcp 可靠的传送邮件报文可靠的传送邮件报文,端口端口25n直接传输直接传输:直接从发送服务器到接收服务器,即使直接从发送服务器到接收服务器,即使服务器距离很远,也不使用中间邮件服务器。服务器距离很远
45、,也不使用中间邮件服务器。n传输的三个阶段传输的三个阶段p握手握手(打招呼打招呼)p报文传输报文传输p结束结束n命令命令/响应交互响应交互p命令命令:ASCII文本文本p响应响应:状态码和短语状态码和短语n邮件报文必须使用邮件报文必须使用7-bit ASCII表示表示第第2讲讲:应用层应用层37SMTP 交互样例交互样例S:220 X1 NT-ESMTP Server C:HELO S:250 hello C:MAIL FROM:S:250 okC:RCPT TO:S:250 ok its for C:DATAS:354 ok,send it;end with.C:Hi,I am in XUJ
46、I now,Where are you?C:.S:250 Message queuedC:QUITS:221 Goodbye 第第2讲讲:应用层应用层38smtp:评述评述nsmtp 使用持续连接使用持续连接nsmtp 要求报文要求报文(首部首部&信体信体)全部使用全部使用 7-bit ASCII码码n某些代码组合不允许出某些代码组合不允许出现在报文中现在报文中(e.g.,CRLF.CRLF).此类数据此类数据必须进行编码必须进行编码(通常使通常使用用 base-64 或或 quoted printable)nsmtp 服务器用服务器用 CRLF.CRLF 表示邮件表示邮件报文的结束报文的结束
47、与与 http的比较的比较:nhttp:pull(拉)(拉)nemail:push(推)(推)n都使用都使用 ASCII 命令命令/响响应交互应交互,状态码状态码nhttp:每个对象分装在每个对象分装在各自的响应报文中各自的响应报文中nsmtp:多个对象在一个多多个对象在一个多分部的报文中传送分部的报文中传送第第2讲讲:应用层应用层39邮件报文格式邮件报文格式smtp:交换邮件报文的协议交换邮件报文的协议RFC 822:文本报文格式标准文本报文格式标准:n首部诸行首部诸行,e.g.,pTo:pFrom:pSubject:不同不同 于于 smtp 命令命令!n信体信体p即即“报文报文”,ASCI
48、I characters onlyheaderbody空行第第2讲讲:应用层应用层40邮件格式邮件格式:多媒体扩展多媒体扩展nMIME:multimedia mail extension,RFC 2045,2056n在报文首部附加额外的信息声明在报文首部附加额外的信息声明 MIME 内容类型内容类型From:alicecrepes.fr To:bobhamburger.edu Subject:Picture of yummy crepe.MIME-Version:1.0 Content-Transfer-Encoding:base64 Content-Type:image/jpeg base6
49、4 encoded data.base64 encoded data 多媒体类型多媒体类型,子类型子类型,参数参数声明声明数据编码方法数据编码方法MIME 版本版本编码后的数据编码后的数据第第2讲讲:应用层应用层41MIME 类型声明类型声明 Content-Type:type/subtype;parametersTextn子类型样例子类型样例:plain,htmlImagen子类型样例子类型样例:jpeg,gifAudion子类型样例子类型样例:basic(8-bit mu-law encoded),32kadpcm(32 kbps coding)Videon子类型样例子类型样例:mpeg,
50、quicktimeApplicationn需使用其他阅读器的数据需使用其他阅读器的数据n子类型样例子类型样例:msword,octet-stream 第第2讲讲:应用层应用层42MIME多分部类型多分部类型From:alicecrepes.fr To:bobhamburger.edu Subject:Picture of yummy crepe.MIME-Version:1.0 Content-Type:multipart/mixed;boundary=98766789-98766789Content-Transfer-Encoding:quoted-printableContent-Type