데이터링크 계층

데이터링크 계층

개요

데이터링크 계층(Data Link Layer)은 OSI 모델의 2계층으로, 인접한 노드 간의 신뢰성 있는 데이터 전송을 담당합니다. 물리 계층의 비트 스트림을 프레임 단위로 구성하고, MAC 주소를 이용한 물리적 주소 지정, 오류 검출, 매체 접근 제어 등의 기능을 수행합니다. 이 레슨에서는 MAC 주소, 프레임 구조, 이더넷, 스위치 동작 원리, ARP 프로토콜 등을 학습합니다.

난이도: ⭐⭐ (초급-중급)


목차

  1. 데이터링크 계층의 역할
  2. MAC 주소
  3. 프레임 구조
  4. 이더넷 (IEEE 802.3)
  5. 스위치 동작 원리
  6. ARP (Address Resolution Protocol)
  7. 충돌 도메인과 브로드캐스트 도메인
  8. 연습 문제

1. 데이터링크 계층의 역할

데이터링크 계층의 정의

┌─────────────────────────────────────────────────────────────────┐
│                 데이터링크 계층 (Data Link Layer)                │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│   "인접한 노드 간의 신뢰성 있는 데이터 전송을 담당하는 계층"    │
│                                                                  │
│   ┌─────────────────────────────────────────────────────────┐   │
│                                                                │
│      네트워크 계층 (IP 패킷)                                  │
│                                                               │
│                                                               │
│      ┌─────────────────────────────────────┐                  │
│             데이터링크 계층                                   │
│                                                               │
│         - 프레이밍                                            │
│         - MAC 주소 지정                                       │
│         - 오류 검출                                           │
│         - 매체 접근 제어                                      │
│                                                               │
│      └───────────────┬─────────────────────┘                  │
│                                                               │
│                                                               │
│      물리 계층 (비트 스트림)                                  │
│                                                                │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   노드  노드(Node-to-Node) vs 종단  종단(End-to-End):      │
│   ┌─────────────────────────────────────────────────────────┐   │
│                                                                │
│      호스트A     라우터1     라우터2     호스트B               │
│      ┌───┐      ┌───┐      ┌───┐      ┌───┐                 │
│         │◄────►│   │◄────►│   │◄────►│                    │
│      └───┘      └───┘      └───┘      └───┘                 │
│          ◄─L2──► ◄─L2──► ◄─L2──►                            │
│          노드   노드   노드                             │
│                                                                │
│          ◄─────────────── L3 (IP) ───────────────►            │
│                   종단  (End-to-End)                         │
│                                                                │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

데이터링크 계층의 하위 계층

┌─────────────────────────────────────────────────────────────────┐
│              데이터링크 계층의 두 하위 계층                      │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│   데이터링크 계층은 두 개의 하위 계층으로 구성됩니다:           │
│                                                                  │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   ┌─────────────────────────────────────────────────┐   │   │
│   │   │           LLC (Logical Link Control)             │   │   │
│   │   │             논리적 링크 제어                      │   │   │
│   │   │                                                   │   │   │
│   │   │   - 상위 계층(네트워크)과의 인터페이스           │   │   │
│   │   │   - 흐름 제어, 오류 제어                         │   │   │
│   │   │   - 다중화 (여러 네트워크 프로토콜 지원)         │   │   │
│   │   │   - IEEE 802.2                                   │   │   │
│   │   └─────────────────────────────────────────────────┘   │   │
│   │                                                          │   │
│   │   ┌─────────────────────────────────────────────────┐   │   │
│   │   │           MAC (Media Access Control)             │   │   │
│   │   │             매체 접근 제어                        │   │   │
│   │   │                                                   │   │   │
│   │   │   - 물리적 주소 지정 (MAC 주소)                  │   │   │
│   │   │   - 프레이밍 (프레임 경계 정의)                  │   │   │
│   │   │   - 매체 접근 방식 결정 (CSMA/CD, CSMA/CA)       │   │   │
│   │   │   - 오류 검출 (CRC)                              │   │   │
│   │   │   - IEEE 802.3 (이더넷), 802.11 (Wi-Fi)          │   │   │
│   │   └─────────────────────────────────────────────────┘   │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   현재 대부분의 이더넷에서는 LLC를 사용하지 않고               │
│   EtherType 필드로 상위 프로토콜을 식별합니다.                 │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

주요 기능 상세

┌─────────────────────────────────────────────────────────────────┐
│                 데이터링크 계층의 주요 기능                      │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│   1. 프레이밍 (Framing)                                         │
│   ┌─────────────────────────────────────────────────────────┐   │
│                                                                │
│      비트 스트림을 의미 있는 프레임 단위로 구성                │
│                                                                │
│      비트 스트림: 101101001011010010110100...                 │
│                                                               │
│      프레임:    [헤더|  데이터  |트레일러]                     │
│                                                                │
│      프레임 구분 방법:                                        │
│      - 길이 기반: 프레임 크기 명시                            │
│      - 플래그 기반: 시작/ 표시자 (예: HDLC 01111110)      │
│      - 프리앰블: 이더넷의 시작 패턴                           │
│                                                                │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   2. 물리적 주소 지정 (Physical Addressing)                     │
│   ┌─────────────────────────────────────────────────────────┐   │
│                                                                │
│      MAC 주소를 사용하여 같은 네트워크  장치 식별            │
│                                                                │
│      예: 00:1A:2B:3C:4D:5E                                    │
│                                                             │
│          OUI (벤더)        고유 번호                          │
│                                                                │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   3. 오류 검출 (Error Detection)                                │
│   ┌─────────────────────────────────────────────────────────┐   │
│                                                                │
│      전송  발생한 오류 검출 (오류 수정은 제한적)             │
│                                                                │
│      방법:                                                     │
│      - CRC (Cyclic Redundancy Check): 가장 일반적             │
│      - 패리티 비트: 단순하지만 제한적                         │
│      - 체크섬: 합계 기반                                      │
│                                                                │
│      오류 발견 시: 해당 프레임 폐기 (재전송은 상위 계층)       │
│                                                                │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   4. 매체 접근 제어 (Media Access Control)                      │
│   ┌─────────────────────────────────────────────────────────┐   │
│                                                                │
│      공유 매체에서 언제 전송할지 결정                          │
│                                                                │
│      방식:                                                     │
│      - CSMA/CD: 이더넷 (충돌 감지)                            │
│      - CSMA/CA: 무선 (충돌 회피)                              │
│      - 토큰 패싱: 토큰                                      │
│                                                                │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   5. 흐름 제어 (Flow Control)                                   │
│   ┌─────────────────────────────────────────────────────────┐   │
│                                                                │
│      수신자가 처리할  있는 속도로 전송 조절                  │
│                                                                │
│      - 일부 데이터링크 프로토콜에서만 지원                    │
│      - 이더넷: PAUSE 프레임 (802.3x)                          │
│      - 대부분은 TCP/IP 흐름 제어에 의존                     │
│                                                                │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

2. MAC 주소

MAC 주소의 구조

┌─────────────────────────────────────────────────────────────────┐
│                 MAC 주소 (Media Access Control Address)          │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│   정의: 네트워크 인터페이스에 할당된 고유한 물리적 주소         │
│         "하드웨어 주소" 또는 "이더넷 주소"라고도 함             │
│                                                                  │
│   구조 (48비트 = 6바이트):                                      │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   00:1A:2B:3C:4D:5E                                     │   │
│   │   ├─────┤ ├─────────┤                                   │   │
│   │     OUI      NIC 고유번호                                │   │
│   │   (24비트)    (24비트)                                   │   │
│   │                                                          │   │
│   │   OUI (Organizationally Unique Identifier):             │   │
│   │   - 제조사 식별 코드 (IEEE에서 할당)                    │   │
│   │   - 예: 00:1A:2B = 특정 제조사                          │   │
│   │                                                          │   │
│   │   NIC 고유 번호:                                        │   │
│   │   - 제조사가 각 장치에 부여                             │   │
│   │   - 같은 OUI 내에서 유일해야 함                         │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   표기 방식:                                                    │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   - 콜론 구분: 00:1A:2B:3C:4D:5E  (Unix/Linux)          │   │
│   │   - 대시 구분: 00-1A-2B-3C-4D-5E  (Windows)             │   │
│   │   - 점 구분:   001A.2B3C.4D5E     (Cisco)               │   │
│   │   - 연속:      001A2B3C4D5E                              │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   바이트 구조 상세:                                             │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   첫 번째 바이트의 비트 구조:                           │   │
│   │   ┌─┬─┬─┬─┬─┬─┬─┬─┐                                    │   │
│   │   │7│6│5│4│3│2│1│0│                                    │   │
│   │   └─┴─┴─┴─┴─┴─┴─┴─┘                                    │   │
│   │               │ │                                       │   │
│   │               │ └── I/G (Individual/Group)              │   │
│   │               │      0: 유니캐스트 (개별 주소)          │   │
│   │               │      1: 멀티캐스트 (그룹 주소)          │   │
│   │               │                                         │   │
│   │               └──── U/L (Universal/Local)               │   │
│   │                      0: 전역적 고유 (IEEE 할당)         │   │
│   │                      1: 로컬 관리 (사용자 설정)         │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

특수 MAC 주소

┌─────────────────────────────────────────────────────────────────┐
│                      특수 MAC 주소                               │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│   1. 브로드캐스트 주소                                          │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   FF:FF:FF:FF:FF:FF                                     │   │
│   │                                                          │   │
│   │   - 모든 비트가 1                                       │   │
│   │   - 같은 네트워크의 모든 장치에 전송                    │   │
│   │   - ARP 요청에 사용                                     │   │
│   │                                                          │   │
│   │   송신자 ─────────► 모든 호스트                         │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   2. 멀티캐스트 주소                                            │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   첫 번째 바이트의 LSB = 1 (홀수)                       │   │
│   │                                                          │   │
│   │   IPv4 멀티캐스트: 01:00:5E:xx:xx:xx                     │   │
│   │   IPv6 멀티캐스트: 33:33:xx:xx:xx:xx                     │   │
│   │   STP:            01:80:C2:00:00:00                      │   │
│   │                                                          │   │
│   │   송신자 ─────────► 특정 그룹의 호스트만                │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   3. 유니캐스트 주소                                            │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   첫 번째 바이트의 LSB = 0 (짝수)                       │   │
│   │                                                          │   │
│   │   예: 00:1A:2B:3C:4D:5E                                 │   │
│   │                                                          │   │
│   │   송신자 ─────────► 특정 한 호스트                      │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   주요 OUI 예시:                                                │
│   ┌──────────────────┬───────────────────────────────────────┐  │
│   │       OUI        │              제조사                    │  │
│   ├──────────────────┼───────────────────────────────────────┤  │
│   │  00:00:0C        │  Cisco                                │  │
│   │  00:0C:29        │  VMware                               │  │
│   │  00:50:56        │  VMware                               │  │
│   │  00:1A:A0        │  Dell                                 │  │
│   │  00:25:00        │  Apple                                │  │
│   │  AC:DE:48        │  Intel                                │  │
│   │  F0:1F:AF        │  Hewlett Packard                      │  │
│   └──────────────────┴───────────────────────────────────────┘  │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

MAC 주소 확인 명령어

┌─────────────────────────────────────────────────────────────────┐
│                    MAC 주소 확인 명령어                          │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│   Windows:                                                      │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │   C:\> ipconfig /all                                     │   │
│   │                                                          │   │
│   │   Ethernet adapter Ethernet0:                            │   │
│   │      Physical Address. . . . . . . : 00-1A-2B-3C-4D-5E  │   │
│   │      IPv4 Address. . . . . . . . . : 192.168.1.100      │   │
│   │                                                          │   │
│   │   C:\> getmac                                            │   │
│   │   Physical Address    Transport Name                     │   │
│   │   =================== =================================  │   │
│   │   00-1A-2B-3C-4D-5E   \Device\Tcpip_{GUID}              │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   Linux/Mac:                                                    │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │   $ ifconfig                                             │   │
│   │   eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>      │   │
│   │         ether 00:1a:2b:3c:4d:5e  txqueuelen 1000        │   │
│   │         inet 192.168.1.100  netmask 255.255.255.0       │   │
│   │                                                          │   │
│   │   $ ip link show                                         │   │
│   │   2: eth0: <BROADCAST,MULTICAST,UP>                      │   │
│   │       link/ether 00:1a:2b:3c:4d:5e brd ff:ff:ff:ff:ff:ff│   │
│   │                                                          │   │
│   │   Mac:                                                   │   │
│   │   $ networksetup -listallhardwareports                   │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

3. 프레임 구조

이더넷 프레임 구조

┌─────────────────────────────────────────────────────────────────┐
                    이더넷 프레임 구조                            
├─────────────────────────────────────────────────────────────────┤
                                                                  
   이더넷 II (DIX) 프레임 (가장 일반적):                         
   ┌─────────────────────────────────────────────────────────┐   
                                                                
     ┌───────┬───────┬───────┬───────┬───────────┬───────┐     
      Pream   SFD   Dest    Src  EtherType  Data        
       ble           MAC    MAC    /Len   Payload      
       7B     1B     6B     6B      2B   46-1500B      
     └───────┴───────┴───────┴───────┴───────┴───────────┘     
                                                                
     ┌───────┐                                                  
       FCS      Frame Check Sequence (CRC-32)               
       4B                                                     
     └───────┘                                                  
                                                                
   └─────────────────────────────────────────────────────────┘   
                                                                  
   필드 설명:                                                    
   ┌───────────────┬──────────────────────────────────────────┐  
        필드                        설명                       
   ├───────────────┼──────────────────────────────────────────┤  
    Preamble       동기화 패턴 (10101010... 7바이트)          
    (7 bytes)                                                 
   ├───────────────┼──────────────────────────────────────────┤  
    SFD            프레임 시작 표시 (10101011)                
    (1 byte)       Start Frame Delimiter                      
   ├───────────────┼──────────────────────────────────────────┤  
    Dest MAC       목적지 MAC 주소                            
    (6 bytes)                                                 
   ├───────────────┼──────────────────────────────────────────┤  
    Src MAC        출발지 MAC 주소                            
    (6 bytes)                                                 
   ├───────────────┼──────────────────────────────────────────┤  
    EtherType      상위 프로토콜 식별                         
    (2 bytes)      0x0800=IPv4, 0x0806=ARP, 0x86DD=IPv6       
   ├───────────────┼──────────────────────────────────────────┤  
    Payload        상위 계층 데이터 (IP 패킷 )              
    (46-1500 B)    최소 46, 최대 1500 (Jumbo: 9000)          
   ├───────────────┼──────────────────────────────────────────┤  
    FCS            오류 검출용 CRC-32 체크섬                  
    (4 bytes)                                                 
   └───────────────┴──────────────────────────────────────────┘  
                                                                  
   프레임 크기:                                                  
   - 최소: 64 바이트 (헤더 14 + 페이로드 46 + FCS 4)            
   - 최대: 1518 바이트 (헤더 14 + 페이로드 1500 + FCS 4)        
   - Jumbo 프레임: 최대 9000 바이트 페이로드                    
                                                                  
└─────────────────────────────────────────────────────────────────┘

EtherType 값

┌─────────────────────────────────────────────────────────────────┐
│                     주요 EtherType 값                            │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│   ┌──────────────┬────────────────────────────────────────────┐ │
│   │  EtherType   │                   프로토콜                  │ │
│   ├──────────────┼────────────────────────────────────────────┤ │
│   │   0x0800     │  IPv4 (Internet Protocol version 4)        │ │
│   │   0x0806     │  ARP (Address Resolution Protocol)         │ │
│   │   0x8035     │  RARP (Reverse ARP)                        │ │
│   │   0x8100     │  VLAN (802.1Q)                             │ │
│   │   0x86DD     │  IPv6 (Internet Protocol version 6)        │ │
│   │   0x8847     │  MPLS (Unicast)                            │ │
│   │   0x8848     │  MPLS (Multicast)                          │ │
│   │   0x8863     │  PPPoE Discovery                           │ │
│   │   0x8864     │  PPPoE Session                             │ │
│   │   0x88CC     │  LLDP (Link Layer Discovery Protocol)      │ │
│   └──────────────┴────────────────────────────────────────────┘ │
│                                                                  │
│   * EtherType이 0x0600 미만이면 길이 필드로 해석 (802.3)        │
│   * 0x0600 이상이면 EtherType으로 해석 (Ethernet II)            │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

CRC-32 오류 검출

┌─────────────────────────────────────────────────────────────────┐
│                    CRC-32 오류 검출                              │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│   CRC (Cyclic Redundancy Check):                                │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   다항식 나눗셈을 이용한 오류 검출 코드                  │   │
│   │                                                          │   │
│   │   송신:                                                  │   │
│   │   ┌────────────────────────────────────┐                │   │
│   │   │ 데이터 (헤더 + 페이로드)            │                │   │
│   │   └──────────────────┬─────────────────┘                │   │
│   │                      │                                   │   │
│   │                      ▼                                   │   │
│   │              ┌───────────────┐                          │   │
│   │              │ CRC-32 계산   │                          │   │
│   │              └───────┬───────┘                          │   │
│   │                      │                                   │   │
│   │                      ▼                                   │   │
│   │   ┌────────────────────────────────────┬──────┐         │   │
│   │   │ 데이터 (헤더 + 페이로드)            │ FCS  │         │   │
│   │   └────────────────────────────────────┴──────┘         │   │
│   │                                                          │   │
│   │   수신:                                                  │   │
│   │   ┌────────────────────────────────────┬──────┐         │   │
│   │   │ 수신된 데이터                       │ FCS  │         │   │
│   │   └──────────────────┬─────────────────┴──────┘         │   │
│   │                      │                                   │   │
│   │                      ▼                                   │   │
│   │              ┌───────────────┐                          │   │
│   │              │ CRC-32 재계산 │                          │   │
│   │              └───────┬───────┘                          │   │
│   │                      │                                   │   │
│   │          결과 = 0    │    결과 ≠ 0                      │   │
│   │          ↓           │           ↓                      │   │
│   │      오류 없음    프레임 폐기                            │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   CRC-32 다항식: x^32 + x^26 + x^23 + ... + 1                  │
│                                                                  │
│   검출 가능한 오류:                                             │
│   - 1비트 오류: 100% 검출                                      │
│   - 2비트 오류: 100% 검출                                      │
│   - 홀수 개 비트 오류: 100% 검출                               │
│   - 버스트 오류 (32비트 이하): 100% 검출                       │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

4. 이더넷 (IEEE 802.3)

이더넷의 역사와 발전

┌─────────────────────────────────────────────────────────────────┐
│                    이더넷의 발전 역사                            │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│   연도    이름            속도        매체                      │
│   ─────────────────────────────────────────────────────────────│
│   1973    Experimental    2.94 Mbps   동축 (Xerox PARC)         │
│   1983    10BASE5         10 Mbps     Thick 동축               │
│   1985    10BASE2         10 Mbps     Thin 동축                │
│   1990    10BASE-T        10 Mbps     UTP (Cat3)               │
│   1995    100BASE-TX      100 Mbps    UTP (Cat5)               │
│   1998    1000BASE-T      1 Gbps      UTP (Cat5e)              │
│   2006    10GBASE-T       10 Gbps     UTP (Cat6/6a)            │
│   2016    25GBASE-T       25 Gbps     UTP (Cat8)               │
│   2017    40GBASE-T       40 Gbps     UTP (Cat8)               │
│                                                                  │
│   이더넷 명명 규칙:                                             │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   10    BASE   -   T                                    │   │
│   │   ↓      ↓         ↓                                    │   │
│   │   속도   신호방식   매체/인코딩                          │   │
│   │   (Mbps) (기저대역)                                     │   │
│   │                                                          │   │
│   │   속도: 10, 100, 1000, 10G, 25G, 40G, 100G              │   │
│   │   신호: BASE (기저대역), BROAD (광대역-구형)            │   │
│   │   매체: T (Twisted Pair), F/X (Fiber), S (Short wave)   │   │
│   │         L (Long wave), C (Copper)                       │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

CSMA/CD (Carrier Sense Multiple Access with Collision Detection)

┌─────────────────────────────────────────────────────────────────┐
│                         CSMA/CD                                  │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│   CSMA/CD: 반이중(Half-duplex) 이더넷의 매체 접근 방식          │
│                                                                  │
│   동작 과정:                                                    │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   1. Carrier Sense (캐리어 감지)                        │   │
│   │      ┌──────────┐                                       │   │
│   │      │ 전송하려는│                                       │   │
│   │      │ 스테이션  │                                       │   │
│   │      └─────┬────┘                                       │   │
│   │            │                                             │   │
│   │            ▼                                             │   │
│   │      ┌──────────────────────────┐                       │   │
│   │      │ 매체가 사용 중인가?      │                       │   │
│   │      └──────────┬───────────────┘                       │   │
│   │           │Yes        │No                               │   │
│   │           ▼           ▼                                 │   │
│   │        대기       전송 시작                              │   │
│   │                                                          │   │
│   │   2. Multiple Access (다중 접근)                        │   │
│   │      여러 스테이션이 동시에 매체 접근 시도 가능          │   │
│   │                                                          │   │
│   │   3. Collision Detection (충돌 감지)                    │   │
│   │      ┌─────────────────────────────────────────────┐    │   │
│   │      │                                              │    │   │
│   │      │  스테이션 A        스테이션 B               │    │   │
│   │      │       │                 │                   │    │   │
│   │      │       ▼                 ▼                   │    │   │
│   │      │  ══════════════◄►═══════════════           │    │   │
│   │      │          충돌 발생!                         │    │   │
│   │      │                                              │    │   │
│   │      └─────────────────────────────────────────────┘    │   │
│   │                                                          │   │
│   │   4. 충돌 처리 (Binary Exponential Backoff)             │   │
│   │      - 충돌 감지 시 잼 신호 전송                        │   │
│   │      - 랜덤 시간 대기 후 재전송 시도                    │   │
│   │      - 대기 시간 = 랜덤(0 ~ 2^n - 1) × 슬롯 타임        │   │
│   │      - n = 충돌 횟수 (최대 10)                          │   │
│   │      - 16번 충돌 후 포기                                │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   CSMA/CD 흐름도:                                               │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   [프레임 준비] → [캐리어 감지]                         │   │
│   │                        │                                │   │
│   │              ┌─────────┼─────────┐                      │   │
│   │              │ 사용 중 │  비어있음│                      │   │
│   │              ▼         ▼                                │   │
│   │           [대기]   [전송 시작]                          │   │
│   │                        │                                │   │
│   │              ┌─────────┼─────────┐                      │   │
│   │              │ 충돌    │  충돌없음│                      │   │
│   │              ▼         ▼                                │   │
│   │         [잼 신호]   [전송 완료]                         │   │
│   │              │                                          │   │
│   │              ▼                                          │   │
│   │         [백오프]                                        │   │
│   │              │                                          │   │
│   │              └──────► [캐리어 감지]                     │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   * 현대 전이중(Full-duplex) 이더넷에서는 CSMA/CD 불필요       │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

이더넷 표준 비교

┌─────────────────────────────────────────────────────────────────┐
│                     주요 이더넷 표준                             │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│   UTP 기반:                                                     │
│   ┌────────────┬────────┬──────────┬────────┬────────────────┐  │
│   │   표준     │  속도  │  케이블  │  거리  │     인코딩     │  │
│   ├────────────┼────────┼──────────┼────────┼────────────────┤  │
│   │ 10BASE-T   │ 10Mbps │ Cat3/5   │  100m  │ Manchester     │  │
│   │ 100BASE-TX │ 100Mbps│ Cat5     │  100m  │ 4B/5B, MLT-3   │  │
│   │ 1000BASE-T │ 1Gbps  │ Cat5e    │  100m  │ 4D-PAM5        │  │
│   │ 10GBASE-T  │ 10Gbps │ Cat6a    │  100m  │ 128-DSQ        │  │
│   │ 25GBASE-T  │ 25Gbps │ Cat8     │  30m   │ PAM4           │  │
│   └────────────┴────────┴──────────┴────────┴────────────────┘  │
│                                                                  │
│   광섬유 기반:                                                  │
│   ┌────────────┬────────┬──────────┬────────┬────────────────┐  │
│   │   표준     │  속도  │  광섬유  │  거리  │     파장       │  │
│   ├────────────┼────────┼──────────┼────────┼────────────────┤  │
│   │ 100BASE-FX │ 100Mbps│ MMF      │  2km   │ 1310nm         │  │
│   │ 1000BASE-SX│ 1Gbps  │ MMF      │  550m  │ 850nm (Short)  │  │
│   │ 1000BASE-LX│ 1Gbps  │ SMF      │  10km  │ 1310nm (Long)  │  │
│   │ 10GBASE-SR │ 10Gbps │ MMF      │  300m  │ 850nm          │  │
│   │ 10GBASE-LR │ 10Gbps │ SMF      │  10km  │ 1310nm         │  │
│   │ 40GBASE-SR4│ 40Gbps │ MMF      │  100m  │ 850nm (4x10G)  │  │
│   │100GBASE-SR4│ 100Gbps│ MMF      │  100m  │ 850nm (4x25G)  │  │
│   └────────────┴────────┴──────────┴────────┴────────────────┘  │
│                                                                  │
│   * MMF = Multi-Mode Fiber, SMF = Single-Mode Fiber             │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

5. 스위치 동작 원리

스위치의 기능

┌─────────────────────────────────────────────────────────────────┐
│                      스위치의 기능                               │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│   스위치: L2(데이터링크) 계층에서 동작하는 네트워크 장비        │
│           MAC 주소를 기반으로 프레임을 전달                     │
│                                                                  │
│   허브 vs 스위치:                                               │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   허브 (Hub):                                           │   │
│   │   ┌───────────────────────────────────────────┐         │   │
│   │   │                                            │         │   │
│   │   │  PC1 ──┬                                  │         │   │
│   │   │        │    ┌─────┐                       │         │   │
│   │   │  PC2 ──┼────│ HUB │──── 모든 포트로 복사 │         │   │
│   │   │        │    └─────┘                       │         │   │
│   │   │  PC3 ──┘                                  │         │   │
│   │   │                                            │         │   │
│   │   │  - 받은 프레임을 모든 포트로 전송         │         │   │
│   │   │  - 충돌 도메인 = 전체 (하나의 충돌 도메인)│         │   │
│   │   │                                            │         │   │
│   │   └───────────────────────────────────────────┘         │   │
│   │                                                          │   │
│   │   스위치 (Switch):                                      │   │
│   │   ┌───────────────────────────────────────────┐         │   │
│   │   │                                            │         │   │
│   │   │  PC1 ──┬                                  │         │   │
│   │   │        │    ┌────────┐                    │         │   │
│   │   │  PC2 ──┼────│ SWITCH │──── 목적지만 전송 │         │   │
│   │   │        │    └────────┘                    │         │   │
│   │   │  PC3 ──┘       │                          │         │   │
│   │   │                ▼                          │         │   │
│   │   │           MAC 테이블 참조                 │         │   │
│   │   │                                            │         │   │
│   │   │  - 목적지 MAC을 학습하여 해당 포트로만 전송│        │   │
│   │   │  - 각 포트가 별도의 충돌 도메인            │         │   │
│   │   │                                            │         │   │
│   │   └───────────────────────────────────────────┘         │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

MAC 주소 테이블 (CAM 테이블)

┌─────────────────────────────────────────────────────────────────┐
                    MAC 주소 테이블                               
├─────────────────────────────────────────────────────────────────┤
                                                                  
   CAM (Content Addressable Memory) 테이블:                      
   MAC 주소와 포트 번호의 매핑 정보                              
                                                                  
   ┌─────────────────────────────────────────────────────────┐   
                                                                
      ┌─────────────────────────────────────────────────┐      
                    MAC 주소 테이블                            
      ├─────────────────────────┬───────────┬───────────┤      
               MAC 주소           포트       타입          
      ├─────────────────────────┼───────────┼───────────┤      
          00:1A:2B:3C:4D:5E       Fa0/1    Dynamic        
          00:1A:2B:3C:4D:5F       Fa0/2    Dynamic        
          00:1A:2B:3C:4D:60       Fa0/3    Static         
          00:1A:2B:3C:4D:61       Fa0/4    Dynamic        
      └─────────────────────────┴───────────┴───────────┘      
                                                                
      타입:                                                     
      - Dynamic: 학습으로 자동 추가, 일정 시간  만료         
      - Static: 수동 설정, 만료                            
      - 기본 에이징 타임: 300 (5)                          
                                                                
   └─────────────────────────────────────────────────────────┘   
                                                                  
   MAC 테이블 확인 (Cisco):                                      
   ┌─────────────────────────────────────────────────────────┐   
      Switch# show mac address-table                            
                                                                
      Mac Address Table                                         
      -------------------------------------------               
      Vlan    Mac Address       Type        Ports               
      ----    -----------       --------    -----               
         1    001a.2b3c.4d5e    DYNAMIC     Fa0/1               
         1    001a.2b3c.4d5f    DYNAMIC     Fa0/2               
                                                                
   └─────────────────────────────────────────────────────────┘   
                                                                  
└─────────────────────────────────────────────────────────────────┘

스위치의 학습과 전달

┌─────────────────────────────────────────────────────────────────┐
│                  스위치의 학습과 전달 과정                        │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│   1. 학습 (Learning)                                            │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   PC1 (MAC: AA) ──[Fa0/1]─── 스위치                     │   │
│   │                                                          │   │
│   │   PC1이 프레임을 전송하면:                              │   │
│   │   - 출발지 MAC (AA)과 수신 포트 (Fa0/1) 학습            │   │
│   │   - MAC 테이블에 저장: AA → Fa0/1                       │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   2. 전달 (Forwarding)                                          │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   목적지 MAC이 테이블에 있는 경우:                      │   │
│   │   - 해당 포트로만 프레임 전달 (Unicast)                 │   │
│   │                                                          │   │
│   │   PC1 (AA) ──[Fa0/1]──┬──[Fa0/2]── PC2 (BB)            │   │
│   │                       │                                 │   │
│   │                   스위치                                │   │
│   │                   BB → Fa0/2 (테이블에 있음)            │   │
│   │                       │                                 │   │
│   │                       └──[Fa0/3]── PC3 (CC)            │   │
│   │                          (전달 안 함)                   │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   3. 플러딩 (Flooding)                                          │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   목적지 MAC이 테이블에 없는 경우:                      │   │
│   │   - 수신 포트를 제외한 모든 포트로 전달                 │   │
│   │                                                          │   │
│   │   PC1 (AA) ──[Fa0/1]──┬──[Fa0/2]── PC2 (BB) ←전달      │   │
│   │                       │                                 │   │
│   │                   스위치                                │   │
│   │                   XX → ? (테이블에 없음)               │   │
│   │                       │                                 │   │
│   │                       └──[Fa0/3]── PC3 (CC) ←전달      │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   4. 필터링 (Filtering)                                         │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   출발지와 목적지가 같은 포트인 경우:                   │   │
│   │   - 프레임을 폐기 (전달하지 않음)                       │   │
│   │                                                          │   │
│   │   PC1 (AA) ──┬──[Fa0/1]── 스위치                        │   │
│   │              │    │                                     │   │
│   │   PC2 (BB) ──┘    │  AA → BB 프레임                    │   │
│   │                   │  둘 다 Fa0/1 → 폐기                 │   │
│   │                   │                                     │   │
│   │                   └── (다른 포트로 전달 안 함)          │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

스위치의 전달 방식

┌─────────────────────────────────────────────────────────────────┐
│                    스위치의 전달 방식                            │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│   1. Store-and-Forward (저장 후 전달)                           │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   [프레임 수신] → [전체 저장] → [CRC 검사] → [전달]     │   │
│   │                                                          │   │
│   │   - 전체 프레임을 받은 후 FCS로 오류 검사               │   │
│   │   - 오류 있는 프레임 폐기                               │   │
│   │   - 가장 안정적, 약간의 지연                            │   │
│   │   - 현대 스위치의 기본 방식                             │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   2. Cut-Through (즉시 전달)                                    │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   [목적지 MAC 확인] → [즉시 전달 시작]                  │   │
│   │   (처음 6바이트만)                                      │   │
│   │                                                          │   │
│   │   - 목적지 MAC만 확인하고 바로 전달                     │   │
│   │   - 가장 낮은 지연                                      │   │
│   │   - 오류 프레임도 전달될 수 있음                        │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   3. Fragment-Free (조각 없는 전달)                             │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   [처음 64바이트 수신] → [전달]                         │   │
│   │                                                          │   │
│   │   - 최소 프레임 크기(64바이트)까지만 확인               │   │
│   │   - 대부분의 충돌로 인한 오류 검출                      │   │
│   │   - Cut-Through와 Store-and-Forward의 절충              │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   비교:                                                         │
│   ┌───────────────────┬──────────┬──────────┬────────────────┐  │
│   │      방식         │  지연    │  오류검출│     용도       │  │
│   ├───────────────────┼──────────┼──────────┼────────────────┤  │
│   │ Store-and-Forward │  높음    │   완전   │ 일반적         │  │
│   │ Cut-Through       │  낮음    │   없음   │ 저지연 환경    │  │
│   │ Fragment-Free     │  중간    │   부분   │ 절충           │  │
│   └───────────────────┴──────────┴──────────┴────────────────┘  │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

6. ARP (Address Resolution Protocol)

ARP의 필요성

┌─────────────────────────────────────────────────────────────────┐
│                       ARP의 필요성                               │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│   문제: IP 통신을 위해서는 목적지 MAC 주소가 필요함             │
│                                                                  │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   호스트 A                        호스트 B              │   │
│   │   IP: 192.168.1.10               IP: 192.168.1.20       │   │
│   │   MAC: AA:AA:AA:AA:AA:AA         MAC: BB:BB:BB:BB:BB:BB │   │
│   │                                                          │   │
│   │        │                              │                 │   │
│   │        │ 192.168.1.20으로 패킷 전송   │                 │   │
│   │        │                              │                 │   │
│   │        │  목적지 MAC = ???            │                 │   │
│   │        │                              │                 │   │
│   │        └─────────── ? ───────────────►│                 │   │
│   │                                                          │   │
│   │   IP 주소는 알지만, MAC 주소를 모름!                    │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   해결: ARP를 사용하여 IP 주소 → MAC 주소 변환                  │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

ARP 동작 과정

┌─────────────────────────────────────────────────────────────────┐
│                      ARP 동작 과정                               │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│   1. ARP Request (브로드캐스트)                                 │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   호스트 A (192.168.1.10)                               │   │
│   │       │                                                  │   │
│   │       │ "192.168.1.20의 MAC 주소가 뭐야?"              │   │
│   │       │                                                  │   │
│   │       ▼ (브로드캐스트: FF:FF:FF:FF:FF:FF)              │   │
│   │   ════════════════════════════════════════════          │   │
│   │       │             │              │                    │   │
│   │       ▼             ▼              ▼                    │   │
│   │   호스트 B      호스트 C       호스트 D                 │   │
│   │   (1.20)        (1.30)         (1.40)                   │   │
│   │   "내 IP!"      "내 IP 아님"   "내 IP 아님"            │   │
│   │                 (무시)          (무시)                  │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   2. ARP Reply (유니캐스트)                                     │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   호스트 B (192.168.1.20, MAC: BB:BB...)               │   │
│   │       │                                                  │   │
│   │       │ "내 MAC 주소는 BB:BB:BB:BB:BB:BB야"            │   │
│   │       │                                                  │   │
│   │       ▼ (유니캐스트: AA:AA:AA:AA:AA:AA)                │   │
│   │   ────────────────────────────────────►                 │   │
│   │                                    │                     │   │
│   │                                    ▼                     │   │
│   │                               호스트 A                   │   │
│   │                               (ARP 캐시 업데이트)       │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   3. ARP 캐시 저장                                              │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   호스트 A의 ARP 캐시:                                  │   │
│   │   ┌─────────────────────────────────────────────────┐   │   │
│   │   │  IP 주소        │  MAC 주소         │  타입    │   │   │
│   │   ├─────────────────┼───────────────────┼──────────┤   │   │
│   │   │  192.168.1.20   │  BB:BB:BB:BB:BB:BB│ Dynamic  │   │   │
│   │   │  192.168.1.1    │  CC:CC:CC:CC:CC:CC│ Dynamic  │   │   │
│   │   └─────────────────────────────────────────────────┘   │   │
│   │                                                          │   │
│   │   - 이후 통신 시 캐시 사용 (ARP 재요청 불필요)          │   │
│   │   - 캐시 만료 시간: 보통 2-20분                        │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

ARP 패킷 구조

┌─────────────────────────────────────────────────────────────────┐
│                      ARP 패킷 구조                               │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   0       8      16      24      32                      │   │
│   │   ├───────────────┬───────────────┤                     │   │
│   │   │ Hardware Type │ Protocol Type │                     │   │
│   │   │    (2B)       │     (2B)      │                     │   │
│   │   ├───────────────┼───────────────┤                     │   │
│   │   │ HW Addr Len   │ Proto Addr Len│   Opcode            │   │
│   │   │    (1B)       │     (1B)      │    (2B)             │   │
│   │   ├───────────────┴───────────────┴───────────────┤     │   │
│   │   │         Sender Hardware Address (6B)          │     │   │
│   │   ├───────────────────────────────────────────────┤     │   │
│   │   │         Sender Protocol Address (4B)          │     │   │
│   │   ├───────────────────────────────────────────────┤     │   │
│   │   │         Target Hardware Address (6B)          │     │   │
│   │   ├───────────────────────────────────────────────┤     │   │
│   │   │         Target Protocol Address (4B)          │     │   │
│   │   └───────────────────────────────────────────────┘     │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   필드 설명:                                                    │
│   ┌─────────────────────┬────────────────────────────────────┐  │
│   │ Hardware Type       │ 1 = 이더넷                         │  │
│   │ Protocol Type       │ 0x0800 = IPv4                      │  │
│   │ HW Addr Len         │ 6 (MAC 주소 길이)                  │  │
│   │ Proto Addr Len      │ 4 (IPv4 주소 길이)                 │  │
│   │ Opcode              │ 1 = Request, 2 = Reply             │  │
│   │ Sender HW Addr      │ 송신자 MAC 주소                    │  │
│   │ Sender Proto Addr   │ 송신자 IP 주소                     │  │
│   │ Target HW Addr      │ 목표 MAC 주소 (Request: 00:00...)  │  │
│   │ Target Proto Addr   │ 목표 IP 주소                       │  │
│   └─────────────────────┴────────────────────────────────────┘  │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

ARP 캐시 명령어

┌─────────────────────────────────────────────────────────────────┐
                      ARP 캐시 명령어                             
├─────────────────────────────────────────────────────────────────┤
                                                                  
   ARP 캐시 확인:                                                
   ┌─────────────────────────────────────────────────────────┐   
                                                                
      Windows:                                                  
      C:\> arp -a                                               
      Interface: 192.168.1.100                                  
        Internet Address    Physical Address    Type            
        192.168.1.1         aa-bb-cc-dd-ee-ff   dynamic        
        192.168.1.20        11-22-33-44-55-66   dynamic        
                                                                
      Linux/Mac:                                                
      $ arp -a                                                  
      ? (192.168.1.1) at aa:bb:cc:dd:ee:ff on en0              
      ? (192.168.1.20) at 11:22:33:44:55:66 on en0             
                                                                
      Linux (ip 명령):                                          
      $ ip neigh show                                           
      192.168.1.1 dev eth0 lladdr aa:bb:cc:dd:ee:ff REACHABLE   
                                                                
   └─────────────────────────────────────────────────────────┘   
                                                                  
   ARP 캐시 삭제:                                                
   ┌─────────────────────────────────────────────────────────┐   
                                                                
      Windows:                                                  
      C:\> arp -d *              (전체 삭제)                    
      C:\> arp -d 192.168.1.1    (특정 항목)                    
                                                                
      Linux:                                                    
      $ sudo arp -d 192.168.1.1                                 
      $ sudo ip neigh del 192.168.1.1 dev eth0                 
                                                                
   └─────────────────────────────────────────────────────────┘   
                                                                  
   정적 ARP 추가:                                                
   ┌─────────────────────────────────────────────────────────┐   
                                                                
      Windows:                                                  
      C:\> arp -s 192.168.1.50 aa-bb-cc-dd-ee-ff               
                                                                
      Linux:                                                    
      $ sudo arp -s 192.168.1.50 aa:bb:cc:dd:ee:ff             
                                                                
   └─────────────────────────────────────────────────────────┘   
                                                                  
└─────────────────────────────────────────────────────────────────┘

7. 충돌 도메인과 브로드캐스트 도메인

충돌 도메인 (Collision Domain)

┌─────────────────────────────────────────────────────────────────┐
│                    충돌 도메인 (Collision Domain)                │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│   정의: 동시에 전송 시 충돌이 발생할 수 있는 네트워크 영역      │
│                                                                  │
│   허브의 충돌 도메인:                                           │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   ┌─────────────────────────────────────────────────┐   │   │
│   │   │              하나의 충돌 도메인                   │   │   │
│   │   │                                                   │   │   │
│   │   │   PC1 ──┐                                        │   │   │
│   │   │         │                                        │   │   │
│   │   │   PC2 ──┼────[ HUB ]                            │   │   │
│   │   │         │                                        │   │   │
│   │   │   PC3 ──┘                                        │   │   │
│   │   │                                                   │   │   │
│   │   │   * 모든 장치가 같은 충돌 도메인                 │   │   │
│   │   │   * PC1과 PC2가 동시 전송 시 충돌               │   │   │
│   │   │                                                   │   │   │
│   │   └─────────────────────────────────────────────────┘   │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   스위치의 충돌 도메인:                                         │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                                                          │   │
│   │   ┌──────┐   ┌──────┐   ┌──────┐                       │   │
│   │   │ CD 1 │   │ CD 2 │   │ CD 3 │                       │   │
│   │   │      │   │      │   │      │                       │   │
│   │   │ PC1  │   │ PC2  │   │ PC3  │                       │   │
│   │   │  │   │   │  │   │   │  │   │                       │   │
│   │   └──┼───┘   └──┼───┘   └──┼───┘                       │   │
│   │      │          │          │                            │   │
│   │      └──────────┼──────────┘                            │   │
│   │                 │                                       │   │
│   │           [ SWITCH ]                                    │   │
│   │                                                          │   │
│   │   * 각 포트가 별도의 충돌 도메인                        │   │
│   │   * PC1과 PC2가 동시 전송 가능 (충돌 없음)             │   │
│   │   * Full-duplex 사용 시 충돌 자체가 없음               │   │
│   │                                                          │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

브로드캐스트 도메인 (Broadcast Domain)

┌─────────────────────────────────────────────────────────────────┐
                브로드캐스트 도메인 (Broadcast Domain)            
├─────────────────────────────────────────────────────────────────┤
                                                                  
   정의: 브로드캐스트 프레임이 전달되는 네트워크 영역            
                                                                  
   스위치의 브로드캐스트 도메인:                                 
   ┌─────────────────────────────────────────────────────────┐   
                                                                
      ┌─────────────────────────────────────────────────┐      
                  하나의 브로드캐스트 도메인                   
                                                               
         PC1 ──┐                                              
                                                             
         PC2 ──┼────[ SWITCH ]                               
                                                             
         PC3 ──┘                                              
                                                               
         * 브로드캐스트는 모든 포트로 전달                    
         * 스위치는 브로드캐스트 도메인을 나누지 못함         
                                                               
      └─────────────────────────────────────────────────┘      
                                                                
   └─────────────────────────────────────────────────────────┘   
                                                                  
   라우터의 브로드캐스트 도메인:                                 
   ┌─────────────────────────────────────────────────────────┐   
                                                                
      ┌────────────────────┐   ┌────────────────────┐          
         브로드캐스트            브로드캐스트                
         도메인 1                도메인 2                    
                                                             
         PC1 ──┐                       ┌── PC3             
                                                         
         PC2 ──┼──[SW1]         [SW2]──┼── PC4             
                                                             
      └──────────┬──────────┘   └──────────┬─────────┘          
                                                              
                 └────────[ ROUTER ]────────┘                   
                                                                
      * 라우터는 브로드캐스트를 전달하지 않음                  
      *  인터페이스가 별도의 브로드캐스트 도메인             
      * VLAN도 브로드캐스트 도메인을 분리                      
                                                                
   └─────────────────────────────────────────────────────────┘   
                                                                  
└─────────────────────────────────────────────────────────────────┘

장비별 도메인 비교

┌─────────────────────────────────────────────────────────────────┐
                    장비별 도메인 비교                            
├─────────────────────────────────────────────────────────────────┤
                                                                  
   ┌───────────────┬─────────────────┬─────────────────────────┐ 
        장비        충돌 도메인        브로드캐스트 도메인   
   ├───────────────┼─────────────────┼─────────────────────────┤ 
       허브         분리            분리             
      (Hub)         (1)               (1)                
   ├───────────────┼─────────────────┼─────────────────────────┤ 
      브리지        분리함              분리             
     (Bridge)       (포트별)            (1)                
   ├───────────────┼─────────────────┼─────────────────────────┤ 
      스위치        분리함              분리             
     (Switch)       (포트별)            (1, VLAN 제외)     
   ├───────────────┼─────────────────┼─────────────────────────┤ 
      라우터        분리함              분리함               
     (Router)       (포트별)            (인터페이스별)       
   └───────────────┴─────────────────┴─────────────────────────┘ 
                                                                  
   예시 네트워크:                                                
   ┌─────────────────────────────────────────────────────────┐   
                                                                
      ┌──────────────────────────────────────────────────┐     
                브로드캐스트 도메인 1                         
                                                              
         [PC1]──┐   ┌──[PC3]                                
         CD:1        CD:3                                  
                                                           
              [HUB]──[SWITCH]                               
                                                           
         [PC2]──┘                                           
         CD:1             [PC4]                             
          └────────────┘    CD:4                             
                                                              
      └──────────────────────────────┬───────────────────┘     
                                                               
                                [ROUTER]                        
                                                               
      ┌──────────────────────────────┴───────────────────┐     
                브로드캐스트 도메인 2                         
                                                              
              [SWITCH]                                        
                                                             
         [PC5]──┴──[PC6]                                     
         CD:5      CD:6                                       
                                                              
      └───────────────────────────────────────────────────┘     
                                                                
      충돌 도메인: 6 (HUB 연결은 1개로 계산)                 
      브로드캐스트 도메인: 2                                 
                                                                
   └─────────────────────────────────────────────────────────┘   
                                                                  
└─────────────────────────────────────────────────────────────────┘

8. 연습 문제

기초 문제

1. MAC 주소의 구조를 설명하고, OUI가 의미하는 것을 설명하시오.

2. 다음 중 브로드캐스트 MAC 주소는? - (a) 00:00:00:00:00:00 - (b) FF:FF:FF:FF:FF:FF - (c) 01:00:5E:00:00:01 - (d) AA:BB:CC:DD:EE:FF

3. 스위치가 알 수 없는 목적지 MAC 주소의 프레임을 수신했을 때 어떻게 처리하는가?

4. 이더넷 프레임의 최소 크기가 64바이트인 이유를 CSMA/CD와 연관지어 설명하시오.

응용 문제

5. 다음 네트워크에서 충돌 도메인과 브로드캐스트 도메인의 수를 구하시오.

[PC1]──┬──[HUB]──┬──[PC2]
       │         │
       └──[SWITCH]──┬──[PC3]
                    
               [ROUTER]
                    
              [SWITCH]──┬──[PC4]
                        └──[PC5]

6. ARP 스푸핑(Spoofing) 공격이 어떻게 작동하는지 설명하고, 방어 방법을 제시하시오.

7. PC A(192.168.1.10)가 PC B(192.168.1.20)에게 데이터를 처음 전송할 때, L2와 L3 관점에서 어떤 과정이 발생하는지 순서대로 설명하시오.

심화 문제

8. Store-and-Forward와 Cut-Through 스위칭 방식의 차이점과 각각의 장단점을 설명하시오.

9. 같은 스위치에 연결된 두 PC가 Full-duplex 모드로 통신할 때 CSMA/CD가 사용되지 않는 이유를 설명하시오.

10. VLAN이 브로드캐스트 도메인을 어떻게 분리하는지 설명하시오.


정답 **1.** - MAC 주소: 48비트(6바이트), 16진수 표기 - 앞 3바이트: OUI (Organizationally Unique Identifier) - 제조사 식별 - 뒤 3바이트: NIC 고유 번호 - 제조사가 할당 - OUI는 IEEE에서 제조사별로 할당 **2.** (b) FF:FF:FF:FF:FF:FF **3.** - 플러딩(Flooding): 수신 포트를 제외한 모든 포트로 프레임 전달 - 응답을 통해 출발지 MAC 주소 학습 **4.** - 충돌 감지를 위해 전송 중에 충돌을 인식해야 함 - 최악의 경우 왕복 시간(RTT) 동안 전송이 지속되어야 충돌 감지 가능 - 10Mbps, 2.5km 거리 기준으로 계산하면 약 512비트(64바이트) 필요 **5.** - 충돌 도메인: 5개 (HUB는 1개, 스위치 포트별 1개씩) - 브로드캐스트 도메인: 2개 (라우터가 분리) **6.** - ARP 스푸핑: 공격자가 가짜 ARP Reply를 보내 다른 호스트의 ARP 캐시를 조작 - 결과: 트래픽이 공격자를 거치게 됨 (중간자 공격) - 방어: 정적 ARP 엔트리, DAI(Dynamic ARP Inspection), 802.1X 인증 **7.** 1. PC A가 PC B의 IP 주소 확인 2. ARP 캐시에 없으면 ARP Request 브로드캐스트 3. PC B가 ARP Reply로 MAC 주소 전송 4. PC A가 ARP 캐시 업데이트 5. 이더넷 프레임 생성 (목적지 MAC: PC B, 출발지 MAC: PC A) 6. IP 패킷을 프레임에 캡슐화 7. 스위치를 통해 PC B로 전달 **8.** - Store-and-Forward: 전체 프레임 수신 후 CRC 검사, 오류 있으면 폐기, 지연 높음 - Cut-Through: 목적지 MAC만 확인 후 즉시 전달, 지연 낮음, 오류 프레임도 전달 - 현대 스위치는 Store-and-Forward가 기본 **9.** - Full-duplex: 송신과 수신이 분리된 별도 회선 사용 - 동시에 송신과 수신 가능 - 충돌이 발생하지 않으므로 CSMA/CD 불필요 - 스위치의 각 포트가 독립적인 세그먼트 **10.** - VLAN: 하나의 물리적 스위치를 여러 논리적 네트워크로 분리 - 같은 VLAN 내에서만 브로드캐스트 전달 - 다른 VLAN 간 통신은 라우터(L3) 필요 - 브로드캐스트 도메인 크기 축소, 보안 향상

다음 단계


참고 자료

to navigate between lessons