Title: WirelessAware Protocol Stacks
1Wireless-Aware Protocol Stacks
- Carey Williamson
- Professor and iCORE Chair
- Department of Computer Science
- University of Calgary
2Introduction
- It is an exciting time to be an Internet
researcher (or even a user!) - The last 10-15 years of Internet evolution have
brought us - World Wide Web (WWW)
- Media streaming applications
- Peer-to-peer (P2P) applications
- Wi-Fi wireless LANs and hotspots
- Mobile/pervasive/ubiquitous computing
3Main Theme of this Talk
- Existing layered Internet protocol stack does not
lend itself well to providing optimal performance
for diversity of service demands and environments - Subtle multi-layer protocol interactions
- Challenge performance transparency
- Who should bend users or protocols?
- Explore the role of awareness in (wireless)
Internet protocol performance
4Network Protocol Stack
- Application supporting network applications and
end-user services - FTP, SMTP, HTTP, DNS, NTP, ...
- Transport end to end data transfer
- TCP, UDP, RTP, SCTP, XTP
- Network routing of datagrams from source to
destination - IPv4, IPv6, BGP, RIP, routing protocols
- Data Link frames, channel access, flow/error
control - PPP, Ethernet, IEEE 802.11a/b/g
- Physical raw transmission of bits
001101011...
5Viewpoint
- Layered design is good
layered implementation is bad - AST?? - Good
- unifying framework for describing protocols
- modularity, black-boxes, plug and play
functionality, well-defined interfaces (SE) - Bad
- increases overhead (interface boundaries)
- compromises performance (ignorance)
6Main Example TCP
- The Transmission Control Protocol (TCP) is the
protocol that sends your data reliably - Used for email, Web, ftp, telnet,
- Makes sure that data is received correctly right
data, right order, exactly once - Detects and recovers from any problems that occur
at the IP network layer - Mechanisms for reliable data transfer
- sequence numbers, ACKs, flow control, timers,
retransmissions, congestion control...
7In Praise of TCP
- TCP is the 4 wheel drive of transport layer
protocols - general purpose, robust, go anywhere
- The TCP protocol has undergone only minor changes
in 30 years of existence - original version circa 1974
- congestion control mechanism 1988
- TCP has witnessed dramatic changes in network
technology and in computing technology over that
same time period!
8Criticisms of TCP
- TCP is a high overhead protocol
- hefty headers (20-byte TCP, 20-byte IP)
- extra network packets for handshaking
- extra RTTs for handshaking
- Performance problems aplenty
- high delay-bandwidth product networks
- multiple packet losses in same window
- fairness problems (RTT bias, phasing, losses)
- World Wide Web (small transfers vs large ones)
- wireless networks (losses, mobility, etc.)
9 The Problem Restated
TCP or not TCP? That is the question!
- Hamlet, Act 3, Scene 1
William Shakespeare (1608)
10 TCP Performance Problems
- Examples
- TCP over ATM Networks
- TCP and the Web
- TCP over Wireless Networks
- TCP over Wireless Ad Hoc Networks
- Wireless Media Streaming Performance
11Example 1a TCP over ATM
- TCP on 10 Mbps Ethernet LAN Boggs88
- throughput approximately 9.5 Mbps
- TCP on 140 Mbps ATM LAN Moldeklev94
- throughput approximately 0.2 Mbps!!!
- Why? TCP deadlock problem
- large ATM MTU size, relatively small TCP
send/receive socket buffer sizes - interaction between TCP delayed ACKs and Nagles
Algorithm and socket copy rules - Solution proper config gt 70 Mbps
12Example 1b TCP over ATM
- TCP throughput and efficiency suffer over ATM
networks Romanow94 - Why? The jigsaw-puzzle problem
- TCP packets large ATM cell size small
- one TCP packet many ATM cells (N)
- under overload, ATM switch discards cells
- ATM cells do not have sequence numbers!!!
- retransmission at the TCP packet layer only
- lose 1 cell, resend N cells for each packet loss
- Solution
- mark packet boundaries use PPD/EPD
13Example 2 TCP and the Web
14Example 2 TCP and the Web
The classic approach in HTTP/1.0 is to use
one HTTP request per TCP connection, serially.
15Example 2 TCP and the Web
The persistent HTTP approach can re-use
the same TCP connection for multiple HTTP
transfers, one after another, serially. Amortizes
TCP overhead, but maintains TCP state longer at
server. Mogul 1995
16Example 3 TCP over Wireless
- Wireless TCP Performance Problems
Low capacity, high error rate
Wired Internet
High capacity, low error rate
Wireless Access
17Example 3 TCP over Wireless
- Solution wireless-aware TCP (I-TCP, ProxyTCP,
Snoop-TCP, split connections...)
The assumption Loss Congestion no longer
applies
18Example 4a TCP over Ad Hoc
- Multi-hop ad hoc networking
Steve
Carey
19Example 4a TCP over Ad Hoc
- Multi-hop ad hoc networking
Steve
Carey
20Example 4a TCP over Ad Hoc
- Multi-hop ad hoc networking
Steve
Carey
21Example 4a TCP over Ad Hoc
- Multi-hop ad hoc networking
Steve
Carey
22Example 4a TCP over Ad Hoc
- Problem TCP vs Dynamic ad hoc routing
- Node movement can disrupt the IP routing path at
any time, disrupting TCP connection - Yet another way to lose packets!!!
- Route discovery delays are unpredictable
- can vary from 10 ms to 5 s or more Gupta 2004
- Possible solutions
- Explicit Loss Notification (ELN) Balakrishnan et
al.1998 - Wireless loss inference techniques Liu et al.
2003 - Fast TCP handoffs Tan et al. 1999
23Example 4b TCP over Ad Hoc
(Assume ideal world)
1
2
3
4
S
5
6
7
8
9
10
11
12
A
C
B
D
R
24Example 4b TCP over Ad Hoc
2
3
4
S
5
1
6
7
8
9
10
11
12
A
C
B
D
R
25Example 4b TCP over Ad Hoc
3
4
S
5
2
6
7
8
9
10
11
1
12
A
C
B
D
R
26Example 4b TCP over Ad Hoc
4
S
5
3
6
7
8
9
1
10
11
2
12
A
C
B
D
R
27Example 4b TCP over Ad Hoc
S
5
4
6
7
8
9
10
2
11
1
3
12
A
C
B
D
R
28Example 4b TCP over Ad Hoc
S
6
5
7
8
9
10
3
11
2
4
12
A
C
B
1
D
R
29Example 4b TCP over Ad Hoc
S
6
7
8
9
10
11
3
4
12
A
5
C
B
2
D
1
R
30Example 4b TCP over Ad Hoc
S
7
8
9
10
11
5
6
12
A
4
C
B
D
3
1
2
R
31Example 4b TCP over Ad Hoc
S
8
9
10
11
6
5
7
12
A
C
B
D
4
1
2
3
R
32Example 4b TCP over Ad Hoc
S
9
10
7
11
6
12
A
8
C
B
D
5
1
2
3
4
R
33Example 4b TCP over Ad Hoc
S
10
11
8
7
12
A
9
C
B
D
6
1
2
3
4
5
R
34Example 4b TCP over Ad Hoc
S
11
8
9
12
A
C
10
B
D
7
1
2
3
4
5
R
6
35Example 4b TCP over Ad Hoc
S
12
10
A
9
11
C
B
D
8
1
2
3
4
5
R
6
7
36Example 4b TCP over Ad Hoc
S
10
11
A
12
C
B
D
9
1
2
3
4
5
R
6
7
8
37Example 4b TCP over Ad Hoc
S
12
11
A
C
B
D
10
1
2
3
4
5
R
6
7
8
9
38Example 4b TCP over Ad Hoc
S
A
12
C
B
D
11
1
2
3
4
5
R
6
7
8
9
10
39Example 4b TCP over Ad Hoc
S
A
C
B
D
12
1
2
3
4
5
R
6
7
8
9
10
11
40Example 4b TCP over Ad Hoc
S
A
C
B
D
1
2
3
4
5
R
6
7
8
9
10
11
12
41Example 4b TCP over Ad Hoc
(Reality check)
Issue 1 node A cant use both of these links at
the same time - shared wireless
channel - transmit or receive, but not
both
1
2
3
4
S
5
6
7
8
9
10
11
12
A
C
B
D
R
42Example 4b TCP over Ad Hoc
Issue 2 cant use both of these links at same
time - range overlap at A -
hidden node problem - exposed node
problem
1
2
3
4
S
5
6
7
8
9
10
11
12
A
C
B
D
R
43Example 4b TCP over Ad Hoc
Issue 3 LOTS of contention for the channel - in
steady state, all stations want to send - need
RTS/CTS to resolve contention
1
2
3
4
S
5
6
7
8
9
10
11
12
A
C
B
D
R
RTS Request-To-Send CTS Clear-To-Send
44Example 4b TCP over Ad Hoc
1
RTS
CTS
2
3
4
S
5
6
7
8
9
10
11
12
A
C
B
D
R
45Example 4b TCP over Ad Hoc
2
3
4
S
5
1
6
7
8
9
10
11
12
A
C
B
D
R
46Example 4b TCP over Ad Hoc
RTS
CTS
2
3
4
S
5
6
7
8
9
10
11
12
A
C
1
B
D
R
47Example 4b TCP over Ad Hoc
2
3
4
S
5
6
7
8
9
10
11
1
12
A
C
B
D
R
48Example 4b TCP over Ad Hoc
2
3
4
S
5
6
7
8
9
10
11
1
12
A
C
B
D
R
49Example 4b TCP over Ad Hoc
3
4
S
5
2
6
7
8
9
10
11
1
12
A
C
B
D
R
50Example 4b TCP over Ad Hoc
3
4
S
5
6
7
8
9
10
11
12
A
2
C
B
D
1
R
51Example 4b TCP over Ad Hoc
3
4
S
5
6
7
8
9
10
11
2
12
A
C
B
D
1
R
52Example 4b TCP over Ad Hoc
4
S
5
3
6
7
8
9
10
11
2
12
A
C
B
D
1
R
53Example 4b TCP over Ad Hoc
4
S
5
6
7
8
9
10
11
12
A
3
C
B
D
2
1
R
54Example 4b TCP over Ad Hoc
4
S
5
6
7
8
9
10
11
3
12
A
C
B
D
1
2
R
55Example 4b TCP over Ad Hoc
S
5
4
6
7
8
9
10
11
3
12
A
C
B
D
1
2
R
56Example 4b TCP over Ad Hoc
S
5
6
7
8
9
10
11
12
A
4
C
B
D
3
1
2
R
57Example 4b TCP over Ad Hoc
S
5
6
7
8
9
10
11
4
12
A
C
B
D
1
2
3
R
58Example 4b TCP over Ad Hoc
Issue 4 TCP uses ACKS to indicate reliable data
delivery - bidirectional traffic (DATA, ACKS) -
even more contention!!!
1
2
3
4
S
5
6
7
8
9
10
11
12
A
C
B
D
R
59Example 4b TCP over Ad Hoc
2
3
4
S
5
1
6
7
8
9
10
11
12
A
C
B
D
R
60Example 4b TCP over Ad Hoc
2
3
4
S
5
6
7
8
9
10
11
1
12
A
C
B
D
R
61Example 4b TCP over Ad Hoc
2
3
4
S
5
6
7
8
9
10
11
1
12
A
C
B
D
R
62Example 4b TCP over Ad Hoc
3
4
S
5
2
6
7
8
9
10
11
1
12
A
C
B
D
R
63Example 4b TCP over Ad Hoc
3
4
S
5
6
7
8
9
10
11
12
A
2
C
B
D
1
R
64Example 4b TCP over Ad Hoc
3
4
S
5
6
7
2
8
9
10
11
TCP ACK
1
2
12
A
C
B
2
1
D
1
1
R
65Example 4b TCP over Ad Hoc
4
S
5
3
6
7
8
9
10
11
1
12
2
A
C
B
D
1
R
66Example 4b TCP over Ad Hoc
4
S
5
6
7
8
9
10
11
1
12
A
C
3
B
D
2
1
R
67Example 4b TCP over Ad Hoc
4
S
5
6
7
8
9
10
11
12
1
A
C
3
B
D
2
1
R
68Example 4b TCP over Ad Hoc
4
S
5
6
7
8
1
9
10
11
12
A
C
3
B
D
2
1
R
69Example 4b TCP over Ad Hoc
4
S
5
6
7
8
1
9
10
11
12
A
3
C
B
D
2
1
R
70Example 4b TCP over Ad Hoc
4
S
5
6
7
8
1
9
10
11
12
A
C
B
3
D
2
1
2
R
71Example 4b TCP over Ad Hoc
- Problem TCP flow control vs. wireless ad hoc
- The bursty nature of TCP packet transmissions
creates contention for the shared wireless
channel among forwarding nodes - Causes intra-flow and inter-flow contention
- Possible solutions
- Bound TCP window size Fu et al. 2003
- Link-layer RED Fu et al. 2003
- Rate-based flow control Gupta et al. 2004
- Multi-channel MAC protocols Kuang et al. 2004
- Careful channel scheduling Wormsbecker et al.
2006
72Example 5 Wireless Streaming
Wireless Sniffer
73Example 5 Contd
Wireless Sniffer
74(No Transcript)
75The Bad Apple Phenomenon
- What? One user with poor or transient wireless
connectivity in the WLAN disrupts performance for
everyone!!! - Why? Shared broadcast WLAN lots of MAC-layer
retransmissions FIFO server queue Head of Line
(HOL) blocking - Solutions?
- Disable MAC-layer retransmissions (yuck!)
- Multiple queues and packet scheduling
- Station-based adaptation Cao et al. 2006
76 Some Examples of Our Work
- Context-Aware (CATNIP) TCP
- Multi-Channel MAC Protocols
- Bi-directional MAC protocols (Bi-MCMAC)
- Multi-Rate Multi-Channel (MRMC) WLANs
- Fairness Issues in IEEE 802.11b WLANs
- Wireless Cross-Layer Design
- Scalable Wireless Media Streaming
77Example 1 CATNIP TCP
- Context-Aware Transport/Network Internet
Protocol (CATNIP) - Motivation Like kittens, TCP connections are
born with their eyes shut - CLW - Question How much better could TCP perform if it
knew what it was trying to do (e.g., 14 KB Web
document transfer)?
78Motivation for CATNIP TCP
- Main observation
- Not all packet losses are created equal
- Losses early in the transfer have a huge adverse
impact on the transfer latency - Losses near the end of the transfer always cost a
retransmit timeout - Losses in the middle may or may not hurt,
depending on congestion window size at the time
of the loss (because of the TCP fast retransmit
mechanism)
79Web/TCP Pain Profile
80Design of CATNIP
- Make TCP smarter by conveying application-layer
context to TCP/IP - modifies socket API
Application
Transport
Network
81CATNIP TCP Sources
- What could sources do differently?
- Rate-Based Pacing of Last Window (RBPLW)
- Early Congestion Avoidance (ECA)
- Selective Packet Marking (SPM) use a 1-bit field
in the reserved portion of the TCP/IP header to
convey packet priority information - 0 low priority 1 high priority (crucial
pkts) - SPM is the most effective Wu et al. 2002
- Implementable using DiffServ codepoints Wu et
al. 2006
82CATNIP in the Internet
- What could IP router do differently?
- If it knew which packets mattered most
- CATNIP-Good avoid discarding them when
congested (if possible) - CATNIP-Bad throw them away!
83Simulation/Emulation Results
- Sources have relatively little control
- IP routers have all the power
- Adding context-awareness at IP routers improves
both mean and standard deviation of Web page
transfer times (e.g., by 20-60 for 1-5 packet
loss) - SPM and CATNIP-Good provide most of the benefit
84Example 2 Bi-MCMAC Protocol
Issue 2 cant use both of these links at same
time - range overlap at A -
hidden node problem - exposed node
problem
1
2
3
4
S
5
6
7
8
9
10
11
12
A
C
B
D
R
85 Multi-Channel MAC Protocols
- Sender transmits RTS on control channel,
indicating candidate set of channels to use - CTS
reply indicates channel to use (if any) - Sender
and receiver tune to that channel
for the duration of that packet transmission
1
2
3
4
S
5
6
7
8
9
10
11
12
A
C
B
D
A big win! - Confines contention to control
channel only - Reduces hidden node/exposed node
problems - Shortens the contention distance (3
to 2) - Significantly improves throughput
R
86 Bidirectional Reservations
4
S
5
6
7
8
1
9
10
11
12
A
C
Old way RTS CTS DATA 3 (ack) RTS CTS ACK 1
(ack)
B
3
Our new way RTS CTS CRN DATA 3 ACK 1 (ack)
D
2
1
2
25 less control overhead in common case of TCP
DATA/ACK
R
87Performance Evaluation
- Simulation using ns-2 network simulator
- Three protocols
- 802.11 MAC, MCMAC, Bi-MCMAC
- Static ad hoc networks
- Performance metrics
- Fairness
- Throughput (FTP-like bulk data transfer
applications) - Response Time (Web-like applications)
88Fairness Example
MCMAC
802.11 MAC
Bi-MCMAC
Total 736 kbps
Total 1406 kbps
Total 1528 kbps
89Summary and Conclusions
- There are performance advantages to bending the
rules in the layered Internet protocol stack
(esp. wireless!) - The general notion of awareness is worth
exploring in many contexts - wireless networks, ad hoc routing, TCP/IP, mobile
computing, adaptive applications - wireless mesh networks, sensor networks
- Many interesting issues to explore!!
90The End
- For more information
- Email carey_at_cpsc.ucalgary.ca
- Web URL www.cpsc.ucalgary/carey
- Credits
- Guangwei Bai, Jean Cao, Mingwei Gong, Abhinav
Gupta, Tianbo Kuang, Hongxia Sun, Ian
Wormsbecker, Qian Wu - The rest of my iCORE research team
- Questions?