⚠️ 들어가기 앞서
경북대학교 컴퓨터학부 COMP0414-001 컴퓨터망 과목을 공부하며 정리한 글입니다.
스위치는 링크 계층의 디바이스이며 ethernet frame을 저장 및 포워딩하는 역할을 한다.
좀 더 자세히는, incoming frame의 MAC 주소를 확인하고 outgoing link를 찾아 CSMA/CD
를 이용해 내보낸다.
스위치의 각각의 incoming link에는 ethernet protocol이 사용되어 충돌이 발생하지 않고 전이중 통신을 구현할 수 있다.
예컨대 A에서 A' 로의 통신과 B에서 B' 로의 통신은 동시에 충돌 없이 이루어질 수 있다. (같은 destination으로는 불가능하다)
forwarding 작업을 수행하는 데 필요한 switch table을 어떻게 만드는지에 대해서 자세히 알아보고자 한다.
스위치는 어느 인터페이스를 통해 어느 호스트로 도달할 수 있는지 '학습'한다.
어떤 sender가 보낸 frame이 스위치에 도달하면 스위치는 그 sender의 위치를 알 수 있다. 이 정보를 switch table에 기록해 나간다. (sender-location pair) 그러면 다음 번에 그 sender로 향하는 frame이 들어온다면 어느 interface로 내보내야 하는지 알 수 있게 되는 것이다.
만약 어떤 frame이 들어왔는데 거기에 맞는 인터페이스 정보가 아직 테이블에 없다면 sender를 제외한 모든 interface로 해당 정보를 뿌린다. (flood)
스위치와 라우터는 자신에게 들어온 패킷을 읽고, 적절한 output으로 내보내는 store-and-forward 작업을 수행함에 있어 공통점이 있다.
둘의 차이점은 크게 두 가지가 있다.
컴퓨터 네트워크에서 여러 개의 구별되는 브로드캐스트 도메인을 만들기 위해 단일 2계층 네트워크를 분할할 수 있는데, 이렇게 분리되면 패킷들은 하나 이상의 라우터들 사이에서만 이동할 수 있다. 이러한 도메인을 가상 랜(영어: Virtual LAN)으로 부르며, 가상 근거리 통신망(영어: Virtual Local Area Network), 가상 LAN(영어: Virtual LAN), 또는 간단히 VLAN으로도 표기한다. (위키백과)
앞서 알아보았던 ARP나 DHCP 프로토콜은 브로드캐스트 메시지가 빈번히 발생한다. 브로드캐스트 메시지란 LAN 환경 안에 있는 모든 노드에게 전달하는 것을 의미한다. 만약 LAN 환경이 커지게 되어서 수많은 컴퓨터가 LAN 환경에 속해 있는 상황이라면, 필요 이상으로 많은 컴퓨터들에게 메시지를 전달하는 것 또한 오버헤드가 크게 발생하고, 마찬가지로 사실상 나와는 상관없는 브로드캐스트 메시지를 지속적으로 받는 입장에서도 성능 측면에서 비효율적이다.
따라서 LAN 환경을 분할하여 여러 개의 브로드캐스트 도메인을 만들고자 하는 필요성이 생겼다.
하나의 스위치에는 여러 개의 포트가 있다.
VLAN은 이 포트들을 가상 랜에 소속시켜 줌으로써 서로 같은 네트워크 상에서 논리적으로 다른 LAN 상에 있을 수 있게 한다.
하나의 물리적 스위치를 이용해 여러 개의 논리적 스위치를 만드는 셈이라고 볼 수 있다.
이런 방식으로 스위치를 나누면 트래픽을 분할하는 효과가 있어 브로드캐스트 등에 유리하다. 만약 16개의 포트를 8개의 포트를 갖는 두 개의 VLAN으로 나눈다면 각 VLAN 상에서 보내는 브로드캐스트 메시지는 반대편 VLAN에 도달하지 않게 된다.
이와 비슷한 맥락으로 VLAN 간에 동적인 포트 할당 (dynamic membership) 이 가능해진다는 장점 또한 있다.
그리고 각각의 VLAN 상에는 trunk port
라는 특별한 포트가 있는데, 이 포트는 다른 VLAN 간에 오가는 frame을 carry 한다.