22
EWSN 2012 TCP Performance Optimizations for Wireless Sensor Networks Philipp Hurni, Ulrich Bürgi, Markus Anwander, Torsten Braun Research Group ―Communication and Distributed Systems‖ Institute of Computer Science and Applied Mathematics University of Bern, Switzerland [email protected] , cds.unibe.ch

TCP Performance Optimizations forWireless Sensor Networks

Embed Size (px)

DESCRIPTION

EWSN 2012, Trento

Citation preview

Page 1: TCP Performance Optimizations forWireless Sensor Networks

EWSN 2012

TCP Performance Optimizations forWireless Sensor Networks

Philipp Hurni, Ulrich Bürgi, Markus Anwander, Torsten Braun

Research Group ―Communication and Distributed Systems‖

Institute of Computer Science and Applied Mathematics

University of Bern, Switzerland

[email protected], cds.unibe.ch

Page 2: TCP Performance Optimizations forWireless Sensor Networks

Overview

> Motivation and Related Work

— Reasons for Poor TCP Performance in Wireless Multi-Hop Networks

— Optimization of TCP in WSNs

> Proposed Optimization Concepts

— Caching and Congestion Control (cctrl) Module including Channel Activity Monitoring

— Spatial Reuse by Multiple TCP Connections

> Results by Testbed Experiments

— Throughput

— Radio On-Time as Energy Consumption Measure

> Conclusions

Trento, February 15, 2012

Torsten Braun:TCP Performance Optimizations for Wireless Sensor Networks

2

Page 3: TCP Performance Optimizations forWireless Sensor Networks

Reasons for Poor TCP Performance in Wireless Multi-Hop Networks

> Higher bit error rates and packet loss

> Underlying MAC protocols (exponential back-off, hidden / exposed nodes)

> TCP end-to-end error and congestion control mechanisms

Trento, February 15, 2012

Torsten Braun:TCP Performance Optimizations for Wireless Sensor Networks

3

TCP data segment loss TCP acknowledgement loss

Page 4: TCP Performance Optimizations forWireless Sensor Networks

Optimization of TCP in WSNs

> Distributed TCP Caching (Dunkels et al., 2004)

> TCP Support for Sensor Networks (Braun et al., 2007)

Trento, February 15, 2012

Torsten Braun:TCP Performance Optimizations for Wireless Sensor Networks

4

Page 5: TCP Performance Optimizations forWireless Sensor Networks

Caching and Congestion Control (cctrl) Module

> is aware of all TCP packets forwarded by a node by interception of outbound packets.

> allocates buffer for 2 packets per TCP connection (1 for each direction, µIP has max. 1 unacknowledged TCP data segment per connection)

Trento, February 15, 2012

Torsten Braun:TCP Performance Optimizations for Wireless Sensor Networks

5

Page 6: TCP Performance Optimizations forWireless Sensor Networks

cctrl Functions

> Caching of — complete TCP data segments and scheduling of retransmission timer

(RTO = 3 ∙ RTTestimated, RTTestimated = estimated RTT between intermediate node and destination)

— TCP/IP header for TCP acknowledgements

> Local retransmission of TCP data segment (max. 3 attempts), when RTO expires prior to TCP acknowledgement reception (a)

> Removal of TCP data segments, if acknowledgement number of TCP acknowledgement > sequence number of cached TCP data segment

> For retransmitted TCP data segments, for which a TCP acknowledgement has been received: discard TCP data segment; regenerate TCP acknowledgement (b)

Trento, February 15, 2012

Torsten Braun:TCP Performance Optimizations for Wireless Sensor Networks

6

Page 7: TCP Performance Optimizations forWireless Sensor Networks

Channel Activity Monitoring

Trento, February 15, 2012

Torsten Braun:TCP Performance Optimizations for Wireless Sensor Networks

7

> MAC proxy notifies cctrl upon reception of any packet and stores a timestamp in activity history.

> cctrl continuously calculates channel activity level (= # overheard packets by MAC proxy during the last time period RTTestimated)

> Observation:

— Channel activity level of most nodes = 0 during long idle periods

— Long idle periods by – TCP data segment loss at one of the first hops

– TCP acknowledgement loss close to its destination (i.e. TCP data segment’s source).

> Approach:

— Split RTO into:– RTO1 = 3 ∙ RTTestimated ∙ 2/3

– RTO2 = 3 ∙ RTTestimated ∙ 1/3

— When RTO1 expires: early retransmission, if channel activity level = 0; otherwise: retransmission when RTO2 expires.

— Triggers early local retransmissions close to destination

Page 8: TCP Performance Optimizations forWireless Sensor Networks

MAC Proxy

Trento, February 15, 2012

Torsten Braun:TCP Performance Optimizations for Wireless Sensor Networks

8

Page 9: TCP Performance Optimizations forWireless Sensor Networks

Channel Activity Levels with X-MAC

Trento, February 15, 2012

Torsten Braun:TCP Performance Optimizations for Wireless Sensor Networks

9

Page 10: TCP Performance Optimizations forWireless Sensor Networks

Long Idle Periods

Trento, February 15, 2012

Torsten Braun:TCP Performance Optimizations for Wireless Sensor Networks

10

Page 11: TCP Performance Optimizations forWireless Sensor Networks

Spatial Reuse by Multiple TCP Connections

Trento, February 15, 2012

Torsten Braun:TCP Performance Optimizations for Wireless Sensor Networks

11

Page 12: TCP Performance Optimizations forWireless Sensor Networks

Testbed Experiments

> 7 TelosB nodes in different rooms of a 3 floor building using U Bern’s Wisebed testbed

> Receiver node 1

> Sender nodes 2-7

> Experiments with different MAC protocols for 10 minutes, 15 repetitions

> 16 bytes payload

> 79 bytes per TCP data segment

> 63 bytes per TCP acknowledgement

> Total: approx. 2500 experiments during > 400 hours

Trento, February 15, 2012

Torsten Braun:TCP Performance Optimizations for Wireless Sensor Networks

12

Page 13: TCP Performance Optimizations forWireless Sensor Networks

Throughput

Trento, February 15, 2012

Torsten Braun:TCP Performance Optimizations for Wireless Sensor Networks

13

Page 14: TCP Performance Optimizations forWireless Sensor Networks

Radio On-Time as Energy Consumption Measure

Trento, February 15, 2012

Torsten Braun:TCP Performance Optimizations for Wireless Sensor Networks

14

Page 15: TCP Performance Optimizations forWireless Sensor Networks

Throughput with Multiple Connections

Trento, February 15, 2012

Torsten Braun:TCP Performance Optimizations for Wireless Sensor Networks

15

Page 16: TCP Performance Optimizations forWireless Sensor Networks

Overall Comparison of Throughput

Trento, February 15, 2012

Torsten Braun:TCP Performance Optimizations for Wireless Sensor Networks

16

Page 17: TCP Performance Optimizations forWireless Sensor Networks

Overall Comparison of Energy Consumption

Trento, February 15, 2012

Torsten Braun:TCP Performance Optimizations for Wireless Sensor Networks

17

Page 18: TCP Performance Optimizations forWireless Sensor Networks

Cross-Traffic Measurements

Trento, February 15, 2012

Torsten Braun:TCP Performance Optimizations for Wireless Sensor Networks

18

Page 19: TCP Performance Optimizations forWireless Sensor Networks

Cross-Traffic Throughput

Trento, February 15, 2012

Torsten Braun:TCP Performance Optimizations for Wireless Sensor Networks

19

Page 20: TCP Performance Optimizations forWireless Sensor Networks

Cross-Traffic Comparison

Trento, February 15, 2012

Torsten Braun:TCP Performance Optimizations for Wireless Sensor Networks

20

Page 21: TCP Performance Optimizations forWireless Sensor Networks

Conclusions

> Implementation of caching, local TCP data segment retransmission, and TCP acknowledgement regeneration in intermediate nodes on top of several WSN MAC protocols

> NullMAC and LPP provide good response to local retransmission. Results with ContikiMAC are worse.

> cctrl can improve performance and energy efficiency.

> Spatial reuse by multiple TCP connections can further improve performance.

> Best performance and energy efficiency with cctrl and NullMAC ! → adaptive MAC protocols (Hurni et al., 2010)

Trento, February 15, 2012

Torsten Braun:TCP Performance Optimizations for Wireless Sensor Networks

21

Page 22: TCP Performance Optimizations forWireless Sensor Networks

Thanks for your attention !

> [email protected]

> http://cds.unibe.ch

Trento, February 15, 2012

Torsten Braun:TCP Performance Optimizations for Wireless Sensor Networks

22