리눅스 Tips, 리눅스 C/C++ 프로그래밍, 모바일 클라우드 동향 및 테스트 등

2013년 4월 10일 수요일

네트워크 기본이론 : 04 네트워크 장비들에 관한 이야기

1. 랜카드(NIC)

 - NIC는 Network Interface Card의 약자로 보통 랜카드라고 부른다.
 - 랜카드는 유저의 데이터를 케이블에 실어서 허브나 스위치, 혹은 라우터 등으로 전달해주고 자신에게 온 데이터를 CPU에게 전달해 주는 역할을 한다.
 - 랜카드의 분류
  1) 네트워크 환경에 따라
   a. 이더넷용 : 대부분의 환경에서는 이더넷을 사용
   b. 토큰링용
   c. FDDI용
   d. AMT용
  2) PC의 버스 방식에 따라
   a. PCI용 : 현재 가장 많이 사용
   b. ISA용
   c. EISA용 : 간혹 서버급에서 사용
  3) 속도에 따라 : 실제 상황에서는 인캡슐레이션, 오버헤드에 의해 제 속도가 나오지 않는다.
   a. 10Mbps용
   b. 100Mbps용
   c. 10-100 Auto-sense용
  4) 케이블의 종류에 따라
   a. UTP용 : 일반적임
   b. BNC용
   c. AUI용
   d. 광케이블용
 - 장치관리자 -> 네트워크 어댑터에서 랜카드에 대한 등록정보에서 리소스 항목을 살펴보면, 입/출력 범위, 인터럽트 요청(IRQ), 메모리 범위(Base Memory) 등이 나타난다. 이러한 값들은 내가 목적지인 데이터가 들어왔을 떄 랜카드는 컴퓨터의 CPU에게 자기가 가지고 있던 IRQ를 이용하여 인터럽트를 걸게 되고, CPU는 IRQ번호를 확인하고 랜카드에서의 서비스 요청임을 확인, 그리고 이 데이터에게 어떤 서비스를 제공할 것인지를 미리 정해 놓은 장소인 Base Memory로 이동하여 작업을 시작하게 된다.

2. 허브(HUB)

 - 연결된 모든 PC들이 서로 통신할 수 있게 해주는 역할을 하는 장비로, 멀티포트 리피터(Multiport Repeater)라고도 한다. 이는 포트가 여러 개 달린 장비인데, 이것은 한 포트로 들어온 데이터를 나머지 모든 포트로 뿌려준다는 것이다.
 - 허브는 랜카드 처럼 이더넷용, 토큰링용 등으로 나뉘고, 포트 수에 따라, 속도에 따라서도 종류가 나뉜다.
 - 허브의 설치는 전원에 연결하고 스위치를 켜면 OK!
 - 이더넷 허브의 경우 이더넷의 특징인 CSMA/CD의 적용을 받는다. 따라서 하나의 PC가 허브에 데이터를 보내고 있을 때 또 다른 PC가 데이터를 보내려고 하면 콜리전이 발생한다. 따라서 같은 허브에 열결되어 있는 모든 PC들은 모두 '같은 콜리전 도메인 상에 있다'(Shared 방식 허브)라고 말한다.
 - 허브를 계속해서 연결해 나갈수록 콜리전 도메인의 크기는 점점 커지게 되고, 콜리전에 영향을 받는 PC들이 많아지므로 속도가 감소한다.
 - 허브의 종류
  1) 인텔리전트 허브 : 지능형 허브로 NMS(네트워크 관리시스템)을 통해 데이터 분석 및 제어
  2) 더미 허브 : 일반적인 허브
  3) 세미 인텔리전트 허브 : 일단은 더미 허브이나, 인텔리전트 허브와 연결하면 인텔리전트 허브가 됨

3. 브리지와 스위치

 - 허브의 콜리전 도메인에 따른 문제를 해결하기 위해 콜리전 도메인을 나누어 줄 수 있는 장비가 탄생하였는데, 바로 브리지(Bridge) 또는 스위치(Switch)이다.
 - 스위치는 허브에 비해서 데이터 처리 방법이 우수할 뿐만 아니라 전송 에러 등을 복구해주는 등 다양한 기능을 가진다.
 - 스위치는 임의의 두 포트 사이에서 통신이 일어나면 나머지 모든 PC들은 기다려야 했던 허브와는 달리 다른 PC들도 동시에 통신이 가능하며 이를 '포트별로 콜리전 도메인이 나뉘어 있다' 혹은 '각각의 포트에 연결된 PC가 독자적으로 10Mbps 또는 100Mbps의 속도를 갖는다'라고 말한다.
 - 브리지나 스위치는 다음 다섯 가지 일을 한다.
  1) Learning : 들어오는 프레임에 대해서 출발지의 맥 어드레스를 세그먼트 별로 브리지 테이블에 저장한다.
  2) Flooding : 들어온 프레임의 목적지 주소가 브리지 테이블에 없는 경우 들어온 포트를 제외한 나머지 모든 포트로 프레임을 뿌려준다.
  3) Forwarding : 들어온 프레임의 목적지 주소가 브리지 테이블에 존재하며, 목적지가 출발지와 다른 세그먼트에 존재하는 경우 프레임을 해당 포트쪽으로만 뿌려준다.
  4) Filtering : 들어온 프레임의 목적지 주소가 브리지 테이블에 존재하며, 목적지가 출발지와 같은 세그먼트에 존재하는 경우 브리지(또는 스위치)는 다른 포트들을 막는다. 이를 통해 콜리전 도메인을 나눌 수 있게 되는 것이다.
  5) Aging : 브리지 테이블의 기억 용량 및 시간은 한정되어 있다. 따라서 어떤 맥 어드레스를 브리지 테이블에 저장하고 나면 그때부터 Aging기능이 가동되어 저장 후 300초가 지나도록 더 이상 그 출발지 주소를 가진 프레임이 들어오지 않으면 브리지 테이블에서 해당 맥 어드레스를 삭제한다. 만약 300초 이내에 똑같은 출발지 주소의 프레임이 들어오면 Aging 타이머를 리플래시 한다.
 - 브리지와 스위치는 둘다 데이터 링크 레이어이지만 다음과 같은 차이점이 존재한다.
  1) 스위치는 하드웨어 방식으로, 브리지는 소프트웨어 방식으로 프레임을 처리한다.
  2) 브리지는 포트들이 같은 속도를 지원하지만, 스위치는 서로 다른 속도를 연결해줄 수 있는 기능을 제공한다.
  3) 스위치는 브리지에 비해 제공하는 포트 수가 훨씬 많다.
  4) 스위치의 경우 cut-through 또는 store-and-forward 방식을 사용하는데 비해서 브리지는 오로지 store-and-forward 방식만을 사용한다.
   . store-and-forward : 일단 프레임을 전부 받아들인 다음 제대로 다 들어왔는지, 에러는 없는지, 출발지 주소와 목적지 주소는 어디인지를 파악해서 처리해주는 방식으로 에러 발견시 재전송을 요구하기 때문에 에러 복구능력이 뛰어나다.
   . cut-through : 스위치가 들어오는 프레임의 목적지 주소만을 본 다음 바로 전송 처리를 하는 방식으로 프레임의 처음 48비트만을 보기 때문에 빠른 처리가 가능하지만 에러 복구능력이 떨어진다.
   . fragment-free : 앞의 두 방식의 장점을 결합한 방식으로 프레임의 처음 512비트를 보는 방식이다. 에러 감지 능력이 cut-through에 비해서 뛰어나다고 볼 수 있다.

4. Looping & Spanning Tree Algorithm

 - Looping은 하나의 호스트에서 다른 호스트로 가는 경로가 두개 이상인 경우 프레임이 네트워크 상에서 무한정으로 도는 현상을 말한다.
 - Looping을 자동적으로 막아주는 알고리즘인 스패닝 트리 알고리즘이 존재한다. 스패닝 트리 알고리즘은 스위치나 브리지에서 발생할 수 있는 루핑을 미리 막기 위해 두 개 이상의 경로가 발생하면 하나를 제외하고 나머지 경로들을 자동으로 막아두었다가 만약 기존 경로에 문제가 생기면 막아놓은 경로를 풀어서 데이터를 전송하는 알고리즘이다.
 - 위의 경우에서 만약 문제가 발생하여 현재의 링크가 끊어졌을 때 대기하고 있던 다른 링크가 다시 살아나서 연결을 해주는데 약 1분이 걸린다. 요즘에는 이러한 문제를 해결하기 위해 여러개의 링크를 마치 하나의 링크처럼 인식하게 하는 기술인 시스코의 이더 채널(Ether-Channel)이나 업링크 패스트(Uplink Fast)라는 기술을 사용한다.

*폴트 톨러런트 : 네트워크 상에 어떤 문제가 발생할 때를 대비해서 미리 장애 대비를 하는 것.
*로드 밸런싱 : 네트워크의 로드를 분산하여 성능 향상의 효과를 보는 것.
  -> 대부분의 로드 밸런싱은 폴트 톨러런트가 가능하지만 폴트 톨러런트는 로드 밸런싱이 안되는 경우도 있다.

5. 라우팅? 스위칭?

 - 스위치는 브로드캐스트에서 한계를 보인다. 따라서 브로드캐스트 영역(도메인)을 나누는 것은 매우 중요한 일이며 이를 위해서는 라우터가 반드시 필요하다.
 - 라우터는 스위치가 보장 못하는 보안 기능, 즉 패킷 필터링 기능을 제공하여 네트워크 주소에 따라 전송을 막았다가 풀었다가 할 수 있다. 또한 로드 분배를 통하여 데이터가 여러 경로를 타고 전송될 수 있도록 한다. 이 외에도 프로토콜이나 데이터의 크기, 중요도 등 여러 상황에 따라 트래픽의 전송 순서를 조정해주는 QoS(Quality of Service) 기능도 제공한다.

댓글 1개:

  1. 출처 : 후니의 쉽게 쓴 시스코 네트워킹(사이버출판사)

    답글삭제