Untag 就是普通的 ethernet 报文,普通 PC 机的网卡是能够识别这样的报文进行通信。 Tag 报文结构的变化是在源 mac 地址和目的 mac 地址以后,加上了 4bytes 的 vlan 信息,也就是 vlan tag 头,通常来讲这样的报文普通 PC 机的网卡是不能识别的。 ide
带 802.1Q 的帧是在标准以太网帧上插入了 4 个字节的标识,其中包含: spa
1) 2 个字节的协议标示符( TPID ),当前置 0X8100 的固定值,代表该帧带有 802.1Q 的标记信息。 接口
2) 2 个字节的标记控制信息( TCI ),包含了三个域: it
l priority 域,占 3bits ,表示报文的优先级,取值 0 到 7 , 7 为最高优先级, 0 为最低优先级,该域被 802.1Q 采用; io
l 规范格式指示符域( CFI ),占 1bits , 0 表示规范格式,应用于以太网, 1 表示非规范格式,应用于 Token Ring 。 class
l VLAN ID 域,占 12bits ,用于标识 VLAN 的归属。 方法
以太网端口的三种链路类型: access, trunk, hybridim
Access 类型的端口只能属于 1 个 VLAN ,通常用于链接计算机的端口; 数据
Trunk 类型的端口能够容许多个 VLAN 经过,能够接收和发送多个 VLAN 的报文,通常用于交换机之间链接的端口; 协议
Hybrid 类型的端口能够容许多个 VLAN 经过,能够接收的发送多个 VLAN 的报文,能够用于交换机之间链接,也能够用于链接用户的计算机。
Hybrid 端口能够容许多个 VLAN 的数据不带 tag ,而 802.1Q 的 trunk 只能是 native vlan (即 pvid )对应的 vlan 的数据不带 tag ,应该说 hybrid 能够实现 trunk 端口的特性。实际使用时均可以用 hybrid 端口,而不用 trunk 。
Hybrid 端口和 Trunk 端口在接收数据时,处理方法是同样的,惟一的不一样之处在于发送数据时, hybrid 端口能够容许多个 VLAN 的报文发送时不打标签,而 trunk 端口只容许缺省 VLAN 的报文发送时不打标签。
交换机接口出入数据处理过程:
接收:
1. Access 端口
1) 收到一个二层帧
2) 判断是否有 VLAN 标签,没有转到第 3 步,有则转到第 4 步
3) 打上端口的 PVID ,并进行交换转发
4) 若 VLAN 标签和 PVID 一致,转发 VLAN 帧,不然直接丢弃
2. Trunk 端口
1) 收到一个二层帧
2) 判断是否有 VLAN 标签,没有转到第 3 步,有则转到第 4 步
3) 打上端口的 PVID ,并进行交换转发
4) 判断该 trunk 端口是否容许该 VLAN 帧进入,容许则转发,不然直接丢弃
注意: trunk 口容许或不容许 VLAN 帧,是对进入的帧而言的,对出去的帧没有限制
3. hybrid 端口
1) 收到一个二层帧
2) 判断是否有 VLAN 标签,没有转到第 3 步,有则转到第 4 步
3) 打上端口的 PVID ,并进行交换转发
4) 判断该 hybrid 端口是否容许该 VLAN 帧进入,容许则转发,不然直接丢弃。
能够看到, trunk 和 hybrid 口对接收到得数据帧的处理规则是同样的。
发送:
1. Access 端口
将报文的 VLAN 信息剥离,直接发送出去
2. Trunk 端口
比较端口的 PVID 和将要发送报文的 VLAN 信息,若是二者相等则剥离 VLAN 信息,再发送;若是不相等则直接发送
3. Hybrid 端口
判断该 VLAN 在本端口的属性( disp interface 便可看到该端口对哪些 VLAN 是 untag ,哪些 VLAN 是 tag ),若是是 untag 则剥离 VLAN 信息,再发送;若是是 tag 则直接发送。