반응형

[광고 누르면 오늘의 행운 상승!!]

네트워크 스위치(network switch)는 처리 가능한 패킷의 숫자가 큰 것으로, 네트워크 단위 들을 연결하는 통신 장비로서 소규모 통신을 위한 허브보다 전송 속도가 개선된 것이다. 간단히 스위치라고 부르는 경우가 많으며, 브리징 허브, MAC 브리지(bridging hub, MAC bridge)[1], 스위칭 허브(switching hub), 포트 스위칭 허브(port switching hub)라고도 한다.

성능

스위치의 사용 목적은 허브와 유사하지만, 스위치는 훨씬 향상된 네트워크 속도를 제공한다. 이는 각 컴퓨터에서 주고 받는 데이터가 허브처럼 다른 모든 컴퓨터에 전송되는 것이 아니라, 데이터를 필요로 하는 컴퓨터에만 전송되기 때문에 가능하다. 따라서 허브처럼 병목 현상이 쉽게 생기지 않는다. 또한 대부분의 스위치는 전이중 통신방식(full duplex)을 지원하기 때문에 송신과 수신이 동시에 일어나는 경우 훨씬 향상된 속도를 제공한다.

스위치는 이 기능을 수행하기 위해 각 컴퓨터의 고유한 MAC 주소를 기억하고 있어야 하며, 이 주소를 통해 어떤 데이터가 어디로 전송되어야 하는지 판단해야 한다.

하지만 스위치를 이용하는 경우도 대량의 브로드캐스팅이나 스위치의 처리용량을 초과하는 데이터 흐름에 대해서는 취약할 수밖에 없으므로 커다란 네트워크의 경우는 VLAN 스위치라우터 등을 사용한다

스위치는 다음 5가지의 일을 한다.

러닝 : 자신의 맥 어드레스를 읽어서 저장하고 후에 다른 네트워크와 통신할 경우 자신의 브리지 테이블을 참고해서 다리를 건너게 할 것인지를 결정한다.

플로딩 : 들어온 포트를 제외한 다른 모든 포트들에게 자신의 맥 어드레스를 뿌린다, 자신의 브리지 테이블에 없을 때 다른 모든 포트로 뿌리는 것. (브로드, 멀티 캐스트의 경우)

포워딩 : 브리지가 목적지의 맥어드래스 정보를 가지고 있을 때 그 맥 어드레스로만 길을 열어주는 것을 의미한다. (목적지와 출발지가 다른 세그먼트에 있을 때)

필터링 : 출발지와 목적지가 같은 세그먼트 내에 있을 때 브리지를 막아 다른 세그먼트로 가는 길을 막는 것을 말한다. 허브와는 다르게 필터링은 콜리전 도메인을 나눌 수 있다.

에이징 : 브리지 테이블에 맥어드레스를 저장하면 일정 시간이 지나면 지워버린다.

Learning

자신의 포트에 연결된 'A'라는 PC가 통신을 위해서 프레임을 내보내면 그때 이 PC의 맥 어드레스를 읽어서 자신의 맥 어드레스 테이블('브리지 테이블'이라고 한다')에 저장한다. 그리고 나중에 어떤 PC가 'A'에게 통신할 경우에는 자신의 브리지 테이블을 참고해서 다리를 건너게 할 것인지, 아니면 못 건너가게 할 것인지를 결정하는 것이다.

Flooding

들어온 포트를 제외한 나머지 모든 포트로 뿌리는 것을 의미한다. 브리지는 어떤 프레임에 대해서 브리지를 열어줄 것인가, 아니면 못 건너가게 막을 것인가를 브리지가 관리하는 브리지 테이블을 보고 결정한다고 했다. 그런데 들어온 프레임이 찾아가는 주소를 보니 그 주소가 만약 브리지가 가지고 있는 브리지 테이블에 없는 주소라면 어떻게 할까? 다시 말해서 이 주소가 다리를 건너야 하는지, 아니면 안 건너도 되는지를 알지 못한다면 어떻게 해야 할까? 이때 사용되는 것이 바로 Flooding이다. 그냥 나머지를 포트로 뿌려주는 것이다. 이런 Flooding은 브로드캐스트나 멀티캐스트의 경우에도 발생하게 된다

Forwarding

Forwarding은 브리지가 목적지의 맥 어드레스를 자신의 브리지 테이블에 가지고 있고, 이 목적지가 출발지의 맥 어드레스와 다른 세그먼트에 존재하는 경우에 일어난다. 한마디로 목적지가 어디 있는지를 알고 있는데 그 목적지가 다리를 건너가야만 하는 경우에 Forwarding이 발생한다. Forwarding은 이전에 배운 Flooding이 모든 포트로 뿌리는 것과는 달리 오직 해당 포트쪽으로만 프레임을 뿌려준다.

Filtering

브리지를 못 넘어가게 막는다는 것을 뜻한다. 필터링은 브리지가 목적지의 맥 어드레스를 알고 있고, (즉 브리지 테이블에 목적지 맥 어드레스가 들어있는 경우) 출발지와 목적지가 같은 세그먼트에 있는 경우이다. 이 경우에는 브리지를 건너가지 않아도 통신이 일어날 수 있다. 따라서 브리지는 다리를 막는 필터링을 실시하게 된다. 브리지의 이러한 Filtering 기능 때문에 허브와는 다르게 콜리전 도메인을 나누어 줄 수 있는 것이다.

Aging

나이를 먹는다는 뜻 브리지의 Learing을 이용하여 학습했을때 출발지의 맥 어드레스를 외운 후 이것을 브리지 테이블에 저장한다. 그렇다면 얼마 동안 저장할 수 있을까? 브리지 테이블은 한정되어 있기 때문에 평생 저장하는 것은 불가능하다. 만약 한 번 배운 맥 어드레스를 평생 저장한다면 금방 브리지 테이블이 다 차버릴 것이고, 그다음에는 배워도 저장할 곳이 없어서 기억을 못하게 될 것이다. 따라서 브리지 테이블도 우리의 두뇌처럼 어느정도 시간이 지나고 나면 이 정보를 브리지 테이블에서 지우게 된다.

다시 새로운 맥 어드레스를 기억해야 하기 때문이다. 그 시간은 디폴트로는 5분, 즉 300초이다(조정가능) Aging이라는 것은 바로 이것에 관련된 타이머이다. 즉 어떤 맥 어드레스를 브리지 테이블에 저장하고 나면 그때부터 Aging이 가동되어서 저장한 후 300초가 지나도록 더 이상 그 출발지 주소를 가진 프레임이 들어오지 않으면 브리지 테이블에서 삭제시킨다.

더 이상 그 프레임이 들어오지 않으면 이라는 말은 무슨 말일까 예를 들면 지금 어떤 프레임이 브리지에 들어왔다. 브리지는 그 녀석의 출발지 주소 'AAAA(가정)'를 배운 후(Learning) 브리지 테이블에 저장하고 Aging을 시작했다. 약 280초가 지날 무렵 아까 들어온 출발지 주소와 같은 'AAAA'를 가진 녀석이 또 브리지로 들어왔다. 즉 맥 어드레스AAAA란 녀석은 자주 통신을 하고 있는것이다. 이와 같이 Aging 타이머가 다 끝나기 전에 같은 출발지를 가진 녀석이 또 브리지로 들어오게 되면 브리지는 타이머를 릿리셋하고 처음부터 다시 카운트를 한다. 이것을 Aging타이머를 리플레시 한다고 한다.

흐름

처음으로 브리지가 프레임을 접수한다. 그럼 브리지는 출발지의 맥 어드레스를 배운다. 이 경우는 브리지 테이블에 그 맥 어드레스가 들어있지 않은 경우이다. 하지만 이미 한 번 배워서 브리지 테이블에 저장되어있는 맥 어드레스가 다시 브리지에 들어왔다면 아까 배운 대로 브리지는 Aging타이머를 리플레시 해서 맨 처음부터 다시 카운트를 하는 것이다.

일단 브리지가 Learning을 마치고 나면 목적지 주소를 살펴보게 된다. 즉 목적지가 브로드 캐스트나 멀티 캐스트 또는 자신의 브리지 테이블에 저장되어 있지 않은 주소라면 아까 배운 대로 브리지는 이 프레임을 어디로 보내야 할지를 결정하지 못하기 때문에 이 프레임이 들어온 포트를 제외한 나머지 모든 포트로 뿌려버리는데, 이것을 Flooding이라고 한다.

그렇다면 만약 목적지 주소가 브리지 테이블에 저장된 주소인 경우는 어떻게 될까? 이 경우에는 다시 한 번 질문을 하게 된다. 즉 목적지 주소와 출발지 주소가 같은 세그먼트에 있는냐 하는 것이다. 만약 목적지 주소와 출발지 주소가 같은 세그먼트에 존재한다면, 즉 브리지를 건너가지 않고도 통신이 일어날 수 있다면 브리지는 나머지 모든 포트로 이프레임이 건너가는걸 막게 되는데, 이를 바로 'Filtering'이라고 한다.

하만 만약 목적지의 주소가 출발지 주소와 다른 세그먼트에 있면 어떻게 할까? 그떄는 브리지가 자신의 브리지 테이블을 살서 어떤 포트로 길을 열어줘야 하는가를 확인한 후 그 포트의 프레임을 전해 주는데, 를 'Forwarding'이라고 한다.

브리지와 스위치의 차이점

일반적으로 브리지와 스위치는 같다고 얘기한다. 스위치도 링크 레이어이고 브리지도 데이터 링크 레이어, 즉 같은 레이어의 장비이면서 하는 일도 비슷하기 떄문이다. 하지만 이 둘 사이에도 몇 가지 차이점이 있다.

  1. 스위치는 처리 방식이 하드웨어로 이루어지기 때문에 소프트웨어적으로 프레임을 처리하는 브리지에 비해서 훨씬 빠르다는 차이점이 있다. 즉 브리지의 경우는 프레임의 처리 방식이 소프트웨어적 프로그램에 의해서 처리되는 방식을 취하지만, 스위치의 경우는 처리 절차를 미리 칩에 구워서 하드웨어 방식으로 만드는 ASIC('에이직'이라고 읽음. Application-Specific Integrated Circuit의 약자)방식이기 때문에 프레임 처리 속도가 브리지에 비해서 훨씬 빠르다.

  2. 브리지는 포트들이 같은 속도를 지원하는 반면, 스위치는 서로 다른 속도를 연결해줄 수 있는 기능을 제공한다. 예를 들어 스위치는 10메가 포트와 100메가 포트가 한 장비에 같이 있게 되는데, 이는 서로 다른 속도를 연결해주는 기능을 수행한다.

  3. 스위치는 브리지에 비해 제공하는 포트 수가 훨씬 많다. 즉 브리지는 대부분 2개에서 3개정도의 포트를 가지고 있는 반면, 스위치는 몇십 또는 몇백 개의 포트를 제공할 수 있다.

  4. 스위치의 경우는 Cut-through, 또는 Store-and-forward방식을 사용하는 데 비해서 브리지는 오로지 Store-and-forward방법만을 사용한다.

스토어-앤-포워드(Store-and-forwarding)방식

이 방식은 스위치나 브리지가 일단 들어오는 프레임을 전부 받아들인 후 처리를 시작하는 방식이다. 프레임을 모두 받아들이고 나서 이 프레임이 제대로 다 들어왔는지, 에러는 없는지, 또 출발지 주소는 어디인지, 목적지 주소는 어디인지를 파악해서 처리를 해주는 방식이다. 만약 이때 에러가 발견되면 브리지나 스위치는 이 프레임을 버리고 재전송을 요구하기 떄문에 에러 복구 능력이 뛰어나다. 따라서 이런 방식은 회선에 에러가 자주 발생하거나 출발지와 목적지의 전송 매체가 다른 경우에는 자주 사용되는 방식이다.

컷스루(Cut-through)방식

이 방식은 스위치가 들어오는 프레임의 목적지 주소만 본 후 바로 전송 처리를 시작하는 방식이다. 따라서 앞에서 배운 Store-and-forward방식처럼 프레임이 다 들어오기를 기다리지 않고 앞에 들어오는 목적지 주소만을 본 후 바로 목적지로 전송하기 때문에 처음 48비트만을 보게 된다. 따라서 이전 방식에 비해서 훨씬 빨리 처리한다는 장점을 가지고 있지만, 프레임에 발생됐을지도 모를 에러를 찾아내기가 어렵기 떄문에 에러 복구 능력에는 약점을 가지고 있다. 이 2가지 방식의 장점만을 결합한 도 다른 스위칭 방식이 있는데 이것을 'Fragment-free 방식'이라고 한다.

프래그먼트-프리(Fragment-free) 방식

이 방식은 앞에서 배운 Store-and-forward 방식과 Cut-through 방식의 장점을 결합한 방식이다. 즉 전체 프레임이 다 들어올 때까지 기다릴 필요가 없다는 측면에서는 Cut-through방식을 닮았지만, 컷스루처럼 처음 48비트만을 보는 것이 아니라 처음 512비트를 보게 된다. 따라서 에러 감지 능력이 컷스루에 비해서는 우수하다고 할 수 있다.

반응형

'7. Infra > 2. Network' 카테고리의 다른 글

TCP/UDP[네트워크]  (0) 2020.08.04
TCP/IP [네트워크]  (0) 2020.08.04
IP[Internet Protocol][아이피][인터넷 프로토콜]  (0) 2020.08.04
이더넷[Ethernet][네트워크 이더넷]  (0) 2020.08.04
Network란?  (0) 2020.08.04

+ Recent posts