1. 域名系统DNS
1.1 域名系统概述
域名系统DNS是互联网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址。
为什么要使用域名系统DNS呢?
用户与互联网上某台主机通信时,必须要知道对方的IP地址。然而用户很难记住长达 32位的二进制主机地址。即使是点分十进制IP地址也并不太容易记忆。但在应用层为了便于用户记忆各种网络应用,连接在互联网上的主机不仅有IP地址,而且还有便于用户记忆的主机名字。这时候就需要域名系统DNS将互联网上的主机名字转换为IP地址。
域名到IP地址的解析是由分布在互联网上的许多域名服务器共同完成的。
域名到IP地址的解析过程是如何进行的呢?
当某一个应用进程需要把主机名解析为IP地址时,该应用进程就调用解析程序,并成为DNS的一个客户,把待解析的域名放在 DNS请求报文中,以UDP用户数据报方式发给本地域名服务器。本地域名服务器在查找域名后,把对应的IP地址放在回答报文中返回。应用进程获得目的主机的IP地址后即可进行通信。
若本地域名服务器不能回答该请求,则此域名服务器就暂时成为DNS中的另一个客户,并向其他域名服务器发出查询请求。这种过程直至找到能够回答该请求的域名服务器为止。
1.2 互联网的域名结构
互联网釆用了层次树状结构的命名方法。釆用这种命名方法,任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。
域名的命名结构是什么?
- 域可以划分为子域,而子域还可继续划分为子域的子域,这样就形成了顶级域、二级 域、三级域,等等。
- 每一个域名都由标号序列组成,而各标号之间用点隔开。例如,mail.cctv.com,它由三个标号组成,其中标号com是顶级域名,标号cctv是二级域名,标号mail是三级域名。
域名的命名规则是什么?
- 域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符。
- 域名标号不区分大小写字母。
- 标号中除连字符(-)外不能使用其他的标点符号。
- 级别最低的域名写在最 左边,而级别最高的顶级域名则写在最右边。
- 由多个标号组成的完整域名总共不超过255个字符。
- DNS既不规定一个域名需要包含多少个下级域名,也不规定每一级的域名代表什么 意思。各级域名由其上一级的域名管理机构管理,而最高的顶级域名则由ICANN进行管理。
介绍一些常用的域名
- 国家顶级域名:cn表示中国,us表示美国,uk表 示英国,等等。
- 通用顶级域名:com(公司企业),net(网络服务机构),org(非营利性组织),edu(美国专用的教育机构),gov (美国的政府部门),等等。
- 我国的二级域名:ac(科研机构),com(工、商、金融等企业),edu(中国的教育机构),gov(中国的政府机构),bj(北京市), js(江苏省),等等。
可以用一张图来说明域名之间的关系:
1.3 域名服务器
具体实现域名系统则是使用分布在各地的域名服务器。
DNS就釆用划分区的办法来解决域名服务器的数量太多,使域名系统的运行效率降低的问题。
区的特点
- 一个服务器所负责管辖的(或有权限的)范围叫做区。
- 各单位根据具体情况来划分自己管辖范围的区。
- 在一个区中的所有节点必须是能够连通的。
- 每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。
- 区可能等于或小于域,但一定不能大于域。
- 总之,DNS服务器的管辖范围不是以“域”为单位,而是以“区”为单位。
通过举例子说明区和域的关系
假定abc公司有下属部门x和y,部门x下面又分三个分部门u、v和w,而y下面还有其下属部门t。图(a)表示abc公司只设一个区abc.como这时,区abc.com和域abc.com指的是同一件事。但图(b)表示abc公司划分了两个区:abc.com和y.abc.com。这两个区都隶属于域abc.com,都各设置了相应的权限域名服务器。不难看出,区是“域”的子集。
域名服务器的类型
每一个域名服务器都能够进行部分域名到IP地址的解析。当某个DNS服务器不能进行域名到IP地址的转换时,它就设法找互联网上别的域名服务器进行解析。
互联网上的DNS域名服务器也是按照层次安排的。每一个域名服务器都只对域名体系中的一部分进行管辖。根据域名服务器所起的作用,可以把域名服务器划分为以下四种不同的类型:
- 根域名服务器:根域名服务器是最高层次的域名服务器,也是最 重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。
- 顶级域名服务器:这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时,就给出相应的回答。
- 权限域名服务器:这就是前面己经讲过的负责一个区的域名服务器。
- 本地域名服务器:它对域名系统非常重要。当一台主机发岀DNS查询请求时,这个查询请求报文就发送给本地域名服务器。由此可看出本地域名服务器的重要性。
简单讨论一下域名的解析过程
第一,主机向本地域名服务器的查询一般都是釆用递归查询。所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文(即替该主机继续查询),而不是让该主机自己进行下一步的查询。
第二,本地域名服务器向根域名服务器的查询通常是釆用迭代查询。迭代查询的特点是这样的:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时, 要么给出所要查询的IP地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务 器进行查询气然后让本地域名服务器进行后续的查询(而不是替本地域名服务器进行后续的查询)。
使用那种查询方式取决于最初的查询请求报文的设置是要求使用哪一种查询方式。
使用例子说明两种查询方式的不同
假定域名为rn.xyz.com的主机想知道另一台主机(域名为y.abc.com)的IP地址。
迭代查询的步骤为:
主机m.xyz.com先向其本地域名服务器dns.xyz.com进行递归查询。
本地域名服务器釆用迭代查询。它先向一个根域名服务器查询。
根域名服务器告诉本地域名服务器,下一次应查询的顶级域名服务器dns.com的IP 地址。
本地域名服务器向顶级域名服务器dns.com进行查询。
顶级域名服务器dns.com告诉本地域名服务器,下一次应査询的权限域名服务器 dns.abc.com 的 IP 地址。
本地域名服务器向权限域名服务器dns.abc.com进行查询。
权限域名服务器dns.abc.com告诉本地域名服务器,所查询的主机的IP地址。
本地域名服务器最后把查询结果告诉主机m.xyz.com。
递归查询的步骤为:在这种情况下,本地域名服务器只 需向根域名服务器查询一次,后面的几次查询都是在其他几个域名服务器之间进行的(步骤3至6)。只是在步骤7,本地域名服务器从根域名服务器得到了所需的IP地址。最后 在步骤8,本地域名服务器把查询结果告诉主机rn.xyz.com。
注意:在两种查询方式中,都使用的是UDP报文。
2. 文件传输协议
2.1 FTP的基本工作原理
网络环境中的一项基本应用就是将文件从一台计算机中复制到另一台可能相距很远的计算机中,但由于计算机存储数据的格式不同等等原因造成的兼容性不同,使这一问题难以解决。
文件传送协议FTP是互联网上使用得最广泛的文件传送协议。文件传送协议FTP只提供文件传送的一些基本的服务,它使用TCP可靠的运输服务。 FTP的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。
FTP使用客户服务器方式。一个FTP服务器进程可同时为多个客户进程提供服务。FTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程, 负责处理单个请求。
FTP的主进程工作步骤是什么呢?
- 打开熟知端口(端口号为21),使客户进程能够连接上。
- 等待客户进程发出连接请求。
- 启动从属进程处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。
- 回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发进行的。
FTP的工作情况是什么呢?
图中的椭圆圈表示在系统中运行的进程。图中的服务器 端有两个从属进程:控制进程和数据传送进程。
在进行文件传输时,FTP的客户和服务器之间要建立两个并行的TCP连接:“控制连 接”和“数据连接”。
控制连接在整个会话期间一直保持打开,FTP客户所发岀的传送请 求,通过控制连接发送给服务器端的控制进程,但控制连接并不用来传送文件。
实际用于传 输文件的是“数据连接”。服务器端的控制进程在接收到FTP客户发送来的文件传输请求后 就创建“数据传送进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程。数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。
2.2 简单文件传输协议TFTP
TCP/IP协议族中还有一个简单文件传送协议TFTP,它是 一个很小且易于实现的文件传送协议。
虽 然TFTP也使用客户服务器方式,但它使用UDP数据报,因此TFTP需要有自己的差错改正措施。
TFTP只支持文件传输而不支持交互。
TFTP没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。
TFTP的优点是什么
- TFTP可用于UDP环境。
- TFTP代码所占的内存较小。
TFTP的特点是什么
- 每次传送的数据报文中有512字节的数据,但最后一次可不足512字节。
- 数据报文按序编号,从1开始。
- 支持ASCII码或二进制传送。
- 可对文件进行读或写。
- 使用很简单的首部。
3. 远程终端协议TELNET
TELNET是一个简单的远程终端协议,它也是互联网的正式标准。
用户用TELNET就可在其所在地通过TCP连接注册(即登录)到远地的另一台主机上(使用主机名或IP地址)。
TELNET能将用户的击键传到远地主机,同时也能将远地主机的输出通过TCP连接返回到用户屏幕。
TELNET也使用客户服务器方式。在本地系统运行TELNET客户进程,而在远地主机则运行TELNET服务器进程。
TELNET并不复杂,以前应用得很多。现在由于计算机的功能越来越强,用户已较少使用TELNETT。
4. 万维网WWW
4.1 万维网概述
万维网WWW并非某种特殊的计算机网络。万维网是一个大规模的、 联机式的信息储藏所,英文简称为Web。
万维网用链接的方法能非常方便地从互联网上的一个站点访问另一个站点(也就是所谓的“链接到另一个站点”),从而主动地按需获取丰富的信息。
万维网的作用是什么呢?
每一个万维网站点都存放了许多文档。在这些文档中有一些地方的文字是用特殊方式显示的(例如用不同的颜色,或添加了下划线),而当我们将鼠标移动到这些地方时,鼠标的箭头就变成了一只手的形状。这就表明这些地方有一个链接(link)(这种链接有时也称为超链),如果我们在这些地方点击鼠标,就可以从这个文档链接到可能相隔很远的另一个文档。经过一定的时延(几秒钟、几分钟甚至更长,取决于所链接的文档的大小和网络 的拥塞情况),在我们的屏幕上就能将远方传送过来的文档显示出来。
正是由于万维网的出现,使互联网从仅由少数计算机专家使用变为普通百姓也能利用的信息资源。
如何标志分布在整个互联网上的万维网文档?万维网使用统一资源定位符URL来标志万维网上的各种文档,并使每一个文档在整个互联网的范围内具有唯一的标识符URL。
用什么样的协议来实现万维网上的各种链接?就要使万维网客户程序与万维网服务器程序之间的交互遵守严格的协议,这就是超文本传送协议HTTP。
怎样使不同作者创作的不同风格的万维网文档,都能在互联网上的各种主机上显示出来,同时使用户清楚地知道在什么地方存在着链接?万维网使用超文本标记语言HTML。
4.2 统一资源定位符URL
URL是什么
- 统一资源定位符URL是用来表示从互联网上得到的资源位置和访问这些资源的方法。
- URL给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。
- URL实际上就是在互联网上的资源的地址。
- 互联网上的所有资源,都有一个唯一确定的URL。
URL的格式是什么
URL的一般形式由以下四个部分组成:
- URL的第一部分是最左边的<协议>。就是指出使用什么协议来获取该万维网文档。现在最常用的协议就是http(超文本传送协议HTTP),其次是ftp(文件传送协议FTP)。
- <协议>后面的“ :// ”是固定格式。
- 它的右边是第二部分<主机>。它指出这个万维网文档是在哪一台主机上。这里的<主机>就是指该主机在互联网上的域名。
- 再后面是第三和第四部分<端口>和<路径>,有时可省略。
现在有些浏览器为了方便用户,在输入URL时,可以把最前面的“ http:// ”甚至把主机名最前面的“ www ”省略,然后浏览器替用户把省略的字符添上。例如,用户只要键入ctrip.com,浏览器就自动把未键入的字符补齐,变成http://www.ctrip.com。
使用http的URL
HTTP的URL的一般形式是:
HTTP的默认端口号是80,通常可省略。
URL里面的字母不分大小写,但为了便于阅读,有时故意使用一些大写字母。
4.3 超文本传输协议HTTP
HTTP协议的概念
- HTTP协议定义了浏览器怎样向万维网服务器请求万维网文档, 以及服务器怎样把文档传送给浏览器。
- HTTP是万维网上能够可靠地交换文件的重要基础。
- 浏览器和服务器之间的请求和响应的交互,必须按照规定的格式和遵循一定的规则。这些格式和规则就是超文本传送协议HTTP。
HTTP协议的工作流程
- 每个万维网网点都有一个服务器进程,它不断地监听TCP的端口80,以便发现是否有浏览器向它发出连接建立请求。
- 一旦监听到连接建立请求并建立了TCP连接之后,浏览器就向万维网服务器发出浏览某个页面的请求,服务器接着就返回所请求的页面作为响应。
- 最后,TCP连接就被释放了。
HTTP规定在HTTP客户与HTTP服务器之间的每次交互,都由一个ASCII码串构成的请求和一个类似的通用互联网扩充组成。
HTTP报文通常都使用TCP连接传送。
HTTP使用了面向连接的TCP作为运输层协议,保证了数据的可靠传输。HTTP不必考虑数据在传输过程中被丢弃后又怎样被重传。
HTTP协议本身是无连接的。这就是说,虽然HTTP使用了TCP连接,但通信的双方在交换HTTP报文之前不需要先建立 HTTP连接。
HTTP协议是无状态的。也就是说,同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时的相同(假定现在服务器还没有把该页面更新), 因为服务器并不记得曾经访问过的这个客户,也不记得为该客户曾经服务过多少次。
HTTP的报文格式
HTTP有两类报文:
- 请求报文一一从客户向服务器发送请求报文。
- 响应报文一一从服务器到客户的回答。
HTTP请求报文和响应报文都是由三个部分组成的:
- 开始行。用于区分是请求报文还是响应报文。
- 首部行。用来说明浏览器、服务器或报文主体的一些信息。
- 实体主体。在请求报文中一般都不用这个字段,而在响应报文中也可能没有这个字段。
代理服务器的作用
代理服务器是一种网络实体,它又称为万维网高速缓存。
代理服务器把最近的一些请求和响应暂存在本地磁盘中。当新请求到达时,若代理服务器发现这 个请求与暂时存放的请求相同,就返回暂存的响应,而不需要按URL的地址再次去互联网访问该资源。代理服务器可在客户端或服务器端工作,也可在中间系统上工作。
在使用代理服务器的情况下,由于有相当大一部分通信量局限在校园网的内部,因此,2Mbit/s专线链路(R1-R2)上的通信量大大减少,因而减小了访问互联网的时延。
4.4 万维网的文档
超文本标记语言HTML的概念
要使任何一台计算机都能显示出任何一个万维网服务器上的页面,就必须解决页面制作的标准化问题。
超文本标记语言HTML就是一种制作万维网页面的标准语言,它消除了不同计算机之间信息交流的障碍。
但请注意,HTML并不是应用层的协议,它只是万维网浏览器使用的一种语言。
由于HTML非常易于掌握且实施简单,因此它很快就成为万维网的重要基础。
HTML文档的概念
HTML定义了许多用于排版的命令,即“标签”。
例如,< I >表示后面开始用斜体字排版,而< /I >则表示斜体字排版到此结束。
HTML把各种标签嵌入到万维网的页面中,这样就构成了所谓的HTML文档。
HTML文档是一种可以用任何文本编辑器创建的ASCII码文件。
但应注意,仅当HTML文档是以.html 或.htm为后缀时,浏览器才对这样的HTML文档的各种标签进行解释。
下面是一个简单例子,用来说明HTML文档中标签的用法。在每一个语句后面的花括 号中的字是给读者看的注释,在实际的HTML文档中并没有这种注释。
万维网文档的发展历程
- 第一阶段:静态文档。就是上面所讨论的万维网文档,静态文档在文档创作完毕后就存放在万维网服务器中,在被用户浏览的过程中,内容不会改变。
- 第二阶段:动态文档。动态文档是指文档的内容是在浏览器访问万维网服务器时才由应用 程序动态创建的。由于对浏览器每次请求的响应都 是临时生成的,因此用户通过动态文档所看到的内容是不断变化的。
- 第三阶段:活动文档。这种技术是把所有的工作都转移给浏览器端。每当浏览器请求一个活动文档时,服务器就返回一段活动文档程序副本,使该程序副本在浏览器端运行。只要用户运行活动文档程序,活动文档的内容就可以连续地改变。
5. 电子邮件
5.1 电子邮件概述
电子邮件的两个最重要的标准就是:简单邮件传送协议SMTP和互联网文本报文格式。
一个电子邮件系统应具有三个主要组成构件,这就是用户代理、邮件服 务器,以及邮件发送协议(如SMTP)和邮件读取协议(如POP3)。
6. 动态主机配置协议DHCP
为了把协议软件做成通用的和便于移植的,协议软件的编写者不会把所有的细节都固定在源代码中。相反,他们把协议软件参数化。这就使得在很多台计算机上有可能使用同一 个经过编译的二进制代码。一台计算机和另一台计算机的许多区别,都可以通过一些不同的参数来体现。
为了省去给计算机配置IP地址的麻烦,釆用自动协议配置的方法。
互联网现在广泛使用的是动态主机配置协议DHCP,它提供了一种机制,称为即插即用连网。这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与。
7. 简单网络管理协议SNMP
7.1 网络管理的基本概念
网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视、 测试、配置、分析、评价和控制,这样就能以合理的价格满足网络的一些需求,如实时运行 性能、服务质量等。网络管理常简称为网管。
在被管网络中有很多的被管设备(包括设备中的软件)。被管设备可以是主机、路由 器、打印机、集线器、网桥或调制解调器等。
在每一个被管设备中可能有许多被管对象。被管对象可以是被管设备中的某个硬件,也可以是某些硬件或软件的配置参数的集合。
被管设备有时可称为网络元素或简称为网元。
在被管设备中也会有一些不能管的对象。
在每一个被管设备中都要运行一个程序以便和管理站中的管理程序进行通信。这些运行着的程序叫做网络管理代理程序。
简单网络管理协议SNMP中的管理程序和代理程序按客户服务器方式工作。
管理程序运行SNMP客户程序,而代理程序运行SNMP服务器程序。
7.2 管理信息结构SMI
管理信息结构SMI是SNMP的重要组成部分。
SMI的功能是什么
- 规定被管对象应怎样命名
- 规定用来存储被管对象的数据类型有哪些
- 规定在网络上传送的管理数据应如何编码
SMI被管对象如何命名
SMI规定,所有的被管对象都必须处在对象命名树上。
对象命名树的根没有名字,它的下面有三个顶级对象,都是世界上著名的标准制定单位。
SMI被管对象的数据类型
SMI使用基本的抽象语法记法1 (即ISO制定的ASN.1)来定义数据类型,但又增加 了一些新的定义。
SMI把数据类型分为两大类:简单类型和结构化类型。
简单类型是最基本的、直接使用ASN.1定义的类型。
SMI定义了两种结构化数据类型,即sequence和sequence of。
SMI编码方式
SMI使用ASN.1制定的基本编码规则BER进行数据的编码。
BER指明了每种数据的类型和值。在发送端用BER编码,可把用ASN.1所表述的报文转换成唯 一的比特序列。
在接收端用BER进行解码,就可得到该比特序列所表示的ASN.1报文。
ASN.1把所有的数据元素都 表示为T-L-V三个字段组成的序列:
- T字段定义数据的类型。
- L字段定义字段的长度。
- V字段定义数据的值。
7.3 管理信息库MIB
所谓“管理信息”就是指在互联网的网管框架中被管对象的集合。
被管对象必须维持可供管理程序读写的若干控制和状态信息。
这些被管对象构成了一个虚拟的信息存储器,所以才称为管理信息库MIB。
管理程序就使用MIB中这些信息的值对网络进行管理(如读取 或重新设置这些值)。
只有在MIB中的对象才是SNMP所能够管理的。