数据链路层
网络中传输数据需要定义并遵循一些标准。以太网是根据IEEE 802.3 标准来管理和控制数据的。
学习目标
1.掌握以太网中数据帧的结构
2.通过抓包分析帧头
3.掌握MAC地址的作用
数据链路层概述
data link layer
数据链路层位于OSI模型的第二层,位于物理层与网络层之间。
数据链路层在物理层提供服务的基础上向网络层提供服务。其最基本的服务是将源自物理层的数据可靠地传输到相邻节点(同一网段)的目标机网络层
数据链路层的传输单元:帧(frame)
工作在二层的网络设备:交换机
终端之间的通信
数据链路层控制数据帧在物理链路上传输
数据包在以太网物理介质上传播之前必须封装头部和尾部信息,封装后的数据包成为数据帧,数据帧中封装的信息决定了数据如何传输
以太网上传输的数据帧有两种格式,选择哪种格式由TCP/IP协议簇中的网络层决定
帧格式
两种帧格式
Ethernet_II(以太二型帧)
IEEE 802.3
区别:
Ethernet II格式中包含了一个Type字段,标识以太帧处理完成之后将被发送到哪个上层协议进行处理。IEEE 802.3格式中,同样位置是长度字段
如何区别:
1.不同的Type字段值可以用来区别这两种帧的类型
2.当Type字段值小于等于1500(或者十六进制0x05DC)时,使用的是IEEE 802.3
3.当Type字段值大于等于1536(或者十六进制0x0600)时,使用的是Ethernet II
4.以太网中大多数的数据帧使用的是Ethernet II格式
帧结构 | 说明 |
---|---|
帧头 | 目标MAC地址+源MAC地址+Type 字段 |
帧尾 | FCS帧校验序列 |
帧校验序列字段,用于检验传输过程中帧的完整性
Ethernet_II 帧格式
Ethernet_II的帧中各字段说明:
字段 | 长度(字节) | 说明 |
---|---|---|
DMAC | 6B | 标识帧的接收者 |
SMAC | 6B | 标识帧的发送者 |
Type | 2B | 用于标识数据字段中包含的上层协议: *0x0800 IP协议帧 *0x0806 ARP协议帧 |
Data | >=46B <=1500B | 网络层数据 |
FCS (循环冗余校验) | 4B | 提供了一种错误检测机制 |
IEEE802.3
IEEE 802.3 的帧中
字段 | 长度 | 说明 |
---|---|---|
Length | 2B | *小于等于0x05DC *Data字段包含的字节数 |
LLC(Logical Link Control) | 3B | 由 *目的事务访问点DSAP(Destination Service Access Point) *源服务访问点SSAP(Source Service Access Point) *Control 字段组成 |
SNAP(Sub-network Access Protocol) | 5B | 由 *机构代码(Org Code) *类型(Type) 字段组成 |
MTU分析
以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500字节和1492字节,链路层的这个特性称为MTU,即最大传输单元。不同类型网络的数帧长度大多数都有一个上限。如果IP层有一个数据报要传,而且数据帧的长度比链路层的MTU还大,那么IP层就需要分析即把数据报分成干片,这样每一片都小于MTU。
Ethernet_II帧
帧头 | 上三层数据(网络层、传输层、应用层) | 帧尾 |
---|---|---|
DMAC+SMAC+Type | MTU,最大承载能力:1500字节 | FCS |
上三层数据最小是 46 字节
ensp抓包
数据帧传输
以太网在二层链路上通过MAC地址来唯一标识网络设备,并且实现局域网上网络设备之间的通信。MAC地址也叫物理地址,大多数网卡厂商将MAC地址烧入到网卡的ROM中,发送端使用接收端的MAC地址作为目的地址。
目的MAC地址和源MAC地址
以太网封装完成后会通过物理层转换成比特流在物理介质上传输。局域网上的帧可以通过三种方式发送:
·单播
·广播
·组播
MAC地址
MAC地址:也称为物理地址,是被烧入到网卡的全球唯一标识。
MAC地址由两部分组成,分别是供应商代码和序列号,其中前24位为组织唯一标识符(OUI)代表供应商代码,由IEEE管理和分配;剩下的24位序列号由厂商自己分配,也是唯一数值。
MAC地址=厂商地址+内部编号
每一台网络设备都有物理地址来标识自己(MAC地址)
网络设备的MAC地址是全球唯一的
MAC地址长度为48比特,通常用十六进制表示
查看MAC地址命令
ipconfig /all
单播
单播:指从单一的源端发送到单一的目的端
每个主机接口有一个MAC地址唯一标识,MAC地址的OUI中,第一字节第8个比特表示地址类型。
对于主机MAC地址,这个比特固定为0,表示目的MAC地址的帧都是发送到某个唯一的目的端。
在共享式网络中,所有主机都能收到源主机发送的单播帧,但是其他主机发现目的地址与本地MAC地址不一致后会丢弃收到的帧,只有真正的目的主机才会收到并处理收到的帧。
广播
广播:指从单一的源端发送到以太网上的所有主机
广播的目的MAC地址为十六进制的FF:FF:FF:FF:FF:FF,所有接收到该广播帧的主机都要接收并处理这个帧。
广播方式会产生大量流量,导致带宽利用率降低,进而影响整个网络的进程。
当需要网络中所有主机都能接收到相同的信息并处理的时候,就会用到广播。
组播
组播:选择性的广播,主机监听特定组播地址,接收并处理MAC地址为该组播MAC地址的帧
组播MAC地址是通过第一字节的第8个比特区分的,为1。
当需要网络上的一组主机(而不是全部主机)接收相同信息,并且其他主机不受影响的请留下通常会使用组播方式。
数据帧的收发
当主机接收到的数据帧所包含的目的MAC地址是自己时,会把以太网封装剥掉后送往上层协议。
帧从主机的物理接口发送出来后,通过传输介质传输到目的端。共享网络中,这个帧可能到达多个主机。主机检查帧头中的目的MAC地址,如果目的MAC地址不是本机MAC地址,也不是本机侦听的组播或广播MAC地址,则主机会丢弃收到的帧。
如果目的MAC地址是本机MAC地址,则接收该帧,检查帧校验序列(FCS)字段,并与本机计算的值进行比对来确定帧在传输过程中是否保持了完整性。如果帧的FCS值与本机不同,主机会认为帧已被破坏,并会丢弃该帧。如果帧通过了FCS校验,则主机会根据帧头部的Type字段来确定将帧发送给上层哪个协议处理。