计算机网络的体系结构(architecture) 是计算机网络的各层及其协议的集合。体系结构就是这个计算机网络及其部件所应完成的功能的精确定义。实现 (implementation) 是遵循这种体系结构的前提下用何种硬件或软件完成这些功能的问题。体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。
文章分五部分,分别为:
1 计算机网络体系结构的形成
2 协议与划分层次
3 具有五层协议的体系结构
4 实体、协议、服务和服务访问点
5 TCP/IP 的体系结构
1.计算机网络体系结构的形成
计算机网络是个非常复杂的系统。相互通信的两个计算机系统必须高度协调工作,而这种“协调”相当复杂。
“分层”可将庞大而复杂的问题,转化为若干较小的局部问题,易于研究和处理。
1974 年,美国的 IBM 公司宣布了系统网络体系结构SNA (System Network Architecture)。这个著名的网络标准就是按照分层的方法制定的。
不久后,其他一些公司也相继推出自己公司的具有不同名称的体系结构。由于网络体系结构的不同,不同公司的设备很难互相连通。
为了使不同体系结构的计算机网络都能互连,国际标准化组织 ISO 于 1977 年成立了专门机构研究该问题。
他们提出了一个试图使各种计算机在世界范围内互连成网的标准框架,即著名的开放系统互连基本参考模型 OSI/RM (Open Systems Interconnection Reference Model),简称为 OSI。
只要遵循 OSI 标准,一个系统就可以和位于世界上任何地方的、也遵循这同一标准的其他任何系统进行通信。
OSI 只获得了一些理论研究的成果,在市场化方面却失败了。
原因包括:
OSI 的专家们在完成 OSI 标准时没有商业驱动力;
OSI 的协议实现起来过分复杂,且运行效率很低;
OSI 标准的制定周期太长,因而使得按 OSI 标准生产的设备无法及时进入市场;
OSI 的层次划分也不太合理,有些功能在多个层次中重复出现。
法律上的 (de jure) 国际标准 OSI 并没有得到市场的认可。
非国际标准 TCP/IP 却获得了最广泛的应用。
TCP/IP 常被称为事实上的 (de facto) 国际标准。
2.协议与划分层次
计算机网络中的数据交换必须遵守事先约定好的规则。
这些规则明确规定了所交换的数据的格式以及有关的同步问题(同步含有时序的意思)。
网络协议 (network protocol),简称为协议, 是为进行网络中的数据交换而建立的规则、标准或约定。
网络协议的三个组成要素:语法(数据与控制信息的结构或格式)、语义(需要发出何种控制信息,完成何种动作以及做出何种响应)、同步(事件实现顺序的详细说明)。
由此可见,网络协议是计算机网络的不可缺少的组成部分。
协议有两种形式,一种是使用便于人来阅读和理解的文字描述,另一种是使用让计算机能够理解的程序代码。这两种不同形式的协议都必须能够对网络上信息交换过程做出精确的解释。
ARPANET 的研制经验表明,对于非常复杂的计算机网络协议,其结构应该是层次式的。
分层的好处:各层之间是独立的。灵活性好。结构上可分割开。易于实现和维护。能促进标准化工作。缺点:降低效率。有些功能会在不同的层次中重复出现,因而产生了额外开销。
3.具有五层协议的体系结构
OSI 的七层协议体系结构的概念清楚,理论也较完整,但它既复杂又不实用。
TCP/IP 是四层体系结构:应用层、运输层、网际层和网络接口层。但最下面的网络接口层并没有具体内容。因此往往采取折中的办法,即综合 OSI 和TCP/IP 的优点,采用一种只有五层协议的体系结构 。
主机1向主机2发送数据:
注意观察加入或剥去首部(尾部)的层次
OSI 参考模型把对等层次之间传送的数据单位称为该层的协议数据单元 PDU (Protocol Data Unit)。这个名词现已被许多非 OSI 标准采用。
任何两个同样的层次把数据(即数据单元加上控制信息)通过水平虚线直接传递给对方。这就是所谓的“对等层”(peer layers)之间的通信。
各层协议实际上就是在各个对等层之间传递数据时的各项规定。
4.实体、协议、服务和服务访问点
实体 (entity) 表示任何可发送或接收信息的硬件或软件进程。
协议是控制两个对等实体进行通信的规则的集合。
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。
要实现本层协议,还需要使用下层所提供的服务。
协议和服务在概念上是不一样的。
协议的实现保证了能够向上一层提供服务。
本层的服务用户只能看见服务而无法看见下面的协议。即下面的协议对上面的服务用户是透明的。
协议是“水平的”,即协议是控制对等实体之间通信的规则。
服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。
上层使用服务原语获得下层所提供的服务。
同一系统相邻两层的实体进行交互的地方,称为服务访问点 SAP(Service Access Point)。
服务访问点SAP是一个抽象的概念,它实际上就是一个逻辑接口。
OSI把层与层之间交换的数据的单位称为服务数据单元 SDU (Service Data Unit)。SDU 可以与 PDU 不一样,例如,可以是多个SDU 合成为一个 PDU,也可以是一个 SDU 划 分为几个 PDU。
相邻两层之间的关系:
协议必须把所有不利的条件事先都估计到,而不能假定一切都是正常的和非常理想的。
看一个计算机网络协议是否正确,不能光看在正常情况下是否正确,还必须非常仔细地检查这个协议能否应付各种异常情况。
5.TCP/IP 的体系结构
路由器在转发分组时最高只用到网际层而没有使用运输层和应用层