2. 描述计算机网络的七层协议,2.1.4 计算机网络协议:OSI 七层协议

讲完了网络需要制订的标准、网络连接的组件以及网络的范围之后,接下来就要讲到各个节点之间是如何沟通信息的了。其实就是通过标准的通信协议,但是,整个网络连接的过程相当复杂,包括硬件、软件数据封装与应用程序的互相链接等,如果想要写一个将网络连接的全部功能都集中在一起的程序,那么当某个小环节出现问题时,整个程序都需要改写,这是非常麻烦的。

那怎么办?没关系,我们可以将整个网络连接过程分成数个层次(layer),每个层次都有特定的独立的功能,而且每个层次的程序代码可以独立撰写,因为每个层次之间的功能并不会互相干扰。 如此一来,当某个小环节出现问题时,只要将该层次的程序代码重新撰写即可。所以程序撰写也容易,整个网络概念也就更清晰。这就是目前常听到的 OSI 七层协议(Open System Interconnection)的概念。

这7个层次的相互关系如图2-2所示。

8ed7f3418c59a56ed36226b8af86d088.png

依据定义来说,越接近硬件的层次为底层(layer 1),越接近应用程序的则是高层(layer 7)。不论是接收端还是发送端,每一层次只认识对方的同一层次的数据。而整个传送的过程就好像人们在玩整人游戏一般,我们通过应用程序将数据放入第七层的包裹,再将第七层的包裹放到第六层的包裹内,依序一直放到第一层的最大的包裹内,然后传送出去给接收端。接收端的主机就得由第一个包裹开始,依序将每个包裹拆开,然后一个一个交给对应负责的层次来查看。这就是OSI 七层协议在层次定义方面需要注意的特色。

既然说是包裹,那我们都知道,包裹表面都会有个重要的信息,这些信息包括有来自哪里、要去哪里、接收者是谁等,而包裹里面才是真正的数据。同样的,在七层协议中,每层都会有自己独特的头部数据(header),告知对方这里面的信息是什么,而真正的数据就附在后头。我们可以使用图2-3所示的来表示这七层每一层的名字,以及数据是如何放置到每一层包裹内的。

仔细看图2-3中每个数据包的部分,上层的包裹是放入下层的数据中,而数据前面则是这个数据的报头。其中比较特殊的是第二层,因为第二层(数据链路层)主要是位于软件包(packet)以及硬件数据帧(frame)中间的一个阶层,它必须要将软件包装的包裹放入到硬件能够处理的包裹中,因此这个层次又分为两个子层来处理相对应的数据。因为比较特殊,所以可以看出,第二层的数据格式比较不一样,尾端还出现一个检查码呢。

caab9506189c8576e1a7722990919776.png

每一个层次所负责的任务是什么呢?简单地说,每一层负责的任务如表2-1所示。

表2-1  OSI七层协议

分层

负责内容

Layer 1

物理层

Physical Layer

由于网络传输介质只能传送 0 与 1 这种比特位,因此物理层必须定义所使用的传输设备的电压与信号等,同时还必须了解数据帧转成比特流的编码方式,最后连接实际传输介质并发送/接收比特信号

Layer 2

数据链路层

Data-Link Layer

这一层是比较特殊的一个层,因为其下层是实体的定义,而其上层则是软件封装的定义。因此第二层又分两个子层进行数据的转换操作。在偏硬件介质部分,主要负责的是 MAC (Madia Access Control),我们称这个数据包裹为 MAC 数据帧 (frame),MAC 是网络接口设备所能处理的主要数据包裹,这也是最终被物理层编码成比特流的数据。MAC 必须要经过通信协议来取得网络介质的使用权,目前最常使用的则是 IEEE 802.3 的以太网络协议。详细的 MAC 与以太网络请参考下节说明

至于偏向软件的部分则是由逻辑链接层 (Logical Link Control, LLC) 所控制,主要在多任务处理来自上层的数据包数据 (packet) 并转成 MAC 的格式,负责的工作包括信息交换、流量控制、失误问题的处理等

Layer 3

网络层

etwork Layer

这一层是我们最感兴趣的了,因为我们提及的 IP (Internet Protocol) 就是在这一层定义的。同时也定义出计算机之间的连接建立、终止与维持等,数据数据包的传输路径选择等,因此这个层次当中最重要的除了 IP 之外,就是数据包能否到达目的地的路由 (route) 概念了(续表)

分层

负责内容

Layer 4

传输层

Transport Layer

这一个分层定义了发送端与接收端的连接技术(如 TCP、UDP 技术),同时包括该技术的数据包格式、数据包的发送、流程的控制、传输过程的侦测检查与重新传送等,以确保各个资料数据包可以正确无误的到达目的端

Layer 5

会话层

Session Layer

在这个层次当中主要定义了两个地址之间的连接信道的连接与中断,此外,也可建立应用程序之间的会话、提供其他加强型服务如网络管理、建立与断开、会话控制等。如果说传输层是在判断数据数据包是否可以正确的到达目标,那么会话层则是在确定网络服务建立连接的确认

Layer 6

表示层

Presentation Layer

我们通过应用程序生成出来的数据格式不一定符合网络传输的标准编码格式,所以,在这个层次当中,主要的操作就是:将来自本地端应用程序的数据格式转换(或者是重新编码)成为网络的标准格式,然后再交给下面的传输层等的协议来进行处理。所以,在这个层次上面主要定义的是网络服务(或程序)之间的数据格式的转换,包括数据的加解密也是在这个层次上处理

Layer 7

应用层

Application Layer

应用层本身并不属于应用程序所有,而是在定义应用程序如何进入该层的沟通接口,以将数据接收或发送给应用程序,并最终展示给用户

事实上,OSI 七层协议只是一个参考的模型(model),目前的网络社会并没有什么很知名的操作系统在使用 OSI 七层协议的连接程序代码。不过,OSI 所定义出来的七层协议在解释网络传输的情况方面,可以解释得非常棒。因此大家都拿 OSI 七层协议来作为网络的教学与概念的理解。至于实际的联网程序代码,那就交给 TCP/IP吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值