WO2024067430A1 - 一种传输方法、系统及相关装置 - Google Patents

一种传输方法、系统及相关装置 Download PDF

Info

Publication number
WO2024067430A1
WO2024067430A1 PCT/CN2023/120902 CN2023120902W WO2024067430A1 WO 2024067430 A1 WO2024067430 A1 WO 2024067430A1 CN 2023120902 W CN2023120902 W CN 2023120902W WO 2024067430 A1 WO2024067430 A1 WO 2024067430A1
Authority
WO
WIPO (PCT)
Prior art keywords
terminal
frame
fountain
frames
coded
Prior art date
Application number
PCT/CN2023/120902
Other languages
English (en)
French (fr)
Inventor
冯冰
孟梦
张利
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2024067430A1 publication Critical patent/WO2024067430A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received

Definitions

  • the present application relates to the field of communications, and in particular to a transmission method, system and related devices.
  • the present application provides a transmission method, system and related devices, which realize fountain coding of multicast data frames.
  • fountain coding By means of fountain coding, the number of multicast data frames received by a multicast client is increased, and the possibility of the multicast client receiving complete multicast data is improved.
  • the present application provides a transmission method, comprising:
  • the first terminal generates n multicast data frames based on the first IP message, where the multicast data frames include a source data unit;
  • the first terminal obtains m coded data units by fountain coding n source data units in n multicast data frames;
  • the first terminal generates m fountain coded frames based on the m coded data units
  • the first terminal multicasts m fountain coded frames to multiple node devices.
  • the first terminal can obtain the fountain coded frame based on the multicast data frame, and multicast the fountain coded frame to multiple node devices.
  • the node device receives any n fountain coded frames, it can decode and obtain the multicast data frame. Since the first terminal increases the number of multicast data frames, it is easier for the node device to receive n fountain coded frames and obtain complete multicast data.
  • the first terminal obtains m coded data units by fountain coding the n source data units in the n multicast data frames, specifically including: the first terminal obtains m coded data units by q times redundant fountain coding based on the n source data units, where m is equal to
  • the first terminal determines a value of q based on the importance of the n source data units. The higher the importance of the source data unit, the greater the value of q.
  • the first terminal can determine the redundancy multiple based on the importance of the data in the multicast data frame, which can not only reduce the used air interface resources but also ensure the transmission reliability of important data.
  • the n source data units include a first source data unit, the first source data unit includes an I frame mark field, the I frame mark field is used to identify the importance of the n source data units, and the n source data units whose value of the I frame mark field is a first value are more important than the n source data units whose value of the I frame mark field is a second value; the first terminal determines the value of q based on the importance of data content of the n source data units, specifically including:
  • the first terminal determines that the value of q is the third value
  • the first terminal determines that the value of q is the fourth value, and the third value is greater than the fourth value.
  • the first terminal can reduce the air interface resources occupied by the P frame and improve the transmission success rate of the I frame data.
  • the m coded data units include n original data units and (m-n) redundant data units, and the n original data units are the same as the n source data units.
  • a node device when a node device receives n original data units, it can obtain a multicast data frame without fountain decoding.
  • the first terminal multicasts m fountain coded frames to multiple node devices, specifically including:
  • the first terminal sends a fountain coded frame including an original data unit with a first modulation and coding strategy MCS, and sends a fountain coded frame including a redundant data unit with a second MCS, wherein a value of the first MCS is greater than a value of the second MCS.
  • the first terminal can set different MCSs for the fountain coded frames to ensure that the node device receives a sufficient number of fountain coded frames as much as possible.
  • the first terminal multicasts m fountain coded frames to multiple node devices, specifically including:
  • the first terminal After sending n fountain coding frames including original data units, the first terminal continuously sends p (m-n) fountain coding frames including redundant data units, where p is greater than or equal to 1.
  • the first terminal can send the same fountain coding frame including redundant data units multiple times, reducing the calculation overhead of fountain coding, and by repeatedly sending fountain coding frames, increasing the number of fountain coding frames received by the power-saving device.
  • the first terminal multicasts a fountain coded frame at a first rate, where the fountain coded frame includes m fountain coded frames; and the method further includes:
  • the first terminal Before sending the fountain coded frame at the first rate, the first terminal sends a first action frame to the second terminal among the multiple node devices, where the first action frame is used to notify the second terminal to feed back a second action frame, and the second action frame is used to indicate a decoding success rate of the fountain coded frame parsed by the second terminal;
  • the first terminal When the first terminal determines that the decoding success rate of the second terminal is higher than the first threshold value based on the received second action frame, the first terminal multicasts w detection frames to multiple node devices, where the w detection frames include a detection frame identification field for indicating that the data frame is a detection frame, and the first terminal obtains the w detection frames based on the w fountain coding frames sent most recently;
  • the first terminal receives a third action frame from a plurality of node devices, where the third action frame is used to indicate the number of detection frames received by the node device;
  • the first terminal When the first terminal determines based on the third action frames of the multiple node devices that the number of detection frames received by the multiple node devices is greater than the second threshold value, the first terminal sends fountain coded frames at a second rate, and the second rate is greater than the first rate; when the first terminal determines based on the third action frames of the multiple node devices that the number of detection frames received by any node device among the multiple node devices is less than the second threshold value, the first terminal sends fountain coded frames at the first rate.
  • the first action frame includes an identifier of the second terminal.
  • the first terminal can determine the channel transmission quality based on the selected feedback node.
  • the feedback node that receives the first action frame that is, the second terminal has a higher decoding success rate
  • the first terminal can determine that the channel quality is good based on the second action frame.
  • the first terminal can multicast and send a detection frame, and decide whether to increase the transmission rate of the fountain coded frame based on the situation of all node devices receiving the detection frame.
  • the multiple node devices further include a third terminal; the first terminal sends fountain coded frames at a third rate, and the method further includes:
  • the first terminal receives a fourth action frame sent by the third terminal, and sends a fountain coded frame at a fourth rate, where the fourth rate is lower than the third rate; wherein the fourth action frame carries the number of decoding failures of the third terminal, where the number of decoding failures is used to indicate the number of coded blocks that failed to be received by the third terminal, and one coded block includes a fountain coded frame obtained by the first terminal performing one fountain coding operation.
  • the first terminal can determine that some node devices have failed to receive fountain coded frames more times.
  • the first terminal can reduce the transmission rate of fountain coded frames and increase the number of fountain coded frames received by these node devices.
  • the value of the third rate when the number of decoding failures is less than the first number of failures, the value of the third rate is the first rate value; when the number of decoding failures is greater than the first number of failures, the value of the third rate is the second rate value, and the second rate value is less than the first rate value.
  • the first terminal can determine the rate of transmitting fountain coded frames based on the value of the decoding failure count field of the fourth action frame. The greater the number of decoding failures, the lower the rate of transmitting fountain coded frames.
  • the second terminal is used to send a second action frame to the first terminal, and after the first terminal receives a fourth action frame, the method further includes:
  • the first terminal notifies the second terminal to stop sending the second action frame
  • the first terminal notifies the third terminal to send a second action frame.
  • the first terminal when receiving the fourth action frame from the third terminal, the first terminal can determine that the third terminal has failed to receive fountain coded frames more times, determine the third terminal with worse reception as a feedback node, and increase the number of fountain coded frames received by all node devices.
  • the method further includes:
  • the first terminal receives the fifth action frame sent by the second terminal, and stops sending the m fountain coded frames.
  • the fifth action frame is used to indicate that the second terminal successfully parses and obtains n multicast data frames.
  • the first terminal after receiving the fifth action frame of the feedback node indicating that a sufficient number of fountain coded frames have been successfully received, the first terminal can stop sending fountain coded frames belonging to the data block to reduce the occupation of air interface resources. After receiving the fifth action frame, the first terminal can send fountain coded frames for the next data block.
  • the present application provides a transmission method, comprising:
  • the second terminal receives a fountain coded frame of the first coded block sent by the first terminal, the fountain coded frame includes a block number BN field and a source data unit quantity field, wherein the first coded block includes m fountain coded frames, the value of the BN field of the m fountain coded frames is the same, and the source data unit quantity field is used to indicate the number of source data units of the multicast data frame obtained by the m fountain coded frames;
  • the second terminal determines, based on the BN field of the received fountain coding frame, that the received fountain coding frame belongs to the first coding block;
  • the second terminal obtains the multicast data frame through fountain decoding based on the received fountain coded frames belonging to the first coding block.
  • the second terminal when receiving fountain coded frames of the number indicated by the source data unit number field, the second terminal can obtain multicast data frames by fountain decoding the received fountain coded frames.
  • the fountain coding frame includes a symbol index SI field, and the symbol index field is used to identify different fountain coding frames belonging to the same data block; when the number of fountain coding frames belonging to the first coding block received by the second terminal is equal to the value of the source data unit number field, the second terminal obtains the multicast data frame through fountain decoding based on the received fountain coding frame belonging to the first coding block, specifically including:
  • the second terminal obtains the multicast data frame through fountain decoding based on the received fountain coded frames belonging to the first coding block.
  • the second terminal needs fountain coded frames whose number reaches the value of the source data unit number field and whose coded data units are different to obtain the multicast data frame.
  • the second terminal can determine whether the received fountain coded frames are the same fountain coded frames based on the SI field.
  • the second terminal receives a first action frame including an identifier of the second terminal and sent by the first terminal before receiving the fountain coding frame sent by the first terminal;
  • the second terminal In response to the first action frame, the second terminal sends a second action frame to the first terminal at a preset feedback time.
  • the second action frame is used to indicate the decoding success rate of the fountain coded frames received by the second terminal.
  • the decoding success rate is obtained by the second terminal based on the number of coded blocks received and the number of coded blocks successfully parsed.
  • the second terminal can feed back the situation of receiving fountain coded frames to the first terminal, so that the first terminal can adjust the transmission rate of transmitting fountain coded frames based on the reception situation of the second terminal.
  • the second terminal when the number of fountain coded frames belonging to the first coding block received by the second terminal is equal to the value of the source data unit number field, the second terminal obtains the multicast data frame through fountain decoding based on the received fountain coded frame belonging to the first coding block, the method further includes:
  • the second terminal sends a fifth action frame to the first terminal, where the fifth action frame is used to indicate that the second terminal successfully receives the fountain coded frame of the first coded block; the fifth action frame is also used to notify the first terminal to stop sending the fountain coded frame of the first coded block.
  • the method after receiving a first action frame sent by the first terminal and including an identifier of the second terminal, the method further includes:
  • the second terminal receives a first action frame including an identifier of the third terminal and sent by the first terminal;
  • the second terminal stops sending the second action frame to the first terminal.
  • the second terminal after receiving the instruction from the first terminal to stop sending the second action frame, the second terminal no longer sends the second action frame to the first terminal.
  • the second terminal when the second terminal receives the detection frame sent by the first terminal, the second terminal records the number of received detection frames, where the detection frames include the first detection frame;
  • the second terminal After receiving the first detection frame, the second terminal does not receive the next detection frame after a preset reception time.
  • the second terminal generates a third action frame based on the recorded number of detection frames.
  • the third action frame includes a detection frame reception number field, and the value of the detection frame number field is the number of detection frames received by the second terminal.
  • the second terminal can feed back the number of received detection frames to the first terminal, so that the first terminal can determine the detection frame reception status of the second terminal.
  • the second terminal is used to record the number of decoding failures when receiving the fountain coded frame sent by the first terminal, where the number of decoding failures is used to indicate the number of data blocks that failed to be parsed by the second terminal; the method further includes:
  • the second terminal determines that the received fountain coded frame belongs to the next data block based on the value of the BN field of the received fountain coded frame, if the second terminal determines that the number of received fountain coded frames belonging to the current data block is less than the value of the source data unit number field of the fountain coded frame of the current data block, the number of data blocks for which parsing failed recorded by the second terminal increases by 1.
  • the second terminal sends a fourth action frame carrying a decoding failure number field to the first terminal.
  • the value of the decoding failure number field is the same as the value of the decoding failure number of the second terminal.
  • the fourth action frame is used to notify the first terminal to reduce the rate of transmitting fountain coded frames.
  • the second terminal can feed back the number of decoding failures of the second terminal to the first terminal, so that the first terminal reduces the rate of transmitting fountain coded frames and improves the success rate of the second terminal receiving fountain coded frames.
  • the present application provides a communication device, including one or more processors, one or more memories, and a transceiver.
  • the transceiver and the one or more memories are coupled to the one or more processors, and the one or more memories are used to store computer program codes, and the computer program codes include computer instructions.
  • the communication device executes the method in any possible implementation of the first aspect.
  • the communication device may be a terminal or other equipment in other product forms.
  • the present application provides a computer storage medium, comprising computer instructions, which, when executed on a computer, enable the computer to execute a method in any possible implementation of the first aspect.
  • the present application provides a computer program product, which, when executed on a computer, enables the computer to execute a method in any possible implementation of the first aspect.
  • the present application provides a communication device, comprising one or more processors, one or more memories, and a transceiver.
  • the transceiver and the one or more memories are coupled to the one or more processors, the one or more memories are used to store computer program codes, the computer program codes include computer instructions, and when the one or more processors execute the computer instructions, the communication device executes the method in any possible implementation of the second aspect.
  • the communication device may be a terminal or other equipment in other product forms.
  • the present application provides a computer storage medium, comprising computer instructions, which, when executed on a computer, enable the computer to execute a method in any possible implementation of the second aspect.
  • the present application provides a computer program product, which, when executed on a computer, enables the computer to execute the method in any possible implementation of the second aspect.
  • the present application provides a chip or chip system, which is applied to a terminal, including a processing circuit and an interface circuit, the interface circuit is used to receive code instructions and transmit them to the processing circuit, and the processing circuit is used to run the code instructions to execute the method in any possible implementation of the first aspect above.
  • the present application provides a chip or chip system, applied to a terminal, including a processing circuit and an interface circuit, the interface circuit is used to receive code instructions and transmit them to the processing circuit, and the processing circuit is used to run the code instructions to execute the method in any possible implementation of the above-mentioned second aspect.
  • FIG1 is a schematic diagram of a communication system 10 provided in an embodiment of the present application.
  • FIG2 is a schematic diagram of a transmission multicast data frame provided in an embodiment of the present application.
  • FIG3A is a schematic diagram of a process of generating a fountain coding frame by a terminal 100 according to an embodiment of the present application
  • FIG3B is a schematic diagram of a frame format of a fountain coding frame provided in an embodiment of the present application.
  • FIG3C is a schematic diagram of a process of IP fragmentation provided in an embodiment of the present application.
  • FIG4 is a schematic diagram of a transmission fountain coding frame provided in an embodiment of the present application.
  • FIG5 is a schematic diagram of an I frame tag field provided in an embodiment of the present application.
  • FIG6 is a schematic diagram of a fountain encoding process of an I frame and a P frame provided in an embodiment of the present application
  • FIG7 is a schematic diagram of a transmission rate of a fountain coding frame provided in an embodiment of the present application.
  • FIG8 is a schematic diagram of a frame structure of an action frame provided in an embodiment of the present application.
  • FIG9 is a flow chart of a method for improving the data transmission rate of fountain coded frames provided in an embodiment of the present application.
  • FIG10 is a flow chart of a method for reducing the data transmission rate of fountain coded frames provided in an embodiment of the present application
  • FIG11 is a schematic diagram of a process of transmitting fountain coded frames provided in an embodiment of the present application.
  • FIG12 is a schematic diagram of another process of transmitting fountain coded frames provided in an embodiment of the present application.
  • FIG13 is a schematic diagram of a hardware structure provided in an embodiment of the present application.
  • first and second are used for descriptive purposes only and are not to be understood as suggesting or implying relative importance or implicitly indicating the number of the indicated technical features.
  • a feature defined as “first” or “second” may explicitly or implicitly include one or more of the features, and in the description of the embodiments of the present application, unless otherwise specified, "plurality” means two or more.
  • a communication system 10 provided in an embodiment of the present application is introduced below.
  • FIG1 shows a schematic diagram of a communication system 10 provided in an embodiment of the present application.
  • the communication system 10 may include one or more terminals, and the one or more terminals include a multicast server and at least one multicast client.
  • multicast is a one-to-many communication mode between terminals.
  • Multicast can be understood as a technology in which one or more multicast sources (also called multicast servers) send the same data frame to multiple receivers (also called multicast clients, or node devices).
  • the multicast server can send a data frame to a specific multicast address.
  • the multicast address is different from the unicast address. It does not belong to a certain terminal, but to all terminals in the same group.
  • a multicast address can represent a group, and only the terminals in the group can receive the multicast data frames of the group.
  • the multicast server can be a terminal 100, and at least one multicast client can include but is not limited to a terminal 200, a terminal 300, etc.
  • the multicast server can be used to send a multicast data frame, and the multicast data frame includes a destination address, and the destination address is an agreed multicast address, and all terminals belonging to the group store the agreed multicast address.
  • the multicast client can be used to receive a multicast data frame, and when receiving a multicast data frame, determine whether to parse the multicast data frame based on the destination address of the multicast data frame.
  • the multicast client can parse the multicast data frame when it is determined that the destination address of the multicast data frame is the agreed multicast address.
  • the multicast client can discard the data frame when it is determined that the destination address of the multicast data frame is not the agreed multicast address.
  • each terminal in the group can send/receive multicast data frames through wireless fidelity (Wi-Fi) technology.
  • the multicast server transmits Wi-Fi multicast data to multiple multicast clients through a Wi-Fi network.
  • the multicast server can be a terminal device such as a Wi-Fi router and a mobile phone
  • the multicast client can be a terminal device such as a mobile phone.
  • the terminal 100 can multicast the screen displayed by the terminal 100 to multiple terminals to achieve one-to-many screen sharing.
  • the terminal 100 can multicast to share videos, game screens, etc. to multiple terminals.
  • Wi-Fi multicast can save air interface transmission resource overhead and can reduce the delay difference between recipients.
  • the multicast server and each multicast client do not need to establish a communication connection, for example, a point-to-point (peer to peer, P2P) connection, and the multicast client can also receive the multicast data sent by the multicast server. It is understandable that when the multicast server and one or more of the multicast clients have a communication connection, it will not affect the sending/receiving of multicast data.
  • a communication connection for example, a point-to-point (peer to peer, P2P) connection
  • the multicast address of the multicast data frame may include a Media Access Control Address (MAC) address.
  • MAC Media Access Control Address
  • the upper 25 bits of the multicast MAC address may be 0x01005e
  • the lower 23 bits may be the lower 23 bits of the multicast Internet Protocol Address (IP).
  • IP Internet Protocol Address
  • Each terminal in the group may distinguish whether the data frame is a multicast data frame or a unicast data frame based on the upper 25 bits of the MAC address of the data frame.
  • the multicast client since there are multiple multicast receiving clients, the multicast client cannot immediately reply with an acknowledgment character (ACK) to the multicast server.
  • ACK acknowledgment character
  • the multicast server does not know the status of each multicast client receiving the multicast data frame, and therefore cannot perform packet loss retransmission operations in a timely manner, resulting in low reliability of multicast transmission.
  • the multicast server can repeatedly send the same multicast data frame multiple times when sending the multicast data frame. In this way, increasing the number of times each multicast data frame is sent by the multicast server can increase the probability that each multicast client receives the multicast data frame and improve the reliability of multicast transmission.
  • the multicast service terminal 100 may multicast and send multiple multicast data frames, including data frame 1, data frame 2, and data frame 3.
  • the terminal 100 After sending the data frame 1, data frame 2, and data frame 3, the terminal 100 sends the data frame 1, data frame 2, and data frame 3 again.
  • the multicast client terminal 200 receives a total of 3 data frames, the multicast data in the data frame 3 cannot be obtained because the terminal 200 fails to receive the data frame 3 twice in a row.
  • the embodiment of the present application provides a transmission method.
  • the multicast server can first perform fountain coding on the n multicast data frames (also called multicast data packets, source data packets, source data frames) to obtain m fountain coded frames (also called fountain coded data packets), where m is greater than n, and then multicast the m fountain coded frames to multiple multicast clients.
  • the terminal receives n fountain coded frames among m fountain coded frames, it can perform fountain code decoding operation on the n fountain coded frames to obtain the n multicast data frames.
  • the multicast server can generate countless fountain coded frames based on the multicast data frames according to the degree distribution function. As long as the multicast client receives any at least n data frames, it can decode and obtain the complete multicast data frame.
  • the terminal 100 may generate the n multicast data frames based on the network layer protocol data unit, and the multicast data frames include the source data unit.
  • the terminal 100 may obtain m coded data units by fountain coding the n source data units of the n multicast data frames, and then obtain m fountain coded frames based on the m coded data units.
  • the m coded data units are redundant data units, and data of any redundant data unit is different from data of any source data unit.
  • the m coded data units include n original data units having the same data as the source data units, and (m-n) redundant data units.
  • the terminal 100 may first send a fountain coding frame including an original data unit, and then send a fountain coding frame including a redundant data unit.
  • m coded data units include n original data units with data identical to the source data unit, and (m-n) redundant data units, and first send a fountain coding frame including a source data unit and then send a fountain coding frame including a redundant data unit.
  • the terminal 100 when the terminal 100 multicasts data, the terminal 100 first obtains a data link layer protocol data unit.
  • the data link layer protocol data unit is also called a MAC protocol data unit (mac protocol data unit, MPDU).
  • MPDU consists of a first Ethernet header and a network layer protocol data unit.
  • the MPDU is the above-mentioned multicast data frame.
  • the first Ethernet header includes a source MAC address field, a destination MAC address field and a type field.
  • the value of the source MAC address field is the MAC address of the terminal 100.
  • the length of the source MAC address field can be 6 bytes.
  • the value of the destination MAC address is a multicast address value.
  • the type field can be used to indicate the type of the data frame.
  • the length of the type field can be 2 bytes.
  • the type field indicates that this data frame is a data frame carrying data content (for example, screen projection data), and the data frame can be used to transmit data.
  • the type field indicates that this data frame is an address resolution protocol (ARP) request.
  • ARP address resolution protocol
  • the network layer protocol data unit includes a network layer protocol header and a transport layer protocol data unit.
  • the network layer protocol data unit may be an IP datagram
  • the network layer protocol header may be an IP message header
  • the transport layer protocol data unit may be a user datagram protocol (UDP) message segment.
  • the IP message header includes an identification field, and the identification field may be used to identify the IP datagram.
  • the terminal 100 may use one or more MPDU network layer protocol data units with the same value of the identification field as source data units. Afterwards, the terminal 100 may use the one or more source data units as input data of the fountain coding algorithm, and obtain a coded data unit through calculation by the fountain code coding algorithm.
  • the coded data unit includes an original data unit and a redundant data unit. The redundant data unit is different from the original data unit, and the data of the original data unit is the same as the data of the source data unit.
  • the fountain code coding algorithm may be a low density parity check code (LDPC) algorithm.
  • the terminal 100 may use the one or more source data units as input data of a fountain coding algorithm, calculate redundant data units through the fountain coding algorithm, and use the source data units as original data units, wherein the original data units and redundant data units are collectively referred to as coded data units.
  • n source data units can be encoded with a single-redundant fountain code to obtain 2n encoded data units, and the 2n encoded data units include the n original data units and the n redundant data units.
  • n source data units can be encoded with a double-redundant fountain code to obtain 3n encoded data units, and the 3n encoded data units include the n original data units and the 2n redundant data units. And so on.
  • the terminal 100 may add a header to the coded data unit to obtain a fountain coded frame.
  • the terminal 100 may add a header to the original data unit 1 shown in FIG. 3A to obtain a fountain coded frame 1, and add a header to the redundant data unit 1 to obtain a fountain coded frame 4.
  • the frame format of the fountain coded frame may be as shown in FIG. 3B.
  • the fountain coding frame may include, but is not limited to, an 802.11 header, a second Ethernet header, a Huawei magnetic link (HML) header, and a coded data unit.
  • the coded data unit may be an original data unit or a redundant data unit.
  • the 802.11 header may be a header provided by the 802.11 protocol, which may be used by the terminal 100 to send Wi-Fi data.
  • the second Ethernet header includes a source MAC address field, a destination MAC address field, and a type field. The values of the source MAC address field and the destination MAC address field of the second Ethernet header are the same as those of the first Ethernet header.
  • the type field of the second Ethernet header is obtained by the terminal 100 based on the type field of the first Ethernet header.
  • the type field of the second Ethernet header can be used to identify the frame as a fountain coded frame or an action frame.
  • the length of the type field can also be 2 bytes.
  • the value of the last 8 bits is used to identify the type of the data frame.
  • the last 8 bits of the value of the type field of the second Ethernet header correspond to the last 8 bits of the first Ethernet header.
  • the type field indicates that the data frame is a fountain coded frame; when the value of the first 8 bits of the value of the type field is 0xFE, the type field indicates that the data frame is an action frame.
  • the description of the action frame can refer to the description of the subsequent embodiments.
  • the HML header may include but is not limited to a protocol type field, a modulation and coding scheme (MCS) field, a guarding interval (GI) field, the number of spatial streams (NSS) field, a detection frame mark field, a block number (BN) field, a symbol index (SI) field, and a source data unit number field, etc.
  • MCS modulation and coding scheme
  • GI guarding interval
  • NSS number of spatial streams
  • BN block number
  • SI symbol index
  • source data unit number field etc.
  • the data transmission rate (also known as data transmission rate) of the data frame is determined by multiple factors such as the modulation method, the coding rate, the protection interval, the number of spatial streams, etc.
  • the terminal 100 can provide multiple data transmission rates for data frames based on the multiple factors.
  • MCS provides a data transmission rate table for the data frame, which takes the factors affecting the transmission rate as columns and the MCS order as rows.
  • Each MCS order corresponds to a set of determined influencing factors and the data transmission rate of the terminal 100 under the influencing factors. The higher the order of MCS, the faster the data transmission rate.
  • the order of MCS generally includes 1st to 11th order.
  • the 1st order MCS can be expressed as MCS1
  • the 2nd order MCS can be expressed as MCS2, and so on.
  • the correspondence between the MCS order and the coding method, coding rate, protection interval, number of spatial streams and data transmission rate can refer to the 64 quadrature amplitude modulation (quadrature amplitude modeling, QAM) table, 256QAM table, low spectrum efficiency 64QAM table and other rate tables, etc.
  • the MCS field is used to indicate the data transmission rate of the terminal 100 sending the data frame.
  • the value of the MCS field can be used to indicate the MCS order.
  • the length of the MCS field can be 4 bits.
  • the MCS field indicates that the terminal 100 modulates the data (including fountain coded frames) to be sent to other multicast clients according to the MCS1 coding multicast. It can be understood that when the MCS order is determined, according to the rate table, the data transmission rate corresponding to the MCS order is also determined.
  • the value of the GI field indicates the interval time between the terminal 100 sending multiple data frames, and is used to reduce mutual interference between multiple wirelessly sent data frames.
  • the NSS field is used to indicate the number of antennas used by the terminal 100 to send wireless signals, and each antenna corresponds to a spatial stream. The more spatial streams there are, the more data the terminal 100 processes, and the higher the transmission rate.
  • the detection frame flag field is used to indicate whether the data frame is a detection frame.
  • the detection frame can be used by the terminal 100 to adjust the MCS order.
  • the length of the detection frame flag field can be 1 bit.
  • the detection frame flag field can be 1 bit.
  • the terminal 100 can copy the most recently sent multiple (for example, 40) fountain coding frames, and modify the detection frame flag field of the copied data frame, for example, from 0 to 1, to obtain a detection frame.
  • the terminal 100 can randomly send a detection frame during the transmission of subsequent fountain coding frames.
  • the multicast client can receive the detection frame, and record the number of received detection frames, and feed back the recorded number to the terminal 100. It can be understood that after receiving a data frame, the multicast client can only record the number of detection frames when identifying that the data frame is a detection frame based on the detection frame flag field, and does not process the coded data unit of the detection frame.
  • the block number field is used to indicate the coding block to which the data frame belongs.
  • the terminal 100 may collectively refer to multiple fountain coded frames obtained through fountain coding operation based on one or more MPDUs with the same value of the identification field as one coding block, and the block number field of the multiple fountain coded frames has the same value.
  • the terminal 100 may divide the MPDU into multiple coding units according to the first number threshold, and then perform fountain code encoding operations on the multiple coding units respectively to obtain multiple coding blocks. For example, if the number of MPDUs is 23, the terminal 100 may divide the MPDU into 3 coding units, wherein the first coding unit includes the first to the tenth MPDUs, the second coding unit includes the eleventh to the twentieth MPDUs, and the third coding unit includes the twenty-first to the twenty-third MPDUs.
  • a first number threshold e.g. 10
  • the terminal 100 may divide the MPDU into multiple coding units according to the first number threshold, and then perform fountain code encoding operations on the multiple coding units respectively to obtain multiple coding blocks. For example, if the number of MPDUs is 23, the terminal 100 may divide the MPDU into 3 coding units, wherein the first coding unit includes the first to the tenth MPDUs, the second coding unit includes the eleventh to the twentieth MPDUs, and the third coding unit includes the twenty
  • the terminal 100 may perform single-redundancy fountain code encoding on the source data unit of the first coding unit to obtain the first coding block, and the first coding block includes 20 fountain coding frames. Similarly, the terminal 100 may perform single-redundancy fountain code encoding on the source data unit of the second coding unit to obtain the second coding block, and the second coding block includes 20 fountain coding frames. Terminal 100 can perform double redundant fountain code encoding on the source data unit of the third coding unit to obtain the third coding block, and the third coding block includes 6 fountain coding frames.
  • the values of the block number fields of multiple fountain coding frames of the first coding block are the same, the values of the block number fields of multiple fountain coding frames of the second coding block are the same, and the values of the block number fields of multiple fountain coding frames of the third coding block are the same.
  • the value of the block number field of the first coding block, the value of the block number field of the second coding block and the value of the block number field of the third coding block are all different.
  • the value of the block number field of the fountain coding frame of the first coding block is 1, the value of the block number field of the fountain coding frame of the second coding block is 2, and the value of the block number field of the fountain coding frame of the third coding block is 3.
  • the value of the Block Number field of the fountain coded frame of the code block is always 3.
  • the symbol index field is used to indicate the order of data frames in the coding block.
  • the value of the symbol index field of fountain coding frame 1 shown in FIG. 3A may be 0, the value of the symbol index field of fountain coding frame 2 may be 1, and so on.
  • the source data unit quantity field is used to indicate the number of source data units, that is, the number of MPDUs, encoded by the terminal 100. For example, as shown in FIG3A , the value of the source data unit quantity field of fountain coding frame 1 to fountain coding frame 6 is 3, indicating that the terminal 100 obtains the multiple fountain coding frames based on 3 MPDUs.
  • Terminal 100 may perform physical layer processing on the fountain coded frame and multicast it to a multicast client, such as terminal 200. Specifically, terminal 100 may obtain the fountain coded frame and modulate the fountain coded frame according to an MCS code of a certain order indicated by the MCS field to obtain a multicast signal. Then, terminal 100 may send the multicast signal to the multicast client via an antenna.
  • the terminal 100 due to the limitation of the maximum transmission unit (MTU), when the length of the IP datagram generated by the terminal 100 is greater than the length of the maximum transmission unit, the terminal 100 cannot encapsulate the IP datagram, and the terminal 100 needs to perform IP fragmentation processing on the IP datagram to obtain multiple IP data fragments.
  • the process of the terminal 100 performing IP fragmentation processing on the IP datagram can refer to the embodiment shown in FIG. 3C. After that, the terminal 100 can encapsulate the IP data fragments at the data link layer.
  • an IP datagram is composed of an IP header and a UDP segment.
  • An IP data fragment is composed of an IP header and a portion of a UDP segment.
  • the IP headers of an IP datagram and an IP data fragment may include, but are not limited to, an identification field, a more fragment (MF) field, and a fragment offset field, etc.
  • the identification field can be used to identify the IP datagram.
  • the terminal 100 is provided with a counter. Each time the terminal 100 generates an IP datagram, the value of the counter is updated, and the updated counter value is assigned to the identification field of the generated IP datagram.
  • the identification field of the IP data fragment has the same value as the identification field of the IP datagram.
  • the multicast client can determine the IP datagram to which the IP data fragment belongs based on the identification field in the IP data fragment.
  • the MF field can be used to identify whether the current IP data segment is the last IP data segment of the IP datagram.
  • the length of the MF field can be 1 bit. When the value of the MF field is 1, it indicates that the IP data segment is not the last IP data segment of the IP datagram; when the value of the MF field is 0, it indicates that the IP data segment is the last IP data segment of the IP datagram. It can be understood that the value of the MF field of the IP datagram is 0.
  • the Fragment Offset field can be used to identify the location of the data of the IP data segment in the IP datagram. It can be understood that the value of the Fragment Offset field of the IP datagram is 0.
  • the terminal 100 After the terminal 100 obtains the IP data fragments, it can encapsulate the IP data fragments with the data link layer protocol to obtain the MPDU. In this way, the terminal 100 obtains the MPDU for fountain code encoding based on the IP datagram.
  • each multicast client can receive the fountain coding frames and parse the fountain coding frames to obtain the multicast data.
  • terminal 200 the process of receiving multicast data by the multicast client is exemplarily introduced.
  • the terminal 200 may receive the multicast signal sent by the terminal 100 through an antenna, and obtain a data frame after physical layer processing of the terminal 200.
  • the terminal 200 may remove the 802.11 header of the data frame, and determine that the data frame is a fountain coded frame based on the type field of the second Ethernet header of the data frame.
  • the terminal 200 may obtain the first Ethernet header based on the second Ethernet header.
  • Terminal 200 may determine the fountain coded frames belonging to the same coding block in the received data frames based on the BN field of the HML header of the fountain coded frame. Afterwards, terminal 200 may determine whether the number of received fountain coded frames belonging to the same coding block is greater than or equal to the number of source data units based on the number of source data units field.
  • the terminal 200 can continue to receive fountain coded frames and determine whether the fountain coded frames belong to the current coding block. If the next fountain coded frame received by the terminal 200 belongs to the current coding block, the terminal 200 can again determine whether the number of fountain coded frames received belonging to the same coding block is greater than or equal to the number of source data units. If the next fountain coded frame received by the terminal 200 does not belong to the current coding block (for example, it belongs to the next coding block), the terminal 200 ends the receiving operation. Optionally, the terminal 200 can discard the fountain coded frames that have been received and belong to the same coding block after ending the receiving operation.
  • the terminal 200 can use the coded data units of the fountain coded frames of the same coding block as the input of the fountain decoding algorithm, and obtain the source data units through the fountain decoding algorithm. After the terminal 200 obtains all the source data units, it can add the first Ethernet header to all the source data units to obtain the MPDU. Afterwards, the terminal 200 can process the MPDU at the data link layer, network layer, transport layer and application layer to obtain multicast data. In some examples, when the multicast data is screen projection data, the terminal 200 can display a video screen synthesized based on the screen projection data.
  • the fountain coding frame received by terminal 200 belongs to the last coding block sent by terminal 100 this time, when it is determined that the number of received fountain coding frames belonging to the same coding block is less than the number of source data units, it can continue to wait for receiving the next fountain coding frame until the fountain coding frame of the coding block sent by terminal 100 next time is received.
  • the terminal 200 when the terminal 200 determines that the number of fountain coded frames received belonging to the same coding block is greater than or equal to the number of source data units, the terminal 200 can determine whether the terminal 200 has received all fountain coded frames including original data units based on the SI fields of the multiple fountain coded frames. The value of the SI field of the fountain coded frame including the original data unit is less than the value of the source data unit number field.
  • the terminal 200 determines that all fountain coded frames including the original data units are received, since the data of the original data unit is the same as the data of the source data unit, the terminal 200 can extract the original data units of all fountain coded frames including the original data units. And add the first Ethernet header to all the original data units to obtain the MPDU.
  • the terminal 200 can process the MPDU at the data link layer, the network layer, the transport layer and the application layer to obtain multicast data.
  • the terminal 200 determines that all fountain coded frames including the original data units are not received, the terminal 200 can calculate the source data unit based on the coded data units of all the received fountain coded frames belonging to the same coding block through the fountain decoding algorithm. In this way, when receiving all fountain coded frames including original data units, the multicast client can directly extract the original data units without calculating the fountain decoding algorithm, and use the original data units as source data units, thereby reducing the calculation overhead of the multicast client.
  • the terminal 200 determines that the number of received fountain coded frames belonging to the same coding block is greater than or equal to the number of source data units, it may no longer process the subsequently received fountain coded frames belonging to the coding block.
  • the three source data frames can be encoded by a double redundant fountain code to obtain six fountain coded frames.
  • the six fountain coded frames may include three fountain coded frames including original data units and three fountain coded frames including redundant data units.
  • the specific operation of the terminal 100 to obtain the fountain coded frame based on the source data frame can refer to the embodiments shown in FIG3A-FIG3C above, which will not be repeated here.
  • the terminal 100 can multicast and send the six fountain coded frames, where the six fountain coded frames include fountain coded frame 1, fountain coded frame 2, fountain coded frame 3, fountain coded frame 4, fountain coded frame 5 and fountain coded frame 6.
  • the terminal 200 receives the fountain coded frames sent by multicast, fountain coded frame 3, fountain coded frame 4 and fountain coded frame 6 are lost due to air interface packet loss.
  • the terminal 200 shown in FIG. 4 only receives three data frames, the data frames received by the terminal 200 shown in FIG. 4 are fountain coded frames, i.e., fountain coded frame 1, fountain coded frame 2 and fountain coded frame 5.
  • the terminal 200 can calculate the data content of the three source data frames based on the coded data units of fountain coded frame 1, fountain coded frame 2 and fountain coded frame 5 through the fountain code decoding algorithm.
  • the terminal 100 uses fountain code encoding for multicast transmission, the higher the coding redundancy, the higher the transmission reliability. However, it will also cause coding delay and increase air interface overhead. Therefore, the terminal 100 needs to reasonably set the fountain code coding redundancy and transmission mechanism (for example, the selection of transmission rate, how to send redundant data units, etc.) to reduce air interface resource overhead while ensuring the reliability of multicast transmission.
  • the fountain code coding redundancy and transmission mechanism for example, the selection of transmission rate, how to send redundant data units, etc.
  • the terminal 100 may determine the fountain coding redundancy of the MPDU based on the importance of the data carried by the MPDU.
  • the terminal 100 may set a higher fountain coding redundancy for the MPDU carrying important data, and the terminal 100 may set a lower fountain coding redundancy for the MPDU carrying non-important data. In this way, the transmission reliability of important data can be guaranteed and the air interface resource overhead can be reduced.
  • each frame of the video may be compressed to obtain an I frame and a P frame.
  • an I frame is a key frame, including data of a complete frame of video image.
  • a P frame is a non-key frame, including data that is different from the previous key frame (or non-key frame).
  • terminal 100 may set the fountain coding redundancy of the MPDU carrying I frame data to be higher than the fountain coding redundancy of the MPDU carrying P frame data when performing fountain coding operation on the MPDU.
  • the terminal 100 may determine whether one or more MPDUs carrying the same identification field include data of an I frame. When the terminal 100 determines that the one or more MPDUs include data of an I frame, the terminal 100 may perform an a-fold redundant fountain code encoding operation on the one or more MPDUs to obtain a fountain coded frame. When the terminal 100 determines that the one or more MPDUs do not include data of an I frame, the terminal 100 may perform a b-fold redundant fountain code encoding operation on the one or more MPDUs to obtain a fountain coded frame. Where a is greater than b.
  • the terminal 100 can determine whether one or more MPDUs include I frame data according to the I frame flag field.
  • the application layer protocol unit generated by the terminal 100 can include an application layer protocol header and a data field.
  • the application layer protocol header includes an I frame flag field, and the I frame flag field can be used to mark whether the value of the data field is I frame data or P frame data.
  • the terminal 100 can determine whether one or more MPDUs include I frame data according to the I frame flag field.
  • multiple IP data fragments are obtained, namely, the source data unit 1 and the source data unit 2 shown in FIG. 5 .
  • the terminal 100 may extract source data units in the MPDUs with the same value of the identification field. And based on the value of the fragment offset field in the IP header of the source data unit, the source data unit 1 including the application layer protocol header is determined. The terminal 100 may determine whether the MPDU carries I frame data based on the I frame flag field of the application layer protocol header of the source data unit 1. The terminal 100 may perform fountain code encoding operation of corresponding multiple redundancy on the one or more MPDUs according to the determination result.
  • the terminal 100 can perform fountain code encoding on the three source data units according to 2 times redundancy to obtain 9 fountain coded frames.
  • the terminal 100 can perform fountain code encoding on the three source data units according to 1 times redundancy to obtain 6 fountain coded frames.
  • the terminal 100 can improve the success rate of I frame data transmission and reduce the air interface resources required for I frame and P frame transmission.
  • the value of a is 2 and the value of b is 1. It can be understood that 2 times redundancy fountain coding and 1 times redundancy fountain coding are only examples, and the terminal 100 can use other multiples of redundant fountain coding.
  • the terminal 100 can perform fountain code encoding on the source data unit according to 1.5 times redundancy, and when the source data unit includes P frame data, the terminal 100 can perform fountain code encoding on the source data unit according to 0.5 times redundancy.
  • the terminal 100 can set the number of fountain coding frames output by the fountain coding algorithm of the terminal 100 to the number obtained after the redundancy multiple is calculated and then rounded up, so that the terminal 100 can obtain an integer number of fountain coding frames, for example, 1.5 times redundancy coding is performed on 3 source data units including I frame data to obtain 8 fountain coding frames; 0.5 times redundancy coding is performed on 3 source data units including P frame data to obtain 5 fountain coding frames.
  • This embodiment of the present application is not limited to this.
  • the terminal 100 can determine whether the data is important based on the application to which the data carried by the MPDU belongs.
  • the terminal 100 can use a times (for example, 2 times) redundant fountain coding multicast to send the data of application A.
  • the terminal 100 can use b times (for example, 1 times) redundant fountain coding multicast to send the data of application B, where a is greater than b.
  • application A can be a screen projection application or an instant messaging application.
  • Application B can be a file editing application, etc.
  • the embodiments of the present application are not limited to this.
  • the division of projection data into important data and unimportant data is only an example, and the terminal 100 can also divide the importance of the data more finely.
  • the importance of the data can be divided into multiple (for example, 3) importance levels.
  • the least important data is encoded with the lowest redundancy, the most important data is encoded with the highest redundancy, and so on. In this way, different redundancies can be divided based on the importance of the projection data.
  • the terminal 100 may also set different transmission rates for fountain coded frames with different redundancy multiples.
  • the terminal 100 may transmit fountain coded frames including original data units at the fastest rate, transmit fountain coded frames including redundant data units with 1x redundant coding at a rate lower than that of the fountain coded frames transmitting the original data units, transmit fountain coded frames including redundant data units with 2x redundant coding at a rate lower than that of the fountain coded frames transmitting the redundant data units with 1x redundant coding, and so on.
  • the terminal 100 may reduce the MCS of the fountain coded frames transmitting the redundant data units with high-multiple redundant coding, thereby increasing the possibility that the multicast client receives the complete multicast data.
  • the terminal 100 can determine whether the fountain coding frame includes the original data unit, the redundant data unit with 1 times redundancy, or the redundant data unit with 2 times redundancy, etc. based on the SI field and the source data unit number field.
  • the value of the SI field of the fountain coding frame is less than the value of the source data unit number field
  • the fountain coding frame is a fountain coding frame including the original data unit.
  • the value of the SI field of the fountain coding frame is less than 2*the value of the source data unit number field, and the fountain coding frame does not include the original data unit, then the fountain coding frame is a fountain coding frame including the redundant data unit with 1 times redundancy.
  • the value of the SI field of the fountain coding frame is less than 3*the value of the source data unit number field, and the fountain coding frame does not include the original data unit and the redundant data unit with 1 times redundancy, then the fountain coding frame is a fountain coding frame including the redundant data unit with 2 times redundancy, and so on.
  • the terminal 100 can determine the original data unit and redundant data units of different multiples.
  • the terminal 100 obtains 9 fountain coding frames based on 3 source data units, and 3 fountain coding frames whose SI field values are less than 3 among the 9 fountain coding frames are transmitted according to the data transmission rate indicated by MSCk.
  • 3 fountain coding frames whose SI field values are greater than 2 and less than 6 among the 9 fountain coding frames are transmitted according to the data transmission rate indicated by MSCk-1.
  • 3 fountain coding frames whose SI field values are greater than 5 and less than 9 among the 9 fountain coding frames are transmitted according to the data transmission rate indicated by MSCk-2.
  • the terminal 100 is not limited to reducing the MCS order by one order each time, and the terminal 100 may also be set to reduce the MCS order by 2 orders or more each time.
  • the terminal 100 may also store the pre-set MCS order of the fountain coding frame including the source data unit, the MCS order of the fountain coding frame including the redundant data unit with 1 times redundancy, and the MCS order of the fountain coding frame including the redundant data unit with 2 times redundancy, etc.
  • the terminal 100 may transmit the fountain coding frame including the source data unit in the fountain coding frame according to the data transmission indicated by MSCk.
  • the fountain coded frames including the redundant data units are transmitted at the data transmission rate indicated by MSCk-1. In this way, the terminal 100 can directly query the stored MCS order relationship to determine the MCS order for sending each fountain coded frame.
  • an embodiment of the present application provides five frame formats of action frames.
  • the 5 action frames may include a first action frame, a second action frame, a third action frame, a fourth action frame and a fifth action frame.
  • the first action frame is an action frame sent by the terminal 100 to a specified multicast client, which can be used for the terminal 100 to select a feedback node.
  • the second action frame is an action frame sent by the feedback node to the terminal 100, which can be used for the feedback node to feedback the decoding success rate of the decoding fountain coded frame to the terminal 100.
  • the third action frame is an action frame sent by all multicast clients to the terminal 100, which can be used for the terminal 100 to detect whether the data transmission rate of the fountain coded frame can be increased.
  • the fourth action frame is an action frame sent by a non-feedback node to the terminal 100, which can be used to prompt the terminal 100 to reduce the data transmission rate of the fountain coded frame.
  • the fifth action frame is an action frame sent by the feedback node to the terminal 100, which can be used to notify the terminal 100 that the feedback node has received the complete multicast data.
  • all action frames include an 802.11 header, a second Ethernet header, a Huawei magnetic link control (HML Control) header, a feedback type field, and a rate information field.
  • the description of the 802.11 header and the second Ethernet header can refer to the embodiment shown in Figure 3B above, and will not be repeated here. It can be understood that the value of the destination MAC address field of the second Ethernet header is a multicast MAC address, and all terminals belonging to the group can receive the action frame.
  • the HML Control header may include but is not limited to an actual MAC address field, a source MAC address field, and a control frame ID field.
  • the actual MAC address field is used to identify the receiving end of the action frame.
  • the value of the actual MAC address may be the MAC address of a multicast client, or a multicast MAC address.
  • the terminal receiving the action frame may determine whether to process the action frame based on the value of the actual MAC address field.
  • the value of the source MAC address field is the MAC address of the terminal sending the action frame.
  • the control frame ID field may be used to mark the order of the current action frame among all sent action frames.
  • the feedback type field can be used to identify the type of the action.
  • the length of the feedback type field can be 3 bits.
  • the value of the feedback type field is 000, it can indicate that the action frame is the first action; when the value of the feedback type field is 001, it can indicate that the action frame is the second action frame; when the value of the feedback type field is 010, it can indicate that the action frame is the third action frame; when the value of the feedback type field is 011, it can indicate that the action frame is the fourth action frame; when the value of the feedback type field is 100, it can indicate that the action frame is the fifth action frame.
  • the rate information field may be used to indicate the data transmission rate of the fountain coded frame including the original data unit sent by the terminal 100.
  • the value of the rate information field is the MCS order set when the terminal 100 transmits the fountain coded frame including the original data unit.
  • the first action frame may also include but is not limited to a node MAC address field, etc.
  • the node MAC address may be used to indicate the MAC address of the feedback node selected by the terminal 100 .
  • the actual MAC address field of the first action frame is used to identify a certain multicast client that receives the first action frame, and the value of the actual MAC address field is the MAC address of the certain multicast client.
  • the terminal 200 of the multicast client receives the first action frame and determines that the value of the actual MAC address field is the same as the value of the MAC address of the terminal 200, the terminal 200 can process the first action frame; otherwise, the terminal 200 can discard the first action frame.
  • the specific description of the terminal 200 processing the first action frame can be found in the embodiments shown in Figures 9 and 10.
  • the second action frame may also include, but is not limited to, a decoding success rate field.
  • the decoding success rate field may be used to indicate the decoding success rate of the feedback node decoding the fountain coded frame. For example, if the feedback node receives x coded blocks, and the feedback node successfully parses and obtains multicast data of y coded blocks out of the x coded blocks, the decoding success rate is y/x. It is understandable that the value of the actual MAC address field of the second action frame is the MAC address of the terminal 100, and the value of the source MAC address field of the second action frame is the MAC address of the feedback node.
  • the third action frame may also include, but is not limited to, a detection rate field and a detection frame reception number field.
  • the detection rate field may be used to indicate the data transmission rate of the detection frame received by the multicast client, that is, the MCS order.
  • the value of the detection rate field is the same as the value of the MCS field of the detection frame, and the value of the rate information field is the same as the value of the MCS field of the fountain coding frame. Since the data transmission rate of the detection frame is higher than the data transmission rate of the fountain coding frame, the value of the detection rate field is greater than the value of the rate information field.
  • the rate information field of the third action frame may be used by the terminal 100 to confirm whether the third action frame is an action frame sent by the multicast client of the multicast group.
  • the detection frame reception number field may be used to indicate the number of detection frames received by the multicast client. It is understandable that the value of the actual MAC address field of the third action frame is the MAC address of the terminal 100, and the value of the source MAC address field of the third action frame is the MAC address of the terminal that sends the third action frame.
  • the fourth action frame may also include but is not limited to a decoding failure count field.
  • Any multicast client can record the number of decoding failures. When the number of decoding failures reaches a preset threshold, a fourth action frame is obtained based on the number of decoding failures, wherein the value of the number of decoding failures field is the number of decoding failures.
  • the multicast client can send the fourth action frame to the terminal 100. It can be understood that the value of the actual MAC address field of the fourth action frame is the MAC address of the terminal 100, and the value of the source MAC address field of the fourth action frame is the MAC address of the terminal sending the fourth action frame.
  • the fifth action may also include but is not limited to a BN field.
  • the BN field may be used to indicate the number of the coding block that the feedback node successfully decodes.
  • the value of the BN field of the fifth action frame is the same as the value of the BN field of the fountain coding frame of the successfully decoded coding block. It is understandable that the value of the actual MAC address field of the fifth action frame is the MAC address of the terminal 100, and the value of the source MAC address field of the fifth action frame is the MAC address of the feedback node.
  • the terminal 100 may randomly select a feedback node from the multicast client before multicasting the multicast data, and send a first action frame to the selected feedback node.
  • the feedback node that receives the first action frame may send a second action frame to the terminal 100 every preset feedback time (for example, 100s).
  • w detection frames may be multicasted. All multicast clients may generate and send a third action frame to the terminal 100 based on the reception status of the received detection frame.
  • the terminal 100 may determine whether to increase the data transmission rate of the fountain coding frame based on the third action frame. In this way, the terminal 100 may increase the data transmission rate of the fountain coding frame and improve the transmission efficiency of the fountain coding frame when the channel transmission quality is high.
  • FIG. 9 is a schematic flow chart of a method for increasing the data transmission rate of fountain coding frames provided in an embodiment of the present application.
  • a method for improving the data transmission rate of fountain coded frames is exemplified by taking a multicast server as terminal 100 and one or more multicast clients including terminal 200 and terminal 300 as an example.
  • the method includes the following steps:
  • Terminal 100 selects terminal 200 as a feedback node in the multicast client.
  • terminal 100 Before sending multicast data by multicast, terminal 100 may randomly select a terminal, terminal 200 in this case, from one or more multicast clients as a feedback node.
  • the terminal 100 sends a first action frame 11 to the terminal 200, which is used to notify the terminal 200 to feedback the decoding success rate.
  • the terminal 100 may send a first action frame 11 to the feedback node.
  • the first action frame 11 may be used to notify the multicast client that receives the first action frame 11 that the terminal 100 is set as a feedback node.
  • the values of the actual MAC address field and the node MAC address field of the first action frame 11 are both the MAC address of the terminal 200.
  • the first action frame 11 please refer to the embodiment shown in FIG. 8, which will not be repeated here.
  • the data transmission rate at which the terminal 100 sends the first acton frame 11 is the same as the data transmission rate at which the terminal 100 sends the fountain coded frame including the original data unit.
  • Terminal 100 multicasts fountain coded frames at the first rate.
  • the first rate used by the terminal 100 to send the fountain coded frame is the initial rate.
  • the initial rate is the data transmission rate corresponding to the MCS order set by the terminal 100 to send the fountain coded frame including the original data unit.
  • the corresponding MCS order can be calculated based on the bandwidth requirement of the projection service, for example, MCS4.
  • terminal 100 may send fountain coded frames including original data units and fountain coded frames including redundant data units at a first rate.
  • the terminal 100 multicasting the fountain coding frame at the first rate can be understood as sending the fountain coding frame including the original data unit at the first rate, and sending the fountain coding frame including the redundant data unit at a data transmission rate lower than the first rate.
  • the MCS order set by the terminal 100 to send each fountain coding frame can refer to the embodiment shown in Figure 7, which is not repeated here.
  • the terminal 200 may decode the fountain coded frame, record the decoding success rate, and generate a second action frame 12 based on the decoding success rate.
  • the terminal 200 sends a second action frame 12 to the terminal 100, including a decoding success rate field.
  • the terminal 200 may parse the fountain coded frames based on the received fountain coded frames of each coded block.
  • the terminal 200 may obtain a decoding success rate based on the result of parsing the fountain coded frames.
  • the terminal 200 can obtain the second action frame 12 based on the decoding success rate.
  • the description of the second action frame 12 can refer to the embodiment shown in FIG8 , which is not repeated here.
  • the value of the decoding success rate field of the second action frame 12 is the same as the value of the decoding success rate obtained by the terminal 200.
  • the terminal 200 may generate and send a second action frame to the terminal 100 at every preset feedback time.
  • the terminal 100 determines whether the value of the decoding success rate field of the feedback node is greater than the threshold value 1 based on the second action frame 12.
  • the terminal 100 can extract the value of the decoding success rate field of the second action frame 12. Whether the value of the success rate field is greater than a threshold value 1, where the threshold value 1 is a fractional value preset by the terminal 100, for example, the threshold value 1 may be 80%.
  • the terminal 100 may continue to multicast the fountain coded frames at the first rate, and after receiving the second action frame sent by the terminal 200, perform step S906 again.
  • the terminal 100 may multicast fountain coded frames at a third rate when it is determined that the value of the decoding success rate field is less than the threshold value 1, and the third rate is less than the first rate. In this way, the terminal 100 may send fountain coded frames at a lower rate when the channel quality is poor, thereby improving the success rate of the multicast client receiving multicast data.
  • the terminal 100 may multicast fountain coded frames at a first rate when it is determined that the value of the decoding success rate field is less than a threshold value 1 and greater than a preset speed reduction threshold, and the preset speed reduction threshold is less than the threshold value 1.
  • the terminal 100 may multicast fountain coded frames at a third rate when it is determined that the value of the decoding success rate field is less than the preset speed reduction threshold, and the third rate is less than the first rate. In this way, the terminal 100 can adjust the rate of sending fountain coded frames based on the decoding success rate of the feedback node, and send fountain coded frames at a faster rate when the channel quality is good, and send fountain coded frames at a slower rate when the channel quality is poor.
  • step S907 When the terminal 100 determines that the value of the decoding success rate field is greater than the threshold value 1, the terminal 100 executes step S907.
  • the terminal 100 multicasts w detection frames (including a detection frame flag field that identifies the frame as a detection frame) at a second rate, where the second rate is greater than the first rate.
  • the terminal 100 may obtain w detection frames based on the w fountain coded frames sent most recently, wherein the w detection frames have different values of the detection frame flag field from the w fountain coded frames, and the other fields are the same.
  • the terminal 100 may multicast and send the w detection frames.
  • the MCS order corresponding to the second rate is greater than the MCS order corresponding to the first rate.
  • the MCS order corresponding to the second rate is one order greater than the MCS order corresponding to the first rate.
  • the terminal 200 sends a third action frame 13 to the terminal 100, which is used to indicate the number of detection frames received by the terminal 200.
  • the terminal 200 After receiving the data frame sent by the terminal 100, if the terminal 200 determines that the data frame is a detection frame based on the value of the detection frame flag field, the terminal 200 can record the number of all received detection frames and write the number into the detection frame reception number field of the third action frame 13.
  • the value of the detection rate field of the third action frame 13 is the same as the value of the MCS field of the detection frame.
  • the terminal 200 may generate and send a third action frame 13 to the terminal 100. Specifically, the terminal 200 is provided with a detection frame waiting time. When the terminal 200 receives the detection frame, it may continue to receive the detection frame within the waiting time. If the terminal 200 receives the next detection frame within the waiting time, the value of the recorded number of detection frames may be increased by 1. If the terminal 200 does not receive the next detection frame within the waiting time, the terminal 200 may obtain the third action frame 13 based on the recorded number of detection frames.
  • the recorded number of detection frames can be set to the initial value (i.e., 0), and when the detection frame is received next time, the number of received detection frames can be recorded again, and the third action frame can be generated and sent to the terminal 100 based on the number.
  • the terminal 200 only records the number of detection frames and does not perform fountain decoding processing on the detection frames.
  • the terminal 300 sends a third action frame 14 to the terminal 100, which is used to indicate the number of detection frames received by the terminal 300.
  • step S908 the description of the terminal 300 sending the third action frame 14 to the terminal 100 can refer to step S908, which will not be repeated here.
  • terminal 100 After receiving the third action frames sent by all multicast clients, terminal 100 can extract the value of the detection frame reception quantity field of all third action frames, and when terminal 100 determines that the values of all detection frame reception quantity fields are greater than the preset threshold value 2, the rate at which terminal 100 sends fountain coded frames can be set to the second rate.
  • the terminal 100 may continue to send fountain coded frames at the first rate, and when receiving the second action frame, perform step S906.
  • the one or more multicast clients including the terminal 200 and the terminal 300 is only an example, and the one or more multicast clients may include more terminals, which is not limited in the embodiments of the present application.
  • the multicast client may record the number of decoding failures of the received coded blocks.
  • the number of decoding failures of a multicast client may send a fourth action frame carrying the number of decoding failures to the terminal 100. After receiving the fourth action frame, the terminal 100 may reduce the transmission rate of the fountain coded frames.
  • the terminal 100 when the terminal 100 sends fountain coded frames at the initial rate, if the MCS order corresponding to the initial rate is greater than MCS1, the terminal 100 may send fountain coded frames at a data transmission rate lower than the initial rate after receiving the fourth action frame. It should be noted that the terminal 100 may reduce the data transmission rate of the fountain coded frames each time the fourth action frame is received until the terminal 100 reduces the data transmission rate to the minimum rate, that is, the data transmission rate corresponding to MCS1. Among them, the terminal 100 may reduce the order of MCS by one or more orders each time, and the embodiment of the present application does not limit the order reduced each time.
  • the terminal 100 can determine the transmission rate B based on the value of the decoding failure count field of the fourth action received, and transmit the fountain coded frame at the transmission rate B, and the transmission rate B is lower than the transmission rate A.
  • the larger the value of the decoding failure count the smaller the value of the transmission rate B.
  • the value of the transmission rate B is the rate value C
  • the value of the decoding failure count is greater than or equal to the first failure count
  • the value of the transmission rate B is the rate value D
  • the rate value D is less than the rate value C. It should be noted that when the value of the rate value C is the minimum rate value, the rate value D can only be the minimum rate value.
  • the terminal 100 may also determine the value of the transmission rate B based on the number of decoding failures by other means. For example, the terminal 100 may set a range of decoding failures and a rate reduction amplitude corresponding to the range. When the number of decoding failures falls within a certain range of failures, the terminal 100 obtains the transmission rate B according to the rate reduction amplitude corresponding to the range of failures, wherein the transmission rate B is equal to the transmission rate A minus the rate reduction amplitude.
  • the embodiments of the present application are not limited to this.
  • the terminal 100 may also record the number of decoding failures of the received fourth action frame.
  • the terminal 100 may replace the feedback node and set the feedback node as the multicast client that sends the fourth action frame.
  • the terminal 100 can set the recorded number of decoding failures to an initial value (i.e., 0) at every preset zeroing time.
  • the preset zeroing time is the time for the terminal 100 to send a fountain coded frame of 20 coding blocks.
  • FIG10 shows a flow chart of a method for increasing the data transmission rate of a fountain coded frame provided in an embodiment of the present application.
  • a method for reducing the data transmission rate of fountain coded frames is exemplified by taking a multicast server as terminal 100 and one or more multicast clients including terminal 200 and terminal 300 as an example.
  • the method includes the following steps:
  • Terminal 100 selects terminal 200 as a feedback node in the multicast client.
  • the terminal 100 sends a first action frame 21 to the terminal 200, for notifying the terminal 200 to feedback the decoding success rate.
  • Terminal 100 multicasts fountain coded frames at a first rate.
  • steps S1001 to S1003 can be found in the embodiment shown in FIG9 , and will not be repeated here.
  • the terminal 300 may decode the fountain coded frame, record the number of decoding failures, and when the number of decoding failures reaches a threshold value of 3, generate a fourth action frame 22 based on the number of decoding failures.
  • All multicast clients can record the number of failures in decoding fountain coded frames when receiving fountain coded frames.
  • Terminal 300 can record the number of decoding failures, and when the recorded number of decoding failures is greater than a preset threshold value 3 (e.g., 1 time), generate and send a fourth action frame 22 to terminal 100.
  • a preset threshold value 3 e.g. 1 time
  • terminal 300 may determine that the decoding of the current coding block has failed when the number of different fountain coding frames received for the current coding block is less than the value of the source data unit number field, and increase the recorded decoding failure count by 1.
  • the terminal 300 sends a fourth action frame 22 to the terminal 100, including a decoding failure times field.
  • the terminal 300 may reset the recorded number of decoding failures to zero after sending the fourth action frame 22 .
  • Terminal 100 multicasts fountain coded frames at the initial rate.
  • the terminal 100 may set the rate of sending fountain coded frames to the initial rate.
  • the terminal 100 may reduce the data transmission rate of the fountain coded frame each time the fourth action frame is received, until the terminal 100 reduces the data transmission rate to the initial rate or the minimum rate.
  • the minimum rate is the data transmission rate corresponding to MCS1.
  • the terminal 100 may reduce the order of MCS by one or more orders each time, and the embodiment of the present application does not limit the order reduced each time. In this way, the terminal 100 may gradually reduce the rate of transmitting the fountain coded frame when transmitting the fountain coded frame at a higher rate, and while ensuring the complete transmission of the fountain coded frame, it may ensure that the fountain coded frame is transmitted at a higher transmission rate as much as possible.
  • the terminal 100 determines whether the number of decoding failures field is greater than a threshold value 4 based on the fourth action frame 22.
  • the terminal 100 can determine whether the value of the decoding failure times field is greater than the threshold value 4.
  • the threshold value 4 may be updated based on the value of the decoding failure count field of the received fourth action frame.
  • step S1008 to step S1010 may be executed to replace the feedback node.
  • the feedback node may not be replaced.
  • the initial value of the threshold value 4 of the terminal 100 is 0.
  • the terminal 100 receives only one fourth action frame 22, determines that the value of the decoding failure times field is greater than the threshold value 4, and executes steps S1008 to S1010.
  • the terminal 100 sets the threshold value 4 as the value of the decoding failure times field of the fourth action frame 22 .
  • the terminal 100 determines that the value of the decoding failure times field is greater than the threshold value 4, and sets the threshold value 4 as the value of the decoding failure times field of the fourth action frame 22.
  • the terminal 100 sends a first action frame 23 to the terminal 200, to notify the terminal 200 to stop feeding back the decoding success rate.
  • the value of the actual MAC address field of the first action frame 23 is the MAC address of the terminal 200
  • the value of the node MAC address field of the first action frame 23 is the MAC address of the terminal 300 .
  • the terminal 200 After receiving the first action frame 23, the terminal 200 determines that the terminal 100 selects another multicast client as a feedback node based on the value of the node MAC address field, and the terminal 200 stops generating the second action frame.
  • the terminal 100 sends a first action frame 24 to the terminal 300, for notifying the terminal 300 to feedback the decoding success rate.
  • the value of the actual MAC address field of the first action frame 24 is the MAC address of the terminal 300 , and the value of the node MAC address field of the first action frame 24 is also the MAC address of the terminal 300 .
  • terminal 300 After receiving the first action frame 24, terminal 300 determines that terminal 100 selects itself as a feedback node based on the value of the node MAC address field. During the period of receiving the fountain coding frame sent by terminal 100, terminal 300 generates and sends a second action frame to terminal 100 every preset feedback time.
  • the terminal 100 can reduce the data transmission rate of the fountain coded frame when the channel quality decreases.
  • the terminal 100 can determine the multicast client with the least number of fountain coded frames received among one or more multicast clients based on the fourth action frame. Therefore, the terminal 100 can understand the worst case of the multicast client receiving the fountain coded frame through the feedback node.
  • the one or more multicast clients including the terminal 200 and the terminal 300 is only an example, and the one or more multicast clients may include more terminals, which is not limited in the embodiments of the present application.
  • the terminal 100 may perform 1x fountain coding based on n MPDUs to obtain a fountain coded frame, wherein the fountain coded frame may include n fountain coded frames including original data units and n fountain coded frames including redundant data units.
  • the terminal 100 may send the n fountain coded frames including redundant data units after sending the n fountain coded frames including original data units.
  • the terminal 100 may repeatedly send the n fountain coded frames including redundant data units, and the number of times the terminal 100 sends the fountain coded frames including redundant data units is p times, where p is greater than or equal to 2.
  • the terminal 100 may stop sending the fountain coded frames including redundant data units.
  • the terminal 200 is a feedback node, and the terminal 200 may send the fifth action frame to the terminal 100 when receiving at least n different fountain coded frames.
  • the description of the feedback node can refer to the embodiment described in FIG. 10 above, which will not be repeated here.
  • the terminal 100 can determine the reception status of the multicast client receiving the multicast data based on the feedback node, and when receiving the fifth action frame, stop sending the remaining fountain coding frames including the redundant data unit, thereby saving air interface resources.
  • the fountain coding frames including the redundant data unit are sent multiple times, thereby improving the success rate of the multicast client receiving the multicast data.
  • the feedback node is the terminal 200.
  • the terminal 100 may perform a 1x redundant fountain code encoding operation on the source data frame to obtain 3 fountain coded frames including original data units and 3 fountain coded frames including redundant data units.
  • the terminal 100 may send a fountain coding frame at a preset time interval. First, the terminal 100 may send fountain coding frame 1, fountain coding frame 2, and fountain coding frame 3 including the original data unit. Then, the terminal 100 may send fountain coding frame 4, fountain coding frame 5, and fountain coding frame 6 including the redundant data unit. After that, the terminal 100 may send fountain coding frame 4, fountain coding frame 5, and fountain coding frame 6 again until the number of times that the terminal 100 sends fountain coding frames including the redundant data unit reaches p times.
  • the value of p is 4.
  • terminal 200 during the period when terminal 100 sends fountain coding frames, terminal 200 only receives 1 fountain coding frame 1 and 2 fountain coding frames 5. Although terminal 200 receives 3 fountain coding frames, since there are 2 repeated fountain coding frames among the 3 received fountain coding frames, terminal 200 cannot perform fountain decoding operations on the 3 fountain coding frames to obtain 3 source data frames. Among them, terminal 200 can determine whether a repeated fountain coding frame is received based on the value of the SI field of the fountain coding frame. When the value of the SI field of the received fountain coding frame is the same as the value of the SI field of another fountain coding frame that has been received and belongs to the same coding block, it is determined that a repeated fountain coding frame is received.
  • the terminal 200 receives three different fountain coding frames sent by the terminal 100.
  • Fountain coded frames that is, fountain coded frame 1, fountain coded frame 2, and fountain coded frame 5.
  • the terminal 200 determines that the number of different fountain coded frames received is equal to the value of the source data unit number field in the fountain coded frame.
  • the terminal 200 can perform a fountain decoding operation on the fountain coded frame 1, the fountain coded frame 2, and the fountain coded frame 5 to obtain three source data frames.
  • the description of the fountain decoding operation can refer to the above embodiment, which is not repeated here.
  • Terminal 200 may also generate a fifth action frame and send the fifth action frame to terminal 100 when determining that the number of received different fountain coded frames is equal to the value of the source data unit number field in the fountain coded frame.
  • the fifth action frame includes the sequence number of the coding block to which the fountain coded frame belongs.
  • the terminal 100 may stop sending subsequent fountain coded frames after receiving the fifth action frame sent by the terminal 200. It is understandable that since it takes a while for the terminal 200 to generate and send the fifth action frame, the terminal 100 may continue to send fountain coded frames during this period. For example, as shown in (b) of FIG. 11 , a total of 6 fountain coded frames were sent before the terminal 100 received the fifth action frame. Of course, if the time for the terminal 200 to generate and send the fifth action frame is short, the terminal 100 may not send fountain coded frames during this period.
  • the terminal 100 does not need to send all 16 fountain coded frames, thus saving air interface resources for sending fountain coded frames including redundant data units.
  • the feedback node is the multicast client with the most failures when receiving fountain coded frames among the multicast clients selected by the terminal 100.
  • the number of fountain coded frames received by the feedback node is less than the number of fountain coded frames received by other non-feedback nodes. Therefore, the feedback node can reflect the worst case of the multicast client receiving the fountain coded frames.
  • the terminal 100 ends sending the fountain coded frames based on the fifth action frame fed back by the feedback node, which can save air interface resources while improving the success rate of other multicast clients receiving the fountain coded frames.
  • the terminal 100 when the terminal 100 repeatedly sends fountain coded frames including redundant data units, since the terminal 100 sends the same fountain coded frames, even if the multicast client receives more than n fountain coded frames, if the number of different fountain coded frames in the more than n fountain coded frames is less than n, the multicast client cannot parse and obtain complete multicast data. However, this can improve the success rate of the multicast client receiving multicast data and can also reduce the overhead of the terminal 100 performing multiple redundant fountain coding.
  • the terminal 100 when the terminal 100 multicasts the MPDU, it can perform q-fold fountain coding based on n MPDUs to obtain a fountain coded frame, wherein the fountain coded frame may include n fountain coded frames including original data units and fountain coded frames including redundant data units, q is greater than 0.
  • terminal 100 if terminal 100 sends fountain coded frames including redundant data units, if terminal 100 receives the fifth action frame sent by terminal 200, terminal 100 can stop sending fountain coded frames including redundant data units.
  • terminal 200 is a feedback node, and terminal 200 can send the fifth action frame to terminal 100 when receiving at least n different fountain coded frames.
  • the description of the feedback node can refer to the embodiment described in Figure 10 above, and will not be repeated here.
  • terminal 100 can determine the reception status of multicast data received by the multicast client based on the feedback node, and when the fifth action frame is received, stop sending the remaining fountain coded frames including redundant data units, thereby saving air interface resources.
  • fountain coded frames including redundant data units are sent multiple times to improve the success rate of multicast client receiving multicast data.
  • the feedback node is the terminal 200.
  • the terminal 100 can perform a q-fold redundant fountain code encoding operation on the source data frame to obtain 3 fountain coded frames including original data units and 12 fountain coded frames including redundant data units, where the q value is 4.
  • the terminal 100 may send a fountain coding frame at a preset time interval. First, the terminal 100 may send fountain coding frame 1, fountain coding frame 2, and fountain coding frame 3 including the original data unit. Then, the terminal 100 may send fountain coding frame 4, fountain coding frame 5, fountain coding frame 6, fountain coding frame 7 including the redundant data unit, and so on, until the terminal 100 sends fountain coding frame 15.
  • terminal 200 during the period when terminal 100 sends fountain coded frames, terminal 200 only receives one fountain coded frame 1 and one fountain coded frame 11. Since the number of fountain coded frames received by terminal 200 is less than the value of the source data unit number field in the fountain coded frame (that is, the number of source data frames), terminal 200 cannot perform fountain decoding operations on the two fountain coded frames and obtain three source data frames.
  • the terminal 200 receives three fountain coding frames sent by the terminal 100, namely, fountain coding frame 1, fountain coding frame 2, and fountain coding frame 5.
  • the terminal 200 determines that the number of received fountain coding frames is equal to the value of the source data unit number field in the fountain coding frame.
  • the terminal 200 can perform fountain decoding operations on the fountain coding frame 1, the fountain coding frame 2, and the fountain coding frame 5 to obtain three source data frames.
  • the description of the fountain decoding operation can refer to the above embodiment, which will not be repeated here.
  • Terminal 200 may also generate a fifth action frame and send the fifth action frame to terminal 100 when determining that the number of received different fountain coded frames is equal to the value of the source data unit number field in the fountain coded frame.
  • the fifth action frame includes the sequence number of the coding block to which the fountain coded frame belongs.
  • the terminal 100 may stop sending subsequent fountain coding frames. Yes, since it takes a while for the terminal 200 to generate and send the fifth action frame, during this period, the terminal 100 can continue to send fountain coded frames. For example, as shown in (b) of FIG12 , before the terminal 100 receives the fifth action frame, a total of 6 fountain coded frames are sent. Of course, if the time for the terminal 200 to generate and send the fifth action frame is short, the terminal 100 may not send fountain coded frames during this period.
  • the terminal 100 does not need to send all 16 fountain coded frames, thus saving air interface resources for sending fountain coded frames including redundant data units.
  • the feedback node is the multicast client with the most failures when receiving fountain coded frames among the multicast clients selected by the terminal 100.
  • the number of fountain coded frames received by the feedback node is less than the number of fountain coded frames received by other non-feedback nodes. Therefore, the feedback node can reflect the worst case of the multicast client receiving the fountain coded frames.
  • the terminal 100 ends sending the fountain coded frames based on the fifth action frame fed back by the feedback node, which can save air interface resources while improving the success rate of other multicast clients receiving the fountain coded frames.
  • the terminal 100 sends the fountain coded frame obtained by q-fold fountain coding
  • the multicast client can parse and obtain the complete multicast data as long as it receives at least n fountain coded frames, thereby improving the success rate of the multicast client receiving the multicast data.
  • this method also causes the terminal 100 to perform multiple redundant fountain coding overhead.
  • the terminal 100 provided in an embodiment of the present application is introduced below.
  • Terminal 100 can be a mobile phone, a tablet computer, a desktop computer, a laptop computer, a handheld computer, a notebook computer, an ultra-mobile personal computer (UMPC), a netbook, a cellular phone, a personal digital assistant (PDA), an augmented reality (AR) device, a virtual reality (VR) device, an artificial intelligence (AI) device, a wearable device, a vehicle-mounted device, a router, a smart home device and/or a smart city device.
  • PDA personal digital assistant
  • AR augmented reality
  • VR virtual reality
  • AI artificial intelligence
  • wearable device a vehicle-mounted device
  • router a smart home device and/or a smart city device.
  • FIG13 shows a schematic diagram of a hardware structure provided in an embodiment of the present application.
  • the embodiment is described in detail below by taking the terminal 100 as an example. It should be understood that the terminal 100 shown in FIG. 2 is only an example, and the terminal 100 may have more or fewer components than those shown in FIG. 13, may combine two or more components, or may have different component configurations.
  • the various components shown in FIG. 13 may be implemented in hardware, software, or a combination of hardware and software including one or more signal processing and/or application specific integrated circuits.
  • the terminal 100 may include: a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (USB) interface 130, a charging management module 140, a power management module 141, a battery 142, an antenna 1, an antenna 2, a mobile communication module 150, a wireless communication module 160, an audio module 170, a speaker 170A, a receiver 170B, a microphone 170C, an earphone interface 170D, a sensor module 180, a button 190, a motor 191, an indicator 192, a camera 193, a display screen 194, and a subscriber identification module (SIM) card interface 195, etc.
  • SIM subscriber identification module
  • the sensor module 180 may include a pressure sensor 180A, a gyroscope sensor 180B, an air pressure sensor 180C, a magnetic sensor 180D, an acceleration sensor 180E, a distance sensor 180F, a proximity light sensor 180G, a fingerprint sensor 180H, a temperature sensor 180J, a touch sensor 180K, an ambient light sensor 180L, a bone conduction sensor 180M, etc.
  • the structure illustrated in the embodiment of the present invention does not constitute a specific limitation on the terminal 100.
  • the terminal 100 may include more or fewer components than shown in the figure, or combine some components, or split some components, or arrange the components differently.
  • the components shown in the figure may be implemented in hardware, software, or a combination of software and hardware.
  • the processor 110 may include one or more processing units, for example, the processor 110 may include an application processor (AP), a modem processor, a graphics processor (GPU), an image signal processor (ISP), a controller, a memory, a video codec, a digital signal processor (DSP), a baseband processor, and/or a neural-network processing unit (NPU), etc.
  • AP application processor
  • GPU graphics processor
  • ISP image signal processor
  • controller a memory
  • video codec a digital signal processor
  • DSP digital signal processor
  • NPU neural-network processing unit
  • Different processing units may be independent devices or integrated in one or more processors.
  • the controller may be the nerve center and command center of the terminal 100.
  • the controller may generate an operation control signal according to the instruction operation code and the timing signal to complete the control of fetching and executing instructions.
  • the processor 110 may also be provided with a memory for storing instructions and data.
  • the memory in the processor 110 is a cache memory.
  • the memory may store instructions or data that the processor 110 has just used or cyclically used. If the processor 110 needs to use the instruction or data again, it may be directly called from the memory. This avoids repeated access, reduces the waiting time of the processor 110, and thus improves the efficiency of the system.
  • the processor 110 may include one or more interfaces.
  • the interface may include an inter-integrated circuit (I2C) interface, an inter-integrated circuit sound (I2S) interface, a pulse code modulation (PCM) interface, a universal asynchronous receiver/transmitter (UART) interface, a mobile industry processor interface (MIPI), a general-purpose input/output (GPIO) interface, A subscriber identity module (SIM) interface, and/or a universal serial bus (USB) interface, etc.
  • I2C inter-integrated circuit
  • I2S inter-integrated circuit sound
  • PCM pulse code modulation
  • UART universal asynchronous receiver/transmitter
  • MIPI mobile industry processor interface
  • GPIO general-purpose input/output
  • SIM subscriber identity module
  • USB universal serial bus
  • the interface connection relationship between the modules illustrated in the embodiment of the present invention is only a schematic illustration and does not constitute a structural limitation on the terminal 100.
  • the terminal 100 may also adopt different interface connection methods in the above embodiments, or a combination of multiple interface connection methods.
  • the charging management module 140 is used to receive charging input from a charger.
  • the charger may be a wireless charger or a wired charger.
  • the charging management module 140 may receive charging input from a wired charger through the USB interface 130.
  • the charging management module 140 may receive wireless charging input through a wireless charging coil of the terminal 100. While the charging management module 140 is charging the battery 142, it may also power the electronic device through the power management module 141.
  • the power management module 141 is used to connect the battery 142, the charging management module 140 and the processor 110.
  • the power management module 141 receives input from the battery 142 and/or the charging management module 140, and supplies power to the processor 110, the internal memory 121, the external memory, the display screen 194, the camera 193, and the wireless communication module 160.
  • the power management module 141 can also be used to monitor parameters such as battery capacity, battery cycle number, battery health status (leakage, impedance), etc.
  • the power management module 141 can also be set in the processor 110.
  • the power management module 141 and the charging management module 140 can also be set in the same device.
  • the wireless communication function of the terminal 100 can be implemented through the antenna 1, the antenna 2, the mobile communication module 150, the wireless communication module 160, the modem processor and the baseband processor.
  • Antenna 1 and antenna 2 are used to transmit and receive electromagnetic wave signals.
  • Each antenna in terminal 100 can be used to cover a single or multiple communication frequency bands. Different antennas can also be reused to improve the utilization of the antennas.
  • antenna 1 can be reused as a diversity antenna for a wireless local area network.
  • the antenna can be used in combination with a tuning switch.
  • the mobile communication module 150 can provide solutions for wireless communications including 2G/3G/4G/5G applied on the terminal 100.
  • the mobile communication module 150 may include at least one filter, a switch, a power amplifier, a low noise amplifier (LNA), etc.
  • the mobile communication module 150 can receive electromagnetic waves from the antenna 1, and filter, amplify, and process the received electromagnetic waves, and transmit them to the modulation and demodulation processor for demodulation.
  • the mobile communication module 150 can also amplify the signal modulated by the modulation and demodulation processor, and convert it into electromagnetic waves for radiation through the antenna 1.
  • at least some of the functional modules of the mobile communication module 150 can be set in the processor 110.
  • at least some of the functional modules of the mobile communication module 150 can be set in the same device as at least some of the modules of the processor 110.
  • the modem processor may include a modulator and a demodulator.
  • the modulator is used to modulate the low-frequency baseband signal to be sent into a medium-high frequency signal.
  • the demodulator is used to demodulate the received electromagnetic wave signal into a low-frequency baseband signal.
  • the demodulator then transmits the demodulated low-frequency baseband signal to the baseband processor for processing.
  • the application processor outputs a sound signal through an audio device (not limited to a speaker 170A, a receiver 170B, etc.), or displays an image or video through a display screen 194.
  • the modem processor may be an independent device.
  • the modem processor may be independent of the processor 110 and be set in the same device as the mobile communication module 150 or other functional modules.
  • the wireless communication module 160 can provide wireless communication solutions including wireless local area networks (WLAN) (such as Wi-Fi network), Bluetooth (BT), global navigation satellite system (GNSS), frequency modulation (FM), near field communication (NFC), infrared (IR) and the like applied on the terminal 100.
  • WLAN wireless local area networks
  • BT Bluetooth
  • GNSS global navigation satellite system
  • FM frequency modulation
  • NFC near field communication
  • IR infrared
  • the wireless communication module 160 can be one or more devices integrating at least one communication processing module.
  • the wireless communication module 160 receives electromagnetic waves via the antenna 2, modulates the frequency of the electromagnetic wave signal and performs filtering, and sends the processed signal to the processor 110.
  • the wireless communication module 160 can also receive the signal to be sent from the processor 110, modulate the frequency of the signal, amplify it, and convert it into electromagnetic waves for radiation through the antenna 2.
  • the wireless communication module 160 of the terminal 100 can be used to send fountain coded frames and the first action frame, and the wireless communication module 160 of the terminal 100 can also be used to receive the second action frame, the third action frame, the fourth action frame and the fifth action frame.
  • the antenna 1 of the terminal 100 is coupled to the mobile communication module 150, and the antenna 2 is coupled to the wireless communication module 160, so that the terminal 100 can communicate with the network and other devices through wireless communication technology.
  • the wireless communication technology may include global system for mobile communications (GSM), general packet radio service (GPRS), code division multiple access (CDMA), wideband code division multiple access (WCDMA), time-division code division multiple access (TD-SCDMA), long term evolution (LTE), BT, GNSS, WLAN, NFC, FM, and/or IR technology.
  • the GNSS may include a global positioning system (GPS), a global navigation satellite system (GLONASS), a Beidou navigation satellite system (BDS), a quasi-zenith satellite system (QZSS) and/or a satellite based augmentation system (SBAS).
  • GPS global positioning system
  • GLONASS global navigation satellite system
  • BDS Beidou navigation satellite system
  • QZSS quasi-zenith satellite system
  • SBAS satellite based augmentation system
  • the terminal 100 implements the display function through a GPU, a display screen 194, and an application processor.
  • the GPU is a microprocessor for image processing, which is connected to the display screen 194 and the application processor.
  • the GPU is used to perform mathematical and geometric calculations for graphics rendering.
  • the processor 110 may include one or more A GPU executes program instructions to generate or change display information.
  • the display screen 194 is used to display images, videos, etc.
  • the display screen 194 includes a display panel.
  • the display panel can be a liquid crystal display (LCD), an organic light-emitting diode (OLED), an active-matrix organic light-emitting diode or an active-matrix organic light-emitting diode (AMOLED), a flexible light-emitting diode (FLED), Miniled, MicroLed, Micro-oLed, quantum dot light-emitting diodes (QLED), etc.
  • the terminal 100 may include 1 or N display screens 194, where N is a positive integer greater than 1.
  • the terminal 100 can realize the shooting function through the ISP, the camera 193, the video codec, the GPU, the display screen 194 and the application processor.
  • ISP is used to process the data fed back by camera 193. For example, when taking a photo, the shutter is opened, and the light is transmitted to the camera photosensitive element through the lens. The light signal is converted into an electrical signal, and the camera photosensitive element transmits the electrical signal to ISP for processing and converts it into an image visible to the naked eye. ISP can also perform algorithm optimization on the noise and brightness of the image. ISP can also optimize the exposure, color temperature and other parameters of the shooting scene. In some embodiments, ISP can be set in camera 193.
  • the camera 193 is used to capture still images or videos.
  • the object generates an optical image through the lens and projects it onto the photosensitive element.
  • the photosensitive element can be a charge coupled device (CCD) or a complementary metal oxide semiconductor (CMOS) phototransistor.
  • CMOS complementary metal oxide semiconductor
  • the photosensitive element converts the optical signal into an electrical signal, and then passes the electrical signal to the ISP to be converted into a digital image signal.
  • the ISP outputs the digital image signal to the DSP for processing.
  • the DSP converts the digital image signal into an image signal in a standard RGB, YUV or other format.
  • the terminal 100 may include 1 or N cameras 193, where N is a positive integer greater than 1.
  • the digital signal processor is used to process digital signals, and can process not only digital image signals but also other digital signals. For example, when the terminal 100 is selecting a frequency point, the digital signal processor is used to perform Fourier transform on the frequency point energy.
  • Video codecs are used to compress or decompress digital videos.
  • Terminal 100 may support one or more video codecs.
  • terminal 100 may play or record videos in various coding formats, such as Moving Picture Experts Group (MPEG) 1, MPEG2, MPEG3, MPEG4, etc.
  • MPEG Moving Picture Experts Group
  • MPEG2 MPEG2, MPEG3, MPEG4, etc.
  • NPU is a neural network (NN) computing processor.
  • NN neural network
  • applications such as intelligent cognition of the terminal 100 can be realized, such as image recognition, face recognition, voice recognition, text understanding, etc.
  • the external memory interface 120 can be used to connect an external memory card, such as a Micro SD card, to expand the storage capacity of the terminal 100.
  • the external memory card communicates with the processor 110 through the external memory interface 120 to implement a data storage function. For example, files such as music and videos can be stored in the external memory card.
  • the internal memory 121 can be used to store computer executable program codes, which include instructions.
  • the processor 110 executes various functional applications and data processing of the terminal 100 by running the instructions stored in the internal memory 121.
  • the internal memory 121 may include a program storage area and a data storage area.
  • the program storage area can store an operating system, an application required for at least one function (such as a sound playback function, an image playback function, etc.), etc.
  • the data storage area can store data created during the use of the terminal 100 (such as audio data, a phone book, etc.), etc.
  • the internal memory 121 may include a high-speed random access memory, and may also include a non-volatile memory, such as at least one disk storage device, a flash memory device, a universal flash storage (UFS), etc.
  • UFS universal flash storage
  • the terminal 100 can implement audio functions such as music playing and recording through the audio module 170, the speaker 170A, the receiver 170B, the microphone 170C, the earphone interface 170D, and the application processor.
  • the audio module 170 is used to convert digital audio information into analog audio signal output, and is also used to convert analog audio input into digital audio signal.
  • the audio module 170 can also be used to encode and decode audio signals.
  • the audio module 170 can be set in the processor 110, or some functional modules of the audio module 170 are set in the processor 110.
  • the speaker 170A also known as the "speaker” is used to convert audio electrical signals into sound signals.
  • the terminal 100 can listen to music or listen to hands-free calls through the speaker 170A.
  • the receiver 170B also known as the "earpiece", is used to convert audio electrical signals into sound signals. When the terminal 100 answers a call or voice message, the voice can be answered by placing the receiver 170B close to the human ear.
  • the microphone 170C also known as the "microphone” or “microphone”, is used to convert sound signals into electrical signals. When making a call or sending a voice message, the user can make a sound by approaching the microphone 170C with the human mouth to input the sound signal into the microphone 170C.
  • the terminal 100 can be provided with at least one microphone 170C. In other embodiments, the terminal 100 may be provided with two microphones 170C, which can not only collect sound signals but also realize noise reduction function. In other embodiments, the terminal 100 may also be provided with three, four or more microphones 170C to realize collecting sound signals, noise reduction, identifying sound sources, realizing directional recording function, etc.
  • the headphone jack 170D is used to connect wired headphones.
  • the headphone jack 170D may be a USB interface 130 or a 3.5mm open mobile terminal platform (OMTP) standard interface, which is a standard interface of the Cellular Telecommunications Industry Association (CTA). of the USA, CTIA) standard interface.
  • OMTP open
  • the pressure sensor 180A is used to sense the pressure signal and can convert the pressure signal into an electrical signal.
  • the gyroscope sensor 180B can be used to determine the motion posture of the terminal 100. In some embodiments, the angular velocity of the terminal 100 around three axes (i.e., x, y and z axes) can be determined by the gyroscope sensor 180B.
  • the air pressure sensor 180C is used to measure the air pressure.
  • the magnetic sensor 180D includes a Hall sensor.
  • the acceleration sensor 180E can detect the magnitude of the acceleration of the terminal 100 in all directions (generally three axes).
  • the distance sensor 180F is used to measure the distance.
  • the proximity light sensor 180G can include, for example, a light emitting diode (LED) and a light detector, such as a photodiode.
  • the terminal 100 uses a photodiode to detect infrared reflected light from nearby objects. When sufficient reflected light is detected, it can be determined that there is an object near the terminal 100. When insufficient reflected light is detected, the terminal 100 can determine that there is no object near the terminal 100.
  • the terminal 100 can use the proximity light sensor 180G to detect that the user holds the terminal 100 close to the ear to talk, so as to automatically turn off the screen to achieve the purpose of power saving.
  • the ambient light sensor 180L is used to sense the brightness of ambient light.
  • the fingerprint sensor 180H is used to collect fingerprints.
  • the temperature sensor 180J is used to detect temperature.
  • the touch sensor 180K is also called a "touch panel”.
  • the touch sensor 180K can be set on the display screen 194, and the touch sensor 180K and the display screen 194 form a touch screen, also called a "touch screen”.
  • the touch sensor 180K is used to detect touch operations acting on or near it.
  • the touch sensor can pass the detected touch operation to the application processor to determine the type of touch event.
  • Visual output related to the touch operation can be provided through the display screen 194.
  • the bone conduction sensor 180M can obtain vibration signals.
  • the button 190 includes a power button, a volume button, etc.
  • the button 190 can be a mechanical button. It can also be a touch button.
  • the terminal 100 can receive a button input and generate a key signal input related to the user settings and function control of the terminal 100.
  • the motor 191 can generate a vibration prompt.
  • the indicator 192 can be an indicator light, which can be used to indicate the charging status, power changes, messages, missed calls, notifications, etc.
  • the hardware structure of the multicast client (eg, terminal 200, terminal 300) may also be described with reference to the hardware structure of the terminal 100 shown in FIG. 13.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请公开了一种传输方法、系统及相关装置。组播服务端在组播发送n个组播数据帧时,组播服务端可以先将该n个组播数据帧进行喷泉码编码处理,得到m个喷泉编码帧,m大于n,再将m个喷泉编码帧组播发送给多个组播客户端。当组播客户端收到m个喷泉编码帧中的n个喷泉编码帧时,可以针对该n个喷泉编码帧,执行喷泉码解码操作,得到该n个组播数据帧。这样,由于喷泉码编码为无速率编码,组播服务端可以根据度值分布函数,基于组播数据帧生成无数个喷泉编码帧。组播客户端只要接收到任意至少n个数据帧,就可以译码得到完整的组播数据帧。

Description

一种传输方法、系统及相关装置
本申请要求在2022年09月29日提交中国国家知识产权局、申请号为202211202960.7的中国专利申请的优先权,发明名称为“一种传输方法、系统及相关装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信领域,尤其涉及一种传输方法、系统及相关装置。
背景技术
当一个终端向多个终端发送相同的数据时,若依次给多个终端重复发送相同的数据,不仅造成发送数据的终端处理数据的开销,还造成了空口资源的浪费。
发明内容
本申请提供了一种传输方法、系统及相关装置,实现了将组播数据帧进行喷泉编码,通过喷泉编码的方式,增加组播客户端接收组播数据帧的数量,提高组播客户端接收完整的组播数据的可能性。
第一方面,本申请提供了一种传输方法,包括:
第一终端基于第一IP报文生成n个组播数据帧,组播数据帧包括源数据单元;
第一终端将n个组播数据帧中的n个源数据单元通过喷泉编码得到m个编码数据单元;
第一终端基于m个编码数据单元生成m个喷泉编码帧;
第一终端组播发送m个喷泉编码帧给多个节点设备。
这样,第一终端可以基于组播数据帧得到喷泉编码帧,并将喷泉编码帧组播发送给多个节点设备,节点设备只要收到任意n个喷泉编码帧,就可以译码得到组播数据帧,由于第一终端增加了组播的数据帧的数量,使得节点设备更容易收到n个喷泉编码帧,得到完整的组播数据。
在一种可能的实现方式中,第一终端将n个组播数据帧中的n个源数据单元通过喷泉编码得到m个编码数据单元,具体包括:第一终端基于n个源数据单元,通过q倍冗余喷泉编码得到m个编码数据单元,m等于
在一种可能的实现方式中,第一终端基于n个源数据单元的重要程度,确定出q的值,源数据单元的重要程度越高,q的值越大。
这样,第一终端可以基于组播数据帧的数据重要程度,决定冗余倍数,既可以降低使用的空口资源,又可以保证重要数据的传输可靠性。
在一种可能的实现方式中,n个源数据单元包括第一源数据单元,第一源数据单元包括I帧标记字段,I帧标记字段用于标识n个源数据单元的重要程度,I帧标记字段的值为第一值的n个源数据单元比I帧标记字段的值为第二值的n个源数据单元的重要程度高;第一终端基于n个源数据单元的数据内容的重要程度,确定出q的值,具体包括:
当第一源数据单元的I帧标记字段的值为第一值,第一终端确定出q的值为第三值;
当第一源数据单元的I帧标记字段的值为第二值,第一终端确定出q的值为第四值,第三值大于第四值。
这样,第一终端可以减少P帧占用的空口资源,提高I帧数据的传输成功率。
在一种可能的实现方式中,m个编码数据单元包括n个原始数据单元与(m-n)个冗余数据单元,n个原始数据单元与n个源数据单元相同。
这样,节点设备可以在收到n个原始数据单元时,不需要喷泉译码,就可以得到组播数据帧。
在一种可能的实现方式中,第一终端组播发送m个喷泉编码帧给多个节点设备,具体包括:
第一终端以第一调制与编码策略MCS发送包括原始数据单元的喷泉编码帧,以第二MCS发送包括冗余数据单元的喷泉编码帧,第一MCS的值大于第二MCS的值。
这样,第一终端可以给喷泉编码帧设置不同的MCS,尽可能保证节点设备接收到足够数量的喷泉编码帧。
在一种可能的实现方式中,第一终端组播发送m个喷泉编码帧给多个节点设备,具体包括:
第一终端在发送n个包括原始数据单元的喷泉编码帧后,连续发送p次(m-n)个包括冗余数据单元的喷泉编码帧,p大于等于1。
这样,第一终端可以多次发送相同的包括冗余数据单元的喷泉编码帧,减少喷泉编码的计算开销,通过重复发送喷泉编码帧,提高节电设备接收喷泉编码帧的数量。
在一种可能的实现方式中,第一终端以第一速率组播发送喷泉编码帧,喷泉编码帧包括m个喷泉编码帧;方法还包括:
第一终端在以第一速率发送喷泉编码帧之前,向多个节点设备中的第二终端发送第一动作action帧,第一action帧用于通知第二终端反馈第二action帧,第二action帧用于表示第二终端解析喷泉编码帧的译码成功率;
第一终端在基于接收到的第二action帧确定出第二终端的译码成功率高于第一门限值时,组播发送w个探测帧给多个节点设备,w个探测帧包括用于指示数据帧为探测帧的探测帧标识字段,第一终端基于最近发送的w个喷泉编码帧得到w个探测帧;
第一终端接收到来自多个节点设备的第三action帧,第三action帧用于表示节点设备收到的探测帧的数量;
第一终端在基于多个节点设备的第三action帧确定出多个节点设备收到的探测帧的数量都大于第二门限值时,以第二速率发送喷泉编码帧,第二速率大于第一速率;第一终端在基于多个节点设备的第三action帧确定出多个节点设备中任一个节点设备收到的探测帧的数量小于第二门限值时,以第一速率发送喷泉编码帧。
在一些示例中,第一action帧包括第二终端的标识。
这样,第一终端可以基于选定的反馈节点,确定出信道传输质量。当收到第一action帧的反馈节点,即第二终端的译码成功率较高时,第一终端可以基于第二action帧确定出信道质量较好,第一终端可以组播发送探测帧,通过所有节点设备接收探测帧的情况,决定是否提高传输喷泉编码帧的传输速率。
在一种可能的实现方式中,多个节点设备还包括第三终端;第一终端以第三速率发送喷泉编码帧,方法还包括:
第一终端接收第三终端发送的第四action帧,以第四速率发送喷泉编码帧,第四速率低于第三速率;其中,第四action帧携带第三终端的译码失败次数,译码失败次数用于表示第三终端接收失败的编码块的数量,1个编码块包括第一终端执行1次喷泉编码操作得到的喷泉编码帧。
这样,第一终端可以在收到第四action帧后,确定出部分节点设备接收喷泉编码帧的失败次数较多,第一终端可以降低传输喷泉编码帧的传输速率,提高该部分节点设备接收到的喷泉编码帧的数量。
在一种可能的实现方式中,当译码失败次数小于第一失败次数时,第三速率的值为第一速率值,当译码失败次数大于第一失败次数时,第三速率的值为第二速率值,第二速率值小于第一速率值。
这样,第一终端可以基于第四action帧的译码失败次数字段的值,决定传输喷泉编码帧的速率,译码失败次数越多,传输喷泉编码帧的速率越低。
在一种可能的实现方式中,第二终端用于向第一终端发送第二action帧,在第一终端在接收到第四action帧后,方法还包括:
第一终端通知第二终端停止发送第二action帧;
第一终端通知第三终端发送第二action帧。
这样,第一终端可以在收到第三终端的第四action帧时,确定出第三终端接收喷泉编码帧的失败次数更多,将接收情况更差的第三终端确定为反馈节点,增加所有节点设备接收喷泉编码帧的数量。
在一种可能的实现方式中,第二终端用于向第一终端发送第二action帧,并且第一终端组播发送m个喷泉编码帧给多个节点设备时,方法还包括:
第一终端接收到第二终端发送的第五action帧,停止发送m个喷泉编码帧,第五action帧用于表示第二终端成功解析得到n个组播数据帧。
这样,第一终端可以在收到反馈节点反馈的成功收到足够数量的喷泉编码帧的第五action帧后,停止发送属于该数据块的喷泉编码帧,减少空口资源的占用。第一终端可以在收到第五action帧后,发送下一个数据块的喷泉编码帧。
第二方面,本申请提供了一种传输方法,包括:
第二终端接收第一终端发送的第一编码块的喷泉编码帧,喷泉编码帧包括块编号BN字段和源数据单元数量字段,其中,于第一编码块包括m个喷泉编码帧,m个喷泉编码帧的BN字段的值相同,源数据单元数量字段用于表示m个喷泉编码帧得到的组播数据帧的源数据单元的数量;
第二终端基于接收到的喷泉编码帧的BN字段,确定出接收到的喷泉编码帧属于第一编码块;
当第二终端接收到的属于第一编码块的喷泉编码帧的数量等于源数据单元数量字段的值时,第二终端基于接收到的属于第一编码块的喷泉编码帧,通过喷泉译码得到组播数据帧。
这样,第二终端可以在收到源数据单元数量字段指示的数量的喷泉编码帧时,通过喷泉译码收到的喷泉编码帧,得到组播数据帧。
在一种可能的实现方式中,喷泉编码帧包括符号索引SI字段,符号索引字段用于标识属于同一个数据块的不同喷泉编码帧;第二终端基于接收到的属于第一编码块的喷泉编码帧的数量等于源数据单元数量字段的值时,第二终端基于接收到的属于第一编码块的喷泉编码帧,通过喷泉译码得到组播数据帧,具体包括:
第二终端基于接收到的属于第一编码块的SI字段的值不同的喷泉编码帧的数量等于源数据单元数量字段的值时,第二终端基于接收到的属于第一编码块的喷泉编码帧,通过喷泉译码得到组播数据帧。
这样,当第一终端重复发送相同的喷泉编码帧时,由于第二终端需要数量达到源数据单元数量字段的值,且编码数据单元不同的喷泉编码帧,才能得到组播数据帧。第二终端可以基于SI字段判断收到的喷泉编码帧是否为相同的喷泉编码帧。
在一种可能的实现方式中,第二终端在接收第一终端发送的喷泉编码帧之前,接收到第一终端发送的包括第二终端的标识的第一action帧;
第二终端响应于第一action帧,每隔预设反馈时间,向第一终端发送第二action帧,第二action帧用于表示第二终端接收喷泉编码帧的译码成功率,译码成功率由第二终端基于接收到的编码块的数量与成功解析的编码块的数量得到。
这样,第二终端可以向第一终端反馈接收喷泉编码帧的情况,使得第一终端可以基于第二终端的接收情况,调整传输喷泉编码帧的传输速率。
在一种可能的实现方式中,在当第二终端接收到的属于第一编码块的喷泉编码帧的数量等于源数据单元数量字段的值时,第二终端基于接收到的属于第一编码块的喷泉编码帧,通过喷泉译码得到组播数据帧之后,方法还包括:
第二终端向第一终端发送第五action帧,第五action帧用于表示第二终端成功接收第一编码块的喷泉编码帧;第五action帧还用于通知第一终端停止发送第一编码块的喷泉编码帧。
在一种可能的实现方式中,在接收到第一终端发送的包括第二终端的标识的第一action帧之后,方法还包括:
第二终端接收到第一终端发送的包括第三终端的标识的第一action帧;
第二终端停止向第一终端发送第二action帧。
这样,第二终端在收到第一终端停止发送第二action帧的指示后,不再向第一终端发送第二action帧。
在一种可能的实现方式中,第二终端收到第一终端发送的探测帧时,记录接收到的探测帧的数量,探测帧包括第一探测帧;
第二终端在接收到第一探测帧之后,相隔预设接收时间,未接收到下一个探测帧,第二终端基于记录的探测帧的数量,生成第三action帧,第三action帧包括探测帧接收数量字段,探测帧数量字段的值为第二终端收到的探测帧的数量。
这样,第二终端可以向第一终端反馈收到的探测帧的数量,使得第一终端确定第二终端的探测帧接收情况。
在一种可能的实现方式中,第二终端用于在接收第一终端发送的喷泉编码帧时,记录译码失败次数,译码失败次数用于表示第二终端解析失败的数据块的数量;方法还包括:
当第二终端基于收到的喷泉编码帧的BN字段的值,确定出收到的喷泉编码帧属于下一个数据块时,若第二终端判定出接收到的属于当前数据块的喷泉编码帧的数量小于当前数据块的喷泉编码帧的源数据单元数量字段的值,第二终端记录的解析失败的数据块的数量值增加1。
第二终端在译码失败次数达到第三门限值时,将携带译码失败次数字段的第四action帧发送至第一终端,译码失败次数字段的值与第二终端的译码失败次数的值相同,第四action帧用于通知第一终端降低传输喷泉编码帧的速率。
这样,第二终端可以向第一终端反馈第二终端的译码失败次数,使得第一终端降低传输喷泉编码帧的速率,提高第二终端接收喷泉编码帧的成功率。
第三方面,本申请提供了一种通信装置,包括一个或多个处理器、一个或多个存储器和收发器。收发器、该一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得通信装置执行上述第一方面任一项可能的实现方式中的方法。
其中,该通信装置可以为终端或其他产品形态的设备。
第四方面,本申请提供了一种计算机存储介质,包括计算机指令,当计算机指令在计算机上运行时,使得计算机执行上述第一方面任一项可能的实现方式中的方法。
第五方面,本申请提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述第一方面任一项可能的实现方式中的方法。
第六方面,本申请提供了一种通信装置,包括一个或多个处理器、一个或多个存储器和收发器。收发器、该一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得通信装置执行上述第二方面任一项可能的实现方式中的方法。
其中,该通信装置可以为终端或其他产品形态的设备。
第七方面,本申请提供了一种计算机存储介质,包括计算机指令,当计算机指令在计算机上运行时,使得计算机执行上述第二方面任一项可能的实现方式中的方法。
第八方面,本申请提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述第二方面任一项可能的实现方式中的方法。
第九方面,本申请提供了一种芯片或芯片系统,应用于终端,包括处理电路和接口电路,接口电路用于接收代码指令并传输至处理电路,处理电路用于运行代码指令以执行上述第一方面任一项可能的实现方式中的方法。
第十方面,本申请提供了一种芯片或芯片系统,应用于终端,包括处理电路和接口电路,接口电路用于接收代码指令并传输至处理电路,处理电路用于运行代码指令以执行上述第二方面任一项可能的实现方式中的方法。
附图说明
图1为本申请实施例提供的一种通信系统10的示意图;
图2为本申请实施例提供的一种传输组播数据帧的示意图;
图3A为本申请实施例提供的一种终端100生成喷泉编码帧的流程示意图;
图3B为本申请实施例提供的一种喷泉编码帧的帧格式示意图;
图3C为本申请实施例提供的一种IP分片的流程示意图;
图4为本申请实施例提供的一种传输喷泉编码帧的示意图;
图5为本申请实施例提供的一种I帧标记字段的示意图;
图6为本申请实施例提供的一种I帧与P帧的喷泉编码流程示意图;
图7为本申请实施例提供的一种喷泉编码帧的传输速率的示意图;
图8为本申请实施例提供的一种action帧的帧结构示意图;
图9为本申请实施例提供的一种提高喷泉编码帧的数据传输速率的方法的流程示意图;
图10为本申请实施例提供的一种降低喷泉编码帧的数据传输速率的方法的流程示意图;
图11为本申请实施例提供的一种传输喷泉编码帧的流程示意图;
图12为本申请实施例提供的另一种传输喷泉编码帧的流程示意图;
图13为本申请实施例提供的一种硬件结构示意图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清楚、详尽地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
下面介绍本申请实施例中提供的一种通信系统10。
图1示出了本申请实施例中提供的一种通信系统10的示意图。
如图1所示,通信系统10可以包括一个或多个终端,该一个或多个终端包括一个组播服务端和至少一个组播客户端。其中,组播为终端之间一对多的通讯模式。组播可以理解为一个或多个组播源(又称为组播服务端)发送同一数据帧到多个接收方(又称为组播客户端,或节点设备)的技术。其中,组播服务端可以将一份数据帧发送到特定的组播地址,组播地址不同于单播地址,它不属于某个终端,而是属于同一个群组的所有终端。其中,一个组播地址可以表示一个群组,只有群组内的终端才能接收该群组的组播数据帧。
其中,在通信系统10中,组播服务端可以为终端100,至少一个组播客户端可以包括但不限于终端200、终端300等。组播服务端可以用于发送组播数据帧,组播数据帧包括目的地址,该目的地址为约定的组播地址,属于该群组的所有终端都存储有该约定的组播地址。组播客户端可以用于接收组播数据帧,并在接收到某个组播数据帧时,基于组播数据帧的目的地址判断是否解析该组播数据帧。组播客户端可以在判定出组播数据帧的目的地址为约定的组播地址时,解析该组播数据帧。组播客户端可以在判定出组播数据帧的目的地址不为约定的组播地址时,丢弃该数据帧。
在本申请实施例中,群组中的各个终端可以通过无线保真(wireless fidelity,Wi-Fi)技术,发送/接收组播数据帧。组播服务端通过Wi-Fi网络向多个组播客户端传输Wi-Fi组播数据。其中,组播服务端可以为Wi-Fi路由器、手机等终端设备,组播客户端可以为手机等终端设备。这样,终端100可以组播将终端100显示的画面投屏至多个终端,实现1对多投屏分享。例如,终端100可以组播向多个终端分享视频、游戏画面等。并且,由于在Wi-Fi投屏场景中,如果有多个接收方,终端单播发送数据时,需要单播需要为多个接收方分别发送相同的内容。而组播服务端通过Wi-Fi组播发送数据,只需要发送一份数据。当接收方数量很多时,通过Wi-Fi组播可以节省空口传输资源开销,并且可以使得接收方之间的时延差异小。
需要说明的是,组播服务端和各个组播客户端之间可以不需要建立通信连接,例如,点对点(peer to peer,P2P)连接,组播客户端也可以接收组播服务端发送的组播数据。可以理解的是,组播服务端和各个组播客户端中的一个或多个组播客户端建立有通信连接时,也不会影响组播数据的发送/接收。
当群组中各个终端通过Wi-Fi发送/接收组播数据帧时,组播数据帧的组播地址可以包括媒体存取控制(Media Access Control Address,MAC)地址。在一些示例中,组播MAC地址的高25位(bit)可以为0x01005e,低23bit可以为组播网际协议地址(Internet Protocol Address,IP)的低23bit。群组中的各个终端可以基于数据帧的MAC地址的高25bit区分该数据帧为组播数据帧还是单播数据帧。
需要说明的是,由于组播的接收客户端有多个,组播客户端无法立刻向组播服务端回复确认字符(acknowledge character,ACK),组播服务端不知道各个组播客户端接收组播数据帧的情况,也就无法及时执行丢包重传操作,使得组播传输的可靠性比较低。
在一种可能的实现方式中,组播服务端在发送组播数据帧时,可以重复发送多次相同的组播数据帧。这样,增加组播服务端发送的每一个组播数据帧的次数,可以提高每一个组播客户端收到组播数据帧的概率,提升组播传输的可靠性。
示例性的,如图2所示,组播服务端终端100可以组播发送多个组播数据帧,该多个数据帧包括数据帧1、数据帧2和数据帧3。为了提升组播传输可靠性,终端100在发送该数据帧1、数据帧2和数据帧3后,再次发送该数据帧1、数据帧2和数据帧3。
虽然重复发送相同的数据帧可以提升组播客户端接收数据帧的概率,但是若组播客户端连续多次未接收到相同内容的数据帧,组播客户端也无法收到完整的组播数据。如图2所示,虽然组播客户端终端200一共接收到3个数据帧,但是由于终端200连续两次都没有接收到数据帧3,无法得到数据帧3中的组播数据。
本申请实施例提供了一种传输方法。组播服务端在组播发送n个组播数据帧时,组播服务端可以先将该n个组播数据帧(又称为组播数据包、源数据包、源数据帧)进行喷泉码编码处理,得到m个喷泉编码帧(又称为喷泉编码数据包),m大于n,再将m个喷泉编码帧组播发送给多个组播客户端。当组播客户 端收到m个喷泉编码帧中的n个喷泉编码帧时,可以针对该n个喷泉编码帧,执行喷泉码解码操作,得到该n个组播数据帧。这样,由于喷泉码编码为无速率编码,组播服务端可以根据度值分布函数,基于组播数据帧生成无数个喷泉编码帧。组播客户端只要接收到任意至少n个数据帧,就可以译码得到完整的组播数据帧。
其中,终端100可以基于网络层协议数据单元生成该n个组播数据帧,组播数据帧包括源数据单元。终端100可以将n个组播数据帧的n个源数据单元经过喷泉编码得到m个编码数据单元,再基于该m个编码数据单元得到m个喷泉编码帧。
在一些实施例中,m个编码数据单元为冗余数据单元,任一个冗余数据单元的数据与任一个源数据单元的数据都不同。
在另一些实施例中,m个编码数据单元包括n个与源数据单元的数据相同的原始数据单元,以及(m-n)个冗余数据单元。这样,若组播客户端收到所有包括原始数据单元的喷泉编码帧时,可以不用执行喷泉译码操作,得到组播数据帧。
进一步的,终端100可以首先发送包括原始数据单元的喷泉编码帧,再发送包括冗余数据单元的喷泉编码帧。在后续实施例描述中,都将以m个编码数据单元包括n个与源数据单元的数据相同的原始数据单元,和(m-n)个冗余数据单元,以及首先发送包括袁术数据单元的喷泉编码帧再发送包括冗余数据单元的喷泉编码帧进行描述。
具体的,如图3A所示,当终端100组播发送数据时,终端100首先获取数据链路层协议数据单元。当终端100的数据链路层使用以太网协议时,该数据链路层协议数据单元又称为MAC协议数据单元(mac protocol data unit,MPDU)。其中,MPDU由第一以太网头和网络层协议数据单元组成。在此,MPDU为上述组播数据帧。
其中,第一以太网头包括源MAC地址字段、目的MAC地址字段和类型字段。其中,源MAC地址字段的值为终端100的MAC地址。在一些示例中,源MAC地址字段的长度可以为6字节(byte)。目的MAC地址的值为组播地址值。类型字段可以用于指示数据帧的类型。例如,该类型字段的长度可以为2byte。例如,当类型字段的值为0x0800时,该类型字段表示此数据帧为携带有数据内容(例如,投屏数据)的数据帧,该数据帧可以用于传输数据。当类型字段的值为0x0806时,该类型字段表示此数据帧为地址解析协议(address resolution protocol,ARP)请求,当数据帧为ARP请求时,可以用于获取IP地址对应的MAC地址。
其中,网络层协议数据单元包括网络层协议首部和运输层协议数据单元。其中,网络层协议数据单元可以为IP数据报,网络层协议首部可以为IP报文头,运输层协议数据单元可以为用户数据报协议(user datagram protocol,UDP)报文段。其中,IP报文头包括标识字段,标识字段可以用于标识IP数据报。
终端100可以将标识字段的值相同的一个或多个MPDU的网络层协议数据单元作为源数据单元。之后,终端100可以将该一个或多个源数据单元作为喷泉编码算法的输入数据,经过喷泉码编码算法计算得到编码数据单元。其中,编码数据单元包括原始数据单元,以及冗余数据单元。冗余数据单元和原始数据单元不同,原始数据单元的数据与源数据单元的数据相同。例如,喷泉码编码算法可以为低密度奇偶校验码(low density parity check code,LDPC)算法。
在一些示例中,终端100可以将该一个或多个源数据单元作为喷泉编码算法的输入数据,经过喷泉码编码算法计算得到冗余数据单元,并将源数据单元作为原始数据单元。其中,原始数据单元与冗余数据单元统称为编码数据单元。
需要说明的是,n个源数据单元经过一倍冗余的喷泉码编码可以得到2n个编码数据单元,2n个编码数据单元包括该n个原始数据单元和n个冗余数据单元。n个源数据单元经过二倍冗余的喷泉码编码可以得到3n个编码数据单元,3n个编码数据单元包括该n个原始数据单元和2n个冗余数据单元。以此类推。
之后,终端100可以给编码数据单元添加头部,得到喷泉编码帧。例如,终端100可以给图3A所示的原始数据单元1添加头部,得到喷泉编码帧1,给冗余数据单元1添加头部,得到喷泉编码帧4。其中,喷泉编码帧的帧格式可以如图3B所示。
示例性的,如图3B所示,喷泉编码帧可以包括但不限于802.11头、第二以太网头、华为磁链接(huawei magnetic link,HML)头以及编码数据单元。其中,编码数据单元可以为原始数据单元或冗余数据单元。802.11头可以为802.11协议提供的头部,可以用于终端100发送Wi-Fi数据。第二以太网头包括源MAC地址字段、目的MAC地址字段和类型字段。其中,第二以太网头的源MAC地址字段与目的MAC地址字段的值和第一以太网头的相同。第二以太网头的类型字段由终端100基于第一以太网头的类型字段得到。 其中,第二以太网头的类型字段可以用于标识该帧为喷泉编码帧或动作(action)帧。例如,类型字段的长度也可以为2byte。其中,由于第一以太网头的类型字段的前8bit都相同,后8bit的值用于标识数据帧的类型。在此,第二以太网头的类型字段的值的后8bit与第一以太网头的后8bit相对应。当类型字段的值的前8bit的值为0xFF时,该类型字段表示数据帧为喷泉编码帧;当类型字段的值的前8bit的值为0xFE时,该类型字段表示数据帧为action帧。其中,action帧的描述可以参见后续实施例的描述。
其中,HML头可以包括但不限于协议类型字段、调制与编码策略(modulation and coding scheme,MCS)字段、保护间隔(guarding interval,GI)字段、空间流数(the number of spatial steams,NSS)字段、探测帧标记字段、块编号(block number,BN)字段、符号索引(symbol index,SI)字段以及源数据单元数量字段等等。
为了后续实施例的描述,在此首先介绍MCS。其中,由于数据帧的数据传送速率(又称为数据传输速率)由调制方法、编码率、保护间隔、空间流数量等多个因素决定。终端100可以基于该多个因素,提供多种数据帧的数据传送速率。其中,MCS提供了数据帧的数据传送速率表,该速率表将影响传输速率的因素作为列,将MCS阶数作为行。每一个MCS阶数对应了一组确定的影响因素,以及在影响因素下终端100的数据传输速率。MCS的阶数越高,数据传输速率越快。MCS的阶数通常包括1阶到11阶。其中,1阶的MCS可以表示为MCS1,2阶的MCS可以表示为MCS2,以此类推。其中,MCS阶数与编码方法、编码率、保护间隔、空间流数以及数据传送速率的对应关系可以参考64正交幅度调制(quadrature amplitude modelation,QAM)表,256QAM表、低频谱效率64QAM表等速率表等等。
其中,MCS字段用于指示终端100发送数据帧的数据传送速率。MCS字段的值可以用于指示MCS阶数。例如,MCS字段的长度可以为4bit。例如,当MCS字段的值为0001时,MCS字段指示终端100按照MCS1编码调制组播发送给其他组播客户端的数据(包括喷泉编码帧)。可以理解的是,当MCS阶数确定后,按照速率表,MCS阶数对应的数据传送速率也随之确定。
其中,GI字段的值表示终端100发送多个数据帧的间隔时间,用于降低无线发送的多个数据帧之间的相互干扰。
NSS字段用于指示终端100发送无线信号的天线数量,每一个天线对应一个空间流。空间流越多,终端100处理的数据越多,传输速率也越高。
探测帧标记字段用于指示该数据帧是否为探测帧。其中,探测帧可以用于终端100调整MCS阶数,具体的,可以参见图10所示的实施例。例如,该探测帧标记字段的长度可以为1bit。示例性的,当探测帧标记字段的值为0时,可以表示数据帧为喷泉编码帧。当探测帧标记字段的值为1时,可以表示数据帧为探测帧。终端100可以复制最近发送的多个(例如,40个)喷泉编码帧,并修改复制得到的数据帧的探测帧标记字段,例如,从0变换为1,得到探测帧。终端100可以在发送后续的喷泉编码帧期间,随机发送探测帧。组播客户端可以接收探测帧,并且记录接收的探测帧的数量,并将记录的数量反馈给终端100。可以理解的时,组播客户端收到某个数据帧后,可以在基于探测帧标记字段识别出该数据帧为探测帧时,仅记录探测帧的数量,不处理探测帧的编码数据单元。
块编号字段用于指示数据帧所属的编码块。其中,终端100基于标识字段的值相同的一个或多个MPDU,经过喷泉码编码操作得到的多个喷泉编码帧可以统称为一个编码块,该多个喷泉编码帧的块编号字段的值相同。
在一些实施例中,为了避免编码数据单元的数量过多,增加终端100的编码开销,终端100可以在标识字段的值相同的MPDU的数量大于第一数量阈值(例如,10个)时,终端100可以根据第一数量阈值,将MPDU划分为多个编码单位,再针对多个编码单位分别进行喷泉码编码操作,得到多个编码块。例如,若MPDU的数量为23个,终端100可以将MPDU划分为3个编码单位,其中,第1个编码单位包括第1个到第10个MPDU,第2个编码单位包括第11个至第20个MPDU,第3个编码单位包括第21个至第23个MPDU。终端100可以针对第1个编码单位的源数据单元进行一倍冗余喷泉码编码,得到第1个编码块,第1个编码块包括20个喷泉编码帧。同理,终端100可以针对第2个编码单位的源数据单元进行一倍冗余喷泉码编码,得到第2个编码块,第2个编码块包括20个喷泉编码帧。终端100可以针对第3个编码单位的源数据单元进行一倍冗余喷泉码编码,得到第3个编码块,第3个编码块包括6个喷泉编码帧。其中,第1个编码块的多个喷泉编码帧的块编号字段的值相同,第2个编码块的多个喷泉编码帧的块编号字段的值相同,第3个编码块的多个喷泉编码帧的块编号字段的值相同。并且,第1个编码块的块编号字段的值、第2个编码块的块编号字段的值与第3个编码块的块编号字段的值都不同。例如,第1个编码块的喷泉编码帧的块编号字段的值都为1,第2个编码块的喷泉编码帧的块编号字段的值都为2,第3个编 码块的喷泉编码帧的块编号字段的值都为3。
符号索引字段用于指示数据帧在编码块中的顺序。例如,图3A所示的喷泉编码帧1的符号索引字段的值可以为0,喷泉编码帧2的符号索引字段的值可以为1,以此类推。
源数据单元数量字段用于指示终端100进行编码的源数据单元的数量,即MPDU的数量。例如,如图3A所示,喷泉编码帧1至喷泉编码帧6的源数据单元数量字段的值为3,表示终端100基于3个MPDU得到该多个喷泉编码帧。
终端100可以将喷泉编码帧进行物理层处理,组播发送给组播客户端,例如终端200。具体的,终端100可以获取喷泉编码帧,并且按照MCS字段指示的某个阶数的MCS编码调制喷泉编码帧,得到组播信号。然后,终端100可以通过天线将组播信号发送给组播客户端。
在一些实施例中,由于最大传输单元(maximum transmission unit,MTU)的限制,当终端100生成的IP数据报的长度大于最大传输单元的长度时,终端100无法封装IP数据报,终端100需要对IP数据报进行IP分片处理,得到多个IP数据分片。其中,终端100将IP数据报进行IP分片处理的过程可以参考图3C所示的实施例。之后,终端100才能在数据链路层封装IP数据分片。
示例性的,如图3C所示,IP数据报由IP报文头和UDP报文段构成。IP数据分片由IP报文头和一部分UDP报文段组成。IP数据报和IP数据分片的IP报文头都可以包括但不限于标识字段、更多分段(more fragment,MF)字段和片偏移(fragment offset)字段等等。
其中,标识字段可以用于标识IP数据报,终端100设置有一个计数器,终端100每生成一个IP数据报,就更新计数器的值,并将更新后的计数器的值赋值给生成的IP数据报的标识字段。其中,IP数据分片的标识字段和IP数据报的标识字段的值相同。组播客户端可以基于IP数据分片中的标识字段,确定出IP数据分片所属的IP数据报。
其中,MF字段可以用于标识当前IP数据分段是否为IP数据报的最后一个IP数据分段。例如,MF字段的长度可以为1bit,当MF字段的值为1时,表示该IP数据分段不是IP数据报的最后一个IP数据分段;当MF字段的值为0时,表示该IP数据分段是IP数据报的最后一个IP数据分段。可以理解的是,IP数据报的MF字段的值为0。
其中,片偏移字段可以用于标识IP数据分段的数据在IP数据报中的位置。可以理解的是,IP数据报的片偏移字段的值为0。
终端100得到IP数据分片后,可以将IP数据分片进行数据链路层协议封装,得到MPDU。这样,终端100基于IP数据报,得到了用于喷泉码编码的MPDU。
可以理解的是,终端100通过喷泉编码帧将组播数据组播发送给各个组播客户端时,各个组播客户端可以接收喷泉编码帧,并解析喷泉编码帧,得到组播数据。以终端200为例,示例性的介绍组播客户端的接收组播数据的过程。
示例性的,终端200可以通过天线接收终端100发送的组播信号,并经过终端200的物理层处理,得到数据帧。终端200可以去掉数据帧的802.11头,并且基于数据帧的第二以太网头的类型字段,确定出数据帧为喷泉编码帧。终端200可以基于第二以太网头得到第一以太网头。
终端200可以基于喷泉编码帧的HML头的BN字段确定出接收到的数据帧中属于同一个编码块的喷泉编码帧。之后,终端200可以基于源数据单元数量字段,判断接收的属于同一个编码块的喷泉编码帧的数量是否大于或等于源数据单元的数量。
当终端200判定出接收到的属于同一个编码块的喷泉编码帧的数量小于源数据单元的数量时,终端200可以继续接收喷泉编码帧,并判断该喷泉编码帧是否属于当前编码块。若终端200接收到的下一个喷泉编码帧属于当前编码块,终端200可以再次判断接收到的属于同一个编码块的喷泉编码帧的数量是否大于或等于源数据单元的数量。若终端200接收到的下一个喷泉编码帧不属于当前编码块(例如,属于下一个编码块),终端200结束此次接收操作。可选的,终端200可以在结束接收操作后,丢弃已经接收的属于同一个编码块的喷泉编码帧。
当终端200判定出接收到的属于同一个编码块的喷泉编码帧的数量大于或等于源数据单元的数量时,终端200可以将同一个编码块的喷泉编码帧的编码数据单元作为喷泉译码算法的输入,经过喷泉译码算法计算得到源数据单元。终端200得到所有源数据单元后,可以给所有源数据单元添加第一以太网头,得到MPDU。之后,终端200可以将MPDU进行数据链路层、网络层、运输层和应用层的处理,得到组播数据。在一些示例中,当组播数据为投屏数据时,终端200可以显示基于投屏数据合成得到的视频画面。
需要说明的是,当终端200接收的喷泉编码帧属于终端100此次发送的最后一个编码块时,可以在判定出接收到的属于同一个编码块的喷泉编码帧的数量小于源数据单元的数量时,继续等待接收下一个喷泉编码帧,直到接收到终端100下一次发送的编码块的喷泉编码帧。
在一些实施例中,当终端200判定出接收到的属于同一个编码块的喷泉编码帧的数量大于或等于源数据单元的数量时,终端200可以基于该多个喷泉编码帧的SI字段,判断终端200是否接收到所有包括原始数据单元的喷泉编码帧。其中,包括原始数据单元的喷泉编码帧的SI字段的值小于源数据单元数量字段的值。当终端200判定出接收到所有包括原始数据单元的喷泉编码帧时,由于原始数据单元的数据与源数据单元的数据相同,终端200可以提取所有包括原始数据单元的喷泉编码帧的原始数据单元。并且给所有原始数据单元添加第一以太网头,得到MPDU。之后,终端200可以将MPDU进行数据链路层、网络层、运输层和应用层的处理,得到组播数据。当终端200判定出未接收到所有包括原始数据单元的喷泉编码帧时,终端200可以基于接收到的所有属于同一个编码块的喷泉编码帧的编码数据单元,经过喷泉译码算法计算得到源数据单元。这样,组播客户端可以在接收到所有包括原始数据单元的喷泉编码帧的情况下,不经过喷泉译码算法的计算,直接提取得到原始数据单元,将原始数据单元作为源数据单元,减小组播客户端的计算开销。
可以理解的是,当终端200判定出接收到的属于同一个编码块的喷泉编码帧的数量大于或等于源数据单元的数量时,可以不再处理后续收到的属于该编码块的喷泉编码帧。
示例性的,如图4所示,相比于图2所示的组播场景,终端100通过喷泉码编码形式,组播发送3个源数据帧时,可以将该3个源数据帧进行一倍冗余的喷泉码编码,得到6个喷泉编码帧。该6个喷泉编码帧可以包括3个包括原始数据单元的喷泉编码帧,以及3个包括冗余数据单元的喷泉编码帧。其中,终端100基于源数据帧得到喷泉编码帧的具体操作可以参见上述图3A-图3C所示实施例,在此不再赘述。
终端100可以组播发送该6个喷泉编码帧,在此,该6个喷泉编码帧包括喷泉编码帧1、喷泉编码帧2、喷泉编码帧3、喷泉编码帧4、喷泉编码帧5和喷泉编码帧6。其中,终端200在接收组播发送的喷泉编码帧时,由于空口丢包,丢失了喷泉编码帧3、喷泉编码帧4和喷泉编码帧6。虽然图4所示的终端200同图2所示的终端200相同都只接收到3个数据帧,但是由于图4所示的终端200接收到的数据帧为喷泉编码帧,即,喷泉编码帧1、喷泉编码帧2和喷泉编码帧5。终端200可以基于喷泉编码帧1、喷泉编码帧2和喷泉编码帧5的编码数据单元,经过喷泉码译码算法计算得到3个源数据帧的数据内容。
需要说明的是,终端100使用喷泉码编码形式进行组播传输时,采用的编码冗余度越高,传输的可靠性越高。但是,也会造成编码时延,加大空口开销。因此,终端100需要合理设置喷泉码编码冗余度以及传输机制(例如,传输速率的选择、如何发送冗余数据单元等),在保证组播传输的可靠性的同时,减少空口资源开销。
在一种可能的实现方式中,终端100可以基于MPDU携带的数据的重要程度,确定出MPDU的喷泉编码冗余度。其中,终端100可以给携带有重要数据的MPDU设置更高的喷泉编码冗余度,终端100可以给携带有非重要数据的MPDU设置更低的喷泉编码冗余度。这样,既可以保证重要数据的传输可靠性,又可以减少空口资源开销。
在一些实施例中,终端100进行视频压缩时,可以将视频的每一帧图像进行压缩,得到I帧和P帧。其中,I帧为关键帧,包括一帧完整的视频图像的数据。P帧为非关键帧,包括与前一关键帧(或非关键帧)的差别的数据。终端100在组播发送视频的压缩数据时,由于I帧比P帧更加重要,终端100可以在针对MPDU进行喷泉码编码操作时,设置携带有I帧数据的MPDU的喷泉编码冗余度高于携带有P帧数据的MPDU的喷泉编码冗余度。
具体的,终端100可以在针对一个或多个MPDU进行喷泉码编码操作时,判断携带有相同标识字段的一个或多个MPDU是否包括I帧的数据。终端100可以在判定出该一个或多个MPDU包括I帧的数据时,针对该一个或多个MPDU进行a倍冗余的喷泉码编码操作,得到喷泉编码帧。终端100可以在判定出该一个或多个MPDU不包括I帧的数据时,针对该一个或多个MPDU进行b倍冗余的喷泉码编码操作,得到喷泉编码帧。其中,a大于b。
其中,终端100可以根据I帧标记字段判断一个或多个MPDU是否包括I帧数据。示例性的,如图5所示,终端100生成的应用层协议单元可以包括应用层协议首部和数据字段。其中,应用层协议首部包括I帧标记字段,I帧标记字段可以用于标记数据字段的值为I帧数据还是P帧数据。终端100可以在将应用 层协议单元通过运输层、网络层处理后,得到多个IP数据分片,即,图5所示的源数据单元1和源数据单元2。
终端100在针对一个或多个MPDU进行喷泉码编码操作时,可以提取标识字段的值相同的MPDU中的源数据单元。并基于源数据单元的IP报文头中的片偏移字段的值,确定出包括应用层协议首部的源数据单元1。终端100可以基于源数据单元1的应用层协议首部的I帧标记字段判断MPDU是否携带I帧数据。终端100可以按照判定结果针对该一个或多个MPDU执行对应倍数冗余的喷泉码编码操作。
示例性的,如图6所示,当源数据单元包括I帧数据时,终端100可以按照2倍冗余针对该3个源数据单元进行喷泉码编码,得到9个喷泉编码帧。当源数据单元包括P帧数据时,终端100可以按照1倍冗余针对该3个源数据单元进行喷泉码编码,得到6个喷泉编码帧。这样,终端100可以提高I帧数据传输成功率,并且降低I帧与P帧传输所需要的空口资源。在此,a的值为2,b的值为1。可以理解的是,2倍冗余喷泉编码和1倍冗余喷泉编码仅为示例,终端100可以采用其他倍数的冗余喷泉编码,例如,当源数据单元包括I帧数据时,终端100可以按照1.5倍冗余针对源数据单元进行喷泉码编码,当源数据单元包括P帧数据时,终端100可以按照0.5倍冗余针对源数据单元进行喷泉码编码。可以理解的是,当源数据单元的数量为奇数且冗余倍数为小数时,得到的喷泉编码帧的数量为非整数,终端100可以将终端100的喷泉编码算法的输出的喷泉编码帧个数设置为经过冗余倍数计算后再进行向上取整得到的数量,使得终端100可以得到整数个喷泉编码帧,例如,针对3个包括I帧数据的源数据单元进行1.5倍冗余编码,得到8个喷泉编码帧;针对3个包括P帧数据的源数据单元进行0.5倍冗余编码,得到5个喷泉编码帧。本申请实施例对此不作限定。
需要说明的是,不限于上述重要程度划分方式,还可以基于其他方式划分组播数据的重要程度。例如,终端100可以基于MPDU携带的数据所属的应用程序,确定出数据是否重要。终端100可以在发送应用A的数据时,采用a倍(例如2倍)冗余喷泉编码组播发送应用A的数据。终端100可以在发送应用B的数据时,采用b倍(例如1倍)冗余喷泉编码组播发送应用B的数据,a大于b。例如,应用A可以为投屏类应用、即时通讯类应用。应用B可以为文件编辑类应用等等。本申请实施例对此不作限定。
需要说明的是,将投屏数据划分为重要数据和非重要数据仅为示例,终端100还可以更加细致划分数据的重要程度。例如,可以将数据的重要程度划分为多个(例如,3个)重要等级。最不重要的数据采用最低冗余度编码,最重要的数据采用最高冗余度编码,依次类推。这样,可以基于投屏数据的重要程度划分不同的冗余度。
在一种可能的实现方式中,终端100还可以给不同冗余倍数的喷泉编码帧设置不同的传输速率。终端100可以以最快的速率传输包括原始数据单元的喷泉编码帧,以低于传输原始数据单元的喷泉编码帧的速率传输包括1倍冗余编码的冗余数据单元的喷泉编码帧,以低于传输包括1倍冗余编码的冗余数据单元的喷泉编码帧的速率传输包括2倍冗余编码的冗余数据单元的喷泉编码帧,以此类推。这样,终端100可以降低传输包括高倍冗余编码的冗余数据单元的喷泉编码帧的MCS,提升组播客户端接收到完整的组播数据的可能性。
其中,终端100可以基于SI字段和源数据单元数量字段,确定出喷泉编码帧包括原始数据单元,还是1倍冗余的冗余数据单元,还是2冗余的冗余数据单元,等等。其中,喷泉编码帧的SI字段的值小于源数据单元数量字段的值,该喷泉编码帧为包括原始数据单元的喷泉编码帧。喷泉编码帧的SI字段的值小于2*源数据单元数量字段的值,且喷泉编码帧不包括原始数据单元,那么该喷泉编码帧为包括1倍冗余的冗余数据单元的喷泉编码帧。喷泉编码帧的SI字段的值小于3*源数据单元数量字段的值,且喷泉编码帧不包括原始数据单元以及1倍冗余的冗余数据单元,那么该喷泉编码帧为包括2倍冗余的冗余数据单元的喷泉编码帧,依次类推。终端100可以确定出原始数据单元以及不同倍数的冗余数据单元。
示例性的,如图7所示,终端100基于3个源数据单元,得到9个喷泉编码帧,该9个喷泉编码帧中SI字段的值小于3的3个喷泉编码帧按照MSCk指示的数据传送速率进行传输。该9个喷泉编码帧中SI字段的值大于2且小于6的3个喷泉编码帧按照MSCk-1指示的数据传送速率进行传输。该9个喷泉编码帧中SI字段的值大于5且小于9的3个喷泉编码帧按照MSCk-2指示的数据传送速率进行传输。
需要说明的是,不限于每次将MCS的阶数减小一阶,终端100也可以设置每次将MCS的阶数减少2阶或更多。或者,终端100也可以存储有预先设置的包括源数据单元的喷泉编码帧的MCS阶数、包括1倍冗余的冗余数据单元的喷泉编码帧的MCS阶数,以及包括2倍冗余的冗余数据单元的喷泉编码帧的MCS阶数等等。例如,终端100可以将喷泉编码帧中包括源数据单元的喷泉编码帧按照MSCk指示的数据传送 速率进行传输,将喷泉编码帧中包括冗余数据单元的喷泉编码帧按照MSCk-1指示的数据传送速率进行传输。这样,终端100可以直接查询存储的MCS阶数关系,确定出发送各喷泉编码帧的MCS阶数。
接下来首先介绍本申请实施例提供的action帧的帧格式。
示例性的,如图8所示,本申请实施例提供了五种action帧的帧格式。其中,该5中action帧可以包括第一action帧、第二action帧、第三action帧、第四action帧以及第五action帧。其中,第一action帧为终端100发送给某个指定的组播客户端的action帧,可以用于终端100选择反馈节点。第二action帧为反馈节点发送给终端100的action帧,可以用于反馈节点给终端100反馈译码喷泉编码帧的译码成功率。第三action帧为所有组播客户端发送给终端100的action帧,可以用于终端100检测是否可以提高喷泉编码帧的数据传送速率。第四action帧为非反馈节点给终端100发送的action帧,可以用于提示终端100降低喷泉编码帧的数据传送速率。第五action帧为反馈节点给终端100发送的action帧,可以用于通知终端100反馈节点接收到完整的组播数据。
其中,所有action帧都包括有802.11头、第二以太网头、华为磁链接控制(huawei magnetic link control,HML Control)头、反馈类型字段以及速率信息字段。其中,802.11头和第二以太网头的描述可以参见上述图3B所示实施例,在此不再赘述。可以理解的是,第二以太网头的目的MAC地址字段的值为组播MAC地址,所有属于该群组的终端都可以收到action帧。
其中,HML Control头可以包括但不限于实际MAC地址字段、源MAC地址字段以及控制帧ID字段。其中,实际MAC地址字段用于标识action帧的接收端,例如,实际MAC地址的值可以为某一个组播客户端的MAC地址,或者,为组播MAC地址。其中,接收该action帧的终端可以基于实际MAC地址字段的值,确定出是否处理该action帧。源MAC地址字段的值为发送该action帧的终端的MAC地址。
其中,控制帧ID字段可以用于标记当前action帧在所有已发送的action帧中的顺序。
其中,反馈类型字段可以用于标识该action的类型。例如,反馈类型字段的长度可以为3bit,当反馈类型字段的值为000时,可以指示该action帧为第一action;当反馈类型字段的值为001时,可以指示该action帧为第二action帧;当反馈类型字段的值为010时,可以指示该action帧为第三action帧;当反馈类型字段的值为011时,可以指示该action帧为第四action帧;当反馈类型字段的值为100时,可以指示该action帧为第五action帧。
其中,速率信息字段可以用于指示终端100发送包括原始数据单元的喷泉编码帧的数据传输速率。在一些示例中,速率信息字段的值为终端100传输包括原始数据单元的喷泉编码帧时设置的MCS阶数。
第一action帧还可以包括但不限于节点MAC地址字段等。其中,节点MAC地址可以用于指示终端100选中的反馈节点的MAC地址。
在此,第一action帧的实际MAC地址字段用于标识接收该第一action帧的某一个组播客户端,该实际MAC地址字段的值为该某一个组播客户端的MAC地址。当所有组播客户端收到第一action帧后,可以基于实际MAC地址字段的值确定出该第一action帧是否发送给自身。例如,若组播客户端的终端200收到第一action帧后,确定出实际MAC地址字段的值与终端200的MAC地址的值相同,终端200可以处理该第一action帧;否则,终端200可以丢弃该第一action帧。其中,终端200处理第一action帧的具体描述可以参见图9及图10所示实施例。
第二action帧还可以包括但不限于译码成功率字段。译码成功率字段可以用于表示反馈节点译码喷泉编码帧的译码成功率。例如,若反馈节点接收到x个编码块,反馈节点成功解析得到x个编码块中y个编码块的组播数据,译码成功率为y/x。可以理解的是,第二action帧的实际MAC地址字段的值为终端100的MAC地址,第二action帧的源MAC地址字段的值为反馈节点的MAC地址。
第三action帧还可以包括但不限于探测速率字段、探测帧接收数量字段。其中,探测速率字段可以用于表示组播客户端接收的探测帧的数据传送速率,即,MCS阶数。探测速率字段的值与探测帧的MCS字段的值相同,速率信息字段的值与喷泉编码帧的MCS字段的值相同。其中,由于探测帧的数据传输速率高于喷泉编码帧的数据传输速率,探测速率字段的值大于速率信息字段的值。第三action帧的速率信息字段可以用于终端100确认第三action帧是否为组播群组的组播客户端发送的action帧。探测帧接收数量字段可以用于表示组播客户端接收到的探测帧的数量。可以理解的是,第三action帧的实际MAC地址字段的值为终端100的MAC地址,第三action帧的源MAC地址字段的值为发送第三action帧的终端的MAC地址。
第四action帧还可以包括但不限于译码失败次数字段。任何一个组播客户端都可以记录译码失败次数, 并在译码失败次数达到预设阈值时,基于译码失败次数得到第四action帧,其中,译码失败次数字段的值为译码失败次数。该组播客户端可以向终端100发送该第四action帧。可以理解的是,第四action帧的实际MAC地址字段的值为终端100的MAC地址,第四action帧的源MAC地址字段的值为发送第四action帧的终端的MAC地址。
第五action还可以包括但不限于BN字段。其中,BN字段可以用于指示反馈节点译码成功的编码块的编号。第五action帧的BN字段的值与成功译码的编码块的喷泉编码帧的BN字段的值相同。可以理解的是,第五action帧的实际MAC地址字段的值为终端100的MAC地址,第五action帧的源MAC地址字段的值为反馈节点的MAC地址。
在一种可能的实现方式中,终端100可以在组播传输组播数据之前,从组播客户端中随机选择一个反馈节点,并且向该被选中的反馈节点发送第一action帧。在终端100发送喷泉编码帧期间,接收到第一action帧的反馈节点可以每隔预设反馈时间(例如,100s)向终端100发送第二action帧。当终端100基于第二action帧,判定出反馈节点的译码成功率大于或等于门限值1时,可以组播发送w个探测帧。所有组播客户端可以基于接收探测帧的接收情况,生成并向终端100发送第三action帧。终端100可以基于第三action帧确定出是否提高喷泉编码帧的数据传输速率。这样,终端100可以在信道传输质量高时,提高喷泉编码帧的数据传输速率,提高喷泉编码帧的传输效率。
图9示出了本申请实施例中提供的提高喷泉编码帧的数据传输速率的方法的流程示意图。
如图9所示,以组播服务端为终端100,一个或多个组播客户端包括终端200和终端300为例,示例性的说明提高喷泉编码帧的数据传输速率的方法。其中,该方法包括如下步骤:
S901.终端100在组播客户端中选取终端200作为反馈节点。
终端100在组播发送组播数据之前,可以在一个或多个组播客户端中随机选择一个终端,在此为终端200,作为反馈节点。
S902.终端100向终端200发送第一action(动作)帧11,用于通知终端200反馈译码成功率。
终端100在确定出反馈节点后,可以向该反馈节点发送第一action帧11,第一action帧11可以用于通知接收到第一action帧11的组播客户端被终端100设置为反馈节点。在此,第一acton帧11的实际MAC地址字段与节点MAC地址字段的值都为终端200的MAC地址。其中,第一action帧11的详细描述可以参见图8所示实施例,在此不再赘述。
可以理解的是,终端100发送第一acton帧11的数据传输速率与终端100发送包括原始数据单元的喷泉编码帧的数据传输速率相同。
S903.终端100以第一速率组播发送喷泉编码帧。
其中,终端100得到喷泉编码帧的具体描述可以参见图3A-图3C所示实施例。
其中,终端100发送喷泉编码帧所使用的第一速率为初始速率。初始速率为终端100设置的发送包括原始数据单元的喷泉编码帧的MCS阶数对应的数据传输速率。在一些示例中,终端100在组播发送投屏数据时,可以基于投屏业务的带宽要求,计算得到对应的MCS阶数,例如,MCS4。
在一些示例中,终端100可以以第一速率发送包括原始数据单元的喷泉编码帧以及包括冗余数据单元的喷泉编码帧。
在另一些示例中,终端100以第一速率组播发送喷泉编码帧可以理解为,以第一速率发送包括原始数据单元的喷泉编码帧,以低于第一速率的数据传输速率发送包括冗余数据单元的喷泉编码帧。具体的,终端100发送各喷泉编码帧设置的MCS阶数可以参见图7所示实施例,在此不再赘述。
S904.终端200可以译码喷泉编码帧,记录译码成功率,基于译码成功率生成第二action帧12。
S905.终端200向终端100发送第二action帧12,包括译码成功率字段。
终端200可以在接收到第一action帧11后,基于接收到的各个编码块的喷泉编码帧后,解析喷泉编码帧。终端200可以基于解析喷泉编码帧的结果,得到译码成功率。
终端200可以基于译码成功率,得到第二action帧12,具体的,第二action帧12的描述可以参见图8所示实施例,在此不再赘述。其中,第二action帧12的译码成功率字段的值与终端200得到的译码成功率的值相同。
需要说明的是,终端200可以每隔预设反馈时间,生成并向终端100发送第二action帧。
S906.终端100基于第二action帧12,判断反馈节点的译码成功率字段的值是否大于门限值1。
终端100可以在收到第二action帧12后,提取第二action帧12的译码成功率字段的值。并判断译码 成功率字段的值是否大于门限值1,门限值1为终端100预设的一个分数值,例如,门限值1可以为80%。
终端100可以在判定出译码成功率字段的值小于门限值1时,继续以第一速率组播发送喷泉编码帧,在接收到终端200发送的第二action帧后,再次执行步骤S906。
在一些实施例中,终端100可以在判定出译码成功率字段的值小于门限值1时,以第三速率组播发送喷泉编码帧,第三速率小于第一速率。这样,终端100可以在信道质量差时,以较低的速率发送喷泉编码帧,提高组播客户端接收组播数据的成功率。
在另一些实施例中,终端100可以在判定出译码成功率字段的值小于门限值1,并且大于预设降速阈值时,以第一速率组播发送喷泉编码帧,预设降速阈值小于门限值1。终端100可以在判定出译码成功率字段的值小于预设降速阈值时,以第三速率组播发送喷泉编码帧,第三速率小于第一速率。这样,终端100可以基于反馈节点的译码成功率,调整发送喷泉编码帧的速率,在信道质量较好时,以更快的速率发送喷泉编码帧,在信道质量较差时,以更慢的速率发送喷泉编码帧。
终端100可以在判定出译码成功率字段的值大于门限值1时,执行步骤S907。
S907.终端100以第二速率组播发送w个探测帧(包括标识该帧为探测帧的探测帧标记字段),第二速率大于第一速率。
终端100可以在判定出译码成功率字段的值大于门限值1时,基于最近发送的w个喷泉编码帧,得到w个探测帧,该w个探测帧与w个喷泉编码帧的探测帧标记字段的值不同,其他字段都相同。终端100可以组播发送该w个探测帧。
其中,第二速率对应的MCS阶数大于第一速率对应的MCS阶数。在一些示例中,第二速率对应的MCS阶数比第一速率对应的MCS阶数大1阶。
S908.终端200向终端100发送第三action帧13,用于指示终端200接收探测帧的数量。
终端200可以在接收到终端100发送的数据帧后,若终端200基于探测帧标记字段的值确定出该数据帧为探测帧。终端200可以记录接收到的所有探测帧的数量。并将该数量写入第三action帧13的探测帧接收数量字段。
其中,第三action帧13的探测速率字段的值与探测帧的MCS字段的值相同。
终端200可以在确定出终端100已经发送了所有的探测帧后,生成并向终端100发送第三action帧13。具体的,终端200设置有探测帧等待时间,当终端200收到探测帧时,可以在等待时间内继续接收探测帧,若终端200在等待时间内接收到下一个探测帧,可以给记录的探测帧数量的值加1。若终端200在等待时间内未接收到下一个探测帧,终端200可以基于记录的探测帧数量,得到该第三action帧13。
可以理解的是,当终端200在生成第三action帧13时,可以将记录的探测帧数量值设置为初始值(即,0),在下一次接收到探测帧时,再次记录接收到的探测帧的数量,并基于该数量生成并向终端100发送第三action帧。
还可以理解的是,终端200仅记录探测帧的数量,不会针对探测帧进行喷泉译码处理。
S909终端300向终端100发送第三action帧14,用于指示终端300接收探测帧的数量。
同理,终端300向终端100发送第三action帧14的描述可以参见步骤S908,在此不再赘述。
S910.终端100在接收的所有第三action帧的探测帧接收数量字段的值大于等于门限值2时,以第二速率发送喷泉编码帧。
终端100可以在接收到所有组播客户端发送的第三action帧后,提取所有第三action帧的探测帧接收数量字段的值,并且终端100在判定出所有探测帧接收数量字段的值都大于预设的门限值2时,可以将终端100发送喷泉编码帧的速率设置为第二速率。
终端100可以在判定出所有探测帧接收数量字段的值都小于或等于预设的门限值2时,可以继续以第一速率发送喷泉编码帧,并在接收到第二action帧时,在此执行步骤S906。
需要说明的是,一个或多个组播客户端包括终端200和终端300仅为示例,该一个或多个组播客户端可以包括更多的终端,本申请实施例对此不作限定。
在一种可能的实现方式中,在终端100组播发送喷泉编码帧期间,组播客户端可以记录接收到的编码块的译码失败次数。当某个组播客户端的译码失败次数达到预设失败次数(例如,1次)时,该组播客户端可以向终端100发送携带译码失败次数的第四action帧。终端100可以在接收到第四action帧后,降低喷泉编码帧的传输速率。
需要说明的是,当终端100发送喷泉编码帧的速率为初始速率时,即使终端100收到第四action帧, 也不会改变终端100发送喷泉编码帧的速率。
在另一些实施例中,终端100以初始速率发送喷泉编码帧时,若初始速率对应的MCS阶数大于MCS1,终端100可以在收到第四action帧后,以低于初始速率的数据传输速率发送喷泉编码帧。需要说明的是,终端100可以在每次收到第四action帧时,都降低传输喷泉编码帧的数据传输速率,直到终端100将数据传输速率降低为最低速率,即MCS1对应的数据传输速率。其中,终端100可以每次将MCS的阶数减少一阶或多阶,本申请实施例对每次降低的阶数不作限定。
进一步的,终端100以传输速率A传输喷泉编码帧时,终端100可以基于收到的第四action的译码失败次数字段的值,确定出传输速率B,并以传输速率B传输喷泉编码帧,传输速率B低于传输速率A。其中,译码失败次数的值越大,传输速率B的值越小。示例性的,当译码失败次数的值小于第一失败次数时,传输速率B的值为速率值C,当译码失败次数的值大于或等于第一失败次数时,传输速率B的值为速率值D,速率值D小于速率值C。需要说明的是,当速率值C的值为最低速率值时,速率值D也只能为最低速率值。
不限于该示例,终端100也可以基于译码失败次数,通过其他方式确定出传输速率B的值,例如,终端100可以设置译码失败次数范围与该范围对应的速率降低幅值,当译码失败次数落在某个失败次数范围内时,终端100按照该失败次数范围对应的速率降低幅值,得到传输速率B,其中,传输速率B等于传输速率A减去速率降低幅值,本申请实施例对此不作限定。
可选的,终端100还可以记录收到的第四action帧的译码失败次数,当终端100判定出接收到的第四action帧携带的译码失败次数大于终端100记录的译码失败次数时,终端100可以更换反馈节点,将反馈节点设置为发送该第四action帧的组播客户端。
需要说明的是,终端100可以每隔预设归零时间,将记录的译码失败次数的值设置为初始值(即,0)。在一些示例中,预设归零时间为终端100发送20个编码块的喷泉编码帧的时间。图10示出了本申请实施例中提供的提高喷泉编码帧的数据传输速率的方法的流程示意图。
如图10所示,以组播服务端为终端100,一个或多个组播客户端包括终端200和终端300为例,示例性的说明降低喷泉编码帧的数据传输速率的方法。其中,该方法包括如下步骤:
S1001.终端100在组播客户端中选取终端200作为反馈节点。
S1002.终端100向终端200发送第一action帧21,用于通知终端200反馈译码成功率。
S1003.终端100以第一速率组播发送喷泉编码帧。
其中,步骤S1001-步骤S1003的描述可以参见图9所示实施例,在此不再赘述。
S1004.终端300可以译码喷泉编码帧,记录译码失败次数,在译码失败次数达到门限值3时,基于译码失败次数生成第四action帧22。
所有组播客户端,例如终端300,都可以在接收喷泉编码帧时,记录译码喷泉编码帧的失败次数。终端300可以在记录译码失败次数,并且在记录的译码失败次数大于预设的门限值3(例如,1次)时,生成并向终端100发送第四action帧22。
在一些示例中,终端300可以在接收到下一个编码块的喷泉编码帧时,判定出接收到的当前编码块的不同喷泉编码帧的数量小于源数据单元数量字段的值时,判定出当前编码块译码失败,将记录的译码失败次数的值增加1。
S1005.终端300向终端100发送第四action帧22,包括译码失败次数字段。
其中,终端300可以在发送第四action帧22后,将记录的译码失败次数进行归零处理。
S1006.终端100以初始速率组播发送喷泉编码帧。
终端100在接收到终端300发送的第四action帧22后,可以将发送喷泉编码帧的速率设置为初始速率。
在另一些实施例中,终端100可以在每次收到第四action帧时,都降低传输喷泉编码帧的数据传输速率,直到终端100将数据传输速率降低为初始速率或最低速率。其中,最低速率为MCS1对应的数据传输速率。其中,终端100可以每次将MCS的阶数减少一阶或多阶,本申请实施例对每次降低的阶数不作限定。这样,终端100可以在以较高速率传输喷泉编码帧时,逐步降低传输喷泉编码帧的速率,在保证喷泉编码帧的完整传输的同时,尽可能保证以更高的传输速率传输喷泉编码帧。
S1007.终端100基于第四action帧22,判断译码失败次数字段的是否大于门限值4。
终端100在接收到第四action帧22后,可以判断译码失败次数字段的值是否大于门限值4。终端100 可以基于收到的第四action帧的译码失败次数字段的值更新门限值4。
当终端100判定出译码失败次数字段的值大于门限值4时,可以执行步骤S1008至步骤S1010,更换反馈节点。当终端100判定出译码失败次数字段的值小于或等于门限值4时,可以不更换反馈节点。
其中,终端100的门限值4的初始值为0。在此,终端100仅接收到一个第四action帧22,判定出译码失败次数字段的值大于门限值4,执行步骤S1008至步骤S1010。
S1008.终端100将门限值4设置为第四action帧22的译码失败次数字段的值。
终端100判定出译码失败次数字段的值大于门限值4,将门限值4设置为第四action帧22的译码失败次数字段的值。
S1009.终端100向终端200发送第一action帧23,用于通知终端200停止反馈译码成功率。
其中,第一action帧23的实际MAC地址字段的值为终端200的MAC地址,第一action帧23的节点MAC地址字段的值为终端300的MAC地址。
终端200收到第一action帧23后,基于节点MAC地址字段的值确定出终端100选择其他组播客户端作为反馈节点,终端200停止生成第二action帧。
S1010.终端100向终端300发送第一action帧24,用于通知终端300反馈译码成功率。
其中,第一action帧24的实际MAC地址字段的值为终端300的MAC地址,第一action帧24的节点MAC地址字段的值也为终端300的MAC地址。
终端300收到第一action帧24后,基于节点MAC地址字段的值确定出终端100选择自身作为反馈节点,终端300在接收终端100发送的喷泉编码帧期间,每隔预设反馈时间生成并向终端100发送第二action帧。
这样,终端100可以在信道质量下降时,降低喷泉编码帧的数据传输速率。并且,终端100可以基于第四action帧,确定出一个或多个组播客户端中,接收到的喷泉编码帧的数量最少的组播客户端。因此,终端100可以通过反馈节点了解组播客户端接收喷泉编码帧的最差情况。
需要说明的是,一个或多个组播客户端包括终端200和终端300仅为示例,该一个或多个组播客户端可以包括更多的终端,本申请实施例对此不作限定。
在一种可能的实现方式中,终端100可以在组播发送MPDU时,基于n个MPDU进行1倍喷泉编码得到的喷泉编码帧,其中,喷泉编码帧可以包括n个包括原始数据单元的喷泉编码帧以及n个包括冗余数据单元的喷泉编码帧。终端100可以在发送完n个包括原始数据单元的喷泉编码帧后,发送该n个包括冗余数据单元的喷泉编码帧。其中,终端100可以重复发送该n个包括冗余数据单元的喷泉编码帧,终端100发送包括冗余数据单元的喷泉编码帧的次数为p次,p大于等于2。在终端100发送包括冗余数据单元的喷泉编码帧期间,若终端100接收到终端200发送的第五action帧时,终端100可以停止发送包括冗余数据单元的喷泉编码帧。其中,终端200为反馈节点,终端200可以在接收到至少n个不同的喷泉编码帧时,向终端100发送第五action帧。其中,反馈节点的描述可以参见上述图10所述实施例,在此不再赘述。这样,终端100可以基于反馈节点确定组播客户端接收组播数据的接收情况,并且在接收到第五action帧时,停止发送剩余的包括冗余数据单元的喷泉编码帧,节约空口资源。在没有接收到第五action帧时,多次发送包括冗余数据单元的喷泉编码帧,提高组播客户端接收组播数据的成功率。
示例性的,如图11的(a)所示,反馈节点为终端200。当终端100组播发送的源数据帧的数量为3个时,终端100可以针对源数据帧进行1倍冗余的喷泉码编码操作,得到3个包括原始数据单元的喷泉编码帧以及3个包括冗余数据单元的喷泉编码帧。
终端100可以每隔预设时间发送一个喷泉编码帧。首先,终端100可以发送包括原始数据单元的喷泉编码帧1、喷泉编码帧2以及喷泉编码帧3。然后,终端100可以发送包括冗余数据单元的喷泉编码帧4、喷泉编码帧5以及喷泉编码帧6。之后,终端100可以再次发送喷泉编码帧4、喷泉编码帧5以及喷泉编码帧6,直到终端100发送包括冗余数据单元的喷泉编码帧的次数达到p次。在此,p值为4。
其中,终端200在终端100发送喷泉编码帧期间,仅接收到1个喷泉编码帧1和2个喷泉编码帧5。虽然终端200接收到3个喷泉编码帧,但是由于接收到的3个喷泉编码帧中存在2个重复的喷泉编码帧,终端200无法针对该3个喷泉编码帧执行喷泉译码操作,得到3个源数据帧。其中,终端200可以基于喷泉编码帧的SI字段的值,确定出是否接收到重复的喷泉编码帧。当接收到的喷泉编码帧的SI字段的值与已经接收到的属于同一个编码块的另一个喷泉编码帧的SI字段的值相同,确定出接收到重复的喷泉编码帧。
如图11的(b)所示,在终端100发送喷泉编码帧期间,终端200接收到终端100发送的3个不同喷 泉编码帧,即,喷泉编码帧1、喷泉编码帧2以及喷泉编码帧5。终端200确定出接收到的不同喷泉编码帧的数量等于喷泉编码帧中源数据单元数量字段的值,终端200可以针对喷泉编码帧1、喷泉编码帧2和喷泉编码帧5执行喷泉译码操作,得到3个源数据帧,具体的,喷泉译码操作的描述可以参见上述实施例,在此不再赘述。
终端200还可以在判定出接收到的不同喷泉编码帧的数量等于喷泉编码帧中源数据单元数量字段的值时,生成第五action帧,并且向终端100发送该第五action帧,第五action帧包括喷泉编码帧所属的编码块的序号。
终端100可以在接收到终端200发送的第五action帧之后,停止发送后续的喷泉编码帧。可以理解的是,由于终端200生成并发送第五action帧需要花费一段时间,在此期间,终端100可以继续发送喷泉编码帧。例如,图11的(b)所示,终端100接收到第五action帧之前,共发送了6个喷泉编码帧。当然,若终端200生成并发送第五action帧的时间较短,终端100在此期间可以不发送喷泉编码帧。
这样,基于反馈节点终端200反馈的第五action帧,终端100不需要发送所有的共16个喷泉编码帧,节约了发送包括冗余数据单元的喷泉编码帧的空口资源。并且,由于反馈节点为终端100选定的组播客户端中接收喷泉编码帧时,失败次数最多的组播客户端。一般情况下,反馈节点接收到的喷泉编码帧的数量小于其他非反馈节点接收到的喷泉编码帧的数量,因此,反馈节点可以反映组播客户端接收喷泉编码帧的最差情况,终端100基于反馈节点反馈的第五action帧,结束发送喷泉编码帧,可以在节约空口资源的同时,提高其他组播客户端接收喷泉编码帧的成功率。
需要说明的是,终端100重复发送包括冗余数据单元的喷泉编码帧时,由于终端100发送的是相同的喷泉编码帧,即使组播客户端接收到大于n个喷泉编码帧,但若该大于n个喷泉编码帧中不同的喷泉编码帧的数量小于n个,组播客户端也不能解析得到完整的组播数据。但是,这样可以提高组播客户端接收组播数据的成功率,也可以减少终端100进行多倍冗余喷泉编码的开销。
在一种可能的实现方式中,终端100可以在组播发送MPDU时,基于n个MPDU进行q倍喷泉编码得到的喷泉编码帧,其中,喷泉编码帧可以包括n个包括原始数据单元的喷泉编码帧以及个包括冗余数据单元的喷泉编码帧,q大于0。在终端100发送包括冗余数据单元的喷泉编码帧期间,若终端100接收到终端200发送的第五action帧时,终端100可以停止发送包括冗余数据单元的喷泉编码帧。其中,终端200为反馈节点,终端200可以在接收到至少n个不同的喷泉编码帧时,向终端100发送第五action帧。其中,反馈节点的描述可以参见上述图10所述实施例,在此不再赘述。这样,终端100可以基于反馈节点确定组播客户端接收组播数据的接收情况,并且在接收到第五action帧时,停止发送剩余的包括冗余数据单元的喷泉编码帧,节约空口资源。在没有接收到第五action帧时,多次发送包括冗余数据单元的喷泉编码帧,提高组播客户端接收组播数据的成功率。
示例性的,如图12的(a)所示,反馈节点为终端200。当终端100组播发送的源数据帧的数量为3个时,终端100可以针对源数据帧进行q倍冗余的喷泉码编码操作,得到3个包括原始数据单元的喷泉编码帧以及12个包括冗余数据单元的喷泉编码帧,在此,q值为4。
终端100可以每隔预设时间发送一个喷泉编码帧。首先,终端100可以发送包括原始数据单元的喷泉编码帧1、喷泉编码帧2以及喷泉编码帧3。然后,终端100可以发送包括冗余数据单元的喷泉编码帧4、喷泉编码帧5、喷泉编码帧6、喷泉编码帧7,以此类推,直到终端100发送完喷泉编码帧15。
其中,终端200在终端100发送喷泉编码帧期间,仅接收到1个喷泉编码帧1和1个喷泉编码帧11。由于终端200接收到的喷泉编码帧的数量小于喷泉编码帧中源数据单元数量字段的值(即,源数据帧的数量),终端200无法针对该2个喷泉编码帧执行喷泉译码操作,得到3个源数据帧。
如图12的(b)所示,在终端100发送喷泉编码帧期间,终端200接收到终端100发送的3个喷泉编码帧,即,喷泉编码帧1、喷泉编码帧2以及喷泉编码帧5。终端200确定出接收到的喷泉编码帧的数量等于喷泉编码帧中源数据单元数量字段的值,终端200可以针对喷泉编码帧1、喷泉编码帧2和喷泉编码帧5执行喷泉译码操作,得到3个源数据帧,具体的,喷泉译码操作的描述可以参见上述实施例,在此不再赘述。
终端200还可以在判定出接收到的不同喷泉编码帧的数量等于喷泉编码帧中源数据单元数量字段的值时,生成第五action帧,并且向终端100发送该第五action帧,第五action帧包括喷泉编码帧所属的编码块的序号。
终端100可以在接收到终端200发送的第五action帧之后,停止发送后续的喷泉编码帧。可以理解的 是,由于终端200生成并发送第五action帧需要花费一段时间,在此期间,终端100可以继续发送喷泉编码帧。例如,图12的(b)所示,终端100接收到第五action帧之前,共发送了6个喷泉编码帧。当然,若终端200生成并发送第五action帧的时间较短,终端100在此期间可以不发送喷泉编码帧。
这样,基于反馈节点终端200反馈的第五action帧,终端100不需要发送所有的共16个喷泉编码帧,节约了发送包括冗余数据单元的喷泉编码帧的空口资源。并且,由于反馈节点为终端100选定的组播客户端中接收喷泉编码帧时,失败次数最多的组播客户端。一般情况下,反馈节点接收到的喷泉编码帧的数量小于其他非反馈节点接收到的喷泉编码帧的数量,因此,反馈节点可以反映组播客户端接收喷泉编码帧的最差情况,终端100基于反馈节点反馈的第五action帧,结束发送喷泉编码帧,可以在节约空口资源的同时,提高其他组播客户端接收喷泉编码帧的成功率。
需要说明的是,终端100发送q倍喷泉编码得到的喷泉编码帧时,由于终端100发送的是不同的喷泉编码帧,组播客户端只要接收到至少n个喷泉编码帧,就可以解析得到完整的组播数据,提高了组播客户端接收组播数据的成功率。不过这种方式也造成了终端100进行多倍冗余喷泉编码的开销。
下面介绍本申请实施例提供的终端100。
终端100可以是手机、平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificial intelligence,AI)设备、可穿戴式设备、车载设备、路由器、智能家居设备和/或智慧城市设备,本申请实施例对该电子设备的具体类型不作特殊限制。
图13示出了本申请实施例提供的一种硬件结构示意图。
下面以终端100为例对实施例进行具体说明。应该理解的是,图2所示终端100仅是一个范例,并且终端100可以具有比图13中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图13中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
终端100可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对终端100的具体限定。在本申请另一些实施例中,终端100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是终端100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuit sound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purpose input/output,GPIO)接口, 用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端100的结构限定。在本申请另一些实施例中,终端100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过终端100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
终端100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在终端100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在终端100上的包括无线局域网(wireless local area networks,WLAN)(如Wi-Fi网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。在本申请实施例中,终端100的无线通信模块160可以用于发送喷泉编码帧与第一action帧,终端100的无线通信模块160还可以用于接收第二action帧、第三action帧、第四action帧与第五action帧。
在一些实施例中,终端100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code division multiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidou navigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
终端100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多 个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。在一些实施例中,终端100可以包括1个或N个显示屏194,N为大于1的正整数。
终端100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,终端100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。终端100可以支持一种或多种视频编解码器。这样,终端100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现终端100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行终端100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
终端100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。终端100可以通过扬声器170A收听音乐,或收听免提通话。受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当终端100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。终端100可以设置至少一个麦克风170C。在另一些实施例中,终端100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,终端100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association  of the USA,CTIA)标准接口。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。陀螺仪传感器180B可以用于确定终端100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定终端100围绕三个轴(即,x,y和z轴)的角速度。气压传感器180C用于测量气压。磁传感器180D包括霍尔传感器。加速度传感器180E可检测终端100在各个方向上(一般为三轴)加速度的大小。距离传感器180F,用于测量距离。接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。终端100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定终端100附近有物体。当检测到不充分的反射光时,终端100可以确定终端100附近没有物体。终端100可以利用接近光传感器180G检测用户手持终端100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。环境光传感器180L用于感知环境光亮度。指纹传感器180H用于采集指纹。温度传感器180J用于检测温度。触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。骨传导传感器180M可以获取振动信号。按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。终端100可以接收按键输入,产生与终端100的用户设置以及功能控制有关的键信号输入。马达191可以产生振动提示。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口195用于连接SIM卡。
其中,组播客户端(例如,终端200、终端300)的硬件结构也可以参照图13所示的终端100的硬件结构描述。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (24)

  1. 一种传输方法,其特征在于,包括:
    第一终端基于第一IP报文生成n个组播数据帧,所述组播数据帧包括源数据单元;
    所述第一终端将所述n个组播数据帧中的n个源数据单元通过喷泉编码得到m个编码数据单元;
    所述第一终端基于所述m个编码数据单元生成m个喷泉编码帧;
    所述第一终端组播发送所述m个喷泉编码帧给多个节点设备。
  2. 根据权利要求1所述的方法,其特征在于,所述第一终端将所述n个组播数据帧中的n个源数据单元通过喷泉编码得到m个编码数据单元,具体包括:
    所述第一终端基于所述n个源数据单元,通过q倍冗余喷泉编码得到所述m个编码数据单元,m等于
  3. 根据权利要求2所述的方法,其特征在于,所述方法还包括:
    所述第一终端基于所述n个源数据单元的重要程度,确定出所述q的值,所述源数据单元的重要程度越高,所述q的值越大。
  4. 根据权利要求3所述的方法,其特征在于,所述n个源数据单元包括第一源数据单元,所述第一源数据单元包括I帧标记字段,所述I帧标记字段用于标识所述n个源数据单元的重要程度,所述I帧标记字段的值为第一值的所述n个源数据单元比所述I帧标记字段的值为第二值的所述n个源数据单元的重要程度高;所述第一终端基于所述n个源数据单元的数据内容的重要程度,确定出所述q的值,具体包括:
    当所述第一源数据单元的I帧标记字段的值为所述第一值,所述第一终端确定出所述q的值为第三值;
    当所述第一源数据单元的I帧标记字段的值为所述第二值,所述第一终端确定出所述q的值为第四值,所述第三值大于所述第四值。
  5. 根据权利要求1-4中任一项所述的方法,其特征在于,所述m个编码数据单元包括n个原始数据单元与(m-n)个冗余数据单元,所述n个原始数据单元与所述n个源数据单元相同。
  6. 根据权利要求5所述的方法,其特征在于,所述第一终端组播发送所述m个喷泉编码帧给所述多个节点设备,具体包括:
    所述第一终端以第一调制与编码策略MCS发送包括原始数据单元的喷泉编码帧,以第二MCS发送包括冗余数据单元的喷泉编码帧,所述第一MCS的值大于所述第二MCS的值。
  7. 根据权利要求5或6所述的方法,其特征在于,所述第一终端组播发送所述m个喷泉编码帧给所述多个节点设备,具体包括:
    所述第一终端在发送所述n个包括原始数据单元的喷泉编码帧后,连续发送p次所述(m-n)个所述包括冗余数据单元的喷泉编码帧,p大于等于1。
  8. 根据权利要求1-7中任一项所述的方法,其特征在于,所述第一终端以第一速率组播发送喷泉编码帧,所述喷泉编码帧包括所述m个喷泉编码帧;所述方法还包括:
    所述第一终端在以第一速率发送所述喷泉编码帧之前,向所述多个节点设备中的第二终端发送第一动作action帧,所述第一action帧用于通知所述第二终端反馈第二action帧,所述第二action帧用于表示所述第二终端解析所述喷泉编码帧的译码成功率;
    所述第一终端在基于接收到的所述第二action帧确定出所述第二终端的译码成功率高于第一门限值时,组播发送w个探测帧给所述多个节点设备,所述w个探测帧包括用于指示数据帧为探测帧的探测帧标识字段,所述第一终端基于最近发送的w个喷泉编码帧得到所述w个探测帧;
    所述第一终端接收到来自所述多个节点设备的第三action帧,所述第三action帧用于表示所述节点设备收到的所述探测帧的数量;
    所述第一终端在基于所述多个节点设备的第三action帧确定出所述多个节点设备收到的探测帧的数量都大于第二门限值时,以第二速率发送所述喷泉编码帧,所述第二速率大于所述第一速率;所述第一终端 在基于所述多个节点设备的第三action帧确定出所述多个节点设备中任一个节点设备收到的探测帧的数量小于所述第二门限值时,以所述第一速率发送所述喷泉编码帧。
  9. 根据权利要求1-8中任一项所述的方法,其特征在于,所述多个节点设备还包括第三终端;所述第一终端以第三速率发送喷泉编码帧,所述方法还包括:
    所述第一终端接收所述第三终端发送的第四action帧,以第四速率发送所述喷泉编码帧,所述第四速率低于所述第三速率;其中,所述第四action帧携带所述第三终端的译码失败次数,所述译码失败次数用于表示所述第三终端接收失败的编码块的数量,1个编码块包括所述第一终端执行1次喷泉编码操作得到的喷泉编码帧。
  10. 根据权利要求9所述的方法,其特征在于,当所述译码失败次数小于第一失败次数时,所述第三速率的值为第一速率值,当所述译码失败次数大于所述第一失败次数时,所述第三速率的值为第二速率值,所述第二速率值小于所述第一速率值。
  11. 根据权利要求9或10所述的方法,其特征在于,所述第二终端用于向所述第一终端发送第二action帧,在所述第一终端在接收到所述第四action帧后,所述方法还包括:
    所述第一终端通知所述第二终端停止发送所述第二action帧;
    所述第一终端通知所述第三终端发送所述第二action帧。
  12. 根据权利要求8或11所述的方法,其特征在于,所述第二终端用于向所述第一终端发送第二action帧,并且所述第一终端组播发送所述m个喷泉编码帧给所述多个节点设备时,所述方法还包括:
    所述第一终端接收到所述第二终端发送的第五action帧,停止发送所述m个喷泉编码帧,所述第五action帧用于表示所述第二终端成功解析得到所述n个组播数据帧。
  13. 一种传输方法,其特征在于,包括:
    第二终端接收第一终端发送的第一编码块的喷泉编码帧,所述喷泉编码帧包括块编号BN字段和源数据单元数量字段,其中,所述于第一编码块包括m个喷泉编码帧,所述m个喷泉编码帧的BN字段的值相同,所述源数据单元数量字段用于表示所述m个喷泉编码帧得到的组播数据帧的源数据单元的数量;
    所述第二终端基于接收到的喷泉编码帧的BN字段,确定出接收到的喷泉编码帧属于所述第一编码块;
    当所述第二终端接收到的属于所述第一编码块的喷泉编码帧的数量等于所述源数据单元数量字段的值时,所述第二终端基于接收到的属于所述第一编码块的喷泉编码帧,通过喷泉译码得到所述组播数据帧。
  14. 根据权利要求13所述的方法,其特征在于,所述方法还包括:
    所述第二终端在接收所述第一终端发送的喷泉编码帧之前,接收到所述第一终端发送的包括所述第二终端的标识的第一action帧;
    所述第二终端响应于所述第一action帧,每隔预设反馈时间,向所述第一终端发送所述第二action帧,所述第二action帧用于表示所述第二终端接收所述喷泉编码帧的译码成功率,所述译码成功率由所述第二终端基于接收到的编码块的数量与成功解析的编码块的数量得到。
  15. 根据权利要求14所述的方法,其特征在于,在所述当所述第二终端接收到的属于所述第一编码块的喷泉编码帧的数量等于所述源数据单元数量字段的值时,所述第二终端基于接收到的属于所述第一编码块的喷泉编码帧,通过喷泉译码得到所述组播数据帧之后,所述方法还包括:
    所述第二终端向所述第一终端发送第五action帧,所述第五action帧用于表示所述第二终端成功接收所述第一编码块的喷泉编码帧;所述第五action帧还用于通知所述第一终端停止发送所述第一编码块的喷泉编码帧。
  16. 根据权利要求15所述的方法,其特征在于,在所述接收到所述第一终端发送的包括所述第二终端的标识的第一action帧之后,所述方法还包括:
    所述第二终端接收到所述第一终端发送的包括第三终端的标识的第一action帧;
    所述第二终端停止向所述第一终端发送第二action帧。
  17. 根据权利要求13-16中任一项所述的方法,其特征在于,所述方法还包括:
    所述第二终端收到所述第一终端发送的探测帧时,记录接收到的探测帧的数量,所述探测帧包括第一探测帧;
    所述第二终端在接收到第一探测帧之后,相隔预设接收时间,未接收到下一个探测帧,所述第二终端基于记录的探测帧的数量,生成第三action帧,所述第三action帧包括探测帧接收数量字段,所述探测帧数量字段的值为所述第二终端收到的探测帧的数量。
  18. 根据权利要求15-17中任一项所述的方法,其特征在于,所述第二终端用于在接收所述第一终端发送的喷泉编码帧时,记录译码失败次数,所述译码失败次数用于表示所述第二终端解析失败的数据块的数量;所述方法还包括:
    当所述第二终端基于收到的喷泉编码帧的BN字段的值,确定出收到的喷泉编码帧属于下一个数据块时,若所述第二终端判定出接收到的属于当前数据块的喷泉编码帧的数量小于当前数据块的喷泉编码帧的源数据单元数量字段的值,所述第二终端记录的解析失败的数据块的数量值增加1;
    所述第二终端在所述译码失败次数达到第三门限值时,将携带译码失败次数字段的第四action帧发送至所述第一终端,所述译码失败次数字段的值与所述第二终端的所述译码失败次数的值相同,所述第四action帧用于通知所述第一终端降低传输所述喷泉编码帧的速率。
  19. 一种通信装置,其特征在于,包括一个或多个处理器、一个或多个存储器和收发器;其中,所述收发器、所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当一个或多个处理器在执行所述计算机指令时,使得所述通信装置执行如权利要求1-12中任一项所述的方法。
  20. 根据权利要求19所述的通信装置,其特征在于,所述通信装置为第一终端。
  21. 一种通信装置,其特征在于,包括一个或多个处理器、一个或多个存储器、收发器;其中,所述收发器、所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当一个或多个处理器在执行所述计算机指令时,使得所述通信装置执行如权利要求13-18中任一项所述的方法。
  22. 根据权利要求21所述的通信装置,其特征在于,所述通信装置为第二终端。
  23. 一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1-12或13-18中任一项所述的方法。
  24. 一种芯片或芯片系统,应用于终端,其特征在于,包括处理电路和接口电路,所述接口电路用于接收代码指令并传输至所述处理电路,所述处理电路用于运行所述代码指令以执行如权利要求1-12或13-18中任一项所述的方法。
PCT/CN2023/120902 2022-09-29 2023-09-23 一种传输方法、系统及相关装置 WO2024067430A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202211202960.7 2022-09-29
CN202211202960.7A CN117834082A (zh) 2022-09-29 2022-09-29 一种传输方法、系统及相关装置

Publications (1)

Publication Number Publication Date
WO2024067430A1 true WO2024067430A1 (zh) 2024-04-04

Family

ID=90476193

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/120902 WO2024067430A1 (zh) 2022-09-29 2023-09-23 一种传输方法、系统及相关装置

Country Status (2)

Country Link
CN (1) CN117834082A (zh)
WO (1) WO2024067430A1 (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101567755A (zh) * 2009-05-25 2009-10-28 北京理工大学 一种基于喷泉码的网络编码方法
CN102013951A (zh) * 2010-12-22 2011-04-13 北京理工大学 一种使用喷泉码的无线通信网络编码方法
CN102684893A (zh) * 2012-05-15 2012-09-19 北京理工大学 一种基于多媒体广播多播业务的自适应喷泉编码方法
CN103051424A (zh) * 2013-01-07 2013-04-17 北京理工大学 一种不等错误保护喷泉码的无线传输方法
WO2013131303A1 (zh) * 2012-03-09 2013-09-12 西安交通大学 一种基于喷泉码的协作多播方法
CN105915640A (zh) * 2016-06-08 2016-08-31 乐视控股(北京)有限公司 数据备份方法及装置
CN109714130A (zh) * 2018-11-28 2019-05-03 南通先进通信技术研究院有限公司 一种基于喷泉码的文件传输方法
CN109729307A (zh) * 2019-02-28 2019-05-07 北京理工大学 一种基于喷泉码的组播视频会议系统
CN114301513A (zh) * 2021-12-20 2022-04-08 哈尔滨工业大学 基于反馈喷泉码的文件传输方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101567755A (zh) * 2009-05-25 2009-10-28 北京理工大学 一种基于喷泉码的网络编码方法
CN102013951A (zh) * 2010-12-22 2011-04-13 北京理工大学 一种使用喷泉码的无线通信网络编码方法
WO2013131303A1 (zh) * 2012-03-09 2013-09-12 西安交通大学 一种基于喷泉码的协作多播方法
CN102684893A (zh) * 2012-05-15 2012-09-19 北京理工大学 一种基于多媒体广播多播业务的自适应喷泉编码方法
CN103051424A (zh) * 2013-01-07 2013-04-17 北京理工大学 一种不等错误保护喷泉码的无线传输方法
CN105915640A (zh) * 2016-06-08 2016-08-31 乐视控股(北京)有限公司 数据备份方法及装置
CN109714130A (zh) * 2018-11-28 2019-05-03 南通先进通信技术研究院有限公司 一种基于喷泉码的文件传输方法
CN109729307A (zh) * 2019-02-28 2019-05-07 北京理工大学 一种基于喷泉码的组播视频会议系统
CN114301513A (zh) * 2021-12-20 2022-04-08 哈尔滨工业大学 基于反馈喷泉码的文件传输方法

Also Published As

Publication number Publication date
CN117834082A (zh) 2024-04-05

Similar Documents

Publication Publication Date Title
US11997153B2 (en) Screen projection method and device
US11489614B2 (en) High-speed audio data transmission method and apparatus
KR101298640B1 (ko) 전송 스트림 패킷을 전송하는 방법 및 장치
CN115334138B (zh) Quic数据传输方法、装置、客户端及服务端
WO2016002436A1 (ja) 無線通信装置、無線通信方法及びプログラム
CN114697733B (zh) 投屏音视频数据的传输方法以及相关设备
US20230171028A1 (en) Method for processing bluetooth data packet and communication apparatus
CN114221909B (zh) 数据传输方法、装置、终端及存储介质
CN114025389A (zh) 数据传输方法、装置、计算机设备及存储介质
WO2024067430A1 (zh) 一种传输方法、系统及相关装置
WO2010108416A1 (zh) 转发可伸缩视频编码数据报文的方法、设备和通信系统
WO2020211061A1 (zh) 一种数据传输方法、装置及存储介质
WO2022206016A1 (zh) 一种数据分层传输方法、装置及系统
WO2022133918A1 (zh) 解码失败的处理方法、装置和系统
CN115694742A (zh) 在无线通信系统中发送确认信号的方法和电子设备
WO2021114950A1 (zh) 一种多路http通道复用的方法及终端
WO2024027674A1 (zh) 通信方法、设备及存储介质
WO2022242362A1 (zh) 图像数据的发送和接收方法、终端、芯片及存储介质
WO2022188813A1 (zh) 蓝牙通信方法、系统及电子设备
WO2024000959A1 (zh) 一种数据传输方法、电子设备及介质
WO2022228037A1 (zh) 一种流媒体数据传输的方法及相关设备
CN114979794B (zh) 一种数据发送方法及装置
WO2023001044A1 (zh) 数据处理方法及电子设备
WO2024074085A1 (zh) 数据传输方法、电子设备、传屏器及存储介质
TWI836053B (zh) 用於使用選擇性中繼來構造協定資料單元的系統和方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23870661

Country of ref document: EP

Kind code of ref document: A1