第3章 网络体系结构与协议 数据通信技术是网络技术发展的基础。学习本章的内容将会对最基本的数据通信技术、广域网中数据传输原理与实现方法有一定的理解。
主要内容 3.1 网络体系结构 3.2 OSI参考模型 3.3 TCP/IP参考模型 3.4 Novell NetWare参考模型 3.5 局域网协议举例 3.6 总结与习题
3.1 基本概念 3.1.1 网络体系结构与网络协议 为了帮助同学们接受网络体系结构与通信协议的概念,不妨先分析一个实际社会生活中通信系统的例子。 一、例子: 认真考查一下实际的邮政系统的结构与运行过程,以及如何利用它完成信件的发送与接收,就可对体系结构与协议有一个直观的了解。
下图是目前实际运行的邮政系统结构,以及信件发送与接收过程的示意图。几乎每个人对利用现行的邮政系统发送、接收信件的过程都是很熟悉的。
如果你是一位在中国医科大学读书的大学生,而你的家在广州。当你想给广州家中的父母写封信时,那你第一步要写一封信;第二步要在信封上按国内信件的信封书写标准,在信封的左上方写收信人的地址,在信封的中部写上收信人的姓名,在信封的右下方写发信人的地址;第三步要将信件封在信封里,贴上邮票;第四步要将信件投入邮箱。这样,发信人的动作就完成了。发信人并不需要了解是谁来收集信件与如何传输。
在信件投入邮箱后,邮递员将按时从各个邮箱收集信件,检查邮票邮资是否正确,盖邮戳后转送地区邮政枢纽局。邮政枢纽局的工作人员再根据信件的目的地址与传输的路线,将送到相同地区的邮件打成一个邮包,并在邮包上贴上运输的线路、中转点的地址。如果从天津到广州不需要中转,那么所有当天从沈阳到广州的信件都将打在一个包里,贴上标签后由铁路或飞机运送到广州。
邮包送到广州地区邮政枢纽局后,邮政枢纽局的分拣员将拆包,并将信件按目的地址分拣传送到各区邮局,再由邮递员将信件送到收信人的邮箱。收信人接到信件后,确认是自己的信件后,再拆信、读信。这样,一个信件的发送与接收过程就完成了。
二、网络协议的概念 计算机网络是由多个互连的结点组成的,结点之间需要不断地交换数据与控制信息。要做到有条不紊地交换数据,每个结点都必须遵守一些事先约定好的规则。这些规则明确地规定了所交换数据的格式和时序。这些为网络数据交换而制定的规则、约定与标准被称为网络协议(protocol) 。
网络协议主要由以下三个要素组成: · 语法用户数据与控制信息的结构与格式。 · 语义需要发出何种控制信息,以及完成的动作与做出的响应。 · 时序对事件实现顺序的详细说明。
在邮政通信系统中,存在着很多的通信规约。例如,写信人在写信之前要确定是用中文还是英文,或是其他文字。如果对方只懂英文,那么如果用中文写信,对方一定得请人译成英文后才能阅读。不管选择中文还是英文,写信人在内容书写中一定要严格遵照中文或英文的写作规范(包括语义、语法等)。其实,语言本身就是一种协议。另一个协议的例子是信封的书写方法。
显然,国内中文信件与国际英文信件的书写格式是不相同的。这本身也是一种通信规约,即关于信封书写格式的一种协议。 对于普通的邮递员,也许他不懂英文。他可以不管信是寄到哪儿去的,只需要按普通信件的收集、传送方法,送到邮政枢纽局,由那里的分拣人员来阅读寄到国外的用英文书写信封的目的地址,然后确定传送的路由。
从广义的角度讲,人们之间的交往就是一种信息交互的过程,我们每做一件事都必须遵循一种事先规定好的规则与约定。那么,为了保证在计算机网络中的大量计算机之间有条不紊地交换数据,就必须制定一系列的通信协议。因此,协议是计算机网络中一个重要与基本的概念。
三、层次与接口的概念 无论是邮政通信系统还是计算机网络,它们都有以下几个重要的概念: 协议(protocol); 层次(layer); 接口(interface); 体系结构(architecture)。
层次是人们对复杂问题处理的基本方法。人们对于一些难以处理的复杂问题,通常是分解为若干个较容易处理的小一些的问题。对于邮政通信系统,它是一个涉及全国乃至世界各地区亿万人民之间信件传送的复杂问题。它解决的方法是:将总体要实现的很多功能分配在不同的层次中,每个层次要完成的服务及服务实现的过程都有明确规定;不同地区的系统分成相同的层次;不同系统的同等层具有相同的功能;高层使用低层提供的服务时,并不需要知道低层服务的具体实现方法。
邮政通信系统层次结构的方法,与计算机网络的层次化的体系结构有很多相似之处。层次结构体现出对复杂问题采取“分而治之”的模块化方法,它可以大大降低复杂问题处理的难度,这正是网络研究中采用层次结构的直接动力。因此,层次是计算机网络体系结构中又一个重要与基本的概念。
接口是同一结点内相邻层之间交换信息的连接点。在邮政系统中,邮箱就是发信人与邮递员之间规定的接口。同一个结点的相邻层之间存在着明确规定的接口,低层向高层通过接口提供服务。只要接口条件、低层功能不变,低层功能的具体实现方法与技术的变化就不会影响整个系统的工作。因此,接口同样是计算机网络实现技术中一个重要与基本的概念。
四、网络体系结构的提出 网络协议对计算机网络是不可缺少的,一个功能完备的计算机网络需要制定一整套复杂的协议集。对于结构复杂的网络协议来说,最好的组织方式是层次结构模型。计算机网络协议就是按照层次结构模型来组织的。我们将网络层次结构模型与各层协议的集合定义为计算机网络体系结构(network architecture)。
网络体系结构对计算机网络应该实现的功能进行了精确的定义,而这些功能是用什么样的硬件与软件去完成的,则是具体的实现(implementation)问题。体系结构是抽象的,而实现是具体的,它是指能够运行的一些硬件和软件。
五、计算机网络采用层次结构,具有以下优点: (1) 各层之间相互独立,高层不需要知道低层是如何实现的,而仅知道该层通过层间的接口所提供的服务。 (2) 当任何一层发生变化时,例如由于技术进步促进实现技术的变化,只要接口保持不变,则在这层以上或以下各层均不受影响。 (3) 各层都可以采用最合适的技术来实现,各层实现技术的改变不影响其他层。 (4) 整个系统被分解为若干个易于处理的部分,这种结构使得一个庞大而复杂系统的实现和维护变得容易控制
(5) 每层的功能与所提供的服务都已有精确的说明,因此这有利于促进标准化过程。 在1974年,IBM公司提出了世界上第一个网络体系结构,这就是系统网络体系结构(SNA, system network architecture)。此后,许多公司纷纷提出各自的网络体系结构。这些网络体系结构共同之处在于它们都采用了分层技术,但层次的划分、功能的分配与采用的技术术语均不相同。随着信息技术的发展,各种计算机系统连网和各种计算机网络的互连成为人们迫切需要解决的课题。OSI参考模型就是在这个背景下提出与研究的。
3.2 OSI参考模型 一、 OSI参考模型的提出 从历史上来看,在制定计算机网络标准方面,起着很大作用的两大国际组织是:国际电报与电话咨询委员会(CCITT,Consultative Committee on International Telegraph and Telephone)与国际标准化组织。CCITT与ISO的工作领域是不同的,CCITT 主要是从通信的角度考虑一些标准的制定,而ISO则关心信息的处理与网络体系结构。随着科学技术的发展,通信与信息处理之间的界限已变得比较模糊。于是,通信与信息处理就都成为CCITT与ISO共同关心的领域。
1974年,ISO发布了著名的ISO/IEC 7498标准,它定义了网络互连的7层框架,也就是开放系统互连(OSI,Open System Internetwork)参考模型。在OSI框架下,进一步详细规定了每一层的功能,以实现开放系统环境中的互连性(interconnection)、互操作性(interoperation)与应用的可移植性(portability)。CCITT的建议书X.400也定义了一些相似的内容。
二、 OSI参考模型的概念 在OSI中的“开放”是指只要遵循OSI标准,一个系统就可以与位于世界上任何地方、同样遵循同一标准的其他任何系统进行通信。在OSI 标准的制定过程中,采用的方法是将整个庞大而复杂的问题划分为若干个容易处理的小问题,这就是分层的体系结构方法。
在OSI标准中,采用的是三级抽象: 体系结构(architecture); 服务定义(service definition); 协议规格说明(protocol specification)。 OSI参考模型定义了开放系统的层次结构、层次之间的相互关系及各层所包括的可能的服务。它是作为一个框架来协调和组织各层协议的制定,也是对网络内部结构最精炼的概括与描述。
OSI的服务定义详细地说明了各层所提供的服务。某一层的服务就是该层及其以下各层的一种能力,它通过接口提供给更高一层。各层所提供的服务与这些服务是怎样实现的无关。同时,各种服务定义还定义了层与层之间的接口与各层使用的原语,但不涉及接口是怎样实现的。
OSI标准中的各种协议精确地定义了:应当发送什么样的控制信息,以及应当用什么样的过程来解释这个控制信息。协议的规程说明具有最严格的约束。 OSI参考模型并没有提供一个可以实现的方法。 OSI参考模型只是描述了一些概念,用来协调进程间通信标准的制定。在OSI的范围内,只有各种协议是可以被实现的,而各种产品只有和OSI的协议相一致时才能互连。也就是说,OSI参考模型并不是一个标准,而是一个在制定标准时所使用的概念性的框架。
四、 OSI参考模型的结构 OSI是分层体系结构的一个实例,每一层是一个模块,用于执行某种主要功能,并具有自己的一套通信指令格式(称为协议)。用于相同层的两个功能间通信的协议成为对等协议。根据分而治之的原则,ISO将整个通信功能划分为7个层次。
五、划分层次的主要原则是: (1) 网中各结点都具有相同的层次。 (2) 不同结点的同等层具有相同的功能。 (3) 同一结点内相邻层之间通过接口通信。 (4) 每一层可以使用下层提供的服务,并向其上层提供服务。 (5) 不同结点的同等层通过协议来实现对等层之间的通信。
OSI参考模型的结构如图所示。将信息从一层传送到下一层是通过命令方式实现的,这里的命令称为原语(primitive)。被传送的信息成为协议数据单元(PDU,protocol data unit)。在PDU进入下层之前,会在PDU中加入新的控制信息,这种控制信息称为协议控制信息(PCI,protocol control information)。接下来,会在PDU中加入发送给下层的指令,这些指令称为接口控制信息(ICI,interface control information)。PDU、PCI与ICI共同组成了接口数据单元(IDU,interface data unit)。下层接收到IDU后,就会从IDU中去掉ICI,
这时的数据包被称为服务数据单元(SDU,service data unit)。随着SDU一层层向下传送,每一层都要加入自己的信息。
六、 OSI参考模型各层的功能 (1) 物理层 在OSI参考模型,物理层(physical layer)是参考模型的最低层。该层是网络通信的数据传输介质,由连接不同结点的电缆与设备共同构成。物理层的主要功能是:利用传输介质为数据链路层提供物理连接,负责处理数据传输率并监控数据出错率,以便能够实现数据流的透明传输。
(2) 数据链路层 在OSI参考模型,数据链路层(data link layer)是参考模型的第2层。数据链路层的主要功能是:在物理层提供的服务基础上,数据链路层在通信的实体间建立数据链路连接,传输以“帧”为单位的数据包,并采用差错控制与流量控制方法,使有差错的物理线路变成无差错的数据链路。
(3) 网络层 在OSI参考模型,网络层(network layer)是参考模型的第3层。网络层的主要功能是:为数据在结点之间传输创建逻辑链路,通过路由选择算法为分组通过通信子网选择最适当的路径,以及实现拥塞控制、网络互连等功能。
(4) 传输层 在OSI参考模型,传输层(transport layer)是参考模型的第4层。传输层的主要功能是:向用户提供可靠的端到端(end-to-end)服务,处理数据包错误、数据包次序,以及其他一些关键传输问题。传输层向高层屏蔽了下层数据通信的细节,因此,它是计算机通信体系结构中关键的一层。
(5) 会话层 在OSI参考模型,会话层(session layer)是参考模型的第5层。会话层的主要功能是:负责维护两个结点之间的传输链接,以便确保点到点传输不中断,以及管理数据交换等功能。 (6) 表示层 在OSI参考模型,表示层(presentation layer)是参考模型的第6层。表示层的主要功能是:用于处理在两个通信系统中交换信息的表示方式,主要包括数据格式变换、数据加密与解密、数据压缩与恢复等功能。
(7) 应用层 在OSI参考模型,应用层(application layer)是参考模型的最高层。应用层的主要功能是:为应用软件提供了很多服务,例如文件服务器、数据库服务、电子邮件与其他网络软件服务。
七、 OSI环境中的数据传输过程 在研究OSI参考模型时,需要搞清楚它所描述的范围,这个范围称做OSI环境(OSIE,OSI environment)。图1.6描述了OSI环境。OSI参考模型描述的范围包括连网计算机系统中的应用层到物理层的7层与通信子网,即图中虚线框中的范围。连接结点的物理传输介质不包括在OSI环境内。
主机A和主机B在连入计算机网络之前,不需要有实现从应用层到物理层的7层功能的硬件与软件。如果它们希望连入计算机网络,就必须增加相应的硬件和软件。一般来说,物理层、数据链路层与网络层大部分可以由硬件方式来实现,而高层基本上是通过软件方式来实现的。
假设应用进程A要与应用进程B交换数据。进程A与进程B分别处于主机A与计算机 B的本地系统环境中,即处于OSI环境之外。进程A首先要通过本地的计算机系统来调用实现应用层功能的软件模块,应用层模块将主机A的通信请求传送到表示层;表示层再向会话层传送,直至物理层。物理层通过连接主机A与通信控制处理机(CCPA)的传输介质,将数据传送到CCPA。
CCPA的物理层接收到主机A传送的数据后,通过数据链路层检查是否存在传输错误;如果没有错误的话,CCPA通过它的网络层来确定下面应该把数据传送到哪一个CCP。如果通过路径选择算法,确定下一个结点是CCPB的话,那么CCPA就将数据传送到CCPB。CCPB采用同样的方法,将数据传送到主机B。主机B将接收到的数据,从物理层逐层向高层传送,直至主机B的应用层。应用层再将数据传送给主机B的进程B。
OSI环境中数据流
OSI环境中数据传输过程包括以下几步:当应用进程A的数据传送到应用层时,应用层为数据加上本层控制报头后,组织成应用层的数据服务单元,然后再传输到表示层。表示层接收到这个数据单元后,加上本层的控制报头,组成表示层的数据服务单元,再传送到会话层。依此类推,数据传送到传输层;传输层接收到这个数据单元后,加上本层的控制报头,就构成了传输层的数据服务单元,它被称为报文(message)。
传输层的报文传送到网络层时,由于网络层数据单元的长度有限制,传输层长报文将被分成多个较短的数据字段,加上网络层的控制报头,就构成了网络层的数据服务单元,它被称为分组(packet)。网络层的分组传送到数据链路层时,加上数据链路层的控制信息,就构成了数据链路层的数据服务单元,它被称为帧(frame)。数据链路层的帧传送到物理层后,物理层将以比特流的方式通过传输介质传输出去。当比特流到达目的结点主机B时,再从物理层依层上传,每层对各层的控制报头进行处理,将用户数据上交高层,最终将进程A的数据送给主机B的进程B。
尽管应用进程A的数据在OSI环境中经过复杂的处理过程,才能送到另一台计算机的应用进程B,但对于每台计算机的应用进程来说,OSI环境中数据流的复杂处理过程是透明的。应用进程A的数据好像是“直接”传送给应用进程B,这就是开放系统在网络通信过程中最本质的作用。
3.3 TCP/IP参考模型 一、 TCP/IP参考模型的发展 在讨论了OSI参考模型的基本内容后,我们要回到现实的网络技术发展状况中来。OSI参考模型研究的初衷是希望为网络体系结构与协议的发展提供一种国际标准。但是,我们不能不看到Internet在全世界的飞速发展,以及TCP/IP协议的广泛应用对网络技术发展的影响。
ARPANET是最早出现的计算机网络之一,现代计算机网络的很多概念与方法都是从它的基础上发展出来的。美国国防部高级研究计划局(ARPA)提出ARPANET 研究计划的要求是: 在战争中,如果它的主机、通信控制处理机与通信线路的某些部分遭到攻击而损坏,那么其他部分还能够正常工作;同时,还希望适应从文件传送到实时数据传输的各种应用需求。因此,它要求的是一种灵活的网络体系结构,能够实现异型网络的互连(interconnection)与互通(intercommunication)。
最初,ARPANET使用的是租用线路。当卫星通信系统与通信网发展起来之后,ARPANET 最初开发的网络协议使用在通信可靠性较差的通信子网中出现了不少问题,这就导致了新的网络协议TCP/IP 的出现。虽然TCP/IP协议都不是OSI标准,但它们是目前最流行的商业化的协议,并被公认为当前的工业标准或“事实上的标准”。在TCP/IP协议出现后,出现了TCP/IP参考模型。1974年Kahn定义了最早的TCP/IP参考模型,1985年Leiner等人进一步对它开展了研究,1988年Clark在参考模型出现后对其设计思想进行了改进。
Internet上的TCP/IP协议之所以能够迅速发展,不仅因为它是美国军方指定使用的协议,更重要的是它恰恰适应了世界范围内的数据通信的需要。TCP/IP协议具有以下几个特点: 开放的协议标准,可以免费使用,并且独立于特定的计算机硬件与操作系统。 独立于特定的网络硬件,可以运行在局域网、广域网,更适用于互联网中。 统一的网络地址分配方案,使得整个TCP/IP设备在网中都具有惟一的地址。 标准化的高层协议,可以提供多种可靠的用户服务。
二、 TCP/IP参考模型各层的功能 在如何用分层模型描述TCP/IP参考模型的问题上争论很多,但共同的观点是TCP/IP参考模型的层次数比OSI参考模型的7层要少。 TCP/IP参考模型可以分为以下四个层次: 应用层(application layer); 传输层(transport layer); 互联层(internet layer); 主机—网络层(host-to-network layer)。
其中,TCP/IP参考模型的应用层与OSI参考模型的应用层相对应;TCP/IP参考模型的传输层与OSI参考模型的传输层相对应;TCP/IP参考模型的互联层与OSI参考模型的网络层相对应;TCP/IP参考模型的主机、网络层与OSI参考模型的数据链路层和物理层相对应。在TCP/IP参考模型中,对OSI参考模型的表示层、会话层没有对应的协议。
(1) 主机-网络层 在TCP/IP参考模型中,主机\|网络层是参考模型的最低层,它负责通过网络发送和接收IP数据报。TCP/IP参考模型允许主机连入网络时使用多种现成的与流行的协议,例如局域网协议或其他一些协议。 在TCP/IP的主机-网络层中,它包括各种物理网协议,例如局域网的Ethernet、局域网的令牌环、分组交换网的X.25等。当这种物理网被用作传送IP数据包的通道时,就可以认为是这一层的内容。这体现了TCP/IP协议的兼容性与适应性,也为TCP/IP的成功奠定了基础。
(2) 互联层 在TCP/IP参考模型中,互联层是参考模型的第二层,它相当于OSI参考模型网络层的无连接网络服务。互联层负责将源主机的报文分组发送到目的主机,源主机与目的主机可以在一个网上,也可以在不同的网上。
互联层的主要功能包括以下几点: ① 接收到分组发送请求后,将分组装入IP数据报,填充报头并选择发送路径,然后将数据报发送到相应的网络输出线。 ② 接收到其他主机发送的数据报后,检查目的地址,如需要转发,则选择发送路径,转发出去;如目的地址为本结点IP地址,则除去报头,将分组交送传输层处理。 ③ 处理互连的路径、流控与拥塞问题。
(3) 传输层 在TCP/IP参考模型中,传输层是参考模型的第3层,它负责在应用进程之间的端-端通信。传输层的主要目的是:在互联网中源主机与目的主机的对等实体间建立用于会话的端-端连接。从这一点上讲,TCP/IP参考模型的传输层与OSI 参考模型的传输层功能是相似的。 在TCP/IP参考模型的传输层,定义了以下这两种协议:
① 传输控制协议(TCP,Transport Control Protocol) TCP协议是一种可靠的面向连接的协议,它允许将一台主机的字节流(byte stream)无差错地传送到目的主机。TCP协议将应用层的字节流分成多个字节段(byte segment),然后将一个个的字节段传送到互联层,发送到目的主机。当互联层将接收到的字节段传送给传输层时,传输层再将多个字节段还原成字节流传送到运用层。TCP协议同时要完成流量控制功能,协调收发双方的发送与接收速度,达到正确传输的目的。
② 用户数据报协议(UDP,User Datagram Protocol)
(4) 应用层 在TCP/IP参考模型中,应用层是参考模型的最高层。应用层包括了所有的高层协议,并且总是不断有新的协议加入。目前,应用层协议主要有以下几种: ① 网络终端协议(Telnet)实现互联网中远程登录功能。 ② 文件传输协议(FTP,File Transfer Protocol)实现互联网中交互式文件传输功能。
③ 简单邮件传输协议(SMTP,Simple Mail Transfer Protocol)实现互联网中电子邮件传送功能。 ④ 域名系统(DNS,Domain Name System)实现网络设备名字到IP地址映射的网络服务。 ⑤ 简单网络管理协议(SNMP,Simple Network Management Protocol)管理与监视网络设备。
⑥ 路由信息协议(RIP,Routing Information Protocol)在网络设备之间交换路由信息。 ⑦ 网络文件系统(NFS,Network File System)实现网络中不同主机间的文件共享。 ⑧ 超文本传输协议(HTTP,Hypertext Transfer Protocol)用于WWW服务。
应用层协议可以分为三类:一类依赖于面向连接的TCP协议;一类依赖于面向连接的UDP协议;而另一类则既可依赖于TCP协议,也可依赖于UDP协议。其中,依赖TCP协议的主要有网络终端协议、电子邮件协议、文件传送协议等;依赖UDP协议的主要有简单网络管理协议、简单文件传输协议等;既依赖TCP协议又依赖UDP协议的主要有域名系统等。
思考题: 计算机网络采用层次结构有什么好处? 说明服务和协议的关系 说明OSI参考模型中数据的传输方式 简单叙述OSI参考模型中各层的主要功能 简单叙述TCP/IP协议中,各层的主要功能