# A Distributed Multicast QoS Routing Construction Approach in Information-Centric Networking
## 3 System Design
### Tree Construction Algorithm
#### 3.5.2 Node Selection  
Before a receiver initiates a specific multicast group join request, it determines its QoS Delay Requirement (D\({}_{\text{QoS}}\)), specifying that the multicast transmission delay should be lower than this specified value. The multicast transmission delay is defined as the accumulated delay (D\({}_{\text{est}}\)) of data transmitted from the multicast tree root to the receiver hop by hop, as shown in Figure 6a. For receivers (R) requesting to join a multicast group, the multicast delay can be divided into two parts: the delay from RN to TN (\(D_{accum}\)) and the delay from TN to R (D\({}_{\text{est}}\)), as illustrated in Figure 6b.  
Figure 5: Multicast tree information storage format in the NRS.  
Figure 6: Multicast Transmission Delay. (**a**) Hop-by-hop Transmission Delay; (**b**) Estimated Delay.  
The receiver must carefully select a specific TN (TN\({}_{\text{spec}}\)) within the established multicast tree. The process begins with the receiver querying its affiliated Enhanced Name Resolution System (ENRS) for a comprehensive list of nodes associated with the multicast group MID. If the ENRS returns a non-empty list, the results returned by the ENRS are added to the candidate node set [TN], and the TN\({}_{\text{spec}}\) selection process begins.  
If no entries corresponding to MID are found in the ENRS, the GNRS is queried to obtain the root node (RN) of the multicast tree.  
The TN\({}_{\text{spec}}\) selection process is as follows:  
1. If [TN] is empty, set TN\({}_{\text{spec}}\) to RN, and skip to Step 4.
2. For each TN\({}_{\text{i}}\) node in the node set [TN], retrieve the corresponding entry NSIB[TN\({}_{\text{i}}\)] from the NSIB of the receiver node. If relevant information can be retrieved, select the node with the least cost, NSIB[TN\({}_{\text{i}}\)]\({}_{\text{cost}}\), as TN\({}_{\text{spec}}\), and skip to Step 4.
3. For each TN\({}_{\text{i}}\) node in the node set [TN], query the LCT, and select the node with the minimum cost LCT[TN\({}_{\text{i}}\)]\({}_{\text{cost}}\) as TN\({}_{\text{spec}}\).
4. Based on the information recorded in the routing entry LCT[TN\({}_{\text{spec}}\)], send a JOIN message, as shown in Figure 7, to LCT[TN\({}_{\text{spec}}\)].Gateway. Set the Request Node to the receiver's network address (NA), set the Branch Node to TN\({}_{\text{spec}}\), and set the QoS Delay Requirement field to DQoS.  
Figure 7 depicts the message format utilized in this paper. The ID Header records the MID for the join request in Figure 7. The Message Type field can have three types: JOIN, GRAFT, and PRUNE. The Branch Node represents the selected tree node and serves as the destination address for JOIN messages. Request Node represents the receiving node initiating the JOIN message, while Previous Delay represents the accumulated delay from the root node to the intermediate node. The link status between the receiver and TN\({}_{\text{spec}}\) will be probed during the JOIN message propagation. The Link State Table (LS Table) records the measured link state information. The process of building the LS Table is described in the following section.