Efficient Transmission Of Information To Multiple Nodes Using Cooperative Feedback Requests
A system and method to reduce the number of data transmissions between nodes in a network is described. In one embodiment, a system and method for reducing the amount of ACK and NAK traffic in a network is described.
This application is a continuation of co-pending U.S. application Ser. No. 13/668,758 filed Nov. 5, 2012 which claims the benefit of U.S. Provisional Application No. 61/556,204 filed Nov. 5, 2011 both of which are incorporated by reference herein in their entireties.
GOVERNMENT RIGHTSThis work was supported by the United States Department of the Air Force under Contract No. FA8721-05-C-0002. The Government has certain rights in this invention.
FIELDThis application generally relates to transmitting information and more particularly to efficient and reliable distribution of content (including, but not limited to video, images, or documents) among users.
BACKGROUNDIn conventional communications systems acknowledgments are either performed on an end-to-end basis, such as with TCP, or else on a hop-by-hop basis, as is accomplished with link layer acknowledgements. Such acknowledgements conventionally are in the form of feedback about specific packets or groups of specific packets.
Network coding enables feedback to consist only of the number of packets received or missing, as the identity of specific individual packets is no longer needed with coding.
The problem of reliable multicast can be difficult, particularly in a mobile ad hoc network (MANET). If each node must acknowledge every packet it receives, and the number of nodes in a network is large, or the number of simultaneous multicast messages transmitted is sizable, a so-called “acknowledgment explosion” (or “ACK explosion”) can result.
It would be desirable to provide a system and technique for efficient transmission of information to multiple nodes in a network. In particular, it would also be desirable to provide a system and technique for efficient and reliable distribution of video or other content to users.
SUMMARYThe systems and techniques described herein relate to the concept of efficiently transmitting data in a network. The systems and techniques described herein may specifically be used to reduce the amount of traffic in a network while still enabling timely feedback and message delivery in the network. The systems and techniques described herein find application in a number of different types of multicast systems.
In accordance with one aspect of the concepts described herein, a system and method to reduce the number of data transmissions between nodes in a network, while still ensuring message delivery, is described. As described herein, the nodes may have a priori knowledge of the probability that a packet transmitted from a specified node can be correctly received by any other specified nodes. Such a priori knowledge can come from location information that the nodes receive about each other, as well as from a channel model.
In accordance with a further aspect of the concepts described herein, a system and method for reducing the amount of acknowledgement (ACK) and negative acknowledgement (NAK) traffic in a network is described.
In accordance with a further aspect of the concepts described herein, a system and method for conserving power in mobile and other devices connectable to a network is described.
In accordance with a still further aspect of the concepts described herein, a system and method for using location information in nodes coupled to a network to determine if the nodes have sufficient knowledge to perform cooperative feedback within the network is described. In one embodiment, cell phone GPS systems are used to provide location information of a network node and the location in formation is used to determine whether a node can send a cooperative feedback request.
In accordance with a still further aspect of the concepts described herein, a system and method for forming and delivering new types of messages for transmitting feedback efficiently is described.
In accordance with a still further aspect of the concepts described herein, a system and method for utilizing probabilistic knowledge on the state of a system as a means to decrease the amount of feedback needed in the system is described.
It should be appreciated that the concepts, systems and techniques described herein apply equally well to single hop and multi-hop systems.
The concepts, systems and techniques described herein provide a number of advantages including, but not limited to: (1) more efficient use of network bandwidth; (2) more efficient use of time; and (3) more efficient use of power at network nodes (e.g., longer battery life in nodes which operate on batteries such as mobile phones, tablets, or other devices). Thus, the concepts, systems and techniques described herein result in a generally more efficient use of multiple resources (including, but not limited to resources such as bandwidth, time, power) during transmission of information from a source node or source nodes to one or more other nodes.
In accordance with the concepts, systems and techniques described herein, a system and method which greatly reduces the amount of traffic used for ACKSs and NAKs, while still enabling timely feedback is described.
In some embodiments described herein, a wireless network, in which there will be packet losses is considered. Nodes in the network can “overhear” and store information that they receive with a sufficiently high signal to noise plus interference ratio. When intermediate “relay nodes” are used between a source and a destination, it is assumed that random linear network coding is used by such intermediate relay nodes to combine packets they receive from other nodes, before repromulgating the received information. When such a random linear combination is transmitted, all nodes within reception range of the relay node can thereby receive an implicit acknowledgment as to how many degrees of freedom that relay node has already received. In addition, the number of degrees of freedom received by other nodes, or from blocks from other flows of which the relay node has knowledge, can also potentially be piggybacked on to the new random linear combination. Similarly, new traffic originating at any node can potentially piggyback information pertaining to the degrees of freedom received from other blocks from other flows.
Thus, a node's view of the state of the system could in many cases be piggybacked on to periodic messages (e.g. periodic control messages), without significant additional bandwidth cost. Such periodic messages could be used by the nodes that hear them to update their own views of the state of the system. The state of the system is defined as the number of degrees of freedom each node has received from each block of original information packets from each flow. Part of a node's view of the state of the system in some cases could be given probabilistically, based upon a channel model, locations of other nodes, the transmissions heard by the node, and knowledge of the packets transmitted by the node.
When a non-source node's knowledge indicates that all destination nodes have, with high probability, received all the degrees of freedom from a block, then that node can send out a cooperative feedback request (also sometimes referred to herein as a “auction message”) in order to confirm that transmissions of additional coded packets derived from that block can cease. That is, the non-source node can send an ACK or other nodes. Such an auction message could, for example, be appended to some other message (e.g. a periodic control message) the node would be sending anyway.
When a node's knowledge indicates, with high probability, that some nodes have not received all coded packets from a source, then that node can send out a cooperative feedback request corresponding to a negative acknowledgement or NAK. In one embodiment, another node responds to the auction message with a NAK only if at least one of two criteria holds: first, the node's view of the state of the system differs from that in the auction message, which claims a block is completely received by all destinations; or second, if the node has knowledge, (i.e. the node has information stored therein or has access to information or can compute information) that a distant node may have been unable to hear the auction message and that the distant node may not have all the degrees of freedom of the block which the auction message advertises as being completely received. In this latter case, the NAK can potentially serve to inform the distant node of the auction message, which can then respond to this NAK. The node's knowledge may, for example, be based at least in part upon one or more of node location information, a probabilistic channel model and/or piggy backed information overheard.
Non-source nodes that receive a NAK can respond by transmitting random linear combinations from the needed block of packets. A node that responds to a NAK by transmitting more such coded packets is not necessarily the node that sent the auction message, but rather can be selected based upon criteria including its proximity to nodes missing degrees of freedom. Accordingly, the node that transmits the auction message does not necessarily even have to receive the NAK, as long as another suitably positioned node does. Thus, not all NAKs need to be successfully received by all nodes, including the source node.
For example, on a collision channel with capture, survival through a collision of only one NAK will suffice to enable a receiving node to know that more degrees of freedom are required before transmission of the block can cease. The number of random linear combinations that should be transmitted by a node can be determined by the probabilistic channel model, the node locations, and the number of degrees of freedom still missing at destination nodes.
In summary, the amount of traffic dedicated to feedback can be reduced through several mechanisms. First, a relay node that transmits coded combinations of packets can also thereby inform other nodes of the degrees of freedom it has already received. Secondly, acknowledgements for numbers degrees of freedom, rather than for individual packets, can be piggybacked onto several types of messages, with little, if any, overhead in many cases; these message types include periodic control messages, new blocks of information originating from a node, and coded repromulgated information being “relayed” from a node. Finally, when any node's knowledge accumulated from these various message types, as well as from the channel model and knowledge of the locations of other nodes, indicates that all destination nodes have with high probability received all degrees of freedom for a block of packets, that node can send one or more cooperative feedback request messages stating this premise.
Only if other nodes disagree with the premise, do they send NAKs. Since a cooperative feedback request is issued only after a node has knowledge that indicates all other nodes have all degrees of freedom for a block with high probability, statistically there will be few NAKs transmitted in response to such auction messages. Furthermore, a NAK need not be sent all the way back to the node that originated transmissions of the block; it only needs to reach another node that has all of the degrees of freedom from that block.
In addition to the new types of messages for transmitting feedback efficiently, also described is the use of probabilistic knowledge on the state of the system as a means to decrease the amount of feedback needed within a network.
In accordance with a still further aspect of the concepts described herein, in systems in which nodes have knowledge of each others' locations (e.g. such as in applications utilized by smart phones), this type of knowledge is leveraged in an efficient feedback protocol as described herein.
In accordance with a still further aspect of the concepts described herein a system and method to reduce the number of data transmissions between nodes in a network comprises a plurality of nodes, each for the nodes capable of sending an ACK or a NAK for at least one other node in the network.
In accordance with a still further aspect of the concepts described herein a system and method for reducing the amount of ACK and NAK traffic in a network comprises a plurality of nodes, each for the nodes capable of sending an ACK or a NAK for at least one other node in the network and wherein each of the nodes broadcasts its ACK or NAK.
In accordance with a still further aspect of the concepts described herein is a system and method for conserving power in mobile and other devices connectable to a network wherein each of the mobile devices conserves battery power as a result of: (a) transmitting fewer ACK and/or NAK messages; (b) sending additional coded packets over paths that require less power (such as shorter distances); (c) sending fewer total coded packets.
In accordance with a still further aspect of the concepts described herein, a system and method for using location information in nodes to determine with high probability if nodes have sufficient numbers of coded packets. This information is used to determine when to generate cooperative feedback requests, as well as when/whether to generate cooperative ACKs or NAKs. In one application at least one node in the network corresponds to a mobile phone containing a GPS system which is used to provide the location information.
In accordance with a still further aspect of the concepts described herein, a system and method utilizing probabilistic knowledge on the state of the system as a means to decrease the amount of feedback needed in a system comprises a network having a plurality of nodes wherein each of the nodes in the network knows the location of at least one other node and each node may have a statistical model for channel losses to other nodes and wherein each of the nodes also knows what it transmitted and what it received. In one embodiment, the location of other nodes, the statistical model for channel losses to all other nodes, the node transmission and reception information are used to reduce the number of messages which are transmitted in the network, including but not limited to ACK messages and NAK messages. In one embodiment, network coding in conjunction with probabilistic reception models is used to reduce the number of repetitive transmissions to different nodes, the number of re-transmitted messages and the number of feedback messages.
The foregoing features of this invention, as well as the invention itself, may be more fully understood from the following description of the drawings in which:
It should be understood that the concepts, systems and techniques described herein are useful in any type of network and may be particularly useful in any network in which efficiency is important (efficiency being important, for example, in networks having limited bandwidth). Also, it should be appreciated that the concepts, systems and techniques described herein apply equally well to single hop and multi-hop systems.
Referring now to
In operation, source node 12a transmits information to one or more other nodes 12b-12i in network 10, wherein the information is in the form of a plurality of coded packets. If each of the nodes is a destination node (i.e. a node to which the source node intended to send the information), then transmission of coded packets continues until each destination node receives a number of coded packets sufficient to decode the message.
In some cases the information transmitted by the source node 12a may be intended only for a single node and in such a case, it is not necessary that all nodes 12 receive a number of coded packets sufficient to decode the message. Rather it is only necessary that the single destination node receive a number of coded packets sufficient to decode the message from the source node 12a. Network 10 utilizes network coding in conjunction with probabilistic reception models to determine when to cease transmitting coded packets, when to request feedback, when to send feedback messages, and when to send additional coded packets in response to feedback. By utilizing network coding in conjunction with probabilistic reception models, the system is able to reduce the number of data transmissions and feedback requests to different nodes, as well as the number of feedback messages. These reductions result in a decrease in the amount of traffic in the network, and consequently results in an increase it the amount of throughput and a decrease in delivery time in the network.
Each of the nodes 12 in network 10 “knows” (i.e. has information stored therein or has access to information or can compute information) the location of some or all other nodes and each node includes a statistical model for channel losses to all other nodes (any of the well-known models or even models yet to be developed may be used). Each of the nodes 12 also knows what it transmitted and what it received. Utilizing some or all of the aforementioned information, the number of messages which are transmitted in the network 10, including but not limited to acknowledgement messages (ACK) messages or more simple ACKs and negative acknowledgement messages (NAK) messages or more simply NAKs may be reduced compared with the number of messages sent in a conventional network.
First, nodes transmit coded packets. Then as in
One example mode of operation is shown in
Similarly, if node 12d (or any other node) determines, based upon the channel model, that coded packet 14 or a sufficient number of coded packets to decode message 14′ was not received at one or all of nodes 12e-12i, then node 12d may send a NAK message for nodes 12e-12i. Thus, nodes 12e-12i do not send separate NAK messages. This approach reduces the number of NAK messages being transmitted in the network and thus the amount of network traffic is reduced. It should be appreciated that node 12d may or may not have successfully received packet 14 or a sufficient number of coded packets to decode message 14′. That is, even if node 12d successfully receives packet 14 or a sufficient number of coded packets to decode message 14′, it may be possible that node 12d received packet 14 or a sufficient number of coded packets to decode message 14′ in such conditions that based upon channel models or other information either stored in the node or which the node can access, node 12d is able to conclude that nodes 12e-12i could not have or did not likely have successfully received the message 14′. In this case node 12d would send an ACK for itself and would send a NAK for nodes 12d-12i. In many cases, only the NAK for nodes 12d-12i would be of use to other nodes; in these situations node 12d may not need to send an ACK for itself.
It should be understood that there may be a number of means by which nodes learn how many coded packets other nodes are missing. For example, re-encoded packets transmitted from a relay node implicitly can inform what that node needs. Also, ACK or NAKmessages can be piggybacked onto periodic location updates or other control messages. Also, ACK or NAK messages can be piggybacked onto new (or re-encoded “relayed”) traffic transmitted from a node. Also, some or all nodes may have a probabilistic channel model for how many coded packets other nodes have received, for each message transmitted by any node. The inputs to this model are updated with reception of each message including, but not limited to each of the above-noted message types.
As illustrated in
As shown in
It should be appreciated that in the exemplary embodiment of
Although in the exemplary embodiment of
Thus, in network 10, a node 12 other than source node 12a can make the determination as to whether it is necessary to transit or re-transmit any additional packets in the network.
It should also be appreciated that in the case where source node 12a broadcasts a message to the network 10, each of nodes 12b-12i corresponds to a destination node for that message. Thus, in this case the node or nodes which transmit the cooperative feedback requests can be any node in the network with sufficient knowledge that all other nodes with high probability have sufficient information to decode the message (i.e. that each destination node has enough information to decode the message).
It should also be appreciated that even if node 12e sends cooperative feedback request 18, if node 12g receives packet 14 and concludes that based upon channel models or other information, either or both of nodes 12h, 12i could not have successfully received the packet, then node 12g may send a NAK message for nodes 12h and/or 12i.
Referring now to
It should be appreciated that in conventional systems, if the acknowledgements were end-to-end, as in TCP, source node 12a would re-send the packet(s) not received by nodes 12h, 12i.
It should also be appreciated that a node would send a NAK for another node either if that node itself did not receive enough coded packets or if the information stored or computed or otherwise existing in the node (or the node's knowledge) indicates that another, perhaps more disadvantaged (e.g. a node more distant from a source), node did not successfully receive enough coded packets. Thus, stated more simply, a node 12 sends a NAK if the node itself did not receive enough coded packets or if the node has knowledge with a desired degree of probability that another node did not receive enough coded packets.
It should be appreciated that the exemplary embodiments described above in conjunction with
In one embodiment, new traffic originating at any node piggybacks information pertaining to the degrees of freedom received from other blocks from other flows. It should be appreciated that the nodes in the network have a priori knowledge of the probability that a packet transmitted from a specified node can be correctly received by another specified node. Such a priori knowledge can come from location information that the nodes receive about each other, as well as from a channel model.
The rectangular elements (e.g. block 30 in
Alternatively, some of the processing blocks can represent steps performed by functionally equivalent circuits such as a digital signal processor circuit or an application specific integrated circuit (ASIC). The flow diagram does not depict the syntax of any particular programming language. Rather, the flow diagram illustrates the functional information one of ordinary skill in the art requires to perform the steps or to fabricate circuits or to generate computer software to perform the processing required of the particular apparatus. It should be noted that where computer software can be used, many routine program elements, such as initialization of loops and variables and the use of temporary variables are not shown. It will be appreciated by those of ordinary skill in the art that unless otherwise indicated herein, the particular sequence of steps described is illustrative only and can be varied without departing from the spirit of the concepts, systems and techniques described herein.
Turning now to Fig, 4, processing begins in processing block 30 in which a source node transmits a message in the form of coded packets to one or more other nodes in a network as is generally known. One or more of the other nodes correspond to a destination node (i.e. a node which the source node intends to receive the message). Thus, in the case of a broadcast message all other nodes in the network correspond to destination nodes.
Processing then proceeds to processing block 32 in which the one or more other nodes receive a number of coded packets. It should be appreciated that the destination node(s) should receive a number of coded packets sufficient to decode the message.
Processing proceeds to block 34, whereby nodes transmit explict and implicit acknowledgements.
Processing then proceeds to processing block 36 in which a node determines whether it can send a cooperative feedback request (a/k/a an auction message) for at least one other node in the network. In preferred embodiments, each node in the network determines whether it can send a cooperative feedback request.
As shown in processing block 36, the manner in which the node determines whether it can send a cooperative feedback request includes the node processing or otherwise using a plurality of different types of information which the node has stored therein or to which the node otherwise has access. To determine whether a node can send a cooperative feedback request, it is necessary for the node to determine whether another node has or has not received the coded packets transmitted by the source node. The node can accomplish this, for example, by using: (a) information which has been overheard or directly transmitted from other nodes; (b) node location information; (c) probabilistic channel model knowledge; (d) a combination of any (including all) of the above types of information (e.g. a combination of information overheard from other nodes and/or node location information and/or information from a probability model for a channel).
As shown in processing block 37, once a node determines that it can send a cooperative feedback request (i.e. once a node determines that it can send an auction message for one or more other nodes), then it does so. In a preferred embodiment, the node sends the cooperative feedback request to each other node in the network (i.e. the node broadcasts the cooperative feedback request). Node processing to determine whether to send a cooperative feedback request then ends. As discussed above in conjunction with
Each node that receives the cooperative feedback request will determine through the explicit and implicit knowledge it is accumulated about itself and its neighbors, in block 38, if it should respond to that feedback request. As shown in block 40, each such responding node transmits a NAK.
It should be appreciated that an ACK or a NAK is only sent when one or more nodes have sufficient knowledge to determine if other nodes have received a sufficient number of coded packets to decode the message In one exemplary embodiment, in response to a non-source node receiving a NAK, the node transmits coded packets, as in block 42 to other nodes (in accordance with the concepts, systems and techniques described herein, the retransmitting node need not be the source node nor the last hop node that originally transmitted coded packets to the nodes in need of more. In one exemplary embodiment, in response to a non-source node receiving a NAK, the non-source node transmits newly coded packets to other nodes.
In one embodiment, in a network comprising a plurality of nodes, a decision is made as to which node should transmit newly coded packets. In one embodiment, this decision is made using node locations to determine which node should transmit newly coded packets.
Referring now to
As shown in
In a network having a source node and a plurality of destination nodes (such as the exemplary network such in
Determining whether one of the destination nodes can send one of an ACK or a NAK for at least one other destination node can be accomplished as discussed above (e.g. using information which has been overheard from other nodes; implicitly transmitted by other nodes, piggybacked by other nodes, using node location information; and using probabilistic channel model knowledge in each of the nodes including using a probability channel model; and/or a combination of the above and other techniques).
Next explored is the spatial dependence of the probability of message loss. The capture effect makes it more likely that nodes close to a transmitter will receive a message than nodes farther away. In order to illustrate this spatial dependence, a 200 node linear network is considered.
The spatial dependence of probability of message loss is seen to result from the combination of capture and edge effects. A similar profile is seen if mean delay is plotted as a function of distance from the transmitting node. More traffic leads to a higher mean delay, as expected. Mean delay increases rapidly with distance from the transmitting node until the plateau point is reached at which point the mean delay stays constant at longer distances due to edge effects.
Next considered in conjunction with
Next considered is the concept of utilizing the spatial dependence of packet loss that is induced by the combination of the capture effect and edge effects. Since in the model used here, with capture and collisions being the only source of packet loss, it is seen from
Next described is a technique to determine the plateau point node for a transmitting node. For example, if a transmitting node located at t<N/2 nodes from the left most node, where N is the total number of nodes in a linear network, the two potential plateau points would be located at transmitters P1 and P2:
P1=(N−t)/2)+t Equation (4)
P2=t/2 Equation (5)
In this case N is the number of nodes in the system and P is the plateau point index. Note: when the middle node is the transmitter there are two pivots, defined by each of the equations above, that both must acknowledge message receipt for feedback to be successful.
The difference between the two curves shows the significant reduction in loss provided by the feedback protocol. The savings from the feedback is greatest where the loss is greatest, which is beyond the plateau point. Here, the message loss is reduced by more than a factor of 2.
Again, for the half of the nodes beyond the plateau point, the message loss is reduced by a factor greater than 2. The absolute value of the decrease in probability of message loss is only a few percent here, whereas it was 15% when the edge node transmitted, because the absolute value of the original message loss probability is smaller when the middle node transmits. Hence, when averaging over all transmitting and receiving nodes, the absolute value of the probability of message loss decreases a few percent when the feedback protocol is used. The savings from using the feedback protocol are greatest for the receiving nodes most distant from the transmitting node.
It should be noted that while some communication systems, such as Link 16, exhibit nearly perfect capture, others may have an imperfect capture. More generally, if there is partial capture, then the plateau points move in towards the transmitter, while the probability of message loss increases at these plateau points. In the limit of no capture, the probability of message loss is greatest, and the nodes adjacent to the transmitter experience the same loss as all the other nodes in the network, and feedback from them would indicate the reception status of all nodes in a pure collision channel.
Having described preferred embodiments which serve to illustrate various concepts, structures and techniques which are the subject of this patent, it will now become apparent to those of ordinary skill in the art that other embodiments incorporating these concepts, structures and techniques may be used. Accordingly, it is submitted that that scope of the patent should not be limited to the described embodiments but rather should be limited only by the spirit and scope of the following claims.
Claims
1. In a network comprising a plurality of nodes, a method of transmitting information from a source node to one or more other nodes in the network, the one or more other nodes comprising at least one destination node, wherein the information is in the form of a plurality of coded packets, the method comprising:
- transmitting coded packets from the source node to the one or more other nodes in the network;
- receiving a number of coded packets sufficient to decode the information at one or more of the other nodes;
- at a first one of the other nodes, determining with a desired degree of probability if each of the destination nodes has received a sufficient number of coded packets to decode the information based upon one or more of a probabilistic channel model, locations of the destination nodes, transmissions heard by the first one of the other nodes or knowledge of coded packets transmitted by the first one of the other nodes to nodes other than the first one of the other nodes; and
- sending a cooperative feedback request from the first one of the other nodes to one or more of the nodes other than the first one of the other nodes based upon the determining at the first one of other nodes.
2. The method of claim 1 further comprising:
- in response to one or more of the nodes other than the first one of the other nodes receiving the cooperative feedback request from the first one of the other nodes and determining with the desired degree of probability that itself and/or some other node did not receive a sufficient number of coded packets, sending, from a second one of the other nodes to one or more of the other nodes in the network, a negative acknowledgement (NAK) on behalf of the node or nodes believed to have not received a sufficient number of coded packets.
3. The method of claim 2 wherein the determining with the desired degree of probability that itself and/or some other node did not receive a sufficient number of coded packets is based upon explicit and implicit knowledge within the node sending the NAK.
4. The method of claim 2 further comprising: in response to one or more of the other nodes receiving the NAK, retransmitting the coded packets from a first one of the one or more other nodes receiving the NAK to one or more of the nodes other than the first one of the other nodes;
- or transmitting newly coded packets from the first one of the one or more other nodes receiving the NAK to one or more of the nodes other than the first one of the other nodes.
5. The method of claim 4 wherein the first one of the one or more other nodes receiving the NAK is not the source node and is not a last hop node that transmitted the coded packets to the node or nodes believed to have not received a sufficient number of coded packets.
6. The method of claim 1 further comprising:
- in response to one or more of the nodes other than the first one of the other nodes receiving the cooperative feedback request from the first one of the other nodes and determining with the desired degree of probability that itself and/or some other node has received a sufficient number of coded packets, sending, from a second one of the other nodes to one or more of the other nodes in the network, an acknowledgement message (ACK) on behalf of the node or nodes believed to have received the sufficient number of coded packets, wherein sending, from the second one of the other nodes to one or more of the other nodes in the network, an acknowledgement message (ACK) on behalf of the node or nodes believed to have received the sufficient number of coded packets, comprises:
- determining, in the second one of the other nodes, whether to send the ACK based upon at least location of the other nodes; and
- sending, from the second one of the other nodes to one or more of the other nodes in the network, the ACK on behalf of the node or nodes believed to have not received a sufficient number of coded packets based upon the determining in the second one of the other nodes.
7. The method of claim 2 wherein sending, from the second one of the other nodes to one or more of the other nodes in the network, a negative acknowledgement (NAK) on behalf of the node or nodes believed to have not received a sufficient number of coded packets, comprises:
- determining, in the second one of the other nodes, whether to send the NAK based upon at least location of the other nodes; and
- sending, from the second one of the other nodes to one or more of the other nodes in the network, the NAK on behalf of the node or nodes believed to have not received a sufficient number of coded packets based upon the determining in the second one of the other nodes.
8. The method of claim 7 wherein determining, in the second one of the other nodes, whether to send the NAK based upon at least location of nodes, further comprises:
- determining which node of the other nodes should transmit newly coded packets or re-transmit coded packets.
9. The method of claim 8 wherein determining which node of the other nodes should transmit newly coded packets comprises using node locations to determine which node of the other nodes should transmit the newly coded packets.
10. A method of determining when to send a cooperative feedback request in a network comprising a plurality of nodes, the plurality of nodes including a source node and one or more other nodes, the one or more other nodes including at least one destination node, the source node transmitting a message in a form of a plurality of coded packets to the one or more other nodes in the network, the method comprising:
- at a first one of the other nodes, determining with a desired degree of probability if each of the destination nodes has received a sufficient number of coded packets to decode the message using information which has been overheard from other nodes;
- using information which has been overheard from other nodes in combination with node location information; and using probabilistic channel knowledge including using a probability channel model; and
- determining when to send a cooperative feedback request from the first one of the other nodes to one or more of the nodes other than the first one of the other nodes based upon the determining at the first one of the other nodes.
11. The method of claim 10 further comprising using piggybacked ACKs or NAKs.
12. In a network having a source node and one or more other nodes, the one or more other nodes including a plurality of destination nodes, a method for acknowledging a broadcast message, the method comprising:
- for a broadcast message including M information packets, generating a corresponding number of linear coded packets;
- transmitting from the source node, the linear coded packets; and
- upon reception of the linear coded packets at one or more of the destination nodes, determining with a desired degree of probability if one of the destination nodes should send one of an ACK or a NAK for at least one other destination node based upon one or more of information which has been overheard from other nodes, information which has been overheard from other nodes in combination with node location information, and probabilistic channel knowledge in each of the nodes.
13. The method of claim 12 further comprising, determining in a first one of the destination nodes how many degrees of freedom are needed to decode the broadcast message.
14. The method of claim 13 further comprising:
- transmitting an acknowledgment packet from the first one of the destination nodes to one or more other nodes in the network to convey remaining number of degrees of freedom required at the first one of the destination nodes or at one or more destination nodes other than the first one of the destination nodes to decode all M information packets.
15. The method of claim 14 further comprising determining a number of linear coded packets needed at the first one of the destination nodes or at one or more destination nodes other than the first one of the destinations nodes based upon one or more channel characteristics and information in the acknowledgement packet.
16. The method of claim 13 further comprising:
- transmitting a NAK packet from the first one of the destination nodes to other nodes in the network to indicate that at least one destination node other than the first one of the destination nodes did not receive a sufficient number of linear coded packets to decode the broadcast message.
Type: Application
Filed: Apr 3, 2015
Publication Date: Sep 10, 2015
Inventors: Linda M. Zeger (Lexington, MA), Muriel Medard (Belmont, MA), Amanda Randles (Cambridge, MA)
Application Number: 14/678,359