A data transmission method and apparatus

By employing a reservation mechanism in wireless local area networks to carry reservation information when the channel is busy, the problem of low channel utilization is solved, and orderly use of the channel and efficient data transmission are achieved.

CN116074968BActive Publication Date: 2025-12-19HUAWEI TECH CO LTD +1
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202111278107.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-10-30
Publication Date
2025-12-19
Estimated Expiration
2041-10-30

AI Technical Summary

Technical Problem

In wireless LANs, when nodes share the same channel, existing CSMA/CA and RTS/CTS mechanisms result in low channel utilization and are prone to collisions, especially when multiple nodes are competing for the channel.

Method used

By listening to and carrying data packets with reservation information when the channel is busy, the transmission time and duration of future data packets can be reserved, thus achieving orderly use of the channel and avoiding conflicts.

Benefits of technology

It improves channel utilization, reduces the possibility of data transmission conflicts, and ensures the timely execution of high-priority services.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116074968B_ABST
    Figure CN116074968B_ABST
Patent Text Reader

Abstract

The application discloses a data sending method and device. The method is applied to a first node and comprises the following steps: when a first channel is selected for sending data, the state of the first channel is listened to; when the state of the first channel is busy, the state of the first channel is continuously listened to; after it is determined that the state of the first channel changes from busy to idle, a first data packet is sent on the first channel; wherein the first data packet carries first reservation information, and the first reservation information is used for reserving a first sending time and a first sending duration of a second data packet sent by the first node on the first channel. Based on the scheme disclosed in the application, in the scenario that multiple nodes communicate through the same channel, the nodes can use the channel in a reservation manner, so that the orderly use of the channel is realized, the possibility of data transmission collision between the nodes is reduced, and the overall utilization of the channel is improved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of communication, and in particular, to a data sending method and device. BACKGROUND

[0002] Currently, in a wireless fidelity (WiFi) communication scenario, multiple nodes can share a same channel for communication. Among them, the nodes can transmit data on the shared channel based on a carrier sense multiple access with collision avoidance (CSMA / CA) mechanism or a request to send / clear to send (RTS / CTS) mechanism.

[0003] Under the CSMA / CA mechanism, after a node obtains the channel by channel contention, the node can send data through the channel. Among them, in the channel contention process, the node can continuously listen to the channel state for a period of time, and if the channel state is idle each time, it is determined that the node can send data through the channel. This method can reduce the possibility of different nodes transmitting data on the channel at the same time to a certain extent, thereby reducing the collision. However, the sensing range of the node when performing channel listening is limited, and it is possible that the node does not listen to the data sent by other nodes on the channel which are far away from the node, and then the situation that different nodes simultaneously contend for the same channel and send data through the channel may occur, which causes a collision. In addition, when there are many nodes sharing the same channel, the possibility of different nodes simultaneously starting to contend for the channel and simultaneously contending for the channel is large, so the possibility of collision is also large. Once a collision occurs, the node needs to spend more time to perform the contention process again, and can only send data after contending for the channel, so when multiple nodes contend for the same channel, the utilization rate of the channel is very low.

[0004] Under the RTS / CTS mechanism, before a node sends data, it first contends for the channel based on the CSMA / CA mechanism, and then sends an RTS to a data receiving end through the channel. After the data receiving end receives the RTS, it contends for the channel based on the CSMA / CA mechanism, and then feeds back a CTS to the node through the channel, and the node can send data through the channel only after receiving the CTS, and other nodes pause using the channel after obtaining the CTS by listening to the channel. Therefore, this method can avoid the collision problem existing in the above-mentioned CSMA / CA mechanism. However, in this method, both the data sending end and the data receiving end need to contend for the channel before sending RTS and CTS, and the transmission of RTS and CTS produces an interaction overhead, which causes a waste of channel (air interface) resources, so the utilization rate of the channel is also low.

[0005] In summary, in the current WiFi scenario, both of the two methods of sending data by a node on a channel shared by other nodes have the problem of low channel utilization. SUMMARY

[0006] Embodiments of the present application provide a data sending method and device to improve the utilization of a channel in the process of sending data by a node in a scenario where multiple nodes communicate based on the same channel.

[0007] In a first aspect, embodiments of the present application provide a data sending method, which includes: when a first channel is selected for sending data, listening to the state of the first channel; when the state of the first channel is busy, continuing to listen to the state of the first channel; after determining that the state of the first channel changes from busy to idle, sending a first data packet on the first channel; wherein the first data packet carries first reservation information, and the first reservation information is used to reserve a first sending time and a first sending duration of a second data packet sent by the first node on the first channel.

[0008] In the method, after the first node selects the first channel for sending data, if it is listened that the state of the first channel is busy, it indicates that there is another node also using the first channel. In this scenario, when the first node sends the first data packet on the first channel, reservation information is carried in the first data packet to reserve the time of sending the second data packet. Therefore, in the scenario where the first node communicates with other nodes based on the same channel, the first node can use the channel in the reservation manner. Based on this scheme, in the scenario where multiple nodes communicate based on the same channel, the node uses the channel in the reservation manner, which can realize the orderly use of the channel, reduce the possibility of collision of data transmission between nodes, and thus improve the overall utilization of the channel.

[0009] In a possible design, the method further includes: when the first sending time reserved arrives, sending the second data packet on the first channel.

[0010] In the method, the first channel can be used to transmit data of multiple nodes, and after the first node reserves the time of using the first channel, the first node can use the first channel to send data within the reserved time, so as to reduce the possibility of collision between the data transmission of the first node on the first channel and the data transmission of other nodes on the first channel, thereby improving the data transmission efficiency of the first node, reducing the probability of channel air interface collision, and improving the utilization of the channel.

[0011] In a possible design, after continuing to monitor the status of the first channel, before sending the first data packet on the first channel, the method further includes: monitoring that the status of the first channel is busy and that there is second reservation information on the first channel, where the second reservation information is used to reserve a second sending time and a second sending duration of a third data packet sent by the second node on the first channel; determining that a time interval between the second sending time and a first target time is greater than a target value when it is determined that the first channel changes from busy to idle, where the first target time is a time when it is determined that the first channel changes from busy to idle, and the target value is a set threshold value or an estimated time value required by the first node for sending the first data packet on the first channel.

[0012] In the method, the first node monitors the reservation information of the second node in the process of monitoring the status of the first channel, which indicates that the second node reserves the time of using the first channel earlier than the first node. In this case, when the first node monitors that the status of the first channel changes from busy to idle, if it is determined that the interval between the current time and the data sending time reserved by the second node is large, it can be determined that the second node will not use the first channel in a short time, and then the first node can send data on the first channel. Therefore, the method can ensure that the first node does not conflict with the second node when sending data on the first channel, reduces the probability of channel air interface collision, and further improves the overall utilization of the channel.

[0013] In a possible design, when the time interval between the second sending time and the first target time is less than or equal to the target value, before sending the first data packet on the first channel, the method further includes: after waiting until a second target time arrives, monitoring the status of the first channel, where the second target time is a time corresponding to the second sending duration after the second sending time; continuing to monitor the status of the first channel when the status of the first channel is busy; and determining that the status of the first channel changes from busy to idle.

[0014] In the method, when the first node determines that the time when the status of the first channel changes from busy to idle is close to the data sending time reserved by the second node, if the first node continues to send data on the first channel, it is likely to collide with the data sending process reserved by the second node. Therefore, the first node waits until the data sending process reserved by the second node is completed, and then starts to execute the process of sending data again, which can avoid the time reserved by the second node, thereby avoiding collision with the data sending process reserved by the second node. Therefore, the method can reduce the probability of collision between the first node and the second node in the process of using the first channel, and further improve the overall utilization of the channel.

[0015] In a possible design, when the time interval between the second sending time and the first target time is greater than the target value, the first sending time is a time after the second target time.

[0016] In the method, when the first node reserves a time later than the second node to use the first channel, the first node uses the first channel at a time after the time reserved by the second node, so that the first node and the second node use the first channel in different time periods respectively, the probability of collision on the first channel is reduced, and the overall utilization of the first channel is improved.

[0017] In a possible design, the first reservation information contains the service priority of the first node; the second reservation information contains the service priority of the second node; and before the first data packet is sent on the first channel, the method further includes: determining that the service priority of the first node is lower than or equal to the service priority of the second node.

[0018] In the method, the reservation information of the first node and the second node both contains the service priority information of the node, and the first node processes according to the method described above when the service priority of the first node is lower than the service priority of the second node, to avoid collision with the second node, so that the second node with a higher service priority can use the first channel to send data first, and therefore, the method can ensure that high-priority services are executed preferentially, and the use experience of high-priority services is improved.

[0019] In a possible design, the first reservation information contains the service priority of the first node; and after the first data packet is sent on the first channel, the method further includes: before the first sending time reserved arrives, listening to whether there is third reservation information on the first channel; the third reservation information is used to reserve a third sending time and a third sending time length of a fourth data packet sent by the second node on the first channel, and contains the service priority of the second node; if yes, determining whether the first channel is used when the first sending time arrives, according to the service priority of the first node and the service priority of the second node; or otherwise, the second data packet is sent on the first channel when the first sending time reserved arrives.

[0020] In the method, the reservation information of the first node and the second node contains service priority information, after the first node sends the first data packet carrying the reservation information on the first channel, if it is detected that the second node also sends the reservation information on the first channel, the first node can determine whether to use the first channel according to the service priority of the two nodes. By introducing the service priority to control the reservation and use of the channel, the flexibility of the mode of controlling the use of the channel can be improved, and the order of the nodes using the channel to send data can be controlled according to the service scenario.

[0021] In a possible design, the determination of whether to use the first channel when the first sending time arrives according to the service priority of the first node and the service priority of the second node comprises: when the service priority of the first node is higher than or equal to the service priority of the second node, determining to use the first channel when the first sending time arrives; when the service priority of the first node is lower than the service priority of the second node, determining whether the first sending time is a time after a third target time; wherein the third target time is a time corresponding to the third sending time after the third sending time duration; if yes, determining to use the first channel when the first sending time arrives; otherwise, determining not to use the first channel when the first sending time arrives.

[0022] In the method, for the first node and the second node using the same channel to send data, if the service priority of the first node is higher, the first node can directly use the channel to send data, if the priority of the first node is low and the reservation time conflicts with the second node, the first node needs to avoid the reservation time of the second node before using the channel. Based on the scheme, the node with high service priority can use the channel preferentially, and can preempt the reservation time of the node with low priority, so that the timely execution of high-priority services can be ensured, and the use experience of high-priority services can be improved.

[0023] In a possible design, after it is determined to use the first channel when the first sending time arrives, the method further comprises: sending the second data packet on the first channel when the first sending time arrives.

[0024] In the method, the node uses the channel to send data after confirming that the channel can be used in the reservation time, which can further reduce or avoid the probability of channel air interface collision caused by the conflict between the reservation time and the reservation time of other nodes.

[0025] In a possible design, when the service priority of the first node is equal to the service priority of the second node, after it is determined that the first channel is not used at the first sending time, the method further includes: stopping using the first channel after a fourth target time arrives before a fifth target time arrives when the first sending time is after the third sending time and before the third target time, where the fourth target time is a time corresponding to the first sending time after the first sending duration elapses, and the fifth target time is a time corresponding to the fourth target time after the third sending duration elapses.

[0026] In the method, when the service priorities of two nodes using the same channel are equal, and the time of using the channel reserved by the two nodes conflicts, the node reserving earlier can use the channel according to the reserving time first, and stop using the channel for a period of time after using the channel, thereby giving the channel to the node reserving later, which can ensure that the nodes with the same service priority can also use the channel in order, and further reduce the possibility of collision of the channel air interface.

[0027] In a possible design, after it is determined that the first channel is not used at the first sending time, the method further includes: monitoring the state of the first channel; when the state of the first channel is busy, continuing to monitor the state of the first channel; and after it is determined that the state of the first channel changes from busy to idle, sending the second data packet on the first channel.

[0028] In the method, when the time of using the channel reserved by a node conflicts with the time reserved by another node, and the node gives the time of using the channel to the other node, the reservation of the node is invalid, and the node cannot send data according to the reservation, and then the node sends data by monitoring the state of the channel again, which can also achieve sending of data.

[0029] In a possible design, after the second data packet is sent on the first channel, the method further includes: receiving acknowledgement information fed back by a receiving end of the second data packet after the second data packet is received.

[0030] In the method, after the node sends the data packet at the reserved time, the node can confirm that the sending process of the data packet is successfully completed by using the acknowledgement information fed back by the receiving end of the data packet.

[0031] In a possible design, before the first data packet is sent on the first channel, the method further includes performing at least one of the following: determining that the service priority of the first node is higher than or equal to a set level; determining that the delay required by the service of the first node is lower than or equal to a set delay threshold; and determining that the duty cycle of the first channel is higher than or equal to a set duty cycle threshold.

[0032] In the method, when the state of the service or the channel of the node meets certain conditions, the node carries reservation information in a data packet sent on the channel to reserve a time for next sending of the data packet. Based on this, the node can determine whether to send data on the channel by using the reservation mechanism according to the state of the service or the channel of the node, and thus the flexibility of sending data by using the reservation mechanism by the node can be improved, and the needs in various different scenarios can be adapted to.

[0033] In a second aspect, an apparatus is provided, which is applied to a first node, and includes: a listening unit, configured to listen to a state of a first channel when the first channel is selected to be used for sending data; continue to listen to the state of the first channel when the state of the first channel is busy; and a sending unit, configured to send a first data packet on the first channel after the listening unit determines that the state of the first channel changes from busy to idle; wherein the first data packet carries first reservation information, and the first reservation information is used to reserve a first sending time and a first sending duration of a second data packet sent by the first node on the first channel.

[0034] In a possible design, the sending unit is further configured to: send the second data packet on the first channel when the first sending time reserved arrives.

[0035] In a possible design, after the listening unit continues to listen to the state of the first channel, and before the sending unit sends the first data packet on the first channel, the listening unit is further configured to: listen to that the state of the first channel is busy and that there is second reservation information on the first channel; wherein the second reservation information is used to reserve a second sending time and a second sending duration of a third data packet sent by a second node on the first channel; and when it is determined that the first channel changes from busy to idle, determine that a time interval between the second sending time and a first target time is greater than a target value; wherein the first target time is a time when it is determined that the first channel changes from busy to idle, and the target value is a set threshold value or an estimated time value required for the first node to send the first data packet on the first channel.

[0036] In a possible design, when the time interval between the second sending time and the first target time is less than or equal to the target value, before the sending unit sends the first data packet on the first channel, the listening unit is further configured to: listen to the state of the first channel after waiting until a second target time arrives; wherein the second target time is a time corresponding to the second sending duration after the second sending time elapses; continue to listen to the state of the first channel when the state of the first channel is busy; and determine that the state of the first channel changes from busy to idle.

[0037] In a possible design, when the time interval between the second sending time and the first target time is greater than the target value, the first sending time is a time after the second target time.

[0038] In a possible design, the first reservation information contains the service priority of the first node; the second reservation information contains the service priority of the second node; and the sending unit is further configured to: before sending the first data packet on the first channel, determine that the service priority of the first node is lower than or equal to the service priority of the second node.

[0039] In a possible design, the first reservation information contains the service priority of the first node; and after the sending unit sends the first data packet on the first channel, the listening unit is further configured to: before the first sending time reserved arrives, listen to whether there is third reservation information on the first channel; the third reservation information is used to reserve a third sending time and a third sending time length of sending a fourth data packet on the first channel by a second node, and contains the service priority of the second node; if yes, determine whether the first channel is used when the first sending time arrives according to the service priority of the first node and the service priority of the second node; otherwise, send the second data packet on the first channel when the first sending time reserved arrives.

[0040] In a possible design, when the listening unit determines whether the first channel is used when the first sending time arrives according to the service priority of the first node and the service priority of the second node, the listening unit is specifically configured to: when the service priority of the first node is higher than or equal to the service priority of the second node, determine that the first channel is used when the first sending time arrives; when the service priority of the first node is lower than the service priority of the second node, determine whether the first sending time is a time after a third target time; the third target time is a time corresponding to the third sending time after the third sending time length; if yes, determine that the first channel is used when the first sending time arrives; otherwise, determine that the first channel is not used when the first sending time arrives.

[0041] In a possible design, after the listening unit determines that the first channel is used when the first sending time arrives, the sending unit is further configured to: send the second data packet on the first channel when the first sending time arrives.

[0042] In a possible design, after the listening unit determines that the first channel is not to be used when the first sending time arrives, the listening unit is further configured to: listen to a state of the first channel; and continue to listen to the state of the first channel when the state of the first channel is busy. The sending unit is further configured to: after the listening unit determines that the state of the first channel changes from busy to idle, send the second data packet on the first channel.

[0043] In a possible design, after the listening unit determines that the first channel is not to be used when the first sending time arrives, the listening unit is further configured to: listen to a state of the first channel; and continue to listen to the state of the first channel when the state of the first channel is busy. The sending unit is further configured to: after the listening unit determines that the state of the first channel changes from busy to idle, send the second data packet on the first channel.

[0044] In a possible design, after the sending unit sends the second data packet on the first channel, the sending unit is further configured to: receive acknowledgement information fed back by a receiving end of the second data packet after the second data packet is received.

[0045] In a possible design, before the sending unit sends the first data packet on the first channel, the sending unit is further configured to perform at least one of the following: determining that a service priority of the first node is higher than or equal to a set level; determining that a required delay of the service of the first node is lower than or equal to a set delay threshold; and determining that a duty cycle of the first channel is higher than or equal to a set duty cycle threshold.

[0046] In a third aspect, an apparatus is provided, which includes a transceiver, a memory and a processor. The transceiver is configured to receive signals or data from other apparatuses outside the apparatus and transmit the signals or data to the processor or send signals or data from the processor to the other apparatuses outside the apparatus. The memory is configured to store programs. The processor is configured to execute the programs stored in the memory to implement the method described in the first aspect or any possible design of the first aspect.

[0047] In a fourth aspect, a computer readable storage medium is provided, which stores a computer program. When the computer program is run on a computer, the computer is caused to perform the method described in the first aspect or any possible design of the first aspect.

[0048] Fifthly, this application provides a computer program product comprising a computer program or instructions that, when executed on a computer, cause the computer to perform the methods described in the first aspect or any possible design of the first aspect.

[0049] For the beneficial effects described in the second to fifth aspects above, please refer to the description of the beneficial effects in the first aspect above, which will not be repeated here. Attached Figure Description

[0050] Figure 1 This is a flowchart illustrating a method for sending data based on the CSMA / CA mechanism.

[0051] Figure 2a This is a schematic diagram of the architecture of a WiFi system.

[0052] Figure 2b A schematic diagram of the architecture of a P2P communication system;

[0053] Figure 3 This is a schematic diagram of the access time slots of different nodes under a CSMA / CA mechanism;

[0054] Figure 4 This is a schematic diagram of the access time slots of different nodes that collide under a CSMA / CA mechanism;

[0055] Figure 5 This is a schematic diagram showing the distribution of nodes in a WiFi system.

[0056] Figure 6 This is a schematic diagram of the access time slots of different nodes that collide under a CSMA / CA mechanism;

[0057] Figure 7 This is a schematic diagram of a data transmission method based on the RTS / CTS mechanism;

[0058] Figure 8 A schematic diagram of the hardware architecture of an electronic device provided in an embodiment of this application;

[0059] Figure 9 A schematic diagram of the software architecture of an electronic device provided in an embodiment of this application;

[0060] Figure 10 A schematic diagram illustrating a data transmission method provided in an embodiment of this application;

[0061] Figure 11a A schematic diagram illustrating a data transmission method based on a scheduled transmission mechanism provided in an embodiment of this application;

[0062] Figure 11bA schematic diagram illustrating a data transmission method based on a scheduled transmission mechanism provided in an embodiment of this application;

[0063] Figure 12 A schematic diagram illustrating the format of a MAC frame for a data packet, provided in an embodiment of this application;

[0064] Figure 13a A schematic diagram illustrating a method for enabling a scheduled delivery mechanism provided in an embodiment of this application;

[0065] Figure 13b A schematic diagram illustrating a method for enabling a scheduled delivery mechanism provided in an embodiment of this application;

[0066] Figure 14 A flowchart illustrating a data transmission method provided in an embodiment of this application;

[0067] Figure 15 A flowchart illustrating a data transmission method provided in an embodiment of this application;

[0068] Figure 16 A flowchart illustrating a data transmission method provided in an embodiment of this application;

[0069] Figure 17 A schematic diagram of a data transmission device provided in an embodiment of this application;

[0070] Figure 18 This is a schematic diagram of the structure of a data transmission device provided in an embodiment of this application. Detailed Implementation

[0071] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the embodiments of this application will be further described in detail below with reference to the accompanying drawings. In the description of the embodiments of this application, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of indicated technical features. Therefore, a feature defined with "first" and "second" may explicitly or implicitly include one or more of that feature.

[0072] For ease of understanding, exemplary descriptions of concepts related to this application are provided for reference.

[0073] 1) Channel: Also known as a transmission channel or frequency band, it is a data (or signal) transmission channel that uses wireless signals (electromagnetic waves) as the transmission carrier. Nodes that support wireless communication can transmit data (or signals) on multiple channels.

[0074] The nodes described in the following embodiments of this application can be sites or access points.

[0075] 2) Station (STA): Also known as a wireless workstation, STA refers to a device connected to a wireless network. These devices can communicate with other devices inside the wireless network or with the outside of the wireless network through an access point.

[0076] In this embodiment, the STA can be an electronic device that supports WiFi communication connectivity. The electronic device can also be called a terminal device or terminal, including but not limited to mobile phones, tablets, laptops, handheld computers, mobile internet devices (MIDs), wearable devices (e.g., smartwatches, smart bracelets, pedometers, etc.), vehicles, in-vehicle equipment (e.g., cars, bicycles, electric vehicles, airplanes, ships, trains, high-speed trains, etc.), virtual reality (VR) devices, augmented reality (AR) devices, wireless terminals in industrial control, smart home devices (e.g., refrigerators, televisions, air conditioners, electricity meters, etc.), intelligent robots, workshop equipment, wireless terminals in self-driving, wireless terminals in remote medical surgery, wireless terminals in smart grids, wireless terminals in transportation safety, wireless terminals in smart cities, or wireless terminals in smart homes, and flying equipment (e.g., intelligent robots, hot air balloons, drones, airplanes), etc.

[0077] For example, the electronic devices in this application embodiment include, but are not limited to, those equipped with... Or other operating systems.

[0078] 3) Access Point (AP): Also known as access node, wireless access point, or hotspot, it is a device used to connect STA to a wireless network; AP enables communication between wireless and wired networks and is the core device for building a wireless local area network.

[0079] For example, an AP can be an access point in a WiFi system, or a module or unit that performs some of the functions of an access point. For instance, it can be a centralized unit (CU) or a distributed unit (DU); it can also be a router, bridge, wireless gateway, etc. This application does not limit the specific technology or device form used in the AP.

[0080] In this embodiment of the application, the AP can be a router or other electronic device with WiFi access capability.

[0081] 4) MAC Frame: This is a type of data frame, and a data frame is a protocol data unit at the data link layer. It consists of three parts: a frame header, a data portion, and a frame trailer. The frame header and trailer contain necessary control information, such as synchronization information, address information, and error control information. The data portion contains data from the network layer. At the sending end, the data link layer encapsulates the data from the network layer into frames and then sends them into the channel. At the receiving end, the data link layer parses the received data and reports it to the network layer.

[0082] 5) Throughput: In computer or communication systems, throughput refers to the number of requests that can be processed per unit of time, or the amount of data or requested data passing through a communication channel per unit of time. It is a key technical indicator for measuring data transmission performance and is usually measured in bits per second (bps).

[0083] It should be understood that in the embodiments of this application, "at least one" means one or more, and "more than one" means two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, or B alone, where A and B can be singular or plural. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can represent: a, b, c, a and b, a and c, b and c, or a, b, and c, where a, b, and c can be single or multiple.

[0084] Currently, in WiFi scenarios, there are two main mechanisms to address potential conflicts when multiple nodes transmit data through the same channel. These two mechanisms are the CSMA / CA mechanism and the request-to-send / clear-to-send (RTS / CTS) mechanism.

[0085] The CSMA / CA mechanism and the RTS / CTS mechanism are briefly introduced below.

[0086] I. CSMA / CA Mechanism

[0087] Figure 1This is a flowchart illustrating a method for sending data based on the CSMA / CA mechanism. Figure 1 As shown in the figure, taking the STA sending data to the AP through a channel shared with other nodes as an example, the current method flow for sending data based on the CSMA / CA mechanism includes:

[0088] S101: The STA monitors the channel status to determine if the channel is idle; if so, proceed to step S102; otherwise, repeat step S101.

[0089] Specifically, the STA can monitor the channel status by performing carrier sensing and energy detection to determine whether the channel is idle.

[0090] Carrier sense can be used to detect the preamble of data packets, thus identifying the start boundary of a data packet. For example, the preamble portion of wireless LAN technology standards (such as Institute of Electrical and Electronics Engineers version 802.11) is constructed using a specific sequence known to both the transmitter and receiver. Therefore, the STA can detect signals in the channel (i.e., the signals corresponding to data packets) based on the preamble. In practice, the STA can continuously sample signals in the channel, perform correlation operations, and compare the calculated value with a set threshold. If the calculated value is greater than or equal to the threshold, a signal is considered detected; otherwise, no signal is considered detected. After determining that a signal has been detected, the node can identify the header information of the corresponding data packet, receive and demodulate the data packet, and then identify the termination boundary of the data packet by demodulating the length field inside the data packet. Based on this method, the STA can determine whether a WiFi signal exists in the channel.

[0091] Energy detection employs a hardware energy integration algorithm to identify the energy in data packets and the energy of data packets from other heterogeneous networks (such as Bluetooth devices, microwave ovens, etc.). This method directly uses the signal energy received at the physical layer to determine the presence of a signal. If the signal energy is greater than a set energy threshold, the channel is considered busy; if the signal energy is less than or equal to the set energy threshold, the channel is considered idle. Based on this method, the STA can determine whether a signal (including WiFi signals and other types of signals) exists in the channel.

[0092] Based on the above method, the STA can determine in real time whether the channel is idle. Once the STA determines the time corresponding to the channel being idle at the distributed inter-frame spacing (DIFS), it can perform a random back-off process. The random back-off process mainly includes the following steps S102 to S105.

[0093] For ease of explanation, the time corresponding to DIFS will be referred to as DIFS time in the following embodiments of this application.

[0094] S102: After the STA determines the channel idle DIFS time, it selects a random number from the range of random backoff count values ​​(i.e., the contention window) and counts down while continuously monitoring the channel status.

[0095] The initial random rollback count value is generally in the range of 0 to 31.

[0096] S103: STA determines whether the channel is idle; if yes, proceed to step S104; otherwise, proceed to step S101.

[0097] S104: STA decrements the count value by 1.

[0098] S105: STA determines whether the count value is 0; if yes, proceed to step S106; otherwise, proceed to step S103.

[0099] In steps S102 to S105 above, after the STA selects a random number, it uses this random number as the initial backoff count and can count down using a random backoff counter. Specifically, after each slot time, the STA listens to the channel status. If it determines that the channel is idle, it decrements the count value of the random backoff counter by 1; if it determines that the channel is busy, it keeps the count value of the random backoff counter unchanged. When the count value of the random backoff counter becomes 0, if it determines that the channel is still idle, the STA competes for the channel and can transmit data through it. For example, assuming the STA selects the random number 8 as the initial backoff count within the range of random backoff count values, after 3 slots of idle time, the count value of the random backoff counter becomes 5. After another 5 slots of idle time (i.e., a total of 8 slots of idle time), if the channel is still idle, the STA can transmit data through the channel.

[0100] If the STA determines the channel is busy before the random backoff timer's countdown reaches 0, the countdown of the random backoff counter is temporarily interrupted. The countdown is restarted when the channel idle DIFS time is determined again. When the countdown is restarted, it continues from the count value when the random backoff counter was stopped.

[0101] S106: STA sends data to AP via the channel.

[0102] After the STA completes the random backoff process, it competes for the channel and can then send data through the channel.

[0103] Figure 2a This is a schematic diagram of the architecture of a WiFi communication system. Figure 2a As shown, the system includes three nodes: STA1, STA2, and AP. STA1 and STA2 can establish a WiFi connection through the AP, enabling communication between STAs and the AP, or between STAs themselves.

[0104] Figure 2b This is a schematic diagram of the architecture of a peer-to-peer (P2P) communication system. Figure 2b As shown, the system includes two nodes, STA1 and STA2. STA1 and STA2 establish a communication connection via P2P technology.

[0105] It should be understood that the above Figure 2a The Sino-Israeli communication system will be illustrated using an example consisting of one access point (AP) and two STAs (STAs). Figure 2b The Sino-Israeli communication system includes two STAs as an example, but the number of nodes in an actual communication system is not limited to this, and an actual communication system may include more nodes.

[0106] In the above Figure 2a or Figure 2b In the communication system shown, STA1 and STA2 can share the same channel for communication. When STA1 and STA2 successively need to send data through the shared channel, the following method can be used:

[0107] 1) STA1 and STA2 wait for the DIFS time. If the channel remains idle during the DIFS time, STA1 and STA2 can perform a random backoff process.

[0108] 2) After STA 1 and STA 2 enter the random rollback process, they each select a random number from the contention window (CW). The random number is an integer greater than or equal to 0, and its size represents the number of time slots. The time required to execute the random rollback process is the time of one or more time slots corresponding to the random number.

[0109] For example, such as Figure 3 As shown, STA 1 selected a random number of 8, and STA 2 selected a random number of 2.

[0110] 3) During the random back-off process, after each time slot, STA1 and STA2 listen to the channel once, and decrement the corresponding random back-off counter value by 1 when the channel is determined to be idle.

[0111] For example, such as Figure 3 As shown, after three time slots, the count value of the random backoff counter of STA1 decreases from 8 to 5, while the count value of the random backoff counter of STA2 decreases from 2 to 0.

[0112] 4) When the count value of STA2's random backoff counter first reaches 0, STA2 competes for the channel and can then transmit data through the channel. At this time, STA1 pauses its countdown.

[0113] For example, such as Figure 3 As shown, when the countdown of STA 2 reaches 0, STA 2 acquires the channel and can then send data packet A to AP through the channel. After receiving data packet A, AP can use the CRC (cyclic redundancy check) mechanism to verify data packet A. If the verification passes, AP will send an acknowledgment (ACK) frame back to STA 2 after waiting for the time corresponding to the short inter-frame space (SIFS).

[0114] For ease of explanation, the time corresponding to SIFS will be referred to as SIFS time in the following embodiments of this application.

[0115] 5) Once STA 2 has successfully sent the data and received the ACK frame from AP after SIFS time, this data transmission by STA 2 is complete.

[0116] 6) After STA2 completes a data transmission, STA2 needs to wait for the DIFS time again before restarting the random backoff process to compete for the channel. If STA1 detects that the channel is idle after STA2 completes a data transmission, it will continue counting down after waiting for the DIFS time.

[0117] If a node has just finished sending data, then at the start of the random backoff process, the node needs to select a random number from the contention window (or backoff window) to start counting down again. If the node has not sent any data, it continues counting down directly from the previous count result.

[0118] For example, such as Figure 3 As shown, STA2 first acquires the channel and transmits data, while STA1 fails to acquire the channel. After STA completes one data transmission process, STA detects that the channel is idle and, after waiting for the DIFS time, begins the second random backoff process. In the second random backoff process, STA1 directly counts down from the previous count result of 5 to 4 and subsequent values, thus ensuring the fairness of data transmission.

[0119] Based on the above scheme, as the number of nodes transmitting data through the same channel increases, it's possible for two nodes to select the same random number during the random backoff process and send data at the same time, resulting in a collision. After a collision, the contention window doubles in size, potentially increasing the waiting time for nodes in the next random backoff process. Therefore, the more nodes transmitting data through the same channel, the higher the probability of collisions during data transmission, leading to longer waiting times and a greater reduction in channel utilization.

[0120] For example, such as Figure 4As shown, when the initial random backoff count value is in the range of [0, 31], assuming that STA1 and STA2 simultaneously compete for the channel and choose the same random number 3 during the random backoff process, STA1 and STA2 will complete the random backoff process simultaneously. STA1 will send data packet B to the AP, and STA2 will send data packet A to the AP, resulting in a data transmission conflict between STA1 and STA2. After waiting for the SIFS time, if neither STA1 nor STA2 receives an ACK from the AP, it is determined that the data transmission has failed and they need to re-compete for the channel. After the data transmission conflict between STA1 and STA2, STA1 and STA2 will each use a binary exponential backoff method to expand the contention window. Therefore, after one conflict, the contention window range of STA1 and STA2 expands from [0, 31] to [0, 63]. When re-competing for the channel, STA1 and STA2 will execute the random backoff process after waiting for the time corresponding to the extended inter-frame space (EIFS). Since the competition window range is expanded to [0, 63], the random backoff count values ​​corresponding to STA1 and STA2 will be in the range of [0, 63] during the random backoff process. For example... Figure 4 As shown, STA1 and STA2 selected random numbers of 50 and 32 respectively within this range. Therefore, STA2 needs to wait at least 32 time slots before it can compete for the channel, while STA1 needs to wait for a longer time slot than 50. During this process, STA1 and STA2 need to wait a long time before they can compete for the channel and send data through it, resulting in very low channel utilization.

[0121] Furthermore, the aforementioned problem also occurs when two nodes are not within each other's monitorable range, meaning neither node can detect the data transmitted by the other through the channel. Here, the monitorable range of a node is a spatial area of ​​a predetermined size centered on the node's location. For example, such as... Figure 5 As shown, in terms of spatial location, when STA1 and STA2 are located on opposite sides of AP, the monitorable range of STA1 is region 1 and the monitorable range of STA2 is region 2. Therefore, neither STA1 nor STA2 can detect the existence of the other end.

[0122] Reference Figure 6When STA1 and STA2 simultaneously compete for the channel, STA2 completes the random backoff process first. STA2 then wins the channel and can send data packet A to the AP through it. However, since STA2 is outside STA1's monitoring range, STA1 cannot detect channel congestion. Therefore, while STA2 is competing for the channel and sending data, STA1 will perceive the channel as idle and, after performing the random backoff process, will send data packet B through the channel. This causes a conflict between STA1's and STA2's data transmission, resulting in the aforementioned problem.

[0123] In summary, nodes transmitting data through the same channel are prone to collisions when sending data based on the CSMA / CA mechanism, which reduces the channel utilization.

[0124] II. RTS / CTS Mechanism

[0125] Figure 7 This is a schematic diagram of a data transmission method based on the RTS / CTS mechanism. Figure 2a The WiFi communication system shown or Figure 2b In the P2P communication system shown, when STA1 and STA2 successively have data that needs to be sent through the same channel, the following method can be used:

[0126] 1) STA1 and STA2 compete for the channel based on the CSMA / CA mechanism. Assuming STA2 wins the channel, STA2 first sends an RTS data frame to the AP. If there is no collision at the AP, the AP successfully demodulates the RTS data frame from STA2 and sends a CTS data frame to the nodes that have established a communication connection with the AP (including STA2) after waiting for the SIFS time. At the same time, STA1 can listen for and receive this CTS data frame while performing channel listening.

[0127] The process of channel contention between STA1 and STA2 based on the CSMA / CA mechanism can be referred to as follows. Figure 1 Steps 1) to 4) shown are not repeated here.

[0128] 2) When STA1 receives a CTS data frame from the AP, STA1 can identify that the CTS data frame is not the one it requested (or, in other words, the CTS data frame is not the one sent to STA1). STA1 then extracts the duration information from the CTS data frame and sets it on its local network allocation vector (NAV) for a countdown. If the NAV has not counted down to 0, STA1 actively suspends its random backoff counter, pausing the countdown. The random backoff counter will not continue counting down until the NAV has counted down to 0.

[0129] 3) When STA 2 receives a CTS data frame from the AP, it can identify that the CTS data frame is a feedback data frame of the RTS data frame previously sent by STA 2. Then STA 2 can determine that the channel is idle and, after waiting for SIFS time, send data through the channel.

[0130] 4) After STA2 completes data transmission through the channel, AP sends an ACK back to STA2, thus completing a data transmission.

[0131] Based on the above scheme, in scenarios where multiple nodes transmit data through the same channel, nodes compete for the channel using a CSMA / CA mechanism before using it. After winning the channel, each node sends an RTS data frame to the receiving end. The receiving end receives the RTS data frame and then sends a CTS data frame in response. The node that sent the RTS data frame can then transmit data through the channel after receiving the CTS data frame, while other nodes that receive the CTS data frame actively back off and temporarily do not use the channel. Therefore, the node that sends the RTS data frame first and receives the corresponding CTS data frame can transmit data first, and only one node can transmit data through the channel at a time, further reducing the possibility of transmission conflicts and improving channel utilization to some extent.

[0132] The above scheme can improve the problem of potential conflicts in the data transmission method based on the CSMA / CA mechanism. However, in the RTS / CTS mechanism, the transmitting node needs to compete for the channel before it can send RTS data frames, and the receiving node also needs to compete for the channel before it can reply with CTS data frames. That is, both the transmitting and receiving ends need to go through a random backoff process before they can send RTS data frames or CTS data frames. Therefore, there will be a large interaction overhead. Especially when the data packets sent are small, the interaction overhead will cause a waste of channel (air interface) resources.

[0133] Furthermore, in CSMA / CA or RTS / CTS mechanisms, the node that completes the random backoff process first or the node that sends the RTS first can compete for the channel and send data. In this case, low-priority services may occupy the air interface resources of high-priority, low-latency services. This not only affects the rapid execution of high-priority, low-latency services, but also wastes air interface resources.

[0134] To address the problems existing in the above-mentioned solutions, this application provides a data transmission method and apparatus to enable orderly use of the channel by nodes in scenarios where multiple nodes communicate based on the same channel, reduce the waste of channel resources caused by data transmission collisions between nodes, and thereby improve channel utilization.

[0135] The hardware or software structure of the node provided in the embodiments of this application will be described first by way of example.

[0136] For example, Figure 8 A schematic diagram of the hardware architecture of an electronic device is shown. The nodes provided in the following embodiments of this application may have… Figure 8 An electronic device with some or all of the hardware structure shown.

[0137] like Figure 8 As shown, the electronic device 800 may include a processor 810, an external memory interface 820, an internal memory 821, a USB interface 830, a charging management module 840, a power management module 841, a battery 842, an antenna 1, a wireless communication module 860, an audio module 870, a speaker 870A, a receiver 870B, a microphone 870C, a headphone jack 870D, a sensor module 880, buttons 890, a motor 891, an indicator 892, a camera 893, a display screen 894, etc.

[0138] Optionally, the electronic device 800 may also include an antenna 2, a mobile communication module 850, a SIM interface 895, etc.

[0139] Processor 810 may include one or more processing units, such as application processors (APs), modem processors, graphics processing units (GPUs), image signal processors (ISPs), controllers, memory, video codecs, digital signal processors (DSPs), baseband processors, and / or neural network processing units (NPUs). Different processing units may be independent devices or integrated into one or more processors. The controller may serve as the central nervous system and command center of the electronic device 800. The controller can generate operation control signals based on instruction opcodes and timing signals to control instruction fetching and execution.

[0140] The processor 810 may also include a memory for storing instructions and data. In some embodiments, the memory in the processor 810 is a cache memory. This memory can store instructions or data that the processor 810 has just used or that are used repeatedly. If the processor 810 needs to use the instruction or data again, it can retrieve it directly from the memory. This avoids repeated accesses, reduces the waiting time of the processor 810, and thus improves the efficiency of the system.

[0141] The execution of the data transmission method provided in this application embodiment can be controlled by the processor 810 or by calling other components. For example, it can call the processing program of this application embodiment stored in the internal memory 821 to control the wireless communication module 860 to perform data communication with other electronic devices to realize WiFi communication, P2P communication, etc. The processor 810 may include different devices. For example, when integrating a CPU and a GPU, the CPU and GPU can cooperate to execute the data transmission method provided in this application embodiment. For example, some algorithms in the data transmission method are executed by the CPU, and other algorithms are executed by the GPU to obtain faster processing efficiency.

[0142] Display screen 894 is used to display images, videos, etc. Display screen 894 includes a display panel. The display panel can be a liquid crystal display (LCD), an organic light-emitting diode (OLED), an active-matrix organic light-emitting diode (AMOLED), a flexible light-emitting diode (FLED), a Miniled LED, a MicroLED, a Micro-OLED, a quantum dot light-emitting diode (QLED), etc. In some embodiments, electronic device 800 may include one or N display screens 894, where N is a positive integer greater than 1. Display screen 894 can be used to display information input by the user or information provided to the user, as well as various graphical user interfaces (GUIs). For example, display screen 894 can display photos, videos, web pages, or documents, etc.

[0143] In this embodiment, the display screen 894 can be a single flexible display, or it can be a spliced ​​display consisting of two rigid screens and a flexible screen located between the two rigid screens. When the processor 810 runs the data transmission method provided in this embodiment, the processor 810 can control the display screen 894 to display the relevant results.

[0144] Camera 893 (a front-facing camera or a rear-facing camera, or a single camera that can function as both a front-facing and a rear-facing camera) is used to capture still images or videos.

[0145] The internal memory 821 can be used to store computer executable program code, which includes instructions. The processor 810 executes various functional applications and data processing of the electronic device 800 by running the instructions stored in the internal memory 821. The internal memory 821 may include a program storage area and a data storage area. The program storage area can store the operating system, application code (such as data transmission functions, WiFi communication functions, etc.), etc. The data storage area can store data created during the use of the electronic device 800 (such as information and data that need to be exchanged between devices when executing the data transmission method provided in this application embodiment).

[0146] The internal memory 821 may also store one or more computer programs corresponding to the algorithm of the data transmission method provided in the embodiments of this application. The one or more computer programs are stored in the internal memory 821 and configured to be executed by one or more processors 810. The one or more computer programs include instructions that can be used to perform the various steps in the following embodiments.

[0147] In addition, the internal memory 821 may include high-speed random access memory, and may also include non-volatile memory, such as at least one disk storage device, flash memory device, universal flash storage (UFS), etc.

[0148] Of course, the algorithm code of the data transmission method provided in this application embodiment can also be stored in external memory. In this case, the processor 810 can run the data transmission algorithm code stored in external memory through the external memory interface 820.

[0149] The sensor module 880 may include fingerprint sensors, touch sensors, pressure sensors, magnetic sensors, ambient light sensors, barometric pressure sensors, bone conduction sensors, etc.

[0150] Optionally, the electronic device 800 can be a STA. The electronic device 800 may not include the antenna 2, the mobile communication module 850, and the SIM interface 895. In this case, the wireless communication function of the electronic device 800 can be implemented through the antenna 1, the wireless communication module 860, the modem processor, and the baseband processor.

[0151] Optionally, the electronic device 800 can be an access point (AP). The electronic device 800 may include an antenna 2, a mobile communication module 880, and a SIM interface 895, etc. The wireless communication function of the electronic device 800 can be implemented through the antenna 1, antenna 2, mobile communication module 850, wireless communication module 860, modem processor, and baseband processor, etc.

[0152] Antenna 1 and antenna 2 are used to transmit and receive electromagnetic wave signals. Each antenna in electronic device 800 can be used to cover one or more communication frequency bands, such as the 2.4 GHz band or the 8 GHz band. Different antennas can also be multiplexed to improve antenna utilization. For example, antenna 2 can be multiplexed as a diversity antenna for a wireless local area network. In some other embodiments, the antennas can be used in conjunction with a tuning switch.

[0153] The mobile communication module 850 can provide solutions for wireless communication, including 2G / 3G / 4G / 5G, applied to the electronic device 800. The mobile communication module 850 may include at least one filter, switch, power amplifier, low noise amplifier (LNA), etc. The mobile communication module 850 can receive electromagnetic waves via antenna 2, and perform filtering, amplification, and other processing on the received electromagnetic waves before transmitting them to a modem processor for demodulation. The mobile communication module 850 can also amplify the signal modulated by the modem processor and convert it into electromagnetic waves for radiation via antenna 2. In some embodiments, at least some functional modules of the mobile communication module 850 may be housed in the processor 810. In some embodiments, at least some functional modules of the mobile communication module 850 and at least some modules of the processor 810 may be housed in the same device.

[0154] The modem processor may include a modulator and a demodulator. The modulator modulates the low-frequency baseband signal to be transmitted into a mid-to-high frequency signal. The demodulator demodulates the received electromagnetic wave signal into a low-frequency baseband signal. The demodulator then transmits the demodulated low-frequency baseband signal to the baseband processor for processing. After processing by the baseband processor, the low-frequency baseband signal is transmitted to the application processor. The application processor outputs sound signals through an audio device (not limited to a speaker 870A, receiver 870B, etc.) or displays images or videos through a display screen 894. In some embodiments, the modem processor may be a separate device. In other embodiments, the modem processor may be independent of the processor 810 and may be housed in the same device as the mobile communication module 850 or other functional modules.

[0155] The wireless communication module 860 can provide solutions for wireless communication applications on the electronic device 800, including wireless local area networks (WLAN) (such as WiFi), Bluetooth (BT), global navigation satellite system (GNSS), frequency modulation (FM), near field communication (NFC), and infrared (IR). The wireless communication module 860 can be one or more devices integrating at least one communication processing module. The wireless communication module 860 receives electromagnetic waves via antenna 2, performs frequency modulation and filtering of the electromagnetic wave signal, and sends the processed signal to processor 810. The wireless communication module 860 can also receive signals to be transmitted from processor 810, perform frequency modulation and amplification, and convert them into electromagnetic waves for radiation via antenna 2. In this embodiment, the wireless communication module 860 is used to establish communication connections with other electronic devices and perform data interaction. For example, when the electronic device 800 acts as a STA (Single-Station), the wireless communication module 860 can be used to access the AP (Access Point) and send messages and data to the AP, or receive instructions or data from the AP, etc., during the access process. For example, when the electronic device 800 acts as an access point (AP), the wireless communication module 860 can be used to establish a WiFi connection with a STA requesting access, and receive messages and data from the STA or send instructions or data to the STA during the access process.

[0156] In addition, the electronic device 800 can implement audio functions through an audio module 870, a speaker 870A, a receiver 870B, a microphone 870C, a headphone jack 870D, and an application processor. Examples include music playback and recording. The electronic device 800 can receive key input 890, generating key signal inputs related to user settings and function control. The electronic device 800 can use a motor 891 to generate vibration alerts (such as vibration alerts for incoming calls). The indicator 892 in the electronic device 800 can be an indicator light, used to indicate charging status, battery level changes, or to indicate messages and notifications.

[0157] The SIM card interface 895 in the electronic device 800 is used to connect a SIM card. The SIM card can be inserted into or removed from the electronic device 800 to achieve contact and separation with the electronic device 800.

[0158] In the embodiments of this application, Figure 8 The electronic device 800 shown can function as either an AP or a STA.

[0159] It should be understood that in practical applications, Figure 8 The electronic device shown is merely an example and does not constitute a limitation on electronic devices; furthermore, electronic devices can have more than... Figure 8 The more or fewer components (or structures) shown can be combined into two or more components, or they can have different component configurations. Figure 8 The various components shown can be implemented in hardware, software, or a combination of hardware and software, including one or more signal processing and / or application-specific integrated circuits.

[0160] For example, the software system of electronic device 800 can adopt a layered architecture, event-driven architecture, microkernel architecture, microservice architecture, or cloud architecture. This embodiment of the invention uses the layered architecture Android system as an example to illustrate the software structure of the electronic device.

[0161] Layered architecture divides software into several layers, each with a clear role and function. Layers communicate with each other through software interfaces. For example... Figure 9 As shown, the software architecture can be divided into four layers, from top to bottom: the application layer, the application framework layer (framework, FWK), the Android runtime and system libraries, and the Linux kernel layer.

[0162] The application layer is the top layer of the operating system and includes native operating system applications such as camera, gallery, calendar, Bluetooth, music, video, and messaging. The applications discussed in this application are referred to as apps (APPs), which are software programs capable of performing one or more specific functions. Typically, multiple apps can be installed on an electronic device. Examples include camera apps, email apps, and smart home control apps. Apps can be system applications pre-installed at the factory or third-party applications downloaded from the network or obtained from other electronic devices during the user's use of the electronic device.

[0163] Of course, for developers, they can write applications and install them into this layer. In one possible implementation, the application can be developed using the Java language, by calling the Application Programming Interface (API) provided by the application framework layer. Developers can then interact with the underlying operating system (such as the kernel layer) through the application framework to develop their own applications.

[0164] The application framework layer provides application programming interfaces (APIs) and a programming framework for applications in the application layer. The application framework layer can include predefined functions. It may include a window manager, content provider, view system, phone manager, resource manager, notification manager, etc.

[0165] The window manager is used to manage windowed applications. It can retrieve screen size, determine the presence of a status bar, lock the screen, and capture screenshots, among other things.

[0166] Content providers are used to store and retrieve data, and make that data accessible to applications. This data may include files (e.g., documents, videos, images, audio), text, and other information.

[0167] A view system includes visual controls, such as controls that display text, images, documents, and other content. View systems can be used to build applications. An interface in a display window can consist of one or more views. For example, a display interface including a text message notification icon could include a view that displays text and a view that displays images.

[0168] The phone manager provides communication functionality for electronic devices. The notification manager allows applications to display notification information in the status bar; it can be used to convey informative messages and can disappear automatically after a short pause without user interaction.

[0169] The Android runtime consists of core libraries and a virtual machine. The Android runtime is responsible for scheduling and managing the Android system.

[0170] The core libraries of the Android system consist of two parts: one part contains the functionalities that Java calls, and the other part is the core libraries of the Android system. The application layer and application framework layer run in a virtual machine. Taking Java as an example, the virtual machine executes the Java files in the application layer and application framework layer as binary files. The virtual machine is used to perform functions such as object lifecycle management, stack management, thread management, security and exception management, and garbage collection.

[0171] The system library can include multiple functional modules. For example: a surface manager, a media library, a 3D graphics processing library (e.g., OpenGL ES), and a 2D graphics engine (e.g., SGL). The surface manager manages the display subsystem and provides the fusion of 2D and 3D layers for multiple applications. The media library supports playback and recording of various common audio and video formats, as well as still image files. The media library supports various audio and video encoding formats, such as MPEG4, H.564, MP3, AAC, AMR, JPG, and PNG. The 3D graphics processing library implements 3D graphics drawing, image rendering, compositing, and layer processing. The 2D graphics engine is the drawing engine for 2D graphics.

[0172] The kernel layer provides the core system services of the operating system, such as security, memory management, process management, network protocol stack, and driver models, all of which are implemented based on the kernel layer. The kernel layer also serves as an abstraction layer between the hardware and software stacks. This layer contains many drivers related to electronic devices, including: display drivers; keyboard drivers as input devices; Flash drivers for memory-based devices; camera drivers; audio drivers; Bluetooth drivers; and WiFi drivers.

[0173] It is important to understand that the functional services described above are just an example. In practical applications, electronic devices may be divided into more or fewer functional services based on other factors, or the functions of each service may be divided in other ways, or they may not be divided into functional services but work as a whole.

[0174] The methods provided in this application will be described in detail below with reference to specific embodiments.

[0175] The data transmission method provided in this application can be applied to nodes that share a channel for data transmission with other nodes. Optionally, the node can be a STA or AP in a WiFi communication scenario, or a node in a P2P communication scenario (e.g., Figure 2a or Figure 2b (STA or AP in the system shown). For ease of explanation, the following embodiments mainly take the scenario of the first node and the second node transmitting data on the same channel as an example to introduce the data transmission method provided by the embodiments of this application.

[0176] It should be noted that the following description focuses on the first node executing the data sending method provided in the embodiments of this application, but the second node can also execute the data sending method provided in the embodiments of this application.

[0177] This application provides a data transmission method based on a reservation mechanism. In this method, initially, nodes can compete for a channel using the CSMA / CA mechanism. After winning the channel, they transmit data to a target node through the channel. In scenarios where multiple nodes use the same channel for data transmission, different nodes can transmit data through the channel at different time periods. Therefore, when a node transmits a data packet through the channel, it can reserve the data transmission time (including the time required to send the data packet and the time required to receive the corresponding ACK). Within the reserved time period, the next data packet transmission process will proceed. Other nodes automatically back off during the reserved time period, i.e., suspend the use of the channel, thereby avoiding conflicts with the node's data transmission. In time slots not reserved by any node, each node can transmit data based on the CSMA / CA mechanism.

[0178] Specifically, refer to Figure 10 The data transmission method provided in this application includes:

[0179] S1001: When the first channel is selected for sending data, the first node listens to the status of the first channel.

[0180] S1002: When the status of the first channel is busy, the first node continues to listen to the status of the first channel.

[0181] S1003: After determining that the state of the first channel changes from busy to idle, the first node sends a first data packet on the first channel; wherein the first data packet carries first reservation information, the first reservation information being used to reserve a first sending time and a first sending duration for the first node to send a second data packet on the first channel.

[0182] In step S1001 above, when the first node needs to send data to other nodes through a channel, it can randomly select one of the multiple channels available to the first node. When the first node selects the first channel for sending data, it starts monitoring the status of the first channel. When the first node detects that the first channel is idle, it can directly send data packets on the first channel; or, when the first node detects that the first channel is idle for a continuous period of time, it can directly send data packets on the first channel. When the first node detects that the first channel is busy, it continues to monitor the status of the first channel. The continuous period of time can be a period corresponding to an inter-frame interval, or it can be a pre-defined period of time. When the first node detects that the status of the first channel changes from busy to idle, it can send the first data packet on the first channel.

[0183] In some embodiments of this application, before the first node reserves the time to use the first channel, the second node may have already reserved the time to use the first channel. In this case, the first node needs to yield the first channel to the second node. Therefore, in steps S1002 and S1003 above, in one possible scenario, if the first node, while monitoring the status of the first channel, does not detect the existence of second reservation information on the first channel, and detects that the status of the first channel changes from busy to idle, the first node can directly send the first data packet on the first channel after the status of the first channel changes from busy to idle. The second reservation information is the information sent by the second node on the first channel, used to reserve the second sending time and the second sending duration for the second node to send the third data packet on the first channel. The second node can be any other node that sends data through the first channel.

[0184] In another possible scenario, if the first node detects that the first channel is busy while monitoring its status, and there is second reservation information on the first channel, the first node needs to determine the time to send the first data packet on the first channel based on the second reservation information.

[0185] In this scenario, when the first node detects that the status of the first channel changes from busy to idle, it determines whether the time interval between the second transmission time scheduled by the second reservation information and the first target time (the time when the first node detects that the status of the first channel changes from busy to idle) is less than or equal to a target value. This target value can be a set threshold or the time value estimated by the first node for itself to send the first data packet on the first channel. If so, it can be determined that the second node will use the first channel again in the near future. The first node can then wait until the second node uses the first channel again before continuing to monitor the status of the first channel, and can send the first data packet on the first channel after detecting that the first channel changes from busy to idle again. That is, before executing the above step S1003, the first node needs to wait until the second target time arrives before re-executing the above steps S1001 and S1002 and determining that the status of the first channel changes from busy to idle. Here, the second target time is the time corresponding to the second transmission duration elapsed from the second transmission time. Specifically, when the second target time arrives, the first node listens to the status of the first channel. When the status of the first channel is busy, it continues to listen to the status of the first channel. After determining that the status of the first channel changes from busy to idle, it sends the first data packet on the first channel.

[0186] When the first node determines that the time interval between the second transmission time and the first target time is greater than the target value, it can be determined that the second node will not use the first channel again in the short term. Therefore, the first node can directly transmit the first data packet on the first channel after confirming that the first channel has changed from busy to idle. However, the time reserved by the first node through the first reservation information in the first data packet must avoid the time reserved by the second node's second reservation information for transmitting the third data packet. Therefore, the first transmission time reserved by the first reservation information is a time after the second target time.

[0187] In the above scheme, the specific implementation method for the first node to monitor the status of the first channel and send data packets on the first channel after the status of the first channel changes from busy to idle can be referred to the above. Figure 1 The method shown will not be elaborated here.

[0188] Optionally, after performing step S1003 above, the first node may further perform the following step: when the scheduled first transmission time arrives, the first node transmits the second data packet on the first channel. The second data packet may carry reservation information to reserve the time for the first node to transmit data packets again on the first channel.

[0189] Based on the above approach, the first node, using the CSMA / CA mechanism, obtains the first channel through channel contention. It can then send data packets through this channel, carrying reservation information for scheduling the next data packet transmission. In subsequent data packet transmissions, the reservation information can be carried again, allowing for continued scheduling and transmission of subsequent data packets. Furthermore, if the first node determines that the second node has reserved a time slot for sending data packets on the first channel before it obtains the channel, the first node can choose to pause data packet transmission. After the second node uses the first channel according to the reservation, the first node can then re-compete for the channel and continue sending data packets. Alternatively, when sending data packets and reserving the next transmission time, the first node can avoid the time slot already reserved by the second node, thus preventing conflicts with the second node.

[0190] It should be noted that, in the embodiments of this application, the node competition to obtain the channel refers to the node obtaining the right to use the channel to send data for a period of time through channel competition.

[0191] In some embodiments of this application, the first reservation information includes at least a reserved sending time (indicating the first sending time) and a reserved sending duration (indicating the first sending duration). The reserved sending time can be the time interval between the start time of the reserved next data packet sending period and the start time of sending the first reservation information, that is, the time interval between the time when the first node next starts sending data packets and the time when it starts sending data packets this time. The reserved sending duration is the length of the reserved next data packet sending period, that is, the time required for the first node to next send data packets. Optionally, if the target node needs to send an ACK back to the first node after receiving the data sent by the first node, the reserved sending duration can include the time required for the target node to send an ACK back to the first node.

[0192] In some embodiments of this application, the scheduled transmission time can be a future time or a continuous period of time after the current data transmission ends. The scheduled transmission duration is less than or equal to a set duration threshold.

[0193] For example, such as Figure 11a As shown, initially, the first node competes for the first channel based on the CSMA / CA mechanism and sends data packet 1 through this channel. The first node includes reservation information in the header of data packet 1 to reserve a time slot for sending data packet 2. This reservation information includes a reserved transmission time of T1 (the time interval between the start of sending data packet 1 and the start of sending data packet 2) and a reserved transmission duration of T2 (the time interval between the start of sending data packet 2 and the end of receiving the ACK corresponding to data packet 2). After the transmission of data packet 1 is completed, the first node can start sending data packet 2 when the reserved time for sending data packet 2 arrives. After the first node sends data packet 1, the second node can receive data packet 1 by listening to the first channel. By parsing the header of data packet 1, the second node can determine the reservation information and thus the time slot reserved by the first node for sending data packet 2. During the T2 time slot for the first node to send data packet 2, the second node actively yields, suspending data transmission and thus relinquishing the channel resources of the first channel to the first node.

[0194] After the second node listens to and receives data packet 1 from node 1, it can determine the time when node 1 will start sending data packet 2 based on the time when it starts receiving data packet 1 and the scheduled sending time in the scheduled information carried by data packet 1, and actively avoid it from that time. Specifically, the time corresponding to the elapsed time after the scheduled sending time from the time the second node starts receiving data packet 1 is the time when node 1 will start sending data packet 2.

[0195] The first node can carry reservation information in data packet 2 to reserve a time slot for sending data packet 3. This reservation information includes a reserved transmission time of T3 (the time interval between the start of sending data packet 2 and the start of sending data packet 3) and a reserved transmission duration of T4 (the time interval between the start of sending data packet 3 and the end of receiving the ACK corresponding to data packet 3). Then, after the transmission of data packet 2 is completed, the first node can begin sending data packet 3 at the reserved time. Simultaneously, the second node actively yields the first channel to the first node within time T4.

[0196] The first node can also carry reservation information in data packet 3 to reserve a time slot for sending data packet 4. Similarly, the first node can carry reservation information for reserving a time slot for the next data packet transmission in a previously sent data packet. The second node can listen to the first channel to determine the previously sent data packet and, based on the reservation information in that data packet, determine the time slot reserved by the first node. When the reserved time slot arrives, the first node can begin sending the next data packet, while the second node suspends its data transmission processes, thus avoiding conflicts with the first node's data transmission.

[0197] Optionally, data packets 1 to 4 may be data packets corresponding to the data after being split from the same business data, or some data packets in data packets 1 to 4 may be data packets corresponding to the data after being split from the same business data, or data packets 1 to 4 may be data packets corresponding to different business data.

[0198] For example, such as Figure 11bAs shown, when multiple nodes, such as node 1, node 2, and node 3, transmit data through a certain channel, nodes 1, 2, and 3 complete the transmission of a data packet at times t1, t2, and t3, respectively, and each packet carries its own reservation information. The start times for the next data packet transmission reserved by nodes 1, 2, and 3 are t4, t5, and t6, respectively, and the end times (i.e., the times when the ACK corresponding to the received data packet ends) for the next data packet transmission reserved by nodes 1, 2, and 3 are t5, t6, and t7, respectively. The time period between t1 and t4 is the waiting time for node 1. Node 1 transmits data packets and receives the corresponding ACKs during the time period between t4 and t5. Node 1 actively yields the channel to node 2 or node 3 at least during the time period between t5 and t7. The time interval between t2 and t5 is the waiting time for node 2. During the time interval between t4 and t5, node 2 actively yields, allowing node 1 to use the channel. During the time interval between t5 and t6, node 2 sends data packets and receives the corresponding ACKs. During the time interval between t6 and t7, node 2 actively yields, allowing node 3 to use the channel. The time interval between t3 and t6 is the waiting time for node 3. During the time interval between t4 and t6, node 3 actively yields, allowing either node 1 or node 2 to use the channel. During the time interval between t6 and t7, node 3 sends data packets and receives the corresponding ACKs.

[0199] Based on this method, nodes 1, 2, and 3 can reserve the time period for the next data packet transmission when sending the previous data packet, and avoid the time periods already reserved by other nodes. Therefore, the transmission conflicts between nodes 1, 2, and 3 can be significantly reduced, thereby improving the channel utilization.

[0200] In some embodiments of this application, the aforementioned scheduled sending time may also be the start time of the scheduled next data packet sending period, i.e., the time when the first node will start sending data packets next.

[0201] For example, such as Figure 11b As shown, the scheduled sending time in the data packet sent by node 1 at the current moment can be the time when node 1 will start sending data packets again, i.e., t4. In other words, node 1 can directly indicate the time when it will start sending data packets again by scheduling the scheduled sending time. Other nodes, such as node 2 and node 3, can quickly determine the time when node 1 will schedule the next data packet to be sent based on the scheduled sending time, and start to actively avoid it when that time is reached.

[0202] In some embodiments of this application, the aforementioned scheduled sending duration can also be replaced by a scheduled stop time. The scheduled stop time is the time after the scheduled sending duration, starting from the moment when the first node starts sending data packets again (time point), which is the end time when the first node receives the ACK corresponding to the data packet fed back by the target node.

[0203] In some embodiments of this application, the first node sends out data packets in MAC frame format. The first node can then carry reservation information in the MAC frame header, ensuring that the second node can obtain the reservation information through the listening channel. Furthermore, by carrying reservation information in the MAC frame header, no additional interactive signaling is required, thus avoiding extra interactive overhead.

[0204] In this embodiment, the first node can also yield during the time period reserved by the second node, thereby relinquishing the channel to the second node. The method used by the first node to yield is the same as the yielding method used by the second node described above, and will not be repeated here.

[0205] In the above embodiments, the first node sends a data packet carrying reservation information to the target node. After receiving the data packet from the first node, the target node can include the reservation information in the ACK sent back to the first node, so that the reservation information is transmitted again on the channel. This further ensures that the second node other than the first node can obtain the reservation information of the first node, and further ensures that the second node can actively back off within the time period reserved by the first node, thereby improving the reliability of the reservation sending mechanism.

[0206] Furthermore, based on the above scheme, the first node can also schedule data transmission times according to the priority of the business.

[0207] Specifically, the first node can also add service priority information to the reservation information. This service priority information indicates the service priority of the service corresponding to the data packet. Correspondingly, the aforementioned first reservation information can also include the service priority of the first node. More specifically, the service priority of the first node is the priority of the service corresponding to the next data packet reserved by the first node. The higher the service priority of the node, the higher the priority of the reserved data transmission time. When services with different priorities exist, the service with higher priority can preempt the reservation time corresponding to the service with lower priority. Based on this method, if the time reserved by the first node does not conflict with the time reserved by the second node, the first node can reserve the time to use the first channel based solely on the first reservation information. If the time reserved by the first node conflicts with the time reserved by the second node, the first node can further determine whether it has successfully reserved the time to use the first channel based on the service priority information.

[0208] In some embodiments of this application, when the reservation information includes the service priority of a node, the first reservation information may include the service priority of the first node, and the second reservation information may include the service priority of the second node. In steps S1002 and S1003, if the second node has reserved the time to use the first channel before the first node, the first node needs to determine whether its service priority is higher than or equal to the service priority of the second node before sending the first data packet. If so, the first node can directly send the first data packet on the first channel after determining that the status of the first channel has changed from busy to idle, without considering the second reservation information of the second node. Otherwise, the first node needs to use the method provided in the above embodiments to allow the second channel to be used by the first channel.

[0209] In some embodiments of this application, after the first node sends a first data packet carrying first reservation information on the first channel, it can listen for the existence of third reservation information on the first channel before the reserved sending time arrives; wherein, the third reservation information is used to reserve a third sending time and a third sending duration for the second node to send a fourth data packet on the first channel, and the third reservation information includes the service priority of the second node.

[0210] In one possible scenario, when the first node detects the third reservation information on the first channel, the first node determines whether to use the first channel when the first transmission time arrives, based on the service priority of the first node and the service priority of the second node. Specifically, this includes the following three scenarios:

[0211] Scenario 1: The service priority of the first node > the service priority of the second node

[0212] In this case, the first node determines that it can use the first channel when the first transmission time arrives. Therefore, when the first transmission time arrives, the first node directly transmits the second data packet on the first channel.

[0213] Based on this approach, when the service priority of the first node is higher than that of the second node, the first node can reserve the data transmission time first, and the second node can reserve the data transmission time within the remaining available time period after the first node's reservation. This allows the first node to transmit high-priority service data through the first channel first, and then the second node to transmit low-priority service data through the same first channel, thus ensuring the timely execution of high-priority services and achieving full and efficient utilization of air interface resources.

[0214] Scenario 2: The service priority of the first node is less than the service priority of the second node.

[0215] In this case, the first node determines whether the first transmission time is within the time period reserved by the second node. If so, the first node will not use the first channel when the reserved first transmission time arrives and must give the first channel to the second node. Otherwise, the first node determines that it can use the first channel when the first transmission time arrives and will directly send data packets on the first channel when the first transmission time arrives.

[0216] Specifically, if the first transmission time falls within the time period reserved by the second node, the first node's reservation is invalid. The first node then needs to re-compete for the channel and, after successfully competing for the first channel, transmit the second data packet on the first channel. Specifically, after determining that the first channel will not be used when the first transmission time arrives, the first node needs to re-execute steps S1001-1003, and only after determining that the state of the first channel has changed from busy to idle, transmit the second data packet on the first channel.

[0217] Based on this approach, when the service priority of the first node is lower than that of the service priority of the second node, and the time slots reserved by the first and second nodes conflict, the first node must avoid the time slot reserved by the second node, thus allowing the first channel to be used by the higher-priority service. The first node can then re-compete for the channel outside the time slot reserved by the second node before sending data packets. This ensures the timely execution of high-priority services and achieves full and efficient utilization of air interface resources.

[0218] Scenario 3: The service priority of the first node equals the service priority of the second node.

[0219] In this scenario, the first node determines that it can use the first channel when the first transmission time arrives. Therefore, when the first transmission time arrives, the first node directly transmits the second data packet on the first channel. Simultaneously, if the time reserved by the first node conflicts with the time reserved by the second node, the first node will prioritize transmitting the second data packet and then need to wait for a certain period, allowing the second node to transmit data packets during that period. If the time reserved by the first node and the time reserved by the second node do not conflict, the first node will stop using the first channel during the time reserved by the second node, thus making the first channel available for the second node to use.

[0220] Specifically, when the first node determines that it can use the first channel when the first transmission time arrives, it checks whether the first transmission time is after the third transmission time and before the third target time. If so, it stops using the first channel from the fourth target time to the fifth target time. Here, the fourth target time is the time corresponding to the first transmission duration after the first transmission time, and the fifth target time is the time corresponding to the third transmission duration after the fourth target time. The second node can then change to sending data packets within the time period after the fourth target time arrives and before the fifth target time arrives. Otherwise, the first node stops using the first channel from the third transmission time, where the duration for which the first node stops using the first channel is the third transmission duration.

[0221] Based on this method, when the service priority of the first node is the same as that of the second node, the first and second nodes can reserve data transmission time sequentially. For example, data transmission time can be reserved according to the order in which reservation information is sent, so the node that sends the reservation information first can reserve the data transmission time first. This avoids conflicts between the first and second nodes while ensuring fairness when different nodes use the channel.

[0222] In another possible scenario, if the first node does not detect the third reservation information in the first channel, the first node can determine that only the first node itself has reserved the data transmission time and can use the first channel when the first transmission time arrives. In this case, the first node can directly send the second data packet on the first channel when the first transmission time arrives.

[0223] In the data transmission method based on the reservation transmission mechanism provided in the above embodiments, nodes can reserve the time period for using the channel to transmit data based on service priority. In this way, when multiple nodes share a channel, the orderly use of the channel can be achieved, thereby reducing or eliminating the probability of conflict between nodes, ensuring the user experience of high-priority services, and improving the overall utilization rate of the channel.

[0224] The following describes one possible data format for the reservation information described in the embodiments of this application.

[0225] In some embodiments of this application, the data packets sent by the node can be in MAC frame format. The reservation information can be carried in the header of the MAC frame corresponding to the data packet. Specifically, the reservation information can be located at any position in the header of the MAC frame.

[0226] Figure 12 This is a schematic diagram illustrating the format of a MAC frame for a data packet, as provided in an embodiment of this application. For example,... Figure 12As shown in the figure, the MAC frame corresponding to the data packet in this embodiment of the application contains the following information:

[0227] Frame control information: This information indicates the protocol version, type, and other relevant information of the data frame. Frame control information is located in the header of the MAC frame and occupies 2 bytes.

[0228] Duration / ID information: Indicates the time required for the current data transmission. Located in the header of the MAC frame, it occupies 2 bytes.

[0229] Address information: Contains different types of addresses (such as receiver address, sender address, etc.), for example Figure 12 The addresses shown are 1, 2, 3, and 4. Each address occupies 6 bytes. The address information is located in the header of the MAC frame.

[0230] Sequence control (seq-control) information: used for reassembling frame fragments and discarding duplicate frames. Sequence control information is located in the header of the MAC frame and occupies 2 bytes.

[0231] Reservation information: Located in the header of the MAC frame. Optionally, the reservation information occupies 2 bytes.

[0232] like Figure 12 As described above, the frame control information, duration / identification information, address information, and sequence control information constitute the frame header of a MAC frame.

[0233] Frame body information: Used to carry service data. The frame body information is located in the data portion of the MAC frame, occupying 0 to 2312 bytes.

[0234] Frame check sequence (FCS) information: Used to verify the validity of a MAC frame. The FCS information is located at the end of the MAC frame and occupies 4 bytes.

[0235] It should be understood that Figure 12 This example illustrates the situation by assuming the reservation information is located at the end of the MAC frame header (i.e., after address 4). Of course, the reservation information can also be located before the frame control information, or between any two pieces of information: frame control information, duration / identification information, address information, and sequence control information. Furthermore, Figure 12 The example given is that the reservation information occupies 4 bytes. In actual applications, the size of the reservation information can be flexibly determined according to the actual situation.

[0236] In this embodiment of the application, the reservation information includes at least the following fields:

[0237] The Reserved_Tx_Start field indicates the time interval between the scheduled start time of the next data packet transmission and the start time of the current data packet transmission, or the scheduled start time of the next data packet transmission. The current data is the MAC frame containing the reservation information.

[0238] The Reserved_Tx_Duration field indicates the reserved transmission duration. The reserved transmission duration is the time interval between the start time of the next data transmission and the end time of the ACK returned by the receiving end. In other words, the reserved transmission duration includes the time required for the next data transmission and the time required for the receiving end to return the ACK.

[0239] Optionally, the reservation sending duration field in the reservation information can be replaced with a reservation stop field, which is used to indicate the end time of the ACK returned by the receiving end of the data receiving end.

[0240] Optionally, the appointment information may also include the following fields:

[0241] Service Priority Field (Service_Class): Indicates the priority of the service corresponding to the data sent within the scheduled time period.

[0242] The Enable field indicates whether the appointment information is valid.

[0243] Taking a reservation information field that occupies 4 bytes as an example, the possible field format and usage of reservation information can be found in Table 1 below:

[0244] Table 1. Data format and usage of an example of appointment information.

[0245]

[0246] For example, as shown in Table 1 above, the reservation information occupies 4 bytes, totaling 32 bits. Bits 0-15 can be the reservation sending time field, with a value range of 0-65535. Bits 16-27 can be the reservation sending duration field, with a value range of 0-4095. Bits 28-31 can be the service priority field, with a value range of 0-7. Bit 31 can be the enable field, with a value of 0 or 1. When the enable field is set to 1, the reservation information is valid, and the values ​​of the reservation sending time, reservation sending duration, and service priority fields are the values ​​corresponding to the actual reservation information (within their respective value ranges). When the enable field is set to 0, the reservation information is invalid, and the reservation sending time, reservation sending duration, and service priority fields all have a default value of 0 (indicating that the information in the corresponding fields is invalid).

[0247] It should be understood that the format of the reservation information shown in Table 1 above is only an example and does not impose any restrictions on the data format of reservation information. Reservation information can also use other data formats. In practical applications, the number of bits and their positions in the fields of the reservation information can be flexibly set. Of course, some fields can also be added, removed, or adjusted in the reservation information to meet the needs of actual application scenarios.

[0248] In some embodiments of this application, the first node can choose whether to use a scheduled sending mechanism when sending data. If the first node decides to use the scheduled sending mechanism, it can carry the corresponding scheduled information in the data packet being sent. For example, the first node can use... Figure 12 The data frame is sent in the format shown, and the scheduled time for the next data transmission is indicated by a field in the reservation information field within the data frame. If the first node determines that it does not use the reservation transmission mechanism, it can omit the corresponding reservation information from the currently transmitted data packet, or set the reservation information field in the currently transmitted data packet to invalid. For example, the first node can send data in a traditional format data frame, or the first node can send data in a different format. Figure 12 Data is sent using the format shown, but the next data transmission time must be indicated by the enable field included in the reservation information of the data frame.

[0249] The first node can determine whether to use the scheduled sending mechanism based on at least one of the following methods 1 to 3.

[0250] Method 1: Determine whether to adopt an appointment mechanism based on the priority of the business.

[0251] In this approach, if the first node determines that the priority of a service is higher than or equal to the set level, it can use a scheduled sending mechanism to send the data for that service. If it determines that the priority of a service is lower than the set level, it can choose not to use the scheduled sending mechanism to send the data for that service.

[0252] The priorities of different services can be pre-set or pre-agreed between different nodes.

[0253] Method 2: Determine whether to adopt an appointment mechanism based on the time delay requirements of the business.

[0254] In this method, if the first node determines that the latency required for the service is lower than or equal to the set latency threshold, it can use the scheduled sending mechanism to send the data for the service. If it determines that the latency required for the service is higher than the set latency threshold, it can choose not to use the scheduled sending mechanism to send the data for the service.

[0255] Method 3: Determine whether to use a reservation mechanism based on the channel status.

[0256] In this approach, after selecting the channel, if the first node determines that the current channel is busy and it is difficult to compete for the channel using the traditional CSMA / CA mechanism, it can choose to use a scheduled transmission mechanism. Specifically, the first node can use the scheduled transmission mechanism to execute the data transmission process when it detects that the channel duty cycle is higher than or equal to a set duty cycle threshold; if it detects that the channel duty cycle is lower than the set duty cycle threshold, it will not use the scheduled transmission mechanism to execute the data transmission process.

[0257] For example, when the first node determines that the current channel duty cycle has reached 50%, it means that the first node has only a 50% chance of competing for the channel when sending data. In this case, the first node can choose to use a reservation sending mechanism to send data.

[0258] When determining whether to use the reservation mechanism by combining multiple methods from Method 1 to Method 3, the first node determines to use the reservation sending mechanism if all the conditions of the multiple methods are met; otherwise, the reservation sending mechanism is not used.

[0259] For example, in smart home or smart office scenarios, screen mirroring typically requires very low latency to ensure smooth mirroring and improve user experience. Therefore, screen mirroring applications within nodes can employ a scheduled sending mechanism. For instance, when the first node is a mobile phone, a scheduled mechanism can be enabled when the phone interacts with the smart screen via a shared channel with other nodes.

[0260] Specifically, when casting a mobile phone to a smart screen, the mobile phone acts as the sending end, and the smart screen acts as the receiving end. The mobile phone can send video data to the smart screen, which then plays it, thus achieving casting. Both the mobile phone and the smart screen include casting applications in their application layers, which are used for casting-related controls. Both the mobile phone and the smart screen may also include WiFi chips, which enable WiFi communication between the two devices.

[0261] In one example, the mobile phone can use methods 1 and 2 described above to determine whether to use the scheduled delivery mechanism. (See reference...) Figure 13a On the mobile device, when the screen mirroring application determines that the current service has a high priority and high latency requirements, it can enable the WiFi chip to initiate a scheduled transmission mechanism. After the screen mirroring application sends video data to the WiFi chip, the WiFi chip can carry reservation information in each data packet (i.e., the data packet corresponding to the video data) during the video data transmission process until the video data transmission is complete. The reservation information carried in each data packet is used to reserve the transmission time of the next data packet to be sent. On the smart screen, after the WiFi chip receives the video data from the mobile device, it sends the video data to the screen mirroring application according to the normal process, and the screen mirroring application plays the video data. During this process, other nodes besides the mobile device can listen to the channel and obtain the video data sent from the mobile device to the smart screen, parse the reservation information, and then proactively back off within the reserved data transmission time of the mobile device. This allows the mobile device to successfully complete the screen mirroring data transmission within the reserved data transmission time, thereby ensuring that the execution of the mobile screen mirroring service meets the corresponding latency requirements and improving the user experience.

[0262] In another example, the mobile phone can use method 3 described above to determine whether to use the scheduled delivery mechanism. (See reference...) Figure 13bInitially, on the mobile phone, the screen mirroring application sends video data to the WiFi chip. The WiFi chip can compete for a channel based on the traditional CSMA / CA mechanism and then send the video data to the smart screen. On the smart screen, after receiving the video data from the mobile phone, the WiFi chip transmits the video data to the screen mirroring application, which then plays the received video data. During this process, the WiFi chip on the mobile phone can determine the channel duty cycle by monitoring the channel status and feed it back to the screen mirroring application. If the screen mirroring application determines that the duty cycle reported by the WiFi chip is higher than a set duty cycle threshold, it can enable the WiFi chip to start a scheduled transmission mechanism. Then, after the screen mirroring application sends the video data to the WiFi chip, the WiFi chip can carry reservation information in each data packet (i.e., the data packet corresponding to the video data) during the video data transmission process until the video data transmission is complete. The reservation information carried in each data packet is used to reserve the transmission time of the next data packet to be sent. On the smart screen, after receiving the video data from the mobile phone, the WiFi chip sends the video data to the screen mirroring application according to the normal process, and the screen mirroring application plays the video data.

[0263] In the above scheme, the first node can choose to use a data transmission method based on a reservation transmission mechanism or a traditional data transmission method according to business needs and channel status, which facilitates switching between different data transmission methods according to the actual scenario and further improves the flexibility of the data transmission process.

[0264] The solutions provided in the embodiments of this application will be described below with reference to specific examples.

[0265] Example 1

[0266] Based on the above embodiments, this example illustrates the data transmission method in scenario 1 above, using three nodes, STA1, STA2, and STA3, communicating through the same channel, such as the first channel. The first node is STA1.

[0267] Reference Figure 14 When the service priority of STA1 is higher than that of STA2 and STA3, and there is a conflict in the scheduled data transmission time between STA1 and STA2 and STA3, the data transmission process of STA1, STA2, and STA3 includes:

[0268] S1401: After STA1 wins the first channel, it sends a data packet carrying reservation information to STA3.

[0269] In the initial state, STA1, STA2, and STA3 compete for the channel based on the CSMA / CA mechanism. Assuming that STA1 wins the first channel, STA1 sends data packets through the first channel and places the reservation information (including the reservation time, reservation duration, and service priority information) in the MAC frame header of the data packet.

[0270] S1402: STA2 has detected STA1's reservation information.

[0271] S1403: STA3 received the reservation information from STA1.

[0272] In the above steps, after STA1 sends a data packet carrying reservation information to STA3, STA2 can listen to the data packet sent by STA1 in the first channel by performing channel monitoring, and then parse out the reservation information of STA1 carried in the data packet. After receiving the data packet from STA1, STA3 can also parse out the reservation information of STA1 carried in the data packet.

[0273] After STA2 detects the reservation information from STA1, STA2 continues to execute the following steps S1404 to S1406.

[0274] S1404: STA2 determines whether the service priority corresponding to STA1 is higher than the service priority corresponding to the data sent by this end; if so, proceed to step S1405.

[0275] STA2 can determine the business priority of STA1 based on STA1's reservation information.

[0276] When STA2 determines that the service priority corresponding to STA1 is equal to or lower than the service priority corresponding to the data sent by this end, it falls under the scenario corresponding to situation 2 above. The processing method of STA2 can be referred to the processing method of STA2 in Example 2 below, which will not be detailed here.

[0277] S1405: STA2 backs off during the data transmission time scheduled by STA1 by adding a pre-set backoff timer.

[0278] In this step, STA2 can add a scheduled backoff timer and set the initial countdown value of the scheduled backoff counter to the sum of the scheduled transmission time and the scheduled transmission duration corresponding to STA1, then start the countdown. The scheduled transmission duration includes the time required for STA3 to send an ACK to STA1. During the countdown of the scheduled backoff timer, STA2 stops using the first channel for data transmission, thus making the first channel available to STA1.

[0279] S1406: After the data transmission process of STA1 is completed, STA2 continues to execute the data transmission process.

[0280] In this step, after the countdown of the set reservation backoff timer ends, STA2 deletes the reservation backoff timer and can continue to execute its own data transmission process, such as channel contention, data transmission, and reservation.

[0281] After STA3 detects the reservation information from STA1, STA3 continues to execute the following steps S1407 to S1406.

[0282] S1407: STA3 determines whether the service priority corresponding to STA1 is higher than the service priority corresponding to the data sent by this end; if so, proceed to step S1408.

[0283] STA3 can determine the business priority of STA1 based on STA1's reservation information.

[0284] When STA3 determines that the service priority corresponding to STA1 is equal to or lower than the service priority corresponding to the data sent by this end, it falls under the scenario corresponding to situation 2 above. The processing method of STA3 can refer to the processing method of STA2 in Example 2 below, which will not be detailed here.

[0285] S1408: STA3 sends an ACK to STA1.

[0286] The reservation transmission duration in STA1's reservation information includes the time required for STA3 to send an ACK. Therefore, STA3 can directly send an ACK to STA1 without channel contention or reservation of transmission time.

[0287] Optionally, STA3 can carry STA1's reservation information in the ACK.

[0288] S1409: STA3 backs off during the data transmission time scheduled by STA1 by adding a pre-set backoff timer.

[0289] In this step, STA3 can add a scheduled backoff timer and set its initial countdown value to the sum of the scheduled transmission time and duration for STA1. Then, the scheduled backoff timer starts counting down. During the countdown, STA3 stops using the first channel for data transmission, thus making the first channel available to STA1.

[0290] S1410: After the data transmission process of STA1 is completed, STA3 continues to execute the data transmission process.

[0291] In this step, after the countdown of the set reservation backoff timer ends, STA3 deletes the reservation backoff timer and can continue to execute its own data transmission process, such as channel contention, data transmission, and reservation.

[0292] After STA3 sends an ACK to STA1, STA1 continues to execute the following steps S1411 to S1413.

[0293] S1411: STA1 adds the setting of a scheduled timer and uses the scheduled timer for timing.

[0294] In this step, after receiving the ACK from STA3, STA1 adds a reservation timer and sets the reservation timer's timer value to the reservation sending time corresponding to STA1, and then starts the reservation timer to begin timing.

[0295] S1412: During the reservation timer period, STA1 determines whether there is a reservation information with a higher service priority than STA1 by listening to the channel or receiving data from other nodes; if not, proceed to step S1414.

[0296] When STA1 determines that there is a reservation information with a higher priority than the business corresponding to STA1, the processing method of STA1 can be referred to the processing method of STA1 in Example 2 below, which will not be described in detail here.

[0297] S1413: STA1 sends a data packet through the first channel after the scheduled timer expires.

[0298] The time taken for STA to send data packets is less than the scheduled sending time.

[0299] It should be noted that the step numbers in this example are merely an illustration of the execution flow and do not constitute a restriction on the order in which the steps are executed. There is no strict execution order between steps that do not have temporal dependencies. For example, step S1408 can be executed later than step S1409, earlier than step S1409, or simultaneously with step S1409.

[0300] In this example, STA1 has a higher service priority than STA2 and STA3, which share the channel with it. Therefore, STA1 can send data packets first, thereby ensuring the execution efficiency of high-priority services and improving the overall utilization of the first channel.

[0301] Example 2

[0302] This example uses STA1 and STA2 from Example 1 above to illustrate the data transmission method in scenario 2. The first node is STA1.

[0303] Reference Figure 15 When the service priority of STA1 is lower than that of STA2, and there is a conflict in the data transmission times scheduled by STA1 and STA2, the data transmission process between STA1 and STA2 includes:

[0304] S1501: After STA1 wins the first channel, it sends a data packet carrying reservation information to other nodes.

[0305] S1502: STA2 has detected STA1's reservation information.

[0306] S1503: STA2 determines whether the service priority corresponding to STA1 is higher than the service priority corresponding to the data sent by this end; if not, proceed to step S1504.

[0307] In the case where STA2 determines that the priority of the service corresponding to STA1 is higher than the priority of the service corresponding to the data sent by this end, it falls under the scenario corresponding to situation 1 above. The processing method of STA2 can refer to the processing method of STA2 in Example 1 above, and will not be repeated here.

[0308] S1504: STA2 determines whether the service priority corresponding to STA1 is equal to the service priority corresponding to the data sent by this end; if not, proceed to step S1505.

[0309] In the case where STA2 determines that the service priority corresponding to STA1 is equal to the service priority corresponding to the data sent by this end, it belongs to the scenario corresponding to situation 3 above. The processing method of STA2 can be referred to the processing method of STA2 in Example 3 below, which will not be detailed here.

[0310] S1505: After STA2 wins the first channel, it sends a data packet carrying reservation information through the first channel.

[0311] S1506: STA1 has detected STA2's reservation information.

[0312] In steps S1505-1506, if STA2 determines that the data it sends has a higher priority, then STA2 can compete for the channel based on the CSMA / CA mechanism, and send a data packet carrying reservation information after winning the first channel.

[0313] Specifically, when the target node of the data packet sent by STA2 is STA1, STA1 can directly obtain STA2's reservation information from the received data packet. When the target node of the data packet sent by STA2 is not STA1, STA1 can obtain the data packet by listening to the channel, and thus obtain STA2's reservation information (such as...). Figure 15 (as shown in the image).

[0314] As an alternative implementation, STA2 can also send the reservation information directly to STA1 so that STA1 can change the data transmission time of its reservation.

[0315] S1507: STA2 adds the ability to set a scheduled timer and use the scheduled timer for timing.

[0316] S1508: During the reservation timer period, STA2 determines whether there is a reservation information with a higher service priority than STA2 by listening to the channel or receiving data from other nodes; if not, proceed to step S1509.

[0317] When STA2 determines that there is reservation information with a higher priority than the business priority corresponding to STA2, the processing method of STA2 can refer to the processing method of STA1 in this example, which will not be described in detail here.

[0318] S1509: STA2 sends data packets through the first channel after the scheduled timer expires.

[0319] After STA1 detects the reservation information from STA2, STA1 continues to execute the following steps S1510 to S1511.

[0320] S1510: STA1 determines that the service priority corresponding to STA2 is higher than the service priority corresponding to STA1.

[0321] S1511: STA1 deletes the sent reservation information or the set reservation timer, and adds a reservation backoff timer to back off during the data transmission time of the reservation scheduled by STA2.

[0322] In this step, STA1 can add a scheduled backoff timer and set its initial countdown value to the sum of the scheduled transmission time and duration for STA2. Then, the scheduled backoff timer starts counting down. During the countdown, STA1 stops using the first channel for data transmission, thus making the first channel available to STA2.

[0323] After the reservation backoff counter expires, STA1 can re-compete for the first channel based on the CSMA / CA mechanism, and send data carrying relevant reservation information after winning the first channel.

[0324] It should be noted that the execution of some of the steps above can refer to the relevant description in Example 1 above, and the repeated parts will not be repeated.

[0325] In this example, although STA1 reserved the data transmission time first, STA1's service priority is lower than that of STA2, which shares the channel with it. Therefore, STA1's reservation is invalid, and the first channel is given to STA2. STA can then reserve the required data transmission time and send data packets first, thereby ensuring the execution efficiency of high-priority services and improving the overall utilization of the first channel.

[0326] Example 3

[0327] This example uses STA1 and STA2 from Example 1 above to illustrate the data transmission method in scenario 3. The first node is STA1.

[0328] Reference Figure 16 When the service priority of STA1 is equal to that of STA2, and there is a conflict in the data transmission times scheduled by STA1 and STA2, the data transmission process between STA1 and STA2 includes:

[0329] S1601: After STA1 wins the first channel, it sends a data packet carrying reservation information to other nodes.

[0330] S1602: STA2 has detected STA1's reservation information.

[0331] S1603: STA2 determines whether the service priority corresponding to STA1 is higher than the service priority corresponding to the data sent by this end; if not, proceed to step S1604.

[0332] In the case where STA2 determines that the priority of the service corresponding to STA1 is higher than the priority of the service corresponding to the data sent by this end, it falls under the scenario corresponding to situation 1 above. The processing method of STA2 can refer to the processing method of STA2 in Example 1 above, and will not be repeated here.

[0333] S1604: STA2 determines whether the service priority corresponding to STA1 is equal to the service priority corresponding to the data sent by this end; if so, proceed to step S1605.

[0334] In the case where STA2 determines that the priority of the service corresponding to STA1 is lower than the priority of the service corresponding to the data sent by this end, it falls under the scenario corresponding to situation 2 above. The processing method of STA2 can refer to the processing method of STA2 in Example 2 above, and will not be repeated here.

[0335] S1605: After STA2 wins the first channel, it sends a data packet carrying reservation information through the first channel.

[0336] S1606: STA1 has detected STA2's reservation information.

[0337] The execution of steps S1605 to S1606 above can be referred to the execution method of steps S1505 to S1506 in Example 2 above, and will not be repeated here.

[0338] S1607: STA2 backs off within the data transmission time scheduled by STA1 by adding a pre-set backoff timer. STA2 also adds a pre-set timer and starts timing after the pre-set backoff timer expires.

[0339] S1608: During the reservation timer period, STA2 determines whether there is a reservation information with a higher service priority than STA2 by listening to the channel or receiving data from other nodes; if not, proceed to step S1609.

[0340] When STA2 determines that there is reservation information with a higher priority than the business priority corresponding to STA2, the processing method of STA2 can refer to the processing method of STA1 in this example, which will not be described in detail here.

[0341] S1609: STA2 sends data packets through the first channel after the scheduled timer expires.

[0342] After STA1 detects the reservation information from STA2, STA1 continues to execute the following steps S1610 to S1611.

[0343] S1610: STA1 determines that the service priority corresponding to STA2 is equal to the service priority corresponding to STA1.

[0344] S1611: STA1 adds the ability to set a scheduled timer and use the scheduled timer for timing.

[0345] S1612: During the reservation timer period, STA1 determines whether there is a reservation information with a higher service priority than STA1 by listening to the channel or receiving data from other nodes; if not, proceed to step S1613.

[0346] When STA1 determines that there is a reservation information with a higher priority than the business priority corresponding to STA1, the processing method of STA1 can refer to the processing method of STA1 in Example 2 above, which will not be described in detail here.

[0347] S1613: After the reservation timer expires, STA1 sends a data packet through the first channel. Also, STA1 adds a reservation backoff timer to back off during the data transmission time reserved by STA2.

[0348] It should be noted that the execution of some steps in the above steps can refer to the relevant descriptions in Example 1 or Example 2 above, and the repeated parts will not be repeated.

[0349] In this example, STA2 and STA1 have the same service priority, but STA1 reserved its data transmission time first. Therefore, STA2 can temporarily relinquish the first channel to STA1. After STA1 finishes transmitting data, STA2 then uses the first channel to transmit data. While STA2 is transmitting data, STA1 pauses its use of the first channel, relinquishing it to STA2. Thus, STA1 and STA2 can transmit data on the first channel sequentially based on their reservation order, avoiding conflicts between them and maximizing the efficiency of their service execution, thereby improving the overall utilization of the first channel.

[0350] Based on the above embodiments and the same concept, this application also provides an apparatus, such as... Figure 17 As shown, the device 1700 may include:

[0351] The monitoring unit 1701 is used to monitor the status of the first channel when the first channel is selected for data transmission; and to continue monitoring the status of the first channel when the status of the first channel is busy. The sending unit 1702 is used to send a first data packet on the first channel after the monitoring unit 1701 determines that the status of the first channel has changed from busy to idle. The first data packet carries first reservation information, which is used to reserve a first sending time and a first sending duration for the first node to send a second data packet on the first channel.

[0352] In one possible design, the sending unit 1702 is further configured to: send the second data packet on the first channel when the scheduled first sending time arrives.

[0353] In one possible design, after the listening unit 1701 continues to monitor the state of the first channel, and before the sending unit 1702 sends the first data packet on the first channel, the listening unit 1701 is further configured to: detect that the state of the first channel is busy and that there is second reservation information on the first channel; wherein, the second reservation information is used to reserve a second sending time and a second sending duration for the second node to send the third data packet on the first channel; when it is determined that the first channel changes from busy to idle, determine that the time interval between the second sending time and a first target time is greater than a target value; wherein, the first target time is the time when the first channel changes from busy to idle, and the target value is a set threshold or an estimated time value required for the first node to send the first data packet on the first channel.

[0354] In one possible design, when the time interval between the second transmission time and the first target time is less than or equal to the target value, before the transmission unit 1702 transmits the first data packet on the first channel, the monitoring unit 1701 is further configured to: wait until the second target time arrives, and then monitor the status of the first channel; wherein the second target time is the time corresponding to the second transmission duration after the second transmission time has elapsed; when the status of the first channel is busy, continue to monitor the status of the first channel; and determine that the status of the first channel changes from busy to idle.

[0355] In one possible design, when the time interval between the second transmission time and the first target time is greater than the target value, the first transmission time is the time after the second target time.

[0356] In one possible design, the first reservation information includes the service priority of the first node; the second reservation information includes the service priority of the second node; and before sending the first data packet on the first channel, the sending unit 1702 is further configured to: determine that the service priority of the first node is lower than or equal to the service priority of the second node.

[0357] In one possible design, the first reservation information includes the service priority of the first node; after the sending unit 1702 sends the first data packet on the first channel, the listening unit 1701 is further configured to: listen for the presence of third reservation information on the first channel before the reserved first sending time arrives; wherein the third reservation information is used to reserve a third sending time and a third sending duration for the second node to send a fourth data packet on the first channel, and the third reservation information includes the service priority of the second node; if so, determine whether to use the first channel when the first sending time arrives based on the service priority of the first node and the service priority of the second node; otherwise, send the second data packet on the first channel when the reserved first sending time arrives.

[0358] In one possible design, the monitoring unit 1701 determines whether to use the first channel when the first transmission time arrives based on the service priority of the first node and the service priority of the second node. Specifically, it is configured to: determine whether to use the first channel when the first transmission time arrives if the service priority of the first node is higher than or equal to the service priority of the second node; and determine whether the first transmission time is after a third target time if the service priority of the first node is lower than the service priority of the second node. The third target time is the time corresponding to the third transmission duration after the third transmission time. If so, it is determined that the first channel will be used when the first transmission time arrives; otherwise, it is determined that the first channel will not be used when the first transmission time arrives.

[0359] In one possible design, after the listening unit 1701 determines that the first channel will be used when the first transmission time arrives, the sending unit 1702 is further configured to: send the second data packet on the first channel when the first transmission time arrives.

[0360] In one possible design, when the service priority of the first node is equal to the service priority of the second node, after the monitoring unit 1701 determines that the first channel will be used when the first transmission time arrives, the transmission unit 1702 is further configured to: when the first transmission time is after the third transmission time and before the third target time, stop using the first channel after the fourth target time arrives and before the fifth target time arrives; wherein the fourth target time is the time corresponding to the first transmission duration after the first transmission time starts from the first transmission time, and the fifth target time is the time corresponding to the third transmission duration after the fifth target time starts from the third target time.

[0361] In one possible design, after the listening unit 1701 determines that the first channel is not used when the first transmission time arrives, it is further configured to: listen to the status of the first channel; when the status of the first channel is busy, continue to listen to the status of the first channel; the sending unit 1702 is further configured to: after the listening unit 1701 determines that the status of the first channel changes from busy to idle, send the second data packet on the first channel.

[0362] In one possible design, after transmitting the second data packet on the first channel, the transmitting unit 1702 is further configured to: receive confirmation information fed back by the receiving end of the second data packet after receiving the second data packet.

[0363] In one possible design, before transmitting the first data packet on the first channel, the transmitting unit 1702 is further configured to perform at least one of the following: determining that the service priority of the first node is higher than or equal to a set level; determining that the latency required for the service of the first node is lower than or equal to a set latency threshold; and determining that the duty cycle of the first channel is higher than or equal to a set duty cycle threshold.

[0364] The unit division in this embodiment is illustrative and represents only one logical functional division. In actual implementation, other division methods may be used. Furthermore, the functional units in the various embodiments of this application can be integrated into a single processor, exist as separate physical units, or be integrated into a single unit. The integrated units described above can be implemented in hardware or as software functional units.

[0365] Figure 17 One or more of the various units within can be implemented using software, hardware, firmware, or a combination thereof. The software or firmware includes, but is not limited to, computer program instructions or code, and can be executed by a hardware processor. The hardware includes, but is not limited to, various integrated circuits, such as a central processing unit (CPU), a digital signal processor (DSP), a field-programmable gate array (FPGA), or an application-specific integrated circuit (ASIC).

[0366] Based on the above embodiments and the same concept, this application also provides an apparatus for implementing the data transmission method provided in this application.

[0367] In some embodiments of this application, the device 1800 may be a station or access point, or a chip or chip system within the station or access point. The device 1800 may also be an electronic device capable of executing the data transmission method provided in this application, or a structure such as a chip or integrated circuit.

[0368] For example, the device 1800 includes a transceiver 1801, a memory 1802, and at least one processor 1803. The processor 1803 and the transceiver 1801 are coupled. The coupling in this embodiment is an indirect coupling or communication connection between devices, units, or modules, and can be electrical, mechanical, or other forms, used for information exchange between devices, units, or modules.

[0369] Specifically, the transceiver 1801 can be a circuit, a bus, a communication interface, or any other module that can be used for information exchange, and can be used to receive or send data.

[0370] Optionally, the memory 1802 is coupled to the transceiver 1801 and the processor 1803 for storing program instructions.

[0371] The processor 1803 is used to call program instructions stored in the memory 1802, so that the device 1800 executes the data transmission method provided in the embodiments of this application.

[0372] The transceiver 1801 is used to receive and transmit radio frequency signals and is coupled to the receiver and transmitter of the device 1800. The transceiver 1801 communicates with communication networks and other communication devices, such as Wireless Local Area Networks (WLANs), via radio frequency signals. In specific implementations, the transceiver 1801 supports communication protocols including at least WiFi, and may also include 2G / 3G, Long Term Evolution (LTE), New Radio (NR), etc.

[0373] In a specific implementation, the memory 1802 may include high-speed random access memory and may also include non-volatile memory, such as one or more disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. The memory 1802 may store an operating system (hereinafter referred to as the system), such as embedded operating systems like Android, iOS, Windows, or Linux. The memory 1802 can be used to store implementation programs of the embodiments of this application. The memory 1802 may also store network communication programs, which can be used to communicate with one or more additional devices, one or more user devices, or one or more network devices.

[0374] The processor 1803 may be a general-purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits used to control the execution of the program of the present application.

[0375] In some embodiments of this application, the transceiver 1801, memory 1802, and processor 1803 can be interconnected via a communication line 1804. The communication line 1804 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. The communication line 1804 can be divided into an address bus, a data bus, a control bus, etc. For ease of illustration, Figure 18 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.

[0376] It needs to be explained that, Figure 18 This is merely one implementation of the device 1800 provided in this application embodiment. In actual applications, the device 1800 may include more or fewer components, which is not limited here.

[0377] Based on the above embodiments and the same concept, this application also provides an apparatus, including a transceiver, a memory, and a processor; the transceiver is used to receive signals or data from other devices outside the apparatus and transmit them to the processor, or to send signals or data from the processor to other devices outside the apparatus; the memory is used to store a program; the processor is used to execute the program stored in the memory to implement the data transmission method provided in the above embodiments of this application.

[0378] Based on the above embodiments and the same concept, this application also provides a computer-readable storage medium storing a computer program that, when run on a computer, causes the computer to execute the data transmission method provided in the above embodiments of this application.

[0379] Based on the above embodiments and the same concept, this application also provides a computer program product, which includes a computer program or instructions. When the computer program or instructions are run on a computer, the computer executes the data transmission method provided in the above embodiments of this application.

[0380] The methods provided in this application can be implemented entirely or partially through software, hardware, firmware, or any combination thereof. When implemented in software, they can be implemented entirely or partially in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this invention are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, a network device, a user equipment, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be magnetic media (e.g., floppy disk, hard disk, magnetic tape), optical media (e.g., digital video disc (DVD), or semiconductor media (e.g., SSD), etc.

[0381] Obviously, those skilled in the art can make various modifications and variations to this application without departing from the scope of this application. Therefore, if such modifications and variations fall within the scope of the claims of this application and their equivalents, this application also intends to include such modifications and variations.

Claims

1. A data transmission method, applied to a first node, characterized in that, The method comprises: monitoring a status of a first channel when the first channel is selected for transmitting data; continuing to monitor the status of the first channel when the status of the first channel is busy; transmitting a first data packet on the first channel after determining that the status of the first channel changes from busy to idle; wherein the first data packet carries first reservation information, and the first reservation information is used to reserve a first transmission time and a first transmission duration of a second data packet transmitted by the first node on the first channel.

2. The method of claim 1, wherein, The method further comprises: transmitting the second data packet on the first channel when the first transmission time arrives.

3. The method according to claim 1 or 2, characterized in that, After continuing to monitor the status of the first channel, the method further comprises, before transmitting the first data packet on the first channel: monitoring that the status of the first channel is busy and that there is second reservation information on the first channel; wherein the second reservation information is used to reserve a second transmission time and a second transmission duration of a third data packet transmitted by a second node on the first channel; determining that a time interval between the second transmission time and a first target time is greater than a target value when it is determined that the first channel changes from busy to idle; wherein the first target time is a time when it is determined that the first channel changes from busy to idle, and the target value is a set threshold value or an estimated time value required for the first node to transmit the first data packet on the first channel.

4. The method of claim 3, wherein, When the time interval between the second transmission time and the first target time is less than or equal to the target value, the method further comprises, before transmitting the first data packet on the first channel: waiting until a second target time arrives, and then monitoring the status of the first channel; wherein the second target time is a time corresponding to the second transmission duration after the second transmission time; continuing to monitor the status of the first channel when the status of the first channel is busy; determining that the status of the first channel changes from busy to idle.

5. The method of claim 4, wherein, When the time interval between the second transmission time and the first target time is greater than the target value, the first transmission time is a time after the second target time.

6. The method of claim 5, wherein, The first reservation information contains a service priority of the first node, and the second reservation information contains a service priority of the second node. Before transmitting the first data packet on the first channel, the method further comprises: determining that the service priority of the first node is lower than or equal to the service priority of the second node.

7. The method according to claim 1 or 2, characterized in that, The first reservation information contains a service priority of the first node. After transmitting the first data packet on the first channel, the method further comprises: monitoring whether there is third reservation information on the first channel before the first transmission time reserved by the first reservation information arrives; wherein the third reservation information is used to reserve a third transmission time and a third transmission duration of a fourth data packet transmitted by the second node on the first channel, and the third reservation information contains a service priority of the second node. If yes, it is determined whether the first channel is used when the first sending time arrives according to the service priority of the first node and the service priority of the second node; Otherwise, the second data packet is sent on the first channel when the first sending time arrives.

8. The method of claim 7, wherein, Determining whether the first channel is used when the first sending time arrives according to the service priority of the first node and the service priority of the second node comprises: When the service priority of the first node is higher than or equal to the service priority of the second node, it is determined that the first channel is used when the first sending time arrives; When the service priority of the first node is lower than the service priority of the second node, it is determined whether the first sending time is a time after a third target time; wherein the third target time is a time corresponding to the third sending time after the third sending time duration; If yes, it is determined that the first channel is used when the first sending time arrives; Otherwise, it is determined that the first channel is not used when the first sending time arrives.

9. The method of claim 8, wherein, After it is determined that the first channel is used when the first sending time arrives, the method further comprises: The second data packet is sent on the first channel when the first sending time arrives.

10. The method of claim 8, wherein, After it is determined that the first channel is used when the first sending time arrives, the method further comprises: When the first sending time is after the third sending time and before the third target time, the first channel is stopped from being used after a fourth target time arrives to before a fifth target time arrives; Wherein the fourth target time is a time corresponding to the first sending time after the first sending time duration, and the fifth target time is a time corresponding to the fourth target time after the third sending time duration.

11. The method of claim 8, wherein, After it is determined that the first channel is not used when the first sending time arrives, the method further comprises: Listening to the state of the first channel; When the state of the first channel is busy, the state of the first channel is continuously listened to; After it is determined that the state of the first channel changes from busy to idle, the second data packet is sent on the first channel.

12. The method of claim 2, wherein, After the second data packet is sent on the first channel, the method further comprises: Receiving acknowledgement information fed back by a receiving end of the second data packet after the second data packet is received.

13. The method of claim 1 or 2, wherein, Before the first data packet is sent on the first channel, the method further comprises performing at least one of the following: Determining that the service priority of the first node is higher than or equal to a set level; Determining that the delay required by the service of the first node is lower than or equal to a set delay threshold; Determining that the duty cycle of the first channel is higher than or equal to a set duty cycle threshold.

14. An apparatus, comprising: Comprising a transceiver, a memory and a processor; The transceiver is used to receive signals from other devices outside the device and transmit to the processor or send signals from the processor to other devices outside the device; The memory is used to store programs; The processor is configured to execute a program stored in the memory to implement the method of any one of claims 1-13.

15. A computer-readable storage medium, characterized in that, The computer readable storage medium stores a computer program, and when the computer program is run on a computer, the computer is caused to execute the method of any one of claims 1-13.

Citation Information

Patent Citations

  • Communication method and device, computer readable medium and electronic device

    CN110381601A