- Introduction
SMRP Multicast Transport Services
SMRP Packet Format
Review Questions
Chapter Goals
- Describe background information about SMRP.
- Define the terms used in SMRP networking.
- Describe the functional characteristics of SMRP, including management, transaction, and packet format.
Simple Multicast Routing Protocol
Introduction
In creating SMRP, Apple borrowed a number of strategies and concepts from other protocols and technologies. In doing so, many terms were adapted to have specific meanings in Apple's SMRP environment. Table 50-1 provides a summary of SMRP-specific terms and definitions. These terms are used throughout this chapter.
Table 50-1: SMRP-Specific Terms and Definitions
Term | Definition |
adjacent endpoint | In relation to a node or an endpoint, an endpoint on the same local network, or a node connected through a tunnel. |
adjacent node | In relation to a node or an endpoint, a node on the same local network. |
child endpoint | An adjacent endpoint to which a node sends multicast data. |
child node | In relation to a member node of a group, a neighbor node farther from the creator endpoint. |
child port | In relation to a group, a port that is the interface to one or more child nodes. |
creator endpoint | The endpoint that requested creation of the group, and the source of data forwarded to the group. |
creator node | The primary node that created the group. |
An SMRP router that has been designated as a primary or secondary node. | |
destination tree | The spanning tree rooted on a local network with paths directed toward the local group. |
endpoint | A nonrouting source or destination of multicast packets. |
Term | Definition |
group | A set of recipient endpoints, or a multicast address. |
join | Term for the process of becoming a member of a group. |
A path on the destination tree for a local network used to reach a creator node, and constructed using the SMRP distance-vector algorithm. | |
leave | Term for the process of relinquishing membership in a group. |
local net | A shared-access data link and its associated network layer protocol. A LAN might support more than one local net. |
member endpoint | An endpoint that is a member of the group. |
member node | A node that is on the distribution tree of a group. |
neighbor node | In relation to a member node of a group, an adjacent node that is on the distribution tree for the group. |
node | A router implementing SMRP. |
parent port | In relation to a group, the port that is the interface to the parent node. |
parent node | In relation to a member node of a group, the neighbor node closer to the creator endpoint. |
port | A local network or tunnel interface on an SMRP router. |
port parent | The address of the node that is responsible for handling group requests. |
primary node | The node on a local network responsible for creating groups. |
reverse path | The reverse of a joining path, a path on the source tree for a local net used to forward multicast data. |
secondary node | The node ready to take over for a disappearing primary node. |
source tree | The spanning tree rooted on a local network with paths directed away from the local network. |
A connected set of paths using local networks between all nodes on an internetwork, with only one path between any two nodes. | |
A point-to-point connection between nodes on nonadjacent networks through routers not implementing SMRP. |
Figure 50-1: A Generalized SMRP Environment Runs from a Multicast Group to an Endpoint
SMRP Multicast Transport Services
SMRP is designed to enable routers and end stations to exchange multicast packets over network layer protocols. SMRP provides the capability to manage multicast address assignment and enables a single source to send data addressed to a unique multicast group address. Receivers join this group if they are interested in receiving data for this group. In support of these functions, SMRP involves a number of services. The discussions that follow focus on the key processes and technologies that enable SMRP services, including address management, the Multicast Transaction Protocol (MTP), node management, multicast route management, data forwarding, and topology management.
SMRP Multicast Address Management
SMRP addressing is based on the local network of a creator endpoint. An SMRP address consists of two parts: a 3-byte network number and a 1-byte socket number. Each local network is configured with a range of unique network numbers.
In network number mapping, network numbers must be assigned to local nets for SMRP and must be unique throughout an entire internetwork. Each local net can be assigned any contiguous range of 3-byte network numbers. The number of multicast groups available for a local net is the number of network numbers assigned multiplied by 254. Network numbers can be configured or can be mapped from the network number of underlying network layer protocols. Unique network number ranges can be reserved for supported network protocols.
The manner in which multicast addresses are mapped to network layer addresses is network layer-dependent. When SMRP transport layer multicast addresses do not map directly to network layer multicast addresses, filtering of the SMRP multicast addresses is required. When network layer multicast addresses do not map directly to data link layer multicast addresses, the network layer is expected to filter out multicast addresses that have not been subscribed.
Network layer multicast addresses are preset for AllEndpoints, AllNodes, and AllEntities addresses. AllEndpoints messages sent to this multicast address are relayed to all endpoints on a network. AllNodes messages sent to this multicast address are relayed to all SMRP routing nodes on a network, and AllEntities messages sent to this multicast address are relayed to all endpoints and all SMRP routing nodes on a network.
SMRP Multicast Transaction Protocol
The basic MTP design as implemented in SMRP routers uses two queues for all transactions: a request queue and a response queue. The request-queue entries are deleted after the router processes the response that it received. The response is processed, when matched with a request, using a callback specified in the entry.
The response-queue entries are created upon receipt of a request packet. The entry is referenced during all processing of the request, and the processed entry remains in the queue until it expires and is deleted from the queue. If a duplicate request is received, it is ignored if the SMRP router is still processing the original request, or if a duplicate response is generated if processing is complete. Responses always are unicast to the requestor. Some received requests require an SMRP routing node to generate additional requests. In this case, the original request(s) will be processed by the callback handler of the routing node's request entry.
SMRP Node Management
Note Cisco does not support tunnel nodes. However, SMRP can be enabled to run network layer tunnels between nonadjacent nodes. |
SMRP Multicast Routes
SMRP Multicast Group Management
An endpoint sends a create-group request to the designated primary node when it wants to start sending data to a group. The primary node then assigns an unused group address and allocates an entry in the group creation table. The primary node finally returns the group address to the creator endpoint and sends an add-group request to the secondary node, if it exists.
Forwarding Multicast Datagrams
SMRP data forwarding involves nodes forwarding multicast datagrams on active paths of the source tree for a particular group. An active path has member endpoints on it for the group, or it is a path needed as a transit path to reach other active paths. The subset of active paths for the source tree is the distribution tree for the group. Data forwarding under SMRP involves a series of negotiations among endpoints and nodes. In general, nodes receive multicast datagrams when endpoints send data to a group. The creator endpoint can send data packets with a network layer multicast address to its local network after it receives a join request from the creator node. Parent nodes on the local network receive this multicast and forward the packet to all child ports in the forwarding table for the group. A node multicasts a packet on a local network only if it is the parent node for the group on that local network and if the data was received on the parent port for the group. Nodes also forward data to adjacent tunnel nodes that are members of the group. In the case of an SMRP tunnel, multicast datagrams are encapsulated in a unicast network layer packet.
Handling SMRP Topology Changes
Disappearing Member Endpoints
To detect disappearing member endpoints, nodes periodically send a group-member request packet to each active child port. Each member node and endpoint returns a group-member confirmation packet to the parent node. If no group-member confirmation packets are received by the parent node, the node sends a leave-group request packet to its parent node and then deletes the group entry.
Stranded Groups
SMRP Transaction Example
A typical SMRP-based transaction session involves a Macintosh workstation creating a group, other Macintosh workstations joining the group, and data being sent to the group members.
Finally, the data is received by Router M, which looks up the group in the forwarding table and forwards the multicast data. The Member-Mac then receives data for the group.
SMRP Packet Format
Figure 50-2 illustrates the general SMRP packet format.
Figure 50-2: A General SMRP Packet Consists of Five FieldsThe following descriptions summarize the SMRP packet fields illustrated in Figure 50-2:
- Protocol version—Indicates the version of SMRP.
- Type—Consists of two subfields. The first 2 bits modify the packet type specified by the bottom 6 bits to identify whether a packet is a transaction packet and, if so, what type of transaction.
- Sequence number—Matches responses to requests in transactions to avoid duplicate requests and responses. All packet types are transaction packets and will have a nonzero sequence number (with the exception of multicast data packets and hello packets whose sequence numbers are set to zero).
- Group address—Serves as the designated primary node and assigns group addresses for all multicast sources on the local network. A particular local network can be assigned more than one network number, but multiple network numbers must be in a contiguous range. Nodes must configure network numbers that are unique to each local network and each primary node to prevent collisions of multicast addresses. When a primary node assigns a new group address, it arbitrarily assigns any unused group address for its network number.
- Data—Varies depending on SMRP packet type. Table 50-2 summarizes data characteristics based on packet type.
Table 50-2: Data Characteristics Based on Packet TypePacket Type Data Carried Size Multicast data
Data
Variable, depending on network layer datagram size
Hello
Port state
2 bytes
Notify
Port state
1 byte
Designated node
None
0 bytes
Multicast vector
8 bytes
Create group
None
0 bytes
Delete group
None
0 bytes
Join group
None
0 bytes
Add group entry
Network layer unicast address
Variable, depending on network layer address format
Remove group
None
0 bytes
Leave group
None
0 bytes
Creator request
None
0 bytes
Member request
None
0 bytes
Reject
Error indication
Short integer ranging from -7700 to -7710, depending on errors
Review Questions
Q—Describe the SMRP address.
A—SMRP addressing is based on the local network of a creator endpoint. An SMRP address consists of two parts: a 3-byte network number and a 1-byte socket number. Each local network is configured with a range of unique network numbers.
Q—What type of message is sent when an endpoint-to-node request is made? What type of message is sent for a node-to-endpoint?
A—Endpoint-to-node requests are sent as multicasts, while node-to-endpoint requests are sent as either unicasts or multicasts.
Q—How does a node become the designated primary node on a network?
A—The basic process of primary and secondary node determination begins at startup, when a node first tries to become the designated secondary node on each local net. If successful, the node then tries to become the designated primary node. Transactions are initiated by either a primary-node request or a secondary-node request. No response to the request indicates that the negotiation succeeded, while a positive response indicates that the negotiation failed.
No comments:
Post a Comment