以太网帧的结构有多少种?解决办法

以太网帧的结构有多少种?
为什么在网上找到的以太网格式有的是
目的地址|源地址|类型|数据|CRC
而有的是
前导码|目的地址|源地址|类型|数据|CRC
到底有哪几种/?
现在用的又是哪种?
------解决方案--------------------
引用:
引用:

引用:
就一种:目的地址
------解决方案--------------------
源地址
------解决方案--------------------
类型
------解决方案--------------------
数据
------解决方案--------------------
CRC
前导码表示提醒对方注意接收接下来的一系列码流


前导码占8个字节。那么为什么在定义以太网结构的时候没有没有定义前导码呢?

C/C++ code


struct ethhdr {
__u8    h_dest[ETH_ALEN];    /* 目的以太网地址*/
_……

不好意思,这样说不对。
前导码用于同步,而以太网的帧是变长的,因此需要前导码来标识每个帧的起始与结束。是每个帧之间都会有的。
我觉得之所以不把前导码放到struct ethhdr中,是因为前导码不是TCP/IP协议的一部分,它只是以太网为避免纷乱的一种手段。
而且这个struct ethhdr是不变的,而前导码有可能会随着不同网络的不同和发展而变化。