Application Layer.ppt
《Application Layer.ppt》由会员分享,可在线阅读,更多相关《Application Layer.ppt(127页珍藏版)》请在麦多课文档分享上搜索。
1、Application Layer,2-1,Chapter 2 Application Layer,Computer Networking: A Top Down Approach 6th edition Jim Kurose, Keith Ross Addison-Wesley March 2012,A note on the use of these ppt slides: Were making these slides freely available to all (faculty, students, readers). Theyre in PowerPoint form so y
2、ou see the animations; and can add, modify, and delete slides (including this one) and slide content to suit your needs. They obviously represent a lot of work on our part. In return for use, we only ask the following:,If you use these slides (e.g., in a class) that you mention their source (after a
3、ll, wed like people to use our book!) If you post any slides on a www site, that you note that they are adapted from (or perhaps identical to) our slides, and note our copyright of this material.Thanks and enjoy! JFK/KWRAll material copyright 1996-2012J.F Kurose and K.W. Ross, All Rights Reserved,Ap
4、plication Layer,2-2,Chapter 2: outline,2.1 principles of network applications 2.2 Web and HTTP 2.3 FTP 2.4 electronic mail SMTP, POP3, IMAP 2.5 DNS,2.6 P2P applications 2.7 socket programming with UDP and TCP,Application Layer,2-3,Chapter 2: application layer,our goals: conceptual, implementation as
5、pects of network application protocols transport-layer service models client-server paradigm peer-to-peer paradigm,learn about protocols by examining popular application-level protocols HTTP FTP SMTP / POP3 / IMAP DNS creating network applications socket API,Application Layer,2-4,Some network apps,e
6、-mail web text messaging remote login P2P file sharing multi-user network games streaming stored video (YouTube, Hulu, Netflix),voice over IP (e.g., Skype) real-time video conferencing social networking search ,2: Application Layer,5,创建一个网络应用,编写分布式程序,使得可以 运行在不同的端系统上 通过网络相互通信 例如,web服务器软件与浏览器软件 不需为网络核
7、心设备写程序 网络核心设备不运行用户应用 在端系统上开发应用有利于应用的快速研发和部署,2: Application Layer,6,2.1.1 网络应用架构,网络应用架构规定了在各个端系统上组织应用程序的方法: 客户-服务器架构(Client-server) 对等架构(Peer-to-peer ,P2P),2: Application Layer,7,客户-服务器架构,服务器: 一台总是在线的主机,运行着服务器程序 具有永久IP地址 使用主机集群或数据中心提高处理能力 客户机: 需要时与服务器通信 可能间断地连在网络上 通常使用动态IP地址 不与其它客户机直接通信,2: Applicatio
8、n Layer,8,P2P架构,没有总是运行的服务器 任意一对端系统(对等方)间可以直接通信 对等方间断连接,并使用动态IP地址 每个对等方可以请求服务,也可以提供服务Highly scalable but difficult to manage,2: Application Layer,9,2.1.2 进程通信,进程: 主机上运行的程序 在同一个主机中,两个进程使用进程间通信机制(由OS定义)进行通信. 不同主机上的进程通过交换报文进行通信,客户进程: 发起通信的进程 服务器进程: 等待联系的进程,Note: P2P架构的应用同时具有客户进程和服务器进程,Application Layer,
9、2-10,进程与网络的接口-套接字,进程通过套接字(socket)发送和接收报文 套接字类似于一扇门: 发送进程将报文推出门 门外的运输设施(因特网)将报文送到接收进程的门口 套接字是应用层和传输层的接口,也是应用程序和网络之间的API,Internet,controlled by OS,controlled by app developer,transport,application,physical,link,network,process,transport,application,physical,link,network,process,socket,2: Application L
10、ayer,11,进程编址,为了接收报文,每个进程必须有标识主机使用IP地址进行标识 Q: 用进程所在主机的IP地址能否标识进程?,2: Application Layer,12,进程编址,为了接收报文,每个进程必须有标识主机使用IP地址进行标识 Q: 用进程所在主机的IP地址能否标识进程? A: 不能,因为同一个主机上可能运行着许多进程。端口号被用来区分同一个主机上的不同进程。,2: Application Layer,13,进程编址,为了接收报文,每个进程必须有标识主机使用IP地址进行标识 Q: 用进程所在主机的IP地址能否标识进程? A: 不能,因为同一个主机上可能运行着许多进程。端口号被
11、用来区分同一个主机上的不同进程。,进程标识包括: IP地址 与该进程关联的端口号端口号的例子: HTTP server: 80 Mail server: 25,2: Application Layer,14,2.1.3 应用需要什么样的传输服务?,Data integrity 有些应用(如音视频)可以容忍一定程度的数据丢失 有些应用(如文件传输) 要求完全可靠的数据传输,Timing 有些应用(如网络电话,交互式网络游戏)要求延迟保证 有些应用(如邮件传输)对延迟不敏感,Throughput 有些应用(如多媒体)要求保证最低可用带宽 有些应用(称弹性应用) 可以适应各种可能的带宽,Securi
12、ty 加密,数据完整性,,2: Application Layer,15,2.1.4 因特网提供的传输服务,TCP service: 面向连接: 客户进程和服务器进程需要建立连接 发送进程和接收进程之间可靠传输 流量控制: 发送进程不会“压垮”接收进程 拥塞控制: 网络超载时抑制发送进程 不提供: 及时性,最低带宽保证,UDP service: 发送进程和接收进程之间不可靠传输 不提供: 连接建立,可靠传输,流量控制,拥塞控制,及时性,最低带宽保证,Application Layer,2-16,Transport service requirements: common apps,applic
13、ationfile transfer e-mail Web documents real-time audio/videostored audio/video interactive games text messaging,data lossno loss no loss no loss loss-tolerantloss-tolerant loss-tolerant no loss,throughputelastic elastic elastic audio: 5kbps-1Mbps video:10kbps-5Mbps same as above few kbps up elastic
14、,time sensitiveno no no yes, 100s msecyes, few secs yes, 100s msec yes and no,Application Layer,2-17,Internet apps: application, transport protocols,applicatione-mail remote terminal access Web file transfer streaming multimediaInternet telephony,application layer protocolSMTP RFC 2821 Telnet RFC 85
15、4 HTTP RFC 2616 FTP RFC 959 HTTP (e.g., YouTube), RTP RFC 1889 SIP, RTP, proprietary (e.g., Skype),underlying transport protocolTCP TCP TCP TCP TCP or UDPTCP or UDP,2: Application Layer,18,2.1.5 应用层协议,应用层协议定义了: 交换的报文类型, e.g., request, response 报文语法: 报文中的字段及其描述 报文语义 各字段中信息的含义 进程何时及如何发送/响应报文的规则,公共领域协议
16、: 在RFC文档中定义 允许互操作 e.g., HTTP, SMTP专用协议: e.g., Skype,Application Layer,2-19,Chapter 2: outline,2.1 principles of network applications app architectures app requirements 2.2 Web and HTTP 2.3 FTP 2.4 electronic mail SMTP, POP3, IMAP 2.5 DNS,2.6 P2P applications 2.7 socket programming with UDP and TCP,2
17、: Application Layer,20,一些术语,Web page由一些对象(object)组成。 对象简单来说就是文件,可以是HTML文件、JPEG图像、Java小程序、音频文件, Web页通常包含一个基本HTML文件,文件中包含若干引用对象。 每个对象通过一个URL进行访问。 Example URL:,2: Application Layer,21,2.2.1 超文本传输协议-HTTP 概述,Web采用客户-服务器模式 client: 浏览器请求、接收和显示web对象 server: Web服务器应客户请求发送对象HTTP协议定义了浏览器和web服务器之间的通信规则HTTP 1.0(
18、RFC 1945)和HTTP 1.1(RFC 2068),PC running Explorer,Server running Apache Web server,Mac running Navigator,HTTP request,HTTP request,HTTP response,HTTP response,2: Application Layer,22,HTTP 概述(续),使用TCP作为传输层协议: 客户发起到服务器 80 端口的 TCP 连接(客户端创建一个套接字) 服务器接受来自客户的TCP连接(服务器端创建一个套接字) 浏览器和服务器交换HTTP报文 (通过各自的套接字) 关闭
19、TCP 连接,HTTP是“无状态的” 服务器不保存有关客户请求的任何信息,Protocols that maintain “state” are complex! past history (state) must be maintained if server/client crashes, their views of “state” may be inconsistent, must be reconciled,aside,2: Application Layer,23,2.2.2 非持久连接和持久连接,非持久 HTTP 在一个TCP连接上最多发送一个对象。 HTTP/1.0 使用非持久
20、连接。,持久 HTTP 在一个TCP连接上可以发送多个对象。 HTTP/1.1 缺省使用持久连接。,2: Application Layer,24,非持久 HTTP,假设用户输入以下URL:http:/www.someSchool.edu/someDepartment/home.index,1a. HTTP客户发起到以下HTTP 服务器进程的连接www.someSchool.edu on port 80。,2. HTTP客户将一个HTTP请求报文(包含URL)写入它的套接字,报文指示希望获取以下对象:someDepartment/home.index,1b. www.someSchool.ed
21、u上的HTTP服务器在端口80等待TCP连接,接受连接,并通知客户。,3. HTTP服务器接收请求报文,构造包含所请求对象的响应报文,将报文写入它的套接字中。,time,(包含文本及 10个Jpeg图像),2: Application Layer,25,非持久HTTP(续),5. HTTP 客户接收包含HTML文件的响应报文,显示HTML文件,解析文件发现有10个引用的jpeg对象。,6. 对于每个jpeg对象,重复步骤 1-5。,4. HTTP 服务器关闭TCP连接,time,2: Application Layer,26,非持久HTTP的响应时间,RTT (Round-Trip Time)
22、: 一个小分组从客户发送到服务器再返回客户的时间。 Response time: 建立TCP连接用时一个RTT 发送HTTP请求至收到响应的前几个字节用时一个RTT 传输文件的时间下载一个对象的时间 = 2RTT+对象传输时间 下载完整网页的时间 = 22RTT(11个对象),2: Application Layer,27,持久 HTTP,非持久HTTP 的问题: 获取每个对象需要2个RTT 每个TCP连接需要消耗操作系统资源 浏览器通常打开多个TCP连接获取引用对象,消耗资源持久 HTTP 服务器在发送响应后保持连接 同一对客户-服务器之间的后续HTTP报文可以在该连接上传输,无流水线方式:
23、 客户仅当收到前一个响应后再发送新的请求 请求每个对象用时1个RTT 请求一个网页用时12RTT 流水线方式: HTTP/1.1缺省使用该方式 客户每解析到一个引用对象就可以发送请求 可在一个RTT时间内请求所有引用对象 请求一个网页用时约3RTT,2: Application Layer,28,2.2.3 HTTP 报文格式,两类HTTP报文: 请求报文,响应报文 HTTP报文由ASCII文本构成HTTP请求报文:,2: Application Layer,29,HTTP请求报文,报头包括:,GET /somedir/page.html HTTP/1.1 Host: www.somescho
24、ol.edu User-agent: Mozilla/4.0 Connection: close Accept-language:fr (extra carriage return, line feed),请求行,首部行,一个额外的回车换行表示报头结束,2: Application Layer,30,上传表单输入,Post 方法: Web页通常包含表单输入 输入的表单内容放在报文体中上传到服务器,URL 方法: 使用 GET 方法 输入内容放在请求行的URL字段中上传,如:, Application Layer,31,HTTP方法,HTTP/1.0 GET POST HEAD 要求服务器不返回
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- APPLICATIONLAYERPPT
