데이터 링크 프로토콜과 오류 제어
요약
정보처리기사 실기 대비, 데이터 링크 계층의 주요 프로토콜인 HDLC, PPP, 프레임 릴레이, ATM과 오류 제어 방식인 순방향 오류 수정(FEC), 역방향 오류 수정(BEC)에 대해 알아봅니다.
| 용어 | 키워드 |
|---|---|
| 데이터 링크 계층 | OSI 2계층, 노드 간 데이터 전송, 오류 수정 |
| HDLC | 비트 위주 프로토콜, 프레임 구조, 비트 스터핑 |
| 정보 프레임 | 제어부 '0' 시작, 사용자 데이터 전달 |
| 감독 프레임 | 제어부 '10' 시작, 오류/흐름 제어 |
| 비번호 프레임 | 제어부 '11' 시작, 링크 동작 모드 설정 |
| NRM | 정규 응답 모드, 불균형 구성, 한 개의 주국과 여러 개의 종국 |
| ARM | 비동기 응답 모드, 포인트 투 포인트 불균형 링크, 종국이 허가 없이 송신 가능 |
| ABM | 비동기 균형 모드, 포인트 투 포인트 균형 링크, 혼합국, 허가 없이 전송 |
| ATM | 53바이트 셀 단위, 비동기 전송 모드, 고속 스위칭 |
| FEC | 순방향 오류 수정, 재전송 요구 없이 스스로 수정, 해밍 코드 |
| BEC | 역방향 오류 수정, 재전송 요구, ARQ |
| 패리티 검사 | 1비트 추가, 짝수/홀수 개수 검증 |
| CRC | 순환 중복 검사, 다항식 코드, 집단 오류 검출 |
| 해밍 코드 | FEC 방식, 오류 위치 검출, 패리티 비트, 2의 거듭제곱 위치 |
❗️각 프로토콜의 특징과 오류 제어 방식을 구분하여 암기하는 것이 중요합니다.
데이터 링크 계층 한눈에 보기
데이터 링크 계층은 OSI 7계층 모델의 2계층으로, 물리적 링크를 통해 데이터를 신뢰성 있게 전송하는 역할을 담당합니다. 주요 기능은 프레이밍(Framing), 흐름 제어(Flow Control), 오류 제어(Error Control) 입니다.
- 데이터 링크 프로토콜: 노드 대 노드(Point-to-Point) 간의 데이터 교환을 관리하는 통신 규약입니다.
- 프레이밍 : 네트워크 계층에서 받은 패킷에 정보를 붙여 프레임123으로 만드는 과정입니다.
- 흐름 제어 : 송신이 너무 빨라서 수신 측에서 처리할 수 없는 경우를 방지하는 기술입니다.
- 오류 제어: 전송 중 발생할 수 있는 데이터 오류를 감지하고 수정하는 기술입니다.
⭐️ : 출제된 용어
| 구분 | 주요 프로토콜 및 기술 | 특징 |
|---|---|---|
| 데이터 링크 프로토콜 | ⭐️HDLC, PPP, 프레임 릴레이, ⭐️ATM | 비트 중심, 문자 중심, 고속 데이터 전송 등 |
| 오류 제어 방식 | 순방향 오류 수정(FEC), 역방향 오류 수정(BEC) | 오류 감지 후 재전송 요청 또는 스스로 수정 |
데이터 링크 프로토콜
데이터 링크 프로토콜은 인접한 두 장치(노드) 사이의 데이터 전송을 관리하고 오류를 수정4합니다.
HDLC (High-level Data Link Control)
- 비트(Bit) 중심의 프로토콜로, 점대점(Point-to-Point) 및 다중점(Multi-point) 링크를 모두 지원합니다.
- 프레임 구조: 헤더(플래그5 - 주소부6 - 제어부7) - 패킷(정보부8) - 트레일러(FCS9 - 플래그) 순서로 구성됩니다.
- 특징:
HDLC 프레임의 종류
제어부의 첫 번째, 두 번째 비트를 사용하여 프레임의 종류를 구별합니다.
| 프레임 | 제어부 시작 | 키워드 |
|---|---|---|
| I(정보) 프레임 | 0 | 데이터 전달 역할 |
| S(감시/감독) 프레임 | 10 | 오류/흐름 제어 역할 |
| U(비번호) 프레임 | 11 | 링크 동작모드 설정 역할 |
-
정보(Information) 프레임
- 제어부가
0으로 시작하는 프레임입니다. - 사용자 데이터를 전달하는 역할을 합니다.
- 데이터 전송과 함께 확인 응답(ACK12)도 포함할 수 있습니다.
- 제어부가
-
감독(Supervisory) 프레임
-
비번호(Unnumbered) 프레임
- 제어부가
11로 시작하는 프레임입니다. - 링크의 동작 모드15 설정과 관리를 담당합니다.
- 링크 설정(Setup), 해제(Disconnect) 등의 제어 명령에 사용됩니다.
- 제어부가
HDLC 데이터 전송 모드
HDLC는 세 가지 데이터 전송 모드를 제공합니다.
| 동작 모드 | 키워드 |
|---|---|
| 정규 응답 모드(NRM) | 보조국(종국)은 폴 메시지 수신한 경우에만 송신 |
| 비동기 응답 모드(ARM) | 포인트 투 포인트 불균형 링크에서 사용, 종국은 주국의 허가없이 송신 가능 |
| 비동기 균형 모드(ABM) | 포인트 투 포인트 균형 링크에서 사용, 혼합국끼리 허가 없이 전송 가능 |
-
정규 응답 모드 (NRM, Normal Response Mode)
-
비동기 응답 모드 (ARM, Asynchronous Response Mode)23
- 전이중 통신24을 하는 포인트 투 포인트 불균형 링크 구성에 사용됩니다.
- 종국은 주국의 허가 없이 송신할 수 있습니다.
- 하지만 링크 설정이나 오류 복구 등의 제어 기능은 주국만 수행합니다.
-
비동기 균형 모드 (ABM, Asynchronous Balanced Mode)
- 포인트 투 포인트 균형 링크에서 사용됩니다.
- 모든 국(Station)이 혼합국(Combined Station)25이 되어 주국과 종국의 기능을 모두 수행합니다.
- 혼합국은 허가 없이 언제나 전송할 수 있습니다.
- 가장 널리 사용되는 모드로, 효율적인 양방향 통신이 가능합니다.
그러므로 비동기 응답모드 = 허가없이 전송 가능한, 주국 + 종국 형태구나 유추할 수 있음!
PPP (Point-to-Point Protocol)
- 문자(Character) 중심의 프로토콜로, 주로 두 컴퓨터 간의 직렬 인터페이스를 통해 통신하는 데 사용됩니다.
- 특징:
- HDLC와 달리 문자 중심이며, 프레임 구조가 더 유연합니다.
- 오류 감지만 수행하며, 오류 복구는 상위 계층에 맡깁니다.
- IP 주소 할당 및 인증(PAP, CHAP)과 같은 다양한 네트워크 제어 프로토콜(NCP)을 지원합니다.
- 주로 비동기식 전송에 사용되지만 동기식도 지원합니다.
프레임 릴레이 (Frame Relay)
- 고속 데이터 전송을 위해 개발된 프로토콜로, X.25의 단점을 개선했습니다.
- 특징:
ATM (Asynchronous Transfer Mode, 비동기 전송 모드)
- 53바이트(헤더 5바이트, 페이로드 48바이트) 크기의 작은 셀(Cell) 단위로 데이터를 전송하는 고속 스위칭 기술입니다.
- 특징:
- 음성, 비디오, 데이터 등 다양한 유형의 정보를 하나의 네트워크로 통합하여 전송할 수 있습니다.
- 고정 길이 셀을 사용하여 하드웨어적인 스위칭이 가능하므로 매우 빠른 속도를 제공합니다.
- B-ISDN의 핵심 기술로 사용됩니다.
데이터 링크 오류 제어
전송 과정에서 발생하는 오류를 감지하고 수정하는 방식입니다.
순방향 오류 수정 (FEC, Forward Error Correction)
- 수신 측에서 오류를 스스로 감지하고 수정하는 방식입니다.
- 특징:
- 데이터 전송 시 오류 수정에 필요한 잉여 비트(Redundant Bits) 를 함께 보냅니다. (예: 해밍 코드)
- 역방향 채널이 필요 없어 재전송 요청이 없으므로, 실시간 통신이나 단방향 통신에 적합합니다.
- 구현이 복잡하고, 추가적인 비트로 인해 전송 효율이 낮아질 수 있습니다.
왜 잉여 비트(Redundant Bits)를 추가할까요?
원본 데이터만 보내면 수신 측은 받은 데이터가 전송 중에 변질되었는지, 아니면 그대로 도착했는지 판단할 방법이 없습니다. 잉여 비트는 수신 측에서 오류 발생 여부를 판단할 근거를 제공합니다.
- 역방향 오류 수정(BEC) 에서는 오류를 탐지할 수 있을 정도의 최소한의 정보('지문')를 추가합니다.
- 순방향 오류 수정(FEC) 에서는 오류를 탐지하고 직접 수정까지 할 수 있을 만큼의 충분한 정보('해설지')를 추가합니다.
이처럼 두 방식 모두 잉여 비트를 사용하지만, 그 목적과 정보량에서 차이가 있습니다.
해밍 코드 (Hamming Code)
해밍 코드는 FEC의 대표적인 예시로, 단일 비트 오류를 자동으로 감지하고 수정할 수 있는 오류 수정 코드입니다.
해밍 코드의 특징:
- 여러 개의 패리티 비트: 2의 거듭제곱 위치(1, 2, 4, 8, 16, ...)에 패리티 비트를 배치합니다.
- 오류 위치 검출: 각 패리티 비트는 특정 비트들의 XOR 연산 결과를 저장합니다.
- 단일 비트 오류 수정: 오류가 발생한 정확한 위치를 찾아 수정할 수 있습니다.
해밍 코드 vs 패리티 검사의 차이:
- 해밍 코드: 여러 패리티 비트로 오류 검출 + 수정 가능
- 패리티 검사: 단일 패리티 비트로 오류 검출만 가능 (수정 불가)
역방향 오류 수정 (BEC, Backward Error Correction)
- 수신 측에서 오류를 감지하면 송신 측에 재전송을 요청하는 방식입니다. ARQ(Automatic Repeat reQuest) 라고도 합니다.
- BEC는 오류를 '검출'하는 메커니즘과, 검출된 오류에 대해 재전송을 요청하는 'ARQ 프로토콜'로 구성됩니다.
오류 검출 기법
오류를 검출하기 위해 데이터에 잉여 비트(Redundant Bits) 를 추가하여 전송합니다.
-
패리티 검사 (Parity Check)
- 데이터 블록에 1비트의 패리티 비트를 추가하여, 블록 내
1의 개수가 짝수(짝수 패리티) 또는 홀수(홀수 패리티)가 되도록 하는 가장 간단한 방법입니다. - 한계: 짝수 개의 비트에서 오류가 발생하면 검출할 수 없습니다. (예: 2개의 비트가
0에서1로 바뀌면1의 개수는 여전히 짝수)
- 데이터 블록에 1비트의 패리티 비트를 추가하여, 블록 내
-
순환 중복 검사 (CRC, Cyclic Redundancy Check)
- 다항식 코드를 사용하여 오류를 검출하는 강력한 방법입니다. 송신 측은 데이터를 미리 정해진 생성 다항식(Generator Polynomial) 으로 나누어 나머지를 계산하고, 이 나머지를 데이터에 덧붙여 전송합니다.
- 수신 측은 받은 데이터를 동일한 생성 다항식으로 나누어 나머지가
0인지 확인하여 오류를 검출합니다. - 집단 오류(Burst Errors)를 검출하는 데 매우 효과적입니다. HDLC의 FCS(Frame Check Sequence)가 CRC를 사용합니다.
-
블록 합 검사 (Block Sum Check)
- 데이터 블록을 고정된 크기의 여러 행으로 나눈 후, 각 열의 합(또는 XOR 연산)을 계산하여 검사 블록을 생성하고 데이터와 함께 전송합니다.
- 수신 측에서 동일한 계산을 수행하여 오류를 검출합니다.
ARQ (자동 반복 요청) 프로토콜
오류가 검출되었을 때 재전송을 관리하는 절차입니다.
- 종류:
- 정지-대기 (Stop-and-Wait) ARQ: 하나의 프레임을 보내고 확인(ACK/NAK)을 받을 때까지 기다립니다.
- Go-Back-N ARQ: 오류가 발생한 프레임부터 모두 재전송합니다.
- 선택적 재전송 (Selective Repeat) ARQ: 오류가 발생한 프레임만 선별하여 재전송합니다.
정보처리기사 실기 대비 문제
Footnotes
-
프레임 = 헤더 + 패킷 + 트레일러 ↩
-
아래 HDLC에 프레임 구조에 대한 설명이 있습니다. ↩
-
프레임의 시작과 끝을 나타내는 비트입니다.(그래서 트레일러에도 플래그가 있습니다.) ↩
-
프레임을 받을 노드(수신자)의 주소를 나타냅니다. ↩
-
아래에서 프레임 종류를 구별하는데 중요하게 사용됩니다. ↩
-
사용자 데이터 ↩
-
오류 검출을 위한 코드 - FCS(Frame Check Sequence) ↩
-
플래그와 플래그가 아닌 부분을 구분하기 위해 사용됩니다. ↩
-
송신측과 수신측이 동일한 박자(클록 신호)를 사용하여 데이터를 전송하는 방식입니다. ↩
-
Acknowledgment - 확인 응답 - "잘 받았어요, 다음 거 보내세요!" ↩
-
Negative Acknowledgment - 부정 확인 응답 - "잘 못 받았어요, 다시 보내세요!" ↩
-
HDLC 데이터 전송 모드를 의미 ↩
-
많은 권한이 주국에 쏠려있기 때문에 불균형 ↩
-
Station은 노드(Node)를 의미. 데이터 링크 계층에서는 제어 역할을 강조하여 Station을 사용함 ↩
-
통신을 제어하고 관리(통신탑, 기지국) ↩
-
주국의 지시에 따라 데이터를 송수신(스마트폰) ↩
-
동시에 통신이 안되고 번갈아가며 통신(송,수신)이 가능한 방식 예: 무전기(치지직 응답바람.. 치지직 여깄다 오버) ↩
-
1개 주국 + 여러 종국으로 이뤄진 경우 ↩
-
반대는 1:1, 2개 장치로 이뤄진 포인트 투 포인트 링크가 있음 ↩
-
여기서 비동기는 주국의 허가 없이 송신할 수 있는 모드를 의미 ↩
-
양방향 통신(송,수신)이 동시에 가능한 통신 방식 예: 전화 ↩
-
주국 기능(링크제어, 오류복구)와 종국 기능(데이터 송수신)을 모두 수행하는 국 ↩
-
Local Area Network - 근거리 네트워크 - 근거리 지역(건물, 사무실)을 연결하는 네트워크 ↩
-
Wide Area Network - 광역 네트워크 - 멀리 떨어진 지역(국가, 대륙)을 연결하는 네트워크 ↩
-
Metropolitan Area Network - 대도시 지역 네트워크 - 도시 지역(도시, 대형 캠퍼스, 여러 건물간)을 연결하는 네트워크 ↩