Implementation of a TCP/IP Offload Engine Using High Performance Lightweight TCP/IP

고성능 경량 TCP/IP를 이용한 소프트웨어 기반 TCP/IP 오프로드 엔진 구현

  • 전용태 (부산대학교 컴퓨터공학과) ;
  • 정상화 (부산대학교 컴퓨터공학과) ;
  • 윤인수 (부산대학교 컴퓨터공학과)
  • Published : 2008.06.15

Abstract

Today, Ethernet technology is rapidly developing to have a bandwidth of 10Gbps beyond 1Gbps. In such high-speed networks, the existing method that host CPU processes TCP/IP in the operating system causes numerous overheads. As a result of the overheads, user applications cannot get the enough computing power from the host CPU. To solve this problem, the TCP/IP Offload Engine(TOE) technology was emerged. TOE is a specialized NIC which processes the TCP/IP instead of the host CPU. In this paper, we implemented a high-performance, lightweight TCP/IP(HL-TCP) for the TOE and applied it to an embedded system. The HL-TCP supports existing fundamental TCP/IP functions; flow control, congestion control, retransmission, delayed ACK, processing out-of-order packets. And it was implemented to utilize Ethernet MAC's hardware features such as TCP segmentation offload(TSO), checksum offload(CSO) and interrupt coalescing. Also we eliminated the copy overhead from the host memory to the NIC memory when sending data and we implemented an efficient DMA mechanism for the TCP retransmission. The TOE using the HL-TCP has the CPU utilization of less than 6% and the bandwidth of 453Mbps.

최근 이더넷 기술은 기가비트급의 대역폭을 넘어서 10 기가비트급으로 빠른 속도로 발전하고 있다. 이러한 고속 네트워크 환경에서는 호스트 CPU가 운영체제내의 TCP/IP를 처리하는 기존의 방식은 호스트 CPU에 많은 부하를 야기하며, 그 결과 실제 수행되어야 할 사용자 응용 프로그램에 충분한 컴퓨팅 파워를 제공하지 못한다. 이러한 문제점의 해결을 위해 네트워크 어댑터에서 TCP/IP를 처리하도록 하는 TCP/IP Offload Engine(TOE)이 연구되고 있다. 본 논문에서는 TOE를 위한 고성능의 경량 TCP/IP를 구현하였으며, 이를 임베디드 시스템에 실제 적용하여 검증 및 실험을 수행하였다. 본 논문에서 구현한 고성능의 경량 TCP/IP는 기존 TCP/IP의 기본적인 기능들인 흐름제어, 혼잡제어, 재전송, 지연 ACK, Out-of-Order 패킷처리 등을 지원한다. 또한 본 논문에서 구현한 고성능의 경량 TCP/IP는 기가비트 이더넷 MAC에서 하드웨어적으로 지원하는 TCP segmentation offload(TSO), Checksum offload(CSO), 인터럽트 coalescing 기능 둥을 이용하도록 구현하였다. 그리고 데이타를 전송할 때, 호스트 사용자 메모리에서 네트워크 어댑터의 메모리로 데이타를 복사하는 부하를 제거하였다. 또한 재전송해야 할 경우를 대비해 전송한 데이타에 대한 복사본을 네트워크 어댑터의 메모리에 저장하는 방법을 개선하여 지연시간 및 대역폭 성능을 향상시켰다. 본 논문에서 구현한 고성능의 경량 TCP/IP를 이용한 소프트웨어 기반 TOE는 6% 이하의 호스트 CPU 사용률과 453Mbps의 최대 대역폭을 보인다.

Keywords

References

  1. R. Westrelin, N. Fugier, E. Nordmark, K. Kunze, E. Lemoine, "Studying network protocol offload with emulation: approach and preliminary results," In Proceedings of the 12th Annual IEEE Symposium on High Performance Interconnects, pp. 84- 90, Aug. 2004
  2. Soo-Cheol Oh, Hankook Jang and Sang-Hwa Chung, "Analysis of TCP/IP Protocol Stack for a Hybrid TCP/IP Offload Engine," Lecture Notes in Computer Science, Vol.3320, pp. 406-409, Dec 2004
  3. Paul Willmann, Hyong-youb Kim, Scott Rixner and Vijay S. Pai, "An Efficient Programmable 10 Gigabit Ethernet Network Interface Card," In Proceedings of the International Symposium on High- Performance Computer Architecture, pp. 96-107, Feb 2005
  4. Wen-Fong Wang, Jun-Yau Wang, Jin-Jie Li, "Study on Enhanced Strategies for TCP/IP Offload Engines," In Proceedings of the 11th International Conference on Parallel and Distributed Systems, Vol.1, pp. 398-404, July 2005
  5. Hyong-youb Kim, Scott Rixner, "TCP Offload through Connection Handoff," In Proceedings of EuroSys 2006, pp. 279-290, Apr. 2006
  6. Dong-Jae Kang, Chei-Yol Kim, Kang-Ho Kim, Sung-In Jung, "Design and implementation of kernel S/W for TCP/IP offload engine(TOE)," In Proceedings of the 7th International Conference on Advanced Communication Technology, Vol.1, pp. 706-709, Feb. 2005
  7. Soo-Cheol Oh, Seong-Woon Kim, "An Efficient Linux Kernel Module supporting TCP/IP Offload Engine on Grid," In Proceedings of Fifth International Conference on Grid and Cooperative Computing, pp. 228-235, Oct. 2006
  8. Y. Hoskote, B. A. Bloechel, G. E. Dermer, V. Erraguntla, D. Finan, J. Howard, D. Klowden, S. G. Narendra, G. Ruhl, J. W. Tschanz, Sriram Vangal, V. Veeramachaneni, H. Wilson, Jianping Xu, N. Borkar, "A TCP offload accelerator for 10 Gb/s Ethernet in 90-nm CMOS" IEEE Journal of Solid-State Circuits, Vol.38, Issue11, pp. 1866- 1875, Nov. 2003 https://doi.org/10.1109/JSSC.2003.818294
  9. Hankook Jang, Sang-Hwa Chung and Soo-Cheol Oh, "Implementation of a Hybrid TCP/IP Offload Engine Prototype," Lecture Notes in Computer Science, Vol.3740, pp. 464-477, October 2005 https://doi.org/10.1007/11572961_37
  10. Liu Tian-Hua, Zhu Hong-Feng, Zhou Chuan- Sheng, Chang Gui-Ran, "Research and Prototype Implementation of a TCP/IP Offload Engine Based on the ML403 Xilinx Development Board," In Proceedings of the 2nd International Conference on Information and Communication Technologies, Vol. 2, pp. 3163-3168, April 2006
  11. Zhong-Zhen Wu, Han-Chiang Chen, "Design and Implementation of TCP/IP Offload Engine System over Gigabit Ethernet," In Proceedings of the 15th International Conference on Computer Communications and Networks, pp. 245-250, Oct. 2006
  12. In-Su Yoon and Sang-Hwa Chung, "Implementation and Analysis of TCP/IP Offload Engine and RDMA Transfer Mechanisms on an Embedded System," Lectures Note in Computer Science, Vol. 3740, pp. 818-830, Oct 2005 https://doi.org/10.1007/11572961_67
  13. A Lightweight TCP/IP stack [online]. Available: http://savannah.nongnu.org/projects/lwip
  14. A. Dunkels, "Full TCP/IP for 8-Bit Architectures," In Proceedings of the 1st International Conference on Mobile Applications, Systems and Services, pp. 85-98, May 2003
  15. 윤인수, 정상화, 최봉식, 전용태, "임베디드 시스템상에서 Lightweight TCP/IP를 이용한 TCP/IP Offload Engine의 구현", 정보과학회논문지, 제33권, 제7호, pp. 413-420, 2006년
  16. PCI-730: Intelligent Gigabit Ethernet Controller [online]. Available: http://www.cyclone.com/products/ pci730.php