Data transmission method, device, computer equipment and storage medium
By using XOR encoding technology in WLAN multicast/broadcast, the data units that failed to receive are encoded and retransmitted, solving the problems of waste of resources and inefficiency in the prior art, and achieving more efficient data transmission.
Patent Information
- Application Number
- CN202080103881.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-11-06
- Publication Date
- 2025-03-18
- Estimated Expiration
- 2040-11-06
AI Technical Summary
During WLAN multicast/broadcasting, the prior art requires retransmission of all data units even if some sites have been successfully received, resulting in waste of resources and inefficiency.
By receiving the block confirmation of BA information from the site feedback, the access point XOR encodes the data unit that failed to receive, generates network-encoded data, and resends it to all sites.
Reduce the amount of data to be transmitted, improve the retransmission efficiency in multicast or broadcast scenarios, and ensure that all sites can successfully receive data.
Smart Images

Figure CN116097624B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of wireless communication technology, and in particular to a data transmission method, device, computer equipment and storage medium. Background Art
[0002] With the increasing popularity of mobile terminals and the continuous development of mobile application scenarios, the demand for multicast / broadcast communications in wireless local area networks (WLANs) is increasing.
[0003] In the related art, during the WLAN multicast / broadcast process, for data units in a data block that have failed to be received by each station (STA for short), the access point (AP) needs to re-multicast / broadcast these data units. Summary of the invention
[0004] The embodiments of the present application provide a data transmission method, apparatus, computer equipment and storage medium. The technical solution is as follows:
[0005] On the one hand, an embodiment of the present application provides a data transmission method, which is performed by an access point, and the method includes:
[0006] Sending a data block to at least two sites by multicast or broadcast, wherein the data block includes at least two data units;
[0007] Receiving block acknowledgement BA information sent by the at least two sites, where the BA information is used to indicate a reception status of the at least two data units by the corresponding sites;
[0008] According to the BA information sent by the at least two sites, XOR encoding is performed on the data units that the at least two sites fail to receive, so as to obtain network coded data of the data block;
[0009] The network coding data is sent to the at least two sites in a multicast or broadcast manner.
[0010] On the other hand, an embodiment of the present application provides a data transmission method, the method is performed by a first site, the first site is any one of at least two sites, and the method includes:
[0011] Receiving a data block sent by an access point in a multicast or broadcast manner, wherein the data block includes at least two data units;
[0012] Sending block acknowledgment BA information to the access point, where the BA information is used to indicate a reception status of the at least two data units by a corresponding station;
[0013] Receiving network coding data sent by the access point in a multicast or broadcast manner, where the network coding data is obtained by the access point performing XOR coding on data units that fail to be received by the at least two stations according to BA information sent by the at least two stations;
[0014] The network coded data is decoded to obtain a data unit that the first station fails to receive.
[0015] In another aspect, an embodiment of the present application provides a data transmission device, which is used in an access point, and includes:
[0016] A data block sending module, used for sending a data block to at least two sites in a multicast or broadcast manner, wherein the data block includes at least two data units;
[0017] an acknowledgment information receiving module, configured to receive block acknowledgment BA information sent by the at least two sites, wherein the BA information is used to indicate a reception status of the at least two data units by the corresponding site;
[0018] A coding module, configured to perform XOR coding on the data units that the at least two sites fail to receive according to the BA information sent by the at least two sites, so as to obtain network coding data of the data block;
[0019] The coded data sending module is used to send the network coded data to the at least two sites in a multicast or broadcast manner.
[0020] In another aspect, an embodiment of the present application provides a data transmission device, the device being used in a first site, the first site being any one of at least two sites, the device comprising:
[0021] A data block receiving module, used to receive a data block sent by an access point in a multicast or broadcast manner, wherein the data block includes at least two data units;
[0022] A confirmation information sending module, used to send block confirmation BA information to the access point, wherein the BA information is used to indicate the reception status of the at least two data units by the corresponding station;
[0023] a coded data receiving module, configured to receive network coded data sent by the access point in a multicast or broadcast manner, wherein the network coded data is obtained by the access point performing XOR coding on data units that failed to be received by the at least two stations according to BA information sent by the at least two stations;
[0024] A decoding module is used to decode the network coded data to obtain the data unit that the first station fails to receive.
[0025] On the other hand, an embodiment of the present application provides a computer device, the computer device is an access point, and the computer device includes a processor, a memory, and a transceiver;
[0026] The transceiver sends a data block to at least two sites by multicast or broadcast, wherein the data block includes at least two data units;
[0027] The transceiver is used to receive block confirmation BA information sent by the at least two sites, where the BA information is used to indicate the reception status of the at least two data units by the corresponding site;
[0028] The processor is configured to perform XOR encoding on the data units that the at least two sites fail to receive according to the BA information sent by the at least two sites, so as to obtain network coded data of the data block;
[0029] The transceiver is used to send the network coding data to the at least two sites in a multicast or broadcast manner.
[0030] On the other hand, an embodiment of the present application provides a computer device, the computer device is a first site, the first site is any one of at least two sites, and the computer device includes a processor, a memory, and a transceiver;
[0031] The transceiver is used to receive a data block sent by an access point in a multicast or broadcast manner, wherein the data block includes at least two data units:
[0032] The transceiver is used to send block confirmation BA information to the access point, where the BA information is used to indicate the reception status of the at least two data units by the corresponding station;
[0033] The transceiver is used to receive network coding data sent by the access point in a multicast or broadcast manner, where the network coding data is obtained by the access point performing XOR coding on data units that fail to be received by the at least two stations according to BA information sent by the at least two stations;
[0034] The processor is configured to decode the network coded data to obtain a data unit that fails to be received by the first station.
[0035] On the other hand, an embodiment of the present application further provides a computer-readable storage medium, in which a computer program is stored. The computer program is loaded and executed by a processor to implement the above-mentioned data transmission method.
[0036] On the other hand, a computer program product or a computer program is provided, the computer program product or the computer program comprising computer instructions, the computer instructions being stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device performs the above-mentioned data transmission method.
[0037] The technical solution provided in the embodiments of the present application can bring the following beneficial effects:
[0038] By obtaining the reception status of the data units at each site, the data units that need to be retransmitted are XOR-encoded, thereby reducing the amount of data that needs to be transmitted while ensuring that each site can decode the unreceived data units based on the encoded data, thereby improving the retransmission efficiency in multicast or broadcast scenarios. BRIEF DESCRIPTION OF THE DRAWINGS
[0039] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.
[0040] Figure 1 is a schematic diagram of a network architecture of a communication system provided by an embodiment of the present application;
[0041] Figure 2 is a flow chart of a data transmission method provided by an embodiment of the present application;
[0042] Figure 3 is a flow chart of a data transmission method provided by an embodiment of the present application;
[0043] Figure 4 is a schematic diagram of multicast / broadcast data transmission provided by an exemplary embodiment of the present application;
[0044] Figure 5 is a flow chart of a data transmission method provided by an embodiment of the present application;
[0045] Figure 6 yes Figure 5 A schematic diagram of a selection algorithm involved in the illustrated embodiment;
[0046] Figure 7 yes Figure 5 An execution flow chart of an access point in a data transmission process involved in the illustrated embodiment;
[0047] Figure 8 yes Figure 5The execution flow chart of the station in the data transmission process involved in the illustrated embodiment;
[0048] Fig. 9 yes Figure 5 The illustrated embodiment relates to a new frame structure of a data block;
[0049] Fig.10 yes Figure 5 A schematic diagram of the structure of a reliable multicast transmission module in an AP according to the illustrated embodiment;
[0050] Fig.11 yes Figure 5 A schematic diagram of the structure of a reliable multicast transmission module in a STA involved in the illustrated embodiment;
[0051] Fig.12 yes Figure 5 A schematic diagram of a reliable multicast transmission service involved in the illustrated embodiment;
[0052] Fig.13 yes Figure 5 A schematic diagram of a reliable multicast transmission service sending sub-process involved in the illustrated embodiment;
[0053] Fig.14 yes Figure 5 A schematic diagram of a reliable multicast transmission service receiving sub-process involved in the illustrated embodiment;
[0054] Fig.15 yes Figure 5 A schematic diagram of a network coding reliable multicast transmission service indication method involved in the illustrated embodiment;
[0055] Fig.16 is a schematic diagram of a frame header of a frame structure of a data block provided by an exemplary embodiment of the present application;
[0056] Fig.17 is a block diagram of a data transmission device provided by an embodiment of the present application;
[0057] Fig.18 is a block diagram of a data transmission device provided by an embodiment of the present application;
[0058] Fig.19 It is a schematic diagram of the structure of a computer device provided by an embodiment of the present application. DETAILED DESCRIPTION
[0059] In order to make the objectives, technical solutions and advantages of the present application clearer, the implementation methods of the present application will be further described in detail below with reference to the accompanying drawings.
[0060] The network architecture and business scenarios described in the embodiments of the present application are intended to more clearly illustrate the technical solutions of the embodiments of the present application, and do not constitute a limitation on the technical solutions provided in the embodiments of the present application. A person of ordinary skill in the art can appreciate that with the evolution of the network architecture and the emergence of new business scenarios, the technical solutions provided in the embodiments of the present application are also applicable to similar technical problems.
[0061] Please refer to Figure 1 , which shows a schematic diagram of a network architecture of a communication system provided by an embodiment of the present application. The network architecture may include: a station 10 and an access point 20.
[0062] The number of sites 10 is usually multiple, and each access point 20 can be associated with one or more sites 10. The site 10 can include various handheld devices with wireless communication functions, vehicle-mounted devices, wearable devices, computing devices, or other processing devices connected to a wireless modem, as well as various forms of user equipment (UE), mobile stations (MS), terminal devices, etc. For the convenience of description, in the embodiments of the present application, the above-mentioned devices are collectively referred to as sites STA.
[0063] The access point 20 is a device deployed in the access network to provide wireless communication functions for the station 10. The access point 20 may include various forms of wireless routers, wireless switches or wireless relay devices, etc.
[0064] Optional, Figure 1 What is not shown is that the above network architecture also includes other network devices, such as: gateway devices and the like.
[0065] The station 10 and the access point 20 may be associated and communicated with each other through wireless local area network technology, for example, based on the IEEE 802.11 protocol.
[0066] In the WLAN downlink multicast / broadcast scenario, the AP sends data to the STAs that need services through multicast / broadcast. Due to various factors, different STAs may receive data differently. For example, for the same data block, different users (STAs) may successfully receive different data units. At this time, different STAs will request retransmission of different data, which may lead to redundant retransmission of data and occupy more network resources.
[0067] For example, suppose there is a data block containing data units 1 to 5, and the data block is multicasted by the AP to three STAs, wherein STA1 fails to receive data unit 1 and data unit 2, STA2 fails to receive data unit 3 and data unit 4, and STA3 fails to receive data unit 5. According to the retransmission scheme in the related art, the AP needs to multicast and retransmit all data units 1 to 5.
[0068] Please refer to Figure 2 , which shows a flow chart of a data transmission method provided by an embodiment of the present application, the data transmission method can be executed by an access point AP, wherein the access point can be Figure 1 The access point 20 in the network architecture shown. The method may include the following steps:
[0069] Step 201: Send a data block to at least two sites in a multicast or broadcast manner, wherein the data block includes at least two data units.
[0070] Step 202: Receive block acknowledgement BA information sent by the at least two sites, where the BA information is used to indicate the reception status of the at least two data units by the corresponding sites.
[0071] Step 203: According to the BA information sent by the at least two sites, XOR encoding is performed on the data units that the at least two sites fail to receive, to obtain network coded data of the data block.
[0072] Step 204: Send the network coding data to the at least two sites by multicasting or broadcasting.
[0073] To summarize, the scheme shown in the embodiment of the present application obtains the reception status of the data units at each site and XOR encodes the data units that need to be retransmitted, thereby reducing the amount of data that needs to be transmitted while ensuring that each site can obtain the data units that have not been successfully received based on the encoded data decoding, thereby improving the retransmission efficiency in multicast or broadcast scenarios.
[0074] Please refer to Figure 3 , which shows a flowchart of a data transmission method provided by an embodiment of the present application, the data transmission method can be executed by a first site, the first site is any one of at least two sites, for example, the first site is Figure 1 The site 10 in the network architecture shown. The method may include the following steps:
[0075] Step 301: Receive a data block sent by an access point in a multicast or broadcast manner, wherein the data block includes at least two data units.
[0076] Step 302: Send block acknowledgement BA information to the access point, where the BA information is used to indicate the reception status of at least two data units by the corresponding station.
[0077] Step 303: receiving network coding data sent by the access point in a multicast or broadcast manner, wherein the network coding data is obtained by the access point performing XOR coding on data units that failed to be received by the at least two sites according to BA information sent by the at least two sites.
[0078] Step 304: decode the network coded data to obtain the data unit that the first station fails to receive.
[0079] In a possible implementation, the frame header corresponding to the network coded data includes a data type identifier and XOR operation indication information;
[0080] The data type identifier is used to indicate whether the corresponding data is the network coding data;
[0081] The XOR operation indication information is used to indicate the corresponding relationship between data units subjected to XOR operations.
[0082] In a possible implementation, the data type identifier and the location where the XOR operation indication information is located are located after the receiving address field and the sending address field.
[0083] In summary, the scheme shown in the embodiment of the present application feeds back the reception status of each data unit in the data block to the access point so that the access point performs XOR encoding on the data unit that needs to be retransmitted by each station, thereby ensuring that each station can obtain the data unit that has not been successfully received according to the encoded data decoding, while reducing the amount of data that needs to be transmitted, thereby improving the retransmission efficiency in multicast or broadcast scenarios.
[0084] Please refer to Figure 4 , which shows a schematic diagram of multicast / broadcast data transmission provided by an exemplary embodiment of the present application. Figure 4 As shown, the scheme shown in this application can be divided into the following 4 stages:
[0085] Phase 1: AP sends data blocks in multicast / broadcast form.
[0086] Phase 2: STA receives multicast / broadcast data blocks and provides feedback on the reception status.
[0087] Phase 3: The AP performs network coding and sends network coding data.
[0088] Phase 4: STA receives network coded data and processes the data.
[0089] Among them, the above Figure 4For the implementation process of the four stages shown, please refer to the introduction in the subsequent embodiments.
[0090] Please refer to Figure 5 , which shows a flowchart of a data transmission method provided by an embodiment of the present application, the method can be performed by an AP and at least two stations; wherein the above-mentioned AP can be Figure 1 In the network architecture shown, the access point 20, the above-mentioned station can be Figure 1 The access point 20 in the network architecture shown. Figure 5 As shown, the method may include the following steps.
[0091] Step 501: an access point sends a data block to at least two stations in a multicast or broadcast manner. Correspondingly, each of the at least two stations receives the data block sent by the access point in a multicast or broadcast manner.
[0092] The data block includes at least two data units.
[0093] The data transmission method in the embodiment of the present application can be considered as a reliable data transmission method, which is used to ensure that data is transmitted reliably. In a possible implementation, the steps of sending by the access point in a multicast or broadcast manner can be as follows.
[0094] S1: AP obtains the data that needs to be reliably sent and the target (which can be presented in the form of group address) from the upper layer protocol through the Media Access Control (MAC) layer data service. Assume that AP knows the basic group information of the STA of the target group address under this AP, maintains a multicast table containing all multicast addresses and their subordinate STA address information (in the reliable multicast scenario, AP needs to ensure that each STA has completed the reception of all data, so this information can be known by AP), and opens a sending buffer for each retransmission process. Using the response process of ADDBA (Add BA, Establish BA) service, negotiate with STA about the information related to the Block ACK (BA) mechanism, such as the type of block ACK mechanism used (generally using the compressed block ACK mechanism with retransmission multicast), the size of the buffer (TX / RX BufferSize), the Block ACK lifetime (i.e., Block ACK Timeout), and the starting sequence number (SN) of the data. Among them, for the buffer size, the corresponding buffer has different meanings according to the different frame bodies in the ADDBA service process. For example, if a Request frame is sent by an AP, the send buffer size is declared; if a Response frame is sent by a STA, the receive buffer size is declared.
[0095] In order for the reliable transmission mechanism provided by the present application to operate normally, when the ADDBA service negotiates the BlockAck protocol, a certain number of sequence numbers can be reserved according to the network situation without requiring the STAs in the multicast group to provide feedback on the reception situation. The reserved SN is used to identify the original data frame or network coding frame of the reliable multicast / broadcast transmission designed by the present application. The above-mentioned reservation of SN can be implemented through ADDBA interaction and DELBA (Delte BA, Demolition BA) interaction, for example: before data is sent, a Block Ack protocol is established through ADDBA, in which the start sequence number (Start Sequence Number, SSN) of the data frame sent this time is declared, and then a block confirmation request (BAR request) BAR is sent after the data is sent, or a multicast (Group Cast with Retries, GCR) MU BAR request is sent to collect feedback on the reception situation of STAs, wherein the size of the data, that is, the number of MAC layer protocol data units (MAC Protocol Data Unit, MPDU)) is determined by the AP, and after receiving and confirming the BA fed back by the STAs, the Block Ack protocol is released through DELBA. After the previous DELBA interaction, the data frames sent before the next ADDBA interaction do not need to be confirmed by the Block Ack protocol, and the SNs of these data frames are the above-mentioned reserved SNs.
[0096] In order to ensure that subsequent encoding can be merged, it is necessary to prohibit the frame to be confirmed from being segmented. This is a requirement of the bitmap after the length is extended, because the segmentation field is used to indicate the size of the bitmap.
[0097] In step S1, the data that needs to be ensured to be reliably sent may refer to the data transmitted by the reliable multicast transmission mechanism provided by the present application in the upper layer protocol using the MAC layer data service, and its sending address parameter is the address of the sending AP, the receiving address parameter is the multicast group (hidden) address (GCR concealment address), the routing information parameter is empty, the data parameter is the MAC layer service data unit (MAC Service Data Unit, MSDU) that needs to be processed by the MAC sublayer, the service category parameter is the priority parameter is Block Ack. In a possible implementation scheme, the data that needs to be ensured to be reliably sent is divided into MPDUs of approximately equal length waiting to be sent.
[0098] In step S1, the basic information of STAs under the group address includes the number of STAs, the multicast group address, the multicast group hidden address, the personal address of the multicast group users and other information. When the multicast service is established, the STA can declare this information to the AP so that the AP can know it.
[0099] The above requirements can be achieved through primitives between non-peer entity layers and frame interactions between peer entities when the reliable multicast transmission service provided by the present application is established, for example, through capability elements (Capability Element) interacted when the multicast service is established.
[0100] S2: AP performs data transmission in the form of multicast / broadcast according to the group address, in the unit of "data block" / "block" (a unit of one transmission, such as the unit of downlink transmission of a data frame), and the data transmission rate can be achieved at the fastest speed under the premise of ensuring that the buffers of both the sender and the receiver do not overflow. At the same time, the sent data is stored in the sending buffer.
[0101] The difference from the BA mechanism in the related art is that the data in the sending buffer is allowed to be released if and only if the received BA feedback shows that all STAs have successfully decoded and received the data block.
[0102] The AP sends a BAR (or uses a GCR-MU-BAR trigger frame with retransmission multicast multi-user block confirmation request) within a period of time after the data block transmission is completed to request the STA to perform BlockACK feedback on the reception status. The Starting Sequence Number subfield of the BARinformation field in the BAR request is the starting sequence number (SN) of the data block, which informs the STA to confirm the data in the data block.
[0103] In a possible implementation, the number of MPDUs in the above "block" is determined by the AP, and can be modified by some method, and the number of MPDUs in each "block" of this transmission is notified to all multicast group STAs by some method. For example: the amount of data transmitted after each Block Ack protocol is established (the number of MPDUs) is the number of MPDUs in the above "block".
[0104] In a possible implementation, the data transmission in the above step S2 refers to: the exchange of MPDUs between peer MAC entities, which can be considered that the sending MAC layer sends MPDU or aggregated MAC layer protocol data unit (Aggregation MPDU, A-MPDU) in the logical channel, and the receiving MAC recovers and receives new MPDU' or A-MPDU' in the logical channel.
[0105] In a possible implementation, the data block in step S2 can be considered as a special A-MPDU, which aggregates MPDUs of equal length. The above MPDUs are newly defined MAC layer protocol data units, which can be called reliable multicast transmission data frames.
[0106] In an exemplary solution, the reliable multicast transmission data frame is characterized in that each frame is approximately equal in length, carries a specific payload (from other layers above the MAC layer) data (non-control or management frame), has an identification bit that is different from the identification of ordinary data frames, and has a flag bit for distinguishing original data from network coded data. The above identification bit can be identified using the source address field (SA) of the frame format.
[0107] For example, in a WLAN downlink multicast scenario, To DS=0, From DS=1 (from the distribution system, DS) in the frame control field, indicating that the downlink multicast scenario is sent from the AP to the STAs in the multicast group. Address 1 is the receiving address (RA), which is the multicast group address (the address with the unicast / multicast identification bit as "1"), and address 2 is the sending address (TA), which is the AP address.
[0108] In this scenario, the remaining address fields (address 3, source address SA) are not necessary. Therefore, unlike traditional multicast services, address 3 is divided into two-byte units. The first two bytes are used as the network coding data frame identification bit (one bit can be used for identification, and there are 15 bits reserved), and the following two bytes are used as the sequence control number of the data frame used for network coding by the current network coding data frame. For example, the upper 15 bytes of the first two bytes are reserved and have no actual meaning. The lowest position of the first two bytes is 0, which means that the reliable multicast transmission data frame is the original data frame. At this time, the latter two segments are reserved and have no special meaning; if it is 1, it means that the reliable multicast transmission data frame is a network coding data frame, and the latter two segments (2 bytes each) are used to indicate the sequence control number of the data frame used for network coding by the current network coding data frame, that is, the segment number (FN) and the sequence number (SN). In other words, the sequence control number composed of segment information + sequence number is used as an indication of the coded data.
[0109] In a possible implementation, the address consists of 6 bytes, and one bit (such as the last bit) in the first 2 bytes is used to indicate whether the frame is an original data frame or a network coded data frame. The middle and last 2 bytes respectively record sequence control information of 2 bytes in length, and the sequence control information is a 4-bit block number (FN) and a 12-bit sequence number (SN). For example, the third to fourth bytes of address 3, totaling 16 bits, represent the unsigned integer value of the sequence number of the first data frame used for network coding, and the fifth to sixth bytes of address 3, totaling 16 bits, represent the unsigned integer value of the sequence number of the second data frame used for network coding. The above-mentioned first data frame and second data frame used for network coding refer to the two XOR units involved in the XOR network coding operation. It should be noted that the two are equivalent in ranking order, and the first and second are only distinguished by name. The service primitive has indicated that both MAC layers, namely the Station Management Entity (SME) and the MAC sublayer Management Entity (MLME), will send and receive reliable multicast. Therefore, when STAs receive the address 1 (Receive Address, RA) of the transmitted data as the group address, they can identify the data as downlink multicast data, and know that its source address field and destination address field are used as indication fields.
[0110] Since the Address 3 field in the traditional multicast data frame is the source address (Source Address, SA), it should be equal to the AP address (Transmit Address, TA, i.e., BSSID), and both are unicast addresses, the Address 3 field modified by the above mechanism must be different from the Address 3 field of the traditional multicast data frame. At this time, the added judgment condition can be used to judge whether the data frame is a newly defined reliable multicast transmission data frame.
[0111] Since the rewriting of the address field is involved, it is required that the AP router in the downlink reliable multicast scenario re-encapsulate the data frames recovered by other protocols into the above-mentioned reliable multicast transmission data frames. For example, the multicast data frames transmitted from the wired network need to be sent to the subordinate STAs in a wireless form through the AP. At this time, the MAC layer frame Header field needs to be removed and re-encapsulated according to the above rules to meet the content requirements of the reliable multicast retransmission data frame.
[0112] In a possible implementation, the data transmission rate selection in the above step S2 can simultaneously ensure that both the sender's buffer and the receiver's buffer do not overflow and achieve the highest rate.
[0113] Step 502: At least two stations send block acknowledgement (BA) information to the access point. Correspondingly, the access point receives the BA information sent by the at least two stations.
[0114] The BA information is used to indicate the reception status of the at least two data units by the corresponding station.
[0115] In an embodiment of the present application, the steps of a site receiving multicast / broadcast data and performing BA feedback may be as follows.
[0116] Step S1: STA receives data, opens a buffer area arranged by sequence number (SN) for the block, stores the received data in the buffer area, and uses the FCS in the MPDU to perform error detection on the received data frame. According to the Block ACK protocol in 802.11, it maintains its own receiving status record (Scoreboard context control).
[0117] In a possible implementation, the data receiving process in the above step S1 includes: after the STA receives the MAC frame uploaded and deaggregated by the PHY layer, it checks the frame control segment and learns that it is a data frame (non-control, management frame) sent by the AP to the STA; checks address 1 (receiving address) to learn that it is a multicast frame; by comparing address 2 with address 3 (address 2 is not equal to address 3), it is learned that it is a reliable multicast transmission data frame; checks address 3 to learn that it is an original data frame or a network coded data frame in the reliable multicast transmission data frame; if the first and second bytes of address 3 are 1, check the third to sixth bytes of address three to determine the specific SN sequence number for XOR network coding.
[0118] Step S2: Based on the ADDBA negotiation status and the received BAR, Block ACK feedback is performed for the blocks that have not been completely decoded and received, and the receiving status is notified to the sender (AP) in the form of a BA frame.
[0119] In a possible implementation, the BA information is accompanied with the buffer area information for the AP to decide the transmission strategy to adopt.
[0120] The acquisition of the buffer information can be as follows: at the beginning, the sender has been informed of the size of the buffer at the receiving end in ADDBA, and the sender knows the amount of data transmitted each time, and the storage is released only after the data block is decoded and received successfully, so the overall required buffer size can be known based on the number of reliable multicast retransmission processes maintained and the amount of data in each process. The conditions and factors that determine the sending rate have been known by the sender.
[0121] In the above step S2, in the same transmission process, the difference from the BA mechanism in the related art is that a new BA mechanism is agreed upon. The new BA mechanism can be as follows:
[0122] Since multiple transmission / confirmation processes are allowed to exist, unlike the BA mechanism in the related technology which releases the buffer data earlier than the initial sequence number after receiving a new BAR, the data in the receiving buffer in the embodiment of the present application is allowed to be released only after the STA successfully decodes the data block and feeds back successful reception.
[0123] Step S3: Upload cached data according to the specified mechanism. The specified mechanism in the above step S3 can be divided into two cases:
[0124] 1) Instant upload: When data is successfully decoded and received, it is directly uploaded to the upper layer protocol;
[0125] 2) Whole block upload: The whole block of data is uploaded to the upper layer protocol only after all the data in the block is successfully decoded and received.
[0126] The above-mentioned upper layer protocol refers to other processing flows located after the MAC layer processing flow involved in this step.
[0127] Step 503: The access point determines at least one data unit pair from the at least two data units based on the BA information sent by the at least two stations, where the data unit pair includes two of the data units.
[0128] In a possible implementation manner, the determining at least one data unit pair from the at least two data units based on the BA information sent by the at least two stations includes:
[0129] Based on the BA information sent by the at least two sites, a BA bitmap matrix is constructed, wherein a value in the p-th row and the q-th column in the BA bitmap matrix is used to indicate reception information of the p-th site for the q-th data unit, where the reception information includes reception success or reception failure;
[0130] Obtain the row weights of each row in the BA bitmap matrix and the column weights of each column in the BA bitmap matrix; the row weights are positively correlated with the values in the corresponding rows; the column weights are positively correlated with the values in the corresponding columns;
[0131] Based on the row weights of the rows in the BA bitmap matrix and the column weights of the columns in the BA bitmap matrix, the at least one data unit pair is sequentially determined from the at least two data units.
[0132] In a possible implementation, when the value of the p-th row and the q-th column in the BA bitmap matrix is 0, it indicates that the p-th station fails to receive the q-th data unit;
[0133] When the value of the p-th row and the q-th column in the BA bitmap matrix is 1, it indicates that the p-th station has successfully received the q-th data unit.
[0134] In a possible implementation, when the value of the p-th row and the q-th column in the BA bitmap matrix is 0, it indicates that the p-th station fails to receive the q-th data unit; when the value of the p-th row and the q-th column in the BA bitmap matrix is 1, it indicates that the p-th station successfully receives the q-th data unit;
[0135] The determining, based on the row weights of the rows in the BA bitmap matrix and the column weights of the columns in the BA bitmap matrix, the at least one data unit pair in sequence from the at least two data units comprises:
[0136] When determining the i-th data unit pair in the at least one data unit pair, determining a target row in the BA bitmap matrix, the target row being a row with the smallest weight of the current row;
[0137] Determine, according to the target row, a column that satisfies a first condition and a column that satisfies a second condition in the BA bitmap matrix; the first condition includes: in the column corresponding to the 0 element of the target row, the column weight is the smallest; the second condition includes: in the column corresponding to the 1 element of the target row, the column weight is the smallest;
[0138] The data unit corresponding to the column that meets the first condition and the data unit corresponding to the column that meets the second condition are used as the i-th data unit pair;
[0139] Perform an OR operation on the element values belonging to the same row in the column that meets the first condition and the column that meets the second condition;
[0140] The value of one of the column satisfying the first condition and the column satisfying the second condition is replaced by the result of the OR operation, and the value of the other column is set to 1.
[0141] In a possible implementation, when determining the i-th data unit pair in the at least one data unit pair, determining a target row in the BA bitmap matrix, the target row being a row with the smallest weight of the current row, includes:
[0142] When there are 0-value elements in each element in the BA bitmap matrix, a step is performed to determine a target row in the BA bitmap matrix when determining the i-th data unit pair in the at least one data unit pair, where the target row is the row with the smallest weight of the current row.
[0143] In a possible implementation, the determining the at least one data unit pair in sequence from the at least two data units based on the row weights of the rows in the BA bitmap matrix and the column weights of the columns in the BA bitmap matrix includes:
[0144] When the BA bitmap matrix satisfies a specified condition, sequentially determining the at least one data unit pair from the at least two data units based on row weights of each row in the BA bitmap matrix and column weights of each column in the BA bitmap matrix;
[0145] The specified condition includes at least one of the following conditions:
[0146] The number of zero-valued elements in the bitmap matrix or vector is greater than the quantity threshold; the bitmap matrix or vector is the vector obtained by bitwise ORing each row in the BA bitmap matrix;
[0147] The row weight of the BA bitmap matrix is less than the row weight threshold;
[0148] A ratio of the row weight of the BA bitmap matrix to the number of each data unit is less than a first ratio;
[0149] The column weight of the BA bitmap matrix is less than the row and column weight threshold;
[0150] A ratio of the column weight of the BA bitmap matrix to the number of each data unit is smaller than a second ratio.
[0151] In a possible implementation manner, before performing XOR encoding on the data units that the at least two sites fail to receive according to the BA information sent by the at least two sites to obtain the network coded data of the data block, the method further includes:
[0152] Obtain channel quality reports for each site;
[0153] Among the sites, the sites whose corresponding channel quality reports meet the quality condition are determined to be the at least two sites.
[0154] Step 504: The access point performs an exclusive OR operation on each of the data units in the at least one data unit pair to obtain network coded data of the data block.
[0155] For each data unit pair, the access point performs an XOR operation on two data units in the data unit pair, and obtains the XOR operation result of each of at least one data unit pair as the network coding data of the data block.
[0156] Since the above network coded data is obtained by performing XOR operations between two data units, the network coded data has a smaller data volume than all the data units that have not been successfully received.
[0157] Step 505: The access point sends the network coding data to the at least two stations in a multicast or broadcast manner. Correspondingly, the at least two stations receive the network coding data sent by the access point in a multicast or broadcast manner.
[0158] In a possible implementation, the frame header corresponding to the network coded data includes a data type identifier and XOR operation indication information;
[0159] The data type identifier is used to indicate whether the corresponding data is the network coding data;
[0160] The XOR operation indication information is used to indicate the corresponding relationship between data units subjected to XOR operations.
[0161] In a possible implementation, the data type identifier and the location where the XOR operation indication information is located are located after the receiving address field and the sending address field.
[0162] The network coding and sending process from step 503 to step 505 may refer to the following steps.
[0163] Step S1: The AP receives BA information for the same data block from the STA, and uses a selection algorithm to determine whether the reliable multicast transmission mechanism provided by the present application is required based on the data block and the receiving bitmaps in the BA information, and selects data units to perform pairwise XOR network coding.
[0164] Among them, the pairwise XOR network coding in step S1 can be: performing an XOR operation on the data units (such as MPDU or MSDU) (in the data block), using two data units for each operation, and after performing the bitwise XOR operation, a new data sequence is formed. The new data sequence is called the network coded data formed after the pairwise XOR network coding operation.
[0165] In a possible implementation, the access point may use MSDU as a basic data unit for XOR network coding operation.
[0166] In a possible implementation, the process of selecting an algorithm in step S1 above may be as follows.
[0167] Calculate feature information based on BA information:
[0168] First, the bitmap of each BA information (n users * k data) is simplified (for example, deleting repeated rows, or absorbing rows where the "1" value is completely contained) to form a matrix BAsM (that is, the above-mentioned BA bitmap matrix), where each bit in the bitmap represents the reception status of a STA for an MPDU.
[0169] Then the following feature information is calculated as described in Table 1.
[0170] Feature information Detailed description of feature information ROWweight The row weight vector of the BAsM matrix COLweight Column weight vector of the BAsM matrix BAsAND The vector after bitwise AND of each row of the BAsM matrix BAsOR The vector after bitwise "OR" of each row of the BAsM matrix
[0171] Then, a coding judgment is made: that is, the overall reception situation is evaluated according to the number of "0" values of the BAsOR vector, ROWweight and COLweight to determine whether to use the reliable data transmission provided by this application, and for which STAs to use the reliable data transmission provided by this application; or, a coding judgment is made based on information such as channel quality reports, received power feedback (or other indicators related to frame error rate and bit error rate) to determine whether multicast retransmission based on network coding enhances network performance, and then decide whether to use the reliable data transmission mechanism provided by this application in transmission, and how to use the reliable data transmission mechanism provided by this application.
[0172] For example, the access point directly judges according to the characteristic information of the BAsM matrix: if the number of "0" elements in the BAsOR vector is large and / or the ROWweight and COLweight values are small (or the ratio to the data volume k is small), it is considered that the transmission quality is poor, and the probability of transmission failure using the network coding mechanism is still high, which may not effectively reduce the number of retransmissions and will bring too much computing overhead, resulting in the inability to effectively improve the transmission performance. At this time, other mechanisms should be used to improve the transmission situation, such as CC-HARQ or IR-HARQ.
[0173] For example, the access point adopts a "grouping" transmission strategy: if the received user channel quality report shows that there are obvious hierarchical differences in channel quality between users, the multicast group member users are classified based on different channel qualities, and the frame error rate is used as an example for determination indicators: some users have an average frame error rate of less than 1%, some users have an average frame error rate of 1% to 5%, some users have an average frame error rate of 5% to 8%, and some users have an average frame error rate of more than 8%. They can be divided into 4 groups according to the above description. And through a certain mechanism, each type of user will be informed that a different transmission strategy will be used for subsequent data transmission to provide data services at different rates.
[0174] Another example is the "filtering" transmission strategy: if the channel quality report of a very few users shows that their channel quality is significantly worse than that of other users, a certain mechanism is used to inform the user that reliable multicast transmission services cannot be provided to them. The user is not required to provide feedback on their reception status in the subsequent process, or the (relatively poor) reception status of the user is ignored during actual encoding to prevent the overall performance from being affected by meeting their individual needs. The information on failed reception can also be sent separately through multicast to unicast (DMS).
[0175] After determining to use the reliable transmission mechanism provided by this application, the access point can select the data to be XORed in the following manner:
[0176] Select the row with the smallest ROWweights, select the bit with the smallest COLweights among the "0" bits in the row (corresponding to a column of BAsM) and the bit with the smallest COLweights among the "1" bits in the row (corresponding to a column of BAsM) as the XOR data to be XORed. When there are multiple rows with the same and smallest ROWweights, you can arbitrarily select a row to perform the above steps.
[0177] The columns in the BAsM corresponding to the data to be XORed are replaced by "OR" and the other column is set to all "1" to obtain a new matrix;
[0178] According to the new ROWweights and COLweights, select the data to be XORed according to the above rules, repeat the above steps until all matrix elements are 1, and record the column code of the data to be XORed.
[0179] After obtaining the data units to be XORed, the pairwise XOR network coding can be calculated:
[0180] According to the numbers of the data units to be XORed obtained above, an XOR operation is performed on the data units to be XORed to obtain network coded data.
[0181] Please refer to Figure 6 , which shows a schematic diagram of a selection algorithm involved in an embodiment of the present application, Figure 6 The 6*5 matrix in the figure is a BAsM matrix composed of bitmaps, which represents the reception status of the six users for the data (#1, #2, #3, #4, #5). "1" represents successful decoding and reception, and "0" represents unsuccessful decoding and reception. The augmentations of its rows and columns are the above-mentioned COLweights and ROWweights respectively.
[0182] The network coded data in the downlink multicast scenario should be distinguished from the original data so that the receiver (STAs) can know which two groups of data in which "block" of data are obtained through pairwise XOR network coding.
[0183] When the feedback received in step S1 shows that all data has been successfully decoded and received, the sending buffer is released, network coding is not performed, and the block transmission is terminated.
[0184] Step S2: re-encapsulate the network coding data formed in the above step S1 as MSDU into a reliable multicast transmission data frame - network coding data frame (MPDU), and add it to the network coding data sending queue, ready to be sent in broadcast form.
[0185] The above-mentioned network coding data sending queue may include a data identification bit storage area for recording the sequence number of the network coding data in the queue, the indication of the network coding data in the queue is the network coding data generated by the network coding module; and a sending determination mechanism for determining when to send the network coding data frame.
[0186] Examples of the determination conditions of the above sending determination mechanism are as follows:
[0187] 1. When the number or size of network coded data in the network coded data transmission queue meets certain conditions (for example, when the network coded data in the queue is sufficient to form an A-MPDU that meets the size requirements, the network coded data frame is placed in the data area to be sent in the MAC layer and aggregated to form an A-MPDU ready for transmission);
[0188] 2. When the delay information of the original data corresponding to the network coded data in the network coded data frame meets certain conditions, for example, the AP learns through other mechanisms that the original data corresponding to the network coded data carried by the network coded frame in queue No. N needs to be delivered immediately to prevent data reception failure due to excessive delay or exceeding the maximum allowed time, the corresponding data in the queue is directly sent.
[0189] When the first determination method mentioned above is adopted, in order to take into account the delay performance, a network coding data sending queue may need to correspond to multiple original data sending queues to ensure timely delivery of data. The corresponding relationship between the number of the two queues is related to the selection algorithm and performance requirements.
[0190] The above-mentioned original data sending queue is a corresponding concept to the above-mentioned network coding data sending queue, including a data identification bit storage area for recording the sequence number of the original data in the queue, wherein the data comes from the requirements of the upper layer protocol (such as data from the IP-LLC layer that needs to be sent to STAs) and satisfies the constraints of the BA sending window; and a sending determination mechanism for determining when to send the original data frame.
[0191] The above-mentioned original data sending queue and network coding data sending queue are a logical concept in the system and can be carried by a unified scheduling mechanism to coordinate the number of original data frames and network coding data frames sent by the AP.
[0192] Step S3: Send the network coding data in the network coding data sending queue that meets the conditions in step S2 to its members in the form of broadcast.
[0193] Step 506: At least two stations decode the network coded data to obtain data units that the corresponding stations fail to receive.
[0194] In a possible implementation, taking a first site among the at least two sites as an example, the first site includes a receiving buffer area for caching successfully received data units among the data units;
[0195] The decoding of the network coded data to obtain the data unit that the first station fails to receive includes:
[0196] Parsing the frame header corresponding to the network coding data to obtain the data type identifier;
[0197] When the data type identifier indicates that the corresponding data is the network coded data, parsing the XOR operation indication information;
[0198] According to the XOR operation indication information, the network coded data is decoded through the data units in the receiving buffer area to obtain the data units that the first station fails to receive.
[0199] In a possible implementation, after each data unit in the data block is successfully received and reported, the buffer area is released.
[0200] Correspondingly, the access point includes a sending buffer area for caching each data unit; when the BA information sent by the at least two stations indicates that the at least two stations have successfully received each data unit, the access point releases the sending buffer area.
[0201] Among them, each station uses the network coding data in the subtype network coding data frame of the received reliable multicast transmission data frame to decode and recover the data that was not successfully received and decoded in the block, and then enters phase 2 after completion, and regards the decoded data as the data received in phase 2. Similar to phase 2, if all data are successfully decoded, received and uploaded to the upper layer, the data block transmission is considered to be completed.
[0202] Please refer to Figure 7 , which shows an execution flow chart of an access point in a data transmission process involved in an embodiment of the present application.
[0203] Please refer to Figure 8 , which shows an execution flow chart of a site in a data transmission process involved in an embodiment of the present application.
[0204] exist Figure 8 In the embodiment, data reception is triggered by receiving a reliable multicast transmission data frame or a data block formed by its aggregation, so the receiving process only receives the scenario for one data frame or data block.
[0205] Please refer to Fig. 9 , which shows a new frame structure of a data block involved in an embodiment of the present application. This structure can be called a reliable multicast transmission data frame, such as Fig. 9As shown, the section from the Frame Control field to the HT Control field is the MAC Header section.
[0206] Please refer to Fig.10 , which shows a schematic diagram of the structure of a reliable multicast transmission module in an AP involved in an embodiment of the present application. Fig.10 As shown, the reliable multicast transmission module is as follows:
[0207] It includes a reliable multicast transmission service trigger module to determine whether the reliable multicast transmission mechanism provided by the embodiment of the present application needs to be used.
[0208] It comprises a reliable multicast transmission frame reassembly module, which, after determining that the reliable multicast transmission mechanism provided by the embodiment of the present application needs to be used, reassembles the received data whose target address is the multicast address to form a reliable multicast transmission data frame.
[0209] It includes a multicast member maintenance module, which records the multicast groups participated by the STAs under the AP, and uses the listening function to maintain a multicast table containing all multicast group addresses and their corresponding member STAs addresses in the STAs under the AP.
[0210] It includes a network coding module, which executes the network coding operation provided by the embodiment of the present application. The operation includes a selection function for selecting data to be encoded; includes a coding function for implementing XOR network coding, and includes a network coding data sending queue function for deciding when to send network coding data.
[0211] It includes a rate control module, which executes the rate control and buffer management functions in the solution provided in the embodiment of the present application. The implementation of the rate control function depends on the state of its own sending buffer and the feedback of the subordinate multicast group STAs on its own receiving buffer.
[0212] Above Fig.10 The reliable multicast transmission module shown needs to be additionally deployed in a third-layer network switch (wireless AP router) with wireless distribution function to realize the required functions.
[0213] Please refer to Fig.11 , which shows a schematic diagram of the structure of a reliable multicast transmission module in a STA involved in an embodiment of the present application. Fig.11 As shown, the reliable multicast transmission module is as follows:
[0214] It includes a reliable multicast transmission service identification module, which learns that the AP is performing reliable multicast transmission by identifying data frames from the AP, and prepares to perform related receiving work (such as opening a buffer area, preparing for feedback, etc.).
[0215] It includes a reliable multicast transmission frame identification module, which is used to identify the type of the frame received from the AP, specifically including: whether it is a reliable multicast transmission data frame, whether it is a network coding data frame.
[0216] It includes a network coding and decoding module, which is used to use the buffer area data and the received network coding data to perform joint decoding to obtain the data frame that failed to be decoded and received during the previous transmission process.
[0217] It includes a rate feedback module, which provides the AP with relevant sending rate feedback according to the sending rate of the sender and its own buffer area, realizes the flow control requirements, and prevents its own buffer area from overflowing and unnecessary data discarding.
[0218] Above Fig.11 The reliable multicast transmission module shown needs to be additionally deployed in an existing station device (STA) with wireless functions to realize required functions.
[0219] The embodiment of the present application also provides a method for deploying the above Fig.10 or Fig.11 The reliable multicast transmission module shown is used to support the MAC layer service function category of the reliable multicast transmission scheme shown in this application. The MAC layer service function category belongs to the group data transmission service (Group Addressed Transmission Service, GATS) with retransmission multicast (GCR), also known as network coding reliable multicast transmission service.
[0220] Please refer to Figures 12 to 14 ,in, Fig.12 A schematic diagram of a reliable multicast transmission service involved in an embodiment of the present application is shown. Fig.13 A schematic diagram of a reliable multicast transmission service sending sub-process involved in an embodiment of the present application is shown. Fig.14 A schematic diagram of a reliable multicast transmission service receiving sub-process involved in an embodiment of the present application is shown.
[0221] like Fig.12 As shown, first determine whether the reliable multicast transmission service is triggered by receiving and identifying the reliable multicast transmission data frame. If so, it means that the STA has received the reliable multicast transmission data frame sent by the AP through the wireless channel, so it is necessary to start Fig.13 If not, it means that the router-AP has received data that needs to be sent by reliable multicast transmission mechanism through other protocols, and needs to send it to the STAs under the multicast group that belongs to the data request by reliable multicast transmission. Therefore, it is necessary to start Fig.14 The sending process is shown.
[0222] The data transmission phase process executed in the sending sub-process of the reliable multicast transmission service is as follows: Figure 7shown.
[0223] The data receiving phase process executed in the receiving subprocess of the reliable multicast transmission service is as follows: Figure 8 shown.
[0224] In one possible implementation, before data transmission is performed through the above-mentioned reliable multicast transmission service, at least two sites respectively send a multicast request with retransmission to the access point; the reserved value of the group data transmission service GATS retransmission strategy subfield in the sub-element of the multicast request with retransmission is used to indicate the network coding retransmission strategy; the network coding retransmission strategy is a strategy for retransmitting data blocks through the network coding data of the data blocks; accordingly, the access point receives the multicast request with retransmission and sends a confirmation response to the network coding retransmission strategy to at least two sites, and at least two sites receive the confirmation response to the network coding retransmission strategy sent by the access point, which can confirm the subsequent retransmission reception of the data blocks through the network coding data of the data blocks.
[0225] The embodiment of the present application provides a solution for indicating a new group data transmission service used in a MAC layer service category by using a reserved value of a group addressed transmission service (GATS) retransmission policy (Retransmission Policy) subfield in a multicast request subelement (GCR Request subelement) with retransmission.
[0226] Please refer to Fig.15 , which shows a schematic diagram of a network coding reliable multicast transmission service indication method involved in an embodiment of the present application. Fig.15 As shown, the reserved value "4" in the GATS Retransmission Policy in the GCR Request subelement in the Optionalsubelement allowed in the DMSDescript subfield in the DMS Request element is used to indicate the network coding reliable multicast transmission service. The mapping relationship between the multicast data transmission service and the retransmission policy subfield can be shown in Table 2 below.
[0227] value GATS retransmission strategy Remark 0 No preference 802.11 Standards 1 DMS 802.11 Standards 2 GCR unsolicited retry 802.11 Standards 3 GCR Block Ack 802.11 Standards 4 GCR Network code This plan adds 5-15 Reserved 802.11 Standards
[0228] The DMS Descriptor subfield information of the carrier of the above network coding reliable multicast transmission service will be notified to the MLME (MAC sublayer Management Entity) of the STA through the MLME-GATS.request primitive by the SME (Station Management Entity) of the STA that requires the multicast data service. The MLME will encapsulate it into a DMS Request frame and send it to the MLME of the peer AP. The MLME of the AP will inform the SME of the AP through the MLME-GATS.indication primitive and select a specific GATS according to a certain strategy. After that, the AP will respond to the STA's multicast transmission service. The SME of the AP will inform the MLME of the AP through the MLME-GATS.response primitive. The MLME of the AP will encapsulate it into a DMS Response frame and send it to the MLME of the peer STA. The MLME of the STA will inform the SME of the STA through the MLME-GATS.confirm primitive to confirm the multicast transmission service.
[0229] In one possible implementation, for "legacy devices" that support GATS but do not support network coding reliable multicast transmission services, if the importance (priority) of the multicast service flow is low, when establishing the multicast service, the AP instructs the STA in the DMS Response frame to use the GCR unsolicited retry active retransmission method to send multicast data. Then, when the AP actually sends, it performs network coding reliable multicast transmission according to the Block Ack feedback of the non-traditional device. In the network coding reliable multicast transmission data frame, address 1 uses the GCR concealed address (concealment address) to prevent the multicast group member STA that does not support GATS from receiving GCR data. The original data frame is only changed for address 3, and the traditional device can decode and receive it normally. The network coding data is sent in the MSDU segment in the A-MSDU mode according to the standard requirements. The DA field of the A-MSDU subframe structure does not match the actual multicast group address due to the XOR network coding (because they belong to the same multicast group, the DA field in the A-MSDU subframe structure in the original data is the multicast group address, so the DA field of the encoded A-MSDU subframe structure should be all 0), and the traditional device will directly discard the received network coding data frame. At this time, the traditional device can only receive the data sent for the first time, and the AP will not respond to the feedback of the traditional device and will not retransmit it.
[0230] In a possible implementation, for "legacy devices" that support GATS but do not support network coding reliable multicast transmission services, if the importance (priority) of the multicast service flow is high, when establishing the multicast service, the AP indicates in the DMS Response frame that the STA will use DMS (direct multicast service) to send multicast data (if supported). The multicast data is then sent to the legacy device in unicast form through the DMS. For example, the RA in the MPDU is the personal address of the STA, and the DA field in the A-MSDU is the multicast group address. When receiving this frame, the STA knows that the frame is multicast data sent using the DMS.
[0231] In a possible implementation, for some "new devices" that are "filtered" in the network coding process and have poor channel quality and support network coding reliable multicast transmission services, according to the importance (priority) of the service flow, choose to ignore the user feedback (without guaranteeing its data reliability) or send it in unicast form after a certain period of time through DMS. Among them, the above-mentioned certain period of time needs to be shorter than the "lifetime" of the frame, and the above-mentioned certain period of time needs to be sufficient for STA to recover certain data units based on the network coding data.
[0232] The indication of the above information can be implemented using the manufacturer-defined segment in the MLME-GATS series of primitives.
[0233] The purpose and requirement of the solution shown in this application is to reduce the amount of retransmitted data in the downlink group / broadcast retransmission scenario, save network resources, and improve network throughput while ensuring reliable data reception.
[0234] Compared with the DMS solution of unicast forwarding, this solution can utilize the group / broadcast transmission mode to avoid occupying the unicast wireless resources.
[0235] Compared with GCR with BlockACK, according to the selection method described in the embodiment of the present application, in the theoretical optimal case, the amount of transmitted data can be the same as the maximum number of failed receptions for a single user, and in the worst case, the amount of data during retransmission can be reduced by one transmission unit compared to the amount of traditional multicast retransmission data.
[0236] Through mathematical simulation of the selection algorithm, under the condition that the channel bit error rate is at the level of 10^-5 (corresponding to the frame error rate of about 0.08, and the frame error events are considered to be independent of each other), and the number of users is 1000, compared with the direct broadcast retransmission scheme, at the first retransmission, the scheme shown in the embodiment of the present application can reduce the amount of data sent by about 24%; under the condition that the channel bit error rate is at the level of 10^-6 (corresponding to the frame error rate of about 0.01, and the frame error events are considered to be independent of each other), and the number of users is 200, compared with the direct broadcast retransmission scheme, at the first retransmission, this scheme can reduce the amount of data sent by about 43%. Under the condition that the number of users is 200 and the average frame error rate is 0.08, compared with the direct broadcast retransmission scheme, this scheme can improve the throughput performance by about 25%.
[0237] At the same time, the pairwise XOR network coding (relative to arbitrary XOR network coding, i.e., network coding that allows XOR of multiple data) used in the solution shown in the embodiment of the present application has the property of providing the maximum information gain for a single XOR operation, so that the benefits provided by the computing resources are maximized, as demonstrated by the following example:
[0238] There are data A, B, C, D, E to be sent. When they are first broadcasted, 5 users each have 1 different data decoding failure. That is, the feedback BAsM matrix feature is: a 5*5 square matrix with 0 on the auxiliary diagonal and all other elements 1. For the user who failed to successfully decode and receive data A, the information gain is The following formula can be used for calculation:
[0239]
[0240] Among them, BCDE and A can be uniquely determined, so Obviously it is 0. If it is considered that the ABCDE data are unrelated, then H(A|BCDE)=H(A). At this time, a total of four XOR operations are performed, so the information gain provided by a single XOR operation is H(A) / 4.
[0241] At the same time, compared with the active retransmission GCR, this scheme can ensure that all users can successfully decode and receive the target data, while reducing the occupation of group / broadcast wireless resources.
[0242] To summarize, the scheme shown in the embodiment of the present application obtains the reception status of the data units at each site and XOR encodes the data units that need to be retransmitted, thereby reducing the amount of data that needs to be transmitted while ensuring that each site can obtain the data units that have not been successfully received based on the encoded data decoding, thereby improving the retransmission efficiency in multicast or broadcast scenarios.
[0243] In another possible implementation, for the above Figure 5 The XOR encoding part in the illustrated embodiment can be replaced by the following encoding strategy:
[0244] A multicast retransmission mechanism based on linear random network coding can be used. Before encoding, it is only necessary to count the number of data not received by the STA with the least data in the received data block. NACK Then randomly generate N NACK A set of linear encoding parameters, multiply all data with their corresponding linear encoding parameters and then add them to calculate the generated N NACK network coding data packets to obtain the final network coding data. When sending, the network coding parameters and the generated network coding data are sent together. The receiver uses the network coding parameters and the network coding data to decode and restore the original data. At this time, the theoretical optimality of the network coding scheme can be achieved in terms of network resource occupancy (the information gain provided by each network coding data packet is the largest). This scheme is different from the frame structure used by the above-mentioned XOR coding scheme. This scheme uses a linear random network coding retransmission mechanism. It is necessary to add a field to the newly defined network coding data frame subtype belonging to the reliable multicast transmission data frame to identify the parameter value used for the current random network coding.
[0245] Please refer to Fig.16 , which shows a schematic diagram of a frame header of a frame structure of a data block provided by an exemplary embodiment of the present application. Fig.16 As shown, the frame structure is as follows:
[0246] Add a new flag in the MAC Header: IsTGC - Reliable multicast transmission frame flag, 0 represents unreliable multicast transmission data frame, in which case the other newly added structures (network coding data frame flag and network coding operation sequence number subfield) are set as reserved and do not function; 1 represents a reliable multicast transmission data frame. Add a new flag: IsNetCode - Network coding data frame flag, 0 represents the original data frame, in which case the newly added network coding operation sequence number subfield is set as reserved and does not function; 1 represents a network coding data frame. Add two new network coding operation sequence number subfields, SN1 and SN2, to indicate the sequence number SN of the data frame used for the network coding operation. Other frame structures are consistent with the MAC layer data frame structure in 802.11.
[0247] When using the above Fig.16When the frame structure is shown, for the "traditional equipment" that supports GATS but does not support the network coding reliable multicast transmission service described in this solution, if the wireless resources are sufficient, the traditional GCR multicast service (such as GCR Block Ack retransmission strategy) can be provided to it separately at a relatively low service rate, and the network coding reliable multicast transmission service described in this solution can be provided to the "new equipment" that supports the network coding reliable multicast transmission service described in this solution at a relatively high service rate.
[0248] At this time, in order to prevent the conflict problem caused by the "new device" receiving the traditional GCR multicast service data frame (mainly reflected in the switching of GCR strategy), at the beginning of the establishment of the multicast service, the AP will allocate different GCR hidden addresses to the multicast (sub) groups using different GCR retransmission strategies to distinguish different GCR services.
[0249] The following is an embodiment of the device of the present application, which can be used to execute the embodiment of the method of the present application. For details not disclosed in the embodiment of the device of the present application, please refer to the embodiment of the method of the present application.
[0250] Please refer to Fig.17 , which shows a block diagram of a data transmission device provided by an embodiment of the present application. The device is used in an access point and has the function of implementing the above Figure 2 or Figure 5 In the method shown, the functions of the steps performed by the access point. Fig.17 As shown, the device may include:
[0251] A data block sending module 1701 is used to send a data block to at least two sites in a multicast or broadcast manner, wherein the data block includes at least two data units;
[0252] The confirmation information receiving module 1702 is used to receive block confirmation BA information sent by the at least two sites, where the BA information is used to indicate the reception status of the at least two data units by the corresponding sites;
[0253] The coding module 1703 is used to perform XOR coding on the data units that the at least two sites fail to receive according to the BA information sent by the at least two sites, so as to obtain network coding data of the data block;
[0254] The coded data sending module 1704 is used to send the network coded data to the at least two sites by multicast or broadcast.
[0255] In a possible implementation, the encoding module 1703 includes:
[0256] a data unit pair determination submodule, configured to determine at least one data unit pair from the at least two data units based on the BA information sent by the at least two sites, wherein the data unit pair includes two of the data units;
[0257] The XOR operation submodule is used to perform XOR operations on the data units in the at least one data unit pair respectively, so as to obtain the network coded data of the data block.
[0258] In a possible implementation, the data unit pair determination submodule is used to:
[0259] Based on the BA information sent by the at least two sites, construct a BA bitmap matrix, wherein a value of the p-th row and the q-th column in the BA bitmap matrix is used to indicate reception information of the p-th site for the q-th data unit, wherein the reception information includes reception success or reception failure;
[0260] Obtaining row weights of each row in the BA bitmap matrix and column weights of each column in the BA bitmap matrix; the row weights are positively correlated with the values in the corresponding rows; the column weights are positively correlated with the values in the corresponding columns;
[0261] Based on the row weights of the rows in the BA bitmap matrix and the column weights of the columns in the BA bitmap matrix, the at least one data unit pair is sequentially determined from the at least two data units.
[0262] In a possible implementation, when the value of the p-th row and the q-th column in the BA bitmap matrix is 0, it indicates that the p-th station fails to receive the q-th data unit;
[0263] When the value of the p-th row and the q-th column in the BA bitmap matrix is 1, it indicates that the p-th site has successfully received the q-th data unit.
[0264] In a possible implementation, when the value of the p-th row and the q-th column in the BA bitmap matrix is 0, it indicates that the p-th station fails to receive the q-th data unit; when the value of the p-th row and the q-th column in the BA bitmap matrix is 1, it indicates that the p-th station successfully receives the q-th data unit;
[0265] The data unit pair determination submodule is used to:
[0266] When determining the i-th data unit pair in the at least one data unit pair, determining a target row in the BA bitmap matrix, the target row being a row with the smallest weight of the current row;
[0267] Determine, according to the target row, a column that satisfies a first condition and a column that satisfies a second condition in the BA bitmap matrix; the first condition includes: in the column corresponding to the 0 element of the target row, the column weight is the smallest; the second condition includes: in the column corresponding to the 1 element of the target row, the column weight is the smallest;
[0268] The data unit corresponding to the column that meets the first condition and the data unit corresponding to the column that meets the second condition are used as the i-th data unit pair;
[0269] Performing an OR operation on the element values belonging to the same row in the column that meets the first condition and the column that meets the second condition;
[0270] The value of one of the column satisfying the first condition and the column satisfying the second condition is replaced by the result of the OR operation, and the value of the other column is set to 1.
[0271] In a possible implementation, the data unit pair determination submodule is used to:
[0272] When there are 0-value elements in each element in the BA bitmap matrix, a step is performed to determine a target row in the BA bitmap matrix when determining the i-th data unit pair in the at least one data unit pair, wherein the target row is the row with the smallest weight of the current row.
[0273] In a possible implementation, the data unit pair determination submodule is used to:
[0274] When the BA bitmap matrix satisfies a specified condition, sequentially determining the at least one data unit pair from the at least two data units based on a row weight of each row in the BA bitmap matrix and a column weight of each column in the BA bitmap matrix;
[0275] The specified conditions include at least one of the following conditions:
[0276] The number of zero-valued elements in the bitmap matrix or vector is greater than a quantity threshold; the bitmap matrix or vector is a vector obtained by bitwise ORing each row in the BA bitmap matrix;
[0277] The row weight of the BA bitmap matrix is less than a row weight threshold;
[0278] A ratio of a row weight of the BA bitmap matrix to the number of each data unit is less than a first ratio;
[0279] The column weight of the BA bitmap matrix is less than the row and column weight threshold;
[0280] A ratio of the column weight of the BA bitmap matrix to the number of each data unit is smaller than a second ratio.
[0281] In a possible implementation manner, the device further includes:
[0282] A report acquisition module, configured to obtain a channel quality report of each site before the encoding module 1703 performs XOR encoding on the data units that failed to be received by the at least two sites according to the BA information sent by the at least two sites to obtain the network coding data of the data block;
[0283] The site determination module is used to determine the sites whose corresponding channel quality reports meet the quality conditions among the sites as the at least two sites.
[0284] In a possible implementation, the frame header corresponding to the network coded data includes a data type identifier and XOR operation indication information;
[0285] The data type identifier is used to indicate whether the corresponding data is the network coding data;
[0286] The XOR operation indication information is used to indicate the corresponding relationship between the data units subjected to the XOR operation.
[0287] In a possible implementation, the data type identifier and the location where the XOR operation indication information is located are located after the receiving address field and the sending address field.
[0288] In a possible implementation manner, the access point includes a first buffer area for buffering the respective data units;
[0289] The device also includes:
[0290] A release module is used to release the first buffer area when the BA information sent by the at least two sites indicates that the at least two sites have successfully received the respective data units.
[0291] In a possible implementation manner, the device further includes:
[0292] A multicast request receiving module, configured to receive a multicast request with retransmission sent by the at least two sites; a reserved value of a group data transmission service GATS retransmission strategy subfield in a subelement of the multicast request with retransmission, configured to indicate a network coding retransmission strategy; the network coding retransmission strategy is a strategy for retransmitting the data block through the network coding data of the data block;
[0293] A confirmation response module is used to send a confirmation response to the network coding retransmission strategy to the at least two sites.
[0294] Please refer to Fig.18, which shows a block diagram of a data transmission device provided by an embodiment of the present application. The device is used in a first site and has the function of implementing the above Figure 3 or Figure 5 In the method shown, the functions of the steps performed by any of the at least two stations. Fig.18 As shown, the device may include:
[0295] The data block receiving module 1801 is used to receive a data block sent by an access point in a multicast or broadcast manner, wherein the data block includes at least two data units;
[0296] The confirmation information sending module 1802 is used to send block confirmation BA information to the access point, where the BA information is used to indicate the reception status of the at least two data units by the corresponding station;
[0297] The coded data receiving module 1803 is used to receive network coded data sent by the access point in a multicast or broadcast manner, where the network coded data is obtained by the access point performing XOR coding on data units that failed to be received by the at least two stations according to the BA information sent by the at least two stations;
[0298] The decoding module 1804 is used to decode the network coded data to obtain the data unit that the first station fails to receive.
[0299] In a possible implementation, the frame header corresponding to the network coded data includes a data type identifier and XOR operation indication information;
[0300] The data type identifier is used to indicate whether the corresponding data is the network coding data;
[0301] The XOR operation indication information is used to indicate the corresponding relationship between the data units subjected to the XOR operation.
[0302] In a possible implementation, the first site includes a second buffer area for caching successfully received data units among the data units;
[0303] The decoding module 1804 is used to:
[0304] Parsing the frame header corresponding to the network coding data to obtain the data type identifier;
[0305] When the data type identifier indicates that the corresponding data is the network coded data, parsing the XOR operation indication information;
[0306] According to the XOR operation indication information, the network coded data is decoded using the data units in the second buffer area to obtain the data units that the first station fails to receive.
[0307] In a possible implementation, the data type identifier and the location where the XOR operation indication information is located are located after the receiving address field and the sending address field.
[0308] In a possible implementation manner, the device further includes:
[0309] The release module is used to release the buffer area after each data unit in the data block is successfully received and reported.
[0310] In a possible implementation manner, the device further includes:
[0311] a multicast request sending module, configured to send a multicast request with retransmission to the access point; a reserved value of a group data transmission service GATS retransmission strategy subfield in a subelement of the multicast request with retransmission, configured to indicate a network coding retransmission strategy; the network coding retransmission strategy is a strategy for retransmitting the data block through the network coding data of the data block;
[0312] The confirmation response receiving module is used to receive a confirmation response to the network coding retransmission strategy sent by the access point.
[0313] One point that needs to be explained is that the device provided in the above embodiment only uses the division of the above-mentioned functional modules as an example to implement its functions. In actual applications, the above-mentioned functions can be assigned to different functional modules according to actual needs, that is, the content structure of the device can be divided into different functional modules to complete all or part of the functions described above.
[0314] Regarding the device in the above embodiment, the specific manner in which each module performs operations has been described in detail in the embodiment of the method, and will not be elaborated here.
[0315] Please refer to Fig.19 , which shows a schematic diagram of the structure of a computer device 1910 provided in one embodiment of the present application. The computer device 1900 may include: a processor 1901, a receiver 1902, a transmitter 1903, a memory 1904 and a bus 1905.
[0316] The processor 1901 includes one or more processing cores. The processor 1901 executes various functional applications and information processing by running software programs and modules.
[0317] The receiver 1902 and the transmitter 1903 may be implemented as a communication component, which may be a communication chip, which may also be called a transceiver.
[0318] The memory 1904 is connected to the processor 1901 via a bus 1905 .
[0319] The memory 1904 may be used to store a computer program, and the processor 1901 may be used to execute the computer program to implement each step performed by the terminal device in the above method embodiment.
[0320] In addition, memory 1904 can be implemented by any type of volatile or non-volatile storage device or a combination thereof, and volatile or non-volatile storage devices include but are not limited to: magnetic disks or optical disks, electrically erasable programmable read-only memory, erasable programmable read-only memory, static access memory, read-only memory, magnetic memory, flash memory, and programmable read-only memory.
[0321] The above-mentioned computer device may be implemented as an AP or a station in the above-mentioned various method embodiments.
[0322] In an exemplary embodiment, the computer device includes a processor, a memory, and a transceiver (the transceiver may include a receiver and a transmitter, the receiver is used to receive information, and the transmitter is used to send information);
[0323] When the above-mentioned computer device is implemented as the above-mentioned AP,
[0324] The transceiver sends a data block to at least two sites by multicast or broadcast, wherein the data block includes at least two data units;
[0325] The transceiver is used to receive block confirmation BA information sent by the at least two sites, where the BA information is used to indicate the reception status of the at least two data units by the corresponding site;
[0326] The processor is configured to perform XOR encoding on the data units that the at least two sites fail to receive according to the BA information sent by the at least two sites, so as to obtain network coded data of the data block;
[0327] The transceiver is used to send the network coding data to the at least two sites in a multicast or broadcast manner.
[0328] When the above-mentioned computer device is implemented as the first station in each of the above-mentioned method embodiments,
[0329] The transceiver is used to receive a data block sent by an access point in a multicast or broadcast manner, wherein the data block includes at least two data units;
[0330] The transceiver is used to send block confirmation BA information to the access point, where the BA information is used to indicate the reception status of the at least two data units by the corresponding station;
[0331] The transceiver is used to receive network coding data sent by the access point in a multicast or broadcast manner, where the network coding data is obtained by the access point performing XOR coding on data units that fail to be received by the at least two stations according to BA information sent by the at least two stations;
[0332] The processor is configured to decode the network coded data to obtain a data unit that fails to be received by the first station.
[0333] The present application also provides a computer-readable storage medium in which a computer program is stored. The computer program is loaded and executed by a processor to implement the above Figure 2 or Figure 5 In the method shown, each step is performed by the AP; or the computer program is loaded and executed by the processor to implement the above Figure 3 or Figure 5 In the method shown, each step is performed by the first station.
[0334] The present application also provides a computer program product or a computer program, the computer program product or the computer program includes computer instructions, the computer instructions are stored in a computer-readable storage medium. The processor of the computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device performs the above Figure 2 or Figure 5 In the method shown, each step is performed by the AP; or the computer program is loaded and executed by the processor to implement the above Figure 3 or Figure 5 In the method shown, each step is performed by the first station.
[0335] Those skilled in the art should be aware that in one or more of the above examples, the functions described in the embodiments of the present application can be implemented with hardware, software, firmware, or any combination thereof. When implemented using software, these functions can be stored in a computer-readable medium or transmitted as one or more instructions or codes on a computer-readable medium. Computer-readable media include computer storage media and communication media, wherein the communication media include any media that facilitates the transmission of a computer program from one place to another. The storage medium can be any available medium that a general or special-purpose computer can access.
[0336] The above description is only an exemplary embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present application shall be included in the protection scope of the present application.
Claims
1. A data transmission method, characterized in that: The method is performed by an access point, and the method includes: Sending a data block to at least two sites by multicast or broadcast, wherein the data block includes at least two data units; Receiving block acknowledgement BA information sent by the at least two sites, where the BA information is used to indicate a reception status of the at least two data units by the corresponding sites; According to the BA information sent by the at least two sites, XOR encoding is performed on the data units that the at least two sites fail to receive, so as to obtain network coded data of the data block; Sending the network coding data to the at least two sites by multicast or broadcast; The frame header corresponding to the network coding data includes a data type identifier and XOR operation indication information; The data type identifier is used to indicate whether the corresponding data is the network coding data; The XOR operation indication information is used to indicate the corresponding relationship between the data units of the XOR operation between two of them; The step of performing XOR encoding on the data units that the at least two sites fail to receive according to the BA information sent by the at least two sites to obtain the network coded data of the data block includes: Based on the BA information sent by the at least two sites, determine at least one data unit pair from the at least two data units, where the data unit pair includes two of the data units; Performing XOR operations on data units in the at least one data unit pair respectively, to obtain network coded data of the data block; The determining, based on the BA information sent by the at least two sites, at least one data unit pair from the at least two data units comprises: Based on the BA information sent by the at least two sites, construct a BA bitmap matrix, wherein a value of the p-th row and the q-th column in the BA bitmap matrix is used to indicate reception information of the p-th site for the q-th data unit, wherein the reception information includes reception success or reception failure; Obtaining row weights of each row in the BA bitmap matrix and column weights of each column in the BA bitmap matrix; the row weights are positively correlated with the values in the corresponding rows; the column weights are positively correlated with the values in the corresponding columns; Based on the row weights of the rows in the BA bitmap matrix and the column weights of the columns in the BA bitmap matrix, sequentially determining the at least one data unit pair from the at least two data units includes: When determining the i-th data unit pair in the at least one data unit pair, determining a target row in the BA bitmap matrix, the target row being a row with the smallest weight of the current row; Determine, according to the target row, a column that satisfies a first condition and a column that satisfies a second condition in the BA bitmap matrix; the first condition includes: in the column corresponding to the 0 element of the target row, the column weight is the smallest; the second condition includes: in the column corresponding to the 1 element of the target row, the column weight is the smallest; The data unit corresponding to the column that meets the first condition and the data unit corresponding to the column that meets the second condition are used as the i-th data unit pair; Performing an OR operation on the element values belonging to the same row in the column that meets the first condition and the column that meets the second condition; The value of one of the column satisfying the first condition and the column satisfying the second condition is replaced by the result of the OR operation, and the value of the other column is set to 1.
2. The method according to claim 1, characterized in that: When the value of the p-th row and the q-th column in the BA bitmap matrix is 0, it indicates that the p-th station fails to receive the q-th data unit; When the value of the p-th row and the q-th column in the BA bitmap matrix is 1, it indicates that the p-th site has successfully received the q-th data unit.
3. The method according to claim 1, characterized in that The step of determining a target row in the BA bitmap matrix when determining the i-th data unit pair in the at least one data unit pair, wherein the target row is a row with the smallest weight of the current row, comprises: When there are 0-value elements in each element in the BA bitmap matrix, a step is performed to determine a target row in the BA bitmap matrix when determining the i-th data unit pair in the at least one data unit pair, wherein the target row is the row with the smallest weight of the current row.
4. The method according to claim 2, characterized in that: The determining, in sequence, the at least one data unit pair from the at least two data units based on the row weights of the rows in the BA bitmap matrix and the column weights of the columns in the BA bitmap matrix comprises: When the BA bitmap matrix satisfies a specified condition, sequentially determining the at least one data unit pair from the at least two data units based on a row weight of each row in the BA bitmap matrix and a column weight of each column in the BA bitmap matrix; The specified conditions include at least one of the following conditions: The number of zero-valued elements in the bitmap matrix or vector is greater than a quantity threshold; the bitmap matrix or vector is a vector obtained by bitwise ORing each row in the BA bitmap matrix; The row weight of the BA bitmap matrix is less than a row weight threshold; A ratio of a row weight of the BA bitmap matrix to the number of each data unit is less than a first ratio; The column weight of the BA bitmap matrix is less than the row and column weight threshold; A ratio of the column weight of the BA bitmap matrix to the number of each data unit is smaller than a second ratio.
5. The method according to claim 1, characterized in that Before performing XOR encoding on the data units that failed to be received by the at least two stations according to the BA information sent by the at least two stations to obtain the network coded data of the data block, the method further includes: Obtain channel quality reports for each site; Among the various sites, the sites whose corresponding channel quality reports meet the quality condition are determined as the at least two sites.
6. The method according to claim 1, characterized in that The data type identifier and the XOR operation indication information are located after the receiving address field and the sending address field.
7. The method according to claim 1, characterized in that The access point comprises a first buffer area for buffering each of the data units; The method further comprises: When the BA information sent by the at least two stations indicates that the at least two stations have successfully received the respective data units, the first buffer area is released.
8. The method according to claim 1, characterized in that The method further comprises: Receiving a multicast request with retransmission sent by the at least two sites; a reserved value of a group data transmission service GATS retransmission strategy subfield in a subelement of the multicast request with retransmission, used to indicate a network coding retransmission strategy; the network coding retransmission strategy is a strategy for retransmitting the data block through the network coding data of the data block; A confirmation response to the network coding retransmission strategy is sent to the at least two stations.
9. A data transmission method, characterized in that: The method is performed by a first site, where the first site is any one of at least two sites, and the method includes: Receiving a data block sent by an access point in a multicast or broadcast manner, wherein the data block includes at least two data units; Sending block acknowledgment BA information to the access point, where the BA information is used to indicate a reception status of the at least two data units by a corresponding station; Receiving network coding data sent by the access point in a multicast or broadcast manner, where the network coding data is obtained by the access point performing XOR coding on data units that fail to be received by the at least two stations according to BA information sent by the at least two stations; Decoding the network coded data to obtain a data unit that fails to be received by the first station; The frame header corresponding to the network coding data includes a data type identifier and XOR operation indication information; The data type identifier is used to indicate whether the corresponding data is the network coding data; The XOR operation indication information is used to indicate the corresponding relationship between the data units of the XOR operation between two of them; The network coding data is specifically obtained by the access point determining at least one data unit pair from the at least two data units based on the BA information sent by the at least two stations, the data unit pair including two data units; and performing an exclusive OR operation on two of the data units in the at least one data unit pair respectively; The determining, based on the BA information sent by the at least two sites, at least one data unit pair from the at least two data units includes: Based on the BA information sent by the at least two sites, construct a BA bitmap matrix, wherein a value of the p-th row and the q-th column in the BA bitmap matrix is used to indicate reception information of the p-th site for the q-th data unit, wherein the reception information includes reception success or reception failure; Obtaining row weights of each row in the BA bitmap matrix and column weights of each column in the BA bitmap matrix; the row weights are positively correlated with the values in the corresponding rows; the column weights are positively correlated with the values in the corresponding columns; Based on the row weights of the rows in the BA bitmap matrix and the column weights of the columns in the BA bitmap matrix, sequentially determining the at least one data unit pair from the at least two data units includes: When determining the i-th data unit pair in the at least one data unit pair, determining a target row in the BA bitmap matrix, the target row being a row with the smallest weight of the current row; Determine, according to the target row, a column that satisfies a first condition and a column that satisfies a second condition in the BA bitmap matrix; the first condition includes: in the column corresponding to the 0 element of the target row, the column weight is the smallest; the second condition includes: in the column corresponding to the 1 element of the target row, the column weight is the smallest; The data unit corresponding to the column that meets the first condition and the data unit corresponding to the column that meets the second condition are used as the i-th data unit pair; Performing an OR operation on the element values belonging to the same row in the column that meets the first condition and the column that meets the second condition; The value of one of the column satisfying the first condition and the column satisfying the second condition is replaced by the result of the OR operation, and the value of the other column is set to 1.
10. The method according to claim 9, characterized in that The first site comprises a second buffer area for caching successfully received data units among the data units; The decoding of the network coded data to obtain the data unit that the first station fails to receive includes: Parsing the frame header corresponding to the network coding data to obtain the data type identifier; When the data type identifier indicates that the corresponding data is the network coded data, parsing the XOR operation indication information; According to the XOR operation indication information, the network coded data is decoded using the data units in the second buffer area to obtain the data units that the first station fails to receive.
11. The method according to claim 10, characterized in that The data type identifier and the XOR operation indication information are located after the receiving address field and the sending address field.
12. The method according to claim 10, characterized in that The method further comprises: When each data unit in the data block is successfully received and reported, the buffer area is released.
13. The method according to claim 9, characterized in that The method further comprises: Sending a multicast request with retransmission to the access point; a reserved value of the group data transmission service GATS retransmission strategy subfield in the sub-element of the multicast request with retransmission is used to indicate a network coding retransmission strategy; the network coding retransmission strategy is a strategy for retransmitting the data block through the network coding data of the data block; A confirmation response to the network coding retransmission strategy is received, which is sent by the access point.
14. A data transmission device, characterized in that: The device is used in an access point, and comprises: A data block sending module, used for sending a data block to at least two sites in a multicast or broadcast manner, wherein the data block includes at least two data units; an acknowledgment information receiving module, configured to receive block acknowledgment BA information sent by the at least two sites, wherein the BA information is used to indicate a reception status of the at least two data units by the corresponding site; A coding module, configured to perform XOR coding on the data units that the at least two sites fail to receive according to the BA information sent by the at least two sites, so as to obtain network coding data of the data block; A coded data sending module, used for sending the network coded data to the at least two sites by multicast or broadcast; The frame header corresponding to the network coding data includes a data type identifier and XOR operation indication information; The data type identifier is used to indicate whether the corresponding data is the network coding data; The XOR operation indication information is used to indicate the corresponding relationship between the data units of the XOR operation between two of them; The encoding module performs XOR encoding on the data units that fail to be received by the at least two sites according to the BA information sent by the at least two sites to obtain the network coding data of the data block, including: Based on the BA information sent by the at least two sites, determine at least one data unit pair from the at least two data units, where the data unit pair includes two of the data units; Performing XOR operations on data units in the at least one data unit pair respectively, to obtain network coded data of the data block; The determining, based on the BA information sent by the at least two sites, at least one data unit pair from the at least two data units comprises: Based on the BA information sent by the at least two sites, construct a BA bitmap matrix, wherein a value of the p-th row and the q-th column in the BA bitmap matrix is used to indicate reception information of the p-th site for the q-th data unit, wherein the reception information includes reception success or reception failure; Obtaining row weights of each row in the BA bitmap matrix and column weights of each column in the BA bitmap matrix; the row weights are positively correlated with the values in the corresponding rows; the column weights are positively correlated with the values in the corresponding columns; Based on the row weights of the rows in the BA bitmap matrix and the column weights of the columns in the BA bitmap matrix, sequentially determining the at least one data unit pair from the at least two data units includes: When determining the i-th data unit pair in the at least one data unit pair, determining a target row in the BA bitmap matrix, the target row being a row with the smallest weight of the current row; Determine, according to the target row, a column that satisfies a first condition and a column that satisfies a second condition in the BA bitmap matrix; the first condition includes: in the column corresponding to the 0 element of the target row, the column weight is the smallest; the second condition includes: in the column corresponding to the 1 element of the target row, the column weight is the smallest; The data unit corresponding to the column that meets the first condition and the data unit corresponding to the column that meets the second condition are used as the i-th data unit pair; Performing an OR operation on the element values belonging to the same row in the column that meets the first condition and the column that meets the second condition; The value of one of the column satisfying the first condition and the column satisfying the second condition is replaced by the result of the OR operation, and the value of the other column is set to 1.
15. A data transmission device, characterized in that: The device is used in a first site, where the first site is any one of at least two sites, and the device includes: A data block receiving module, used to receive a data block sent by an access point in a multicast or broadcast manner, wherein the data block includes at least two data units; A confirmation information sending module, used to send block confirmation BA information to the access point, wherein the BA information is used to indicate the reception status of the at least two data units by the corresponding station; a coded data receiving module, configured to receive network coded data sent by the access point in a multicast or broadcast manner, wherein the network coded data is obtained by the access point performing XOR coding on data units that failed to be received by the at least two stations according to BA information sent by the at least two stations; A decoding module, used for decoding the network coded data to obtain a data unit that fails to be received by the first station; The frame header corresponding to the network coding data includes a data type identifier and XOR operation indication information; The data type identifier is used to indicate whether the corresponding data is the network coding data; The XOR operation indication information is used to indicate the corresponding relationship between the data units of the XOR operation between two of them; The network coding data is specifically obtained by the access point determining at least one data unit pair from the at least two data units based on the BA information sent by the at least two sites, the data unit pair including two data units; and performing an exclusive OR operation on two of the data units in the at least one data unit pair respectively; The determining, based on the BA information sent by the at least two sites, at least one data unit pair from the at least two data units includes: Based on the BA information sent by the at least two sites, construct a BA bitmap matrix, wherein a value of the p-th row and the q-th column in the BA bitmap matrix is used to indicate reception information of the p-th site for the q-th data unit, wherein the reception information includes reception success or reception failure; Obtaining row weights of each row in the BA bitmap matrix and column weights of each column in the BA bitmap matrix; the row weights are positively correlated with the values in the corresponding rows; the column weights are positively correlated with the values in the corresponding columns; Based on the row weights of the rows in the BA bitmap matrix and the column weights of the columns in the BA bitmap matrix, sequentially determining the at least one data unit pair from the at least two data units includes: When determining the i-th data unit pair in the at least one data unit pair, determining a target row in the BA bitmap matrix, the target row being a row with the smallest weight of the current row; Determine, according to the target row, a column that satisfies a first condition and a column that satisfies a second condition in the BA bitmap matrix; the first condition includes: in the column corresponding to the 0 element of the target row, the column weight is the smallest; the second condition includes: in the column corresponding to the 1 element of the target row, the column weight is the smallest; The data unit corresponding to the column that meets the first condition and the data unit corresponding to the column that meets the second condition are used as the i-th data unit pair; Performing an OR operation on the element values belonging to the same row in the column that meets the first condition and the column that meets the second condition; The value of one of the column satisfying the first condition and the column satisfying the second condition is replaced by the result of the OR operation, and the value of the other column is set to 1.
16. A computer device, characterized in that: The computer device is an access point, and the computer device includes a processor, a memory, and a transceiver; The transceiver sends a data block to at least two sites by multicast or broadcast, wherein the data block includes at least two data units; The transceiver is used to receive block confirmation BA information sent by the at least two sites, where the BA information is used to indicate the reception status of the at least two data units by the corresponding site; The processor is configured to perform XOR encoding on the data units that the at least two sites fail to receive according to the BA information sent by the at least two sites, so as to obtain network coded data of the data block; The transceiver is used to send the network coding data to the at least two sites by multicast or broadcast; The frame header corresponding to the network coding data includes a data type identifier and XOR operation indication information; The data type identifier is used to indicate whether the corresponding data is the network coding data; The XOR operation indication information is used to indicate the corresponding relationship between the data units of the XOR operation between two of them; The processor performs XOR encoding on the data units that fail to be received by the at least two sites according to the BA information sent by the at least two sites to obtain the network coded data of the data block, including: Based on the BA information sent by the at least two sites, determine at least one data unit pair from the at least two data units, where the data unit pair includes two of the data units; Performing XOR operations on data units in the at least one data unit pair respectively, to obtain network coded data of the data block; The determining, based on the BA information sent by the at least two sites, at least one data unit pair from the at least two data units comprises: Based on the BA information sent by the at least two sites, construct a BA bitmap matrix, wherein a value of the p-th row and the q-th column in the BA bitmap matrix is used to indicate reception information of the p-th site for the q-th data unit, wherein the reception information includes reception success or reception failure; Obtaining row weights of each row in the BA bitmap matrix and column weights of each column in the BA bitmap matrix; the row weights are positively correlated with the values in the corresponding rows; the column weights are positively correlated with the values in the corresponding columns; Based on the row weights of the rows in the BA bitmap matrix and the column weights of the columns in the BA bitmap matrix, sequentially determining the at least one data unit pair from the at least two data units includes: When determining the i-th data unit pair in the at least one data unit pair, determining a target row in the BA bitmap matrix, the target row being a row with the smallest weight of the current row; Determine, according to the target row, a column that satisfies a first condition and a column that satisfies a second condition in the BA bitmap matrix; the first condition includes: in the column corresponding to the 0 element of the target row, the column weight is the smallest; the second condition includes: in the column corresponding to the 1 element of the target row, the column weight is the smallest; The data unit corresponding to the column that meets the first condition and the data unit corresponding to the column that meets the second condition are used as the i-th data unit pair; Performing an OR operation on the element values belonging to the same row in the column that meets the first condition and the column that meets the second condition; The value of one of the column satisfying the first condition and the column satisfying the second condition is replaced by the result of the OR operation, and the value of the other column is set to 1.
17. A computer device, characterized in that: The computer device is a first site, the first site is any one of at least two sites, and the computer device includes a processor, a memory, and a transceiver; The transceiver is used to receive a data block sent by an access point in a multicast or broadcast manner, wherein the data block includes at least two data units; The transceiver is used to send block confirmation BA information to the access point, where the BA information is used to indicate the reception status of the at least two data units by the corresponding station; The transceiver is used to receive network coding data sent by the access point in a multicast or broadcast manner, where the network coding data is obtained by the access point performing XOR coding on data units that fail to be received by the at least two stations according to BA information sent by the at least two stations; The processor is configured to decode the network coded data to obtain a data unit that the first station fails to receive; wherein the frame header corresponding to the network coded data includes a data type identifier and XOR operation indication information; The data type identifier is used to indicate whether the corresponding data is the network coding data; The XOR operation indication information is used to indicate the corresponding relationship between the data units of the XOR operation between two of them; The network coding data is specifically obtained by the access point determining at least one data unit pair from the at least two data units based on the BA information sent by the at least two sites, the data unit pair including two data units; and performing an exclusive OR operation on two of the data units in the at least one data unit pair respectively; The determining, based on the BA information sent by the at least two sites, at least one data unit pair from the at least two data units comprises: Based on the BA information sent by the at least two sites, construct a BA bitmap matrix, wherein a value of the p-th row and the q-th column in the BA bitmap matrix is used to indicate reception information of the p-th site for the q-th data unit, wherein the reception information includes reception success or reception failure; Obtaining row weights of each row in the BA bitmap matrix and column weights of each column in the BA bitmap matrix; the row weights are positively correlated with the values in the corresponding rows; the column weights are positively correlated with the values in the corresponding columns; Based on the row weights of the rows in the BA bitmap matrix and the column weights of the columns in the BA bitmap matrix, sequentially determining the at least one data unit pair from the at least two data units includes: When determining the i-th data unit pair in the at least one data unit pair, determining a target row in the BA bitmap matrix, the target row being a row with the smallest weight of the current row; Determine, according to the target row, a column that satisfies a first condition and a column that satisfies a second condition in the BA bitmap matrix; the first condition includes: in the column corresponding to the 0 element of the target row, the column weight is the smallest; the second condition includes: in the column corresponding to the 1 element of the target row, the column weight is the smallest; The data unit corresponding to the column that meets the first condition and the data unit corresponding to the column that meets the second condition are used as the i-th data unit pair; Performing an OR operation on the element values belonging to the same row in the column that meets the first condition and the column that meets the second condition; The value of one of the column satisfying the first condition and the column satisfying the second condition is replaced by the result of the OR operation, and the value of the other column is set to 1.
18. A computer-readable storage medium, characterized in that: The storage medium stores a computer program, and the computer program is used to be executed by a processor to implement the data transmission method according to any one of claims 1 to 13.
Citation Information
Patent Citations
Data broadcast ARQ method based on maximum-minimum network encoding
CN104852788A