120 likes | 216 Views
Circuit TCP (CTCP). Helali Bhuiyan helali@virginia.edu. CTCP: concept and value. Once a dedicated circuit is setup between two end hosts, TCP seems to be a fine transport solution for large files window-based flow control handles variations in receive rate
E N D
Circuit TCP (CTCP) Helali Bhuiyan helali@virginia.edu
CTCP: concept and value • Once a dedicated circuit is setup between two end hosts, TCP seems to be a fine transport solution for large files • window-based flow control handles variations in receive rate • no packet loss → no reduction in sending rate • circuit switches on path with reserved bandwidth • window size reports in ACKs prevent receive buffer losses • assume send and receive buffer size = BDP • But for small files • initial Slow Start in TCP on send side and Linux autotuning enhancement to slowly increase receive buffer hurts throughput • hence CTCP
CTCP Software Implementation Sender Receiver Setup a circuit web100 lib web100 lib Socket API /proc Socket API /proc Linux v2.6.11 Linux v2.6.11 web100 Instr. TCP TCP web100 Instr. CTCP patch CTCP patch CTCP-web100 -patch CTCP-web100 -patch Internet IP IP DLL DLL NIC II NIC I NIC I NIC II cheetah
CTCP Software Implementation Sender Receiver Run user application C-iperf C-iperf CTCP API CTCP API web100 lib web100 lib Socket API /proc Socket API /proc Linux v2.6.11 Linux v2.6.11 web100 Instr. TCP TCP web100 Instr. CTCP patch CTCP patch CTCP-web100 -patch CTCP-web100 -patch Internet IP IP DLL DLL NIC II NIC I NIC I NIC II cheetah
CTCP Software Implementation Sender Receiver C-iperf User application creates a TCP socket C-iperf CTCP API CTCP API web100 lib web100 lib Socket API /proc Socket API /proc Linux v2.6.11 Linux v2.6.11 web100 Instr. TCP TCP web100 Instr. CTCP patch CTCP patch CTCP-web100 -patch CTCP-web100 -patch Internet IP IP DLL DLL NIC II NIC I NIC I NIC II cheetah
CTCP Software Implementation Sender Receiver C-iperf • Activate CTCP • disable congestion • control • - set buffer sizes to • BDP value • - disable autotuning C-iperf CTCP API CTCP API web100 lib web100 lib Socket API /proc Socket API /proc Linux v2.6.11 Linux v2.6.11 web100 Instr. TCP TCP web100 Instr. CTCP patch CTCP patch CTCP-web100 -patch CTCP-web100 -patch Internet IP IP DLL DLL NIC II NIC I NIC I NIC II cheetah
Atlanta PoP Raleigh PoP GbE 10GbE OC192 1-8-33 1G Zelda1 H 1-8-34 1-7-33 1-6-1 1-7-1 1-8-35 1-7-34 1G 1-8-36 1-7-35 1-6-1 H Zelda2 1-8-37 1-7-36 1G 1G 1-6-17 1-7-17 1-7-1 1-8-38 1-7-37 H Wuneng 1-7-38 1-8-39 H Zelda3 1-6-17 1-7-39 Cheetah-nc Cheetah-atl Demonstration • Setup a circuit between zelda3 to mvstu6 • C-iperf and iperf server are running on zelda3 • Run C-iperf and iperf client on mvstu6 • Comparison between C-iperf with iperf • 5MB transfer • 10MB transfer NCSU Orbitty Cluster Centuar FastIron FESX448 H H 1G UVa UVa Catalyst 4948 1G mvstu6 H
Measurements • Throughput gains of CTCP over TCP for small transfer sizes • For transfers in bursts, cwnd resets during idle times • Throughput gain decreases as transfer size increases Throughput (Mbps) over 1 Gb/s circuit, RTT = 8.7ms
Local Testbed • Setup a circuit between mvstu3 to mvstu6 • mvstu4 is running as a WAN emulator • C-iperf and iperf server are running on mvstu3 • Run C-iperf and iperf client on mvstu6 • Comparison between C-iperf with iperf • 5MB transfer • 10MB transfer
CTCP Behavior Start-up behavior of TCP and CTCP