# DTN and Non-DTN Routing Protocols for Inter-CubeSat Communications: A comprehensive survey
## 3 Routing Protocols in Connected CubeSat network
### Single-Layer Routing for Satellite Networks
The congested satellite broadcasts a \"soon to be congested\" message to its adjacent satellites in order to minimize their transmission rate through it. The adjacent satellites will respond to that by exploring alternative paths excluding the congested satellite. ELB routing is based on a queue ratio and reduction ratio metrics to provide restored data flow and avoid the congestion that results in data dropping. More recently, a load balancing routing algorithm was proposed for broadband LEO satellite networks [24]. The authors designed and implemented the Cross-layer design and Ant-colony optimization-based Load-balancing routing algorithm (CAL-LSN), which uses the physical layer information to make routing decisions. Mobile agents that are known as \"ants\" are used to collect link status information. Their proposed multi-objective optimization model considers the smallest bandwidth limit, the upper limit of the LEO satellite network delay tolerance, and link disruption probability. The discrete time-dynamic virtual topology of the satellite networks typically contains multiple shortest paths between the source and destination. Accordingly, a Priority-based Adaptive Routing (PAR) load balancing routing technique was proposed for non-geosynchronous orbit satellite networks [25]. The priority technique in PAR utilizes the historical information and ISL buffering status to make the decision at each node along the path and form a complete path to the destination. The satellite network is modelled and simulated as a grid that provides multiple shortest paths to the destination. The enhanced version of PAR (ePAR) is also proposed as an alternative to minimize needless data traffic and increase link utilization efficiency. For instance, not only will the congested links be avoided, but by the use of ePAR the links with smaller queues will also be more favourable. Although the PAR uses the minimum hop count as a metric to reach the destination, it can be enhanced to consider the link length and average minimized delays. In terms of data redirection at the congested links, ePAR parameters should be adjusted to ensure a small initial data rate transmission over the alternative links; otherwise, the alternative link itself may become congested. The ePAR is analysed to show the effect of adjusting the priority metric parameters to attain optimal performance; however, this analysis assumes an unlimited buffer size and long ageing periods for prioritization. To observe the application of the ePAR on the CubeSat networks, the buffer size should be adjusted. Besides, the ageing technique that uses the information from the previous time slots should be modified to reduce the storage complexity. Similar to this PAR algorithm, the Dynamic Detection Routing Algorithm (DDRA) examines routing in virtual grid topology that divides the satellite network into small slots of time with two link status changes considered: a predictable change that defines the link alternation between two-time slots and a sudden change that reflects any link congestion or failure at a specific time slot [26]. The advantage of DDRA is that the delay is limited to the topology slot and any sudden change is handled to avoid any delay coming from the link disruption that is caused by link congestion or failure. Henceforth, apart from routing protocols based on \"virtual topology\" that are discussed above, the second category of single-layer \"virtual node\" routing protocols will be discussed. In satellite networks, especially the CubeSats, which are characterized by high failure rates, the absence of one satellite might lead to multiple link disruptions. Virtual node routing typically considers the network status based on the node status to update the path for better performance, as some dynamic routing techniques cannot handle the regular occurrence of link and node failures.