데이터 링크 계층의 오류 제어와 매체 접근 방식

데이터 링크 계층의 LLC·MAC 역할과 CSMA/CD·CSMA/CA, FEC·ARQ 기반 오류 제어 방식을 정리한다.

2026-08-14 · 최초 발행 2025-08-10

물리 계층이 비트를 전달한다면, 데이터 링크 계층은 그 비트가 인접한 장치 사이에서 프레임으로 안정적으로 오가게 만든다. OSI 7계층의 2계층인 이 계층은 전송 오류, 흐름, 주소, 공유 매체 접근을 함께 다룬다.

프레임 전달을 안정화하는 역할

데이터 링크 계층은 물리적으로 연결된 인접 노드 사이에 프레임을 전달한다. 이 과정에서 비트 오류를 감지하거나 수정하고, 필요하면 재전송을 요청한다.

송신자와 수신자의 처리 속도 차이로 버퍼가 넘치지 않도록 흐름도 조절한다. 장치 식별에는 MAC 주소를 사용하며, 프레임에 출발지와 목적지를 지정한다. 여러 장치가 하나의 매체를 공유할 때는 접근 순서를 조정하고 충돌 감지 또는 회피 메커니즘을 제공한다.

LLC와 MAC이 나누는 책임

데이터 링크 계층은 LLC(Logical Link Control)와 MAC(Media Access Control) 하위 계층으로 나뉜다.

Data Link LayerLogical Link ControlMedia Access Control오류 제어흐름 제어프레임 관리주소 지정매체 접근 제어충돌 감지/회피

LLC는 상위 계층과 접점을 이루며 오류 제어, 흐름 제어, 프레임 관리와 다양한 네트워크 프로토콜 지원을 담당한다.

MAC은 물리 매체에 접근하는 방식을 결정한다. MAC 주소를 관리하고 프레임의 시작과 끝을 구분하며, 충돌 감지와 회피 메커니즘을 구현한다.

공유 매체에서 충돌을 다루는 방식

CSMA/CD

CSMA/CD(Carrier Sense Multiple Access with Collision Detection)는 이더넷에서 주로 쓰이는 방식이다. 전송하기 전에 매체가 사용 중인지 확인하고, 여러 장치가 같은 매체를 사용할 수 있게 한다. 충돌이 발생하면 이를 감지해 재전송한다.

동작은 매체 상태 확인에서 시작한다. 매체가 사용 중이면 기다리고, 사용 가능하면 데이터를 전송한다. 전송 중 충돌이 감지되면 전송을 중단한 뒤 임의 시간 동안 대기하고 다시 시도한다.

CSMA/CA

CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)는 Wi-Fi 같은 무선 네트워크에서 주로 사용한다. 충돌을 감지한 뒤 처리하기보다, 전송 전에 충돌을 피하는 데 초점을 둔다.

매체가 비어 있는지 확인한 뒤 사용 중이면 대기한다. 사용 가능하면 RTS(Request to Send)를 보내고, 수신자가 CTS(Clear to Send)로 응답하면 데이터를 전송한다. 데이터 수신 뒤에는 ACK를 전송한다.

수신 측 수정과 재전송 요청

오류 제어는 FEC(Forward Error Correction)와 BEC(Backward Error Correction)로 나눌 수 있다.

FEC로 오류를 바로 수정하는 경우

FEC는 수신 측이 오류를 감지하고 수정하므로 재전송 없이 오류를 처리할 수 있다.

Hamming Code는 단일 비트 오류를 수정하고 2비트 오류를 감지하며, 패리티 비트로 오류를 검출하고 수정한다. BCH Code는 다중 비트 오류 수정과 오류 위치 계산을 지원하며 통신 및 저장 시스템에서 널리 사용된다.

Reed-Solomon Code는 BCH 코드의 일종으로, 연집 오류(burst error) 처리에 효과적이다. CD, DVD, QR 코드, 위성통신 등에 사용된다.

Turbo Code는 높은 오류 정정 능력과 비트 오류 확률을 최소화하는 알고리즘을 특징으로 하며 3G, 4G 이동통신에서 사용된다. Convolutional Code는 과거 입력과 현재 입력을 함께 고려하고 기억장치를 사용한다. 이는 Non-Block Code이며 CDMA 같은 무선통신에서 주로 사용된다.

BEC에서 사용하는 검출과 재전송

BEC는 오류를 검출한 뒤 재전송을 요청해 수정하는 방식이다.

CRC(Cyclic Redundancy Check)는 다항식 코드를 이용해 오류를 검출하며 높은 오류 검출률을 제공한다. 이더넷과 Wi-Fi를 비롯한 여러 프로토콜에서 사용된다. Checksum은 데이터 값의 합으로 오류를 검출하는 방식이다. 구현은 간단하지만 검출 능력은 제한적이며 TCP/IP 프로토콜에서 사용된다.

Parity Check는 짝수 개의 오류를 검출하지 못한다. VRC(Vertical Redundancy Check)는 각 바이트에 패리티 비트를 추가하고, LRC(Longitudinal Redundancy Check)는 데이터 블록의 각 위치별 패리티를 계산한다. 2D Parity는 행과 열 모두에 패리티 검사를 수행한다.

ARQ(Automatic Repeat reQuest)는 재전송을 제어한다. Stop & Wait ARQ는 프레임마다 ACK를 기다리고 타임아웃이면 재전송한다. 간단하지만 효율성은 낮다.

Go-back-N ARQ는 여러 프레임을 연속 전송하고 오류가 나면 해당 프레임부터 모두 다시 전송한다. 슬라이딩 윈도우 기법을 사용한다. Selective Repeat ARQ는 오류가 난 프레임만 선택적으로 재전송한다. 수신 측 버퍼가 필요하지만 더 효율적이고 구현은 복잡하다.

HARQ(Hybrid ARQ)는 ARQ와 FEC를 결합한다. Type-I은 오류 정정을 시도한 뒤 실패하면 전체를 재전송한다. Type-II는 점진적 중복성을 제공해 추가 정보만 전송하며, Type-III는 자체적으로 복호 가능한 패킷을 재전송한다.

기억장치 사용 여부로 구분하는 부호화

Block Code는 기억장치를 사용하지 않고 현재 입력만으로 코드워드를 만든다. Hamming Code, RS Code, BCH Code가 대표적이며 연집 오류와 랜덤 오류 정정을 지원한다.

Non-Block Code는 기억장치를 사용하고 과거 신호와 현재 신호를 함께 이용한다. Convolutional Code와 Turbo Code가 대표적이다. 무선 환경에서 효과적이며, Convolutional Code는 CDMA에서 사용된다. Turbo Code는 비트 오류 확률 최소화 알고리즘으로 IMT-2000 등에서 사용된다.

전송 기술에서의 조합

이더넷은 CSMA/CD를 사용하고 CRC-32로 오류를 검출한다. MAC 주소로 장치를 식별하며 프레임 구조로 데이터를 전송한다.

Wi-Fi(IEEE 802.11)는 CSMA/CA를 사용한다. FEC와 ARQ를 조합하고 다양한 오류 정정 코드를 적용하며, RTS/CTS 메커니즘으로 충돌을 회피한다.

모바일 통신에서는 3G/4G/5G에 Turbo Code, LDPC 같은 고급 FEC 기법을 사용한다. HARQ로 오류를 처리하고, Convolutional Code는 CDMA 시스템에서 사용된다.

데이터 링크 계층오류 제어CSMAMAC 주소네트워크