스위치의 구조
스위치의 구조
1. 스위치란?
정의
- **데이터 링크 계층(2계층)**에서 동작하는 네트워크 장비
- 레이어 2 스위치 또는 스위칭 허브라고도 불림
- MAC 주소를 기반으로 프레임을 전달
스위치의 특징
┌─────────────────────────────────────────────────────────────┐
│ 스위치 특징 │
├─────────────────────────────────────────────────────────────┤
│ │
│ • 데이터 링크 계층 (2계층) 장비 │
│ • MAC 주소를 인식하고 학습 │
│ • MAC 주소 테이블 보유 │
│ • 목적지 포트로만 프레임 전송 │
│ • 전이중 (Full Duplex) 통신 지원 │
│ • 각 포트가 독립된 콜리전 도메인 │
│ • 허브보다 효율적이고 빠름 │
│ │
└─────────────────────────────────────────────────────────────┘OSI 계층별 장비 비교
┌─────────────────────────────────────────────────────────────┐
│ OSI 계층별 장비 │
├─────────┬───────────────────────────────────────────────────┤
│ 7계층 │ 응용 계층 │ L7 스위치 (ADC) │
│ 6계층 │ 표현 계층 │ │
│ 5계층 │ 세션 계층 │ │
│ 4계층 │ 전송 계층 │ L4 스위치 (로드밸런서) │
│ 3계층 │ 네트워크 계층 │ 라우터, L3 스위치 │
├─────────┼───────────────────┼───────────────────────────────┤
│ 2계층 │ 데이터 링크 계층 │ ★ 스위치 (L2 스위치) │
├─────────┼───────────────────┼───────────────────────────────┤
│ 1계층 │ 물리 계층 │ 리피터, 허브 │
└─────────┴───────────────────┴───────────────────────────────┘2. 허브 vs 스위치
동작 방식 비교
허브 (Hub) - 1계층 장비:
────────────────────────────────────────────────
┌─────────────┐
[PC-A] ────┤ ├──── [PC-B]
│ HUB │
[PC-C] ────┤ ├──── [PC-D]
└─────────────┘
PC-A → PC-C 전송 시:
→ 모든 포트로 전송 (플러딩)
→ PC-B, PC-D도 데이터 수신 (낭비)
스위치 (Switch) - 2계층 장비:
────────────────────────────────────────────────
┌─────────────┐
[PC-A] ────┤ ├──── [PC-B]
│ SWITCH │
[PC-C] ────┤ MAC 테이블 ├──── [PC-D]
└─────────────┘
PC-A → PC-C 전송 시:
→ MAC 테이블 확인
→ PC-C 포트로만 전송 (효율적)상세 비교표
| 항목 | 허브 (Hub) | 스위치 (Switch) |
|---|---|---|
| 동작 계층 | 물리 계층 (1계층) | 데이터 링크 계층 (2계층) |
| MAC 주소 인식 | 불가 | 가능 |
| MAC 테이블 | 없음 | 있음 |
| 데이터 전송 | 모든 포트 (플러딩) | 목적지 포트만 |
| 콜리전 도메인 | 전체가 하나 | 포트별 분리 |
| 통신 방식 | 반이중 | 전이중 |
| 대역폭 | 공유 | 포트별 독립 |
| 보안 | 취약 (모두 수신) | 양호 (목적지만 수신) |
| 가격 | 저렴 | 비쌈 (현재는 차이 적음) |
3. MAC 주소 테이블
MAC 주소 테이블이란?
┌─────────────────────────────────────────────────────────────┐
│ MAC 주소 테이블 │
│ (= 브리지 테이블, CAM 테이블) │
├─────────────────────────────────────────────────────────────┤
│ │
│ 정의: │
│ • 스위치 내부에 존재하는 데이터베이스 │
│ • 포트 번호와 해당 포트에 연결된 MAC 주소 매핑 │
│ │
│ 특징: │
│ • 동적으로 학습 (자동 등록) │
│ • 일정 시간 후 만료 (에이징 타임, 기본 300초) │
│ • 수동 등록도 가능 (정적 MAC) │
│ │
└─────────────────────────────────────────────────────────────┘MAC 주소 테이블 구조
MAC 주소 테이블 예시:
┌─────────────────────────────────────────────────────────────┐
│ 스위치 MAC 주소 테이블 │
├──────────┬───────────────────┬──────────┬───────────────────┤
│ VLAN │ MAC 주소 │ 포트 │ 타입 │
├──────────┼───────────────────┼──────────┼───────────────────┤
│ 1 │ 00:23:AE:D9:7A:01 │ Fa0/1 │ DYNAMIC │
│ 1 │ 00:23:AE:D9:7A:02 │ Fa0/2 │ DYNAMIC │
│ 1 │ 00:23:AE:D9:7A:03 │ Fa0/3 │ DYNAMIC │
│ 1 │ 00:11:22:33:44:55 │ Fa0/4 │ STATIC │
└──────────┴───────────────────┴──────────┴───────────────────┘
• DYNAMIC: 자동 학습된 MAC 주소
• STATIC: 관리자가 수동 등록한 MAC 주소스위치 전원 ON 직후
스위치 시작 시:
┌─────────────────────────────────────────────────────────────┐
│ MAC 주소 테이블 (비어있음) │
├──────────┬───────────────────┬──────────┬───────────────────┤
│ VLAN │ MAC 주소 │ 포트 │ 타입 │
├──────────┼───────────────────┼──────────┼───────────────────┤
│ │ │ │ │
│ │ (없음) │ │ │
│ │ │ │ │
└──────────┴───────────────────┴──────────┴───────────────────┘
※ 전원을 켜면 MAC 주소 테이블은 비어있음
※ 통신이 발생하면서 학습 시작4. MAC 주소 학습 (Learning)
학습 과정
MAC 주소 학습 과정:
초기 상태: MAC 테이블 비어있음
────────────────────────────────────────────────
[PC-A] ─────── 포트 1 포트 3 ─────── [PC-C]
MAC: AA:01 │ │ MAC: CC:03
│ ┌──────────┐ │
└────────┤ SWITCH ├──────────┘
│ │
│MAC 테이블│
[PC-B] ────────────────┤ (비어있음)├──────────────── [PC-D]
MAC: BB:02 포트 2 └──────────┘ 포트 4 MAC: DD:04
1단계: PC-A가 프레임 전송
────────────────────────────────────────────────
PC-A → 스위치
┌────────────────┬────────────────┬──────────────┐
│ 목적지: CC:03 │ 출발지: AA:01 │ 데이터 │
└────────────────┴────────────────┴──────────────┘
스위치 동작:
① 출발지 MAC(AA:01)과 수신 포트(1) 학습
② MAC 테이블에 등록
┌───────────────────────────────────────┐
│ MAC 주소 테이블 │
├──────────────┬───────┬────────────────┤
│ AA:01 │ 포트1 │ DYNAMIC │
└──────────────┴───────┴────────────────┘
2단계: 목적지 MAC 확인 → 플러딩
────────────────────────────────────────────────
"CC:03이 어디있지?" → MAC 테이블에 없음!
→ 수신 포트(1)를 제외한 모든 포트로 전송 (플러딩)
[PC-B] ← 프레임 (목적지 아님 → 폐기)
[PC-C] ← 프레임 (목적지 맞음 → 수신!)
[PC-D] ← 프레임 (목적지 아님 → 폐기)
3단계: PC-C가 응답
────────────────────────────────────────────────
PC-C → 스위치
┌────────────────┬────────────────┬──────────────┐
│ 목적지: AA:01 │ 출발지: CC:03 │ 응답 │
└────────────────┴────────────────┴──────────────┘
스위치 동작:
① 출발지 MAC(CC:03)과 수신 포트(3) 학습
② MAC 테이블에 등록
┌───────────────────────────────────────┐
│ MAC 주소 테이블 │
├──────────────┬───────┬────────────────┤
│ AA:01 │ 포트1 │ DYNAMIC │
│ CC:03 │ 포트3 │ DYNAMIC │
└──────────────┴───────┴────────────────┘
4단계: 목적지 MAC 확인 → 포워딩
────────────────────────────────────────────────
"AA:01이 어디있지?" → 포트 1번!
→ 포트 1번으로만 전송 (유니캐스트)
[PC-A] ← 응답 프레임 수신!5. 스위치의 3가지 동작
플러딩, 포워딩, 필터링
┌─────────────────────────────────────────────────────────────┐
│ 스위치의 3가지 동작 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. 플러딩 (Flooding) │
│ ────────────────── │
│ • 목적지 MAC이 테이블에 없을 때 │
│ • 수신 포트를 제외한 모든 포트로 전송 │
│ • 브로드캐스트 프레임도 플러딩 │
│ │
│ 2. 포워딩 (Forwarding) │
│ ────────────────── │
│ • 목적지 MAC이 테이블에 있을 때 │
│ • 해당 포트로만 프레임 전송 │
│ • 효율적인 데이터 전달 │
│ │
│ 3. 필터링 (Filtering) │
│ ────────────────── │
│ • 출발지와 목적지가 같은 포트일 때 │
│ • 프레임을 전송하지 않음 (폐기) │
│ • 불필요한 트래픽 차단 │
│ │
└─────────────────────────────────────────────────────────────┘동작 다이어그램
플러딩 (Flooding):
────────────────────────────────────────────────
목적지 MAC이 테이블에 없음
[PC-A] ════→ ┌────────┐ ════→ [PC-B]
│ SWITCH │ ════→ [PC-C]
└────────┘ ════→ [PC-D]
수신 포트 제외, 나머지 모든 포트로 전송
포워딩 (Forwarding):
────────────────────────────────────────────────
목적지 MAC이 테이블에 있음
[PC-A] ════→ ┌────────┐
│ SWITCH │ ════→ [PC-C] 만!
└────────┘
해당 포트로만 전송
필터링 (Filtering):
────────────────────────────────────────────────
출발지와 목적지가 같은 세그먼트
[PC-A] ═══╗
╠══→ ┌────────┐
[PC-B] ═══╝ │ SWITCH │ (전송 안 함)
└────────┘
같은 포트끼리 통신 → 스위치가 중계하지 않음MAC 주소 필터링
┌─────────────────────────────────────────────────────────────┐
│ MAC 주소 필터링 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 정의: │
│ MAC 주소를 기준으로 목적지를 선택하는 것 │
│ │
│ 동작: │
│ 1. 프레임 수신 │
│ 2. 목적지 MAC 주소 확인 │
│ 3. MAC 테이블 조회 │
│ 4. 해당 포트로만 전송 (또는 플러딩) │
│ │
│ 효과: │
│ • 불필요한 트래픽 감소 │
│ • 대역폭 효율 증가 │
│ • 보안 향상 (목적지만 수신) │
│ │
└─────────────────────────────────────────────────────────────┘6. 스위치의 프레임 처리 방식
3가지 스위칭 방식
┌─────────────────────────────────────────────────────────────┐
│ 스위칭 방식 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. 스토어 앤 포워드 (Store-and-Forward) │
│ ──────────────────────────────────────── │
│ ┌──────────────────────────────────────┐ │
│ │ 전체 프레임 수신 → FCS 검증 → 전송 │ │
│ └──────────────────────────────────────┘ │
│ • 전체 프레임을 버퍼에 저장 │
│ • FCS로 오류 검사 후 전송 │
│ • 가장 안정적, 지연 시간 김 │
│ • 대부분의 스위치가 사용 │
│ │
│ 2. 컷스루 (Cut-Through) │
│ ──────────────────────────────────────── │
│ ┌──────────────────────────────────────┐ │
│ │ 목적지 MAC 확인 즉시 → 전송 시작 │ │
│ └──────────────────────────────────────┘ │
│ • 목적지 MAC(6바이트) 확인 후 바로 전송 │
│ • 가장 빠름, 오류 검사 없음 │
│ • 오류 프레임도 전송됨 │
│ │
│ 3. 프래그먼트 프리 (Fragment-Free) │
│ ──────────────────────────────────────── │
│ ┌──────────────────────────────────────┐ │
│ │ 64바이트 수신 → 전송 │ │
│ └──────────────────────────────────────┘ │
│ • 최소 프레임 크기(64바이트)까지 확인 │
│ • 충돌로 인한 단편 프레임 필터링 │
│ • 컷스루와 스토어앤포워드의 절충 │
│ │
└─────────────────────────────────────────────────────────────┘스위칭 방식 비교
| 방식 | 확인 데이터 | 오류 검사 | 지연 시간 | 안정성 |
|---|---|---|---|---|
| 스토어 앤 포워드 | 전체 프레임 | O (FCS) | 길다 | 높음 |
| 컷스루 | 6바이트 (MAC) | X | 짧다 | 낮음 |
| 프래그먼트 프리 | 64바이트 | 부분적 | 중간 | 중간 |
7. 콜리전 도메인과 브로드캐스트 도메인
콜리전 도메인
허브: 콜리전 도메인 = 1개 (전체)
────────────────────────────────────────────────
┌─────────────────────────────────────────────────────────────┐
│ 하나의 콜리전 도메인 │
│ │
│ [PC-A] [PC-B] [PC-C] [PC-D] │
│ │ │ │ │ │
│ └─────────┴────┬────┴─────────┘ │
│ │ │
│ [ HUB ] │
│ │
│ ※ 모든 PC가 하나의 콜리전 도메인 공유 │
│ ※ 동시 전송 시 충돌 발생 │
└─────────────────────────────────────────────────────────────┘
스위치: 콜리전 도메인 = 포트 수만큼
────────────────────────────────────────────────
┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐
│도메인1│ │도메인2│ │도메인3│ │도메인4│
│[PC-A] │ │[PC-B] │ │[PC-C] │ │[PC-D] │
└───┬───┘ └───┬───┘ └───┬───┘ └───┬───┘
│ │ │ │
└─────────┴────┬────┴─────────┘
│
[ SWITCH ]
※ 각 포트가 독립된 콜리전 도메인
※ 충돌 없음 (전이중 통신)브로드캐스트 도메인
스위치: 브로드캐스트 도메인 = 1개
────────────────────────────────────────────────
┌─────────────────────────────────────────────────────────────┐
│ 하나의 브로드캐스트 도메인 │
│ │
│ [PC-A] [PC-B] [PC-C] [PC-D] │
│ │ │ │ │ │
│ └─────────┴────┬────┴─────────┘ │
│ │ │
│ [ SWITCH ] │
│ │
│ ※ 브로드캐스트 프레임은 모든 포트로 전송 │
│ ※ 스위치는 브로드캐스트를 차단하지 못함 │
└─────────────────────────────────────────────────────────────┘
라우터: 브로드캐스트 도메인 분리
────────────────────────────────────────────────
┌───────────────────┐ ┌───────────────────┐
│ 브로드캐스트 │ │ 브로드캐스트 │
│ 도메인 1 │ │ 도메인 2 │
│ │ │ │
│ [PC-A] [PC-B] │ │ [PC-C] [PC-D] │
│ │ │ │ │ │ │ │
│ └────┬───┘ │ │ └────┬───┘ │
│ │ │ │ │ │
│ [SWITCH] │ │ [SWITCH] │
│ │ │ │ │ │
└─────────┼────────┘ └─────────┼────────┘
│ │
└───────[ ROUTER ]───────┘
※ 라우터가 브로드캐스트 도메인을 분리8. 전이중 통신
스위치의 전이중 통신
┌─────────────────────────────────────────────────────────────┐
│ 전이중 통신 (Full Duplex) │
├─────────────────────────────────────────────────────────────┤
│ │
│ [PC-A] ←════════════════════════════════→ [SWITCH] │
│ ←════════════════════════════════→ │
│ │
│ • 송신과 수신이 동시에 가능 │
│ • 별도의 송신/수신 회선 사용 │
│ • 충돌 없음 → CSMA/CD 불필요 │
│ • 100Mbps 포트 = 실제 200Mbps 처리 가능 │
│ │
└─────────────────────────────────────────────────────────────┘대역폭 비교
반이중 (허브): 대역폭 공유
────────────────────────────────────────────────
100Mbps (공유)
┌─────────────────────────┐
│ │
[PC-A] [PC-B] [PC-C] [PC-D]
│ │ │ │
└─────────┴────┬────┴─────────┘
│
[ HUB ]
실효 대역폭: ~25Mbps/PC (4대 기준)
전이중 (스위치): 대역폭 독립
────────────────────────────────────────────────
100Mbps 100Mbps 100Mbps 100Mbps
↕ ↕ ↕ ↕
[PC-A] [PC-B] [PC-C] [PC-D]
│ │ │ │
└────────┴───┬────┴────────┘
│
[ SWITCH ]
실효 대역폭: 100Mbps/PC (각각 독립)
(전이중 시 200Mbps)9. 스위치 종류
레이어별 스위치
┌─────────────────────────────────────────────────────────────┐
│ 스위치 종류 │
├─────────────────────────────────────────────────────────────┤
│ │
│ L2 스위치 (레이어 2) │
│ ──────────────────── │
│ • MAC 주소 기반 스위칭 │
│ • 일반적인 스위치 │
│ • 가격 저렴 │
│ │
│ L3 스위치 (레이어 3) │
│ ──────────────────── │
│ • IP 주소 기반 라우팅 가능 │
│ • 스위치 + 라우터 기능 │
│ • VLAN 간 라우팅 │
│ • 하드웨어 기반 고속 처리 │
│ │
│ L4 스위치 (레이어 4) │
│ ──────────────────── │
│ • TCP/UDP 포트 기반 스위칭 │
│ • 로드 밸런싱 │
│ • 서버 부하 분산 │
│ │
│ L7 스위치 (레이어 7) │
│ ──────────────────── │
│ • 애플리케이션 레벨 스위칭 │
│ • HTTP 헤더, 쿠키 기반 분산 │
│ • ADC (Application Delivery Controller) │
│ │
└─────────────────────────────────────────────────────────────┘관리 방식별 스위치
| 종류 | 특징 | 용도 |
|---|---|---|
| 비관리형 (Unmanaged) | 설정 불가, 플러그 앤 플레이 | 소규모, 가정용 |
| 관리형 (Managed) | 웹/CLI 설정, VLAN, QoS | 기업용 |
| 스마트 (Smart) | 제한적 관리 기능 | 중소기업용 |
| 스태커블 (Stackable) | 여러 대를 하나처럼 관리 | 데이터센터 |
10. 스패닝 트리 프로토콜 (STP)
STP가 필요한 이유
루프 문제:
────────────────────────────────────────────────
[SW-A] ════════════════════ [SW-B]
║ ║
║ ║
╚═══════════ [SW-C] ════════╝
위 구성에서 브로드캐스트 발생 시:
→ 프레임이 무한 순환 (루프)
→ 브로드캐스트 스톰
→ 네트워크 마비
STP 적용 후:
────────────────────────────────────────────────
[SW-A] ════════════════════ [SW-B]
║ ║
║ X (차단)
╚═══════════ [SW-C] ════════╝
※ 하나의 경로를 차단하여 루프 방지
※ 장애 시 자동으로 대체 경로 활성화STP 동작 개요
┌─────────────────────────────────────────────────────────────┐
│ STP (IEEE 802.1D) │
├─────────────────────────────────────────────────────────────┤
│ │
│ 목적: 스위치 간 루프 방지 │
│ │
│ 동작: │
│ 1. 루트 브리지 선출 (가장 낮은 Bridge ID) │
│ 2. 각 스위치의 루트 포트 결정 │
│ 3. 각 세그먼트의 지정 포트 결정 │
│ 4. 나머지 포트는 차단 (Blocking) │
│ │
│ 포트 상태: │
│ • Blocking: 차단 (데이터 전송 안 함) │
│ • Listening: BPDU만 수신 │
│ • Learning: MAC 학습 시작 │
│ • Forwarding: 정상 동작 │
│ │
└─────────────────────────────────────────────────────────────┘핵심 정리
| 개념 | 설명 |
|---|---|
| 스위치 | 데이터 링크 계층(2계층) 장비, L2 스위치 |
| MAC 주소 테이블 | 포트와 MAC 주소 매핑 데이터베이스 |
| MAC 주소 학습 | 출발지 MAC과 포트를 테이블에 등록 |
| 플러딩 | 목적지 MAC을 모를 때 모든 포트로 전송 |
| 포워딩 | 목적지 MAC을 알 때 해당 포트로만 전송 |
| 필터링 | 같은 세그먼트 통신 시 전송 안 함 |
| MAC 주소 필터링 | MAC 주소 기준으로 목적지 선택 |
| 전이중 통신 | 동시 양방향 통신, 충돌 없음 |
스위치 동작 흐름
┌─────────────────────────────────────────────────────────────┐
│ 스위치 프레임 처리 흐름 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────┐ │
│ │ 프레임 수신 │ │
│ └────────┬─────────┘ │
│ ▼ │
│ ┌────────────────────────┐ │
│ │ 출발지 MAC 주소 학습 │ │
│ │ (포트와 함께 테이블 등록)│ │
│ └────────────┬───────────┘ │
│ ▼ │
│ ┌────────────────────────┐ │
│ │ 목적지 MAC 테이블 확인 │ │
│ └────────────┬───────────┘ │
│ │ │
│ ┌────────────┴───────────┐ │
│ │ │ │
│ ▼ ▼ │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ 테이블에 있음│ │ 테이블에 없음│ │
│ └──────┬──────┘ └──────┬──────┘ │
│ ▼ ▼ │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ 포워딩 │ │ 플러딩 │ │
│ │(해당 포트) │ │(모든 포트) │ │
│ └─────────────┘ └─────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘용어 정리
- 스위치 (Switch): MAC 주소 기반으로 프레임을 전달하는 2계층 장비
- MAC 주소 테이블: 포트와 MAC 주소의 매핑 정보를 저장하는 데이터베이스 (브리지 테이블)
- MAC 주소 학습: 프레임의 출발지 MAC 주소를 테이블에 자동 등록하는 기능
- 플러딩 (Flooding): 목적지를 모를 때 모든 포트로 프레임을 전송하는 동작
- 포워딩 (Forwarding): 목적지 포트로만 프레임을 전송하는 동작
- MAC 주소 필터링: MAC 주소를 기준으로 목적지를 선택하는 것
- STP (Spanning Tree Protocol): 스위치 간 루프를 방지하는 프로토콜