几年前一个PA1688网络电话用户写了RTL8019AS上的802.1Q和802.1p VLAN支持代码。2006年初时候我们把它搬到了AR1688软件上。运行的时候,AR1688的Z80控制器负责从接收数据中挪掉VLAN标签和在发送数据中加上VLAN标签。
DM9003中网络交换机对VLAN有更好的支持,可以在硬件上挪掉接收数据中的VLAN标签,如果需要的话还可以在发送数据中由硬件自动加上VLAN标签。当使用802.1Q VLAN的时候,这是DM9003又一个加速网络性能的好功能。
如果PPPoE一起用的话,有兴趣的可以考虑在MAC包头后应该放什么数据,VLAN标签还是PPPoE包头?换句话说,是PPPoE数据包中含VLAN还是相反,或者2者都可以?
当然读相关标准可以得到答案。也可以从DM9003手册中知道,既然VLAN标签是在Z80处理器处理PPPoE包后由硬件处理的,那唯一可能的就是VLAN数据包中含PPPoE。也就是说,PPPoE可以在VLAN网络下使用,但是不能构建基于PPPoE拨号上网的VLAN。回过头看PA1688上的RTL8019AS 802.1Q VLAN软件,果然就是这么做的!我们不禁感慨这些年有多少网络高手在玩我们这点小设备啊。
当使用802.1Q VLAN的时候,802.3的最大数据长度从1514增加到了1518字节(不含CRC),增加的4个字节用于VLAN标签。再一次我们看到,PPPoE就没有这个长度"特权",使用PPPoE只会因为PPPoE包头占用8个字节而减少8个字节的数据。
好好学习,天天向上!
|