以太网数据帧由报头和数据区组成。在以太网帧的报头中包含目地址端及源地址,各6个字节,帧的报文部分包含的是数据种类,2个字节。通常抓到的数据包已经去掉了同步码和帧分界符。报头部分的定义如图1所示。
在具体编程实现中,定义以太网数据帧数据结构描述_ETHDR如下:
typedef struct _ETHDR
{
unsigned char eh_dst[6];
unsigned char eh_src[6];
unsigned short eh_type;
}ETHDR;
typedef ETHDR* LPETHDR;
根据类型字段eh_type可以判断是哪种数据包,一般常用的有:0x0800表示IP数据包,0x0806表示ARP数据包。
5.2.1HCIA-Datacom 华为认证数通工程师在线课程:以太网帧介绍