2.1.4 计算机网络协议:OSI 七层协议(1)
讲完了网络需要制订的标准、网络连接的组件以及网络的范围之后,接下来就要讲到各个节点之间是如何沟通信息的了。其实就是通过标准的通信协议,但是,整个网络连接的过程相当复杂,包括硬件、软件数据封装与应用程序的互相链接等,如果想要写一个将网络连接的全部功能都集中在一起的程序,那么当某个小环节出现问题时,整个程序都需要改写,这是非常麻烦的。
那怎么办?没关系,我们可以将整个网络连接过程分成数个层次(layer),每个层次都有特定的独立的功能,而且每个层次的程序代码可以独立撰写,因为每个层次之间的功能并不会互相干扰。 如此一来,当某个小环节出现问题时,只要将该层次的程序代码重新撰写即可。所以程序撰写也容易,整个网络概念也就更清晰。这就是目前常听到的 OSI 七层协议(Open System Interconnection)的概念。
这7个层次的相互关系如图2-2所示。
图2-2 OSI 七层协议各层次的相关性
依据定义来说,越接近硬件的层次为底层(layer 1),越接近应用程序的则是高层(layer 7)。不论是接收端还是发送端,每一层次只认识对方的同一层次的数据。而整个传送的过程就好像人们在玩整人游戏一般,我们通过应用程序将数据放入第七层的包裹,再将第七层的包裹放到第六层的包裹内,依序一直放到第一层的最大的包裹内,然后传送出去给接收端。接收端的主机就得由第一个包裹开始,依序将每个包裹拆开,然后一个一个交给对应负责的层次来查看。这就是OSI 七层协议在层次定义方面需要注意的特色。
既然说是包裹,那我们都知道,包裹表面都会有个重要的信息,这些信息包括有来自哪里、要去哪里、接收者是谁等,而包裹里面才是真正的数据。同样的,在七层协议中,每层都会有自己独特的头部数据(header),告知对方这里面的信息是什么,而真正的数据就附在后头。我们可以使用图2-3所示的来表示这七层每一层的名字,以及数据是如何放置到每一层包裹内的。
仔细看图2-3中每个数据包的部分,上层的包裹是放入下层的数据中,而数据前面则是这个数据的报头。其中比较特殊的是第二层,因为第二层(数据链路层)主要是位于软件包(packet)以及硬件数据帧(frame)中间的一个阶层,它必须要将软件包装的包裹放入到硬件能够处理的包裹中,因此这个层次又分为两个子层来处理相对应的数据。因为比较特殊,所以可以看出,第二层的数据格式比较不一样,尾端还出现一个检查码呢。
图2-3 OSI 七层协议中数据的传递方式
每一个层次所负责的任务是什么呢?简单地说,每一层负责的任务如表2-1所示。
表2-1 OSI七层协议
【责任编辑:book TEL:(010)68476606】
点赞 0