# Towards Deterministic-Delay Data Delivery Using Multi-Criteria Routing over Satellite Networks
## 3 Problem Modeling
### Routing Algorithm  
In the satellite Internet service scheduling algorithm based on the spatiotemporal distribution of traffic, the parameter updates of the entire network's state are related to changes in traffic arrival rates and topology across different time periods. The algorithm calculates two paths for any two satellite nodes in the network: one path for time-sensitive services and another for non-time-sensitive services. The pseudocode is in Algorithm 1:  
```
1:Input:
2:\(G=\{\mathcal{V}_{T},\mathcal{E}_{T}\}\): Network topology within time range \(T\). 3:\(\lambda_{\tau,u,v}\): Traffic arrival rate from satellite \(u\) to satellite \(v\) at time \(\tau\). 4:\(\lambda_{\tau,u,v}^{ls}\): Spatiotemporal traffic factor. 5:Output:
6:\(pts\): Path of time-sensitive service between any two points \(s\) and \(d\)\((s\
eq d)\). 7:\(pnts\): Path of non-time-sensitive service between any two points \(s\) and \(d\)\((s\
eq d)\). 8://Step 1: Calculate traffic arrival rate for each satellite node. 9:for each node \(u\) in \(G\) and each time \(\tau\)do
10:\(\lambda_{\tau,u}\leftarrow\) sum (\(\lambda_{\tau,u,v}\) for all \(v\)). 11:endfor
12://Step 2: Sort nodes by traffic arrival rate. 13:\(Q\leftarrow\) nodes sorted by ascending \(\lambda_{\tau,u}\). 14://Step 3: Calculate time-sensitive service path. 15:for each pair \((q_{s},q_{d})\) in \(\mathcal{Q}\)do
16:\(pts\leftarrow\) Dijkstra \((G,q_{s},q_{d})\). 17:endfor
18:for each link in \(pts\)do
19: Arrange service on link based on \(\lambda_{\tau,u,v}^{ts}\). 20: Compute traffic proportion \(\mu\) on link. 21:endfor
22://Step 4: Update link cost for non-time-sensitive service. 23:for each link \((u,v)\) in \(G^{\prime}\)do
24: Calculate the initial link cost of the link \((u,v)\) in \(G^{\prime}\) based on the Formula (8) and \(\mu\). 25:endfor
26://Step 5: Calculate non-time-sensitive service path. 27:for each pair \((q_{s},q_{d})\) in \(Q\)do
28:\(pnts\leftarrow\) Dijkstra \((G^{\prime},q_{s},q_{d})\). 29:for each link in \(pnts\)do
30: Arrange service on link based on \(\lambda_{\tau,u,v}\). 31: Update \(\mu\) and \(\mu_{mcd}\). 32: Update link cost in \(G^{\prime}\) according to the Formula (8). 33:endfor
34:endfor
```  
**Algorithm 1** Routing algorithm based on spatiotemporal distribution of traffic  
### Routing Algorithm  
In the satellite Internet service scheduling algorithm based on the spatiotemporal distribution of traffic, the parameter updates of the entire network's state are related to changes in traffic arrival rates and topology across different time periods. The algorithm calculates two paths for any two satellite nodes in the network: one path for time-sensitive services and another for non-time-sensitive services. The pseudocode is in Algorithm 1:  
```
1:Input:
2:\(G=\{\mathcal{V}_{T},\mathcal{E}_{T}\}\): Network topology within time range \(T\). 3:\(\lambda_{\tau,u,v}\): Traffic arrival rate from satellite \(u\) to satellite \(v\) at time \(\tau\). 4:\(\lambda_{\tau,u,v}^{ls}\): Spatiotemporal traffic factor. 5:Output:
6:\(pts\): Path of time-sensitive service between any two points \(s\) and \(d\)\((s\
eq d)\). 7:\(pnts\): Path of non-time-sensitive service between any two points \(s\) and \(d\)\((s\
eq d)\). 8://Step 1: Calculate traffic arrival rate for each satellite node. 9:for each node \(u\) in \(G\) and each time \(\tau\)do
10:\(\lambda_{\tau,u}\leftarrow\) sum (\(\lambda_{\tau,u,v}\) for all \(v\)). 11:endfor
12://Step 2: Sort nodes by traffic arrival rate. 13:\(Q\leftarrow\) nodes sorted by ascending \(\lambda_{\tau,u}\). 14://Step 3: Calculate time-sensitive service path. 15:for each pair \((q_{s},q_{d})\) in \(\mathcal{Q}\)do
16:\(pts\leftarrow\) [PERSON] \((G,q_{s},q_{d})\). 17:endfor
18:for each link in \(pts\)do
19: Arrange service on link based on \(\lambda_{\tau,u,v}\). 20: Compute traffic proportion \(\mu\) on link. 21:endfor
22://Step 4: Update link cost for non-time-sensitive service.