pvid 英文解析为 port-base vlan 是基于端口的 vlan id.
1.pvid 不是加在帧头的标记,而是端口的属性。
怎么理解呢,加在帧头的标记叫 VLAN identifier 802.1q 术语),只是常常加在帧头的标识值和 pvid 值一样而已。所以 pvid 只是端口的属性,就象端口的 speed 一样。

2
pvid 用来标识端口接收到的未标记的帧。
也就是说,当端口收到一个未标记的帧时,就把该帧打上 vlan id ,这个 id 值等于 pvid 的值,然后转发到 VID PVID 相等的 VLAN 中。

3. 帧从端口出去时,如果帧头中的 VID 和端口的 PVID 值相同,就把这个标识去掉,再送出去。
下面是交换机接各种口收到和发送数据帧采取的动作
Access ( 接收 ) Tagged = PVID 不接收 注:部分高端产品可能接收。
Access ( 接收 ) Tagged =/ PVID 不接收 注:部分高端产品可能接收。
Access ( 接收 ) Untagged 接收 增加tagPVID PC
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

Access ( 发送 ) Tagged = PVID 转发 删除 tag
Access ( 发送 ) Tagged =/ PVID 不转发 不处理
Access ( 发送 ) Untagged 无此情况 无此情况 无此情况

 

Trunk ( 接收 ) Tagged = PVID 接收 不修改 tag
Trunk ( 接收 ) Tagged =/ PVID 接收 不修改 tag
Trunk ( 接收 ) Untagged 接收 增加 tag PVID
Trunk ( 发送 ) Tagged = PVID If Passing then 转发 删除 tag
Trunk ( 发送 ) Tagged =/ PVID If Passing then 转发 不修改 tag
Trunk ( 发送 ) Untagged 无此情况 无此情况 无此情况(注)

 

Hybrid ( 接收 ) Tagged = PVID 接收 不修改 tag 对端是 trunk
Hybrid ( 接收 ) Tagged =/ PVID 接收 不修改 tag 对端是 trunk
Hybrid ( 接收 ) Untagged 接收 增加 tag PVID Trunk
Hybrid ( 发送 ) Tagged = PVID Tag untag 中列出的 vlan 可以 passing Tag 项和 untag
Hybrid ( 发送 ) Tagged =/ PVID Tag untag 中列出的 vlan 可以 passing Tag 项和 untag
Hybrid ( 发送 ) Untagged 无此情况 无此情况 无此情况(注)
 
注:数据帧在交换机内部转发过程中不会改变数据中的tag也不会删除数据帧中的tag; 改变数据帧中的tag只发生在数据帧进入或离开端口时。
 
下面来解释上面的几种状态。
 
1,Access ( 接收 ) Tagged = PVID 不接收 注:部分高端产品可能接收。
2,Access ( 接收 ) Tagged =/ PVID 不接收 注:部分高端产品可能接收。
3,Access ( 接收 ) Untagged 接收 增加 tag PVID PC
(1),这种状态一般不会发生,在如下的情况会发生accsess端口收到带tag=pvid的情况。pc1-----access(switch)trunk----------access(switch2)access------pc2
所有taccess端口都处于同一个vlan中。
pc发送给switch1的数据帧将增加tag=pid然后转发到switch的trunk口参照“Trunk (发送) Tagged =/ PVID If Passing then 转发 不修改tag”数据帧将会原样转发到swi
tch2的access端口。在这里就出现了我们的第一种情况,Access (接收) Tagged = PVID 不接收.
第2个很容易明白access当然不会接收tagg 不等于pvid的数据帧,不然我们划分vlan就没有任何意义。(无法隔离广播域)
第三种情况是我们最常用的access端口收到pc发送的untag数据帧会增加tag=pvid
下面来看看access发送数据帧的三种情况。
Access ( 发送 ) Tagged = PVID 转发 删除 tag
Access ( 发送 ) Tagged =/ PVID 不转发 不处理
Access ( 发送 ) Untagged 无此情况 无此情况 无此情况
 
第一种情况比较常见在如下拓扑中
pc1-------access1(switch)access2-----pc2
过程大致如下,
pc1的untag包到达access1打上Pvid转发到access2发现发送过来的数据帧tag=pvid 会删除tag转发。
 
第二种情况一般不会发生(还真想不出来哪种情况下会发生)
第三种情况  无此情况无此情况
 
 
下面来看看trunk口的情况
 
Trunk ( 接收 ) Tagged = PVID 接收 不修改 tag
Trunk ( 接收 ) Tagged =/ PVID 接收 不修改 tag
Trunk ( 接收 ) Untagged 接收 增加 tag PVID
 
Trunk ( 发送 ) Tagged = PVID If Passing then 转发 删除 tag
Trunk ( 发送 ) Tagged =/ PVID If Passing then 转发 不修改 tag
Trunk ( 发送 ) Untagged 无此情况 无此情况 无此情况(注)
Trunk口的情况比较容易比较容易理解就不一一解释了。
用几个例子来说明上面遇到的几种情况。
 
pc1-----fa0/1(switch1)fa0/2------fa0/3(switch2)fa0/4-------pc2
switch上每个端口都是access端口,switch1的端口都加入vlan 10 switch2的端口都加入vlan 20;pc1和pc二的IP地址在同一网段。经测试pc1可以正常访问
pc2下面我们来看看数据转发的过程。
fa0/1 :Access (接收) Untagged 接收 增加tag10  然后转发到fa0/2
fa0/2      :Access (发送) Tagged = 10转发 删除tag
fa0/3     :Access (接收) Untagged 接收 增加tag20 然后转发到fa0/4
fa0/4 :   Access (发送) Tagged = 20 转发 删除tag
PC:       收到untagged包可以正常接收。
 
pc1-----fa0/1(switch1)fa0/2------fa0/3(switch2)fa0/4-------pc2
pfa0/1  fa0/2 加入vlan 10 fa0/3(trunk) fa0/4(vlan1)p c1和pc二的IP地址在同一网段。经测试pc1可以正常访问pc2
过程如下:
fa0/1:Access (接收) Untagged 接收 增加tag10  然后转发到fa0/2
fa0/2:Access (发送) Tagged = 10转发 删除tag
fa0/3:Trunk (接收) Untagged 接收 增加tagPVID(默认PVID=1)
fa0/4:Access (发送) Tagged = 10转发 删除tag
pc: 正常接收到pc1的数据。