16877 >> Srikanth Kandula: It's my pleasure to introduce Sachin...

advertisement
16877
>> Srikanth Kandula: It's my pleasure to introduce Sachin Katti. I've spent almost all my grad
school career at MIT with him. I know probably enough about him, all the bad things, but I won't
tell them now. The new thing that has happened is his COPE paper, the first thing he'll be talking
about, got William Bennett prize. That's the best paper in transactions networking over a year, I
think. He'll be talking about COPE and ANC coding. He's done much work after that and also
has some new projects in the pipe about securing network information flow and better ways of
building software wireless radios that you guys should ask him in your one-on-ones with him. All
right.
>> Sachin Katti: Thanks. So today I'm going to talk about network coded wireless architecture
for wireless mesh networks. But, first, what are the wireless mesh networks?
Like traditional centralized access points or sylaless [phonetic] wireless mesh networks are
decentralized networks of multi-hop wireless LECs.
For example, typically you put wireless routers on a city like in this picture and they automatically
discover and connect the features to form a mesh network among themselves to provide
connectivity from any node to any other node.
As you can tell, these networks have great properties. First, they provide blanket universal
coverage at very low deployment and maintenance cost. And they have already been deployed
in a number of research settings and will probably get deployed much more in the future.
They're also intellectually very appealing because the fundamental performance limits on these
networks are unknown. The performance of these networks in practice is hampered by the
challenges posed by the inherent characteristics of the wireless medium.
First, the wireless medium is a shared broadcast medium. So in a dense mesh network, when
you have multiple nodes contending for access to the medium, they all have to be routed through
the same shared medium, which drastically reduces through-put. Second, because of the shared
broadcast nature, there is interference among neighboring transmissions.
And the way wireless mesh networks are built with interference is by using very conservative
scheduling protocols which avoid interference at all costs, again significantly reducing throughput.
In this talk I'll take the opposite approach. Instead of dealing with broadcast and interference as
challenges, I'll show you how you can exploit these properties to significantly increase
throughput.
So throughout the talk I'm going to use this simple example. Victor and GT are trying to talk to
each other. And since they're not in wireless range of each other, they're going to use this router
in the middle to relay their packets.
[laughter]
So let's step back and take a first principles approach and see what the current approach in
wireless networks is. So Victor takes this packet and sends it to the router who forwards it to
Getu. He takes the packet, sends it to the router who forwards it to Victor. Very simple stuff. In
total, you needed four time slots to get these two packets across. Can we do better than that?
Can we do it in three time slots? Here's the approach. Victor takes his packet, sends it to the
router. Getu takes his packet and sends it to the router. Now the router instead of transporting
these two packets separately, he combines them using bit-wise exhaust to create a single coded
packet of the same length and broadcasts that coded packet to Victor and Getu.
And, remember, Victor already has a packet he sent earlier. He can exert the packet he just
received to get back Getu's packet. Getu can complete the same process and get Victor's
packet.
So in total now you needed only three time slots instead of four to get these two packets across,
which leads to higher throughput. But this example is a bit awkward. How often is it do you find
on the Internet that there are two flows going in exactly opposite directions of each other? Does
this -- is this technically limited only by this particular setting? In fact, this technique generalizes
and let me show you to a slightly more complicated example. So here again there are two flows
that intersect this router. S1 is sending traffic to D1 and S2 is sending traffic to D2.
So S1 takes his packet, broadcasts to it the router. Because of the broadcast nature, D2 also
overhears this packet. But due to the current point-to-point abstraction, D2 is forced to throw
away this packet. Instead, we let D2 keep this packet for a short amount of time.
Similarly, S2 takes his packet, broadcasts it to the router and B1 overhears and keeps this packet
for a short amount of time. Now, again here's the key difference. Instead of the router
transporting these two packets separately, he exhausts them to create a single coded packet and
broadcasts that coded packet to D1 and D2. Because D2 has all heard one of these packets
earlier, he can just exhort it to the coded packet he just received to get the packet intended for
him.
And, similarly, D1 can repeat the same process and get the packet intended for him.
So, again, you needed only three time slots instead of four to get these two packets across. But
the more important point is the shared broadcast nature creates opportunities where nodes can
overhear such packets and use network coding to reduce transmissions and increase network
throughput.
And this generalizes to arbitrary flows and topologies. The example I just showed you is typically
part of a larger network. And in this network, whenever routers have packets to send, they are
going to look for opportunities where they can compress multiply transmissions into a single
transmission and increase network throughput. But let's take a step back and reflect on what we
are changing about network design here.
Instead of dealing with a shared broadcast nature of wireless, by imposing an artificial
point-to-point abstraction on it, we are now exploiting this property to a significantly increased
network throughput. Second, instead of routers just storing and folding packets like they do in
traditional networks, routers are now given the ability to mix the contents of packets before
forwarding them. That is performed network coding and packets.
There's a large body of work on network coding, but this particular technique defers from all prior
work in two important respects. First, it addresses the common case of multi-unicast traffic where
a specific source is sending traffic to a specific destinations and there are many such flows on the
network. Prior work on network coding was focused on the single multi-cast case where there's a
single source sending the same traffic to multiple destinations.
Second, this works in dynamic and unknown environments. It makes no assumptions about the
network topology, the traffic demands and ascending rates. Prior work made such assumptions.
So we built this technique into a system called COPE. And let me describe the design of COPE
to you in the next few slides.
The first component of COPE is snooping. So remember we want to exploit the shared broadcast
nature of wireless. So to do that we make every node snoop on all the packets transported into
the media. And the node stores these overheard packets for a short amount of time.
So, for example, in this simple picture here, the red node is transferring a packet to the blue node.
Then he broadcasts it, the green node overhears this packet and keeps it for a short amount of
time.
Now, here's the more important question. How does a router code packets? So let's take a step
back. Suppose a router has a packet P which he needs to send to neighbor A. The simplest idea
is to exhort this packet P with other packets already known to this neighbor A.
This will ensure that A can decode that packet. But what did we achieve by this? We needed to
send one packet to this neighbor. We might as well have sent it without coding that packet.
COPE is going to be useful only if we can benefit multiple neighbors from every single
transmission. So let's [inaudible] intuition of that to a slightly more likely complicated example.
Here there's a router B. He has four packets sitting in his queue headed to the three next stops,
A, B and C. And the color of the arrow indicates the direction of the correspondingly colored
packet.
The red packet is headed to A, for example. And these next talks have also overheard some of
these packets from prior transmissions. And they've kept them in their storage areas.
So let's look at these options. How can B code these packets together? So what if we exhaust
the yellow and red packet together to create a single coded packet?
The yellow packet is headed to C. C has the red packet. So he can decode. But, unfortunately,
the red packet is headed to A and A does not have the yellow packet in the storage area. So he
cannot decode.
Therefore, this is not a good coding decision, because you benefited only one neighbor from the
single transmission. You didn't get any throughput improvement. So what if instead B exhausts
the blue and the red packets together to create a single coded packet.
The blue packet is headed to C. C has the red packet. So he can decode. And in this case the
red packet is headed to A and A has the blue packet. So he, too, can decode and get the packet
intended for him.
So this is a better coding decision, because you benefitted two neighbors from this single
transmission. But can we do even better than this? Can we benefit all three neighbors from one
single transmission? What if D exhausts the red, green and blue packets together to create a
single coded packet?
The red packet is headed to A and A already has the two packets so he can decode. And
similarly B and C have the other two packets apart from the packet intended for him. So they,
too, can decode and get their packets and in this example this is the best coding decision the
router could have made. He benefited all three neighbors from one single transmission. And this
also gives us insight into what is the constraint on coding and decoding packets.
A router can exhort N packets together if and only F the next half top of the packet already had
the N minus 1 packets apart from the packet it actually wants. So when you first look at this
constraint it seems like a very strict constraint how often does it work with wireless packets.
>>: It seems like you will not score [inaudible] undefinable packet.
>> Sachin Katti: So that's under the assumption that we're using simply exhaust code and we're
not storing uncoded packets. If you go to a higher field you can make use of the undecoded
packet with later coded packets and subsequent work has looked at this point. Yes.
So ->>: Do you know whether the next ->> Sachin Katti: I'll come to that in the next. So how often does this actually happen in mesh
networks? But in this example the red packet is probably headed from the bottom towards A and
from prior transmissions B and C are likely to overhear this packet. Similarly, the green packet is
headed from the top towards B. And due to prior transmissions, A and C are likely to overhear
this packet. And so on for the blue packet. In mesh networks because of the shared broadcast
nature, you often have situations where the router is surrounded by next stops who have
overheard many of these packets. So you can use this technique to compress multiple
transmissions into single transmissions and increase the network throughput.
Get back to the question that was just asked: How does a router know what packets the
neighbors have overheard? The answer is, the router guesses. A router guesses if a particular
neighbor has overheard a specific packet. And that guess is based on the packet delivery rate
between the previous half of that packet and that particular next hop.
And the nice thing is these measurements are already available to the router from the link state
routing protocol that's running in the mesh networks. You're taking measurements of these
delivery packet rates and distinguishing it from local neighborhoods. And the router can use this
measurement to guess if a particular neighborhood has overheard a specific packet. For
example, in this picture the blue node can guess whether the green node has overheard the red
packet by using the packet delivery rate measurement between the red and the green.
So here is the formal statement of the problem. A router has N packets and each next stop has a
different subset of these packets and wants a specific subset. And the router has to deliver these
N packets to the next stops using the minimum number of transmissions subject to constraints on
coding and decoding packets.
Here's the intuition behind the solution. Each router constructs a virtual graph. And in this virtual
graph there is a vertex corresponding to each packet in the router skew. And two vertices are
connected if the corresponding packets can be coded together.
So in this example we just had there are four vertices in the virtual graph. And since the red and
the blue packets can be coded together, you connect them by an edge and so on for the other
pairs of coded packets. Here's the key insight. From this pair-wise graph construction, you can
show that the coded packet corresponds to a click in this virtual graph.
So minimizing the number of transmissions is equal into partitioning this graph using the minimal
number of clicks. And this problem itself reduces to graph coloring in the complement of this
virtual graph. The complement of the graph is where you connect two edges, two nodes if they
do not have an edge in the original graph.
So graph coloring itself is NP hard and there's a heuristic solution in the paper. But this intuition
can be more precise to, be made more precise to show a more fundamental connection. So you
can show that the coding problem in COPE is equal into graph coloring. And you can use a
separate graph reduction argument to show that the coding problem in COPE is equal and to the
open problem of computing the network capacity of a graph with network coding.
So using this problem, you can show a connection between an open problem and information
theory and an equally N hard problem in CNS theory and techniques you develop for any one of
these problems can now be applied to the other two. Yes.
>>: How stable is the graph? Is it [inaudible], do you need to achieve a computer graph or you
can incrementally modify the existing solution?
>> Sachin Katti: So it's robust because even if you make a mistake on a coding decision, there is
an asynchronous feedback packet mechanism where you can retransmit the packets. Even
though our guesses are not exactly accurate and they might be stale it's fine because you can
record by retransmissions.
So how stable is the network? That depends on the traffic at that point in time.
So this solution also has some nice practical characteristics. First, the technique is opportunistic.
It codes packets if possible, but if not the router forwards these packets without coding that
packet.
So suppose a packet is at the head of the queue. A router checks if it can sneak some of the
packet on it by coding. But if not it will just transfer. So this will ensure that we do not insert
[inaudible] into a packet. Breaking existing applications.
Second, the implementation complexity of this algorithm is quite small. We are using simple
bit-wise exhaust for coding, decoding packets which are pretty easy to implement. And finally
COPE is architecturally clean. It sits transparently between the IP and mark layers and does not
require any modifications of the layers below or the layers above so it's plug and play. Yes.
>>: So you say minimal implementation complexity here but you also have to solve graph
coloring. Is that similarly simple?
>> Sachin Katti: Well, it depends on the size of the queue you have in the router and the size of
the queues we're seeing is on the order of seven to eight packets. That graph proving problem
you can do it by brute force if you want to. But if the Q sizes get very large you'll have to use
heuristics and that's where the complexity might be higher. But the queues we're seeing in
practice it's not a big deal.
So we implemented COPE in Linux using the click software router. And the current
implementation of COPE works with eight or 11 radius. But the idea itself is independent of the
underlying radial technology. And we compare, we deploy it with using the protocol and compare
it with that routing protocol. So how well does COPE perform in practice? Yes?
>>: So before you get to practice you haven't mentioned anything about packets of different
lengths.
>> Sachin Katti: It doesn't matter. Just assume that the shorter packet is broader up to the
higher length. But the preference would be to code packets of equal length. That's when you get
the maximum kit.
So let's go back to our simple example. Victor and Getu talking to each other. So we saw we
needed three transmissions instead of four to get these two packets across. So we are expecting
a 33 percent improvement in throughput.
>>: Actually did that on the next one. But one question. If you code a packet up, you need an
extra error -- at the other end to support a packet and what would a packet -- what fewer packets
it's made up of. So that's going to be clear MP [inaudible].
>> Sachin Katti: So that will create -- that will put a limit on the number of packets that can be
coded together. So for the MQ eight or 11 is around 2400 bytes. So that means you can code if
there are 1500 byte packets around seven to eight packets together. But that's more than
sufficient. You never end up coding more than seven to eight in practice anyway so it's not a
problem.
>>: [Inaudible].
>> Sachin Katti: 1500 bytes. Standard 15. So here are results from actual experiments for this
three node topology. On the X axis are the different eight or 11 bit rates and the Y axis are the
differences you obtain with COPE compared to the current. So you can see that COPE almost
doubles the throughput. It's giving you 80 to 90 percent, but you're expecting 33 percent in
theory.
What's going on here? It turns out there is a subtle infraction between the network coding
technique and the underlying mark protocol. The eight or 11 mark is fair. And there are three
nodes containing fair access to the medium it divides access to the medium equally among all
three nodes. But without coding, the router needs to send two packets for every packet Victor
and Getu send.
But with coding, this mismatch is gone. The router needs to send only one coded packet for
every packet Victor and Getu send.
So COPE elevates the mismatch between the max allocation and the amount of condition of that
node. And therefore shows higher throughput improvement than what you'd expect just from the
reduction in the number of transmissions.
Yes.
>>: Is this also a general phenomenon for arbitrary graphs?
>> Sachin Katti: So we analyzed that. And I'll show you the bounds right now. So we looked at
what are the fundamental limits on both these cases. We defined two kinds of gains, coding gain,
coding plus mark. The coding gain is what you would expect. This is the gain you would get from
the reduction in the number of transmissions you get to network coding. And for the topology we
just saw, that is a factor of 33 percent.
But the coding plus math gain is defined as the improvement you get because of the
improvement in the draining rate at the bottleneck router. And the example you just saw that the
router skew blade twice as fast because it's getting two out for every packet the coding plus math
is a factor of two.
When you see these gains in practice, you see gains corresponding to the coding gain when the
network is not congested and the nodes are not backlogged. But if the network is congested and
the nodes have large cues then you'll see gains corresponding to the coding plus mark gain. So
you can show that the coding gain for a random planar network with arbitrary flows and the
protocol communication model, the coding gain is upper bounded by a factor of three.
But the coding plus mark for the same configuration can actually be unbounded. The way you
show that is by constructing a graph where the router gets arbitrarily backlogged and the gain
from coding can be arbitrarily high. Obviously you won't see such large gains in practice. But
you'll still see that the coding plus mark gain can be significantly higher than the coding gain,
which we'll see in the last experiments I'll just talk about.
So we deployed COPE in a 20 node wireless test bed, and here's how we conduct the
experiments.
Senders and receivers are picked randomly. And UDP traffic is started between them and the
flows themselves arrive according to a Poisson process and the length of the flow size is taken
from empirical Internet measurements. So here's a picture of the test bed. It's deployed over
three flows in the [inaudible] department building.
Here are results from actual experiments. On the X axis is the total demand placed on this
network in mega bits per second. And the Y axis is a total network throughput. The sum of the
throughputs of all the flows in the network at that point in time. And we compare it to the current
routing approach.
So as you can see, COPE provides merely a threefold throughput increase in congested
networks. But the more interesting aspect of this graph are the two sides to it. On the left side
you see smaller gains on the order of 70 to 80 percent and this is when the network is not
congested and the nodes are not backlogged. So you see gains corresponding to the coding
gain.
But as the network gets congested and the routers get built up queues, you see larger and larger
gains and these are gains corresponding to the coding plus mark gain. Now, why are both these
codes dropping off as load increases? That's actually got nothing to do with coding or routing.
It's a function of the underlying eight or 11 mark. It doesn't do a very good job of allocating
access to the medium when the network is congested. So both drop off. But even at high loads,
COPE provides a 2 X throughput increase over the current approach.
So let's step back. So we saw that Victor and Getu could now talk to each other in three time
slots. They're very ambitious people they're not happy with three. They want to do it in two time
slots.
>>: How can -- [chuckling].
>>: This is going to be a protocol for how you can both yell at each other at the same time.
[laughter].
>> Sachin Katti: And make sense of it still. [laughter].
>>: We'll have to move offices.
>> Sachin Katti: So instead of -- how do we do this, right? Instead of the router mixing packets
for you, why not exploit the fact that the wireless channel naturally mixes signals when packets
interfere? Why not do network coding on analog signals themselves?
So what do I mean by that? Let's go back to the example. I'm going to represent these packets
but the signals they're still sending on the medium. So here's the key difference. Instead of
transporting these two packets separately, Victor and Getu are going to transmit simultaneously
to the router. Now, obviously these packets collide, interfere and the router receives an interfered
signal which he cannot decode. But he doesn't even try to. He just reamplifies and broadcasts
this interfered signal to Victor and Getu.
Because Victor already has the packet he sent earlier, he can convert it into its signal
representation, subtract it and get Getu signal, and then use standard decoding to get Getu's
packet. And Getu can repeat the same process and get Victor's packet.
So in total, with analog network coding you needed only two time slots to get these two packets
across. Leading to even higher throughput. Now, as I can tell from a lot of skeptical faces here
it's not as simple as it sounds and I'll get to the engineering detail in a couple of slides. But first
let me talk about the contributions of analog network coding.
Analog network coding advocates a shift in the way we deal with interference in wireless
networks. Instead of using very conservative protocols which try to avoid interference at all costs,
analog network coding shows that you can strategically exploit it to increase network throughput.
Second, it suggests new ways of dealing with hidden terminals. So what are hidden terminals?
The example we just saw is one instance of that problem. Victor and Getu cannot sense when
they're starting to transport simultaneously. They often end up transferring simultaneously and
colliding. A number of papers have been written to make sure they do not do this. But as analog
network coding shows, let them transfer some into that -- that actually increases your
performance.
Second, it introduced a new notion of network coding itself. Typically the router mixes packets
and now instead we're allowing the channel to mix signals for us and the routers are just
amplifying and forwarding these interfered signals.
So let's get back to the main question. How do we make this work in practice? So there are two
big challenges to make analog network coding practical. First, the interfered signal is not exactly
the sum of the two interfering signals. The channel that starts these signals. But not only that,
it's almost impossible to ensure that Victor and Getu start transporting it exactly the same time.
There's always going to be some asynchronicity in between them. So what you get is not the
sum of these two signals, but the sum of the standard and time shifted versions of these signals.
And you need to decode from that interfered signal.
So our first cut was to see if we could get these two first nodes synchronized as you can see it's
very hard to do in practice. Instead, it turns out you can exploit asynchrony to make analog
network coding practical. So what do I mean by that? Here are the two signals. And from now
on the red signal is going to be Victor's signal and the blue signal is Getu's signal. Let's assume
that Victor starts transporting slightly before Getu does. So because of that there's a small part of
the signal which is interference-free at the start, and there's a small part of Getu's signal which is
interference-free at the end. So Victor can use this interference-free part to estimate the amount
of distortion the wireless channel is introducing, as well as the timing separation that exists
between his signal and Getu's signal.
And he can use these estimates to compensate for it in his known signal, subtract it and decode
Getu's packet. What does Getu do? He does the same thing but backwards. So he starts from
the back, estimates distortions subtracts and decodes Victor's packet.
So analog network coding exploits the asynchrony between these two nodes to make it practical.
So here's the protocol. First the router senses whether the medium is idol and broadcasts a
sharp rigor to Victor and Getu. Once these two nodes receive this trigger they start times by
small random amounts and transmit simultaneously.
The router receives an interfered signal. He amplifies and forwards it. And then Victor and Getu
receive and decode this interfered signal.
So the fourth step is a key step. Let me focus on that. How do Victor and Getu decode this
interfered signal?
So analog network code be has been designed and implemented to work with any modulation
scheme. And it includes modules for accurately estimating the channel, the frequency offset and
the sampling offset.
And these algorithms are iterative so they can deal with interference. The decoding complexity of
the algorithm itself is linear. And it has been implemented in software radius for a number of
modulation schemes. But today for pedagogical reasons I'm going to focus on a very small
modulation scheme GSK and show you how analog coding network works for that modulation
technique.
So before I get into the algorithm, let me give you a quick primer on modulation and demodulation
of wireless signals for those of you who do not know. So as with any digital communication
system, we can represent a real signal by samples, and just trust me on this. You can represent
wireless signals by their complex samples.
So I'm going to make statements like this node transferred a complex number on the channel,
and that's actually representative of what's going on.
As I said, I'm going to focus on MSGK Gaussian minimum shift key, how does this particular
modulation scheme work? So let's say Victor wants to transmit bit one. So he sends a complex
number V1 and then V2 leaving V1 by 90 degrees.
And if he wants to transfer bit 0 he reverses the process. He sends V1 and then V2 lagging V1
by 90 degrees.
So from now on let's assume Victor wants to transfer bit 1. So he takes these two complex
numbers. He transfers it through the wireless channel. But the wireless channel attenuates
these complex numbers by a random amount.
But not only that, it also rotates these complex numbers for a random angle. But the key point is
both these complex numbers are rotated by roughly the same amount. So the angle between
these two [inaudible] complex numbers is preserved. So to decode all the receiver has to do is
compute the angle against these complex numbers and sees it's plus 90 degrees in this case and
he knows Victor transported bit 1.
And that's it. At a simple level, that's how GSK modulation and demodulation works. So let's get
back to the problem at hand. How do you decode an interfered signal? So here's what Victor
has received. An interfered signal which is interference-free at the start and at the end.
So he starts from the left, goes forward. And since it's interference-free, he can decode it using
standard demodulation techniques. Now when he reaches the interfered part, he sees that
there's a large variation in the energy of the signal he's seeing. So he detects interference and
switches his decoding algorithm.
This is the critical part. So let me zoom in and show you what exactly is going on.
So what did Victor send? He wanted to transmit bit one. So he transmitted these two complex
numbers where V2 is leading V1 by 90 degrees. But once they went through the channel, they
got attenuated and rotated. And he doesn't know what the attenuation and the rotation factors
are.
What did Getu send? Let's assume he wanted to transmit bit 0 so he sent J1 and J2 lagging J1
by 90 degrees. But once they went through the channel, they, too, got attenuated and rotated.
Now, since these are transmitted simultaneously, they interfere.
And interference can be modeled as complex addition in the wireless domain. So what you
actually get is a sum of V1 and J1, Y1 and similarly Y2.
Now, let's step back and think about what Victor knows at this stage. So he definitely knows what
he transmitted and the angle between them.
But he does not know what happened to his complex numbers after they went through the
channel, and he definitely does not know what Getu transmitted, because if he does he knows
what bit Getu transmitted. So he also knows YN and Y2 these are the numbers he just received.
>>: Do the rotation and attenuation affects vary significantly over the lifetime of the packet
transmission?
>> Sachin Katti: So it depends on the channel characteristics. For an indoor channel, the
channel station already is on the order of 100 to 600 milliseconds. And that's several hundred
packets. So that's not a problem. Probably although the channel station is on the order of two to
three packets. So even there it's as safe I'm sure to make that all a packet, that's fine.
So this is all he knows at this stage, what he received and what he sent. But, remember, he also
has this interfered signal which is interference-free at the start and interference-free at the end.
So he can look at the complex numbers at the start of the signal, estimate their amplitude alpha,
and he knows his complex numbers after going through the channel have to rely on this red circle
of radius alpha.
Similarly, he can look at the complex numbers at the end of the signal, estimate their amplitude
better and he knows Getu's complex numbers after going through the channel have to rely on the
blue circle of radius B2.
So now he has two additional constraints on the interfered complex numbers. Can he solve from
these constraints? So here's what he has, a complex No. Y with these amplitudes -- yes?
>>: Do you know ->> Sachin Katti: I'm sorry.
>>: Is he supposed to be listening at the same time he's transmitting?
>> Sachin Katti: Here's the protocol. They transmit simultaneously. The router gets the signal.
AV amplifies, rebroadcasts it. In the second slot they're listening. But he doesn't know the angle
of these complex numbers. So you can show that these angles have the following two solutions,
two symmetric solutions.
Don't worry about the mark here. This has a very nice visual representation. So for Y1 there's
one solution V1 and J1, which add up to produce 51. But unfortunately there's a symmetric
second solution V1 prime and J1 prime which also add up to produce Y1. For Y2 there's V1, J2
and a second symmetric solution. There's two possible solutions for each interfered complex
number. And this leaves Victor confused because now there are four possible angles.
There's the angle between V1 and V2. V1 and V2 prime. V1 prime and V2. And V1 prime and
V2 prime. What's the right angle? So remember he knows the angle between V1 and V2 and he
knows that the wireless channel preserves this sign plus 90 degrees.
Therefore, all he has to do is pick the set of solutions V1 and V2 which have the same angle. 90
degrees. And this automatically detects the number for complex numbers, J1 and J2, and that's
it. Now he's done. All he has to do is find the angle between J1 and J2 and he sees it's minus 90
degrees and he knows Getu transmitted bits here. And he uses the same technique to decode
the rest of the interfered signal.
Once again he reaches an interference-free part. He switches his decoding algorithm to use
standard GSK modulation to decode the rest of the packet.
So what does Getu do? He does the same thing starting backwards. This technique generalizes
to other topologies such as the chain topology even if there is a single flow in the network. For
example, S is sending traffic to D. And there's only one single flow. Second, the cross topology
that we saw with COPE and other topologies where COPE was.
So how well does analog network coding -- yes.
>>: At the base you said one bit where interference starts and ends should the boundary
between interference signal and noninterference signal where you don't have completely
interfered bed for putting on your ->> Sachin Katti: You're asking what's the sampling subset, what's the offset between these two
signals? And your order estimate and interpolate the signal. So because it's an narrow band
signal you can use micro serum to show from these signals you interpolated the real signal and
subtract it off. That's a good question. I'll talk to you about it off line.
So how well does analog network coding perform in practice? So we implemented analog
network coding -- yes.
>>: So you said you get three modulation schemes, right?
>> Sachin Katti: Yes.
>>: There are many other modulation schemes where I don't think it will work, because the
characteristic you're exploiting here is the fact they're 90 degrees delay or certain static angles.
But that's a characteristic of that particular modulation scheme.
>> Sachin Katti: This technique I just tried to use, plus GSMK. The other technique is PPBK and
QSK does substract the signals after interpolating for the offset and compensating for the
frequency offset. That's sitting as a black box between the demodulation/modulation techniques.
>>: What's the qualm, qualm and things like that? Doing just absent modulation?
>> Sachin Katti: You're finding what an angle is for both of these signals and compensating for
the angle. But after that it will go back to that.
>>: If the black box techniques works well in general, why do you have a special case for
GMSK?
>> Sachin Katti: So this is more robust, because you don't need to decode and detection here.
You don't need to find the angle, what is the rotation factor. You're just looking at differences.
Once you do coding, you need to spend more time estimating the angle. So that's the other
technique.
And the hardware we used is a USB front end. It's currently built for the I [inaudible], 2.4 2.4
gigahertz range. Deployed in a 20 node test bed and evaluated for common scenarios in mesh
networks. But today I'll show you results for only the three node topology but there are other
results in the paper which I'm happy to talk about off line. Sorry.
So as we saw intuitively, we're expecting that ANC's throughput gain over the current approach is
a factor of 2 because we're going from four time slots to two time slots. And over COPE it could
be 50 percent, because we're going from three to two times.
But you can go and analyze what are the fundamental limits on this scheme. So you can show
that for a two-way relay channel which is the technical term for this three node topology, with
channel gains and the same power and noise variance.
You can compute an outer bound on the rate achieved by the current routing approach. And you
can compute the rate achieved by analog network coding.
So what this analysis tells you is where does analog network coding work best. At medium to
high SNR, it nearly doubles the rate. But at low SNR because the router is also amplifying noise,
ANS might perform worse than the current scheme. In that case you should use different multiple
access techniques. For indoor channels which typically have medium to high enough, ANC is a
good fit and can double the throughput. So here are results from actual experts. On the X axis,
it's the throughput gain and the Y axis is cumulative distribution function of these gains.
So as you can see, the median gain routing is around 70 percent. And why is it not 2X? It's 30
percent less than what we were expecting. There are two factors to it. It turns out if you want a
perfect improvement, these two signals need to be perfectly synchronized. Because of the
asynchrony, we're losing some part of the case. Second, the decoding algorithm itself is not
perfect. It introduces a higher [inaudible] rate, which we're to compensate for using [inaudible].
So together these two factors lead to the 30 percent drop in throughput improvement that you
were expecting.
Here are the throughput gains in COPE. It's 30 percent compared to the 50 percent we were
expecting in theory.
So as you can tell, this work builds on related work in two important areas. Network coding
theory and this large body of work which shows that you can achieve the multi-cast capacity of a
network using polynomial time linear code which work in a distributed fashion. And similarly there
is important work in building mesh networks for robust inefficient at a number of universities and
research labs.
When we started this work the two areas were completely separate. This work bridges these two
areas. It makes contributions to both ensures there's an inherent synergy between them. So
here are the contributions to network coding. This work draws an algorithmic framework for using
network coding in modern wireless networks. Specifically designed new network coding
techniques which work for unique traffic the common case in the Internet.
Second, they both in dynamic and are known environments. And make no assumptions about
the network topology, the traffic demands or the sending rates.
Finally, it deployed it in practice and showed that it can deliver large throughput cases. And
here's the contribution to mesh networks. This work showed that network coding provides a
systematic framework for designing mesh networks which work with and exploit the basic
characteristics of wireless to increase network performance.
COPE designed the packet level network coding technique which exploits shared broadcast.
Analog network coding exploits strategic interference to improve performance. And a third
technique, simple level network coding, which I didn't have time to talk about today, which
exploits wireless spatial diversity to tease out correct bits and correct packets and funnel them to
the destination to deliver a correct packet.
All these techniques have been designed, implemented, deployed and shown experimentally
[inaudible] increase in throughput. So here's my conclusion. That's it. I'm happy to take more
questions. Thank you.
[applause]
>>: So I've got a current assumption of wireless radios. Due to a case the wireless radio
listening to the packet, using about two-thirds to transmit whereas the idle was maybe about
one-third of the transmit. So a significant power issue when doing XY coding is that still the
case?
>> Sachin Katti: So these techniques are targeted at mesh networks, likely powered up, not
battery operated. If you're using it for a sensor network, you design it differently. Especially you
would use something like the third technique which I didn't talk about where radio is periodically
wake up to listen and whatever packets they're getting, they're sending out random linear
combinations of that. So that also works in saving energy and savings transmissions. So that
would be the technique you'd use for that case.
>>: In the analog network section, you had Getu packet was always bending after Victor's packet
and Victor as was always starting before which assumes equal length.
>> Sachin Katti: Sure.
>>: What happened if Getu's is fully subsumed by Victor's or vice versa?
>> Sachin Katti: Then you have to insert a preamble in the post amble in the packet. Random.
It's uncoded with any data sequence. You have it at the start of the packet and at the end of the
packet.
Now what the receiver would do is correlate the random sequence. When he sees a peak, he
knows the second packet is starting and he can use that peak to estimate these factors. It's less
robust than having this.
So a better implementation would be make sure that you get two packets to interfere which are
likely of equal length rather than trying to do this more complicated scheme.
>>: So could you tell me about some of the larger design space in wireless mesh networking,
because one of the -- and this is motivated by several things. You talked about how you assume
omni directional antennas. And I'd like to know why that's a technology trend that you expect to
continue rather than one you expect to change and make any of this work less relevant. And
secondly the issue of wireless max. You call into the 8211 double Mack being less than ideal.
Some of the gains that you show come from partially addressing that. I was wondering whether
there's alternative approach to addressing that.
And given your reliance on something like software radios for the second part of your work, there
seems to be ample opportunity to change them out there.
>> Sachin Katti: I'll pull it into two parts, multiple antennas and [inaudible]. Multi-antennas is a
good question. So this is actually current work going on. We are pushing network coding to the
lowest layer. And there multiple antennas come in because we are now using the wireless
channel to perform network coding like in analogue coding but in a different sense. I can talk to
you about it off line. You can show theoretically if you do this network coding with multiple
antennas, you can get the same capacity scaling as an access point. You don't lose that one by
rule 10 factor, you're losing in mesh networks. We're trying to build that in practice. And at that
point mesh networks will be very attractive because you're not losing in terms of capacity while
they're retaining advantages. That's current work. But this particular technique ->>: Is that an alternative to space time coding, you're going to use network coding as a spatial
layer?
>> Sachin Katti: Space time coding is one example of that theory. Called interference alignment.
We can talk about it after. The second question was the mark protocols. That's where this work
is headed towards.
What analogue network coding in some sense is saying is the mark protocol recognized what
degrees of freedom available in this wireless network.
In this case it's a known packet. But going further, you might have other site information. Might
have a factor, multiple antenna, multiple sequencing band availability. Mark protocol has to
intelligently use this information to schedule more transmissions concurrently. And that's where
the space is headed.
>>: Can I ask one more question?
>> Sachin Katti: Sure.
>>: How does this relate to something like opportunistic acknowledgments from say a packet that
was destined to know A and then to B but was heard by node B and doesn't need to be
forwarded?
>> Sachin Katti: That's actually the port technique, opportunistic routing, that's opportunistic
routing at the level of symbols.
>>: So you have a slide in there. Let me divert one criticism of this work. And as we were
reading your papers, we sort of see there's some -- let me be very blunt, seems like you hide
some of the disadvantages or gains. For example, you've shown a lot of uni-throughput gains.
You don't talk about TCP. You talk about certain traffic flows which are very, very good for
network coding.
>> Sachin Katti: Sure.
>>: And I think you're aware of this. So I want to hear your comments on that, the results you
showed, sort of like the real gains, because ->> Sachin Katti: TCPS is a problem, especially for COPE. And that's because how TCP reacts
to wireless clauses. So the gains we saw in practice were, we were not sure what gains you
would get if you actually fixed TCP with network coding. So that's actually discussed pretty well
in the paper. And we saw the [inaudible] topology you could get around 60, 70 percent even with
TCP.
Now, as to what traffic scenario network coding works best, I actually would pick whatever
technique you want. So with COPE multi-directional traffic works best. But if that's not the traffic
scenario you have, and you have an access point mesh network, use the third technique. It's
especially designed for that space. And still gives you three to four extra points impact it, even if
there's a single flow going in one direction. Log network coding is quite general. Works below all
these layers and working on smaller sets of topologies. So it should work both for COPE as well
as the [inaudible]. But I think if you look at the entire setup network coding technique, they'll
cover the entire traffic space you would want to.
>>: Could you comment on how much benefits of gains here complicated by the deduction and
how much others did you have to do for the more complicated admissions?
>> Sachin Katti: So the robustness depends on how well your signal processing algorithm is.
You can design very sophisticated algorithms which do well. And then you're not losing much. In
fact, Qualcomm has just built a chip for Edge, which uses a similar idea. Does it for core
techniques. It's out on your [inaudible] right now. It uses asynchronicity to make it practical. So
they have been able to build it in practice. I don't think if you design sophisticated algorithms you
lose anything; it's just harder to find.
>>: Can we spend a couple minutes talking about some other, because we're all here and you
have -- some of the other stuff you've done, I don't know which places to explore with you.
>> Sachin Katti: The third technique, coding addresses opportunistic at a certain level. The
radical departure is building symbols in the mesh network instead of a packet fish network. And
we can show you how to use network coding to avoid that the overhead of the symbols, while
having advantages. And applying network coding to build anonymous routing systems which do
not require keys. Typically anonymous routing typically [inaudible] routing does not need keys.
For network coding you can build a system where you don't need key exchanges.
Right now the work I'm doing on using information flow techniques up to do, to prevent data
ex-filtration and mobile devices and also within enterprises. There's some measurement work
I've done. And there's concurrent work on the interference alignment and network coding stuff.
And I'm also doing some work on giant source general coding for [inaudible].
>> Srikanth Kandula: Let's thank the speaker.
>> Sachin Katti: Thank you.
Download