Title: Wireless Internet: Protocols and Performance
1Wireless InternetProtocols and Performance
- Carey Williamson
- iCORE Professor
- Department of Computer Science
- University of Calgary
2Tutorial Outline
- 1. Introduction/Motivation (10 min)
- 2. Networking Terminology (10 min)
- 3. IEEE 802.11b WLANs (30 min)
- 4. TCP (20 min)
- 5. HTTP (15 min)
- 6. Wireless TCP Performance Part 1 (15 min)
- 7. Wireless TCP Performance Part 2 (15 min)
- 8. Wireless Web Performance (30 min)
- 9. Summary, Questions, Discussion (10 min)
---- Coffee Break Here ---- (1030-1045am)
31. Wireless InternetIntroduction
4What Is Wireless Networking?
- The use of infra-red (IR) or radio frequency (RF)
signals to share information and resources
between devices - A hot computer industry buzzword
- Lots of advertising by companies and media
- Wireless Broadband, 3G wireless, 4G, WAP, iMode,
Bluetooth, WiFi - Mobile Internet, Pervasive Computing, Nomadic
Computing, M-commerce - Ubiquitous Global Revolutionary
5Two Popular 2.4 GHz Standards
- IEEE 802.11
- Fast (11b)
- High Power
- Long range
- Single-purpose
- Ethernet replacement
- Easily Available
- Apple Airport, iBook, G4
- Cisco Aironet 350
- Bluetooth
- Slow
- Low Power
- Short range
- Flexible
- Cable replacement
- Vapourware (?)
6IEEE 802.11 Organization Tree
7Pros and Cons of 802.11
- Pro
- High bandwidth (up to 11 Mbps)
- Two modes of operation infrastructure vs. ad hoc
- Con
- Incompatibility between old and new cards
- Signal blocked by reinforced concrete or tinted
glass - High channel BER can degrade performance (lots!)
- No standard for hand-off between base stations
- Some channel numbers overlap spectrum
- High power consumption in laptops
8Bluetooth
- Think USB, not Ethernet
- Cable replacement technology
- Created by Ericsson
- PAN - Personal Area Network
- 1-2 Mbps connections
- 1600 hops per second FHSS
- Includes synchronous, asynchronous, voice
connections - Piconet routing
- Small, low-power, short-range, cheap, versatile
radios - Used as Internet connection, phone, or headset
- Master/slave configuration and scheduling
9Security
- Wireless sniffers, war driving
- IEEE 802.11
- ESSID Extended Services Set ID
- WEP Wired Equivalent Privacy (useless)
- NAT - Network Address Translation (firewall)
- Bluetooth Security
- FHSS, with rapid hop sequence
- Short range
- Encrypted transmissions (optional)
10Guerrilla.net
- An underground alternative to the wired Internet
- A grassroots movement established in 1996
- 802.11 Wireless LAN cards
- Roof mounted antennae
- Free software (FreeBSD)
- Multi-hop routing, Internet connectivity
- About 500 per node (and dropping)
- Other networks popping up in SF, Seattle, London
11Future of Wireless
- Higher data rates
- Better security
- Wider selection of products
- Lower prices
- Zero configuration networking
- More end-user focus
- Better software
- Less visible
- More popular
122. BackgroundNetworking Terminology
13Wireless Internet Technologies
- Mobile devices (e.g., notebooks, laptops, PDAs,
cell phones, wearable computers) - Wireless network access
- Bluetooth (1 Mbps, up to 3 meters)
- IEEE 802.11b (11 Mbps, up to 100 meters)
- IEEE 802.11a (55 Mbps, up to 20 meters)
- Operating modes
- Infrastructure mode (access point)
- Ad hoc mode
- Wireless Web, WiFi hot spots
14Internet Protocol Stack
- Application supporting network applications and
end-user services - FTP, SMTP, HTTP, DNS, NTP
- Transport end to end data transfer
- TCP, UDP
- Network routing of datagrams from source to
destination - IPv4, IPv6, BGP, RIP, routing protocols
- Data Link hop by hop frames, channel access,
flow/error control - PPP, Ethernet, IEEE 802.11b
- Physical raw transmission of bits
001101011...
15Internet Protocol Stack
- Application
- e.g., Hyper-Text Transfer Protocol (HTTP)
- Transport
- Transmission Control Protocol (TCP)
- User Datagram Protocol (UDP)
- Network
- Internet Protocol (IP, IPv4, IPv6)
- Data Link
- e.g., IEEE 802.3 Ethernet, IEEE 802.11b
- Physical
- Device specific, network specific
001101011...
16Multi-Hop Wireless Ad Hoc Networks
- Routing protocols used to improve wireless
connections - Infrastructure-free, dynamic
- True Peer-to-Peer routing
- Fault tolerant
- Examples AODV, DSDV, TORA, DSR, ...
17Example
- Multi-hop ad hoc networking
Kelly
Carey
183. IEEE 802.11bWireless LANs
19The Basics
- In several respects, the IEEE 802.11b wireless
LAN (WLAN) standard is similar to that for IEEE
802.3 (Ethernet) LANs - Similarities
- LAN limited geographic coverage multiple
stations shared transmission medium CSMA-based
Medium Access Control protocol 48-bit
MAC addresses comparable data rates (11 Mbps vs
10 Mbps)
20The Basics (Contd)
- But there are also distinct differences
- wireless (air interface) versus wired (coax)
- wireless propagation environment (multipath)
- higher error rate due to interference, etc.
- successful frames are ACKed by receiver
- mobile stations hidden node problem potential
asymmetries - CSMA/CA versus CSMA/CD
- multiple data transmission rates (1, 2, 5.5, 11)
21Some Features
- Infrastructure mode vs ad hoc mode
- Access Point (AP) sends beacon frames
- Mobiles choose AP based on signal strength
- Multiple channel access protocols supported
- CSMA/CA (DCF) PCF RTS/CTS
- MAC-layer can provide error control,
retransmission, rate adaptation, etc. - Direct Sequence Spread Spectrum (DSSS)
- signal spread across 14 22-MHz channels
22Where Does Wireless RF Live?ISM Band
Industrial, Scientific, Medical
902-928 MHz
2400-2483.5 MHz
5725-5850 MHz
Old Wireless
802.11a
802.11/802.11b
Bluetooth
Cordless Phones
Home RF
Baby Monitors
Microwave Ovens
23Where does 802.11 live in the OSI?
24 Wireless Cells
11 Mbps bandwidth shared by all devices in the
Cell!
25Wireless Cells
Computers can roam between cells
26CSMA-CA Acknowledgement
Carrier Sense Multiple Access with Collision
Avoidance
How CSMA-CA works
- Device wanting to transmit senses the medium
(Air)
- If medium is busy - defers
- If medium is free for certain period (DIFS) -
transmits frame
Latency can increase if air is very busy!
Device has hard time finding open air to send
frame!
- DIFS - Distributed Inter-Frame Space (approx 128
µs)
27CSMA-CA Acknowledgement
Carrier Sense Multiple Access with Collision
Avoidance
others
source
destination
Air is free for DIFS time period
DIFS
send frame
data
All other devices must defer while air is busy
NAV defer access
SIFS
Receive ACK back that frame was received intact!
ack
- Every frame is acked - except broadcast and
multicast!
- SIFS - Short Inter-Frame Space (approx 28 µs)
28MAC-Layer Retransmission
- If no ACK received right away, then the sender
retransmits the frame again at the MAC layer - indicates frame (or ACK) was lost/corrupted
- very short timeout (e.g., 1 msec)
- exponential backoff (doubling) if repeated loss
- Typically recovers before TCP would notice
- Max retransmission limit (e.g., 8)
- May do MAC-layer rate adaptation or frame
fragmentation if channel error rate is high
29Other MAC Protocols Supported
- Point Coordination Function (PCF)
- AP polls stations in turn to see if frames to
send - useful for real-time traffic
- Request-To-Send/Clear-To-Send (RTS/CTS)
- reservation-based approach (ask permission)
- useful for very large frames
- useful for solving the hidden node problem
- request asks for clearance (permission) to send
- request also indicates time required for transmit
30Frame Formats
- Two frame formats available
- long preamble
- short preamble
- Configuration option for NIC and AP
- Variable-size frames (max 2312 data bytes)
- 16-bit Cyclic Redundancy Code (CRC) for
error checking of frames
31Long Preamble
Long Preamble 144 bits
- Interoperable with older 802.11 devices
- Entire Preamble and 48 bit PLCP Header sent at 1
Mbps
32Short Preamble
Short Preamble 72 bits
- Preamble transmitted at 1 Mbps
- PLCP Header transmitted at 2 Mbps
- more efficient than long preamble
Transmitted at 2 Mbps
Signal Speed 1,2,5.5,11 Mbps
Length of Payload
16 bit Start Frame Delimiter
16 bit CRC
Service (unused)
Payload 0-2312 bytes
56 bit Preamble
33Even More Features
- Power Management
- mobile nodes can sleep to save power
- AP will buffer frames until client requests them
- AP can use virtual bitmap field in beacons to
indicate which stations have data waiting - Security
- Wired Equivalent Privacy (WEP)
- not secure at all!
34Summary
- IEEE 802.11b (WiFi) is a wireless LAN technology
that is rapidly growing in popularity - Convenient, inexpensive, easy to use
- Growing number of hot spots everywhere
- airports, hotels, bookstores, Starbucks, etc
- Estimates 70 of WLANs are insecure!
354. TCP 101Transmission Control Protocol
36Tutorial TCP 101
- The Transmission Control Protocol (TCP) is the
protocol that sends your data reliably - Used for email, Web, ftp, telnet, p2p,
- 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, acknowledgements, timers,
retransmissions, flow control...
37TCP 101 (Contd)
- TCP is a connection-oriented protocol
YOUR DATA HERE
Web Client
Web Server
38TCP 101 (Contd)
- TCP slow-start and congestion avoidance
39TCP 101 (Contd)
- TCP slow-start and congestion avoidance
40TCP 101 (Contd)
- TCP slow-start and congestion avoidance
41TCP 101 (Contd)
- This (exponential growth) slow start process
continues until either - packet loss after a brief recovery phase, you
enter a (linear growth) congestion avoidance
phase based on slow-start threshold found - limit reached slow-start threshold, or maximum
advertised receive window size - all done terminate connection and go home
42Tutorial TCP 201
- There is a beautiful way to plot and visualize
the dynamics of TCP behaviour - Called a TCP Sequence Number Plot
- Plot packet events (data and acks) as points in
2-D space, with time on the horizontal axis, and
sequence number on the vertical axis - Example Consider a 14-packet transfer
43Key X Data Packet Ack Packet
X
X
X
X
X
SeqNum
X
X
X
X
X
X
X
X
X
Time
44So What?
- What can it tell you?
- Everything!!!
45Key X Data Packet Ack Packet
X
X
X
X
X
SeqNum
X
X
X
X
X
X
X
X
X
Time
RTT
46Key X Data Packet Ack Packet
X
X
X
X
X
SeqNum
X
X
X
X
X
X
TCP Seg. Size
X
X
X
Time
47Key X Data Packet Ack Packet
X
X
X
X
X
SeqNum
X
X
X
X
X
X
X
X
X
Time
TCP Connection Duration
48Key X Data Packet Ack Packet
X
X
X
X
X
SeqNum
X
X
X
Num Bytes Sent
X
X
X
X
X
X
Time
49Key X Data Packet Ack Packet
X
X
X
X
X
SeqNum
X
X
Bytes
Avg Throughput (Bytes/Sec)
X
X
X
X
X
X
X
Sec
Time
50Key X Data Packet Ack Packet
X
X
X
X
X
SeqNum
Access Network Bandwidth (Bytes/Sec)
X
X
X
X
X
X
X
X
X
Time
51Key X Data Packet Ack Packet
X
X
X
X
X
SeqNum
X
X
X
X
Senders Flow Control Window Size
X
X
X
X
X
Time
52Key X Data Packet Ack Packet
X
X
X
X
X
SeqNum
X
X
TCP Slow Start
X
X
X
X
X
X
X
Time
53Key X Data Packet Ack Packet
X
X
X
X
X
SeqNum
X
X
X
X
Delayed ACK
X
X
X
X
X
Time
54Key X Data Packet Ack Packet
X
X
X
Packet Loss
SeqNum
X
X
X
Duplicate ACK
X
X
X
X
X
X
Time
55Cumulative ACK
Key X Data Packet Ack Packet
X
X
X
X
SeqNum
X
Retransmit
X
X
X
X
X
X
X
X
Time
56Key X Data Packet Ack Packet
X
X
X
X
SeqNum
X
X
X
X
X
X
X
X
X
Time
RTO
57TCP 201 (Contd)
- What happens when a packet loss occurs?
- Quiz Time...
- Consider a 14-packet Web document
- For simplicity, consider only a single packet
loss
58Key X Data Packet Ack Packet
X
X
X
X
X
SeqNum
X
X
X
X
X
X
X
X
X
Time
59?
Key X Data Packet Ack Packet
X
X
X
X
SeqNum
X
X
X
X
X
X
X
X
X
Time
60Key X Data Packet Ack Packet
X
X
X
X
SeqNum
X
X
X
X
X
X
X
X
X
Time
61Key X Data Packet Ack Packet
X
X
X
X
X
SeqNum
X
X
X
X
X
X
X
X
X
Time
62Key X Data Packet Ack Packet
X
?
X
X
X
SeqNum
X
X
X
X
X
X
X
X
X
Time
63Key X Data Packet Ack Packet
X
X
X
X
X
SeqNum
X
X
X
X
X
X
X
X
X
Time
64Key X Data Packet Ack Packet
X
X
X
X
X
SeqNum
X
X
X
X
X
X
X
X
X
Time
65Key X Data Packet Ack Packet
X
X
X
?
X
SeqNum
X
X
X
X
X
X
X
X
X
Time
66Key X Data Packet Ack Packet
X
X
X
X
X
SeqNum
X
X
X
X
X
X
X
X
X
Time
67Key X Data Packet Ack Packet
X
X
X
X
X
SeqNum
X
X
X
X
X
X
X
X
X
Time
68Key X Data Packet Ack Packet
SeqNum
?
X
X
Time
69Key X Data Packet Ack Packet
SeqNum
X
X
X
X
X
X
Time
70TCP 201 (Contd)
- 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
at least a retransmit timeout - Losses in the middle may or may not hurt,
depending on congestion window size at the time
of the loss
71Congratulations!
- You are now a TCP expert!
725. HTTPHyperText Transfer Protocol
73Introduction to HTTP
http request
http request
http response
http response
Laptop w/ Netscape
Desktop w/ Explorer
Server w/ Apache
- HTTP HyperText Transfer Protocol
- Communication protocol between clients and
servers - Application layer protocol for WWW
- Client/Server model
- Client browser that requests, receives, displays
object - Server receives requests and responds to them
- Protocol consists of various operations
- Few for HTTP 1.0 (RFC 1945, 1996)
- Many more in HTTP 1.1 (RFC 2616, 1999)
74Request Generation
- User clicks on something
- Uniform Resource Locator (URL)
- http//www.cnn.com
- http//www.cpsc.ucalgary.ca
- https//www.paymybills.com
- ftp//ftp.kernel.org
- Different URL schemes map to different services
- Hostname is converted from a name to a 32-bit IP
address (DNS lookup, if needed) - Connection is established to server (TCP)
75What Happens Next?
- Client downloads HTML document
- Sometimes called container page
- Typically in text format (ASCII)
- Contains instructions for rendering
- (e.g., background color, frames)
- Links to other pages
- Many have embedded objects
- Images GIF, JPG (logos, banner ads)
- Usually automatically retrieved
- I.e., without user involvement
- can control sometimes
- (e.g. browser options, junkbusters)
lthtmlgt ltheadgt ltmeta nameAuthor contentErich
Nahumgt lttitlegt Linux Web Server Performance
lt/titlegt lt/headgt ltbody text00000gt ltimg
width31 height11 srcibmlogo.gifgt ltimg
srcimages/new.gifgt lth1gtHi There!lt/h1gt Heres
lots of cool linux stuff! lta hrefmore.htmlgt Cli
ck herelt/agt for more! lt/bodygt lt/htmlgt
sample html file
76Web Server Role
- Respond to client requests, typically a browser
- Can be a proxy, which aggregates client requests
(e.g., AOL) - Could be search engine spider or robot (e.g.,
Keynote) - May have work to do on clients behalf
- Is the clients cached copy still good?
- Is client authorized to get this document?
- Hundreds or thousands of simultaneous clients
- Hard to predict how many will show up on some day
(e.g., flash crowds, diurnal cycle, global
presence) - Many requests are in progress concurrently
77HTTP Request Format
GET /images/penguin.gif HTTP/1.0 User-Agent
Mozilla/0.9.4 (Linux 2.2.19) Host
www.kernel.org Accept text/html, image/gif,
image/jpeg Accept-Encoding gzip Accept-Language
en Accept-Charset iso-8859-1,,utf-8 Cookie
Bxh203jfsf Y3sdkfjej ltcrgtltlfgt
- Messages are in ASCII (human-readable)
- Carriage-return and line-feed indicate end of
headers - Headers may communicate private information
- (browser, OS, cookie information, etc.)
78Request Types
- Called Methods
- GET retrieve a file (95 of requests)
- HEAD just get meta-data (e.g., mod time)
- POST submitting a form to a server
- PUT store enclosed document as URI
- DELETE removed named resource
- LINK/UNLINK in 1.0, gone in 1.1
- TRACE http echo for debugging (added in 1.1)
- CONNECT used by proxies for tunneling (1.1)
- OPTIONS request for server/proxy options (1.1)
79Response Format
HTTP/1.0 200 OK Server Tux 2.0 Content-Type
image/gif Content-Length 43 Last-Modified Fri,
15 Apr 1994 023621 GMT Expires Wed, 20 Feb
2002 185446 GMT Date Mon, 12 Nov 2001 142948
GMT Cache-Control no-cache Pragma
no-cache Connection close Set-Cookie
PAwefj2we0-jfjf ltcrgtltlfgt ltdata followsgt
- Similar format to requests (i.e., ASCII)
80Response Types
- 1XX Informational (defd in 1.0, used in 1.1)
- 100 Continue, 101 Switching Protocols
- 2XX Success
- 200 OK, 206 Partial Content
- 3XX Redirection
- 301 Moved Permanently, 304 Not Modified
- 4XX Client error
- 400 Bad Request, 403 Forbidden, 404 Not Found
- 5XX Server error
- 500 Internal Server Error, 503 Service
Unavailable, 505 HTTP Version Not Supported
81Outline of an HTTP Transaction
- This section describes the basics of servicing an
HTTP GET request from user space - Assume a single process running in user space,
similar to Apache 1.3 - Well mention relevant socket operations along
the way
initialize forever do get request
process send response log request
server in a nutshell
82Readying a Server
s socket() / allocate listen socket
/ bind(s, 80) / bind to TCP port 80
/ listen(s) / indicate willingness to
accept / while (1) newconn accept(s) /
accept new connection /b
- First thing a server does is notify the OS it is
interested in WWW server requests these are
typically on TCP port 80. Other services use
different ports (e.g., SSL is on 443) - Allocate a socket and bind()'s it to the address
(port 80) - Server calls listen() on the socket to indicate
willingness to receive requests - Calls accept() to wait for a request to come in
(and blocks) - When the accept() returns, we have a new socket
which represents a new connection to a client
83Processing a Request
remoteIP getsockname(newconn) remoteHost
gethostbyname(remoteIP) gettimeofday(currentTime)
read(newconn, reqBuffer, sizeof(reqBuffer)) req
Info serverParse(reqBuffer)
- getsockname() called to get the remote host name
- for logging purposes (optional, but done by most)
- gethostbyname() called to get name of other end
- again for logging purposes
- gettimeofday() is called to get time of request
- both for Date header and for logging
- read() is called on new socket to retrieve
request - request is determined by parsing the data
- GET /images/jul4/flag.gif
84Processing a Request (cont)
fileName parseOutFileName(requestBuffer) fileAt
tr stat(fileName) serverCheckFileStuff(fileName
, fileAttr) open(fileName)
- stat() called to test file path
- to see if file exists/is accessible
- may not be there, may only be available to
certain people - "/microsoft/top-secret/plans-for-world-domination.
html" - stat() also used for file meta-data
- e.g., size of file, last modified time
- "Has file changed since last time I checked?
- might have to stat() multiple files and
directories - assuming all is OK, open() called to open the file
85Responding to a Request
read(fileName, fileBuffer) headerBuffer
serverFigureHeaders(fileName, reqInfo) write(newS
ock, headerBuffer) write(newSock,
fileBuffer) close(newSock) close(fileName) writ
e(logFile, requestInfo)
- read() called to read the file into user space
- write() is called to send HTTP headers on socket
- (early servers called write() for each header!)
- write() is called to write the file on the
socket - close() is called to close the socket
- close() is called to close the open file
descriptor - write() is called on the log file
86Network View HTTP and TCP
- TCP is a connection-oriented protocol
YOUR DATA HERE
Web Client
Web Server
87Example Web Page
Harry Potter Movies
As you all know, the new HP book will be out in
June and then there will be a new movie shortly
after that Harry Potter and the Bathtub Ring
hpface.jpg
page.html
castle.gif
88Server
Client
The classic approach in HTTP/1.0 is to use
one HTTP request per TCP connection, serially.
89Server
Concurrent (parallel) TCP connections can be
used to make things faster.
Client
C
C
S
S
90Server
Client
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.
91Server
Client
The pipelining feature in HTTP/1.1
allows requests to be issued asynchronously on
a persistent connection. Requests must
be processed in proper order. Can do clever
packaging.
GG
92Summary of Web and HTTP
- The major application on the Internet
- Majority of traffic is HTTP (or HTTP-related)
- Client/server model
- Clients make requests, servers respond to them
- Done mostly in ASCII text (helps debugging!)
- Various headers and commands
- Too many to go into detail here
- Many web books/tutorials exist
(e.g., Krishnamurthy Rexford 2001)
936. Wireless TCPPerformance Issues (Part 1)
94Example 1
- Wireless TCP Performance Problems
Low capacity, high error rate
Wired Internet
High capacity, low error rate
Wireless Access
95Example 1 (Contd)
- Solution wireless-aware TCP (I-TCP, ProxyTCP,
Snoop-TCP, split connections...)
96Example 2
- Wireless TCP Fairness Problems
D
Wired Internet
Wireless Bottleneck
AP
U
97Example 3
- Multi-hop ad hoc networking
Kelly
Carey
98Example 3 (Contd)
- Multi-hop ad hoc networking
Kelly
Carey
99Example 3 (Contd)
- Multi-hop ad hoc networking
Kelly
Carey
100Example 3 (Contd)
- Multi-hop ad hoc networking
Kelly
Carey
101Example 3 (Contd)
- Multi-hop ad hoc networking
Kelly
Carey
102Example 3 (Contd)
- Multi-hop ad hoc networking
Kelly
Carey
103Example 3 (Contd)
- Multi-hop ad hoc networking
Kelly
Carey
104Example 3 (Contd)
- Multi-hop ad hoc networking
Kelly
Carey
105Example 3 (Contd)
- Multi-hop ad hoc networking
Kelly
Carey
106Example 3 (Contd)
- Multi-hop ad hoc networking
Kelly
Carey
107Example 3 (Contd)
- Two interesting subproblems
- Dynamic ad hoc routing node movement can disrupt
the IP routing path at any time, disrupting TCP
connection yet another way to lose packets!!!
possible solution Explicit Loss Notification
(ELN)? Handoff? Route prediction? - TCP flow control the bursty nature of TCP packet
transmissions can create contention for the
shared wireless channel among forwarding nodes
collisions between DATA and ACKs possible
solution rate-based flow control? Burst mode?
Spatial reuse of channels?
108Summary of Wireless TCP
- TCP is the four wheel drive of TPs
- Wireless is a newly emerging technology with
rapidly growing deployment popularity - TCP and Wireless dont fit together all
that well - Making TCP smarter about wireless helps!
1097. Wireless TCPPerformance Issues (Part 2)
110Motivation
- TCP performance often degrades over wireless
networks reasons well-known - Solutions to improve TCP performance over
wireless links exist, but how well do they work
in a real wireless LAN environment? - How do link-layer mechanisms interact with TCP
and affect the overall performance? - Where is the bottleneck in the network protocol
processing path, and why? -
111Background - TCP
- Widely used on the Internet (e.g. Web)
- Connection-oriented, reliable byte stream
- Window-based flow control
- Slow start and congestion avoidance
- Fast retransmission, fast recovery
- Other extensions, including TCP SACK
- Many different versions in use
112Background IEEE 802.11b
- An Ethernet-like LAN standard (11 Mbps)
- Infrastructure mode and ad hoc mode
- Carrier-sense multiple access with collision
avoidance (CSMA/CA) to reduce collisions - MAC-layer positive acknowledgment and
retransmissions (to recover from channel errors) - Dynamic rate adaptation can choose data
transmission rate of 1, 2, 5.5, or 11 Mbps
113Background USB
- Widely used industry standard for connecting a
computer to its peripherals (bus topology) - Lots of USB-based (wireless) network cards
- Data transfers managed by Host Controller (HC)
- Synchronous bus 1 msec slots for transfers
- Transfer requests are handled using vertical and
horizontal linked-list data structures - Two processing modes for HC
- Breadth-First or Depth-First
- High Speed Bandwidth Reclamation (HSBR)
114Background USB (contd)
- Queued mode (keep HC busy)
- Transfer size 64 1023 bytes each
115Background USB (contd)
- Queued mode (keep HC busy)
- Transfer size 64 1023 bytes each
116Experimental Methodology
- Experimental Setup (HW/SW)
- Laptop Compaq Evo 719c with multiport USB
wireless card (Linux 2.4) - Access point Lucent RG-1000
- Stationary host on Ethernet LAN SunOS 5.8
- Run netperf on laptop and netserver on wired host
- SnifferPro 4.6 wireless sniffer and tcpdump
- Experimental Factors
- USB mode, driver settings
- Wireless channel (distance) between laptop and AP
data
netperf
laptops
netserver
AP
tcpdump
Ethernet
Sniffer
acks
117Initial Result
- Windows 2000 implementation of TCP is more than 3
times faster than Linux TCP! - Reason Linux driver bug (2 Mbps vs 11 Mbps)
OS
Throughput
Linux
1.52 Mbps
Windows 2000
5.11 Mbps
118Results USB Experiments
119Results USB Experiments
- With FSBR disabled, USB is the bottleneck
- With FSBR enabled (the default in Linux), the
wireless network is the bottleneck - Queued mode makes no difference with FSBR on, but
helps when FSBR is turned off - Queued mode (even with FSBR turned on) may be
very important when higher speed wireless link is
used (e.g. IEEE 802.11a)
120Results Wireless Problems
- We observed unusually high collision rates on the
wireless channel for TCP transfers, which we call
the TCP data/ACK collision problem - Scenario laptop and AP are 1 m apart
- For TCP, MAC-layer retransmit rate 4.58-4.73
- For UDP, MAC-layer retransmit rate 0.47-0.98
- In general, a retransmission rate of 1.75-7.2
has been seen for other vendor HW/SW (N 1) - For TCP, disabling MAC-layer retransmission
degrades throughput by 23
121Results Wireless Problems
- The MAC-layer rate adaptation problem
- Scenario laptop and AP are 100 m apart
- Lousy TCP throughput, lots of retransmits
- Reason the multiplicative increase and
multiplicative decrease (MIMD) bandwidth probing
mechanism causes network thrashing and wastes
battery power - The small congestion window causes temporary
deadlock if the TCP receiver uses delayed Ack
122Results Wireless Problems (MAC-layer rate
adaptation)
123Summary of Observations
- TCP performance on WLAN can be wacky! (at least
for Compaq Multiport 802.11b USB wireless card
under Linux 2.4) - Several factors can affect overall performance
- Poorly configured USB bus could be the bottleneck
- Linux TCP implementation bug makes TCP unable to
recognize the first spurious timeout - Poor MAC-layer rate adaptation algorithm can
cause a network thrashing problem - TCPs data/ACK structure may induce excessive
collisions at the MAC layer on wireless LANs
1247. Wireless WebPerformance Issues
125Introduction and Motivation
- Observation the same wireless technology
- that allows a Web client to be mobile also
- allows Web servers to be mobile
- Idea portable, short-lived, ad hoc networks
- Possible applications
- classroom area networks, seminars
- press conferences, media events
- sporting events, gaming, exhibitions
- conferences and trade shows
- disaster recovery sites, field work, etc.
126Objectives
- to assess feasibility of portable networks
- to benchmark the performance capabilities
- and limitations of an Apache Web server in
- a wireless ad hoc network
- to identify the performance bottlenecks
- to understand impacts of different factors
- number of clients
- Web object size
- persistent connections
- transmit power (energy consumption)
- wireless channel conditions
127 Experimental Setup
- Compaq Notebooks (1.2GHz Pentium III, 128MB RAM,
- 512 KB L2 cache, Cisco Aironet 350 network
cards) - RedHat Linux 7.3, httperf, Apache 1.3.23,
SnifferPro 4.6 - Network 11 Mbps IEEE 802.11b wireless LAN, ad
hoc mode
128 Experimental Setup (Contd)
- IEEE 802.11b a standard for wireless LANs
- Carrier Sense Multiple Access with Collision
Avoidance - (CSMA/CA), up to 11 Mbps data rate at physical
layer - ad hoc mode
- frames are addressed directly from sender to
receiver - httperf
- Web benchmarking software tool developed at HP
Labs - Web server Apache (version 1.3.23)
- Process-based, flexible, powerful,
HTTP/1.1-compliant - SnifferPro 4.6
- real-time capture, recording all wireless channel
activity, - enabling protocol analysis at MAC, IP, TCP and
HTTP layers
129Â
Â
Experimental Design
- Impacts of different factors on wireless Web
server - performance (one-factor-at-a-time)
Experimental Factors and Levels
- Performance metrics
- HTTP transaction rate, throughput, response
time, error rate - at Application Layer,
- TCP connection duration at Network Layer
- Transmit queue behaviour at Link Layer,
Â
Â
130Experiment 1 Request Rate
- Purpose to determine the range of feasible and
sustainable - loads for the wireless Web
server - Design
- Number of Clients 1
- HTTP transaction rate 10, 20, , 160 req/sec
- HTTP transfer size 1 KB (fixed)
- Persistent connections no
- Transmit power 100 mW
- Client-server distance 1 meter (on same desk)
131Wireless Web Performance at Application Layer
- Main observation
- As the offered load increases
- linear increase ? instability ? lower
plateau - Peak throughput lt 1 Mbps for 1 KB transfers
132Experiment 2 Transfer Size
- Purpose to study impact of HTTP response size
- Design
- Number of Clients 1
- HTTP transaction rate 10 req/sec (fixed)
- HTTP transfer size (KB) 1, 2, 4, 8,
- Persistent connections no
- Transmit power 100 mW
- Client-server distance 1 meter (on same desk)
133Measurement at Network Layer
134Experiment 3 Persistent Connections
- Persistent Connections
- Multiple HTTP transactions can be sent on the
- same TCP connection.
- amortize overhead of TCP connection processing
- reduce memory consumption for TCP state
- Purpose of this experiment to study impact of
- persistent connection on wireless Web
performance - Design
- Number of Clients 1 and 2
- HTTP transaction rate 10 req/sec (fixed)
- HTTP transfer size 1 KB (fixed)
- Persistent connections yes
- Transmit power 100 mW
- Client-server distance 1 meter (on same desk)
135Achieved Throughput for Experiment with
Persistent Connections
- Main observation
- Peak throughput 3.22 Mbps, 3.5x improvement
- over non-persistent connections (0.9 Mbps),
- two clients share the server and network
resources - equally
136 Summary and Conclusions
- What we did wireless Web server, portable nw
- Application-layer measurements (httperf)
- Network-layer measurements (Wireless Sniffer)
- Our results show
- Server capability 100 conn/sec for
non-persistent - HTTP with throughputs up to 4 Mbps
(adequate?) - Bottleneck at wireless network interface
- Some network thrashing for large HTTP
transfers - when the network utilization is high (aborts,
resets) - Effect of wireless channel on performance at
- TCP and HTTP-level (MAC-layer retransmits)
- Power consumption issue for mobile client and
server
1378. Summary,Questions, and Discussion
138Credits
- Thanks to the following people for the use of
their slides and/or knowledge - David Schwab, U of Saskatchewan
- Erich Nahum, IBM
- Sniffer Technologies
- Network Associates
- IEEE
- Guangwei Bai and Tianbo Kuang,U of C