High-Speed Data Transfer and Video Streaming Engine
with CRN High-Performance Plug-and-Play TCP
Most of the web applications these days use the TCP for communication, including HTTP, SMTP, FTP, etc. Theoretically, conventional TCP's throughput can be estimated by the TCP Throughput Calculator or Network Throughput Calculator. Thus the pure TCP tuning has its theoretical throughput limit. To really optimize network and unlock its performance, we need to do more fundamental work.
Following the previous research work of "One more bit is enough" by Xia, Subramanian, Stoica, and Kalyanaraman published by ACM SIGCOMM'05, we have developed CRN VCP, which achieves efficient and fair bandwidth utilization while minimizing packet loss in high bandwidth-delay product networks. CRN VCP is highly efficient in data transfer and video streaming over the Internet and wireless networks.
1. Difference between CRN VCP and conventional TCP optimizations
Practically speaking, TCP's throughput is often measured by benchmarking tools such as iperf. In order to evaluate TCP's throughput under various network scenarios, people also use a default program on Linux called tc to add packet loss and latency to network interfaces to emulate various network conditions. We provide simple instructions below on how to use iperf and tc to evaluate TCP's throughput and performance.
For the evaluation purpose, we need two computers (physical or virtual machines), one will be used as the iperf server, while the other as the iperf client. Suppose the iperf server ip address is 192.168.3.101.
3. iperf Installation
On Ubuntu/Debian, run the command
On CentOS/RHEL, run the command
4. Run TCP Benchmarking Test
4.1 Run the two commands below on the iperf server:
The first command line uses the default Linux tc program to emulate an outbound network connection with 100ms delay and 1% packet loss on the server side. Please change eth0 if the server is using a different network interface to communicate with the client. The second command line simply starts the iperf server.
4.2 Run the two commands below on the iperf client:
Again, the first command line uses the default Linux tc program to emulate an outbound network connection with 100ms delay and 1% packet loss on the client side. Please change eth0 if the client is using a different network interface to communicate with the server. Also please change 192.168.3.101 according to your iperf server's IP address. The second command simply starts an iperf TCP testing by requesting data from the iperf server.
Note: TCP's throughput is sensitive to packet losses on the outbound direction. So make sure of using the tc command on the data source/sending side if you would like to emulate various network conditions.
If you would just like to see how TCP behave and measure its throughput under certain network conditions, the above steps are sufficient. You can simply stop here. The steps below demonstrate how Cascade Transport, aka. the CRN VCP, resolves the problem of the conventional TCP you just observed.
5. Compare TCP with CRN VCP
5.1 Install CRN VCP on the iperf server
First, get your evaluation copy of CRN VCP (link) with the file name being crn-trial-centos-8-v405-d150.tar for example, then install the CRN VCP by running the command below. The installation usually takes about a few seconds.
5.2 Rerun the iperf test
You should be able to see a much higher throughput (CRN VCP is 80x better than TCP) reported on the screen as below.