The present disclosure relates generally to communications systems, and in particular to the use of network coding in cellular communications systems.
Newer generation cellular communications systems, such as 4G systems like 3rd Generation Partnership Project (3GPP) Long Term Evolution (LTE), are being marketed to consumers by service providers as facilitating services that were not possible only a few years ago, such as streaming high-definition video while travelling in a vehicle. As larger numbers of consumers purchase user equipment devices, such as smartphones, service providers may find themselves increasingly unable to deliver a promised quality of service due to dramatically increased demand on bandwidth, leading to customer dissatisfaction. Installing additional hardware, such as base stations, to provide additional bandwidth is expensive and time-consuming, and it cannot be done everywhere all at once. Accordingly, mechanisms for more efficiently exchanging data between devices operating in a cellular communications system would be highly desirable.
The present disclosure relates to mechanisms for efficiently exchanging data in a cellular communications system. Such mechanisms involve the use of network coding, which involves applying a network coding function to, for example, first and second packets of data to form a single network coded packet of data. If a receiver of a network coded packet contains a copy of one of the packets encoded in the network coded packet, for example, the first packet, the receiver can use the copy of the first packet in conjunction with a network decoding function to extract the second packet from the network coded packet.
In one embodiment, a network node, such as an eNodeB base station for example, wirelessly multicasts a stream of packets, including a first packet and a second packet, to a plurality of devices, including a first device and a second device. The stream of packets might comprise, for example, a broadcast of a television program. The network node receives a first indication, such as a negative acknowledgment (NACK), from the first device that the first device did not successfully receive the first packet. The network node also receives a second indication from the second device that the second device did not successfully receive the second packet. In response to the first indication and the second indication, the network node network codes the first packet and the second packet to form a network coded packet. The network node then multicasts the network coded packet to the first device and the second device in the same time slot.
The first device and the second device receive the network coded packet, and utilize the successfully received packets to extract from the network coded packet the respective packet that was not received correctly. In particular, the first device uses the second packet to extract the first packet from the network coded packet, and the second device uses the first packet to extract the second packet from the network coded packet.
In one embodiment, prior to sending the network coded packet to the first device, the network node sends a first scheduling message to the first device that indicates that the first packet will be re-multicasted in a subsequent network coded packet. The first scheduling message may also indicate that the network coded packet will be network coded using the first packet and the second packet. Similarly, the network node sends a second scheduling message to the second device that indicates that the second packet will be re-multicasted in the subsequent network coded packet. The second scheduling message may also indicate that the network coded packet will be network coded using the first packet and the second packet.
In another embodiment, a first device, such as an eNodeB base station, exchanges packets with a second device, such as a user equipment device, via a relay network node, such as a picocell node or a femtocell node, for example. The relay network node receives a first scheduling message that directs the relay network node to network code a first packet to be received from the first device with a second packet to be received from the second device. The relay network node receives the first packet and the second packet, and network codes the first packet and the second packet to form a network coded packet.
The relay network node sends the network coded packet to the first device and the second device during a same time slot. The first device and the second device use the respective packet that such device provided to the relay network node to extract the other packet from the network coded packet. In particular, the first device uses the first packet to extract the second packet from the network coded packet, and the second device uses the second packet to extract the first packet from the network coded packet.
The first device may then send a first indication to the relay network node that the network coded packet was received by the first device. The second device may also send a second indication to the relay network node that the network coded packet was received by the second device. In response to receiving the first indication and the second indication, the relay network node may release the first packet and the second packet.
Those skilled in the art will appreciate the scope of the present disclosure and realize additional aspects thereof after reading the following detailed description of the preferred embodiments in association with the accompanying drawing figures.
The accompanying drawing figures incorporated in and forming a part of this specification illustrate several aspects of the disclosure, and together with the description serve to explain the principles of the disclosure.
The embodiments set forth below represent the necessary information to enable those skilled in the art to practice the embodiments and illustrate the best mode of practicing the embodiments. Upon reading the following description in light of the accompanying drawing figures, those skilled in the art will understand the concepts of the disclosure and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims.
The present disclosure relates generally to the use of network coding of packets in a cellular communications system to more efficiently transmit data and thereby increase throughput. For purposes of illustration, the embodiments will be discussed in the context of a 4G 3rd Generation Partnership Project (3GPP) Long Term Evolution (LTE) cellular communications system, but the embodiments are not limited to any particular type of cellular communications system. The embodiments disclosed herein utilize novel network coding techniques that more efficiently utilize network resources, thereby increasing throughput in a cellular communications system.
Before delving into the details of the present embodiments, network coding will initially be discussed to provide context for the subsequent discussion of the present embodiments.
The term “packet” is used herein to refer to any unit of data which the network coding function 10 is capable of inputting in order to network code the unit of data. Thus, a packet may comprise, for example, one or more messages, or one or more sub-units of data, such as one or more Internet Protocol (IP) packets, user datagram packets, or the like. The use of ordinals such as “first” or “second” herein is solely to distinguish elements that otherwise may have similar or identical names, such as the “first packet 12” and the “second packet 14,” and does not imply an importance, priority, or other attribute unless otherwise explicitly stated herein.
The network coding function 10 is typically a logical operation or function, such as an exclusive OR (XOR) function, that operates on the bits of data in the first packet 12 and the second packet 14 to form the network coded packet 16. The network coded packet 16 comprises a fewer number of bits than the total number of bits in both the first packet 12 and the second packet 14, and yet, when properly decoded, both the first packet 12 and the second packet 14 can be extracted from the network coded packet 16. The symbol “0” may be used in the drawings to depict network coded packets. While for purposes of illustration the network coding function 10 is illustrated as network coding two packets, the network coding function 10 is not limited to network coding only two packets, and a greater number of packets may be network coded to thereby form a network coded packet from which each of such greater number of packets may be extracted when properly decoded.
Assume that the network node 26 is multicasting a stream of video packets from the Internet 38 to the UE devices 28 and 30. As used herein, “multicasting” refers to any point-to-multipoint transmission technique wherein multiple receivers can receive a single transmission of data. For example, in the context of a 3GPP cellular communications system 25, point-to-multipoint transmissions may be implemented via the Multimedia Broadcast and Multicast Service (MBMS). As another example, in the context of a 3GPP2 cellular communications system 25, point-to-multipoint transmissions may be implemented via Broadcast and Multicast Service (BCMCS). Accordingly, the network node 26 transmits each video packet once, and each of the UE devices 28, 30 independently receives the video packet, absent a receive error. However, from time to time, either or both of the UE devices 28, 30 may encounter interference and be unable to receive particular packets, or may receive corrupted packets. In this situation, the network node 26 retransmits the particular packets to the affected UE devices 28, 30.
The UE device 28 then uses the network coded packet and the successfully received second packet to decode the network coded packet to extract from the network coded packet the first packet. Similarly, the UE device 30 uses the successfully received first packet to extract from the network coded packet the second packet. In this manner, by network coding the first packet and the second packet into a network coded packet and multicasting the network coded packet to both the UE device 28 and the UE device 30 in a same time slot, the cellular communications system 25 utilizes only a single time slot (i.e., one network resource) to provide multiple devices retransmitted packets, as opposed to using multiple time slots (i.e., multiple network resources) for each such retransmitted packets.
In one embodiment, in response to the first indication 44, the network node 26 sends a first scheduling message 48 to the UE device 28 that indicates that the first packet 40 will be re-multicasted in a network coded packet 50. The first scheduling message 48 may further indicate that the network coded packet 50 will be network coded using the first packet 40 and the second packet 42. The network node 26 sends a second scheduling message 52 to the UE device 30 that indicates that the second packet 42 will be re-multicasted in the network coded packet 50 to the UE device 30. The second scheduling message 52 may further indicate that the network coded packet 50 will be network coded using the first packet 40 and the second packet 42. The network node 26 then wirelessly multicasts the network coded packet 50 to both the UE device 28 and the UE device 30 concurrently during a time slot T3.
The cellular communications system 60 includes a plurality of devices, including network nodes 62, and relay network nodes 64, 66, as well as UE devices 68, 74. The network node 62 may comprise, for example, an eNodeB base station that communicates with the UE devices 68, 70 via the relay network node 66, which may comprise, for example, a femtocell base station, such as a 3GPP HeNB base station, or the like. A wired communication link 71 may couple the relay network node 66 to the network node 62. While not illustrated, it will be appreciated that the wired communication link 71 may include one or more devices in the path of data between the relay network node 66 and the network node 62, such as routers or the like. The network node 62 may communicate with the UE devices 72, 74 via a relay network node 64, which may comprise, for example, a wireless relay base station. A wireless communication link 75 may couple the relay network node 66 to the network node 62. The S-GW/MME 36 provides the network node 62 with access to the Internet 38.
Since the network node 62 has successfully extracted the second packet from the network coded packet, the network node 62 can release the first packet (step 320). Similarly, because the UE device 68 has successfully extracted the first packet from the network coded packet, the UE device 68 can release the second packet (step 322). In response to the indications received from the network node 62 and the UE device 68, the relay network node 66 can also safely release the first and second packets (step 324).
In one embodiment, the network node 62 is aware of the time slot in which the UE device 68 will send the second packet to the relay network node 66. The network node 62 schedules the sending of the first packet to the relay network node 66 in the same time slot during which the UE device 68 is scheduled to send the second packet to the relay network node 66. In this embodiment, rather than requiring four time slots to convey the first packet from the network node 62 through the relay network node 66 to the UE device 68, and the second packet from the UE device 68 to the network node 62 through the relay network node 66, only two time slots are required, thus saving 50% of the resources that would otherwise be needed.
Those skilled in the art will appreciate that the block diagram of the node 80 necessarily omits numerous features that are not necessary to a complete understanding of this disclosure. Although all of the details of the processing subsystem 84 are not illustrated, the processing subsystem 84 comprises one or several general-purpose or special-purpose microprocessors 86 or other microcontrollers programmed with suitable software programming instructions and/or firmware to carry out some or all of the functionality of the network nodes described herein. In addition, or alternatively, the processing subsystem 84 may comprise various digital hardware blocks (e.g., one or more Application Specific Integrated Circuits (ASICs), one or more off-the-shelf digital or analog hardware components, or a combination thereof) configured to carry out some or all of the functionality of the network nodes described herein. The node 80 may also include one or more storage media for storing data necessary and/or suitable for implementing the functionality described herein, as well as for storing programming instructions which, when executed on the microprocessors 86, may implement all or part of the functionality described herein.
Those skilled in the art will appreciate that the block diagram of the UE device 88 necessarily omits numerous features that are not necessary to a complete understanding of this disclosure. Although all of the details of the processing subsystem 92 are not illustrated, the processing subsystem 92 comprises one or several general-purpose or special-purpose microprocessors 94 or other microcontrollers programmed with suitable software programming instructions and/or firmware to carry out some or all of the functionality of the UE device 88 described herein. In addition, or alternatively, the processing subsystem 92 may comprise various digital hardware blocks (e.g., one or more ASICs, one or more off-the-shelf digital or analog hardware components, or a combination thereof) configured to carry out some or all of the functionality of the UE device 88 described herein. The UE device 88 may also include one or more storage media for storing data necessary and/or suitable for implementing the functionality described herein, as well as for storing programming instructions which, when executed on the microprocessors 94, may implement all or part of the functionality described herein.
The following acronyms are used throughout this disclosure:
Those skilled in the art will recognize improvements and modifications to the preferred embodiments of the present disclosure. All such improvements and modifications are considered within the scope of the concepts disclosed herein and the claims that follow.