




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,第2讲: 应用层,本讲目标: 网络应用层的概念和实现 客户端-服务器范式 服务模型 通过对常用应用层协议的探讨和分析来学习网络协议 教科书参考 第9章,深层次目标 特定协议: http ftp smtp pop dns,2,应用程序和应用层协议,应用程序:沟通, 分布式的进程 运行在网络主机中的 “用户空间” 在应用程序间交换报文 e.g., email, ftp, Web 应用层协议: 应用层的一个“组成部分” 定义应用程序需交换的报文 和所需采取的动作 使用较低层次所提供的通信服务 (TCP, UDP),3,网络应用程序: 一些术语,进程(Process): 主机中运行中的程序. 在某
2、些主机中, 两个进程使用进程间通信 (由 OS管理). 而运行在不同主机上的进程则使用应用层协议进行通信,用户代理(User agent): 软件进程, 是介于用户( above )和网络( below )之间的接口 实现应用级协议 Web: 浏览器 E-mail: OE、Foxmail 流媒体: media player,4,客户端-服务器范式,典型的网络应用都是由两个部分组成: 客户端 和 服务器,客户端: 发起同服务器的联系 (“speaks first”) 一般都从服务器请求服务, Web: 客户端由浏览器实现; e-mail: 通过OE、Foxmial实现,服务器: 向客户端提供所请
3、求的服务 e.g., Web 服务器发送被请求的 Web 页面, 邮件服务器传递 e-mail,5,应用层协议(续),应用程序接口(API: application programming interface) 定义应用层和传输层间的接口 插口(socket: Internet API) 两个进程间的通信, 将数据送入 socket, 或从socket 读出数据,Q: 某个进程如何“认定”另一个 需要与之通信的进程? IP 地址-运行另一个进程的主机所拥有的 “端口号(PORT #)” 允许接收主机来确定的一个标识,本地进程将报文发送给它 教科书p232-234,6,应用进程需要怎样的传输服务
4、?,数据丢失(Data loss) 某些应用 (e.g., audio) 可以容忍某种程度上的数据丢失 其他应用 (e.g., 文件传输, telnet) 要求 100% 可靠的数据传输,实时性(Timing) 某些应用(e.g., IP 电话, 交互式游戏) 要求较低的时延,带宽(Bandwidth) 某些应用(e.g., 多媒体) 对最低带宽有要求 其他应用(“弹性应用”) 则可灵活应用所能得到的带宽,7,常用应用程序对传输功能的要求,应用程序 文件传输 e-mail Web 网页 实时音频/视频 存储音频/视频 交互式游戏 金融应用,数据丢失 不丢失 不丢失 不丢失 允许丢失 允许丢失
5、允许丢失 允许丢失 不丢失,带宽 弹性 弹性 弹性 音频: 5Kb-1Mb 视频:10Kb-5Mb 同上 几 Kb/s 以上 弹性,实时性 无 无 无 100s msec few secs 100s msec yes and no,8,Internet 的传输协议服务,TCP 服务: 面向连接: 在客户端和服务器进程之间需要建立连接(setup ) 可靠传输 : 在发送和接受进程之间 流量控制: 发送数据的速度决不超过接收的速度 拥塞控制: 当网络超负荷时,束紧发送端口,减缓发送速度 不提供: 实时性, 最小带宽承诺,UDP服务: 在客户端和服务器进程之间实现“不可靠的”数据传输 不提供:连接
6、建立, 可靠性保证,流量控制,拥塞控制,实时性, 最小带宽承诺 Q: 既生喻,何生亮? Why is there a UDP?,9,Internet应用: 应用, 传输协议,应用 e-mail 远程终端访问 Web 文件传输 流媒体 远程文件服务器 IP电话,应用协议 smtp RFC 821 telnet RFC 854 http RFC 2068 ftp RFC 959 专有协议 (e.g. RealNetworks) NSF 专有协议 (e.g., Vocaltec),所依赖的传输协议 TCP TCP TCP TCP TCP or UDP TCP or UDP typically UDP
7、,10,http 协议,http: TCP 传输服务: 客户端启动TCP连接(创建插口) 到服务器, 端口 80 服务器接受来自客户端的 TCP 连接 http 报文(应用层协议报文) 在浏览器 (http client) 和Web服务器(http server)之间进行交换 关闭TCP 连接,http 是 “无状态(stateless)”的 服务器不保留任何访问过的请求信息,保留状态的协议很复杂哟! 过去的历史 (状态) 需要保留 一旦浏览器/服务器崩溃, 它们各自的状态视图就会发生分歧,还需要重新核对,小评论,11,Web: http 协议,超文本传输协议(http: hypertext
8、transfer protocol) 万维网应用协议 客户端/服务器模式 客户端: 浏览器请求、接收、展示 Web对象( objects) 服务器: Web 服务器发送对象对请求进行响应 http1.0: RFC 1945 http1.1: RFC 2068,PC running Explorer,Server running NCSA Web server,Mac running Navigator,http request,http request,http response,http response,12,http 举例,假设用户键入了一个 URL www.someS
9、/someDepartment/home.index,1a. http 客户端启动 TCP 连接到www.someS上的http 服务器 (进程). Port 80 是 http 服务器的默认端口.,2. http客户端发送 http 请求报文 (包括URL) 进入 TCP 连接插口(socket),1b. 在www.someS 上的http 服务器在 port 80 等待 TCP 的连接请求. “接受” 连接并通知客户端,3. http 服务器接收到请求报文, 形成 响应报文( 包含了所请求的对象 ,someDepartment/home.index),
10、将报文送入插口( socket),time,(该网页包含文本并引用了10 jpeg 图片),13,http 举例 (续.),5. http 客户端接收到了包含html文件的响应报文。 分析 html 文件, 发现 10 个引用的 jpeg 对象,6. 对10 jpeg objects 逐个重复1-5 步,4. http 服务器关闭 TCP 连接.,time,14,非持续和持续连接,(非持续连接)Non-persistent http/1.0: 服务器分析请求、响应、关闭 TCP 连接 取对象需要2 RTTs TCP 连接 对象请求/传送 每次传送都要受到TCP连接初始化时的慢启动影响 许多浏览
11、器同时打开多个并行的连接来改善性能,(持续连接)Persistent http/1.1的默认设置 在同一TCP 连接上: 服务器分析请求、响应请求,分析新的请求、. 客户端一旦下载到了基本的html文件( base HTML )马上发送对所有引用对象的请求. 较少的 RTTs, 较少的慢启动.,15,http 报文格式: request(请求),two types of http报文: request, response http 请求报文: ASCII (可读格式),16,http 请求报文: 一般格式,17,http 报文格式: response(响应),HTTP/1.0 200 OK D
12、ate: 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文件,18,http 响应状态码和短语,200 OK 请求成功, 被请求的对象在报文中 301 Moved Permanently 被请求的对象被移动过, 新的位置在报文中有说明
13、(Location:) 400 Bad Request 服务器不懂请求报文 404 Not Found 服务器上找不到请求的对象 505 HTTP Version Not Supported,位于(服务器-客户端)响应报文的第一行. 样例:,19,自行测试 http (客户端操作),1. 用Telnet 连接测试用的服务器(需要预先登录UNIX):,打开 TCP 连接到 port 80 (默认的http 服务器端口) 位于 0 后续键入的内容将发送到0 的 80 号端口,$telnet 0 80,2. 键入一条 http请
14、求报文:,GET /j1010/hello.htm HTTP/1.0,将该指令键入后 (按两次回车键), 就将此最短之 (但是完整的) GET 请求发到了 http 服务器,3. 请注意观察http服务器发回的响应报文!,20,用户-服务器的交互: 认证(authentication),认证 : 控制对服务器内容的访问 信用认证: 一般通过用户名, 口令进行 无状态: 客户端必须在每次请求前进行认证 authorization: 就是要求在每个请求报文中提交认证的首部行 如果客户端没有提交 authorization: 首部行, 服务器将拒绝访问, 只是在响应报文首部中发送 WWW authe
15、nticate:,client,server,普通 http 请求报文,401: 认证要求 WWW authenticate:,21,Cookies: 保存 “状态”,服务器产生一个 # , 服务器认识这个 #, 以备不时之需: 认证 记忆用户的前序访问, 先前的选择 服务器在响应报文中发送 “cookie” 给客户端 Set-cookie: 1678453 客户端可以在后继的请求中发送“cookie” cookie: 1678453,client,server,普通 http 请求报文,普通 http响应报文+ Set-cookie: #,cookie- 特定的,cookie- 特定的,22
16、,Conditional GET: 客户端缓存机制,目的: 如果客户端缓存了最新的请求对象,则服务器不必重复发送 客户端: 在http请求报文中声明所缓存拷贝的生成日期 If-modified-since: 服务器: 如果客户端缓存的拷贝是最新的,则在响应报文中不发请求的对象: HTTP/1.0 304 Not Modified,client,server,http请求报文 If-modified-since: ,对象未经修改,http请求报文 If-modified-since: ,http响应报文 HTTP/1.1 200 OK ,对象已 经修改,23,Web 缓存:代理服务器 (prox
17、y server),用户设置浏览器: Web 访问经由代理服务器 客户端发送所有的 http 请求到代理服务器 代理服务器保存了请求的对象: 代理服务器返回请求的对象 否则代理服务器从原始服务器请求对象,再将其返回给客户端,目的: 满足客户端的请求而无需烦扰原始服务器,client,Proxy server,client,http request,http request,http response,http response,http request,http response,origin server,origin server,24,为何Web缓存?,前提: 缓存与客户端比较“接近 “
18、(e.g., 在同一网络中) 响应时间较短:缓存与客户端比较“接近 “ 减少了往来与远程服务器间的数据流量 因为从学校或本地ISP 通往外部的链路往往是网络瓶颈,origin servers,public Internet,institutional network,10 Mbps LAN,1.5 Mbps access link,institutional cache,25,ftp: 文件传输协议,传输文件往来与远程主机 客户端/服务器模式 客户端: 启动传输 (无论与往来远程主机) 服务器: 远程主机 ftp: RFC 959 ftp 服务器: 端口 21,26,ftp: 分离的控制, 数
19、据连接,ftp客户端在 ftp 服务器的 端口21进行联系, 使用TCP作为传输协议 打开两个并行的连接: 控制:在客户端和服务器之间交换命令, 响应。称为带外控制: “out of band control” 数据: 往来于服务器的文件 ftp 维持状态 (state): 当前目录、先前的认证信息等,27,ftp 命令, 响应,样例命令: 在控制通道上传送的ASCII文本 USER username(登录) PASS password(登录) LIST (返回当前目录中的文件列表) RETR filename (取 (gets) 文件) STOR filename (存(puts) 文件到远
20、程主机),返回码样例 状态码和短语 (同 http) 331 Username OK, password required 125 data connection already open; transfer starting 425 Cant open data connection 452 Error writing file,28,电子邮件,四个重要组件: 用户代理 邮件服务器 简单邮件传输协议: smtp 邮局协议:pop 用户代理 写作, 编辑, 阅读邮件报文 e.g., Foxmail, OE, elm, Netscape Messenger 外发, 接收的报文存储在邮件服务器中,
21、用户邮箱,外发报文队列,29,电子邮件:邮件服务器,Mail Servers 邮箱 包含了收到的用户邮件 (尚未被阅读) 报文 队列包含了外发的 邮件报文 smtp 协议用在邮件服务器之间发送邮件 客户端: 将邮件发送到邮件服务器 “服务器”: 接收和转发邮件,30,电子邮件: smtp RFC 821,使用 tcp 可靠的传送邮件报文, 端口25 直接传输: 发送服务器到接收服务器 传输的三个阶段 握手(打招呼) 报文传输 结束 命令/响应交互 命令: ASCII文本 响应: 状态码和短语 邮件报文必须使用7-bit ASCII表示,31,smtp 交互样例(在UNIX中用telnet),S
22、: 220 X1 NT-ESMTP Server C: HELO S: 250 hello C: MAIL FROM: S: 250 ok C: RCPT TO: S: 250 ok its for C: DATA S: 354 ok, send it; end with . C: Hi, I am in XUJI now,Where are you? C: . S: 250 Message queued C: QUIT S: 221 Goodbye,32,自测 smtp 交互:,$telnet 70 25 见到邮件服务器的 220 响应后 键入 HELO, MAIL
23、FROM, RCPT TO, DATA, QUIT 命令 上述过程可以不使用用户代理,就能直接将电子邮件发送出去(因为目前大部分邮件服务器的交互过程趋于复杂,本试验不一定都能进行)。,33,smtp: 评述,smtp 使用持续连接 smtp 要求报文 (首部 parameters,Text 子类型样例: plain, html Image 子类型样例: jpeg, gif Audio 子类型样例: basic (8-bit mu-law encoded), 32kadpcm (32 kbps coding),Video 子类型样例: mpeg, quicktime Application 需使
24、用其他阅读器的数据 子类型样例: msword, octet-stream,37,MIME多分部类型,From: alicecrepes.fr To: Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=98766789 -98766789 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain Dear Bob, Please find a pict
25、ure of a crepe. -98766789 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data . . .base64 encoded data -98766789-,38,邮件访问协议,SMTP: 发送/存储 到接收方的服务器 邮件访问协议: 从服务器中取信 POP: Post Office Protocol RFC 1939 认证 (agent server) 和下载 IMAP: Internet Mail Access Protocol RFC 1730 更多功能(更为复杂)
26、 在服务器中操作存储在那里的报文 HTTP: Hotmail , Yahoo! Mail, ,etc.,SMTP,POP3 or IMAP,receivers mail server,39,POP3 协议,认证阶段 客户端命令: user: 用户名 pass: 口令 服务器响应 +OK -ERR 交互阶段, 客户端: 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
27、S: +OK POP3 server signing off,S: +OK POP3 server ready C: user alice S: +OK C: pass hungry S: +OK user successfully logged on,40,DNS: 域名系统,自然人: 诸多定义: 身份证, 姓名, 护照 # 因特网主机, 路由器: IP 地址 (32 bit) 用于数据报寻址 “域名”, e.g., 帮助记忆 Q: IP 地址和域名之间如何映射(转换) ?,Domain Name System: 分布式数据库:由许多域名服务器按层次构成 应用层协议: 主机、路由器、域名服务
28、器互相通信进行域名解析 (地址/域名翻译) 注意: 因特网之核心功能, 应用层之协议 网络“边缘”上之复杂实体,41,DNS name servers,没有服务器能够保存所有 Name-to-IP 地址的映射 本地域名服务器: 每个 ISP, 企业可拥有 本地(默认) 域名服务器 主机的 DNS 查询首先发往本地域名服务器 授权域名服务器: 每台主机必须在授权服务器上注册登记 可完成域名/地址的转换,为什么不搞集中的DNS? 单点失败的问题 数据的流通量 远程集中式的数据库 维护问题 难以与时俱进,跟不上发展!,42,DNS: 根域名服务器,当本地域名服务器不能解析时,就向根域名服务器查询 根
29、域名服务器: 如果域名映射未知,则向授权域名服务器查询 取得映射 将映射返回本地域名服务器,遍布世界各地的13个根域名服务器,43,简单 DNS 举例,主机 要求 的IP 地址 1. 联系本地域名服务器, 0 2.如有必要0 会联系根域名服务器 3.如有必要根域名服务器会联系授权域名服务器, ,requesting host ,,root name server,authorititive name server ,1,2,3,4
30、,5,6,44,DNS 举例,根域名服务器: 可能不知道授权域名服务器的地址 可能知道中介域名服务器: 由它负责联系授权域名服务器,requesting host ,,root name server,1,2,3,4,5,6,authoritative name server ,7,8,45,DNS: 迭代查询,递归查询: 对根域名服务器造成工作负担 如何减负? 迭代查询: 被查询的服务器直接把可查询的服务器地址报回 “不懂这个域名, 但可以从这个服务器查到”,requesting host surf.eurecom.fr,ga
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高三中考前冲刺数学试卷
- 2025年03月内蒙古呼伦贝尔市满洲里市中蒙医院招聘卫生专业技术人员17人笔试历年专业考点(难、易错点)附带答案详解
- 2024年11月公考时政常识积累(16日)笔试历年参考题库附带答案详解
- 2025年04月山东聊城市茌平区“茌平优才校园直引”卫生类事业单位人才引进34人笔试历年专业考点(难、易错点)附带答案详解
- 2025至2030不锈钢通信配件市场行业市场占有率及投资前景评估规划报告
- 东北高三数学试卷
- 垃圾处理设施智能化发展考核试卷
- 都安六年级上册数学试卷
- 府谷中学数学试卷
- 东北三省三模数学试卷
- 2025年广西公需科目答案01
- 第二届全国化工和医药行业安全生产线上知识竞赛题库(共150题)
- JJF1033-2023计量标准考核规范
- 2024年吉林长春市中考地理试卷真题(含答案解析)
- 河北传统医学师承关系合同书
- 三级安全教育登记卡(新)
- 一亩茶园认养合同
- 2022年镇海中学提前招生模拟卷科学试卷
- 水井坊自动化酿酒设备技术方案文件
- 变电站新建工程土方开挖专项施工方案
- 广东话粤语姓名拼音大全
评论
0/150
提交评论