August 10, Circuit TCP (CTCP) Helali Bhuiyan
August 10, 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
August 10, Linux v Sender Socket API TCP IP DLL NIC II web100 lib /proc web100 Instr. CTCP-web100 -patch CTCP patch NIC I Linux v Receiver web100 lib Socket API TCP IP DLL NIC INIC II Interne t cheetah /proc web100 Instr. CTCP Software Implementation Setup a circuit CTCP patch CTCP-web100 -patch
August 10, Linux v Sender Socket API TCP IP DLL NIC II web100 lib /proc web100 Instr. CTCP-web100 -patch CTCP patch NIC I Linux v Receiver web100 lib Socket API TCP IP DLL NIC INIC II Interne t cheetah /proc web100 Instr. CTCP Software Implementation C-iperf Run user application CTCP API CTCP patch CTCP-web100 -patch
August 10, Linux v Sender Socket API TCP IP DLL NIC II web100 lib /proc web100 Instr. CTCP-web100 -patch CTCP patch NIC I Linux v Receiver web100 lib Socket API TCP IP DLL NIC INIC II Interne t cheetah /proc web100 Instr. CTCP Software Implementation C-iperf User application creates a TCP socket CTCP API CTCP patch CTCP-web100 -patch
August 10, Linux v Sender Socket API TCP IP DLL NIC II web100 lib /proc web100 Instr. CTCP-web100 -patch CTCP patch NIC I Linux v Receiver web100 lib Socket API TCP IP DLL NIC INIC II Interne t cheetah /proc web100 Instr. CTCP Software Implementation C-iperf CTCP API Activate CTCP -disable congestion control - set buffer sizes to BDP value - disable autotuning CTCP patch CTCP-web100 -patch
August 10, 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 1G Cheetah- nc Wuneng H Raleigh PoP OC GbE G bE H H H Cheetah- atl Atlanta PoP Zelda 1 Zelda 2 Zelda 3 1G Orbitty Cluster 1G NCSU H H Centuar FastIron FESX448 UVa Catalyst G H UVa mvstu6
August 10, 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 Transfer Size (KB) TCP CTCP Throughput (Mbps) over 1 Gb/s circuit, RTT = 8.7ms
August 10, Thank You
August 10, 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
August 10, CTCP Behavior Start-up behavior of TCP and CTCP
August 10, CTCP Performance