• Windows与网络基础-22-数据的封装和解封装


    目录

    一、数据的封装与解封装

    1.1数据的封装过程

    1.2数据的解封装过程

    二、常用设备对应的工作层

    三、数据传输实例分析


    目标:

    1. 理解数据的封装和解封装过程
    2. 针对于一个简单的网络环境能够独立讲解出网络的传输过程

    注意:数据传输,一般是针对TCP/IP的五层模型学习

    一、数据的封装与解封装

    1.1数据的封装过程

    (以两台通信主机为例)

    应用层:原始数据转换成电脑能够识别的二进制数据

    传输层:在传输层有固定的传输数据单元PDU,来决定是否需要将数据分割成很多小段,在每个数据段的前面封装一个TCP头部:关键信息—端口号,标识上层数据使用什么协议或程序进行传输。

    网络层:将传输层传来的数据封装IP头部,形成数据包,进行逻辑地址寻址,关键信息:源IP、目的IP

    数据链路层:将网络层传来的数据包,封装MAC头部。建立逻辑连接,进行物理地址寻址,主要字段:源MAC(主机本身)、目的MAC(如果是跨网段通信,则是与其直连路由接口的MAC)【数据帧】

    物理层:将二进制数据组成的比特流,转换为电信号,通过网卡再通过网线再网络中传输。

    1.2数据的解封装过程

    物理层:将电信号转化为二进制数据,并发送至数据链路层

    数据链路层:查看目的MAC地址,是自己拆掉MAC头部继续传输。若不是,直接丢弃

    网络层:查看目的IP地址,是自己茶雕IP头部继续传输。若不是,直接丢弃

    传输层:查看TCP头部中的端口号、判断数据该传到哪里,然后重组数据,传输至应用层

    应用层:将二进制数据转换为原始数据

    二、常用设备对应的工作层

    一层(物理层):网卡

    二层(数据链路层):二层交换机

    三层(网络层):路由器、三层交换机(工作在二层和三层)

    四层(传输层):传统防火墙

    五层(应用层):计算机

    现实中:很多设备都是工作在多层,比如上网行为管理、三层交换机等等

    三、数据传输实例分析

    主机A:进行数据封装:应用层:将原始数据转化为二进制数,传输层:封装对应的端口号,网络层:封装源IP(主机A),目的IP(主机B)、数据链路层:封装源MAC(主机A)、目的MAC(与主机A直连路由器A的接口)、封装至物理层。通过网线传输至交换机A。

    根据交换机的工作原理,交换机A会解封装至数据链路层,交换机中维护了一张·MAC地址表,查看源MAC地址是否在自己表中。如果不在就学习并记录,再查看目的MAC,如果在,通过对应接口直接将数据重新封装后转发出去,(如果目的MAC无记录,需要通过广播的方式学习,然后记录到表中)

    根据路由器的工作原理,路由器A会解封到数据链路层,查看目的MAC是不是自己,如果是继续解封装至网络层,查看数据包头部中的目的IP,(根据路由表、是否有源IP和目的IP的路由条目,判断目标IP是否可达,若没有路由记录,返回给主机A,目标主机不可达。)如果有路由条目记录,将数据重新封装至物理层(二层封装时会请求下一跳设备的MAC地址作为目的MAC地址,ARP请求),按照对应接口转发出去。

    数据到达路由器B,数据解封装至网络层,查看路由表中是否有,源IP和目的IP记录,由于目的IP是与其直连的设备,肯定有记录,所以重新进行数据封装后,按照路由表对应的条目,将数据转发给主机B。

  • 相关阅读:
    【面试经典150 | 】颠倒二进制位
    编写OpenCL程序的基本步骤
    小程序学习笔记
    我的创作纪念日
    Linux之sqlserver客户端安装和使用简介
    面试机器学习你一定会遇到的知识点汇总
    【JVM】类加载的过程
    UE4 回合游戏项目 17- 进入指定区域触发战斗事件
    设计模式之享元模式
    如何成就更高远控帧率和流畅度?向日葵SADDC算法浅析
  • 原文地址:https://blog.csdn.net/weixin_46232917/article/details/126773106