文章目录
- 前言
- 一、数据链路层概述
- 二、终端之间的通信
- 三、帧格式
- 1.Ethernet_II型
- 2.IEEE 802.3
- 四、MTU分析
- 五、数据帧的传输
- 1.MAC地址
- 2.单播
- 3.广播
- 4.组播
- 5.数据帧的收发
前言
网络中传输数据需要定义并遵循一些标准,以太网是根据IEEE802.3标准来管理和控制数据帧的,了解IEEE802.3标准是充分理解以太网中链路层通信的基础。
一、数据链路层概述
数据链路层(data link layer)是OSI参考模型中的第二层,介乎于物理层和网络层之间。
数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自物理层的数据可靠的传输到相邻节点的目标机网络层。
数据链路层的传输单元:帧
工作在二层的网络设备:交换机
二、终端之间的通信
数据链路层控制数据帧在物理链路上传输
数据包在以太网介质上传播之前必须封装头部和尾部信息,其封装后的数据包称为数据帧,数据帧中封装的信息决定了数据如何传输。
以太网上传输的数据帧有两种格式,选择哪种格式由TCP/IP协议簇中的网络层决定。
三、帧格式
两种帧格式:Ethernet_II 和 IEEE802.3
Ethernet_II 帧格式,是上世纪80年代提出的DIX v2格式。Ethernet_II 后来被IEEE802标准接纳,并写进了IEEE802.3x-1997的3.2.6节。
IEEE802.3帧格式是1983年提出的
Ethernet_II 和 IEEE802.3两种格式的主要区别在于Ethernet_II格式中包含一个Type字段,标识以太帧处理完之后将被发送到哪个上层协议进行处理,IEEE802.3格式中,同样的位置是长度字段。
如何区别Ethernet_II 和 IEEE802.3:
- 不同的Type字段值可以用来区别这两种帧的类型
- 当Type字段值小于等于1500(或者十六进制的0x05DC)时,帧使用的是IEEE802.3格式
- 当Type字段值大于等于1536(或者十六进制的0x0600)时,帧使用的是Ethernet_II格式
- 以太网中大多数的数据帧使用的是Ethernet_II格式
不管是哪一种帧都具有帧头帧尾结构:
帧校验序列字段,用于检验传输过程中帧的完整性。
1.Ethernet_II型
Ethernet_II的帧中各字段说明如下:
2.IEEE 802.3
IEEE802.3的帧中各字段说明如下:
SAP服务访问点,它是一个层次系统的上下层之间进行通信的接口,N层的SAP就是N+1层可以访问N层服务的地方。SSAP可以理解为来源设备的服务点,DSAP可以理解为目的设备的服务点。
Org Code 三个字节都为0,Type字段的含义与Ethernet_II帧中的Type字段相同。
四、MTU分析
以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500字节和1492字节。链路层的这个特性称为MTU,即最大传输单元。不同类型网络的数据帧长度大多数都有一个上限。如果IP层有一个数据报要传,而且数据帧的长度比链路层的MTU还大,那么IP层就需要进行分片即把数据报分成若干片,这样每一片就都小于MTU。
Ethernet_II帧
上三层数据最小是46字节,这里上三层指的是网络层、传输层、应用层。
五、数据帧的传输
数据链路层基于MAC地址进行帧的传输。
以太网在二层链路上通过MAC地址来唯一标识网络设备,并且实现局域网上网络设备之间的通信。MAC地址也叫物理地址,大多数网卡厂商把MAC地址烧入了网卡的ROM中。发送端使用接收端的MAC地址作为目的地址。以太帧封装完成后会通过物理层转换成比特流在屋里介质上传输。
1.MAC地址
MAC地址,也称为物理地址,是被烧入到网卡的全球唯一标识。
MAC地址由两部分组成,分别是供应商代码和序列号。其中前24位代表该供应商代码,由IEEE管理和分配。剩下的24位序列号由厂商自己分配。
网络设备的MAC地址是全球唯一的。
MAC地址长度为48比特,通常用十六进制表示。
MAC地址包含两部分:前24比特是组织统一标识符(OUI,Organizationally Unique Identifier)由IEEE统一分配给设备制造商。例如,华为的网络产品的MAC地址前24比特是0x00e0fc。后24位序列号是厂商分配给每个产品的唯一数值,由各个厂商自行分配。
MAC地址 = 厂家标识 + 内部编号,可以使用命令ipconfig /all 查看自己的MAC地址。
以太网封装完成后会通过物理层转换成比特流在物理介质上传输,局域网上的帧可以通过三种方式发送:
- 单播
- 广播
- 组播
2.单播
单播,指从单一的源端发送到单一的目的端。
每个主机接口有一个MAC地址唯一标识,MAC地址的OUI(组织唯一标识符)中,第一个字节第8个比特表示地址类型。对于主机MAC地址,这个比特固定为0,表示目的MAC地址为此MAC地址的帧都是发送到某个唯一的目的端。
在共享式网络中,所有主机都能收到源主机发送的单播帧,但是其他主机发现目的地址与本地MAC地址不一致后会丢弃收到的帧,只有真正的目的主机才会接收并处理收到的帧。
3.广播
第二种发送方式是广播,表示帧从单一的源发送到共享以太网上的所有主机。广播帧的目的MAC地址为十六进制的 FF:FF:FF:FF:FF:FF,所有收到该广播帧的主机都要接收并处理这个帧。
广播方式会产生大量流量,导致带宽利用率降低,进而影响整个网络的性能。
当需要网络中的所有主机都能接收到相同的信息并进行处理的情况下,通常会使用广播方式。
4.组播
第三种发送方式为组播,组播比广播更加高效。组播转发可以理解为选择性的广播,主机侦听特定组播地址,接收并处理目的MAC地址为该组播MAC地址的帧。
组播MAC地址和单播MAC地址是通过第一个字节中的第8个比特区分的。组播MAC地址的第8个比特为1,而单播MAC地址的第8个比特为0。
当需要网络上的一组主机(而不是全部主机)接收相同信息,并且其他主机不受影响的情况下通常会使用组播方式。
5.数据帧的收发
当主机接收到的数据帧所包含的目的MAC地址是自己时,会把以太网封装剥掉后送往上层协议。
帧从主机的物理接口发送出来后,通过传输介质传输到目的端。共享式网络中,这个帧会到达多个主机。主机检查帧头中的目的MAC地址,如果目的MAC地址不是本机MAC地址,也不是本机侦听的组播或广播MAC地址,则主机会丢弃收到的帧。
如果目的MAC地址是本机MAC地址,则接收该帧,检查帧校验序列(FCS)字段,并与本机计算的值对比来确定帧所在传输过程中是否保持了完整性。如果帧的FCS值与本机计算的值不同,主机会认为帧已被破坏,并会丢弃该帧。如果帧通过了FCS校验,则主机会根据帧头部中的Type字段来确定将帧发送给上层哪个协议处理。本例中,Type字段的值为0x0800,表明该帧需要发送到IP协议上处理。在发送给IP协议之前,帧的头部和尾部会被剥掉。