以太网帧格式

以太网有两种数据包格式

1.Ethernet II

总共包括了5个部分,其中重要的是二层地址(MAC ADDRESS)

Ethernet II报文

目的MAC地址

(Destination)

6 BYTE

源MAC地址

(Source)

6 BYTE

类型

(TYPE)

2 BYTE

数据帧

(DATA)

46~1500 BYTE

帧校验

(CRC)

4 BYTE

目的MAC地址:6 字节,标志数据帧接收方的数据链路层地址(二层地址)

源MAC地址:6 字节,标志数据帧发送方的数据链路层地址(二层地址)

类型:2 字节,表示数据链路层之上的第三层协议的协议类型

        例如: type = 0x0800,代表第三层使用的就是IPV4

                    type = 0x86dd,代表第三层使用的就是IPV6

帧校验:用于数据帧的差错校验,传输过程中数据有没有变化。这个CRC是根据以太网的帧头部分(源MAC,目的MAC,类型,14个字节)和负载部分(数据帧,包括3~7层的数据计算得到),用于数据帧的纠错。纠错机制就是源端计算一次数值,填写在CRC字段中,目的端收到之后在进行一次计算,将两次的结果进行比较,用于保证可靠传输。

数据经过以太网的打包,增加了18个字节

数据帧的大小也有规范:最小是46字节,最大是1500字节。所以可以得出以太网帧的大小范围

最小数据帧:6(目的MAC) + 6(源MAC) +2(类型)+ 46(数据帧) + 4 (CRC) = 64 字节

最大数据帧:6(目的MAC) + 6(源MAC) +2(类型)+ 1500(数据帧) + 4 (CRC) = 1518 字节

备注:

帧头:源MAC+目的MAC+类型 = 帧头

帧尾:CRC校验字段 

2.802.3(MAC子层) + 802.2(LLC子层)格式

目的MAC地址

(Destination)

6 BYTE

源MAC地址

(Source)

6 BYTE

长度

(Length)

2 BYTE

802.2子层(LLC子层)

8 BYTE

数据帧

(DATA)

38~1492 BYTE

帧校验

(CRC)

4 BYTE

802.3的组成部分:目的MAC + 源MAC + 长度+ CRC

长度:2 字节,表示的是802.2子层和数据帧负载部分的数据总长度,单位是字节,取值范围为46~1500

802.2(逻辑链路控制,LLC logic link control):8 字节,由于LLC已经占了8个字节,所以数据帧的范围减少了8,取值范围变成了38~1492 字节

备注:

怎么判断帧头的最后两位是类型(type)还是长度(length)

类型:帧头最后两个字节的取值> = 0x0600,1536时,其含义是类型(type)

长度:帧头最后两个字节的取值<= 0x05dc,1500时,其含义就是长度(length)

802.3(MAC子层) + 802.2(LLC子层)格式的以太网帧使用比较少。

3.以太网帧的前导码、帧开始界定符和帧间隙

在以太网帧链路中传输的时候,并不是直接把以太网数据帧发出去,而是一个以太网帧之前需要发送8个固定的字节,分别为前导码(7个字节)和帧开始界定符(1个字节)。只要想要发送以太网帧,必须先发送以太网的前导符和帧开始界定符。

前导码

7 BYTE

帧开始界定符

1 BYTE

以太网帧

帧间隙

最小

12 BYTE

前导码

7 BYTE

帧开始界定符

1 BYTE

以太网帧

前导码(preamble):7字节,由0和1交互构成,固定取值如下

10101010

0xAA

10101010

0xAA

10101010

0xAA

10101010

0xAA

10101010

0xAA

10101010

0xAA

10101010

0xAA

10101010

0xAA

帧开始界定符(start of frame delimiter,SFD):一字节,固定取值为10101011(0xAB)

前导码+帧开始界定符:一共8个字节,代表了一个以太网帧的开始

帧间隙(interframe gap,IFG):指的是以太网中相邻以太网帧之间的时间间隙,简称IFG

数据帧之间的最小的时间间隔为发送12个字节(96 bit)的数据所对应的时间,计算公司如下,

IFG(s) = 96 (bit) /带宽(bps)

举个栗子,如果接口带宽为100Mbps(百兆带宽),则IFG = 96 / 100 = 960 ns

举个栗子,如果接口带宽为1000Mbps(百兆带宽),则IFG = 96 / 100 = 96 ns

所以说,带宽越大,IFG越小。一般就说IFG的大小为12字节。

4.MAC地址的构成

MAC总共6个字节,分为前后各3个字节。

组织唯一标识符(3个字节)

OUI Origanizationally unique Identifier

由IEEE来分配

扩展唯一标识符

Extended Unique Identifier EUI

由厂家分配

这只是一个小知识点,实际上MAC地址根据厂商号和批次号唯一确定。

5.数据传输过程中的MAC地址的变化

以太网帧格式_第1张图片

 数据包在传输过程中,每经过一个三层路由设备,其数据链路层的帧头的MAC地址都会发生变化。这里的三层路由设备指的是具有具有路由功能的网络设备,如路由器,三层交换机,防火墙。

三层路由设备不包括普通的二层交换机。

这里有一个疑问,二层交换机 三层交换机是啥区别。盲猜三层交换机有网卡,二层没有。

6.TCP/IP之间的层次关系

以太网帧格式_第2张图片

 下层中会标识上层协议的原因就是因为上层协议的类型比较多,不标识的话接收方根本不知道怎么处理这个数据包,接收方根据标识逐步解包进行分析。

举个栗子,下面是一个以太网数据包,以16进制进行表示

以太网帧格式_第3张图片

 首先这是一个以太网报文,二层网络,根据以太网的报文结构

数据链路层 2层

6 字节目的MAC 8C-53-C3-DB-14-6F,6 字节源MAC 24-41-8C-74-FC-66

下面是重点,2字节 08-00,到底是Ethernet II的报文还是802.3的报文,根据数值可以判断,0x0800 > 0x0600,所以是Ethernet II报文,而且是IPV4协议的。

网络层 3层

根据IPV4的报文进行分析

以太网帧格式_第4张图片

 传输层 4层

以太网帧格式_第5张图片

 应用层 5层

以太网帧格式_第6张图片

注:内容整理自B站UP主《牛兮兮的书》的系列视频,视频讲解非常好。

你可能感兴趣的:(以太网辅助知识,网络,服务器,linux)