## 4 The Proposed Two-Step Access and Handover Strategy
### Utility Function-Based GEO/LEO Satellite Network Selection
#### 4.1.1 Utility Design  
Considering the different delay tolerance and different urgency to access the GEO and LEO satellites of services, the design bases of utility function are as follows [29; 30]:  
* Normalized processing, setting the utility value in the range of [0,1].
* When the communication delay exceeds the service delay tolerance, the utility value of delay is 0.
* With the increase in delay, the utility value of delay decreases.
* When there is no subchannel available in the satellite, the utility value of availability is 0; when all subchannels in the satellite are free, the utility value of availability is 1.
* As this step is to connect to GEO satellite or LEO satellites, LEO satellites are regarded as a whole.
* Under the same load status, the less the service delay tolerance, the more inclined it is to access the LEO satellite network.  
At every time slot \(t\), \(d_{i,s}(t)\) is the time delay generated when user \(i\) connects satellite \(s\), \(r_{i,s}(t)\) is the current available rate of satellite \(s\), where \(s=1\) is connect to GEO satellite, \(s=2\) is connect to LEO satellite network. Letting \(d_{t}^{ij,i}(t)\) be the transmission delay between user \(i\) and satellite \(j\) at time \(t\), \(d_{p}^{i,j}(t)\) be the propagation delay between user \(i\) and satellite \(j\), \(d_{ho}^{i,j}(t)\) be the handover delay if user \(i\) connect to satellite \(j\), where \(j=1\) is GEO satellite, \(U\) is the LEO satellites that can be connected at the current moment.  
\(d_{i,s}(t)\) is expressed as  
\[d_{i,s}(t)=\left\{\begin{array}{cc}d_{t}^{i,1}(t)+d_{p}^{i,1}(t)+d_{ho}^{i, 1}(t),&,s=1\\ \frac{1}{|U|}\sum_{j\in U}\Bigl{(}d_{t}^{i,j}(t)+d_{p}^{i,j}(t)+d_{ho}^{i,j}( t)\Bigr{)}&,s=2\end{array}\right. \tag{4}\]  
\(r_{i,s}(t)\) is expressed as  
\[r_{i,s}(t)=\left\{\begin{array}{cc}\frac{N_{Ga}}{N_{Cl}}&,s=1\\ \frac{N_{Is}}{N_{Li}}&,s=2\end{array}\right. \tag{5}\]  
where \(N_{Ga}\) is the number of available channels of GEO satellite, \(N_{Cl}\) is the number of total channels of GEO satellite, \(N_{La}\) is the number of available channels for all LEO satellites that can be connected, and \(N_{Lt}\) is the number of total channels for all LEO satellites that can be connected. The available channels include free channels and the channel which is already been occupied by user \(i\).  
Therefore, at every time slot \(t\), the delay utility function \(U_{d}^{i,s}(t)\) of user \(i\) to satellite \(s\) is [29]:  
\[U_{d}^{i,s}(t)=\left\{\begin{array}{cc}1-e^{\left(k\left(d_{i,s}(t)-d_{i}^{ \max}\right)\right)},&0\leq d_{i,s}(t)\leq d_{i}^{\max}\\ 0&,d_{i}^{\max}<d_{i,s}(t)\end{array}\right. \tag{6}\]  
where \(d_{i}^{\max}\) is the maximum delay tolerance of the service generated by user \(i\), \(k\) is the growth rate, and the higher the value, the steeper the curve. \(k\) is determined according to the maximum delay tolerance and the desired delay, namely the Target Point:  
\[k=\frac{-\ln(1-p)}{\left(d_{i}^{\max}-\text{ Target Point}\right)},0<p<1 \tag{7}\]  
where \(p\) is inversely proportional to the distance between the Target Point and the tolerance, for most attributes, \(0.8<p<0.9\) produces balanced results.  
The availability utility function of user \(i\) to satellite \(s\) at time slot \(t\) is [30]  
\[U_{d}^{i,s}(t)=\left\{\begin{array}{cc}1-\frac{1}{1+e^{15\left(t_{i,s}(t)- \text{Inp}\right)}}&,0<r_{i,s}(t)\leq 1\\ 0&,r_{i,s}(t)=0\end{array}\right. \tag{8}\]  
where the Inp is the inflection point of the curve, which should set according to the maximum delay tolerances so that services with different maximum delay tolerances show different utility values.  
Figure 2(a),b is the delay utility function and the availability utility function of different grades of services. As the services of grade 1 is time-sensitive and can only connect to LEO satellite, only the services of grade 2, 3, and 4 is calculated.  
Figure 3: Utility Function: (**a**) delay utility function and (**b**) availability utility function.