초록
전형적인 클라이언트-서버 컴퓨팅 모델에서 네트워크 서버 시스템들은 과중한 양의 계산과 통신 작업을 수행해야 한다 하지만 현재 네트워크 서버 시스템에서 사용되는 통신규약 스택의 구조는 크게 세가지 성능상의 병목을 가지고 있다. 호스트 시스템의 통신규약 스택의 처리, 시스템 호출 처리, 그리고 네트워크 인터럽트 처리에 따른 성능상의 병목을 개선하기 위해서 본 논문에서는 네트워크 인터페이스 카드에 기반한 호스트 독립적인 네트워크 시스템을 설계하고 성능을 평가한다. 첫째, 통신규약 스택 처리를 호스트에서 네트워크 인터페이스 카드로 분산시킴으로써 호스트 시스템의 통신규약 스택 처리에 따른 계산량을 줄인다 둘째, 이렇게 분산된 통신규약 스택과 사용자 수준의 라이브러리를 사용해 통신함으로써 통신규약 스택에 접근하기 위한 시스템 호출 비용을 제거한다. 셋째, 네트워크 인터페이스 카드에서 패킷이 아닌 세그먼트 단위로 인터럽트를 생성함으로써 호스트의 네트워크 인터럽트 처리 비용을 줄인다 실험결과 제안하는 네트워크 시스템을 사용할 경우 호스트의 통신규약 스택을 위한 계산량을 68-71% 감소시킴을 보인다. 이러한 특성으로 인해서 제안하는 시스템을 활용하면 호스트에 계산 및 통신 요구가 높은 경우에 통신 응답시간을 11-83% 가량 단축시킬 수 있음을 보인다.
In a client-server model, network server systems suffer from both heavy communication and computational loads. While communication channels become increasingly speedy, the existing protocol stack architectures still include mainly three performance bottlenecks of protocol stack processing, system call, and network interrupt overheads. To address these obstacles, in this paper we present a host-independent network system where a network interface card (NIC) is utilized in an efficient manner. First, by offloading network-related portion to the NIC, the host can fully utilize its processing power for other useful purposes. Second, it eliminates the system call overhead, such as context-switching and memory copy operations, since the host communicates with the NIC through its user-level libraries. Third, it a] so reduces the network interrupt operation count as the host handles the interrupt in a segment instead of a packet. The experimental results show that the proposed network system reduces the host CPU overhead for communication system by 68-71%. It also shows that the proposed system improves the communication speed by 11-83% under heavy computational and communication load conditions.