스위치의 구조

스위치의 구조

스위치의 구조

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): 스위치 간 루프를 방지하는 프로토콜