如图1所示 , 每一个支持802.1Q协议的主机 , 在发送数据包时 , 都在原来的以太网桢头中的源地址后增加了一个4字节的802.1Q桢头 , 之后接原来以太网的长度或类型域 , 关于以太网桢头的封装格式 , 参见以太网方面的培训教材 。
图1 带有802.1Q标签头的以太网桢
这4个字节的802.1Q标签头包含了2个字节的标签协议标识(TPID--Tag Protocol Identifier , 它的值是8100) , 和两个字节的标签控制信息(TCI--Tag Control Information) , TPID是IEEE定义的新的类型 , 表明这是一个加了802.1Q标签的本文 , 图2显示了802.1Q标签头的具体内容 。
图2 802.1Q标签头
该标签头中的信息解释如下:
LAN Identified( VLAN ID ): 这是一个12位的域 , 指明VLAN的ID , 一共4096个 , 每个支持802.1Q协议的主机发送出来的数据包都会包含这个域 , 以指明自己属于哪一个VLAN , 目前TNETX 3270只支持32个VLAN 。
Canonical Format Indicator( cfi ):这一位主要用于总线型的以太网与FDDI、令牌环网交换数据时的桢格式 , TNETX 3270忽略此位 。
Priority:这3 位指明桢的优先级 。一共有8种优先级 , 主要用于当交换机阻塞时 , 优先发送哪个数据包 。TNETX 3270和TNETX 4090只支持一种优先级 , 所以这一位也没有用 ,
不难看出 , 802.1Q标签头的4 个字节是新增加的 , 目前我们使用的计算机并不支持802.1Q , 即我们计算机发送出去的数据包的以太网桢头还不包含这4个字节 , 同时也无法识别这4个字节 , 将来会有软件和硬件支持802.1Q协议的 。对于交换机来说 , 假如它所连接的以太网段的所有主机都能识别和发送这种带802.1Q标签头的数据包 , 那么我们把这种端口称为Tag Aware 端口;相反 , 假如该交换机端口说连接的以太网段有只要有一台主机不支持这种以太网桢头 , 那么交换机的这个端口我们称为Access端口 , 从目前的情况可以看出 , 所有的交换机的端口都属于后一种 。
那么 , 在现在的情况下 , 交换机是如何支持VLAN的呢?是这样的 , 比如交换机的1~4端口属于同一个VLAN , 那么当 1 端口进来一个数据包是 , 交换机看到该数据包没有802.1Q标签头 , 那么 , 它会根据1号端口所属的VLAN组 , 自动给该数据包添加一个该VLAN的标签头 , 然后再将数据包交给数据库查询模块 , 数据库查询模块会根据数据包的目的地址和所属的VLAN进行路由 , 之后交给转发模块 , 转发模块看到这是一个包含标签头的数据包 , 而实际上发送的端口所连的以太网段的计算机不能识别这种数据包 , 所以 , 它会再将数据包进来是交换机给添加的标签头再去掉 。假如计算机支持这种标签头 , 那么就不需要交换机添加或删除标签头了 , 至于到底是添加还是删除要看交换机所连的以太网段的主机是否识别这种数据包 , 即该交换机的端口是哪种类型的端口 。当然 , 对于两个交换机互连的端口一般都是Tag Aware端口 , 这样 , 交换机和交换机之间交换数据包时是无须去掉标签头的 。
【802.1Q VLAN协议和802.1P协议的实现】一般交换机的连接方式如图3所示
图3 多个交换机的组网图
图中虚线是Tag Aware端口 , 实线是Access端口 。
以太网交换机处理数据包的流程如图4所示 。
图4 数据包处理流程
处理流程包括3个步骤:
接收过程:该过程负责接收数据包 , 数据包可以是带标签头的 , 也可以不带标签头 , 假如不带 , 交换机会知道根据该端口所属的VLAN添加上相应的标签头 。
查找/路由过程:该过程根据数据包的目的MAC地址、VLAN 标识已经数据库中注册的信息决定把数据包发送到哪个端口 。
推荐阅读
- 边界网关协议 BGP
- 互联网协议 IPv6
- 互联网协议 IPv4协议
- TCP/IP协议
- 网络传输协议
- TCP-传输控制协议
- rip协议理解
- MDLC协议
- 802.11协议族简介
- 1 TCP/IP协议栈在嵌入式异构网络中的应用