📄 rfc2189.txt
字号:
all groups for which the link is its child.
ECHO_REPLY messages are unicast or multicast, as appropriate.
4.6.2. Receiving ECHO_REPLY messages
An ECHO_REPLY message must be received via a valid parent interface.
For each group reported in an ECHO_REPLY, the downstream router
attempts to match the group with one in its forwarding cache for
which the arrival interface is the group's parent interface. For each
successful match, the entry is "refreshed". If however, after
[GROUP_EXPIRE_TIME] seconds a group has not been "refreshed", a
QUIT_NOTIFICATION is sent upstream, and a FLUSH_TREE message is sent
downstream, for the group.
If this router has directly attached members for any of the flushed
groups, the receipt of an IGMP host membership report for any of
those groups will prompt this router to rejoin the corresponding
tree(s).
Ballardie Experimental [Page 12]
RFC 2189 CBTv2 Protocl Specification September 1997
4.7. FLUSH_TREE Processing
The FLUSH_TREE (flush) message is the mechanism by which a router
invokes the tearing down of all its downstream branches for a
particular group. The flush message is multicast to the "all-cbt-
routers" group when sent over multicast-capable interfaces, and
unicast otherwise.
4.7.1. Sending FLUSH_TREE messages
A FLUSH_TREE message is sent over each downstream (child) interface
when a router has lost reachability with its parent router for the
group (detected via ECHO_REQUEST and ECHO_REPLY messages). All group
state is removed from an interface over which a flush message is
sent. A flush can specify a single group, or all groups
(INADDR_ANY).
4.7.2. Receiving FLUSH_TREE messages
A FLUSH_TREE message must be received over the parent interface for
the specified group, otherwise the message is discarded.
The flush message must be forwarded over each child interface for the
specified group.
Once the flush message has been forwarded, all state for the group is
removed from the router's forwarding cache.
5. Non-Member Sending
Data can be sent to a CBT tree by a sender not attached to the group
tree. The sending host originates native multicast data, which is
promiscuously received by a local router, which must be CBT capable.
It is assumed the local CBT router knows about the relevant <core,
group> mapping, and thus can encapsulate (IP-in-IP) the data packet
and unicast it to the corresponding core router. On arriving at the
core router, the data packet is decapsulated and disemminated over
the group tree in the manner already described.
6. Timers and Default Values
This section provides a summary of the timers described above,
together with their recommended default values. Other values may be
configured; if so, the values used should be consistent across all
CBT routers attached to the same network.
o [HELLO_INTERVAL]: the interval between sending an HELLO message.
Default: 60 seconds.
Ballardie Experimental [Page 13]
RFC 2189 CBTv2 Protocl Specification September 1997
o [HELLO_PREFERENCE]: Default: 255.
o [HOLDTIME]: generic response interval. Default: 3 seconds.
o [MAX_RTX]: default maximum number of retransmissions. Default 3.
o [RTX_INTERVAL]: message retransmission time. Default: 5 seconds.
o [JOIN_TIMEOUT]: raise exception due to tree join failure.
Default: 3.5 times [RTX_INTERVAL].
o [TRANSIENT_TIMEOUT]: delete (unconfirmed) transient state.
Default: (1.5*RTX_INTERVAL) seconds.
o [CACHE_DEL_TIMER]: remove child interface from forwarding cache.
Default: (1.5*HOLDTIME) seconds.
o [GROUP_EXPIRE_TIME]: time to send a QUIT_NOTIFICATION to our
non-responding parent. Default: (1.5*ECHO_INTERVAL).
o [ECHO_INTERVAL]: interval between sending ECHO_REQUEST to parent
routers. Default: 60 seconds.
o [EXPECTED_REPLY_TIME]: consider parent unreachable. Default: 70
seconds.
7. CBT Packet Formats and Message Types
CBT control packets are encapsulated in IP. CBT has been assigned IP
protocol number 7 by IANA [4].
7.1. CBT Common Control Packet Header
All CBT control messages have a common fixed length header.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| vers | type | addr len | checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1. CBT Common Control Packet Header
This CBT specification is version 2.
Ballardie Experimental [Page 14]
RFC 2189 CBTv2 Protocl Specification September 1997
CBT packet types are:
o type 0: HELLO
o type 1: JOIN_REQUEST
o type 2: JOIN_ACK
o type 3: QUIT_NOTIFICATION
o type 4: ECHO_REQUEST
o type 5: ECHO_REPLY
o type 6: FLUSH_TREE
o type 7: Bootstrap Message (optional)
o type 8: Candidate Core Advertisement (optional)
o Addr Length: address length in bytes of unicast or multicast
addresses carried in the control packet.
o Checksum: the 16-bit one's complement of the one's complement
sum of the entire CBT control packet.
7.2. HELLO Packet Format
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CBT Control Packet Header |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Preference | option type | option len | option value |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2. HELLO Packet Format
HELLO Packet Field Definitions:
o preference: sender's HELLO preference.
o option type: the type of option present in the "option value"
field. One option type is currently defined: option type 0
(zero) = BR_HELLO; option value 0 (zero); option length 0
(zero). This option type is used with HELLO messages sent by a
Ballardie Experimental [Page 15]
RFC 2189 CBTv2 Protocl Specification September 1997
border router (BR) as part of designated BR election (see [5]).
o option len: length of the "option value" field in bytes.
o option value: variable length field carrying the option value.
7.3. JOIN_REQUEST Packet Format
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CBT Control Packet Header |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| group address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| target router |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| originating router |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| option type | option len | option value |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3. JOIN_REQUEST Packet Format
JOIN_REQUEST Field Definitions
o group address: multicast group address of the group being joined.
For a "wildcard" join (see [5]), this field contains the value of
INADDR_ANY.
o target router: target (core) router for the group.
o originating router: router that originated this JOIN_REQUEST.
o option type, option len, option value: see HELLO packet format,
section 7.2.
7.4. JOIN_ACK Packet Format
JOIN_ACK Field Definitions
o group address: multicast group address of the group being joined.
o target router: router (DR) that originated the corresponding
JOIN_REQUEST.
Ballardie Experimental [Page 16]
RFC 2189 CBTv2 Protocl Specification September 1997
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CBT Control Packet Header |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| group address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| target router |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| option type | option len | option value |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4. JOIN_ACK Packet Format
o option type, option len, option value: see HELLO packet format,
section 7.2.
7.5. QUIT_NOTIFICATION Packet Format
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CBT Control Packet Header |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| group address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| originating child router |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 5. QUIT_NOTIFICATION Packet Format
QUIT_NOTIFICATION Field Definitions
o group address: multicast group address of the group being joined.
o originating child router: address of the router that
originates the QUIT_NOTIFICATION.
Ballardie Experimental [Page 17]
RFC 2189 CBTv2 Protocl Specification September 1997
7.6. ECHO_REQUEST Packet Format
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CBT Control Packet Header |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| originating child router |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -