GOOSE (Generic Object Oriented Substation Event) 报文是 IEC 61850 标准中定义的一种快速传输机制,主要用于变电站自动化系统中的实时事件和状态信息的传输。GOOSE 报文通常通过以太网传输,并且可能包含 VLAN 标签。在 GOOSE 报文中,TPID 和 TCI 分别指的是以下内容:
TPID (Tag Protocol Identifier)
TPID 字段位于以太网帧中,用于标识该帧是否包含一个 VLAN 标签。在 IEEE 802.1Q 标准中定义的以太网帧中,TPID 的默认值通常是 0x8100
,这表示接下来的 4 字节是 VLAN 标签(TCI)。
TCI (Tag Control Information)
TCI 字段是 VLAN 标签的一部分,它包含了以下信息:
- Priority (Prio): 3 位,表示帧的优先级,范围从 0 到 7。
- Canonical Format Indicator (CFI): 1 位,用于指示 MAC 地址的格式,通常被设置为 0。
- VLAN Identifier (VID): 12 位,表示 VLAN 的标识符,范围从 0 到 4095。
TCI 字段的结构如下所示:
+----------------+----------------+
| Priority (3 bits) | CFI (1 bit) |
+----------------+----------------+
| VLAN Identifier (12 bits) |
+----------------+----------------+
GOOSE 报文结构
GOOSE 报文的基本结构如下:
-
以太网头部:
- 目的 MAC 地址
- 源 MAC 地址
- TPID (如果使用 VLAN 标签)
-
VLAN 标签 (如果使用):
- TPID (通常是
0x8100
) - TCI (包含 Priority, CFI, 和 VID)
- TPID (通常是
-
以太网类型:
- 例如
0x88B8
对于 GOOSE 报文
- 例如
-
GOOSE 报文负载:
- 包含 GOOSE 控制块的信息和实际的数据。
示例
一个包含 VLAN 标签的 GOOSE 报文如下:
+------------------+------------------+------------------+------------------+
| Destination MAC | Source MAC | TPID | TCI |
+------------------+------------------+------------------+------------------+
| 0x88B8 | | | |
+------------------+------------------+------------------+------------------+
| GOOSE Payload | | | |
+------------------+------------------+------------------+------------------+
其中:
- 目的 MAC 地址和源 MAC 地址是常规的 MAC 地址。
- TPID 通常是
0x8100
,表示接下来是 VLAN 标签。 - TCI 字段包含 VLAN 优先级、CFI 和 VLAN ID。
在 GOOSE 报文中,如果使用了 VLAN 标签,那么 TPID 和 TCI 将包含在报文的以太网头部之后。这使得 GOOSE 报文能够在支持 VLAN 的网络中传输,并且可以根据 VLAN ID 和优先级进行路由。
VID
(VLAN Identifier)确实是交换机通过物理 VLAN 隔离产生的 VLAN 的 ID 号。在 IEEE 802.1Q 标准中,VID
是 TCI(Tag Control Information)字段的一部分,它标识了帧所属的具体 VLAN。
VLAN ID (VID)
- 范围:
VID
的取值范围是从 0 到 4095。其中,0 和 4095 通常保留为特殊用途,因此常用的 VLAN ID 范围是 1 到 4094。 - 作用:
VID
用于区分不同的 VLAN。每个 VLAN 都有一个唯一的 VLAN ID,它用于在网络中标识属于该 VLAN 的帧。 - 物理隔离: 交换机通过配置端口到特定的 VLAN 来实现物理 VLAN 隔离。这意味着连接到同一 VLAN 的端口可以互相通信,而与其他 VLAN 隔离。
VLAN 标签结构
VLAN 标签(也称为 802.1Q 标签)的结构如下:
+----------------+----------------+
| Priority (3 bits) | CFI (1 bit) |
+----------------+----------------+
| VLAN Identifier (12 bits) |
+----------------+----------------+
其中:
- Priority (Prio): 3 位,表示帧的优先级,范围从 0 到 7。
- Canonical Format Indicator (CFI): 1 位,用于指示 MAC 地址的格式,通常被设置为 0。
- VLAN Identifier (VID): 12 位,表示 VLAN 的标识符,范围从 0 到 4095。
使用 VLAN ID 进行隔离
当在交换机上配置 VLAN 时,你可以为每个端口分配一个或多个 VLAN ID。例如,你可以将一组端口配置为属于 VLAN 10,另一组端口配置为属于 VLAN 20。这样,属于 VLAN 10 的端口只能与同一 VLAN 中的其他端口通信,而不能与属于 VLAN 20 的端口通信,除非通过三层设备(如路由器或三层交换机)进行路由。
示例
假设有一个交换机,它有两个端口,端口 A 和端口 B。你可以按照以下方式配置 VLAN:
- 端口 A: 配置为 VLAN 10
- 端口 B: 配置为 VLAN 20
此时,端口 A 和端口 B 之间的通信被隔离,因为它们属于不同的 VLAN。如果端口 A 发送一个数据包到端口 B,该数据包将被交换机丢弃,除非它带有正确的 VLAN 标签(即 VID
为 20),并且被路由到了端口 B。
总结
- TPID: 用于标识以太网帧中是否包含 VLAN 标签。
- TCI: 包含 VLAN 优先级、CFI 和 VLAN ID 的信息。
VID
用于标识帧所属的具体 VLAN。- 交换机通过配置端口到特定的 VLAN 来实现物理 VLAN 隔离。
- VLAN ID 的取值范围是从 1 到 4094,0 和 4095 通常保留为特殊用途。
- VLAN 标签中的
VID
字段用于在网络中区分不同的 VLAN。
通过这种方式,VLAN ID 在实现 VLAN 隔离方面扮演着核心角色,确保了网络中的数据包只能在特定的 VLAN 内部传播。