A MAC layer channel access method and device based on multiple service priorities

By establishing multiple priority queues within the terminal and optimizing the channel competition method, the problems of high resource scheduling time overhead and difficulty in guaranteeing high-priority services in wireless LANs are solved, efficient channel access and resource utilization are achieved, and network performance and fairness are improved.

CN120475547BActive Publication Date: 2025-09-26DONGHAI LAB
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510983031.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-07-16
Publication Date
2025-09-26
Estimated Expiration
2045-07-16

AI Technical Summary

Technical Problem

The existing MAC layer protocol in wireless local area networks has problems such as large resource scheduling time overhead, poor latency performance, and difficulty in continuously ensuring high-priority services.

Method used

By establishing multiple priority queues in the terminal, the corresponding priority queue position and strength value are determined based on the service type and time information of the data packet, and channel access is optimized through user service probability and channel competition to ensure that high-priority services are sent in a timely manner.

Benefits of technology

It reduces channel access delay, improves channel access efficiency and resource utilization, ensures the reasonable sending order and priority access of different types of services, and improves the overall performance and fairness of wireless communication networks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120475547B_ABST
    Figure CN120475547B_ABST
Patent Text Reader

Abstract

The present application provides a MAC layer channel access method and device based on multiple service priorities. The method provided by the present application includes: establishing multiple priority queues in a terminal; determining the first priority queue corresponding to each data packet based on the service type of the MAC layer data packet; determining the position of the data packet in the corresponding first priority queue and the first priority strength value based on the time information of the data packet; determining the target data packet from the multiple priority queues and placing the target data packet at the end of the sending queue; calculating the user service probability based on the user service level of each terminal; determining whether to send data based on the user service probability, determining the channel competition mode based on the terminal density of the terminal when determining to send data, determining the sending terminal of the current sending cycle based on the channel competition mode, and the sending terminal sending the data packets in the sending queue.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of wireless communication networks, and in particular to a MAC layer channel access method and device based on multiple service priorities. Background Art

[0002] With the rapid development of mobile communication networks, more and more mobile terminals are urgently demanding a convenient and fast way to access the internet. This is why wireless local area networks (WLANs) have emerged. WLANs are an extension of wired LANs, resolving the difficulties of wired LAN cabling and poor mobility. Using electromagnetic waves or infrared as a transmission medium, WLANs retain the high-speed transmission characteristics of existing LANs while enabling flexible networking without the need for wiring. For a long time, WLANs, with their flexible networking capabilities, have been widely used in various fields, including education, homes, and inter-building networks. The characteristics of WLANs enable them to support a variety of multimedia applications, including voice, data, and video.

[0003] Upon its emergence, WLAN (Wireless LAN) quickly became a hot topic in the communications field, with a proliferation of standards, including the IEEE 802.11 protocol series, Bluetooth, HomeRF, and HiperLAN. The IEEE 802.11 protocol series boasts the most diverse versions, the most outstanding performance, and the widest application. The MAC layer of the IEEE 802.11 protocol provides two channel access mechanisms: the Distributed Coordination Function (DCF) and the Point Coordination Function (PCF).

[0004] Existing MAC layer protocols suffer from significant resource scheduling and interaction overhead, resulting in poor latency performance, limited support for priority levels, high network overhead, and difficulty ensuring the continuity of high-priority services. Therefore, a MAC layer channel access method based on multiple service priorities is urgently needed to reduce channel access latency and enable prioritized access of multiple service types to the channel. Summary of the Invention

[0005] In view of this, the present application provides a MAC layer channel access method and device based on multiple service priorities to reduce channel access delay and enable multiple types of service data to access the channel according to priority.

[0006] Specifically, this application is implemented through the following technical solutions:

[0007] In a first aspect, the present application provides a MAC layer channel access method based on multiple service priorities, the method comprising:

[0008] Multiple priority queues are established in the terminal. Each priority queue corresponds to a different priority strength value. The service types of each priority queue are different. Each priority queue has a basic priority strength value and a maximum priority strength value.

[0009] Determining a first priority queue corresponding to each data packet based on a service type of the MAC layer data packet;

[0010] determining, based on time information of the data packet, a position of the data packet in the corresponding first priority queue and a first priority strength value; wherein the first priority strength value is between a basic priority strength value and a maximum priority strength value of the first priority queue;

[0011] Determine a target data packet from the plurality of priority queues, and place the target data packet at the tail of a sending queue;

[0012] Calculate user service probability based on the user service level of each terminal;

[0013] Determine whether to send data based on the user service probability, determine a channel competition mode based on the terminal density of the terminal when determining to send data, determine a sending terminal in a current sending cycle based on the channel competition mode, and the sending terminal sends the data packets in the sending queue.

[0014] The second aspect of the present application provides a MAC layer channel access device based on multiple service priorities, the device comprising an establishment module, a determination module, a calculation module and a sending module; wherein,

[0015] The establishment module is used to establish multiple priority queues in the terminal, each priority queue corresponds to a different priority strength value, each priority queue has a different service type, and each priority queue has a basic priority strength value and a maximum priority strength value;

[0016] The determining module is configured to determine a first priority queue corresponding to each data packet based on a service type of the MAC layer data packet;

[0017] The determining module is further configured to determine a position of the data packet in the corresponding first priority queue and a first priority strength value based on the time information of the data packet; the first priority strength value is between a basic priority strength value and a maximum priority strength value of the first priority queue;

[0018] The determining module is further configured to determine a target data packet from the plurality of priority queues, and place the target data packet at the tail of the sending queue;

[0019] The calculation module is used to calculate the user service probability based on the user service level of each terminal;

[0020] The sending module is used to determine whether to send data based on the user service probability, determine a channel competition mode based on the terminal density of the terminal when determining to send data, determine a sending terminal in the current sending cycle based on the channel competition mode, and the sending terminal sends the data packets in the sending queue.

[0021] The multi-service priority-based MAC layer channel access method and apparatus provided herein utilize a hierarchical scheduling mechanism to ensure data packets are sent according to priority while effectively improving channel access efficiency and resource utilization. In this mechanism, first-layer scheduling occurs within a terminal, while second-layer scheduling occurs between terminals. The two complement each other to optimize resource allocation at different levels. First-layer scheduling determines the position and priority strength value of each data packet in the corresponding priority queue based on the data packet's service type. Normalizing the service type and converting it into unified data transmission time and quality requirements ensures that various services can enter the channel in an orderly manner according to their priority and transmission requirements. Specifically, data packets of different service types are mapped to different priority queues. Dynamically adjusting the priority strength value ensures that high-priority services are sent promptly, thus resolving the issue of stable transmission of high-priority services in traditional methods. Second-layer scheduling operates at the level of channel contention and resource allocation between terminals. First, the user service probability is calculated based on each terminal's user service level. Based on this probability, data transmission is determined, ensuring that users with higher service levels have greater channel access opportunities. After determining whether to transmit data, an appropriate channel contention method is selected based on terminal density, and the transmitting terminal for the current transmission cycle is further determined. This approach can effectively resolve channel access conflicts in multi-terminal environments, optimizing channel access latency and packet collisions through a rational competitive approach. By combining two layers of scheduling, this application not only ensures the proper order and priority access of different types of data, but also reduces channel access latency and collisions, improving the overall performance and fairness of wireless communication networks. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] Figure 1 Flowchart of the MAC layer channel access method based on multiple service priorities provided in Example 1 of the present application;

[0023] Figure 2 A schematic diagram of the microgroove competition method shown in this application;

[0024] Figure 3 This is a schematic diagram of a multi-frame spacing method shown in this application;

[0025] Figure 4 This is a structural diagram of a MAC layer channel access device based on multiple service priorities provided in Example 2 of the present application. DETAILED DESCRIPTION

[0026] Exemplary embodiments are described in detail herein, with examples illustrated in the accompanying drawings. When the following description refers to the drawings, identical numerals in different drawings represent identical or similar elements unless otherwise indicated. The embodiments described in the following exemplary embodiments are not intended to represent all embodiments consistent with this application.

[0027] The terms used in this application are for the purpose of describing specific embodiments only and are not intended to limit this application. The singular forms "a," "the," and "the" used in this application are also intended to include the plural forms unless the context clearly indicates otherwise. It should also be understood that the term "and / or" as used herein refers to and includes any or all possible combinations of one or more of the associated listed items.

[0028] It should be understood that although the terms first, second, third, etc. may be used in this application to describe various information, such information should not be limited to these terms. These terms are only used to distinguish information of the same type from each other. For example, without departing from the scope of this application, first information may also be referred to as second information, and similarly, second information may also be referred to as first information. Depending on the context, the word "if" as used herein may be interpreted as "at the time of" or "when" or "in response to determining".

[0029] Specific embodiments are given below to introduce the technical solutions of the present application in detail.

[0030] Example 1

[0031] Figure 1 This is a flowchart of the MAC layer channel access method based on multiple service priorities provided in Example 1 of this application. Figure 1 The method provided in this embodiment may include:

[0032] S101. Establish multiple priority queues in the terminal. Each priority queue corresponds to a different priority strength value. Each priority queue has a different service type. Each priority queue has a basic priority strength value and a maximum priority strength value.

[0033] Specifically, priority queues are used to store data packets of corresponding service types. Each priority queue has a different service type and a different priority strength value. The priority strength value is related to the priority of the access channel for data packets in the priority queue. The higher the priority strength value, the higher the priority of the access channel for data packets in the priority queue.

[0034] It should be noted that each priority queue has a unique basic priority strength value and a maximum priority strength value, and the priority strength value of the data packets in each priority queue is between the basic priority strength value and the maximum priority strength value.

[0035] Optionally, the process of determining the basic priority strength value and the maximum priority strength value of each priority queue includes:

[0036] (1) Based on the priority of each priority queue, determine a first priority score of the priority queue; the higher the priority of the priority queue, the higher the first priority score.

[0037] Specifically, the first priority score is positively correlated with the priority of the priority queue, that is, the higher the priority of the priority queue, the higher the first priority score.

[0038] In specific implementations, the priority ranking of the target priority queue is determined based on the priorities of all priority queues. The first priority score of the target priority queue is then determined based on the priority ranking and the number of priority queues. Specifically, when priority queue AC_n is determined, its corresponding first priority score n is also determined, where AC_n = n. The higher the priority of priority queue AC_n, the larger the value of n.

[0039] For example, in one embodiment, there are four priority queues, which are AC_3, AC_2, AC_1, and AC_0, in descending order of priority. When the target priority queue is AC_3, AC_3 ranks first in priority, and AC_3's first priority score is determined to be 3. When the target priority queue is AC_1, AC_1 ranks third in priority, and AC_1's first priority score is determined to be 1.

[0040] (2) Determine a first priority strength value as a product of the first priority score and the priority strength interval of each priority queue.

[0041] Specifically, the priority intensity interval refers to the time interval or resource allocation set for each priority queue, which is used to control the order in which data packets are sent within the priority queue. The priority intensity interval is related to the priority of the data packet. For example, high-priority data packets may be assigned a smaller contention window or waiting time, while low-priority data packets may have a larger window or waiting time.

[0042] In specific implementation, the first priority strength value can be calculated according to the following formula:

[0043] A = N × n;

[0044] Wherein, A is the first priority strength value; N is the priority strength interval of each priority queue; and n is the first priority score.

[0045] (3) The sum of the first priority strength value and 1 is determined as the basic priority strength value.

[0046] In specific implementation, the basic priority strength value can be calculated according to the following formula:

[0047] P1 = A + 1;

[0048] Wherein, the P1 is a basic priority strength value; and the A is a first priority strength value.

[0049] (4) Determine the product of the priority strength interval and the second priority score as the maximum priority strength value; wherein the difference between the second priority score and the first priority score is 1.

[0050] Specifically, the difference between the second priority score and the first priority score is 1, and the second priority score is greater than the first priority score. For example, in the above example, when the first priority score of priority queue AC_1 is 1, the second priority score is 2, which corresponds to priority queue AC_2.

[0051] In specific implementation, the maximum priority strength value can be calculated according to the following formula:

[0052] P2 = N × (n + 1);

[0053] Wherein, P2 is the maximum priority strength value; N is the priority strength interval of each priority queue; and n+1 is the second priority score.

[0054] In specific implementation, different categories of priority queues are determined based on different service types (different categories of priority queues have different priorities). For each priority queue, its basic priority strength value and maximum priority strength value are calculated based on its priority. Furthermore, priority queues are established in the form of queues based on the basic priority strength value and maximum priority strength value of each priority queue.

[0055] S102: Determine a first priority queue corresponding to each data packet based on a service type of the MAC layer data packet.

[0056] Specifically, the MAC layer (Medium Access Control) is part of the wireless communication network protocol stack and is primarily responsible for controlling terminal data transmission on a shared channel. The MAC layer has multiple data packets, namely, MSDUs (MAC Service Data Units).

[0057] Furthermore, different service types of MAC layer data packets have different corresponding data transmission requirements, and their corresponding first priority queues for storing the MAC layer data packets are also different.

[0058] In a specific implementation, the service type of the MAC layer data packet is used to determine the first priority queue corresponding to each data packet, including: determining the service type of each data packet based on the data packet received by the MAC layer; and determining the first priority queue corresponding to each data packet based on the service type of each data packet.

[0059] Specifically, the service types of data packets may include the first service type, the second service type, the third service type, and the fourth service type. Accordingly, each service type corresponds to different data transmission requirements. The first service type includes security and control service data, which plays a crucial role in system operation and safe production. Accordingly, the first service type corresponds to the highest data transmission requirements, is of the highest importance and urgency, and has the highest priority. Data packets of the first service type can be preemptively transmitted.

[0060] The second service type is real-time services, including VoIP (Voice over IP) and MPEG video data. The data transmission requirements for the second service type are second only to those for the first service type. These services require periodic transmission, have variable data packet lengths, and place high demands on real-time performance, thus receiving the second highest priority.

[0061] The third type of service is non-real-time, including environmental data sensed by various sensors. The data transmission requirements for this type of service are second only to those for the second type of service. This type of service is more important, has lower real-time requirements, but requires higher reliability, and therefore has the third highest priority.

[0062] The fourth service type is best-effort, including FTP (File Transfer Protocol) data and email data. The data transmission requirements for the fourth service type are second only to those for the third service type. However, the fourth service type does not guarantee data packet transmission rate, latency, or reliability, and therefore has the lowest priority. Whether data packets from the fourth service type are sent depends on system resource availability. If sufficient resources are available, these packets are transmitted; otherwise, they are discarded.

[0063] In specific implementations, for each data packet received by the MAC layer, key information is extracted from the packet, including header information (including source address, destination address, data type identifier, protocol type, etc.), packet payload (the actual data content, which may be voice data, video data, sensor data, or file transfer data), and time information (such as the packet's timestamp or transmission period). Furthermore, the packet's header information is first extracted to preliminarily determine the service type. For example, a data packet might be identified as "control class," "real-time voice," "real-time video," "sensor data," or "file transfer." Time information related to timeliness is also extracted from the packet, including timestamp, periodicity requirements, and delay tolerance. Based on the time information, the preliminarily determined service type is adjusted according to the real-time requirements of each service type. For example, for services with strong real-time requirements (such as real-time voice and video), the packet's timestamp and periodicity requirements are used to determine whether it can be transmitted in a timely manner. If the maximum delay tolerance is exceeded, the packet may be reclassified as a higher-priority service type to ensure timely delivery. For non-real-time services (such as sensor data or file transfers), which have lower real-time requirements, appropriate adjustments can be made based on system resources and delay tolerance to ensure they can be transmitted when the network is idle. Furthermore, for each service type, a first-priority queue corresponding to that service type is determined.

[0064] For example, in one embodiment, combined with the above example, when the service identifier in the data packet corresponds to a security class or a control class, which is usually very urgent and has high real-time requirements, by searching for predefined service types, it is determined that the service type of the data packet is the first service type, and the data transmission requirement of the data packet is the highest. At this time, the data packet is placed in the priority queue with the highest priority.

[0065] Optionally, the method further includes: for each priority queue, increasing the priority strength value of each data packet in the priority queue by a preset value every preset time until the priority strength value of the data packet reaches the maximum priority strength value of the priority queue.

[0066] Specifically, the preset time and the preset value are set according to actual needs and are not limited in this embodiment. For example, in one embodiment, the preset time is 10 minutes and the preset value is 1.

[0067] In specific implementation, for each priority queue, the priority strength value of each data packet in the priority queue is increased by a preset value every preset time until the priority strength value of each data packet reaches the maximum priority strength value of the priority queue.

[0068] The method provided in this embodiment fully considers the service type and data transmission requirements of each data packet when determining the first priority queue corresponding to each data packet, and then determines the corresponding first priority queue based on the service type and data transmission requirements of each data packet. Compared with traditional methods that only focus on a few fixed service types, this application focuses on data packets of multiple service types and can perform more fine-grained classification of the service types of data packets based on actual service needs, thereby achieving more refined management and scheduling, providing personalized channel access solutions, and improving user experience.

[0069] S103. Determine the position of the data packet in the corresponding first priority queue and a first priority strength value based on the time information of the data packet; the first priority strength value is between the basic priority strength value and the maximum priority strength value of the first priority queue.

[0070] Specifically, the time information of a data packet represents the time limit within which the data packet must be processed or transmitted before a specific time, which generally includes a deadline. The first priority queue refers to the priority queue corresponding to the data packet. In conjunction with the above description, the priority strength value of the data packets in each priority queue is between the basic priority strength value and the maximum priority strength value of the priority queue, that is, the first priority strength value is between the basic priority strength value and the maximum priority strength value of the first priority queue.

[0071] In a specific implementation, determining the position of the data packet in the corresponding first priority queue and the first priority strength value based on the time information of the data packet includes:

[0072] (1) For each of the data packets, determine a first priority queue corresponding to the data packet.

[0073] Specifically, each data packet corresponds to a different priority queue.

[0074] In specific implementation, in combination with the above description, the corresponding data transmission requirement is determined based on the service type of each data packet, and the corresponding first priority queue is determined based on the data transmission requirement of each data packet.

[0075] (2) When the first priority queue is not full, determine a first data packet in the first priority queue based on the time information of the data packet; wherein the time information of the first data packet is earlier than the time information of the data packet.

[0076] Specifically, the first data packet is a data packet in the first priority queue, and time information of the first data packet is earlier than that of the data packet to be queued (ie, the data packet).

[0077] In a specific implementation, when the first priority queue is full, it indicates that the first priority queue can no longer receive new data packets. In this case, the data packet to be queued is discarded. When the first priority queue is not full, each data packet in the first priority queue is traversed in order from the back to the front (i.e., traversing from the end of the first priority queue in sequence), and the first data packet in the first priority queue whose time information is earlier than the time information of the data packet to be queued is determined, i.e., the first data packet.

[0078] (3) Based on the position and priority strength value of the first data packet in the first priority queue, determine the position and priority strength value of each data packet in the first priority queue.

[0079] Specifically, the position and priority strength value of the data packet to be queued in the first priority queue are related to the position and priority strength value of the first data packet in the first priority queue.

[0080] In specific implementation, the data packet to be queued is placed behind the first data packet in the first priority queue, and the priority strength value of the data packet to be queued is determined as the difference between the priority strength value of the first data packet and 1.

[0081] The method provided in this embodiment, when determining the position and priority strength value of each data packet in the corresponding priority queue, first determines the corresponding priority queue based on the service type of the data packet, and then assigns different positions and priority strength values ​​to data packets with different time information in the same priority queue based on the time information of the data packet. For data packets in the same priority queue, priority sending opportunities for data packets that arrive first are guaranteed, thereby realizing priority sending of urgent data packets in the same priority queue.

[0082] S104: Determine a target data packet from the multiple priority queues, and place the target data packet at the end of a sending queue.

[0083] Specifically, the target data packet refers to a data packet in the priority queue to be placed in the sending queue.

[0084] In a specific implementation, the determining of the target data group from the multiple priority queues includes: based on the priority of the priority queue, traversing the multiple priority queues in order from high to low priority, determining the top preset number of priority queues as the first target priority queue, and determining the bottom preset number of priority queues as the second target priority queue; for the first target priority queue, determining the target data group based on the number of packets in the first target priority queue and the forced sending period of the data packet at the head of the first target priority queue; for the second target priority queue, calculating the scheduling interval corresponding to the second target priority queue, matching the random value in each scheduling interval based on the priority, determining the target scheduling interval corresponding to the random value, and determining the target data group based on the target scheduling interval.

[0085] The target data packet is determined for the first target priority queue based on the number of packets in the first target priority queue and the forced sending period of the data packet at the head of the first target priority queue, including: when the number of packets in the second priority queue is not 0, the data packet at the head of the second priority queue is determined as the target data packet; the second priority queue has the highest priority in the first target priority queue; when the number of packets in the second priority queue is 0, the number of packets in the third priority queue is not 0, and the data packet at the head of the third priority queue reaches the forced sending period, the data packet at the head of the third priority queue is determined as the target data packet; the priority of the third priority queue in the first target priority queue is second only to the second priority queue.

[0086] In a specific implementation, multiple priority queues are traversed sequentially in descending priority order. A preset number of priority queues with the highest ranking are determined as the first target priority queue (for example, a preset number of 2, including the second and third priority queues), and a preset number of priority queues with the lowest ranking are determined as the second target priority queue (for example, a preset number of 2, including the fourth and fifth priority queues). For the first target priority queue, a determination is first made as to whether the second priority queue is empty. If not, the data packet at the head of the second priority queue is determined as the target data packet. If the second priority queue is empty, a determination is made as to whether the third priority queue, which has the next highest priority, is empty. If the third priority queue is not empty, a determination is further made as to whether the data packet at the head of the third priority queue has reached a mandatory sending period. If so, the data packet is determined as the target data packet. If the mandatory sending period has not yet reached, the target data packet is determined by matching the target scheduling interval based on the third priority queue, the fourth priority queue with a lower priority, and the fifth priority queue. If the third priority queue is empty, the target data packet is determined by matching the target scheduling interval based on the fourth priority queue with a lower priority, and the fifth priority queue.

[0087] Specifically, in one embodiment, based on the above example, the priority queues are AC_3, AC_2, AC_1, and AC_0, in descending order of priority. In this step, whether AC_3 is empty is first determined. If AC_3 is not empty, the data packet at the head of the queue in AC_3 is determined as the target data packet. Furthermore, if AC_3 is empty, whether AC_2 is empty is determined. If AC_2 is not empty, whether the data packet at the head of the queue in AC_2 has reached a forced sending period is determined. If the forced sending period has reached, the data packet at the head of the queue in AC_2 is determined as the target data packet.

[0088] Furthermore, when the mandatory transmission period has not been reached, the target data group is determined based on AC_2, AC_1, and AC_0. Scheduling values ​​are assigned to AC_2, AC_1, and AC_0 according to the following formula:

[0089] ;

[0090] Among them, the is the scheduling value; is a preset positive integer; is the number corresponding to the priority queue, .

[0091] Furthermore, in the interval Randomly select an integer value from ,when When , AC_0 is determined as the target priority queue, and the data packet at the head of AC_0 is determined as the target data packet; when When , AC_1 is determined as the target priority queue, and the data packet at the head of AC_1 is determined as the target data packet; when When , AC_2 is determined as the target priority queue, and the data packet at the head of the queue in AC_2 is determined as the target data packet.

[0092] When AC_2 is empty, the target data group is determined based on AC_1 and AC_0. The scheduling value is assigned to AC_1 and AC_0 according to the above formula. When AC_1 and AC_0 are not empty, in the interval Randomly select an integer value from ,when When , AC_0 is determined as the target priority queue, and the data packet at the head of AC_0 is determined as the target data packet; when When AC_1 is determined as the target priority queue, the data packet of AC_1 at the head of the queue is determined as the target data packet.

[0093] The method provided in this embodiment, when determining the target data packets in multiple priority queues, uses different methods for different priority queues to determine the target data packets. When determining the target data packets of a high-priority queue, only whether the high-priority queue is empty or whether the data packet at the head of the queue has reached the mandatory sending period is considered. When determining the target data packets of a low-priority queue, it is first necessary to consider whether the high-priority queue is empty. When it is determined that the high-priority queue is empty, the target data packets are determined based on multiple screening conditions. The method for determining the target data packets based on the priority of the priority queue is complicated, the method for determining the high-priority queue is simple, and the method for determining the low-priority queue is complicated, which ensures that the data packets in the high-priority queue are first determined as target data packets and are sent first.

[0094] S105: Calculate the user service probability based on the user service level of each terminal.

[0095] Specifically, each terminal's user service level refers to a classification of different levels of service provided to users based on specific standards or conditions. The user service level is positively correlated with the user service probability. That is, the higher the user service level, the higher the user service probability, and the greater the probability that the current terminal will send data packets.

[0096] In specific implementation, the calculation of the user service probability based on the user service level of each terminal includes: determining the weight of the service information based on the operator corresponding to each terminal and the service information of the user on each terminal; calculating the service score of each user based on the service information and the weight of the service information; determining the user service level based on the service score; the higher the user service level, the higher the service score; determining the quotient of the user service level and the first user service level as the user service probability; the difference between the first user service level and the user service level is 1.

[0097] Specifically, the service information of users on each terminal includes at least network access rights and payment limits. It should be noted that the operator determines the weight of the user service information on each terminal, that is, different operators may set different weights for network access rights and payment limits. For example, for operators that focus on payment ability, the weight of the payment limit may be higher, which means that high-paying users can get higher priority. For operators that focus on network access rights (for example, the specific service category or area to which the user belongs), the weight of network access rights may be higher, which means that high-access rights users can get higher priority.

[0098] In specific implementations, for each terminal to be screened, the operator of each terminal is determined. Based on the service information and weight of the service information determined by the operator for each terminal user, a service score for each user on each terminal is calculated through a weighted summation method. Users with high service scores are assigned a high user service level, while users with low service scores are assigned a low user service level. Furthermore, the user service probability is calculated based on the user service level according to the following formula:

[0099] ;

[0100] Among them, the Probability of serving users; For user service level; The first user service level.

[0101] S106. Determine whether to send data based on the user service probability, determine a channel contention mode based on the terminal density of the terminal when determining to send data, determine a sending terminal for a current sending cycle based on the channel contention mode, and the sending terminal sends the data packets in the sending queue.

[0102] Specifically, as described above, the user service probability represents the probability of a terminal transmitting data in the current period. Specifically, during each transmission period, a terminal determines whether to attempt to transmit data based on the user service probability calculated based on its user service level. The user service probability is a prerequisite for data transmission and controls whether a terminal can enter the contention process, preventing all terminals from competing for channel resources simultaneously and reducing channel conflicts and resource waste. Once a terminal determines it can transmit data, the system selects an appropriate channel contention method based on the current terminal density to further optimize the channel access process.

[0103] Furthermore, the channel contention mode is determined according to the terminal density. When the terminal density is low, the corresponding channel contention mode is the mini-slot contention mode. When the terminal density is high, the corresponding channel contention mode is the multi-interframe interval mode.

[0104] In a specific implementation, determining the channel contention mode based on the terminal density includes: determining the channel contention mode based on a magnitude relationship between the terminal density and a preset threshold; the channel contention mode includes at least a mini-slot contention mode and a multi-frame interval mode.

[0105] Specifically, the preset threshold is set according to actual needs and is not limited in this embodiment.

[0106] In a specific implementation, the terminal density of each terminal in the current cycle is determined. The terminal density in the current cycle is compared with a preset threshold. If the terminal density in the current cycle is less than the preset threshold, the channel contention mode is determined to be mini-slot contention, and data packets in the transmit queue are transmitted based on the mini-slot contention mode. If the terminal density in the current cycle is greater than the preset threshold, the channel contention mode is determined to be multi-frame interval, and data packets in the transmit queue are transmitted based on the multi-frame interval mode.

[0107] Figure 2 This is a schematic diagram of the micro-groove competition method shown in this application. Figure 2After the channel is idle for a SIFS (Short Inter-Frame Space), followed by c consecutive minislots, each transmitting terminal randomly selects one of the c consecutive minislots to send an RTS (Request to Send). The RTS contains the source address, destination address, and priority strength of the data packet to be sent. A destination terminal that correctly receives the RTS selects the source terminal of the data packet with the highest priority strength as the destination of the CTS (Clear to Send) and adds the source terminal's address, its own address, and the data packet's priority strength to the CTS. After waiting for SIFS, the destination terminal randomly selects one of the c consecutive minislots to send the CTS. After receiving all CTSs, the source terminal compares the CTS with the highest priority strength against the data packet it is about to send. If the CTS matches the data packet it is sending, it sends the data packet; otherwise, it waits for other terminals to send data packets. If the source terminal does not receive the CTS or finds the channel idle after SIFS, it can send the RTS again after DIFS (Distributed Inter-Frame Space) until the data packet is sent out.

[0108] When the terminal density of sending terminals is high, the use of mini-slot contention will lead to serious data packet collisions. In this case, the multi-frame interval method needs to be used. Figure 3 This is a schematic diagram of the multi-frame spacing method shown in this application. Please refer to Figure 3 , when the channel idle time lasts for SIFS, it is followed by a maximum of e consecutive miniSlots, where e is the maximum priority strength value of the priority queue with the highest priority. When the priority strength value of the data packet at the head of the sending terminal's sending queue is g, the sending terminal sends an RTS in the kth miniSlot. The RTS contains the source address, destination address and priority strength value, where . When a transmitting terminal sends an RTS in a miniSlot, the one-hop neighbor of the transmitting terminal will be able to detect that the channel is busy and stop trying to send RTS. That is, starting from the first miniSlot, if a transmitting terminal sends an RTS first, its one-hop neighbor will no longer send an RTS, regardless of whether the transmitting terminal can correctly receive the CTS. If the transmitting terminal successfully sends the RTS, the destination terminal sends a CTS to the source terminal after waiting for a SIFS. If the source terminal successfully receives the CTS, it can send data packets to the destination terminal after waiting for a SIFS. If the source terminal fails to send the RTS or does not correctly receive the CTS sent by the destination terminal, it will resume sending data packets in a multi-frame interval manner after the channel is idle for a DIFS.

[0109] In specific implementation, during each transmission cycle, a random number generator is first used to generate a random number between 0 and 1. This random number is then compared with the user service probability. If the random number is less than the user service probability, the terminal is allowed to transmit data. Otherwise, the terminal does not transmit data during the current transmission cycle and waits for the next transmission cycle. This random probability mechanism dynamically allocates channel access rights among multiple terminals, preventing all terminals from attempting to transmit data simultaneously. This reduces channel contention and improves overall network fairness and resource utilization. Once a terminal is determined to transmit data, the current network terminal density is considered. In low terminal density scenarios, traditional contention methods (such as random backoff mechanisms) can effectively allocate channels. However, in higher terminal density scenarios, more complex contention methods, such as priority-based time slot allocation strategies or distributed scheduling mechanisms, are required to reduce the probability of data packet collisions. After the contention method is determined, the system enters the contention phase, where the transmitting terminal for the current transmission cycle is determined among multiple eligible terminals based on the selected contention mechanism. For example, in a slot-based contention scheme, terminals may need to monitor channel conditions and transmit contention signals in appropriate slots. In a priority-based contention scheme, terminals compete based on their priority weights, with higher-priority terminals more likely to obtain transmission rights. Ultimately, transmitting terminals selected through contention transmission perform data transmission within the current cycle and send data packets in the order of their transmit queues.

[0110] The method provided in this embodiment optimizes the wireless channel access process through a two-stage screening process. First, the user service probability is used to screen out the first batch of terminals that can transmit data. Then, based on the density of these terminals, the channel competition method is determined and the final transmitting terminals are further screened, thereby achieving efficient utilization and fair allocation of channel resources. In each transmission cycle, a random number is generated by a random number generator and compared with the user service probability. Only terminals whose random number is less than the user service probability enter the next stage. This mechanism can effectively reduce the number of terminals simultaneously attempting to access the channel, reduce competition pressure, and achieve service differentiation based on user service levels, giving high-level users a greater chance of obtaining transmission opportunities while avoiding conflicts and congestion caused by simultaneous competition among all terminals. Terminals entering the contention stage still need to compete for the channel, and the choice of competition method depends on the current terminal density. When terminal density is low, the system can employ traditional CSMA / CA (Carrier Sense Multiple Access with Collision Avoidance) or random backoff mechanisms to enable terminals to efficiently utilize channel resources. When terminal density is high, traditional contention methods may result in a high probability of collisions. Therefore, the system can employ mechanisms such as time slot allocation, priority contention, or distributed scheduling to ensure efficient and fair channel access in high-density environments. This two-stage screening approach not only reduces conflicts and retransmission overhead caused by channel contention but also adaptively adjusts access policies based on network load, improving channel utilization and data transmission success rates while ensuring quality of service for high-priority users and overall system stability. Ultimately, this mechanism optimizes resource allocation while ensuring fairness, enabling wireless communication networks to maintain efficient and stable operation under varying load conditions.

[0111] This embodiment provides a multi-service priority-based MAC layer channel access method. Firstly, it effectively improves channel access efficiency and resource utilization through a hierarchical scheduling mechanism. In this mechanism, first-layer scheduling occurs within a terminal, while second-layer scheduling occurs between terminals. The two complement each other to optimize resource allocation at different levels. First-layer scheduling determines the position and priority strength value of each data packet in its corresponding priority queue based on the service type of the data packet. By normalizing the service type and converting it into unified data transmission time and quality requirements, it ensures that various services can enter the channel in an orderly manner according to their priority and transmission requirements. Specifically, data packets of different service types are mapped to different priority queues. Dynamically adjusting the priority strength value ensures that high-priority services are transmitted promptly, thus resolving the issue of stable transmission of high-priority services in traditional methods. Second-layer scheduling operates at the level of channel contention and resource allocation between terminals. First, the user service probability is calculated based on each terminal's user service level. Based on this probability, data transmission is determined, ensuring that users with higher service levels receive more channel access opportunities. After determining whether to transmit data, an appropriate channel contention method is selected based on terminal density, and the transmitting terminal for the current transmission cycle is further determined. This approach effectively resolves channel access conflicts in multi-terminal environments, optimizing channel access latency and packet collisions through a rational competition approach. By combining two layers of scheduling, this application not only ensures the proper transmission order and priority access for different types of data, but also reduces channel access latency and collisions, thereby improving the overall performance and fairness of wireless communication networks. Secondly, based on the varying network access rights and payment amounts of each user, different user service levels are set and, based on these levels, corresponding user service probabilities are assigned to determine whether data transmission is permitted. This mechanism not only enables differentiated management of user services but also effectively reduces channel competition and improves overall network resource utilization efficiency. Traditional wireless communication networks typically employ a uniform competition mechanism for channel access, lacking differentiation between different users. Consequently, under high load, high-priority services may be impacted by lower-priority services, preventing them from receiving timely transmission. By allocating user service probabilities, high-level users can obtain priority transmission access when channel resources are limited, ensuring their service needs are met. This reduces unnecessary competition for lower-level users when resources are tight, thereby optimizing the fairness and stability of data transmission. Furthermore, in a multi-terminal environment, high competition for channel access can easily lead to data packet collisions, increasing network latency and retransmission overhead. By setting different user service probabilities, the frequency of terminal transmission attempts can be effectively controlled, reducing unnecessary contention under high load conditions, thereby lowering the collision rate and improving channel utilization.This not only optimizes overall network throughput but also reduces energy consumption and resource waste caused by conflicting retransmissions, enabling the system to adaptively adjust under varying load conditions and improve communication efficiency. Furthermore, this mechanism enhances system flexibility and stability. When network load is low, the service probability for low-level users can be increased, allowing system resources to be fully utilized. Under high load conditions, high-level users can still maintain a good communication experience, while low-level users can appropriately reduce channel occupancy to avoid network congestion caused by overload. This allows the system to dynamically adjust resource allocation strategies based on actual load conditions, ensuring that the service needs of different users are properly met, improving overall network stability and service quality, and making resource allocation in wireless communication networks more efficient, fair, and intelligent. Thirdly, when determining the first priority queue corresponding to each data packet, the service type and data transmission requirements of each data packet are fully considered, and the corresponding first priority queue is determined based on the service type and data transmission requirements of each data packet. Compared to traditional methods that focus only on a few fixed service types, this application focuses on data packets of multiple service types, enabling more fine-grained classification of data packet service types based on actual service needs, thereby achieving more refined management and scheduling, providing personalized channel access solutions, and improving user experience. Fourthly, when determining the position and priority strength value of each data packet in its corresponding priority queue, the corresponding priority queue is first determined based on the data packet's service type. Then, based on the data packet's time information, different positions and priority strength values ​​are assigned to data packets with different time information within the same priority queue. This ensures that urgent data packets are given priority transmission opportunities within the same priority queue, while also enabling the priority transmission of high-priority data packets within the same priority queue. Fifthly, when determining target data packets within multiple priority queues, the target data packet determination method differs for different priority queues. When determining target data packets for a high-priority queue, only whether the high-priority queue is empty or whether the data packet at the head of the queue has reached its mandatory transmission period is considered. When determining target data packets for a low-priority queue, whether the high-priority queue is empty is first considered. If the high-priority queue is empty, the target data packet is then determined based on multiple screening criteria. The method for determining target data packets is based on matching the priority of the priority queues. The method for determining target data packets is simple for the high-priority queue, while the method for determining target data packets for the low-priority queue is complex. This ensures that data packets in the high-priority queue are prioritized as target data packets and are therefore transmitted.

[0112] Example 2

[0113] Corresponding to the aforementioned embodiment of a MAC layer channel access method based on multiple service priorities, the present application also provides an embodiment of a MAC layer channel access device based on multiple service priorities.

[0114] Figure 4 This is a structural diagram of a MAC layer channel access device based on multiple service priorities provided in Example 2 of this application. Figure 4 The device provided in this embodiment includes an establishment module 410, a determination module 420, a screening module 430 and a sending module 440; wherein,

[0115] The establishing module 410 is used to establish multiple priority queues in the terminal, each priority queue corresponds to a different priority strength value, each priority queue has a different service type, and each priority queue has a basic priority strength value and a maximum priority strength value;

[0116] The determining module 420 is configured to determine a first priority queue corresponding to each data packet based on a service type of the MAC layer data packet;

[0117] The determining module 420 is further configured to determine a position of the data packet in the corresponding first priority queue and a first priority strength value based on the time information of the data packet; the first priority strength value is between a basic priority strength value and a maximum priority strength value of the first priority queue;

[0118] The determining module 420 is further configured to determine a target data packet from the plurality of priority queues, and place the target data packet at the end of the sending queue;

[0119] The screening module 430 is configured to calculate the user service probability based on the user service level of each terminal;

[0120] The sending module 440 is used to determine whether to send data based on the user service probability, determine the channel competition method based on the terminal density of the terminal when determining to send data, determine the sending terminal of the current sending cycle based on the channel competition method, and the sending terminal sends the data packets in the sending queue.

[0121] The device of this embodiment can be used to perform Figure 1 The steps, specific implementation principles and implementation processes of the method embodiment shown are similar and will not be repeated here.

[0122] The implementation process of the functions and effects of each unit in the above-mentioned device is specifically described in the implementation process of the corresponding steps in the above-mentioned method, and will not be repeated here.

[0123] For the device embodiments, since they basically correspond to the method embodiments, the relevant parts can be referred to the partial description of the method embodiments. The device embodiments described above are merely schematic, wherein the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the present application scheme. A person of ordinary skill in the art can understand and implement it without paying any creative work.

[0124] The above description is only a preferred embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of the present application shall be included in the scope of protection of the present application.

Claims

1. A MAC layer channel access method based on multiple service priorities, characterized in that: The method comprises: Multiple priority queues are established in the terminal. Each priority queue corresponds to a different priority strength value. The service types of each priority queue are different. Each priority queue has a basic priority strength value and a maximum priority strength value. Determining a first priority queue corresponding to each data packet based on a service type of the MAC layer data packet; determining, based on time information of the data packet, a position of the data packet in the corresponding first priority queue and a first priority strength value; wherein the first priority strength value is between a basic priority strength value and a maximum priority strength value of the first priority queue; wherein, based on the priority of each priority queue, a first priority score of the priority queue is determined; a product of the first priority score and a priority strength interval of each priority queue is determined as a first priority strength value; a priority strength interval is a time interval or resource allocation set for each priority queue; a sum of the first priority strength value and 1 is determined as a basic priority strength value; a product of the priority strength interval and a second priority score is determined as a maximum priority strength value; a difference between the second priority score and the first priority score is 1; wherein, for each of the data packets, determining a first priority queue corresponding to the data packet; when the first priority queue is not full, determining a first data packet in the first priority queue based on time information of the data packet; and determining a position and a priority strength value of each of the data packets in the first priority queue based on a position and a priority strength value of the first data packet in the first priority queue; Determine a target data packet from the plurality of priority queues, and place the target data packet at the tail of a sending queue; Calculate user service probability based on the user service level of each terminal; determining whether to transmit data based on the user service probability, determining a channel contention mode based on a terminal density of the terminals when determining to transmit data, determining a transmitting terminal in a current transmitting cycle based on the channel contention mode, and the transmitting terminal transmitting the data packets in the transmitting queue; The channel contention mode is determined based on a relationship between the terminal density of the terminals and a preset threshold. When the channel contention mode is a minislot contention mode, each sending terminal sends a send request, which includes a priority strength value of a data packet. A destination terminal that correctly receives the send request selects a source terminal of a data packet with the largest priority strength value as the destination terminal allowed to send the instruction. When the channel contention mode is multi-frame interval mode, after the channel idle time lasts SIFS, it is followed by e consecutive miniSlots, where e is the maximum priority strength value of the priority queue with the highest priority; when the priority strength value of the data packet at the head of the sending queue of the sending terminal is g, the sending terminal sends RTS in the kth miniSlot, and the RTS contains the priority strength value. .

2. The method according to claim 1, characterized in that The calculating of the user service probability based on the user service level of each terminal includes: Determine the weight of the service information based on the operator corresponding to each terminal and the service information of the user on each terminal; Calculating a service score for each user based on the service information and the weight of the service information; Determining a user service level based on the service score; the higher the user service level, the higher the service score; A quotient of the user service level and a first user service level is determined as a user service probability; and a difference between the first user service level and the user service level is 1.

3. The method according to claim 1, characterized in that The determining, based on the service type of the MAC layer data packet, a first priority queue corresponding to each of the data packets, includes: Determining a service type of each data packet based on the data packets received by the MAC layer; Based on the service type of each data packet, a first priority queue corresponding to each data packet is determined.

4. The method according to claim 1, wherein Determining a target data packet from the plurality of priority queues includes: Based on the priorities of the priority queues, traverse the multiple priority queues in descending order of priority, determine the top preset number of priority queues as the first target priority queues, and determine the bottom preset number of priority queues as the second target priority queues; For the first target priority queue, determining a target data packet based on the number of packets in the first target priority queue and a mandatory sending period of a data packet at the head of the first target priority queue; For the second target priority queue, calculate the scheduling interval corresponding to the second target priority queue, match the random value in each scheduling interval based on the priority, determine the target scheduling interval corresponding to the random value, and determine the target data group based on the target scheduling interval.

5. The method according to claim 4, characterized in that The determining, for the first target priority queue, a target data packet based on the number of packets in the first target priority queue and a mandatory sending period of a data packet at a head of the first target priority queue, includes: When the number of packets in the second priority queue is not 0, the data packet at the head of the second priority queue is determined as the target data packet; the second priority queue has the highest priority in the first target priority queue; When the number of packets in the second priority queue is 0, the number of packets in the third priority queue is not 0, and the data packet at the head of the third priority queue reaches the forced sending period, the data packet at the head of the third priority queue is determined as the target data packet; the priority of the third priority queue in the first target priority queue is second only to the second priority queue.

6. The method according to claim 1, characterized in that The method further comprises: For each priority queue, the priority strength value of each data packet in the priority queue is increased by a preset value at every preset time until the priority strength value of the data packet reaches the maximum priority strength value of the priority queue.

7. A MAC layer channel access device based on multiple service priorities, characterized in that: The device includes an establishment module, a determination module, a calculation module and a sending module; wherein, The establishment module is used to establish multiple priority queues in the terminal, each priority queue corresponds to a different priority strength value, each priority queue has a different service type, and each priority queue has a basic priority strength value and a maximum priority strength value; The determining module is configured to determine a first priority queue corresponding to each data packet based on a service type of the MAC layer data packet; The determining module is further configured to determine a position of the data packet in the corresponding first priority queue and a first priority strength value based on the time information of the data packet; the first priority strength value is between a basic priority strength value and a maximum priority strength value of the first priority queue; wherein, based on the priority of each priority queue, determining a first priority score of the priority queue; determining a first priority strength value by multiplying the first priority score by a priority strength interval of each priority queue; the priority strength interval is a time interval or resource allocation set for each priority queue; determining a base priority strength value by summing the first priority strength value and 1; and determining a maximum priority strength value by multiplying the priority strength interval by the second priority score; wherein, for each of the data packets, determining a first priority queue corresponding to the data packet; when the first priority queue is not full, determining a first data packet in the first priority queue based on time information of the data packet; and determining a position and a priority strength value of each of the data packets in the first priority queue based on a position and a priority strength value of the first data packet in the first priority queue; The determining module is further configured to determine a target data packet from the plurality of priority queues, and place the target data packet at the tail of the sending queue; The calculation module is used to calculate the user service probability based on the user service level of each terminal; The sending module is configured to determine whether to send data based on the user service probability, determine a channel contention mode based on the terminal density of the terminal when determining to send data, determine a sending terminal in a current sending cycle based on the channel contention mode, and the sending terminal sends the data packets in the sending queue; The channel contention mode is determined based on a relationship between the terminal density of the terminals and a preset threshold. When the channel contention mode is a minislot contention mode, each sending terminal sends a send request, which includes a priority strength value of a data packet. A destination terminal that correctly receives the send request selects a source terminal of a data packet with the largest priority strength value as the destination terminal allowed to send the instruction. When the channel contention mode is multi-frame interval mode, after the channel idle time lasts SIFS, it is followed by e consecutive miniSlots, where e is the maximum priority strength value of the priority queue with the highest priority; when the priority strength value of the data packet at the head of the sending queue of the sending terminal is g, the sending terminal sends RTS in the kth miniSlot, and the RTS contains the priority strength value. .

Citation Information

Patent Citations

  • Multi-address access method for supporting service quality

    CN101102540A

  • Method of disposing internal collision of enhanced distributed channel access

    CN103118385A