《计算机网络自顶向下方法第二章讲义.ppt》由会员分享,可在线阅读,更多相关《计算机网络自顶向下方法第二章讲义.ppt(68页珍藏版)》请在三一办公上搜索。
1、计算机网络,2014年9月国防科技学院,2,第2章 应用层,计算机网络,3,浏览新闻聊天听音乐看电影看电视收发Email下载软件,网上图书馆网上商店网上银行网上医院网上大学电子商务.,上网?做什么?,4,E-mailWeb即时讯息远程注册P2P文件共享多用户网络游戏流式存储视频片段,因特网电话实时视频会议大规模并行计算,某些网络应用,5,我们的目标:网络应用协议的概念,实现方面运输层服务模型客户机/服务器模式对等范例,通过考察流行的应用级协议,学习协议HTTPFTPSMTP/POP3/IMAPDNS网络应用编程套接字 API,第2章 应用层,6,编写程序能够能够在不同端系统上运行能够通过网络通
2、信如Web:Web服务器软件与浏览器软件通信非网络核心设备的程序三层协议软件(路由器)二层协议软件(交换机、路由器),如何创建一个网络应用程序,7,2.1 应用层协议原理2.2 Web应用和HTTP协议2.3 文件传输协议:FTP 2.4 电子邮件2.5 域名系统DNS2.6 P2P 应用,8,客户机/服务器对等(P2P)客户机/服务器与P2P的混合,网络应用程序体系结构,9,C/S模式 集中结构,一对多服务器共享资源,客户机资源不共享服务器可能负载过重网络带宽限制,C/S apps:Web,FTP,Telnet,e-mail,客户机/服务器体系结构,10,P2P体系结构,P2P模式 非集中结
3、构,多对多节点具备客户与服务器双重特性充分利用终端资源可扩展性好类型纯P2P:Gnutella混合P2P:迅雷,11,进程:运行在端系统中的程序。在同一台主机中:两个进程使用进程间通信IPC(由操作系统定义)通信.在不同的主机中:进程通过交换报文通信,客户机进程:发起通信的进程服务器进程:等待联系的进程,注意:具有P2P体系结构的应用程序具有客户机进程和服务器进程,进程通信,12,对于接收报文的进程,必须具有一个标识一台主机具有一个独特的32比特的IP地址问题:在主机的IP地址足以标识该进程?答案:在同一台主机上能够运行许多进程,标示符包括IP地址和与主机上该进程相关的端口号.端口号例子:HT
4、TP 服务器:80电子邮件服务器:25,一个主机中可能同时运行有多个进程,接收端从网络收到消息后要交给哪个进程?,寻址进程,13,进程通过套接字在网络上发送/接收报文套接字类似于门上联应用进程下联网络协议栈套接字是应用程序与网络之间的API(应用程序编程接口),具有缓存、变量的TCP,套接字,主机或服务器,具有缓存、变量的TCP,套接字,主机或服务器,因特网,由操作系统控制,由应用研发者控制,套接字(Socket),14,可靠的数据传输某些应用(如音频)能够容忍某些丢失其他应用(如文件传输,Telnet)要求100%可靠数据传输,定时某些应用(如因特网电话、交互式游戏)要求“有效的”低时延,吞
5、吐量某些应用(如多媒体)要求“有效的”最小量的带宽 其他应用(”弹性应用“)充分利用它们获得的所有带宽,安全加密,数据完整性,,应用程序需要什么样的运输服务?,15,应用程序文件传输电子邮件Web 文档实时音频/视频存储音频/视频交互式游戏即时讯息,数据丢失不能丢失 不能丢失 不能丢失 容忍丢失 容忍丢失 容忍丢失 不能丢失,带宽弹性弹性弹性音频:5kbps-1Mbps视频:10kbps-5Mbps同上 几kbps以上弹性,时间敏感不不不是,100s msec是,几秒是,100 msec,普通应用的运输服务要求,16,TCP服务:面向连接:客户机和服务器之间所需的建立可靠传输:在发送和接收进程
6、之间流控制:发送方不会淹没接收方拥塞控制:当网络过载时抑制发送方并不提供:定时,最小带宽保证,UDP服务:在发送进程及接收进程之间的不可靠数据传输不提供:建立连接建立,可靠性,流控,拥塞控制,定时或带宽保证,问题:为什么需要UDP?,因特网运输协议服务,17,应用 应用层协议下面的传输协议电子邮件SMTP RFC 2821TCP远程终端访问Telnet RFC 854 TCPWebHTTP RFC 2616TCP文件传输FTP RFC 959TCP远程文件服务器NFS McKusik 1996UDP或TCP流媒体通常专用(如Real Networks)UDP或TCP因特网电话通常专用(如Net
7、2phone)典型用UDP,因特网应用:应用协议与运输协议,18,2.1 应用层协议原理2.2 Web应用和HTTP协议2.3 文件传输协议:FTP 2.4 电子邮件2.5 域名系统DNS2.6 P2P 应用,19,Web和HTTP,20,Web和HTTP,Web:World wide Web,万维网,也称Web,是一种互联网应用。web:网页,网站发展Web1.0 阅读式网站Web2.0 用户参与,语义网:内容机器可理解,21,Web和HTTP,Web的应用层协议是HTTP,超文本传输协议Web页面由对象组成一个基本HTML文件多个引用对象:图片,java小程序,视频文件每个对象可由URL寻
8、址 URL(Uniform Resource Locator 统一资源定位符)的例子:,22,HTTP协议运行在客户与服务器端的应用程序中客户机:请求、接收,”显示“Web对象服务器:Web服务器响应请求而发送对象通过交换HTTP消息进行交流HTTP 1.0:RFC 1945HTTP 1.1:RFC 2068,PC 运行Explorer,服务器运行Apache Web服务器,Mac 运行Navigator,HTTP 请求,HTTP 请求,HTTP 响应,HTTP 响应,HTTP概况,23,使用TCP:客户机向服务器发起TCP连接(产生套接字),端口80服务器从客户机接受TCP连接在浏览器(HT
9、TP客户机)和Web服务器(HTPP服务器)之间交换HTTP报文(应用层协议报文)关闭TCP 连接,HTTP是”无状态的“服务器不保留有关客户机过去请求的任何信息用户的状态信息由Cookies来实现,HTTP概述(续),24,非持久HTTP每个HTTP请求/响应对经过一个单独TCP连接发送HTTP/1.0使用非持久 HTTP,持久HTTP多个对象能够经过客户机和服务器之间的单个TCP连接发送HTTP/1.1以默认模式使用持久连接,非持久连接与持久连接,25,假定输入URL www.someSchool.edu/someDepartment/home.index,1a.HTTP客户机向HTTP服
10、务器(进程)的80端口的www.someSchool.edu发起TCP连接,2.HTTP客户机发送 HTTP 请求报文(包含URL)进TCP 连接套接字.报文指示客户机要对象someDepartment/home.index,1b.在主机www.someSchool.edu 的HTTP服务器在80端口等待TCP连接“接受”连接,通知客户机,3.HTTP服务器接收请求报文,形成响应报文包含请求对象,并向套接字其发送报文,time,(包括文本和对10个jpeg图片的引用 images),非持久HTTP,26,5.HTTP客户机接收包含html文件的响应报文,显示html.解析html文件,发现10
11、个引用的 jpeg对象,6.对10个jpeg对象重复步骤1-5,4.HTTP服务器关闭TCP 连接,time,非持久HTTP(续),27,往返时间RRT的定义:从客户机到服务器发送一个小分组并返回所历经的时间.响应时间(1个HTML文件):建立TCP连接:1个RTT对HTTP请求和响应返回的前几个字节:1个RTT文件传输时间总响应=2RTT+传输时间,传输文件的时间,发起TCP连接,RTT,请求文件,RTT,接收的文件,时间,时间,响应时间估算,28,非持久HTTP缺点:串行访问时间长并行访问资源占用多持久HTTP在发送响应后,保持TCP连接持续打开后继HTTP报文通过该连接持续发送,无流水线
12、的持续:仅当前面的响应已经收到,客户机发出新的请求对每个引用对象花费一个RTT有流水线的持续:在HTTP/1.1 为默认(不必等待)请求接连发出所有引用对象花费一个RTT(略多)时间,持久HTTP,29,两类HTTP报文:请求报文,响应报文HTTP请求报文:例子,ASCII(人可读的格式),GET/somedir/page.html HTTP/1.1Host:www.someschool.edu User-agent:Mozilla/4.0Connection:close Accept-language:fr(另外的回车,换行),请求行(GET,POST,HEAD命令),首部行,回车,换行指示
13、报文的结束,HTTP请求报文,30,HTTP请求报文:通用格式,通用格式请求行:第1行,方法字段,URL字段,版本字段首部行:一般多行实体主体:可为空,31,GET:最常用,请求访问网页,实体主体为空POST:常用,提交表单同时请求访问网页,如使用搜索引擎,实体主体中为表单输入值HEAD:少用,测试用,与GET区别在于响应中去掉请求的对象PUT:很少用,向URL字段中定义的路径,上载在实体主体中文件DELETE,很少用,删除在URL字段中定义的文件,方法类型,32,HTTP/1.1 200 OK Connection closeDate:Thu,06 Aug 1998 12:00:15 GMT
14、 Server:Apache/1.3.0(Unix)Last-Modified:Mon,22 Jun 1998.Content-Length:6821 Content-Type:text/html data data data data data.,状态行(协议状态码状态短语),首部行,数据,如请求的HTML文件,HTTP响应报文,观察HTTP响应报文例子,33,HTTP响应报文:通用格式,通用格式状态行:第1行,版本字段,状态码字段,短语字段首部行:一般多行实体主体:报文的主体,34,200 OK请求成功,请求的对象在这个报文后面301 Moved Permanently请求的对象已转移,新
15、的URL在响应报文的Location:首部行中指定400 Bad Request请求报文不为服务器理解404 Not Found请求的文档没有在该服务器上发现505 HTTP Version Not Supported,在服务器到客户机响应报文中的首行.一些编码的例子:,HTTP响应状态码,35,使用telnet工具进行HTTP实验,telnetInternet远程登陆协议Internet远程登陆命令允许用户登录进入远程主机系统利用SecureCRT工具进行实验:一款支持SSH,telnet,rlogin协议的登录软件在软件中建立telnet协议会话:80运行GET/s/2/t/851/p/1
16、1/c/832/d/842/list.htm观察结果(设置编码方式为UTF-8),西南科技大学学校简介http:/,36,使用telnet工具进行HTTP实验,37,用户与服务器的交互:cookie,HTTP是一种无状态协议,不能保存客户信息Cookie是一种在客户端保持HTTP状态信息的技术(好比:商场优惠卡)客户端访问网站时,Web服务器会查看、创建、修改Cookie资料帮助Web站点保存访问者信息:浏览历史,购物车,cookie技术组成cookie识别码(http请求报文,http响应报文)客户端保留cookie文件服务器提供后端数据库,38,服务器为用户生成ID 1678,后端数据库中
17、的表项,访问,访问,一个星期以后:,Cookie工作过程(例),Susan访问Amazon网站,39,Cookies练习,对IE浏览器进行设置,使能或禁止cookie功能查找本地上网主机的cookie文件,删除后访问某经常访问的网站,如:http:/,40,Web缓存器:保存最近请求过的web对象浏览器向缓存发送所有HTTP请求对象在缓存中:缓存返回对象否则缓存向起始服务器请求对象,然后向客户机返回对象,客户机1,代理服务器,客户机2,HTTP 请求,HTTP 请求,HTTP 响应,HTTP 响应,HTTP 请求,HTTP 响应,起始服务器2,起始服务器1,Web缓存(代理服务器),HTTP
18、请求,HTTP 响应,好处:1)减小客户机请求的响应时间;2)减少机构内部网与因特网接入链路的通信量,41,假定平均对象长度=100,000比特来自机构的浏览器的平均请求=15/sec从机构路由器到任何起始服务器并返回的时延=2 sec结果局域网利用率=15%访问链路利用率=100%总时延=因特网时延+访问时延+LAN时延=2 sec+分钟+毫秒,起始服务器,公共因特网,机构网络,10 Mbps LAN,1.5 Mbps 访问链路,缓存例子,42,可能的解决方案将访问链路的带宽提高到如10 Mbps结果LAN利用率=15%访问链路利用率=15%总时延=因特网时延+访问时延+LAN时延=2 se
19、c+毫秒+毫秒通常升级费用可观,起始服务器,公共因特网,机构网络,10 Mbps LAN,10 Mbps 访问链路,缓存例子(续),43,安装缓存器假定命中率是0.4结果40%请求几乎立即得到满足 60%请求由起始服务器满足访问链路的利用率减少到60%,产生可忽略不计的时延(如10 msec)总平均时延=因特网时延+访问时延+LAN时延=0.6*2.01 secs+0.4*10msec 1.4 secs,起始服务器,公共因特网,机构网络,10 Mbps LAN,1.5 Mbps 访问链路,机构缓存器,缓存例子(续),44,目的:如果缓存中有最新缓存版本,就不发送该对象缓存器:在HTTP请求If
20、-modified-since:中,指定缓存版本的日期服务器:如果缓存的拷贝是最新,响应不包含对象:HTTP/1.0 304 Not Modified,缓存器,服务器,HTTP 请求报文If-modified-since:,不修改对象,HTTP 请求报文If-modified-since:,HTTP响应HTTP/1.0 200 OK,修改对象,条件GET方法,缓存中的对象可能不是最新?解决:条件GET,45,2.1 应用层协议原理2.2 Web应用和HTTP协议2.3 文件传输协议:FTP 2.4 电子邮件2.5 域名系统DNS2.6 P2P 应用,46,FTP:文件传输协议,提供网络中的文件
21、共享与传输FTP早于HTTP协议约10年,互联网还相对封闭,传输文件到/来自远程主机客户机/服务器模型客户机:发起传输的一侧(到/来自远程之一)服务器:远程主机,文件传输,远程文件系统,主机上的用户,47,双TCP连接控制连接,端口21(http带内控制,ftp带外控制)数据连接,端口20通过操作命令实现远程交互式访问登录,用户名,密码浏览文件选择文件,下载,FTP协议特点,48,命令示例:经控制信道以ASCII 文本发送USER usernamePASS passwordLIST返回当前目录中的文件列表RETR filename获取(get)文件STOR filename 存储(puts)文
22、件到远程主机,返回码示例:状态码和短语(如在HTTP中的那样)331 Username OK,password required125 data connection already open;transfer starting425 Cant open data connection452 Error writing file,FTP命令,响应,49,2.1 应用层协议原理2.2 Web应用和HTTP协议2.3 文件传输协议:FTP 2.4 电子邮件2.5 域名系统DNS2.6 P2P 应用,50,电子邮件系统组成:用户代理邮件服务器简单邮件传输协议:SMTP用户代理亦称为“邮件阅读器”例如
23、Outlook,Foxmail 邮件服务器邮件队列存储转发,非实时通信,邮件服务器,邮件服务器,电子邮件系统,51,1)Alice使用UA写作报文并向 bobsomeschool.edu发送2)Alice的UA向其邮件服务器发送报文;报文放置在报文队列中3)SMTP的客户机侧打开与Bob的邮件服务器的TCP连接,4)SMTP通过TCP连接发送Alice的报文5)Bob的邮件服务器将该报文放入Bob的邮箱6)Bob调用其用户代理来读报文,1,2,3,4,5,6,场景:Alice 向 Bob发送报文,52,电子邮件协议,SMTP(简单邮件传输协议):最常用的电子邮件传输协议POP3(邮局协议):最
24、常用的电子邮件接收协议IMAP4(网络邮局访问协议):POP3的替代协议,提供邮件处理新功能另:HTTP协议也用于电子邮件,网页访问邮箱,53,SMTP是一个相对简单的基于文本的协议报文必须以7比特ASCII格式二进值文件可通过MIME编码后再传SMTP服务器端使用端口号25采用命令/响应交互命令:HELO,MAIL FROM,RCPT TO,DATA,QUIT响应:状态码及短语传输的三个阶段握手,传输,关闭,SMTP,54,S:220 hamburger.edu C:HELO crepes.fr S:250 Hello crepes.fr,pleased to meet you C:MAIL
25、 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,SMTP交互的示例,55,利用工具SecureCRT,telnet上邮件服
26、务器telnet 端口 25HELOAUTH LOGIN输入账号,回车,输入密码MAIL FROMRCPT TODATA内容,CRLF.CRLF,练习:通过SMTP命令发电子邮件,helo jsjwlauth loginbmV0d29ya3MyMDEybmV0d29ya3M=mail from:rcpt to:dataform:to:soldier_subject:MY-hellohello,my name is XYZ.,密码:networks,networks2012:bmV0d29ya3MyMDEy(base64编码)Networks:bmV0d29ya3M=(base64编码),56,
27、练习:通过SMTP命令发电子邮件,57,首部行,如To:From:Subject:不同于SMTP命令!主体“报文”,均为ASCII 字符CRLF.CRLF结束,首部,主体,空行,邮件报文格式,58,MIME:Multipurpose Internet Mail Extension(多用途因特网邮件扩展)在报文首部的附加行声明MIME内容类型,报文格式:多媒体扩展,59,邮件访问协议:从服务器获取邮件POP3:邮局协议(Post Office Protocol)授权(代理 服务器)并下载IMAP4:因特网邮件访问协议 更多功能操作存储在服务器上的报文,SMTP,访问协议,接收方邮件服务器,邮件访
28、问协议(POP3&IMAP4),60,今天越来越多的用户使用基于Web的电子邮件Hotmail,163邮箱等等基于Web的电子邮件UA是 浏览器使用 HTTP而不是SMTP发送到源邮件服务器使用SMTP 发送邮件到目的邮件服务器,基于Web的电子邮件,61,2.1 应用层协议原理2.2 Web应用和HTTP协议2.3 文件传输协议:FTP 2.4 电子邮件2.5 域名系统DNS2.6 P2P 应用,62,人:许多标识符名字,身份证号,学号,护照号因特网主机、路由器:主机名:IP地址(32 bit):220.166.52.4问题:IP地址和名字之间的映射?,DNS:域名系统,DNS:Domain
29、 Name System域名系统同时:Domain Name Server域名服务器,DNS协议分布式数据库,提供名字服务,DNS完成主机名到IP地址的解析,63,为何不用集中式DNS?单点故障通信量远程集中式数据库维护,DNS服务主机名到IP地址的转换主机别名负载分配复制的Web服务器:对一个规范名的IP地址集合,DNS,64,三类DNS服务器根DNS服务器顶级域(TLD)服务器权威DNS服务器本地DNS服务器:代理,分布式、等级制数据库,域名结构根域:(.)顶级域:.com,.cn二级域:三级域:更多级别:,65,根DNS服务器:(逻辑)全球13个,美国10个,欧洲1个,亚洲1个顶级域(T
30、LD)服务器:负责com,org,net,edu等,以及所有顶级国家域cn,uk,fr,ca,jp.权威DNS服务器:组织的DNS 服务器为组织的服务器(如Web和电子邮件)提供对IP映射的权威主机名:国内10万余台,DNS服务器,查询方式:逐级查询(递归或迭代),66,请求主机cis.poly.edu,gaia.cs.umass.edu,根DNS 服务器,1,2,3,4,5,6,权威 DNS 服务器dns.cs.umass.edu,7,8,顶级域DNS 服务器,位于cis.poly.edu的主机为gaia.cs.umass.edu 要求IP地址,例子:迭代查询,客户端向本地DNS服务器发起查
31、询:请求gaia.cs.umass.edu的IP本地DNS向根DNS查询:.edu顶级域DNS服务器地址根DNS回应.edu顶级域DNS服务器地址本地DNS向.edu顶级域DNS查询.umass.edu的权威DNS服务器地址8.,67,例子:递归查询,位于cis.poly.edu的主机为gaia.cs.umass.edu 要求IP地址,客户端向本地DNS服务器发起查询:请求gaia.cs.umass.edu的IP本地DNS向根DNS查询:请求gaia.cs.umass.edu的IP根DNS向.edu顶级域DNS服务器查询:请求gaia.cs.umass.edu的IP.edu顶级域DNS向.umass.edu的权威DNS查询:8.,68,重要内容:网络应用程序体系结构。各个应用层协议(HTTP,FTP,SMTP)的作用及端口。HTTP的持久连接与非持久连接。DNS的作用,层次,域名解析过程。访问网站的步骤。,本章小结与作业,作业:对上述5点重要内容进行简答P115:1题;P118,10题,