




已阅读5页,还剩73页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2 ApplicationLayer 1 第2章应用层 2 1应用层协议原理2 2Web应用和HTTP协议2 3文件传输 FTP2 4Internet中的电子邮件2 5DNS2 6P2P文件共享2 7基于TCP的Socket程序设计2 8基于UDP的Socket程序设计2 9构建一个简单的Web服务器 2 ApplicationLayer 2 第2章应用层 电子邮件Web即时通信远程登录P2P文件共享多用户网络游戏流式存储的音频和视频 网络电话实时视频会议大规模并行计算 2 ApplicationLayer 3 构造一个网络应用 写一个程序在不同的终端系统上运行可以在网络上通信如 Web服务器软件 浏览器软件很少给网络核心设备写软件网络核心设备上不运行用户应用代码 2 ApplicationLayer 4 2 1应用层协议原理 2 1 1网络应用程序体系结构2 1 2进程通信2 1 3应用层协议2 1 4应用需要什么样的服务 2 1 5由传输层提供的服务 2 ApplicationLayer 5 2 1 1应用程序体系结构 客户端 服务器结构Client server对等结构Peer to peer P2P 客户端 服务器和对等结构的混合模型 2 ApplicationLayer 6 2 1 1应用体系结构 Client server server 总是在线的主机永久性IP地址提供所请求的服务clients 和服务器通信可能是动态IP地址彼此间不直接通信请求服务 2 ApplicationLayer 7 2 1 1应用体系结构 纯P2P 没有永远在线的服务器任意终端直接通信对等端可能用不同的IP地址间歇性连接到网络上example Gnutella规模很大但难于管理 PureP2P 2 ApplicationLayer 8 2 1 1应用体系结构 C S和P2P的混合 即时通信在两个用户之间进行通信的系统分布使用 集中管理 用户上线时向中心服务器注册他的IP地址用户联系中央服务器来获取好友的IP 2 ApplicationLayer 9 2 1 2进程通信 进程 process 运行在主机上的程序在同一台主机上 两进程使用OS支持的进程间通信方式通信不同主机上的进程之间通过交换消息进行通信 客户端进程 发起通信的进程服务器进程 等待被连接的进程 注意 P2P结构的应用程序同时有客户端进程和服务器进程 2 ApplicationLayer 10 2 1 2进程通信 Socket 进程通过Socket发送 接受消息socket是一扇 门 位于 应用层和传输层之间程序设计者和OS之间 Internet 由OS控制 程序设计者操作 2 ApplicationLayer 11 2 1 2进程通信 Socket 每个socket都有一个标示 port 端口号 主机通过不同的socket 端口号提供不同的应用服务 2 ApplicationLayer 12 2 1 2进程通信 寻址 标示包括IP地址和端口号 port 二者共同和主机上的进程相关联IP地址 32bit 标示主机port 16bit 标示进程 应用程序 向web服务器发送HTTP消息 IP 202 200 142 46Port 80向服务器发送e mail IP 202 200 142 46Port 25向web服务器发送HTTP消息 IP 202 43 216 251Port 80 2 ApplicationLayer 13 2 1 3应用层协议 区别 应用 和 应用层协议 应用 可通信的 分布式的进程在网络上的用户空间上运行Web 浏览器 服务器软件 HTTPEmail 用户代理 邮件服务器 SMTP应用层协议 是一个应用的一部分规定了消息的类型 请求 响应 定义了消息的语法 格式制定了发送 接收消息的规则 2 ApplicationLayer 14 2 1 3应用层协议 应用电子邮件远程终端登陆Web文件传输流式多媒体远程文件服务器网络电话 应用层协议smtptelnethttpftpproprietary e g RealNetworks NSFproprietary e g Vocaltec 底层传输协议TCPTCPTCPTCPTCPorUDPTCPorUDPtypicallyUDP 2 ApplicationLayer 15 2 1 4应用需要什么样的服务 Dataloss 差错 需要100 可靠数据传输的应用 e mail ftp可以容忍一些数据丢失的应用 音频 多媒体 loss tolerant 容许错误 Bandwidth 带宽 带宽敏感的应用 多媒体带宽弹性较大的应用 web e mail 可以充分利用其所能得到的大或小的带宽 差错 带宽 实时性 2 ApplicationLayer 16 2 1 4Whatservicedoesanappneed 实时性时间敏感 网络电话 实时应用 容许延迟 web e mail 2 ApplicationLayer 17 2 1 5传输层提供的服务 FTP HTTP SMTP DNS 2 ApplicationLayer 18 2 1 5传输层提供的服务 TCP服务 面向连接 在client和server之间建立连接可靠传输 在发送和接收进程之间进行可靠传输流量控制 避免发送方淹没接收方拥塞控制 当网络过载时遏制发送方不提供的服务 时间和最小带宽保证 UDP服务 在发送进程和接收进程间提供不可靠的传输不提供的服务 建立连接 可靠保证 流量控制 拥塞控制 时间和带宽保证 2 ApplicationLayer 19 2 1 3应用层协议 应用电子邮件远程终端登陆Web文件传输流式多媒体远程文件服务器网络电话 应用层协议smtptelnethttpftpproprietary e g RealNetworks NSFproprietary e g Vocaltec 底层传输协议TCPTCPTCPTCPTCPorUDPTCPorUDPtypicallyUDP 2 ApplicationLayer 20 2 2WWW WorldWideWeb 2 2 1HTTP概述2 2 2非持续性和持续性连接2 2 3HTTP报文格式2 2 4用户和服务器的交互 Cookies2 2 5HTTP内容2 2 6Web缓存 2 ApplicationLayer 21 2 2 1Web和HTTP Web网页包括若干对象对象的类型可以是HTML文档 JPEG图片 Java小应用程序 音频文件 每个对象的地址通过URL表示例如 浏览器 Web的用户代理MSInternetExplorer提供Web服务的服务器称为Webserver Apache MSInternetInformationServer IIS 2 ApplicationLayer 22 2 2 1Web http协议 http hypertexttransferprotocol超文本传输协议Web的应用层协议定义消息格式 怎样发送数据client server模式TCP port80无状态协议http1 0 非持续连接 http1 1 持续连接 2 ApplicationLayer 23 http例 假定用户键入URL 1a 通过80端口向服务器发起连接 4 关闭TCP连接 2 ApplicationLayer 24 2 2 2HTTP连接 非持续性HTTP一个TCP连接最多传送一个对象在HTTP 1 0中使用 持续性HTTP在一个TCP连接中可以传送多个对象在HTTP 1 1中使用 2 ApplicationLayer 25 2 2 3http报文格式 请求 http报文有两种类型 请求 响应http请求报文 ASCII 人类可以阅读的格式 GET somedir page htmlHTTP 1 0User agent IE 5 0Accept text html image gif image jpegAccept language fr extracarriagereturn linefeed 2 ApplicationLayer 26 2 2 3http报文格式 请求 GET somedir page htmlHTTP 1 0User agent Mozilla 4 0Accept text html image gif image jpegAccept language fr 2 ApplicationLayer 27 2 2 3http报文格式 响应 HTTP 1 0200OKDate Thu 06Aug199812 00 15GMTServer Apache 1 3 0 Unix Last Modified Mon 22Jun1998 Content Length 6821Content Type text htmldatadatadatadatadata 2 ApplicationLayer 28 2 2 3http报文格式 响应 HTTP 1 0200OKDate Thu 06Aug199812 00 15GMTLast Modified Mon 22Jun1998 Content Length 6821Content Type text htmldatadatadatadatadata 2 ApplicationLayer 29 2 2 3http报文格式 响应 200OK请求成功 所请求的对象在后续的报文中301MovedPermanently请求的对象位置移动了 新位置在后续报文中400BadRequest服务器无法读取请求报文404NotFound本服务器上没有所请求的文档505HTTPVersionNotSupportedHTTP版本不支持 server client的响应报文的第一行中的部分代码 2 ApplicationLayer 30 自己尝试一个HTTP 作为客户端 1 Telnet一个你喜欢的Webserver OpensTCPconnectiontoport80 defaultHTTPserverport atcis poly edu Anythingtypedinsenttoport80atcis poly edu telnetcis poly edu80 2 TypeinaGETHTTPrequest GET ross HTTP 1 1Host cis poly edu Bytypingthisin hitcarriagereturntwice yousendthisminimal butcomplete GETrequesttoHTTPserver 3 LookatresponsemessagesentbyHTTPserver 2 ApplicationLayer 31 2 2 3httpmessageformat respone 2 ApplicationLayer 32 2 2 3httpmessageformat respone 2 ApplicationLayer 33 80GET index htmlHTTP 1 0 2 ApplicationLayer 34 2 2 4用户 服务器交互 cookies cookies可以 用户身份认证用户会话状态 Webe mail cookies能让站点了解 你 怎样维护 状态 cookies 由http报文携带信息cookie文件存放在用户主机上 由用户的浏览器管理服务器端有后台数据库 2 ApplicationLayer 35 2 2 4用户 服务器交互 cookies server为该用户创建ID1678 在后台数据库登记 访问 访问 一周后 2 ApplicationLayer 36 2 2 6Web高速缓存 代理服务器 用户设置浏览器 通过webcache访问网页客户端将所有http请求发送给webcache如果所请求的对象在webcache上 则webcache在http响应报文中立刻返回该对象 否则 向原始服务器请求该对象 并向客户端返回对象 代理服务器 2 ApplicationLayer 37 2 2 6WebCaching的优点 优点 响应时间短 减少通信量 例 1 每个请求对象100kb 2 15个 秒请求 3 时间延迟 2秒 路由器B发送一个请求到接收到响应 LAN通信量 15req s 100kb req 10Mb s 0 15接入网通信量 15req s 100kb req 1 5Mbps 1若在proxyserver命中40 则1 0 6 2 ApplicationLayer 38 2 3ftp 文件传输协议 向远程主机发送 接收文件client servermodelclient 发起传输server 远程主机ftpserver port21 20 2 ApplicationLayer 39 ftp 控制和数据连接分离 outofbandcontrol 带外控制开启两个平行的TCP连接 控制 port21 在客户端和服务器之间交换命令和响应数据 port20 向服务器发送 接收文件的数据ftpserver维护状态信息 当前目录 从前的用户记录等 2 ApplicationLayer 40 2 4电子邮件 2 4 1SMTP2 4 2SMTP和http的比较2 4 3邮件消息格式和MIME2 4 4邮件接收协议 POP3 IMAP 2 ApplicationLayer 41 2 4电子邮件 三个主要组成部分 1 用户代理2 邮件服务器3 简单邮件传输协议 smtp 1 用户代理提供菜单图形方式与电子邮件系统交互 读取 显示 发送邮件例 Outlook 2 ApplicationLayer 42 2 4电子邮件 邮件服务器 2 邮件服务器将消息从出发地传到目的地 是后台运行的系统程序 在系统间传输邮件邮箱 存放收到的邮件消息队列 存放要发送的邮件smtp协议 用于邮件服务器间发送邮件 client 发送邮件的服务器 server 接收邮件的服务器 2 ApplicationLayer 43 2 4 1电子邮件 smtp 基于TCP协议 port25 客户端到服务器的可靠传输直接发送 由发送服务器到接收服务器直接传送 不经过第3个服务器 3阶段传送 握手传送消息关闭连接使用命令 响应交互方式命令 ASCIItext响应 状态码及简短说明报文要用7 bitASCII编码 2 ApplicationLayer 44 场景 Alice给Bob发送邮件 1 Alice使用用户代理编辑邮件 并发送到bob someschool edu2 Alice的用户代理将邮件发送到她的邮件服务器 邮件存放到邮件队列中3 SMTP中的客户端的邮件服务器发起到Bob s邮件服务器的连接 4 SMTP客户端使用TCP协议发送Alice的邮件5 Bob的邮件服务器将收到的邮件放进Bob的邮箱6 Bob使用用户代理阅读邮件 1 2 3 4 5 6 2 ApplicationLayer 45 2 4 2smtp和http的比较 http pull 拉 数据流 email push 推 数据流 Smtp和http都使用ASCII码和状态代码进行交互http 每个对象都封装在不同的响应报文中smtp 将所有对象封装在一个报文中 SMTP使用持续性连接 2 ApplicationLayer 46 2 4 3邮件消息格式 SMTP 1 SMTP SimpleMailTransferProtocol 简单邮件传输协议消息格式 头部行 例如To From Subject 内容邮件内容 只能用ASCII码 2 ApplicationLayer 47 2 4 3邮件消息格式 MIME 2 MIME MultipurposeInternetMailExtensionprotocol多用途因特网邮件扩展协议在报文头部有一行声明MIME类型 图像等要先转化为ASCII码才能发送 TextImageAudioVideoApplication 2 ApplicationLayer 48 多类型邮件 From alice crepes frTo bob hamburger eduSubject Pictureofyummycrepe MIME Version 1 0Content Type multipart mixed boundary 98766789 98766789Content Transfer Encoding quoted printableContent Type text plainDearBob Pleasefindapictureofacrepe 98766789Content Transfer Encoding base64Content Type image jpegbase64encodeddata base64encodeddata 98766789 2 ApplicationLayer 49 2 4 4邮件访问协议 邮件访问协议 从server获取邮件pullPOP PostOfficeProtocol 邮局协议 身份认证 用户代理服务器 下载eg sinaIMAP InternetMailAccessProtocol 因特网邮件访问协议 性能更好 更复杂 可以处理在服务器上存储的邮件HTTP Hotmail Yahoo Mail etc receiver smailserver Mail送到接收邮件服务器上 读取邮件有2种方式 1 登录到server上 打开mailbox直接阅读 2 通过邮件接收器 Outlook 将server上的mail 移至 本地PC上 pop3 2 ApplicationLayer 50 Mailapplication 2 ApplicationLayer 51 Mailapplication 2 ApplicationLayer 52 Mailapplication 2 ApplicationLayer 53 Mailapplication 2 ApplicationLayer 54 Mailapplication 2 ApplicationLayer 55 2 5DNS DomainNameSystem 2 5 1DNS提供的服务2 5 2DNS基本工作原理集中式设计层级分布式DNS 两种请求方式回顾 client serverhttp示例 2 ApplicationLayer 56 2 5DNS DomainNameSystem Domain 域是按某种规则的一些划分 每个域可划分为子域 形成二级域 三级域 表示为 三级域名 二级域名 顶级域名树型结构 2 ApplicationLayer 57 2 5 1DNS提供的服务 DomainNameSystem IP地址和域名的映射在由名称服务器构成的层次结构中实现的分布式数据库应用层协议 2 ApplicationLayer 58 DNSserver ipconfig all 2 ApplicationLayer 59 DNSserver ipconfig all 2 ApplicationLayer 60 Nslookup 2 ApplicationLayer 61 2 5 2DNS基本工作原理 集中式设计一个域名服务器包含所有的映射问题 单点故障 一点坏 全网坏通信容量 巨大的访问量远距离的集中式数据库 远距离访问延迟大维护 频繁更新 身份认证 授权等 不可能有一台服务器包含网路上所有的域名到IP的映射 2 ApplicationLayer 62 2 5 2DNS基本工作原理 2 层级分布式根rootnameservers 与顶级域名服务器或本地域名服务器相通 响应其请求顶级域名 TLD top leveldomainnameservers 与localnameserver相通 响应其请求权威authoritativenameserver root中找不到时 root提供一个权威服务器 可能是专用的 也可能是一个localnameserver本地localnameservers 直接和用户PC相通的server每个ISP 公司都有local default nameserver主机的DNS请求首先发给localnameserver好像一个代理 在层级中转发DNS请求 两种请求方法 1 递归查询2 迭代查询 2 ApplicationLayer 63 2 5 2DNS基本工作原理 1 递归查询 2 迭代查询 2 ApplicationLayer 64 2 5 3DNS报文 请求和响应报文具有相同的报文格式 2 ApplicationLayer WhathappenedwhenyouclickaURL 1 browserasksDNSforIPaddr oftheURL 2 DNSreplieswithIPaddress 3 browsermakesaTCPconnectiontoIPaddr 4 browsersendsaGETcommand DomainNameserver Client Server 5 TheURLserversendsthefileindex html 6 TCPconnectionisreleased 7 display 2 ApplicationLayer 66 2 6P2Pfilesharing Server Client所有用户和一个服务器通信peer to peer用户之间共享资源 直接通信存在问题 如何确定哪个计算机上有自己所需要的资源 集中式目录 Napster QQ洪泛式查询 Gnutella利用不均匀性 KaZaA 2 ApplicationLayer 67 2 6P2P 1 集中式目录 Napster 的设计方案1 当对等机连网时 告知中央服务器 IP地址共享资源内容中央服务器为共享资源建立一个数据库 并维护 用户通过中央服务器了解享有资源的对等机地址 直接联系对等机传送文件 文件传输是非集中的 但是内容定位过程是高度集中的 2 ApplicationLayer 68 2 6P2P 1 集中式目录 存在问题单点故障性能瓶颈版权问题 2 ApplicationLayer 69 2 6P2P 2 洪泛式查询 Gnutella Filetransfer HTTP 完全分布式定位内容没有中央服务器通过已有的TCP连接发送请求报文对等机转发请求报文 洪泛式转发 2 ApplicationLayer 70 2 6P2P 2 洪泛式查询 Gnutella 覆盖网 图如果对等端X和Y之间有TCP连接 则认为X和Y之间有一条边所有活动的对等端和边构成覆盖网 边 并不是实际的物理线路对给定的对等端 通常在覆盖网上的邻居节点 10个 2 ApplicationLayer 71 Gnutella 对等端的加入 要加入的对等端X必须首先发现覆盖网中的其他一些对等端 使用一张候选对等端列表X顺次尝试和列表中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 政府养老服务委托协议书
- 夫妻协议离婚房子协议书
- 教育行业合同终止协议书
- 房子购房合同转让协议书
- 中甲球队装备赞助协议书
- 厂房装修设计合同范本
- 制作墙体广告合作协议书
- 同意社保延期缴纳协议书
- 改消防喷淋协议书
- 教育同城化协议书
- JBK-698CX淬火机数控系统
- ZJUTTOP100理工类学术期刊目录(2018年版)
- 道路交通事故现场勘查课件
- 门店电表记录表
- 心理学在船舶安全管理中的应用
- JJF(鄂) 90-2021 电子辊道秤校准规范(高清版)
- 超星尔雅学习通《今天的日本》章节测试含答案
- 组态王双机热备
- 餐饮量化分级
- 三一重工SCC2000履带吊履带式起重机技术参数
- [精品]GA38-2004《银行营业场所风险等级和防护级别的规定》
评论
0/150
提交评论