스위치는 L2 계층의 장비로 스위칭 허브라고도 불린다. 일반적으로는 스위치라고 간편하게 부른다. 스위치는 허브의 모든 노드들에게 영향을 미친다는 문제점을 MAC주소를 이용해 해결한 장비다. 스위치는 각 디바이스들의 MAC주소를 담고 있는 MAC 테이블을 이용해 허브보다 발전된 방식의 통신을 하는 것이므로 MAC 주소를 모르는 처음 상태에서는 허브와 같이 모든 곳에 통신을 시도하는 플로딩이 발생한다.
<예시 상황>
24포트의 스위치에 PC들이 연결되어 있다.
1번 포트 PC에서 3번 포트 PC에 신호를 전송하려 한다. 1번 포트에서 스위치로 패킷을 보내게 되고 이 패킷에 1번 PC에 대한 MAC주소를 MAC 테이블에 기록.
<MAC 테이블>
| MAC주소 | 포트 |
|---|---|
| 1번 PC MAC주소(0000.0000.0001) | 1 |
스위치는 3번 포트 PC의 MAC 주소는 아직 모르는 상태. 일단 모든 포트로 신호를 보내봄(플로딩). 이때 포트에 해당하는 PC의 MAC주소를 요청하는 방식을 ARP request방식이라고 한다.
플로딩 과정을 통해 여러 디바이스들의 MAC주소를 MAC 테이블에 기록함. 이젠 MAC 테이블을 참조해 원하는 MAC 주소의 디바이스에만 신호를 전송할 수 있게 됨.
<MAC 테이블>
| MAC주소 | 포트 |
|---|---|
| 1번 PC MAC주소(0000.0000.0001) | 1 |
| 2번 PC MAC주소(0000.0000.0002) | 2 |
| 3번 PC MAC주소(0000.0000.0003) | 3 |
...