源码先锋

源码先锋

我们上网的时候数据是如何在网络中传输的?详解数据包封装

admin 136 161

可能各位小伙伴或多或少都听说过OSI7层模型,知道从上到下的应用层、表示层、会话层、传输层、网络层、数据链路层与物理层。

但是各位是否想过这7层封装对于我们数据传输是怎么处理的呢,我们学习的时候又应该怎么把这么抽象的知识还原回去?下面就让大脸鹏从几个实际层面稍微展开一些OSI模型及数据包的封装知识。

我们从三个层面理解OSI及数据包封装

一、封装解封装的概念:

在OSI模型中,每一层的数据(payload)都要进行一次封装传递给下一层,最终到了物理层转化为计算机可以识别的01010高低电平信号再发送到对端,整个过程可以想象成邮寄包裹,我们把要邮寄的东西层层封装,我们要邮寄的东西就是数据(payload/data),信封上的地址可以想成是网络层的IP,通过IP找到目标,选择陆运或者空运(选择的运输方式就是数据链路层的介质),最后通过物理层送抵目标。目标收到包裹后一层一层的拆解封装,最终拿到邮寄的物品。具象到OSI模型请见下图。

OSI模型对应解封装数据

二、数据流层的作用

刚才我们已经举了例子,那么现在我们就要知道这每一层封装都在干什么,研究网络我们具象到传输层到物理层。

TCP/UDP出现在传输层也就是说我们传输层是要有TCP包头或者UDP包头的。

网络层负责IP层面的路径选择,那么必然我们的IP包头出现在网络层封装

数据链路层传递的是数据帧,我们的MAC包头(802.3)出现在这里

物理层有自己的等协议封装

数据流层

三、我们需要思考的内容

既然知道了数据包一层一层包裹上层数据的特性,那么我们就要展开思考几个问题。

首先数据包在网络中传递的大小是多少?每一次封装的包头对于数据payload在实际生产环境中到底有什么影响?

网工常做的802.1q封装(VLANTAG)出现在哪一层的封装中?IPSecOverGRE的VPN模型我们对我们的封装影响到底是什么?

以上几个问题都是需要我们思考的,也是真真正正工作中需要了解的问题IPSecOverGRE数据包的分析更是不但会解决实际问题,还是面试考点。

在我们初始OSI的时候我们先额外进行这些思考,我们在这里了解的核心还是拆解封装以及各层的包头情况。