Method and apparatus to transmit and/or receive data via wireless network and wireless device

A method of and an apparatus to improve stability and efficiency during data transmission performed over a wireless network includes transmitting a first data frame containing a plurality of data units to a receiving device, receiving from the receiving device a receipt of confirmation for each data unit received by the receiving device, and transmitting a second data frame containing at least one of the plurality of data units that have not been transmitted or received, according to the receipt of confirmation for each data unit received by the receiving device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority from Korean Patent Application Nos. 10-2005-0074416 and 10-2005-0105004 filed on Aug. 12, 2005 and Nov. 3, 2005, respectively, the disclosures of which are incorporated herein in their entirety by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present general inventive concept relates to a wireless communication system, and more particularly, to a method and apparatus to improve stability and efficiency of data transmission over a wireless network.

2. Description of the Related Art

Recently, as wireless communication networks have been widely used, and a large-volume of multimedia data is transmitted through the wireless communication networks, there is a need to develop a better and more efficient method of transmitting data over the wireless communication networks. Due to existing characteristics of conventional wireless networks, which are accessed a large number of devices, operating characteristics of the convention wireless networks deteriorate with increased data traffic, which often results in data collision or loss during transmission. In order to prevent the data collision or loss and to receive/transmit data reliably, a distributed coordination function (DCF) on a competitive basis and a point coordination function (PCF) on a non-competitive basis have been employed in wireless local area networks (LAN). In wireless personal area networks (PAN), channel time allocation has been employed.

Although these methods employed in the wireless networks reduce the data collision to some degree and facilitate stable data transmission, there is still a high chance of the data collision during transmission, compared to wired networks, due to various factors, such as multi-path fading and interference that affect stable data transmission. In addition, as the number of wireless devices that access a wireless network increases, the data collision and loss increases.

The data collision and loss result in re-transmission of the lost data which adversely affects the throughput of a wireless network. In particular, for A/V data which requires a high quality of service (QoS), it is critical to have a sufficient bandwidth to minimize the number of re-transmissions.

FIG. 1is a view illustrating a method of transmitting data over a conventional wireless network. When a device in the wireless network, that is, a transmitting device or source device, sends a data frame to another device in the wireless network, that is, a receiving device or destination device, the transmitting device generates a media access control (MAC) layer (MAC header (MAC HDR) or a physical (PHY) layer header (PHY HDR), appends the generated MAC HDR and PHY HDR to the data to form the data frame, and transmits the data frame.

The receiving device that receives the data is able to check for errors via a frame check sequence (FCS), and sends the received data to an upper layer if no error has been found.

An IEEE 802.11 protocol assures a short inter-frame space (SIFS), i.e., a minimum space between frames. The SIFS includes a delay in the PHY layer, and a time required to process the frame and a turnaround time of a receiving/transmitting device (RX/TX) in the MAC layer. That is, the SIFS is a time indicated by the protocol to receive a single frame from a single device, process the frame, and generate and send a response frame. Therefore, if the transmitting device transmits numerous frames to the receiving device, time is needed to transmit the frames as well as to transmit corresponding SIFS and response frames.

FIG. 2is a view illustrating a conventional method of handling errors generated during transmission between wireless devices. Referring to FIG.2,the conventional method includes handling a transmission failure between a transmitting (source) device and a receiving (destination) device in a wireless network environment, when the transmission failure has been caused by various reasons or when an error occurs in the transmitted frame.

In the transmitting device, a counter “acknowledge (ACK) Timeout ” starts countdown from the moment of transmitting the frame. When the transmitting device fails to receive an ACK frame (hereinafter, referred to as “ACK”) from the receiving device when the counter reaches zero, the transmitting device determines a transmission failure and re-transmits the frame. The frames that have not been transmitted or the frames with errors are illustrated as dotted lines inFIG. 2.

The number of re-transmissions depends on a value of “retry limit” set in the transmitting device. If the transmitting device fails to re-transmits by the retry limit, the transmitting device skips the frame. As illustrated inFIG. 2, the frame with data2is skipped. The receiving device checks out the received frame to find MAC FCS and if no error is found, the receiving device sends the data appended to the received frame to an upper layer and sends a response frame to the received frame, that is, an ACK, to the transmitting device. If an error is found, the receiving device stop forming and sending the corresponding frame.

As illustrated inFIG. 3, the transmitting device regards all times except for a time required to transmit a frame, as a wasted time. the wasted time includes a time between frames being transmitted and a time required for a PHY header (hereinafter, referred to as “header overhead”) and a MAC header to be appended to each frame, which causes inefficiency of an entire wireless network. When a 188-byte MPEG-2 transport stream is transmitted, a relatively large header overhead is required due to a high frequency of transmission. This is because an IEEE 802.11 standard requires an ACK for each frame being transmitted.

According to the standard, a size of the MAC header appended to the data frame is 30 bytes, and the time required for the PHY header is 20 μs. Therefore, the header overhead becomes more significant and larger with respect to the data actually being transmitted, thereby decreasing an efficiency of a wireless network.

SUMMARY OF THE INVENTION

The present general inventive concept provides a method and apparatus to improve an overall throughput and to facilitate stable data transmission when an error occurs during data transmission by fixing the error and carrying out re-transmission in a wireless network environment.

The foregoing and/or other aspects of the present general inventive concept may be achieved by providing a method of transmitting wireless data, the including transmitting a first data frame containing a plurality of data units to a receiving device, receiving acknowledgment of receipt of each data unit as a response to the first data frame from the receiving device, and transmitting a second data frame containing at least one of the data units that were not transmitted or received, according to the received acknowledgement.

The foregoing and/or other aspects of the present general inventive concept may also be achieved by providing a method of trvrobomh data, the method including receiving a first data frame containing a plurality of data units from a transmitting device, transmitting acknowledgment of each data unit as a response to the data frame, and receiving from the transmitting device a second data frame contains at least one of the data units in which errors have occurred, as a response to the transmitted acknowledgement.

The foregoing and/or other aspects of the present general inventive concept may also be achieved by providing a wireless device, including a data-processing unit that forms a MAC payload containing a plurality of data units received from an application, a MAC module that appends a MAC header to the MAC payload, so as to form an MPDU, and a PHY module which appends a PHY header to the MPDU, so as to form a first data frame, and transmits the first data frame to a receiving device, wherein the data-processing unit forms a second MAC payload containing at least one of the data units which has not been transmitted to or received by the receiving device according to acknowledgment of each data unit received as a response to the first data frame, the MAC module appends the second MAC header to the MAC payload, the PHY module appends the PHY header to the MAC header, so as to form a second data frame, and transmits the second data frame to the receiving device.

The foregoing and/or other aspects of the present general inventive concept may also be achieved by providing a wireless device, including a PHY module to restore an MPDU by receiving a first data frame from a transmitting device and removing a PHY header, a MAC module to restore a MAC payload by removing a MAC header in the MPDU, a data-processing unit to check out a plurality of data units included in the MAC payload to find errors and to execute an application by receiving the error-free data units, wherein the data-processing unit forms a bitmap which represents acknowledgment each data unit depending on whether an error has been found, the MAC module appends a second MAC header to the bitmap, and the PHY module appends a second PHY header to the MAC header so as to form a block ACK and transmits the block ACK to the transmitting device.

The foregoing and/or other aspects of the present general inventive concept may also be achieved by providing a wireless communication system, including a transmitting device to generate a first data frame having two or more data units and to generate a second data frame having one or more data unit which are not the same as the two or more data units and include at least one of the two or more data units, and a receiving device to generate a frame having acknowledgement of receipt of the respective two or more data unit according to the two or more data units.

The foregoing and/or other aspects of the present general inventive concept may also be achieved by providing a wireless communication system, including a transmitting device to generate a first data frame having two or more data units and to generate a second data frame having one or more data unit which are not the same as the two or more data units and include at least one of the two or more data units.

The foregoing and/or other aspects of the present general inventive concept may also be achieved by providing a wireless communication system, including a receiving device to receive a data frame having two or more data units, and to generate a frame having acknowledgement of receipt of the respective two or more data unit.

The foregoing and/or other aspects of the present general inventive concept may also be achieved by providing a method of a wireless communication system, the method including generating a first data frame having two or more data units, generating a second data frame having one or more data unit which are not the same as the two or more data units and include at least one of the two or more data units, and generating a frame having acknowledgement of receipt of the respective two or more data unit according to the two or more data units.

The foregoing and/or other aspects of the present general inventive concept may also be achieved by providing a computer readable recording medium containing computer readable codes to perform a wireless communication method, the method including generating a first data frame having two or more data units, generating a second data frame having one or more data unit which are not the same as the two or more data units and include at least one of the two or more data units, and generating a frame having acknowledgement of receipt of the respective two or more data unit according to the two or more data units.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 4is a view illustrating a configuration of a frame100and a frame200transmitted between a source (transmitting) device and a destination (receiving) device over a network according to an embodiment of the present general inventive concept. The present invention combines data units into a single block (single frame), transmits the combined data units as the single block (single frame), and employs a block ACK (acknowledgement) with information in a bitmap as a response frame to the single block.

The data frame100includes a physical layer (PHY) header PHY HDR41, a media access control (MAC) layer header MAC HDR42, data units44,45, and46, and a plurality of delimiters43. The term “data unit” throughout the specification is referred to as a MAC service data unit (MSDU) transmitted to an MAC layer from a layer above the MAC layer. The delimiter43, positioned between the adjacent data units44,45, and46or between the MAC header42and the data unit44, may contain number information of a data unit to identify each data unit, checksum information to detect one or more errors in the frame100, and information on synchronization such as a time stamp. Since a size of payload data specified by the IEEE 802.11 standard is limited to 2304 bytes, a sum of the data units44,45, and46and the delimiters43is limited to the size of the payload data. In the present embodiment, a single block ACK is used as the frame200in response to the data frame100. According to a conventional ACK system, the data frame100containing the data units44,45, and46is treated as a single frame having a single data unit, and must be acknowledged by an immediate ACK in response to the single frame having the single data unit. However, according to the present embodiment, the ACK, as a response to the data frame100, is in a form of the single block ACK200because confirmation of the receipt of the respective data units44,45, and46included in the frame100is required.

A bitmap47is included in the block ACK200to display one or more errors corresponding to the respective data units44,45, and46, and a transmitting device determines which data unit44,45, or46needs to be re-transmitted according to this information.

FIGS. 5 and 6are views illustrating configurations of the MAC header42and the PHY header41, respectively, according to an embodiment of the present general inventive concept. Referring toFIG. 5, the MAC header42may have the same configuration as the conventional IEEE 802.11 standard. However, the present general inventive concept is not limited thereto. The configuration of the MAC Header42may have a different configuration or arrangement from a conventional MAC header. The MAC header42may include a frame control field having two Octets, a duration/ID field having 2 Octets, at least two address fields (either address1, address2, address3, or address4) each having six Octets, and a sequence control field having two Octets. The definitions and the detailed configurations of each field may be the same as the conventional standard.

Referring toFIG. 6, the PHY header41employs an orthogonal frequency division multiplexing (OFDM) modulating method to support Multiple-Input Multiple-Output (MIMO). The configuration of the PHY header41is defined in the IEEE 802.11 standard. As an example, a proper PHY header may be employed according to various modulating methods such as a direct sequence spread spectrum (DSSS) and a frequency hopped spread spectrum (FHSS). The PHY header41includes a first reserve one bit61and a second reserve one bit62in a high throughput signal filed (HT-SIG), and also includes an L-STF (legacy short training field), an L-LTF (legacy long training filed), an L-SIG (Legacy signal) field, and a data field (data unit). However, the present general inventive concept is not limited thereto. The configuration of the PHY Header42may have a different configuration or arrangement from a conventional PHY header. Since the PHY header41is well known, detailed descriptions thereof will be omitted.

FIG. 7is a view illustrating a configuration of the data frame100ofFIG. 4. Referring toFIG. 7, a 188-kb transport stream (hereinafter, referred to as “TS”)is used as a single data unit and is included in a frame body of the data frame100. A delimiter (43) is shaded as illustrated inFIG. 4, and considering a size of an IEEE 802.11 standard MAC frame body, the frame body may include 12 TSs.

A single data unit, that is, the TS, is combined with the delimiter43, for example, a Packet No. field71, a PN CRC field72, a time stamp field73, and a cyclical redundancy check (CRC) field74so as to form a repeating unit corresponding to each single data unit.

The sequence number of each data unit, which is included in the frame body, is indicated in the Packet No. field71. As illustrated inFIG. 7, the sequence numbers for a total of 12 TSs from TS1to TS12are indicated in the Packet No. field71in the order in which the TSs reach the MAC layer from upper layers.

A checksum, which checks for errors in the Packet No. field71, is provided in the PN CRC field72. A cyclical redundancy check (CRC) is commonly employed to calculate the checksum.

A time spent for the data unit to reach the MAC layer from an upper layer, that is, a value of an internal clock count, is provided in the time stamp field73as a tag value. The time stamp field73is employed in order to transmit isochronous data, such as the TS, but may not be employed to transmit asynchronous data.

When a plurality of TSs are transmitted between the transmitting device and the receiving device as illustrated inFIGS. 8A,8B, and8C, t1, t2and t3are recorded in tags TS1, TS2, and TS3, respectively.

When transmitted via a network, the TSs are transmitted with no time intervals between them. The receiving device receives the transmitted TSs, retrieves original time intervals, and sends an MPEG-2 TS to an AV decoder via a stream I/F. When TS1is output at t4via the stream I/F, outputting of TS2is put on hold between time intervals for tag2and tag1, i.e., TS2is output at t5. TS3is put on hold between time intervals for tag3and tag2, i.e., TS3is output at t6.

Outputting the TSs according to the original time intervals in the transmitting unit via the stream I/F enables the AV decoder to decode an AV stream at the right moment.

A checksum which checks for one or more errors in TS data70is recorded in the CRC field74. A cyclical redundancy check (CRC) is commonly employed to calculate a checksum. Another checksum which checks for one or more errors in the time stamp field73and the TS data70may be recorded in the CRC field74. A header (HDR) CRC field75which records a checksum checking for errors in the MAC header42may be included in the frame body.

The configuration of the data frame100inFIG. 7may not be compatible with a configuration of a conventional MAC frame. Considering compatibility with the conventional MAC frame, a data frame150may be defined as illustrated inFIG. 9according to another embodiment of the present general inventive concept.FIG. 9is a view illustrating the data frame150compatible with a MAC frame of the IEEE 802.11 standard. That is, the data frame150includes a PHY header41, a MAC header42, a frame body, and an FCS field91. A checksum of all the MAC frames is recorded in the FCS field91, and the FCS field91checks for errors in the entire MAC header43and the frame body. The frame body may include a repeating unit having a Packer No. field, a PN CRC field, a time stamp filed, and a CRC filed. A predetermined number of Octets are assigned to the respective fields and headers.

FIG. 10is a view illustrating a configuration of the block ACK200ofFIG. 4. The block  ACK200includes at least a PHY header41, a MAC header42, and a bitmap field47, and may include an FCS field48. According to the IEEE 802.11 standard, the MAC header42in the ACK includes a frame control field, a duration/ID field, an RA field in which is recorded a receiver address, and a TA field in which is recorded a transmitter address.

The bitmap field47includes a plurality of bits, and the bits respectively correspond to data unit numbers recorded in the Packet No. field71, as illustrated inFIG. 7. If the data frame100includes 12 data units, 12 bits are used as the bitmap field47. An nth bit in the bitmap47corresponds to an nth TS (TSn). The bit signifies whether the corresponding data unit has been received. For example, the bit may be defined in such a way that 1 signifies successful transmission, and 0 signifies unsuccessful transmission.

AlthoughFIG. 10illustrates that the bitmap47is represented by 2 bytes (or Octets), i.e., the bitmap47comprises 16 bits, the present general inventive concept is not limited thereto, and a size of the bitmap47is not limited thereto.

FIG. 11is a view illustrating a communication method of transmitting and/or receiving data between a transmitting device and a receiving device according to an embodiment of the present general inventive concept. Referring toFIG. 5, the method includes handling one or more errors which have occurred in a process of frame transmission in a transmitting device and a receiving device.

When a data frame including three (first, second, and third) data units1,2, and3is transmitted by the transmitting device and one or more errors in the second and third units2and3, the receiving device does not send the received data frame to an upper class because the errors have been detected in the received data frame, and stores the first data unit1, which is an error-free data unit, in a buffer. The receiving device generates a block ACK including a bitmap of three bits each representing the respective error status of the first, second, and third data units

When the transmitting device receives the block ACK and decodes the bitmap (1, 0, 0) included in the block ACK and determines that the second and third data units2and3were not transmitted or received, and re-transmits a second data frame containing the second and third data units2and3. The retransmitted data frame (second data frame) does not include the first data unit1.

When an error occurs in the third data unit3of the two re-transmitted data units2and3, the receiving device does not send the received data frame to the upper class, and stores the retransmitted second data unit2, which is an error-free data unit, in the buffer. In addition, the receiving device sets the bitmap, for example, the first and the second bits are set to 1 and the third bit is set to 0, inserts another bitmap (1, 1, 0) in a second block ACK, and transmits the second block ACK having the another bitmap to the transmitting device.

When the transmitting device receives the second block ACK and decodes the bitmap (1, 1, 0) included in the block ACK and determines that the third data unit3has not been transmitted or received, and re-transmits a third data frame containing the third data unit3.

When no error is found in the transmitted third data frame, the receiving device reads the first and second data units1and2stored in the buffer before sending the received third data unit3to the upper class. The receiving device then sends the first, second, and third data units1,2, and3to the upper class. In addition, the receiving device sets all the bits of the bitmap to1, inserts another bitmap (1, 1, 1) in a third block ACK, and transmits the bitmap to the transmitting device. The transmitting device determines whether the transmission of the three data units is completed according to the third block ACK having the another bitmap which is information on confirmation of receipt of the respective three data units.

FIG. 12is a view illustrating a communication system to provide a communication between wireless devices, for example, transmitting and receiving devices500and600according to an embodiment of the present general inventive concept. The transmitting device500and the receiving device600may be embodied into a single device. However,FIG. 12illustrates two different (or separate) devices as an example of the communication system.

Referring toFIG. 12, an application510in the transmitting device500is a software module that executes an application program, and sends one or more data units (e.g., TSs) generated by the execution of the application program to a device driver520. The device driver520, which acts as an interface between classes, includes a transmitting queue521that temporarily stores the data units received from the application510, and a receiving queue522that temporarily stores the data units received from a lower class. The queues521and522store data units on a first-in-first-out (FIFO) basis, i.e., a first input data unit that arrives first is output first as a first output data unit.

A data unit570stored in the transmitting queue521is sent to a data-processing unit580. The data-processing unit580may include a payload-processing unit581and a bitmap processing unit582. The payload-processing unit581inserts a delimiter43as illustrated inFIG. 4in the data unit (e.g., TS) provided by the application510, so as to form a MAC payload according to the present embodiment. Such a delimiter may include a Packet No. field71, PN CRC field72, a timestamp field73, and a CRC field74as illustrated inFIG. 7. In addition, when an error occurs while transmitting a data unit, the payload-processing unit581forms another MAC payload with the data unit in which the error occurred and the corresponding delimiter, so that the data frame can be re-transmitted. A process of determining whether an error has occurred involves checking information recorded in a block ACK including a bitmap transmitted by the transmitting device600.

FIG. 13is a block diagram illustrating the payload-processing unit581of the communication system ofFIG. 12. Referring toFIGS. 12 and 13, a buffer54temporarily stores each data unit570received from the transmitting queue521. A packet counter52inserts a serial number into the respective data unit570whenever the respective data units570arrive from the transmitting queue521, and a times tamper53inserts a value of a clock counter into corresponding ones of the respective data units570whenever the respective data unit570arrive. The clock counter may be an internal clock counter. A checksum unit56computes a value using a checksum of data recorded in the Packet No. field71and checks the value against a checksum of the data unit570according to a cyclic redundancy checking algorithm.

According to the sequence number, a control unit51records a packet number of the data unit570in the Packet No. field71, a checksum of the Packet No. field71in the PN CRC field72, the value of the clock counter in the time stamp field73, and a checksum of the data unit570in the CRC field74, so as to form the delimiter and the MAC payload with a combination of the formed delimiter and the data units570.

When the control unit51receives a block ACK, and determines that it is necessary to re-transmit some of the data units according to the block ACK because one or more errors have been found, the control unit51forms the another MAC payload containing the data units corresponding to the errors, with reference to the numbers of the data units containing errors, which are acknowledged by the bitmap processing unit582.

The buffer54temporarily stores the formed MAC payload, and sends the temporarily stored MAC payload to a MAC module630ofFIG. 12.

In the meantime, a checksum unit55begins to operate when a data frame is received from another wireless device. The checksum unit55checks if a checksum recorded in the Packet No. field71and a checksum recorded in the PN CRC field72are the same. If the checksum of the data units and the checksum recorded in the CRC field74are the same, the control unit51stores the data units without errors in the buffer54but discards the ones with errors. The control unit also provides the bitmap processing unit582with a result of the checking operation of the checksum unit55.

FIG. 14a view illustrating a plurality of TSs formed in an application510and processed class-by-class to form a packet in the communication system ofFIG. 12. When the plurality of TSs are formed by the application510, the packet is formed by processing the plurality of TSs class by class. Referring toFIGS. 12 and 14, the data-processing unit580combines 12 TSs (from TS1through TS12) formed in the application510, and delimiters, so as to form a MAC payload.

The MAC payload is sent to the MAC module530and is recognized as a MAC service data unit (MSDU). The MAC module530appends a MAC header to the MAC payload, so as to form a MAC protocol data unit (MPDU). Lastly, the PHY module540completes a data frame by receiving the MPDU frame and appending the PHY header thereto. Here, the MAC module includes a software MAC module531, an interface532, and a hardware MAC module533so that appends the MAC header to the MAC payload having the 12 TSs generated from the applications or other TSs570received from an input TS source through an I/O port560. The PHY module includes a baseband processor541and a RF module so that the data frame is transmitted as a transmitting signal, for example, an RF signal, to the receiving device600through antennas550and850.

The bitmap processing unit582inFIG. 12analyzes a bitmap included in the block ACK transmitted from the receiving device600, i.e., it reads the bits in the bitmap, checks for an error in at least one of the data units included in the transmitted data frame, and notifies the payload-processing unit581of the checking result.

FIG. 15is a view illustrating a configuration of the bitmap processing unit582of the communication system ofFIG. 12. The bitmap processing unit582, for example, may include a control unit61, a bitmap-generating unit62, a bitmap parser63, and a buffer64. The bitmap parser63reads the bitmap included in the ACK47ofFIG. 4, checks for an error in each data unit included in the transmitted data frame, and provides the payload-processing unit581with the checking result through the control unit61. Meanwhile, the bitmap-generating unit62generates a bitmap, which checks for transmission errors in each data unit, according to a checksum performed in the payload-processing unit581. The previously generated bitmap is stored in the buffer64temporarily, and is then sent to the MAC module530.

The MAC module530appends the MAC header to the MAC payload provided by the data-processing unit580, so as to form the MPDU. A configuration of the MAC header is illustrated inFIG. 5. The MAC module530may be formed by a combination of the software MAC module531, embodied as software, the hardware MAC module533embodied as hardware, and the interface532facilitate communications between the software and hardware MAC modules531and533. The software module531is responsible for MAC functions that are not time-critical, and the hardware MAD module531is responsible for time-critical MAC functions.

The PHY module540receives the MPDU transmitted by the MAC module530and forms a packet protocol data unit (PPDU), and converts the PPDU into a wireless signal in order to transmit the converted PPDU. The PPDU is referred to as a data frame according to the present embodiment. The baseband processor91processes a baseband signal corresponding to the data frame, and the radio frequency module92generates a signal including the baseband signal and transmits the signal.

As described above, the application510may form a data unit by a complex algorithm, and the formed data unit is processed and appended to form the MPDU using the software MAC module. However, when the data unit is received from a broadcasting receiver, such as a TS570, through the I/O port560, the data unit can be processed using the hardware MAC module533to form the MPDU.

Referring toFIG. 12, the receiving device600may have the same elements as a transmitting device500. The receiving device600receives an RF signal from the transmitting device500through the antenna650, restores an MPDU by processing the received RF signals via a PHY module640, and transmits the MPDU to a MAC module630.

The MAC module630transmits the MAC payload, which is produced by removing the MAC header from the MPDU, to a data-processing unit680. A payload-processing unit681of the data-processing unit680decodes a delimiter included in the MAC payload. Here, the delimiter includes the Packet No. field71, the PN CRC field72, the timestamp field73, and the CRC field74as illustrated inFIG. 7. Meanwhile, the MAC module630appends the MAC header and transmits the appended MAC header to the PHY module640, according to a bitmap provided by the data-processing unit680.

The payload-processing unit681checks if the Packet No. field71has been successfully transmitted without an error via the PN CRC field72, and decodes the number recorded therein, and the payload-processing unit681also checks if the data unit with the aforementioned number has been successfully transmitted via the CRC field74. The payload-processing unit681stores a data unit670successfully transmitted from a small buffer (not shown), and then provides it to a receiving queue622of a device driver620.

In the meantime, a bitmap processing unit682generates bits, i.e., a bitmap indicating whether an error has occurred in a corresponding one of the data units included in the received data frame, and provides the bitmap to the MAC module630. The configuration of the bitmap can be seen inFIG. 10. The MAC module630appends a MAC header to the provided bitmap, and the PHY module640generate the block ACK ofFIG. 10to be sent as the RF signal through the antenna650to the transmitting device.

AlthoughFIG. 12illustrates the transmitting device500and the receiving device600as separate devices, the transmitting device500and the receiving device600can be formed in a single device. Accordingly, the applications510and610, the device drivers520and620, the data processing units580and680, the MAC modules530and630, and the PHY modules540and640are the same, and thus, detailed descriptions thereof are omitted. Also, althoughFIG. 12illustrates one directional arrows indicating a signal flow, the arrows may be bidirectional arrows indicating bidirectional signal flows so that the data frame100is transmitted from the transmitting device500to the receiving device600, and the block ACK is transmitted from the receiving device600to the transmitting device500. According to the present general inventive concept, a first communication system having a first transmitting device and a first receiving device, such as the transmitting device500and the receiving device600, communicates with a second communication system having a second transmitting device and a second receiving device, such as the transmitting device500and the receiving device600, through a wireless network.

The receiving queue622temporarily stores a data unit (e.g., TS) provided from the data-processing unit680, and transmits the data unit to an application610using a FIFO algorithm.

The application610executes an application program using the transmitted data unit as an input, and outputs results of the executed data unit (e.g., a decoded A/V signal) via a display unit690to generate audio and/or video signals.

Meanwhile, if the MAC module630includes a hardware module633, the MPDU provided by the PHY module640is processed directly and re-stored in the data unit570, and the restored data unit570can be output as an output TS via an I/O port. If the output data unit570is in the form of a TS or an A/V stream, an external video decoder processes the output A/V stream from the I/O port680and is able to restore the audio or video signal.

The configurations of the MAC module530and630and the PHY module540and640illustrated inFIG. 12are mere examples, and the present general inventive concept is not limited thereto.

Many exemplary logic blocks, modules, and circuits explained according to the embodiments of the present general inventive concept may be embodied or carried out by a common processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logical device, a discrete gate or a transistor logic device, discrete hardware elements, or a random combination thereof. The term “common processor” is referred to a microprocessor by definition but may be referred to a conventional processor, a controller, a microcontroller, or a state machine. The processor may also be embodied by a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a multitude of microprocessors, more than one microprocessor related to a DSP core, or other configurations.

A method wherein a transmitting device re-transmits a data unit with an error has been explained so far, but other re-transmission mechanisms can be considered. As a re-transmission mechanism efficiently uses a bandwidth to transmit the data frame, various re-transmission methods considering, for example, a TX transmission rate, adaptation according to a size of data to be transmitted, distribution, duplication, etc., will be described below.

FIG. 16is a view illustrating an example of a data frame containing a plurality of data units in the communication system ofFIG. 12. Assuming the data frame containing the plurality of data units ofFIG. 16is transmitted by a transmitting device to a receiving device, and second, sixth, and eighth TS2, TS6, and TS8are not successfully transmitted or received by the receiving device, the present general inventive concept provides re-transmission mechanisms as illustrated inFIG. 17AtoFIG. 17I.

FIG. 17Aillustrates re-transmission of a data frame containing the data units TS2, TS6, and TS8with an error as described above. Re-transmission of such a data frame that has failed to be transmitted or received reduces chances of recurrence of errors because a size of the re-transmitted data frame is reduced.

The re-transmission, however, is not limited to the example inFIG. 17A, and the transmitting device may re-transmit the data frame having other data units and the data units TS2, TS6, and TS8as illustrated inFIG. 17B.

In addition, assuming that a single data frame can hold12data units, it is possible that some parts of a MAC payload are wasted if the retransmitted data frame includes the three data units as illustrated inFIG. 17A. In order to avoid wasting the MAC payload, more than three data units can be transmitted through the re-transmitted data frame as a new data frame transmitted together with a combination of the data units TS2, TS6, and TS8, in which errors have occurred. For example, the data units TS13through TS21are transmitted as described inFIG. 17C. Such re-transmission may increase the efficiency of a bandwidth use, and boost a streaming speed if the data units are streaming data.

In an environment in which errors are highly likely to occur despite a re-transmission mechanism as illustrated inFIG. 17A, it is possible for the errors to recur. Hence it is possible to arrange and repeat a plurality of the same data units that contain errors, as illustrated inFIG. 17D.

However, the arrangement illustrated inFIG. 17Dmay not guarantee successful transmission if a burst error occurs. Robustness to burst errors may be increased by alternating the data units that contain errors in the data frame as illustrated inFIG. 17E.

As described above, in the embodiment exemplified inFIG. 17A, the transmitting device re-transmits only the data units with errors, which reduces network traffic, whereas in the embodiments exemplified inFIGS. 17D and 17E, the transmitting device arranges the data units repeatedly in a data frame, which guarantees successful re-transmission despite a loss of other data units. A combination of these two mechanisms, i.e., employing the mechanism illustrated inFIG. 17Afor general retransmission and the mechanism illustrated inFIG. 17Dor17E for the last transmission, may increase the efficiency of the retransmission.

If an attempt to re-transmits the data units fails, the transmitting device makes a last attempt at a later time or even abandons the attempt depending upon a method of wireless telecommunications. In either way, a serious problem arises when the last re-transmission fails and a retry limit is reached. Therefore, the mechanism illustrated inFIG. 17DorFIG. 17Eis highly suggested for the last re-transmission even through there is an inefficiency in traffic.

FIG. 17Fillustrates a re-transmission mechanism obtained by combining the mechanism illustrated inFIG. 17Awith the mechanism illustrated inFIG. 17D. In this mechanism, only data units that have failed to be transmitted are transmitted, wherein a MAC payload filled with the data units that are to be transmitted is retransmitted last. Here, the data units that are to be transmitted are contiguously and repeatedly arranged.

FIG. 17Gillustrates a re-transmission mechanism obtained by combining the mechanism illustrated inFIG. 17Awith the mechanism illustrated inFIG. 17E. In this mechanism, only data units that have failed to be transmitted are transmitted, wherein a MAC payload filled with the data units that are to be transmitted is retransmitted last. Here, the data units to be transmitted alternate in the MAC payload.

In addition to these re-transmission mechanisms, link adaptation may be employed for re-transmission by modifying transmission parameters, such as a transmission (TX) rate, a TX power, and a type of an antenna, such as MIMO or SISO. These modifications can be made via the MAC module530. The MAC module530guarantees more stable transmission, for example, by lowering the TX rate, raising the TX power, or switching the antenna type from the MIMO to the SISO while the re-transmission is repeated. Six of the re-transmission mechanisms according to the link adaptation (hereinafter, referred to as “link adaptation mechanism”) will be explained below.

The first method is adaptively modifying the TX rate according to a retransmission number. The method includes setting and the TX rate according to the retransmission number, and re-transmitting the data frame at a rate corresponding to the retransmission number. The retransmission number and the TX rate are inversely proportional.

For example, assuming that a criterion is classified as a retransmission number under 1, a retransmission number between 2 and 3, a retransmission number between 4 and 5, and a retransmission number between 6 and 7 and the TX rates are set to 108 Mbps, 96 Mbps, 72 Mbps, and 54 Mbps, respectively, the data frame is re-transmitted at 108 Mbps for an initial attempt, and at 96, 72, or 54 Mbps for following attempts.

The second method is to adaptively modify the TX rate according to the size of a data frame. The size of the data frame and the TX rate are inversely proportional.

For example, defining the size of a data frame to be the number of data units to be retransmitted and assuming that the criterion section is classified as a size under 4, a size between 5 and 8, a size between 9 and 12 and the TX rates are set to 108 Mbps, 72 Mbps, and 54 Mbps, respectively, the data frame is re-transmitted at 108 Mbps, 72 Mbps, and 54 Mbps according to the number of data units in the data frame. Since the successfully transmitted data units are not included in the data frame, the size of the data frame to be re-transmitted decreases while the TX rate increases.

The third method is adaptively modifying the TX size according to the retransmission number. The retransmission number and the TX size are proportional. The size of the re-transmitted data frame may be defined by the number of data units therein.

For example, assuming the criterion is classified as a retransmission under 3, a retransmission between 4 and 5, and a retransmission between 6 and 7, the number of data units to re-transmitted is set to 4, 8, and 12, respectively, as illustrated inFIG. 17H, the actual number of the data units to be re-transmitted is three (TS2, TS6, and TS8) on a first attempt, yet four data units are re-transmitted according to the aforementioned criterion. An additional data unit included in the data frame can be the first data unit (TS2), but the present general inventive concept is not limited thereto. If the data unit TS8has been successfully re-transmitted on the first attempt while other TSs are not successfully transmitted, a data frame with four data units (two TS2s and two TS6s) arranged alternately is re-transmitted on a second attempt.

If the data units TS2and TS6have not been successfully transmitted, eight data units should be transmitted on a fourth attempt because the retransmission number is between 4 and 5, a data frame with eight data units of TS2s and TS6arranged alternatively is re-transmitted.

The fourth method is adaptively modifying the TX size according to the number of the data units to be re-transmitted. The number of data units and the TX size are proportional.

For example, assuming that the criterion is classified as a number under 4, a number between 5 and 8, and a number between 9 and 12 and that the number of data units to be re-transmitted is set to 4, 8, and 12, respectively, as illustrated inFIG. 171, the actual number of data units to re-transmit is three (TS2, TS6, and TS8) on a first attempt, yet four data units are re-transmitted according to the aforementioned criterion. If TS8has successfully been re-transmitted on the first attempt while the others are not transmitted, a data frame with four data units (two TS2s and two TS6s) arranged repeatedly is re-transmitted in a second attempt.

If the data unit TS6has been successfully transmitted in the second attempt, a data frame with four TS2s arranged in a repeated pattern is re-transmitted according to the configured setting.

In order to be compatible with a telecommunication method according to the conventional IEE 802.11 protocol, a frame transmitting mechanism and a block ACK mechanism according to the present general inventive concept may be selectively employed. For example, whether the mechanism has been employed is recorded in the reserved bits61and62in the PHY header as illustrated inFIG. 6.

FIG. 18is a flow chart illustrating a telecommunication method between wireless devices according to an embodiment of the present general inventive concept. Specifically, the method may include three operations: a first operation S10in which a transmitting device500transmits a data frame1(a first data frame to be transmitted) containing a plurality of data units to a receiving device600; a second operation S20in which the receiving device600transmits confirmation of receipt of each data unit as a response to the data frame to the transmitting device; and a third operation S30in which the transmitting device500transmits a second data frame containing data units that have not been successfully transmitted, according to the received confirmation.

Referring toFIGS. 12 and 18, in operation S10, the payload-processing unit581in the transmitting device500forms a MAC payload including a plurality of data units provided by the application510and the one or more delimiters43ofFIG. 4at sub-operation S11. The MAC module530appends a MAC header to the MAC payload, so as to form a MPDU at sub-operation S12. The PHY module540appends a PHY header to the MPDU, so as to form the first data unit which will be transmitted to the receiving device600at sub-operation S13.

In operation S20, the first data frame is transmitted to the payload-processing unit681via the PHY module640and the MAC module630. The payload-processing unit681checks for errors in the data units included in the first data frame which has been transmitted at sub-operation S21, and the error-free data units are stored in a buffer memory which may be included in the payload processing unit681, at sub-operation S22. The bitmap processing unit682receives the checking result and forms a bitmap containing confirmation of receipt of respective data units included in the first frame according the received checking result at sub-operation S23. The MAC module640appends the MAC header to the bitmap formed at sub-operation S24, and the PHY module640appends the PHY header to the bitmap, so as to form a block ACK, which is transmitted to the receiving device500at sub-operation S25.

In operation S30, the blockACK is transmitted to the bitmap processing unit582via the PHY module540and the MAC module530. The bitmap processing unit582reads the bitmap included within the block ACK in order to search for the data unit in which an error has occurred at sub-operation S31. The payload-processing unit581generates data unit sequence numbers and forms the MAC payload containing the data unit with the error and the delimiter at sub-operation S32. The MAC module530then appends the MAC header to the MAC payload at sub-operation S33. The PHY module540then appends the PHY header to the MPDU to form a second data frame, and transmits the second data frame to the receiving device600at sub-operation S34.

FIG. 19is a graph comparing a result of an experiment carried out according to the present general inventive concept to a result of another experiment carried out according to a conventional method suggested by the TCn Sync multi-industry group. TCn Sync is a group of industries allied for implementing the IEEE 80211 n standard. A greatest TX rate in the experiment is 108 Mbps and a single data frame holds 8 TSs.

The graph illustrates how a packet error rate (PER) increase affects the throughput. When the PER is low, i.e., when optimum conditions for telecommunications occur, there is no considerable difference; however, as the PER increases, the TX rate sharply decreases in the result of TGn-Sync, whereas the TX rate according to the present embodiment does not decrease sharply. In fact, an error is most likely to occur in a wireless telecommunication environment because a wireless channel is shared among many wireless devices.

The present general inventive concept can also be embodied as computer-readable codes on a computer-readable recording medium. The computer-readable recording medium is any data storage device that can store data which can be thereafter read by a computer system. Examples of the computer-readable recording media include read-only memory (ROM), random-access memory (RAM), CD-ROMs, magnetic tapes, floppy disks, optical data storage devices, and carrier waves (such as data transmission through the Internet). The computer-readable recording medium can also be distributed over network-coupled computer systems so that the computer-readable code is stored and executed in a distributed fashion. Also, functional programs, codes, and code segments to accomplish the present general inventive concept can be easily construed by programmers skilled in the art to which the present general inventive concept pertains.

According to the present general inventive concept as described above, a plurality of data units can be transmitted via a single data frame. Even if errors occur in some of the data units during transmission, overall transmission efficiency can still be improved by minimizing the recurrence of errors and a re-transmission frequency via an efficient method of fixing the errors.