Skip to main content

MSDP报文格式

MSDP(Multicast Source Discovery Protocol)称为组播源发现协议,是基于多个PIM-SM(Protocol Independent Multicast Sparse Mode)域互连而开发的一种域间组播解决方案。适用条件:域内组播路由协议必须是PIM-SM。MSDP仅对ASM(Any-Source Multicast)模型有意义。

协议栈结构

MSDP消息符合标准的TLV(Type-Length-Value)消息格式,通过TCP连接交互信息。

MSDP消息封装结构
    +--------------+--------+----------+--------------+
    | TCP header | Type | Length | Value .... |
    +--------------+--------+----------+--------------+
                  |<-------------MSDP TLV----------->|
字段 长度 说明
Type 8比特

消息类型:

1: Source-Active

2: Source-Active Request

3: Source-Active Response

4: KeepAlive

5: Reserved

6: MSDP traceroute in progress

7: MSDP traceroute reply

Length 16比特 消息长度,包含Type、Length和Value字段的长度,字节为计数单位。除了Keepalive消息外,其他消息要求最小长度为4字节。最大长度为9192字节。
Value Variable length 消息内容,因消息类型而异。

MSDP Source-Active

MSDP Source-Active消息用于携带多组(S,G)信息,在多个RP之间传递,或者封装PIM-SM组播数据。

MSDP Source-Active消息的格式
  0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +---------------+-------------------------------+---------------+
 |   Type       |           Length             | Entry Count |
 +---------------+-------------------------------+---------------+
 |                         RP Address                           |
 +---------------------------------------------------------------+
 |                         (S, G) Entry [1]                     |
 +---------------------------------------------------------------+
 |                             ....                             |
 +---------------------------------------------------------------+
 |                         (S, G) Entry [n]                     |
 +---------------------------------------------------------------+
MSDP Source-Active消息字段解释
字段 长度 说明
Type 1字节 消息类型,值为1。
Length 2字节 整个TLV的长度。
Entry Count 1字节 消息中包含的(S,G)项总数。如果是数据消息,则Entry Count值为1。
RP Address 4字节 源RP地址。
(S,G)Entry [1]...[N] 变长 (源,组)信息,参见(S,G)Entry的格式
(S,G)Entry的格式
  0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-----------------------------------------------+---------------+
 |                           Reserved           | Sprefix Len |
 +-----------------------------------------------+---------------+
 |                         Group Address                         |
 +---------------------------------------------------------------+
 |                         Source Address                       |
 +---------------------------------------------------------------+
(S,G)Entry的字段解释
字段 长度 含义
Reserved 3B 保留字段,发送报文时置0;接收到报文时,对该字段不做任何处理。
Sprefix Len 1B 源地址掩码长度,以32位传输。
Group Address 4B 组地址。
Source Address 4B 组播源地址。

MSDP Source-Active Request

MSDP Source-Active消息用于携带多组(S,G)信息,在多个RP之间传递,或者封装PIM-SM组播数据。

MSDP Source-Active消息的格式
  0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +---------------+-------------------------------+---------------+
 |   Type       |           Length             | Entry Count |
 +---------------+-------------------------------+---------------+
 |                         RP Address                           |
 +---------------------------------------------------------------+
 |                         (S, G) Entry [1]                     |
 +---------------------------------------------------------------+
 |                             ....                             |
 +---------------------------------------------------------------+
 |                         (S, G) Entry [n]                     |
 +---------------------------------------------------------------+
MSDP Source-Active消息字段解释
字段 长度 说明
Type 1字节 消息类型,值为2。
Length 2字节 整个TLV的长度。
Entry Count 1字节 消息中包含的(S,G)项总数。如果是数据消息,则Entry Count值为1。
RP Address 4字节 源RP地址。
(S,G)Entry [1]...[N] 变长 (源,组)信息,参见(S,G)Entry的格式

MSDP Source-Active Response

MSDP Source-Active Response消息用于对Source-Active Request消息的响应。

MSDP Source-Active Response消息的格式
  0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +---------------+-------------------------------+---------------+
 |   Type       |           Length             | Entry Count |
 +---------------+-------------------------------+---------------+
 |                         RP Address                           |
 +---------------------------------------------------------------+
 |                         (S, G) Entry [1]                     |
 +---------------------------------------------------------------+
 |                             ....                             |
 +---------------------------------------------------------------+
 |                         (S, G) Entry [n]                     |
 +---------------------------------------------------------------+
MSDP Source-Active Response消息字段解释
字段 长度 说明
Type 1字节 消息类型,值为3。
Length 2字节 消息长度,整个TLV的长度。
Entry Count 1字节 消息中包含的(S,G)项总数。
RP Address 4字节 源RP地址。
(S,G)Entry [1]...[N] 变长 (源,组)信息,参见(S,G)Entry的格式

MSDP KeepAlive

MSDP KeepAlive消息用于保持MSDP对等体的连接关系。

MSDP KeepAlive消息格式
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +---------------+-------------------------------+---------------+
 |       Type   |           Length             |
 +---------------+-------------------------------+
字段 长度 说明
Type 8比特 消息类型,值为4。
Length 16比特 消息长度,值为3。

参考标准

标准 描述
RFC 3618 Multicast Source Discovery Protocol (MSDP)