本节书摘来自异步社区《CCNA学习指南:Cisco网络设备互连(ICND1)(第4版)》一书中的第2章,第2.4节数据通信流程,作者【美】Anthony Sequeira,更多章节内容可以访问云栖社区“异步社区”公众号查看
2.4 数据通信流程
CCNA学习指南:Cisco网络设备互连(ICND1)(第4版)
网络上的所有通信均来自源位置,并将被发送到目标位置。使用OSI参考模型中列出的全部或部分层的网络协议在设备间传输数据。您应该还记得,第7层是应用程序通信协议的一部分,而第1层则是媒体通信协议的一部分。由于协议的各层结构,数据帧能够游走于整个计算机网络。我们通过以下方法从网络中的一台设备传送数据:将信息从应用向下传送到协议栈,在模型各层分别添加适当的报头。这种将数据传送到协议栈并添加报头和报尾的方法称为封装。封装数据并通过网络传送数据后,接收设备将删除添加的信息,并以报头中的信息作为指引将数据传送到上至协议栈下至适当应用。
数据封装是一个重要的网络概念。其功能在于,促进设备上的类似的层(称为对等层)交流寻址等关键参数和控制信息。
虽然封装看起来似乎是一个抽象概念,但其实相当简单。想象一下,您要将咖啡杯寄给另外一个城市的某位好友。比方说我本人,希望将一个波士顿红袜队纪念版咖啡杯寄给纽约洋基队球迷朋友。如何将这个咖啡杯寄到那里呢?主要通过陆路或航空运输。肯定不能出去直接将咖啡杯丢在公路上或者扔上飞机,这样根本无法送达。需要通过一项服务取件并负责送达。因此,需要致电亲睐的物流公司,将咖啡杯交给他们运送。但是,这还不是全部,下面是完整的流程。
步骤1 将咖啡杯包装到盒子中。
步骤2 在盒子上贴上地址标签,以便物流公司查看送货地址。
步骤3 将盒子交给物流公司。
步骤4 物流公司负责将它运输到最终目的地。
该流程与协议栈用来跨网络发送数据的封装方法类似。包裹抵达后,您的好友必须反向执行这项流程。从物流公司取回包裹,查阅地址标签确定寄件人,最终打开盒子拿出咖啡杯。反向封装过程称为解封。下一节将使用网络数据(而非球队纪念版咖啡杯)更加详细地介绍封装过程和解封过程。
2.4.1 封装
如上一节中所示,数据网络封装与寄送咖啡杯的过程类似。但是,不是将咖啡杯寄送给好友,而是将信息从一台设备的应用程序发送到另一台设备的应用程序。通过网络发送的信息称为数据或数据包。
封装技术会在网络传输之前利用必要的协议信息将数据包装起来。因此,随着沿OSI参考模型的各层向下传送数据,各OSI层会先向数据添加报头(如果需要会添加报尾),然后将其传送到下一层。报头和报尾包含网络设备和接收方控制信息,从而确保妥善发送交付数据,并且确保接收方能够正确解读数据。 图2-2阐释了封装的工作原理,它显示了数据通过各层的方式。
![0ce2c0abfb48b2953aece91e3a0a118eadd59cfa](https://yqfile.alicdn.com/0ce2c0abfb48b2953aece91e3a0a118eadd59cfa.png?x-oss-process=image/resize,w_1400/format,webp)
数据封装的步骤如下。
步骤1 用户数据从应用程序发送至应用层。
步骤2
应用层向用户数据添加应用层报头(第7层报头)。第7层报头和原始用户数据变成向下传送到表示层的数据。
步骤3 表示层向数据添加表示层报头(第6层报头)。该数据随即变成向下传送到会话层的数据。
步骤4 会话层向数据添加会话层报头(第5层报头)。该数据随即变成向下传送到传输层的数据。
步骤5 传输层向数据添加传输层报头(第4层报头)。该数据随即变成向下传送到网络层的数据。
步骤6 网络层向数据添加网络层报头(第3层报头)。该数据随即变成向下传送到数据链路层的数据。
步骤7
数据链路层向数据添加数据链路层报头和报尾(第2层报头和报尾)。第2层报尾通常是帧校验序列(FCS)。接收方使用FCS来检测数据是否出错。该数据随即变成向下传送到物理层的数据。
步骤8 接着物理层依据介质类型定义将以位(bit)为单位的数据传送到网络介质。
2.4.2 解封
当远程设备接收到位序列时,远程设备物理层会将以位为单位的数据传送到数据链路层进行操作。数据链路层将执行以下流程,人们将其称为解封。
步骤1 检查数据链路报尾(即FCS),以查看数据是否出错。
步骤2 如果数据出错,则予以丢弃。
步骤3 如果数据没有出错,则数据链路层会读取并解释数据链路报头中的控制信息。
步骤4
剥离数据链路层的报头和报尾,然后根据数据链路层报头中的控制信息将其余的数据向上传送到网络层。 随后的每个层都会执行类似的解封过程,如图2-3所示。
![200facf8eef63cf9d2d5909cea3c763585f1cc2d](https://yqfile.alicdn.com/200facf8eef63cf9d2d5909cea3c763585f1cc2d.png?x-oss-process=image/resize,w_1400/format,webp)
将解封想象为读取包裹上的地址以确定是否寄送给您。如果确实是寄送给您,则打开并取出包裹物品。