System and method for aggregating communication links
By using link-independent sequence numbers and shard numbers in MPDU's MAC header, the MSDU segmentation sequence problem in Wi-Fi link aggregation is solved, and efficient link aggregation is achieved, which improves throughput and reduces latency and packet loss rate.
Patent Information
- Application Number
- CN201980097726.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2019-06-25
- Publication Date
- 2025-04-08
- Estimated Expiration
- 2039-06-25
AI Technical Summary
The existing Wi-Fi link aggregation technology is difficult to effectively deal with the sequence of MSDU segments transmitted through different 802.11 links, resulting in the need to reorder the receiving STAs, which affects throughput, delay and packet loss rate.
By including link-independent sequence numbers and shard numbers in the MAC header of the MPDU, efficient reordering and reassembly of MSDU segments is achieved, ensuring that the receiving STA can correctly sort and assemble MSDUs in the service flow.
The throughput of 802.11 link aggregation is improved, delay and jitter is reduced, and packet loss rate is reduced, ensuring stable transmission of service flows.
Smart Images

Figure CN114097272B_ABST
Abstract
Description
Technical Field
[0001] The present invention generally relates to a system and method for wireless communications, and in particular embodiments, to a system and method for aggregating communication links. Background Art
[0002] Modern Wi-Fi devices increasingly support multi-band capabilities. For example, it is common for Wi-Fi access points (APs) and stations (STAs) to support dual bands of 2.4 GHz and 5 GHz. In addition, some devices support tri-bands, namely 2.4 GHz, 5 GHz, and 60 GHz bands. The predecessor of the Institute of Electrical and Electronics Engineers (IEEE) 802.11 working group was the Extremely High Throughput Study Group (EHT SG), and part of its scope of work, in addition to improving throughput, also includes reducing latency, jitter, and packet loss. The demand for higher throughput is driven by the demand for 4K or higher resolution video, while the demand for lower latency and jitter is driven by applications such as gaming, industrial control, and augmented reality. The needs of these emerging services can be met by using multiple parallel links across multiple bands, as well as improved methods for link discovery and configuration, traffic distribution and aggregation across multiple links. Summary of the invention
[0003] Technical advantages are generally achieved by embodiments of the present invention, which describe a system and method for aggregating communication links.
[0004] According to one embodiment, a method is provided for transmitting a sequence of media access control (MAC) service data units (MSDUs) constituting a service flow from a first station (STA) to a second STA via an Institute of Electrical and Electronics Engineers (IEEE) 802.11 network. In this example, the method includes: the first STA sends a first MAC protocol data unit (MPDU) payload to the second STA via a first 802.11 link, and sends a second MPDU payload to the second STA via a second 802.11 link different from the first 802.11 link. A first MSDU segment in the MSDU sequence is encapsulated in the first MPDU payload, and a second MSDU segment in the MSDU sequence is encapsulated in the second MPDU payload. The first MAC header appended to the first MPDU payload includes a transmitter (TX) and a receiver (RX) MAC address specific to the first 802.11 link, and a first sequence control field identifying the position of the first MSDU segment within the MSDU sequence; the second MAC header appended to the second MPDU payload includes a TX and RX MAC address specific to the second 802.11 link, and a second sequence control field identifying the position of the second MSDU segment within the MSDU sequence. In one example, the TX and RX MAC addresses in the first MAC header include a first TX MAC address that uniquely identifies the first STA on the first 802.11 link, and a first RX MAC address that uniquely identifies the second STA on the first 802.11 link. In this example, the TX and RX MAC addresses in the second MAC header include a second TX MAC address that is different from the first TX MAC address and uniquely identifies the first STA on the second 802.11 link, and a second RX MAC address that is different from the first RX MAC address and uniquely identifies the second STA on the second 802.11 link. In the same example or another example, the first MPDU payload and the second MPDU payload are encrypted according to the same security key and the same TX and RX MAC address pair. In any of the above examples or a new example, the first sequence control field and the second sequence control field include different sequence numbers to indicate that the first MSDU segment and the second MSDU segment correspond to different MSDUs within the MSDU sequence.In this example, the relative difference between the respective sequence numbers in the first sequence control field and the second sequence control field may correspond to the relative difference between the positions of different MSDUs within the MSDU sequence. In any of the above examples or a new example, the first sequence control field and the second sequence control field include the same sequence number to indicate that the first MSDU segment and the second MSDU segment correspond to a common MSDU within the MSDU sequence. In this example, the first sequence control field and the second sequence control field may also include different fragment numbers to indicate that the first MSDU segment and the second MSDU segment are different fragments of the common MSDU within the MSDU sequence. Similarly, the "more fragments" bit in the first MAC header is set to 1 to indicate that the common MSDU consists of a sequence of MSDU fragments, wherein the sequence of MSDU fragments includes a first fragment in the first MSDU segment and at least a second fragment in the second MSDU segment. In this same example, the relative difference between the fragment numbers in the first sequence control field and the second sequence control field may correspond to the relative difference between the positions of different MSDU fragments in the MSDU fragment sequence of the common MSDU. In the same example, the first sequence control field and the second sequence control field may also include the same fragment number to indicate that the first MSDU segment and the second MSDU segment are the same MSDU fragment. In the same example, the retry field in the second MAC header may indicate that the second MPDU payload is a retransmission of the first MPDU payload, so that a common MSDU or MSDU fragment is encapsulated in the first MPDU payload and the second MPDU payload. In one example, after indicating that the transmission of the first MPDU payload failed, the second MPDU payload is transmitted. In another example, after determining that the MPDU payload of the MSDU segment encapsulating the MSDU sequence needs to be repeatedly transmitted, the second MPDU payload is transmitted. In any of the above examples or a new example, the method also includes: the first station receives a block acknowledgement (BA) message from the second station via the first 802.11 link. The BA message includes a first field and a second field, the first field indicating whether the first MSDU segment is successfully received, and the second field indicating whether the second MSDU segment is successfully received. The first field and the second field may be bits in a bitmap carried by the BA message. In any of the above examples or a new example, the first 802.11 link and the second 802.11 link are established on different frequency channels. A device for executing the above method is also provided.
[0005] According to one embodiment, another method for transmitting a sequence of media access control (MAC) service data units (MSDUs) constituting a service flow from a first station (STA) to a second STA via an Institute of Electrical and Electronics Engineers (IEEE) 802.11 network is provided. In this example, the method includes: the second STA receives a first MAC protocol data unit (MPDU) payload from the first STA via a first 802.11 link, and receives a second MPDU payload from the first STA via a second 802.11 link different from the first 802.11 link, a first MSDU segment in the MSDU sequence is encapsulated in the first MPDU payload, and a second MSDU segment in the MSDU sequence is encapsulated in the second MPDU payload. A first MAC header appended to the first MPDU payload includes a transmitter (TX) and a receiver (RX) MAC address specific to the first 802.11 link, and a first sequence control field identifying the position of the first MSDU segment within the MSDU sequence; a second MAC header appended to the second MPDU payload includes TX and RX MAC addresses specific to the second 802.11 link, and a second sequence control field identifying the position of the second MSDU segment within the MSDU sequence. In one example, the TX and RX MAC addresses in the first MAC header include a first TX MAC address that uniquely identifies the first STA on the first 802.11 link, and a first RX MAC address that uniquely identifies the second STA on the first 802.11 link; the TX and RX MAC addresses in the second MAC header include a second TX MAC address that is different from the first TX MAC address and uniquely identifies the first STA on the second 802.11 link, and a second RX MAC address that is different from the first RX MAC address and uniquely identifies the second STA on the second 802.11 link. In this example, the method may further include the second STA decrypting the first MPDU payload and the second MPDU payload based on the same security key and a common TX and RX MAC address pair.In addition, the method may further include: the second STA replaces the second TX MAC address and the second RX MAC address in the second MAC header with the common TX and RX MAC address pair before decrypting the second MPDU payload according to the same security key and the common TX and RX MAC address pair. In any of the above examples or a new example, the first sequence control field and the second sequence control field include different sequence numbers to indicate that the first MSDU segment and the second MSDU segment correspond to different MSDUs within the MSDU sequence. In this example, the relative difference between the respective sequence numbers in the first sequence control field and the second sequence control field corresponds to the relative difference between the positions of different MSDUs within the MSDU sequence. In this example, the method may further include: the second STA obtains a received MSDU sequence from at least the first MPDU payload and the second MPDU payload; and reorders the received MSDU sequence at least according to the different sequence numbers to obtain a reordered MSDU sequence. In any of the above examples or a new example, the first sequence control field and the second sequence control field may include the same sequence number to indicate that the first MSDU segment and the second MSDU segment correspond to a common MSDU within the MSDU sequence. The first sequence control field and the second sequence control field may also include different fragment numbers to indicate that the first MSDU segment and the second MSDU segment are different fragments of the common MSDU within the MSDU sequence. In addition, the "more fragments" bit in the first MAC header may be set to 1 to indicate that the common MSDU consists of a sequence of MSDU fragments, and the MSDU fragment sequence may include a first fragment in the first MSDU segment and at least a second fragment in the second MSDU segment. The relative difference between the fragment numbers in the first sequence control field and the second sequence control field may correspond to a relative difference between positions of different MSDU fragments in the MSDU fragment sequence of the common MSDU. The method may also include: the second STA obtains a received MSDU fragment sequence from at least the first MPDU payload and the second MPDU payload; and assembles the common MSDU from the received MSDU fragment sequence according to the fragment numbers included in the first sequence control field and the second sequence control field. In any of the above examples or a new example, the first sequence control field and the second sequence control field also include the same sequence number to indicate that the first MSDU segment and the second MSDU segment are the same MSDU fragment.In a specific example, the retry field in the second MAC header is set to 1 to indicate that the second MPDU payload is a retransmission of the first MPDU payload, so that the common MSDU or MSDU fragment is encapsulated in the first MPDU payload and the second MPDU payload. In addition, the method may also include: the second STA successfully obtains the common MSDU or MSDU fragment from the first MPDU payload; when determining that the retry field in the second MAC header is set to 1, the common MSDU or MSDU fragment is not obtained from the second MPDU payload, and the second MPDU payload is discarded. In any of the above examples or a new example, the method may also include: the second station sends a block acknowledgment (BA) message to the first station through the first 802.11 link, the BA message including a first field and a second field, the first field indicating whether the first MSDU segment is successfully received, and the second field indicating whether the second MSDU segment is successfully received. The first field and the second field can be bits in a bitmap carried by the BA message. In any of the above examples or a new example, the first 802.11 link and the second 802.11 link are established on different frequency channels. A device for executing the above method is also provided. BRIEF DESCRIPTION OF THE DRAWINGS
[0006] For a more complete understanding of the present invention and its advantages, reference is now made to the following description taken in conjunction with the accompanying drawings, in which:
[0007] Figure 1 An 802.11 network is shown;
[0008] Figure 2A-2B Another 802.11 network is shown;
[0009] Figure 3A-3C shows the MPDU frame structure;
[0010] Figure 4 A process flow for encoding a data stream into an MSDU and encapsulating the MSDU into an MPDU payload of an MPDU is shown;
[0011] Figure 5 A process flow for encoding a data stream into MSDU segments and encapsulating the MSDU segments into an MPDU payload of an MPDU is shown;
[0012] Figure 6A-6D An example showing how to implement non-transparent channel bonding in an 802.11 link aggregation scenario;
[0013] Figure 7A-7E An example of how an embodiment link-specific sequence control field supports MSDU reordering when the MSDUs are communicated over an aggregated 802.11 link is shown;
[0014] Figure 8A-8E An example of how an embodiment link-specific sequence control field supports MSDU reassembly when MSDU fragments are communicated over an aggregated 802.11 link is shown;
[0015] Fig. 9 is a flow chart for transmitting MSDU fragments over an aggregated 802.11 link;
[0016] Fig.10 is a flow chart of another embodiment of a method for transmitting MSDU fragments over an aggregated 802.11 link;
[0017] Fig.11 is a flow chart for receiving MSDU fragments over an aggregated 802.11 link;
[0018] Fig.12 is a flow chart of another embodiment of a method for transmitting MSDU fragments over an aggregated 802.11 link;
[0019] Fig.13 is a diagram of a block acknowledgement (BA) message of an embodiment described herein;
[0020] Fig.14 is a diagram of an embodiment 802.11 protocol stack described herein;
[0021] Fig.15 is a block diagram of an embodiment of a de-multiplexing (DEMUX) and multiplexing (MUX) block described herein;
[0022] Fig.16 is a block diagram of an embodiment processing system for performing the methods described herein;
[0023] Fig.17 is a block diagram of a transceiver for sending and receiving signaling over a telecommunications network provided by exemplary embodiments described herein. DETAILED DESCRIPTION
[0024] The following describes in detail the formation and use of the disclosed embodiments. However, it should be understood that the present invention provides many applicable inventive concepts that can be embodied in a variety of specific contexts. The specific embodiments described are merely illustrative of specific ways to form and use the embodiments and do not limit the scope of the present invention.
[0025] The next generation of the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standard will aggregate multiple 802.11 links to support communication of a single service flow between two stations (STA), thereby improving throughput, reducing latency / jitter, and reducing packet loss. 802.11 links can be established on different frequency channels, which may or may not be in the same frequency band. A single service flow can be encoded into a sequence of media access control (MAC) service data units (MSDUs), which can then be encapsulated into a MAC protocol data unit (MPDU) payload and transmitted over an aggregated 802.11 link. MSDUs with a size less than a fragmentation threshold (e.g., 1500 octets, etc.) can remain unfragmented before being encapsulated into an MPDU payload. Unfragmented MSDUs are referred to herein as "unfragmented MSDUs." It should be understood that the fragmentation threshold can be set based on system parameters (e.g., the size of the maximum MPDU payload, whether the MPDU payload is encrypted (regarding whether the size of the effective MPDU payload is reduced to make room for the encryption protocol header), etc.), and different systems may have different fragmentation thresholds. MSDUs with a size greater than or equal to the fragmentation threshold can be fragmented before being encapsulated into the MPDU payload. When fragmentation occurs, a single MSDU can be split into a series of MSDU fragments, which can be encapsulated into different MPDU payloads and transmitted over different 802.11 links. In the present invention, MSDU fragments of unfragmented MSDUs and fragmented MSDUs are collectively referred to as "MSDU segments", so that an MSDU segment can correspond to an entire MSDU or an MSDU fragment, or otherwise consist of an entire MSDU or an MSDU fragment, depending on whether fragmentation is being performed by the transmitting STA.
[0026] Communicating a sequence of MSDU segments over different 802.11 links may result in the receiving STA receiving MSDU segments in a different order than the MSDU segments in the original sequence generated by the transmitting STA. This may be due to various reasons, such as different buffering periods and / or different data transmission rates associated with the corresponding 802.11 links, and retransmissions of MSDU segments after initial transmission failures. Therefore, the receiving STA may need to have some mechanism for verifying the order of the received MSDU segments before the sequence is decoded and reordering the received MSDU segments if necessary.
[0027] Conventional Wi-Fi link aggregation technology uses bonding driver software to support MSDUs of different service flows to communicate simultaneously through different 802.11 links, while MSDUs of the same service flow communicate through the same 802.11 link. This inflexibility is due to the fact that the MAC sublayer processing of MSDUs on each different 802.11 link is independent of each other. For example, the same device can typically use different MAC addresses as identifiers on different 802.11 links, which are used to identify the device as a transmitting device or a receiving device for the current transmission based on which address field between the transmitter address field and the receiver address field in the MAC header contains its MAC address. Similarly, different security keys can be used for encryption, decryption and / or integrity protection on different 802.11 links, and the MSDU sequence number (SN) and fragment number (FN) allocation can be link-specific (for example, the SN and FN of MSDUs communicated through different 802.11 links can be independent of each other). If MSDU segments of the same traffic flow are communicated over different 802.11 links, these MSDU segments may be received in different orders (i.e., the received sequence of MSDU segments may have a different order than the original sequence of the MSDU segments on the transmitting side of the 802.11 link). In some cases, this reordering may be due to the 802.11 links supporting different transmission capabilities, or having different congestion or interference conditions, etc. Link-specific sequence numbers / fragment numbers (indicating the relative order of MSDU segments communicated over a particular 802.11 link) are provided to support the receiver in determining the appropriate order of MSDU segments received over different 802.11 links without exhibiting mutual dependencies.
[0028] Embodiments of the present invention provide an effective means for aggregating the available bandwidth of different 802.11 links to simultaneously transmit a sequence of MSDUs belonging to the same service flow, thereby improving throughput, reducing latency and jitter, and reducing packet loss rate. In some embodiments, different unfragmented MSDUs of the same service flow, or different fragments of the same fragmented MSDU, can be transmitted through different 802.11 links, thereby improving throughput and reducing transmission latency. In some embodiments, MSDU segments can be copied and transmitted through multiple 802.11 links, thereby reducing packet loss by leveraging redundancy. The receiving STA can detect and delete the copies before transmitting to higher layers. In some embodiments, when the initial transmission of an MSDU segment through one 802.11 link fails, the MSDU segment is retransmitted through another 802.11 link (for example, on a first-come, first-served basis). co m e first se rv e), thereby reducing retransmission queuing delay and alleviating head-end blocking problems.
[0029] In addition, embodiments of the present invention provide an efficient mechanism for reordering MSDU segments by including a link-specific MAC address and a link-independent sequence control field in a MAC header appended to an MPDU payload, and the MSDU segments are encapsulated within the MPDU payload before transmitting the MPDU payload over multiple aggregated 802.11 links. Each MAC header may also include a "more fragments" bit that indicates whether the MSDU segment is a fragment of a fragmented MSDU followed by a subsequent MSDU fragment of the same MSDU. More specifically, the "more fragments" bit may be set to 1 to indicate that the MSDU segment is an MSDU fragment followed by a subsequent MSDU fragment of the same MSDU; or set to 0 to indicate that the MSDU segment is an unfragmented MSDU (e.g., when MB=0 and FN=0) or the last MSDU fragment in a fragmented MSDU (e.g., when MB=0 and FN is greater than or equal to 1). Each link-independent sequence control field identifies the position of the corresponding MSDU segment within the MSDU sequence. More specifically, the sequence control field of the MSDU segment may include a link-independent sequence number indicating the relative position of the corresponding MSDU within the MSDU sequence of the service flow. The sequence number of the MSDU remains constant in all fragments generated from the MSDU and in all retransmissions of the MSDU or its fragments. In addition, when the MSDU segment is an MSDU fragment, the sequence control field may also include a link-independent fragment number indicating the relative position of the corresponding MSDU fragment within the MSDU fragment sequence of the MSDU being fragmented. The fragment number of the fragment remains constant in all retransmissions of the fragment. In some examples, the fragment number is set to 0 in the first or only fragment of the MSDU, and the fragment number is incremented by 1 for each subsequent fragment of the MSDU. Transmit an unfragmented MSDU, wherein the fragment number is set to 0 (FN=0) and the "more fragments" bit is set to 0 (MB=0). The middle fragment within a sequence of transmitted MSDU fragments, where the fragment number is set to an integer greater than or equal to 1 (FN>=1), and the "More Fragments" bit is set to 1 (MB=1). The last fragment within a sequence of transmitted MSDU fragments, where the fragment number is set to an integer greater than or equal to 1 (FN=1, 2, etc.), and the "More Fragments" bit is set to 1 (MB=0). Thus, the "More Fragments" bit can be used together with the fragment number to determine whether the MSDU is an unfragmented MSDU (MB=0, FN=0), the first or middle MSDU fragment in a sequence of MSDU fragments corresponding to a common MSDU (MB=1, FN>=0), or the last MSDU fragment in a sequence of MSDU fragments corresponding to a common MSDU (MB=0, FN>=1).The position indicated by the sequence number and / or fragment number in the sequence control field has no relation to, and is not affected by, the 802.11 link over which the MSDU fragment is communicated. In some examples, the sequence number and / or fragment number are associated with the MSDU fragment before the MSDU fragment is assigned to a specific 802.11 link.
[0030] Since the sequence number is independent of the 802.11 link, when a given sequence of MSDUs is communicated over different 802.11 links, the corresponding sequence numbers are related to each other so that the difference between the sequence numbers corresponds to the relative difference between the positions of the MSDUs within the sequence. This supports the receiving STA to determine the appropriate order of the MSDUs by comparing the sequence numbers. Similarly, when two MSDU fragments in a common MSDU are communicated over different 802.11 links, the mutual relationship between the corresponding link-independent fragment numbers means that their value difference corresponds to the relative difference between the positions of the MSDU fragments within the MSDU fragment sequence of the common MSDU, which in turn supports the receiving STA to determine the appropriate order of the MSDU fragments by comparing the fragment numbers. These and other aspects are described in more detail below.
[0031] Figure 1 1 is a diagram of an 802.11 network 100 for communicating data. The network 100 includes an access point (AP) station (STA) 110 having a coverage area 101, a plurality of non-AP STAs 120, and a backhaul network 130. The AP STA 110 may include any component or set of components capable of providing wireless access, in particular by establishing a connection with the non-AP STA 120 to achieve uplink and downlink communications. The non-AP STA 120 may include any component or set of components capable of establishing a wireless connection with the AP STA 110. The backhaul network 130 may be any component or set of components that supports the exchange of data between the AP STA 110 and a remote terminal (not shown). In some embodiments, the network 100 may include various other wireless devices, such as relays, femtocells, etc. The AP STA 110 and the non-AP STA 120 may be collectively referred to as a "station (STA)", such that a STA may be an AP STA or a non-AP STA.
[0032] Figure 2A and Figure 2B2 is a diagram of an 802.11 network 200 in which a STA 210 communicates with a STA 220 via an aggregated set 290 of 802.11 links including 802.11 links 291, 292, 299. As referred to herein, an 802.11 link is "different" from another 802.11 link when the 802.11 links are established on different frequency channels. The STA 210 (referred to as the "transmitting STA 210") may transmit a sequence of MSDUs to a STA 220 (referred to as the "receiving STA 220") via the aggregated set 290 of 802.11 links by encapsulating the MSDU segments corresponding to the MSDUs within an MPDU payload, appending a MAC header to the MPDU payload to form an MPDU (also referred to as a frame), and then transmitting the MPDUs via the 802.11 links 291, 292, 299. In some embodiments, the MPDU payload may be encrypted using the same security key and the same TX and RX MAC address pair of STA 210 and STA 220 before the MAC header is attached to the MPDU payload. In some embodiments, the MPDUs may be transmitted over different 802.11 links without duplication with each other. In some embodiments, the same MPDU may be replicated and transmitted over multiple different 802.11 links to improve reliability through redundant transmission. In some embodiments, the MPDU payload in an MPDU that fails in initial transmission over an 802.11 link may be retransmitted over a different 802.11 link with a different MAC header, for example, on a first-come, first-served basis to reduce retransmission delays and alleviate head-end blocking issues.
[0033] Figure 2B yes Figure 2A and 2B 210, 220. As shown, the transmitting STA 210 includes wireless transceivers 211, 212, baseband processors 213, 214, and a MAC processor 215. Similarly, the receiving STA 220 includes wireless transceivers 221, 222, baseband processors 223, 224, and a MAC processor 225. The wireless transceivers 211, 212, 212, 222 may include any set of components for transmitting and / or receiving wireless signals through 802.11 links 291, 292, including components for up-converting baseband signals to RF signals on the TX path and components for down-converting RF signals to baseband signals on the RX path. The baseband signal may include an MPDU and an additional physical (PHY) layer header. The baseband processors 213, 214, 223, 224 may include any set of components for processing MPDUs into baseband signals on the TX path and processing baseband signals into MPDUs on the RX path.
[0034] Figure 3A-3C An MPDU structure 300-302 for enabling 802.11 link aggregation is shown. The MPDU structure 300 includes a MAC header 310 attached to an MPDU payload 340. The MAC header 310 includes a MAC address field 320, a sequence control field 330, and a frame control field 335, while the MPDU payload 340 includes an MSDU segment 350. The MAC address field 320 may specify a TX MAC address and an RX MAC address associated with an 802.11 link communicating the MPDU payload 340. The TX MAC address may uniquely identify a transmitting STA on an 802.11 link, and the RX MAC address may uniquely identify a specific receiving STA (or a group of receiving STAs on an 802.11 link when the RX MAC address is a group address). In one embodiment, both the TX and RX MAC addresses may be link-specific, such that these addresses are dedicated to a single 802.11 link for a given period of time. In some embodiments, the TX and RX MAC addresses included in the MAC header may be used for encryption and integrity protection of the receiving STA and the transmitting STA. In other embodiments, the TX and RX MAC addresses included in the MAC header may be converted (e.g., replaced) to different sets of TX and RX MAC addresses that are independent of the link, which may be used by the transmitting STA for encryption and integrity protection and by the receiving STA for decryption and integrity verification. In these embodiments, the transmitting STA may maintain a table that maps the link-independent TX and RX MAC addresses used for encryption and integrity protection to the link-specific TX and RX addresses that are ultimately included in the MAC header for transmission; the receiving STA may maintain a table that maps the link-specific TX and RX MAC addresses (from the received MAC header) to the link-independent TX addresses and RX addresses that are ultimately used for decryption and integrity verification. The sequence control field 330 includes information (e.g., sequence number, fragment number, etc.) indicating the position of the MSDU segment 350 within the MSDU sequence corresponding to the service flow. The frame control field 335 includes a "more fragments" bit that indicates whether there are more fragments of the same MSDU after the corresponding MSDU segment. In some embodiments, the frame control field 335 may include a retry bit that indicates whether the MPDU payload 340 is a retransmission of a previously transmitted MPDU payload, such that the MPDU payload 340 and the previously transmitted MPDU payload carry a common MSDU or MSDU fragment (e.g., the common MSDU or MSDU fragment is encapsulated within the MPDU payload 340 and the previously transmitted MPDU payload).
[0035] The MSDU segment 350 may be an unfragmented MSDU or an MSDU fragment. The MPDU structure 301 is a specific example of the MPDU structure 300 carrying an unfragmented MSDU 351 instead of an MSDU fragment. As shown, the sequence control field 331 includes a non-zero sequence number and a fragment number set to zero. The non-zero sequence number in the sequence control field 331 identifies the position of the MSDU 351 within the MSDU sequence. The fragment number in the sequence control field 331 and the "more fragments" bit in the frame control field 336 are both set to zero (MB=0, FN=0) to indicate that the MSDU 351 is a whole MSDU, not an MSDU fragment.
[0036] The MPDU structure 302 is a specific example of the MPDU structure 300 that carries an MSDU fragment 362 instead of an entire unfragmented MSDU. As shown, the sequence control field 332 includes a non-zero sequence number and a fragment number. The fragment number of the first fragment of a common MSDU can be set to 0, and the fragment number can be incremented by 1 for each subsequent fragment of the common MSDU. The non-zero sequence number in the sequence control field 332 identifies the position of the entire MSDU from which the MSDU fragment is obtained, and the fragment number in the sequence control field 332 identifies the relative position of the MSDU fragment 362 within the entire MSDU. The "more fragments" bit in the frame control field 337 can be set to 1 to indicate that the MSDU fragment 362 is followed by subsequent MSDU fragments from the corresponding MSDU; or set to 0 to indicate that the MSDU fragment 362 is the last MSDU fragment in the sequence of MSDU fragments from the corresponding MSDU.
[0037] Figure 4A process flow 400 is shown for encoding a traffic flow 490 into MPDUs 401-404. As shown, the traffic flow 490 is first received from a protocol layer above the MAC layer (e.g., a logic link control (LLC) layer) as a sequence of MSDUs 450 including MSDUs 451, 452, 453, 454, each of which has a size less than a fragmentation threshold. The MSDUs 451, 452, 453, 454 are then encapsulated (respectively) into MPDU payloads 441, 442, 443, 444, and then MAC headers 411, 412, 413, 414 are appended (respectively) to the MPDU payloads 441, 442, 443, 444 to form MPDUs 401, 402, 403, 404. The MAC headers 411, 412, 413, 414 include (respectively) sequence control fields 431, 432, 433, 434 and (respectively) frame control fields 436, 437, 438, 439. The sequence control fields 431, 432, 433, 434 indicate a sequence number (SN) and a fragment number (FN) (set to zero), the sequence number identifying the relative position of the corresponding MSDU 451, 452, 453, 454 within the MSDU sequence 450. The frame control fields 436, 437, 438, 439 include "more fragments" bits (depicted as "MB"), which are set to zero to indicate that there are no associated MSDU fragments following the MSDU 451, 452, 453, 454 (this is because the MSDU 451, 452, 453, 454 is a non-fragmented MSDU). Although the sequence numbers are described as increasing from 1, it should be understood that the sequence numbers may start from any number (e.g., N, N+1, etc.) It should be understood that any number of MSDUs (e.g., two or more MSDUs) may be included in the MSDU sequence formed by the service flow.
[0038] Figure 5A process flow 500 for encoding a traffic flow 590 into MSDUs 501-504 is shown. As shown, the traffic flow 590 is first received from a higher layer (e.g., a protocol layer above the MAC layer (e.g., a logical link control (LLC) layer, etc.) as an MSDU sequence 550 including MSDU 551 and MSDU 552, each of which has a size greater than or equal to a fragmentation threshold. MSDU 551 is fragmented into an MSDU fragment sequence 560 including MSDU fragment 561 and MSDU fragment 562, while MSDU 552 is fragmented into an MSDU fragment sequence 570 including MSDU fragment 571 and MSDU fragment 572. The MSDU fragments 561, 562, 571, 572 are then encapsulated into MPDU payloads 541, 542, 543, 544 (respectively) and MAC headers 511, 512, 513, 514 are appended to the MPDU payloads 541, 542, 543, 544 (respectively) to form MPDUs 501, 502, 503, 504. The MAC headers 511, 512, 513, 514 include sequence control fields 531, 532, 533, 534 (respectively) and frame control fields 536, 537, 538, 539 (respectively). The sequence control fields 531, 532, 533, 534 specify a sequence number and a fragment number (FN), wherein the sequence number identifies the relative position of the corresponding MSDU 551, 552 within the MSDU sequence 550, and the fragment number identifies the relative position of the MSDU fragments 561, 562, 571, 572 within their respective MSDU fragment sequences 560, 570. The frame control fields 536, 537, 538, 539 include a "more fragments" bit (depicted as "MB"). The "More Fragments" bit in the frame control fields 536, 538 is set to one (1) to indicate that the MSDU fragments 561, 571 are followed by subsequent MSDU fragments (e.g., MSDU fragments 562, 572, respectively) from the same fragmented MSDU (e.g., MSDU 551, 552), while the "More Fragments" bit in the frame control fields 537, 539 is set to zero (0) to indicate that the MSDU fragments 562, 572 are not followed by any subsequent MSDU fragments corresponding to the same respective MSDU. For example, the sequence control field 531 includes a fragment number (FN=0) set to zero to indicate that the MSDU fragment 561 is the first fragment in the MSDU fragment sequence 560, and a sequence number (SN=1) set to one to indicate that the MSDU fragment 561 is formed by the first MSDU 551 in the MSDU sequence 550.The sequence control field 532 includes a fragment number (FN=1) set to one to indicate that the MSDU fragment 562 is the second fragment in the MSDU fragment sequence 560, and a sequence number (SN=1) set to one to indicate that the MSDU fragment 562 is also formed from the first MSDU 551 in the MSDU sequence 550. It should be understood that any number of MSDU fragments (e.g., two or more MSDU fragments) can be formed from fragmented MSDUs. It should be understood that a mixture of MSDUs with a size less than the fragmentation threshold and MSDUs with a size greater than or equal to the fragmentation threshold can be included in the MSDU sequence received from the upper layer and encoded into the MPDU sequence, which includes MPDUs that each encapsulate an unfragmented MSDU and MPDUs that each encapsulate an MSDU fragment.
[0039] Traditional Wi-Fi link aggregation technology using bonding driver software can support MSDUs of different service flows to be communicated simultaneously over different 802.11 links, but if they are received over different 802.11 links and out of order, they may rely on link-specific sequence numbers / fragment numbers that are not suitable for reordering MSDUs / MSDU fragments of the same service flow.
[0040] Figure 6A-6D shows an example of how to implement a bonding driver in an 802.11 link aggregation scenario. Fig. 6A The MSDU sequence 650 is received at the transmitting STA 210 in the embodiment, wherein the MSDUs 651, 652 from the MSDU sequence 650 are distributed by the bonding driver for transmission over the 802.11 link 291 and are therefore stored in the transmission buffer associated with the 802.11 link 291, and the MSDUs 653, 654 from the MSDU sequence 650 are distributed by the bonding driver for transmission over the 802.11 link 292 and are therefore stored in the transmission buffer associated with the 802.11 link 291. Figure 6B In the transmit buffer associated with the 802.11 link 292. Figure 6C, MSDUs 651, 652, 653, 654 are encapsulated (respectively) within MSDU payloads 641, 642, 643, 644, MAC headers 611, 612, 613, 614 are appended to the MPDU payloads 641, 642, 643, 644 to form MPDUs 601, 602, 603, 604, and the MPDUs 601, 602 are transmitted over the 802.11 link 291, while the MPDUs 603, 604 are transmitted over the 802.11 link 292. As shown, the MAC headers 611, 612, 613, 614 in the MPDUs 601, 602, 603, 604 include link-specific MAC address fields 621, 622, 623, 624 and link-specific sequence control fields 631, 632, 633, 634. Each of the link-specific MAC address fields 621, 622, 623, 624 includes a pair of TX and RX MAC address fields associated with a specific 802.11 link on which the corresponding MPDU 601, 602, 603, 604 is transmitted. For example, the link-specific MAC address field 621 indicates the TX MAC address #1 (TX1) and RX MAC address #1 (RX1) associated with the 802.11 link 291; and the link-specific MAC address field 623 indicates the TX MAC address #2 (TX2) and RX MAC address #2 (RX2) associated with the 802.11 link 292. In addition, each of the link-specific sequence control fields 631, 632, 633, 634 includes a sequence number that identifies the order in which the corresponding MPDU 601, 602, 603, 604 is communicated over the corresponding 802.11 link. Specifically, the link-specific sequence control field 631 includes a sequence number set to 1 (SN=1) to indicate that MPDU 601 is the first MPDU transmitted via the 802.11 link 291; the link-specific sequence control field 632 includes a sequence number set to 2 (SN=2) to indicate that MPDU 602 is the second MPDU transmitted via the 802.11 link 291; the link-specific sequence control field 633 includes a sequence number set to 1 (SN=1) to indicate that MPDU 603 is the first MPDU transmitted via the 802.11 link 293; the link-specific sequence control field 634 includes a sequence number set to 2 (SN=2) to indicate that MPDU 604 is the second MPDU transmitted via the 802.11 link 292.
[0041] In this example, due to conditions on the 802.11 links 291, 292, for example, the receiving STA 220 receives the MPDUs 603, 604 before the MPDUs 601, 602, and (as Fig.6D) The receiving STA 220 obtains a received MSDU sequence including the following order: MSDU 653, MSDU 654, MSDU 651, MSDU 652. Since the link-specific sequence control fields 631, 632, 633, 634 only indicate the order in which the MPDUs are communicated over a specific 802.11 link, the receiving STA 220 cannot reorder the MSDUs in a manner required to decode the underlying traffic flow.
[0042] Embodiments of the present invention enable efficient reordering of MSDUs during 802.11 link aggregation by including a link-independent sequence number in the MAC header of the MPDU. Figure 7A-7E An example is shown of how a link-independent sequence control field embodiment supports MSDU reordering during 802.11 link aggregation. Figure 7A-7B In the embodiment, a MSDU sequence 750 is received at a transmitting STA 210, the MSDU sequence 750 includes MSDUs 751-754, the size of each MSDU is less than the fragmentation threshold, and after the MSDU sequence 750, sequence control fields 731, 732, 733, 734 and frame control fields 736, 737, 738, 739 are associated with the MSDUs 751, 752, 753, 754. The sequence control fields 731, 732, 733, 734 specify sequence numbers (SN), which identify the order of the corresponding MSDUs in the MSDU sequence 750. Specifically, the sequence control field 731 includes a sequence number (SN=1) set to 1 to indicate that MSDU 751 is the first MSDU in the MSDU sequence 750; the sequence control field 732 includes a sequence number (SN=2) set to 2 to indicate that MSDU 752 is the second MSDU in the MSDU sequence 750; the sequence control field 733 includes a sequence number (SN=3) set to 3 to indicate that MSDU 753 is the third MSDU in the MSDU sequence 750; the sequence control field 734 includes a sequence number (SN=4) set to 4 to indicate that MSDU 754 is the fourth MSDU in the MSDU sequence 750.
[0043] like Figure 7CAs shown, MSDUs 751, 752, 753, 754 (respectively) are encapsulated within MSDU payloads 741, 742, 743, 744, and sequence control fields 731, 732, 733, 734 (along with link-specific MAC address fields 721, 722, 723, 724) are encapsulated within MAC headers 711, 712, 713, 714. MAC headers 711, 712, 713, 714 are then appended to MPDU payloads 741, 742, 743, 744 to form MPDUs 701, 702, 703, 704, and MPDUs 701, 702 are transmitted over 802.11 link 291, while MPDUs 703, 704 are transmitted over 802.11 link 292. The link-specific MAC address fields 721, 722, 723, 724 include a pair of TX and RX MAC address fields associated with a specific 802.11 link for transmitting the corresponding MPDU 701, 702, 703, 704. For example, the link-specific MAC address field 721 indicates the TX MAC address #1 (TX1) and RX MAC address #1 (RX1) associated with the 802.11 link 291; and the link-specific MAC address field 723 indicates the TX MAC address #2 (TX2) and RX MAC address #2 (RX2) associated with the 802.11 link 292.
[0044] In this example, the receiving STA 220 receives MPDUs 703, 704 before MPDUs 701, 702. This may occur due to conditions on the 802.11 links 291, 292 or a retransmission of one or more MPDUs after a reception failure. Fig.7D As shown, due to the order in which MPDUs 701-704 are received, the receiving STA 220 obtains the received MSDU sequence in the following order: MSDU 753, MSDU 754, MSDU 751, MSDU 752. The sequence control fields 731, 732, 733, 734 are link independent, which supports the receiving STA 220 to reorder the MSDUs in a manner required to decode the underlying service flow (such as Fig. 7E shown).
[0045] Figure 8A-8E An example is shown of how a link-independent sequence control field embodiment supports MSDU fragment reassembly during 802.11 link aggregation. Fig. 8AIn , an MSDU sequence 850 including MSDUs 851 and 852 is received at the transmitting STA 210, and the size of each MSDU is greater than or equal to the fragmentation threshold. MSDU 851 is fragmented into an MSDU fragment sequence 860 including MSDU fragment 861 and MSDU fragment 862, and MSDU 852 is fragmented into an MSDU fragment sequence 870 including MSDU fragment 871 and MSDU fragment 872. Figure 8B 8, sequence control fields 831, 832, 833, 834 are associated with MSDU fragments 861, 862, 871, 872. Sequence control field 831 includes a sequence number (SN=1) set to one to indicate that MSDU fragment 861 is associated with the first MSDU (i.e., MSDU 851) in MSDU sequence 850, and a fragment number (FN=0) set to zero to indicate that MSDU fragment 861 is the first MSDU fragment in MSDU fragment sequence 860; and frame control field 836 includes a "more fragments" bit set to 1 to indicate that MSDU fragment 861 is followed by subsequent MSDU fragments in MSDU fragment sequence 860. Similarly, the sequence control field 832 includes a sequence number (SN=1) set to one to indicate that the MSDU fragment 862 is associated with the first MSDU (i.e., MSDU 851) in the MSDU sequence 850, and a fragment number (FN=1) set to one to indicate that the MSDU fragment 862 is the second MSDU fragment in the MSDU fragment sequence 860; and the frame control field 837 includes a "more fragments" bit (MB=0) set to zero to indicate that the MSDU fragment 862 is the last MSDU fragment in the MSDU fragment sequence 860. The sequence control field 833 includes a sequence number (SN=2) set to two to indicate that the MSDU fragment 871 is associated with the second MSDU (i.e., MSDU 852) in the MSDU sequence 850, and a fragment number (FN=0) set to zero to indicate that the MSDU fragment 871 is the first MSDU fragment in the MSDU fragment sequence 870; and the frame control field 838 includes a "more fragments" bit (MB=1) set to one to indicate that the MSDU fragment 871 is followed by subsequent MSDU fragments in the MSDU fragment sequence 870. The sequence control field 834 includes a sequence number (SN=2) set to two to indicate that the MSDU fragment 872 is associated with the second MSDU (i.e., MSDU 852) in the MSDU sequence 850, and a fragment number (FN=1) set to one to indicate that the MSDU fragment 872 is the second MSDU fragment in the MSDU fragment sequence 870; and the frame control field 836 includes a "more fragments" bit (MB=0) set to zero to indicate that the MSDU fragment 872 is the last MSDU fragment in the MSDU fragment sequence 870.
[0046] like Figure 8C As shown, MSDU fragments 861, 862, 871, 872 (respectively) are encapsulated within MSDU payloads 841, 842, 843, 844, while sequence control fields 831, 832, 833, 834, frame control fields 836, 837, 838, 839, and link-specific MAC address fields 821, 822, 823, 824 are encapsulated within MAC headers 811, 812, 813, 814. The MAC headers 811, 812, 813, 814 are then appended to the MPDU payloads 841, 842, 843, 844 to form MPDUs 801, 802, 803, 804, and the MPDUs 801, 802 are transmitted over the 802.11 link 291, while the MPDUs 803, 804 are transmitted over the 802.11 link 292. The link-specific MAC address fields 821, 822, 823, 824 include a pair of TX and RX MAC address fields associated with a specific 802.11 link for transmitting the corresponding MPDU 801, 802, 803, 804. For example, the link-specific MAC address field 821 indicates the TX MAC address #1 (TX1) and RX MAC address #1 (RX1) associated with the 802.11 link 291; and the link-specific MAC address field 823 indicates the TX MAC address #2 (TX2) and RX MAC address #2 (RX2) associated with the 802.11 link 292.
[0047] In this example, the receiving STA 220 receives MPDUs 803 and 804 before MPDUs 801 and 802, and due to the order in which MPDUs 801-804 are received, the receiving STA 220 obtains the received MSDU fragment sequence in the following order: MSDU fragment 871, MSDU fragment 872, MSDU fragment 861, MSDU fragment 862 (e.g., Fig.8D The sequence control fields 831, 832, 833, 834 and the frame control fields 836, 837, 838, 839 are independent of the link, which supports the receiving STA 220 to reassemble the MSDU 851, 852 respectively and decode the underlying service flow (such as Fig. 8EAs shown). As used herein, the "received MSDU segment sequence" refers to all MSDU segments associated with the same service flow received through an aggregated 802.11 link group / set within a given time period. It should be understood that MSDU segments received through different 802.11 links can be separately buffered and / or arranged into their own subsequences for a period of time before or after the reordering / reassembly operation. However, for purposes of the present invention, these MSDU segments will still be considered part of the same "received MSDU segment sequence" as long as these MSDU segments are associated with the same service flow and are received through one of the 802.11 links in the aggregated set of 802.11 links within a common period. As an example, although MSDUs 751 and 752 are received through the same Figure 7C The MSDUs 753, 754 in the 802.11 link are transmitted on different 802.11 links, but when received, all MSDUs 753, 754, 751, 752 are part of the same received MSDU sequence (e.g. Fig.7D ). Figure 8C-Figure 8D Similar observations are made for the MSDU fragments 861, 862, 871, 872 shown in FIG.
[0048] Fig. 9 9 is a flow chart of an embodiment method 900 for transmitting MSDUs over an aggregated 802.11 link, which may be performed by a transmitter (e.g., STA 210). In step 910, the transmitter forms a sequence of MSDU fragments from a sequence of MSDUs corresponding to a traffic flow for transmission over an 802.11 link. The MSDU sequence may be received from a higher layer. The transmitter may form a sequence of MSDU fragments by fragmenting an MDSU whose size is greater than or equal to a fragmentation threshold into MSDU fragments, such that each fragment forms an MSDU segment, while keeping an MSDU whose size is less than the fragmentation threshold unfragmented, such that each unfragmented MSDU forms an MSDU segment. In step 920, the transmitter assigns a link-independent sequence number and / or fragment number to each MSDU segment in the sequence of MSDU fragments. In step 930, the transmitter forms an MPDU by encapsulating the link-independent sequence number and / or fragment number in a MAC header and encapsulating the MSDU fragments into an MPDU payload. In step 940, the transmitter transmits at least some of the MPDUs over different 802.11 links in the aggregated 802.11 link group.
[0049] Fig.101 is a flow chart of an embodiment method 1000 for transmitting MSDUs over an aggregated 802.11 link, which may be performed by a transmitter (e.g., STA 210). In step 1010, the transmitter receives a sequence of MSDUs corresponding to a service flow. The transmitter may receive a sequence of MSDUs corresponding to a service flow from a higher layer. In step 1020, the transmitter assigns a link-independent sequence number to each MSDU in the sequence of MSDUs. In step 1030, the transmitter encapsulates the MSDUs in an MPDU payload. The transmitter may fragment each MSDU (of the sequence of MSDUs) whose size is greater than or equal to a fragmentation threshold into one or more MSDU fragments, wherein each MSDU fragment has a size less than the fragmentation threshold and is assigned a link-independent fragment number that identifies the relative position of the MSDU fragments within the same MSDU. The transmitter may keep each MSDU (of the sequence of MSDUs) whose size is less than the fragmentation threshold unfragmented, and assign each MSDU a fragment number of 0 and a "more fragments" bit of 0, indicating that the MSDU is not fragmented. The transmitter may then encapsulate each resulting MSDU fragment and each unfragmented MSDU into an MPDU payload, respectively. The transmitter may encrypt each resulting MPDU payload according to a link-independent security key and a common TX and RX MAC address pair to generate an encrypted MPDU payload. In step 1040, the transmitter determines different links in the aggregated 802.11 link group to transmit the generated MPDU payload or the encrypted MPDU payload. The transmitter may determine the different links according to the availability of the different links through a contention process and a first-come, first-served policy on each different link. The transmitter may determine the different links according to the transmission capacity (e.g., data rate and allowed time) of each different link in order to determine the number of generated MPDU payloads or encrypted MPDU payloads to be allocated to each different link (and which generated MPDU payloads or encrypted MPDU payloads to be allocated to each different link). The transmitter may determine the different links according to whether repeated transmission is required. The transmitter may determine the different links according to whether the transmission of the MPDU payload is for initial transmission or retransmission. For example, the transmitter may prioritize the MPDU payload to be retransmitted so that the MPDU payload to be retransmitted is transmitted through the first link that becomes available. In step 1050, the transmitter appends a MAC header to the generated MPDU payload or the encrypted MPDU payload according to the determined corresponding link to generate an MPDU sequence. The transmitter may form a MAC header for each MPDU payload or the encrypted MPDU payload in the following manner: according to the link determined for transmitting the corresponding payload, include a link-independent TX and RX MAC address pair in the MAC header.The transmitter may also include in each MAC header a sequence number, a fragment number, a "more fragments" bit, and a retry field associated with the corresponding payload. In step 1060, the transmitter transmits the generated sequence of MPDUs over the determined different links.
[0050] Fig.11 1 is a flow chart of an embodiment method 1100 for receiving MSDUs via an aggregated 802.11 link, which may be performed by a receiver (e.g., STA 220). In step 1110, the receiver receives MPDUs via different 802.11 links in an aggregated 802.11 link group. In step 1120, the receiver obtains a received MSDU fragment sequence from an MPDU payload in the received MPDU. In step 1130, the receiver reassembles and reorders the MSDUs from the received MSDU fragment sequence based on a link-independent sequence number and / or fragment number in a MAC header of the received MPDU. In step 1140, the receiver decodes the reassembled / reordered MSDU sequence to obtain a traffic flow. In some embodiments, the receiver may determine that the retry field indicates that the corresponding MPDU payload is a retransmission of a previous MPDU payload (e.g., the retry field is set to 1), so that the common MSDU fragment is encapsulated in the immediate MPDU payload and the previous MPDU payload. In such cases, if the common MSDU segment is obtained from the previous MPDU payload, the receiver can discard the immediate MPDU payload and not obtain the common MSDU segment from the immediate MPDU payload. This can save power and processing resources by reducing the number of MPDU payloads that need to be decoded.
[0051] Fig.121 is a flow chart of an embodiment method 1200 for receiving MSDUs via an aggregated 802.11 link, which may be performed by a receiver (e.g., STA 220). In step 1210, the receiver receives MPDUs via different 802.11 links in an aggregated 802.11 link group. The receiver may pre-configure an aggregated 802.11 link group for MSDUs of a communication service flow with a transmitter. The receiver may receive the MPDUs based on link-related TX and RX MAC addresses. In step 1220, the receiver obtains a sequence of received MSDU fragments and non-fragmented MSDUs from an MPDU payload in the received MPDU. The receiver may detect and remove duplicate MPDU payloads based on the sequence number, fragment number, and retry fields in the MAC header of the corresponding MPDU. The receiver may identify non-fragmented MSDUs from the MPDU payload based on the fragment number being 0 and the "more fragments" bit being 0 in the MAC header of the corresponding MPDU. The receiver may decrypt the MPDU payload in the received MPDU based on the link-independent security key and the common TX and RX MAC address pair to produce a sequence of received MSDU fragments and unfragmented MSDUs. The receiver may replace the link-dependent TX and RX MAC addresses in the MAC header of the corresponding MPDU with the common TX and RX MAC address pair before performing the decryption. In step 1230, the receiver reorders the sequence of received MSDU fragments and unfragmented MSDUs based on the link-independent sequence number in the MAC header of the corresponding MPDU. In step 1240, the receiver reassembles the MSDU from the MSDU fragments based on the link-independent sequence number and the fragment number in the MAC header of the corresponding MPDU. The receiver may identify the MSDU fragments belonging to the same MSDU based on the common link-independent sequence number shared by the MSDU fragments in their corresponding MAC headers, and then reassemble the identified MSDU fragments in the order indicated by their respective fragment numbers to produce a reassembled MSDU. In step 1250, the receiver transmits the reordered MSDUs consisting of the reassembled and unfragmented MSDUs to the upper layer as a traffic stream.
[0052] In some embodiments, the receiver may determine that the retry field indicates that the corresponding MPDU payload is a retransmission of the previous MPDU payload (e.g., the retry field is set to 1), so that the common MSDU segment is encapsulated in the immediate MPDU payload and the previous MPDU payload. In such cases, if the common MSDU segment is obtained from the previous MPDU payload, the receiver may discard the immediate MPDU payload without obtaining the common MSDU segment from the immediate MPDU payload.
[0053] In some embodiments, after receiving a block acknowledgement request (BAR) message from STA 210, STA 220 may send a block acknowledgement (BA) message to STA 210 via one of the two 802.11 links 291, 292, such as may occur after STA 210 has sent MSDU 701-704 and / or MSDU 801-804 to STA 220 via the aggregated 802.11 links 291, 292. Fig.13 13 is a diagram of a BA message 1300 that includes a MAC address header 1310 and fields 1351-1354. The MAC address header 1310 includes TX / RX MAC addresses, where the TX MAC address field will contain the MAC address of the STA that sent the BA (also the STA that received the MSDU) (e.g., STA 220), and the RX MAC address field will contain the MAC address of the STA that received the BA (also the STA that sent the MSDU) (e.g., STA 210). Each of fields 1351-1354 indicates whether the corresponding MSDU segment was successfully received over the aggregated 802.11 links 291, 292. For example, in Figure 7C and Fig.8D In the context of , field 1351 may indicate whether MSDU 751 or MSDU fragment 861 is successfully received via 802.11 link 291, field 1352 may indicate whether MSDU 752 or MSDU fragment 862 is successfully received via 802.11 link 291, and field 1353 may indicate whether MSDU 752 or MSDU fragment 862 is successfully received via 802.11 link 291.
[0054] Field 1354 may indicate whether MSDU 753 or MSDU fragment 871 is successfully received over 802.11 link 292, and whether MSDU 754 or MSDU fragment 872 is successfully received over 802.11 link 292. In one embodiment, fields 1351-1354 are bits in a bitmap carried by BA message 1300.
[0055] Embodiments of the present invention enable efficient reordering of MSDU segments during 802.11 link aggregation by including a link-independent sequence number and a link-independent fragment number in the MAC header of the MPDU.
[0056] Fig.14is a diagram of an embodiment 802.11 protocol stack 1400 . As shown in the figure, the 802.11 protocol stack 1400 includes a first PHY layer entity 1428 for a first 802.11 link (denoted as Link 1), a second PHY layer entity 1478 for a second 802.11 link (denoted as Link n), a first lower layer MAC processing block 1424-1426 connected to the first PHY layer entity 1428, a second lower layer MAC processing block 1474-1476 connected to the second PHY layer entity 1478, a demultiplexing (DEMUX) and multiplexing (MUX) block 1423 connected to both the first lower layer MAC processing block 1424-1426 and the second lower layer MAC processing block 1474-1476, an upper layer MAC processing block 1412-1422 connected to the DEMUX / MUX block 1423, and a higher layer (e.g., LLC layer) entity 1410 connected to the upper layer MAC processing block 1412-1422. Although Fig.14 Only the lower layer MAC and PHY processing chains for two links are shown, but any number of lower layer MAC and PHY processing chains may be used, wherein these processing chains all share the same upper layer MAC processing chain through the distribution (in the transmit direction) and aggregation (in the receive direction) functions provided by the DEMUX / MUX block 1423. Some functional blocks, such as the fragmentation / fragment defragmentation block 1414 and the MPDU encryption / decryption block 1418, are each shown as a single block that performs opposite functions between the transmit direction and the receive direction. Some other functional blocks, such as the SN allocation block 1412 in the transmit direction, and the BA buffering and reordering block 1416, duplicate detection block 1420, BA scoring block 1422, and address 1 filtering blocks 1424 and 1474 in the receive direction, have no corresponding blocks in the opposite direction and are therefore shown with empty corresponding blocks in the opposite direction.
[0057] In the transmit direction (indicated by the downward arrow), the MSDUs of the service flow arrive from the higher layer 1410. The SN allocation block 1412 then assigns a sequence number to each subsequent MSDU in an incremental manner. The fragmentation / fragmentation block 1414 fragments each MSDU whose size is greater than or equal to the fragmentation threshold into one or more MSDU fragments whose sizes are less than the fragmentation threshold. The fragmentation / fragmentation block 1414 keeps each MSDU whose size is less than the fragmentation threshold intact. The MSDU fragments and the unfragmented MSDUs each form an MSDU segment, which is then encapsulated into an MPDU payload. When data confidentiality and integrity are required, the MPDU encryption / decryption block 1418 encrypts each MPDU payload with a public security key and a public TX and RX MAC address pair to produce an encrypted MPDU payload. The DEMUX / MUX block 1423 selects a link (e.g., a link from multiple links) for each (encrypted) MPDU payload. Fig.14 The MPDU payload is transmitted through the link 1 and link n shown in the figure, and the corresponding MPDU payload is then forwarded to the lower layer MAC processing block of the selected link. The DEMUX / MUX block 1423 can distribute the MPDU payload between different links without duplication to improve throughput. Alternatively, the DEMUX / MUX block 1423 can copy at least some of the MPDU payloads and forward the copied MPDU payloads to more than one link to reduce packet loss through redundancy. Depending on the link selected for transmitting the MPDU payload, the MAC header creation / verification block 1426 or 1476 appends a MAC header containing link-specific TX and RX MAC addresses and a link-independent sequence control field to the MPDU payload to form an MPDU. The MPDU is then passed to the corresponding PHY layer entity 1428 or 1478 for PHY processing and transmission. PHY processing may include appending a PHY header to the MPDU to form a PHY PDU (PHY PDU, PPDU) before transmitting the PPDU via over-the-air download technology.
[0058] In the receive direction (indicated by the upward arrow), the PPDU is received by the PHY layer entities 1428 and 1478 via the over-the-air technology. Then, after removing the PHY header, the MPDU is obtained from the received PPDU and forwarded to the corresponding MAC header creation / verification blocks 1426 and 1476, respectively, for MAC header verification. After successful MAC header verification, the address 1 filter blocks 1424 and 1474 determine whether the received MPDU is for a device (e.g., STA 220) based on the MAC address contained in the RX MAC address field (also referred to as the address 1 field) in the MAC header of the corresponding received MPDU. If the MPDU is for a device, for example, the MAC address contained in the RX MAC address field in the corresponding received MAC header matches the MAC address of the data receiving STA (e.g., STA 220), then the MPDU is forwarded to the DEMUX / MUX block 1423. The DEMUX / MUX block 1423 forwards the MPDUs received from the lower layer MAC processing blocks of multiple links to the common upper layer MAC processing blocks 1412-1422. The DEMUX / MUX block 1423 may convert the link-specific TX and RX MAC address pairs contained in the MAC header of the MPDU to the common TX and RX MAC address pairs before forwarding the MPDUs to the common upper layer MAC processing blocks 1412-1422 to ensure proper decryption. The BA scoreboard 1422 records the reception of the MSDU segments according to the sequence number / fragment number in the corresponding MAC header. The duplicate detection block 1420 detects and removes duplicate MPDU payloads according to the sequence number / fragment number and the retry bit in the corresponding MAC header. When the received MPDU payload is encrypted, for example, as indicated by the protected frame bit of the frame control field (e.g., frame control fields 536-539) in the corresponding received MAC header being set to 1 (set by a transmitter such as STA210), the MPDU encryption / decryption block 1418 decrypts the encrypted MPDU payload using the public security key and the public TX and RX MAC address pairs to produce a plaintext MPDU payload. The BA buffering and reordering block 1416 reorders the MSDU segments extracted from the (plaintext) MPDU payload according to the sequence number and fragment number in the corresponding MAC header. The fragmentation / fragment tidying block 1414 reassembles the MSDU from the MSDU fragments in the reordered MSDU segments according to the sequence number / fragment number and the "more fragments" bit in the corresponding MAC header, and then transmits the reordered entire MSDU sequence as a service flow to the higher layer for further processing (e.g., decoding), and the entire MSDU includes the reassembled MSDU and the unfragmented MSDU.
[0059] Fig.15A block diagram of a DEMUX / MUX block 1500 is shown. The DEMUX / MUX block 1500 may be Fig.14 14. An exemplary embodiment of a DEMUX / MUX block 1423 in FIG. As shown, the DEMUX / MUX block 1500 includes service access points (SAPs) 1510, 1512, 1514, 1516, 1522, and 1524, an MPDU buffer and priority unit 1517, an MPDU distribution unit 1518, a multi-link (ML) monitoring and selection unit 1519, and identifier (ID) mapping units 1523 and 1525. Although Fig.15 Only two links (represented as a master link and a slave link) are shown in the figure, but the DEMUX / MUX block 1500 can provide distribution and aggregation functions for more than two links.
[0060] In the transmit direction (shown by the downward arrow), the common upper layer MAC processing block (e.g. Fig.14The sequence of MPDU payloads (which may be in plain text or, if data confidentiality and integrity are required, encrypted) generated by blocks 1412-1422 in the queue) enters the DEMUX / MUX block 1500 through the SAP 1510 and is prioritized and queued for transmission at the MPDU buffer and priority unit 1517. For example, an MPDU payload queued for retransmission may be assigned a higher priority than an MPDU payload queued for initial transmission. The ML monitoring and selection unit 1519 determines one or more 802.11 links among a plurality of 802.11 links through which the next MPDU payload in the queue is to be transmitted. The MPDU distribution unit 1518 distributes the next MPDU payload in the queue to the determined one or more links. If the next MPDU payload in the queue is distributed to the master link, where the link-specific TX and RX MAC address pair used on the master link is the same as the common TX and RX MAC address pair used when encrypting the MPDU payload, then the next MPDU payload leaves the DEMUX / MUX block 1500 to the MAC header and CRC creation block of the master link via SAP 1512. If the next MPDU payload in the queue is distributed to the slave link, where the link-specific TX and RX MAC address pair used on the slave link is different from the common TX and RX MAC address pair used when encrypting the next MPDU payload, then the next MPDU payload leaves the DEMUX / MUX block 1500 to the MAC header and CRC creation block of the slave link via SAP 1522, where the ID mapping unit 1523 associates the next MPDU payload with the link-specific TX and RX MAC address pair used on the slave link instead of the common TX and RX MAC address pair.
[0061] In the receive direction (indicated by the upward arrow), MPDUs received via multiple links enter the DEMUX / MUX block 1500 via SAP 1514 (if received via the master link) or via SAP 1524 (if received via the slave link). If the MPDU is received via the master link, the DEMUX / MUX block 1500 forwards the MPDU to an upper layer MAC processing block via SAP 1516. If the MPDU is received via a slave link, the ID mapping unit 1525 converts the link-specific TX and RX MAC address pair associated with the MPDU in the received MAC header to a common TX and RX MAC address pair before the DEMUX / MUX block 1500 forwards the MPDU to an upper layer MAC processing block via SAP 1516.
[0062] Fig.15A case is shown where the common TX and RX MAC address pair used to encrypt the MPDU payload is reused as (and therefore is identical to) the link-specific TX and RX MAC address pair used on the master link via the over-the-air technology. Therefore, there are no additional ID mapping units on either the transmit or receive path of the master link. In an alternative embodiment, if the link-specific TX and RX MAC address pair used on the master link via the over-the-air technology is different from the common TX and RX MAC address pair used when encrypting the MPDU payload, additional ID mapping units (similar to ID mapping units 1523 and 1525) may also be added to the transmit and receive paths of the master link, respectively, to perform similar MAC address translation as in the slave link.
[0063] Fig.16 A block diagram of an embodiment processing system 1600 that can be installed in a host device for executing the methods described herein is shown. As shown, the processing system 1600 includes a processor 1604, a memory 1606, and interfaces 1610-1614, which may (or may not) be as Fig.16 . The processor 1604 may be any component or a collection of components for performing calculations and / or other processing-related tasks, and the memory 1606 may be any component or a collection of components for storing programs and / or instructions executed by the processor 1604. In one embodiment, the memory 1606 includes a non-transitory computer-readable medium. The interfaces 1610, 1612, 1614 may be any component or a collection of components that support the processing system 1600 to communicate with other devices / components and / or users. For example, one or more of the interfaces 1610, 1612, 1614 may be used to transmit data, control or management messages from the processor 1604 to applications installed in a host device and / or a remote device. As another example, one or more of the interfaces 1610, 1612, 1614 may be used to support a user or a user device (e.g., a personal computer (PC), etc.) to interact / communicate with the processing system 1600. The processing system 1600 may include Fig.16 Additional components not shown, such as long-term storage (e.g., non-volatile memory, etc.).
[0064] In some embodiments, the processing system 1600 is included in a network device that accesses a telecommunications network or otherwise becomes part of a telecommunications network. In one example, the processing system 1600 is located in a network-side device in a wireless or wired telecommunications network, such as a base station, a relay station, a scheduler, a controller, a gateway, a router, an application server, or any other device in a telecommunications network. In other embodiments, the processing system 1600 is located in a user-side device that accesses a wireless or wired telecommunications network, such as a mobile station, a user equipment (UE), a personal computer (PC), a tablet computer, a wearable communication device (e.g., a smart watch, etc.), or any other device for accessing a telecommunications network.
[0065] In some embodiments, one or more of interfaces 1610, 1612, 1614 connect processing system 1600 to a transceiver for sending and receiving signaling over a telecommunications network. Fig.17 A block diagram of a transceiver 1700 for sending and receiving signaling through a telecommunications network is shown. The transceiver 1700 can be installed in a host device. As shown, the transceiver 1700 includes a network side interface 1702, a coupler 1704, a transmitter 1706, a receiver 1708, a signal processor 1710, and a device side interface 1712. The network side interface 1702 may include any component or component set for sending or receiving signaling through a wireless or wired telecommunications network. The coupler 1704 may include any component or component set for facilitating two-way communication through the network side interface 1702. The transmitter 1706 may include any component or component set (e.g., upconverter, power amplifier, etc.) for converting a baseband signal into a modulated carrier signal suitable for sending through the network side interface 1702. The receiver 1708 may include any component or component set (e.g., downconverter, low noise amplifier, etc.) for converting a carrier signal received through the network side interface 1702 into a baseband signal. The signal processor 1710 may include any component or collection of components for converting baseband signals to or from data signals suitable for communication via one or more device-side interfaces 1712. The one or more device-side interfaces 1712 may include any component or collection of components for communicating data signals between the signal processor 1710 and components within a host device (e.g., the processing system 1600, a local area network (LAN) port, etc.).
[0066] The transceiver 1700 can send and receive signaling through any type of communication medium. In some embodiments, the transceiver 1700 sends and receives signaling through a wireless medium. For example, the transceiver 1700 can be a wireless transceiver for communicating according to a wireless telecommunication protocol, such as a cellular protocol (e.g., long-term evolution (long-termevolution, LTE), etc.), a wireless local area network (wireless local area network, WLAN) protocol (e.g., Wi-Fi, etc.), or any other type of wireless protocol (e.g., Bluetooth, near field communication (near field communication, NFC), etc.). In these embodiments, the network side interface 1702 includes one or more antenna / radiation units. For example, the network side interface 1702 may include a single antenna, multiple independent antennas, or a multi-antenna array for multi-layer communication, such as single input multiple output (single input multiple output, SIMO), multiple input single output (multiple input single output, MISO), multiple input multiple output (multiple input multiple output, MIMO), etc. In other embodiments, the transceiver 1700 sends and receives signaling via a wired medium such as twisted pair cable, coaxial cable, optical fiber, etc. A particular processing system and / or transceiver may utilize all of the components shown, or only a subset of these components, and the level of integration may vary from device to device.
[0067] Although the present invention has been described with reference to illustrative embodiments, this description is not intended to be understood in a limiting sense. Those skilled in the art will appreciate various modifications and combinations of the illustrative embodiments and other embodiments of the present invention after reference to this description. Therefore, the appended claims are intended to cover any such modifications or embodiments.
Claims
1. A method for transmitting a sequence of media access control (MAC) service data units (MSDU) constituting a service flow from a first station (STA) to a second station (STA) via an Institute of Electrical and Electronics Engineers (IEEE) 802.11 network, characterized in that: The method comprises: The first STA sends a first MAC protocol data unit (MPDU) payload to the second STA via a first 802.11 link, and sends a second MPDU payload to the second STA via a second 802.11 link different from the first 802.11 link, a first MSDU segment in the MSDU sequence is encapsulated in the first MPDU payload, and a second MSDU segment in the MSDU sequence is encapsulated in the second MPDU payload, wherein a first MAC header appended to the first MPDU payload includes a transmitter (TX) and a receiver (RX) MAC address specific to the first 802.11 link and a first sequence control field identifying a position of the first MSDU segment within the MSDU sequence, wherein a second MAC header appended to the second MPDU payload includes TX and RX MAC addresses specific to the second 802.11 link and a second sequence control field identifying a location of the second MSDU segment within the MSDU sequence; Among them, the first sequence control field and the second sequence control field each include a corresponding fragment number; the first MAC header and the second MAC header include respective corresponding more fragment bits; the fragment number in the first sequence control field and the more fragment bit in the first MAC header together indicate whether the first MSDU fragment is an unfragmented MSDU; the fragment number in the second sequence control field and the more fragment bit in the second MAC header together indicate whether the second MSDU fragment is an unfragmented MSDU; the more fragment bit is used to indicate whether the MSDU segment is a fragment of a fragmented MSDU followed by subsequent MSDU fragments of the same MSDU.
2. The method according to claim 1, characterized in that The TX and RX MAC addresses in the first MAC header include a first TX MAC address that uniquely identifies the first STA on the first 802.11 link, and a first RX MAC address that uniquely identifies the second STA on the first 802.11 link, The TX and RX MAC addresses in the second MAC header include a second TX MAC address that is different from the first TX MAC address and uniquely identifies the first STA on the second 802.11 link, and a second RX MAC address that is different from the first RX MAC address and uniquely identifies the second STA on the second 802.11 link.
3. The method according to claim 2, characterized in that The first MPDU payload and the second MPDU payload are encrypted according to the same security key and the same pair of TX and RX MAC addresses.
4. The method according to claim 1, characterized in that The first sequence control field and the second sequence control field include different sequence numbers to indicate that the first MSDU segment and the second MSDU segment correspond to different MSDUs within the MSDU sequence.
5. The method according to claim 4, characterized in that The relative difference between the respective sequence numbers in the first sequence control field and the second sequence control field corresponds to the relative difference between the positions of different MSDUs within the MSDU sequence.
6. The method according to claim 1, characterized in that The first sequence control field and the second sequence control field include the same sequence number to indicate that the first MSDU segment and the second MSDU segment correspond to a common MSDU within the MSDU sequence.
7. The method according to claim 6, characterized in that The first sequence control field and the second sequence control field also include different fragment numbers to indicate that the first MSDU segment and the second MSDU segment are different fragments of the common MSDU within the MSDU sequence, wherein a "more fragments" bit in the first MAC header is set to 1 to indicate that the common MSDU consists of a sequence of MSDU fragments, the sequence of MSDU fragments including a first fragment in the first MSDU segment and at least a second fragment in the second MSDU segment.
8. The method according to claim 7, characterized in that The relative difference between the fragment numbers in the first sequence control field and the second sequence control field corresponds to a relative difference between positions of different MSDU fragments in the MSDU fragmentation sequence of the common MSDU.
9. The method according to claim 8, characterized in that The first sequence control field and the second sequence control field further include the same fragment number to indicate that the first MSDU segment and the second MSDU segment are the same MSDU fragment.
10. The method according to claim 9, characterized in that The retry field in the second MAC header indicates that the second MPDU payload is a retransmission of the first MPDU payload, such that a common MSDU or MSDU fragment is encapsulated within the first MPDU payload and the second MPDU payload.
11. The method according to claim 9, characterized in that After indicating a failure in transmission of the first MPDU payload, the second MPDU payload is transmitted.
12. The method according to claim 9, characterized in that After determining that the MPDU payload encapsulating the MSDU segments in the MSDU sequence needs to be repeatedly transmitted, the second MPDU payload is transmitted.
13. The method according to claim 1, characterized in that Also includes: The first station receives a block acknowledgement (BA) message from the second station via the first 802.11 link, the BA message comprising a first field and a second field, the first field indicating whether the first MSDU segment is successfully received, and the second field indicating whether the second MSDU segment is successfully received.
14. The method according to claim 13, characterized in that The first field and the second field are bits in a bitmap carried by the BA message.
15. The method according to claim 1, characterized in that The first 802.11 link and the second 802.11 link are established on different frequency channels.
16. A method for transmitting a sequence of media access control (MAC) service data units (MSDUs) constituting a traffic flow from a first station (STA) to a second station (STA) via an Institute of Electrical and Electronics Engineers (IEEE) 802.11 network, characterized in that: The method comprises: The second STA receives a first MAC protocol data unit (MPDU) payload from the first STA via a first 802.11 link, and receives a second MPDU payload from the first STA via a second 802.11 link different from the first 802.11 link, a first MSDU segment in a sequence of MSDUs being encapsulated in the first MPDU payload, and a second MSDU segment in the sequence of MSDUs being encapsulated in the second MPDU payload, wherein a first MAC header appended to the first MPDU payload includes a transmitter (TX) and a receiver (RX) MAC address specific to the first 802.11 link and a first sequence control field identifying a position of the first MSDU segment within the MSDU sequence, wherein a second MAC header appended to the second MPDU payload includes TX and RX MAC addresses specific to the second 802.11 link and a second sequence control field identifying a location of the second MSDU segment within the MSDU sequence; Among them, the first sequence control field and the second sequence control field each include a corresponding fragment number; the first MAC header and the second MAC header include respective corresponding more fragment bits; the fragment number in the first sequence control field and the more fragment bit in the first MAC header together indicate whether the first MSDU fragment is an unfragmented MSDU; the fragment number in the second sequence control field and the more fragment bit in the second MAC header together indicate whether the second MSDU fragment is an unfragmented MSDU; the more fragment bit is used to indicate whether the MSDU segment is a fragment of a fragmented MSDU followed by subsequent MSDU fragments of the same MSDU.
17. The method according to claim 16, characterized in that The TX and RX MAC addresses in the first MAC header include a first TX MAC address that uniquely identifies the first STA on the first 802.11 link, and a first RX MAC address that uniquely identifies the second STA on the first 802.11 link, The TX and RX MAC addresses in the second MAC header include a second TX MAC address that is different from the first TX MAC address and uniquely identifies the first STA on the second 802.11 link, and a second RX MAC address that is different from the first RX MAC address and uniquely identifies the second STA on the second 802.11 link.
18. The method according to claim 17, characterized in that Also includes: The second STA decrypts the first MPDU payload and the second MPDU payload based on the same security key and a common pair of TX and RX MAC addresses.
19. The method according to claim 18, characterized in that Also includes: The second STA replaces the second TX MAC address and the second RX MAC address in the second MAC header with the common TX and RX MAC address pair before decrypting the second MPDU payload based on the same security key and the common TX and RX MAC address pair.
20. The method according to claim 16, characterized in that The first sequence control field and the second sequence control field include different sequence numbers to indicate that the first MSDU segment and the second MSDU segment correspond to different MSDUs within the MSDU sequence.
21. The method according to claim 20, characterized in that The relative difference between the respective sequence numbers in the first sequence control field and the second sequence control field corresponds to the relative difference between the positions of different MSDUs within the MSDU sequence.
22. The method according to claim 20 or 21, characterized in that The method further comprises: The second STA obtains a received MSDU sequence from at least the first MPDU payload and the second MPDU payload; The received MSDU sequence is reordered at least according to the different sequence numbers to obtain a reordered MSDU sequence.
23. The method according to claim 16, characterized in that The first sequence control field and the second sequence control field include the same sequence number to indicate that the first MSDU segment and the second MSDU segment correspond to a common MSDU within the MSDU sequence.
24. The method according to claim 23, characterized in that The first sequence control field and the second sequence control field also include different fragment numbers to indicate that the first MSDU segment and the second MSDU segment are different fragments of the common MSDU within the MSDU sequence, wherein a "more fragments" bit in the first MAC header is set to 1 to indicate that the common MSDU consists of a sequence of MSDU fragments, the sequence of MSDU fragments including a first fragment in the first MSDU segment and at least a second fragment in the second MSDU segment.
25. The method according to claim 24, characterized in that The relative difference between the fragment numbers in the first sequence control field and the second sequence control field corresponds to a relative difference between positions of different MSDU fragments in the MSDU fragmentation sequence of the common MSDU.
26. The method according to claim 24, characterized in that Also includes: The second STA obtains a received MSDU fragment sequence from at least the first MPDU payload and the second MPDU payload; The common MSDU is assembled from the received sequence of MSDU fragments according to the fragment numbers included in the first sequence control field and the second sequence control field.
27. The method according to claim 23, characterized in that The first sequence control field and the second sequence control field further include the same fragment number to indicate that the first MSDU segment and the second MSDU segment are the same MSDU fragment.
28. The method according to claim 27, characterized in that The retry field in the second MAC header is set to 1 to indicate that the second MPDU payload is a retransmission of the first MPDU payload, so that a common MSDU or MSDU fragment is encapsulated within the first MPDU payload and the second MPDU payload.
29. The method according to claim 28, characterized in that The method further comprises: The second STA successfully obtains the common MSDU or MSDU fragment from the first MPDU payload; When it is determined that the retry field in the second MAC header is set to 1, the common MSDU or MSDU fragment is not obtained from the second MPDU payload, and the second MPDU payload is discarded.
30. The method according to claim 16, characterized in that Also includes: The second station sends a block acknowledgement (BA) message to the first station through the first 802.11 link, and the BA message includes a first field and a second field, the first field indicates whether the first MSDU segment is successfully received, and the second field indicates whether the second MSDU segment is successfully received.
31. The method according to claim 30, characterized in that The first field and the second field are bits in a bitmap carried by the BA message.
32. The method according to claim 16, characterized in that The first 802.11 link and the second 802.11 link are established on different frequency channels.
33. A first station (STA), characterized in that: For transmitting a media access control (MAC) service data unit (MSDU) constituting a service flow to a second station STA through an Institute of Electrical and Electronics Engineers (IEEE) 802.11 network, the first station comprising: processor; A computer-readable storage medium storing a program executed by the processor, the program including instructions for the following operations: sending a first MAC protocol data unit (MPDU) payload to the second STA via a first 802.11 link, and sending a second MPDU payload to the second STA via a second 802.11 link different from the first 802.11 link, wherein a first MSDU segment in the MSDU sequence is encapsulated in the first MPDU payload, and a second MSDU segment in the MSDU sequence is encapsulated in the second MPDU payload, wherein a first MAC header appended to the first MPDU payload includes a transmitter (TX) and a receiver (RX) MAC address specific to the first 802.11 link and a first sequence control field identifying a position of the first MSDU segment within the MSDU sequence, wherein a second MAC header appended to the second MPDU payload includes TX and RX MAC addresses specific to the second 802.11 link and a second sequence control field identifying a location of the second MSDU segment within the MSDU sequence; Among them, the first sequence control field and the second sequence control field each include a corresponding fragment number; the first MAC header and the second MAC header include respective corresponding more fragment bits; the fragment number in the first sequence control field and the more fragment bit in the first MAC header together indicate whether the first MSDU fragment is an unfragmented MSDU; the fragment number in the second sequence control field and the more fragment bit in the second MAC header together indicate whether the second MSDU fragment is an unfragmented MSDU; the more fragment bit is used to indicate whether the MSDU segment is a fragment of a fragmented MSDU followed by subsequent MSDU fragments of the same MSDU.
34. The first STA according to claim 33, characterized in that: The TX and RX MAC addresses in the first MAC header include a first TX MAC address that uniquely identifies the first STA on the first 802.11 link, and a first RX MAC address that uniquely identifies the second STA on the first 802.11 link, The TX and RX MAC addresses in the second MAC header include a second TX MAC address that is different from the first TX MAC address and uniquely identifies the first STA on the second 802.11 link, and a second RX MAC address that is different from the first RX MAC address and uniquely identifies the second STA on the second 802.11 link.
35. The first STA according to claim 34, characterized in that: The first MPDU payload and the second MPDU payload are encrypted according to a same security key and a same pair of TX and RX MAC addresses.
36. The first STA according to claim 33, characterized in that The first sequence control field and the second sequence control field include different sequence numbers to indicate that the first MSDU segment and the second MSDU segment correspond to different MSDUs within the MSDU sequence.
37. The first STA according to claim 36, characterized in that The relative difference between the respective sequence numbers in the first sequence control field and the second sequence control field corresponds to the relative difference between the positions of different MSDUs within the MSDU sequence.
38. The first STA according to claim 33, characterized in that: The first sequence control field and the second sequence control field include the same sequence number to indicate that the first MSDU segment and the second MSDU segment correspond to a common MSDU within the MSDU sequence.
39. The first STA according to claim 38, characterized in that The first sequence control field and the second sequence control field also include different fragment numbers to indicate that the first MSDU segment and the second MSDU segment are different fragments of the common MSDU within the MSDU sequence, wherein a "more fragments" bit in the first MAC header is set to 1 to indicate that the common MSDU consists of a sequence of MSDU fragments, the sequence of MSDU fragments including a first fragment in the first MSDU segment and at least a second fragment in the second MSDU segment.
40. The first STA according to claim 39, characterized in that: The relative difference between the fragment numbers in the first sequence control field and the second sequence control field corresponds to a relative difference between positions of different MSDU fragments in the MSDU fragmentation sequence of the common MSDU.
41. The first STA according to claim 40, characterized in that The first sequence control field and the second sequence control field further include the same fragment number to indicate that the first MSDU segment and the second MSDU segment are the same MSDU fragment.
42. The first STA according to claim 41, characterized in that The retry field in the second MAC header indicates that the second MPDU payload is a retransmission of the first MPDU payload, such that a common MSDU or MSDU fragment is encapsulated within the first MPDU payload and the second MPDU payload.
43. The first STA according to claim 41, characterized in that After indicating a failure in transmission of the first MPDU payload, the second MPDU payload is transmitted.
44. The first STA according to claim 41, characterized in that After determining that the MPDU payload encapsulating the MSDU segments in the MSDU sequence needs to be repeatedly transmitted, the second MPDU payload is transmitted.
45. The first STA according to claim 33, characterized in that The program also includes instructions for: A block acknowledgement (BA) message is received from the second station via the first 802.11 link, the BA message comprising a first field and a second field, the first field indicating whether the first MSDU segment is successfully received, and the second field indicating whether the second MSDU segment is successfully received.
46. The first STA according to claim 45, characterized in that The first field and the second field are bits in a bitmap carried by the BA message.
47. The first STA according to claim 33, characterized in that The first 802.11 link and the second 802.11 link are established on different frequency channels.
48. A second station (STA), characterized in that: For receiving a media access control (MAC) service data unit (MSDU) constituting a service flow from a first STA through an Institute of Electrical and Electronics Engineers (IEEE) 802.11 network, the first station comprising: processor; A computer-readable storage medium storing a program executed by the processor, the program including instructions for the following operations: receiving a first MAC protocol data unit (MPDU) payload from the first STA via a first 802.11 link, and receiving a second MPDU payload from the first STA via a second 802.11 link different from the first 802.11 link, a first MSDU segment in a sequence of MSDUs being encapsulated in the first MPDU payload, and a second MSDU segment in the sequence of MSDUs being encapsulated in the second MPDU payload, wherein a first MAC header appended to the first MPDU payload includes a transmitter (TX) and a receiver (RX) MAC address specific to the first 802.11 link and a first sequence control field identifying a position of the first MSDU segment within the MSDU sequence, wherein a second MAC header appended to the second MPDU payload includes TX and RX MAC addresses specific to the second 802.11 link and a second sequence control field identifying a location of the second MSDU segment within the MSDU sequence; Among them, the first sequence control field and the second sequence control field each include a corresponding fragment number; the first MAC header and the second MAC header include respective corresponding more fragment bits; the fragment number in the first sequence control field and the more fragment bit in the first MAC header together indicate whether the first MSDU fragment is an unfragmented MSDU; the fragment number in the second sequence control field and the more fragment bit in the second MAC header together indicate whether the second MSDU fragment is an unfragmented MSDU; the more fragment bit is used to indicate whether the MSDU segment is a fragment of a fragmented MSDU followed by subsequent MSDU fragments of the same MSDU.
49. The second STA according to claim 48, characterized in that The TX and RX MAC addresses in the first MAC header include a first TX MAC address that uniquely identifies the first STA on the first 802.11 link, and a first RX MAC address that uniquely identifies the second STA on the first 802.11 link, The TX and RX MAC addresses in the second MAC header include a second TX MAC address that is different from the first TX MAC address and uniquely identifies the first STA on the second 802.11 link, and a second RX MAC address that is different from the first RX MAC address and uniquely identifies the second STA on the second 802.11 link.
50. The second STA according to claim 49, characterized in that: The program also includes instructions for: The first MPDU payload and the second MPDU payload are decrypted based on the same security key and a common TX and RX MAC address pair.
51. The second STA according to claim 50, characterized in that The program also includes instructions for: Prior to decrypting the second MPDU payload based on the same security key and the common TX and RX MAC address pair, the second TX MAC address and the second RX MAC address in the second MAC header are replaced with the common TX and RX MAC address pair.
52. The second STA according to claim 48, characterized in that The first sequence control field and the second sequence control field include different sequence numbers to indicate that the first MSDU segment and the second MSDU segment correspond to different MSDUs within the MSDU sequence.
53. The second STA according to claim 52, characterized in that: The relative difference between the respective sequence numbers in the first sequence control field and the second sequence control field corresponds to the relative difference between the positions of different MSDUs within the MSDU sequence.
54. The second STA according to claim 52 or 53, characterized in that: The program also includes instructions for: obtaining a received MSDU sequence from at least the first MPDU payload and the second MPDU payload; The received MSDU sequence is reordered at least according to the different sequence numbers to obtain a reordered MSDU sequence.
55. The second STA according to claim 48, characterized in that The first sequence control field and the second sequence control field include the same sequence number to indicate that the first MSDU segment and the second MSDU segment correspond to a common MSDU within the MSDU sequence.
56. The second STA according to claim 55, characterized in that The first sequence control field and the second sequence control field also include different fragment numbers to indicate that the first MSDU segment and the second MSDU segment are different fragments of the common MSDU within the MSDU sequence, wherein a "more fragments" bit in the first MAC header is set to 1 to indicate that the common MSDU consists of a sequence of MSDU fragments, the sequence of MSDU fragments including a first fragment in the first MSDU segment and at least a second fragment in the second MSDU segment.
57. The second STA according to claim 56, characterized in that The relative difference between the fragment numbers in the first sequence control field and the second sequence control field corresponds to a relative difference between positions of different MSDU fragments in the MSDU fragmentation sequence of the common MSDU.
58. The second STA according to claim 56, characterized in that: The program also includes instructions for: obtaining a received MSDU fragment sequence from at least the first MPDU payload and the second MPDU payload; The common MSDU is assembled from the received sequence of MSDU fragments according to the fragment numbers included in the first sequence control field and the second sequence control field.
59. The second STA according to claim 55, characterized in that The first sequence control field and the second sequence control field further include the same fragment number to indicate that the first MSDU segment and the second MSDU segment are the same MSDU fragment.
60. The second STA according to claim 59, characterized in that: The retry field in the second MAC header is set to 1 to indicate that the second MPDU payload is a retransmission of the first MPDU payload, so that a common MSDU or MSDU fragment is encapsulated within the first MPDU payload and the second MPDU payload.
61. The second STA according to claim 60, characterized in that: The program also includes instructions for: successfully obtaining the common MSDU or MSDU fragment from the first MPDU payload; When it is determined that the retry field in the second MAC header is set to 1, the common MSDU or MSDU fragment is not obtained from the second MPDU payload, and the second MPDU payload is discarded.
62. The second STA according to claim 48, characterized in that The program also includes instructions for: A block acknowledgement (BA) message is sent to the first station via the first 802.11 link, the BA message comprising a first field and a second field, the first field indicating whether the first MSDU segment is successfully received, and the second field indicating whether the second MSDU segment is successfully received.
63. The second STA according to claim 62, characterized in that: The first field and the second field are bits in a bitmap carried by the BA message.
64. The second STA according to claim 48, characterized in that The first 802.11 link and the second 802.11 link are established on different frequency channels.
Citation Information
Patent Citations
Access point (AP), station (STA) and method for link aggregation
US20170311204A1
Packet based link aggregation architectures
US20190150214A1