网络学习:数据链路层Ethernet II协议详解

前言:

Ethernet II协议位于数据链路层,其包含MAC地址、数据类型和上层的数据报。

一、MAC地址格式

|---------|---------|-----------|---------------|
| 组织唯一标识符(OUI)24bit ||| 厂商分配(EUI) |
| I/G | G/L | 22bit | 24bit |

组织唯一标识符(OUI):

由IEEE(电气和电子工程师协会)分配给厂商,它包含24位。厂商再用剩下的24位(EUI,扩展唯一标识符)为其生产的每个网卡分配一个全球唯一的全局管理地址。

I/G (Individual/Group)

如果I/G=0,则代表单播地址,如果I/G=1,则代表多播地址.

G/L (Global/Local,也称为U/L位)

如果G/L=0 ,则是全球唯一的全局管理地址,由IEEE分配;如果G/L=1,则是本地管理地址,是网络管理员为了加强自己对网络管理而指定的地址。

对于I/GG/L 的位置**:** 有两种说话,一种是在Mac地址第一字节的第1和第2位。另一种是在Mac地址第一字节的第8和第7位

而Wireshark抓到包里的mac地址,IG位和GL位置就是第二种。其IG为0,LG也为0,表示单播地址,由IEEE管理,为全球唯一地址。

二、Ethernet II帧格式

|--------|---------|--------|----------|-----------------|--------------|
| 前导包 | 目的MAC地址 | 源MAC地址 | 类型(Type) | 数据(Playload) | 校验(FCS) |
| 8 Byte | 6 Byte | 6 Byte | 2 Byte | 46 ~ 1500 Byte | 4 Byte CRC检验 |

1.前导包:

占8个字节,0 1 相间隔组成。其作用是用于给基站识别即将到来的数据。

2.目的mac地址和源mac地址:

接收设备的mac地址和发送设备的mac地址。

3.类型:

占2个字节,用于标记数据(playload)的协议类型。

4.常见类型(Type) Playload中的协议类型

0x0800 IPv4(Internet Protocol Version 4)
0x0806 ARP (Address Resulotion Protocol)
0x0835 RARP (Resever Address Resulotion Protocol)
0x86DD IPv6 (Internet Protocol Version 6)

5.数据:

46-1500个字节, Ethernet II 规定最小的数据量为46个字节。

6.校验:

4个字节,具体算法为CRC算法。
而 Wireshark抓到包里就没有前导包0101间隔和校验(FCS),因为网卡进来的数据是已经校验正确的数据包,会相应的处理掉了前导包和FCS,数据不正确的包已经被丢弃了。

通过分析可得目的MAC地址、源MAC地址和类型IPV4(0x0800),而数据部分为网络层的IP数据报和传输层层的TCP数据报文。

三、总结

1.IG=0表示单播,反之为多播地址,其位置有2种,一种为第1位,另一种为第8位。

2.网卡进来的数据是已经校验正确的数据包。

3.Ethernet II协议位于数据链路层,其包含MAC地址、数据类型和上层的数据报。

相关推荐
YMWM_16 分钟前
UDP协议详解:从原理到Python实践
网络·网络协议·udp
pengyi87101528 分钟前
共享 IP 与独享 IP 怎么选?被封后升级方案避坑
网络·网络协议·tcp/ip
YuanDaima204829 分钟前
Linux 进阶运维与 AI 环境实战:进程管理、网络排错与 GPU 监控
linux·运维·服务器·网络·人工智能
凯勒姆2 小时前
网工网络设备原理及配置
网络·智能路由器
上海云盾-小余3 小时前
网站恶意爬虫拦截策略:智能识别与封禁实操方案
网络·爬虫·安全·web安全
xhbh6663 小时前
网关端口映射和路由器端口转发有什么区别?配置要点全解析
运维·服务器·网络·智能路由器·端口映射·映射·无痕网关
半壶清水3 小时前
用P4 Tutorial、BMv2 和 Mininet‌解析网络第一集------模拟环境搭建
运维·服务器·网络·网络协议·tcp/ip
高翔·权衡之境3 小时前
主题10:实时性——硬实时与软实时
服务器·网络·驱动开发·信息与通信·智能硬件
黄筱筱筱筱筱筱筱4 小时前
交换综合实验
网络
Irissgwe4 小时前
一、网络基础概念
linux·网络·websocket·网络协议·socket·linux网络编程