第2章:应用层本章目标:网络应用层的概念和实现客户端-服务器范式服务模型通过对常用应用层协议的探讨和分析来学习网络协议 深层次目标特定协议:httpftpsmtppopdns应用程序和应用层协议网络应用程序:沟通,分布式运 行在网络主机中的“用户空间”在应用程序间交换报文e.g.,email,ftp,Web应用层协议:应用层的一个“组成 部分”定义应用程序需交换的报文和所需采取的动作使用较低层次所提供的通信服务(TCP,UDP)网络应用程序网络应用程序 体系结构(三种)■客户机/服务器体系结构■p2p体系结构(对等即peer-to-peer)■混合体系结构网络应用程序 进程(Process):主机(端系统)中运行中的程序.在某些主机中,两个进程使用进程间通信(由OS管理)而运行在不同主 机上的进程则使用应用层协议进行通信进程通信:交换报文进行通信发送进程创建和发送报文接收进程接收和回送报文客户端-服务器 范式典型的网络应用都是由两个部分组成:客户端和服务器网络应用程序应用程序接口(API:applicationpro gramminginterface)定义应用层和传输层间的接口(套接字)插口(socket:InternetAPI)两 个进程间的通信,将数据送入socket,或从socket读出数据Q:某个进程如何“认定”另一个需要与之通信的进程?( 进程寻址)IP地址-运行另一个进程的主机所拥有的“端口号(PORT#)”–允许接收主机来确定的一个标识,本地进程将报文 发送给它应用层协议定义端系统上应用程序进程如何相互传递报文。交换的报文类型各种报文类型的语法字段的含义进程何时、如何 发送报文及对报文进行响应应用进程需要怎样的传输服务?数据丢失(Dataloss)某些应用(e.g.,audio)可 以容忍某种程度上的数据丢失其他应用(e.g.,文件传输,telnet)要求100%可靠的数据传输实时性(Timin g)某些应用(e.g.,IP电话,交互式游戏)要求较低的时延常用应用程序对传输功能的要求Internet的传输协议 服务TCP服务:面向连接:在客户端和服务器进程之间需要建立连接(setup)可靠传输:在发送和接受进程之间流量控 制:发送数据的速度决不超过接收的速度拥塞控制:当网络超负荷时,束紧发送端口,减缓发送速度不提供:实时性,最小带宽承诺 UDP服务:在客户端和服务器进程之间实现“不可靠的”数据传输不提供:连接建立,可靠性保证,流量控制,拥塞控制,实时性,最 小带宽承诺Q:既生喻,何生亮?WhyisthereaUDP?Internet应用:应用,传输协议htt p协议http:TCP传输服务:客户端启动TCP连接(创建插口)到服务器,端口80服务器接受来自客户端的TCP 连接http报文(应用层协议报文)在浏览器(httpclient)和Web服务器(httpserver)之间进行交 换关闭TCP连接http是“无状态(stateless)”的服务器不保留任何访问过的请求信息Web:http协议 超文本传输协议(http:hypertexttransferprotocol)万维网应用协议客户端/服务器模式客户端 :浏览器请求、接收、展示Web对象(objects)服务器:Web服务器发送对象对请求进行响应http1.0:RF C1945http1.1:RFC2068http举例假设用户键入了一个URLwww.someSchool.edu /someDepartment/home.index1a.http客户端启动TCP连接到www.someSchool.e du上的http服务器(进程).Port80是http服务器的默认端口.http举例(续.)5.http 客户端接收到了包含html文件的响应报文。分析html文件,发现10个引用的jpeg对象请求一个万维网文档所 需的时间非持续和持续连接(非持续连接)Non-persistenthttp/1.0:服务器分析请求、响应、关闭TCP连 接取对象需要2RTTsTCP连接对象请求/传送每次传送都要受到TCP连接初始化时的慢启动影响许多浏览器同时打开多个并 行的连接来改善性能(持续连接)Persistenthttp/1.1的默认设置在同一TCP连接上:服务器分析请求、响应请求 ,分析新的请求、..客户端一旦下载到了基本的html文件(baseHTML)马上发送对所有引用对象的请求.较少的RTT s,较少的慢启动.持续连接的两种工作方式非流水线方式:客户在收到前一个响应后才能发出下一个请求。这比非持续连接的两倍RT T的开销节省了建立TCP连接所需的一个RTT时间。但服务器在发送完一个对象后,其TCP连接就处于空闲状态,浪费了服务 器资源。流水线方式:客户在收到HTTP的响应报文之前就能够接着发送新的请求报文。一个接一个的请求报文到达服务器后,服务器就可 连续发回响应报文。使用流水线方式时,客户访问所有的对象只需花费一个RTT时间,使TCP连接中的空闲时间减少,提高了下载文档效 率。http报文格式:request(请求)twotypesofhttp报文:request,response http请求报文:ASCII(可读格式)http请求报文:一般格式http报文格式:response(响应)h ttp响应报文:一般格式http响应状态码和短语200OK请求成功,被请求的对象在报文中301MovedPe rmanently被请求的对象被移动过,新的位置在报文中有说明(Location:)400BadRequest服务器 不懂请求报文(请求不能被服务器解读)404NotFound服务器上找不到请求的对象(被请求的对象不在服务器上)505H TTPVersionNotSupported自行测试http(客户端操作)1.用Telnet连接测试用的服务器( 需要预先登录UNIX):用户-服务器的交互:认证(authentication)认证:控制对服务器内容的访问信用认证 :一般通过用户名,口令进行无状态:客户端必须在每次请求前进行认证authorization:就是要求在每个请求报文中 提交认证的首部行如果客户端没有提交authorization:首部行,服务器将拒绝访问,只是在响应报文首部中发送WWW authenticate:Cookies:保存“状态”服务器产生一个#,服务器认识这个#,以备不时之需: 认证记忆用户的前序访问,先前的选择服务器在响应报文中发送“cookie”给客户端Set-cookie:1678453 客户端可以在后继的请求中发送“cookie”cookie:1678453Web缓存:代理服务器(proxyser ver)用户设置浏览器:Web访问经由代理服务器客户端发送所有的http请求到代理服务器代理服务器保存了请求的对象 :代理服务器返回请求的对象否则代理服务器从原始服务器请求对象,再将其返回给客户端ConditionalGET:客户端 缓存机制目的:如果客户端缓存了最新的请求对象,则服务器不必重复发送客户端:在http请求报文中声明所缓存拷贝的生成日期I f-modified-since:服务器:如果客户端缓存的拷贝是最新的,则在响应报文中不发请求的对象:HTT P/1.0304NotModified为何Web缓存?前提:缓存与客户端比较“接近“(e.g.,在同一网络中)响 应时间较短:缓存与客户端比较“接近“减少了往来与远程服务器间的数据流量因为从学校或本地ISP通往外部的链路往往是网络瓶颈 ftp:文件传输协议传输文件往来与远程主机客户端/服务器模式客户端:启动传输(无论与往来远程主机)服务器:远程主机 ftp:RFC959ftp服务器:端口21ftp:分离的控制,数据连接ftp客户端在ftp服务器的端口 21进行联系,使用TCP作为传输协议打开两个并行的连接:控制:在客户端和服务器之间交换命令,响应。称为带外控制:“out ofbandcontrol”数据:往来于服务器的文件ftp维持状态(state):当前目录、先前的认证信息等f tp命令,响应样例命令:在控制通道上传送的ASCII文本USERusername(登录)PASSpassword( 登录)LIST(返回当前目录中的文件列表)RETRfilename(取(gets)文件)STORfilename (存(puts)文件到远程主机)返回码样例状态码和短语(同http)331UsernameOK,passwor drequired125dataconnectionalreadyopen;transferstarting42 5Can’topendataconnection452Errorwritingfile电子邮件四个重要组件: 用户代理邮件服务器简单邮件传输协议:smtp邮局协议:pop用户代理写作,编辑,阅读邮件报文e.g.,F oxmail,OE,elm,NetscapeMessenger外发,接收的报文存储在邮件服务器中电子邮件:邮件服务器 MailServers邮箱包含了收到的用户邮件(尚未被阅读)报文队列包含了外发的邮件报文smtp协议用在邮件 服务器之间发送邮件客户端:将邮件发送到邮件服务器“服务器”:接收和转发邮件电子邮件:smtp[RFC821]使用 tcp可靠的传送邮件报文,端口25直接传输:发送服务器到接收服务器传输的三个阶段握手(打招呼)报文传输结束命令 /响应交互命令:ASCII文本响应:状态码和短语邮件报文必须使用7-bitASCII表示smtp交互样例(在U NIX中用telnet)自测smtp交互:$telnet202.117.35.17025见到邮件服务器的220响 应后键入HELO,MAILFROM,RCPTTO,DATA,QUIT命令上述过程可以不使用用户代理, 就能直接将电子邮件发送出去(因为目前大部分邮件服务器的交互过程趋于复杂,本试验不一定都能进行)。smtp:评述smtp使用 持续连接smtp要求报文(首部&信体)全部使用7-bitASCII码某些代码组合不允许出现在报文中(e.g., CRLF.CRLF).此类数据必须进行编码(通常使用base-64或quotedprintable)smtp服务 器用CRLF.CRLF表示邮件报文的结束与http的比较:http:pull(拉)email:push(推)都使 用ASCII命令/响应交互,状态码http:每个对象分装在各自的响应报文中smtp:多个对象在一个多分部的报文中传送 邮件报文格式smtp:交换邮件报文的协议RFC822:文本报文格式标准:首部诸行,e.g.,To:From: Subject:不同于smtp命令!信体即“报文”,ASCIIcharactersonly邮件格式:多媒体 扩展MIME:multimediamailextension,RFC2045,2056在报文首部附加额外的信息声明 MIME内容类型MIME类型声明Content-Type:type/subtype;parametersText 子类型样例:plain,htmlImage子类型样例:jpeg,gifAudio子类型样例:basic( 8-bitmu-lawencoded),32kadpcm(32kbpscoding)Video子类型样例:mpe gApplication需使用其他阅读器的数据子类型样例:msword,octet-streamMIME多分部类型 邮件访问协议SMTP:发送/存储到接收方的服务器邮件访问协议:从服务器中取信POP:PostOfficePro tocol[RFC1939]认证(agent<-->server)和下载IMAP:InternetMailA ccessProtocol[RFC1730]更多功能(更为复杂)在服务器中操作存储在那里的报文HTTP:Hotmai l,Yahoo!Mail,263.net,etc.POP3协议认证阶段客户端命令:user:用户名pas s:口令服务器响应+OK-ERR交互阶段,客户端:list:列出报文号码retr:用报文号码取信dele:用 报文号码删信quit自测pop3交互:$telnet202.117.35.70110见到+OKPOP3serve rready响应后键入user,pass,list,retr,quit命令上述过程可以不使用用户代理 ,就能察看邮箱中的信件。IMAP协议(InternetMessageAccessProtocol)IMAP也是按客 户服务器方式工作,现在较新的是版本4,即IMAP4。用户在自己的PC机上就可以操纵ISP的邮件服务器的邮箱,就像在本 地操纵一样。因此IMAP是一个联机协议。当用户PC机上的IMAP客户程序打开IMAP服务器的邮箱时,用户就可看到 邮件的首部。若用户需要打开某个邮件,则该邮件才传到用户的计算机上。IMAP的特点IMAP最大的好处就是用户可以在不同的地方使 用不同的计算机随时上网阅读和处理自己的邮件。IMAP还允许收件人只读取邮件中的某一个部分。例如,收到了一个带有视像附件(此文件 可能很大)的邮件。为了节省时间,可以先下载邮件的正文部分,待以后有时间再读取或下载这个很长的附件。IMAP的缺点是如果用户没有 将邮件复制到自己的PC机上,则邮件一直是存放在IMAP服务器上。因此用户需要经常与IMAP服务器建立连接。必须注意 不要将邮件读取协议POP或IMAP与邮件传送协议SMTP弄混。发信人的用户代理向源邮件服务器发送邮件,以及源邮件服务 器向目的邮件服务器发送邮件,都是使用SMTP协议。而POP协议或IMAP协议则是用户从目的邮件服务器上读取邮件所使用 的协议。DNS:域名系统自然人:诸多定义:身份证,姓名,护照#因特网主机,路由器:IP地址(32b it)–用于数据报寻址“域名”,e.g.,ctec.xjtu.edu.cn–帮助记忆Q:IP地址和域名之间如何 映射(转换)?DomainNameSystem:分布式数据库:由许多域名服务器按层次构成应用层协议:主机、路由器、 域名服务器互相通信进行域名解析(地址/域名翻译)注意:因特网之核心功能,应用层之协议网络“边缘”上之复杂实体域名系统概 述许多应用层软件经常直接使用域名系统DNS(DomainNameSystem),但计算机的用户只是间接而不是直接使用域名 系统。因特网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统DNS。名字到IP地址的解析是由若干个域名服务器 程序完成的。域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。因特网的域名结构因特网采用了层次树状结构的命名方 法。任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。域名的结构由标号序列组成,各标号之间用点隔开: ….三级域名.二级域名.顶级域名各标号分别代表不同级别的域名。域名只是个逻辑概念域名只 是个逻辑概念,并不代表计算机所在的物理地点。变长的域名和使用有助记忆的字符串,是为了便于人来使用。而IP地址是定长的32 位二进制数字则非常便于机器进行处理。域名中的“点”和点分十进制IP地址中的“点”并无一一对应的关系。点分十进制IP地址中 一定是包含三个“点”,但每一个域名中“点”的数目则不一定正好是三个。因特网的域名空间树状结构的DNS域名服务器DNS 提供的服务主机名到IP地址的转换主机别名邮件服务器别名负载分配DNSnameservers没有服务器能够保存所有 Name-to-IP地址的映射本地域名服务器:每个ISP,企业可拥有本地(默认)域名服务器主机的DNS查询首先 发往本地域名服务器授权域名服务器:每台主机必须在授权服务器上注册登记可完成域名/地址的转换为什么不搞集中的DNS?单点失 败的问题数据的流通量远程集中式的数据库维护问题难以与时俱进,跟不上发展!DNS:根域名服务器当本地域名服务器不能解 析时,就向根域名服务器查询根域名服务器:如果域名映射未知,则向授权域名服务器查询取得映射将映射返回本地域名服务器根域名服 务器——最高层次的域名服务器根域名服务器是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。 不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助于根域名服务器。在因特网上共有13 个不同IP地址的根域名服务器,它们的名字是用一个英文字母命名,从a一直到m(前13个字母)。根域名服务器共有13 套装置(不是13个机器)这些根域名服务器相应的域名分别是a.rootservers.netb.root servers.net…m.rootservers.net到2006年底全世界已经安装了一百多个根域名 服务器机器,分布在世界各地。这样做的目的是为了方便用户,使世界上大部分DNS域名服务器都能就近找到一个根域名服务器。举 例:根域名服务器f的地点分布图根域名服务器并不直接把域名直接转换成IP地址。在使用迭代查询时,根域名服务器把下一步应当 找的顶级域名服务器的IP地址告诉本地域名服务器。顶级域名服务器(即TLD服务器)这些域名服务器负责管理在该顶级域名服务 器注册的所有二级域名。当收到DNS查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的IP 地址)。权威域名服务器负责一个区的域名服务器。(一个服务器所负责管辖的或有权限的范围叫做区。)当一个权威域名服务器还不能给出 最后的查询回答时,就会告诉发出查询请求的DNS客户,下一步应当找哪一个权限域名服务器。注意:DNS服务器的管辖范围不是以“域 ”为单位,而是以“区”为单位。区可能等于或小于域,绝不可能大于域。本地域名服务器本地域名服务器对域名系统非常重要。当一个主机 发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。每一个因特网服务提供者ISP,或一个大学,甚至一个大学里的系 ,都可以拥有一个本地域名服务器。这种域名服务器有时也称为默认域名服务器。简单DNS举例主机ctec.xjtu.ed u.cn要求gaia.cs.umass.edu的IP地址1.联系本地域名服务器,202.117.0.202.如有 必要202.117.0.20会联系根域名服务器3.如有必要根域名服务器会联系授权域名服务器,dns.umass.eduDN S举例根域名服务器:可能不知道授权域名服务器的地址可能知道中介域名服务器:由它负责联系授权域名服务器DNS:迭代查询 递归查询:对根域名服务器造成工作负担如何减负?迭代查询:被查询的服务器直接把可查询的服务器地址报回“不懂这个域名,但 可以从这个服务器查到”本地域名服务器采用迭代查询本地域名服务器采用递归查询(比较少用)DNS:缓存和更新纪录一旦(任何 )域名服务器得知了某个映射,就将其缓存在一定的时间间隔后缓存的条目将会过期(自动消除)更新/通知机制由IETF负责设 计RFC2136http://www.ietf.org/html.charters/dnsind-charter.html 名字的高速缓存每个域名服务器都维护一个高速缓存,存放最近用过的名字以及从何处获得名字映射信息的记录。可大大减轻根域名服务器的负 荷,使因特网上的DNS查询请求和回答报文的数量大为减少。为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器,并处 理超过合理时间的项(例如,每个项目只存放两天)。当权限域名服务器回答一个查询请求时,在响应中都指明绑定有效存在的时间值。增加此时 间值可减少网络开销,而减少此时间值可提高域名转换的准确性。DNS纪录DNS:存储资源记录(RR)的分布式数据库Ty pe=NSname=域(e.g.foo.com)value=该域授权域名服务器的IP地址DNS协议,报文 DNS协议:查询和应答报文,二者格式相同DNS协议,报文P2P应用P2P是什么?peer-to-peer P2P的工作机制1.文件内容是如何从一个对等方直接传输到另一个对等方?2.内容定位问题-一个对等方如何确定哪个对等方有它想要 的东西?BitTorrent协议工作机制1.最稀罕优先技术2.一种机灵的对换算法搭免费车的问题关于内容定位的3种体系 结构集中式目录(napster)查询洪泛(gnutella)层次覆盖(KaZaa)套接字简单的说就是通信的两方的一种约 定,用套接字中的相关函数来完成通信过程。套接字的作用应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序 进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连 接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接口。区分不同应用程序进程间的网络通 信和连接,主要有3个参数:通信的目的IP地址、使用的传输层协议(TCP或UDP)和使用的端口号。Socket原意是“插座”。通过 将这3个参数结合起来,与一个“插座”Socket绑定,应用层就可以和传输层通过套接字接口,区分来自不同应用程序进程或网络连接的通信 ,实现数据传输的并发服务。Socket可以看成在两个程序进行通讯连接中的一个端点,一个程序将一段信息写入Socket中,该S ocket将这段信息发送给另外一个Socket中,使这段信息能传送到其他程序中。本章小结应用服务的要求:可靠性,带宽, 延迟客户端-服务器范式Internet传输服务模型面向连接的,可靠的:TCP不可靠的,数据报:UDPOur studyofnetworkappsnowcomplete!本章小结典型的请求/应答报文交换:客户请求信息或服务 服务器用数据,状态码进行响应报文格式:首部:说明数据的信息数据:进行通信的信息Mostimportantly: learnedaboutprotocolsrequestinghostctec.xjtu.edu.cngaia.cs. umass.edurootnameserverauthorititivenameserverdns.umass.ed ulocalnameserver202.117.0.20123456requestinghostctec .xjtu.edu.cngaia.cs.umass.edurootnameserverlocalnameserver 202.117.0.20123456authoritativenameserverdns.cs.umass. eduintermediatenameserverdns.umass.edu78requestinghostsu rf.eurecom.frgaia.cs.umass.edurootnameserverlocalnameserve rdns.eurecom.fr123456authoritativenameserverdns.cs.uma ss.eduintermediatenameserverdns.umass.edu78iteratedquery 顶级域名服务器dns.com权威域名服务dns.abc.com本地域名服务器dns.xyz.com根域名服务器?? ????迭代查询?y.abc.com的IP地址m.xyz.com递归查询?需要查找y.abc. com的IP地址顶级域名服务器dns.com本地域名服务器dns.xyz.comm.xyz.com根域名服务器 ???递归查询递归查询????需要查找y.abc.com的IP地址?y.abc.com的I P地址权威域名服务dns.abc.comRR格式:(name,value,type,ttl)Type=Ana me=主机名value=IP地址Type=CNAMEName=别名www.ibm.comisreal lyservereast.backup2.ibm.comvalue=真名Type=MXvalue=与name 相关的邮件服务器域名报文首部identification:16bit#用于查询,应答报文使用同样的#flags :查询或应答希望递归可以递归授权应答Name,typefields查询报文RRs响应来自授权服务器 的纪录其他“帮助”信息特定协议:httpftpsmtp,pop3dns用户邮箱外发报文队列mailserv eruseragentuseragentuseragentmailserveruseragentusera gentmailserveruseragentSMTPSMTPSMTPmailserveruseragent useragentuseragentmailserveruseragentuseragentmailser veruseragentSMTPSMTPSMTPS:220X1NT-ESMTPServerctec.xjtu .edu.cnC:HELOxqcheng@ctec.xjtu.edu.cnS:250helloctec.xjtu.e du.cnC:MAILFROM:S:250okC:RCPTT O:S:250okitsforC:DATAS :354ok,sendit;endwith.C:Hi,IaminXUJInow ,Whereareyou?C:.S:250MessagequeuedC:QUITS:221Goodbye headerbody空行From:alice@crepes.frTo:bob@hamburger.eduSu bject:Pictureofyummycrepe.MIME-Version:1.0Content-Transf er-Encoding:base64Content-Type:image/jpegbase64encodedda ta....................................base64encodeddata 多媒体类型,子类型,参数声明数据编码方法MIME版本编码后的数据From:alice@crepes.frT o:bob@hamburger.eduSubject:Pictureofyummycrepe.MIME-Vers ion:1.0Content-Type:multipart/mixed;boundary=98766789--98 766789Content-Transfer-Encoding:quoted-printableContent-Type: text/plainDearBob,Pleasefindapictureofacrepe.--987667 89Content-Transfer-Encoding:base64Content-Type:image/jpegba se64encodeddata....................................base64 encodeddata--98766789--useragentsender’smailserveruser agentSMTPSMTPPOP3orIMAPreceiver’smailserverC: listS:1498S:2912S:.C:retr1 S:S:.C:dele1C:re tr2S:S:.C:dele2 C:quitS:+OKPOP3serversigningoffS:+OKPOP3serve rreadyC:useraliceS:+OKC:passhungryS:+OKusersucce ssfullyloggedon根四级域名mail…www…bjeducom…cctvibmhp二级 域名pkutsinghua…三级域名mailwww…comnetorgedugovaerocnuk …顶级域名……根域名服务器org域名服务器com域名服务器edu域名服务器y.abc.com域名服务器权 威域名服务器根域名服务器顶级域名服务器abc.com域名服务器abc公司有两个权威域名服务器bUSC-ISIM arinadelRey,CAlICANNMarinadelRey,CAeNASAMtView,CA fInternetSoftwareC.PaloAlto,CAiNORDUnetStockholmkRI PELondonmWIDETokyoaNSIHerndon,VAcPSInetHerndon,VAdU MarylandCollegePark,MDgDISAVienna,VAhARLAberdeen,MDj NSI(TBD)Herndon,VA遍布世界各地的13个根域名服务器第2章:应用层applicatio ntransportnetworkdatalinkphysicalapplicationtransportnetw orkdatalinkphysicalapplicationtransportnetworkdatalinkph ysicalapplicationtransportnetworkdatalinkphysicalapplicati ontransportnetworkdatalinkphysical客户端:发起同服务器的联系(“speaksf irst”)一般都从服务器请求服务,Web:客户端由浏览器实现;e-mail:通过OE、Foxmial实现reque streply服务器:向客户端提供所请求的服务e.g.,Web服务器发送被请求的Web页面,邮件服务器传递e- mail带宽(Bandwidth)某些应用(e.g.,多媒体)对最低带宽有要求其他应用(“弹性应用”)则可灵活应用所能 得到的带宽应用程序文件传输e-mailWeb网页实时音频/视频存储音频/视频交互式游戏金融应用数据丢失 不丢失不丢失不丢失允许丢失允许丢失允许丢失允许丢失不丢失带宽弹性弹性弹性音频:5Kb-1Mb视频:1 0Kb-5Mb同上几Kb/s以上弹性实时性无无无100’smsecfewsecs100’sms ecyesandno应用e-mail远程终端访问Web文件传输流媒体远程文件服务器IP电话应用协 议smtp[RFC821]telnet[RFC854]http[RFC2068]ftp[RFC959] 专有协议(e.g.RealNetworks)NSF专有协议(e.g.,Vocaltec)所依赖的传输协议TCP TCPTCPTCPTCPorUDPTCPorUDPtypicallyUDP保留状态的协议很复杂哟!过去的 历史(状态)需要保留一旦浏览器/服务器崩溃,它们各自的状态视图就会发生分歧,还需要重新核对小评论PCrunning ExplorerServerrunningNCSAWebserverMacrunningNavigatorht tprequesthttprequesthttpresponsehttpresponse2.http客户端发送 http请求报文(包括URL)进入TCP连接插口(socket)1b.在www.someSchool.edu上的h ttp服务器在port80等待TCP的连接请求.“接受”连接并通知客户端3.http服务器接收到请求报文, 形成响应报文(包含了所请求的对象,someDepartment/home.index),将报文送入插口(socket) time(该网页包含文本并引用了10jpeg图片)6.对10jpegobjects逐个重复1-4步4.ht tp服务器关闭TCP连接.timeRTTRTT发起TCP连接HTTP请求报文传输文档的时间整个文档收到 时间时间HTTP响应报文GET/somedir/page.htmlHTTP/1.0User-agent:Moz illa/4.0Accept:text/html,image/gif,image/jpegAccept-languag e:fr(额外的carriagereturn,linefeed)请求行(GET,POST,HEAD命令 )首部诸行回车、换行表示报文结束HTTP/1.0200OKDate:Thu,06Aug199812: 00:15GMTServer:Apache/1.3.0(Unix)Last-Modified:Mon,22Ju n1998…...Content-Length:6821Content-Type:text/htmldata datadatadatadata...状态行(协议状态码状态短语)首部诸行数据,e.g.,被请求的 html文件版本状态码状态信息首部字段名首部行:值首部字段名值:…实体主体状态行空格回车换行 :CRLFCRLFCRLFCRLF开始行位于(服务器->客户端)响应报文的第一行.(五类共33种)样例:打开TC P连接到port80(默认的http服务器端口)位于202.117.35.70后续键入的内容将发送到202.117.35.70的80号端口$telnet202.117.35.70802.键入一条http请求报文:GET/~j1010/hello.htmHTTP/1.0将该指令键入后(按两次回车键),就将此最短之(但是完整的)GET请求发到了http服务器3.请注意观察http服务器发回的响应报文!clientserver普通http请求报文401:认证要求WWWauthenticate:普通http请求报文+Authorization:普通http响应报文普通http请求报文+Authorization:普通http响应报文timeclientserver普通http请求报文普通http响应报文+Set-cookie:#普通http请求报文cookie:#普通http响应报文普通http请求报文cookie:#普通http响应报文cookie-特定的cookie-特定的目的:满足客户端的请求而无需烦扰原始服务器clientProxyserverclienthttprequesthttprequesthttpresponsehttpresponsehttprequesthttpresponseoriginserveroriginserverclientserverhttp请求报文If-modified-since:http响应报文HTTP/1.0304NotModified对象未经修改http请求报文If-modified-since:http响应报文HTTP/1.1200OK对象已经修改originserverspublicInternetinstitutionalnetwork10MbpsLAN1.5MbpsaccesslinkinstitutionalcachefiletransferFTPserverFTPuserinterfaceFTPclientlocalfilesystemremotefilesystemuserathostFTPclientFTPserverTCPcontrolconnectionport21TCPdataconnectionport20第2章:应用层 |
|