,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,第,4,章,详解并取证网络协议的工作原理,任务,4.4,在本节将描述,OSI,模型中应用层的相关协议,处于该层的协议有很多,比如,HTTP,、,FTP,、,POP3,、,SMTP,等,由于篇幅有限,不可能将应用层的全部协议完全描述,所以在这里将重点描述几种常见的应用层协议,在这些协议中又将以,HTTP,和,FTP,作为重点描述。事实上,,CCNA,(,200-120,)考试很少对,HTTP,或者,FTP,作深入考查,但是在,CCNP,、,CCIE,的一些高级应用中,特别是,NARB,(基于应用层的识别)或者防火过滤,可能需要很成功地理解,HTTP,和,FTP,的工作原理后,才能灵活应用,这些基础应该在,CCNA,(,200-120,)中完成。所以大家千万不要忽略这一点,关于这些基础对应后期深入学习的哪些知识点,将会给大家列举出来。,任务,4.4.1,4.4.1,理解,HTTP,协议,当用户利用,IE,浏览器访问某个网站的主页时,就使用了,HTTP,(,HyperText Transfer Protocol,,超文本传输协议)。,HTTP,是一个基于客户端与服务器端请求和应答的标准(,TCP,)协议,客户端是终端用户,服务器端是网站。通过使用,Web,浏览器,如,Internet Explorer,,客户端发起一个到服务器上指定端口(默认为,80,号端口)的,HTTP,请求,应答的服务器上存储着一些资源,包括,HTML,文件和图像,现在很多的网络应用都使用,HTTP,协议,它已经不是单纯的超文本传输协议了。,注意:在如今的,Internet,应用中,通常已经不将,HTTP,理解为一种单纯的协议,而是把它当作一种数据的封装方式,使用它可以封装和传递任意文件。,任务,4.4.1,可能对于一般的,Internet,使用者而言,没有必要对,HTTP,作深入的研究与分析。但对于一个网络管理者或者网络的专业人员而言,就必须深入理解,HTTP,的工作过程与协议结构。这关系着在管理过程中的一系列应用与安全措施,比如企业用户在打开页面时需要过滤掉某些图片文件、不允许下载,MP3,等,而这一系列动作都要求网络管理员对,HTTP,本身的结构非常熟悉。所以,本小节从,HTTP,的工作原理出发,深入分析,HTTP,的数据帧,以方便大家对,HTTP,的深入认识,提高基于,HTTP,的管理效率。,HTTP,有,1.0,和,1.1,两个版本。比如:微软的,Internet Explorer,一般使用,1.1,版本,但是在很多时候与代理服务器结合使用时,一般用的是,1.0,版本,因为代理服务器可能不知道一下节点是使用,HTTP 1.0,还是,1.1,版本。,HTTP,的工作原理示意图如图,4.60,所示。,任务,4.4.1,图4.60HTTP的工作原理示意图,关于,HTTP,的无状态连接,HTTP 1.0,版本是无状态连接,而,1.1,版本支持状态连接。所谓无状态连接,就是指在,HTTP 1.0,版本中,一个,HTTP,请求与一个,HTTP,回应就称为一个完整的,HTTP,连接,基于这个连接的数据一旦发送完成后,这个连接就断开了,同时也会断开,TCP,三次握手过程,如果要重新连接,则需要重新进行,TCP,三次握手,所以说,HTTP 1.0,本身是一个无状态连接的协议,这种无状态连接方式没有效率。,HTTP 1.1,版本增加了,Keepalive,消息,使其具有状态连接的特性。,Keepalive,的特性是提高,HTTP,连接的利用率,它不会切断,TCP,三次握手,可以开始新的连接。因为在很多情况下,一个网页都有多个,HTTP,连接。,任务,4.4.1,关于,HTTP,请求报文与应答报文的结构,HTTP,请求报文的结构如图,4.61,所示。关于实时通信中,HTTP,请求报文的数据帧如图,4.62,所示,可将理论上的报文结构与真实的数据帧进行对照理解。,HTTP,版本号,HTTP,方法,URL,请求头,实体,头,图4.61 HTTP请求报文的结构,任务,4.4.1,HTTP,版本号:声明,HTTP,的版本号为,1.1,或,1.0,。通常微软的使用,1.1,,其他代理服务器使用,1.0,。,HTTP,方法:最常用的有,GET,、,HEAD,和,POST,。,GET,请求,Web,页面的信息;,HEAD,申请,Web,页面的信息,不返回信息体。如果是请求表单、新闻组、,BBS,、邮件组群和数据库“字段索引”,就用,POST,代替,GET,,表示请求的是一个较大的数据。,URL,:被请求页面的网址,如,http:/ HTTP回应报文的结构,HTTP,版本号:声明,HTTP,版本号为,1.1,或,1.0,。,状态码:帮助用户理解,HTTP,工作状态,常见的状态码如表,4.1,所示。,响应头:包括,Web,服务器回应给客户机的,HTTP,的内容是否被加密认证、是否被公开、,WWW,的认证消息、主页的位置(,Content-Location,)等。,实体头:包括,HTTP,响应的编码形式、语言、内容长度,以及内容的文件类型、最后一次修改时间。,任务,4.4.1,表4.1 HTTP工作状态码,状 态 码,意 义,1XX,信息提示,2XX,成功,3XX,重定向,4XX,客户端错误,5XX,服务器错误,图4.64 HTTP响应报文的数据帧,任务,4.4.1,注意:,如果你计划在完成,CCNA,以后,打算更进一步地向,CCNP,或者,CCIE,迈进,或者为了在取得认证后能够更好地应对实践工作需求,那么请掌握下面的内容,这样做至少可以有三点收获:一、前面关于,ARP,、,IP,、,ICMP,、,TCP,、,UDP,的描述都是为了打下坚实的网络基础,属于,CCNA,必考内容,而应用层的,HTTP,协议具备实战意义,完成下面的整个阅读后你会明白为什么要理解,HTTP,协议;二、当你走到准备,CCIE,实验室考试时,使用,NBRA,来识别,HTTP,的不同数据类型时,一定会发现下面的描述非常有必要;三、当你被上司要求控制网络上一些基于,HTTP,封装的特殊数据,比如,MP3,、,PDF,文件、视频文件、应用程序时你会知道该怎么做。笔者本人一直持有一个观念:“会配置路由器和配好路由器是两个概念,要学会配置路由器看配置说明就能完成,要配好路由器必须得具备良好的网络认知能力,比如成功地掌握各种协议的运作过程就是这种认知能力的表现”。中国有句话:宝刀在手,却无刀诀,使之何用。,任务,4.4.1,关于,HTTP,的数据封装与内容管理,当资源被封装到,HTTP,报文中时,管这样的封装叫实体。早期的,HTTP,只能传送文本,一种简单的,ASCII,码的文本,但这已经是非常遥远的故事了,因为随着,Internet,的全面发展,许多用户都想借助于,Web,更多的资源传递,这些资源包括:表格、图片、影音等,那么,HTTP,已经不再是单纯地为传递文本文件服务,而是为广泛的多媒体资源服务。成为一种多媒体资源的封装方式与内容管理方式,这样做必定会增加,HTTP,协议的复杂性。在这里需要知道,,HTTP,协议使用语法去声明各种多媒体类型,它与,MIME,使用相同的语法来声明封装的各种多媒体文件。关于什么是,MIME,,在后继的段落中有相关描述。,HTTP,中使用,content-type,实体首部字段内容类型来声明并封装任何,HTTP,报文,它的语法格式是:,content-type:,类型,/,。,HTTP,使用媒体类型的另一个地方是发送,HTTP,请求消息中的,accept,字段,它的目的是客户机告诉服务器它可以处理什么类型的多媒体信息,以避免服务器向,HTTP,客户端发送无法处理的媒体类型,比如:,accept=text/plain,指示文本媒体主类型下面的纯文本子类型。事实上,它还可以使用星号(*)来作通配符,比如:,accept=*/*,指示可以处理任何类型的媒体文件。,任务,4.4.1,注意:再次强调,,HTTP,声明封装媒体文件类型的方式是从,MIME,借鉴而来的,所以需要进一步了解什么是,MIME,,以及它产生的作用与相关语法。,任务,4.4.1,关于,MIME,(,Multipurpose Internet Mail Extentions,)的内容类型,MIME,是一种多用途的邮件扩展,它最初在电子邮件中使用,允许电子邮件携带多媒体信息以及任意文件,事实上大家使用电子邮件的“附件”功能时就是在体会,MIME,。后来,MIME,被扩展到,HTTP,的应用中,是定义,HTTP,内容格式的一种通用方法。,MIME,在思科的后期学习中,以及实践的工作环境中常被用到,特别是安全领域,所以在这里将对它作简单的描述。,在早期的电子邮件中只能使用简单的,ASCII,文本,(,关于这一点,RFC822,描述了相关标准,),,在当时的,Internet,环境中可能已经足够,但是随着多媒体应用的扩展、任意的二进制文件、非,ASCII,字符集的产生,传统的电子邮件功能已经不能满足需求,可是标准一旦形成并加以推广,事实上就很难再废除和改变,所以只能使用,MIME,去扩展电子邮件的灵活性。,MIME,使用特殊的技术将各种多媒体信息编码成,ASCII,文体格式,其中包括图片、影音、应用程序等。因为,MIME,支持多媒体,所以每个报文必须描述它包括什么内容的信息,以便于对报文的内容进行解码。首先来简单描述,MIME,关于内容类型首部的语法:内容类型,:/,。在,RFC2046,中定义了最常见的,5,种多媒体类型,分别是:,Text,(文体媒体类型)、,image,(图像媒体)、,audio,(音频媒体)、,video,(视频媒体)、,model,(模型媒体)、,application,(应用程序媒体),然后又将这,5,种媒体类型细分为多种文件类型。,任务,4.4.1,关于,MIME,的类型与子类型举例如下:,内容类型,:Text/plain,,指示文本媒体主类型下面的纯文本子类型。,内容类型,:image/jpeg,,指示图像媒体主类型下面的,JPEG,文件子类型。,内容类型,:audio/mpeg,,指示音频媒体主类型下面的,MPEG,文件子类型。,注意:在这里,大家只需要知道,MIME,使用语法去声明相关的内容类型即可,不需要关心如何去编码这些内容,至少在思科的认证考试中不需要你去关心!,任务,4.4.1,HTTP,与,MIME,相关描述的意义在哪里,本书中所论述的任何理论,在思科认证或者工作实践中都有意义,可能这些所谓的意义在,CCNA,或者学习过程中暂时没有被发现,比如使用思科的路由器完成对如下,HTTP,流量内容的识别和控制:,识别并过滤以,HTML,表示的文本。,识别并过滤,AutoCAD,软件所使用的矢量图形。,识别并过滤,MPEG,标准的音频。,识别并过滤,QuickTime,电影格式的视频。,识别并过滤,PDF,程序。,识别并过滤微软公司的,PPT,程序文件。,任务,4.4.1,注意:要过滤与识别上述的文件类型,通常在思科的设备上使用本书第,10,章中所描述的,ACL,根本无法做到,因为文件类型都没有使用明确的端口号,它只是一种文件类型,而且都能通过,HTTP,封装与运载,如果你直接通过过滤,HTTP,来达到识别与过滤文件类型的目的,那么,上述文件能被识别和过滤,但是上述文件以外的,HTTP,流量也会被过滤,估计这不是管理员想要的结果,所以只有使用如下的配置去识别文件类型。关于,NBAR,具体的配置,不是,CCNA,所描述的范围,但是理解应用层协议一定是,CCNA,必须掌握的,这会为你后期的学习打下坚实的基础。,R1(config-cmap)#match protocol http mime text/html,R1(con