|
OSI/RM最初用来作为开发网络通信协议族的一个工业参考标准,是各个层上使用的协议国际化标准。严格遵守OSI模型,不同的网络技术之间可以轻而易举地实现互操作。整个OSI/RM模型共分7层,从下往上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
|
|
|
|
物理层的所有协议就是人为规定了不同种类的传输设备、传输媒介如何将数字信号从一端传送到另一端,而不管传送的是什么数据。它是完全面向硬件的,通过一系列协议定义了通信设备的机械、电气、功能和过程特征。
|
|
|
(1)机械特征:规定线缆与网络接口卡的连接头的形状、几何尺寸、引脚线数、引线排列方式和锁定装置等一系列外形特征。
|
|
|
(2)电气特征:规定了在传输过程中多少伏特的电压代表1,多少伏特代表0。
|
|
|
(3)功能特征:规定了连接双方每个连接线的作用,即哪些是用于传输数据的数据线,哪些是用于传输控制信息的控制线,哪些是用于协调通信的定时线,、哪些是用于接地的地线。
|
|
|
|
|
数据链路层在物理层已能将信号发送到通信链路中的基础上,负责建立一条可靠的数据传输通道,完成相邻结点之间有效地传送数据的任务。正在通信的两个站点在某一特定时刻,一个发送数据,一个接收数据。数据链路层通过一系列协议实现以下功能。
|
|
|
(1)封装成帧。把数据组成一定大小的数据块(称之为帧),然后以帧为单位发送、接收和校验数据。
|
|
|
(2)流量控制。根据接收站的接收情况,发送数据的一方实时地进行传输速率控制,以免出现发送数据过快,接收方来不及处理而丢失数据的情况。
|
|
|
(3)差错控制。当接收到数据帧后,接收数据的一方对其进行检验,如果发现错误,则通知发送方重传。
|
|
|
(4)传输管理。在发送端与接收端通过某种特定形式的对话来建立、维护和终止一批数据的传输过程,以此对数据链路进行管理。
|
|
|
就发送端而言,数据链路层将来自上层的数据按一定规则转化为比特流送到物理层进行处理;就接收端而言,它通过数据链路层将来自物理层的比特流合并成完整的数据帧供上层使用。最典型的数据链路层协议是IEEE开发的802系列规范,在该系列规范中将数据链路层分成了两个子层:逻辑链路控制层(LLC)和介质访问控制层(MAC)。
|
|
|
(1)LLC:负责建立和维护两台通信设备之间的逻辑通信链路。
|
|
|
(2)MAC:就像交通指挥中心控制汽车通行的车道一样,控制多个信息通道复用一个物理介质。MAC提供对网卡的共享访问与网卡的直接通信。网卡在出厂前会被分配给唯一的由12位十六进制数表示的MAC地址,MAC地址可提供给LLC来建立同一个局域网中两台设备之间的逻辑链路。
|
|
|
|
网络层用于从发送端向接收端传送分组,负责确保信息到达预定的目标。看到这里,也许读者会觉得不可思议:数据链路层不是已经保证了相邻结点之间无差错传送数据帧了吗?那么网络层到底有什么用呢?实际上它存在的主要目的就是解决以下问题。
|
|
|
(1)通信双方并不相邻。在计算机网络中,通信双方可能是相互邻接的,但也可能并不是邻接的,这样当一个数据分组从发送端发送到接收端时,就可能要经过多个其他网络结点,这些结点暂时存储“路过”的数据分组,再根据网络的“交通状况”选择下一个结点将数据分组发出去,直到发送到接收方为止。
|
|
|
(2)正如前面所阐述的一样,由于OSI参考模型是出现在许多网络协议之后的,它就必须为使用这些已经存在的网络协议的计算机网络之间的相互通信做出贡献。事实上,网络层的一些协议解决了这样的异构网络的互联问题。
|
|
|
|
|
传输层实现发送端和接收端的端到端的数据分组传送,负责保证实现数据包无差错、按顺序、无丢失和无冗余地传输。在传输层上所执行的任务包括检错和纠错。它的出现是为了更加有效地利用网络层所提供的服务。它的作用主要体现在以下两方面。
|
|
|
(1)将一个较长的数据分成几个小数据包发送。实际在网络中传递的每个数据帧都是有一定大小限制的。假设如果要传送一个字串“123456789”,它太长了,网络服务程序一次只能传送一个数字(当然在实际中不可能这么小,这里仅是为了方便讲解所做的假设),因此网络就需要将其分成9次来传递。就发送端而言,当然是从1传到9,但是由于每个数据分组传输的路径不会完全相同(因为它是要根据当时的网络“交通状况”而选择路径的),先传送出去的包不一定会先被收到,因此接收端所收到的数据的排列顺序是与发送的顺序不同的。而传输层的协议就给每一个数据组加入排列组合的记号,以便接收端能根据这些记号将它们“重组”成原来的顺序。
|
|
|
(2)解决通信双方不只有一个数据连接的问题。这个问题从字面上可能不容易理解,来看一个例子,比如用一台计算机与另一台计算机连接复制数据的同时,又通过一些交谈程序进行对话。这个时候,复制的数据与对话的内容是同时到达的,传输的协议负责将它们分开,分别传给相应的程序端口,这也就是端到端的通信。
|
|
|
工作在传输层的协议有TCP协议、UDP协议和SPX协议。
|
|
|
|
会话层主要负责管理远程用户或进程间的通信。该层提供如名字查找和安全验证等服务,允许两个程序能够相互识别并建立和维护通信连接。会话层还提供数据同步和检查点功能,这样当网络失效时,会对失效后的数据进行重发。在OSI参考模型中,会话层的规范具体包括通信控制、检查点设置、重建中断的传输链路、名字查找和安全验证服务。
|
|
|
|
表示层以下的各层只关心从源地到目的地可靠地传输数据,而表示层则关心的是所传送信息的语义与语法。它负责将收到的数据转换为计算机内的表示方法或特定程序的表示方法。也就是说,它负责通信协议的转换、数据的翻译、数据的加密和字符的转换等工作。在OSI参考模型中表示层的规范具体包括数据编码方式的约定和本地句法的转换。各种表示数据的格式的协议也属于表示层,例如MPEG、JPEG等。
|
|
|
|
应用层就是直接提供服务给使用者的应用软件的层,比如电子邮件和在线交谈程序都属于应用层的范畴。应用层可实现网络中一台计算机上的应用程序与另一台计算机上的应用程序之间的通信,就像在同一台计算机上操作一样。在OSI参考模型中应用层的规范具体包括各类应用过程的接口和用户接口。
|
|
|
|
当接收数据时,数据是自下而上传输的;当发送数据时,数据是自上而下传输的。在网络数据通信的过程中,每一层要完成特定的任务。当传输数据的时候,每一层接收上一层格式化后的数据,对数据进行操作,然后把它传给下一层。当接收数据的时候,每一层接收下一层传过来的数据,对数据进行解包,然后把它传给上一层。这就实现了对等层之间的逻辑通信。OSI模型并未确切描述用于各层的协议和服务,它仅仅告诉我们每一层该做些什么。
|
|
|
为了便于读者复习,本书对OSI参考模型各层的主要功能进行总结和归纳,如下表所示。
|
|
|
|
|
|