zoukankan      html  css  js  c++  java
  • VLAN 学习

    一. VLAN 数据报文格式

    IEEE 802.1Q标准对Ethernet帧格式进行了修改,在源MAC地址字段和协议类型字段之间加入4字节的802.1Q Tag。

    VLAN帧最小帧长为64字节。

    图1 VLAN帧格式
     
     
    ·Type:长度为2 bytes,表示帧类型,802.1Q tag帧中Type字段取固定值0x8100,如果不支持802.1Q的设备收到802.1Q帧,则将其丢弃。
    ·PRI:priority字段,长度为3 bit,表示 以太网帧的优先级,取值范围是0~7,数值越大,优先级越高。当交换机/路由器发生传输拥塞时,优先发送优先级高的数据帧。
    ·CFI:Canonical Format Indicator,长度为1bit,表示MAC地址是否是经典格式。CFI为0说明是经典格式,CFI为1表示为非经典格式。该字段用于区分以太网帧、FDDI帧和令牌环网帧,在以太网帧中,CFI取值为0
    ·VID:VLAN ID,长度为12 bit,取值范围是0~4095,其中0和4095是保留值,不能给用户使用。
     
    字段长度含义
    Destination address 6字节 目的MAC地址。
    Source address 6字节 源MAC地址。
    Type 2字节 长度为2字节,表示帧类型。取值为0x8100时表示802.1Q Tag帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。
    PRI 3比特 Priority,长度为3比特,表示帧的优先级,取值范围为0~7,值越大优先级越高。用于当阻塞时,优先发送优先级高的数据包。

    如果设置用户优先级,但是没有VLANID,则VLANID必须设置为0x000。

    CFI 1比特 CFI (Canonical Format Indicator),长度为1比特,表示MAC地址是否是经典格式。CFI为0说明是标准格式,CFI为1表示为非标准格式。用于区分以太网帧、FDDI(Fiber Distributed Digital Interface)帧和令牌环网帧。在以太网中,CFI的值为0。
    VID 12比特 LAN ID,长度为12比特,表示该帧所属的VLAN。在VRP中,可配置的VLAN ID取值范围为1~4094。0和4095协议中规定为保留的VLAN ID。

    三种类型:

    • Untagged帧:VID 不计
    • Priority-tagged帧:VID为 0x000
    • VLAN-tagged帧:VID范围0~4095

    三个特殊的VID:

    • 0x000:设置优先级但无VID
    • 0x001:缺省VID
    • 0xFFF:预留VID
    Length/Type 2字节 指后续数据的字节长度,但不包括CRC检验码。
    Data 42~1500字节 负载(可能包含填充位)。
    CRC 4字节 用于帧内后续字节差错的循环冗余检验(也称为FCS或帧检验序列)。
     
     VLAN帧 抓包:

    二.  Vlan 内核源码分析

    VLAN网络接口发出的网络报文将由vlan_dev_hard_start_xmit函数处理

    1) 所有经过桥接/路由转发经由例:eth1.101 VLAN网络接口发出的网络报文将由vlan_dev_hard_start_xmit函数处理
    2)通过例:eth1.101 VLAN网络接口获取VLAN配置信息,涉及VLAN配置VLANID、VLAN优先级
    3)检查网络报文是否符合添加VLAN头部信息,符合则在skb中更新VLAN头部信息,由__vlan_hwaccel_put_tag根据vlan_tci更新skb VLAN信息

  • 相关阅读:
    HDU1080(DP)
    hdu1059(多重背包优化)
    Codeforces Round #190 (Div. 2).D
    jQuery的安装
    JDBC-Statement,prepareStatement,CallableStatement的比较
    execute、executeQuery和executeUpdate之间的区别
    Word操作总结
    Excel 操作总结
    notepad 操作总结
    3.CSS使用基础(2)
  • 原文地址:https://www.cnblogs.com/mysky007/p/11223046.html
Copyright © 2011-2022 走看看