데이터 링크 계층의 역할과 이더넷

데이터 링크 계층의 역할과 이더넷

데이터 링크 계층의 역할과 이더넷

1. 데이터 링크 계층 개요

데이터 링크 계층이란?

  • OSI 7계층 중 2계층
  • 네트워크 장비 간에 신호를 주고받는 규칙을 정하는 계층
  • LAN에서 데이터를 정상적으로 주고받기 위해 필요한 계층

OSI 모델에서의 위치

┌─────────────────────────────────────────────────────────────┐
│                       OSI 7계층                              │
├─────────────────────────────────────────────────────────────┤
│  7계층  │  응용 계층        │  사용자 인터페이스             │
│  6계층  │  표현 계층        │  데이터 형식 변환              │
│  5계층  │  세션 계층        │  연결 관리                     │
│  4계층  │  전송 계층        │  신뢰성 있는 전송              │
│  3계층  │  네트워크 계층    │  경로 선택 (라우팅)            │
├─────────┼──────────────────┼────────────────────────────────┤
│  2계층  │  데이터 링크 계층 │  ★ 프레임 전송, MAC 주소      │
├─────────┼──────────────────┼────────────────────────────────┤
│  1계층  │  물리 계층        │  전기 신호 전송                │
└─────────┴──────────────────┴────────────────────────────────┘

데이터 링크 계층의 역할

┌─────────────────────────────────────────────────────────────┐
│                  데이터 링크 계층의 역할                      │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  1. 프레이밍 (Framing)                                       │
│     • 네트워크 계층 패킷을 프레임으로 캡슐화                   │
│     • 프레임 시작과 끝 표시                                   │
│                                                             │
│  2. 물리 주소 지정 (Physical Addressing)                     │
│     • MAC 주소를 사용한 장비 식별                            │
│     • 출발지/목적지 MAC 주소 추가                            │
│                                                             │
│  3. 흐름 제어 (Flow Control)                                 │
│     • 송수신 속도 조절                                       │
│     • 수신측 버퍼 오버플로우 방지                             │
│                                                             │
│  4. 오류 제어 (Error Control)                                │
│     • 프레임 오류 검출 (FCS/CRC)                             │
│     • 손상된 프레임 폐기                                     │
│                                                             │
│  5. 접근 제어 (Access Control)                               │
│     • 공유 매체 접근 방식 결정                               │
│     • CSMA/CD, CSMA/CA 등                                   │
│                                                             │
└─────────────────────────────────────────────────────────────┘

데이터 링크 계층의 두 가지 하위 계층

┌─────────────────────────────────────────────────────────────┐
│                    데이터 링크 계층                          │
├─────────────────────────────────────────────────────────────┤
│  ┌───────────────────────────────────────────────────────┐ │
│  │         LLC (Logical Link Control)                    │ │
│  │  • 상위 계층과의 인터페이스                            │ │
│  │  • 흐름 제어, 오류 제어                                │ │
│  │  • 프로토콜 식별                                       │ │
│  └───────────────────────────────────────────────────────┘ │
│  ┌───────────────────────────────────────────────────────┐ │
│  │         MAC (Media Access Control)                    │ │
│  │  • 물리 계층과의 인터페이스                            │ │
│  │  • MAC 주소 지정                                       │ │
│  │  • 매체 접근 제어 (CSMA/CD 등)                        │ │
│  └───────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘

2. 이더넷 (Ethernet)

이더넷이란?

  • LAN에서 데이터를 정상적으로 주고받기 위한 규칙(프로토콜)
  • 데이터 링크 계층에서 가장 많이 사용되는 기술
  • 허브, 스위치 등에 연결된 장비 간 데이터 통신에 사용

이더넷의 특징

┌─────────────────────────────────────────────────────────────┐
│                      이더넷 특징                             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  • LAN 환경의 표준 프로토콜                                  │
│  • IEEE 802.3 표준                                          │
│  • MAC 주소 기반 통신                                        │
│  • 프레임 단위로 데이터 전송                                  │
│  • CSMA/CD 방식으로 충돌 제어 (반이중 환경)                  │
│  • 현재 대부분 전이중 (Full Duplex) 방식 사용                 │
│                                                             │
└─────────────────────────────────────────────────────────────┘

이더넷의 필요성

허브 환경에서의 문제:

          ┌──────────────────────────┐
          │          HUB             │
          └────┬────┬────┬────┬─────┘
               │    │    │    │
            [PC-A][PC-B][PC-C][PC-D]

PC-A가 PC-C에게만 데이터를 보내고 싶어도...
→ 허브는 모든 포트로 데이터를 전송 (플러딩)
→ PC-B, PC-D도 데이터를 수신

해결책: 이더넷
─────────────────────────────────────────────
┌─────────────────────────────────────────────────────────────┐
│  데이터에 목적지 정보(MAC 주소)를 추가해서 전송               │
│                                                             │
│  PC-B, PC-D: "목적지가 나(내 MAC)가 아니네" → 무시          │
│  PC-C: "목적지가 나(내 MAC)야!" → 수신                      │
└─────────────────────────────────────────────────────────────┘

3. 이더넷 프레임 구조

이더넷 프레임 (Ethernet Frame)

이더넷 II 프레임 (DIX 프레임):

┌────────┬────────────┬────────────┬──────┬────────────┬─────┐
│프리앰블│  목적지    │  출발지    │타입  │   데이터    │ FCS │
│        │  MAC 주소  │  MAC 주소  │      │            │     │
├────────┼────────────┼────────────┼──────┼────────────┼─────┤
│ 8바이트│  6바이트   │  6바이트   │2바이트│46~1500바이트│4바이트│
└────────┴────────────┴────────────┴──────┴────────────┴─────┘
                        ↑
              이더넷 헤더 (14바이트)

각 필드 상세 설명

필드크기설명
프리앰블8바이트프레임 시작 알림, 동기화 신호 (10101010… + SFD)
목적지 MAC6바이트수신 장비의 MAC 주소
출발지 MAC6바이트송신 장비의 MAC 주소
타입2바이트상위 프로토콜 식별 (IPv4: 0x0800, ARP: 0x0806)
데이터46~1500바이트상위 계층 데이터 (페이로드)
FCS4바이트오류 검출용 CRC 값

프리앰블 상세 구조

프리앰블 (Preamble) + SFD:

┌───────────────────────────────────────────────────────────┐
│  10101010 10101010 10101010 10101010                     │
│  10101010 10101010 10101010 10101011                     │
│  └────────── 프리앰블 ──────────┘ └─SFD─┘                │
│         (7바이트)                (1바이트)                │
└───────────────────────────────────────────────────────────┘

• 프리앰블: 수신측 클럭 동기화용 패턴
• SFD (Start Frame Delimiter): 프레임 시작 표시 (10101011)

주요 이더타입 (EtherType)

값 (16진수)프로토콜
0x0800IPv4
0x0806ARP
0x86DDIPv6
0x8100VLAN (802.1Q)
0x8847MPLS

이더넷 프레임 예시

실제 프레임 예시 (PC-A → PC-C):

┌─────────────────────────────────────────────────────────────┐
│                      이더넷 프레임                           │
├─────────────────────────────────────────────────────────────┤
│  목적지 MAC: AA:BB:CC:DD:EE:03  (PC-C)                      │
│  출발지 MAC: AA:BB:CC:DD:EE:01  (PC-A)                      │
│  타입: 0x0800 (IPv4)                                        │
│  데이터: [IP 패킷 + TCP/UDP 세그먼트 + 실제 데이터]          │
│  FCS: 0x12345678 (CRC-32 체크섬)                            │
└─────────────────────────────────────────────────────────────┘

4. CSMA/CD

CSMA/CD란?

  • Carrier Sense Multiple Access with Collision Detection
  • 반송파 감지 다중 접속 및 충돌 탐지
  • 이더넷에서 충돌을 방지하기 위한 규칙
  • 반이중(Half Duplex) 환경에서 사용

CSMA/CD 구성 요소

┌─────────────────────────────────────────────────────────────┐
│                       CSMA/CD                               │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  CS (Carrier Sense) - 반송파 감지                           │
│  ──────────────────────────────────────                     │
│  "케이블에 신호가 흐르고 있는지 확인한다"                     │
│  → 다른 장비가 통신 중인지 확인                              │
│                                                             │
│  MA (Multiple Access) - 다중 접속                           │
│  ──────────────────────────────────────                     │
│  "케이블에 데이터가 흐르지 않으면 데이터를 보내도 좋다"        │
│  → 비어 있으면 누구나 전송 가능                              │
│                                                             │
│  CD (Collision Detection) - 충돌 탐지                       │
│  ──────────────────────────────────────                     │
│  "충돌이 발생하고 있는지 확인한다"                           │
│  → 충돌 감지 시 재전송                                      │
│                                                             │
└─────────────────────────────────────────────────────────────┘

CSMA/CD 동작 과정

1단계: 캐리어 감지 (Carrier Sense)
──────────────────────────────────────────

    [PC-A] ──── 케이블 상태 확인 ────

    케이블 상태:
    ├─ 신호 있음 (Busy) → 대기
    └─ 신호 없음 (Idle) → 2단계로


2단계: 전송 시작 (Multiple Access)
──────────────────────────────────────────

    [PC-A] ════════ 데이터 전송 중 ════════→

    케이블이 비어 있으면 바로 전송 시작


3단계: 충돌 감지 (Collision Detection)
──────────────────────────────────────────

    정상 전송:
    [PC-A] ════════════════════════→ [PC-C]
           전송 완료!

    충돌 발생:
    [PC-A] ═══════╳═══════
                  ╳ 충돌!
    [PC-B] ═══════╳═══════

    ↓

4단계: 충돌 처리
──────────────────────────────────────────

    1) JAM 신호 전송 (모든 장비에 충돌 알림)
    2) 전송 중단
    3) 랜덤 시간 대기 (백오프 알고리즘)
    4) 1단계부터 재시도 (최대 16회)

백오프 알고리즘 (Exponential Backoff)

충돌 횟수에 따른 대기 시간:

┌──────────┬─────────────────────────────────────────────────┐
│ 충돌 횟수 │              대기 슬롯 범위                      │
├──────────┼─────────────────────────────────────────────────┤
│    1회   │  0 ~ 1 슬롯 중 랜덤 선택                        │
│    2회   │  0 ~ 3 슬롯 중 랜덤 선택                        │
│    3회   │  0 ~ 7 슬롯 중 랜덤 선택                        │
│    4회   │  0 ~ 15 슬롯 중 랜덤 선택                       │
│   ...    │                                                 │
│   10회   │  0 ~ 1023 슬롯 중 랜덤 선택                     │
├──────────┼─────────────────────────────────────────────────┤
│ 16회 초과│  전송 포기, 상위 계층에 오류 보고               │
└──────────┴─────────────────────────────────────────────────┘

※ 1 슬롯 = 51.2μs (10Mbps 이더넷 기준)

공식: 대기 범위 = 0 ~ (2^n - 1), n = min(충돌횟수, 10)

CSMA/CD의 한계

┌─────────────────────────────────────────────────────────────┐
│                  CSMA/CD의 문제점                            │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  1. 효율성 저하                                              │
│     • 트래픽 증가 → 충돌 증가 → 재전송 증가                  │
│     • 네트워크 사용률 30% 초과 시 성능 급격히 저하            │
│                                                             │
│  2. 반이중 통신 한계                                         │
│     • 동시에 송수신 불가                                     │
│     • 대역폭의 절반만 활용                                   │
│                                                             │
│  3. 거리 제한                                               │
│     • 충돌 감지를 위해 최소 프레임 크기 필요                  │
│     • 전송 거리가 길어지면 충돌 감지 어려움                   │
│                                                             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  해결책: 전이중 스위칭 환경                                   │
│  • 스위치 사용 → 충돌 도메인 분리                            │
│  • 전이중 통신 → CSMA/CD 불필요                             │
│  • 현대 네트워크는 대부분 이 방식 사용                        │
│                                                             │
└─────────────────────────────────────────────────────────────┘

5. 이더넷 규격

이더넷 명명 규칙

이더넷 규격 명명법:

    10  BASE  -  T
    │    │       │
    │    │       └── 케이블 종류
    │    │           T: Twisted Pair (UTP)
    │    │           F: Fiber (광케이블)
    │    │           S: Short wavelength (단파장 광)
    │    │           L: Long wavelength (장파장 광)
    │    │
    │    └── 전송 방식
    │        BASE: 베이스밴드 (디지털)
    │        BROAD: 브로드밴드 (아날로그)
    │
    └── 전송 속도 (Mbps)
        10 = 10Mbps
        100 = 100Mbps
        1000 = 1Gbps

주요 이더넷 규격

규격속도케이블최대 거리표준
10BASE-T10 MbpsCat3 UTP100mIEEE 802.3
10BASE-F10 Mbps광케이블2kmIEEE 802.3
100BASE-TX100 MbpsCat5 UTP100mIEEE 802.3u
100BASE-FX100 Mbps광케이블2kmIEEE 802.3u
1000BASE-T1 GbpsCat5e/Cat6100mIEEE 802.3ab
1000BASE-SX1 GbpsMMF 광550mIEEE 802.3z
1000BASE-LX1 GbpsSMF 광5kmIEEE 802.3z
10GBASE-T10 GbpsCat6a/Cat7100mIEEE 802.3an
10GBASE-SR10 GbpsMMF 광300mIEEE 802.3ae
10GBASE-LR10 GbpsSMF 광10kmIEEE 802.3ae

이더넷 발전 역사

이더넷 발전 과정:

1973년  Xerox PARC에서 개발 (2.94Mbps)
   │
   ▼
1980년  DIX 이더넷 (DEC, Intel, Xerox)
   │    10Mbps, 동축 케이블
   ▼
1983년  IEEE 802.3 표준화
   │
   ▼
1990년  10BASE-T 등장
   │    UTP 케이블 사용 시작
   ▼
1995년  Fast Ethernet (100Mbps)
   │    IEEE 802.3u
   ▼
1998년  Gigabit Ethernet (1Gbps)
   │    IEEE 802.3z (광), IEEE 802.3ab (UTP)
   ▼
2002년  10 Gigabit Ethernet
   │    IEEE 802.3ae
   ▼
2010년  40G/100G Ethernet
   │    IEEE 802.3ba
   ▼
2017년  200G/400G Ethernet
   │    IEEE 802.3bs
   ▼
현재    800G/1.6T Ethernet 개발 중

6. 전이중 vs 반이중 통신

통신 방식 비교

반이중 (Half Duplex):
──────────────────────────────────────────
    시점 1: A → B
    [PC-A] ════════════════→ [PC-B]

    시점 2: B → A
    [PC-A] ←════════════════ [PC-B]

    • 한 번에 한 방향만 통신
    • CSMA/CD 필요
    • 허브 환경에서 사용
    • 실제 대역폭 = 명목 대역폭의 50% 이하


전이중 (Full Duplex):
──────────────────────────────────────────
    [PC-A] ════════════════→ [PC-B]
           ←════════════════
           (동시에 양방향)

    • 동시에 양방향 통신
    • CSMA/CD 불필요 (충돌 없음)
    • 스위치 환경에서 사용
    • 실제 대역폭 = 명목 대역폭 × 2

전이중 통신이 가능한 이유

전이중 통신의 원리:

┌─────────────────────────────────────────────────────────────┐
│                   UTP 케이블 4쌍                             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  1,2번 쌍: 송신 전용 ════════════════→                      │
│                                                             │
│  3,6번 쌍: 수신 전용 ←════════════════                      │
│                                                             │
│  4,5번 쌍: 예비 (기가비트에서 사용)                          │
│                                                             │
│  7,8번 쌍: 예비 (기가비트에서 사용)                          │
│                                                             │
├─────────────────────────────────────────────────────────────┤
│  → 송신과 수신이 별도 회선 사용                              │
│  → 동시에 양방향 통신 가능                                   │
│  → 충돌 발생 안 함                                          │
└─────────────────────────────────────────────────────────────┘

허브 vs 스위치 환경

허브 환경 (반이중):

     ┌─────────────────────────┐
     │          HUB            │
     │   ┌─────────────────┐  │
     │   │   공유 버스      │  │ ← 모두가 하나의 회선 공유
     │   └─────────────────┘  │
     └──┬───┬───┬───┬───┬────┘
        │   │   │   │   │
      [PC] [PC] [PC] [PC] [PC]

     • 모든 장비가 대역폭 공유
     • 충돌 발생 가능
     • CSMA/CD 필요


스위치 환경 (전이중):

     ┌─────────────────────────┐
     │        SWITCH           │
     │  ┌──┐ ┌──┐ ┌──┐ ┌──┐  │
     │  │버│ │버│ │버│ │버│  │ ← 각 포트별 전용 버퍼
     │  │퍼│ │퍼│ │퍼│ │퍼│  │
     │  └┬─┘ └┬─┘ └┬─┘ └┬─┘  │
     └───┼────┼────┼────┼────┘
         │    │    │    │
       [PC] [PC] [PC] [PC]

     • 각 포트가 독립적 대역폭
     • 충돌 없음
     • CSMA/CD 불필요

7. MAC 주소와 프레임 처리

MAC 주소 기반 통신

MAC 주소를 이용한 프레임 전달:

[PC-A]                                              [PC-C]
MAC: AA:11:22:33:44:01                    MAC: AA:11:22:33:44:03

        │                                        ↑
        ▼                                        │
┌─────────────────────────────────────────────────────────────┐
│  이더넷 프레임                                               │
│  ┌───────────────────┬───────────────────┬────────────────┐│
│  │ 목적지 MAC        │ 출발지 MAC        │ 데이터         ││
│  │ AA:11:22:33:44:03│ AA:11:22:33:44:01│ Hello!         ││
│  └───────────────────┴───────────────────┴────────────────┘│
└─────────────────────────────────────────────────────────────┘
        │
        ▼
   ┌─────────────────────────┐
   │        SWITCH           │
   │                         │
   │  MAC 테이블 확인:       │
   │  AA:11:22:33:44:03      │
   │  → 포트 3번             │
   └───────────┬─────────────┘
               │
               ▼
            [PC-C]에게만 전달

특수 MAC 주소

브로드캐스트 (Broadcast):
──────────────────────────────────────────
목적지 MAC: FF:FF:FF:FF:FF:FF

→ 같은 네트워크의 모든 장비에게 전송
→ 예: ARP 요청


유니캐스트 (Unicast):
──────────────────────────────────────────
목적지 MAC: 특정 장비의 MAC 주소

→ 한 대의 특정 장비에게만 전송


멀티캐스트 (Multicast):
──────────────────────────────────────────
목적지 MAC: 01:00:5E:xx:xx:xx (IPv4)
            33:33:xx:xx:xx:xx (IPv6)

→ 특정 그룹의 장비들에게 전송

8. 이더넷 프레임 처리 과정

송신 과정

송신측 처리 과정:

[응용 프로그램]
      │ 데이터
      ▼
┌─────────────────┐
│   전송 계층     │  ← TCP/UDP 헤더 추가 → 세그먼트
└─────────────────┘
      │
      ▼
┌─────────────────┐
│  네트워크 계층  │  ← IP 헤더 추가 → 패킷
└─────────────────┘
      │
      ▼
┌─────────────────────────────────────────────────────────────┐
│                    데이터 링크 계층                          │
│                                                             │
│  1. 이더넷 헤더 추가                                         │
│     • 목적지 MAC (ARP로 확인)                               │
│     • 출발지 MAC (자신의 NIC)                               │
│     • 타입 (0x0800 = IPv4)                                  │
│                                                             │
│  2. FCS 계산 및 추가 (CRC-32)                               │
│                                                             │
│  결과: 이더넷 프레임                                         │
└─────────────────────────────────────────────────────────────┘
      │
      ▼
┌─────────────────┐
│   물리 계층     │  ← 전기 신호로 변환
└─────────────────┘
      │
      ▼
   케이블

수신 과정

수신측 처리 과정:

   케이블
      │
      ▼ 전기 신호
┌─────────────────┐
│   물리 계층     │  ← 전기 신호 → 비트열
└─────────────────┘
      │
      ▼
┌─────────────────────────────────────────────────────────────┐
│                    데이터 링크 계층                          │
│                                                             │
│  1. 프리앰블 제거                                           │
│                                                             │
│  2. FCS 검증                                                │
│     • CRC 재계산 → FCS와 비교                               │
│     • 불일치 시 프레임 폐기                                  │
│                                                             │
│  3. 목적지 MAC 확인                                         │
│     • 자신의 MAC과 일치? → 수신                             │
│     • 브로드캐스트? → 수신                                  │
│     • 불일치? → 폐기                                        │
│                                                             │
│  4. 이더넷 헤더 제거 → 상위 계층으로 전달                    │
└─────────────────────────────────────────────────────────────┘
      │
      ▼
┌─────────────────┐
│  네트워크 계층  │  ← IP 헤더 처리
└─────────────────┘
      │
      ▼
     ...

핵심 정리

개념설명
데이터 링크 계층OSI 2계층, 프레임 전송 및 MAC 주소 관리
이더넷LAN에서 가장 많이 사용하는 데이터 링크 프로토콜
이더넷 프레임목적지/출발지 MAC + 타입 + 데이터 + FCS
CSMA/CD충돌 감지 및 재전송 프로토콜 (반이중 환경)
CS케이블에 신호가 흐르는지 확인
MA비어 있으면 전송 가능
CD충돌 발생 여부 확인
전이중 통신동시 양방향 통신, 충돌 없음 (스위치 환경)

CSMA/CD 요약

┌─────────────────────────────────────────────────────────────┐
│                    CSMA/CD 동작 흐름                         │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│    ┌──────────────┐                                        │
│    │ 전송할 데이터 │                                        │
│    └──────┬───────┘                                        │
│           ▼                                                 │
│    ┌──────────────┐      Yes                               │
│    │ 채널 사용 중? ├───────────→ 대기                       │
│    └──────┬───────┘              │                         │
│           │ No                    │                         │
│           ▼                       │                         │
│    ┌──────────────┐              │                         │
│    │  데이터 전송  │←─────────────┘                         │
│    └──────┬───────┘                                        │
│           ▼                                                 │
│    ┌──────────────┐      Yes   ┌────────────┐             │
│    │  충돌 감지?   ├──────────→│ JAM 신호   │             │
│    └──────┬───────┘            │ 랜덤 대기  │             │
│           │ No                  └─────┬──────┘             │
│           ▼                           │                     │
│    ┌──────────────┐                   │                     │
│    │  전송 완료   │←──────────────────┘                     │
│    └──────────────┘                                        │
│                                                             │
└─────────────────────────────────────────────────────────────┘

용어 정리

  • 이더넷 (Ethernet): LAN에서 데이터를 주고받기 위한 표준 프로토콜 (IEEE 802.3)
  • CSMA/CD: Carrier Sense Multiple Access with Collision Detection, 충돌 감지 다중 접속 방식
  • 프레임 (Frame): 데이터 링크 계층의 데이터 단위
  • FCS (Frame Check Sequence): 프레임 오류 검출용 체크섬 (CRC-32)
  • 전이중 (Full Duplex): 동시에 양방향 통신 가능, 스위치 환경
  • 반이중 (Half Duplex): 한 번에 한 방향만 통신, 허브 환경
  • MAC 주소: 네트워크 장비의 고유한 물리적 주소 (48비트)