Powerpoint presentation
Download
Report
Transcript Powerpoint presentation
WebTP
A New Transport Architecture
for the Web
Rajarshi Gupta
Wilson So
UCB EECS
Team Members
FACULTY
Venkat Anantharam
Steven McCanne
David Tse
Pravin Varaiya
Jean Walrand
STUDENTS
Ye Xia
Wilson So
Rajarshi Gupta
Yogesh Bhumralkar
Jeng Lung
Richard La
Post Doc
David Starobinski
Motivation
World Wide Web today is vast and vital
Mostly runs Web transport (http) over TCP
TCP and UDP sub-optimal for many applications
Attempts at incremental improvements
Need a comprehensive solution, without trying to
“fit in” with TCP/HTTP
Web Applications important enough to motivate
new cross-layer architecture
WebTP is the answer ?
WebTP Project Work Items
User utility characterization
WebTP architecture and protocol
(motivation & design)
Active research areas
WebTP Project Work Items
User utility characterization
WebTP architecture and protocol
(motivation & design)
Active research areas
Conceptual View
interaction
Server
Network
Document
Resources
Client
Display
Satisfaction
User Rules
Utility
Function
S = f (D , C , N , U)
S = User Satisfaction
D = Document Descriptor
C = Client Set of Rules
N = Observed Network State
U = Utility Function
Document
D
Client
Rules
C
Document
D’
Network
State
User
Preferences
Satisfaction
Utility Function
U
Measure of utility generated by the
objects on the page
O[ j ].size
T (i)
S O[i].value.1T (i) O[i].delay
R
i
M
j 1
i 1
M
S O[i].value.1T (i) B(i)
i 1
B(i ) O[ j ].browse
Simple additive form, or more complicated
Utility depends on Arrival, Browse Time
Experimental work to characterize utility
i 1
j 1
WebTP Transfer
Given
a set of objects to transfer
current network state
We find an Optimal Transfer Schedule
Optimal order of transfer
Optimal subset of objects (dynamic programming)
Universal delay constraint
Browse time constraint
Optimal ?
Maximizes user utility
Experimental Setup
Sample page (CNN
Digest)
www.path.berkeley.edu/~guptar/
SAMPLE/index.html
WebTP
Normal
Quantitative metric for
comparison of utilities
Comparison of transfers
in terms of utilities
WebTP vs Normal Web Transfer (example)
WebTP Project Work Items
User utility characterization
WebTP Architecture & Protocol
(motivation & design)
Active research areas of WebTP
WebTP Design Philosophy
Consider the web
browsing process as a
whole.
Bring the user into
the loop of decision.
USER
APP
PROTOCOL
NETWORK
Today’s Focus: Transport
Requirements of the
transport protocol
Overview of WebTP
transport architecture
USER
APP
PROTOCOL
(TRANSPORT)
NETWORK
Assumptions
For Today’s discussions, we assume:
Network provides best-effort service only
Optimize at end-hosts, not within the network
Design a new transport, but leave the network
layer (IP) intact
Transport Requirements
Scenario #1:
browsing a static web
page composed of
text, graphics, and
pictures.
What are the
requirements of the
transport layer
imposed by this
application?
Transport Requirements
Application specify
the download order
of different objects
Allow progressive
delivery of objects
(e.g. progressive
JPEGs)
Send data in small
chunks (a paragraph
or 1 scan of an img)
3
1
2
Transport Requirements
Scenario #2:
User browses through
supplementary
information while
watching a video
stream
Transport Requirements
Allow user/application
to decide how to
allocate the available
bandwidth to
different connections
Notify application of
the currently available
bandwidth
28.8 Kbps
leftover
Transport Requirements
Summary
Data should be transferred in small
chunks that can be processed & displayed
independently (Application Data Units)
App specifies transfer order of ADUs
within a connection and bandwidth
allocation among different connections
Transport informs each app of how much
bandwidth it gets; each app decides how
to best use it
Transport Requirements
from RUTS BOF ‘98
Quoted from Requirements of Unicast Transport
Sessions (RUTS) BOF from Orlando IETF, Dec
1998:
Quick connection establishments
Application Level Framing
Congestion control
App control over reliability
TCP Slow-start/slow restart hit for interactive traffic
Preliminary Design
App 1
Connections
Pipe
(to IP A)
App 2
Connections
Pipe
(to IP B)
Preliminary Design
ADUs: each object is composed of ADUs
Connections: light-weight objects
corresponding to an application-level
conversation. Should be able to open one
connection per object transfer.
Pipes: one pipe per destination; multiple
connections to the same destination (IP) are
muxed onto a single pipe.
Why Separate Connections
and Pipes?
Connections
low overhead: app
can open as many
connections as it
wants
allow fine-grained
reliability control on a
per ADU basis
allow app-controlled
bandwidth allocation
Pipes
Integrated Congestion
Management
Architecture proposed
by Hari Balakrishnan
et al.
allow connections to
cooperate to find out
the available
bandwidth
WebTP Architecture
•ADU fragmentation &
reassembly
•Reliability Control
•Flow Control
Connection
Management
•Min buffering in WebTP
•Mux/Demux packets
•Bandwidth allocation
Bandwidth
Management
•Loss detection/Ack
•Congestion control
•Network monitoring
Congestion
Management
WebTP Protocol Example
1. Server listens on a well-known port
2. Client opens a new connection
3. Client side transport opens a new
pipe because none exists yet
4. Client side initiates 3-way handshake
5. Handshake finishes, client sends ADU
6. Client opens another connection to
the same server
7. The existing pipe is reused
WebTP Packet Header
0
1
2
3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Packet number
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Acknowledgment number
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Acknowledged Amount
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
ADU number
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Segment Number
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
WebTP Transport Header
|
Source Port
|U|A|R|S|F|R|E|F|
|
|R|C|S|Y|I|E|N|A|
|
|G|K|T|N|N|L|D|S|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Destination Port
| C |
|
|
| L |
RES |
|
| A |
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data |
|
|
| Offset| RES |
Window
|
|
|
|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Checksum
|
Options
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Options
|
Padding
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
data
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
WebTP Project Work Items
User utility characterization
WebTP architecture and protocol
(motivation & design)
Active research areas
ACK Scheme
•Some ADUs are
reliable; some are not
•Lost packets of reliable
ADUs should be
retransmitted
automatically
•But all pkts are
muxed onto the same
pipe
•Problem: Cumulative
ACKs doesn’t work!
Ack Scheme
1
2
3
4
5
6
TCP style cum-ack doesn’t work for reliable/unreliable
mix!!
Assume 1,2 belongs to reliable ADU X; 3,4 belongs to
unreliable ADU Y; 5,6 belongs to reliable ADU Z
Packet 3 & 4 are lost
Receiver doesn’t know if 3,4 are unreliable, so it can
only ack 2 upon receiving 5 and 6 using Cum-Ack
Ack Scheme
Solution #1: Use separate sequence number spaces for reliable and
unreliable packets.
Use cumulative acks for reliable packets
Use selective acks to ack the last consecutive run of unreliable
pkts received
1
2
3
4
5
6
E.g. ack sequence (1,1) , (1,2), (5,5), (5,6)
Disadv: 2 logically separate ack stream => can’t easily infer loss
from another ack stream
Solution #2: Use a bit vector to selective ack both reliable and
unreliable packets
Disadv: high speed long haul links => long vector (large window)
Fast WebTP
SYN
SYN-ACK
RTT Pipe setup
delay
ACK
Data
For interactive traffic, pipe setup delay can be
annoying. Can we get rid of the 3-way
handshake for setting up a pipe?
Yes, BUT we might get duplicate data from
previous incarnation of a pipe.
Fast WebTP
If application can detect duplicate ADUs, or if
duplicate ADUs doesn’t do any harm, 3-way
handshake is redundant!
E.g. Duplicate HTTP requests for static objects
doesn’t adversely affect the client or the server.
Problem: how to seamlessly integrate the
regular WebTP(w/ handshake) and Fast
WebTP(w/o handshake) protocol?
Fast WebTP Example
Client
1. Client sends
FAST ADU
Server
(accepts Fast
WebTP)
SYN+data
SYN-ACK
3. Sends ACK
ACK
Data-ACK
6. Sends more new
data
Data
2(a). Data delivered to app;
continues handshake
2(b). App chooses to
accept data
4. Handshake finishes
5. Acks data
Fast WebTP Example
Client
1. Client sends
FAST ADU
Server
(rejects Fast
WebTP)
SYN+data
SYN-ACK
3. Sends ACK
ACK
2(a). Data delivered to app;
continues handshake
2(b). App chooses to
REJECT data
4. Handshake finishes
5. Don’t ACK data
(or explicitly reject)
6. Ack timeout;
Resend 1st ADU
Data
Traffic Classification
Web-related traffic can be roughly classified as
one of the following categories:
Interactive: bursty traffic, delay sensitive
Bulk: high volume traffic, delay insensitive, reliable
Realtime streams: multimedia streams, extremely
sensitive to delay and jitter, tolerate loss
Buffered streams: multimedia streams playback,
less delay sensitive, tolerate loss
Bandwidth Allocation
Long-term bandwidth allocation is
dependent on user’s specification of rates.
APIs are available for querying available
rate, current rate, and for setting
preferred rate.
Short-term bandwidth assignment is
dependent on traffic classes.
Bandwidth Allocation and
Window Size
Connections
Pipe
TCP-style congestion control gives us a time
varying congestion window size per pipe
How do we allocate this window among
different connections of different classes?
Flexible Software Arch.
How to build a
flexible software
framework so we
can easily
experiment with
different kinds of
control algorithms in
our transport
protocol?
Connection
Management
Bandwidth
Management
Congestion
Management
Conclusion
Most important idea: allow user
preferences to determine how to best use
the available bandwidth
Look at the web browsing process as a
whole, design a transport protocol that
caters to the needs of the user/application
Leads to the design of connections muxed
on top of pipes
Conclusion
Although muxing isn’t entirely novel, the
explicit separation of congestion and
reliability control is.
Decision to allow flexible reliability control
on a per ADU basis and the addition of
Fast WebTP introduce many new
challenging research problems
The need to experiment w/ different algs
requires a flexible software framework