SSCH: Slotted Seeded Channel Hopping for Capacity Improvement in Ad Hoc Networks Victor Bahl (Microsoft Research) Ranveer Chandra (Cornell University) John Dunagan (Microsoft Research) Motivation: Improving Capacity Traffic on orthogonal channels do not interfere e.g. Channels 1, 6 and 11 for IEEE 802.11b Example: An IEEE 802.11b network with 3 Access Points Can we get the benefits of multiple channels in ad hoc networks? Channel 1 SERIAL ETHERNET SERIAL ETHERNET Channel 6 SERIAL ETHERNET Channel 6 Channel 11 2 Channel Hopping: Prior Work • Using multiple radios: – DCA (ISPAN’00): a control and a data channel – MUP (Broadnets’04): multiple data channels Consumes more power, expensive • Using non-commodity radios: – HRMA (Infocom’99): high speed FHSS networks – Nasipuri et al, Jain et al: listen on many channels Expensive, not easily available Using a single commodity radio: – Multi-channel MAC (MMAC) (Mobihoc’04) 3 Channel Hopping: MMAC MMAC Basic idea: Periodically rendezvous on a fixed channel to decide the next channel Channel 1 Channel 6 Channel 11 Data Control Data Control Issues • Packets to multiple destinations high delays • Control channel congestion • Does not handle broadcasts Data 4 Our Contributions SSCH: a new channel hopping protocol that – Increases network capacity using multiple channels – Overcomes limitations of dedicated control channel – No control channel congestion – Handles multiple destinations without high delays – Handles broadcasts for MANET routing 5 Outline of the Talk • • • • • • Problem Overview Related Work SSCH: The Main Idea SSCH: A Few Details Performance of SSCH Conclusion 6 SSCH: Slots and Seeds Divide time into slots: switch channels at beginning of a slot New Channel = (Old Channel + seed) mod (Number of Channels) seed is from 1 to (Number of Channels - 1) (1 + 2) mod 3 = 0 Seed = 2 Seed = 1 1 0 2 1 0 2 1 0 0 1 2 0 1 2 0 1 3 channels E.g. for 802.11b Ch 1 maps to 0 Ch 6 maps to 1 Ch 11 maps to 2 (0 + 1) mod 3 = 1 • Enables bandwidth utilization across all channels • Does not need control channel rendezvous 7 SSCH: Syncing Seeds • Each node broadcasts (channel, seed) once every slot • If B has to send packets to A, it adjusts its (channel, seed) Seed 2 2 2 2 2 2 2 2 2 2 1 0 2 1 0 2 1 0 3 channels B wants to start a flow with A Seed 2 0 1 2 1 0 2 1 0 1 1 2 2 2 2 2 2 2 Follow A: Change next (channel, seed) to (2, 2) Stale (channel, seed) info simply results in delayed syncing 8 Outline of the Talk • • • • Problem Overview Related Work SSCH: The Main Idea SSCH: A Few Details – Parity Slots: Ensuring overlap – Partial Sync: Sending to multiple destinations – Handling broadcasts • Performance of SSCH • Conclusion 9 Nodes might not overlap! If seeds are same and channels are different in a slot: Seed = 2 1 0 2 1 0 2 1 0 3 channels Seed = 2 2 1 0 2 1 0 2 1 Nodes are off by a slot Nodes will not overlap 10 SSCH: Parity Slots Every (Number of Channels+1) slot is a Parity Slot In the parity slot, the channel number is the seed Seed = 1 1 2 1 0 1 2 1 0 3 channels Seed = 1 0 1 1 2 Parity Slot 0 1 1 2 Parity Slot Guarantee: If nodes change their seeds only after the parity slot, then they will overlap 11 SSCH: Partial Synchronization Syncing to multiple nodes, e.g., A sends packets to B & C • Each node has multiple seeds • Each seed can be synced to a different node Parity Slot Still Works • Parity slot: (Number of Channels)*(Number of Seeds) + 1 • In parity slot, channel is the first seed • First seed can be changed only at parity slot If the number of channels is 3, and a node has 2 seeds: 1 and 2 (2 + 2) mod 3 = 1 1 2 2 (1 + 1) mod 3 = 2 1 0 0 1 Parity Slot = seed 1 1 2 2 1 0 0 12 Illustration of the SSCH Protocol Suppose each node has 2 seeds, and hops through 3 channels. Seeds 1 Node A 1 2 2 1 2 2 1 1 0 2 0 1 1 1 2 2 1 2 2 1 1 0 2 0 1 2 2 1 0 0 1 2 1 2 1 2 B wants to start a flow with A Node B 1 Seeds 2 2 0 1 2 0 1 2 2 2 2 Partial Sync (only 2nd seed) Seeds: (2, 2) Channels: (2, 1) 2 Complete Sync (sync 1st seed) Seeds (1, 2) Channels: (1, 2) 13 SSCH: Handling Broadcasts A single broadcast attempt will not work with SSCH since packets are not received by neighbors on other channels Seeds Node A 1 2 1 2 2 1 0 0 1 B’s broadcast B’s broadcast in SSCH Node B Seeds 0 1 2 0 2 2 2 2 2 SSCH Approach Rebroadcast the packet over ‘X’ consecutive slots a greater number of nodes receive the broadcast 14 Outline of the Talk • • • • • Problem Overview Related Work SSCH: The Main Idea SSCH: A Few Details Performance of SSCH – Improvement in throughput – Handling broadcast packets – Performance in multi-hop mobile networks • Conclusions 15 Simulation Environment QualNet simulator: • IEEE 802.11a at 54 Mbps, 13 channels • Slot Time of 10 ms and 4 seeds per node – a parity slot comes after 4*13+1 = 53 slots, – 53 slots is: 53*10 ms = 530 ms • Channel Switch Time: 80 µs – Chipset specs [Maxim04], – EE literature [J. Solid State Circuits 03] • CBR flows of 512 byte packets per 50 µs 16 Throughput (in Mbps) SSCH: Stationary Throughput Per-Flow throughput for disjoint flows 14 12 10 SSCH 8 6 4 2 IEEE 802.11a 0 0 5 10 15 # Flows SSCH significantly outperforms single channel IEEE 802.11a 17 SSCH Handles Broadcasts 7 Route Discovery Time (in sec) Average Route Length (# hops) 10 Flows in a 100 node network using DSR 6 5 4 Average route length for IEEE 802.11a 3 2 1 0 2 3 4 5 6 7 # Broadcasts 8 9 0.4 0.3 0.2 Average discovery time for IEEE 802.11a 0.1 0 2 3 4 5 6 7 8 # Broadcasts For DSR, 6 broadcasts works well (also true for AODV) 18 9 SSCH in Multihop Mobile Networks 5 Flow Throughput (in Mbps) Average Route Length (# hops) Random waypoint mobility: Speeds min: 0.01 m/s max: rand(0.2, 1) m/s 4 3 2 Average route length for IEEE 802.11a 1 0 0.2 0.4 0.6 0.8 Speed (in m/s) 1 2.5 2 1.5 1 0.5 Average flow throughput for IEEE 802.11a 0 0.2 0.4 0.6 0.8 1 Speed (in m/s) SSCH achieves much better throughput although it forces DSR to discover slightly longer routes 19 Conclusions SSCH is a new channel hopping protocol that: • Improves capacity using a single radio • Does not require a dedicated control channel • Works in multi-hop mobile networks – Handles broadcasts – Supports multiple destinations (partial sync) 20 Future Work • • • • Analyze TCP performance over SSCH Study interoperability with non-SSCH nodes Study interaction with 802.11 auto-rate Implement and deploy SSCH (MultiNet) 21 22