본문/내용
본 논문에서 구현한 TCP/IP 소프트웨어의 특징을 몇가지로 요약할 수 있다.
첫째, 하드웨어에 존재하는 커널인 VRTXsa에 관련된 시스템 호출을 이용한다. 소프트웨어의 많은 부분이 멀티태스크 형태로 구현이 되었고, 커널이 세마포어나 메세지 큐를 이용하여 그들 태스크 간 동기화와 데이터 전달을 지원해준다. 간단히 말해서, 커널에 의존적인 부분이 다수 포함되어 있다.
둘째, 프로토콜의 기능을 최대한 축소시켰다. 원래 TCP/IP가 많은 기능을 가진 복잡한 프로토콜이지만 실제로 많이 쓰이지 않는 부분들도 많다. 그래서 이런 부분들을 최대한 생략하거나 축소시켜 데이터 처리 부하를 줄였다.
셋째, 프로토콜 간의 데이터 전달 방식이다. 일반적으로 상하위의 프로토콜 간에 데이터를 전달할 때에는 캡슐화(capsulization)가 되어 전달되자만 본 논문에서 구현한 TCP/IP에는 전달되는 모든 데이터는 동일한 자료 구조 형태로 전달된다. 이 때 쓰이는 자료 구조는 ComBuf(communication buffer)라고 이름 붙였다. 태스크들 간의 통신은 대부분 메세지 큐를 이용하는데 동일한 자료 구조를 사용함으로써 동일한 형태의 메세지 큐를 생성시켜 사용할 수 있다.
넷째, 커널과 응용 프로그램 간의 메모리 복사를 없앴다. 일반적인 TCP/IP는 프로토콜들은 커널 내에 존재하고 응용 프로그램들은 사용자 영역에 존재하기 때문에 커널과 사용자 영역 사이의 메모리 복사가 많았다. 하지만 본 연구에서 구현된 TCP/IP는 응용 프로그램과 마찬가지로 사용자 영역에 존재하므로 불필요한 메모리 복사를 줄일 수 있다.
참고문헌
[1] W. Doeringer, and D, Dykeman, M. Kaiserwerth, B. Meister, H. Rudin, and R. Williamson, `A Survey of Light-Weight Transport Protocols for High-Speed Networks,` IEEE Trans. on Communications, Vol.38, No.11, pp.2025-2039, Nov.1990.
[2] T. Porta and M. schwartz, `Architecture, Features, and Implementation of High-Speed Transport Protocols,` IEEE Network Magazine, pp.14-22, May.1991.
[3] Eric C. Cooper, Peter A. Steenkiste, Robert D. Sansom, and Brian D. Zill, `Protocol Implementation on the Nectar Communication Processor,` ACM, 1990.
[4] VRTXsa Real-Time Kernel,Programmer`s Guide and Reference, Microtec Reaserch Inc., pp1.1-1-5, 1994.
[5] W. Stevens, `TCP/IP Illustrated V1, The Protocols,` Addison-Wesley Publishing, 1994.