Implementation of a TCP/IP Offload Engine Using Lightweight TCP/IP on an Embedded System

임베디드 시스템상에서 Lightweight TCP/IP를 이용한 TCP/IP Offload Engine의 구현

  • 윤인수 (부산대학교 컴퓨터공학과) ;
  • 정상화 (부산대학교 컴퓨터공학과) ;
  • 최봉식 (삼성전자 무선사업부) ;
  • 전용태 (부산대학교 컴퓨터공학과)
  • Published : 2006.07.01

Abstract

The speed of present-day network technology exceeds a gigabit and is developing rapidly. When using TCP/IP in these high-speed networks, a high load is incurred in processing TCP/IP protocol in a host CPU. To solve this problem, research has been carried out into TCP/IP Offload Engine (TOE). The TOE processes TCP/IP on a network adapter instead of using a host CPU; this reduces the processing burden on the host CPU. In this paper, we developed two software-based TOEs. One is the TOE implementation using an embedded Linux. The other is the TOE implementation using Lightweight TCP/IP (lwIP). The TOE using an embedded Linux did not have the bandwidth more than 62Mbps. To overcome the poor performance of the TOE using an embedded Linux, we ported the lwIP to the embedded system and enhanced the lwIP for the high performance. We eliminated the memory copy overhead of the lwIP. We added a delayed ACK and a TCP Segmentation Offload (TSO) features to the lwIP and modified the default parameters of the lwIP for large data transfer. With the aid of these modifications, the TOE using the modified lwIP shows a bandwidth of 194 Mbps.

현재 네트워크 기술이 기가비트급의 속도를 넘어 급속히 발전하고 있다. 그러나 호스트에서 TCP/IP를 처리하는 기존의 방식은 고속 네트워크 환경에서 호스트 CPU에 많은 부하를 야기한다. 이러한 문제를 해결하기 위해 네트워크 어댑터에서 TCP/IP를 처리하는 TCP/IP Offload Engine(TOE)에 대한 연구가 최근 활발히 진행되고 있다. 본 논문에서는 두 가지의 소프트웨어 기반 TOE 를 기가비트 이더넷 환경 하에서 개발하였다. 하나는 임베디드 리눅스를 사용하여 구현한 TOE이고, 다른 하나는 Lightweight TCP/IP(lwIP)를 사용하여 구현한 TOE이다. 임베디드 리눅스를 사용한 TOE는 문맥 전환 (context switch), 프로세스 대기 및 활성화 그리고 운영체제 자체의 부하로 인하여 62Mbps의 낮은 대역폭을 보였다. 본 논문에서는 임베디드 리녹스를 사용한 TOE의 성능을 개선하기 위하여 운영체제 없이 lwIP를 이용하여 TOE를 구현하였다. 그리고 이러한 lwIP를 이용한 TOE 의 성능을 높이기 위하여 lwIP의 메모리 복사를 제거하고, 지연 ACK 기능과 TCP Segmentation Offload(TSO)기능을 추가하였으며, lwIP가 큰 데이타를 전송할 수 있도록 수정하였다. 그 결과, lwIP를 이용한 TOE는 194Mbps의 대역폭을 보였다.

Keywords

References

  1. N. Bierbaum, 'MPI and Embedded TCP/IP Gigabit Ethernet Cluster Computing,' Proc. of the 27th Annual IEEE Conference on Local Computer Networks, pp. 733 - 734, 2002
  2. W. Feng, P. Balaji, C. Baron, L. N. Bhuyan, D. K. Panda, 'Performance Characterization of a 10-Gigabit Ethernet TOE,' Proc. of the 13th IEEE Symposium on High-Performance Interconnects, August 2005 https://doi.org/10.1109/CONECT.2005.30
  3. In-Su Yoon and Sang-Hwa Chung, 'Implementation and Analysis of TCP/IP Offload Engine and RDMA Transfer Mechanisms on an Embedded System,' Lecture Note in Computer Science, Vol. 3740, pp. 818-830, October 2005 https://doi.org/10.1007/11572961_67
  4. SLIC Technology Overview [online]. Available: http://www.alacritech.com/html/tech_review.shtrnl
  5. A Lightweight TCP/IP stack [online]. Available: http://savannah.nongnu.org/projects/lwip
  6. A. Dunkels, 'Full TCP/IP for 8-Bit Architectures,' Proc. of the First International Conference on Mobile Applications, Systems and Services, May 2003 https://doi.org/10.1145/1066116.1066118
  7. PCI-730: Intelligent Gigabit Ethernet Controller [online]. Available: http://www.cyclone.com/products/pci730.php