on redundant multipath operating system support for wireless mesh networks
Post on 21-Dec-2014
1.190 Views
Preview:
DESCRIPTION
TRANSCRIPT
On Redundant Multipath Operating System Support for
Wireless Mesh Networks Presented by Raluca Musaloiu-E.
Johns Hopkins University
YairAmir
ClaudiuDanilov
MichaelKaplan
That’sMe
NiloRivera
SMesh story
Redundant multipath routing is an essential service for increasing reliability in wireless mesh networks.
Redundant multipath is not natively supported by current operating systems.
User spaceKernel space
Spines Spines
Spines
Spines
A cost effective wireless mesh deployment requires low-cost mesh nodes.
0
1.1
2.2
3.3
4.4
5.5
6.6
7.7
8.8
9.9
11.0
1 hop 2 hops 3 hops 4 hops 5 hops
2 2 2 2 2
TCP Throughput (Mbps)
Overlay
CPU limitation!
We present a minimally invasive mechanism to support redundant multipath routing in kernel-space.
Control
Data routing
User space
Kernel space
We present a minimally invasive mechanism to support redundant multipath routing in kernel-space.
Control
Data routing
User space
Kernel spaceModule for multipath
0
1.1
2.2
3.3
4.4
5.5
6.6
7.7
8.8
9.9
11.0
1 hop 2 hops 3 hops 4 hops 5 hops
10
5
33
22 2 2 2 2
TCP Throughput (Mbps)
Overlay Redundat Multipath
Architecture
To route, consider
entry point, in addition to destination
address.
1 2
3
4 5
6
7
Source Destination Next-Hop(s) Node 1 client 1 6 … … Node 2 client 1 6, 7 … …
Client 1
Node 5 routing rules
Fig. 1. The routes to a mobile client (multipath routing). Fig. 2. Architecture.
an overlay network to increase the reliability of the end-to-end path. End-System-Multicast [14] and Spines [3] alsoroute through an application router to support overlay multicastwithout infrastructure support.
Other work has looked into operating system support forwireless ad-hoc routing protocols. Chakeres and Beldingshowed in [9] an in-kernel design and implementation of thead-hoc AODV protocol using Netfilter modules, and showedperformance improvement compared to user-level ad-hoc pro-tocols. Kawadia et al. [16] proposed a complete architectureto support ad-hoc protocols in-kernel and a generic ad-hocsupport library for user-level programs to control different ad-hoc protocols.
SMesh [4] recently showed how overlay multicast can beused in wireless mesh networks to provide fast handoff tounmodified 802.11 clients that connect transparently usingDHCP. SMesh allows multiple access points to service theclient during handoff, as it works in ad-hoc mode. In SMesh,packets sent by the mobile client are diverted from the kernelto the Spines user-level overlay router. Multicast trees arecalculated in a way similar to that of MOSPF [17]. SMeshencapsulates client packets and sends them through the overlaynetwork to the access points serving the destination. Once thepackets are received by the destination’s access points, SMeshstrips the overlay headers and forwards the original packet tothe mobile client using a raw socket.
We used the SMesh wireless mesh system as a testbed toimplement and evaluate the benefits and drawbacks of theapproach presented in this paper.
III. OS SUPPORT FOR REDUNDANT MULTIPATH ROUTING
User-level overlay routing allows users to implement anyprotocol without requiring any special support from the kernel.The SMesh system uses this approach to implement redundantmultipath, essential for achieving a seamless handoff. Whilevery convenient, routing the entire traffic through user spacebecomes problematic for low-cost wireless routers which havelimited processing power. It is widely known that forwardingpackets through user space results in higher CPU utilizationwhen compared to kernel space. The overhead can be at-tributed to two primary factors: memory copies and contextswitches. Each routing node must copy the packets from kernel
space to user space in order to determine the next hop. After arouting decision is made, the packet must be returned to kernelspace where it is sent on the network. That is, the user-kernelboundary must be crossed a minimum of two times per hop.
We describe next a mechanism that achieves efficient re-dundant multipath routing in kernel space. The idea behind itis simple: each node maintains multiple kernel routing tables,one for each node in the mesh network, with route entriesset according to the multicast trees determined by our routingprotocol.
A. Architecture
In wireless mesh networks, it is possible for packets tostart flowing in the mesh from different sources. SeveralInternet gateways may coexist in multi-homed wireless meshnetworks [5], any of which may need to forward packets tothe client. Also, since clients may communicate with otherclients in the mesh network, virtually every access point iscapable of being the source of packets in the mesh. To provideoptimal redundant multipath routing in these networks, eachnode must consider the mesh source and the destination ofeach packet in order to determine the appropriate forwardingrule for that packet. Inside the mesh network, this can beviewed as a multicast routing problem (multi-source multi-destination multicast routing)1. Figure 1 shows how packetsare forwarded to the mobile client from two different sources(node 1 and node 2)2. Note that node 5 must forward thepackets differently depending on the source of the packet.
Based on the description above, it is clear that a node mustdecide what are the next hops for a packet based on the meshentry-point as well as the destination address of the packet.However, the entry-point cannot be determined by just lookingat the packet destined to the client (the source address inthe IP header is not the address of a mesh entry-point, butthe actual address of the sender, which can be another mesh
1Tunneling the unicast packet in an IP-multicast tunnel is not a viablesolution as it suffers from lower reliability due to the lack of 802.11 link-layer retransmissions. An alternative is to use IP-multicast tunnels, with anadditional unicast tunnel on each hop, but this approach incurs additionalspace in the packet as well as processing overhead on each node.
2Note that these mesh nodes are not the actual sources. Rather, they are thenodes that first received the packet in the mesh network, either from Internetor from clients connected to them.
Node 5We use multiple routing tables.
1 2
3
4 5
6
7
Source Destination Next-Hop(s) Node 1 client 1 6 … … Node 2 client 1 6, 7 … …
Client 1
Node 5 routing rules
Fig. 1. The routes to a mobile client (multipath routing). Fig. 2. Architecture.
an overlay network to increase the reliability of the end-to-end path. End-System-Multicast [14] and Spines [3] alsoroute through an application router to support overlay multicastwithout infrastructure support.
Other work has looked into operating system support forwireless ad-hoc routing protocols. Chakeres and Beldingshowed in [9] an in-kernel design and implementation of thead-hoc AODV protocol using Netfilter modules, and showedperformance improvement compared to user-level ad-hoc pro-tocols. Kawadia et al. [16] proposed a complete architectureto support ad-hoc protocols in-kernel and a generic ad-hocsupport library for user-level programs to control different ad-hoc protocols.
SMesh [4] recently showed how overlay multicast can beused in wireless mesh networks to provide fast handoff tounmodified 802.11 clients that connect transparently usingDHCP. SMesh allows multiple access points to service theclient during handoff, as it works in ad-hoc mode. In SMesh,packets sent by the mobile client are diverted from the kernelto the Spines user-level overlay router. Multicast trees arecalculated in a way similar to that of MOSPF [17]. SMeshencapsulates client packets and sends them through the overlaynetwork to the access points serving the destination. Once thepackets are received by the destination’s access points, SMeshstrips the overlay headers and forwards the original packet tothe mobile client using a raw socket.
We used the SMesh wireless mesh system as a testbed toimplement and evaluate the benefits and drawbacks of theapproach presented in this paper.
III. OS SUPPORT FOR REDUNDANT MULTIPATH ROUTING
User-level overlay routing allows users to implement anyprotocol without requiring any special support from the kernel.The SMesh system uses this approach to implement redundantmultipath, essential for achieving a seamless handoff. Whilevery convenient, routing the entire traffic through user spacebecomes problematic for low-cost wireless routers which havelimited processing power. It is widely known that forwardingpackets through user space results in higher CPU utilizationwhen compared to kernel space. The overhead can be at-tributed to two primary factors: memory copies and contextswitches. Each routing node must copy the packets from kernel
space to user space in order to determine the next hop. After arouting decision is made, the packet must be returned to kernelspace where it is sent on the network. That is, the user-kernelboundary must be crossed a minimum of two times per hop.
We describe next a mechanism that achieves efficient re-dundant multipath routing in kernel space. The idea behind itis simple: each node maintains multiple kernel routing tables,one for each node in the mesh network, with route entriesset according to the multicast trees determined by our routingprotocol.
A. Architecture
In wireless mesh networks, it is possible for packets tostart flowing in the mesh from different sources. SeveralInternet gateways may coexist in multi-homed wireless meshnetworks [5], any of which may need to forward packets tothe client. Also, since clients may communicate with otherclients in the mesh network, virtually every access point iscapable of being the source of packets in the mesh. To provideoptimal redundant multipath routing in these networks, eachnode must consider the mesh source and the destination ofeach packet in order to determine the appropriate forwardingrule for that packet. Inside the mesh network, this can beviewed as a multicast routing problem (multi-source multi-destination multicast routing)1. Figure 1 shows how packetsare forwarded to the mobile client from two different sources(node 1 and node 2)2. Note that node 5 must forward thepackets differently depending on the source of the packet.
Based on the description above, it is clear that a node mustdecide what are the next hops for a packet based on the meshentry-point as well as the destination address of the packet.However, the entry-point cannot be determined by just lookingat the packet destined to the client (the source address inthe IP header is not the address of a mesh entry-point, butthe actual address of the sender, which can be another mesh
1Tunneling the unicast packet in an IP-multicast tunnel is not a viablesolution as it suffers from lower reliability due to the lack of 802.11 link-layer retransmissions. An alternative is to use IP-multicast tunnels, with anadditional unicast tunnel on each hop, but this approach incurs additionalspace in the packet as well as processing overhead on each node.
2Note that these mesh nodes are not the actual sources. Rather, they are thenodes that first received the packet in the mesh network, either from Internetor from clients connected to them.
Node 3
Node 2
Node 1
client 1client 2....
Node 5Each route may have
multiple next-hops.
Node 1
Destination Next-hopsclient 1 6, 7client 2 3
... ...
1 2
3
4 5
6
7
Source Destination Next-Hop(s) Node 1 client 1 6 … … Node 2 client 1 6, 7 … …
Client 1
Node 5 routing rules
Fig. 1. The routes to a mobile client (multipath routing). Fig. 2. Architecture.
an overlay network to increase the reliability of the end-to-end path. End-System-Multicast [14] and Spines [3] alsoroute through an application router to support overlay multicastwithout infrastructure support.
Other work has looked into operating system support forwireless ad-hoc routing protocols. Chakeres and Beldingshowed in [9] an in-kernel design and implementation of thead-hoc AODV protocol using Netfilter modules, and showedperformance improvement compared to user-level ad-hoc pro-tocols. Kawadia et al. [16] proposed a complete architectureto support ad-hoc protocols in-kernel and a generic ad-hocsupport library for user-level programs to control different ad-hoc protocols.
SMesh [4] recently showed how overlay multicast can beused in wireless mesh networks to provide fast handoff tounmodified 802.11 clients that connect transparently usingDHCP. SMesh allows multiple access points to service theclient during handoff, as it works in ad-hoc mode. In SMesh,packets sent by the mobile client are diverted from the kernelto the Spines user-level overlay router. Multicast trees arecalculated in a way similar to that of MOSPF [17]. SMeshencapsulates client packets and sends them through the overlaynetwork to the access points serving the destination. Once thepackets are received by the destination’s access points, SMeshstrips the overlay headers and forwards the original packet tothe mobile client using a raw socket.
We used the SMesh wireless mesh system as a testbed toimplement and evaluate the benefits and drawbacks of theapproach presented in this paper.
III. OS SUPPORT FOR REDUNDANT MULTIPATH ROUTING
User-level overlay routing allows users to implement anyprotocol without requiring any special support from the kernel.The SMesh system uses this approach to implement redundantmultipath, essential for achieving a seamless handoff. Whilevery convenient, routing the entire traffic through user spacebecomes problematic for low-cost wireless routers which havelimited processing power. It is widely known that forwardingpackets through user space results in higher CPU utilizationwhen compared to kernel space. The overhead can be at-tributed to two primary factors: memory copies and contextswitches. Each routing node must copy the packets from kernel
space to user space in order to determine the next hop. After arouting decision is made, the packet must be returned to kernelspace where it is sent on the network. That is, the user-kernelboundary must be crossed a minimum of two times per hop.
We describe next a mechanism that achieves efficient re-dundant multipath routing in kernel space. The idea behind itis simple: each node maintains multiple kernel routing tables,one for each node in the mesh network, with route entriesset according to the multicast trees determined by our routingprotocol.
A. Architecture
In wireless mesh networks, it is possible for packets tostart flowing in the mesh from different sources. SeveralInternet gateways may coexist in multi-homed wireless meshnetworks [5], any of which may need to forward packets tothe client. Also, since clients may communicate with otherclients in the mesh network, virtually every access point iscapable of being the source of packets in the mesh. To provideoptimal redundant multipath routing in these networks, eachnode must consider the mesh source and the destination ofeach packet in order to determine the appropriate forwardingrule for that packet. Inside the mesh network, this can beviewed as a multicast routing problem (multi-source multi-destination multicast routing)1. Figure 1 shows how packetsare forwarded to the mobile client from two different sources(node 1 and node 2)2. Note that node 5 must forward thepackets differently depending on the source of the packet.
Based on the description above, it is clear that a node mustdecide what are the next hops for a packet based on the meshentry-point as well as the destination address of the packet.However, the entry-point cannot be determined by just lookingat the packet destined to the client (the source address inthe IP header is not the address of a mesh entry-point, butthe actual address of the sender, which can be another mesh
1Tunneling the unicast packet in an IP-multicast tunnel is not a viablesolution as it suffers from lower reliability due to the lack of 802.11 link-layer retransmissions. An alternative is to use IP-multicast tunnels, with anadditional unicast tunnel on each hop, but this approach incurs additionalspace in the packet as well as processing overhead on each node.
2Note that these mesh nodes are not the actual sources. Rather, they are thenodes that first received the packet in the mesh network, either from Internetor from clients connected to them.
1 2
3
4 5
6
7
Source Destination Next-Hop(s) Node 1 client 1 6 … … Node 2 client 1 6, 7 … …
Client 1
Node 5 routing rules
Fig. 1. The routes to a mobile client (multipath routing). Fig. 2. Architecture.
an overlay network to increase the reliability of the end-to-end path. End-System-Multicast [14] and Spines [3] alsoroute through an application router to support overlay multicastwithout infrastructure support.
Other work has looked into operating system support forwireless ad-hoc routing protocols. Chakeres and Beldingshowed in [9] an in-kernel design and implementation of thead-hoc AODV protocol using Netfilter modules, and showedperformance improvement compared to user-level ad-hoc pro-tocols. Kawadia et al. [16] proposed a complete architectureto support ad-hoc protocols in-kernel and a generic ad-hocsupport library for user-level programs to control different ad-hoc protocols.
SMesh [4] recently showed how overlay multicast can beused in wireless mesh networks to provide fast handoff tounmodified 802.11 clients that connect transparently usingDHCP. SMesh allows multiple access points to service theclient during handoff, as it works in ad-hoc mode. In SMesh,packets sent by the mobile client are diverted from the kernelto the Spines user-level overlay router. Multicast trees arecalculated in a way similar to that of MOSPF [17]. SMeshencapsulates client packets and sends them through the overlaynetwork to the access points serving the destination. Once thepackets are received by the destination’s access points, SMeshstrips the overlay headers and forwards the original packet tothe mobile client using a raw socket.
We used the SMesh wireless mesh system as a testbed toimplement and evaluate the benefits and drawbacks of theapproach presented in this paper.
III. OS SUPPORT FOR REDUNDANT MULTIPATH ROUTING
User-level overlay routing allows users to implement anyprotocol without requiring any special support from the kernel.The SMesh system uses this approach to implement redundantmultipath, essential for achieving a seamless handoff. Whilevery convenient, routing the entire traffic through user spacebecomes problematic for low-cost wireless routers which havelimited processing power. It is widely known that forwardingpackets through user space results in higher CPU utilizationwhen compared to kernel space. The overhead can be at-tributed to two primary factors: memory copies and contextswitches. Each routing node must copy the packets from kernel
space to user space in order to determine the next hop. After arouting decision is made, the packet must be returned to kernelspace where it is sent on the network. That is, the user-kernelboundary must be crossed a minimum of two times per hop.
We describe next a mechanism that achieves efficient re-dundant multipath routing in kernel space. The idea behind itis simple: each node maintains multiple kernel routing tables,one for each node in the mesh network, with route entriesset according to the multicast trees determined by our routingprotocol.
A. Architecture
In wireless mesh networks, it is possible for packets tostart flowing in the mesh from different sources. SeveralInternet gateways may coexist in multi-homed wireless meshnetworks [5], any of which may need to forward packets tothe client. Also, since clients may communicate with otherclients in the mesh network, virtually every access point iscapable of being the source of packets in the mesh. To provideoptimal redundant multipath routing in these networks, eachnode must consider the mesh source and the destination ofeach packet in order to determine the appropriate forwardingrule for that packet. Inside the mesh network, this can beviewed as a multicast routing problem (multi-source multi-destination multicast routing)1. Figure 1 shows how packetsare forwarded to the mobile client from two different sources(node 1 and node 2)2. Note that node 5 must forward thepackets differently depending on the source of the packet.
Based on the description above, it is clear that a node mustdecide what are the next hops for a packet based on the meshentry-point as well as the destination address of the packet.However, the entry-point cannot be determined by just lookingat the packet destined to the client (the source address inthe IP header is not the address of a mesh entry-point, butthe actual address of the sender, which can be another mesh
1Tunneling the unicast packet in an IP-multicast tunnel is not a viablesolution as it suffers from lower reliability due to the lack of 802.11 link-layer retransmissions. An alternative is to use IP-multicast tunnels, with anadditional unicast tunnel on each hop, but this approach incurs additionalspace in the packet as well as processing overhead on each node.
2Note that these mesh nodes are not the actual sources. Rather, they are thenodes that first received the packet in the mesh network, either from Internetor from clients connected to them.
Implementation
Encode entry node in the
packet’sIP header.
0 7 8 15 16 23 24 31
Version IHL TOS Total length
Identification (IPID) Flags Fragment offset
TTL Protocol Header checksum
Source IP
Destination IP
Options and padding
Encode entry node in the
packet’sIP header.
0 7 8 15 16 23 24 31
Version IHL TOS Total length
Identification (IPID) Flags Fragment offset
TTL Protocol Header checksum
Source IP
Destination IP
Options and padding
Encode entry node in the
packet’sIP header.
0 7 8 15 16 23 24 31
Version IHL TOS Total length
Identification (IPID) Flags Fragment offset
TTL Protocol Header checksum
Source IP
Destination IP
Options and padding
Use policy routing
and define multiple routing
tables.
# iptables -A PREROUTING -t mangle -m u32 --u32 "2&0xFFFF=35" -j MARK --set-mark 35
# ip rule add fwmark 35 table 35
Use MULTIHOP
Netfilter module.
# ip route add 10.233.59.169/32 table 35 nexthop via 10.0.11.32 dev eth1 nexthop via 10.0.11.33 dev eth1
CONFIG_IP_ROUTE_MULTIPATH
MULTIHOP
client or an Internet address). One solution to keep track ofthe entry-point is to tunnel each packet from the entry-pointin the mesh to the mobile client. However, we need to instructthe kernel to remove the tunnel in the last hop, right beforesending the packet to the client, which requires new kernelfunctionality. Otherwise, the mobile client may discard thesepackets. Another less obvious solution is to encode the meshentry-point in some of the existing space in the IP headerof the packet. Specifically, we can encode the IP addressof the entry-point into the identification field from the IPheader (also referred to as IPID). This is a 16-bit field usedto identify the fragments of the IP datagrams. Together withthe offset field, it is used by the IP layer to reassemble thefragmented datagrams. As the packet travels in the network,the intermediate routers must leave the IPID field unchanged.To make a distinction between the original source (entry-pointin the mesh) and the rest of the nodes (routers) along the path,we use a bit from type of service (TOS) field, specifically, thecost bit. This approach benefits from no overhead in the mesh,in terms of packet size, and from the fact that no modificationto the packet is necessary except at the entry-point of the mesh.
Even if very convenient, modifying the IPID of the packetsmay create problems in the case of fragmented traffic. How-ever, current studies show that IP packet fragmentation is notcommonly used today, and it amounts to between 1 and 2%[8] of the overall traffic. While advocating for or against theuse of fragmentation [11] is outside the scope of this paper,we choose to ignore the mesh entry-point when the packetis fragmented, and forward it through a single path. Othersolutions to encode both the fragmentation and the mesh entry-point are possible. However, considering the small amount ofthe fragmented traffic, we believe this is a practical way forour system to support it.
Our approach to routing packets in the kernel is as follows:We first define a routing table in the kernel for each accesspoint in the mesh, i.e., for each possible mesh entry-point. Ineach table, we add a route entry for each possible destination,i.e., for each client (Figure 2). This entry may include severalnext-hops, depending on the multicast trees determined by ourrouting daemon. Then, we instruct the kernel to encode in eachpacket the mesh entry-point when the packet is first seen in themesh network. Each node looks for this information at eachincoming packet to select what routing table to use. Then thekernel forwards the packet according to the entry that has theclient address as the destination. For the example presented inFigure 1, router 5 will use different forwarding tables if thepackets come from source 1 or source 2. In addition, to routepackets from the clients to the Internet, each node sets in itsmain routing table the route to the closest Internet gateway.
B. Implementation
There are several challenges in implementing such an ar-chitecture with the current services provided by the Linuxkernel networking stack. Essentially, we need to be able toforward packets simultaneously on multiple paths to the same
Fig. 3. Implementation in Linux.
destination. Fortunately3, since version 2.2, the Linux kernelsupports defining multiple routing tables and permits policyrouting (a.k.a. rule based routing), which allows selecting dif-ferent routing tables based on criteria other than the destinationaddress. In our case, each mesh node maintains a routingtable for each entry-point in the network, and includes in eachrouting table an entry for each multicast group. That is, onerouting table corresponds to all multicast trees that have thatnode as a source.
To alter the IPID field of the IP header, we wrote a simpleNetfilter kernel module. The selection itself of which routingtable to use, given the IP encoded in IPID, is done withpolicy routing using fwmark, a mark carried by the kernelas the packet travels through the kernel stack. Note that theNetfilter rules required to alter IPID field and to set fwmarkare added/deleted at run-time since all possible entry-pointsare not known in advance.
Normally, a routing table specifies a single forwardingaction to be taken in a deterministic manner for a givenpacket. The CONFIG_IP_ROUTE_MULTIPATH option in the kernelconfiguration permits specifying several alternative paths for adestination. If no weight if given, the kernel considers all thesepaths to be of equal cost and chooses in a non-deterministicway which one to use when a packet arrives. Instead, we wouldlike to send the packet to multiple nodes simultaneously, if themulticast tree indicates that. Therefore, we wrote a Netfiltertarget module, called MULTIHOP, which sends a copy of thepacket to each next-hop found in the routing rule for a givendestination. In order to use this module, one needs to recompilethe kernel to export a function required to access the routingtable (fib lookup). Other than this, no changes are required inthe kernel. The module is available for download from ourwebsite.
Figure 3 shows the path of a packet through the Linuxkernel and the places where it interacts with our scheme.Immediately after the packet gets in, the entry-point of themesh must change the IPID field and set the TOS bit. Both theentry-point and any intermediate router set the fwmark whenprocessing a packet for routing4. We use the NF_IP_PRE_ROUTING
Netfilter hook to do these modifications. The packet is thenpassed back to the kernel networking stack, where it goes
3One of our goals is also to do as little changes as possible to the kernel,if any at all.
4fwmark is an internal mark in the kernel’s packet data structure, and doesnot involve changing the packet as in the case of IPID and TOS.
5
5
IPID: 5TOS
5
IPID: 5TOS
IPID: 5TOS
5
IPID: 5TOS
IPID: 5TOS
5
IPID: 5TOS
IPID: 5TOS
5
5
Evaluation
1
2
3
One router
5 nodes wireless
“line” setup
17 nodes wireless testbed
Rate 24 Mbps
Transmission power 50 mW
Retransmission limit 7
VoIP stream 64 Kbps
We route up to 50 duplex VoIP streamsbefore the CPU is saturated.
Overlay 4 streams 512 Kbps
Kernel 50 streams 6.4 Mbps
Native kernel routing 60 streams 7.6 Mbps
1
0
0.2
0.4
0.6
0.8
1
7064605550403216842
70004000 60005000400032001600800400
CP
U L
oa
d
# of VoIP streams (each direction)
Pkts/s (sent + received)
OverlayKernel
Kernel without Multipath
0
20
40
60
80
100
7064605550403216842
70004000 60005000400032001600800400
Lo
ss r
ate
(%
)
# of VoIP streams (each direction)
Pkts/s (sent + received)
OverlayKernel
Kernel without Multipath
0
1.1
2.2
3.3
4.4
5.5
6.6
7.7
8.8
9.9
11.0
1 hop 2 hops 3 hops 4 hops 5 hops
10
5
33
2
2 2 2 2 2
TCP Throughput (Mbps)
Overlay Kernel
With one wireless hop, we get 10 Mbps
in a “line” setup.
2
0
1
2
3
4
5
6
7
8
9
10
0 50 100 150 200 250 300
285 hops264 hops253 hops242 hops3633321 hop31
Thr
ough
put (
Mbp
s)
Rou
ter
ID
Time (s)
Fig. 8. TCP throughput: Overlay (moving).
0
1
2
3
4
5
6
7
8
9
10
0 20 40 60 80 100 120 140 160
285 hops264 hops253 hops242 hops3633321 hop31
Thr
ough
put (
Mbp
s)
Rou
ter
ID
Time (s)
Fig. 9. TCP throughput: Kernel (moving).
streams between the client and the Internet. Each (one-way)stream has a rate of 64 Kbps. We monitored the average CPUload (Figure 4) and the loss rate (Figure 5). The top x-axisshows the corresponding number of packets/sec.
To understand better the overhead of our kernel approach,we included an additional scenario: kernel routing withoutthe overhead of Netfilter rules required by our scheme. Wecan see that with the overlay implementation, the CPU startsto be saturated at 400 pkts/s (4 full-duplex VOIP streams,or 512 Kbps), in our kernel implementation at 5,000 pkts/s(50 streams or aprox 6.4 Mbps) while in kernel “without re-dundant multipath” implementation at 6,000 pkts/s (60 streamsor aprox 7.6 Mbps). In each of these three scenarios, after awhile, the loss rate starts to be non-zero: less than 8 streams(1 Mbps) for overlay, 51 streams (6.5 Mbps) for kernel and64 streams (8 Mbps) for kernel without our additions.
B. Overlay vs Kernel TCP throughput and RTT test
This experiment evaluates the maximum throughput that canbe achieved in a multi-hop wireless network when forwardingthrough user and kernel space with our modifications. Weconnected 5 Linksys WRT54G routers in a simple “line”topology, and measured the TCP throughput while sendingtraffic from Internet to the client. Note that this continues tobe a very controlled test. We only use one client, and we do notuse background traffic to influence our results, as our goal is toobtain the throughput upper bound. We performed tests withthe client placed 1, 2, 3, 4 and 5 hops away from the Internetgateway. The throughput results are presented in Figure 6. Wealso measured the round trip time (RTT) for both, overlay andkernel routing, with and without background traffic (Figure7). TCP throughput for 1 hop improved from a CPU-limitedamount of 2.1 Mbps to a bandwidth limited amount of about10 Mbps in our setup. The round-trip latency from overlay ismore than 3 times the one from kernel for 1 hop, and even at4 hops it is much above the kernel implementation.
C. Overlay vs Kernel in the deployed testbed:
1) TCP throughput: Figures 8 and 9 present the TCPthroughput achieved over time in both overlay and kernel
0
10
20
30
40
50
60
70
80
90
100
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Per
cent
age
of p
acke
ts
Latency (milliseconds)
OverlayKernel
Fig. 10. Packet latency CDF.
modes while moving throughout our 17 node wireless meshnetwork. Note that, as the two experiments were done sequen-tially to test the maximum achievable throughput, the sequenceof handoffs could not be replicated between the two runs, eventhough the mobility pattern was similar. The mesh networkopportunistically associates the mobile device to access pointsdepending of current conditions. In order to see how far weare from the Internet gateway, we plot with a dotted line theaccess point that currently services the client. The horizontallines mark when the number of hops increases by one. Tosimplify the graphs, we included only the routers that wereinvolved in handling the client. With the overlay routing, thethroughput is just above 2 Mbps if the client is 1 or 2 hopsaway from the Internet gateway (routers 31 and 32, 33 and 36).This is consistent with the throughput reported in the previoustest. As the number of hops increases, the throughput drops to1 Mbps and even lower. In the kernel routing, the throughputwas about 8.5 Mbps for 1 hop access points, 4.3 Mbps for 2hops and it drops to 1 Mbps when the client is 6 hops awayfrom the gateway (router 28).
2) UDP latency: We now compare the improvement ofpackets latencies when routing in overlay and in kernelmodes. We use a full-duplex UDP traffic, consisting of 160-
0
1
2
3
4
5
6
7
8
9
10
0 50 100 150 200 250 300
285 hops264 hops253 hops242 hops3633321 hop31
Thr
ough
put (
Mbp
s)
Rou
ter
ID
Time (s)
Fig. 8. TCP throughput: Overlay (moving).
0
1
2
3
4
5
6
7
8
9
10
0 20 40 60 80 100 120 140 160
285 hops264 hops253 hops242 hops3633321 hop31
Thr
ough
put (
Mbp
s)
Rou
ter
ID
Time (s)
Fig. 9. TCP throughput: Kernel (moving).
streams between the client and the Internet. Each (one-way)stream has a rate of 64 Kbps. We monitored the average CPUload (Figure 4) and the loss rate (Figure 5). The top x-axisshows the corresponding number of packets/sec.
To understand better the overhead of our kernel approach,we included an additional scenario: kernel routing withoutthe overhead of Netfilter rules required by our scheme. Wecan see that with the overlay implementation, the CPU startsto be saturated at 400 pkts/s (4 full-duplex VOIP streams,or 512 Kbps), in our kernel implementation at 5,000 pkts/s(50 streams or aprox 6.4 Mbps) while in kernel “without re-dundant multipath” implementation at 6,000 pkts/s (60 streamsor aprox 7.6 Mbps). In each of these three scenarios, after awhile, the loss rate starts to be non-zero: less than 8 streams(1 Mbps) for overlay, 51 streams (6.5 Mbps) for kernel and64 streams (8 Mbps) for kernel without our additions.
B. Overlay vs Kernel TCP throughput and RTT test
This experiment evaluates the maximum throughput that canbe achieved in a multi-hop wireless network when forwardingthrough user and kernel space with our modifications. Weconnected 5 Linksys WRT54G routers in a simple “line”topology, and measured the TCP throughput while sendingtraffic from Internet to the client. Note that this continues tobe a very controlled test. We only use one client, and we do notuse background traffic to influence our results, as our goal is toobtain the throughput upper bound. We performed tests withthe client placed 1, 2, 3, 4 and 5 hops away from the Internetgateway. The throughput results are presented in Figure 6. Wealso measured the round trip time (RTT) for both, overlay andkernel routing, with and without background traffic (Figure7). TCP throughput for 1 hop improved from a CPU-limitedamount of 2.1 Mbps to a bandwidth limited amount of about10 Mbps in our setup. The round-trip latency from overlay ismore than 3 times the one from kernel for 1 hop, and even at4 hops it is much above the kernel implementation.
C. Overlay vs Kernel in the deployed testbed:
1) TCP throughput: Figures 8 and 9 present the TCPthroughput achieved over time in both overlay and kernel
0
10
20
30
40
50
60
70
80
90
100
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Per
cent
age
of p
acke
ts
Latency (milliseconds)
OverlayKernel
Fig. 10. Packet latency CDF.
modes while moving throughout our 17 node wireless meshnetwork. Note that, as the two experiments were done sequen-tially to test the maximum achievable throughput, the sequenceof handoffs could not be replicated between the two runs, eventhough the mobility pattern was similar. The mesh networkopportunistically associates the mobile device to access pointsdepending of current conditions. In order to see how far weare from the Internet gateway, we plot with a dotted line theaccess point that currently services the client. The horizontallines mark when the number of hops increases by one. Tosimplify the graphs, we included only the routers that wereinvolved in handling the client. With the overlay routing, thethroughput is just above 2 Mbps if the client is 1 or 2 hopsaway from the Internet gateway (routers 31 and 32, 33 and 36).This is consistent with the throughput reported in the previoustest. As the number of hops increases, the throughput drops to1 Mbps and even lower. In the kernel routing, the throughputwas about 8.5 Mbps for 1 hop access points, 4.3 Mbps for 2hops and it drops to 1 Mbps when the client is 6 hops awayfrom the gateway (router 28).
2) UDP latency: We now compare the improvement ofpackets latencies when routing in overlay and in kernelmodes. We use a full-duplex UDP traffic, consisting of 160-
3
Results are close to the “line” topology( 8.5 Mbps for one hop).
Kernel multipathOverlay
Redundant multipath routing is important in WMN.
We can support it with minimal changes in Linux kernel.
SMesh is available as open-source at www.smesh.org.
Thanks
Questions
top related