1.7.1 OSI/RM
OSI/RM在实际工作中的应用意义不大,主要用于教学中辅助学生理解网络协议,读者也可以通过对OSI/RM基础知识的理解,把这些知识应用到实际的协议中,这将有助于排除故障。
在提出OSI/RM之前,人们平常使用的计算机网络中存在众多体系结构,如IBM公司的SNA(System Network Architecture,系统网络结构)和DEC公司的DNA(Digital Network Architecture,数字网络结构)等,这些由不同公司所制定的体系结构基本上互不兼容,都只为本公司的网络设备服务,这给用户选购和使用产品带来了极大的不便。为了解决不同网络体系之间的互联问题,OSI/RM综合了SNA和DNA等体系结构的优点,可以使不同网络体系实现互联。
1. 数据传输过程
OSI/RM的发送端向接收端传输数据的过程如图1-14所示。
图1-14 OSI/RM的数据传输过程
1)欲发送的用户数据被送到应用层,应用层协议就在用户数据外面包装上应用层的相关协议信息(Application Header,AH)后形成应用层数据,即应用层数据=AH+Data,然后将应用层数据经过应用层与表示层接口传送到表示层。
2)表示层协议把所收到的所有信息(AH+Data)外面包装上表示层相关的协议信息(Presentation Header,PH),形成表示层数据,即表示层数据=PH+AH+data,然后向会话层传递。
3)同应用层、表示层一样,从会话层直到数据链路层,每层都加上本层的相关协议信息后向下传递。最后数据链路层把本层的数据信息发送到物理层,物理层不再添加任何协议信息,而只是把所收到的数据转变成只包含0、1的二进制形式,经过发送端与接收端间的通信线路发送到接收端。
4)接收端的物理层把收到的二进制数据提交给数据链路层,然后各层逐次把对应层上的封装协议信息去除后传向上一层,即“用户数据的处理就是在收发两端对等层上进行的”。以接收端的网络层为例,接收端的网络层把它从数据链路层收到的信息NH+TH+SH+PH+AH+Data中的NH(发送端在网络层上所包装上去的网络层协议信息)剥离(或者说是去除)后提交给上层——传输层,这样传输层所接收到的信息就是TH+SH+PH+AH+Data,最后,应用层(收到的信息是AH+Data)把AH去剥离后向用户提交有用数据Data。
由上可见,OSI/RM的各层之间具有很强的独立性,网络互联的复杂过程被划分为更简单的、独立的功能来分别实现,降低了网络体系结构的复杂程度,一旦网络发生故障,可迅速定位故障所在的层次,提高了查找和纠错的方便性,并且其中某一层提供的功能有变化不会影响其他层,这就是OSI/RM最大的优点。
2. 物理层
物理层实现了将计算机处理的二进制信号转换成物理层信号,它通过规定激活、维持、关闭通信端点之间的4个特性(机械特性、电气特性、功能特性和规程特性)来实现此功能。如果传输介质是双绞线,物理层定义使用不同的高低电平来表示二进制中的0和1;如果传输介质是光纤,物理层定义使有不同的光频率来表示二进制中的0和1,物理层中所传输的数据就是这种由0和1所组成的位流的形式。
(1)物理层组成
物理层主要由DTE(Data Terminal Equipment,数据终端设备)和DCE(Data Communication Equipment,数据通信设备)组成。DTE的基本功能是处理数据和收发数据,如用户使用的计算机就属于DTE。由于DTE之间不能长距离传输数据,因此采用了DCE。DCE就是为使两个相距较远的DTE实现数据传输而在两个DTE之间加装的中间设备,例如在拨号上网时使用的调制解调器就属于DCE。
DTE和DCE之间的连接如图1-15所示。
图1-15 DTE/DCE连接图
(2)物理层特性
机械特性规定了DTE和DCE间的物理连接。DTE和DCE属于独立的两种设备,需要采用接插件来将这两种设备互联。机械特性规定了接插件的形状、数目、大小、排序方式等,例如EIA RS-232C规定的D型25针插座的相关特性。概括地说,机械特性定义了物理接口的形状、尺寸及引脚数目和排列方式等。
电气特性即接口规定信号的电压和电流及阻抗大小、波形、数据编码方式、速率匹配、距离限制、平衡特性等。
功能特性定义接口引脚的意义和作用,如引脚用于数据、定时、接地、控制等功能。
规程特性定义DTE和DCE间各线路上的动作序列和规范,确定数据位流的传输方式,如单工、半双工或全双工。为实现建立、维持、释放线路连接等过程所要求的各控制信号变化的相互协调,在物理层上定义了典型规范,包括RJ-45、EIA/TIA RS-232、EIA/TIA RS-449、V.35及FDDI等。
注意:物理层只是一个功能模型,是一种对信号进行发送和接收的机制,而非某个具体的实物,因此中继器、集线器是工作于物理层的设备。
常用的物理层标准有EIA-232、RS-449和X.21等。例如EIA RS-232,在机械特性方面,它采用25个引脚的DB-25插头,引脚分为两排,分别有12和13根针脚;在电气特性方面,它采用负逻辑,用+5V~+15V表示信号0,用-5V~-15V表示信号1,连接线小于15m时允许数据传输速率不超过20kbit/s;在规程特性方面,它定义了DTE和DCE间通信时各引脚的工作顺序。功能特性定义了各引脚的功能,如图1-16所示。
图1-16 EIA RS-232各引脚的功能
3. 数据链路层
数据链路层定义了MAC(Medium Access Control,介质访问控制)地址,定义了如何将网络层协议封装到数据帧(Frame)中,并定义了第2层的帧格式;提供了流量控制、数据检错、重发等机制,从而保证了在不可靠的物理介质上提供可靠的传输;提供了无连接和面向连接的服务。其中“链路”是指数据通信的信道。
(1)MAC地址
数据链路层使用MAC地址进行通信,MAC地址是相互连接的各设备或接口的唯一标识。在数据链路层中传输的数据单位称为帧。每个帧都包含两个MAC地址,一个是源MAC地址,用于指明此帧由哪个接口所发送;另一个是目的MAC地址,用于指明此帧要送去的下一个接口。
MAC地址的长度一共是48bit,常用十六进制表示,如00:23:8B:73:DA:CD。MAC地址的前6个十六进制数与网卡生产厂商有关,称为组织唯一标识符(Organization Unique Identifier,OUI),是网卡生产厂商向IEEE([美国]电气与电子工程师协会)申请的一段标识符;MAC地址的后6个十六进制数由生产厂商唯一指定,与OUI一起被固化到网卡内,作为网卡的唯一标识。因此,理论上,世界上网卡的MAC地址都不相同。
注意:上述“网卡”的含义也包括各网络设备的接口,如路由器、交换机的接口。
(2)帧
在物理层中,数据以位(bit)为单位进行传送,在数据链路层上,则把数据组织成一定大小的数据块(即帧)来进行传送。帧是数据链路层传输数据的单位,用于确保数据可以安全地通过本地网络传到目的接口。帧格式如图1-17所示。
图1-17 帧格式
在上述帧格式中,前同步表示一帧开始的同步信号;然后指明目的MAC地址、源MAC地址;再后是IEEE 802.2 LLC封装帧,也就是本帧的数据部分;最后是FCS(Frame Check Sequence,帧检验序列),采用循环冗余检验(Cycle Redundancy Check,CRC),可以确保目的端口所收到帧正确。
以太网的帧格式有两种类型,一是IEEE 802.3以太网帧格式,采用长度字段指明从长度字段起到FCS的帧的长度;二是Ethernet II帧格式,采用类型字段指明数据字段中的上层协议。
(3)可靠的传输机制
数据链路层工作在OSI/RM的第二层,控制网络层与物理层之间的通信。它如何在不可靠的物理线路上进行可靠的数据传递?为了保证传输可靠性,从网络层接收到的数据在数据链路层被分割成特定的可被物理层传输的帧,帧中不仅包括原始数据,还包括同步机制、MAC地址、差错校验、响应机制。
其中,同步机制用于使收发双方准确对时,明确帧从什么时候开始传输;发送方和接收方端口的MAC地址确定了帧从什么端口发出,将发送到什么端口;差错校验可以确保帧无差错到达目的端口;响应机制确保在每个数据帧完整地被目的端口所接收时,源端口必须收到来自目的端口的响应,对没收到响应的帧要进行重发。
工作于数据链路层的协议常用的有HDLC(High-level Data Link Control,高级数据链路控制[规程])、PPP(Point to Point Protocol,点对点协议)、FR(Frame-Relay,帧中继)等,这些协议在后面的章节中具体讲解。工作于此层的网络设备主要有网桥、二层交换机。
4. 网络层
网络层的功能是将上层数据按一定长度进行分段后形成数据分组,对子网间的分组进行路由选择,定义网络层的逻辑地址,实现拥塞控制和流量控制,并进行协议转换。
(1)IP地址
网络层有很多种地址方案,如IP、IPX、AppleTalk等,其中IP地址方案是最常用,也是最复杂的一种。它是联网的主机或设备间相互识别的网络标识,包含两个组成部分,即网络地址和主机地址。具体内容将在第2章专门讲述。
(2)数据分组
网络层将从传输层收到的数据分成一定长度的分组,并为每个分组加上源IP地址和目的IP地址,这些分组到达目的主机后按分组次序重新组装,然后向上提交给传输层。
(3)路由选择
路由选择是网络层的核心功能,网络层根据分组中的IP地址来获得从源网络到目的网络的路径。路由器是工作于网络层的设备,它根据自身的路由算法产生一个包含路由信息的路由表,其中记录了到达目的网络的最佳路由。当路由器收到一个分组时,就会查看分组头中的目的IP地址,再根据路由表决定应该从哪个端口转发出去。关于路由器的更多工作机制,本书将在第6章中讲述。
(4)拥塞控制和流量控制
网络层通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的开销来决定从一个网络到另一个网络的最佳路径。
(5)协议转换
在网络互联时,两个网络使用的协议可能不同,此时网络层必须解决协议转换的问题,实现异种网络的互联。
5. 传输层
传输层的功能是提供端到端的服务,分段和重组报文,流量控制,提供面向连接和无连接的数据传输。
(1)端到端的服务
在数据传输的两台主机间,源主机上的某个应用程序使用传输层上的控制信息实现与目的主机上对应的应用程序对话,因此“端到端服务”也称为“主机到主机的服务”。
(2)分段与重组报文
这是传输层的一个基本功能,“分段”是指它将从会话层接收到的数据分成较小的数据段传递给网络层,“重组”是指它将从网络层收到的数据段重新组装成数据向上层传递。
(3)流量控制
传输层同数据链路层和网络层一样,也采用了一种调节通信量的机制,使高速的主机不至于以过快的速度向低速主机传输数据。
(4)提供面向连接和无连接的数据传输
传输层根据会话层请求建立的传输连接的类别,使用该层的两个协议TCP和UDP来建立面向连接或无连接的数据传输服务。
(5)端口号
网络层使用IP地址为不同的主机提供逻辑通信,传输层则为不同主机上运行的进程提供逻辑通信,使用“端口号”来区分不同的连接进程。
IP地址与端口号都提供了逻辑通信,网络层使用IP地址在位于不同网络的主机间传递信息,它并不关心所传信息是什么;而传输层则关心信息的内容,它将不同的应用进程的信息使用不同的端口号进行区分,但它不涉及消息在网络之间传送的过程。例如,一台主机可能同时访问多种网络服务,如Web、电子邮件等,它们都使用同一个IP地址来传递信息;信息到本机后,使用端口号来区分不同的服务,然后送到高层处理,最终提供给用户不同的服务。
6. 会话层
会话层的功能是建立、维持和终止会话及会话管理。
(1)建立、维持和终止会话
会话层在不同主机上的用户间建立会话关系,例如,使用Telnet进行远程登录或客户机登录到服务器的过程,就是建立会话的过程,然后一直维持这个会话,到用户退出登录终止会话。
(2)会话管理
会话层负责协商两台主机间数据传输的双工模式,在采用半双工时决定应由哪一方收发数据;另外,数据传输中发生网络故障导致数据中断时,会话层提供了一种在数据中插入检查点的机制,重传时只须传检查点后的数据,提高了传输的效率。
7. 表示层
表示层主要用于处理应用程序间交换的信息的表示方法,对数据进行压缩变换、代码格式变换、不同文件格式间的转换及对数据进行加密和解密等操作均在这一层完成。该层为应用层提供服务,定义了信息利用该层表示之后,如何从底层的二进制形式转换格式,最终通过用户应用程序界面呈现给用户。例如用户上网查询自己的个人银行账户信息,所输入的账户数据在发送前表示层将对其加密,在服务器端表示层将对接收到的数据解密。
8. 应用层
应用层提供了用户与应用程序交互的界面,包含用户应用程序执行任务所使用的协议。例如在不同的文件系统中有不同的文件命名规则,不同的系统间传输文件需要处理兼容性问题,在应用层上使用FTP就可以处理该问题。
注意,应用层并不是指运行在网络中的某个应用程序,而是通过本层提供的协议来完成应用程序对网络服务的使用。因此,不能说Web浏览器就是应用层,而是Web浏览器工作在应用层上。
9. PDU(Protocol Data Unit,协议数据单元)
在OSI/RM中,各层都使用本层的特殊术语来描述本层传送的数据,PDU就是用于描述各层的数据及其控制信息的,它可理解成各层所表示的信息的名称。其中有一个“封装”的概念。
封装指在从高层向低层传输信息的过程中,每层都将上层传来的信息作为本层的数据,然后加上本层的控制信息,就是报头和/或报尾。
表1-1列出了各层的PDU术语。
表1-1 各层的PDU术语