# NIC (Network Interface Controller)

NIC는 컴퓨터를 네트워크에 연결하여 통신하기 위해 사용하는 하드웨어 장치로, 2계층 통신을 위한 장비입니다. 

NIC

[ 역할 ]

네트워크 인터페이스 컨트롤러에는 위의 사진에서 표시한것과 같이 네트워크 칩이 존재 합니다. 이 칩안에서

- 네트워크 장비와 LAN사이의 통신을 준비하고,

- 전송될 데이터들을 병렬에서 직렬로 전환하며,

- 빠른 전송을 위해 데이터를 코딩 및 압축하는 역할을 합니다.

그렇게 최종적으로 CPU와 통신하면서 해당 데이터를 메모리에 올린다거나 프로그램에서 다루기 위한 역할을 하게되는 것입니다. 

이 네트워크 칩 안에는 access control 기능이 구현된 하드웨어와 펌웨어가 존재합니다. 하드웨어는 두가지로, 제어를 하기위한 제어레지스터, 단순히 저장의 목적을 가지는 레지스터가 있습니다. 해당 레지스터들에 펌웨어(소프트웨어)가 같이 들어가 있기 때문에 칩안에서 해당 내용을 처리할 수 있게 됩니다.

연결방식은 유선 혹은 무선으로도 설계될 수 있습니다. 연결 방식에 따라 이더넷, 기가비트 이더넷, 광섬유, 토큰링 등으로나눠질 수 있습니다. 

(기가비트 이더넷  - 굉장히 빠른 이더넷이기 떄문에 칩과 회선, 소프트웨어에서도 기가비트를 처리할 수 있도록 모든 장치들이 복합적으로 "전부" 매치가 되어야 기가비트 이데넷을 실행할 수 있습니다)

 

[ 예시 ]

칩의 종류가 굉장히 많지만 그 중 하나 이더넷 칩 CS8900A의 특징을 소개하겠습니다.

- Cyrus Logic 에서 개발된 10Mbps를 지원하는 Ethernet Controller (칩에는 이렇게 초당 보낼 수 있는 비트의 수(속도)가 표기 되어 있습니다)

- IEEE 802.3 기준을 따르고 Direct ISA-Bus 연결을 사용한다 (IEEE 802.3 기준을 따르는 모든 장비와 호환가능합니다)

- 10BASE-T와 10BASE2, 10BASE5, 10BASE-F를 지원하기 위한 AUI(Attachment Unit Interface)를 가지고 있다 (연결 형태에 따라 BASE옆에 숫자 혹은 알파벳을 붙여줍니다)

- disk가 없는 시스템의 booting을 위한 Boot PROM 지원.

- Tx시에는 collision이 있을 때, 자동적인 재전송 및 Padding과 CRC 생성을 해준다. (충돌처리 및 오류치크를 해줍니다)

- Rx시에는 CPU의 overhead를 줄이기 위해서 StreamTransfer를 제공

- I/O및 메모리 공간과 DMA slave로서 동작할 때 사용하기 위한 Packet Page

- EEPROM을 제공하여 점퍼설정을 최소화한 설정이 가능

이더넷 칩이 작동하는 과정을 그림으로 보게 되면,

이더넷 칩

① 10BASE-T : 랜선을 통해서 연결이 되면

② 해당내용을 Receiver가 받아서

③ encoding 혹은 decoding을 한다 또한 크리스탈 clock을 통해서 어느 정도의 속도로 동기를 맞출걸인지 정한다.

        ③-1 크리스탈에 해당되는 동기 발진 속도에 따라 최종적인 bits전송 용량이 결정됨. 여기서는 10BASE-T니까                                   10Mbps속도를 가지게 된다.

        ③-2 NRZ/Manchester SIgnal에는 신호처리에 해당되는 특정알고리즘이 적용되어 있음

④ CSMA/CD라는 충돌 처리를 담당

⑤ EEPROM에는 MAC주소가 담겨져 있음

이렇게 설명할 수 있습니다. 네트워크 칩을 보면 하드웨어가 해주야할 일들을 파악할 수 있습니다.

 

[ CSMA/CD ]

CSMA/CD는 충돌 처리를 담당한다고 했었죠. CSMA/CD의 기본알고리즘을 보면,

CSMA/CD 기본 알고리즘

데이터가 있으면 데이터를 내려보낼텐데, 회선을 상대방이 사용중이면 충돌이 일어날 수 있기 때문에 채널의 사용 여부를 파악해야합니다. 이를 carrierr sensing이라고 합니다. 사용중이지 않다면 종송를 시키게 되는데, 전송 중에 갑자기 상대방에서 채널을 사용하게 되면 충돌이 발생하게 됩니다. 이렇게 collision detection 충돌이 감지되면 일정시간 jamming signal을 전송하고 back off라는 시간을 기다립니다. 그 다음 다시 carrier sensing을 하고 위의 과정이 반복이 되게 됩니다.

이 기본 알고리즘을 발전 시켜서 CSMA/CD는 Two part Deferral와 Simple Part Deferral 두가지 옵션을 가지는데, 이는 회선 사용을 파악하는 방법을 single과 twopart로 나누어 놓은 것으로, 회선 사용을 기다리는 시간에 따라 둘 중에 선택하게 됩니다. 

single & two-part deferral

 

'Computer Science > Computer Network' 카테고리의 다른 글

Datalink Layer  (0) 2022.08.09
프로토콜  (0) 2022.08.08
네트워크 디바이스와 드라이버(2)  (0) 2022.07.15
네트워크 모델  (0) 2022.07.06
컴퓨터 네트워크  (0) 2022.07.05

+ Recent posts