The Internet bandwidth has exponentially increased over the past few decades. As the Internet bandwidth grows, new data-intensive applications such as climate simulation, earth observing, and high energy physics are emerging. Terabyte and petabyte data need to be transferred over the Internet. Many of these applications use the Transmission Control Protocol (TCP) for the reliable data transfer. Since the standard TCP, TCP Reno, was developed in 1988 [1], it has been widely adopted and performed remarkably well. However the standard TCP eventually underutilize high bandwidth networks [2]. To solve the low utilization problem of the standard TCP, many new TCP protocols such as HSTCP [2], STCP [15], FAST [15], BIC [17], and CUBIC [18] emerged. Even those studies improve the low utilization problem of the standard TCP, they are concerned in only a single TCP flow.
In this paper, we research into the use of parallel TCP flows (we call it the parallel TCP) on high bandwidth and delay networks. The parallel TCP has been an easy way to achieve higher throughput. Researchers have already developed tools such as GridFTP [6] , bbcp [7], and pSocket [8] which open multiple TCP flows in parallel. Every parallel TCP flow increases its own congestion window size concurrently per RTT, and only some of them, which experience a packet loss, decrease their own congestion window size by half. Therefore the aggregate throughput of the parallel TCP increases quickly and it is less sensitive to a packet loss (or congestion) than a single TCP flow (we call it the single TCP). It is why the parallel TCP can achieve the higher aggregate throughput as compared to the single TCP.
The parallel TCP can be on not only a single machine but multiple machines. Over high bandwidth and delay networks, a bottleneck can be at an end system due to performance limitation at disk, bus, and/or network interface card in a single machine [3]. Hence, the parallel TCP across multiple machines is necessary to overcome a single machine’s performance limitation.
Although the parallel TCP is efficient to improve throughput and is necessary on multiple machines, it has been a problematic issue. In most of the previous works [6] [7] [8], the parallel size (the number of parallel TCP flows) is decided at the starting time. Once the parallel size is decided, it determines the aggregate throughput of the parallel TCP. Because of the dependency, it is a challenging issue how to decide the optimal parallel size. If the parallel size is insufficient for high bandwidth networks, the parallel TCP can not fully utilize available bandwidth even in the absence of competition or congestion. If we select a too large parallel size, the parallel TCP may maximize its throughput but the unreasonable large parallel size can cause significant unfairness with other single TCPs as networks become congested. Even we knew the optimal parallel size at the starting time, it is not optimal any more as the network condition is continuously changing. Thus, the task of determining the parallel size at the starting time is problematic issue.
We design the Adaptive Parallel TCP (AP-TCP) which is an adaptive and distributed scheme. The AP-TCP can adjust the aggregate throughput of the parallel TCP irrespective of the parallel size. The desired level can adapt to network condition changes. Since each parallel TCP flow is already busy operating on high bandwidth and delay networks, we need to minimize additional coordination or control overhead in a distributed fashion. The AP-TCP consists of two models; one is the Adjustable Model and the other is the Adaptive Model. In the first model, we try to decouple the aggregate throughput from the parallel size. We find an equation which shows that the aggregate throughput can be any desired level regardless of the parallel size [9] [10]. In the equation, we only modify the increment factor of each parallel TCP flow. There is no central coordination or control overhead among parallel TCP flows. In the second model, we continually find an appropriate desired level based on the information of queuing delay. The adaptive desired level enables the AP-TCP to respond to network condition changes.
In the NS-2 simulation, we evaluate the AP-TCP on several functionality of TCP. The AP-TCP could adjust the aggregate throughput to any desired level irrespective of the parallel size. As finding the desired level adaptively based on the information of queuing delay, the AP-TCP probed available bandwidth efficiently and responded to network condition changes. When AP-TCPs were competing on the same RTTs, they had fair bandwidth even their parallel sizes are different. On the different RTTs, the AP-TCPs could tune the level of the RTT unfairness. The AP-TCP was fair with the single TCP on short RTTs where the single TCP works well, while the AP-TCP emphasized the eifficience rather than the fairness on long RTTs where the single TCP has the low-utilization problem. Finally, we implemented a prototype of the AP-TCP on a Linux Kernel 2.6.18. Using the dummynet test bed, we checked that the prototype is operating well.
1969년 군사 및 학술 목적으로 시작된 미국 알파넷 (ARPANET) 은 인터넷의 시초이며, 1980년대 TCP/IP 프로토콜이 추가됨에 따라 현재 인터넷의 근간을 형성했다. 1990년대에 등장한 WWW(World Wide Web)의 확산으로 교육, 상업, 문화 다방면에 걸쳐 인터넷은 더욱 빠르게 성장 하였다. 인터넷의 보급과 더불어 인터넷 대역폭 역시 급격히 증가하였고, 초기의 Bps Kbps 에서 현재에는 Gbps Tbps 에 달하고 있다. 이런 대역폭의 증가는 새로운 인터넷 응용프로그램의 등장을 불러왔다. 고 대역폭을 요구하는 고품질 스트리밍 (예: 비압축 HDTV) 또는 Tera Byte 에서 Peta Byte 에 이르는 대용량의 데이터를 빠르게 전송 받아 사용하기 까지 (예: 고에너지 물리학, 기상관측 등) 이전에는 생각하지 못했던 범주로 확장되고 있다. 이러한 빠른 변화는 인터넷 초기에 예상하지 못한 문제들이 발생하게 되었고 고 대역폭의 네트워크를 효율적으로 사용하기 위한 연구가 필요하게 되었다.
신뢰성 있는 데이터 전송을 위해 제안된 TCP (Transmission Control Protocol) 는 뛰어난 공평성을 보이며 많은 인터넷 응용프로그램에서 사용되어 왔지만, 인터넷 대역폭이 증가함에 따라 표준 TCP 를 이용하여 고 대역폭 네트워크에서 (특히 고 대역폭 장 거리 네트워크) 최대 전송 속도를 내지 못하는 문제가 대두되었다. 하나의 TCP 플로우가 아닌 여러 개의 TCP 플로우를 병렬로 전송하는 기법이 전송 속도를 높이는데 도움이 되었지만, 한 번 결정된 병렬 TCP 플로우 개수는 그 전송 속도 총합을 결정함으로써 네트워크 상황의 변화에 적절하게 반응하지 못하여 공평성 및 확장성 문제가 제기되었다.
최근 하나의 TCP 플로우의 전송 속도를 확장성 있게 증가시키는 연구들이 있었고 (예: HSTCP, STCP, FAST TCP, BIC TCP, CUBIC TCP 등) 표준 TCP 가 보이는 낮은 대역폭 이용률을 개선하는데 큰 도움이 되었다. 그러나 기존의 표준 TCP 와의 공평성 문제는 이슈로 남아있으며, 더불어 병렬 TCP 플로우를 사용하려는 응용프로그램들의 요구를 만족시켜주지 못한다. 특히 종단 시스템에서 (예: PC 서버) 성능 제한이 일어나는 경우 (디스크 읽고 쓰는 속도 한계, CPU 또는 RAM 의 처리 속도 한계, BUS 전송 속도 한계, 네트워크 인터페이스 카드 전송 속도 한계 등) 여러 장비를 사용하여 병렬 전송을 해야 하며 이때 병렬 TCP 플로우 사용은 필수 불가결이다.
본 논문에서는 병렬 TCP 플로우를 이용한 전송 속도 총합을 네트워크 환경에 맞게 조절하는 분산 기법인 Adaptive Parallel TCP (AP-TCP) 를 제안한다. 관련 연구로 중앙 통제 기법을 사용하는, A-TCP-P 가 있으나 이런 중앙 통제 기법은 고 대역폭에서 바쁘게 동작하는 병렬 TCP 플로우들에 오버헤드를 가중시키며 패킷 로스가 발생할때마다 모든 병렬 TCP 플로우의 전송 속도를 일괄적으로 줄이는 비효율적인 방법이 요구된다. 반면 본 논문에서 제안된 분산 기법은 각 병렬 TCP 플로우가 전체 병렬 TCP 플로우 개수 정보와 스스로 측정하는 큐잉 딜레이 정보를 이용하여 본 연구에서 제안한 모델에 따라 자신의 전송 속도를 조절한다. 이렇게 각 병렬 TCP 플로우가 자신의 전송 속도만을 조절하지만 전체 병렬 TCP 플로가 가지는 전송 속도 총합이 네트워크 상황에 맞게 조절되는 것이 본 연구의 특징이다. 패킷 로스 발생시엔 해당 패킷 로스를 경험하는 병렬 TCP 플로우 만이 전송속도를 줄임으로써 네트워크 대역폭을 더욱 효과적으로 사용할 수 있다.
NS-2 시뮬레이션을 통해 다음과 같은 항목에 대해 AP-TCP 성능 평가를 하였다. AP-TCP 는 더 이상 병렬 TCP 플로우 개수에 전송 속도가 한정되는 제약을 가지지 않는다. 즉 병렬 TCP 플로우 개수에 상관없이 사용 가능한 대역폭을 효율적으로 찾아내었다. 서로 다른 병렬 TCP 플로우 개수를 가졌더라도 AP-TCP 사이에서 공평하게 대역폭을 공유하였다. 서로 다른 RTT 를 가진 AP-TCP 사이에 발생하는 RTT 불공평성 문제는 표준 TCP 에서도 일정한 수준으로 나타나는 현상이다. 새롭게 제안되는 TCP 프로토콜마다 RTT 불공평성 정도가 달라 이슈가 되어 왔다. 반면 AP-TCP 에선 이런 RTT 불공평성 수준을 조절할 수 있어 사용자 혹은 응용프로그램의 요구사항에 맞게 설정할 수 있다. 더불어 기존의 표준 TCP 와의 호환성 실험결과에서, 표준 TCP 가 잘 동작하는 짧은 RTT 환경에선 AP-TCP 가 표준 TCP 와 공평함을 보였다. 반대로 표준 TCP 가 낮은 대역폭 사용율을 보이는 긴 RTT 환경에선 표준 TCP 와의 공평성보다 효율적으로 대역폭을 사용할 수 있는 확장성이 강조되었다.
본 연구는 병렬 TCP 플로우를 사용이 실제 응용프로그램에서 요구되고 있으며, 중앙 집중 제어가 필요 없는 분산 기법으로 전송 속도 총합을 네트워크 상황에 맞게 조절할 수 있음을 이론적 증명과 NS-2 시뮬레이션으로 검증하였다. AP-TCP 는 자신의 병렬 TCP 개수에 상관없이 전송 속도 총합을 네트워크 상황에 맞게 조절함으로써, 사용자는 더 이상 시작시에 최적의 병렬 TCP 플로우 개수를 선택하기 위해 고민하지 않아도 된다. 분산 기법을 사용함으로써 중앙 통제 제어와 같은 오버헤드가 없고, 단일 서버에서뿐만 아니라 다수 서버를 이용하는 경우에도 쉽게 적용할 수 있다. 마지막으로 본 연구 결과를 리눅스 커널에 구현하고 더미넷(dummynet) 을 이용한 테스트베드에서 성공적으로 시범을 보였다. 현재 프로토타입 수준의 소스코드를 안정화하고 추가적인 검증을 통해 향후 병렬 TCP 플로우를 사용하는 응용프로그램에서 활용될 수 있을 것이라 기대한다.