Download - HACK Usenix 2014
H A C K : H I E R A R C H I C A L A C K S F O R E F F I C I E N T W I R E L E S S M E D I U M U T I L I Z AT I O NLY N N E S A L A M E H , A S T R I T Z H U S H I , M A R K H A N D L E Y, K Y L E J A M I E S O N , B R A D K A R P. !U N I V E R S I T Y C O L L E G E L O N D O N
W I F I M O S T LY U S E D F O R T C P D O W N L O A D S
Access Point (AP)
ClientServer
TCP Download
W I F I M O S T LY U S E D F O R T C P D O W N L O A D S
Access Point (AP)
ClientServer
Link Layer ACKs
D I F S
B a c k o f f P r e a m b l eP r e a m b l e
D a t a
S I F S
L i n k - L a y e r A C K
W I F I M E D I U M A C Q U I S I T I O N I N C U R S O V E R H E A D
* Diagram to Scale
Rate =15 Mbps
800 μs
1500 bytes
D a t a
A C K
~80% Utilization
Rate =15 Mbps
W I F I M E D I U M A C Q U I S I T I O N I N C U R S O V E R H E A D
A C K
~51% Utilization
Rate = 60 Mbps
W I F I M E D I U M A C Q U I S I T I O N I N C U R S H I G H O V E R H E A D
A C K
Rate = 150 Mbps
~29% Utilization
W I F I M E D I U M A C Q U I S I T I O N I N C U R S H I G H O V E R H E A D
A C K
Rate = 600 Mbps
~9% Utilization
W I F I M E D I U M A C Q U I S I T I O N I N C U R S H I G H O V E R H E A D
B l o c k A C K
Rate = 600 Mbps
~80% Utilization
Aggregate
A G G R E G AT I O N I N C R E A S E S U T I L I Z AT I O N AT H I G H R AT E S
TCP ACKs Aggregate
T C P D O U B L E S M E D I U M A C Q U I S I T I O N S
AP Client
TCP Data Aggregate
Block ACK
Block ACK
Tim
e
* Not to Scale
Acquire
Acquire
At 600 Mbps, ~61% utilization.
T C P D O U B L E S M E D I U M A C Q U I S I T I O N S
TCP ACKs Aggregate
AP Client
TCP Data Aggregate
Block ACK
Block ACK
Tim
e
TCP ACKs Aggregate
AP Client
TCP Data Aggregate
Block ACK
Block ACK
Tim
e
• TCP ACKs cumulative: no need for Block ACK.
• Encapsulate TCP ACK in Link-Layer ACK.
D O W E N E E D T O A C Q U I R E T H E M E D I U M F O R F E E D B A C K ?
D O W E N E E D T O A C Q U I R E T H E M E D I U M F O R F E E D B A C K ?
Block ACK
+ Encapsulated TCP ACKs
• TCP ACKs cumulative: robust to packet loss.
• Encapsulate TCP ACK in Link-Layer ACK.
AP Client
TCP Data Aggregate
Tim
e
G O A L S
• Coexistence with stock 802.11.
• Simple NIC changes.
• No TCP changes.
• Robustness to loss.
B L O C K A C K S M U S T M E E T H A R D D E A D L I N E
• Need to send Block ACK within SIFS.
• TCP ACKs not ready in time.
• Can’t wait longer: other senders might jump in.
AP Client
TCP Data Aggregate
Tim
e
SIFS (16μs)
TCP ACKsBlock ACK
• TCP ACKs can afford to wait.
• Append them to the next Link-Layer ACK.
AP Client
TCP Data 1, 2
Block ACK
TCP Data 3, 4
T C P A C K S D O N ’ T H AV E A H A R D D E A D L I N E
Tim
e
Block ACK
+ TCP ACK 1, 2
TCP ACKs
1 & 2
C O N S E C U T I V E T C P A C K S A R E R E D U N D A N T
Sour
ce
Port
Dest
. P
ortSequence
NumberACK
NumberOffs
et
+ Fl
ags
Wind
ow
Size
Chec
k-
sum
1
Urge
nt
Ptr
TCP ACK Header (20 Bytes)
C O N S E C U T I V E T C P A C K S A R E R E D U N D A N T
Sour
ce
Port
Dest
. P
ortSequence
NumberACK
NumberOffs
et
+ Fl
ags
Wind
ow
Size
Chec
k-
sum
1
Urge
nt
Ptr
TCP ACK 1
Sour
ce
Port
Dest
. P
ortSequence
NumberOffs
et
+ Fl
ags
Urge
nt
Ptr
C O N S E C U T I V E T C P A C K S A R E R E D U N D A N T
Sour
ce
Port
Dest
. P
ortSequence
NumberACK
NumberOffs
et
+ Fl
ags
Wind
ow
Size
Chec
k-
sum
1
Urge
nt
Ptr
TCP ACK 1
TCP ACK 2
Sour
ce
Port
Dest
. P
ortSequence
Number
ACK Number + N
Offs
et
+ Fl
ags
Wind
ow
Size
+ K
Chec
k-
sum
2
Urge
nt
Ptr
C O N S E C U T I V E T C P A C K S A R E R E D U N D A N T
Sour
ce
Port
Dest
. P
ortSequence
NumberACK
NumberOffs
et
+ Fl
ags
Wind
ow
Size
Chec
k-
sum
1
Urge
nt
Ptr
TCP ACK 1
TCP ACK 2
K N
H A C K U S E S R O H C F O R E F F I C I E N T C O M P R E S S I O N
Sour
ce
Port
Dest
. P
ortSequence
NumberACK
NumberOffs
et
+ Fl
ags
Wind
ow
Size
Chec
k-
sum
1
Urge
nt
Ptr
TCP ACK 1
TCP ACK 2
K N
• HACK uses Robust Header Compression (ROHC, RFC 6846)
• ROHC shrinks a TCP ACK to about 5 bytes
Client
TCP Data 1 & 2
Block ACK
AP
T O H A C K O R N O T T O H A C K ?
1234
Tx Queue
TCP ACKs
1 & 2
Fro
m N
etw
ork
Sta
ck
?
Client
TCP Data 1 & 2
Block ACK
TCP Data 3 & 4
Block ACK +
TCP ACKs 1, 2
AP
T O H A C K O R N O T T O H A C K ?
34
Tx Queue
TCP ACKs
1 & 2
Fro
m N
etw
ork
Sta
ck
34
Tx Queue
More Data
N I C N E E D S N O T C P K N O W L E D G E
Client
NETWORK STACK
DRIVER
NIC
TCP ACKs
More Data?
NETWORK STACK
DRIVER
NIC
AP
Opaque Blob
Compress
NETWORK STACK
DRIVER
NIC
Block ACK
NETWORK STACK
DRIVER
NIC
ClientAP
TCP ACKs
More Data?Compress
N I C N E E D S N O T C P K N O W L E D G E
NETWORK STACK
DRIVER
NIC
Decompress
TCP ACKsNETWORK STACK
DRIVER
NIC
ClientAP
N I C N E E D S N O T C P K N O W L E D G E
• TCP can tolerate loss of ACKs.
• ROHC cannot: endpoints should remain in sync.
• HACK should be robust against loss.
• Details in paper.
W H AT A B O U T L O S S O F B L O C K A C K S ?
Block ACK
+ Encapsulated TCP ACKs
AP Client
TCP Data Aggregate
Tim
e
✘
E VA L U AT I O N
Microsoft’s Software Radio (SoRa):
• 802.11a (no aggregation).
ns-3 simulator
• 802.11n (aggregation).
T C P G O O D P U T E X P E R I M E N T
SoRa NS-3
802.11a 802.11n
54 Mbps 150 Mbps
High Quality Link
1, 2 Clients Up to 10 Clients
Measure steady state aggregate goodput
H A C K I M P R O V E S T C P G O O D P U T1
clie
nt2
clie
nts
Mean Aggregate Goodput (Mbps)
0 5 10 15 20 25 30
TCP/Wifi TCP/HACK
# cl
ient
s
1
2
4
10
Mean Aggregate Goodput (Mbps)
0 20 40 60 80 100 120 140
SoRa (802.11a) ns-3 (802.11n)
29 - 32 % Improvement 15 - 22 % Improvement
H A C K I M P R O V E S G O O D P U T A C R O S S F U L L R A N G E O F L I N K R AT E S
Ave
rag
e G
oo
dp
ut (M
bp
s)
0
20
40
60
80
100
120
140
SNR (dB)
0 5 10 15 20 25 30
15 Mbps
Ave
rag
e G
oo
dp
ut (M
bp
s)
0
20
40
60
80
100
120
140
SNR (dB)
0 5 10 15 20 25 30
15 Mbps30 Mbps
H A C K I M P R O V E S G O O D P U T A C R O S S F U L L R A N G E O F L I N K R AT E S
Ave
rag
e G
oo
dp
ut (M
bp
s)
0
20
40
60
80
100
120
140
SNR (dB)
0 5 10 15 20 25 30
15 Mbps30 Mbps
45 Mbps
H A C K I M P R O V E S G O O D P U T A C R O S S F U L L R A N G E O F L I N K R AT E S
Ave
rag
e G
oo
dp
ut (M
bp
s)
0
20
40
60
80
100
120
140
SNR (dB)
0 5 10 15 20 25 30
15 Mbps30 Mbps
45 Mbps60 Mbps
H A C K I M P R O V E S G O O D P U T A C R O S S F U L L R A N G E O F L I N K R AT E S
Ave
rag
e G
oo
dp
ut (M
bp
s)
0
20
40
60
80
100
120
140
SNR (dB)
0 5 10 15 20 25 30
15 Mbps30 Mbps
45 Mbps60 Mbps
90 Mbps
H A C K I M P R O V E S G O O D P U T A C R O S S F U L L R A N G E O F L I N K R AT E S
Ave
rag
e G
oo
dp
ut (M
bp
s)
0
20
40
60
80
100
120
140
SNR (dB)
0 5 10 15 20 25 30
15 Mbps30 Mbps
45 Mbps60 Mbps
90 Mbps
120 Mbps
H A C K I M P R O V E S G O O D P U T A C R O S S F U L L R A N G E O F L I N K R AT E S
Ave
rag
e G
oo
dp
ut (M
bp
s)
0
20
40
60
80
100
120
140
SNR (dB)
0 5 10 15 20 25 30
15 Mbps30 Mbps
45 Mbps60 Mbps
90 Mbps
120 Mbps135 Mbps
H A C K I M P R O V E S G O O D P U T A C R O S S F U L L R A N G E O F L I N K R AT E S
Ave
rag
e G
oo
dp
ut (M
bp
s)
0
20
40
60
80
100
120
140
SNR (dB)
0 5 10 15 20 25 30
150 Mbps
H A C K I M P R O V E S G O O D P U T A C R O S S F U L L R A N G E O F L I N K R AT E S
15 Mbps30 Mbps
45 Mbps60 Mbps
90 Mbps
120 Mbps135 Mbps
Ave
rag
e G
oo
dp
ut (M
bp
s)
0
20
40
60
80
100
120
140
SNR (dB)
0 5 10 15 20 25 30
Ave
rag
e G
oo
dp
ut (M
bp
s)
0
20
40
60
80
100
120
140
SNR (dB)
0 5 10 15 20 25 30
H A C K I M P R O V E S G O O D P U T A C R O S S F U L L R A N G E O F L I N K R AT E S
150 Mbps
15 Mbps30 Mbps
45 Mbps60 Mbps
90 Mbps
120 Mbps135 Mbps
H A C K I M P R O V E S G O O D P U T A C R O S S F U L L R A N G E O F L I N K R AT E S
Ave
rag
e G
oo
dp
ut (M
bp
s)
0
20
40
60
80
100
120
140
SNR (dB)
0 5 10 15 20 25 30
TCP/HACK TCP/802.11n
Ave
rag
e G
oo
dp
ut (M
bp
s)
0
20
40
60
80
100
120
140
SNR (dB)
0 5 10 15 20 25 30
TCP/HACK TCP/802.11n
H A C K I M P R O V E S G O O D P U T A C R O S S F U L L R A N G E O F L I N K R AT E S
TCP/HACK outperforms TCP/802.11n, even in lossy environments
C O N C L U S I O N S
• TCP/HACK reduces medium acquisitions.
• Increases goodput by:
• ~29 - 32% with no aggregation
• ~11 - 20% with aggregation
• Practical to deploy on real NICs.
http://www0.cs.ucl.ac.uk/staff/A.Zhushi/hack/index.html