A method of MPDU retransmission

By optimizing the MPDU retransmission process and utilizing the SACK signal and retry flag mechanism, the problems of low transmission efficiency and wasted storage space in PLC communication are solved, achieving efficient data retransmission and rate switching, adapting to different communication environments, and reducing costs.

CN117294332BActive Publication Date: 2026-06-05WU QI TECH INC

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
WU QI TECH INC
Filing Date
2023-03-06
Publication Date
2026-06-05

AI Technical Summary

Technical Problem

In existing PLC communication, the MPDU retransmission method leads to problems such as low transmission efficiency, inability to switch rates in a timely manner, and wasted storage space. Especially in low signal-to-noise ratio environments, existing protocols cannot effectively improve data transmission efficiency and reduce retransmission volume.

Method used

A bitmap-based SACK signal feedback mechanism is adopted. The sending end determines whether to retransmit the MPDU based on the SACK signal, and the receiving end stores and splices the MPDU according to the retry flag. This allows the physical block size to remain consistent during rate switching. Seamless connection is achieved by replacing the rate table index, thus optimizing the MPDU retransmission process.

Benefits of technology

It improves data retransmission efficiency and timeliness, reduces retransmission volume, lowers storage space requirements, maintains compatibility with State Grid protocols, adapts to nodes with poor edge communication, and reduces costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117294332B_ABST
    Figure CN117294332B_ABST
Patent Text Reader

Abstract

The application relates to the technical field of power line carrier communication, in particular to an MPDU retransmission method, which comprises the following steps: S100, cutting an MSDU into a plurality of MPDUs; S200, a sending end sends MPDUs to a receiving end in sequence according to SACK signals, characterized in that the retry flag of the first MPDU is 0, and the retry flag of other MPDUs is 1; S200 comprises the following steps: S201, sending an MPDU; S202, receiving a SACK signal, the SACK signal adopts a bitmap form, if the SACK signal is all 1, S204 is executed, otherwise, S203 is executed; S203, retransmitting the current MPDU; if the number of physical blocks in the MPDU is more than two, only the retransmitted MPDU is retransmitted; and S204, sending the next MPDU. The MPDU retransmission method can improve the data retransmission efficiency and data retransmission timeliness, reduce the data retransmission amount, reduce the storage space required by the receiving end, and maintain the compatibility of the State Grid.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of Chinese patent application 202310207439.0, filed on March 6, 2023, entitled "A data transmission method, system and storage medium based on power line carrier". Technical Field

[0002] This invention relates to the field of power line carrier communication technology, and in particular to an MPDU retransmission method. Background Technology

[0003] The application of PLCs under the State Grid and the 1901.1 protocol requires extensive scenario testing. In practical applications, the changing application scenarios and environmental interference factors continuously increase the requirements for transmission efficiency.

[0004] For example, in scenarios involving long buried cables or strong interference, the protocol is designed with various FEC encodings and physical block sizes to enable transmission at different rates, thereby improving the success rate. In these scenarios, a lower transmission rate can be used. However, for larger application layer messages, this means fragmentation; a single MSDU needs to be divided into multiple MPDUs for transmission to improve the success rate. Fragmentation can be one MPDU per physical block (short MPDU) or one MPDU per multiple physical blocks (long MPDU). During transmission, if the receiving end receives all complete fragments, it can reassemble them into a complete MSDU. However, if any physical blocks are not successfully received, the original State Grid protocol definition requires retransmission of the entire message. While this retransmission method is simple, it incurs a loss of efficiency. For example, on a line with a given SNR, an optimal rate is calculated and processed in the form of variable rate selection. The FEC physical block corresponding to this rate is likely to be relatively small, while an upper-layer message may be relatively large. For example, a 1024-byte message, if it needs to be transmitted in a single physical block with an actual payload of 134 bytes, will require 8 physical blocks to complete the transmission. If one physical block is faulty, the entire message, i.e., all 8 physical blocks, needs to be retransmitted. Using the above method for data transmission will waste bandwidth and reduce transmission efficiency.

[0005] Secondly, there is another problem. For variable rate selection, a message that fails to be retransmitted multiple times will need to be sent at a reduced rate. For a message that has been partially sent, if only one physical block is not sent successfully, the rate cannot be switched midway. The rate can only be switched after the entire message has been sent. Otherwise, all the physical blocks that have been sent successfully will need to be discarded.

[0006] Secondly, in the original State Grid protocol definition, when the MSDU is sent for the first time, the retry flag of the MSDU is set to 0. If not all MPDUs contained in the MSDU are successfully sent, the MSDU is retransmitted, and the retry flag is set to 1. However, the above transmission process has the following problems: If the current MSDU is not successfully sent, the sender starts to retransmit the current MSDU, but due to reasons such as reaching the default number of retransmissions for the MSDU, the sender stops retransmitting the current MSDU. At this time, the sender starts to send the next MSDU, but due to reasons such as the sender flushing and poor communication, the entire MSDU is lost, and the sender starts to retransmit the MSDU with retry flag=1. At this time, for the receiver, since it has not successfully received the second MSDU sent by the sender, when it receives the MPDU with retry flag=1, it still thinks that it is retransmitting the previous MSDU, thus combining the data of the two MSDUs together, resulting in an MSDU CRC error, and ultimately causing all received data to be discarded.

[0007] Finally, for cases where multiple attempts to send data fail at a very low base rate, the current approach considers switching routes. If switching routes does not solve the problem, manual addition of relays is required. However, this approach is costly for cases where only a few nodes or a single node has temporarily poor communication. Summary of the Invention

[0008] This invention provides an MPDU retransmission method that can improve data retransmission efficiency and timeliness, reduce the amount of data retransmission, reduce the storage space required at the receiving end, and maintain compatibility with the State Grid, thereby reducing the cost of speed increase.

[0009] To achieve the above objectives, this application provides the following technical solution:

[0010] An MPDU retransmission method includes: S100, dividing an MSDU into several MPDUs; S200, the transmitting end sequentially sending MPDUs to the receiving end according to the SACK signal, characterized in that: the retry flag of the first MPDU is 0, and the retry flag of the other MPDUs is 1.

[0011] S200 includes:

[0012] S201, Send MPDU;

[0013] S202, Receive the SACK signal. The SACK signal is in bitmap form. If it is all 1s, then execute S204; otherwise, execute S203.

[0014] S203, retransmit the current MPDU; if the MPDU contains more than two physical blocks, then when retransmitting the MPDU, only the physical blocks that failed to be received are retransmitted.

[0015] S204, send the next MPDU.

[0016] Furthermore, it also includes: S300, where the receiving end receives the MPDU and stores the received MPDU according to the retry flag of the MPDU.

[0017] Furthermore, the S300 includes:

[0018] S301, receives MPDU;

[0019] S302, if the MPDU's retry flag=0, then the MPDU corresponds to a new MSDU, clear the previous receive buffer and store the received MPDU; if the MPDU's retry flag=1, then the MPDU belongs to the current MSDU, and store the received MPDU.

[0020] Furthermore, S200 includes: if a rate switching is required, selecting a rate whose physical block size is the same as the physical block size that has been successfully transmitted for switching, and replacing the rate table index TMI with the rate table index TMI of the switched rate.

[0021] Furthermore, the MPDU also includes a CRC;

[0022] In S301, the MPDU is received and the SACK signal is fed back; based on the CRC, it is analyzed whether the MPDU was received correctly.

[0023] Furthermore, if the MPDU contains more than two physical blocks, then when retransmitting the MPDU, only the physical blocks that failed to be received are retransmitted, including:

[0024] The receiving end feeds back the SACK signal based on the reception status of each physical block;

[0025] Based on the SACK signal, the sending end integrates the physical blocks that the receiving end failed to receive into a new MPDU and sets its retry flag to 1 for retransmission.

[0026] The principles and advantages of this invention are as follows:

[0027] 1. This scheme overcomes the fixed definition of the retry flag in the State Grid protocol and cleverly utilizes it, enabling the improved scheme to be compatible with the original State Grid protocol and significantly reducing the cost of improving transmission efficiency. In this scheme, only the first MPDU has a retry flag of 0, while the retry flag of all other MPDUs is set to 1. Whether to retransmit is no longer determined after the entire MSDU has been sent, but rather by the SACK signal sent by the sender. Therefore, for the receiver, when receiving each packet with a retry flag of 1, it considers it to be receiving retransmitted data and generates a SACK signal to inform the sender whether it has successfully received the content. Furthermore, the buffer is not cleared until the next MPDU with a retry flag of 0 arrives. In other words, for the transmission of an MSDU, after each fragment MPDU is sent, a reception feedback will be sent in a timely manner. This allows the current MPDU to be retransmitted immediately if the MPDU fails to be received or is not received. This not only improves the timeliness of data retransmission but also reduces the amount of data retransmission and improves the efficiency of data retransmission. Especially for some edge nodes with poor communication, communication can be carried out at a lower rate with very little overhead.

[0028] 2. The receiving end can save on the storage space that needs to be reserved, especially for multi-link proxy nodes. In this scheme, it is not necessary to retain the maximum MSDU length of the current link to maintain the reception of the entire MSDU. Instead, MPDUs can be received one by one, and then the physical blocks in each MPDU are concatenated. In the technical solution of this application, the MPDU can include multiple physical blocks (long MPDU) or only one physical block (short MPDU). In the case of poor network communication quality, this application prefers to use short MPDUs for communication to ensure communication quality.

[0029] 3. In the existing State Grid protocol, for variable rate selection, a message that fails to be retransmitted multiple times will be sent at a reduced rate. However, for messages that have been partially transmitted, the rate cannot be switched midway; it must wait until the entire message is transmitted before switching the rate. Otherwise, all previously successfully transmitted physical blocks must be discarded. With this solution, when a rate switch is needed, it is only necessary to ensure that the physical block size corresponding to the rate before and after the switch is the same. This allows for seamless transition by directly replacing the rate table index (TMI). Retransmission of the entire message is only required when there is no corresponding rate with the same physical block size. Attached Figure Description

[0030] Figure 1 This is a flowchart of an embodiment of an MPDU retransmission method according to the present invention.

[0031] Figure 2 This is a schematic diagram of MPDU generation in an embodiment of an MPDU retransmission method according to the present invention.

[0032] Figure 3 This is a schematic diagram of MPDU integration in an embodiment of an MPDU retransmission method according to the present invention.

[0033] Figure 4 This is a flowchart of the sending end in an embodiment of an MPDU retransmission method according to the present invention.

[0034] Figure 5 This is a flowchart of the receiving end in an embodiment of an MPDU retransmission method according to the present invention. Detailed Implementation

[0035] The following detailed description illustrates the specific implementation method:

[0036] Example 1:

[0037] An MPDU retransmission method, such as Figure 1 As shown, it includes the following steps (in this application, the numbers of each step are only used to distinguish the steps and are not used to limit the order of the steps):

[0038] S100, such as Figure 2 As shown, the MSDU is divided into several MPDUs. To facilitate understanding of the principle, the example shown in the figure divides the MSDU into two MPDUs. In this embodiment, the MSDU is divided into four MPDUs (pbnum = 4).

[0039] The MPDU contains a CRC and a physical block header. In this embodiment, the MPDU contains a physical block.

[0040] S200: The transmitting end sends MPDUs sequentially to the receiving end according to the SACK signal; the retry flag of the first MPDU is 0, and the retry flag of the other MPDUs is 1. S300: The receiving end receives the MPDUs and stores them according to their retry flags.

[0041] Specifically:

[0042] S201, such as Figure 4As shown, the sending end sends MPDUs. In this embodiment, MPDUs are sent starting from the retransmission flag bit being 0 (pb_sn=0), with a total of 4 MPDUs being sent in pairs: 0 / 1 / 2 / 3. The retry flag of the first short MPDU sent is 0. The first short MPDU with pb_sn=0 must successfully receive a SACK before the retry flag can be set to 1; otherwise, it will always be 0. (In this sense, the retry flag indicates that 0 is the start of a new MSDU. This is a compatibility consideration because it allows for interoperability with existing protocols while improving efficiency.)

[0043] S301, such as Figure 5 As shown, the receiving end receives the MPDU and sends back a SACK signal; it also analyzes the CRC to determine if the MPDU was received correctly. If so, the SACK signal is set to 1. Whenever a packet with a retry flag of 0 is received, it means a new MSDU has started receiving, and any previously received MPDUs need to be refreshed.

[0044] S202: The transmitting end receives the SACK signal. If the SACK signal is 1, then execute S204; otherwise, execute S203. S203: Retransmit the current MPDU; S204: Send the next MPDU.

[0045] If the sender receives a SACK signal of 0 after sending the current MPDU, or if it does not receive a SACK signal within a preset time, it needs to continue sending the MPDU, and pb_sn will not be incremented. If a SACK signal of 1 is received, it means that the MPDU was successfully received. After that, retry flag=1, and the next MPDU is sent, pb_sn + 1, until the last one is sent.

[0046] S302, if the MPDU's retry flag=0, then the MPDU corresponds to a new MSDU, clear the previous receive buffer and store the received MPDU; if the MPDU's retry flag=1, then the MPDU belongs to the current MSDU, and store the received MPDU.

[0047] For packets with retry flag=0, pb_sn must generally start from 0 to indicate the first block. The total number of MPDUs in the MSDU can be obtained from the physical block header (frame sequence number of the end-of-frame marker + 1, since the frame sequence number starts from 0). The size of each MPDU (pbsz) can be obtained from the TMI of this block, thereby calculating the data volume of the MSDU and allocating the corresponding buffer space for the MSDU.

[0048] For packets where pb_sn != 0, the retry flag should be 1. This indicates that the received MPDUs are all from the current MSDU. If the CRC of the MPDU is correct, reply with SACK=1 to indicate that it has been received correctly. If the number of physical blocks (pbnum) has reached the number that should be received, then you can try to calculate the CRC of the MSDU. If the CRC is correct, you can report to the upper layer; otherwise, continue to wait for the next PB.

[0049] During this process, the receiving end does not actively refresh the current MSDU and receives it passively. The sending state machine is controlled by the sending end. If the sending end times out or refreshes, it will jump to S301 to send a new MSDU.

[0050] like Figure 3 As shown, after the receiving end receives all MPDUs of the current MSDU, it integrates all MPDUs to form an MSDU.

[0051] Example 2:

[0052] The basic principle of Example 2 is the same as that of Example 1. The difference is that in Example 2, the number of physical blocks in the MPDU is more than two. Correspondingly, the SACK reply message of the receiving end adopts the bitmap form. Thus, the sending end can know the failure status of the receiving end through the bitmap, so that when retransmitting the MPDU, only the physical blocks that failed to be received are retransmitted.

[0053] The specific retransmission method is as follows:

[0054] In this embodiment, the current MSDU is divided into 5 MPDUs, and each MPDU contains 4 physical blocks.

[0055] If the first MPDU sent by the sender is successfully received, but the first and second physical blocks in the second MPDU sent by the sender are not successfully received, the SACK response is 0011. At this time, the sender, based on the SACK signal, combines the first and second physical blocks into a new MPDU and sets its retry flag to 1 for retransmission. Subsequent MPDU packets that are not successfully received are retransmitted in the same manner, with the retry flag always set to 1. That is, in the retransmission of a single MPDU, except for the first MPDU which is retransmitted with a retry flag of 0, all subsequent retransmissions have a retry flag of 1. In other embodiments of this application, short MPDUs can also be used to retransmit the physical blocks that need to be retransmitted sequentially.

[0056] Example 3:

[0057] The basic principle of Embodiment 3 is the same as that of Embodiment 1. The difference is that in Embodiment 3, S200 includes: if a rate switching is required, a rate whose physical block size is the same as that of a successfully transmitted physical block is selected for switching, and the TMI is replaced with the TMI of the switched rate.

[0058] According to the State Grid protocol, the physical block size is typically 72, 136, 264, 520, etc., and there are cases where different rates correspond to the same physical block size. In this embodiment, when a rate switch is required (such as when a message fails to be retransmitted multiple times and needs to be sent at a reduced rate), the sending end will select a rate whose physical block size is the same as the size of the physical block that has been successfully transmitted for switching. That is, it attempts to control the physical block size corresponding to the rate before and after the switch to be the same. In this way, the physical block that has been successfully transmitted can be seamlessly connected by directly replacing the rate table index (TMI) without retransmitting the entire message.

[0059] The above are merely embodiments of the present invention. Commonly known structures and characteristics are not described in detail here. Those skilled in the art are aware of all common technical knowledge in the field prior to the application date or priority date, are aware of all existing technologies in that field, and have the ability to apply conventional experimental methods prior to that date. Those skilled in the art can, under the guidance of this application, improve and implement this solution in combination with their own capabilities. Some typical known structures or methods should not be obstacles for those skilled in the art to implement this application. It should be noted that those skilled in the art can make several modifications and improvements without departing from the structure of the present invention. These should also be considered within the scope of protection of the present invention, and will not affect the effectiveness of the implementation of the present invention or the practicality of the patent. The scope of protection claimed in this application should be determined by the content of its claims, and the specific embodiments described in the specification can be used to interpret the content of the claims.

Claims

1. An MPDU retransmission method, comprising: S100, the MSDU is divided into several MPDUs; S200, the transmitting end sends MPDUs to the receiving end in sequence according to the SACK signal, characterized in that: the retry flag of the first MPDU is 0, and the retry flag of the other MPDUs is 1. S200 includes: S201, Send MPDU; S202, Receive the SACK signal. The SACK signal is in bitmap form. If it is all 1s, then execute S204; otherwise, execute S203. S203, retransmit the current MPDU; if the MPDU contains more than two physical blocks, then when retransmitting the MPDU, only the physical blocks that failed to be received are retransmitted. S204, send the next MPDU.

2. The MPDU retransmission method according to claim 1, characterized in that: Also includes: S300: The receiving end receives the MPDU and stores the received MPDU according to the retry flag of the MPDU.

3. The MPDU retransmission method according to claim 2, characterized in that: The S300 includes: S301, receives MPDU; S302, if the MPDU's retry flag=0, then the MPDU corresponds to a new MSDU, clear the previous receive buffer and store the received MPDU; if the MPDU's retry flag=1, then the MPDU belongs to the current MSDU, and store the received MPDU.

4. The MPDU retransmission method according to claim 1, characterized in that: S200 includes: if a rate switching is required, select a rate whose physical block size is the same as the physical block size that has been successfully sent, and replace the rate table index TMI with the rate table index TMI of the switched rate.

5. The MPDU retransmission method according to claim 3, characterized in that: The MPDU also includes a CRC; In S301, the MPDU is received and the SACK signal is fed back; based on the CRC, it is analyzed whether the MPDU was received correctly.

6. The MPDU retransmission method according to claim 1, characterized in that: If the MPDU contains more than two physical blocks, then when retransmitting the MPDU, only the physical blocks that failed to be received are retransmitted, including: The receiving end feeds back the SACK signal based on the reception status of each physical block; Based on the SACK signal, the sending end integrates the physical blocks that the receiving end failed to receive into a new MPDU and sets its retryflag to 1 for retransmission.