# A Multiple Access Protocol Based on Gray Forecast for Satellite Network
## 5 CFDAMA-GF Frame Structure and Algorithm Flow  
The satellite multiple access algorithm is based on fixed allocation, random access and demand assignment. Traditional fixed allocation and random access multiple access can no longer meet the demands because of diverse services arriving in satellite communication networks and high data rates. The multiple access protocols of satellite communication networks are improved compared to original access protocols, such as the classic CFDAMA protocol, which also enhances the TDMA frame structure. Moreover, optimizing the satellite resource allocation algorithm improves the communication system's delay and channel utilization. However, the disadvantage of this protocol is the waiting delay when a user gains access to a system, thereby influencing the user's experience. The CFDAMA-GF protocol proposed in this paper is an improved version of the classic CFDAMA protocol. The gray forecastmethod is used to reserve a timeslot with the access algorithm, and the satellite allocation algorithm adds user prioritization. Therefore, a fair allocation can be made according to the priority level.  
The gray model is used for CFDAMA-GF user access slot reservation and user priority-based bandwidth allocation procedures. This section presents the CFDAMA-GF algorithm flowchart and introduces the frame structure.  
The uplink frame of the CFDAMA-GF protocol contains a user's reservation request information and the data packet sent by users. Each user sends data in the corresponding satellite-designed timeslot. The downlink frame contains the allocation response information of the satellite and the data packet information sent by users. After receiving response information, users can determine the timeslot in a frame when data are transmitted. A delay occurs between uplink and downlink frames, which corresponds to the time when the satellite allocates a timeslot. The frame structure is shown in Figure 1.  
The process of the CFDAMA-GF protocol is mainly divided into two phases, namely multiple access and bandwidth allocation. Multiple users access in the multiple access phase, and the bandwidth allocation phase completes the satellite allocation to accomplish the allocation of bandwidth resources based on a user's requests. The process is shown in Figure 2. The detailed steps of the access algorithm are as follows:  
1. The satellite ID received by the broadcast and \"ON\" status are loaded into the ACK packet and sent to the corresponding satellite when user data are sent.
2. After the satellite receives the ACK packet, it detects whether the ID information matches. If so, the satellite allocates a requested timeslot to the user.
3. After the user successfully gains access, the gray forecast model is used to predict the next time packets. According to Equation (11), the timeslot request is sent to the satellite, that is the service information. The frame structure is shown in Figure 1. \[slots_{req}=(slots_{req}-1)-slots_{wait}\] (11)
4. The satellite sets the priority number according to the number of users queued in descending order and fills in the reservation and free allocation tables.
5. The satellite calculates the remaining timeslots after the allocation according to the reservation table, and the number of timeslots is greater than zero. If so, the timeslots for the reservation table are allocated according to priority. After the allocation is completed, polling freely allocates the remaining timeslots. Otherwise, polling allocates the reservation table according to the weighted distribution in Equation (10).  
Figure 1: Frame structure of the combined free/demand assignment multiple access-gray forecast (CFDAMA-GF).  
* After the timeslots allocated by the satellite are received, the user terminal transmits data and occupies the designed timeslot.
* The user sends an end-to-end flag when the user does not have a data request to send. The satellite deletes the user information from the demand assignment table and adds it to the free allocation table.