Network_07 : 스위치와 MAC 주소

이준익·2026년 5월 15일

허브는 들어온 신호를 모든 포트로 뿌렸다.

누가 받아야 하는지 판단하지 않고, 일단 모두에게 보내는 방식이었다.
그래서 같은 네트워크 안에 장비가 많아질수록 불필요한 전달이 많아지고, 충돌 문제도 생길 수 있었다.

스위치는 이 문제를 줄이기 위해 등장한 장비라고 볼 수 있다.

스위치는 같은 LAN 안에서 이더넷 프레임을 전달하는 데이터 링크 계층 장비다.
여기서 중요한 건 스위치가 아무 포트로나 막 보내는 게 아니라, MAC 주소를 보고 어느 포트로 보낼지 판단한다는 점이다.

쉽게 말하면 허브가 “일단 다 불러보는 사람”이라면, 스위치는 “주소록을 보면서 필요한 사람에게만 전달하는 사람”에 가깝다.

스위치가 보는 것

스위치가 이더넷 프레임을 받으면 가장 먼저 프레임 안의 MAC 주소를 본다.

이더넷 프레임에는 출발지 MAC 주소와 목적지 MAC 주소가 들어 있다.

  • 출발지 MAC 주소: 이 프레임을 보낸 장비의 주소
  • 목적지 MAC 주소: 이 프레임을 받아야 하는 장비의 주소

스위치는 이 두 주소를 같은 방식으로 사용하지 않는다.

출발지 MAC 주소는 학습할 때 사용한다.
목적지 MAC 주소는 어디로 보낼지 판단할 때 사용한다.

이 차이가 꽤 중요하다.

스위치는 프레임을 받자마자 이렇게 생각한다고 보면 된다.

“이 프레임이 1번 포트로 들어왔네?”
“출발지 MAC 주소가 AA:AA:AA라고?”
“그럼 AA:AA:AA 장비는 1번 포트 쪽에 있구나.”

이렇게 스위치는 출발지 MAC 주소와 들어온 포트 번호를 기억한다.

이 정보를 저장해두는 표가 MAC 주소 테이블이다.

MAC 주소 테이블

MAC 주소 테이블은 스위치가 가지고 있는 일종의 주소록이다.

MAC 주소포트
AA:AA:AA1번 포트
BB:BB:BB2번 포트
CC:CC:CC3번 포트

이 테이블이 있으면 스위치는 프레임을 받을 때마다 모든 포트로 뿌릴 필요가 없다.

예를 들어 목적지 MAC 주소가 BB:BB:BB라면, 스위치는 MAC 주소 테이블을 보고 이렇게 판단한다.

“BB:BB:BB는 2번 포트에 있네.”
“그럼 이 프레임은 2번 포트로만 보내면 되겠다.”

이게 스위치가 허브보다 효율적인 이유다.

허브는 모든 포트로 보낸다.
스위치는 알고 있는 목적지라면 해당 포트로만 보낸다.

스위치는 출발지를 보고 학습한다

처음에는 스위치의 MAC 주소 테이블이 비어 있다.

스위치가 처음부터 모든 장비의 MAC 주소를 알고 있는 건 아니다.
프레임이 들어오는 과정을 보면서 하나씩 배운다.

예를 들어 A 컴퓨터가 B 컴퓨터에게 프레임을 보낸다고 해보자.

A의 MAC 주소는 AA:AA:AA이고, A는 스위치의 1번 포트에 연결되어 있다.

스위치가 이 프레임을 1번 포트에서 받으면, 먼저 출발지 MAC 주소를 확인한다.

“AA:AA:AA가 1번 포트로 들어왔네.”
“그러면 AA:AA:AA는 1번 포트 쪽에 있구나.”

이렇게 테이블에 기록한다.

MAC 주소포트
AA:AA:AA1번 포트

여기서 중요한 건 스위치가 목적지 MAC 주소를 보고 학습하는 게 아니라는 점이다.
스위치는 프레임이 들어온 포트와 출발지 MAC 주소를 묶어서 학습한다.

왜냐하면 프레임이 어느 포트에서 들어왔다는 건, 그 포트 방향에 출발지 장비가 있다는 뜻이기 때문이다.

목적지를 알면 포워딩한다

스위치가 목적지 MAC 주소를 이미 알고 있다면, 해당 포트로만 프레임을 보낸다.

이걸 포워딩이라고 한다.

예를 들어 MAC 주소 테이블이 이렇게 되어 있다고 하자.

MAC 주소포트
AA:AA:AA1번 포트
BB:BB:BB2번 포트

이번에는 A가 B에게 프레임을 보낸다.

스위치는 프레임을 받으면서 이렇게 판단한다.

“출발지 AA:AA:AA는 1번 포트구나. 이미 알고 있네.”
“목적지 BB:BB:BB는 어디 있지?”
“테이블을 보니 2번 포트에 있네.”
“그럼 2번 포트로만 보내자.”

이게 포워딩이다.

프레임이 필요한 곳으로만 이동하니까 네트워크가 훨씬 조용해진다.
불필요하게 다른 장비들이 프레임을 받을 필요도 줄어든다.

목적지를 모르면 플러딩한다

그런데 스위치가 항상 목적지를 알고 있는 건 아니다.

처음 보는 MAC 주소라면 MAC 주소 테이블에 정보가 없다.

예를 들어 A가 C에게 프레임을 보내려고 한다.
그런데 스위치의 MAC 주소 테이블에는 아직 C의 MAC 주소가 없다.

MAC 주소포트
AA:AA:AA1번 포트

스위치는 목적지 CC:CC:CC를 찾으려고 테이블을 본다.

“CC:CC:CC가 어디 있지?”
“테이블에 없네.”
“그럼 어디 있는지 모르니까 일단 다른 포트로 다 보내보자.”

이렇게 들어온 포트를 제외한 나머지 포트로 프레임을 보내는 동작을 플러딩이라고 한다.

플러딩은 허브처럼 무작정 모든 포트로 뿌리는 것과 비슷해 보이지만, 차이가 있다.

허브는 항상 뿌린다.
스위치는 목적지를 모를 때만 뿌린다.

그리고 이후 C가 응답을 보내면, 스위치는 그 프레임의 출발지 MAC 주소를 보고 다시 학습한다.

“CC:CC:CC가 3번 포트에서 들어왔네.”
“그러면 C는 3번 포트 쪽에 있구나.”

이제 MAC 주소 테이블은 이렇게 된다.

MAC 주소포트
AA:AA:AA1번 포트
CC:CC:CC3번 포트

다음부터 C에게 가는 프레임은 굳이 플러딩하지 않아도 된다.
스위치는 3번 포트로만 보내면 된다.

보낼 필요가 없으면 필터링한다

스위치는 프레임을 무조건 전달하지 않는다.

목적지 MAC 주소를 확인했는데, 그 목적지가 프레임이 들어온 포트와 같은 포트에 있다고 판단하면 굳이 다시 내보낼 필요가 없다.

이런 경우 스위치는 프레임을 버린다.
이 동작을 필터링이라고 한다.

처음에는 조금 이상하게 느껴질 수 있다.

“프레임을 전달하는 장비인데 왜 버리지?”

하지만 스위치 입장에서 생각하면 자연스럽다.

예를 들어 어떤 프레임이 1번 포트로 들어왔다.
그런데 목적지 MAC 주소도 1번 포트 쪽에 있다고 테이블에 기록되어 있다.

그러면 스위치는 이렇게 판단한다.

“이 프레임의 목적지도 1번 포트 쪽에 있네.”
“그럼 굳이 다른 포트로 보낼 필요가 없겠다.”
“내가 보내면 오히려 불필요한 전달이 되겠네.”

이렇게 불필요한 전달을 막는 것이 필터링이다.

여기서 중요한 건 스위치가 단순히 전달만 하는 장비가 아니라, 전달할지 말지도 판단한다는 점이다.

MAC 주소 테이블은 계속 유지되지 않는다

스위치가 한 번 학습한 MAC 주소를 영원히 기억하면 편할 것 같지만, 실제 네트워크에서는 장비 위치가 바뀔 수 있다.

노트북을 다른 포트에 연결할 수도 있고, 장비가 꺼질 수도 있고, 네트워크 구성이 바뀔 수도 있다.

그래서 스위치는 MAC 주소 테이블의 항목을 일정 시간 동안만 유지한다.

오랫동안 사용되지 않은 항목은 삭제된다.
이 과정을 에이징이라고 한다.

에이징은 오래된 주소록을 정리하는 작업이라고 보면 된다.

예전에 1번 포트에 있던 장비가 지금도 1번 포트에 있다는 보장은 없다.
스위치가 오래된 정보를 계속 믿고 있으면 잘못된 포트로 프레임을 보낼 수 있다.

그래서 스위치는 일정 시간이 지나도록 해당 MAC 주소에서 프레임이 들어오지 않으면 테이블에서 지운다.

그리고 나중에 다시 프레임이 들어오면 새롭게 학습한다.

스위치의 판단 흐름

스위치의 동작을 하나의 흐름으로 정리하면 이렇다.

스위치가 프레임을 받는다.

먼저 출발지 MAC 주소를 본다.
그리고 이 프레임이 들어온 포트와 출발지 MAC 주소를 MAC 주소 테이블에 기록한다.

그 다음 목적지 MAC 주소를 본다.

목적지 MAC 주소가 테이블에 있으면 해당 포트로만 보낸다.
이것이 포워딩이다.

목적지 MAC 주소가 테이블에 없으면 들어온 포트를 제외한 나머지 포트로 보낸다.
이것이 플러딩이다.

목적지가 프레임이 들어온 포트와 같은 포트에 있다고 판단되면 굳이 보내지 않는다.
이것이 필터링이다.

그리고 오래된 MAC 주소 테이블 항목은 시간이 지나면 삭제된다.
이것이 에이징이다.

스위치를 공부할 때는 이 용어들을 따로 외우기보다, 스위치가 프레임을 받았을 때 머릿속으로 어떤 판단을 하는지 따라가보는 게 더 이해하기 좋다.

스위치는 이렇게 생각한다.

“누가 보냈지?”
“어느 포트에서 들어왔지?”
“그럼 이 MAC 주소는 이 포트에 있다고 기억하자.”
“목적지는 어디지?”
“알면 그 포트로만 보내고, 모르면 일단 퍼뜨리자.”
“보낼 필요가 없으면 보내지 말자.”
“오래된 정보는 지우자.”

결국 스위치의 핵심은 MAC 주소 테이블이다.

허브가 신호를 단순히 반복해서 뿌리는 장비였다면, 스위치는 MAC 주소를 학습하고, 그 정보를 바탕으로 프레임의 이동 방향을 결정하는 장비다.

같은 LAN 안에서 프레임이 어디로 가야 하는지 판단하는 것.
이게 스위치가 하는 가장 중요한 일이다.

profile
밥 잘 먹고 잠 잘 잡니다

0개의 댓글