1.2 以太网帧结构 (数据链路层)

1、网络通信协议

上层协议:关注于逻辑数据关系的协议;
底层协议:关注于物理数据流的协议。如:IEEE802 标准,PPP 协议,HDLC 协议。

2、分层模型——OSI

Open System Interconnection Reference Model:开放系统互联参考模型。
由下到上:
物理层:在设备之间传输比特流,规定了电平、速度和电缆针脚。
数据链路层:将比特组合成字节,再将字节组合成帧,使用链路层地址(以太网使用 MAC 地址 )来访问介质,并进行差错检测。
网络层:提供逻辑地址(如 IP 地址),供路由器确定路径。
传输层:提供面向连接或非面向连接的数据传递以及进行重传前的差错检测。
会话层:负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。
表示层:提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。
应用层:OSI 参考模型中最靠近用户的一层,为应用程序提供网络服务。

3、分层模型——TCP/IP

TCP/IP 模型将网络分为四层,它不关注底层物理介质,主要关注终端之间的逻辑数据流转发。
TCP/IP 模型的核心是网络层传输层,网络层解决网络之间的逻辑转发问题,传输层保证源端到目的端之间的可靠传输。最上层的应用层通过各种协议向终端用户提供业务应用。

4、数据封装

PDU:Protocol Data Unit 协议数据单元。
PDU在不同层次被赋予了不同的名称,其封装过程:
上层数据——传输层 + TCP 报头—— Segment(数据段)
Segment——网络层 + IP 报头—— Packet(数据包)
Packet——数据链路层+数据链路层报头—— Frame(数据帧)
Frame——比特流

5、终端之间的通信

数据包在以太网物理介质上传播前必须封装头部和尾部信息,封装后的数据包称为数据帧,数据帧中封装的信息决定了数据如何传输。
以太网上传输的数据帧有两种格式:Ethernet_II 和 IEEE802.3。选择哪种格式由 TCP/IP 协议簇中的网络层决定。

6、帧格式

IEEE802.3 格式:Type 字段值小于等于 1500(0x05DC)。
Ethernet_II 格式:Type 字段值大于等于 1536(0x0600)。
以太网中大多数的数据帧使用的是 Ethernet_II 格式。
以太网帧中还包括源 MAC 地址和目的 MAC 地址,以及帧校验序列字段。

7、Ethernet_II 帧格式

1.2 以太网帧结构 (数据链路层)
Ethernet_II 帧格式

DMAC:Destination MAC 目的 MAC 地址,6 个字节。
SMAC:Source MAC 源 MAC 地址,6 个字节。
Type:类型字段。标识数据字段中包含的高层协议,2 个字节。0x0800 代表 IP 协议帧;0x0806 代表 ARP 协议帧。
Data:数据字段。网络层数据。最小长度必须为 46 字节以保证帧长至少为 64 字节,最大长度为 1500 字节。
FCS:循环冗余校验字段。4 个字节。

8、IEEE802.3 帧格式

IEEE802.3 帧格式

Length 字段取代了 Ethernet_II 中的 Type 字段,它定义了 Data 字段包含的字节数。
LLC:Logical Link Control,逻辑链路控制由目的访问点 D.SAP (Destination Service Access Point)、源服务访问点 S.SAP(Source Service Access Point)和 Control 字段组成。
SNAP:Sub-network Access Protocol,子网访问协议由机构代码(Org Code)和类型(Type)字段组成。Org Code 三个字节都为 0 。Type 字段的含义与 Ethernet_II 帧中的 Type 字段相同。
IEEE802.3 帧根据 D.SAP 和 S.SAP 字段的取值不同,可分为以下几类:
a) 当 D.SAP 和 S.SAP 都取特定值 0xFF 时,802.3 帧就变成了 Netware-Ethernet 帧,用来承载 NetWare 类型的数据;
b) 当 D.SAP 和 S.SAP 都取特定值 0xAA 时,802.3 帧就变成了 Ethernet_SNAP 帧,可用于传输多种协议。
c) D.SAP 和 S.SAP 其它的取值均为纯 IEEE802.3 帧。

9、数据帧传输

以太网在二层链路上通过 MAC 地址来唯一标识网络设备,实现局域网上网络设备之间的通信。MAC 地址也叫物理地址,烧录在网卡的 ROM 中。以太帧封装完成后通过物理层转换成比特流在物理介质上传输。

10、以太网的MAC地址

MAC 地址由两部分组成,共48比特。其前 24 位为 OUI (Organizationally Unique Identfier,组织唯一标识符),后 24 位为厂商产品的唯一序列号。

11、单播 Unicast

表示帧从单一源端发送到单一目的端。
MAC 地址的 OUI 中,第一字节第 8 个比特表示地址类型。对于主机 MAC 地址,这个比特固定为 0,表示目的 MAC 地址为此 MAC 地址的帧都是发送到某个唯一的目的端。
在冲突域中,所有主机都能收到源主机发送的单播帧,但是其它主机发现目的地址与本地 MAC 地址不一致后,会丢弃收到的帧,只有真正的目的主机才会接收并处理收到的帧。

12、广播 Broadcast

表示帧从单一的源发送到共享以太网上的所有主机。
广播帧的目的 MAC 地址为 FF:FF:FF:FF:FF:FF,所有收到该广播帧的主机都要接收并处理这个帧。
广播方式会产生大量流量,导致带宽利用率降低,进而影响整个网络的性能。
当需要网络中所有主机都能接收到相同的信息并进行处理的情况下,通常会使用广播方式。

13、组播 Multicast

组播转发可以理解为选择性的广播,主机侦听特定组播地址,接收并处理目的 MAC 地址为该组播 MAC 地址的帧。
组播 MAC 地址和单播 MAC 地址是通过第一字节中的第 8 个比特位区分的。组播 MAC 地址的第 8 个比特位为 1,而单播 MAC 地址的第 8 个比特位为 0。
当需要网络上的一组主机(而不是全部主机)接收相同信息,并且其它主机不受影响的情况下通常会使用组播方式。

14、数据帧的发送和接收

帧从主机的物理接口发送出来后,通过传输介质传输到目的端。共享网络中,这个帧可能到达多个主机。主机检查帧头中的目的 MAC 地址,如果目的 MAC 地址不是本机 MAC 地址,也不是本机侦听的组播或广播 MAC 地址,则主机会丢弃收到 的帧。
如果目的 MAC 地址是本机 MAC 地址,则接收该帧,检查帧校验序列(FCS)字段,并与本机计算的值对比来确定收到的帧是否完整。如果帧的 FCS 值与本机计算的值不同,主机会认为帧的完整性已被破坏,丢弃该帧。如果该帧通过了 FCS 校验,由主机会根据帧头中的 Type 字段来确定将帧发送给上层哪个协议处理。如果值为 0x0800,表明该帧需要发送到 IP 协议处理,如果值为 0x0806,则表明此帧将发送到 ARP 协议处理。在发送给上层协议前,帧的头部和尾部会被剥掉。

分享