# Lossless and High-Throughput Congestion Control in Satellite-Based Cloud Platforms +
## 3 Integrated System and Algorithm Design
### Forwarding Dispatch Table  
The dispatch table records each data flow and the Data packets belonging to it, classifying them for forwarding based on their priority and name prefix. In this paper, the producer assigns a specific priority to each content object. A series of Data packets sharing the same name prefix but differing in sequence numbers constitutes a data flow, as illustrated in Figure 5. The payloads carried by these packets can be aggregated to form complete content. The priority of the content object is embedded in each corresponding Data packet, providing a foundation for making forwarding decisions.  
To ensure lossless forwarding and satisfy the service requirements of multi-priority data flows, a forwarding dispatch table is established in each router. This table classifies and records incoming Data based on the forwarding interface, priority, and name prefix. The structure of this dispatch table is illustrated in Figure 6.  
Figure 5: Data flow composed of Data packets with the same name prefix.  
In the dispatch table, each interface is associated with a forwarding database \(Q\). The database \(Q\) records all Data packets that should be forwarded from that interface. Specifically, \(Q\) contains the priority \(p_{i}\) and the corresponding queue \(q_{i}=Q(p_{i})\). The details recorded in \(q_{i}\) include mappings of the name prefix \(n_{i}\) to its respective sub-queue \(s_{i}=q_{i}(n_{i})\). Each mapping corresponds to a specific data flow. The sub-queue \(s_{i}\) holds pointers to each Data packet in the form of a queue and records the total byte length \(\text{byte}(s_{i})\) of the forwarded Data belonging to the data flow. The parameters used in the dispatch table are summarized in Table 1.  
The lookup process of the dispatch table is based on the following keywords: interface, priority, name, and bytes sent. Each round of keyword-based searching narrows down the search scope. The keywords, such as interface ID, priority, and bytes sent, are all positive integers, ensuring an efficient search process. Furthermore, all packets belonging to the same data flow share the same name prefix, so the speed of name lookup depends on the number of data flows at a specific priority. Currently, multiple efficient name lookup algorithms have been developed within the NDN. Since the lookup of the dispatch table is only performed on packets that have not yet been forwarded, its entries are fewer compared to those in the CS, further reducing the search scope. In conclusion, the complexity of the dispatch table lookup is well within the manageable capacity of routers.  
When the network size increases without introducing new data flows, the complexity of both the dispatch table lookups and the scheduling algorithm remains unchanged. However, if the network size grows and leads to more data flows being transmitted, the CS buffer space on the router will be more extensively utilized. Consequently, both the dispatch table lookups and the scheduling algorithm complexity will increase, proportional to the number of newly added data flows.