计算机网络体系结构是指计算机网络层次结构模型,它是各层的协议以及层次之间端口的集合,为网络硬件、软件、协议、存取控制和拓扑提供标准。
20世纪70年代网络开始发展,每个计算机厂商都有一套自己的网络体系结构,且互相不兼容,用户在购买时,需要考虑很多。这时国际标准组织提出制定一个通用标准,以方便不同网络互通。
开放系统互连(Open System Interconnect,OSI)参考模型是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供一种功能结构的框架,其目的是为各种计算机互连提供一个共同的基础和标准框架,并为保持相关标准的一致性和兼容性提供共同的参考。这里所说的开放系统,实质上指的是遵循OSI参考模型和相关协议,并能够实现互连的、具有各种应用目的的计算机系统。OSI七层模型如图1-33所示。
图1-33
数据在进行网络传输时,按照从上到下的顺序,将数据按照标准拆分,并加上对应层的标识,最后变成比特流在网络上传递,到达对端后,再将数据去掉每层的标志,重新组装一直传递到应用层。根据标志,按照协议,每一个对应层都能读懂对应层的要求及含义,而不会去管其他层的细节,每层只对上一层负责,保证数据的正确移交即可。
因为单纯的谈七层模型的规定和功能并没有实际意义,所以研究此模型时,经常会代入TCP/IP各层的协议实例等。
每层的具体功能是由该层的实体完成的。所谓实体,是指能在某一层中具有数据收发能力的活动单元(元素)。一般是该层的软件进程或者实现该层协议的硬件单元。在不同系统上同一层的实体互称为对等实体。
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/因特网互联协议)是由ARPA于1969年开发的,是Internet最基本的协议,Internet的基础,由网络层的IP和传输层的TCP组成。TCP/IP完全撇开了网络的物理特性,它把任何一个能传输数据分组的通信系统都看作网络。这种网络的对等性大大简化了网络互连技术的实现。TCP/IP是最常用的一种协议,也可以算是网络通信协议的一种通信标准协议,同时也是最复杂、最庞大的一种协议。TCP/IP具有极高的灵活性,支持任意规模的网络。
TCP/IP参考模型是在TCP/IP的基础上总结、归纳而来,可以说TCP/IP是OSI的应用实例。OSI虽然非常全面,但没有实际的协议和具体的操作手段,所以更像是一本指导意见。而TCP/IP参考模型不同,它是在TCP/IP成功后,不断调整、完善后进行的归纳和总结,具有现实参考意义。但TCP/IP参考模型不适用于非TCP/IP网络。
TCP/IP四层参考模型与OSI参考模型的关系如图1-34所示。从图中可以看出,TCP/IP参考模型是将OSI的物理层和数据链路层合并,变为网络接口层。将应用层、表示层、会话层合并成为应用层。通过将对应功能的合并,简化了OSI分层过细的问题,突出了TCP/IP的功能要点。
图1-34
上下层之间交换信息通过接口来实现。一般使上下层之间传输信息量尽可能少,这样使两层之间保持其功能的相对独立性。
OSI模型是在协议开发前设计的,具有通用性。TCP/IP是先有协议集,然后建立模型,不适用于非TCP/IP网络。OSI参考模型有七层结构,而TCP/IP有四层结构。所以为了学习完整体系,一般采用折中的方法:综合OSI模型与TCP/IP参考模型的优点,采用一种原理参考模型,也就是TCP/IP五层原理参考模型。TCP/IP五层原理参考模型与其他参考模型的对比如图1-35所示。在后面的讲解中都会以TCP/IP五层原理参考模型为例。下面介绍TCP/IP五层原理参考模型各层的作用。
图1-35
按照由下向上的顺序,物理层是第一层,处于最底层。物理层的任务就是为上层(数据链路层)提供物理连接,实现比特流的透明传输。物理层定义了通信设备与传输线路接口的电气特性、机械特性、应具备的功能等。如产生“1”“0”的电压大小、变化间隔、电缆如何与网卡连接、如何传输数据等。物理层负责在数据终端设备、数据通信和交换设备之间完成数据链路的建立、保持和拆除操作。这一层关注的问题大都是机械接口、电气接口、过程接口以及物理层以下的物理传输介质等。
服务是网络中各层向其相邻上层提供的一组功能集合,是相邻两层之间的界面。因为在网络的各个分层机构中的单方面依靠关系,使得在网络中相互邻近层之间的相关界面也是单向性的:下层作为服务的提供者,上层作为服务的接受者。上层实体必须通过下层的相关服务访问点(Service Access Point,SAP)才能够获得下层的服务。SAP作为上层与下层进行访问的服务场所,每一个SAP都会有自己的一个标识,并且每个层间接口可以有多个SAP。
数据链路层是OSI参考模型中的第二层,介于物理层和网络层之间。数据链路层在物理层提供服务的基础上向网络层提供服务,该层将源自网络层的数据按照一定格式分割成数据帧,然后将数据帧按顺序送出,等待由接收端送回的应答帧。该层主要功能如下。
(1)数据链路连接的建立、拆除、分离。
(2)帧定界和帧同步:链路层的数据传输单元是帧,每一帧包括数据和一些必要的控制信息。协议不同,帧的长短和界面也有差别,但必须对帧进行定界,调节发送速率与接收方相匹配。
(3)顺序控制:指对帧的收发顺序的控制。
(4)差错检测、恢复、链路标识、流量控制等:因为传输线路上有大量的噪声,所以传输的数据帧有可能被破坏。差错检测多用方阵码校验和循环码校验来检测信道上数据的误码,而帧丢失等用序号检测。各种错误的恢复则常靠反馈重发技术来完成。
数据链路层的目标是把一条可能出错的链路转变成让网络层看起来就像一条不出差错的理想链路。数据链路层可以使用的协议有SLIP、PPP、X.25和帧中继等,日常使用的光纤猫等拨号设备都工作在该层。而工作在数据链路层上的交换机称为“二层交换机”,是按照存储的MAC地址表进行数据传输的。
网络层负责管理网络地址,定位设备,决定路由。如熟知的IP地址和路由器就是工作在这一层。上层的数据段在这一层被分割,封装后叫作包,包有两种,一种叫用户数据包,是上层传下来的用户数据;另一种叫路由更新包,是直接由路由器发出来的,用来和其他路由器进行路由信息的交换。网络层负责对子网间的数据包进行路由选择。网络层的主要作用如下。
(1)数据包封装与解封。
(2)异构网络互联:用于连接不同类型的网络,使终端能够通信。
(3)路由与转发:指按照复杂的分布式算法,根据从各相邻路由器得到的关于整个网络拓扑的变化情况,动态地改变所选择的路由,并根据转发表将用户的IP数据报从合适的端口转发出去。
(4)拥塞控制:获取网络中发生拥塞的信息,更改路由线路,避免由于拥塞而出现分组的丢失,以及严重拥塞而产生网络死锁的现象。
传输层是一个端到端,即主机到主机层次的传输。传输层负责将上层数据分段并提供端到端的、可靠的(TCP)或不可靠的(UDP)传输。此外,传输层还要处理端到端的差错控制和流量控制问题。传输层的任务是提供建立、维护和取消传输连接的功能,负责端到端的可靠数据传输。在这一层,信息传送的协议数据单元称为段或报文。通常说的TCP三次握手、四次断开就是在这层完成的。
在网络中信息传送的单位称为数据单元。数据单元分为协议数据单元(PDU)、接口数据单元(IDU)和服务数据单元(SDU)。
TCP/IP的应用层对应OSI七层模型的应用层、表示层、会话层。用户使用的应用程序均工作于应用层。应用层是应用与网络的接口,并不是特指应用程序。应用层主要用于确定通信的上层应用,确保有足够的资源用于通信,并向应用程序提供服务。这些服务按其向应用程序提供的特性分成组,并称为服务元素。有些可为多种应用程序共同使用,有些则为较少的一类应用程序使用,其作用是实现多个系统应用进程相互通信的同时,完成一系列业务处理所需的服务。
TCP/IP可以为各种各样的程序传递数据,例如E-mail、WWW、FTP。那么必须有相应协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了应用层。
会话层是管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。
会话层不参与具体的数据传输,利用传输层提供的服务,在本层提供会话服务(如访问验证)、会话管理和会话同步等功能在内,建立和维护应用程序间的通信机制,如服务器验证用户登录便是由会话层完成的。另外会话层还提供单工(Simplex)、半双工(Half duplex)、全双工(Full duplex)三种通信模式的服务。
表示层主要处理流经端口的数据代码的表示方式问题。表示层的作用之一是为异种计算机通信提供一种公共语言,以便能进行互操作。这种类型的服务之所以需要,是因为不同的计算机体系结构使用的数据表示法不同。例如,IBM主机使用EBCDIC编码,而大部分PC机使用的是ASCII码,所以便需要表示层完成这种转换。