您的位置:首页 > 业务经营 > 计算机网络 计算机网络

网络体系结构

来源:    日期:2011-02-26 12:58:47    访问量:536
要想让两台计算机进行通信,必须使它们采用相同的信息交换规则。我们把在计算机网络中用于规定信息的格式以及如何发送和接收信息的一套规则称为网络协议(network protocol)或通信协议(communication protocol)。
  为了减少网络协议设计的复杂性,网络设计者并不是设计一个单一、巨大的协议来为所有形式的通信规定完整的细节,而是采用把通信问题划分为许多个小问题,然后为每个小问题设计一个单独的协议的方法。这样做使得每个协议的设计、分析、编码和测试都比较容易。分层模型(layering model)是一种用于开发网络协议的设计方法。本质上,分层模型描述了把通信问题分为几个小问题(称为层次)的方法,每个小问题对应于一层。

1 协议分层

  
  

  

为了减少网络设计的复杂性,绝大多数网络采用分层设计方法。所谓分层设计方法,就是按照信息的流动过程将网络的整体功能分解为一个个的功能层,不同机器上的同等功能层之间采用相同的协议,同一机器上的相邻功能层之间通过接口进行信息传递。为了便于理解接口和协议的概念,我们首先以邮政通信系统为例进行说明。人们平常写信时,都有个约定,这就是信件的格式和内容。首先,我们写信时必须采用双方都懂的语言文字和文体,开头是对方称谓,最后是落款等。这样,对方收到信后,才可以看懂信中的内容,知道是谁写的,什么时候写的等。当然还可以有其他的一些特殊约定,如书信的编号、间谍的密写等。信写好之后,必须将信封装并交由邮局寄发,这样寄信人和邮局之间也要有约定,这就是规定信封写法并贴邮票。在中国寄信必须先写收信人地址、姓名,然后才写寄信人的地址和姓名。邮局收到信后,首先进行信件的分拣和分类,然后交付有关运输部门进行运输,如航空信交民航,平信交铁路或公路运输部门等。这时,邮局和运输部门也有约定,如到站地点、时间、包裹形式等等。信件运送到目的地后进行相反的过程,最终将信件送到收信人手中,收信人依照约定的格式才能读懂信件。如图所示,在整个过程中,主要涉及到了三个子系统、即用户子系统,邮政子系统和运输子系统。各种约定都是为了达到将信件从一个源点送到某一个目的点这个目标而设计的,这就是说,它们是因信息的流动而产生的。可以将这些约定分为同等机构间的约定,如用户之间的约定、邮政局之间的约定和运输部门之间的约定,以及不同机构间的约定,如用户与邮政局之间的约定、邮政局与运输部门之间的约定。虽然两个用户、两个邮政局、两个运输部门分处甲、乙两地,但它们都分别对应同等机构,同属一个子系统;而同处一地的不同机构则不在一个子系统内,而且它们之间的关系是服务与被服务的关系。很显然,这两种约定是不同的,前者为部门内部的约定,而后者是不同部门之间的约定。
  在计算机网络环境中,两台计算机中两个进程之间进行通信的过程与邮政通信的过程十分相似。用户进程对应于用户,计算机中进行通信的进程(也可以是专门的通信处理机〕对应于邮局,通信设施对应于运输部门。为了减少计算机网络设计的复杂性,人们往往按功能将计算机网络划分为多个不同的功能层。网络中同等层之间的通信规则就是该层使用的协议,如有关第N层的通信规则的集合,就是第N层的协议。而同一计算机的不同功能层之间的通信规则称为接口( i n t e r f a c e),在第N层和第(N+ 1)层之间的接口称为N /(N+ 1)层接口。总的来说,协议是不同机器同等层之间的通信约定,而接口是同一机器相邻层之间的通信约定。不同的网络,分层数量、各层的名称和功能以及协议都各不相同。然而,在所有的网络中,每一层的目的都是向它的上一层提供一定的服务。协议层次化不同于程序设计中模块化的概念。在程序设计中,各模块可以相互独立,任意拼装或者并行,而层次则一定有上下之分,它是依数据流的流动而产生的。组成不同计算机同等层的实体称为对等进程( peer process)。对等进程不一定非是相同的程序,但其功能必须完全一致,且采用相同的协议。分层设计方法将整个网络通信功能划分为垂直的层次集合后,在通信过程中下层将向上层隐蔽下层的实现细节。但层次的划分应首先确定层次的集合及每层应完成的任务。划分时应按逻辑组合功能,并具有足够的层次,以使每层小到易于处理。同时层次也不能太多,以免产生难以负担的处理开销。计算机网络体系结构是网络中分层模型以及各层功能的精确定义。对网络体系结构的描述必须包括足够的信息,使实现者可以为每一功能层进行硬件设计或编写程序,并使之符合相关协议。但我们要注意的是,网络协议实现的细节不属于网络体系结构的内容,因为它们隐含在机器内部,对外部说来是不可见的。现在我们来考查一个具体的例子:在图1 - 11所示的5层网络中如何向其最上层提供通信。在第5层运行的某应用进程产生了消息M,并把它交给第4层进行发送。第4层在消息M前加上一个信息头(h e a d e r),信息头主要包括控制信息(如序号)以便目标机器上的第4层在低层不能保持消息顺序时,把乱序的消息按原序装配好。在有些层中,信息头还包括长度、时间和其他控制字段。在很多网络中,第4层对接收的消息长度没有限制,但在第3层通常存在一个限度。因此,第3层必须将接收的入境消息分成较小的单元如报文分组( p a c k e t),并在每个报文分组前加上一个报头。在本实例中,消息M被分成两部分:M 1和M 2。第3层确定使用哪一条输出线路,并将报文传给第2层。第2层不仅给每段消息加上头部信息,而且还要加上尾部信息,构成新的数据单元,通常称为帧( f r a m e),然后将其传给第1层进行物理传输。在接收方,报文每向上递交一层,该层的报头就被剥掉,决不可能出现带有N层以下报头的报文交给接收方第N层实体的情况。要理解图1 - 11示意图,关键要理解虚拟通信与物理通信之间的关系,以及协议与接口之间的区别。比如,第4层的对等进程,在概念上认为它们的通信是水平方向地应用第四层协议。每一方都好像有一个叫做“发送到另一方去”的过程和一个叫做“从另一方接收”的过程,尽管实际上这些过程是跨过3 / 4层接口与下层通信而不是直接同另一方通信。抽象出对等进程这一概念,对网络设计是至关重要的。有了这种抽象技术,网络设计者就可以把设计完整的网络这种难以处理的大问题,划分成设计几个较小的且易于处理的问题,即分别设计各层。

2 服务类型

  服务(s e r v i c e)这个极普通的术语在计算机网络中无疑是一个极重要的概念。在网络体系结构中,服务就是网络中各层向其相邻上层提供的一组操作,是相邻两层之间的界面。由于网络分层结构中的单向依赖关系,使得网络中相邻层之间的界面也是单向性的:下层是服务提供者,上层是服务用户。而服务的表现形式是原语( p r i m i t i v e),比如库函数系统调用。为了更好地讨论网络服务,我们先解释几个术语。在网络中,每一层中至少有一个实体( e n t i t y)。实体既可是软件实体(比如一个进程),也可以是硬件实体(比如一块网卡)。在不同机器上同一层内的实体叫做对等实体(peerentity)。N层实体实现的服务为N+ 1层所利用,而N层则要利用N-1层所提供的服务。N层实体可能向N+1层提供几类服务,如快速而昂贵的通信或慢速而便宜的通信。N+1层实体是通过N层的服务访问点(Service Access Point,SAP)来使用N层所提供的服务。N层SAP就是N+ 1层可以访问N层服务的地方。每一个SAP都有一个唯一地址。为了使读者更清楚,我们可以把电话系统中的SAP看成标准电话插孔,而SAP地址是这些插孔的电话号码。要想和他人通话,必须知道他的SAP地址(电话号码)。在伯克利版本的U n i x系统中,SAP是“S o c k e t”,SAP地址是S o c k e t号。邻层间通过接口要交换信息。N+1层实体通过S A P把一个接口数据单元(Interface Data Unit,IDU)传递给N层实体,如图1 - 1 2所示。I D U由服务数据单元(Service Data Unit,SDU)和一些控制信息组成。为了传送S D U,N层实体可以将S D U分成几段,每一段加上一个报头后作为独立的协议数据单元(Protocol Data Unit,PDU)送出,如“分组”就是P D U。P D U报头被同层实体用来执行它们的同层协议,用于辨别哪些P D U包含数据,哪些包含控制信息,并提供序号和计数值等。在网络中,下层向上层提供的服务分为两大类:面向连接服务( connection-oriented service)和无连接服务(connectionless service)。面向连接服务是电话系统服务模式的抽象。每一次完整的数据传输都必须经过建立连接、数据传输和终止连接三个过程。在数据传输过程中,各数据包地址不需要携带目的地址,而是使用连接号。连接本质上类似于一个管道,发送者在管道的一端放入数据,接收者在另一端取出数据。其特点是接收到的数据与发送方发出的数据在内容和顺序上是一致的。无连接服务是邮政系统服务模式的抽象。其中每个报文带有完整的目的地址,每个报文在系统中独立传送。无连接服务不能保证报文到达的先后顺序,原因是不同的报文可能经不同的路径去往目的地,所以先发送的报文不一定先到。无连接服务一般也不对出错报文进行恢复和重传。换句话说,无连接服务不保证报文传输的可靠性。在计算机网络中,可靠性一般通过确认和重传(acknowledgement and retransmission)机制实现。大多数面向连接服务都支持确认重传机制,但确认和重传将带来额外的延迟。有些对可靠性要求不高的面向连接服务(如数字电话网)不支持重传;因为电话用户宁可听到带有杂音的通话,也不喜欢等待确认所造成的延迟。大多数无连接服务不支持确认重传机制,所以无连接传输服务往往可靠性不高。