2.TCP/IP와의 만남

오늘날 가장 많이 사용되는 프로토콜은 TCP/IP 이다.(인터넷 때문..)
Transmission Control Protocol/Internet Protocol의 약자로서 ARPANET에 의해 처음 개발되었다. 각각의 네트워크에 접속되는 호스트는 다른 네트워크에 연결되어 있는 호스트까지도 서로 데이터를 주고받을 수 있다. 이 때 사용하는 호스트들의 고유 주소인 IP주소는 Internet Network Information Center(InterNIC)이란 단체에서 관리 분배되고 있다.

IP의 한정으로 인해 내부 네트워크에서는 공인되지 않은 IP주소를 사용하고 인터넷으로 나갈 때만 공인주소(유일한 IPwnth)를 가지고 나가는 방식인 NAT(Network Address Translation)나 동일한 IP 주소를 가지고 여러 명이 인터넷에 접속하면서 포트 넘버만을 바꾸는 PAT 등이 사용되고 있다.

IP주소는 2진수 32개로 만들어졌다. 즉 만들 수 있는 주소는 2^32만큼이다. 이를 IPv4라 하고 고갈 대책으로 나온것이 IPv6인데 2^128개의 주소를 표현할 수 있다.

DHCP
IP주소를 자동으로 배정해준다. DHCP 서버가 따로 존재하며 DHCP클라이언트들이 주소를 요청하면 DHCP 서버는 갖고있는 주소중에서 하나를 자동으로 할당해준다.

NIC(Network Interface Card) 즉 랜카드
유저의 데이터를 케이블에실어서 허브나 스위치 혹은 라우터 등으로 전달해주고 자신에게 온 데이터를 CPU에게 전달해주는 역할
대부분(90% 이상) 이더넷용 랜카드이다. UTP타입을 많이쓴다고만 알아두자.

허브
직사각형 상자에 구멍이 뚫려있는 모양으로 구멍에 따라 몇 포트 허브다라고 한다. 구멍의 숫자가 몇대의 장비를 연결할수 있는지 결정한다. 또한 같은 허브에 연결된 PC끼리는 서로 통신이 가능하다. 허브는 멀티포트 리피터라고 말 할 수 있다. 즉 포트가 많고 들어온 데이터를 그대로 재전송한다는것. 쉽게말하면 한 포트로 들어온 데이터를 나머지 모든 포트로 뿌려준다는 것(이 때 받은 데이터를 수신한 랜카드들은 목적지 맥 어드레스를 보고 버릴지 CPU로 올릴지 판단한다.). 한 허브에 연결된 모든 PC는 같은 콜리전 도메인 안에 있다.

리피터
두 장비를 UTP로 통신할 때 100m 이상인경우 권장되지 않는다. (완전한 통신보장x) 이 경우 중간에 리피터를 두어 들어온 데이터를 다른 쪽으로 전달해 주는 역할을 한다. 허브가 리피터의 역할을 대신하게 되어 만나기가 쉽지 않다.

허브의 한계
허브의 수를 늘리기 위해 다른 허브에 물리게 된다면 collistion domain이 커지게 된다. 이로 인해 콜리전이 자주 발생하게 되는 결과를 낳는다.

허브의 종류

허브는 보통 인텔리전트 허브, 더미허브, SemiIntelligent 허브로 나뉜다.

인텔리전트 허브 : NMS(네트워크 관리시스템)를 통해서 관리가 되는가로 인텔리전트 허브와 더미 허브로 나눈다. 즉 인텔리전트 허브는 NMS상에서 모든 데이터를 분석, 제어가 가능하다. 특정 PC가 자꾸 데이터를 보내 컬리전이 발생킨다면 네트워크에서 분리시킴으로써 해결할 수있는 기능도 갖고있다. 또한 분리된 포트는 허브에서 램프로 표시되기 때문에 바로 조치가 가능하고 이를 Auto Partition이라고 한다.

Semi 더미 허브 : 더미 허브이지만 인텔리전트 허브와 연결하면 자기도 인텔리전트 허브가 된다. 즉 혼자 있을때는 더미허브, 인텔리전트 허브랑 같이 있으면 인텔리전트 허브가 된다.

Stackable 허브: 스택이 가능한 허브, 즉 쌓을 수 있는 허브, 학교 전산실에 허브 여러개 쌓아둔거 생각해보자.

허브의 끝 스위치의 시작(허브보다 두 수 높은 스위치!)

콜리전 도메인을 낮춘 브리지 또는 스위치!
스위치가 나오기 전까지는 브릿지가 다 해주었지만 이제 브릿지보다 빠른 스위치가 나와 브릿지는 물러나고 있다.
스위치는 1번 포트에 연결된 PC가 2번 포트에 연결된 PC와 데이터를 주고받는 동안에도 3번 포트에 연결된 PC와 4번 포트에 연결된 PC가 서로 데이터를 주고 받을수 있게 해주는 장비.
유식하게 포트별로 콜리전 도메인이 나뉘어져 있다고 한다.
허브는 한 순간에 한대의 차만달릴 수 있다면 스위치는 포트 수별로 차선이 존재하여 여러대가 달릴 수 있는구조이다. 그렇지만 스위치 또한 서버와의 통신은 한순간에 하나의 PC만이 가능하다.

허브보다 한 수 높은 브릿지

말그대로 다리이다. 스위치와 사촌지간이며 하는일이 서로 비슷하다.
브릿지는 허브로 만들어진 콜리전 도메인 사이를 반으로 나누고 중간에 다리를 놓는다. 이로 인해 다리 남단은 남단끼리 북단은 북단끼리 동시에 통신이 가능해진다.
정리하자면 브릿지는 허브보다 한 수 위 장비인데 콜리전 도메인을 나누어 준다.(중간에 브릿지를 만들어서)

브릿지/스위치의 기능

  • Learning. 배운다
  • Flooding. 모르면 들어온 포트를 제외한 다른 모든 포트로 뿌린다.
  • Forwarding. 해당 포트로 건네준다.
  • Filtering. 다른 포트로는 못건너가게 막는다
  • Aging. 나이를 먹는다.

Learning : 브릿지나 스위치는 자신의포트에 연결된 A라는 PC가 통신을 위해 프레임을 내보내면 그때 이 PC의 맥 어드레스를 읽어서 자신의 맥 어드레스 테이블(브리지 테이블이라함)에 저장해 놓는다. 그리고 나주에 어떤 PC가 A에게 통신할 경우에 자신의 브릿지 테이블을 참고해서 다리를 건너게 할지 못건너게 할지 결정한다.

Flooding : 들어온 포트를 제외한 나머지 모든 포트로 뿌리는 것을 의미. 들어온 프레임이 찾아가는 주소를 보니 브릿지 테이블에 없는 주소 일경우 다리를 건너야 할지 건너지 말아야할지 모르는 경우가 생기는데 이 경우 Flooding이 사용된다. Flooding는 브로드 캐스팅이나 멀티캐스트의 경우에도 발생한다.

Forwarding : 브리지가 목적지의 맥어드레스를 자신의 브릿지 테이블에 갖고 있고 다리를 건너야 할 경우 Forwarding이 발생한다. 이는 모든 포트로 프레임을 뿌리는 Flooding과 다르게 해당 포트쪽으로만 프레임을 뿌린다.

Filtering : 브리지를 못넘어가게 막는다는 것. 브릿지가 목적지의 맥 어드레스를 알고 있고 (브릿지 테이블에 맥어드레스가 존재하는 경우) 출발지와 목적지가 같은 세그먼트 상에 있는경우. 즉 브릿지를 건너가지 않아도 되는경우 다리를 막는 필터링을 실시한다. 브릿지의 필터링 기능 때문에 허브와 다르게 콜리전 도메인을 나눌 수 있다. 프레임이 목적지와, 브릿지 둘다 날라 가지만 브릿지에서는 브릿지 테이블을 보고 다리를 막는다.

Aging : 브릿지 테이블에 맥 어드레스를 저장은 무한정 할 수 없다. 그러므로 나이를 맥여 (디폴트로 5분. 조정 가능) 일정 나이가 되면 브릿지 테이블에서 삭제시킨다. 하지만 타이머 만료 전에 다시 들어오게 된다면 타이머를 Refresh하여 다시 카운트 한다.

브릿지와 스위치의 차이

둘다 데이터 링크 레이어지만 차이점이 존재한다.

  • 스위치는 처리방식이 하드웨어로 이뤄지기 때문에 소프트웨어적으로 프레임을 처리하는 브릿지에 비해 빠르다.(스위치는 처리 절차를 미리 칩에 구워서 하드웨어 방식으로 만드는 ASIC방식)
  • 브릿지는 포트들이 같은속도를 지원하지만, 스위치는 서로 다른 속도를 연결해 줄 수 있다.
  • 스위치는 브릿지에 비해 제공하는 포트 수가 훨씬 많다. (브릿지는 2~3개정도 포트/스위치는 몇십 몇백개)
  • 스위치의 경우 cut-through, 또는 store-and-forward 방식을 사용하는데 브릿지는 store-and-forward 방법만을 사용한다.

Store-and-forwarding: 스위치나 브릿지가 일단 들어오는 프레임을 전부 받아들인 다음 처리를 시작.(에러가 날 경우 버리고 다시 요청)

Cut-through: 스위치가 들어오는 프레임의 목적지 주소(처음 48bit)만을 본 다음 바로 전송 처리를 시작하는 방식(Store-and-forwarding처럼 프레임이 다 들어오기를 기다리지 않음). 이전 방식에 비해 빠르지만 가끔씩 발생한 에러를 찾아내기가 어렵기때문에 에러 복구능력이 약점이다.

Fragment-Free: 앞의 두가지 방식의 장점을 결합한 방식으로 전체 프레임을 다 기다리지 않고 처음 512비트만 보게 된다. 에러 감지능력이 Cut-through보다 좋다.
``

Looping은 왜 생길까

루핑을 브릿지나 스위치에서 자주 발생하는 현상이다.

이는 프레임이 네트워크 상에서 무한정으로 뱅뱅 돌기 때문에 이더넷의 특성상 네트워크가 조용해야 데이터를 전송할 수 있는 다른녀석들이 계속 네트워크가 조용해지기를 기다리기만 할 뿐 데이터 전송이 불가능한 상태를 말한다. 브릿지, 스위치 디자인에서 주의해야 한다.

두 호스트 사이에 스위치 또는 브릿지가 두 개 있다고 가정해보자. 즉 하나의 호스트에서 다른 호스트로 가는 경로가 두 개 이상 만들어진다는 것이다. 이렇게 구성하는 이유는 보통 하나가 끊어지면 다른 하나로 통신하기 위해 구성한다. 하지만 아무 생각없이 이렇게 구성하게 될 경우 루핑이 발생하게 된다.

스 스
위ㅡㅡㅡㅡㅡ위
치ㅡㅡㅡㅡㅡ치
ㅣ ㅣ
A pc B pc

A가 브로드 캐스트 패킷을 보내면 양쪽 스위치(혹은 브릿지)로 전달되게 된다. 그 다음 두 개의 스위치(혹은 브릿지)는 이 패킷을 분석하고 브로드캐스트 패킷이란것을 알아낸다. 그 후 Flooding을 하게된다. (스위치(혹은 브릿지)는 목적지 주소를 보고 그 주소가 자신의 브릿지 테이블에 없거나, 멀티캐스트 주소이거나, 브로드 캐스트 주소인 경우에는 들어온 포트를 제외한 나머지 모든 포트로 뿌려주는 Flooding를 하게된다.)

그럼 상대방쪽 세그먼트로 브로드캐스트 패킷이 보내지게된다. 즉 양쪽 브릿지에서 모두 패킷이 다리를 건너게 된다. 그 다음엔 반대쪽으로 건너간 브로드캐스트 패킷을 다시 양쪽 브릿지의 아래쪽 트로 전달되고 이 패킷 역시 브릿지의 특성에 따라 다시 위로 전달된다.( 즉 다시 다리를 건너오게 된다.)
이를 해결할 수 있는것이 바로 스패닝 트리알고리즘!

폴트 톨러런트(Fault tolerant) : 네트워크상에 어떤 문제가 발생할 때를 대비해서 미리 장애 대비를 해놓는 것을 의미한다.(장애 대비책으로 대부분 이중 구조를 의미하고 전체 네트워크가 하나의 지점에서 발생한 장애로 인해 영향을 받는것을 방지하기 위한 대책)
로드 밸런싱(Load balancing) : 로드를 분산하는것. 회선 하나를 이용한 인터넷 접속대신 인터넷 회선을 두 개 사용하는것.

스패닝 트리되지 않는 스위치는 팥 없는 찐빵

스패닝 트리는 자동으로 루핑을 검색해서 루핑이 발생할 수 있는 상황을 미리 막아주는 역할을 한다. 이를 가능케하는 이유는 스위치간 두개의 링크중 하나를 끊어서 실제 링크는 두 개지만 데이터는 한쪽으로만 다니게 한다. 이를 통해 루핑을 예방할 수 있다.
그럼 스위치를 두 개의 링크로 연결한 이유가 무엇일까? 이는 바로 하나의 링크가 끊어졌을때를 대비하는것이다.
정리하자면 스패닝 트리알고리즘은 스위치나 브릿지에서 발생할 수 있는 루핑을 미리 막기 위해 두개 이상의 경로가 발생하면 하나를 제외하고 나머지 경로를 막아두었다가 기존의 경로에 문제가 생기면 막아놓은 경로를 풀어 데이터를 전송하는 알고리즘이다.
모든 스위치는 스패닝 트리 알고리즘을 지원한다.

라우팅 or 스위칭?

라우팅 or 스위칭 비교
가격 : 라우터가 스위치보다 비싸다.
속도 : 스위치가 우세. 라우터는 내부에서 처리하는 일이 많음.
구성의 편리함: 스위치가 훨씬 구성이 쉽다. 라우터는 라우팅프로토콜, 네트워크 설정 필요

브로드캐스트 영역(도메인)을 나눠주기 위해서는 라우터가 꼭 필요하다. 스위치가 그런 기능을 하는 경우가 있지만 (스위치가 라우터의 역할까지를 수행하는 경우 이런 스위치를 레이어3 스위치라고 한다) 역시 내부를 들여다보면 스위치에 라우터를 붙여놓은 형태이다.

브로드 캐스트 영역을 나눌때는 IP일때 약 500노드가 권고사항이라 한다. 실질적으로는 반 정도만 사용해야 네트워크를 제대로 사용할 수 있다. (노드는 네트워크에 접속되는 장비) 또한 라우터는 스위치가 보장못하는 보안기능, 즉 패킷 필터링을 제공하고 네트워크 주소에 따라 전송을 막았다 푸는 필터 기능도 제공한다. 또 하나 바로 로드 분배기능을 제공한다. 즉 여러 개의 경로를 가지고 있기 때문에 데이터가 여로 경로를 타고 날아갈 수 있다. 스위치도 로드 분배가 가능하지만 굉장히 제한적이다. 라우터는 이 외에도 프로토콜이나 데이터의 크기, 중요도 등 여러 상황에 따라 트래픽의 전송 순서를 조정해주는 QoS(Quality of Service) 기능도 제공한다.

결론은 스위치와 라우팅을 적당히 사용하자

/

Share