数据的封装和解封装
目标
- 理解数据的封装与解封装过程
- 针对于一个简单的网络环境,能够独立讲解出网络传输过程
目录
一、数据封装过程
应用层:
将原始数据转化为计算机能够识别的二进制数,传递给传输层
传输层:
TCP头部关键信息:端口号
应用层数据前加上TCP头部
在传输层,有固定的传输数据单元PDU,来决定是否将数据分割成小段,在每一个小段的前面封装TCP头部,封装成数据段,TCP头部里有一个关键字段“端口号”用来标识上层的数据使用什么协议或程序进行传输。
网络层:
数据段前加上IP头部
IP头部关键信息:IP地址
进行逻辑地址寻址,将每一小段添加上IP头部封装,封装成数据包,主要有两个字段(源IP,目的IP)
数据链路层:
数据包前加上MAC头部
MAC头部关键信息:MAC地址
建立逻辑连接、进行物理地址MAC寻址,进行Mac头部封装,封装成数据帧,主要字段是(源MAC,目的MAC)当访问不同网络时,目的的MAC地址是自己网关的MAC地址,相同网络时,目的MAC是目标主机的
物理层:
将二进制的数转换为比特流,再转换成电信号,通过网卡,再通过网线传输出去
二、数据解封装过程
物理层:
将电信号形成的比特流,转化为二进制的数,并将数据传输到数据链路层
数据链路层:
将数据链路层的数据帧拆开,查看目的MAC地址是否是自己的,如果是,继续传递给网络层,如果不是直接丢弃
网络层:
查看网络层IP头部,查看目的IP地址是不是自己的,如果是继续传输给传输层,如果不是直接丢弃
传输层:
查看TCP头部,通过端口号,判断该往哪里传,重组数据形成二进制数,传输到应用层
应用层:
将二进制数据转化为原始数据
三、每一层对应的网络设备
设备在哪一层,主要是看它工作在哪一层
物理层:网卡
数据链路层(二层):交换机
网络层:路由器,三层交换机
传输层:传统防火墙
应用层:计算机
四、简单网络数据封装解封装实例
主机A现在要发送数据给主机B,发现处于不同网段中,进行数据封装
传输层封装对应的端口号,网络层封装源IP是主机A,目的IP是主机B,数据链路层:源mac是主机A,目的MAC是直连路由器A(原因是不同网段传输,那么目的MAC就是主机直连的路由MAC即网关的mac)。封装至物理层,通过网线传递给交换机A,
由于交换机A是工作在二层的网络设备,那么交换机A解封至数据链路层,由于交换机工作原理,交换机中维护了一张mac地址表,查看源mac如果不在自己表中,就进行学习记录到表中,然后进行封装至物理层广播出去,如果在自己表中,那么直接找到对应端扣将原始数据进行封装后转发,接着进行数据传输,传输至路由器A,
解封至数据链路层,查看mac地址是不是自己的,如果是就继续解封至网络层,查看目标IP地址,根据路由器中的路由表得出目标IP是否可到达,如果可到达重新进行数据链路层封装,封装过程中,会请求下一跳路由的Mac地址作为目的mac,将自己的mac作为源mac,找到对应接口进行转发出去,如果不可达,会返回给原始目标。
传输至路由器B,解封装至数据链路层,查看目的mac是不是自己,如果是,继续解封装至网络层,查看目的ip,根据路由器中的路由表得出目标IP是否可到达,如果可到达重新进行数据链路层封装,封装过程中,会请求下一跳路由的Mac地址作为目的mac,将自己的mac作为源mac,找到对应接口进行转发出去,
继续传输至交换机B,交换机属于二层设备,所以解封装至数据链路层,由于交换机工作原理,交换机中维护了一张mac地址表,查看源mac如果不在自己表中,就进行学习记录到表中,然后进行封装至物理层广播出去,如果在自己表中,那么直接找到对应端扣将原始数据进行封装后转发,接着进行数据传输,
传输至主机b,解封装至应用层。