네트워크 인터페이스 컨트롤러

Network interface controller
네트워크 인터페이스 컨트롤러
Network card.jpg
1990년대 이더넷네트워크 인터페이스 컨트롤러 카드로, 현재는 사용되지 않게 된 ISA 버스를 통해 메인보드에 접속합니다.이 조합 카드에는, 10BASE2 네트워크(현재는 사용되지 않게 되었다)에서 사용하는 BNC 커넥터(왼쪽)와 10BASE-T 네트워크에서의 8P8C 커넥터(오른쪽)가 있습니다.
접속처다음 중 하나를 통한 메인보드:

다음 중 하나를 통한 네트워크:

속도전이중 또는 반이중:
  • 10 Mbit/s
  • 100 Mbit/s
  • 1 기가비트/초

전이중:[1][2]
  • 2.5 기가비트/초
  • 5 기가비트/초
  • 10 기가비트/초
  • 최대 160 기가비트/초
공통 제조원인텔(R)
리얼텍
Broadcom( Avago, Emulex 포함)
Marvell 테크놀로지 그룹
Cavium (구 QLogic)
멜라녹스
첼시오

네트워크 인터페이스 컨트롤러(NIC, 네트워크 인터페이스 카드,[3] 네트워크 어댑터, LAN 어댑터 또는 물리적 네트워크 [4]인터페이스라고도 함)는 컴퓨터컴퓨터 [5]네트워크에 연결하는 컴퓨터 하드웨어 컴포넌트입니다.

초기 네트워크 인터페이스 컨트롤러는 일반적으로 컴퓨터 버스에 연결된 확장 카드에 구현되었습니다.이더넷 표준의 저비용과 편재성이라는 것은 대부분의 최신 컴퓨터는 메인보드에 네트워크 인터페이스가 내장되어 있거나 USB로 연결된 동글에 내장되어 있다는 것을 의미합니다.

최신 네트워크 인터페이스 컨트롤러는 호스트 프로세서에 대한 인터럽트 및 DMA 인터페이스, 여러 수신 및 전송 큐 지원, 여러 논리 인터페이스로 분할, TCP 오프로드 엔진 등의 온컨트롤러 네트워크트래픽 처리 등의 고도의 기능을 제공합니다.

목적

네트워크 컨트롤러는 특정 물리층[a]이더넷이나 Wi-Fi 등의 데이터 링크층 표준을 사용하여 통신하는 데 필요한 전자 회로를 구현합니다.를 통해 동일한 LAN(Local Area Network) 상의 컴퓨터 간 통신 및 IP(Internet Protocol)와 같은 라우팅 가능한 프로토콜을 통한 대규모 네트워크 통신이 가능한 전체 네트워크 프로토콜 스택의 기반을 제공합니다.

NIC 를 사용하면, 컴퓨터가 케이블 또는 무선으로 컴퓨터 네트워크를 개입시켜 통신할 수 있습니다.NIC는 물리층 및 데이터 링크층 디바이스입니다.이것은, 네트워크 미디어에의 물리적인 액세스를 제공하고, IEEE 802 와 같은 네트워크에서는, 네트워크 인터페이스에 일의로 할당된 MAC 주소를 사용하는 으로써, 저레벨의 어드레싱 시스템을 제공합니다.

실행

12 초기 ISA 8비트 및 16비트 PC 네트워크 카드오른쪽 하단 카드는 초기 무선 네트워크 카드이며, 부분 베이지 플라스틱 커버가 있는 중앙 카드는 PSTN 모뎀입니다.

네트워크 컨트롤러는 원래 컴퓨터 버스에 연결하는 확장 카드로 구현되었습니다.이더넷 표준의 저비용과 편재성은 대부분의 새로운 컴퓨터에는 메인보드에 네트워크 인터페이스 컨트롤러가 내장되어 있음을 의미합니다.새로운 서버 메인보드에는 여러 네트워크 인터페이스가 내장되어 있을 수 있습니다.이더넷 기능은 메인보드 칩셋통합되거나 저비용 전용 이더넷 칩을 통해 구현됩니다.다른 독립된 네트워크 접속이 필요하거나 이더넷 이외의 유형의 네트워크가 사용되지 않는 한 일반적으로 별도의 네트워크 카드가 필요하지 않습니다.컴퓨터 하드웨어의 일반적인 경향은 시스템의 다양한 컴포넌트를 칩에 통합하는 것입니다.이것은 네트워크 인터페이스 카드에도 적용됩니다.

이더넷 네트워크 컨트롤러에는 일반적으로 네트워크 케이블이 연결된8P8C 소켓이 있습니다.오래된 NIC에서는 BNC 또는 AUI 연결도 제공되었습니다.이더넷 네트워크 컨트롤러는 일반적으로 10 Mbit/s 이더넷, 100 Mbit/s 이더넷 및 1000 Mbit/s 이더넷을 지원합니다.이러한 컨트롤러는 10/100/1000으로 지정되어 있습니다.즉, 10, 100 또는 1000 Mbit/s의 데이터 레이트를 지원할 수 있습니다.10 기가비트 이더넷 NIC도 사용할 수 있으며, 2014년 11월부터 컴퓨터 메인보드에서 [6][7]사용할 수 있게 되었습니다.

Qlogic QLE3442-CU SFP+ 듀얼 포트 NIC

SFP나 SFP+ 등의 모듈러 디자인은 특히 광섬유 통신에 매우 인기가 있습니다.미디어 의존 트랜시버의 표준 리셉터클을 정의하기 때문에 사용자는 네트워크인터페이스를 필요에 따라 쉽게 조정할 수 있습니다.

네트워크 커넥터에 인접하거나 네트워크 커넥터에 내장되어 있는 LED는 네트워크가 연결되어 있는지 여부와 데이터 액티비티가 언제 발생하는지 사용자에게 알려줍니다.

NIC 는, 다음의 몇개의 기술을 사용하고, 전송 하는 패킷의 가용성을 나타낼 수 있습니다.

  • 폴링은 CPU가 프로그램 제어 하에 있는 페리페럴의 상태를 검사하는 입니다.
  • 인터럽트 구동 I/O는 주변기기가 CPU에 데이터 전송 준비가 되었음을 알리는 것입니다.

NIC 는, 다음의 몇개의 기술을 사용해 패킷 데이터를 전송할 수 있습니다.

  • CPU가 데이터를 NIC에서 메모리로 또는 NIC에서 메모리로 이동하는 프로그래밍된 입출력.
  • Direct Memory Access(DMA; 다이렉트메모리 액세스). CPU 이외의 디바이스가 NIC에서 메모리로 데이터를 이동하기 위해 시스템버스를 제어합니다.이것에 의해, CPU로부터의 부하가 경감됩니다만, 카드에 보다 많은 논리가 필요하게 됩니다.또, NIC 의 패킷 버퍼가 불필요하게 되어, 지연 시간을 단축할 수 있습니다.

퍼포먼스와 고도의 기능

ATM 네트워크인터페이스
인텔 82574L 기가비트 이더넷 NIC, PCI Express ×1 카드, 2개의 하드웨어 수신[8] 큐를 제공합니다.

멀티큐 NIC는 복수의 송신 와 수신 큐를 제공하므로 NIC에서 수신한 패킷을 수신 큐 중 하나에 할당할 수 있습니다.NIC는 해시 함수를 사용하여 수신 큐 간에 착신 트래픽을 분산할 수 있습니다.각 수신 큐는 별도의 인터럽트에 할당됩니다.이러한 인터럽트를 각각 다른 CPU 또는 CPU 코어로 라우팅함으로써 단일 NIC가 수신한 네트워크 트래픽에 의해 트리거된 인터럽트 요구를 분산하여 처리함으로써 [9][10]성능을 향상시킬 수 있습니다.

위에서 설명한 인터럽트의 하드웨어 기반 분포는 Receive-Side Scaling(RSS;[11]: 82 수신측 스케일링)이라고 불립니다.Receive Packet Steering(RPS; 수신 패킷스티어링)이나 Receive Flow Steering(RFS;[9] 수신 플로우스티어링)의 순수 소프트웨어 실장도 존재합니다.인터럽트를 생성한 네트워크 패킷의 최종 수신처인 애플리케이션을 실행하는 CPU 또는 코어에 인터럽트 요구를 라우팅함으로써 성능을 더욱 향상시킬 수 있습니다. 기술을 사용하면 CPU 캐시의 사용률이 높아지고 필요한 컨텍스트스위치가 적어지기 때문에 참조의 로컬성이 향상되어 전체적인 퍼포먼스가 향상되고 지연 시간이 단축되며 하드웨어 사용률이 향상됩니다.이러한 실장의 예로는 RFS나[9] Intel Flow [11]: 98, 99 [12][13][14]Director가 있습니다.

멀티큐 NIC 를 사용하면, 발신 트래픽을 다른 송신 큐간에 분산하는 것으로, 한층 더 퍼포먼스를 향상시킬 수 있습니다.다른 송신 큐를 다른 CPU 또는 CPU 코어에 할당하는 것으로, 내부 operating system의 경합을 회피할 수 있습니다.이 접근방식은 보통 Transmit Packet Steering(XPS;[9] 송신 패킷스티어링)이라고 불립니다.

일부 제품에는 SR-IOV 가상화를 사용하여 단일 10기가비트 이더넷 NIC를 전용 대역폭을 가진 여러 개의 개별 가상 NIC로 분할하는 NIC 파티셔닝(NPAR, 포트 파티션이라고도 함) 기능이 있으며, 이러한 NIC는 펌웨어 및 운영 [3][15]체제에 별도의 PCI 디바이스 기능으로 제공됩니다.

TCP 오프로드 엔진은 일부 NIC에서 TCP/IP 스택 전체의 처리를 네트워크 컨트롤러로 오프로드하기 위해 사용되는 기술입니다.주로 기가비트이더넷이나 10 기가비트이더넷 등의 고속 네트워크인터페이스에서 사용되며 네트워크 스택의 처리 오버헤드가 커집니다.[16]

일부 NIC는 네트워크 트래픽이 호스트 컴퓨터에 도달하기 전에 사용자가 프로그래밍할 수 있는 Field-Programmable Gate Array(FPGA; 필드 프로그래밍 가능 게이트 어레이)를 내장하고 있기 때문에 시간에 민감한 [17]워크로드의 지연을 대폭 줄일 수 있습니다.또한 일부 NIC는 통합 FPGA 상에서 실행되는 완전한 저지연 TCP/IP 스택을 운영체제 커널에 의해 실행되는 네트워킹 작업을 대행 수신하는 사용자 공간 라이브러리와 조합하여 제공합니다.예를 들어 Linux 상에서 실행되는 Solarflare의 오픈 소스 OpenOnload 네트워크 스택이 있습니다.이러한 기능을 보통 사용자 수준[18][19][20]네트워킹이라고 합니다.

「 」를 참조해 주세요.

메모들

  1. ^ 다른 네트워크 테크놀로지가 존재하지만 이더넷(IEEE 802.3)과 Wi-Fi(IEEE 802.11)는 1990년대 중반 이후 LAN 테크놀로지로서 거의 유비쿼티에 가까운 기술을 실현하고 있습니다.

레퍼런스

  1. ^ "Port speed and duplex mode configuration". docs.ruckuswireless.com. Retrieved 2020-09-25.
  2. ^ Admin, Arista (2020-04-23). "Section 11.2: Ethernet Standards - Arista". Arista Networks. Retrieved 2020-09-28.
  3. ^ a b "Enhancing Scalability Through Network Interface Card Partitioning" (PDF). Dell. April 2011. Retrieved May 12, 2014.
  4. ^ "Physical Network Interface". Microsoft. January 7, 2009.
  5. ^ Posey, Brien M. (2006). "Networking Basics: Part 1 - Networking Hardware". Windowsnetworking.com. TechGenix Ltd. Retrieved 2012-06-09.
  6. ^ Jim O'Reilly (2014-01-22). "Will 2014 Be The Year Of 10 Gigabit Ethernet?". Network Computing. Retrieved 2015-04-29.
  7. ^ "Breaking Speed Limits with ASRock X99 WS-E/10G and Intel 10G BASE-T LANs". asrock.com. 24 November 2014. Retrieved 19 May 2015.
  8. ^ "Intel 82574 Gigabit Ethernet Controller Family Datasheet" (PDF). Intel. June 2014. p. 1. Retrieved November 16, 2014.
  9. ^ a b c d Tom Herbert; Willem de Bruijn (May 9, 2014). "Linux kernel documentation: Documentation/networking/scaling.txt". kernel.org. Retrieved November 16, 2014.
  10. ^ "Intel Ethernet Controller i210 Family Product Brief" (PDF). Intel. 2012. Retrieved November 16, 2014.
  11. ^ a b "Intel Look Inside: Intel Ethernet" (PDF). Xeon E5 v3 (Grantley) Launch. Intel. November 27, 2014. Archived from the original (PDF) on March 26, 2015. Retrieved March 26, 2015.
  12. ^ "Linux kernel documentation: Documentation/networking/ixgbe.txt". kernel.org. December 15, 2014. Retrieved March 26, 2015.
  13. ^ "Intel Ethernet Flow Director". Intel. February 16, 2015. Retrieved March 26, 2015.
  14. ^ "Introduction to Intel Ethernet Flow Director and Memcached Performance" (PDF). Intel. October 14, 2014. Retrieved October 11, 2015.
  15. ^ Patrick Kutch; Brian Johnson; Greg Rose (September 2011). "An Introduction to Intel Flexible Port Partitioning Using SR-IOV Technology" (PDF). Intel. Retrieved September 24, 2015.
  16. ^ Jonathan Corbet (August 1, 2007). "Large receive offload". LWN.net. Retrieved May 2, 2015.
  17. ^ "High Performance Solutions for Cyber Security". New Wave Design & Verification. New Wave DV.
  18. ^ Timothy Prickett Morgan (2012-02-08). "Solarflare turns network adapters into servers: When a CPU just isn't fast enough". The Register. Retrieved 2014-05-08.
  19. ^ "OpenOnload". openonload.org. 2013-12-03. Retrieved 2014-05-08.
  20. ^ Steve Pope; David Riddoch (2008-03-21). "OpenOnload: A user-level network stack" (PDF). openonload.org. Retrieved 2014-05-08.

외부 링크