计算机网络—— 应用层(45):域名系统DNS文件传送协议FTP
Posted 大彤小忆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络—— 应用层(45):域名系统DNS文件传送协议FTP相关的知识,希望对你有一定的参考价值。
计算机网络系列内容的学习目录 → \\rightarrow →谢希仁计算机网络学习系列内容汇总。
4. 域名系统DNS
域名系统(Domain Name System,DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
域名系统是Internet上解决网上机器命名的一种系统。就像拜访朋友要先知道别人家怎么走一样,Internet上当一台主机要访问另外一台主机时,必须首先获知其地址,TCP/IP中的IP地址是由四段以“.”分开的数字组成(此处以IPv4的地址为例,IPv6的地址同理),记起来总是不如名字那么方便,所以,就采用了域名系统来管理名字和IP的对应关系。
虽然因特网上的节点都可以用IP地址唯一标识,并且可以通过IP地址被访问,但即使是将32位的二进制IP地址写成4个0~255的十位数形式,也依然太长、太难记。因此,人们发明了域名(Domain Name),域名可将一个IP地址关联到一组有意义的字符上去。用户访问一个网站的时候,既可以输入该网站的IP地址,也可以输入其域名,对访问而言,两者是等价的。例如:微软公司的Web服务器的IP地址是207.46.230.229,其对应的域名是www.microsoft.com,不管用户在浏览器中输入的是207.46.230.229还是www.microsoft.com,都可以访问其Web网站。
一个公司的Web网站可看作是它在网上的门户,而域名就相当于其门牌地址,通常域名都使用该公司的名称或简称。
■ 域名系统DNS的作用
因为域名与IP地址相比,便于人们记忆,因此对于大多数网络应用,我们一般使用域名来访问目的主机,而不是直接使用IP地址来访问。
因特网是否可以只使用一台DNS服务器?
这种做法并不可取。因为因特网的规模很大,这样的域名服务器肯定会因为超负荷而无法正常工作,而且一旦域名服务器出现故障,整个因特网就会瘫痪。
早在1983年,因特网就开始采用层次结构的命名树作为主机的名字(即域名),并使用分布式的域名系统DNS。
DNS使大多数域名都在本地解析,仅少量解析需要在因特网上通信,因此系统效率很高。
由于DNS是分布式系统,即使单个计算机出了故障,也不会妨碍整个系统的正常运行。
■ 因特网采用层次树状结构的域名结构
■ 域名的结构由若干个分量组成,各分量之间用“点”隔开,分别代表不同级别的域名。
⋄
\\diamond
⋄ 每一级的域名都由英文字母和数字组成,不超过63个字符,不区分大小写字母。
⋄
\\diamond
⋄ 级别最低的域名写在最左边,而级别最高的顶级域名写在最右边。
⋄
\\diamond
⋄ 完整的域名不超过255个字符。
■ 域名系统既不规定一个域名需要包含多少个下级域名,也不规定每一级的域名代表什么意思。
■ 各级域名由其上一级的域名管理机构管理,而最高的顶级域名则由因特网名称与数字地址分配机构ICANN进行管理。
■ 顶级域名TLD (Top Level Domain)分为以下三类:
⋄
\\diamond
⋄ 国家顶级域名nTLD: 采用ISO 3166的规定。如cn表示中国,us表示美国,uk表示英国,等等。
⋄
\\diamond
⋄ 通用顶级域名gTLD: 最常见的通用顶级域名有七个,即com(公司企业)、net (网络服务机构)、org (非营利性组织)、int(国际组织)、edu(美国教育结构)、gov(美国政府部门) 、mil(美国军事部门)。
⋄
\\diamond
⋄ 反向域arpa: 用于反向域名解析,即IP地址反向解析为域名。
■ 在国家顶级域名下注册的二级域名均由该国家自行确定。例如,顶级域名为jp的日本,将其教育和企业机构的二级域名定为ac和co,而不用edu和com。
■ 我国则将二级域名划分为以下两类:
⋄
\\diamond
⋄ 类别域名: 共七个: ac(科研机构)、com (工、商、金融等企业)、edu(教育机构)、gov(政府部门)、net(提供网络服务的机构)、mil(军事机构)和org (非营利性组织)。
⋄
\\diamond
⋄ 行政区域名: 共34个,适用于我国的各省、自治区、直辖市。例如,bj为北京市、sh为上海市、js为江苏省,等等。
■ 需要注意的是,名称相同的域名其等级未必相同。例如,com是通用顶级域名,但我国顶级域名cn下也有一个名称为com的二级域名。
这种按等级管理的命名方法便于维护名字的唯一性,并且也容易设计出一种高效的域名查询机制。需要注意的是,域名只是个逻辑概念,并不代表计算机所在的物理地点。
■ 域名和IP地址的映射关系必须保存在域名服务器中,供所有其他应用查询。显然不能将所有信息都储存在一台域名服务器中。DNS使用分布在各地的域名服务器来实现域名到IP地址的转换。
■ 域名服务器可以划分为以下四种不同的类型:
⋄
\\diamond
⋄ 根域名服务器
根域名服务器是最高层次的域名服务器。每个根域名服务器都知道所有的顶级域名服务器的域名及其IP地址。因特网上共有13个不同IP地址的根域名服务器。尽管我们将这13个根域名服务器中的每一个都视为单个的服务器,但“每台服务器”实际上是由许多分布在世界各地的计算机构成的服务器群集。当本地域名服务器向根域名服务器发出查询请求时,路由器就把查询请求报文转发到离这个DNS客户最近的一个根域名服务器。这就加快了DNS的查询过程,同时也更合理地利用了因特网的资源。根域名服务器通常并不直接对域名进行解析,而是返回该域名所属顶级域名的顶级域名服务器的IP地址。
⋄
\\diamond
⋄ 顶级域名服务器
这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时就给出相应的回答(可能是最后的结果,也可能是下一级权限域名服务器的IP地址)。
⋄
\\diamond
⋄ 权限域名服务器
这些域名服务器负责管理某个区的域名。每一个主机的域名都必须在某个权限域名服务器处注册登记。因此权限域名服务器知道其管辖的域名与IP地址的映射关系。另外,权限域名服务器还知道其下级域名服务器的地址。
⋄
\\diamond
⋄ 本地域名服务器
本地域名服务器不属于上述的域名服务器的等级结构。当一个主机发出DNS请求报文时,这个报文就首先被送往该主机的本地域名服务器。本地域名服务器起着代理的作用,会将该报文转发到上述的域名服务器的等级结构中。 每一个因特网服务提供者ISP,一个大学,甚至一个大学里的学院,都可以拥有一个本地域名服务器,它有时也称为默认域名服务器。本地域名服务器离用户较近,一般不超过几个路由器的距离,也有可能就在同一个局域网中。本地域名服务器的IP地址需要直接配置在需要域名解析的主机中。
■ 域名解析的过程
包含以下两种查询方式:一种是递归查询,一种是迭代查询。
首先来看递归查询。假设图中的主机想知道域名y.abc.com的IP地址,主机首先向其本地域名服务器进行递归查询。本地域名服务器收到递归查询的委托后,也采用递归查询的方式向某个根域名服务器查询。根域名服务器收到递归查询的委托后,也采用递归查询的方式向某个顶级域名服务器查询。顶级域名服务器收到递归查询的委托后,也采用递归查询的方式向某个权限域名服务器查询。当查询到域名所对应的IP地址后,查询结果会在之前受委托的各域名服务器之间传递,最终传回给用户主机。
再来看迭代查询。主机首先向其本地域名服务器进行递归查询,本地域名服务器采用迭代查询。它先向某个根域名服务器查询,根域名服务器告诉本地域名服务器下一次应查询的顶级域名服务器的IP地址。本地域名服务器向顶级域名服务器进行迭代查询,顶级域名服务器告诉本地域名服务器下一次应查询的权限域名服务器的IP地址。本地域名服务器向权限域名服务器进行迭代查询,权限域名服务器告诉本地域名服务器所查询的域名的IP地址。本地域名服务器最后把查询结果告诉主机。
由于递归查询对于被查询的域名服务器负担太大,通常采用以下模式:从请求主机到本地域名服务器的查询采用递归查询方式,而其余的查询是迭代查询方式。
■ 为了提高DNS的查询效率并减轻根域名服务器的负担和减少因特网上的DNS查询报文数量,在域名服务器中广泛地使用了高速缓存。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。
■ 由于域名到IP地址的映射关系并不是永久不变,为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器并删除超过合理时间的项(例如,每个项目只存放两天)。
■ 不但在本地域名服务器中需要高速缓存,在用户主机中也很需要。许多用户主机在启动时从本地域名服务器下载域名和IP地址的全部数据库,维护存放自己最近使用的域名的高速缓存,并且只在从缓存中找不到域名时才向域名服务器查询。同理,主机也需要保持高速缓存中内容的正确性。
例: 如果本地域名服务器无缓存,当采用递归方法解析另一网络某主机域名时,用户主机、本地域名服务器发送的域名请求消息数分别为( A )
A. 一条、一条
B. 一条、多条
C. 多条、一条
D. 多条、多条
分析:
■ DNS报文使用运输层的UDP协议进行封装,运输层端口53。
4.1 课后练习
1. 在DNS的递归查询中,最终给DNS客户返回所查询到的IP地址的DNS服务器是( A )
A. 最开始连接的服务器
B. 最后连接的服务器
C. 目的地址所在服务器
D. 不确定
分析: 在DNS的递归查询中,最终给DNS客户返回所查询到的IP地址的DNS服务器是最开始连接的服务器,即本地域名服务器。
2. 若本地域名服务器无缓存,用户主机采用递归查询向本地域名服务器查询另一网络某主机域名所对应的IP地址,而本地域名服务器采用迭代查询向其他域名服务器进行查询,则用户主机和本地域名服务器发送的域名请求条数分别为( A )
A. 1条,1条
B. 1条,多条
C. 多条,1条
D. 多条,多条
分析:
5. 文件传送协议FTP
文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。
FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。然而, 用户并不真正登录到自己想要存取的计算机上面而成为完全用户, 可用FTP程序访问远程资源, 实现用户往返传输文件、目录管理以及访问电子邮件等等, 即使双方计算机可能配有不同的操作系统和文件存储方式。
FTP 采用 Internet 标准文件传输协议 FTP 的用户界面, 向用户提供了一组用来管理计算机之间文件传输的应用程序。
FTP 是基于客户/服务器(C/S)模型而设计的,在客户端与 FTP 服务器之间建立两个连接。
■ 将某台计算机中的文件通过网络传送到可能相距很远的另一台计算机中,是一项基本的网络应用,即文件传送。
■ 文件传送协议FTP(File Transfer Protocol)是因特网上使用得最广泛的文件传送协议。
⋄
\\diamond
⋄ FTP提供交互式的访问,允许客户指明文件的类型与格式(如指明是否使用ASCII码),并允许文件具有存取权限(如访问文件的用户必须经过授权,并输入有效的口令)。
⋄
\\diamond
⋄ FTP屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。
■ FTP的常见用途:一个是在计算机之间传输文件,尤其是用于批量传输文件;另一个常见用途是让网站设计者将构成网站内容的大量文件批量上传到他们的Web服务器。
■ FTP的基本工作原理
如下图所示,FTP服务器监听熟知端口号21,FTP客户随机选择一个临时端口号与其建立TCP连接。
这条TCP连接用于FTP客户与服务器之间传送FTP的相关控制命令,也就是说这条TCP连接是FTP客户与服务器之间的命令通道。当有数据要传输时,FTP客户通过命令通道告知FTP服务器来与自己的另一个临时端口号建立TCP连接,即建立数据通道。
对于FTP客户随机选择的另一个端口号,FTP服务器使用自己的熟知端口号20与其建立TCP连接,这条TCP连接用于FTP客户与服务器之间传送文件,也就是说这条TCP连接是FTP客户与服务器之间的数据通道。
由于在建立数据通道时,FTP服务器主动连接FTP客户,因此称为主动模式。需要注意的是,控制连接在整个会话画期间一直保持打开,用于传送FTP相关的控制命令,而数据连接用于文件传输。在每次文件传输时才建立,传输结束就关闭。
再来看被动模式。对于FTP客户与服务器之间命令通道的建立,它与主动模式并没有什么不同。不同之处在于当有数据要传输时,FTP客户通过命令通道通知FTP服务器开启某个协商好的临时端口,被动等待来自FTP客户的TCP连接以建立数据通道。对于FTP服务器使用的与FTP客户协商好的临时端口号和FTP客户随机选择的另一个端口号,FTP客户发起与FTP服务器的TCP连接以建立数据通道。由于在建立数据通道时,FTP服务器被动等待FTP客户的连接,因此称为被动模式。
■ 在因特网发展的早期阶段,用FTP传送文件约占整个因特网的通信量的三分之一,而由电子邮件和域名系统所产生的通信量还要小于FTP所产生的通信量。只是到了1995年,万维网WWW的通信量才首次超过了FTP。
■ FTP客户和服务器之间要建立以下两个井行的TCP连接:
⋄
\\diamond
⋄ 控制连接,在整个会话期间一直保持打开,用于传送FTP相关控制命令。
⋄
\\diamond
⋄ 数据连接,用于文件传输,在每次文件传输时才建立,传输结束就关闭。
⋄
\\diamond
⋄ 默认情况下,FTP使用TCP 21端口进行控制连接,TCP 20端口进行数据连接。但是,是否使用TCP 20端口建立数据连接与传输模式有关,主动方式使用TCP20端口被动方式由服务器和客户端自行协商决定。
例1: FTP客户和服务器间传递FTP命令时,使用的连接是( A )
A. 建立在TCP之上的控制连接
B. 建立在TCP之上的数据连接
C. 建立在UDP之上的控制连接
D. 建立在UDP之上的数据连接
分析: FTP客户和服务器之间要建立以下两个并行的TCP连接:一个是控制连接,在整个会话期间一直保持打开,用于传送FTP相关控制命令。另一个是数据连接,用于文件传输,在每次文件传输时才建立,传输结束就关闭。
例2: 下列关于FTP协议的叙述中,错误的是( C )
A. 数据连接在每次数据传输完毕后就关闭
B. 控制连接在整个会话期间保持打开状态
C. 服务器与客户端的TCP20端口建立数据连接
D. 客户端与服务器的TCP21端口建立控制连接
分析: FTP客户和服务器之间要建立“控制连接”和“数据连接”这两个并行的TCP连接。控制连接在整个会话期间都保持打开状态,而数据连接在每次文件传输时才建立,传输结束就关闭。
默认情况下,FTP使用TCP21端口进行控制连接,TCP 20端口进行数据连接。
但是,是否使用TCP 20端口建立数据连接与传输模式有关,主动方式使用TCP 20端口,被动方式由服务器和客户端自行协商决定。
5.1 课后练习
1. 以下关于FTP的描述中,错误的是( C )
A. FTP使用控制连接、数据连接来完成文件的传输
B. 用于控制连接的TCP连接在服务器端使用的熟知端口号为21
C. 用于控制连接的TCP连接在客户端使用的端口号为20
D. 数据连接用于文件传输,在每次文件传输时才建立,传输结束就关闭
分析: 用于控制连接的TCP连接在服务器端使用的熟知端口号为21。
2. FTP客户发起对FTP服务器连接的第一阶段是建立( D )
A. 传输连接 B. 数据连接 C. 会话连接 D. 控制连接
分析: FTP客户发起对FTP服务器连接的第一阶段是建立控制连接。
以上是关于计算机网络—— 应用层(45):域名系统DNS文件传送协议FTP的主要内容,如果未能解决你的问题,请参考以下文章
王道考研 计算机网络20 应用层 客户端/服务器C/S模型 P2P模型 DHCP协议 域名解析系统DNS 文件传送协议FTP 万维网 超文本传输协议HTTP