스위치는 OSI 7Layer의 2계층 장비중 대표적인 장비중 하나이다 2계층의 주소인 MAC주소를 기반으로 동작을한다
스위치는 네트워크에서 통신을 중재하는 장비이다 이전에 스위치가 없던 오래던 네트워크에서 패킷을 전송할때에는 서로 경합되어 네트워크의 성능저하가 컸다 이런점을 보완하여 패킷을 동시에 여러 장비가 서로 간섭 없이 통신하도록 도와주는 장비이가 바로 스위치 입니다
여러 단말이 한꺼번에 통신할 수 있어 기다리거나 충돌때문에 대기하는 문제가 해결, 네트워크 전체의 통신 효율성 향상
스위치의 동작방식
1. 플러딩 (Flooding)
2. 어드레스 러닝 (Address Learning)
3. 포워딩/필터링 (Forwarding/Filtering)
스위치는 부팅을 하게되면 네트워크 관련 정보가 아무 것도 없다 이때 네트워크 통신을 중재하는 자신의 역할을 하지 못하고 허브처럼 동작을 하게 됨 (허브는 패킷이 들어온 포트를 제외하고 모든 포트로 패킷을 전달)
플러딩: 스위치가 허브와 같이 모든 포트로 패킷을 흘리는 동작 방식
스위치는 패킷이 들어오면 도착지 MAC 주소를 확인하고 자신이 가지고 있는 MAC 주소 테이블에서 해당 MAC 주소가 있는지 확인
MAC주소 테이블에 매칭되는 목적지 MAC 주소 정보가 없으면 모든 포트에 같은 내용의 패킷을 전송
스위치는 LAN 에서 동작, 자신이 정보를 갖고있지 않아도 어딘가 장비가 있다고 가정하고 이와같은 작업을 수행
-> 이러한 플러딩 동작은 스위치의 정상적인 동작인 동작이지만 제 기능을 하지 못한다는 뜻이다
스위치가 패킷의 도착지 MAC 주소를 확인하여 원하는 포트로 포워딩하는 스위치의 동작을 정상적으로 수행하려면 MAC 주소 테이블을 만들고 유지해야한다
MAC 주소 테이블: 어느 포트에 어떤 장비가 연결되어있는지에 대한 임시 테이블
어드레스 러닝(Address Learning): MAC 주소테이블을 만들고 유지하는 과정
패킷의 출발지 MAC 주소 정보를 이용하여, 패킷이 특정 포트로 들어오면 스위치에는 해당 패킷의 출발지 MAC 주소와 포트번호를 MAC주소 테이블에 기록
예를 들어 1번 포트에서 들어온 패킷 출발지 MAC 주소가 AA라면 1번 포트에 AA MAC 주소를 가진 장비가 연결되어있다로 추론하여 주소 정보를 습득
어드레스러닝은 출발지의 MAC 주소 정보를 사용하여 브로드캐스트나 멀티캐스트에 대한 MAC 주소를 학습 할 수 없다 (두가지 모두 목적지 MAC 주소 필드에서만 사용하기 때문)
포워딩: 패킷이 스위치에 들어온 경우 도착지 MAC 주소를 확인하고 자신이 가진 MAC 테이블과 비교 후 맞는 정보가 있으면 매치되는 해당 포트로 패킷을 포워딩함
필터링: 다른 포트로는 해당 패킷을 보내지 않는것
스위치는 이러한 포워딩과 필터링을 통해 목적지로만 패킷이 전달되도록 동작하고, 여러 포트에서 동시에 수행이 가능하고, 다른 포트에 영향을 미치지 않으므로 기존 통신작업으로부터 독립적으로 수행도 가능하다
일반적으로 유니캐스트 방식에 대해서만 포워딩과 필터링 작업을 수행