-
네트워크 통신 오류컴퓨터/정보처리기사 2025. 4. 22. 22:14728x90반응형
전송 오류에는 감쇠, 지연 왜곡, 잡음 등 다양한 원인이 있으며, 이러한 오류를 검출하고 수정하는 것으로 알려진 대표적인 방식이 Hamming 코드 방식이다.
Hamming 코드 방식은 데이터 단위에 Parity 비트를 추가하여 오류를 검출하여 교정이 가능한 코드로, 2bit의 오류를 검출할 수 있으며 1bit의 오류를 교정한다. 데이터 비트 외에 잉여 비트가 많이 필요하다는 단점이 있다.
Hamming 코드 방식은 수신측에서 오류를 정정하는 FEC에 해당한다. FEC는 데이터 전송 과정에서 오류가 발생하면 송신측에 재전송을 요구하는 BEC와는 달리 재전송 요구 없이 스스로 수정하기 때문에 연속적인 데이터 전송이 가능하다.
BEC는 Parity 검사, CRC 등을 통해 오류를 검출하고 ARQ(Automatic Repeat reQuest)로 오류를 제어한다.
Parity 검사는 오류 검사를 위해 데이터 비트 외에 1bit의 체크 비트를 추가하는 것으로, 1bit의 오류만 검출할 수 있다. 1의 개수에 따라 짝수 parity와 홀수 parity로 나뉜다.
CRC는 다항식 코드를 사용하여 오류를 검출하는 방식이다. 동기식 전송에서 주로 사용되며, HDLC 프레임의 FCS(프레임 검사 순서 필드)에 사용되는 방식이다. 집단 오류를 검출할 수 있고, 검출률이 높으므로 가장 많이 사용한다.
- Fcs(frame check sequence)
수신한 인터넷 프레임에 오류가 있는지 확인하기 위한 필드
FCS 필드에는 CRC(Cyclic Redundancy Check), 순환 중복 검사라고 불리는 오류 검출용 값이 들어간다
송신지는 프리엠블를 제외한 나머지 필드 값들을 바탕으로 C R C 값을 계산한 후 이 값을 FC S 필드에 명시한다.
그리고 수신자는 수신 한 프레임에서 프리엠블과 FC S 필드를 제외한 나머지 필드 값들을 바탕으로 C R C 값을 계산한 뒤 이 값을 FCS 필드값과 비교 한다.
이때 비교 값이 일치하지 않으면 프레임에 오류가 있다고 판단하여 해당 프레임을 폐기 한다.
- 전송 오류
감쇠, 지연 왜곡, 잡음 등 다양한 원인이 있다.
전송 오류를 검출하고 복구하기 위한 여러 가지 기법
간단한 오류 검출 → 패리티 비트
강력한 오류 검출 → CRC
오류 정정 필요 (재전송 없이) → Hamming 코드, FEC
신뢰성이 중요 (재전송 가능) → BEC (TCP/IP)
Hamming 코드 FEC, Parity 검사 CRC BEC
비교 정리
기법 특징 오류 검출 오류 정정 주요 용도 Hamming 코드 추가 비트로 오류 검출 & 정정 ✅ ✅ (1비트 수정 가능) 메모리, 통신 FEC (순방향 오류 정정) 추가 정보로 오류 정정 ✅ ✅ 위성, DVD BEC (후방 오류 정정) 오류 발생 시 재전송 ✅ ❌ (재전송) TCP/IP, 무선 통신 패리티 비트 1비트 추가로 오류 검출 ✅ ❌ 간단한 데이터 전송 CRC 다항식 연산으로 강력한 오류 검출 ✅ ❌ 네트워크, 파일 전송 🔹 1. Hamming 코드 (해밍 코드) -> 오류 정정 필요
데이터 전송 중 발생한 오류를 검출하고, 직접 수정까지 가능한 오류 검출 & 정정 코드
수신측에서 오류를 정정하는 FEC(Forward Error Correction)에 해당한다
특징
오류 검출 + 오류 정정 가능
n비트의 데이터에 k비트의 패리티 비트를 추가하여 오류 정정
1비트 오류까지 수정 가능, 2비트 오류는 검출 가능하지만 수정 불가능
데이터 비트 외에 잉여 비트가 많이 필요하다는 단점이 있다.
ex. 7, 4 Hamming 코드 - 4비트 데이터 + 3비트 패리티
데이터: 1011 → Hamming 코드: 1011011
전송 중 1비트 오류 발생 -> 수신 측에서 오류 위치 계산 후 수정
📌 주요 용도
✅ 메모리 오류 정정 (ECC 메모리)
✅ 데이터 통신 (네트워크 패킷 오류 복구)
🔹 2. FEC (Forward Error Correction, 순방향 오류 정정) -> 오류 정정 필요
미리 오류 복구 정보를 포함시켜 전송 -> 수신자가 자체 복구
수신 측에서 오류를 스스로 수정할 수 있도록 중복 데이터를 추가하여 전송하는 방식
재전송 없이 오류 정정 가능(속도 ↑, 대역폭 사용량 ↑) => 연속적인 데이터 전송 가능
Hamming 코드, Reed-Solomon 코드, 터보 코드 등이 대표적인 FEC 기법
위성 통신, 방송 시스템, VoIP 등에서 사용
추가 비트(오류 정정 코드)를 함께 전송
재전송이 필요 없어서 지연이 적음
위성 통신, 실시간 스트리밍 등에서 유용
DVD, CD 데이터 오류 정정 (Reed-Solomon 코드 사용)
위성 TV 방송 (에러가 많아도 재전송 없이 복구해야 함)
주요 용도
위성 통신, 광통신 (재전송 어려운 환경)
데이터 저장 장치 (CD, DVD, SSD 오류 정정)
🔹 3. BEC (Backward Error Correction, 후방 오류 정정)
오류가 발생하면 수신 측에서 송신 측에 재전송 요청(ACK/NACK) 하는 방식
FEC와 달리 복구 코드를 포함하지 않음
오류가 발생하면 송신자에게 다시 보내달라고 요청해야 함
재전송 필요 -> 지연 발생 가능
Parity 검사, CRC 등을 통해 오류를 검출하고 ARQ(Automatic Repeat reQuest)로 오류를 제어한다
수신 측에서 오류 발생 시 재전송 요청(NACK 메시지)
신뢰성이 높지만 재전송으로 인해 속도가 느려질 수 있음
Stop-and Wait ARQ, Go-Back-N ARQ, Selective Repeat ARQ 방식이 있음
ex.
TCP/IP 프로토콜에서 패킷 손실 시 재전송 요청
무선 네트워크(와이파이, 5G)에서 손실된 데이터 복구
📌 주요 용도
✅ 인터넷(TCP 프로토콜)
✅ 신뢰성 높은 데이터 전송이 필요한 시스템
🔹 4. 패리티 비트 (Parity Bit)
1비트의 추가 데이터를 사용하여 오류를 검출하는 방식
오류 검사를 위해 데이터 비트 외에 1bit의 체크 비트를 추가하는 것으로
1bit의 오류만 검출할 수 있다
오류 검출만 가능하고, 오류 정정은 불가능
1의 개수에 따라 짝수 패리티, 홀수 패리티로 나뉜다
짝수 패리티
데이터: 1011 (1의 개수: 3 → 패리티 비트 1 추가)
전송 데이터: 10111
✔ 수신 측에서 받은 데이터의 1의 개수가 짝수가 아니면 오류 발생
📌 주요 용도
✅ 간단한 오류 검출 (초기 네트워크, 간단한 데이터 저장)
✅ UART(직렬 통신), 메모리 오류 검출
🔹 5. CRC (Cyclic Redundancy Check, 순환 중복 검사)
다항식 코드를 사용하여오류를 검출하는 방식
강력한 오류 검출 기능(다중 비트 오류도 검출 가능)
동기식 전송에서 주로 사용
HDLC 프레임의 FCS(프레임 검사 순서 필드)에 사용되는 방식이다.
집단 오류를 검출할 수 있고, 검출률이 높으므로 가장 많이 사용한다
XOR 연산을 사용하여 데이터에 특정 다항식을 적용
네트워크 패킷, 파일 전송에서 오류 검사에 많이 사용됨
1️⃣ 전송할 데이터 + CRC 다항식으로 CRC 코드 생성
2️⃣ 수신 측에서 같은 다항식으로 연산 후 오류 확인
3️⃣ 오류 발생 시 재전송 요청
📌 주요 용도
✅ 네트워크 패킷 오류 검출 (Ethernet, Wi-Fi)
✅ ZIP 파일, 하드디스크 데이터 무결성 검사
- 피기백킹(Piggybacking)이란?
데이터를 주고받을 때,
ACK(응답 신호)를 별도로 보내지 않고,
상대방에게 보낼 데이터가 있을 때
그 데이터에 ACK를 실어서 함께 보내는 방식
🔹 HDLC (High-Level Data Link Control) 프레임
데이터 링크 계층에서 비트 단위로 데이터를 전송하는 프로토콜
-> 데이터 전송의 신뢰성을 높이기 위해 오류 검출, 흐름 제어 기능 포함
HDLC는 비트 위주의 프로토콜
각 프레임에 데이터 흐름을 제어하고 오류를 검출할 수 있는 비트열을 삽입하여 전송한다.
포인트 투 포인트 및 멀티 포인트, 루프 등 다양한 데이터 링크 형태에 동일하게 적용이 가능하다는 특징이 있다.
HDLC의 프레임 구조는 헤더, 텍스트, 트레일러로 구분되며,
헤더는 다시 플래그, 주소부, 제어부로 구분할 수 있다.
제어부는 프레임의 종류를 식별하기 위해 사용한다.
제어부의 첫 번째, 두 번째 비트를 사용하여
정보 프레임, 감독 프레임, 비번호 프레임으로 구분된다.
정보 프레임은 I 프레임으로 불리며, 제어부가 ‘0으로 시작하는 프레임이다.
사용자 데이터를 전달하거나 피기백킹 기법을 통해 데이터에 대한 확인 응답을 보낼 때 사용된다.
실제 데이터 전송
순서 번호 포함
감독 프레임은 S 프레임으로 불리며, 제어부가 ’10’으로 시작하는 프레임이다.
오류 제어와 흐름 제어를 위해 사용된다.
제어 신호 전송
계속 보내도 돼 등등
비번호 프레임은 U 프레임으로 불리며, 제어부가 ’11’로 시작하는 프레임이다.
링크의 동작 모드 설정과 관리를 한다.
Unnumbered frame
주 역할: 링크 설정, 종료, 명령 전달 등 관리용
• 순번 없이 특별한 제어 목적으로 사용됨
• 예:
• SNRM (Set Normal Response Mode): 통신 시작하자
• DISC (Disconnect): 연결 끊자
• UA (Unnumbered Acknowledge): 확인했어
• FRMR (Frame Reject): 프레임 자체가 이상해
비번호 프레임에서 설정할 수 있는 동작 모드에는
표준 응답모드,
비동기 균형 모드,
비동기 응답 모드의 세 가지로 구분된다.
표준 응답 모드는 반이중 통신을 하는 포인트 투 포인트 또는 멀티 포인트 불균형 링크 구성에 사용되며, 종국은 주국의 허가가 있을 때에만 송신하는 특징이 있다.
비동기 균형 모드는 포인트 투 포인트 균형 링크에서 사용되며, 혼합국끼리 허가 없이 언제나 전송할 수 있다.
비동기 응답 모드는 전이중 통신을 하는 포인트 투 포인트 불균형 링크 구성에 사용되며, 종국은 주국의 허가 없이도 송신이 가능하지만 링크 설정이나 오류 복구 등의 제어 기능은 주국만 가능하다.
비트 중심(비트 스터핑 사용) 데이터 링크 프로토콜
점대점(Point-to-Point) 및 다중점(Multipoint), 루프(Loop) 등 다양한 데이터 링크 형태에 동일하게 적용이 가능하다 (전송 가능)
오류 검출을 위한 FCS(Frame Check Sequence) 포함
전이중(Full-Duplex) 및 반이중(Half-Duplex) 통신 가능
불균형 링크: 한쪽이 제어권을 가짐
📌 HDLC 프레임 구조
헤더, 텍스트, 트레일러로 구성
헤더: 플래그, 주소부, 제어부
플래그 (Flag) 주소부 (Address) 제어부 (Control) 정보 (Information) FCS (오류 검출) 플래그 (Flag) 8비트 (01111110) 8~16비트 8~16비트 가변 길이 (데이터) 16~32비트 (CRC) 8비트 (01111110) ✔ 플래그(Flag): 프레임의 시작과 끝을 나타냄 (01111110)
✔ 주소(Address): 수신 장치 주소 지정
✔ 제어(Control): 프레임 종류 지정 (정보 프레임, Supervisory 프레임 등)1️⃣ 정보 프레임(I-Frame) → 데이터 전송
제어부가 ‘0’으로 시작하는 프레임
사용자 데이터를 전달하거나 피기백킹 기법을 통해 데이터에 대한 확인 응답을 보낼 때 사용된다
2️⃣ 감독 프레임(S-Frame) → 오류 제어, 흐름 제어
제어부가 ’10’으로 시작하는 프레임
3️⃣ 비번호 프레임(U-Frame) → 연결 설정 및 관리
제어부가 ’11’로 시작하는 프레임
✔ 정보(Information): 실제 데이터 포함
✔ FCS(Frame Check Sequence): 오류 검출을 위한 CRC 포함📌 사용 사례
✅ WAN(광역 네트워크) 연결 프로토콜
✅ PPP(Point-to-Point Protocol) 기반 네트워크
운영 모드
표준 응답 모드, 비동기 균형 모드(ABM), 비동기 응답 모드(ARM)
✅ 최종 정리 (HDLC 운영 모드 비교)
운영 모드 특징 데이터 전송 방식 사용 환경 NRM (정규 응답 모드) 주국(Primary) 제어, 종국(Secondary) 응답만 가능 Half-Duplex (반이중) 중앙 집중식 네트워크 (구형 시스템) ABM (비동기 균형 모드) 주국/종국 구분 없이 자유로운 통신 Full-Duplex (전이중) WAN, 라우터 간 연결 ARM (비동기 응답 모드) 주국이 제어하지만 종국도 자율적 전송 가능 Half/Full-Duplex 가능 호스트 - 터미널 환경 📌 즉, ABM은 가장 효율적이고 현대적인 방식이며, ARM은 NRM보다 유연한 방식이야! 🚀
표준 응답 모드: 반이중 통신을 하는 포인트 투 포인트 또는 멀티 포인트 불균형 링크 구성에 사용
종국은 주국의 허가(Poll)가 있을 때만 송신
비동기 균형 모드(ABM, Asynchronous Balanced Mode)
포인트 투 포인트 균형 링크에서 사용되며,
혼합국끼리 허가 없이 언제나 전송할 수 있다
주국(Primary Station)과 종국(Secondary Station)의 구분 없이,
동등한 상태에서 데이터 통신을 수행하는 방식
주국, 종국 개념 없음
양쪽이 자율적으로 데이터 송수신 가능 (Full-Duplex 지원)
점대점(Point-to-Point) 통신에서 사용됨
효율적이며, 가장 널리 사용되는 방식
비동기 응답 모드(ARM, Asynchronous Response Mode)
전이중 통신을 하는 포인트 투 포인트 불균형 링크 구성에 사용
종국은 주국의 허가(Poll)없이도 송신이 가능하지만
링크 설정이나 오류 복구 등의 제어 기능은 주국만 가능하다
"주국(Primary Station)이 종국(Secondary Station)의 데이터 전송을 제어하는 방식"
📌 특징
- 주국(Primary)이 명령을 내리고, 종국(Secondary)이 응답하는 방식
- NRM과 달리, 종국도 명령 없이 데이터 전송 가능하지만, 여전히 주국이 전송 우선권을 가짐
- 비동기적이지만, 주국의 제어 아래 동작
- 반이중(Half-Duplex) 또는 전이중(Full-Duplex) 통신 가능
종국의 자율성
✅ 정리: HDLC가 중요한 이유
항목 이유 호환성 다양한 장비 간 통신을 위한 국제 표준 안정성 에러 검출, 프레임 구조 명확 유연성 통신 방식(주종, 대등, 비정규) 선택 가능 기반 기술 PPP 등 현대 프로토콜에 영향을 줌 🔹 2. FCS (Frame Check Sequence, 프레임 검사 시퀀스)
전송된 데이터의 오류를 검출하는 체크섬(Checksum) 값
-> HDLC, 이더넷, PPP 등의 데이터 링크 프로토콜에서 사용됨
프레임 끝에 추가되는 오류 검출 코드
CRC(Cyclick Redundancy Check, 순환 중복 검사) 알고리즘 사용
오류 검출만 가능하며, 오류 정정 기능 없음
📌 FCS 오류 검출 방식 (CRC 사용)
1️⃣ 송신 측 → 데이터를 다항식(Polynomial)으로 변환하여 FCS 추가
2️⃣ 수신 측 → 수신한 데이터 + FCS를 다시 다항식으로 변환하여 오류 검출
3️⃣ 오류 발생 시 재전송 요청(ARQ) 수행
📌 FCS가 사용되는 프로토콜
✅ HDLC (High-Level Data Link Control)
✅ Ethernet (CSMA/CD 기반)
✅ PPP (Point-to-Point Protocol)
🔹 ARQ (Automatic Repeat reQuest, 자동 재전송 요청)
데이터 전송 중 오류가 발생하면 자동으로 재전송을 요청하는 기법
-> 신뢰성 높은 데이터 전송을 보장하는 오류 제어 방식
수신 측에서 오류가 검출되면 송신 측에 재전송 요청(NACK) 전송
오류 복구 기능을 제공하여 신뢰성 있는 데이터 통신 가능
TCP/IP, HDLC 등에서 사용
📌 ARQ의 주요 유형
ARQ 방식 설명 장점 단점 Stop-and-Wait ARQ 한 번에 1개의 프레임을 보내고 ACK/NACK을 기다림 구현 간단 속도 느림 Go-Back-N ARQ 여러 개의 프레임을 보내고, 오류 발생 시 오류 이후 모든 프레임 재전송 속도 빠름 불필요한 재전송 증가 Selective Repeat ARQ 오류가 발생한 프레임만 선택적으로 재전송 효율적 구현 복잡 📌 ARQ 예제
1️⃣ 송신 측: 프레임 1 → 프레임 2 → 프레임 3 전송
2️⃣ 수신 측: 프레임 2 오류 발생 → NACK(재전송 요청) 전송
3️⃣ 송신 측: 프레임 2만 재전송 (Selective Repeat 방식)📌 ARQ 사용 사례
✅ TCP (Transmission Control Protocol) → 패킷 손실 발생 시 재전송 요청 수행
✅ 무선 통신 (Wi-Fi, LTE, 5G) → 신뢰성 보장을 위해 오류 복구 수행
데이터 링크 계층에서 신호를 송수신
✅ 최종 정리
개념 설명 역할 사용 프로토콜 HDLC 프레임 데이터 링크 계층의 비트 기반 프로토콜 신뢰성 있는 데이터 전송 HDLC, PPP FCS 프레임 오류 검출을 위한 체크섬 오류 검출 (CRC 사용) Ethernet, HDLC, PPP ARQ 오류 발생 시 자동 재전송 요청 신뢰성 보장 TCP, Wi-Fi, LTE 📌 즉, HDLC는 데이터 링크 계층에서 데이터를 전송하는 프로토콜이고, FCS는 오류 검출을 담당하며, ARQ는 오류가 발생했을 때 자동으로 재전송을 요청하는 기법
✅ 최종 정리
구분 TCP 무선통신 기술 (Wi-Fi, LTE, 5G) OSI 계층 전송 계층 (4계층) 물리 계층 (1계층), 데이터 링크 계층 (2계층) 역할 신뢰성 있는 데이터 전송 (패킷 분할, 재전송) 실제 신호(전파, 광신호) 전송 연관성 TCP는 무선 네트워크를 통해 패킷을 전송 Wi-Fi/LTE/5G가 TCP 데이터를 전달하는 역할 성능 이슈 무선 환경에서 패킷 손실이 많아지면 성능 저하 가능 전파 간섭, 신호 감쇠 문제로 인해 신뢰성이 떨어질 수 있음 개선 방법 SNOOP 프로토콜, TCP-W, QUIC 5G, MU-MIMO, 빔포밍 📌 즉, TCP는 데이터를 신뢰성 있게 전송하는 역할을 하고, Wi-Fi/LTE/5G는 데이터를 실제로 전달하는 역할을 함. 두 기술은 함께 동작하면서 인터넷 통신을 가능하게 만듦! 🚀
반응형'컴퓨터 > 정보처리기사' 카테고리의 다른 글
IPv6, IPv4, 서브넷 마스크 (0) 2025.04.22 DCL, 데이터베이스 구현, 스토리지 관리 (0) 2025.04.22 sql trigger (0) 2025.04.22 데이터 모델, 테이블 생성하기, ALTER, DROP (0) 2025.04.22 인증 프로토콜, 인증 관련 (0) 2025.04.22