ATM 네트워크 인터페이스
두 개의 하드웨어 수신 대기열을 제공하는 PCI Express × 1 카드 인 Intel 82574L 기가비트 이더넷 NIC
다중 대기열 NIC는 다중 전송 및 수신 대기열을 제공하여 NIC에서 수신 한 패킷을 수신 대기열 중 하나에 할당 할 수 있습니다. NIC는 해시 기능을 사용하여 수신 대기열간에 들어오는 트래픽을 분산 할 수 있습니다. 각 수신 대기열은 별도의 인터럽트에 할당됩니다. 각 인터럽트를 서로 다른 CPU 또는 CPU 코어로 라우팅하여 단일 NIC에서 수신 한 네트워크 트래픽에 의해 트리거 된 인터럽트 요청 처리를 분산하여 성능을 향상시킬 수 있습니다.
인터럽트의 하드웨어 기반 분산, RPS (수신 패킷 조정) 및 RFS (수신 흐름 조정)와 같은 순전히 소프트웨어 구현도 존재합니다. 인터럽트를 생성 한 네트워크 패킷의 최종 대상인 애플리케이션을 실행하는 CPU 또는 코어에 인터럽트 요청을 라우팅하여 성능을 더욱 향상시킬 수 있습니다. 이 기술은 참조 지역성을 개선하고 CPU 캐시 사용률이 높고 필요한 컨텍스트 전환 수가 적기 때문에 전체 성능이 향상되고 대기 시간이 감소하며 하드웨어 사용률이 향상됩니다. 이러한 구현의 예로는 RFS 및 Intel Flow Director가 있습니다. : 98,99
다중 대기열 NIC를 사용하면 나가는 트래픽을 서로 다른 전송 대기열에 분산하여 추가 성능 향상을 달성 할 수 있습니다. 서로 다른 CPU 또는 CPU 코어에 서로 다른 전송 대기열을 할당함으로써 내부 운영 체제 경합을 피할 수 있습니다. 이 접근 방식을 일반적으로 전송 패킷 조정 (XPS)이라고합니다.
일부 제품에는 SR-IOV 가상화를 사용하여 단일 10 기가비트 이더넷 NIC를 다음으로 분할하는 NIC 파티셔닝 (NPAR, 포트 파티셔닝이라고도 함) 펌웨어 및 운영 체제에 별도의 PCI 장치 기능으로 제공되는 전용 대역폭이있는 여러 개의 개별 가상 NIC.
TCP 오프로드 엔진은 전체 TCP / IP 스택의 처리를 오프로드하기 위해 일부 NIC에서 사용되는 기술입니다. 네트워크 컨트롤러에. 주로 기가비트 이더넷 및 10 기가비트 이더넷과 같은 고속 네트워크 인터페이스와 함께 사용되며,이를 위해 네트워크 스택의 처리 오버 헤드가 중요합니다.
일부 NIC는 통합 필드 프로그래밍 가능 게이트 어레이 (FPGA)를 제공합니다. ) 네트워크 트래픽이 호스트 컴퓨터에 도달하기 전에 사용자가 프로그래밍 할 수있는 처리를 통해 시간에 민감한 워크로드에서 대기 시간을 크게 줄일 수 있습니다. 또한 일부 NIC는 일반적으로 운영 체제 커널에서 수행하는 네트워킹 작업을 가로채는 사용자 공간 라이브러리와 결합 된 통합 FPGA에서 실행되는 완전한 저 지연 TCP / IP 스택을 제공합니다. Linux에서 실행되는 Solarflare의 오픈 소스 OpenOnload 네트워크 스택이 그 예입니다. 이러한 종류의 기능을 일반적으로 사용자 수준 네트워킹이라고합니다.