>> Jin Li: It's a great pleasure to have... Suman get his PhD degree from the University of Maryland,...

advertisement
>> Jin Li: It's a great pleasure to have Suman Banerjee here to give us a talk.
Suman get his PhD degree from the University of Maryland, and now I just
learned he become associate professor, just get his tenure -- 10 years -- 10 -sorry, 10 years back, sorry. And he's going to talk about his WiNGS lab,
Wisconsin Wireless and NetworkinG System laboratories. It surely is a very
interesting name. And let's hear what Suman has to say.
>> Suman Banerjee: So thanks, Jin, thanks for inviting me here, and it's a great
pleasure to be back. So I'll -- you know, when I'm coming here to give a talk, I
need to make sure I get to say something new. I've been here multiple times in
the recent past I've talked about certain things but thankfully over the last year
and a half we had a lot of interesting activities and I'll try to cover some of them
getting through all of them of course in this time wouldn't be feasible.
And this logo of our lab is actually designed by one of our grad students who is
an intern here, Vladimir. So very good in artwork. Highly recommend him for
any logo design for any new conference or workshop that you may have in mind.
Although we have a newer version of that logo.
>>: [inaudible].
>> Suman Banerjee: That's okay. No, he's pretty good. In research as well.
>>: [inaudible].
>> Suman Banerjee: So anyway, so what I want to talk today about is a theme I
think everybody here already subscribes to, so it won't need a lot of motivation.
But basically I want to focus on building robust wireless network services through
infrastructure support. Previously we did a lot of work focussing on client
supported services where you kind of install specific things in that lines. Today
I'll focus on infrastructure support for a set of specific services, specifically
targeting enterprise wireless environments, but some of the ideas of course apply
to fairly generic A2211 like wireless environments.
So just a quick you know run through the initial motivation, you know any
enterprise would like to tightly control all of their resources which includes of
course office space, natural bandwidth, applications devices and definitely the
wireless spectrum.
So as we all know, wireless spectrum is a challenging thing to really control
because it's a shared resource, the spectrum doesn't respect building perimeters
so you may have intruders who are located outside the building can easily kind of
extract signal out of transmitters inside the building which becomes a major pain
point for many IT administrators. Yes?
>>: Do you know of cases where IT admins are actually worried or actually
detected such intrusion? Like I see a lot of work being motivated by such a
scenario, but I haven't come across any incident.
>> Suman Banerjee: Yes. That's a very good question. I think it's kind of a fear
factor I guess for more of the financial institutions I hear like you know if you go
and for example talk to Cisco, they will say that this is a capability that their
customers worry about who the specific customers I don't exactly know. I don't
think most university campuses or even regular, you know, campuses like
Microsoft would worry that much about it, but they seem to worry about it. They
seem to feel that, you know, we need to make sure this is true, but I don't know.
I don't have a very good answer for that. I wish I did.
>>: [inaudible] and there's a [inaudible] infrastructure. [inaudible] that they don't
trust any device [inaudible].
>>: They are [inaudible] their own.
>>: Including their own.
>>: Sure.
>>: So I mean basically it means having -- plugging into this jack it doesn't mean
the device belongs to the network. It depends on other [inaudible].
[brief talking over].
>> Suman Banerjee: Right. So I think his question is whether somebody just
eavesdropping sitting outside the building, is that a real threat, parking lot
access, what basically people worry about. There are examples of incidents
which are, you know, like I think there was that I think the Mumbai bomb blast
what last year and seemed that the perpetrators actually attended e-mails by
high jacketing somebody else's WiFi. Now, you could think of that you know,
somebody outside the building is actually hacking into your network.
So that is -- that is, you know -- you're not eavesdropping, you're accessing the
network so if you knew that this person was physically not present inside the
house, I would not let his signal inside.
>>: Well, that just seems like a [inaudible] rather than ->> Suman Banerjee: True. But there is issues with crypto, too. I mean, you
have to configure people have higher -- if you had a simple way of saying, okay,
the signal doesn't go out or you cannot penetrate from the outside or I can detect
the outsiders easily, then ->>: But it is the thing, right? I mean, that's always the function of how far
[inaudible] I have [inaudible].
>> Suman Banerjee: Sure. Well ->>: There is no such thing as signal doesn't penetrate.
>> Suman Banerjee: True. But even if you could figure out -- you have a strong
or a sensitive antenna and you can get in, in fact if I want to localize you, I could
still try to prevent you from getting in, I guess. Okay. It's not a very strong
example. I'm not trying to claim I have an answer to that but, nevertheless these
are the different scenarios that I will try to focus on. So again, this is something
very well understood here. Early on we had enterprise wireless LANs which
were very distributed in nature and effectively each access point was asked to
fend for itself. So everybody fought for their own channel access, they decided
their own channel, channels to use, AP [inaudible] and all of that. And today we
are moving towards a much more organized structure where it's almost like a,
you know, a legion where there's a controller that manages all its soldiers or all
its access points.
And besides a bunch of parameters for these access points which makes things
lots more streamlined. Okay. So within this framework, what I'll try to focus on is
how this approach can be utilized for a few specific solutions that we looked at.
So one of the things that I'll talk about is achieving high throughput through data
part centralization, and I think that's a very interesting question in itself that lot of
the control mechanisms like channel assignment, load balancing and bunch of
other parameters have been centralized. But the key decision of whether or how
or when you access the channel, can you centralize that, can you take the
decision in the controller? That's one question we'll try to look at. And of course
it will be based on some kind of scheduling mechanism. So we'll look at that.
Then I'll look at energy efficiency and we'll look at some techniques on which
controller can facilitate the mobile devices to be energy efficient by specific
mechanisms.
Then I'll talk about some rich media services. This will be a very short part of my
talk towards the end, how the infrastructure can facilitate improved media
services in the environment.
And finally I'll talk about security capabilities leveraging the infrastructure. Okay?
So let me get started with the first question, which is -- yeah?
>>: I guess a sense of like in doing this what are you will to change and what are
you not willing to change?
>> Suman Banerjee: So, yeah, that's a good question. So the question is what
do we want to try to change when we try to implement some of the services.
Ideally our goal here was to do most of the things only in the enterprise so that
you can come in with any arbitrary client, you don't have to come in and
physically modify all the clients. But in some cases you cannot do that, and you
have to make changes on both sides.
So there are advantages of doing changes only on one side of the -- one side of
the environment.
>>: [inaudible] but I also meant like in terms of hardware [inaudible].
>> Suman Banerjee: Okay.
>>: [inaudible].
>> Suman Banerjee: Right. So almost everything I'll talk about can be built on
A2211 without making any changes to the standard. So I'll answer this question
individually for each component. So we don't have a unified strategy for
everything, so in some cases, you know, because of what gains we get, it might
make sense to do more. Maybe make formal level changes. In some cases we
can live with only simple driver level changes at access points or at clients.
>>: [inaudible] you can say after the fact, after the design what you need to
change and what not. I'm trying to get a sense of like as you -- as you approach
the problem itself, like did you place constraints on yourself?
>> Suman Banerjee: Yes. So we did place -- and again, I'm kind of integrating
different pieces of work, so it's not going to be a consistent answer every time. If
we constrain it if a certain uniform way, in some cases the amount of risks you
can get reduced. And obviously more changes you can make, the better you can
do. So there is a trade-off.
So the first one, let me kind of do it, take the first one is an interesting example
where the goal is to kind of do scheduling or accessing the medium in a
centralized way. And our goal this was to not change the A2211 standard at all
but provide a little bit of simple API from the access point by which we could
manage the spectrum and not change the clients at all.
>>: So I'm just follow up the discussion a little more.
>> Suman Banerjee: Yes.
>>: We looked at this and I sent you the paper yesterday.
>> Suman Banerjee: Sure. Yeah.
>>: The SIGCOMM paper and the [inaudible] paper. Here's the thing. It's a
matter of where we draw the line. I mean it's not so much [inaudible] change the
API or the [inaudible] although that's the main distinction in terms of [inaudible].
>> Suman Banerjee: Right.
>>: But [inaudible] think about whether you want to keep this [inaudible] right
and in an enterprise environment, and you have full control, why do you want to
keep the system [inaudible] all these papers that say [inaudible] is so much more
efficient and ->> Suman Banerjee: That's exactly what this work was motivated by. And I think
that you need to keep the CSMM map to some extent because you have to
coexist with others. Even though it's an enterprise environment, we don't want to
change the clients, which mean the clients are going to use CSMM map so you
have to coexist with that. And you may have known enterprise traffic which is
maybe peer-to-peer traffic for some specific application, so you have to coexist
with all of that.
So if you could -- if you could change the clients and say I'll have a TDMM map
across everything, then sure, you can change the CSMM map. But here we will
not try to change that.
Okay. So this is the question. So we really kind of saw you know a bunch of
papers, mostly I guess simulation based which showed that if you could do a
very good scheduling of course you get this very nice efficiency. So is there a
real role for centralized scheduling in enterprise wireless LANs? And if you think
of a distributed multihub wireless environment, one of the challenges is if you
want to build a schedule of traffic across all of these nodes, you need to really
know who has what traffic to send and when. Okay? Which means you have to
aggregate all this information in a central point, which means there is overheads
in aggregating all this information.
And what will we really try to leverage is that the enterprise has a nice structure
that can allow us to get this information for lot of the traffic for free. And that's
what we'll try to leverage in this work. Okay?
So let's look at this with the very simple example. So here is a very simple
enterprise network with two access points, a few clients. And we have an edge
router. We assume that all the traffic that is dominate in nature goes through this
particular edge router. Okay?
And what happens is let's say these two access points happen to be hidden
terminals to each other, that means access points cannot send to each other but
the clients will of course get interfered with each other if the two access points
transmit together. And now let's imagine there's a red packet and a green packet
intended for these two clients, red and green. And typically in the DCF model
what will happen is these two packets will get sent to the different access points
without any special mechanism in the router, and then eventually the access
points will do a carrier sensing act, they will not sense anything, and then they
will transmit, they will send the channel to be free and they'll transmit and that will
lead to collisions, backoffs, loads, throughputs, all of that will happen. So hidden
terminals are a very known problem in this setting.
Now, how do -- how can we -- so why is this an important problem? So some
people feel that, okay, hidden terminals, maybe they -- do they occur once in a
while? Is it an important problem, do we really care about it in terminals? If you
really went ahead and did a very nice placement of access points in the
enterprise, maybe you can eliminate all possible hidden terminals, right? But if
you really look at the picture here before, the reason we had this hidden terminal
was because of the location of the clients, it is not because how you place the
access points. So clients can show up somewhere and they create the hidden
terminal with respect to the access points and you cannot avoid it, okay.
So there is a reason to believe that hidden terminals occur even if you had the
best assignment of channels and the best assignment of location of access
points.
>>: [inaudible] anything about like the spatial distribution of clients like if you
look at [inaudible] like stationary clients tend to cluster in specific places.
>> Suman Banerjee: Sure.
>>: Like lounging, conferencing, what not. So it's unclear that you're arguing
that you will [inaudible] in that setting.
>> Suman Banerjee: So I'll give you some numbers. These are -- so here they
have some measurements we did were from office building like here where you
have clients sitting in each office and working on their laptops. And yes you can
have, even if you're sitting in lounges and maybe in conference rooms, if you are
unlucky and two people connect to different access points, you can easily have a
hidden terminal scenario. If you are ->>: [inaudible] access points that aren't on the same channel.
>> Suman Banerjee: Well, I'll give you examples. And these are really
measurements, okay. I'm not -- and let me explain this plot first, okay. So what
we did was these were using regular production enterprise wireless LAN. One
happens to be of course in our CS building in Wisconsin, and the other is in
Waterloo, University of Waterloo, and the two production networks are very
different from each other. Ours is a Cisco based network. They're all manually
deployed. The IT administrators went and figured out where to place the access
points. They manually assigned all the channels. We had nine access points in
our -- in the five floors that we are considering, actually. And they did channel
assignment. Okay?
The Waterloo network is actually Aruba network and Aruba has lot more
sophisticated algorithm, they actually have a little more denser architecture, they
place more APs in the environment, and they have a dynamic channel
assignment scheme. So they're always changing their channels, okay?
And then what we did the -- and so this is we didn't change anything in the
network. We went basically placed our nodes in different rooms, as if they were
like people sitting in different desks. Okay? And then what we did is we allowed
these different clients to do peerwise tests and see what the throughput impact
is. Okay?
So this plot what it shows -- so on the X axis you have a bunch of AP client links.
We had about 45 and 51 clients in the two networks. And let me see here. Oh, I
think -- yeah, this is fine. So basically what this plot shows is the reduction in
throughput that happens when the two links went together compared to when the
links went in isolation, okay. So if your reduction is .5. It means that you just
equally share the channel, right? That's perfect. If you're in isolation versus
you're sharing it with somebody, you get half the throughput. That's what you
would expect modularly to rate and all those things.
Now, if you go significant below .5, that's a kind of a hint that there is hidden
terminal interference happening that you are not able to control. And so what we
found was that a reasonable -- sorry, so throughput reduction, so above .5 is
hidden terminal. Below .5 is not hidden terminal. Okay? Below .5 actually
means that you're not really interfering, so that's why your reduction is almost
zero. Okay?
So we had about a third of our client AP pairs, a third of our client AP links had a
hidden terminal from another client and some of them went up as high as close
to almost zero throughput, okay. So it's anecdotal evidence from two networks
but it at least shows that, you know, you cannot plan things accurately because
even if you have two weak access and some clients placed and connected to
these channels, you're just hosed, you cannot do anything. And even though I
would -- you know, you could argue that, okay, there is only five or six clients that
are getting really impacted and others aren't, let's not worry about the problem
too much. The problem is that these five people are not getting any throughput.
So these five people are completely hosed, even if you feel that this is a small
problem, those guys are completely hosed. So you really want to solve the
problem for these people. Yeah?
>>: Except for the [inaudible] bossy nature of data, right?
>> Suman Banerjee: Right. So ->>: So they're not -- I mean they're not completely hosed in the sense like ->> Suman Banerjee: Not all ->>: [inaudible] interfering with not using a link all the time.
>> Suman Banerjee: Right. I agree. So of course if the two are not active at the
same time there's no a problem. But it's still a problem in general. They can't
always, but sometimes you can have two people using the network at the same
time and you get this very bad performance. So it's still a problem, you know,
how important the problem depends on the volume of traffic and other things and
that's, you know, hard to argue about what user behavior will be like going
forward if everybody starts watching video all the time, you know. You cannot
really comment on how severe the problem will go. But I think the problem
exists. So it needs to be examined at least.
Okay. So let's look at exposed terminal next. And what we did was the
challenge in kind of quantifying how many exposed terminals exist in a real
production network is very hard because everybody does carrier sensing,
typically. And once you do carrier sensing, you cannot know whether there was
an exposed terminal or not. So we had to do the exposed terminal experiments
on our test bed. So what we did was we described by think in this experiment
there were 30 nodes and we kind of treated them as different nodes as client AP
pairs. We kind of chose the APs to be the nodes that were closest to the
physical APs in the infrastructures kind of mimicking the behavior of the wireless
production network.
And here what the plot shows on the Y axis, sorry, X axis, you have the fraction
of links on the Y axis you basically have a ratio of throughputs. The ratio is on
the numerator, you have no carrier sensing, that is if exposed terminals could be
exploited, that is if toolings could actually transmit you could transmit.
On the denominator you have carrier sensed throughputs which means if
exposed terminals could be handled then you would get the higher throughput,
right? Which means that if you look at the line which says one which that means
anything that is below that or equal to that, those are not really exposed
terminals. Anything above that are exposed terminals. Okay?
So we have some links that are perfect exposed terminals in our test bed and
essentially if you could handle exposed terminal you get double the throughput,
okay? So both of these problems exist in one little -- explained through the
production level in our test bed, but both are at least significant enough that they
can be -- that they can allow us to get some [inaudible] okay?
So we believe that there's a lost opportunity here because we could do
something by scheduling and the enterprise wireless LAN environment has some
very unique capabilities that allow us to do the search scheduling okay. So why
is that? So imagine that this edge router actually could somehow create this
conflict graph which basically says which links interfere with each other in the
enterprise environment, okay? So it has this image of this conflict graph with
itself. And when the packets show up, it looks up its conflict graph and it knows
that if the red and the green packet were to be sent together, they're likely to
interfere on the channel, okay. So this information in somehow, somehow was
available at the router because it sees the two packets come to it, right, it's the
only point through which all the packets go. So it knows this information. But
once you send it out to the APs, this information is lost, the APs don't know
unless you have told the APs something about what the parts look like, okay?
So what we could potentially do as a very trivial example is send out the first
packet, the router sends out the first packet and just holds the second packet for
a little bit of time and then sends out second packet after delay, there by
mitigating the fire interference. Okay. Very simple idea.
And again, this is only possible for the downlink packets because all these
packets are going through the single router and cannot be done for the uplink
packets. Okay.
So basically what we first did was we went ahead and implemented a simple
scheduler for only downlink packet. And it's a five-foot scheduler so you want to
take the next packet and try to schedule in it a conflict-free way based on the
conflict map that you have generated. So for conflict map generation we use the
technique that [inaudible] and his students had designed called smart opp. And it
has some very good properties, allows us to, you know, be efficient in terms of
detecting these conflicts. And we did the scheduling. So we call this first
iteration of the solution deterministic scheduling or det okay?
And here is some initial good news. So if you had two links hidden terminal
topology and depending on what is your load on the two links, det can improve
on DCF, okay. So basically X axis is the load per link and we are increasing the
load. And here in the experiment what we did was we fixed the data rate to six
megabits per second. On the right-most one you basically have fully loaded, fully
saturated links. Yeah?
>>: So I'm guessing the effectiveness of this depends on carrier sensitive links
and also the wire line to ->> Suman Banerjee: Absolutely.
>>: Wireless to lay off [inaudible].
>> Suman Banerjee: Absolutely. And I'll talk about that, too. Yeah.
So the good news is that we did -- we did some modifications, we optimized the
delays on the part, we did some modifications to make the Ethernet driver to the
wireless driver part very efficient. It doesn't go through the kernels so it's like a
memory copies that reduces the variability and the latency in that part. We of
course implement our scheduling in the kernel so it's as optimized as we could
do without, you know, having a realtime operating system running on these
nodes. Okay? And the good news is that that which is very simplistic gives you
significant gains and hidden terminals when the tools are highly loaded, which is
actually good. Of course if the link is not saturated, then there is no gains
because there is not enough traffic, which is fine, that's not a problem.
So in the common case it's not a problem. In the heavy case you actually gain,
so that's actually where we are doing well. Okay?
But the bad news is that now I'm showing the same kind of experiments but for
hidden, exposed, and scenarios which are neither hidden nor exposed. Okay?
Or basically they're regularly interfering links. So hidden is very easy to gain
performance because of this -- this here does very badly, right, so it's easy to
beat hidden terminals.
Exposed terminals of course we have not done anything with carrier sensing, so
we cannot do anything, we don't gain any performance gains. And then for the
non-hidden, non-exposed terminals it turns out in the high load case we actually
lose a little, and that the precisely because of the scheduling and efficiencies we
still have in the system. We could not eliminate everything and slight delays and
slight amount of carrier sensing associated with the delays can destabilize your
scheduling scenarios and leads to performance problems. Yeah?
>>: [inaudible].
>> Suman Banerjee: Yes. So we actually have experiments which show that
there are certain hidden terminals that cannot be solved by RTS/CTS either, and
RTS/CTS gives you a significant penalty. So we have numbers I'll show you
which shows DCF, DCF with RTS/CTS and R schemes. Now, adaptive
RTS/CTS is useful, only if your hidden terminal is showing up now and then. If
the hidden terminal exists adaptive becomes all the time RTS/CTS.
>>: So by adaptive means you turn it on only when you see for terminals for
specific client AP links?
>> Suman Banerjee: True. But for those links you always turn it on effectively -I mean, so long as you don't move roughly, right? So adaptive is equal to, you
know, nonadaptive when the hidden terminal links persist, right? And we'll have
some numbers to show what happens with adaptive, basically RTS/CTS
enabled. Yeah?
>>: [inaudible] the case you are showing that the router did the scheduling ->> Suman Banerjee: Oh, so -- right. So we -- I kind of didn't really mention this,
but we put a special machine on the part.
>>: [inaudible].
>> Suman Banerjee: Yeah. So ->>: So if you have more than two APs, I saw the efficiency of the system would
decrease.
>> Suman Banerjee: Right.
>>: [inaudible].
>> Suman Banerjee: Everything has to pass through it, so if you imagine this is
like a little more complex function but happening at the fast part, if you could
implement this at the -- on the line card.
>>: Not the [inaudible] the thing is I mean that router cannot issue a packet
faster than the wireless basic speed. I mean ->> Suman Banerjee: You're right. So basically one scheduler can handle a
certain number of access points and then you have to get another one. So you
have to -- if you scale, we could actually do with 10s of APs. So we went after 20
APs, one scheduler was sufficient.
>>: If you're using [inaudible] am I right each AP can at the most get one tends
of the bandwidth for the normal wireless network [inaudible] I mean because
otherwise it would be scheduled too quick.
>> Suman Banerjee: Right.
>>: You still run the risk of ->> Suman Banerjee: You're right. But our backlink can be a gigabit Ethernet, 10
gig Ethernet, which is way faster than your wireless link speeds if you think of the
nominal rates that you actually get.
>>: What I mean is this wireless link on the wireless link each packet were
[inaudible] by a certain ->> Suman Banerjee: Yes, yes, exactly.
>>: At some point each -- let's say a kilobyte packet usually will occupy
somewhere between one millisecond and ->> Suman Banerjee: Right. Exactly. One millisecond per milliseconds or less.
>>: Something like that.
>> Suman Banerjee: Yeah.
>>: And in order to not to conflict, you have to space the packet far enough so
that when they fend down to different APs, they will have no chance of collision.
>> Suman Banerjee: Yes. Exactly.
>>: On the open space.
>> Suman Banerjee: Exactly. Right.
>>: And that means that each of the AP will only be able to handle a foundling
bandwidth which is inverse proportional to the number of AP divided by the
wireless deposit.
>>: That will only be for the conflicting ones.
>> Suman Banerjee: Right. So those ->>: The ones that are of the same channel.
>> Suman Banerjee: Right.
>>: You need to find which one that is.
>> Suman Banerjee: Right.
>>: That's what we are doing.
>> Suman Banerjee: Right. That's exactly what we are doing. So if links are not
conflicting, then we just let them go.
>>: [inaudible].
>> Suman Banerjee: Yeah.
>>: [inaudible].
>> Suman Banerjee: Yeah. I mean you couldn't do better than that anyways,
right, exactly. Okay.
So the problem we had were with the exposed and the non-exposed, non-hidden
terminal scenario is one of the challenges with the exposed terminals is that it's
not very easy because one approach to really handle exposed terminals is to
disable carrier sensing, and I believe that like the C map there's work from, what
it, MIT, I guess, right, the C map work kind of proposed the same link area
sensing in a certain way and they kind of were not focussed on the hidden
terminal problem as much. And we feel that it can be very detention to
completely disable carrier sensing, okay? So that's one of the problems. And
sorry, I missed a slide somehow which I'll try to find. But there is basically we did
this detail benchmark of where the various delays are on the part between the -between the controller, the access point and the client. And we basically see all
the variability in the order of tens of microseconds to hundreds of microseconds
in scheduling decisions and many of these variability comes from not being able
to know when due to carrier sensing the packet actually goes out in the medium
and there is also we need to get a wired acknowledgement. So when the Mac
layer app comes back to the access point, the scheduler needs to eventually
know that this packet got scheduled. So there is other delays that are built in,
which makes things very hard. So these are basically the two things that we had
to deal with, okay?
So the final design that we kind of moved to, we called it SENTAR, and it tries to
mitigate exposed terminals without disabling carrier sensing, okay? And what we
did was we actually fixed the amount of backoffs that we are scheduling. We
kept carrier sensing on. We fixed the amount of backoffs to be the average
backoff period that you would use between CW min, so between zero and CW
min, okay? So half of CW min is what we used. And we schedule in epochs,
okay? So what that means is when I get traffic for a particular access point I
don't immediately decide to send it out, I group traffic in units of time, say, two
milliseconds, five milliseconds or ten milliseconds. And I basically schedule this
epoch at different access points, okay?
And the advantage of scheduling in epochs which means that your group,
scheduling a bunch of packets together is that you really are able to hide lot of
the variability in the downlink because the -- now the variability becomes much
smaller because the epochs are kind of going together, and that really helps us
benefit in the exposed terminal case. And one other thing that the epochs really
help in terms of exposed terminal is that suppose you want two packets to go out
on the link at the same time, right, now suppose one packet just goes out, you
know, a little before the other packet, right. The second access point then if it
does carry a sensing will sense this packet and will not be able to schedule the
packet because scheduling sensing prevents it from the sending.
But if you send a bunch of packets together to the two access points, then the
first packet may happen by going out first, but after that, they will get perfectly
synchronized, okay, because they have these fixed backoffs and they will -second packet when they try to carrier sense both together with the medium
[inaudible] and they will simultaneously send out packet and all the packets
subsequently go completely in synchrony to the clients. And then the problem
basically kind of be solved because you have achieved the synchronization by
allowing the first packet even though it's offset to go out first.
Okay? So that was one of the tricks that really helped us in managing exposed
terminals. And then we could basically because we'd only said well, carrier
sensing we can coexist with uplink traffic, okay? And we used another trick to
coexist with uplink traffic which is what we call a hybrid data part, okay? And
which is -- which is a motivation for our name SENTAR, which is partly
centralized, partly distributed, like partly man, partly horse. So SENTAR
basically has a structure where if you think of this special five full scheduling
system what it will do is it will examine the packet and make a decision, is this a
hidden terminal or an exposed terminal packet? If yes schedule, if no, just let it
go. Let it go on the DCF. Okay in and that reduces the burden on the scheduler
because we don't have to schedule a lot of packets. A lot of packets are
probably just non-hidden terminal, nonexposed terminal. So we just let them go
on the DCF path.
So basically if you identify from your conflict graph maps which ones are hidden
terminal scenarios, which one are exposed terminal scenarios, we'll only
schedule those packets and not worry about the rest are. And it really simplifies
the load on the scheduler and it's also very intuitive because for problems that
DCF can solve, why bother trying to put in all the scheduling mechanism to make
it messy. So just simplify the problems and handle only the corner cases that
DCF is unable to solve. And that really works quite well. Okay?
So now I'll show you target instead of experiments that we did to validate that this
really is a good idea. These are two plots, so the one on the left side is the
exposed only terminal scenario which means that all our links we were able to
basically create exposed terminals by adding carefully placed node which will
behave as an exposed terminal to that link. Okay? And on the E axis you have
throughput, on the Y axis, basically it's a CDF of how many links had the
throughput. So the first line over there on the exposed terminal case turns out to
be that very thin red line is a SENTAR with epochs of two milliseconds, okay,
which is actually pretty bad. It is the worst performing scenario. An epochs of
two milliseconds is not good enough for us to actually benefit or to leverage the
exposed terminal existence because our scheduling granularity is not small
enough. It cannot handle two milliseconds, we need to have at least a five
millisecond granularity so that the synchronization actually kicks in and that gives
us the performance gains. Okay?
And then basically the second, the black line, the solid black line is DCF, okay?
In this experiment we did not do RTS/CTS because RTS/CTS does not have the
exposed terminals, but in the hidden one, we did. Okay? And then the next two
lines, the light red and the deep red line, they are SENTAR with epoch durations
of five milliseconds and ten millisecond, okay? So you can see a significant,
nearly a factor of two throughput gain. This is a purely exposed terminal
scenario. And these are I think about 19 -- a total of 19 nodes all organized so
that they're all exposed terminals. So the very construed example to show that in
exposed terminals we get various gains by using a certain epoch duration and
with SENTAR.
And the last docket line is the ideal case which means that if you are to disable
carrier sensing in absence of anything else, what is the best you could do.
So we are kind of approaching the best, so which is pretty good that we get
almost a factor of two gain in all the links as far as we can tell in the scenarios we
have tested. Okay? Then you go to the next one, which is a hidden terminal
only topology. So all links basically here are hidden terminal, everything's
downlink in traffic. And the first line that you should look at is that dark black line.
That is DCF. Okay? So what happens in DCF is the hidden terminal is -- is
when there are hidden terminals, some links will really suffer, and when some
links suffer, basically they don't get to transmit which means some other links will
get to transmit and occupy the channel all the time, right? So there is huge
unfairness. Some links get no throughput, others get all the throughput because
they see the channel is empty. Okay?
So you had this distribution where maybe 50 percent of your links have very little
throughput and about maybe 12, 20 percent of your links have all the bandwidth
highly unfair scenario. Right? And then the dotted line is RTS/CTS, and it has a
little bit better, it mitigates some of your hidden terminal problems but not
enough, and it does a little better than DCF. And all our SENTAR schemes
which are in red actually is able to distribute the bandwidth all across, you know,
most of the clients that we see.
So we have a very nice improvement been throughput and actually the
aggregate throughput is conserved in the two experiments, they're very close to
each other. So the big gain in hidden terminals is not that you'll get more
throughput overall because finally the -- so long as your environment is fully
utilized that's the best you can do, but it balances the fairness across both hidden
terminal and non-hidden terminal links. So that's what we basically -- we
basically get in this. It's initial validation that the mechanism that we have
proposed are achieving the expected gains that we hoped, okay?
The next microbenchmark that we did was look at what happens with -- so the
previous one was only downlink traffic, which was, simpler because we are
scheduling everything. What happens with uplink traffic in the mix? Okay? So
in this example what we did was we had a pair of hidden terminal links and uplink
traffic, also operating in that environment. And we did hidden terminal plus
unscheduled, unscheduled is uplink and exposed terminal is unscheduled. And
what you can see is that with DCF, the hidden terminal software, the uplink gets
a lot of the bandwidth and with SENTAR, you know, the throughputs, the hidden
terminals are mitigated and the uplink doesn't suffer, okay?
And in fact, in all our cases the uplink also gains because when you mitigate
some of the hidden terminal problems, the channel utilization becomes better
and when the channel utilization becomes better, everybody gains because
everybody gets a little more of the channel because there is less collisions, less
losses. Okay? And it happens for both cases.
So at least uplink can coexist. So these are the initial microbenchmarks. And
then we did a large number of studies on different topologies with different types
of traffic. So these were, you know, kind of painstakingly done by my students,
so I'll go through a few of the slides to explain what happened.
So these were experiments on mixed topologies. So you had hidden terminals,
exposed terminals, regular nodes, all of that. And the top most set of bars
basically have DCF, SENTAR with two milliseconds, SENTAR with 10
milliseconds, and each bar corresponds to a client. There were 9 APs and 12
clients. So each bar is a client. And you have variances in all of that. The high
level bit, so the top level set of bars is UDP. Then you have TCP, then you have
delay, not just throughput. So throughputs and then delay.
And in general, we improve across all of the cases, you know, just looking at the
first set you can see that the average aggregate throughput gain across the
entire network is about four to six percent and the biggest gains of course come
to the hidden terminals in that case, 1.8 times of their DCF performance and
exposed terminals also get a more than 50 percent gain in many cases.
So overall, in a mixed topology we perform pretty well. There is a bunch of other
experiments. I won't go through all of them. It shows what happens when you
have a mix of uplink and downlink and you chain the ratio of the uplink to the
downlink. So you know, the gains are kind of persistence across all the
scenarios when we varied the amount of uplink and downlink.
>>: Okay.
>> Suman Banerjee: In the previous set of results I say that -- yeah, go ahead.
>>: [inaudible] on or off?
>> Suman Banerjee: So in the previous set of experiments we did fixed rate just
because it's easy to interpret the results. We did also different rates and then we
did auto rate. And you know, the gains persist. And the really -- the higher the
rates and the auto rate actually is even more beneficial to us because we are
operating on larger blocks, and so long as we can predict how things are
behaving we are estimating the delays on the parts we can actually schedule
things pretty well, whereas, you know, DCF goes into, you know, rate adaptation,
with hidden terminals things get very bad with rate adaptation, because it's really
not the rate which is the problem but the hidden terminal which is the problem.
So auto rate actually makes it even better for us. Because rate is not the
problem when they're hidden terminals, that's really the high level thing. So we
have experiments.
Now, this was another interesting experiment which is basically playing back real
traces on the same network. So what we did was we took the SIGCOMM 2004
traces which were bunch of web downloads people were doing and we played
them back from the clients and which of course clients and request data comes
back and this plot shows distribution of delays in downloading that web pages or
whatever they were for all the different sessions that were run and sorted by the
transaction size, size of the file that was being fetched. And basically we get
delay gains over the fetch durations for each of these web downloads.
We did more experiments with web traffic looking at opinions, core and so on,
and all of them were pretty good. So overall, based on the amount of
experiments we have done, we feel that this is a fairly robust solution for an
enterprise setting because it doesn't hurt people who are non-hidden,
non-exposed and it really gains when they are hidden and exposed. So overall,
you know, we don't lose much, but we gain a lot. So it's kind of a solution that we
are very comfortable with in kind of proposing for enterprise environment.
And the advantage here is that we don't require any client level modification.
Everything -- any change that we have done is only at the axis point and the
controller site, nothing -- and the axis point is really -- in fact, axis point the only
change we made was the driver to driver part optimization which is a serious
change in amount of coding effort, but it's really try to optimize the part agencies,
okay? And that became -- that was more important when we were doing
deterministic scheduling. It became less important when we do epoch-based
scheduling because we can live with variabilities better.
So in fact I think if we just disable the changes we made in the axis point we
should be just fine. There are other parameter changes in the axis point which is
the fixed backoffs, which is a parameter choice that we had made and so on. But
anyways, the clients don't change, and that's, I think, the biggest advantage in
this whole story.
>>: [inaudible].
>> Suman Banerjee: Yeah?
>>: [inaudible] I mean this scheduling seems a [inaudible] enterprise. How
about [inaudible]? I mean ->> Suman Banerjee: Right. So ->>: Even at my home I store a month of APs from my neighbors.
>> Suman Banerjee: Right. So very good question. So what happens in home
scenarios, do the result translate to home scenarios? And the challenge there is
that you don't have controller that can manage all your access points of different
homes, right? If you could, then you could just translate the same results to the
home environment, but I don't know if that is an easy fix because your neighbor
may be actually operating using a different ISP, and would you allow scheduling
at that level from a controller to all the ISP networks? That's really the key.
>>: Is your department non running 11A?
>> Suman Banerjee: Our department has 11A, but very few clients on it. Yeah.
>>: It's really [inaudible] just dying out. I mean people shouldn't be really
concerned about range. It's dying out. It seems like you know a [inaudible] and
lower ranges even is a blessing is not a problem. But I mean, it's hard to now
even go to try to buy a [inaudible].
[brief talking over].
>>: [inaudible] it's ridiculous.
>> Suman Banerjee: Exactly. So I guess it could solve the problem, but I -- you
know, that's not true.
>>: [inaudible].
>> Suman Banerjee: 12.
>>: [inaudible] you know like the [inaudible].
>> Suman Banerjee: You know, but there is actually another motivation why you
may want to keep a bunch of APs in the same channel, which is because of
handoffs. So actually keep APs in the same channel and they have overlap, then
the handoff process becomes -- because the client doesn't have to change
channels for handoff.
So there is some reason why you people -- even if you use 11A, there may be
some reason why you may want to deploy things to be on the same channel.
>>: [inaudible] I mean when you change from movie from one access point to
the other, even if you are using the same channel, I assume the process is
[inaudible]
>> Suman Banerjee: Yeah. But with avoid, you know, the smooth will be not as
smooth depending on [inaudible].
>>: [inaudible].
>>: [inaudible].
>> Suman Banerjee: So the complexity is really -- so the conflict map requires
the APs to be able to send packets in a synchronized way and observe whether
responses come back or not. And that's really not our work so I didn't go into the
details but basically if you send two packets and you don't get the X back and
you do this couple of times, you know that there is some sort of conflict. And
based on what kind of experiment you do, you can tell which kind of conflict it is.
>>: But you're doing for like ->> Suman Banerjee: Individual packets.
>>: No, but to you do it for every AP parent client.
>> Suman Banerjee: Every AP parent client pair and actually for 10 AP network
with 12 clients or 9 AP network with 12 clients that at least a smarter scheme can
achieve this within let's say four or five seconds. And you can probably distribute
it. It doesn't have to be done continuously so you can space that out. And all
this is factored into the experiment. So there is some [inaudible].
>>: [inaudible] I mean the complexity versus the performance. I mean the
performance benefits seem universal.
>> Suman Banerjee: There is complexity in the detecting the interference and I
think the complexity, the complexity and scheduling is there, so if you have very
inaccurate scheduling you will get bad measurements basically. But ->>: [inaudible] I mean since [inaudible] for the AP, if you detect that there are
these [inaudible] suspect that they might occur, you might have [inaudible] AP
channel assignment.
>> Suman Banerjee: So the problem is that these are maybe transient, right? It
could be just two clients sitting at some location that doesn't exist and you could
say that do we change it for these two clients when there are 20 other clients that
will get affected when each -[brief talking over].
>> Suman Banerjee: Aruba does.
>>: Yeah. But you know how [inaudible] once every night.
>>: Sure. Sure. But I mean you can -- [brief talking over].
>>: You can force the AP to disassociate. So you [inaudible].
>>: I under ->>: I force one client to just disassociate [inaudible] AP.
>> Suman Banerjee: That's a solution. Sure. I mean, whether by changing
channel I mean do you introduce -- I mean, maybe you kind of loop around,
there's another hidden terminal somewhere else.
>>: No, don't change channels, force the client to go to another channel,
disassociate him.
>> Suman Banerjee: What if that is only AP for that client? I you mean you
could get in the corner cases. I mean I guess you're right, we could do some of
the other things, too. I agree. But when we haven't investigated that, you guys
are looking at that, so certainly you should tell us what happens.
>>: [inaudible].
>> Suman Banerjee: Okay. So I will -- I have one until 12, so I have many more
slides to go. Is that right?
>>: [inaudible].
>> Suman Banerjee: Okay.
>>: [inaudible] but that's okay.
>> Suman Banerjee: So I was told it would be 12 [inaudible]. If you want I can
speed up and talk about a few less things, okay. So with that, I'll kind of move on
to the next question, which is how do we leverage infrastructure to improve
energy of mobile devices. And here basically we start the -- okay. So let me just
-- I think it's -- never mind. Yeah. So basically the approach we are trying to take
is, you know, packet losses are wasteful, we want to reduce them, avoid them as
much as possible, and then if possible we also want to improve the efficiency of
each transmitted bit, so I'll try to talk about both of them in some amount.
So the fundamental problem of, you know, packet loss, rate adaptation, condition
window adaptation, all of these things is the ability to figure out what caused the
packet loss, right? So imagine the scenario. Transmitter sends the packet to the
receiver. Packet is received in error, and then the error could have happened
due to at least two different reasons. It could be a collision or a weak signal.
And the interesting thing is each scenario requires a different the form of
adaptation. So if you have a weak signal and you do RTS/CTS or you do
backoff, you do adaptive RTS/CTS or anything, that's a wrong solution. You
really what you need to do is you need to either reduce the data rate or increase
transmit power, okay?
Whereas if it's a collision and you reduce the data rate, you are actual making the
problem worse. And typically most systems tend to do both because they don't
know which one it is. So they do both and one of them at least is wrong. All
right? So the fundamental question I think in our mind is how can we distinguish
between what is the cause of a packet loss? Was it a weak signal or was it a -was it a collision? Okay. So that the first thing that we wanted to solve and then
we'll show how to utilize that information in an infrastructure based system. So
we took a very simple approach and almost like a brain dead approach in my
opinion, but it actually works pretty well, so it's worth talking about it. So let's
see, let's match that we send this packet, transmit a packet, and it's received -it's received at the particular receiver. And it may be received in error, okay? So
the question we posed is by conducting like a postmortem of this packet can we
tell what is the cause of the error, whether it's collision or mixed signal. Okay?
So now imagine that if you have the original transmitter packet and received the
packet in error, you could compare things like the rich bits were in error, and you
know, what can you tell from these different bits, you know, so we can create an
error bitmap. But the only way you could do this is if you allow the received
packet in error to be send back to the source. Okay? So we took this kind of a
simple approach and said that, okay, we'll send a packet. If the packet is
received in error, we'll send the corrupt packet back to the source. Okay? And
then we'll let the source figure out what happened and then based on that, it will
do the right thing in terms of rate adaptation or, you know, whatever condition
window adaptation and other things like that.
Now, this might seem like a bad idea because you are wasting bandwidth in just
sending this big corrupt packet back, but from the energy point of view, if you
think about it, most of your, you know -- the energy savings that we really want
are at the clients, okay. So we really -- what we do is we do this for client traffic
so that it's client sending packets to the access points, only the access points
sends this packet back. And of course there is reception cost to the client, but
that is probably much less than transmitted cost, so that's fine. So for downlink
traffic we don't do this, all right, it's only for uplink traffic.
>>: [inaudible] receive cost is pretty much equal to transmit cost.
>> Suman Banerjee: Okay. That's ->>: [inaudible].
>> Suman Banerjee: It depends on the card, but -- so, okay. I agree that maybe
there is some increased cost, but I think the overall gains that we'll get actually,
you know, far ->>: [inaudible] the receiving [inaudible] AP ->> Suman Banerjee: The receiving SDR doesn't give you enough information. I
guess with, you know, SDR kind of things you could probably look at more -more information in the packet and figure this out. But we don't do this. We are
doing this on A.211, okay. If you could look at, you know, received SNR on
packet chunks and things like that, you could kind of tell. Okay?
So this work is actually very -- I don't think we have gone deep enough into the
problem, but we have taken some very initial steps. But I'll present some results
on that. So we actually kind of were trying to look at eight to 11 level metrics
which we could observe by observing bit error patterns in the packet and by
knowing which bitmap to which symbols and things like that. Okay?
So we basically looked at receive signal strength, we looked at bit error rate, we
looked at what we call errors per symbol. So how many bits were in error per
individual symbol? What is the symbol error rate, which is basically how many
symbols were in error as opposed to bits in error. And then we computed what
we call the S core, which is the number of consecutive symbols in error. Okay?
So you get a highest code if you have more number of consecutive symbols in
error as opposed to they're equally sparse, spread out through the packet.
Okay?
So we got compute all of them, and basically the high level intuition is that if there
is a collision and similar ideas now of course have been proposed by others
when they do things like analog network coding where they were trying to
observe where a packet actually starts colliding and things like that, but by
looking at much more detailed information in the packet, we are actually doing
this through A.211 only. And we basically expect that if there is a collision, a lot
of bit errors will happen in a large number within the two packets, we expect that
the errors per symbol will go up with symbols go in error they actually have a lot
of errors. These were some of the intuition that we had, and then the number of
consecutive symbols in error will also go up because of the same effect you have
in the bit errors and so on. So we looked at all these five different metrics, okay?
And the overall system what we designed was we took these five metrics and
when the client sends a packet, the AP sends the error packet back to the client,
it looks at the error bitmap and it computes all these different metrics and all
these metrics basically vote and say, yeah, it's a collision or it's a weak signal.
And based on that, we do link adaptation. Okay? A very simple algorithm has
some overheads, but that's what we did.
And what's interesting is that actually each of these metrics have some ability to
discern between collision and weak signal. It's not perfect. Yeah?
>>: [inaudible] right.
>> Suman Banerjee: Low [inaudible].
>>: So it goes [inaudible] also mean that the signal is [inaudible] or does it
[inaudible].
>> Suman Banerjee: It could be either.
>>: But if the noise [inaudible] collision.
>> Suman Banerjee: The noise is high -- I could not tell at least. I don't know. I
mean, it could be, but it's ->>: [inaudible] just wondering [inaudible] difference between the two, I mean ->> Suman Banerjee: Oh. So you could -- so basically the [inaudible] signal
strength measure that we get from the card doesn't tell us which of the two
actually happens.
>>: [inaudible].
>> Suman Banerjee: Yeah.
>>: Curious what does it mean to have a collision with [inaudible] versus a
[inaudible] I'm not sure what that means.
>> Suman Banerjee: I think that it is like synchronization got loss and whether -I don't know.
>>: [inaudible] think about this. I mean, if it's collision, right, I assume one of the
packet you probably receive a packet header [inaudible] because collision is
caused by two different packet source. So you have, I mean, one packet goes
through the other basically [inaudible] the packet can collide with another packet
[inaudible]. If it's weak signal, I mean [inaudible] then richer is loud. [brief talking
over].
>>: Right. But noise means collision, right? Could mean collision.
>>: So what I'm basically [inaudible] is this. You can define noise as high as -- if
knows is really that high, it should wipe out whole packets. [inaudible].
>>: [inaudible].
>>: Okay.
>>: [inaudible] what's the definition of [inaudible].
>>: I guess [inaudible]. You don't know whether the noise is from another
source or it's just from some other unintended protocol. I mean, let's say this
collision is defined as the source is another client [inaudible] right? We see now,
I mean, where the source can be let's say basically a colorless form [inaudible]
which just emits signal and not [inaudible].
>> Suman Banerjee: So ->>: Is it possible to [inaudible].
>>: Another way to [inaudible] is getting that if it's because of the provision the
increasing noise of the receiver is temporary and in a sense it toss not overlap
the entire package.
>>: I'm talking about [inaudible] I'm just curious about a one bit. Is it possible to
tell about [inaudible] or do you get some [inaudible] the stuff you were doing
[inaudible] that the noise can become better if it was as a signal? Can we
sometimes [inaudible]. I'm just curious whether you [inaudible].
>>: From the card?
>>: [inaudible] signal and noise.
[brief talking over]
>>: Occasionally you can get [inaudible] from the card which is [inaudible] I
mean, depends I mean whether the chip is will to give you that information.
>> Suman Banerjee: I don't think if it gives you S and N separately, sometimes
it gives S plus I, right?
>>: So you can get N because the hardware knows baseline N.
>> Suman Banerjee: Okay. Sure.
>>: That's what it used to synchronize itself.
>> Suman Banerjee: That's true.
>>: But I think what's unclear is like what timeframe it is actually.
>> Suman Banerjee: That's another problem.
>>: Plus like so the interesting thing is people have done detail measurements
where actually like some [inaudible] the reason RSS is not predictable is because
of ODM. What really matters is like S and R of individual subcategories.
>> Suman Banerjee: Yes.
>>: And that can be variable. And what the card gives you some kind of
average ->> Suman Banerjee: Average.
>>: Across the carriers.
>> Suman Banerjee: Sure.
>>: So what's really predictive, it's kind of like going back to the underlying
physics for predictable performance is the S and R [inaudible].
>> Suman Banerjee: Sure.
>>: So if you knew that, then your prediction would be a lot more accurate.
>> Suman Banerjee: That's absolutely right. I agree. Yes. So we did this in
2007, 2008 timeframe.
>>: [inaudible] variables not the average [inaudible] from sort of the -- because
there is a variance [inaudible].
>>: Selective fitting section.
>>: I see, is it selective fitting or is it --
>>: It's selective fitting.
>> Suman Banerjee: But if it's collision, it probably will affect a lot of them in the
same way.
>>: [inaudible].
>>: Because different subcategory frequency.
>>: They're pretty close, right, I mean there's not that different?
>>: Well, it does matter, it turns out. Which is the primary motivation behind
ODM as well. So I think in measurements you can see like, you know [inaudible].
>>: I see. [inaudible] deliberately select [inaudible]. I mean you want to get
some [inaudible].
>> Suman Banerjee: So actually I'll kind of interest of time, I'll summarize some
of the main results that we had. So it turns out that by using this voting scheme
what we could actually do was we could get a very accurate prediction of when
the collision happens due to a weak signal. So we got very high accuracy. If it
was a weak signal based collision, weak signal based pack loss we could tell it
pretty accurately. But if it was a collision based packet loss, we would make an
incorrect prediction 40 percent of the time, okay. So we have one side we could
do accurately, the other side we couldn't.
That was basically what this set of observations, that set of metrics were defined.
So clearly there is call for improvement and some of the things that [inaudible] is
mentioning looking at an individual ODM subcarriers probably will give you much
better performance. But this was the first stab at the problem. So ->>: [inaudible] you talk about the [inaudible] how do you know that [inaudible].
>> Suman Banerjee: Right. So we created the -- we created the ground crew.
So what we did was we positioned nodes if a way that we know that there is no
other interfering source and so it has to be weak signal and so on. So ground
truth is created for this.
So one of the problems that we face -- faced in kind of figuring out why weak
signal, detecting weak signal is a problem was given the metrics that we chose,
captured effect came and really interfered with us. If captured effect happened
we couldn't tell if the packet was lost due to weak signal versus collision, okay?
And the other thing that really messed up our measurements are our
predictability of the metrics was the size, the relative size of the colliding packets.
If there's small packet colliding with a large packet, that looked differently than
two big packets colliding with each other. These were [inaudible] problems. But
anyway, so we went and implemented the system with all the overheads of
sending the current packet back and all of that, and essentially this is basically
showing over time throughput gains which also translates so you can translate
that to energy per bit to kind of translate the energy gains, and so we
implemented this system called COLLIE which it stands for the collision
inferencing engine in the hardware -- sorry, in the system, not hardware, in the
kernel. And this is over time, the throughput you get for a mobile client in
presence of other traffic. This is basically because you are able to detect which
of the two is happening to some level of accuracy and take corrective measures
better in each of this ->>: [inaudible].
>> Suman Banerjee: So this is -- so we divide the throughput with the total
amount of energy consumed and I think I have the energy numbers in the
subsequent block. Oh, I think ->>: [inaudible].
>> Suman Banerjee: That's not throughput by energy, actually. These are
throughput gains, and I think the -- I don't have the energy plots here actually, all
right.
>>: But you [inaudible].
>> Suman Banerjee: We actually measure energy. We have energy
measurements just by taking the amount of energy consumed across the card.
And the -- I think the slide that actually is -- illustrates the point is that the number
of retransmissions with COLLIE goes down significantly so that will already give
you significant energy gains. So reduction in wasted retransmission goes down
by 40 percent. Okay. So I mean it depends on the -- how much mobility, how
much interference, all of that. So if it's a very good channel it didn't matter. So,
yes.
And some of these measurements were done by emulating this on a SPH is 101
or WiFi phone. So we were trying to basically emulate this for a bus or WiFi
device.
Okay. So I think I'll just talk about one more thing. I'll skip over a bunch of slides
so just pardon me here. So this is basically there's some work we did on kind of
reducing or improving the efficiency of the number of bits you transmit. It is the
initial part is header compression, but there is lot of interesting other ways of
eliminating redundancy some, you could eliminate a bunch of control message
that is are redundant because eliminate redundancy in payloads.
So there is the one I'm skipping over is probably some people here have heard of
it. This is our authentication work using radiometric fingerprinting which is
basically -- I don't know, this is a [inaudible] paper from last year which basically
looking at specific hardware level characteristics in packets or other
manifestation of hardware level transmitter properties in the packets in terms of
distorted frequencies or -- so looking at things like phrase error, the same
correlation error in that we receive packets, can you tell different transmitters
apart and then can you build security based on these kind of feature.
So this work was done using our very sophisticated piece of hardware, a vector
signal analyzer that would observe the packets, calculate this metric, give it our
and then we feed it into a machine learning tool and we could show really high
gains in terms of performance and accurately determine in transmitters without
requiring clients to authenticate, okay.
So I'm going to skip over this because I want to talk about the one last thing,
which is one of our most recent work, and I'm going to talk about for a couple of
minutes probably.
So we have been looking at this problem of WiFi video multicast and -- yeah?
>>: [inaudible] rest of the week.
>> Suman Banerjee: Right.
>>: [inaudible].
>> Suman Banerjee: Okay. So one you mean?
>>: Yeah.
>> Suman Banerjee: Okay.
>>: [inaudible].
>>: [inaudible].
>> Suman Banerjee: Well, this is -- this two minute version is really focussing
on the problem and the results. And maybe we can talk about this informally and
maybe that's fine. Yeah. So basically the problem we were looking at kind of
was motivated by something that our campus ID folks came and talked to us and
they said that they're interested in doing this campuswide broadcast of lectures
and they feel that in many cases students sit together in the library or in the dorm
and they will be associated with the same access point and if you'd broadcast the
same content to all the users it's going to, you know, self interfere and going to
be lot of problems especially if you go to HD the quality video. So how can we
sustain high quality video over multiple users when the video content is the
same? So this is basically WiFi video multicast.
And in this two minute teaser, I'm only going to give you the results and not the
techniques. But, you know, we can talk offline. So basically the -- I think the
punch line for our work really was that we could scale up to 25 users when we
were transporting video at the rate of 20 megabits second, which I thought was
very impressive.
And here is one experiment where it shows a few of the interesting things, so this
is PSNR of a video clip at the 20 megabit per second rate and we had clients that
were located in the good, medium and bad channel conditions of receiving the
same content. And we have four sets of bars for each client. So the first -- the
black one is unicast simultaneously, so it's individual unicast to each particular
users, 10 of them in this case, and obviously, you know, 20 times 10 is 200
megabits per second. So of course you don't get any useful PSNR over here, so
the black line is very bad.
The next one is a red line, which is broadcast, and broadcast at the best possible
data rate that you could pick. A single rate, fixed rate, but best possible rate.
And it does well because you're only transmitting one stream. Whoever doesn't
get it doesn't get it. Okay?
The next one, the green, is individual unicast, so this is actually interesting.
Individual unicast is you're only transmitting to one user at a time, and there is no
other user that is receiving stream at that time. Okay? So individual unicast you
expect it to do very well, because there's only one user. But the funny thing that
happens is that when the channel is good for the users for whom the channel is
good, you get very good performance.
As you get from medium to worse, unicast, individual unicast starts performing
badly, especially when compared to our scheme which we call [inaudible].
Okay? And it's -- the interesting aspect about individual unicast is that here what
happens is there is some notion of header plan blocking that happens. So if the
channel is bad and suppose you have a P packet that is sitting in the WiFi card's
buffer and it's trying to transmit this and it's not going through, it keeps on
transmitting this until it succeeds, and it keeps on transmitting more P frames
until this is hidden and then the I frame tries to go up, but the I frame can get
delayed sufficiently that the P and the B frames are occupying more of the
channel time in some cases.
In [inaudible] what happens is we at the proxy are deciding how to retransmit and
what to retransmit. Okay? We are not letting the Mac layer do anything because
we are doing broadcast and broadcast we don't have any acknowledgement so
we cannot retransmit. So because we are able to kind of expose packet priority
or, you know, even the retransmission priority, which packet is more important to
retransmit than others and how do you construct the correct schedule of packets
to transmit, we are actually able to implement a better schedule of transmissions
because we are kind of, you know, aware of packet priorities. So we actually
even in the bad case we outperform unicast to individual clients, which was a
very interesting result from our point of view that, you know, we can get to this
kind of performance.
The scheme is actually fairly adaptive and so we have a bunch of packet priority
mechanisms in there, we have rated adaptation for broadcast packets, we have,
you know, a scheduling mechanism and the rate adaptation of the little data is
interesting complexity where we set up a base rate to use for each -- a base rate
to use for the entire group and then we have mechanisms to choose data rates
for different packets which is above the base rate in certain cases, depending on
the packet priority. Okay?
And here is, you know, some example showing impact of things like interference
on performance so, you know, we started interfering source, and it shows that
broadcast, of course, doesn't do very well. Individual unicast in general does
well, and we can also kind of get to the same rate. Our latency in adapting the
rate is a little slower because we are trying to do it for the whole group and so
we're a little bit conservative compared to the most efficient way of doing it as
single user. But it is not significant.
And we did similar in the mobility experiment, so, you know, one user kind of
went behind a wall and came back in a few seconds quickly and we looked at,
you know, how adaptive things are. So it's kind of an interesting solution of trying
to do HD video to a bunch users. So I'll be happy to talk about more details
when we subsequently [inaudible] with each of you.
So I think that kind of summarizes our work. There is a bunch of other projects in
our group we do -- you know, we're looking at this metro scale mesh network
management with our 250 node access point network that we have in local
Madison and we're looking at some of the issues of fault management there. It's
kind of slowed down a little bit when it -- we need to pick up our pace there.
And the last thing I'll mention in the context of video services over wireless
networks, this is another piece of I think very interesting work, but this is one
example where we are looking at using SDRs for exploiting application layer
information with the file layer encoding that is employed. Okay? So we call it
approximate communication.
And the high level idea is that if you think of a set of -- you think of any
constellation scheme like, you know, 250 or 16 or 64 [inaudible] when a packet or
when a symbol is transmitted, the problem -- so there is a probability the symbol
will be received in error and the symbol error probability kind of decays with
distance from the location of the transmitter symbol, that is in the IQ space. So
you are likely to make errors which are close to you in the IQ space than which
are far away from you.
And the reason that will happen is if you are selecting a good enough rate, you
will obviously be making most of the times you will be correct, otherwise you're
not going to use that rate. When you rate adapt, you make sure that errors are
close by, or in fact you're trying to make sure that the most of the times you're
getting the right symbol. So as a natural consequence errors are also close by
more than they are far away. Okay?
So because of this property, what we can actually do is if you think of a symbol
consisting of a number of bits, we can selectively provide greater priority or the
channel -- I should say the channel provides greater protection to some bits than
others. So effectively in six bits of our X24 plan let's say the first two bits are the
most protected, next two bits are a little less and the last two are even less.
So if you can now map IP and B frames to the most protected less protected
least protected bit positions then overall the channel is giving you differential
protection for free without even having to introduce APCs or anything like that.
So you can do much more on top of that, but this is some capability the channel
already provides and we never exploit it. Okay? So that's the basis of
approximate communication.
So we design the system based on this using the WARP radios from Rice
University. There is feedback and all of that, so it does change on the Mac
protocol and so on. And you know, there are lots of experimental results to show
how this works. Yes?
>>: [inaudible] you're saying [inaudible] given symbol.
>> Suman Banerjee: Yes.
>>: [inaudible] differential.
>> Suman Banerjee: Yes. Depending on the bit position. And depending on
the encoding scheme that we use. So encoding scheme says how you map.
>>: Right. So why -- I would have thought that decoding scheme would be
optimum in the sense like all other possible symbols are equally distant from
[inaudible].
>> Suman Banerjee: Well, that's not possible, right, because if you take any
position 64 client.
>>: Yeah.
>> Suman Banerjee: There are 63 other positions. How can you ensure that
they'll be all equally ->>: No, no, you care about the symbols around a particular symbol.
>> Suman Banerjee: Right.
>>: There are equal number of symbols for a particular symbol.
>> Suman Banerjee: Right.
>>: And aren't they -- aren't they ->> Suman Banerjee: All of those are probably equally likely, I agree. But you
can still ensure that in general depending on how you map bit values to symbols,
you can ensure that the first bit is the most protected. The likelihood of the first
bit error. It depends on how many times by going to the neighboring symbol you
flip that bit. And that can be made fewer than the last bit flipping when you go
across one symbol. So that's by choosing the encoding scheme.
>>: [inaudible] but is that -- is that the property of current codes that are being
used?
>> Suman Banerjee: Some current codes actually have that property, but you
can also select the mapping. It's a choice that you can map. It's a completely
software decision.
>>: [inaudible]. So I mean that depends on what information you want to expose
to [inaudible] just a [inaudible] is equally [inaudible].
>>: Yes, so the [inaudible] I guess for some reason I [inaudible].
>> Suman Banerjee: So.
>>: [inaudible] is like you design if you [inaudible].
>> Suman Banerjee: Right. So what people do is they have this scrambler
module in the middle and that tries to kind of random [inaudible] all bits in some
ways are equally likely to be in error. Because you have introduced some
redundancies. And even after scrambling the bit positions are in error. Different
bit positions have different error. So if you scramble the I frame and you
scramble the P frame and then you scramble the B frame and then you take the
scrambled bits and put it on the most protected, medium protected, least
protected, you get that kind of property for the I bits which are scrambled P bits.
So overall you get this differential protection for free. And that's what you can
exploit.
And then you can -- so we're looking at various follow-up problems which is how
do you choose a constellation space that has certain properties of protection and,
you know, things like that, or what are better mapping between the encoding
scheme that you use.
So we got -- I mean, there's lot -- I mean, this is one slide for a whole paper
actually that we can talk about.
>>: [inaudible]. Because it makes the [inaudible].
>> Suman Banerjee: That is true. That is true.
>>: Different [inaudible].
>> Suman Banerjee: Yes, it's a different -- there's a single unicast problem that
[inaudible] and you know, it really, what it does is for -- in fact, what it really does
is for a symbol that is in error, if you think of schemes like [inaudible] zig-zag or
like, sorry, MRD and its variant, soft, all of these, what they're trying to do is
they're trying to increase the probability that the symbol is correctly decoded.
What we are trying to do is even if the symbol is decoded in error, we will extract
a few good bits out of it. So we are still extracting more out of the symbols which
are in error and that's what apex [phonetic] -- the system is called apex. That's
what it does. But it, of course, requires changes, both sides [inaudible].
So I'll stop there. I think that's a lot have things condensed in, and I probably
skipped over a bunch of things, but hopefully it sets up some context for more
conversations. Thank you.
Download