以太网帧解析

注:本文参考了CSDN博主「OshynSong」的原创文章【https://blog.csdn.net/u010487568/article/details/39329791】


解析以太网数据帧的关键是获取类型字段,然后根据类型字段将数据字段的数据交给上层协议进行处理,同时保存下目的MAC地址和源MAC地址,以供后续其他使用。

以太网帧数据格式:

1.前同步码

前7B都是10101010,最后1B是10101011。

用于将发送方与接收方的时钟进行同步,由网卡适配器接收帧时同步时钟使用,不会在接收方显示

由于有不同的以太网类型和不完全精确的发送、接收帧速率,因此在传输前需要进行时钟同步。

2.MAC地址

6Bytes共128bits的MAC物理地址,用于标识局域网中的每个主机。

目的MAC可以是某个机器的物理地址,也可以是FF-FF-FF-FF-FF-FF广播MAC地址。

3.类型

解析以太网数据帧的关键。接收方根据此字段进行多路分解,从而达到解析以太网帧的目的,将数据字段交给对应的上层网络层协议,这样就完成了以太网作为数据链路层协议的工作。

类型字段是网络协议分层设计减小耦合度的精心设计,允许以太网多路复用网络层协议,支持除IP协议之外的其他网络层协议,或者是承载在以太网帧里的协议(如ARP协议)。

根据 IEEE802.3,以太网类型字段(EtherType 字段)是两个字节的字段,IEEE RAC EtherType 字段批准权威机构负责检查和批准。

下表为常用的以太网承载的协议,通过判断类型字段就可以解析以太网数据帧,并交由上层协议进一步处理。

以太网类型(16进制) 对应协议
0x0800 网际协议(IP)
0x0806 地址解析协议(ARP : Address Resolution Protocol)
0x0808 帧中继 ARP (Frame Relay ARP)
0x8035 反向地址解析协议(RARP:Reverse Address Resolution Protocol)
0x8035

动态反向地址解析协议 (DRARP:Dynamic RARP)

0x86DD IPv6(Internet Protocol version 6)
0x880B 点对点协议(PPP:Point-to-Point Protocol)
0x88CC 链接层发现协议(LLDP:Link Layer Discovery Protocol)

0x07C3=1987,这个是服务端的监听端口。

TCP,UDP,ICMP,IGMP的数据包:ICMP常见应用是ping命令

4.数据

在交换式以太网中,一台主机向局域网中的另一台主机发送一个IP数据报,这个数据报封装在以太网帧结构中作为其有效载荷

以太网的最大传输单元(MTU)是1500Bytes,如果IP数据报超过1500B,启用IP协议的分片策略进行传输。

以太网的最小传输数据长度为46Bytes,如果不够必须要填充到46B

5.循环冗余校验CRC

用来让接收方的网卡适配器检查接收的到数据帧是否有错误。

如果校验不合格就丢弃,只有合格的数据帧才会被网卡接收,由网卡适配器硬件直接响应,因此无需管理

 

 

你可能感兴趣的:(计算机网络,计算机网络)