华中科技大学计算机网络ppt课件 第2章 应用层.ppt
计算机网络,第2章 应用层,2022年12月26日,2,目 录,应用层协议原理WEB应用和HTTP协议文件传输协议:FTP因特网中的电子邮件DNS:因特网的目录服务P2P应用,2022年12月26日,3,2.1 应用层协议原理,常见的网络应用上网浏览新闻IE、Maxthon、FireFox处理电子邮件Outlook Express、FoxMail聊天QQ、MSN Messenger、UC网络电话SkyPe、Net2Phone网络游戏对战CS、魔兽世界、联众资源共享FTP、BT、EMULE在线视频VOD、ppLive搜索引擎Google、百度、MSN Search,2022年12月26日,4,2.1 应用层协议原理,看了这么多成功的网络应用,可能你会跃跃欲试,很想编写一个类似于Google这样的超级网络应用,期待自己有一天也能成功迈入世界级的IT风云人物之列,甚至试图问鼎一下世界首富 那么现在的你应该做些什么呢?,2022年12月26日,5,2.1 应用层协议原理,知道什么是网络应用程序可以向网络发送数据可以从网络接收数据可以对数据进行处理也许还能够将数据展现在界面上,以非常友好的方式让你知道它在做什么不时弹出一个小窗口,提示你不要太辛勤工作了,以表示对你无微不至的关怀 ,2022年12月26日,6,2.1 应用层协议原理,决定你的网络应用所采用的体系结构客户/服务器体系结构(C/S):Web、FTPP2P体系结构:EMULE、BitTorrent混合体系结构:QQ,2022年12月26日,7,2.1 应用层协议原理,客户/服务器体系结构特征存在一个能够向客户机提供服务的服务器,e.g.,Web服务器存在一个或者多个主动连接服务器,试图从服务器那里获取所需服务的客户机,e.g.,IE浏览器特别注意1:客户之间不能互相通信特别注意2:为提高服务器的处理能力,通常采用服务器群集(Server Farm),2022年12月26日,8,2.1 应用层协议原理,P2P体系结构特征任何一方既提供服务又享受服务结点之间可以直接通信结点的地址以及他们之间的连接可能随时发生变化例如: Gnutella特别注意:P2P体系结构非常容易扩展,但也特别难以管理,2022年12月26日,9,2.1 应用层协议原理,混合体系结构C/S体系结构和P2P体系结构的混合体 考虑第一个P2P应用Napster和即时通信(IM),2022年12月26日,10,2.1 应用层协议原理,网络应用涉及各个组成部分的交互同一台主机上的进程之间通信的规则,由操作系统制定,和计算机网络无关,本课程不讨论。如需要了解,可参阅操作系统及相关书籍不同主机上的进程之间通信的规则和网络相关,这套规则在计算机网络中,称之为“应用层协议”,也是本章重点讨论的内容,2022年12月26日,11,2.1 应用层协议原理,当你的网络应用程序运行起来后,就变成了网络应用进程。产生了如下问题:当你的网络应用和其它人开发的网络应用共同运行在一台主机上时,如何对这些网络应用进行区分?通信子网只负责把数据交付到主机,并不负责把数据交付到应用进程,主机如何知道数据该交付到哪个网络应用进程?,2022年12月26日,12,2.1 应用层协议原理,一个例子你有一个信箱(非电子的),并且每天都会查看一次信箱,取走新的信件和报纸。但是家里有七口人邮局只负责根据信件上的门派号码把信送到信箱里家里的每个成员根据收信人姓名从信箱里拿到自己的信件信箱就像主机,而家里的每个成员就像主机上运行的网络进程信箱靠门派号码寻址,主机靠IP地址寻址家庭成员靠姓名寻址,主机上的进程靠端口号寻址通过主机+端口号可以找到一台主机上的进程(靠门派号+收件人姓名才能找到收件人),2022年12月26日,13,2.1 应用层协议原理,类比到因特网,提供了类似的解决方法,那就是“套接字(Socket)”每个网络应用进程都有一个属于自己的套接字,该套接字在整个因特网上独一无二主机地址:标识该网络应用进程运行在因特网上哪一台主机上,通常使用32位的IP地址进行标识端口地址:在该主机上标识该网络应用进程,通常使用16位的端口号进行标识e.g.,WEB Server:80;Mail Server:25;套接字的长度为48位,2022年12月26日,14,2.1 应用层协议原理,进程通过套接字来接收和发送报文套接字相当于一个通道发送进程将报文交给套接字套接字将这些报文传输到接收进程的套接字,2022年12月26日,15,2.1 应用层协议原理,因特网会给网络应用提供很多不同类型的服务,你的网络应用需要哪些服务呢?数据的可靠传输:你的网络应用是否需要可靠?带宽的自动控制:你的网络应用对带宽是否敏感?传输和反馈的实时性安全性:SSL(安全套接字层,在应用层实现),2022年12月26日,16,2.1 应用层协议原理,常见应用程序对传输服务的要求,应用程序文件传输电子邮件Web 网页实时音频/视频存储音频/视频交互式游戏即时讯息,数据丢失不能丢失不能丢失不能丢失允许丢失允许丢失允许丢失允许丢失不能丢失,带宽弹性弹性弹性音频: 5Kb-1Mb视频:10Kb-5Mb同上 几 Kb/s 以上弹性,时间敏感不不不100s msecfew secs100s msecyes and no,2022年12月26日,17,2.1 应用层协议原理,因特网运输层将所提供的服务整合成两类传输服务,你需要决定你的网络应用使用哪一类传输服务。传输控制协议TCP面向连接: 在客户端和服务器进程之间需要建立连接可靠传输 : 在发送进程和接收进程之间流量控制: 发送数据的速度不能超过接收的速度 拥塞控制: 当网络超负荷时,约束发送端口,减缓发送速度不提供: 实时性, 最小带宽承诺,2022年12月26日,18,2.1 应用层协议原理,UDP在客户端和服务器进程之间实现“不可靠的”数据传输不提供:连接建立, 可靠性保证,流量控制,拥塞控制,实时性, 最小带宽承诺,2022年12月26日,19,2.1 应用层协议原理,因特网常见应用采用的传输协议,应用电子邮件远程终端访问Web 文件传输流媒体IP电话,应用协议smtp RFC 821telnet RFC 854http RFC 2068ftp RFC 959HTTP(如YouTube)、RTPSIP、RTP或专用协议(如Skype),所依赖的传输协议TCPTCPTCPTCPTCP or UDP通常使用 UDP,2022年12月26日,20,2.1 应用层协议原理,至此你已经获得了构造属于你自己的网络应用所需要的最基本的知识。但是这还远远不够,你还需要继续学习:协议到底怎样工作套接字如何工作传输层的服务是如何提供的IP地址是怎么回事网卡和网线起了什么样的作用如何保证网络应用的安全性和性能 ,2022年12月26日,21,2.2 WEB应用和HTTP协议,历史的回顾19世纪70年代,电话的发明,扩展了人类通信的范围,增强了人类通信的实效性20世纪20年代,广播收音机和电视的发明,极大的丰富了人类可获取信息20世纪90年代,WEB的发明,极大的提高了人类主动获取信息的能力广播、收音机、电视和WEB的比较广播形式和按需操作你不能发布电视节目,但可以发布WEB内容,2022年12月26日,22,2.2 WEB应用和HTTP协议,WEB的构成WEB服务器:IIS、Apache、TomCat浏览器:IE、Maxthon、Firefox协议信息表达的协议HTML信息传输的协议HTTP说明:WEB属于C/S模式,2022年12月26日,23,2.2 WEB应用和HTTP协议,WEB内容的表达Web 页面由一些对象组成。对象可以是HTML文件,JPEG图片,音频文件,Java AppletHTML文件是Web页面的基础,它可以包括各种各样的对象,是一个容器对象如果一个HTML文件包含5个图片,就一共有6个对象任何一个对象都可以用 URL来定位URL的例子:,2022年12月26日,24,2.2 WEB应用和HTTP协议,WEB内容的传输HTTP协议客户端/服务器模式客户端: 浏览器请求、接收、展示 Web对象服务器: Web 服务器发送对象,对请求进行响应http1.0: RFC 1945http1.1: RFC 2068,运行IE浏览器的PC,运行IIS的服务器,运行FireFox浏览器的PC,http request,http request,http response,http response,2022年12月26日,25,2.2 WEB应用和HTTP协议,HTTP: TCP 传输服务:客户端启动TCP连接请求(创建套接字) 到服务器, 端口 80服务器接受来自客户端的 TCP 连接请求并建立连接http 报文(应用层协议报文) 在浏览器 (http client) 和Web服务器(http server)之间进行交换关闭TCP 连接,http 是 “无状态(stateless)”的服务器不保留任何访问过的请求信息,保留状态的协议很复杂!过去的历史 (状态) 需保留一旦浏览器/服务器崩溃, 它们各自的状态视图就会发生分歧,还需要重新进行核对。,2022年12月26日,26,2.2 WEB应用和HTTP协议,HTTP1.0的传输模式非持久连接,假设用户键入了一个 URL www. ,1a. http 客户端启动 TCP 连接到上的http 服务器 (进程). Port 80 是 http 服务器的默认端口.,2. http客户端发送 http 请求报文 (包括URL) 进入 TCP 连接插口(socket),1b. 在 上的http 服务器在 port 80 等待 TCP 的连接请求. “接受” 连接并通知客户端,3. http 服务器接收到请求报文, 形成 响应报文( 包含了所请求的对象 ,cs/index.htm), 将报文送入插口( socket),time,(该网页包含文本并引用了10 jpeg 图片),2022年12月26日,27,2.2 WEB应用和HTTP协议,5. http 客户端接收到了包含html文件的响应报文。分析 html 文件, 发现 10 个引用的 jpeg 对象,6. 对10 jpeg objects 逐个重复1-5 步,4. http 服务器关闭 TCP 连接.,time,2022/12/26,2.1 网络应用层原理,第2章:应用层-28,响应时间模型,RTT:一个小分组从client到server,再回到client的时间。(Round Trip Time)响应时间:1个 RTT 启动TCP连接1个 RTT :从开始发送请求到响应报文的第一个字节到达的时间文件传输时间total = 2RTT+文件传输时间,2022年12月26日,29,2.2 WEB应用和HTTP协议,非持久连接工作机制分析取对象需要2 RTTs(Round-Trip Time)TCP 连接对象请求/传送许多浏览器同时打开多个并行的连接来改善性能考虑:如果有1万台客户机访问WEB服务器的某个页面,该页面有100个对象,那就意味着需要100万个连接,1个服务器能够支持吗?,2022年12月26日,30,2.2 WEB应用和HTTP协议,HTTP1.1引入的新传输模式持久连接服务器在发送响应后,不再断开TCP连接,而是保持该连接,用于后续对象的传送,直至该连接“休息”了一个较长的时间后,才断开该连接减少了对服务器端连接数的需要,从而减少了对服务器端套接字资源的占用,提高了服务器的负载能力持久连接又可以分为非流水线方式:一个对象传输完成方能传输下一个流水线方式:可以一次性发送所有请求,逐个接收,2022年12月26日,31,2.2 WEB应用和HTTP协议,HTTP报文类型HTTP请求报文HTTP响应报文,2022年12月26日,32,2.2 WEB应用和HTTP协议,HTTP请求报文一段典型的HTTP请求报文,GET /somedir/page.html HTTP/1.0 Host: www.someschool.edu Connection: close User-agent: Mozilla/4.0Accept-language:fr(额外的 carriage return, line feed),回车、换行表示报文结束,2022年12月26日,33,2.2 WEB应用和HTTP协议,HTTP请求报文的一般格式,2022年12月26日,34,2.2 WEB应用和HTTP协议,请求行支持的方法HTTP1.0 定义的方法GET向服务器请求指定URL的对象主体为空POST请求一个WEB页面的同时用于向服务器提交表单数据主体部分为表单数据 注意:可以不使用POST方法,而使用GET方法发送表单数据以获取新的WEB页面。例如: ,2022年12月26日,35,2.2 WEB应用和HTTP协议,HEAD请求服务器返回一个响应报文,但是仅仅只需要获得响应的协议头,该报文中并不包含请求的对象。该方法常常用来进行故障跟踪。 HTTP1.1新定义的方法PUT上传文件,文件放在实体主体字段中,目标路径由URL字段标明DELETE删除URL字段中指定的文件,2022年12月26日,36,2.2 WEB应用和HTTP协议,HTTP响应报文一段典型的HTTP响应报文,HTTP/1.0 200 OK Connection closeDate: 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文件,2022年12月26日,37,2.2 WEB应用和HTTP协议,HTTP响应报文的一般格式,2022年12月26日,38,2.2 WEB应用和HTTP协议,常见的HTTP响应状态码和短语200 OK请求成功, 被请求的对象在报文中301 Moved Permanently被请求的对象被移动,新位置在报文中有说明 (Location:)400 Bad Request服务器不能解释请求报文404 Not Found服务器上找不到请求的对象505 HTTP Version Not Supported服务器不支持请求报文使用的HTTP协议版本,2022年12月26日,39,2.2 WEB应用和HTTP协议,用户服务器交互:CookieWEB站点使用Cookie的目的限制用户的访问把内容和用户身份关联起来Cookie技术的组成部分:在HTTP响应报文中有一个Cookie首部行在HTTP请求报文中也有一个Cookie首部行在用户的端系统中保留了一个Cookie文件,由用户浏览器负责管理在Web站点有一个后端数据库,2022年12月26日,40,2.2 WEB应用和HTTP协议,Cookie工作流程,客户端,服务器,http请求报文,http响应报文 +Set-cookie: 1678,Cookie特定动作,Cookie特定动作,服务器为用户创建ID:1678,后端数据库的记录,访问,访问,一周以后:,2022年12月26日,41,2.2 WEB应用和HTTP协议,Cookies能为我们带来什么好处呢?身份认证“购物车”“产品推荐”用户会话状态 (Web、E-mail),Cookies和隐私性:Cookies允许网站获得相当多的用户的信息你可能会向网站提供你的姓名和E-Mail地址搜索引擎也可以使用cookie技术获得很多的信息广告公司也可以通过用户访问过的网站来获得用户的相关信息,2022年12月26日,42,2.2 WEB应用和HTTP协议,WEB缓存目的加速客户端访问WEB页面的速度,减少时延减少局域网与外部因特网交换的数据量,从而在达到同等服务质量的同时,可以使用较小的网络带宽,节约费用,客户端,WEB 缓存,客户端,http request,http request,http response,http response,http request,http response,Web服务器,2.2 WEB应用和HTTP协议,WEB缓存缓存同时充当客户和服务器一般缓存由ISP来购买并安装 (大学、公司、居民区ISP),为什么要用到Web缓存?减少客户请求的响应时间减少一个机构因特网链接的通信量因特网上存在大量的Web缓存以便内容提供商能更有效地分发内容,2022年12月26日,43,2022年12月26日,44,2.2 WEB应用和HTTP协议,缓存举例假设平均对象的大小 = 100,000 bits浏览器对这些对象的平均访问速率为15个/秒从因特网一侧的路由器转发HTTP请求到它收到响应报文的平均时间为 2秒,2022年12月26日,45,2.2 WEB应用和HTTP协议,结果总延迟 = 因特网延迟 + 访问链路延迟 + 局域网延迟局域网的流量强度 =0. 15接入链路的流量强度 =1当流量强度为1时,时延可能非常大,从而导致总时延可能要以分钟来计算,流量强度=La/R=(15个请求/秒 x 100kb/请求)/R局域网:15*100kb/10*1000K=0.15Internet: 15*100kb/1.5 * 1000K = 1,2022年12月26日,46,2.2 WEB应用和HTTP协议,改进方案1增加出口带宽假设将访问链路带宽增加到10Mbps结果局域网的流量强度 =0. 15, 接入链路的流量强度 =0.15 这时访问延迟和局域网延迟最多数十毫秒总延迟 = Internet延迟 + 访问延迟 + 局域网延迟 2 sec,请注意:增加出口带宽的费用是非常昂贵的,2022年12月26日,47,2.2 WEB应用和HTTP协议,改进方案2 架设WEB缓存假设命中率为0.4结果40% 的请求几乎可以马上得到响应,时延大概10ms60% 的请求必须从服务器上获得响应接入链路的流量强度减少到0.6, 其导致的延迟可以忽略(例如10msec) 。 总的平均延迟 = Internet 延迟 + 访问延迟 + 局域网延迟 0.6 x (2.01) 秒 + 0.4 x (0.01s) 略大于1.2 secs,好于方案1,代价:一台普通PC+一套免费的WEB缓存软件,2022年12月26日,48,2.2 WEB应用和HTTP协议,条件GET方法的使用目的:更新WEB缓存中的WEB对象副本举例WEB缓存向WEB服务器发送请求报文,GET /fruit/kiwi.gif HTTP/1.1Host: ,2022年12月26日,49,2.2 WEB应用和HTTP协议,WEB服务器向该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/gif(data data data data data data),2022年12月26日,50,2.2 WEB应用和HTTP协议,一周后,一个客户端请求该对象,为判断WEB缓存中的该对象副本是否最新的,该WEB缓存向原始服务器发出一个条件GET方法,执行更新检查,GET /fruit/kiwi.gif HTTP/1.1Host: If-Modified-Since: Wed, 1 Jul 2009 09:23:24,2022年12月26日,51,2.2 WEB应用和HTTP协议,如果该对象没有被修改过,WEB缓存上的仍然是最新版本,则WEB服务器发送如下响应报文,HTTP/1.1 304 Not ModifiedDate: Mon, 13 Jul 2009 15:39:29Server: Apache/1.3.0(Unix)(实体主体为空),2022年12月26日,52,2.2 WEB应用和HTTP协议,如果该对象在此之后被修改过,WEB服务器上有最新版本,则WEB服务器发送新版本的对象给WEB缓存,HTTP/1.1 200 OKDate: Mon, 13 Jul 2009 15:39:29Server: Apache/1.3.0(Unix)Last-Modified: Sat, 11 Jul 2009 09:23:24Content Type: image/gif(data data data data data data),2022年12月26日,53,2.3 文件传送协议:FTP,FTP简况(RFC 959)使用TCP协议传输数据C/S模式端口:21/20,2022年12月26日,54,2.3 文件传送协议:FTP,FTP与HTTP传输文件的共同点均使用TCP协议FTP与HTTP传输文件的不同点FTP的控制信息是带外传送的,而HTTP的控制信息则是带内传送的FTP存在两个并行的连接控制连接:持久连接,保存状态数据连接:非持久连接,针对会话的每一次文件传输都需要建立一个新的数据连接。,2022年12月26日,55,2.3 文件传送协议:FTP,FTP连接是有状态的,而HTTP连接则是无状态的FTP服务器会在整个会话期间维护用户的状态信息把用户帐户和控制连接联系起来追踪用户在远程目录树上的位置对活动的用户会话的状态进行追踪,以限制FTP会话总数,2022年12月26日,56,2.3 文件传送协议:FTP,常见的FTP命令USER username(向服务器传送用户标识)PASS password(向服务器传送用户口令)LIST (返回当前目录中的文件列表)RETR filename (取 (get) 文件)STOR filename (存(put) 文件到远程主机),2022年12月26日,57,2.3 文件传送协议:FTP,常见的FTP应答331 Username OK, password required125 data connection already open; transfer starting425 Cant open data connection452 Error writing file注意:FTP的应答和HTTP的应答是否很类似?,2022年12月26日,58,2.4 因特网中的电子邮件,电子邮件系统的构成用户代理 邮件服务器 简单邮件传输协议: SMTP,用户邮箱,外发报文队列,2022年12月26日,59,2.4 因特网中的电子邮件,用户代理写作, 编辑, 阅读邮件报文e.g. OE、FoxMail邮件服务器邮箱 包含了收到的用户邮件 (尚未被阅读)报文 队列包含了要向外发送的邮件报文SMTP 协议用于发送邮件客户端: 将邮件发送到邮件服务器“服务器”: 接收和转发邮件,用户邮箱,外发报文队列,2022年12月26日,60,2.4 因特网中的电子邮件,一次邮件传送过程Alice使用用户代理撰写邮件给:bobsomeschool.eduAlice 的用户代理通过SMTP将邮件给她的邮件服务器;邮件被保存在消息队列中SMTP的客户端向Bob的邮件服务器建立一个TCP连接SMTP的客户端通过这个TCP连接用SMTP协议发送Alice的邮件到Bob的邮件服务器Bob的邮件服务器将这个消息存储到Bob的邮箱中Bob使用他的用户代理阅读这个消息(取邮件,POP3,IMAP),2022年12月26日,61,2.4 因特网中的电子邮件,SMTP协议使用 TCP可靠的传送邮件报文, 端口25直接传输: 发送服务器到接收服务器传输的三个阶段握手(打招呼)报文传输结束命令/响应交互命令(client-Server): ASCII文本响应(Server-Client): 状态码和短语邮件报文必须使用7-bit ASCII表示,2022年12月26日,62,2.4 因特网中的电子邮件,S: 220 hamburger.edu -(mailserver) C: HELO 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: 221 hamburger.edu closing connection,2022/12/26,2.1 网络应用层原理,第2章:应用层-63,自测 smtp 交互:,$telnet MailServerName 25见到邮件服务器的 220 响应后键入 HELO, MAIL FROM, RCPT TO, DATA, QUIT 命令 上述过程可以不使用用户代理,就能直接将电子邮件发送出去(因为目前大部分邮件服务器的交互过程趋于复杂,本试验不一定都能进行)。,2022年12月26日,64,2.4 因特网中的电子邮件,SMTP评述SMTP使用持久连接SMTP要求报文 (首部 & 信体) 全部使用 7-bit ASCII码某些代码组合不允许出现在报文中 (e.g., CRLF.CRLF). 此类数据必须进行编码 (如 base-64编码)SMTP服务器用 CRLF.CRLF 表示邮件报文的结束,SMTP vs HTTP都使用 ASCII 命令/响应来交互并使用状态码SMTP要求报文 全部使用 7-bit ASCII码,而HTTP没有这个限制HTTP: pull(拉) vs SMTP: push(推)HTTP:文件的接受者发起连接SMTP:文件的发送者发起连接HTTP的每个对象分装在各自的响应报文中,而SMTP的多个对象在一个“多分部”的报文中传送,2022年12月26日,65,2.4 因特网中的电子邮件,邮件报文格式首部诸行, e.g., To:From:Subject:它不同 于 smtp 命令。前者是邮件报文的一部分,后者是握手协议的一部分。信体即 “报文”,只能是ASCII 码,header,body,空行,2022年12月26日,66,2.4 因特网中的电子邮件,非ASCII码数据的MIME扩展,多媒体类型, 子类型, 参数声明,数据编码方法,MIME 版本,编码后的数据,2022年12月26日,67,2.4 因特网中的电子邮件,从邮箱获取邮件的方法POP3协议(Post Office Protocol)IMAP协议(Internet Mail Access Protocol)HTTP,2022年12月26日,68,2.4 因特网中的电子邮件,POP3协议的认证阶段telnet mailserver 110客户端命令: user: 用户名pass: 口令服务器响应+OK-ERR,S: +OK POP3 server ready C: user alice S: +OK C: pass hungry S: +OK user successfully logged on,2022年12月26日,69,2.4 因特网中的电子邮件,POP3协议的交互命令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 C: quit S: +OK POP3 server signing off,2022年12月26日,70,2.4 因特网中的电子邮件,POP3讨论“下载-删除”方式: 用户如果更换客户机无法再次阅读原来的邮件“下载-保存”方式: 在不同的邮件服务器上保存邮件的副本POP3会话是无状态的,以简化服务的实现用户使用POP3协议无法在邮件服务器上对自己的邮件进行重组织,只能将邮件下载到本地计算机进行重组织,思考:Outlook Express如何取邮件?它为何可以组织文件夹?,2022年12月26日,71,2.4 因特网中的电子邮件,IMAP协议相比POP3具有更多特色,也更复杂将所有的邮件都保存在服务器上允许用户在服务器上组织自己的邮件目录IMAP维护了IMAP会话的用户状态信息:允许用户代理获取报文组件只读取报文的报文首部只读取MIME报文的一部分,2022/12/26,2.1 网络应用层原理,第2章:应用层-72,基于Web的电子邮件,Web Mail用户代理就是普通的浏览器用户和其远程邮箱的通信(发送和接受)是通过HTTP协议进行和IMAP一样,用户可以在远程服务器上以层次的方式组合他们的报文。,2022年12月26日,73,2.5 DNS:因特网的目录服务,人类社会对人的识别身份证号(420105)护照号(9527)姓名,网络社会对机器的识别MAC地址(48bit)IP地址(32bit)域名( ),IP 地址和域名之间如何映射(转换) ?,为此人类设计了DNS系统,用于IP地址和域名之间的转换,计算机通信是通过IP地址来寻址,但人们不愿意记无意义的数值,愿意记有意义的名字-域名。但真正开始通信前,需要把域名转换成IP地址。,2022年12月26日,74,2.5 DNS:因特网的目录服务,DNS特点DNS是一个分布式数据库,由很多台DNS服务器按照层次结构组织起来DNS是应用层协议,且使用UDP协议(53号端口)进行报文传输DNS以C/S的模式工作DNS不直接和用户进行交互,而是因特网的核心功能,2022/12/26,2.1 网络应用层原理,第2章:应用层-75,2.5 DNS:因特网的目录服务,DNS 功能:主机名到IP地址的翻译主机别名邮件服务器别名负载分配繁忙的站点被冗余分配在多台Sever上(Server farm。每台Server有不同的IP,多个IP对应同一个域名。当客户请求解析该域名时,DNS Server会返回所有IP地址的集合,但旋转排放IP地址的排列顺序。客户机按最前面的地址发送HTTP请求报文。,2022年12月26日,76,2.5 DNS:因特网的目录服务,DNS的实现最简单的方法单台DNS服务器单点故障的问题:一旦崩溃,因特网将无法维持数据的流通量:使得DNS服务器不堪重负远程的集中式数据库:带来严重的延时维护量巨大:DNS服务器不得不持续的更新以适应因特网上主机的增加与减少,显然,这种方法是行不通的!,2022年12月26日,77,2.5 DNS:因特网的目录服务,真正的DNS实现:层次结构、分布式,根DNS服务器,.com DNS服务器,.edu DNS服务器,.cn DNS服务器,DNS服务器,umass.eduDNS服务器,DNS服务器,DNS服务器,DNS服务器,DNS服务器,根DNS服务器,顶级域(TLD)服务器,权威DNS服务器,2022年12月26日,78,2.5 DNS:因特网的目录服务,根域名服务器(13个),2022年12月26日,79,2.5 DNS:因特网的目录服务,顶级域DNS服务器:负责顶级域名和所有国家的顶级域名解析工作,例如:com, org, net, gov, uk, cn, jp等Network Solution公司负责维护com顶级域DNS服务器Educause公司负责维护edu顶级域DNS服务器权威DNS服务器: 属于某个组织的DNS服务器, 为组织的服务器提供一个权威的域名到IP地址的映射服务 (例如:Web 和 mail)这些DNS服务器一般由所属组织或服务提供商负责维护,2022年12月26日,80,2.5 DNS:因特网的目录服务,本地DNS服务器严格的讲,本地DNS服务器并不属于DNS层次结构中的一层每一个ISP(住宅ISP、公司、大学)都会提供一个本地DNS服务器有时候,我们将其称为“默认DNS服务器”当一台主机需要做一个域名查询的时候,查询请求首先被发送到本地域名服务器本地域名服务器的行为就像一个代理,它会向域名的层次体系内进行进一步的域名查询。,2022年12月26日,81,2.5 DNS:因特网的目录服务,一次最简单的DNS解析过程假设Alice通过IE浏览器访问Alice的主机上存在DNS客户机结果IE浏览器从URL中抽取出域名,将其传送给DNS客户机DNS客户机向DNS服务器发出一个包含域名的查询请求报文DNS服务器向DNS客户机返回一个包含对应IP地址的响应报文DNS客户机将该IP地址传送给IE浏览器IE浏览器向该IP地址所在WEB服务器发起TCP连接,2022年12月26日,82,2.5 DNS:因特网的目录服务,一次完整的DNS解析过程发起请求使用递归查询后续解析为迭代查询,发起请求的主机cis.poly.edu,gaia.cs.umass.edu,根DNS服务器,1,2,3,4,5,6,权威DNS服务器dns.cs.umass.edu,7,8,TLD DNS服务器,2022年12月26日,83,2.5 DNS:因特网的目录服务,另外一种DNS解析流程纯递归查询,发起请求的主机cis.poly.edu,gaia.cs.umass.edu,根DNS服务器,1,2,4,5,6,权威DNS服务器dns.cs.umass.edu,7,8,TLD DNS 服务器,3,2022年12月26日,84,2.5 DNS:因特网的目录服务,DNS缓存一旦 (任何) 域名服务器得知了某个映射, 就将其 缓存在一定的时间间隔后缓存的条目将会过期(自动消除)顶级域DNS服务器IP地址通常被缓存在本地DNS服务器中这样可以减少根DNS的负载,2022年12月26日,85,2.5 DNS:因特网的目录服务,DNS可提供的服务域名到IP地址的转换主机/邮件服务器别名为不好记的规范主机/邮件服务器名提供一个易记的别名e.g. relay1.west-负载均衡一个域名对应多个IPDNS服务器在多个IP中进行轮转,2022年12月26日,86,2.5 DNS:因特网的目录服务,DNS记录的格式(RR:资源记录),Type=NSname = 域 (如)value =该域权威域名服务器的主机名,Type=Aname = 主机名value = IP 地址,Type=CNAMEName= 别名 如:value =规范名称 ,Type=MXvalue 是别名为name的邮件服务器的规范主机名,2022年12月26日,87,2.5 DNS:因特网的目录服务,DNS报文查询和回答报文的格式是一致的,2022年12月26日,88,2.5 DNS:因特网的目录服务,在DNS数据库中插入记录例如:要注册一个域名 “Network Utopia”在DNS注册登记机构注册名字“” (如 Network Solutions)提供权威DNS服务器的名字和IP地址 (包括基本的和辅助的)注册登记机构在com 顶级域名服务器中插入两条记录:(, , NS)(, 212.212.212.1, A)在权威DNS服务器中为创建A记录,为创建MX记录,2022年12月26日,89,2.5 DNS:因特网的目录服务,DNS记录的维护目前基本上都是手工维护RFC2136和RFC3007定义了DNS动态更新,2022年12月26日,90,2.6 P2P文件共享,一次传输的场景Alice在她的笔记本电脑上运行了一个P2P客户端应用她不定期的连接到因特网上,每次都获得一个不同的IP地址她希望