1、简介
以太网帧,指以太网链路上传输的数据包。以太网帧有前导码、帧首定界符、以太网头部、数据、校验和组成,其中前导码、帧首定界符是物理层封装的。
2、格式
前导码:调整时钟,使目的主机接收器时钟与源主机发送器时钟同步。由二进制10交替组成。
帧首定界符:标志着从帧首定界符以后的数据都是以太网帧的数据,前6bit是二进制的1和0的交替组成,最后两位是11。
目的MAC地址:下一跳的接口MAC地址
源MAC地址:本机发送报文的物理接口的地址
类型:用于告知上层解析时,使用什么协议解析,解封是可以根据类型知道对应的协议是什么协议。
网络层数据:上层的数据,在数据链路层里网络层数据是不可见的,统称为数据。数据的最小长度必须为46字节以保证帧长至少为64字节,最大长度为1500字节。
帧校验和:一种错误检测机制,计算目的mac、源mac、类型、网络层数据,得出循环冗余校验码(CRC),将计算出的循环冗余校验码(CRC)填入帧校验和(FCS)里。
3、报文解析
Destination:目的mac地址
Source:源mac地址
Type:类型
4、封装解封过程
4.1、封装
1、报文封装到以太网帧时,通过ARP协议查寻到下一跳IP的MAC地址,然后把MAC地址放到目的MAC字段里。用于对下一跳设备的寻址。
2、把自己发送报文物理网卡的MAC地址放到源MAC字段里。
3、通过判断上层协议是什么协议,然后把上层协议对应的协议类型放到类型字段里。
4、添加完后,把目的MAC、源MAC、类型,网络层数据一起计算出CRC的值,然后把CRC填到帧校验和字段里。
5、封装前导码和帧首定界符,发送出去
4.2、解封
1、收到报文后,剥去前导码和帧首定界符
2、解封以太网帧,判断目的MAC字段里的MAC地址和接收报文的网卡MAC是否一致
3、MAC地址一致后,取出以太网帧的源MAC地址,记录到自己的MAC地址表中。
4、取出类型字段里的类型,通过类型来确定上层协议应该用什么解析。
5、传给上层,由上层协议继续解析。