一,计算机网络体系结构的形成
1,为什么要分层?
处理复杂的系统时:
清楚的结构允许我们对大型复杂系统定义其特定部分,探讨其各部分的关系
模块化使得系统的维护、升级简化
改变其某一层服务的具体实现对系统其余部分透明(不影响)
e.g. 改变登机口程序(不影响系统其余部分)
分层的弊端:
各层可能重复较低层功能 …
2,问题的提出
网络系统非常复杂,包含大量的硬件和软件,而相互通信的计算机系统必须高度协调才能正常工作,“分层”可以将问题转化为若干较小的易处理的局部问题。
3,划分层次的概念举例
计算机 1 向计算机 2 通过网络发送文件。
可以将要做的工作进行如下的划分。
1)两个计算机将文件传送模块作为最高的一层 ,剩下的工作由下面的模块负责。其工作与传送文件直接有关。:
确信对方已做好接收和存储文件的准备。
双方协调好一致的文件格式。
2)再设立一个通信服务模块用来保证文件和文件传送命令在可靠地在两个系统之间交换。也就是说,位于上层的文件传送模块利用下面的通信服务模块所提供的服务。
3)再构造一个网络接入模块,用来负责做与网络接口细节有关的工作(例如,规定传输的帧格式,帧的最大长度等),并向上层提供服务,使上面的通信服务模块能够完成可靠通信的任务。
4,分层的好处
(1)各层之间是独立的。
(2)灵活性好。
(3)结构上可分割开。
(4)易于实现和维护。
(5)能促进标准化工作。
注: 层数多少要适当
(1)层数太少,会使每一层的协议太复杂。
(2)层数太多,会在描述和综合各层功能的系统工程任务时遇到较多的困难。
5、计算机网络体系结构的形成
1974年,美国的IBM公司宣布了它研制的系统网络体系结构SNA
(System Network Architecture)。它是世界上使用得相当广泛的一种网络体系结构。不久,一些大的公司纷纷推出自己的体系结构。
1)两种标准
国际标准化组织ISO于1977年成立了专门机构研究网络体系结构问题。提出一个试图使各种计算机在世界范围内互连成网的标准框架,即开放系统互连基本参考模型OSI/RM
(Open Systems Interconnection Reference Model),简称为OSI,并于1983年形成了ISO7489标准,即七层协议体系结构。
关于开放系统互连参考模型OSI/RM:
只要遵循 OSI 标准,一个系统就可以和位于世界上任何地方的、也遵循这同一标准的其他任何系统进行通信。
在市场化方面 OSI 却失败了,原因如下:
- OSI 的专家们在完成 OSI 标准时没有商业驱动力;
- OSI 的协议实现起来过分复杂,且运行效率很低;
- OSI 标准的制定周期太长,因而使得按 OSI 标准生产的设备无法及时进入市场;
- OSI 的层次划分并也不太合理,有些功能在多个层次中重复出现。
法律上的国际标准 OSI 并没有得到市场的认可。非国际标准 TCP/IP 现在获得了最广泛的应用。TCP/IP 常被称为事实上的国际标准。
OSI概念清楚,体系价格低廉,理论较完整,但实现复杂。而TCP/IP协议现在实际上并没有一个完整的体系结构。
2)协议
协议是为进行网络中的数据交换而建立的规则、标准或约定。一个网络协议主要由以下三个要素组成:
(1)语法,即数据与控制信息的结构或格式;
(2)语义,即需要发出何种控制信息,完成何种动作以及做出何种响应;
(3)同步,即事件实现顺序的详细说明。
协议的两种存在形式:文字描述、程序代码
3)计算机网络体系结构概念
计算机网络的体系结构(architecture)是计算机网络的各层及其协议的集合。
体系结构就是这个计算机网络及其部件所应完成的功能的精确定义。
实现(implementation)是遵循这种体系结构的前提下用何种硬件或软件完成这些功能的问题。
体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。
二,具有五层协议的计算机网络体系结构
OSI体系结构既复杂又不实用,但概念清楚,理论较完整。TCP/IP协议得到了全世界的承认,但它体系结构不完整。因此在学习计算机网络的原理时往往采取折中的办法,综合二者优点,采用一种只有五层原理体系结构。
主机 1 向主机 2 发送数据 过程分析:
三,实体、协议、服务和服务访问点
1、基本概念
1)实体(entity):表示任何可发送或接收信息的硬件或软件进程。
2)协议:是控制两个对等实体进行通信的规则的集合。
3)服务:在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。
4)数据单元
a,协议数据单元PDU
指在不同端点中的各层对等实体之间,为实现该层协议交换的信息单元.
PCI:协议控制信息 UD:用户数据
b,服务数据单元SDU
指(N)实体为完成(N+1)实体所请求的功能,所需要的数据单元.
5)服务访问点SAP:在同一系统中相邻两层的实体进行交互(即交换信息)的地方,通常称为 (Service Access Point)。
6)服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令在OSI中称为服务原语。
四种类型服务原语:
(N)-PRIMITIVE NAME request (a0,…,an-1)
(N)-PRIMITIVE NAME indication (a0,…,an-1)
(N)-PRIMITIVE NAME response (a0,…,an-1)
(N)-PRIMITIVE NAME confirm(a0,…,an-1)
2,服务与协议的区别
协议和服务在概念上是很不一样的。
首先,协议的实现保证了能够向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议。下面的协议对上面的服务用户是透明的。
其次,协议是“水平的”,即协议是控制对等实体之间通信的规则。但服务是“垂直的”,即服务是由下层向上层通过层间接口提供的
协议很复杂 :
协议必须将各种不利的条件事先都估计到,而不能假定一切情况都是很理想和很顺利的。
必须非常仔细地检查所设计协议能否应付所有的不利情况。
应当注意:事实上难免有极个别的不利情况在设计协议时并没有预计到。在出现这种情况时,协议就会失败。因此实际上协议往往只能应付绝大多数的不利情况。
著名的协议举例
占据两个山顶的蓝军与驻扎在这山谷的白军作战。力量对比是:一个山顶上的蓝军打不过白军,但两个山顶的蓝军协同作战就可战胜白军。一个山顶上的蓝军拟于次日正午向白军发起攻击。于是发送电文给另一山顶上的友军。但通信线路很不好,电文出错的可能性很大。因此要求收到电文的友军必须发送确认电文。但确认电文也可能出错。试问能否设计出一种协议,使得蓝军能实现协同作战因而一定(即100 %)取得胜利?
由于这种收到信息后返回一个信息的协议会无限的循环下去,所以这样的协议是无法实现的!
3、面向连接服务与无连接服务
从通信的角度看,各层所提供的服务可分为两大类,即面向连接的与无连接的。
1)面向连接服务(connection-oriented)
在网络层中为虚电路服务。
在传输层为TCP服务。
工作特点同电话
2)无连接服务(connectionless)
数据是“尽最大努力交付”。
工作特点同平信
四,TCP/IP的体系结构
1,TCP/IP的四层模型
2,OSI vs TCP/IP
OSI 与 TCP/IP体系结构的比较:
OSI概念清楚,体系价格低廉,理论较完整,但实现复杂。
在一些问题的处理上,TCP/IP与OSI是很不相同的:
- TCP/IP一开始就考虑到多种异构网的互连问题。
- TCP/IP一开始就对面向连接服务和无连接服务并重。
- TCP/IP有较好的网络管理功能。
-当然TCP/IP也有不足之处:
- 概念不清楚
- 通用性较差
- 网络接口层并没有实质内容
客户进程和服务器进程使用 TCP/IP 协议进行通信:
功能较强的计算机同时运行多个服务器进程: