1、第2章 计算机网络体系结构计算机网络技术及应用(第2版)2.1 网络体系结构n2.1.1 网络体系结构基本概念n计算机网络由多个互联的结点组成,结点之间要不断地交换数据和控制信息。要做到有条不紊地交换数据,每个结点都必须遵守一些事先约定好的规则。两台计算机通信时,对传送信息内容的理解,信息表示形式以及各种情况下的应答信号都必须遵循一个共同的约定规则,这些规则精确地规定了所交换数据的格式和时序。这些为网络数据交换而制定的规定、约束与标准被称为网络协议(Protocol)。一个网络协议主要由以下三个要素组成:n1)语法:用户数据与控制信息的结构和格式。n2)语义:需要发出何种控制信息以及完成的动作
2、和做出的响应。n3)时序:对事件实现顺序的详细说明。n我们将计算机网络层次结构模型和各层协议的集合定义为计算机网络体系结构(Network Architecture)。网络体系结构是对计算机网络应完成的功能的精确定义,而这些功能是用什么样的硬件和软件实现的,则是具体的实现问题。体系结构是抽象的,而实现是具体的,其具体实现是通过特定的硬件和软件来完成的。2.1.2 计算机网络层次体系结构n将多台位于不同地点的计算机设备通过各种通信信道和设备互连起来,使其能协同工作,以便于计算机的用户应用进程交换信息和共享资源,这是一个复杂的工程设计问题。将一个比较复杂的问题分解成若干个容易处理的子问题,尔后“分
3、而治之”逐个加以解决,这种结构化设计方法是工程设计中常用的手段。分层就是系统分解的最好方法之一。2.1.3 计算机网络层次模型分层可以遵守以下几个主要原则:n1)每层功能应是明确的并且相互独立。当某一层具体实现方法更新时,只要保持层间接口不变,就不会对邻层造成影响。n2)接口层清晰,跨越接口的信息量应尽可能少。n层数应当适中。若太少,则层间功能划分不明确,多种功能混杂在一层中,造成每一层的协议太复杂。若太多,则体系结构过于复杂,各层组装时的任务会困难得多。计算机网络中采用层次结构,可以有以下好处:n1)各层之间相互独立。n2)灵活性好。n3)各层都可以采取最合适的技术来实现,各层实现技术的改变
4、不影响其它层。n4)易于实现和维护。n5)有利于促进标准化。2.2 开放系统互连参考模型n2.2.1 开放系统互连基本参考模型n开放系统互连基本参考模型是由ISO制定的,这是一个标准化开放式的计算机网络层次结构模型,又称为ISOs OSI模型,如图2-3所示。该图中从下到上分别是物理层、数据链路层、网络层、运输层、会话层、表示层和应用层这七个层次。图2-3 ISO/OSI 层次模型n不同开放系统对等层之间的虚通信必须遵循相应层的协议,如有运输层协议(即图中T层协议)、会话层协议(即图中S层协议)等。在该模型中仅规定了各层的功能,而没有规定每层的具体协议,每层的协议由OSI基本标准集中的其他国际
5、标准给出。在同一开放系统中,相邻层次间的界面称为接口,在接口处由低层向高层提供服务。比如说,在会话层和表示层的接口处由会话层向表示层提供会话服务。具体每层应向高层提供怎样的服务也由OSI基本标准集中的其他国际标准给出。在相邻层提供服务过程中以及对等层虚通信过程中都涉及信息的交换。信息的基本单位在OSI中统称为数据单元(Data Unit)。2.1.2 层次模型中各层功能n1.物理层n物理层的作用是在物理媒体上传输原始的数据比特流。n常用的EIA-RS-232C就是一个物理层协议的例子。n归结为一句话,物理层是为在物理媒体上建立、维持和终止传输数据比特流的物理连接提供机械、电气、功能和规程的手段
6、。n物理层负责在网络上传输数据比特流。这与数据通信的物理或电气特性有关。2.数据链路层n数据链路层的一个主要功能就是通过校验、确认和反馈重发等手段,将原始的物理连接改造成无差错的数据链路。n另外,数据链路层还要解决流量控制的问题 n数据链路层还管理数据格式。数据通常被组合成帧加以传输。帧是按某种特定格式组织起来的字节集合。数据链路层用唯一的比特组合对将要发送的每一帧的开始和结束进行标识,对接收进来的每一帧进行判断,然后把无错的帧送往上一层,即网络层。n总之,数据链路层解决的是相邻节点(结点)之间的数据传输问题。3.网络层n网络层关心的是通信子网的运行控制,主要任务是如何把网络协议数据单元(通常
7、称为分组)从源传送到目标。这需要在通信子网中进行路由(routing)选择。路由选择算法可以是简单的、固定的,也可以是复杂的、动态适应性的。如果同时在通信子网中出现过多的分组,则会造成阻塞(congestion),因而要对其进行控制。当分组要跨越多个通信子网才能到达目标时,还要解决网际互连问题。nX.25分组协议和网际协议IP是网络层协议的例子。n网络层拥有管理路由策略来处理路由中的一系列问题。n网络层控制着通信子网(Communications Subnet),网络层是针对子网的最高层次,这一层也可能包含计费软件。总之,网络层解决的是源节点到目标节点的路由问题。4.运输层n运输层是第一个端对
8、端,即主机到主机的层次。n有运输层后,高层用户就可利用运输层的服务直接进行端到端的数据传输,从而不必知道通信子网的存在。通过运输层的屏蔽,高层用户看不到通信子网的更替和技术变化。n通常,在高层用户请求建立一条运输虚通信连接时,运输层就通过网络层在通信子网中建立一条独立的网络连接。若需要较高的吞吐量,运输层也可以建立多条网络连接来支持一条运输连接,这就是分流(splitting)(有些文献也称之为分用)。或者,为了节省费用,运输层也可以让多个运输通信合用一条网络连接,称为复用(multiplexing)。运输层还要处理端到端的差错控制和流量控制问题。概括地说,运输层为上层用户提供端对端的透明优化
9、数据传输服务。n另一种方法是把数据划分成多个小的分组(数据子集),再分别传送。在这种情况下,两点间不需要稳定的连接。每一分组通过网络被独立地传输。因此,当分组到达目的地时,必须重新进行组装,然后才能送往上层用户。如果各个分组经过不同的路由,那就无法保证分组会按发送顺序到达目的地(正如我们无法保证星期一发的信会比星期二发的信早到一样),甚至无法保证它们都会到达。所以,接收方不仅要对分组重新排序,还得验证所有的分组是否都已收到。5.会话层n会话层允许不同主机上各种进程之间进行会话。运输层是主机到主机的层次,而会话层是进程到进程之间的层次。n会话层组织并同步进程间的对话。n会话层也处理差错恢复。n用
10、户层次上的单一事务机制也是由会话层来实现的。6.表示层n表示层为上层用户提供共同需要的数据或信息语法表示变换。n表示层以用户可理解的格式为上层用户提供必要的数据。n表示层也提供数据的安全措施。7.应用层n应用层是开放系统互连环境的最高层。不同的应用层为特定类型的网络应用提供访问OSI环境的手段 n应用层直接与用户和应用程序打交道。n另外,应用层也定义了一些协议集,以支持通过全屏幕文字编辑器方式来模拟各种不同类型的终端。n总的来说,下面3层主要处理网络通信的细节问题,它们一起向上层用户提供服务。上面4层主要针对端对端的通信,它们定义用户间的通信协议,但不关心数据传输的低层实现细节 nOSI协议模
11、型的7个层次中,每一个层次都定义了各自的计算机网络通信协议,使上层与下层的实现细节隔离。它们一起将用户和数据通信的具体细节隔离开来。如果充分实现的话,它们将允许不兼容的设备互相通信。表2-1 OSI各层功能总结层层 次次功功 能能7.应用层提供电子邮件、文件传输等用户服务6.表示层转换数据格式,数据加密和解密5.会话层通信同步错误恢复和事务操作4.运输层网络决策实现分组和重新组装3.网络层路由选择计费信息管理2.数据链路层错误检测和校正,组帧1.物理层数据的物理传输2.3 TCP/IP参考模型n2.3.1 TCP/IP参考模型 nTCP/IP是美国政府资助的高级研究计划署(ARPA)在二十世纪
12、七十年代的一个研究成果,用来使全球的研究网络联在一起形成一个虚拟网络,这也就是国际互联网。原始的Internet通过将已有的网络如ARPAnet转换到TCP/IP上来而形成,而这个Internet最终成为如今的国际互联网的骨干网。1975年,TCP/IP(传输控制/网间互联)协议产生,1983年1月1日成为Internet的标准协议,现在该标准协议已融入UNIX、Linux、Windows等操作系统中。图2-4给出了TCP/IP参考模型及与OSI参考模型的层次对应关系。2.3.2 TCP/IP协议简介 nTCP/IP(传输控制协议/网间互联协议)是一种网络通信协议,它规范了网络上的所有通信设备
13、,尤其是一个主机与另一个主机之间的数据往来格式以及传送方式。TCP协议即传输控制协议,是一种面向连接的传输层协议。通过使用序列号和确认信息,TCP协议能够向发送方提供到达接收方的数据包的传送信息。IP协议位于Internet协议栈的第三层(互联层),除了可以提供网络路由之外,IP协议还具有错误控制以及网络分段等众多功能,是整个Internet协议栈的核心。nTCP/IP是Internet的基础协议,也是一种电脑数据打包和寻址的标准方法。在数据传送中,可以形象地理解为有两个信封,TCP和IP就像是信封,要传递的信息被划分成若干段,每一段塞入一个TCP信封,并在该信封面上记录有分段号的信息,再将T
14、CP信封塞入IP大信封,发送上网。在接受端,一个TCP软件包收集信封,抽出数据,按发送前的顺序还原,并加以校验,若发现差错,TCP将会要求重发。因此,TCP/IP在Internet中几乎可以无差错地传送数据。对于TCP/IP有许多技术值得讨论,但这里仅讲三个关键点:n(1)TCP/IP是一族用来把不同的物理网络联在一起构成网际网的协议。TCP/IP联接独立的网络形成一个虚拟的网,在网内用来确认各种独立的网络地址(IP地址)。n(2)TCP/IP使用多层体系结构,该结构清晰定义了每个协议的责任。TCP和UDP向网络应用程序提供了高层的数据传输服务,并都需要IP来传输数据包。IP有责任为数据包到达
15、目的地选择合适的路由。n(3)在Internet主机上,两个运行着的应用程序之间传送要通过主机的TCP/IP堆栈上下移动。在发送端TCP/IP模块加在数据上的信息将在接收端对应的TCP/IP模块上滤掉,并将最终恢复原始数据。2.4 OSI参考模型与TCP/IP参考模型的比较nOSI参考模型与TCP/IP参考模型的共同之处是它们都采用了层次结构的概念,在传输层中二者定义了相似的功能。但是二者在层次划分、使用的协议上是有很大区别的。造成OSI协议不能流行的原因之一是模型与协议自身的缺陷。n大多数人都认为OSI参考模型的层次数量与内容可能是最佳的选择,其实并不是这样的。n会话层在大多数应用中很少用到
16、,表示层几乎是空的。在数据链路层与网络层有很多的子层插入,每个子层都有不同的功能。OSI参考模型对“服务”与“协议”的定义结合起来,使得参考模型变得格外复杂,将它实现起来是困难的。n同时,寻址、流控与差错控制在每一层里都有重复出现,必然要降低系统效率。虚拟终端协议最初安排在表示层,现在安排在应用层。关于数据安全性、加密与网络管理等方面的问题也在参考模型的设计初期被忽略了。n有人批评参考模型的设计更多是被通信的思想所支配,很多选择不适合于计算机与软件的工作方式。很多“原语”在软件的很多高级语言实现起来是容易的,但严格按照层次模型编程的软件效率很低。TCP/IP参考模型与协议也有它自身的缺陷:n首先,它在服务、接口与协议的区别上就不清楚。一个好的软件工程应该将功能与实现方法区分开来,TCP/IP恰恰没有很好地做到这点,这就使得TCP/IP参考模型对于使用新技术的指导意义是不够的。TCP/IP参考模型不适合于其他非TCP/IP协议族。n其次,TCP/IP的主机网络本身并不是实际的一层,它定义了网络层与数据链路层的接口。物理层与数据链路层的划分是必要和合理的,一个好的参考模型应该将它们区分开来,而TCP/IP参考模型却没有做到这点。