




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
了解WEB服务现在web服务在互联网应用中发挥着重要作用。现在让我们花一些时间简单的介绍web服务。web服务中加强专业知识了解HTML和XML标记语言很重要,因为通过这些web服务创建和实现语言。一、Web服务是什么?Web服务是Web组件,在客户机和服务器之间传输数据。客户端发送一个web请求到服务器,服务器响应客户端。这种反应将基于web服务请求类型不同。二、SoapUI Web服务:1.SoapUI是专为验证web服务让我们来看一个例子:股票的航班预订应用程序,运行城市到城市访问1和2预订车票。用户输入所有信息,如寄宿点,目的地,旅行日期等,然后提交”按钮被单击时,城市1中的web服务调用,它将输入的所有信息传递给应用程序服务器,处理用户请求。预订应用程序将发送一个响应用户的请求。大多数的网上支付交易处理通过web服务,通过该方法提供了加强的安全处理。一个输入参数将被发送到支付网关网站,随后将被处理。关于付款确认将被发送到客户端最终状态。所有这些活动都可以通过SoapUI请求和响应。SoapUI有助于我们评估这些web服务。2.web服务的重要组成部分1.WSDL(Web Services Description Language )-Web服务描述语言;2.SOAP(Simple object access protocol )-简单对象访问协议;3.UDDI(Universal Description Discovery and Integration)-通用描述、发现和集成;4.RDF(Resource Description Framework )-资源描述框架.三、WSDL(Web服务描述语言):WSDL是一个文档,应该使用XML编写的。本文档描述了web服务的详细信息如下:1. web服务的起源2.标题信息;3.接口方式/类型;4.输入和输出消息。下面的信息表示为一个标签在WSDL文件中,如: XML Schema data types the actual request and response data being communicated the target / end points where the actual web service is hosted to perform the operation the protocol information is given for the data format the parent tag for the above mentioned tags注释: 1. -数据类型 2. -实际的请求和响应数据交流 3. -目标/结束点实际的web服务托管执行操作 4. -协议信息给出的数据格式 5. -父标记上标签1.示例WSDL文件:您的WSDL文件应该遵循W3C标准。通过web服务我们可以转换为基于web的应用程序。构造Web服务的XML、HTTP、TCP / IP、Java、HTML等等。由于web服务是基于XML的语言,这样我们可以有这些应用程序本地,分布式和基于web环境。2.WSDL的作用:验证使用SoapUI web服务是容易的,只可能与WSDL文档来配置web服务在SoapUI,WSDL文档是强制性的。如果WSDL文档无效,SoapUI将立即抛出一个异常。现在让我们看看UDDI组件。四、UDDI(通用描述,发现和集成)这是一个全球性的库,我们可以搜索web服务分布在世界各地。为了得到或搜索web服务访问/网站。在这里你也可以注册自己的web服务,使其向全球用户提供。UDDI是WSDL描述的地方。这将通过SOAP协议进行通信,后来在本教程中。例如说,如果你想宣传你的产品到全球客户可以创建一个web服务和主机通过UDDI。现在可以访问全球用户和从那里可以建立业务。五、SOAP(简单对象访问协议)一般情况下,它使用基于XML的数据与web应用程序进行交互。这里有一些点要记住:1. SOAP是语言和平台独立,因为它是通过使用XML编写的。2. 它创造了平台与应用程序通信运行在不同的操作系统使用不同的技术。3. 大部分的互联网应用程序相互作用,在远程过程调用使用DCOM(分布式组件)和CORBA(公共代理体系结构)。4. 这些技术都不同于HTTP。RPC(远程过程调用)有时会被防火墙和代理服务器。为了克服这些问题,SOAP设计。有一些标准规则时要遵守构建SOAP请求。1.看看示例SOAP文档。正如你所看到的,一个SOAP文档必须包含以下元素:1. 信封元素是最重要的标签,标识作为SOAP消息的XML文档。2. 其次是信封元素,你看到的头元素头信息。3. 正文元素指定调用和响应信息。4. 最后,你有一个错误元素包含错误和状态信息。上述元素应该使用默认名称空间声明的SOAP信封。一般来说,协议是一组标准的规则,两个地区之间传输数据在互联网web服务。有许多互联网应用中使用的协议。,传输控制协议(TCP),作为一个数据包在两个连接。互联网协议(IP)两个目的地之间发送和接收的消息。2.一些重要的协议:1.1 超文本传输协议http 1.1.1 HTTP协议详解之URL篇 http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下:http:/host:portabs_pathhttp表示要通过HTTP协议来定位网络资源;host表示合法的Internet主机域名或者IP地址;port指定一个端口号,为空则使用缺省端口80;abs_path指定请求资源的URI;如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成。eg:1、输入:浏览器自动转换成:/2、http:16:8080/index.jsp1.1.2 HTTP协议详解之请求篇 http请求由三部分组成,分别是:请求行、消息报头、请求正文1、请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Method Request-URI HTTP-Version CRLF其中 Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version表示请求的HTTP协议版本;CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。请求方法(所有方法全为大写)有多种,各个方法的解释如下:GET 请求获取Request-URI所标识的资源POST 在Request-URI所标识的资源后附加新的数据HEAD 请求获取由Request-URI所标识的资源的响应消息报头PUT 请求服务器存储一个资源,并用Request-URI作为其标识DELETE 请求服务器删除Request-URI所标识的资源TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断CONNECT 保留将来使用OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求应用举例:GET方法:在浏览器的地址栏中输入网址的方式访问网页时,浏览器采用GET方法向服务器获取资源,eg:GET /form.html HTTP/1.1 (CRLF)POST方法要求被请求服务器接受附在请求后面的数据,常用于提交表单。eg:POST /reg.jsp HTTP/ (CRLF)Accept:image/gif,image/x-xbit,. (CRLF).HOST: (CRLF)Content-Length:22 (CRLF)Connection:Keep-Alive (CRLF)Cache-Control:no-cache (CRLF)(CRLF) /该CRLF表示消息报头已经结束,在此之前为消息报头user=jeffrey&pwd=1234 /此行以下为提交的数据HEAD方法与GET方法几乎是一样的,对于HEAD请求的回应部分来说,它的HTTP头部中包含的信息与通过GET请求所得到的信息是相同的。利用这个方法,不必传输整个资源内容,就可以得到Request-URI所标识的资源的信息。该方法常用于测试超链接的有效性,是否可以访问,以及最近是否更新。2、请求报头后述3、请求正文(略)1.1.3 HTTP协议详解之响应篇 在接收和解释请求消息后,服务器返回一个HTTP响应消息。HTTP响应也是由三个部分组成,分别是:状态行、消息报头、响应正文1、状态行格式如下:HTTP-Version Status-Code Reason-Phrase CRLF其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:1xx:指示信息-表示请求已接收,继续处理2xx:成功-表示请求已被成功接收、理解、接受3xx:重定向-要完成请求必须进行更进一步的操作4xx:客户端错误-请求有语法错误或请求无法实现5xx:服务器端错误-服务器未能实现合法的请求常见状态代码、状态描述、说明:200 OK /客户端请求成功400 Bad Request /客户端请求有语法错误,不能被服务器所理解401 Unauthorized /请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用403 Forbidden /服务器收到请求,但是拒绝提供服务404 Not Found /请求资源不存在,eg:输入了错误的URL500 Internal Server Error /服务器发生不可预期的错误503 Server Unavailable /服务器当前不能处理客户端的请求,一段时间后可能恢复正常eg:HTTP/1.1 200 OK (CRLF)2、响应报头后述3、响应正文就是服务器返回的资源的内容1.1.4 HTTP协议详解之消息报头篇 HTTP消息由客户端到服务器的请求和服务器到客户端的响应组成。请求消息和响应消息都是由开始行(对于请求消息,开始行就是请求行,对于响应消息,开始行就是状态行),消息报头(可选),空行(只有CRLF的行),消息正文(可选)组成。HTTP消息报头包括普通报头、请求报头、响应报头、实体报头。每一个报头域都是由名字+“:”+空格+值 组成,消息报头域的名字是大小写无关的。1、普通报头在普通报头中,有少数报头域用于所有的请求和响应消息,但并不用于被传输的实体,只用于传输的消息。eg:Cache-Control 用于指定缓存指令,缓存指令是单向的(响应中出现的缓存指令在请求中未必会出现),且是独立的(一个消息的缓存指令不会影响另一个消息处理的缓存机制),HTTP1.0使用的类似的报头域为Pragma。请求时的缓存指令包括:no-cache(用于指示请求或响应消息不能缓存)、no-store、max-age、max-stale、min-fresh、only-if-cached;响应时的缓存指令包括:public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age、s-maxage.eg:为了指示IE浏览器(客户端)不要缓存页面,服务器端的JSP程序可以编写如下:response.sehHeader(Cache-Control,no-cache);/response.setHeader(Pragma,no-cache);作用相当于上述代码,通常两者/合用这句代码将在发送的响应消息中设置普通报头域:Cache-Control:no-cacheDate普通报头域表示消息产生的日期和时间Connection普通报头域允许发送指定连接的选项。例如指定连接是连续,或者指定“close”选项,通知服务器,在响应完成后,关闭连接2、请求报头请求报头允许客户端向服务器端传递请求的附加信息以及客户端自身的信息。常用的请求报头AcceptAccept请求报头域用于指定客户端接受哪些类型的信息。eg:Accept:image/gif,表明客户端希望接受GIF图象格式的资源;Accept:text/html,表明客户端希望接受html文本。Accept-CharsetAccept-Charset请求报头域用于指定客户端接受的字符集。eg:Accept-Charset:iso-8859-1,gb2312.如果在请求消息中没有设置这个域,缺省是任何字符集都可以接受。Accept-EncodingAccept-Encoding请求报头域类似于Accept,但是它是用于指定可接受的内容编码。eg:Accept-Encoding:gzip.deflate.如果请求消息中没有设置这个域服务器假定客户端对各种内容编码都可以接受。Accept-LanguageAccept-Language请求报头域类似于Accept,但是它是用于指定一种自然语言。eg:Accept-Language:zh-cn.如果请求消息中没有设置这个报头域,服务器假定客户端对各种语言都可以接受。AuthorizationAuthorization请求报头域主要用于证明客户端有权查看某个资源。当浏览器访问一个页面时,如果收到服务器的响应代码为401(未授权),可以发送一个包含Authorization请求报头域的请求,要求服务器对其进行验证。Host(发送请求时,该报头域是必需的)Host请求报头域主要用于指定被请求资源的Internet主机和端口号,它通常从HTTP URL中提取出来的,eg:我们在浏览器中输入:/index.html浏览器发送的请求消息中,就会包含Host请求报头域,如下:Host:此处使用缺省端口号80,若指定了端口号,则变成:Host::指定端口号User-Agent我们上网登陆论坛的时候,往往会看到一些欢迎信息,其中列出了你的操作系统的名称和版本,你所使用的浏览器的名称和版本,这往往让很多人感到很神奇,实际上,服务器应用程序就是从User-Agent这个请求报头域中获取到这些信息。User-Agent请求报头域允许客户端将它的操作系统、浏览器和其它属性告诉服务器。不过,这个报头域不是必需的,如果我们自己编写一个浏览器,不使用User-Agent请求报头域,那么服务器端就无法得知我们的信息了。请求报头举例:GET /form.html HTTP/1.1 (CRLF)Accept:image/gif,image/x-xbitmap,image/jpeg,application/x-shockwave-flash,application/vnd.ms-excel,application/vnd.ms-powerpoint,application/msword,*/* (CRLF)Accept-Language:zh-cn (CRLF)Accept-Encoding:gzip,deflate (CRLF)If-Modified-Since:Wed,05 Jan 2007 11:21:25 GMT (CRLF)If-None-Match:W/80b1a4c018f3c41:8317 (CRLF)User-Agent:Mozilla/4.0(compatible;MSIE6.0;Windows NT 5.0) (CRLF)Host: (CRLF)Connection:Keep-Alive (CRLF)(CRLF)3、响应报头响应报头允许服务器传递不能放在状态行中的附加响应信息,以及关于服务器的信息和对Request-URI所标识的资源进行下一步访问的信息。常用的响应报头LocationLocation响应报头域用于重定向接受者到一个新的位置。Location响应报头域常用在更换域名的时候。ServerServer响应报头域包含了服务器用来处理请求的软件信息。与User-Agent请求报头域是相对应的。下面是Server响应报头域的一个例子:Server:Apache-Coyote/1.1WWW-AuthenticateWWW-Authenticate响应报头域必须被包含在401(未授权的)响应消息中,客户端收到401响应消息时候,并发送Authorization报头域请求服务器对其进行验证时,服务端响应报头就包含该报头域。eg:WWW-Authenticate:Basic realm=Basic Auth Test! /可以看出服务器对请求资源采用的是基本验证机制。4、实体报头请求和响应消息都可以传送一个实体。一个实体由实体报头域和实体正文组成,但并不是说实体报头域和实体正文要在一起发送,可以只发送实体报头域。实体报头定义了关于实体正文(eg:有无实体正文)和请求所标识的资源的元信息。常用的实体报头Content-EncodingContent-Encoding实体报头域被用作媒体类型的修饰符,它的值指示了已经被应用到实体正文的附加内容的编码,因而要获得Content-Type报头域中所引用的媒体类型,必须采用相应的解码机制。Content-Encoding这样用于记录文档的压缩方法,eg:Content-Encoding:gzipContent-LanguageContent-Language实体报头域描述了资源所用的自然语言。没有设置该域则认为实体内容将提供给所有的语言阅读者。eg:Content-Language:daContent-LengthContent-Length实体报头域用于指明实体正文的长度,以字节方式存储的十进制数字来表示。Content-TypeContent-Type实体报头域用语指明发送给接收者的实体正文的媒体类型。eg:Content-Type:text/html;charset=ISO-8859-1Content-Type:text/html;charset=GB2312Last-ModifiedLast-Modified实体报头域用于指示资源的最后修改日期和时间。ExpiresExpires实体报头域给出响应过期的日期和时间。为了让代理服务器或浏览器在一段时间以后更新缓存中(再次访问曾访问过的页面时,直接从缓存中加载,缩短响应时间和降低服务器负载)的页面,我们可以使用Expires实体报头域指定页面过期的时间。eg:Expires:Thu,15 Sep 2006 16:23:12 GMTHTTP1.1的客户端和缓存必须将其他非法的日期格式(包括0)看作已经过期。eg:为了让浏览器不要缓存页面,我们也可以利用Expires实体报头域,设置为0,jsp中程序如下:response.setDateHeader(Expires,0);1.1.5 HTTP协议简介超文本传送协议 (HTTP) 是一种通信协议,它允许将超文本标记语言(HTML) 文档从 Web 服务器传送到 Web 浏览器。HTML 是一种用于创建文档的标记语言,这些文档包含到相关信息的链接。您可以单击一个链接来访问其它文档、图像或多媒体对象,并获得关于链接项的附加信息。HTTP工作在TCP/IP协议体系中的TCP协议上。客户机和服务器必须都支持 HTTP,才能在万维网上发送和接收 HTML 文档并进行交互。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。前一段时间用的是HTTP/1.0,现在WWW中使用的是HTTP/1.1。而且HTTP-NG(Next Generation of HTTP)的建议已经提出。1.1.6 HTTP协议特点HTTP协议的主要特点可概括如下:1、支持客户/服务器模式。2、 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。3、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。4、无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。5、无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。 请求信息发出的请求信息包括以下几个:请求行,例如GET /images/logo.gif HTTP/1.1,表示从/images目录下请求logo.gif这个文件。(请求)头,例如Accept-Language: en空行可选的消息体请求行和标题必须以作为结尾(也就是,回车然后换行)。空行内必须只有而无其他空格。在HTTP/1.1协议中,所有的请求头,除post外,都是可选的。 请求方法HTTP/1.1协议中共定义了八种方法(有时也叫“动作”)来表明Request-URI指定的资源的不同操作方式:OPTIONS返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送*的请求来测试服务器的功能性。HEAD向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。GET向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作中,例如在web app.中。其中一个原因是GET可能会被网络蜘蛛等随意访问。POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。PUT向指定资源位置上传其最新内容。DELETE请求服务器删除Request-URI所标识的资源。TRACE回显服务器收到的请求,主要用于测试或诊断。CONNECTHTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。方法名称是区分大小写的。当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Method Not Allowed);当服务器不认识或者不支持对应的请求方法的时候,应当返回状态码501(Not Implemented)。HTTP服务器至少应该实现GET和HEAD方法,其他方法都是可选的。当然,所有的方法支持的实现都应当符合下述的方法各自的语义定义。此外,除了上述方法,特定的HTTP服务器还能够扩展自定义的方法。 安全超文本协议安全超文本传输协议(Secure Hypertext Transfer Protocol, S-HTTP)是一种结合HTTP而设计的消息的安全通信协议。S-HTTP协议为HTTP客户机和服务器提供了多种安全机制,这些安全服务选项是适用于Web上各类用户的。还为客户机和服务器提供了对称能力(及时处理请求和恢复,及两者的参数选择)同时维持HTTP的通信模型和实施特征。S-HTTP不需要客户方的公用密钥证明,但它支持对称密钥的操作模式。这意味着在没有要求用户个人建立公用密钥的情况下,会自发地发生私人交易。它支持端对端安全传输,客户机可能首先启动安全传输(使用报头的信息),用来支持加密技术。在语法上,S-HTTP报文与HTTP相同,由请求行或状态行组成,后面是信头和主体。请求报文的格式由请求行、通用信息头、请求头、实体头、信息主体组成。相应报文由响应行、通用信息头、响应头、实体头、信息主体组成。目前有两种方法来建立连接:HTTPSURI方案和HTTP 1.1请求头(由RFC2817引入)。由于浏览器对后者的几乎没有任何支持,因此HTTPS URI方案仍是建立安全超文本协议连接的主要手段。安全超文本连接协议使用https:/代替http:/2.文件传输协议FTP工作在TCP/IP模型的应用层,基于的传输协议是TCP,FTP客户端和服务器之间的连接是可靠的,面向连接的,为数据的传输提供了可靠的保证。1.1 FTP的主要特征:1.控制连接是建立在客户协议解释器和服务器协议解释器之间用于交换命令与应答的通信链路。2.数据连接是传输数据的全双工连接。传输数据可以发生在服务器数据传输过程DTP和客户DTP之间,也可以发生在两个服务器的DTP之间。1.2 文件类型:1.ASCII码文件类型(默认选择),以NVT ASCII码形式通过数据连接传输;2.EBCDIC文件类型。该文本文件传输方式要求两端都是EBCDIC系统;3.图像文件类型(也成为二进制文件类型),数据发送形式呈现为一个连续的比特流。1.3 数据结构:1.文件结构(File Structure)字节流,无结构;2.记录结构(Record Structure)文件被划分为记录,用于文本文件;3.页结构(Page Structure)文件被划分为页,每页有页号和页头。可以进行随机存取或顺序存取。1.4 传输方式:FTP的传输模式有流模式、块模式和压缩模式:1.流模式:数据以字节流的形式传送-记录结构-文件结构2.块模式:文件以块的形式传送,块带有自己的头部分。头字节包括16位计数域和8位描述子代码3.压缩模式:压缩模式中,因为数据是压缩过的,对于增加带宽有很多好处。块模式头字节的结构描述子代码在描述子字节中的位标记说明1.5 FTP中的客户端-服务器模型FTP客户端与服务器之间要建立双重连接,一个是控制连接,一个是数据连接。控制连接:NVT ASCII数据连接:文件类型、数据结构、传输方式 建立双重连接的原因是:FTP是一个交互式会话系统,某客户每次调用FTP,便与服务器建立一次会话,会话以控制连接来维持。 客户端每提出一个请求,服务器与客户端建立一个数据连接,进行实际的数据(比如文件)传输,一旦数据传输结束,数据连接相继撤销,但控制连接依然存在,客户端可以继续发出命令。 客户可以撤销控制连接(close命令),也可以退出FTP会话(quit命令)。1.6 FTP服务器的实现是由一组FTP进程完成的。服务器FTP进程:由协议解释器PI和数据传输过程DTP组成。客户端FTP进程:由PI、DTP和用户接口组成。1.7 传输和控制采用独立的连接方式具有以下三方面的优点:1.使FTP协议更加简单并且更容易实现,例如控制连接可以直接采用Telnet协议实现,FTP数据连接不会与FTP命令混淆起来;2.在数据连接结束后,控制连接仍然保留着,它能够在新的传输连接时被使用;3.发送方与接收方在所有的数据都到达时可以在数据连接上用文件结束来通知另一方,从而达到命令传输的功能。1.8 FTP使用Telnet协议进行控制连接。通信: FTP使用客户端/服务器模式,涉及到五个进程和两个相关。 服务器首先运行一个本地FTP主服务进程,当客户端用户输入open或ftp命令后,客户端指定一个远程计算机时,建立一个客户端控制进程,本地应用成为一个FTP客户端,建立了与自己的半相关。 然后,客户端用TCP建立与指定计算机上的FTP服务器之间的控制连接。 服务器接收到客户端的请求后,派生一个服务器控制进程,该进程与客户端控制进程建立起控制连接,即相关,双方进入会话状态。 客户端要进行数据传输时,派生一个客户端数据传输进程,并在一个非默端口上被动打开,通过控制连接,客户端用port将端口号发送给服务器控制进程。 服务器控制进程接收到后,派生一个服务器数据传输进程,该进程建立一个自己的半相关(20),并向客户端数据进程发出连接请求,与客户端数据传输进程建立相关,双方建立数据传输。 数据传输结束后,关闭数据连接,双方数据传输进程结束,但控制进程仍然存在,然后可以再重新发起新的数据传输服务。1.9 FTP命令与响应 FTP命令主要用于控制连接,可以直接采用Telnet协议实现,所以FTP命令同Telnet命令包括中断进程、Telnet的同步信号、查询服务器、带选项的Telnet命令等。 命令以NVT ASCII码形式传送,要求在每行结尾都要CR、LF对。 FTP响应都是ASCII码形式的3位数字,响应也是以NVT ASCII码形式传送,要求在每行结尾都要返回CR、LF对。1.10 匿名FTP的用途: 从前面的讲解可知,使用FTP时必须首先利用Telnet协议登录,获得远程主机相应的权限,才能上传和下载文件。 本地主机必须具有用户ID和口令,获得远程计算机的适当授权,否则便无法传送文件,Internet上的FTP主机很多,不可能要求每个用户在每一台主机上拥有帐号。 匿名FTP无需本地主机成为远程计算机的注册用户,从而解决了这个问题。1.11 匿名FTP机制: 远程计算机建立了名为anonymous的用户特殊ID,这样Internet上的任何人在任何地方都可使用该用户ID,下载文件,而无需成为其注册用户。 匿名FTP主机的连接使用方式同连接普通FTP主机的方式差不多,只是在要求提供用户标识ID时必须输入anonymous,其口令可以是客户端自己喜欢的任意字符串。3.边界网关协议边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。 BGP 构建在 EGP 的经验之上。 BGP 系统的主要功能是和其他的 BGP 系统交换网络可达信息。网络可达信息包括列出的自治系统(AS)的信息。这些信息有效地构造了 AS 互联的拓朴图并由此清除了路由环路,同时在 AS 级别上可实施策略决策。1.1 BGP特性描述如下:BGP是一种外部网关协议(Exterior Gateway Protocol,EGP),与OSPF、RIP等内部网关协议(Interior Gateway Protocol,IGP)不同,其着眼点不在于发现和计算路由,而在于控制路由的传播和选择最佳路由。BGP使用TCP作为其传输层协议(端口号179),提高了协议的可靠性。BGP支持CIDR(Classless Inter-Domain Routing,无类别域间路由)。路由更新时,BGP只发送更新的路由,大大减少了BGP传播路由所占用的带宽,适用于在Internet上传播大量的路由信息。BGP路由通过携带AS路径信息彻底解决路由环路问题。BGP提供了丰富的路由策略,能够对路由实现灵活的过滤和选择。BGP易于扩展,能够适应网络新的发展。发送BGP消息的路由器称为BGP发言者(BGP Speaker),它接收或产生新的路由信息,并发布(Advertise)给其它BGP发言者。当BGP发言者收到来自其它自治系统的新路由时,如果该路由比当前已知路由更优、或者当前还没有该路由,它就把这条路由发布给自治系统内所有其它BGP发言者。相互交换消息的BGP发言者之间互称对等体(Peer),若干相关的对等体可以构成对等体组(Peer group)。1.2 BGP在路由器上以下列两种方式运行:IBGP(Internal BGP):当BGP运行于同一自治系统内部时,被称为IBGP;EBGP(External BGP):当BGP运行于不同自治系统之间时,称为EBGP。1.3 BGP的消息类型1.3.1 消息头格式BGP有5种消息类型:Open、Update、Notification、Keepalive和Route-refresh。这些消息有相同的报文头,其格式如图1所示。图1BGP消息的报文头格式主要字段的解释如下:Marker:16字节,用于标明BGP报文边界,所有比特均为“1”。Length:2字节,BGP消息总长度(包括报文头在内),以字节为单位。Type:1字节,BGP消息的类型。其取值从1到5,分别表示Open、Update、Notification、Keepalive和Route-refresh消息。其中,前四种消息是在RFC 1771中定义,而Type为5的消息则是在RFC 2918中定义的。 OpenOpen消息是TCP连接建立后发送的第一个消息,用于建立BGP对等体之间的连接关系。其消息格式如图2所示。图2BGP Open消息格式主要字段的解释如下:Version:BGP的版本号。对于BGP-4来说,其值为4。My autonomous system:本地AS号。通过比较两端的AS号可以确定是EBGP连接还是IBGP连接。Hold time:保持时间。在建立对等体关系时两端要协商Hold Time,并保持一致。如果在这个时间内未收到对端发来的Keepalive消息或Update消息,则认为BGP连接中断。BGP identifier:BGP标识符。以IP地址的形式表示,用来识别BGP路由器。Opt Parm Len(Optional Parameters Length):可选参数的长度。如果为0则没有可选参数。Optional parameters:可选参数。用于多协议扩展(Multiprotocol Extensions)等功能。 UpdateUpdate消息用于在对等体之间交换路由信息。它既可以发布可达路由信息,也可以撤销不可达路由信息。其消息格式如图3所示。图3BGP Update消息格式一条Update报文可以通告一类具有相同路径属性的可达路由,这些路由放在NLRI(Network Layer Reachable Information,网络层可达信息)字段中,Path Attributes字段携带了这些路由的属性,BGP根据这些属性进行路由的选择;同时Update报文还可以携带多条不可达路由,被撤销的路由放在Withdrawn Routes字段中。主要字段的解释如下:Unfeasible routes length:不可达路由字段的长度,以字节为单位。如果为0则说明没有Withdrawn Routes字段。Withdrawn routes:不可达路由的列表。Total path attribute length:路径属性字段的长度,以字节为单位。如果为0则说明没有Path Attributes字段。Path atributes:与NLRI相关的所有路径属性列表,每个路径属性由一个TLV(Type-Length-Value)三元组构成。BGP正是根据这些属性值来避免环路,进行选路,协议扩展等。NLRI(Network Layer Reachability Information):可达路由的前缀和前缀长度二元组。 Notification当BGP检测到错误状态时,就向对等体发出Notification消息,之后BGP连接会立即中断。其消息格式如图4所示。图4BGP Notification消息格式主要字段的解释如下:Error code:差错码,指定错误类型。Error subcode:差错子码,错误类型的详细信息。Data:用于辅助发现错误的原因,它的内容依赖于具体的差错码和差错子码,记录的是出错部分的数据,长度不固定。 KeepaliveBGP会周期性地向对等体发出Keepalive消息,用来保持连接的有效性。其消息格式中只包含报文头,没有附加其他任何字段。 Route-refreshRoute-refresh消息用来要求对等体重新发送指定地址族的路由信息。其消息格式如图5所示。图5BGP Route-refresh消息格式主要的字段解释如下:AFI:Address Family Identifier,地址族标识。Res.:保留,必须置0。SAFI:Subsequent Address Family Identifier,子地址族标识。1.3.2 BGP的路由属性 路由属性的分类BGP路由属性是一组参数,它对特定的路由进行了进一步的描述,使得BGP能够对路由进行过滤和选择。事实上,所有的BGP路由属性都可以分为以下四类:公认必须遵循(Well-known mandatory):所有BGP路由器都必须能够识别这种属性,且必须存在于Update消息中。如果缺少这种属性,路由信息就会出错。公认可选(Well-known discretionary):所有BGP路由器都可以识别,但不要求必须存在于Update消息中,可以根据具体情况来选择。可选过渡(Optional transitive):在AS之间具有可传递性的属性。BGP路由器可以不支持此属性,但它仍然会接收带有此属性的路由,并通告给其他对等体。可选非过渡(Optional non-transitive):如果BGP路由器不支持此属性,该属性被忽略,且不会通告给其他对等体。BGP路由几种基本属性和对应的类别如表1所示。表1路由属性和类别属性名称类别ORIGIN公认必须遵循AS_PATH公认必须遵循NEXT_HOP公认必须遵循LOCAL_PREF公认可选ATOMIC_AGGREGATE公认可选AGGREGATOR可选过渡COMMUNITY可选过渡MULTI_EXIT_DISC (MED)可选非过渡ORIGINATOR_ID可选非过渡CLUSTER_LIST可选非过渡 几种主要的路由属性.1 源(ORIGIN)属性ORIGIN属性定义路由信息的来源,标记一条路由是怎么成为BGP路由的。它有以下三种类型:IGP:优先级最高,说明路由产生于本AS内。EGP:优先级次之,说明路由通过EGP学到。incomplete:优先级最低,它并不是说明路由不可达,而是表示路由的来源无法确定。例如,引入的其它路由协议的路由信息。.2 AS路径(AS_PATH)属性AS_PATH属性按一定次序记
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年电力安全常识知识测试题及答案
- 2025年幕墙员工考试题库及答案
- 高铁纵向便道施工合同(3篇)
- 高炮广告牌施工协议合同(3篇)
- 高空作业工程合同模板(3篇)
- 高空门头施工要求合同(3篇)
- 安徽省辅警笔试题型及答案
- 安徽成人高考试题及答案
- 安防知识考试试题及答案
- 出差期间医疗及保险保障协议
- 闪送员考试25题目及答案
- 卒中后抑郁的中西医治疗
- 轨道列车司机四级题库及答案
- 胫腓骨骨折教学查房课件
- 腹股沟疝的护理教学查房
- 甜蜜陷阱:健康吃糖的危害与科学控糖指南
- 青少年心理健康课件
- 腹部超声报告解读
- 中医护理学基础理论测试题(附答案)
- 课件:大别山精神从大别山精神中汲取奋进力量
- 施工现场专职安全生产管理人员安全日志
评论
0/150
提交评论