Coordination of packet and acknowledgment retransmissions

Techniques generally related to a multi-copy transmission scheme are described. A first wireless communication device may transmit Xi copies of each ith packet in an N numbers of packets over a wireless communication link to a second wireless communication device. In response, the second wireless may transmit Y copies of an acknowledgement over the wireless communication link to the first wireless communication device. The first wireless communication device may retransmit the packets if it does not receive the acknowledgement within a predetermined time period. The second wireless communication device may retransmit the acknowledgment if it does not receive other packets within another predetermined time period. N, Xi, and Y may be optimized for one or more of throughput, latency, and energy consumption using calculations or simulations.

BACKGROUND

Transmission of packets between wireless communication devices is well known. However, wireless communication links for low power wireless communication devices are intrinsically lossy. For reliable communication, an acknowledgement-retransmission scheme may be employed. In the conventional acknowledgement-retransmission scheme, one node (node A) first transmits a packet to another node (node B). If node B successfully receives the packet, node B will transmit an acknowledgement back to node A. If node A does not receive an acknowledgement from node B within a certain time period or time epoch, node A will retransmit the packet to node B. Each communication session in the conventional acknowledgment-retransmission scheme requires two time epochs, one for transmitting/receiving the packet and another for transmitting/receiving the acknowledgement.

DETAILED DESCRIPTION

This disclosure is drawn, inter alia, to methods, apparatus, computer programs and systems related to transmitting packets in wireless devices

Embodiments of the present disclosure generally relate to a multi-copy transmission scheme where multiple copies of the packet and multiple copies of the acknowledgement may be transmitted in each communication session. In some embodiments of the present disclosure, a first wireless communication device may first transmits Xinumber of copies of each ith packet (out of N packets) to a second wireless communication device, where one or more of Xiand N may be two or more. If the second wireless communication device successfully receives a copy of the packet, the second wireless communication device may transmit Y number of copies of an acknowledgement back to the first wireless communication device, where Y may be at least one. If the first wireless communication device does not receive an acknowledgement from the second wireless communication device within a predetermined time period, the first wireless communication device may retransmit Xicopies of each ith packet (out of N packets) to the second wireless communication device. Each communication session in the multi-copy transmission scheme may require Xi+Y time epochs.

The presently described multi-copy transmission scheme may be arranged to minimize or reduce energy consumption. Wireless communication devices may consume varying amounts of energy during different modes of operation. Some wireless communication devices may operate in four modes, namely: transmitting, receiving, listening, and sleeping. Wireless communication devices may consume the least amount of energy when they are in sleep mode. To conserve energy, a first wireless communication device arranged in accordance with the presently described multi-copy transmission scheme may switch to a temporary sleep mode after receiving a copy of an acknowledgement from a second wireless communication device. After entering into the sleep mode for a predetermined period of time, the first wireless communication device may be configured to switch back to an active mode so the first wireless device may transmit one or more copies of a packet to the second wireless communication device. Similarly, the second wireless communication device arranged in accordance with the presently described multi-copy transmission scheme may switch to a temporary sleep mode after receiving a copy of a packet from the first wireless communication device. After entering into the sleep mode for a predetermined period of time, the second wireless communication device may be configured to switch back to an active mode so the second wireless device may receive a copy of another packet from the first wireless communication device.

The presently described multi-copy transmission scheme may be optimized based on a wireless communication device's available power supply. Different wireless communication devices may have varying amounts of available power. For example, a mobile cellular telephone operating on a battery has a limited power supply (often described in terms of milliamp-hours (mA-hr)), whereas a base station in principal may have an unlimited power supply. In the presently described scheme, calculation and power intensive process of optimizing Xicopies of each ith packet (out of N packets) and Y copies of each acknowledgement may be off-loaded to from a mobile wireless communication device operating on battery based power supplied to stationary wireless communication deices with unlimited power supplies.

The presently described multi-copy transmission scheme may be arranged for a first wireless communication device to sequentially transmit a batch of packets, and a second wireless communication device to transmit a batched acknowledgment for the packets. Some acknowledgements tend to have headers that are larger than the payload (e.g., a header of 20-40 bytes compared to a payload of 1 bit to acknowledge a packet was received or not). The use of batched acknowledgements may reduce the overall number of acknowledgements used in communication between the devices without significantly increasing the size of each acknowledgement.

The presently described multi-copy transmission scheme may be employed in MIMO (Multiple Input Multiple Output) wireless communication systems. To increase bandwidth, a first wireless communication device with MIMO radios (transmitters and receivers) may transmit packets over two or more wireless communication links at approximately he same time to a second wireless communication device with MIMO radios. The second wireless communication device may transmit a cross-link acknowledgement over the two or more wireless communication links at approximately the same time to the first wireless communication device to ensure that the first wireless communication device correctly receives one or more copies of the cross-link acknowledgement. The cross-link acknowledgement may indicate which of the simultaneously transmitted packets have been received. The first or the second wireless communication device may select to use two or more of the available wireless communication links.

The presently described multi-copy transmission scheme may be optimized for throughput, latency, and energy consumption at one or both devices. The multi-copy transmission scheme may be transparent to many of the existing MAC (Medium Access Control) protocols because it may be implemented at higher levels of the abstraction.

FIG. 1illustrates an example of a multi-copy transmission scheme100with one-to-one correspondence between packet and acknowledgment (i.e., N=1) in a wireless communication system in accordance with at least some embodiments of the present disclosure. Scheme100includes a first wireless communication device110with a transmitter112, a receiver114, and an antenna116. Scheme100also includes a second wireless communication device120with a transmitter122, a receiver124, and an antenna126. A packet may include data load and header.

In operation, two copies of a packet and one copy of an acknowledgement may be transmitted in each communication session. For example, packets may be transmitted from the transmitter112of the first wireless communication device110to the receiver124of the second wireless communication device120. The transmitter112and the receiver114of the first wireless communication device110are configured to transmit or receive signals, respectively, with antenna116. Likewise, the transmitter122and the receiver124of the second wireless communication device120are configured to transmit or receive signals, respectively, with the antenna126.

The arrows illustrated between the first wireless communication device110and the second wireless communication device120may represent signals being transmitted in successive communication sessions. Solid-line arrows may denote a successful signal transmission. Dash-line arrows may denote an unsuccessful transmission. “M” arrows may indicate packets transmitted in the direction of the arrow. “A” arrows may indicate acknowledgments transmitted in the direction of the arrow. “N” arrows may indicate nothing was transmitted. The subscript numeral after each “M” may indicate the packet number in the series of packets. The subscript numeral after each “A” or “N” may indicate either an acknowledgment or a lack of an acknowledgement to the corresponding numbered packet.

FIG. 2illustrates a table of example actions undertaken by wireless communication devices110and112inFIG. 1in each time epoch. Each illustrated communication session may take three time epochs (i.e., two packet transmissions plus one acknowledgement transmission). Four different example communication sessions are illustrated inFIGS. 1 and 2. The first example communication session is illustrated as packets M1with acknowledgement A1. The second example communication session is illustrated as packets M2with no acknowledgement N2. The third example communication session is illustrated as packets M2with acknowledgement A2. The fourth example communication session is illustrated as packets M3with acknowledgement A3. Example time epochs1-12are also illustrated as will be described further below.

In some instances, the wireless communication link from one wireless communication device to another (e.g., from the first wireless communication device110to the second wireless communication device120) may be lossy and the packets may have a probability of successful transmission of 20%, while the wireless communication link in the opposite direction (e.g., from the second wireless communication device120to the first wireless communication device110) may be perfect so that the acknowledgements have a probability of successful transmission of 100%. “L” indicates the device was listening for a transmission. An asterisk (“*”) after an “L” denotes a successful transmission of packet or acknowledgement (i.e., the packet or acknowledgment was successfully received by the listening device).

In example time epochs1and2, the first wireless communication device110transmits two copies of packet M1to the second wireless communication device120. The second wireless communication device120receives the first copy of packet M1in example time epoch1. In response, the second wireless communication device120enters into a temporary sleep mode in example time epoch2to save power as it does not need to listen for the second copy of packet M1, since the first packet was successful received. In example time epoch3, the second wireless communication device120transmits an acknowledgement A1, which is received by the first wireless communication device110.

In example time epochs4and5, the first wireless communication device110transmits two copies of packet M2to the second wireless communication device120. However, the second wireless communication device120does not receive either copy of the packet. As a result, the second wireless communication device120transmits nothing in example time epoch6.

In example time epochs7and8, the first wireless communication device110retransmits two more copies of packet M2to the second wireless communication device120. The second wireless communication device120receives the first copy of packet M2in example time epoch7. In response, the second wireless communication device120enters into a temporary sleep mode in example time epoch8to save power as it does not need to listen for the second copy of packet M2. In example time epoch9, the second wireless communication device120transmits an acknowledgement A2, which is received by the first wireless communication device110.

In example time epochs10and11, the first wireless communication device110transmits two copies of packet M3to the second wireless communication device120. The second wireless communication device120receives the second copy of packet M3in example time epoch11. In example time epoch12, the second wireless communication device120transmits an acknowledgement A3, which is received by the first wireless communication device110.

The described multi-copy transmission scheme may provide a higher throughput than conventional acknowledgement-retransmission schemes. Throughput is inversely related to amount of time required to transmit a packet. The average number of time epochs that may be required to transmit a packet may be equal to T×(1−Pm)−1, where T may be equal to the number of time epochs per communication session, P may be equal to the probability that a transmission would not be successful, and m may be the number of copies of the packet transmitted per communication session. For a conventional acknowledgement-retransmission with P=0.8, T=2, and m=1, the average number of time epochs that may be required to transmit a packet is approximately 10 time epochs. Using the described multi-copy transmission scheme of the present disclosure as shown inFIGS. 1 and 2, where P=0.9, T=3 and m=2, the average number of time epochs that may be required to transmit a packet may be lowered to 8.33 time epochs. If in each communication session, the first wireless communication device110repeatedly sends a particular packet 3 times, the average number of time epochs required to transmit a packet may be reduced to 8.20 time epochs. The described time improvements may be significantly higher when: (a) each link has lower quality, (b) autocorrelation for successful transmissions is higher (as it may be the case in actual lossy wireless links), (c) sequential transmissions of a predetermined number of packets and batched acknowledgments are employed (as described later), and (d) simultaneous transmission of a cross-link acknowledgments over two or more wireless communication links in a MIMO wireless communication system is employed (as described later).

FIG. 3is a flowchart of an example method300executed by the first wireless communication device110for transmitting packets to the second wireless communication120device using the multi-copy transmission scheme ofFIGS. 1 and 2in accordance with one or more embodiments of the present disclosure. Method300includes one or more operations, functions, or actions illustrated by blocks302-320. The first wireless communication device110may be a base station, a mobile wireless device, or some other wireless communication device.

Method300may begin at block302, where the first wireless communication device110may be arranged to determine Xi(hereafter simply “X” since N=1), the number of copies of the packet to transmit to the second wireless communication device120, and Y, the number of copies of the acknowledgement to be transmitted by the second wireless communication device120. Depending on the specific embodiment, the first wireless communication device110may be configured to determine X and Y using intensive calculations on trace data, Monte Carlo-based simulations on trace data, or by making calculations on-line (i.e., in real time) with current trace data. The first wireless communication device110may be configured to optimize X and Y for one or more of: a) throughput, b) latency, and c) energy consumption at one or both of the devices. The first wireless communication device110may be adapted to set the desired throughput, latency, and energy based on the content of the data being transmitted to the second wireless communication device120. For example, real time playback of videos requires large throughput and low latency whereas the synchronization or the storage of files may be satisfied with lower throughput and higher latency, which then can result in lower energy consumption. The first wireless communication device110may be arranged to send X and Y to the second wireless communication device120during a handshake for setting up the communication between the two devices. Alternatively, the second wireless communication device120may be arranged to determine X and Y and transmit the determined values to the first wireless communication310device during the handshake. Block302may be followed by block304.

At block304, the first wireless communication device110may be arranged to transmit X copies of the current packet in a queue to the second wireless communication device120. The first wireless communication device110may be configured to mark each copy of the transmitted packets with a packet identifier that indicates the copy number (e.g., copy #1out of X, copy #x out of X, etc.) so that the second wireless communication device120can discern which of the copies it has received. The first wireless communication device110may also be arranged to start a timer to track the time since transmitting the copies of the current packet. Block304may be followed by block306.

At block306, the first wireless communication device110may be configured to listen for a copy of an acknowledgement in response to the current packet from the second wireless communication device120. Block306may be followed by block308.

At block308, the first wireless communication device110may be configured to determine whether it has received a copy of the acknowledgement in response to the current packet from the second wireless communication device120. If the first wireless communication device110has not received a copy of the acknowledgement, then block308may be followed by block310. If the first wireless communication device110has received a copy of the acknowledgment, then block308may be followed by optional block312.

At block310, the first wireless communication device110may be arranged to determine if a time period TAfor receiving a copy of the acknowledgment has expired. The length of the time period TAmay vary depending on the Y number of copies of the acknowledgement sent by the second wireless communication device120. The length of the time period TAmay be set to allow the first wireless communication device110to receive the last copy of the acknowledgement sent by the second wireless communication device120. When the time period TAhas not expired, then block310may be followed by block306in which the first wireless communication device110may continue to listen for a copy of the acknowledgement. When the time period TAhas expired, then block310may be followed by block304in which the first wireless communication device110may retransmit X copies of the current packet in the queue.

Optional block312may be used when the second wireless communication device120transmits Y number of copies of the acknowledgement and the first wireless communication device110did not receive the last copy of the acknowledgement in block306. In optional block312, the first wireless communication device110may be configured to switch to a temporary sleep mode to conserve energy. Having received a copy of the acknowledgement, the first wireless communication device110may be arranged to switch to the temporary sleep mode to avoid receiving any duplicative copy of the acknowledgment and consuming more resources (e.g. power, battery life, etc.). The length of the time the first wireless communication device110remains in the temporary sleep mode may depend in part on the copy number of the acknowledgement received in block306and the Y number of copies of each acknowledgement. The first wireless communication device110may be configured to remain in the temporary sleep mode until the last copy of the acknowledgement has been sent by the second wireless communication device120. Block312may be followed by block314.

At block314, the first wireless communication device110may be configured to determine if there are one or more unsent packets remaining in the queue. When there are no unsent packets, then block314may be followed by block316. When there are one or more unsent packets, then block314may be followed by block318.

At block316, the first wireless communication device110may be configured to stop transmitting (e.g., cease transmitting or terminate transmission) packets since there are no more packets in the queue.

At block318, the first wireless communication device110may be adapted to update the status of the packets in the queue. The next packet in the queue may become the current packet in the queue. Block318may be followed by optional block320.

At optional block320, the first wireless communication device110may be arranged to determine X and Y on-line (i.e., in real time) using one or more of the current link conditions based on trace data, such as the current reception rates of the communication links, and send X and Y to the second wireless communication device120in another handshake. The first wireless communication device110may also be arranged to decide to optimize X and Y differently based on the current device conditions, such as the current status of the battery charge of the devices. For example, the first wireless communication device110may decide to optimize X and Y for energy consumption over throughput and latency based on the battery charge of the devices. Optional block320may loop back to block304in which the first wireless communication device110may transmit X copies of the current packet in the queue.

FIG. 4is a flowchart of an example method400executed by the second wireless communication device120for receiving packets from the first wireless communication device110using the multi-copy transmission scheme ofFIGS. 1 and 2in accordance with one or more embodiments of the present disclosure. Method400includes one or more operations, functions or actions illustrated by blocks402-424. Second wireless communication device120may be a base station or a mobile wireless device, or some other wireless communication device.

Method400may begin at block402, where second wireless communication device120may be configured to determine X, the number of copies of the packet to be transmitted by the first wireless communication device110, and Y, the number of copies of the acknowledgement to transmit by the second wireless communication device120. Depending on the embodiment, the second wireless communication device120may be configured to determine X and Y using intensive calculations on trace data, Monte Carlo-based simulations on trace data, or by making calculations on-line (i.e., in real time) with current trace data. In addition, X and Y can be optimized for one or more of: a) throughput, b) latency, or c) energy consumption at one or both devices. The second wireless communication device120may be adapted to set the desired throughput, latency, and energy based on the content of the data being transmitted by the first wireless communication device110. For example, real time playback of videos may require large throughput and low latency whereas the synchronization or the storage of files may be satisfied with lower throughput and higher latency, which then may result in lower energy consumption. The second wireless communication device120may be arranged to send X and Y to the first wireless communication device110during a handshake for setting up the communication between the two devices. Alternatively, the first wireless communication device110may be arranged to determine X and Y and may transmit them to the second wireless communication device120during the handshake. Block402may be followed by block404.

At block404, the second wireless communication device120may be configured to listen for a copy of the first packet from the first wireless communication device110. Block404may be followed by block406.

At block406, the second wireless communication device120may be adapted to receive a copy of the first packet from the first wireless communication device110. This block may correspond to block304described above. Block406may be followed by optional block408.

Optional block408may be used when the second wireless communication device120does not receive the last copy of the first packet in block406. In optional block408, the second wireless communication device120may be arranged to switch to a temporary sleep mode to conserve energy. Having received a copy of the packet, the second wireless communication device120may switch to the temporarily sleep mode to avoid receiving any duplicative copy of the packet and consuming more resources (e.g., power, battery life, etc.). The length of the time the second wireless communication device120remains in the temporary sleep mode may depend on the copy number of the packet received in block404and the X copies of each packet. The second wireless communication device120may be arranged to remain in the temporary sleep mode until the last copy of the packet has been sent by the first wireless communication device110. Block408may be followed by block410.

At block410, the second wireless communication device120may generate an acknowledgement in response to receiving the first packet from the first wireless communication device110. Block410may be followed by block412.

At block412, the second wireless communication device120may be arranged to transmit Y copies of the acknowledgement to the first wireless communication device110. The second wireless communication device120may be adapted to mark each copy with acknowledgment identifier that indicates its copy number (e.g., copy #1out of Y, copy #y out of Y, etc.) so the first wireless communication device110can discern which of the copies it has received. The second wireless communication device120may also be configured to start a timer to track the time since transmitting the copies of the current acknowledgement. Block412may be followed by block414.

At block414, the second wireless communication device120may listen for the next packet from the first wireless communication device110. Block414may be followed by block416.

At block416, the second wireless communication device120may be arranged to determine if it has received the next packet from the first wireless communication device110. When the second wireless communication device120has not received the next packet, then block416may be followed by block418. When the second wireless communication device120has received the next packet, then block416may be followed by optional block420.

At block418, the second wireless communication device120may be arranged to determine if a time period TMfor receiving the next packet has expired. The length of the time period TMmay vary depending on the X copies of each packet sent by the first wireless communication device110. The length of the time period TMmay be set to allow the second wireless communication device120to receive the last copy of the next packet sent by the first wireless communication device110. When the time period TMhas not expired, then block418may be followed by block414in which the second wireless communication device120may continue to listen for the next packet. When the time period TMhas expired, then block418may be followed by block412in which the second wireless communication device120may retransmit Y copies of the acknowledgement.

Optional block420may be used when the second wireless communication device120does not receive the last copy of the next packet in block416. In optional block420, the second wireless communication device120may be arranged to switch to a temporary sleep mode to conserve energy. Having received a copy of the packet, the second wireless communication device120may switch to the temporary sleep mode to avoid receiving any duplicative copy the packet. The length of the time the second wireless communication device120remains in the temporary sleep mode may depend on the copy number of the packet received in block416and the X copies of each packet. The second wireless communication device120may be arranged to remain in the temporary sleep mode until the last copy of the packet has been sent by the first wireless communication device110. Block420may be followed by block422.

At block422, the second wireless communication device120may be arranged to generate an acknowledgement in response to the packet received from the first wireless communication device110. Block422may be followed by optional block424.

At optional block424, the second wireless communication device may be arranged to determine X and Y on-line (i.e., in real time) using one or more of the current communication link conditions based on trace data, such as the current reception rates of the communication links, and send X and Y to the first wireless communication device110in another handshake. The second wireless communication device120may also decide to optimize X and Y differently based on the current device conditions, such as the current status of the battery charge of the devices. For example, the second wireless communication device120may decide to optimize X and Y for energy consumption over throughput and latency based on the battery charge of the devices. Optional block424may loop back to block412, where the second wireless communication device120may transmit Y copies of the new acknowledgment.

FIG. 5illustrates an example of the multi-copy transmission scheme500using batched acknowledgments in a wireless communication system in accordance with some embodiments of the present disclosure. Similar to scheme100, scheme500includes first wireless communication device110and second wireless communication device120as described above.

In operation, two sequentially transmitted packets and one batched acknowledgement for the two packets may be transmitted in each communication session. The nomenclature for the packets and the acknowledgements are explained above forFIG. 1and are not repeated here.

FIG. 6illustrates a table of example actions undertaken by wireless communication devices110and112inFIG. 5in each time epoch. Each illustrated communication session may take five time epochs (i.e., four packet transmissions plus one acknowledgement transmission). Three different example communication sessions are illustrated by the examples inFIGS. 5 and 6. The first example communication session is illustrated as packets M1and M2with batched acknowledgement A1,2. The second example communication session is illustrated as packets M3and M4with batched acknowledgement A4. The third example communication session is illustrated as packets M3and M5with batched acknowledgement A3,5.

In example time epochs1and2, the first wireless communication device110transmits two copies of packet M1to the second wireless communication device120. The second wireless communication device120receives the first copy of packet M1in example time epoch1. In response, the second wireless communication device120enters into a temporary sleep mode in example time epoch2to save power as it does not need to listen for the second copy of packet M1, since the first copy of the packet was successful received.

In example time epochs3and4, the first wireless communication device110transmits two copies of packet M2to the second wireless communication device120. In example time epoch3, the second wireless communication device120wakes up and listens for but does not receive the first copy of packet M2. In example time epoch4, the second wireless communication device120receives the second copy of packet M2.

In example time epoch5, the second wireless communication device120transmits a batched acknowledgement A1,2, which is received by the first wireless communication device110.

In example time epochs6and7, the first wireless communication device110transmits two copies of packet M3to the second wireless communication device120. However, the second wireless communication device120does not receive either copy of packet M3.

In example time epochs8and9, the first wireless communication device110transmits two copies of packet M4to the second wireless communication device120. In example time epoch8, the second wireless communication device120receives the first copy of packet M4. In response, the second wireless communication device120buffers packet M4in a queue and enters into the temporary sleep mode in example time epoch9to save power as it does not need to listen for the second copy of packet M4.

In example time epoch10, the second wireless communication device120transmits a batched acknowledgement A4, which is received by the first wireless communication device110. Batched acknowledgement A4indicates or implies to the first wireless communication device110that the second wireless communication device120has not received packet A3.

In example time epochs11and12, the first wireless communication device110retransmits two copies of packet M3to the second wireless communication device120. The second wireless communication device120receives the second copy of packet M3in example time epoch12and places the packet before packet M4in the queue.

In example time epochs13and14, the first wireless communication device110transmits two copies of packet M5, the next packet in the queue, to the second wireless communication device120. The second wireless communication device120receives the second copy of packet M5in example time epoch14.

In example time epoch15, the second wireless communication device120transmits a batched acknowledgement A3,5, which is received by the first wireless communication device110.

FIG. 7is a flowchart of an example method700executed by the first wireless communication device110for transmitting packets to the second wireless communication120device using the multi-copy transmission scheme ofFIGS. 5 and 6in accordance with one or more embodiments of the present disclosure. Method700includes one or more operations, functions, or actions illustrated by blocks702-720. The first wireless communication device110may be a base station, a mobile wireless device, or some other wireless communication device.

Method700may begin at block702, where the first wireless communication device110may determine N, the number of packets for each batch of packets to transmit to the second wireless communication device120, X1, the number of copies of each ith packet (out of N packets) to be transmit by the first wireless communication device110, and Y, the number of copies of each batched acknowledgement to be transmitted by the second wireless communication device120. In the example shown inFIGS. 5 and 6, N is 2, X1and X2are both 2, and Y is 1. X1and X2may be different numbers in order to keep the total number of copies down and the buffer for storing out of order packets small. In some embodiments, one or more of N and Xiis two or more. Theoretically, number N is unlimited but the practical limit in some examples may be approximately five packets.

Depending on the specific embodiment, the first wireless communication device110may be configured to optimize N, X1to XN, and Y using intensive calculations on trace data, Monte Carlo-based simulations on trace data, or by making calculations on-line (i.e., real time) with current trace data. The first wireless communication device110may be arranged to send N, X1to XN, and Y to the second wireless communication device120during a handshake for setting up the communication between the two devices. Alternatively, the second wireless communication device120may determine N, X1to XN, and Y and transmit the determined values to the first wireless communication110device during the handshake. Block702may be followed by block704.

At block704, the first wireless communication device110may transmit Xi copies of each ith packet in the current batch of N packets in a queue to the second wireless communication device120. The first wireless communication device110may be configured to mark each copy of the packets with a packet identifier that indicates its batch number, packet number, and copy number (e.g., batch #1, packet #1, copy #1out of Xi) so that the second wireless communication device120can discern which of the copies it has received. The first wireless communication device110may also be configured to start a timer to track the time since transmitting the current batch of packets. Block704may be followed by block706.

At block706, the first wireless communication device110may be configured to listen for a copy of a batched acknowledgement in response to the current batch of packets from the second wireless communication device120. Block706may be followed by block708.

At block708, the first wireless communication device110may be configured to determine if it has received a copy of the batched acknowledgement in response to the current batch of packets. When the first wireless communication device110has not received a copy of the batched acknowledgement, then block708may be followed by block710. When the first wireless communication device110has received a copy of the batched acknowledgment, then block708may be followed by optional block712.

At block710, the first wireless communication device may be configured to determine if a time period TA′ for receiving a copy of the batched acknowledgment has expired. The length of the time period TA′ may vary depending on the Y number of copies of the batched acknowledgement sent by the second wireless communication device120. The length of the time period TA′ may be set to allow the first wireless communication device110to receive the last copy of the batched acknowledgement sent by the second wireless communication device120. When the time period TA′ has not expired, then block710may be followed by block706in which the first wireless communication device110may continue to listen for a copy of the batched acknowledgement. When the time period TA′ has expired, then block710may be followed by block704in which the first wireless communication device110may retransmit Xicopies of each ith packet in the current batch of N packets in the queue.

Optional block712may be used when the second wireless communication device120transmits Y copies of the batched acknowledgement and the first wireless communication device110fails to receive the last copy of the batched acknowledgement in block706. In optional block712, the first wireless communication device110may be arranged to switch to a temporary sleep mode to conserve energy. Having received a copy of the acknowledgement, the first wireless communication device110may be configured to switch to the temporary sleep mode to avoid receiving any duplicative copy of the batched acknowledgment and consuming more resources (e.g. power, battery life, etc.). The length of the time the first wireless communication device110remains in the temporary sleep mode may depend in part on the copy number of the batched acknowledgement received in block708and the Y number of copies of each acknowledgement. The first wireless communication device110may be configured to remain in the temporary sleep mode until the last copy of the batched acknowledgement has been sent by the second wireless communication device120. Block712may be followed by block714.

At block714, the first wireless communication device110may be configured to determine if there are one or more unsent packets remaining in the queue and/or one or more packets unacknowledged in the last received batched acknowledgment. When there are no unsent packet and no unacknowledged packet, then block714may be followed by block716. When there are one or more unsent packets and/or one or more unacknowledged packets, then block714may be followed by block718.

At block716, the first wireless communication device110may be arranged to stop transmitting (e.g., cease transmitting or terminate transmission) packets since there are no more unsent packet in the queue or unacknowledged packet from the last transmitted batch of packets.

At block718, the first wireless communication device110may be arranged to update the status of the batches of packets in the queue. The next batch in the queue may become the current batch in the queue. The next batch may include one or more packets unacknowledged in the last received batched acknowledgment. Block718may be followed by optional block720.

At optional block720, the first wireless communication device110may be arranged to determine N, Xi, and Y on-line (i.e., in real time) using one or more of the current link conditions based on trace data, such as the current reception rates of the communication links, and send N, X1to XN, and Y to the second wireless communication device120in another handshake. The first wireless communication device110may also decide to optimize N, X1to XN, and Y differently based on the current device conditions, such as the current status of the battery charge of the devices. For example, the first wireless communication device110may decide to optimize N, X1to XN, and Y for energy consumption over throughput and latency based on the battery charge of the devices. Optional block720may loop back to block704in which the first wireless communication device110may transmit Xicopies of each ith packet in the current batch of N packets in the queue.

FIGS. 8A and 8Bare a flowchart of an example method800executed by the second wireless communication device120for receiving packets from the first wireless communication device110using the multi-copy transmission scheme ofFIGS. 5 and 6in accordance with one or more embodiments of the present disclosure. Method800includes one or more operations, functions or actions illustrated by blocks802-824. Second wireless communication device120may be a base station or a mobile wireless device, or some other wireless communication device.

Referring toFIG. 8A, method800may begin at block802, where the second wireless communication device120may be configured to determine N, the number of packets per batch to transmit to the second wireless communication device120, the Xi, the number of copies of the ith packet (out of N packets) to be transmitted by the first wireless communication device110, and Y, the number of copies of the acknowledgement to be transmitted by the second wireless communication device120. Depending on the embodiment, the second wireless communication device120may be arranged to optimize N, X1to XN, and Y using intensive calculations on trace data, Monte Carlo-based simulations on trace data, or by making calculations on-line (i.e., in real time) with current trace data. The second wireless communication device120may be arranged to send N, X1to XN, and Y to the first wireless communication device110during a handshake for setting up the communication between the two devices. Alternatively, the first wireless communication device110may be arranged to determine N, X1to XN, and Y and may transmit them to the second wireless communication device120during the handshake. Block802may be followed by block804.

At block804, the second wireless communication device120may be adapted to listen for a copy of a packet in a first batch of packets from the first wireless communication device110. Block804may be followed by block806.

At block806, the second wireless communication device120may be arranged to determine if it has received a copy of a packet in the first batch of packets from the first wireless communication device110. When the second wireless communication device120has not received a copy of a packet in the first batch, then block806may be followed by block804. When the second wireless communication device120has received a copy of a packet in the first batch, then block806may be followed by optional block808.

Optional block808may be used when the second wireless communication device120does not receive the last copy of the packet in block804. In optional block808, the second wireless communication device120may be arranged to switch to a temporary sleep mode to conserve energy. Having received a copy of a packet, the second wireless communication device120may switch to the temporary sleep mode to avoid receiving any duplicative copy of the packet and consuming more resources (e.g., power, battery life, etc.). The length of the time the second wireless communication device120remains in the temporary sleep mode may depend on the copy number of the packet received in block806and the Xinumber of copies of each ith packet (out of N packets). The second wireless communication device120may be configured to remain in the temporary sleep mode until the last copy of the packet has been sent by the first wireless communication device110. Block808may be followed by block810.

In block809, the second wireless communication device120may be arranged to determine if it has received a copy of the last packet in the first batch of packets. When the second wireless communication device120has not received a copy of the last packet in the first batch, then block809may be followed by block810. When the second wireless communication device120has received a copy of the last packet in the first batch, then block809may be followed by optional block811.

At block810, the second wireless communication device120may be arranged to generate a batched acknowledgement in response to receiving one or more packets in the first batch of packets from the first wireless communication device110. The batched acknowledgment may indicate the packets received and/or the packets that were not received. Block810may be followed by block812onFIG. 8A.

At block811, the second wireless communication device120may be arranged to determine if a time period TM′ for receiving the current batch of packets has expired. The length of the time period TM′ may vary depending on the N number of packets per batch of packets and Xicopies of each ith packet (out of N packets) sent by the first wireless communication device110. The length of the time period TM′ may be set to allow the second wireless communication device120to receive the last copy of the last packet in the current batch of packets sent by the first wireless communication device110. When the time period TM′ has not expired, then block811may be followed by block804in which the second wireless communication device120may continue to listen for a copy of a packet in the first batch of packets. When the time period TM′ has expired, then block811may be followed by block810in which the second wireless communication device120may generate the batched acknowledgement for the current batch of packets.

Referring toFIG. 8B, at block812, the second wireless communication device120may be arranged to transmit Y copies of the batched acknowledgement to the first wireless communication device. The second wireless communication device120may be adapted to mark each copy with acknowledgment identifier that indicates its copy number (e.g., copy #1out of Y, copy #y out of Y, etc.) so the first wireless communication device110can discern which of the copies it has received. The second wireless communication device120may also be arranged to start a timer to track the time since transmitting the copies of the current batched acknowledgement. Block812may be followed by block814.

At block814, the second wireless communication device120may be adapted to listen for a copy of a packet in the next batch of packets from the first wireless communication device110. Block814may be followed by block816.

At block816, the second wireless communication device120may be arranged to determine if it has received a copy of a packet in the next batch of packets from the first wireless communication device110. When the second wireless communication device120has not received a copy of a packet in the next batch, then block816may be followed by block818. When the second wireless communication device120has received a copy of a packet in the next batch, then block816may be followed by optional block820.

At block818, the second wireless communication device120may be arranged to determine if the time period TM′ for receiving the current batch of packets has expired. When the time period TM′ has not expired, then block818may be followed by block814in which the second wireless communication device120may continue to listen for the a copy of a packet in the current batch of packets. When the time period TM′ has expired, then block818may be followed by block812in which the second wireless communication device120may retransmit Y copies of the last batched acknowledgement.

Optional block820may be used when the second wireless communication device120does not receive the last copy of a packet in the current batch of packets in block816. In optional block820, the second wireless communication device120may be arranged to switch to a temporary sleep mode to conserve energy. The length of the time the second wireless communication device120remains in the temporary sleep mode may depend on the copy number of the packet received in block816and the Xi number of copies of each ith packet (out of N packets). The second wireless communication device120may be arranged to remain in the temporary sleep mode until the last copy of the packet has been sent by the first wireless communication device110. Block820may be followed by block821.

At block821, the second wireless communication device120may be arranged to determine if it has received a copy of the last packet in the current batch of packets in block816. When the second wireless communication device120has not received a copy of the last packet in the current batch, then block821may be followed by block818. When the second wireless communication device120has received a copy of the last packet in the current batch, then block821may be followed by optional block822.

At block822, the second wireless communication device120may be arranged to generate a batched acknowledgement in response to receiving one or more packets in the current batch of packets from the first wireless communication device110. The batched acknowledgment may indicate the packets received and/or the packets that were not received. Block822may be followed by optional block824.

At optional block824, the second wireless communication device may be arranged to determine N, Xi, and Y on-line (i.e., in real time) using one or more of the current communication link conditions based on trace data, such as the current reception rates of the communication links, and send N, X1to XN, and Y to the first wireless communication device110in another handshake. The second wireless communication device120may also decide to optimize N, X1to XN, and Y differently based on the current device conditions, such as the current status of the battery charge of the devices. For example, the second wireless communication device120may decide to optimize N, X1to XN, and Y for energy consumption over throughput and latency based on the battery charge of the devices. Optional block824may loop back to block812, where the second wireless communication device120may transmit Y copies of the new batched acknowledgment.

FIG. 9illustrates an example of the multi-copy transmission scheme900in a MIMO (Multiple Input Multiple Output) wireless communication system in accordance with one or more embodiments of the present disclosure. Scheme900includes a first wireless communication device910with transmitters912, receivers914, and a first array of antennas916. Scheme900also includes a second wireless communication device920with transmitters922, receivers924, and a second array of antennas926. The first wireless communication device910and the second wireless communication device920may be configured to establish bidirectional wireless communication links924-1to924-i (collectively “wireless communication links924”) between the devices.

To increase bandwidth, the first wireless communication device910may be arranged to transmit packets926-1,926-2, and926-i over respective wireless communication links924-1,924-2, and924-i to the second wireless communication device920. To improve the probability that the first wireless communication device910will receive acknowledgment from the second wireless communication device920, the second wireless communication device920may be arranged to transmit the same cross-link acknowledgment928over wireless communication links924to the first wireless communication device910. The cross-link acknowledgment928may indicate the packets received over wireless communication links924and/or the packets that were not received over wireless communication links924. For each wireless communication link, the cross-link acknowledgement928may acknowledge one packet as described above in the scheme ofFIGS. 1 to 4or one or more packets in a batch of packets as described above in the scheme ofFIGS. 5 to 8B.

To improve reliability over two wireless communication links with poor reception rates, the first wireless communication device910may be arranged to transmit the same packet over the two links to the second wireless communication device920. If a third wireless communication links with good reception rate is available, the first wireless communication device910may be arranged to transmit two different packets over the two poor links and an XOR result of the two packets over the good link to the second wireless communication device920. The XOR result on the good link may allow the second wireless communication device920to recover one packet as long as the other packet is received correctly.

FIG. 10illustrates a table of example actions that may be undertaken by wireless communication devices910and912over wireless communication links924-1and924-2inFIG. 9, where a cross-link acknowledgement acknowledges one packet per link in one or more embodiments of the present disclosure. Each illustrated communication session may take three time epochs (i.e., two packet transmissions plus one acknowledgement transmission). One example communication session is illustrated inFIG. 10. The example communication session is illustrated as packets M1and M2with cross-link acknowledgement A1.

In example time epochs1and2, the first wireless communication device910may transmit two copies of packet M1to the second wireless communication device920over wireless communication link924-1. Also in example time epochs1and2, the first wireless communication device910may transmit two copies of packet M2to the second wireless communication device920over wireless communication link924-2.

In example time epoch1, the second wireless communication device920may receive the first copy of packet M1over wireless communication link924-1. In response, the second wireless communication device920may configure its receiver914for wireless communication link924-1into a temporary sleep mode in example time epoch2to save power as it does not need to listen for the second copy of packet M1, since the first copy of the packet was successful received. In example time epochs1and2, the second wireless communication device120may listen for but does not receive either copy of packet M2over wireless communication link924-2.

In example time epoch3, the second wireless communication device920may transmit a cross-link acknowledgement A1over wireless communication links924-1and924-2, which may be received by the first wireless communication device910over wireless communication link924-2. Cross-link acknowledgment A1may indicate to the first wireless communication device910that packet M2was not received and may be retransmitted.

FIG. 11illustrates a table of example actions that may be undertaken by wireless communication devices910and912over wireless communication links924-1and924-2inFIG. 9, where a cross-link batched acknowledgement acknowledges two packets per link in one or more embodiments of the present disclosure. Each illustrated communication session may take five time epochs (i.e., four packet transmissions plus one acknowledgement transmission). One example communication sessions is illustrated inFIG. 11. The example communication session is illustrated as packets M1, M2, M3, and M4with cross-link batched acknowledgement A1,3,4.

In example time epochs1and2, the first wireless communication device910may transmit two copies of packet M1to the second wireless communication device920over wireless communication link924-1. Also in example time epochs1and2, the first wireless communication device910may transmit two copies of packet M2to the second wireless communication device920over wireless communication link924-2.

In example time epoch1, the second wireless communication device920may receive the first copy of packet M1over wireless communication link924-1. In response, the second wireless communication device920may configure its receiver924for wireless communication link924-1into a temporary sleep mode in example time epoch2to save power as it does not need to listen for the second copy of packet M1, since the first copy of the packet was successful received. In example time epochs1and2, the second wireless communication device120may listen for but does not receive either copy of packet M2over wireless communication link924-2.

In example time epochs3and4, the first wireless communication device910may transmit two copies of packet M3to the second wireless communication device920over wireless communication link924-1. Also in example time epochs1and2, the first wireless communication device910may transmit two copies of packet M4to the second wireless communication device920over wireless communication link924-2.

In example time epoch3, the second wireless communication device920may receive the first copy of packet M4over wireless communication link924-2. In response, the second wireless communication device920may configure its receiver924for wireless communication link924-2into a temporary sleep mode in example time epoch4to save power as it does not need to listen for the second copy of packet M1, since the first copy of the packet was successful received. In example time epoch4, the second wireless communication device120may receive the second copy of packet M3over wireless communication link924-1.

In example time epoch5, the second wireless communication device920may transmit a cross-link batched acknowledgement A1,3,4over wireless communication links924-1and924-2, which may be received by the first wireless communication device910over wireless communication link924-2. Cross-link acknowledgment A1,3,4may indicate to the first wireless communication device910that packet M2should be retransmitted.

FIG. 12is a flowchart of an example method1200executed by the first wireless communication device910for sending packets to the second wireless communication device920using the scheme ofFIG. 10or11in accordance with one or more embodiments of the present disclosure. Method1200includes one or more operations, functions or actions illustrated by blocks1202-1206. First wireless communication device910may be a base station or a mobile wireless device, or some other wireless communication device.

At block1202, the first wireless communication device910may determine which of wireless communication links924to use to communicate with the second wireless communication device120, the number N of packets for each batch of packets to transmit to the second wireless communication device120, the number Xi of copies of each ith packet (out of N packets) to be transmitted by the first wireless communication device910, and the number Y of copies of each acknowledgement to be transmitted by the second wireless communication device920. In the example shown inFIG. 10, N is 1, X1is 2, and Y is 1. In the example shown inFIG. 11, N is 2, X1and X2are both 2, and Y is 1. Note that X1and X2may be different numbers in order to keep the total number of copies down and the buffer for storing out of order packets small. In some embodiments, one or more of N and Xiis two or more.

Depending on the embodiment, the first wireless communication device910may be arranged to optimize these parameters using intensive calculations on trace data, Monte Carlo-based simulations on trace data, or by making calculations on-line (i.e., in real time) with current trace data. The first wireless communication device910may be arranged to send these parameters to the second wireless communication device920during a handshake for setting up the communication between the two devices. Alternatively, the second wireless communication device920may be arranged to determine these parameters and may transmit them to the first wireless communication device910during the handshake. Block1202may be followed by block1204.

At block1204, the first wireless communication device910may be configured to apply method300modified for cross-link acknowledgments for the scheme shown inFIG. 10. In the modified method300, block302and optional block320may be replaced by blocks1202described above and optional block1206described below, respectively. The remainder of the blocks in method300may be applied to each wireless communication link, and block308may be modified so that the first wireless communication device910may determine if a copy of the cross-link acknowledgement has been received over any of the wireless communication links924as any copy of the cross-link acknowledgment would indicate the packets that should be retransmitted.

Alternatively, the first wireless communication device910may be configured to apply method700modified for cross-link batched acknowledgments for the scheme shown inFIG. 11. In the modified method700, block702and optional block720may be replaced by blocks1202described above and optional block1206described below. The remainder of the blocks in method700may be applied to each wireless communication link, and block708may be modified so that the first wireless communication device910may determine if a copy of the cross-link batched acknowledgement has been received over any of the wireless communication links924as any copy of the cross-link batched acknowledgment would indicate the packets that should be retransmitted. Block1204may be followed by optional block1206.

At optional block1206, the first wireless communication device910may be arranged to determine the link selection, N, Xi, and Y on-line (i.e., in real time) using one or more of the current link conditions based on trace data, such as the current reception rates of the wireless communication links, and send the parameters to the second wireless communication device920in another handshake. The first wireless communication device910may also be arranged to decide to optimize the link selection, N, X1to XN, and Y differently based on the current device conditions, such as the current status of the battery charge of the devices. For example, the first wireless communication device910may decide to optimize the link selection, N, X1to XN, and Y for energy consumption over throughput and latency based on the battery charge of the devices. Optional block1206may loop back to block1204in which the first wireless communication device910may transmit packets.

FIG. 13is a flowchart of an example method1100executed by the second wireless communication device920for receiving packets from the first wireless communication device910using the scheme ofFIG. 10or11in accordance with one or more embodiments of the present disclosure. Method1300includes one or more operations, functions or actions illustrated by blocks1302-1306. Second wireless communication device920may be a mobile wireless device or a base station, or some other wireless communication device.

At block1302, the second wireless communication device920may be arranged to determine which of wireless communication links924to use to communicate with the first wireless communication device910, the number N of packets per batch to be transmitted by the first wireless communication device910, the number Xiof copies of each ith packet (out of N packets) to be transmitted by the first wireless communication device910, and the number Y of copies of the acknowledgement to be transmitted by the second wireless communication device920. Depending on the embodiment, the second wireless communication device920may be arranged to optimize these parameters using intensive calculations on trace data, Monte Carlo-based simulations on trace data, or by making calculations on-line (i.e., in real time) with current trace data. The second wireless communication device920may be adapted to send these parameters to the first wireless communication device910during a handshake for setting up the communication between the two devices. Alternatively, the first wireless communication device910may be arranged to determine these parameters and may transmit them to the second wireless communication device920during the handshake. Block1302may be followed by block1304.

At block1304, the second wireless communication device920may be configured to apply method400modified for cross-link acknowledgments for the scheme shown inFIG. 10. In the modified method400, block402and optional block424may be replaced by blocks1302described above and optional block1306described below, respectively. The remainder of the blocks in method400may be applied to each wireless communication link, and blocks410and422may be modified so the second wireless communication device920may generate a cross-link acknowledgement that indicates or implies the packets that should be retransmitted.

Alternatively, the second wireless communication device920may be arranged to apply method800modified for cross-link batched acknowledgments for the scheme shown inFIG. 11. In the modified method800, block802and optional block824may be replaced by blocks1302described above and optional block1306described below, respectively. The remainder of the blocks in method800may be applied to each wireless communication link, and blocks810and822may be modified so the second wireless communication device920may generate a cross-link batched acknowledgement that indicates or implies the packets that should be retransmitted. Block1304may be followed by optional block1306.

At optional block1306, the second wireless communication device920may be arranged to determine the link selection, N, Xi, and Y on-line (i.e., in real time) using one or more of the current link conditions based on trace data, such as the current reception rates of the wireless communication links, and send the parameters to the first wireless communication device910in another handshake. The second wireless communication device920may also be arranged to decide to optimize the link selection, N, X1to XN, and Y differently based on the current device conditions, such as the current status of the battery charge of the devices. For example, the second wireless communication device920may decide to optimize the link selection, N, X1to XN, and Y for energy consumption over throughput and latency based on the battery charge of the devices. Optional block1306may loop back to block1304in which the second wireless communication device920may transmit acknowledgment.

The presently described multi-copy transmission scheme may be optimized for one or more of throughput, latency, and energy consumption by adjusting the number N of packets per batch, the number Xiof copies of each ith packet (out of N packets), and the number Y of copies of each acknowledgement acknowledgments transmitted, and by selecting which of the available wireless communication links between the devices to use. In some examples, one metric (throughput, latency, or energy consumption) may be optimized while imposing the other metrics as constraints or a Pareto optimal solution can be determined where one metric is improved without worsening the other metrics. For example, a multi-copy transmission scheme optimized for latency may be balanced for throughput optimization and/or energy minimization. Similarly, a multi-copy transmission scheme optimized for energy consumption may be balanced for latency and throughput optimization.

The described multi-copy transmission schemes may be optimized for throughput relative to the context of the packet. For example, real time movies may require large throughput, so the ideal combination of N, Xiand Y may be determined relative to the data type (e.g., real time movies) for the packet payload. In addition, content that is merely synchronized or stored (where latency is not an issue or not that important) may be satisfied with lower throughput which can result in lower energy consumption.

The multi-copy transmission scheme may be optimized for one or more of throughput, latency, and energy consumption. Techniques for optimization may utilize intensive calculations based on long trace data to determine an approximately optimal combination of N, Xi, Y, and link selection. The optimization may impose strong abstractions about the known and constant reception rates of each of the wireless communication links (forward and backward), their statistical independence, and may derive closed form formula for expected communication cost in terms of expected time and/or consumed energy. Optimization techniques include linear programming, convex programming, non-linear programming, simulated annealing, taboo search, genetic algorithms, simulated evolution, iterative improvement, neighborhood search, parallel tempering, and stochastic tunneling.

Instead of using actual trace data, a Monte Carlo-based simulation that considers the whole complexity of actually deployed systems in their complex environments may be used to determine the optimal combination of N, Xi, Y, and link selection. The Monte Carlo-based simulation may be augmented with data driven statistical analysis of the obtained results. Short trace data from actually deployed wireless communication devices or simulated short trace data from statistical models may be used to perform the Monte-Carlo simulation. Note that simulated trace data may not be able to capture some prosperities such as variable reception rates of each link, autocorrelation, mutual link correlation in MIMO systems, level of asymmetry, etc. This scheme can be used to approximately optimize any relevant quality of communication service metrics, including one or more of maximal allowed latency, throughput, and/or energy consumption at one or both communicating devices. Monte Carlo-based simulation may be followed by statistical analysis in order to minimize the required number of trace data. For example, the instances with similar input parameters can be smoothed. Its effectiveness can be further improved if biased trace data are produced to steer the simulation in a desired direction. Monte Carlo-based simulation techniques include importance sampling, stratified sampling, recursive stratified sampling, Las Vegas algorithm, Markov chain Monte Carlo (MCMC), random walk algorithms, avoiding random walk algorithms, reversible jump, etc. Statistical analysis techniques include linear regression, polynomial regression, logistic regression, neural networks, kernel density estimation, splines, wavelets, probit regression, ordered logic regression, isotonic regression, generalized linear models, etc.

FIG. 14illustrates an example wireless device1400for implementing embodiments of the multi-copy transmission scheme of the present disclosure. Wireless device1400includes a processor1402, memory1404, and one or more drives1406. Drives1406may be arranged to provide storage of one or more of an operating system1408, application programs1410, a multi-copy transmission module1412, and data1414. Processor1402may be arranged to load multi-copy transmission module1412into memory1404, execute module1412to modify data1414, and save data1414in drives1406.

Wireless device1400may further include an input interface1416through which commands and data may be entered. Input devices may be coupled to the input interface1416, and may comprise an electronic digitizer, a microphone, a keyboard or a pointing device, commonly referred to as a mouse, trackball or touch pad. Other example input devices may include a joystick, game pad, satellite dish, scanner, or the like.

These and other input devices can be coupled to processor1402through the input interface1416that may be coupled to a system bus1418, but may be coupled by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). Wireless device1400may also include other peripheral output devices such as speakers and video displays which may be coupled through an output interface1420or the like.

Wireless device1400may communicate with one or more remote devices in a wireless communication network1424through one or more radios1422(e.g., transmitters and receivers). A remote device may be another wireless device, a personal computer (PC), a server, a router, a network PC, a mobile phone, a peer device, or other common network node, and can include many or all of the elements described above relative to wireless device1400.

According to one embodiment, wireless device1400may be coupled to a wireless networking environment such that the processor1402and/or program modules1412can perform the multi-copy transmission scheme with embodiments herein.

FIG. 15is a block diagram illustrating a computer program product1500for first wireless communication device110or910in embodiments of the present disclosure. Computer program product1500may include one or more sets of instructions1502for executing the methods of the presently disclosed multi-copy transmission schemes. Computer program product1500may be transmitted in a signal bearing medium1504or another similar communication medium1506. Computer program product1500may be recorded in a computer readable medium1508or another similar recordable medium1510.

FIG. 16is a block diagram illustrating a computer program product1600for second wireless communication device120or920arranged in accordance with some embodiments of the present disclosure. Computer program product1600may include one or more sets of instructions1602for executing the presently disclosed methods of the multi-copy transmission scheme. Computer program product1600may be transmitted in a signal bearing medium1604or another similar communication medium1606. Computer program product1600may be recorded in a computer readable medium1608or another similar recordable medium1610.