网络技术及应用第三次课_第1页
网络技术及应用第三次课_第2页
网络技术及应用第三次课_第3页
网络技术及应用第三次课_第4页
网络技术及应用第三次课_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章传统的互联网应用程序4.1本章内容互联网应用定义传输层的概念解释应用程序如何使用传输层协议标准互联网应用程序,以及描述传输层协议的各种应用4.2应用层协议无论何时编程者设计网络程序(两个应用程序),他要说明如下细节:交换信息的语法和语义客户端程序或服务员程序是否开始(启动)互动如果出错,要采取的行动当终止通讯时,双方如何知道这就要求编程者定义一个应用层协议。4.2应用层协议(2)根据使用情况的不同,有两种类型的应用层协议:个人通讯:编程者设计一对应用程序,通过互联网进行通讯,但,只是用于个人的使用。大多数情况,应用程序间的通讯是直接的,所以,编程者只是编写相应的代码,而不需要写一个正式的协议规范。标准化服务:根据需要,人们定义了互联网服务,编程者设计(该互联网服务的)服务员程序来提供服务,或设计客户端程序来访问服务。这种情况,应用层协议必须独立于应用程序,而形成协议文件,协议规范必须严谨、无歧义,这样才能使所有的客户端程序和服务员程序正确的互动。4.2应用层协议(3)协议的内容多少,依赖于服务的复杂性。例如:互联网服务中,标准服务——DAYTIME,其用于客户端程序从指定的服务员程序处,得到当地的时间和日期。步骤:客户端程序连接服务员程序服务员程序发送用ASCII码表示的日期和时间,如:SatSep20:18:372008服务员程序关闭连接客户端程序从连接处读取数据,直到接到“endoffile”。4.3表达和传输应用层协议要规定互动的两个方面的内容:表达和传输。如图4.1。4.3表达和传输(2)对于基本的互联网服务,应用层协议可以规定这两个方面的内容;但,对于复杂的服务,就要使用多个应用层协议来分别说明,如网页服务,就将网页的语法和网页的传输分开,用多个应用层协议进行说明。注:在应用层协议的题目中,如有“Transfer”这个词,就意味着这个协议只是说明通讯中数据传输方面的协议。4.4网页协议万维网(WorldWideWeb)是最广泛的一个互联网应用。该服务分成多个应用层协议来分别说明其各方面的内容。如图4.2。4.5用HTML表达文件超级文本标记(标示)语言(HyperTextMarkupLanguage,HTML)是一个(信息)表达标准,它规定了网页的语法。HTML有以下特点:使用文本表达描述的网页可以包含多媒体遵守宣示范本,而不是步骤范本提供标记规范,而不是格式规范允许超级链接嵌入到任何一个对象中允许文件包含元数据(Metadata)4.5用HTML表达文件(2)HTML语言只是一个纯文本语言,但是,它允许编程者设计任意复杂的网页,其中可包括图片、声音、视频及文本。HTML语言归类于“宣示”范本,是因为该语言只允许设计者说明“要做什么”,而不允许说明“如何做”。HTML语言归类于“标记”语言,是因为该语言只给出显示网页的“总的指导方针”,而不包含具体的格式指令。4.5用HTML表达文件(3)例如,HTML允许网页规定标题的分级,但,不允许设计者规定各级标题的字体、字形、字的大小或标题的间隔。这些都由浏览器来选择具体的显示内容。“标记”语言重要性就在于其允许浏览器可根据硬件的显示环境,来调整网页的显示。例如,高分辨率显示器、低分辨率显示器、大显示器、小显示器等。总之,HTML是网页的表达标准。它允许网页在任意设备上显示,它只给出显示的总的指导方针,而允许浏览器来选择具体的显示方式。为了说明“标记”,HTML在文件中嵌入了“标签”(tag)。4.5用HTML表达文件(4)标签:<标签名>,它提供文件的结构和格式线索,它控制所有的显示。HTML不是WISIWG,所有,在HTML文件中使用格式符是无效的,如,在HTML文件中,插入多个空格、空行和空白字符,均不影响显示格式。如图4.3,HTML文件结构。如,IMG标签,<IMGSRC=“house_icon.gif”>,另外,IMG标签可以使用属性来说明图片与文字的对齐方式。如,Hereisapicture.<IMGSRC="fred_photo.gif"ALIGN=“middle”>4.5用HTML表达文件(5)4.6统一资源定位器(URL)和超级链接网页使用统一资源定位器(UniformResourceLocator,URL)来说明网页的位置。URL的一般形式为:protocol://computer_name:port/document_name%parameter其中:protocol是访问文档所采用的协议名,computer_name是文档所在计算机的域名,port是可选的协议端口号document_name是在指定计算机上的文档名parameter是网页的参数,可选4.6统一资源定位器(URL)和超级链接(2)例如,URL:http:///cs363/index.html指明协议为http,计算机名为,文件cs363/index.html。一般的,URL中会省略许多内容,如,这里省略了:协议,默认是http端口号,默认是80网页的文件名,默认是index.html参数,默认是没有参数4.6统一资源定位器(URL)和超级链接(3)URL包括浏览器取回网页所需的信息。浏览器用冒号、斜杠符和百分号将URL分隔成四个部分:协议,计算机名、文档名和参数。浏览器用计算机名和端口号来连接服务器;用文档名和参数来访问指定的文档。4.6统一资源定位器(URL)和超级链接(4)HTML中,使用“锚”(anchor)标签来指定一个超文本的引用,即超级链接。锚标签为一对<A>和</A>,两者之间所有的项都作为锚的一部分。标签<A>包括指定一个URL的信息。例如,如下的输入: Thisbookispublishedby <AHREF="http://">PrenticeHall,</A> oneofthelargerpublishersofComputerSciencetextbooks.锚标签包含了一个引用URL地址http://。当显示在屏幕上时,该输入产生:ThisbookispublishedbyPrenticeHall,oneofthelargerpublishersofComputerSciencetextbooks.4.7用HTTP协议传输网页文件超级文本传输协议(HyperTextTransportProtocol,HTTP)是浏览器(客户端程序)与网页服务员程序互动的一个基本传输协议。采用客户端——服务员模式(CS模式),浏览器是客户端,它用URL联系服务员程序,在URL中,冒号前的是协议名称,如是http:,则使用http协议,默认是http。4.7用HTTP协议传输网页文件(2)HTTP的特点;使用文本的控制信息传输二进制数据文件能下载或上传数据与缓存相配合一旦建立了连接,浏览器向服务员程序发送HTTP协议请求,4.7用HTTP协议传输网页文件(3)4.7用HTTP协议传输网页文件(4)当浏览器向服务员程序请求一个网页时,一般的形式是,通过连接发送GET请求,而服务员程序返回一个文件头、一个空行和所要求的文件。“请求”和“文件头”都是文本信息。例如:GET/itemversionCRLF其中:Item是URL中,请求的文件version说明http协议版本,一般是http1.0或1.1,http版本向下兼容CRLF是两个ASCII,即“回车”和“换行”,用于说明该行的结束4.7用HTTP协议传输网页文件(5)返回的文件头部:HTTP/1.0status_codestatus_stringCRLFSever:server_identificationCRLFLast-Modified:date_document_was_changedCRLFContent-Length:datasizeCRLFContent-Type:document_typeCRLFCRLF4.7用HTTP协议传输网页文件(6)其中:Status_code状态码,告诉浏览器服务员程序是否处理了请求。如果没有构成正确的请求或请求项不可用,状态码将指出问题。如:4.7用HTTP协议传输网页文件(7)status_string是对Status_code状态码的解释server_identification为对服务员程序的描述文字,一般的是服务器的域名Datasize是文件数据的大小,以字节为单位document_type,字符串,告诉浏览器,文件的内容。字符串由两部分组成,中间用“/”分开,即文件类型/文件的表达如:text/html,image/jpeg4.7用HTTP协议传输网页文件(8)4.8浏览器中的缓存对于网页的访问,缓存提供了一个重要的优化方式,因为用户往往重复地访问一个网站。网页中大多数内容的图片是GIF或JPEG格式,一般用于,网页的背景或导航条,这些一般不是频繁更换的。所以,浏览器通过在用户的硬盘中保存网页中的图片,并使用这些缓存的拷贝(不再下载),能够大大地减少下载时间。4.8浏览器中的缓存(2)问题:当浏览器在其缓存中储存了一个拷贝之后,如果网页服务员程序中的文件改变了,那该如何处理?回答:利用头部(Header)的“Last_Modified”来检查更新。算法4.1已知:网页的URL求:该网页方法:如果(该网页不在缓存中){ 发GET请求,获得该网页,并保存到缓存中; }否则{ 向服务员程序发HEAD请求; 如果(缓存中的拷贝是最新的){ 使用网页拷贝; }否则{ 发GET请求,获得该网页,并保存到缓存中; }}4.8浏览器中的缓存(3)额外的几个细节:HTTP允许网站发出带有“No-cache”的头部,这样的头部告诉客户端程序——这项内容不要缓存。浏览器不缓存一些小的网页项目,因为,用GET下载这些小的项目和用HEAD请求获取头部的时间差不多;另外,在缓存中保存这些小项目,会增加缓存的查询次数。4.9浏览器的框架结构浏览器必须理解HTTP,但,也要支持其他协议。URL中可以指定协议,所以,浏览器中必须有解释该协议的代码。对于每个服务,浏览器必须知道如何与服务员程序互动,如何解释响应。例如:FTP。4.9浏览器的框架结构(2)浏览器由一组客户端程序、一组解释器和一个管理它们的控制器所组成。控制器形成了浏览器的中心部件。它解释鼠标点击与键盘输入,并且调用其他组件来执行用户指定的操作。例如,当用户键入一个URL或者点击一个超文本引用时,控制器调用一个客户端程序从所需文档所在的远程服务器上取回该文档,并且调用解释器向用户显示该文档。每个解释器必须包含一个HTML解释器来显示文档。其他的解释器是可选的。HTML解释器的输入由符合HTML语法的文档所组成,输出由位于用户显示器上的格式化文档组成。解释器通过将HTML规格转换成适合用户显示硬件的命令来处理版面细节。例如,如果碰到文档的标题标签,解释器则改变用于显示标题的文本大小。同样,如果碰到一个断行标签,解释器则输出一个新行。4.10文件传送协议(FTP)通过互联网进行文件传输是非常复杂的,因为,连接到互联网上的计算机是异构的,这就意味着,每个计算机系统都定义了文件表达、类型信息、命名和文件访问的规则。在某一台计算机上的有效文件名也许在另外一台计算机上是无效的。例如:一个系统中,.jpg表示JPEG图片,但在另一个系统中,就必须用.jpeg。一个系统中,文本文件中的一行结束用换行(LINEFEED),但在另一个系统中,就必须用“换行+回车”即,LINEFEED+CARRIAGERETURN。一个系统中,文件名的分隔用“/”(slash),但在另一个系统中,就必须用“\”(backslash)。而且,由于许多计算机系统采用注册帐户来定义文件的权限,所以,某一计算机系统的所有者不一定在另外一台计算机上有相应的注册帐户。4.10文件传送协议(FTP)(2)互联网上,应用最广泛的文件传输服务是文件传送协议(FileTransferProtocol,FTP)。FTP的特点:任意文件内容。FTP可以传输任意数据,包括文本、图片、音乐或视频等双向传输。FTP可用于下载,也可用于上传支持授权和所有权。FTP允许每个文件有所有权和访问限制,并且遵守限制。能够浏览文件夹。FTP允许客户端获取目录内容文本的控制信息。FTP客户端程序和服务员程序间交换的控制信息是ASCII文本包容异构。FTP隐藏计算机操作系统的细节,能够在任意计算机间传输文件4.11FTP通讯范例4.11FTP通讯范例(2)不像HTTP,FTP使用两个连接进行文件传输。最初,客户端程序建立的连接,称为“控制连接”,该连接只用于命令。服务员程序需要上传或下载时,服务员程序会建立新的连接,称为“数据连接”。此时,服务员程序和客户端程序之间,进行了角色互换。4.11FTP通讯范例(3)其中的几个细节:客户端程序建立控制连接后,需要登录服务器(login)。客户端程序用FTP指令USER传输用户名,用PASS传输口令。服务员程序通过控制连接,返回一个数字状态,表明登录是否成功。数据连接的端口号。服务员程序向客户端程序申请数据连接时,如何知道可用的端口号?在向服务员程序请求连接前,客户端程序从它的操作系统申请了一个端口号,用于后期服务员程序建立数据连接时使用。客户端程序bind该端口,并使其处于wait状态(等待连接)然后,通过控制连接,用PORT命令通知服务员程序将要使用的端口号。4.11FTP通讯范例(4)已知:一FTP控制连接实现:通过一FTP数据连接传输数据项方法: 通过控制连接,客户端程序发送请求,要求一个指定文件 服务员程序接受请求 客户端程序分配一个本地协议端口,称之为X 客户端程序捆绑(bind)端口X,并准备接受连接(wait) 客户端程序通过控制连接,向服务员程序发送PORTX指令 服务员程序接受PORT指令,并请求数据连接 客户端程序在端口X等待数据连接,并接受 服务员程序在客户端计算机端口X建立数据连接 服务员程序通过数据连接发送所要求的文件 服务员程序关闭数据连接4.11FTP通讯范例(5)注:当使用FTP的客户端和服务器在网络地址翻译(NAT)设备(如,无线路由)两边时,端口X的直接传输是不好用的。这就要求NAT设备认识FTP控制连接,并能够检查连接的内容,发现PORTX指令时,要重写X值。4.12电子邮件最初的电子邮件模式。如图4.11。4.12电子邮件(2)已知:从一个用户到另一个用户的电子邮件通讯提供的服务:向接收者传输信息方法:用户启动接口应用程序,并编写一电子邮件信息给用户x@,点发送用户的接口应用程序将信息放入队列(发件箱),准备发送用户计算机的硬件发送程序检查发件箱队列,发现信息(发件箱不为空)邮件发送程序打开连接,连接到邮件发送程序使用SMTP协议传输信息邮件发送程序关闭连接在的邮件服务员程序接收到信息,将信息的拷贝放入用户x的收件箱在的用户x运行邮件接口程序,显示用户的收件箱,发现新信息4.12电子邮件(3)电子邮件软件,原则上分层两部分:电子邮件的(人机)接口应用程序用户在写信息或读接收到的信息时与电子邮件接口程序进行交互;邮件接口程序既不是客户端程序也不是服务员程序,它不参与传输信息;邮件接口程序只是从邮件箱里读信息;将发送的信息以队列的形式放入发件箱中。邮件的传输程序和邮件服务员程序邮件的传输程序作为客户端程序,向远端的邮件服务员程序发送信息邮件服务员程序接收信息,并把它放入相应的接收者的邮箱内。4.12电子邮件(4)互联网电子邮件的规范,能分成三大部分:4.13简单邮件传输协议(SMTP)简单邮件传输协议(SimpleMailTransferProtocol,SMTP),是邮件传输程序通过互联网将邮件传输给邮件服务员程序的标准协议。它的特点:遵守流范例使用文本控制信息只传输文本信息允许发送者指定多名接受者的名字,并且SMTP能够检查每个名字发送给定信息的一个拷贝4.13简单邮件传输协议(SMTP)(2)SMTP的限制是只传输文本信息,但是,利用MIME协议可以添加附件,附件内容可以是图片或二进制文件。SMTP能够将一个信息发送给在同一邮件服务器上的多名接受者。协议允许发送者一次列出多名接受者,然后,能够给清单上的每个接受者发一个信息的拷贝。例如:假设计算机上的一个用户向三个位于的用户发送信息。上的邮件传送程序不必与上的服务器建立三个不同的连接。它只需要与服务器建立单个连接,说明所有的三个接收方,然后将信息的一个副本传送过去。服务器接收信息后,向每个接收方传递一个副本。4.13简单邮件传输协议(SMTP)(3)SMTP的典型会话举例4.13简单邮件传输协议(SMTP)(4)其中,HELO命令,允许客户端程序通过发送其域名,使其获得授权;邮件的结束只是由“回车、换行”“句号”“回车、换行”构成,无文本或空格。4.14ISP、邮件服务器和邮件访问电子邮件服务的模式,有了从个人计算机到ISP的转变。即,ISP开始提供电子邮件服务。ISP运行一个邮件服务器,并为每个定制者分配一个电子邮箱。不像传统的电子邮件软件,ISP提供接口软件,让用户访问他们的邮箱。4.14ISP、邮件服务器和邮件访问(2)4.14ISP、邮件服务器和邮件访问(3)ISP利用网页作为接口软件,允许用户通过网页登陆,访问其邮箱,并能够显示邮件、发送邮件等。网页电子邮件服务的优点是,可以在任何一台计算机上访问邮件服务器。PC机上,电子邮件程序的优势是,可以下载全部邮件(同步邮箱),然后,可以离线处理;再上传(同步发件箱)。4.15邮件的访问协议(POP,IMAP)邮件的访问协议不同于邮件传输协议,邮件的访问协议只涉及一个用户与一个邮箱间的互动;邮件传输协议,允许用户给另一个用户直接发送邮件;访问协议的特点:提供到用户邮箱的访问允许用户浏览邮件头(标题)、下载、删除或上传单个的信息客户端程序在用户的个人电脑上运行服务员程序运行在存储用户邮箱的计算机上4.15邮件的访问协议(POP,IMAP)(2)两个标准协议,两个协议提供相同的基本服务,但细节不同。它们使用不同的授权机制,以确保邮箱的安全。4.16电子邮件的表达标准(RFC2822,MIME)两个重要的电子邮件表达标准:RFC2822邮件信息格式多用途互联网邮件扩展协议(MultipurposeInternetMailExtension,MIME)RFC2822邮件信息格式邮件信息作为文本文件来表达,包含有头部、空行和邮件体。头部格式为——关键字:信息其中,关键字包括:From:、To:、Subject:、Cc:等另外,邮件头还可以用大写X开头,而不影响邮件处理。邮件程序看不懂的头部,会跳过去。4.16电子邮件的表达标准(RFC2822,MIME)(2)4.16电子邮件的表达标准(RFC2822,MIME)(3)4.16电子邮件的表达标准(RFC2822,MIME)(4)多用途互联网邮件扩展协议(MultipurposeInternetMailExtension,MIME)由于SMTP只能传输纯文本信息,MIME协议扩展了电子邮件的功能,使其能够包含非文本信息。MIME说明了如何将二进制文件编码为可打印的字符文件如何将这些信息包含在邮件中接受者如何解码4.16电子邮件的表达标准(RFC2822,MIME)(5)虽然MIME引入了基数64(Base64)的编码标准,但是,MIME并不指定一种二进制数据的编码标准,而是允许发送方和接收方选择方便的编码方法。在使用MIME时,发送方在头部包含一些附加行,来说明信息遵循的MIME格式,以及在主体中增加一些附加行说明数据类型和编码。除了在发送方和接收方之间提供一致的编码方式外,MIME还允许发送方将信息分成几个部分,并对每个部分指定不同的编码方法。这样,用户就可以在同一个信息中,既发送普通文本,又可附加(attach)一个图象、电子表格以及声音文件,而且,每个部分都可以使用其自己的编码方式。4.16电子邮件的表达标准(RFC2822,MIME)(6)当接收者查看消息时,电子邮件系统显示出文本消息,然后询问用户如何处理附加的图象(即在磁盘上保存一个副本或在屏幕上显示副本)。当用户决定了如何处理附件时,MIME软件自动解码附加的数据。MIME在电子邮件头部增加了两行:一行用来声明——使用了MIME生成信息,另一行说明MIME信息是如何包含在正文中的。例如,头部的行:MIME-Version:1.0Content-Type:Multipart/Mixed;Boundary=Mime_separator其说明了信息是使用MIME版本1.0生成的,并且包含Mime_separator的行将出现在正文信息的每个部分之前。当MIME用来发送标准文本信息时,第二行变为:Content-Type:text/plain。4.16电子邮件的表达标准(RFC2822,MIME)(7)MIME与老的电子邮件系统是兼容的。而且,传送信息的电子邮件系统不需要理解正文或MIME头部行所使用的编码——这些信息可以完全象任何电子邮件信息一样对待,即,将正文象单个文本块一样对待。总之,虽然电子邮件最初被设计为只用于文本信息,但可以使用MIME标准来传输编码后的二进制数据。在使用MIME时,发送方在头部和正文内包含一些附加信息;附件被编码成可打印字符,并在每部分前加上了分割行;接收方使用这些附加信息对信息进行解码。4.17域名系统(DNS)域名系统(DomainNameSystem,DNS)的服务是将人们可读的符号名称翻译成对等的IP地址。域名的数据库不是保存在单个计算机上,有关域名的信息分布在因特网上的许多服务器上。当一个应用程序需要翻译域名时,它就成为域名系统的一个客户。客户向域名服务器发送请求,服务器找到相应的地址并发送一个应答信息。如果它不能回答这个请求,这个域名服务器就暂时成为另一个域名服务器的客户,直到找到一个能回答这个请求的服务器为止。4.17域名系统(DNS)(2)语法上,每台计算机的域名由一系列用点分开的字母数字段组成。例如,普度大学计算机科学系的某台计算机具有域名:。域名是有层次的,域名中最重要的部分位于右边。域名中最左边的段(实例中的mordred和www)是单台计算机的名字。域名中的其他段标识了拥有该域名的组。例如,purdue给出了大学的名字。域名系统既不规定每个域名中段的个数,也不规定这些段代表什么。每个组织能够选择该组织内计算机域名中段的数目以及这些段所代表的意义。4.17域名系统(DNS)(3)域名系统规定了最重要域的值,称作DNS的顶级域名(top-levelDomain,TLD)。互联网的顶级域名由互联网名称与数字地址分配机构(TheInternetCorporationforAssignedNamesandNumbers,ICANN)控制。它负责互联网协议(IP)地址的空间分配、协议标识符的指派、通用顶级域名(gTLD)以及国家和地区顶级域名(ccTLD)系统的管理、以及根服务器系统的管理。4.17域名系统(DNS)(4)4.17域名系统(DNS)(5)当一个组织申请域名时,它必须申请一个顶层域下的一个域名。大多数公司选择登记在com域下。例如,一个名为Foobar的公司可能请求在顶层域com下被指派域名为foobar。如果管理域名的因特网机构同意这个请求,它将给Foobar公司指派域名:。一旦一个组织被指派到一个域,这个后缀将为该组织保留——其他组织将不会被指派到相同的后缀。例如,一旦被指派,另一个名为Foobar的组织可以申请或,但不能申请。4.17域名系统(DNS)(6)一旦一个组织拥有一个域,它就可以决定是否引入进一步的层次结构。一个小公司可以不选择进一步的层次化,然而大型组织可以选择多层结构。例如,如果Foobar公司很小,它可能决定所有域名具有下列形式:。如果Foobar大到分布在好几个地点,域层次的单层结构就无法用来表示不同的地点,结果域中的域名有如下形式:最后,如果Foobar在每个地点有许多部门,可用一层域名来区分这些部门,结果域名具有如下形式:C4.17域名系统(DNS)(7)此外,DNS允许组织使用地理注册。例如,国家研究倡导公司登记了域名:cnri.reston.va.us。由于该公司位于美国弗吉尼亚州(Virginia)的Reston镇。这里这个公司的计算机域名以.us代替了.com作为结尾。再如,。4.18由WWW开始的域名许多组织设定的域名反映了其计算机提供的服务。如,,就是提供文件传输的服务。同样,提供网页服务的计算机,一般命名为www。这只是一个传统,不是说,不叫www的计算机就不能提供网页服务。如,。4.19DNS的分层结构和服务模式域名命名系统的一个主要特点是自治——系统设计中允许每个组织为该组织的计算机指派域名或改变这些域名而不必通知中心机构。为了这一目标,允许每个组织在其域名级别内运行DNS服务。例如,普度大学就有为域名为结尾的计算机提供DNS服务的服务器。我校也有为结尾的计算机提供DNS服务的服务器。4.19DNS的分层结构和服务模式(2)每个服务器包含连向其上级和下级域名服务器的信息。本质上,整个域名系统以一个大的分布式数据库的方式工作。而且,给定的服务员程序可以重复,即,可以同时存在多个DNS服务员程序的拷贝。这样,对于像根部服务员程序这样负载大的服务器很有帮助。当一个新的站点加入因特网时,该站点在本地DNS服务器中配置一个根服务器表。该站点的服务器使用给定时间里响应最快的根服务器。在实际应用中,地理上最近的服务器往往响应得最好。4.19DNS的分层结构和服务模式(3)DNS服务器是按层次安排的,该层次对应于域名的层次,每个服务器作为域名体系中某一部分的管辖者(authority)。一个根服务器(rootserver)占据着这个层次体系的顶部,它是顶层域(如.com)的管辖者。虽然根服务器并不包含所有可能的域名,但它知道如何找到其他服务器。例如虽然它不知道IBM公司的计算机名字,但它知道如何找到处理对的请求的DNS服务器。虽然DNS服务器的层次跟随着域名的层次,这两者并不完全相同。一个公司可以选择将它所有的域名都放在一个服务器上,也可以选择运行几个服务器。4.19DNS的分层结构和服务模式(4)4.19DNS的分层结构和服务模式(5)大多数具有因特网连接的组织都有一个域名服务器,而且,该组织可以自由选择其服务员程序的细节。例如,只有几台计算机的组织,可以使用ISP的DNS服务。而大型组织可以选择用一台服务器记录所有的计算机名称,也可以将这些计算机的名称分到几台DNS服务器里。每当应用程序需要将域名翻译为IP地址时,应用程序成为域名系统的一个客户。这个客户将待翻译的域名放在一个DNS请求信息中,并将这个请求发给指定的DNS服务器。服务器从请求中取出域名,将它翻译为对等的IP地址,然后在一个回答信息中将结果地址返回给应用。4.20域名解析将域名翻译为对等的IP地址的过程称为域名解析(nameresolution),域名称为被解析(resolved)为地址。完成这项翻译工作的软件称为域名解析器(nameresolver,或简称解析器)软件。4.20域名解析(2)每个解析器被配置在一个或多个局域域名服务器上(使解析器在一个服务器无效时能有候选服务器)。为了成为DNS服务器的一个客户,解析器将指定的域名放在一个DNS请求(DNSrequest)信息中,并向局域服务器发送这个信息。解析器接着等待服务器发回一个包含答案的DNS回答(DNSreply)信息。虽然客户能够选择使用UDP(信息范例)或TCP(流范例)与DNS服务器通信,但解析器大多数被配置为使用UDP,因为它对单个请求的开销较小。4.20域名解析(3)当一个服务器发现收到的请求中指定的域名属于自己的管辖范围时,它就直接回答这个请求。就是说,这个服务器在本地数据库中查找该域名,并向解析器发送一个回答。然而,当服务器发现到达请求中的域名不在自己的管辖范围时,另一个客户/服务器交互发生了。这个服务器临时成为另一个域名服务器的客户。在第二个服务器返回一个回答后,原先的服务器向发送请求的解析器发送一个该回答的副本。4.20域名解析(4)一个DNS服务器怎样知道其他DNS服务器中哪个是给定域名的管辖者呢?它并不知道。然而,每个服务器都知道根服务器的地址。这样就足够了,因为域名可以从那里得到解析。例如,假设NEDU的服务器组织,一个远程地点的解析器(如USU)发送一个请求给它的局域服务器L,域名为:Www.Nedu.Edu.cn服务器L不是这个域名的管辖者,所以它作为客户转向另一个服务器。第一步中,L向根服务器发送一个请求。根服务器不是这个域名的管辖者,但来自根服务器的应答给出了cn服务器的位置。当收到根服务器的应答后,服务器L与cn的服务器联系。虽然它不是edu域名的管辖者,但它知道edu服务器的位置。于是,它返回一个应答通知L.然后,L与edu.cn域名的管辖者联系,然而,edu.cn不是nedu域名的管辖者,但它知道nedu服务器的位置。于是,它返回一个应答通知L.最后,L与nedu.edu.cn域名的管辖者联系,那个服务器向L发出一个权威性的回答(authoritativeanswer),要么是这个域名www的IP地址,要么指出这个域名不存在。4.20域名解析(5)在服务器层次间逐步寻找管辖一个域名的服务器的过程称为反复查询解析(iterativequeryresolution),仅在服务器要解析域名时使用。应用程序所调用的解析器往往请求递归查询解析(recursivequeryresolution)。也就是,它们请求完全解析——递归请求的回答要么是要查看的IP地址,要么是断言没有这个域名。概括如下:主机上的解析器软件往往请求递归解析,将一个域名解析为一个对应的地址。当一个服务器成为另一个服务器的客户时,它可以请求反复解析,在服务器层次间每次一层地逐步查找。4.21DNS服务的缓冲引用的局部性原理,形成了DNS服务的缓冲的基础。DNS的缓冲有两种形式:空间上:用户趋向于查找就近的计算机域名的频率,要高于查找远处计算机域名;时间上:用户趋向于反复查找相同的域名。4.21DNS服务的缓冲(2)已知:从DNS域名解析器发出的域名解析请求信息要求提供:含有IP地址的响应信息方法:从请求中提取域名N如果(DNS服务器是N的管辖着){形成并发送响应给请求者;否则如果(域名N的IP地址在缓存中){形成并发送响应给请求者;否则{*需要查表回答*如果(域名N的IP地址在管辖着服务器内){形成并发送响应给请求者;}否则{向跟服务器发请求;}接受响应,并存入缓存中;形成并发送响应给请求者;}4.21DNS服务的缓冲(3)所以,每个DNS服务器都保留一个域名缓存。每当查找一个新的域名时,服务器将该绑定的一个副本置于它的缓存中。在与另一个服务器通信以申请绑定前,服务器都查看它的缓存。如果缓存中已经包含了答案,服务器就使用这个答案来生成回答。4.21DNS服务的缓冲(4)缓冲有个基本的问题,就是缓冲保留的时间。如果缓冲项保留时间过长,就会陈旧。所以,管辖服务器为每个缓冲项都设定了一个缓冲超时。在局域服务器回答的响应中,资源记录(ResourceRecord)中含有超时这一项。所以,DNS缓冲中,超时的缓冲项将被删除。4.22DNS项的类型DNS数据库中的每一项包括三个元素:域名、记录类型、值。记录类型说明值怎样被翻译。更重要的是,一个发给DNS的查询必须指明域名和类型,服务器仅仅返回一个符合查询类型的绑定。4.22DNS项的类型(2)域名与对应的IP地址间的绑定所使用的类型。DNS将这样的绑定分类为A类(A表示地址类型)。A类绑定是很普通的,当用户提供一个计算机域名给一个应用程序,比如FTP、ping或WWW浏览器,应用就请求一个符合A类的绑定。另一种较为常用的类型是MX(MaileXchanger的缩写,意为邮件交换),它用于将电子邮件中找到的计算机地址映射成IP地址。SMTP在向DNS服务器发送请求时,它指明是MX类型。服务器返回的回答符合请求的类型。这样,一个电子邮件系统将收到符合MX类型的回答。4.22DNS项的类型(3)概括如下:域名系统对每一项存储一个类型。当解析器查找一个域名时,它必须指明所希望的类型,一个DNS服务器只返回那些符合类型的项。所以,和@是两台不同的服务器,它们的域名分别是A型和MX型,解析时,也将返回不同的IP地址。4.23别名和CNAME类型的源记录另一种类型CNAME。CNAME项与文件系统中的符号链很相似——它对其他DNS项提供一个别名。设Foobar公司有两台计算机,分别

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论