데이터 링크 계층의 역할과 이더넷
데이터 링크 계층의 역할과 이더넷
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) |
| 목적지 MAC | 6바이트 | 수신 장비의 MAC 주소 |
| 출발지 MAC | 6바이트 | 송신 장비의 MAC 주소 |
| 타입 | 2바이트 | 상위 프로토콜 식별 (IPv4: 0x0800, ARP: 0x0806) |
| 데이터 | 46~1500바이트 | 상위 계층 데이터 (페이로드) |
| FCS | 4바이트 | 오류 검출용 CRC 값 |
프리앰블 상세 구조
프리앰블 (Preamble) + SFD:
┌───────────────────────────────────────────────────────────┐
│ 10101010 10101010 10101010 10101010 │
│ 10101010 10101010 10101010 10101011 │
│ └────────── 프리앰블 ──────────┘ └─SFD─┘ │
│ (7바이트) (1바이트) │
└───────────────────────────────────────────────────────────┘
• 프리앰블: 수신측 클럭 동기화용 패턴
• SFD (Start Frame Delimiter): 프레임 시작 표시 (10101011)주요 이더타입 (EtherType)
| 값 (16진수) | 프로토콜 |
|---|---|
| 0x0800 | IPv4 |
| 0x0806 | ARP |
| 0x86DD | IPv6 |
| 0x8100 | VLAN (802.1Q) |
| 0x8847 | MPLS |
이더넷 프레임 예시
실제 프레임 예시 (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-T | 10 Mbps | Cat3 UTP | 100m | IEEE 802.3 |
| 10BASE-F | 10 Mbps | 광케이블 | 2km | IEEE 802.3 |
| 100BASE-TX | 100 Mbps | Cat5 UTP | 100m | IEEE 802.3u |
| 100BASE-FX | 100 Mbps | 광케이블 | 2km | IEEE 802.3u |
| 1000BASE-T | 1 Gbps | Cat5e/Cat6 | 100m | IEEE 802.3ab |
| 1000BASE-SX | 1 Gbps | MMF 광 | 550m | IEEE 802.3z |
| 1000BASE-LX | 1 Gbps | SMF 광 | 5km | IEEE 802.3z |
| 10GBASE-T | 10 Gbps | Cat6a/Cat7 | 100m | IEEE 802.3an |
| 10GBASE-SR | 10 Gbps | MMF 광 | 300m | IEEE 802.3ae |
| 10GBASE-LR | 10 Gbps | SMF 광 | 10km | IEEE 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비트)