스위치는 들어오는 링크레이어 프레임을 출력 링크로 전달하는 역할을 한다.
레이어 2의 디바이스이고, MAC주소를 기반으로 동작한다.(IP주소 확인 x)
라우터와 비슷하게 store & forward방식으로 프레임을 전달하고
스위치는 프레임의 목적지 MAC 주소를 확인하고 MAC 주소 테이블을 참조해 해당 포트로 선택적 전송(Selective Forwarding)을 수행한다.
transparent 투명성
host는 스위치의 정보를 모른다.(자신이 스위치에 연결되어있는지 조차 모름)
plug-and-play
스위치는 연결이 되면 알아서 동작한다.
(라우터도 plug-and-play지만, IP를 할당받아야 동작할 수 있다.)
self-learning
스위치는 자신이 알아서 table을 만들어 포워딩 한다.

host는 스위치에 직접 연결된다.
스위치는 수신된 패킷을 buffering하고,
목적지 MAC 주소를 기반으로 적절한 포트로 전달한다.
스위치의 각 링크에서 이더넷 프로토콜이 개별적으로 적용된다.
- 각 링크를 독립적으로 처리하기 때문에 충돌이 발생하지 않는다.
- full-duplex
때문에 A-to-A’ 와 B-to-B’로의 전송이 동시에 충돌없이 가능하다.
스위치 테이블을 통해 알 수 있다.
스위치는 셀프 러닝을 하여 스위치 테이블을 만들수 있다.
스위치가 스위치 테이블을 만드는 메커니즘이다.
A -> A' 로 프레임을 보내는 상황이라고 하자.
(스위치 테이블을 비어있는 상태)


목적지로 향하는 경로가 여러개의 스위치로 연결되었을 경우

A-> G로 전송을 해야 할 때
S1에 보내게 된다.
S1는 출력 링크를 모르기 때문에 S4에 broadcast하고,
S4도 모르기 때문에 S2 S3에 broadcast하게 된다.
결국 서브넷 내에 연결된 모든 호스트 및 스위치에 A의 패킷이 전달되게 된다.
store & forward 방식이다라우터의 장점은 라우팅 알고리즘을 통해 optimal한 path를 정할 수 있는 것이고,
단점은 IP 주소 설정과 확인이 오래 걸린다.
스위치의 단점은 broadcast를 많이 하게 되면 오버헤드가 크다.

| 구분 | 스위치 (Switch) | 라우터 (Router) |
|---|---|---|
| 역할 | 같은 네트워크(LAN) 내 장치 연결 및 데이터 전달 | 서로 다른 네트워크(WAN과 LAN 등) 간 데이터 전달 |
| 작동 계층 | 데이터 링크 계층(2계층) / 일부 스위치는 네트워크 계층(3계층) | 네트워크 계층(3계층) |
| 주소 사용 | MAC 주소를 사용하여 데이터 전달 | IP 주소를 사용하여 데이터 전달 |
| 기본 동작 | 동일 네트워크의 장치 간 데이터를 포트로 전달 | 네트워크 간 데이터를 라우팅, 최적 경로 결정 |
| 충돌 도메인 | 각 포트가 독립적인 충돌 도메인을 형성 | 충돌 도메인과 관계 없음 |
| 브로드캐스트 도메인 | 브로드캐스트 도메인을 전달(스위치는 같은 LAN에서 사용) | 브로드캐스트 도메인을 차단(라우터는 네트워크 경계) |
| 라우팅 기능 | 없음(3계층 스위치는 제한적으로 지원) | 있음: 경로 설정, 패킷 전송 |
| 사용 위치 | 로컬 네트워크(LAN) 내 장치 간 연결 | 서로 다른 네트워크 간 연결 (LAN ↔ WAN) |
| 속도 | 패킷 전달 속도가 빠름 | 라우팅 및 처리로 인해 스위치보다 느릴 수 있음 |
| 장치 예시 | PC, 프린터, 서버 등 LAN 장치 연결 | 가정용 인터넷 공유기, ISP 네트워크 게이트웨이 |

위와 같이 하나의 스위치로 연결된 여러 부서가 있다면
효율성
브로드 캐스트 트래픽은 네트워크 전체로 퍼지기 때문에 트래픽이 생긴다.
보안 문제
CS과에서 패킷을 전달을 할 때 broadcast하기 때문에 다른 부서인 EE에 까지 패킷이 전달될 수 있다.
사용자 이동
CS부서의 사용자가 EE 부서로 이동하게 되면(잠깐이동) 물리적으로 선을 연결해 주어야 한다.
이러한 문제들을 해결하기 위해 VLAN이 개발되었다.
하나의 스위치의 포트들을 각 부서에 할당하여 Logical 하게 각 부서로 향하는 프레임을 서로 격리한다.

위와 같이 포트를 실제 물리적으로 나누는 것이 아니라 logical 하게만 나누어 각 포트를 사용하는 부서를 할당하야 트래픽을 격리한다.

traffic isolation
하나의 VLAN에 속한 host끼리 패킷을 주고 받을때는 연결된 라우터로
트래픽이 격리되어 브로드캐스트 트래픽이 네트워크 전체로 퍼지는 것을 막을 수 있고, 보안 문제도 해결된다.
사용자 이동 가능
한 사용자가 부서를 이동할 때는 포트만 바꾸면 되므로 간단하게 처리가 가능하다.
➡️ 유연한 네트워크 관리 가능
VLAN 간 트래픽 전달
두 부서의 VLAN은 논리적으로는 다른 LAN이기 때문에 트래픽 전송이 스위치에 연결한 라우터를 거쳐야만 한다.
이러한 외부 라우터를 따로 연결해 주지않고 스위치 내부적으로 라우터의 기능을 넣은 3계층 스위치를 사용하기도 한다.
하지만 Port-Based VLAN은 다음과 같은 한계가 있다.
즉, 라우터를 거치다 보면 데이터 처리 속도가 느려질 수 있고, VLAN이 많아질수록 라우터에 과부하가 걸린다.
또한, 포트를 고정해서 VLAN을 관리하면 VLAN의 변경이(이동) 빈번한 상황에서는 관리가 어렵고 불편하다
이를 해결하기 위해 VLAN은 하나의 스위치를 넘어 다른 스위치까지 확장 하고,
이를 연결하기 위해 트렁크 포트를 사용한다.
여러개의 스위치로 VLAN을 구성하고
트렁크 포트를 사용하여 VLAN 트래픽을 스위치 간 효율적으로 전송한다.
트렁크 포트로 전송시 4바이트의 802.1Q VLAN 태그를 프레임에 추가하여 스위치가 트래픽을 올바른 VLAN으로 전송하게 한다.
802.1Q VLAN 태그에는 VLAN 트래픽을 식별할 수 있는 ID가 포함된다.(VLAN ID)
VLAN 태그(VLAN Tag)는 송신 측의 스위치에 의해 추가되고, 수신 측에 있는 스위치에 의해 파싱되고 제거된다.

스위치 마다 하나의 트렁크 포트을 만들어 2개의 VLAN을 연결한다.
트렁크 포트(trunk port) 는 모든 VLAN에 속하며,
한 VLAN에서 전송한 프레임들을 트렁크 링크를 통해 다른 스위치로 전달해준다.
이때도 마찬가지로 다른 VLAN과의 트래픽전송은 라우터나 3계층 스위치를 통해 이루어 진다.
효율성확장성유연성
4바이트의 802.1Q VLAN 태그에는
태그 프로토콜 식별자(Tag Protocol Identifier, TPID)태그 제어 정보(Tag Control Information)가 각각 2바이트 씩 포함된다.
그 중 태그 제어 정보(Tag Control Information)에는
VLAN 식별자(identifier) 필드가 포함되며 이를 통해 VLAN의 트래픽을 구분한다.
이때 VLAN 태그가 추가되면서 프레임의 길이가 변경되므로, CRC 값도 재계산된다.