본문 바로가기

Book&Review/후니의 Cisco networking

후니의 쉽게 쓴 Cisco Networking (Part 03, 04) 정리!

TCP/IP 에 대해 좀 더 자세히 알아보자!

  TCP/IP(=Transmission Control Protocol/Internet Protocol)은 ARPANET에 의해 처음 개발되어, 각각의 네트워크에

  접속되는 호스트들은 고유의 주소(=IP)를 가지고 있어 자신의 네트워크뿐 아니라 다른 네트워크에 있는 호스트들

  과도 데이터를 주고 받을 수 있는 것이 특징이다.

 

그렇다면 고유주소(=IP)가 도대체 뭐야?

  IP주소는 전세계의 각 사용자들마다 갖는 고유한 주소이며 유일하게 나만이 갖고 있는 주소이다. 따라서 이 주소가

  누군가와 겹친다면, IP주소가 충돌하여 둘 중 한명은 인터넷을 사용하지 못하게 된다. ip 주소는 총 32비트가 8비트

  단위로 .을 구분으로 하여 나누어져 2진수의 비트가 10진수로 구분되어 보여지고 현재에는 32비트로 표현이 가능한

  약 2^32(일부는 사용불가)의 주소갯수가 고갈되어 인터넷으로 나갈 때만 ip를 가지고 나가는 방식인 NAT(Network

  Address Translation)이나 혹은 PAT(Port Address Translation)이 사용되고 있다. 또한 128비트를 사용하는 IPv6가

  사용될 예정이다.


PC의 데이터를 전달해줄게! LAN CARD

  LAN CARD란?

    유저의 데이터를 케이블에 실어 허브나 스위치, 혹은 라우터로 전달해주고 자신에게 온 데이터를 CPU에게 전달해주      역할 하는 CARD!

      어떤 환경에서 사용하는가에 따라 구분!

        ① 이더넷용 랜카드

        ② 토큰링용 랜카드

        ③ ATM용 랜카드 등등

      어디에다가 설치하는가에 따라 구분!

        ① Desktop용 랜카드

           PC의 Bus 방식에 따라서 구분!

             ⓐ PCI 방식

             ⓑ ISA 방식 등등

        ② 노트북용 랜카드

        ③ 프린트포트용 랜카드 등등

    랜카드는 어떻게 CPU에 신호를 알리는가?

      랜카드의 IRQ 번호를 통해 해당 IRQ를 CPU에 알리면, CPU는 랜카드가 요청한 interrupt임을 확인하고 미리 저장해        놓은 장소(=Base Memory)로 이동하여 작업을 시작한다!


지금은 많이 사라졌지만 네트워크 시작의 근본! 허브(HUB)!

  허브(HUB)란?

    멀티포트(Multiport) 리피터(Repeater)라고 할 수 있는데, 이 때 멀티포트(Multiport)는 포트가 여러개 있음을 의미하      고, 리피터(Repeater)는 중간에서 들어온 데이터를 다른 쪽으로 전달해 줌을 의미한다. 따라서 여러개의 포트들 사이

    의 데이터들을 서로 전달해주는 역할이 허브(HUB)의 역할인 것이다.

      허브는 어떻게 데이터들을 전달해줄까?

        허브는 데이터가 들어온 포트를 제외한 나머지 포트들에게 데이터를 뿌려준다. 이 때 데이터를 받은 포트들의

        랜카드(LAN CARD)가 바로 들어온 프레임의 목적지 맥 주소를 확인하고 자신의 것과 비교한 후 버릴 것인지 

        CPU에게 interrupt를 걸어줄 것인지를 정해주는 것이다.

      하지만 허브에는 한계가 존재한다

        위의 제목대로, 허브에 연결된 모든 PC들은 하나의 콜리전 도메인 안에 있기 때문에, 연결된 PC들이 많아질수록

        콜리전이 자주 발생할 수 밖에 없다.


허브의 한계를 대체해주는 장비의 등장! 스위치(Switch)!

  콜리전 도메인이 커지면 어떻게 될까?

    정답은 그만큼 콜리젼이 자주 발생하게 된다. 따라서 이러한 콜리전 도메인을 나눠주는 것이 중요해지는데, 그 기능      을 제공해주는 장비가 바로 스위치(Switch) 이다!

 

  허브 vs 스위치

허브와 스위치의 Collision Domain 비교

그렇다면 스위치의 조상은 누구일까? 브리지(Bridge)!

  브리지는 스위치의 전신으로, 구역을 나누어주어(=콜리전 도메인을 나누어주어) 콜리전 도메인의 크기를 줄여주는

  기능을 해준다. 만약 브리지로 들어온 프레임의 출발지 MAC주소와, 목적지 MAC주소가 같은 구역에 있다면 브리

  지는 다리역할(=막는역할)을 하여 반대쪽 다리에 있는 구역에서도 통신이 동시에 이뤄질 수 있게 해준다

  

  브리지는 이러한 MAC주소를 '브리지 테이블'에 담아 보관해준다.

    브리지의 기능은?

      ① Learning

        브리지 테이블은 자신이 갖고 있지 않는 MAC 주소가 처음 자신에게 들어오면, 그 주소를 브리지테이블에

        저장하여, 다음에 또 그 MAC 주소가 들어올 때 기억한다

      ② Flooding

        PC가 보낸 프레임의 목적지 MAC 주소가 자신이 갖고있는 브리지 테이블에 없다면, 들어온 포트를 제외한

        모든 포트에 해당 프레임을 뿌려준다

      ③ Forwarding

        Flooding과 반대로, 들어온 목적지 MAC 주소가 자신이 갖고 있는 브리지 테이블에 존재한다면, 해당 포트

        에 연결해서 프레임을 뿌려준다

      ④ Filtering

        출발지의 MAC 주소와, 목적지의 MAC 주소가 자신이 갖고 있는 브리지 테이블 내에서 같은 구역에 존재한

        다면, 다리를 건너지 않도록 막아준다. (=이 기능이 바로 허브와는 다르게 콜리전 도메인을 나눠주는 기능을

        할 수 있도록 해주는 것이다!)

      ⑤ Aging

        브리지 테이블의 MAC 주소를 계속하여 갖고 있다면 좋겠지만, 갖고 있을 수 있는 주소갯수의 한계로 인해

        일정 시간이 지날동안, MAC 주소가 사용되지 않는다면 해당 브리지 테이블에서 MAC 주소를 삭제시킨다.

        하지만 일정 시간동안 다시 MAC 주소가 들어온다면, 브리지는 해당 MAC 주소에게 주어진 일정 시간을

        다시 리셋(=리플래시(Refresh)) 해준다.

 

그렇다면 브리지와 스위치의 차이점은 도대체 무엇일까?

스위치(Switch) 브리지(Bridge)
처리 절차를 미리 칩에 구워서 하드웨어 방식으로 만드는
ASIC 방식이기에 프레임 처리 속도가 브리지에 비해 빠르다.
소프트웨어적인 프레임으로 처리하여, 프레임 처리 속도가
스위치에 비해 상대적으로 느리다.
서로 다른 속도를 연결해주는 기능을 제공한다. 포트들이 모두 같은 속도를 지원한다.
제공해주는 포트 수가 훨 씬 많다. (몇십 또는 몇백개 가능) 제공해주는 포트 수가 상대적으로 적다. (일반적으로 2-3개)
Cut-through, Store-and-forward 방식을 사용 Store-and-forword 방법만을 사용

  ※ Store-and-forwarding: 일단 들어오는 프레임을 전부 받아들인 후 처리를 시작하는 방식으로, 만약 에러가 발생한                                       다면 해당 프레임을 버리고 재전송을 요구하기 때문에 에려 복구 능력이 뛰어나다

 

  ※ Cut-through: 프레임의 목적지 주소만 본 후 바로 전송 처리를 시작하는 방식으로, 처음 48비트만을 확인하여 

                        Store-and-forwarding에 비해 처리속도가 빠르나, 에러를 찾아내기 어려워 에러복구 능력이 약하다.

 

  ※ Fragment-free: 위 두가지의 장점을 결합한 것으로, 전체 프레임을 다 기다리지 않고 처음 512비트만을 확인하여

                           에러감지 능력이 Cut-through에 비해 뛰어나다.


Looping(뺑뺑이)는 왜 발생하는 것일까?

  Looping(루핑) 이란?

    브리지나 스위치에 목적지까지의 경로가 두 개 이상 존재할때, 프레임이 네트워크상에서 무한정으로 뱅뱅 돌아 이더      넷의 특성으로 인해 데이터 전송이 불가능해지는 상태

  이러한 Looping(루핑)을 막아주는 알고리즘은? 스패닝 트리 알고리즘

    스패닝 트리 알고리즘(Spanning Tree Algorithm) 

      목적지까지의 경로가 두 개 이상 존재한다면, 자동으로 링크 중 하나 이상의 경로를 끊어주는 알고리즘으로 하나의

      경로로만 이동하게 해준다!


허브, 브리지, 스위치 그다음엔 누구야? 라우터!

  라우터를 쓰는 이유는 무엇일까? 

    라우터는 스위치에 비해 비싸고, 패킷을 처리하는 속도도 느리며 구성또한 복잡하다. 하지만 이런 이유에도 불구하고

    라우터를 쓰는 이유는 바로 브로드캐스트 도메인 때문이다.

 

  스위치 vs 라우터

스위치로는 Broadcast Domain을 나누어 주지 못한다.
라우터(Router)를 통해 Broadcast Domain을 나누어 주었다.

  위의 그림처럼 만약 라우터가 존재하지 않는다면, 모든 PC들이 브로드캐스트를 뿌릴 때마다, 수많은 PC이 같은

  브로드캐스트 도메인에 속하기 때문에, 통신불가 상태에 이르기 때문에 이러한 브로드캐스트 도메인을 나눠주

  기 위해 라우터는 꼭 필요하다!

라우터의 기능 정리
① 브로드캐스트 도메인영역을 나눠준다.
② 스위치가 보장하지 못하는 보안 기능인 패킷 필터링 기능을 제공한다
③ 제한적인 '로드 분배'를 제공하는 수위치에 반하여, 라우터는 더 넓은 '로드 분배' 기능을 제공해준다
④ 프로토콜이나 데이터의 크기, 중요도등 상황에 따라 트래픽의 전송 순서를 조정해주는
QoS(Quality of Service)기능을 제공한다.

하나 둘 네트워크 장비의 역사와 기능들을 알게되면서, 평소엔 눈에 들어오지 않던 장비들이 눈에 들어오니 신기하면서도 즐겁다:-)