TCP Trunking

Download Report

Transcript TCP Trunking

CHAMELEON - A System for
Adaptive QoS Provisioning
Rajesh Krishna Balan
• Internet has proliferated rapidly
Date
12/69
12/79
01/89
07/95
07/95
07/96
07/97
07/98
07/99
07/00
Hosts
4
188
80,000
6,642,000
8,200,000
16,729,000
26,053,000
36,739,000
56,218,000
80,000,000
(projection)
• Strong Interest in carrying Voice traffic over the
Internet - 250 billion conversation minutes by 2005
• Internet is designed for non-real time data
communications - Assuring QoS is a problem.
Why there is no such problem in POTS?
Tele-X
Tele-X
Trunk lines
• Statistical guarantees are provided
VoIP
Gateway
VoIP
Gateway
Internet
Voice
Flow
Technical challenges
• Lack of guarantees in terms of BW, packet loss,
delay and jitter - Quality of Voice over Internet
suffers. IP is only best effort!!
• QoS guarantees are primarily provided by two
mechanisms:
• RSVP (Resource Reservation Protocol)
• Priority Queue Mechanism
• DiffServ framework initiative under IETF and
QBone initiative under Internet2 or Next
Generation Internet hold promise.
Objectives
To search for and acquire various hardware and / or software tools
which can generate application specific traffic which follow TCP
dynamics.
To verify and evaluate the properties and capabilities of TCP
tunnels.
To develop a complete system which uses TCP tunnels to provide
QoS for various classes of traffic. This system should also be
adaptive and thus be able to adjust itself to the traffic conditions
on the network.
To develop a mechanism by which the system can be used as an
efficient yet reliable link layer protocol for transmitting TCP data
over lossy links.
TCP-Trunking Testbed Setup
(Centre For Internet Research)
Internet
Earth-1
10.10.1.1
Compaq Intel
Earth-2
10.10.2.1
Compaq Intel
Mercury
Earth
10.10.0.2
Linux
Intel EtherExpress Pro 100B (Org)
Trunking Gateway
Linux
Jupiter-1
10.10.2.2
Compaq Intel
Jupiter-2
10.10.3.1
Compaq Intel
Pluto-2
10.10.1.254
Intel OEM
Jupiter
Delay / Drop Box
Linux
ananda-r9
137.132.89.91
Compaq Intel
Saturn-1
10.10.3.2
Compaq Intel
Pluto-1
10.10.0.254
Intel OEM
Neptune
Pluto
Traffic Aggregator
Linux
Saturn
Saturn-2 Trunking Gateway
Linux
10.10.4.1
Compaq Intel
Krypton-1
10.10.4.254
Intel OEM
Venus
10.10.0.3
Linux
Intel EtherExpress Pro 100B (Org)
Uranus-2
10.10.5.4
Compaq Intel
10.10.5.2
Linux
Intel OEM
Uranus-1
10.10.5.3
Compaq Intel
Uranus
10.10.5.3
Linux
Compaq Intel
Mars
10.10.0.4
Linux
Intel OEM
Krypton-2
10.10.5.254
Intel OEM
Krypton
Traffic Aggregator
Linux
Rajesh & Boon Peng
3rd September 1999
Revised on 19th July 2000
Traffic Generators
Need for Realistic Traffic Generators
Mathematical Models (Poisson, Erlang,
Exponential etc.)
Trace-based Models (collect usage statistics
/ data and replay etc.)
Ad-Hoc Models (models with no realistic
component. E.g. models which just generate
packets and send them out as fast as
possible etc.)
Hardware Traffic Generators
Very expensive ( > $70,000 for a full
system)
Used for stress testing production networks
Generally unable to generate application
level traffic (telnet, HTTP etc.) which
follow TCP dynamics (re-transmissions,
window size negotiations etc.)
Software Traffic Generators
Ttcp
Iperf
Surge
IPB
AB
Tcplib
TG
Netperf
Netspec
Rtpplay
Telnet
NO
NO
NO
NO
NO
YES
YES
NO
YES
NO
ftp (1)
YES
YES
NO
NO
NO
NO
NO
YES
YES
NO
ftp (2) (realistic)
NO
NO
NO
NO
NO
YES
YES
NO
NO
NO
HTTP
NO
NO
YES
YES
YES
NO
NO
NO
YES
NO
UDP voice (3)
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
YES
YES
YES
YES
YES
YES
Only a
NO
YES
NO (9)
YES
library
(8)
(TCP bulk)
(UDP bulk)
UDP video (4)
(UDP bulk)
RTP voice (5)
(realistic)
RTP video (6)
(realistic)
Works
properly?
(7)
Principle of TCP Tunnels
• TCP tunnels are virtual circuits through which all
traffic belonging to a class of application are aggregated.
• A single aggregated flow in a tunnel can be managed better
than individual flows across a congested link.
traffic management
TCP tunnel
encapsulation
mechanisms
incoming
packet
admission control
Subsystem 1
TCP tunnel
TCP trunk
TCP tunnel
TCP trunk
incoming
encapsulated
packet
original data
packets sent to
mechanisms
Subsystem 3 destination via
normal routing
decapsulation
Subsystem 2
outgoing
encapsulated
packet
Principle of TCP Tunnels (cont)
• Provides statistical guarantees to classes of traffic (eg., voice
traffic should get at least 5% of the BW; Video traffic should
get at least 10% of the BW, but no more than 20%).
• Guarantees can be assured because of the traffic
distribution pattern (eg., all flows do not peak at the same time)
traffic management
•
•
•
•
TCP trunk
encapsulation
outgoing
encapsulated
packet
Aggregation of traffic
Reliable link level protocol
Protection of flows
TCP trunk
Congestion handling
is moved from core to
edge of the network
mechanisms
incoming
packet
admission control
Subsystem 1
TCP trunk
incoming
encapsulated
packet
original data
packets sent to
mechanisms
Subsystem 3 destination via
decapsulation
Subsystem 2
Back Pressure Effect of TCP
Tunnels
Instantaneous Queue Occupancy (packets)
1200
Limit=1000
1000
800
600
Tunnel Router
400
200
Max=96
Core Router
313
299
285
270
256
242
228
213
199
185
171
157
142
128
114
99.6
85.4
71.3
57.2
43
28.7
14.6
0
0
Time (sec)
Instantaneous Queue occupancies for core and tunnel routers
using TCP tunnels
The Chameleon
A complete solution that can help in the design of
Voice over IP Gateways with QoS guarantees.
Traffic -Modeling of VoIP.
Research and development at the network protocol
layer (TCP/IP etc.).
Started in co-operation with Harvard University.
Chameleon
Tele-X
Tele-X
Designed to support multiple classes of traffic over
the Internet with explicit minimum statistical
guarantees.
Chameleon
INTERNET
Border
Router
End Machines
Encapsulated
aggregated data in
the TCP tunnels
Border
Router
End Machines
Aggregation of Incoming Data into TCP Tunnels
by Chameleon
Chameleon Implementation
 QoS routines are compiled into the Linux kernel to
enable the various QoS providing buffer and
scheduling mechanisms (like RED, CBQ etc.) in the
Linux kernel.
 User level program, TC used to activate the various
buffer and scheduling mechanisms. This requires
different parameters to be passed into the program
TC.
Chameleon Implementation (2)
User space
Kernel space
Remove packets from list and
place into TCP tunnels after
adding length of packet in
front of packet
Place packet
into
linked list
libpcap
incoming
packet
outgoing
encapsulated
packet
Firewall
TCP tunnels
1) Read length of
pack
2) Read packet
1) Read IP destination of packet
2) Write packet into raw
socket.
User space
Kernel space
incoming
encapsulated
packet
Packet sent to TCP tunnel
receiver as that is the
destination address for TCP
tunnel packets
original data
packets sent to
destination via
normal routing
Data Flow Diagram of TCP Tunnel Software
Deployment
INTERNET
LANs
Border Router
Running Chameleon
Border Router
Running Chameleon
INTERNET
LANs
Commodity
Border
Linux Machine Router
running
Chameleon
LANs
LANs
Border Router Commodity
Linux Machine
running
Chameleon
Experimental Setup
Virtual TCP tunnels between the 2 border routers
Border Router
Delay/Error Box
Border Router
End Machines
End Machines
Logical setup of Experimental
Testbed
Results - TCP Bulk Traffic
Throughput (KBytes/s) s
Shows effectiveness in protecting TCP bulk traffic
80
1
70
2
60
2
Without Chameleon
With Chameleon
50
40
30
20
1
10
One 2Mbps UDP CBR stream
One 2Mbps UDP exponential on/off stream
Ten TTCP bulk transfer
Time (s)
225
211
197
183
169
155
141
127
113
99
85
71
57
43
29
15
1
0
Results - Web Traffic
Traffic Mix
• 100 web sources
• 2 video streams
• Jitter is less
• Substantial improvement in
End-to-end response time
% Improvement
% Improvement in RTT values with Chameleon
1000
900
800
700
600
500
400
300
200
100
0
923.82%
% Improvement with
Chameleon
434.27%
123.31%
31.86%
Average RTT
Maximum
RTT
Minimum
RTT
RTT Std
Results - UDP Packet Loss
Traffic Mix
• 10 TCP bulk sources
• 2 video stream
100.00%
90.00%
80.00%
70.00%
60.00%
50.00%
40.00%
30.00%
20.00%
10.00%
0.00%
• Packet loss is less
Data Bytes Received for UDP Traffic
Data Bytes Received
96.70%
79.65%
With Chameleon
Without Chameleon
Results - Adaptive Nature
Traffic Mix
• 10 TCP bulk sources
• 2 UDP streams
Throughput (KBytes/s)
1400
4
1200
1
2
3
4
1000
800
UDP CBR
UDP on/off
TCP Bulk
Total
1
600
3
400
2
200
1
91
181
271
361
451
541
Time (s)
631
721
811
901
991
Reliable Data Link Layer
Lossy / Wireless links are becoming increasingly
common in todays networks
However, TCP performs poorly in cases where
packets are lost due to corruption
Chameleon can be used to “isolate” the lossy
links from the rest of the network
Versions of TCP optimised for lossy
environments, like TCP HACK, can be used by
the Chameleon
Reliable Data Link Layer (2)
Virtual TCP tunnels between the 2 border routers
Border Router
Delay/Error Box
Border Router
Lossy Link being
simulated by
Delay/Error Box
End Machines
End Machines
Logical Setup of Experimental Testbed for lossy
link experiments
Reliable Data Link Layer - Results
80000
1
2
3
4
Throughput (KBytes/s)
70000
60000
sack
hack+sack
hack
new reno
50000
40000
30000
2
20000
10000
4
3
1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Percentage Packet Loss (%)
Throughput of Chameleon versus percentage packet loss
for short latency (10 ms) link with random single packet
errors
16
Reliable Data Link Layer - Results
(2)
30000
Throughput (KBytes/s)
25000
1
2
3
4
20000
3
15000
sack
hack+sack
hack
new reno
1
10000
4
2
5000
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Percentage Packet Loss (%)
Throughput of Chameleon versus percentage packet loss for
long latency (300 ms) link with random single packet errors
16
Reliable Data Link Layer - Results
Burst Errors
11693.4
11016.2
10000
8000
8531
8560.8
7696.4
5958.2
6000
4000
2000
0
hack+sack
hack
sack
1402.2
745.4
211.2
10
5
2
Length of Burst Error (packets)
5% burst error
Throughput (KB/s )
Throughput (KB/s)
12000
25000
20000
15000
20083.8
19948.6
16436
19759.5
15595.8
12988
10000
5000
0
hack+sack
hack
sack
4642.8
3540.6
540.2
2
5
10
Length of Burst Error (packets)
2% burst error
Reliable Data Link Layer - Results
Burst Errors (2)
Throughput (KB/s )
10000
8000
hack
5992.2
6000
4000
sack
7193.8
4440.2
2949.4
2772.4
2931.6
1402.2
2000
0
142
36
Throughput (KB/s )
hack+sack
5000
10% burst error
hack
4854.4
sack
4000
3000
3151.8
2011.2
2000
1000
0
2
5
10
Length of Burst Error (packets)
hack+sack
6000
1071
1653.2
2109.4
788.6
35
0
2
5
10
Length of Burst Error (packets)
15% burst error
Future Work
Port Chameleon fully into kernel space
Test Chameleon in different network conditions
Optimise Chameleon for UDP traffic
Optimise Chameleon as a VoIP gateway
More work needs to be done on the use of the
Chameleon as a reliable data link layer
Fully automate the Chameleon
Summary
Chameleon enables the provisioning of QoS for various
classes of traffic in an easy yet effective manner
No modifications to existing protocols and applications
and is totally transparent to the end users
The Chameleon is also adaptive and reacts seamlessly
to changes in network bandwidth. It will strive to
satisfy all statistical QoS contracts

Applicable not only to voice, but other multimedia traffic
as well.
Expertise in traffic generation and analysis:

Poisson - telnet; Heavy-tail (Pareto) - web traffic; exponential
on-off - voice
Acknowledgements
A/P A. L. Ananda
Mr. Lee Boon Peng
TCP Trunk Project Group






Dr. Lillykutty Jacob
Dr Winston Seah Khoon Guan
Renjish Kumar
Liu Yong Xiang
Chan Lee Lee
Yeo Ann Kian
Questions?