SYSTEMS AND METHODS FOR SEGMENTATION AND REASSEMBLY OF DATA FRAMES IN 802.11 WIRELESS LOCAL AREA NETWORKS
Embodiments described herein provide a method for fragmenting and reassembling data frames on a medium access control (MAC) layer in a wireless local area network. A datagram is received from an application running on a first network device, for transmission over a wireless communication link in the wireless local area network. A negotiation request is initiated with a second network device for determining whether both the first network device and the second network device have enhanced directional multi-gigabit capability (EDMG) for data segmentation and reassembly. When both devices have EDMG capability and the size of the datagram exceeds the maximum size defined by the wireless local area network transmission protocol, the datagram is segmented into a plurality of transmission data units on the MAC layer.
This application is a continuation of co-pending, U.S. patent application Ser. No. 15/916,940, filed on Mar. 9, 2018, which claims the benefit under 35 U.S.C. § 119(e) of U.S. Provisional Patent Application No. 62/469,345, filed Mar. 9, 2017, which is hereby incorporated by reference herein in its entirety.
FIELD OF USEThis disclosure relates to data transmission protocols in 802.11 wireless networks, and specifically, to systems and methods for segmentation and reassembly of data frames in 802.11 wireless local area networks (WLANs).
BACKGROUND OF THE DISCLOSUREThe background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the inventors hereof, to the extent the work is described in this background section, as well as aspects of the description that does not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted to be prior art against the present disclosure.
Data frames transmitted in an 802.11 network usually has a significant amount of overhead, including radio level headers, Media Access Control (MAC) frame fields, interframe spacing information, acknowledgement information of transmitted frames, and/or the like. The transmission of the overhead information sometimes consumes a significant portion of the channel bandwidth, and thus reduces transmission efficiency of the payload data. MAC service data unit (MSDU) aggregation is thus used to group several data frames into one large frame for transmission, i.e., an A-MSDU, such that the several grouped data frames can share management information in the overhead for the large frame. In this way, the ratio of payload data to the total volume of data transmitted is improved, allowing higher throughput.
An MSDU, however, often has a limited size. For example, in 802.11ad, the maximum MSDU size is 7920 bytes. When an application generates a large datagram, e.g., sometimes can be much larger than 7920 bytes, the datagram is usually required to be segmented in order to fit into an MSDU to be transmitted over an 802.11ad link. However, significant computational overhead may be inflicted to the host processor when the host processor segments the large datagram on the application layer.
SUMMARYEmbodiments described herein provide a method for fragmenting and reassembling data frames on a medium access control (MAC) layer in a wireless local area network. A datagram is received from an application running on a first network device, for transmission over a wireless communication link in the wireless local area network. A negotiation request is initiated, at the first network device, with a second network device for determining whether both the first network device and the second network device have enhanced directional multi-gigabit capability (EDMG) for data segmentation and reassembly. A size of the datagram is determined as to whether the size of the datagram exceeds a maximum size defined by a wireless local area network transmission protocol. When the size of the datagram exceeds the maximum size defined by the wireless local area network transmission protocol and both the first network device and the second network device have EDMG capability for data segmentation and reassembly, the datagram is segmented into a plurality of transmission data units on the MAC layer, and identifying information is assigned to a respective data field in each transmission data unit from the plurality of transmission data units. The plurality of transmission data units are transmitted to the second network device transmitting, via the wireless communication link in the wireless local area network.
In some embodiments, the datagram is segmented into fragmented data units. Each fragmented data unit has a size smaller than the maximum size defined by a wireless local area network transmission protocol.
In some embodiments, for each transmission data unit that belongs to the plurality of transmission data units segmented from the same datagram, the same sequence number is assigned to a first portion of a sequence control field in the respective transmission data unit, and a unique fragment number is assigned to a second portion of the sequence control field in the respective transmission data unit. The unique fragment number represents a respective index for the respective transmission data unit in the plurality of transmission data units segmented from the same datagram. A binary value is assigned, which indicates whether there are more transmission data units segmented from the same datagram following the respective transmission data unit to a third portion of the sequence control field in the respective transmission data unit.
In some embodiments, a legacy sequence control field defined in a legacy wireless local area network transmission protocol is reused as the sequence control field. The first three bits of the sequence control field are designated for the unique fragment number. The fourth bit of the sequence control field is designated for the binary value that indicates whether there are more transmission data units segmented from the same datagram following the respective transmission data unit. The remaining 12 bits of the sequence control field are designated for the sequence number. The transmission data units with a same sequence number belong to the same datagram.
In some embodiments, a first transmission data unit is received, at the first network device. A first data bit is extracted, which indicates whether there are more transmission data units segmented from a same datagram following the first transmission data unit and a first fragment number from a first sequence control field of the first transmission data unit. When the data bit equals one, a subsequent transmission data unit that belongs to the same datagram with the first transmission data unit is received. When the data bit equals zero, any subsequent transmission data unit is determined to belong to a different datagram. The first fragment number is determined as to whether the first fragment number equals zero. When the first fragment number is non-zero, a second data bit is extracted, which indicates whether there are more transmission data units segmented from a same datagram following the preceding transmission data unit from a preceding transmission data unit. When the second data bit equals one, the transmission data unit is determined to be an EDMG fragmentation segment. When the second data bit equals zero, the transmission data unit is determined to be a legacy fragmentation segment. When the first fragment number is zero, the transmission data unit is determined as not having been segmented. A sequence of previously received transmission data units including the first transmission data unit are reassembled to form one or more datagrams based on segmentation information relating to the transmission data units.
In some embodiments, for each transmission data unit that belong to the plurality of transmission data units segmented from the same datagram, the same index number is assigned to a first portion of a sequence control field in the respective transmission data unit. A continuous sequence number is assigned to a second portion of the sequence control field in the respective transmission data unit. A binary value is assigned, which indicates whether there are more transmission data units segmented from the same datagram following the respective transmission data unit to a third portion of the sequence control field in the respective transmission data unit.
In some embodiments, a legacy sequence control field used in a legacy wireless local area network transmission protocol is re-defined as the sequence control field. The first three bits of the sequence control field are designated for the index number. The fourth bit of the sequence control field is designated for the binary value that indicates whether there are more transmission data units segmented from the same datagram following the respective transmission data unit. The remaining 12 bits of the sequence control field are designated for the continuous sequence number. The transmission data units with the same index number and continuous sequence numbers belong to the same datagram.
In some embodiments, a first transmission data unit is received, at the first network device. A first data bit is extracted, which indicates whether there are more transmission data units segmented from a same datagram following the first transmission data unit from a first sequence control field of the first transmission data unit. When the first data bit equals one, a second transmission data unit is received subsequent to the first transmission data unit. When the second data bit equals zero, a set of previously received transmission data units prior to and including the first transmission data unit are retrieved. A respective index number and a respective sequence number are extracted from a respective sequence control field of each of the set of previously received transmission data units.
In some embodiments, a first index number and a first sequence number are extracted from the from the first sequence control field of the first transmission data unit. A second index number and a second sequence number are extracted from a second sequence control field of the second transmission data unit. The index numbers of two consecutive transmission units are determined as to whether the index numbers are the same. When the index numbers of two consecutive transmission units are the same, it is then determined whether sequence numbers of the two consecutive transmission units are continuous. When the sequence numbers of the two consecutive transmission units are continuous, it is further determined that the two consecutive transmission units belong to the same data gram, and the two consecutive transmission units are reassembled based on respective sequence numbers to recover the datagram.
In some embodiments, when the index numbers of two consecutive transmission units are the same but the sequence numbers of the two consecutive transmission units are non-continuous, the two consecutive transmission units are determined as to whether the units belong to different datagrams.
Embodiments described herein further provide a network device for fragmenting and reassembling data frames on a MAC layer in a wireless local area network. The device includes a buffer, a transmitter and processing circuitry. The buffer is configured to receive, from an application run by the processing circuitry, a datagram for transmission over a wireless communication link in the wireless local area network. The processing circuitry configured to initiate a negotiation request with a second network device for determining whether both the first network device and the second network device have enhanced directional multi-gigabit (EDMG) capability for data segmentation and reassembly, and determine whether a size of the datagram exceeds a maximum size defined by a wireless local area network transmission protocol. When the size of the datagram exceeds the maximum size defined by the wireless local area network transmission protocol, and both the first network device and the second network device have EDMG capability for data segmentation and reassembly, the processing circuitry is configured to segment the datagram into a plurality of transmission data units on the MAC layer, and assign identifying information to a respective data field in each transmission data unit from the plurality of transmission data units. The transceiver is configured to transmit, via the wireless communication link in the wireless local area network, the plurality of transmission data units to the second network device.
Further features of the disclosure, its nature and various advantages will become apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings, in which like reference characters refer to like parts throughout, and in which:
This disclosure describes methods and systems for segmentation and reassembly of data frames in 802.11 wireless local area networks (WLANs).
In 802.11 WLANs, as the maximum size of an MSDU is usually limited, large application datagrams cannot fit into a single MSDU, and often require to be segmented in order to form an MSDU for transmission. Thus, the large datagrams are usually fragmented into multiple smaller datagrams for transmission as MSDUs. The MSDUs containing the fragmented datagrams are then reassembled at the destination to recover the original large datagram. Conventionally, the fragmentation and reassembly of the datagrams are conducted at an upper layer, e.g., the IP layer or even the application layer implemented by the host software. For example, an 802.11 wireless network device, such as but not limited to a laptop computer, a Smartphone, a tablet computer, and/or the like, may fragment a large multimedia datagram into smaller pieces of multimedia data, and send the smaller pieces to another 802.11 wireless network device, which may in turn assemble the smaller pieces of multimedia data through the application layer to reconstruct the original multimedia datagram. Performing the fragmentation and reassembly of datagrams at the host processor may require a significant amount of processing efforts and hardware resources. Embodiments described herein provide various segmentation solutions of large datagrams at the MAC layer, instead of at an upper layer. By conducting segmentation at the MAC layer, no signification computational tasks are incurred to the host processor running the application that originates the datagrams, and thus processing cost and hardware resource consumption can be reduced.
To reduce processing overhead at the application layer, the segmentation and reassembly of the segmented MSDUs 106a-n or 107a-n are performed at the MAC layer. In order to perform MSDU segmentation at the MAC layer, the segmentation initiator and responder, e.g., devices 101 and 102, may negotiate the MSDU segmentation capability before commencing data transmission, e.g., whether both devices 101 and 102 are 802.11ay enhanced directional multi-gigabit (EDMG) stations that support MSDU segmentation and reassembly. For example, a data bit in EDMG Capability Element from device 101 may indicate whether such capability is implemented.
After the negotiation, devices 101 and 102 may maintain a data tuple <Source MAC address, Destination MAC address, TID> in each segmented MSDU, wherein TID is the traffic identifier indicating which type of Quality of Service (QoS) the data traffic requires. In some implementations, the negotiation process may be performed during a block acknowledgement session. For example, device 101, the initiator may send a transmission request including one data bit indicating whether MSDU segmentation and reassembly is supported, and the responder, device 102 may in turn send a block acknowledgement message indicating whether EDMG is supported at device 102.
At 206, when the datagram exceeds the maximum size for the transmission data unit, process 200 proceeds to 212, to determine whether both the first network device (the initiator) and the second network device (the responder) have EDMG MSDU segmentation and reassembly capability (as described at 204). When both the first network device (the initiator) and the second network device (the responder) have EDMG MSDU segmentation and reassembly capability, process 200 proceeds to 214, where the initiator is configured to segment the datagram into a plurality of transmission data units on the MAC layer. For example, each transmission data unit is a segmented MSDU having a size less than 7920 bytes. At 216, the initiator is configured to assign a fragment number to a respective sequence control field in each transmission data unit from the plurality of transmission data units, and then at 220, the initiator is configured to transmit the plurality of transmission data units to the second network device (the responder). Further detail relating to the segmentation on the MAC layer is discussed in
At 212, when not both of the first network device (the initiator) and the second network device (the responder) have EDMG MSDU segmentation and reassembly capability, process 200 may optionally proceed to 218. For example, at 218, the initiator is configured to optionally segment the datagram into a plurality of transmission data units at the upper layer, e.g., by the application running on the initiator device, and then send the transmission data units to the second network device at 220.
At 310, the initiator is configured to assign a binary value to a third portion of the sequence control field in the respective transmission data unit, and the binary value indicates whether there are more transmission data units segmented from the same datagram following the respective transmission data unit. For example, one data bit in the fragment number portion in the sequence control field is designated to represent that the subsequent segmented MSDU(s) belongs to the same larger MSDU with the current segmented MSDU when the data bit equals one. Or the subsequent segmented MSDU does not belong to the same larger MSDU when the data bit equals zero, meaning the current segmented MSDU is the last fragmented segmented MSDU in the larger MSDU.
The initiator is configured to repeat 306-310 for each transmission data unit, and process 300 continues with 304 to repeat 306-310 for more transmission data units.
At 406, when the data bit equals zero, process 400 continues to 410, where the responder is configured to determine that any subsequent transmission data unit belongs to a different datagram, e.g., the current transmission data unit (segmented MSDU) is the last segmented MSDU in the fragmented datagram. At 412, the responder is configured to retrieve the three-bit fragment number of the transmission data unit, and when the fragmentation number is non-zero, process 400 proceeds to 414, where the responder is configured to extract another data bit of the sequence control field from a preceding transmission data unit, and the data bit indicates whether any subsequent transmission data unit after the preceding transmission data unit belongs to the same datagram. At 416, when the second data bit equals zero, the responder is configured to determine that the transmission data unit is an EDMG fragmentation segment. At 416, when the second data bit equals one, the responder is configured to determine that the transmission data unit is a legacy fragmentation segment. At 424, the responder is then configured to reassemble received transmission data units to form one or more datagrams based on segmentation information relating to the transmission data units, e.g., based on whether the transmission units are EDMG segments or legacy segments. For example, when the transmission units are EDMG segments, the responder is configured to extract the fragment numbers of each transmission unit and assemble the transmission units based on the fragment numbers.
At 412, when the fragment number is zero, process 400 continues with 422, where the responder is configured to determine that the transmission data unit has not been segmented, e.g., the received segmented MSDU is an independent frame that does not need to be reassembled with other segmented MSDUs.
Under the fragmentation process 500, legacy segmentation is not allowed, and the tuple information <Source MAC address, Destination MAC address, TID> and one data bit designated for indicating whether subsequent segmented MSDU belong to the same datagram with the current segmented MSDU are sometimes used to provide information for fragmentation on the MAC layer. Process 500 then repeats 506-510 to process each segmented MSDU.
At 606, when the data bit equals zero, the responder is configured to retrieve a set of previously received transmission data unit prior to and including the first transmission data unit for de-fragmentation at 610, and all the set of previously received transmission data units have the same MSDU index number. At 612, the responder is configured to extract a respective sequence number from a respective sequence control field of each of the set of previously received transmission data units, and then reassemble the set of previously received transmission data units into a datagram based on the respective sequence numbers.
At diagram 800 in
Various embodiments discussed in conjunction with
While various embodiments of the present disclosure have been shown and described herein, such embodiments are provided by way of example only. Numerous variations, changes, and substitutions relating to embodiments described herein are applicable without departing from the disclosure. It is noted that various alternatives to the embodiments of the disclosure described herein may be employed in practicing the disclosure. It is intended that the following claims define the scope of the disclosure and that methods and structures within the scope of these claims and their equivalents be covered thereby.
While operations are depicted in the drawings in a particular order, this is not to be construed as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed to achieve the desirable results.
The subject matter of this specification has been described in terms of particular aspects, but other aspects can be implemented and are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results. As one example, the process depicted in
Claims
1. A method for processing data frames on a medium access control (MAC) layer in a wireless local area network, the method comprising:
- receiving, from an application running on a first network device, a datagram for transmission over a wireless communication link in the wireless local area network;
- generating a segmented datagram by segmenting the datagram into a plurality of transmission data units on the MAC layer, wherein each of the transmission data units has a size smaller than a maximum size defined by a legacy transmission protocol of the wireless local area network;
- determining a unique sequence number for the segmented datagram, with different sequence numbers from the unique sequence number belong to other datagrams;
- for each transmission data unit of the plurality of transmission data units, assigning identifying information to a sequence control field that is defined in the legacy transmission protocol, and wherein assigning the identifying information includes assigning, to a first portion of the sequence control field, a unique fragment number for a selected transmission data unit of the plurality of transmission data units, where different unique fragment numbers from the unique fragment number are assigned to other transmission data units of the plurality of transmission data units, and wherein the unique fragment number represents a respective index for the selected transmission data unit in the plurality of transmission data units, and wherein the first portion includes one or more first bits of the sequence control field, when the selected transmission data unit is not a last transmission data unit to be transmitted, assigning a first binary value to a second portion of the sequence control field that indicates that there are more transmission data units from the segmented datagram to be transmitted following the selected transmission data unit, wherein the second portion of the sequence control field includes a second bit of the sequence control field, and assigning the unique sequence number for the segmented datagram to a set of remaining bits of the sequence control field; and
- after assigning the identifying information, transmitting, via the wireless communication link in the wireless local area network, the plurality of transmission data units to a second network device.
2. The method of claim 1, wherein:
- the first portion includes the first three bits of the sequence control field;
- the second portion includes a fourth bit of the sequence control field; and
- the set of remaining bits includes a remaining 12 bits of the sequence control field.
3. The method of claim 1, wherein the step of assigning the identifying information further comprises:
- when the selected transmission data unit is the last transmission data unit to be transmitted, assigning a second binary value to the second portion of the sequence control field that indicates that there are no more transmission data units from the segmented datagram to be transmitted following the selected transmission data unit.
4. The method of claim 1, further comprising:
- initiating, at the first network device, a negotiation request with the second network device for determining whether both the first network device and the second network device have enhanced directional multi-gigabit capability (EDMG) for data segmentation and reassembly; and
- performing the segmenting, assigning, and transmitting steps when both the first network device and the second network device have the EDMG for data segmentation and reassembly.
5. A method for processing data frames on a medium access control (MAC) layer in a wireless local area network, the method comprising:
- receiving, at a first network device, a plurality of transmission data units that were segmented, at a second network device, from a first datagram;
- for each of the plurality of transmission data units received at the first network device, extracting identifying information by extracting, from a next selected transmission data unit of the plurality of transmission data units, a sequence number from a first portion of a sequence control field defined in a legacy transmission protocol of the wireless local area network, extracting, from the next selected transmission data unit, a first data bit from a second portion of the sequence control field, wherein the first data bit indicates whether or not there are more of the plurality of transmission data units that will follow the selected transmission data unit, and extracting, from the selected transmission data unit, a unique fragment number from a third portion of the sequence control field, wherein the unique fragment number represents a respective index for the selected transmission data unit in the plurality of transmission data units; and
- when the first data bit extracted from a last transmission data unit of the plurality of transmission data units indicates that there are no more of the plurality of transmission data units that will follow, reassembling the first datagram from all of the plurality of transmission data units that included the sequence number.
6. The method of claim 5, further comprising the steps, before receiving the plurality of first data units, of:
- receiving, from the second network device, a negotiation request for determining whether both the first network device and the second network device have enhanced directional multi-gigabit capability (EDMG) for data segmentation and reassembly; and
- performing the receiving, extracting, and reassembling steps when both the first network device and the second network device have the EDMG for data segmentation and reassembly.
7. A network device for processing data frames on a medium access control (MAC) layer in a wireless local area network, the device comprising:
- a buffer configured to receive, from an application run by a processing circuitry, a datagram for transmission over a wireless communication link in the wireless local area network;
- the processing circuitry configured to: generate a segmented datagram by segmenting the datagram into a plurality of transmission data units on the MAC layer, wherein each of the transmission data units has a size smaller than a maximum size defined by a legacy transmission protocol of the wireless local area network; determine a unique sequence number for the segmented datagram, with different sequence numbers from the unique sequence number belong to other datagrams; for each transmission data unit of the plurality of transmission data units, assign identifying information to a sequence control field that is defined in the legacy transmission protocol, and wherein assigning the identifying information includes assigning, to a first portion of the sequence control field, a unique fragment number for a selected transmission data unit of the plurality of transmission data units, where different unique fragment numbers from the unique fragment number are assigned to other transmission data units of the plurality of transmission data units, and wherein the unique fragment number represents a respective index for the selected transmission data unit in the plurality of transmission data units, and wherein the first portion includes one or more first bits of the sequence control field, when the selected transmission data unit is not a last transmission data unit to be transmitted, assigning a first binary value to a second portion of the sequence control field that indicates that there are more transmission data units from the segmented datagram to be transmitted following the selected transmission data unit, wherein the second portion of the sequence control field includes a second bit of the sequence control field, and assigning the unique sequence number for the segmented datagram to a set of remaining bits of the sequence control field; and
- a transceiver configured to: transmit, via the wireless communication link in the wireless local area network, the plurality of transmission data units to a second network device.
8. The network device of claim 7, wherein the processing circuitry is further configured to:
- negotiate with the second network device to determine whether both the first network device and the second network device have enhanced directional multi-gigabit (EDMG) capability for data segmentation and reassembly.
9. The network device of claim 7, wherein:
- the first portion includes the first three bits of the sequence control field;
- the second portion includes a fourth bit of the sequence control field; and
- the set of remaining bits includes a remaining 12 bits of the sequence control field.
10. A network device for processing data frames on a medium access control (MAC) layer in a wireless local area network, the device comprising:
- a transceiver configured to receive, via a wireless communication link in the wireless local area network, a plurality of transmission data units that were segmented, at a second network device, from a first datagram;
- processing circuitry configured to:
- for each of the plurality of transmission data units, extract identifying information by extracting, from a next selected transmission data unit of the plurality of transmission data units, a sequence number from a first portion of a sequence control field defined in a legacy transmission protocol of the wireless local area network, extracting, from the next selected transmission data unit, a first data bit from a second portion of the sequence control field, wherein the first data bit indicates whether or not there are more of the plurality of transmission data units that will follow the selected transmission data unit, and extracting, from the selected transmission data unit, a unique fragment number from a third portion of the sequence control field, wherein the unique fragment number represents a respective index for the selected transmission data unit in the plurality of transmission data units; and when the first data bit extracted from a last transmission data unit of the plurality of transmission data units indicates that there are no more of the plurality of transmission data units that will follow, reassemble the first datagram from all of the plurality of transmission data units that included the sequence number.
11. The network device of claim 10, wherein the processing circuitry is further configured to:
- negotiate with the second network device to determine whether both the first network device and the second network device have enhanced directional multi-gigabit (EDMG) capability for data segmentation and reassembly.
12. The network device of claim 10, wherein:
- the first portion includes the first three bits of the sequence control field;
- the second portion includes a fourth bit of the sequence control field; and
- the set of remaining bits includes a remaining 12 bits of the sequence control field.
Type: Application
Filed: Feb 17, 2020
Publication Date: Jun 11, 2020
Inventors: Jinjing Jiang (San Jose, CA), Liwen Chu (San Ramon, CA), Hongyuan Zhang (Fremont, CA), Huiling Lou (Sunnyvale, CA)
Application Number: 16/792,668