不同的网络之间存在兼容性的问题,为了顺利通信,有必要制定一个标准。
OSI/RM:开放系统互连参考模型(OSI参考模型)
由国际标准化组织(ISO)在1983年发布。
开放:指非独家垄断的,只要遵循OSI标准,一个系统就可以和位于世界上任何地方、也遵循该标准的其他任何系统进行通信。
一、OSI参考模型的层次结构
共分为7个层次,从低到高依次为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
二、OSI参考模型各层功能
“每一层都专注做一件事情,并且每一层都需要使用下一层提供的功能。”
如传输层需要使用网络层提供的路由和寻址功能,这样传输层才知道把数据传输到哪里去。
1、物理层
提供物理连接,解决两个硬件之间怎么通信的问题,常见的物理媒介有光纤、电缆、中继器等。它主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。
主要作用是透明传输比特流(就是由1、0转化为电流强弱或光脉冲来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。物理层传输的数据叫做比特。
物理层网络设备——中继器、集线器、Modem(调制解调器)
2、数据链路层
数据链路层在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路(以Mac地址寻址),将一个原始的传输设施转变成一条没有漏检传输错误的线路,使得发送方发送的数据帧在信道上无差错地传输,同时为其上面的网络层提供有效的服务。数据链路层传输的数据称为帧(frame)。
数据链路层网络设备——二层交换机。
3、网络层:
计算机网络中如果有多台计算机,怎么找到要发的那台?如果中间有多个节点,怎么选择路径?这就是路由选择要实现的功能。
网络层数据为报文分组(也成为数据包),该层的主要任务就是:通过路由选择算法,为报文通过通信子网选择最适当的路径。
网络层设备——路由器以及具有路由功能的三层交换机。
4、传输层:
实现端到端的连接。传输层获得下层(网络层)提供的服务包括:发送和接受正确的数据块分组序列,并用其构成传输层数据;获得网络层地址,包括虚拟信道和逻辑信道。传输层向上层(会话层)提供的服务包括:无差错(差错控制)的有序(数据分段)的报文收发(传输、组装);提供传输连接;进行流量控制。
传输层数据的单位称为数据段segment。
网络层设备——网关。
5、会话层
一次连接就称为一次会话。
会话层管理主机(应用程序)之间的会话进程,即负责建立、管理、终止进程之间的会话,会话层还利用在数据中插入校验点来实现数据同步,以便在系统崩溃之后还能恢复到崩溃之前的状态继续运行。
协议三要素:
语法:即用户数据与控制信息的结构和格式。
语义:即需要发出控制信息,以及完成的动作与做出的响应。
时序:即对事件实现顺序的详细说明。
6、表示层
不同的计算机可能有不同的内部数据表示法,为了让这些计算机能够进行通信,表示层会对上层(应用层)的数据或者信息进行变换,以保证一个主机应用层发出的信息可以被另一个主机对应的应用程序所理解。
表示层主要功能有语法转换、语法表示(格式转换)、数据的加密和解密、数据的压缩和解压缩。
7、应用层
为用户、应用程序及操作系统访问网络提供服务。
以生活中常见的通过浏览器访问网站为例:当我们在浏览器地址栏中输入“HTTP://baidu.com”后,DNS服务器会将“baidu.com”转换成网站服务器对应的IP地址,然后我们自己的计算机向网站服务器发出请求,通过HTTP协议将网页内容传输到我们自己计算机的浏览器上。
注意:OSI参考模型只是一个理想化的模型,没有具体设计各层的协议,在实际中得到广泛应用的是TCP/IP体系结构(我们以后详细介绍)。
能实现应用层功能的协议有:
DNS:域名系统,实现域名解析;
HTTP:超文本传输协议;
FTP:文件传输协议;
DHCP:动态主机配置协议;
SMTP:简单邮件传输协议;
TELNET:远程登陆协议;
……
三、数据通信过程
在OSI参考模型中数据是如何在不同主机的不同应用进程中进行数据传输的呢?
假定主机A的应用进程AP1向主机B的应用进程BP1传送数据(以发送电子邮件为例)。
AP1先将其数据交给主机A的最高层(应用层),如使用SMTP协议来处理数据(在该数据前加上SMTP标记,以便对方主机B收到后了解使用什么软件来处理该数据。);
应用层处理后交给下面的表示层,表示层会进行必要的格式转换,使用一种通信双方都能识别的编码来处理数据;
表示层处理完成后将数据交给会话层,会话层会在主机A和主机B之间建立一条只用于传输该数据的会话通道,并监视它的连接状态,直到数据同步完成才会断开会话;
会话通道建立后,为保证数据传输中的可靠性,主机A的传输层会对数据进行必要的处理,如分段、编号、差错校验、确认、重传等;
网络层是实际传输数据的层次,它将传输层中处理完成的数据再次封装,添加上双方的地址信息,并为每个数据包找到一条到主机B的最好的路径,然后按照最佳路径发送到网络中;
数据链路层则会对网络层的数据再次进行封装,添加上能唯一表示每台设备的MAC物理地址;
主机A的物理层则将上层的数据转换成电流传输的物理线路,通过物理线路将数据传送到主机B后,主机B会将电信号转变成数据链路层的数据帧,数据链路层再去掉本层的Mac物理地址后将数据递交给网络层,网络层同样去掉主机1网络层所添加的内容后交给传输层,就这样层层递减后最终数据到达了主机2的应用层,应用层接受到数据使用STMP协议封装,就知道应用电子邮件的软件来处理了。
虽然应用进程数据要经过这么复杂的过程才能送到终点,但这些复杂过程对用户来说,都被屏蔽掉了,以致主机A的应用进程AP1觉得好像直接把数据交给了主机B的应用进程BP2。
简单来说,数据在发送过程中是一个“逐层封装”的过程,在接收方收到后又再“逐层拆封”。
四、OSI参考模型的失败
从OSI参考模型的层次结构的定义、传输过程来看,OSI参考模型试图达到这样的一种理想境界——全世界的计算机网络都遵循这个统一的标准,因而全世界的计算机将能够很方便的进行互连和交换数据。到20世纪90年代初期,虽然整套的OSI国际标准都已经制定出来了,但由于因特网(使用TCP/IP模型)已抢先在全世界覆盖了相当大的范围了,而与此同时却几乎找不到有什么厂家生产出符合OSI标准的商用产品——OSI参考模型理论研究成果很丰富,但是市场化却很失败。总结OSI参考模型失败的原因可以归纳为:
(1)OSI参考模型制定专家们缺乏实际经验,缺乏商业驱动力;
(2)OSI参考模型的协议实现起来过于复杂,导致其运行效率比较低;
(3)OSI参考模型的标准制定周期太长,使得按OSI标准生产的设备无法及时进入市场;
(4)OSI参考模型的层次划分不太合理(尤其是高三层);
从OSI参考模型的失败,TCP/IP模型的成功可以看出——一个新标准的出现,有时不一定反应其技术水平是最先进的,而是往往有着一定的市场背景!