1、第9章 应用层与Internet应用,南开大学 吴功宜,一.应用层的基本概念,应用层是OSI参考模型中的最高层; 应用层确定进程之间通信的性质,以满足用户的需要; 应用层不仅要提供应用进程所需要的信息交换和远程操作,而且还要作为应用进程的用户代理(user agent),来完成一些为进行信息交换所必需的功能; 应用层主要包括:文件传送访问和管理FTAM虚拟终端VT事务处理TP远程数据库访问RDA制造业报文规范MMS目录服务DS等协议,二. Internet实现技术,1.域名系统为什么有了IP地址还需要域名?域 名 - 用字符表示的网络主机名,是一种主机标识符; IP地址 - 数字型,难于记忆与
2、理解;域 名 - 字符型,直观,便于记忆与理解; IP地址 - 用于网络层;域 名 - 用于应用层; IP地址与域名应该是全网唯一的,它们之间具有对应关系;,域名系统(domain system),域名系统的发展历史 70年代,ARPANET的规模比较小,它只有几百台主机组成;SRI(the Stanford Research Institute)网络信息中心的hosts.txt文件包含了所有主机的信息,同时也包括了连接到每台主机的名字到IP地址的映射; hosts.txt文件由SRI网络信息中心负责进行维护; SRI网络信息中心每周更新数据一次到两次,每次更新后的数据由SRI网络信息中心的主
3、机向外发送;ARPANET管理人员也将它们的改动用E-mail发送给SRI网络信息中心,同时定期从SRI网络信息中心的主机获取最新的hosts.txt文件; 但是随着ARPANET的增长, 这种工作方式无法再维持下去;一方面,hosts.txt文件的大小随ARPANET的规模在增长;更新过程所带来的通信量增长更快;这就带来了通信量、名字冲突与一致性等一系列新的问题;,在hosts.txt文件中不能有两台计算机具有相同名字的主机名,但是SRI网络信息中心无法管理到主机的命名; ARPANET 的管理机构针对这个问题提出一个新系统的设计思想。新的系统应具备以下特征:*应允许本地数据具有全局可访问性
4、;*分散管理,以消除单台主机管理时的通信瓶颈,减轻通信拥塞;*本地管理员可以很容易地完成数据更新任务。显然,要达到以上要求就必须使用层次型结构的命名机制。 USC的信息科学研究所Paul Mockapetris完成了新系统结构的设计,并于1984年在RFC882、883中公布了该成果,定义了域名系统。这些 RFC 后来由RFC1034与RFC1035代替,形成了当前使用的域名系统;,域名系统的基本概念,层次型命名(hierarchy naming)机制*基于结构化的思想;*对应于层次型名字空间(hierarchy namespace)的管理结构的层次;*名字空间管理组织形成一种层次型树状结构,
5、各层管理机构与再后的主机节点都有相应的标识符;*主机的名字就是从树叶到树根路径上各节点标识符的有序序列;*层次型名字管理机制-域名系统;域名系统-抽象-规定名字语法与名字管理特权的分配规则;-具体-描述名字-地址映射的分布式计算机系统 的实现;,Internet层次型名字管理方法,最高一级的名字空间-“网点名”(site name),一个网点是整个Internet中的一部分,它是由若干个子网组成; 每个网点又可以分成若干个子网或“管理组”(administrative group),第二级名字空间划分为“组名”(group name); 组名之下的第三级才是主机的“本地名”;这样,“管理组”、
6、“点”就形成了“子域”与“域”的关系,“本地名组名网点名”便组成了一个完整的、通用的层次型主机名的结构。 例如,一个典型的主机名可以写为:,它表示的是中国科研教育网上的南开大学计算机系网络实验室的一台主机:主机名与它的IP地址一一对应,例子中的主机名所对应的IP地址为:162.105.1.193;因此,在Internet上访问一台主机即可以使用它的主机名,也可以使用它的IP地址;,实际域名命名规律,域名系统是采用分层管理的,其结构如一个倒立的树,层次型命名机制与Internet的结构是一一对应的; 美国的Internet的基本的组织类型代码有以下七种:.int 国际组织 .com 商业组织.e
7、du 教育组织 .gov 政府组织.mil 军事组织 .org 非商业组织.net 网络组织 1997年又增加了以下新的组织类型代码:.firm 商业公司 .store 商品销售企业.web 与WWW相关的实体 .arts 文化和娱乐实体.info 提供信息服务的实体 .nom 个体或个人 实际Internet主机域名的一般格式是:主机名.单位名.类型名.国家代码;,我国主机域名的命名方法,中国最高域名为“.cn” ; 第二级域名类型有:.edu 教育机构 .co 公司.go 政府机构 .or 非盈利组织.ac 大学、研究所内的学术机构.bj 北京地区 .tj 天津地区 第三部分一般表示主机所
8、在的域或单位, 如.nankai表示南开大学; 主机域名的第四部分表示主机所在的院、系、研究室等下一级单位,主机较多的单位,命名时可能会进一步细分;,例如主机域名: netlab .cs .nankai .edu .cn网络实验室 计算机系 南开大学 教育机构 中国表示的是中国南开大学计算机系网络实验室的主机。例如主机域名为:ftp .microsoft .com FTP服务器 微软公司 商业机构 国别省略(美国) 表示的是美国微软公司的FTP服务器美国的主机域名省略了国名。,域名空间逻辑结构图:域 子域,域名解析:,域名系统是用一个分布式主机信息数据库管理着整个Internet的主机名与IP
9、地址,因此这个分布式主机信息数据库也是分层结构的; 域名解析:名字服务器:- 一种服务器软件,运行在指定的机器上,完成名字-地址解析任务; 域名解析采用Client/Server方式工作,Client-请求名字解析服务- 名字解析器(name resolver); 对应于域名结构,互连网中的多个名字服务器也构成层次结构;,域名服务器逻辑结构:,名字服务器可以位于互连网的任意位置; 服务器树的逻辑结构与Internet的域名层次结构是完全一致的; 根服务器是中央服务器,任何部门获得一个子域的管理权,就需要建立一个相应的名字服务器;,域名解析方法:,域名解析采取自顶向下的算法,从根服务器到叶服务器
10、,在其中的某个节点上一定能找到所需要的名字-地址映射; 由于父子节点的上下管辖关系,名字解析过程直需要走一条从树中某个节点(比如根)开始到另一节点(比如某个叶节点)的一条自顶向下的单向路径,无须回追朔,更不用查询整个服务器树; 域名解析基本方法:递归解析(recursive resolution)反复解析(iterative resolution) 递归解析-要求名字服务器系统一次性完成全部名字-地址变换; 反复解析-每次请求一个名字服务器,不行再去请求第二个名字服务器; 比较:递归解析-主要任务由名字服务器完成;反复解析-主要任务由客户机解析器软件完成;,反向域名解析(inverse res
11、olution):,反向域名解析 - 根据IP地址解析相应的域名; 反向域名解析的困难:*同一个IP地址可能对应多个域名;*IP地址与域名服务器树型结构没有任何关系,要找到合适的映射,只有逐个搜索整个服务器组;这就是域名系统一产生就有反向域名解析问题,但未得到广泛应用的主要原因; 为了解决上述问题,域名系统设计了一种特殊的“指针询问”(pointer query)报文; 指针询问报文中欲解析的IP地址被表达为域名一样可显示串形式,并加上反向域名解析域名“in-addr.arpa”,如:IP地址为 aaa.bbb.ccc.ddd 指针询问报文中表示为 ddd.ccc.bbb.aaa.in-addr.arpa,域名解析效率问题:,域名解析的基本方法是沿名字服务器树自顶向下进行,但域名解析效率低,原因是:*大多数解析是在本地域内进行;*如果每次都从最高层域名服务器进行,根服务器负荷太重;*根服务器一旦出现故障,系统不能工作; 改进方法:*两步法 - 第一步:本地解析;如不能解决,则采取第二步:自顶向下解析;*名字缓存( name caching) - 在名字服务器开辟一个专用内存区,存放最近解析过的名字与相应的地址,以及一个描述解析该名字服务器位 置的记录;- 服务器一旦接受到解析请求时,可以采用两步法;,