1. IEEE(电子电气工程师学会)


IEEE组织来定义以太网协议标准。例如:

  • IEEE 802:局域网及城域网
  • IEEE 802.11:无线以太网
  • IEEE 802.2:逻 辑链路控制
  • IEEE 802.3:带冲突检测的载波侦听多路访问协议CSMA/CD(半双工以太网)

    2. 数据帧


2层帧中一次能传输的数据大小(上层),由MTU控制(最大传输单元,默认为1500)

1)Ethernet II(业务帧)

一般 Ethernet II 帧都是作为业务帧使用(传输业务报文)

image.png

  • 最小帧64Byte =(DMAC+SMAC+Type+Data+CRC)Byte
  • Length/Type >= 1536
  • 字段解释
    • DMAC(Destination MAC):目的MAC地址
    • SMAC(Source MAC):源MAC地址
    • Type:类型(表示上层封装的什么协议)
    • Data:上层数据总和
    • CRC:校验和

      2)IEEE 802.3(控制帧)

      一般 IEEE 802.3 帧都是作为协议使用(传输协议控制报文)

image.png

  • Length/Type <= 1500
  • LLC(Logical-Link Control,逻辑链路控制)字段解释
    • D.SAP(目的服务访问点):目的是为 “什么协议” 服务,若后面类型为IP帧值设为0x06
    • S.SAP(源服务访问点):源是为 “什么协议” 服务,若后面类型为IP帧值设为0x06
    • Control(控制):通常值为0x03,表示无连接服务的IEEE 802.2无编号数据格式
    • OUI(组织机构代码):通常等于MAC地址前3字节
    • Type(类型):标识携带的上层数据

      3. CAM 表(MAC 地址表)的形成和转发原理


1)MAC 地址的组成

image.png

MAC地址由48Bit的以太网物理地址组成,其中「OUI」是组织机构代码、「EUI」由厂商内部自定义

2)MAC 地址的三种类型

  • 单播MAC(unicast):MAC地址的前第8Bit=0
    • 已知单播:CAM表中有对应的映射关系
    • 未知单播:CAM表中没有对应的映射关系,但是是单播报文
  • 广播MAC(broadcast):MAC地址的所有48Bit=1,全F(特殊的 “组播地址”)
  • 组播MAC(multicast):MAC地址的前第8Bit=1(目的地址是一个范围)经典组播MAC:0x01005E(组播地址映射为的组播 MAC 前缀)

    3)二层的转发行为

    BUM 帧泛洪,B = 广播、U = 未知单播、M = 组播

交换机依据报文中「目的MAC」来查找CAM表或者收到的以太帧类型做不同的转发行为。其交换机转发行为有三种:

  • 泛洪(Flooding):CAM地址表中没有目的MAC地址的映射关系时,交换机从一个接口收到数据帧,会泛洪到该交换机的所有接口,除入接口(有确定的源,但目的未知或CAM表中没有对应的映射关系)
    • 收到组播帧
    • 收到广播帧
    • 收到未知单播帧
  • 转发(Forwarding):形成CAM表后,根据记录的MAC地址映射关系进行数据帧转发(有确定的源和目的,CAM中也有对应的映射关系)
    • 收到已知单播帧
  • 丢弃(Discarding):如果配置了黑洞MAC并匹配成功(源、目MAC都适用),设备会执行丢弃行为

    • 收到黑洞MAC条目

      4)CAM 表的构建

      image.png
      交换机通过泛洪或报文中的源MAC地址进行学习并构建CAM表,并通过报文中的目的MAC地址查找CAM表项进行转发。所以说「CMA表是数据帧的转发决策表,决定二层的转发行为」。「CAM表」用来记录相连设备的MAC地址、接口号和所属VLAN ID的映射关系,一个MAC地址同一时间只能从一个接口学习到,后学习到该MAC地址的接口会覆盖掉之前的映射关系。其交换机构建CAM表象的方式有三种:
  • 动态表项(Dynamic)

    • MAC地址的默认老化时间是「300s」
    • 周期时间内没有得到同设备的数据帧来刷新表项,则会删除该表项
  • 静态表项(Static)
    • 永久存在
    • 提高接口安全性,从而防止假冒身份的非法用户骗取数据
  • 黑洞表项(Blackhole)
    • 永久存在
    • 用于丢弃含有特定源MAC地址或目的MAC地址的数据帧