重要前提,交换机内部的帧都是会打tag的

PVID:port-based vlan id 
pvid是交换机上的概念,说的是进入该端口的报文如果没有打vlan id就按pvid的值打上;
PVID是基于端口的VLAN ID,一个端口可以属于多个vlan(trunk 口),但是只能
有一个PVID(对trunk 口而言,就是native vlan;对access口而言,就是access vlan-id = pvid),
收到一个不带tag头的数据包时,会打上PVID所表示的vlan号,视同该vlan的数据包处理,所以也有人说PVID就是某个端口默认的vlan ID号

native vlan的作用之一是减轻交换机的负担,不用老是打tag,祛tag。
 
 

VID: vlan id
vid是报文上的vlan tag的意思.tag里面包含vid

在网上发现一个比较好的解释是:PVID并不是加在帧头的标记,而是端口的属性,用来标识端口接收到的未标记的帧。也就是说,当端口收到一个未标记的帧时,则把该帧转发到VID和本端口PVID相等的VLAN中去。

 
下图是一个有趣的情景:
VID 与 PVID 的简单概述,附上一个有趣案例_第1张图片
pc1 ping pc2的过程是这样的:
·sw1的接口收到pc1的ping包,因为给他打上包含vid=10的tag,
·然后在sw1的trunk因为设置了native vlan 10(亦就是PVID=10),对该ping包拆掉进来时打的tag,不打tag的发出去,
·然后到sw2的trunk口时,因为sw2在该trunk设置了native vlan 20(亦就是PVID=20),所以ping包进入后会打上vid=20的tag,
·然后交换机查看 vlan 20 MAC address table,决定从连接了pc2 的access vlan 20口发出去,
·但是在发出去之前,要把ping包里面的tag去掉(因为pc2无法识别还有tag的帧)。
 
 
最后附上:交换机收到帧后的处理方式