42
On Redundant Multipath Operating System Support for Wireless Mesh Networks Presented by Raluca Musaloiu-E. Johns Hopkins University Yair Amir Claudiu Danilov Michael Kaplan That’s Me Nilo Rivera

On Redundant Multipath Operating System Support for Wireless Mesh Networks

Embed Size (px)

DESCRIPTION

This is the talk I gave at WiMesh 2008, the third IEEE Workshop on Wireless Mesh Networks. WiMesh is co-located with SECON 2008.

Citation preview

Page 1: On Redundant Multipath Operating System Support for Wireless Mesh Networks

On Redundant Multipath Operating System Support for

Wireless Mesh Networks Presented by Raluca Musaloiu-E.

Johns Hopkins University

YairAmir

ClaudiuDanilov

MichaelKaplan

That’sMe

NiloRivera

Page 2: On Redundant Multipath Operating System Support for Wireless Mesh Networks

SMesh story

Page 3: On Redundant Multipath Operating System Support for Wireless Mesh Networks
Page 4: On Redundant Multipath Operating System Support for Wireless Mesh Networks
Page 5: On Redundant Multipath Operating System Support for Wireless Mesh Networks
Page 6: On Redundant Multipath Operating System Support for Wireless Mesh Networks
Page 7: On Redundant Multipath Operating System Support for Wireless Mesh Networks

Redundant multipath routing is an essential service for increasing reliability in wireless mesh networks.

Page 8: On Redundant Multipath Operating System Support for Wireless Mesh Networks

Redundant multipath is not natively supported by current operating systems.

Page 9: On Redundant Multipath Operating System Support for Wireless Mesh Networks

User spaceKernel space

Spines Spines

Spines

Spines

Page 10: On Redundant Multipath Operating System Support for Wireless Mesh Networks

A cost effective wireless mesh deployment requires low-cost mesh nodes.

Page 11: On Redundant Multipath Operating System Support for Wireless Mesh Networks

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!

Page 12: On Redundant Multipath Operating System Support for Wireless Mesh Networks

We present a minimally invasive mechanism to support redundant multipath routing in kernel-space.

Control

Data routing

User space

Kernel space

Page 13: On Redundant Multipath Operating System Support for Wireless Mesh Networks

We present a minimally invasive mechanism to support redundant multipath routing in kernel-space.

Control

Data routing

User space

Kernel spaceModule for multipath

Page 14: On Redundant Multipath Operating System Support for Wireless Mesh Networks

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

Page 15: On Redundant Multipath Operating System Support for Wireless Mesh Networks

Architecture

Page 16: On Redundant Multipath Operating System Support for Wireless Mesh Networks

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.

Page 17: On Redundant Multipath Operating System Support for Wireless Mesh Networks

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....

Page 18: On Redundant Multipath Operating System Support for Wireless Mesh Networks

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.

Page 19: On Redundant Multipath Operating System Support for Wireless Mesh Networks

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.

Page 20: On Redundant Multipath Operating System Support for Wireless Mesh Networks

Implementation

Page 21: On Redundant Multipath Operating System Support for Wireless Mesh Networks

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

Page 22: On Redundant Multipath Operating System Support for Wireless Mesh Networks

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

Page 23: On Redundant Multipath Operating System Support for Wireless Mesh Networks

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

Page 24: On Redundant Multipath Operating System Support for Wireless Mesh Networks

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

Page 25: On Redundant Multipath Operating System Support for Wireless Mesh Networks

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

Page 26: On Redundant Multipath Operating System Support for Wireless Mesh Networks

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.

Page 27: On Redundant Multipath Operating System Support for Wireless Mesh Networks

5

Page 28: On Redundant Multipath Operating System Support for Wireless Mesh Networks

5

Page 29: On Redundant Multipath Operating System Support for Wireless Mesh Networks

IPID: 5TOS

5

Page 30: On Redundant Multipath Operating System Support for Wireless Mesh Networks

IPID: 5TOS

IPID: 5TOS

5

Page 31: On Redundant Multipath Operating System Support for Wireless Mesh Networks

IPID: 5TOS

IPID: 5TOS

5

Page 32: On Redundant Multipath Operating System Support for Wireless Mesh Networks

IPID: 5TOS

IPID: 5TOS

5

Page 33: On Redundant Multipath Operating System Support for Wireless Mesh Networks

5

Page 34: On Redundant Multipath Operating System Support for Wireless Mesh Networks

Evaluation

Page 35: On Redundant Multipath Operating System Support for Wireless Mesh Networks

1

2

3

One router

5 nodes wireless

“line” setup

17 nodes wireless testbed

Page 36: On Redundant Multipath Operating System Support for Wireless Mesh Networks

Rate 24 Mbps

Transmission power 50 mW

Retransmission limit 7

VoIP stream 64 Kbps

Page 37: On Redundant Multipath Operating System Support for Wireless Mesh Networks

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

Page 38: On Redundant Multipath Operating System Support for Wireless Mesh Networks

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

Page 39: On Redundant Multipath Operating System Support for Wireless Mesh Networks

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

Page 40: On Redundant Multipath Operating System Support for Wireless Mesh Networks

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.

Page 41: On Redundant Multipath Operating System Support for Wireless Mesh Networks

Thanks

Page 42: On Redundant Multipath Operating System Support for Wireless Mesh Networks

Questions