- NIC(Network Interface Card, Controller)는 컴퓨터를 네트워크에 연결하기 위한 하드웨어 장치이다.
-
NIC는 이더넷 또는 Wi-Fi와 같은 특정 물리 계층 및 데이터 링크 계층 표준을 사용하여 통신하는데 필요한 전자 회로를 구현한다. 동일한 LAN(local area network) 상의 컴퓨터 간의 통신 및 IP(Internet Protocol)와 같은 라우팅 가능한 프로토콜을 통한 대규모 네트워크 통신을 가능하게 한다. 또, 케이블을 사용하거나 무선으로 컴퓨터 네트워크를 통해 컴퓨터가 통신할 수 있게 해준다.
-
L2 장비로서 네트워킹 매체에 대한 물리적 액세스를 제공하고, 고유하게 할당된 MAC 주소를 사용하여 하위 수준의 주소 지정 시스템을 제공한다.
-
직렬화(Serialization)
- NIC는 외부 케이블에서 전송되는 전기적 신호를 데이터 신호 형태로, 또는 데이터 신호 형태를 전기적 신호 형태로 변환해준다.
-
MAC 주소
- NIC는 MAC 주소를 가지고 있다. 받은 패킷의 도착지 주소가 자신의 MAC 주소가 아니면 폐기하고 자신의 주소가 맞으면 시스템 내부에서 처리할 수 있도록 전달한다.
-
흐름 제어(Flow Control)
- 패킷 기반 네트워크에서는 다양한 통신이 하나의 채널을 이용하므로 이미 통신 중인 데이터 처리 때문에 새로운 데이터를 받지 못할 수 있다. 이런 현상으로 인한 데이터 유실 방지를 위해 데이터를 받지 못할 때는 상대방에서 통신 중지를 요청하는 등, 흐름 제어를 수행한다.
일반 PC에서는 1GbE NIC가 많이 사용되지만, 서버나 네트워크 장비는 높은 신뢰도와 대역폭을 위해 광케이블을 이용한 인터페이스 카드를 사용하고 있다.
NIC가 점점 진화하면서 단순히 높은 대역폭을 제공할 뿐만 아니라 높은 대역폭 처리로 인해 CPU에 부하가 걸리지 않도록 패킷 생성, 전송을 CPU 도움 없이 독자적으로 처리하기도 한다. 일반적으로 10G 이상의 NCI는 다양한 패킷 생성, 수신을 자신이 혼자 처리한다.
일부 NIC는 L3 스위치 기능이 내장되어 있어 가상화 서버들끼리 연결하는 vSwich를 가송하는 기능도 함께 제공한다. 이런 다양한 기능이 제공되고 높은 대역폭을 처리하는 NIC는 서버 가상화와 네트워크 장비를 가상화하는 NFV(Network Function Virtualization)에 사용된다.
네트워크 전송 기술로 이더넷만 사용되는 것은 아니다. 스토리지와 서버를 연결하는 Storage Area Network(SAN) 구성용 Fibre Channel 표준이 있고 이더넷에서 스토리지 네트워크를 구성하기 위한 iSCSI 프로토콜도 있다. 또한 슈퍼 컴퓨터와 같이 여러 대의 서버를 묶어 고성능 클러스터링을 구현할 수 있는 HPC 네트워크에는 인피니밴드 기술도 사용된다.
참고