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值相同,就把这个标识去掉,再送出去。
 
VID表示VLAN号,而PVID就是端口的VLAN ID;
普通的ACCESS端口PVID和VID只有一个是一致的;如果是HYBRID或者TRUNK端口因为该端口能识别多个VLAN,而PVID也可以自己修改;
一个端口可以属于多个vlan,但是只能有一个PVID,收到一个不带tag头的数据包时,会打上PVID所表示的vlan号,视同该vlan的数据包处理,所以也有人说PVID就是某个端口默认的vlan ID号。
 
 
 
 
 
下面是交换机接各种口收到和发送数据帧采取的动作
Access (接收) Tagged = PVID 不接收 注:部分高端产品可能接收。
Access (接收) Tagged =/ PVID 不接收 注:部分高端产品可能接收。
Access (接收) Untagged 接收 增加tag=PVID 从PC
 
 
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 接收 增加tag=10  然后转发到fa0/2
fa0/2      :Access (发送) Tagged = 10转发 删除tag
fa0/3     :Access (接收) Untagged 接收 增加tag=20 然后转发到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 接收 增加tag=10  然后转发到fa0/2
fa0/2:Access (发送) Tagged = 10转发 删除tag
fa0/3:Trunk (接收) Untagged 接收 增加tag=PVID(默认PVID=1)
fa0/4:Access (发送) Tagged = 10转发 删除tag
pc: 正常接收到pc1的数据