오류 검출용 코드

2026. 3. 29. 22:39·IT Dictionary/Network
반응형

1. 패리티 비트(Parity Bit)

  • 가장 단순한 방식으로, 데이터 끝에 임의의 1비트를 추가하여 전체 "1"의 개수를 홀수나 짝수로 맞춤
  • 짝수 패리티(Even Parity) : 데이터 내의 1의 개수를 짝수가 되도록 비트를 추가
  • 홀수 패리티(Odd Parity) : 데이터 내의 1의 개수를 짝수가 되도록 비트를 추가
  • 한계 : 2개의 비트가 동시에 변하면 오류를 찾을 수 없어 단순한 통신에만 사용됨

 

2. 체크섬(Checksum)

  • 데이터를 일정 단위(보통 16비트)로 나누어 모두 더한 값을 전송, 주로 TCP/IP 계층에서 사용하는 방식
  • 데이터를 다 더한 뒤, 그 합의 1의 보수를 취해 체크섬 필드에 넣어 송신
  • 수신자가 데이터를 다시 더 했을 때, 모든 비트(기존 비트 + 1의보수)가 1(0xFFFF) 이 나오면 정상으로 판단
  • 구현이 쉬워 소프트웨어적으로 처리하기 좋지만, 비트의 순서가 바뀌는 등 정교한 오류는 추적 불가

 

3. 순환 중복 검사(CRC, Cyclic Redundancy Check)

  • 데이터를 다항식으로 간주하고 나눗셈을 이용한 방식, 현대 네트워크에서 가장 많이 사용하는 방식
  • 데이터를 미리 약속된 생성 다항식으로 나누고 이때 발생하는 나머지 값을 데이터 뒤에 붙여 보냄
  • 수신자가 전체 데이터를 같은 다항식으로 나누고 전송받은 나머지 값을 빼기했을 때 0이면 오류가 없는 것
  • 하드웨어로 구현하기 매우 바르며, 연속적인 비트 오류도 완벽하게 잡아냄

 

4. 해밍 코드(Hamming Code)

  • 데이터 비트 사이사이에 여러 개의 체크 비트를 배치하여 오류가 발생한 위치(인덱스)를 계산하고, 교정까지 가능
  • 2의 거듭제곱 번째 자리에서 체크용 비트를 끼워 놓음
  • 1부터 시작하는 비트 번호를 사용하며, 2^n (1, 2, 4, 8, 16) 번째 자리를 패리티 비트(P)로 예약
  • 각 패리티 비트는 자신이 담당하는 데이터 비트들의 짝수/홀수 상태를 감시. 감시 대상은 비트 번호를 이진수로 바꿨을 때의 자릿수로 결정 
    • 1번 자리: 2^0 =1 (P1), 이진수 끝자리가 1인 모든 자리를 감시(1, 3, 5, 7)
    • 2번 자리: 2^1 =2 (P2), 이진수 둘째 자리가 1인 모든 자리를 감시  (2, 3, 6, 7)
      3번 자리: 데이터 (D1) 
    • 4번 자리: 2^2 =4 (P3), 이진수 셋째 자리가 1인 모든 자리를 감시 (4, 5, 6, 7)
    • 5번 자리: 데이터 (D2) 
    • 6번 자리: 데이터 (D3) 
    • 7번 자리: 데이터 (D4)
  • 짝수 패리티나 홀수 패리티로 검사했을 때, 틀린 부분의 패리티 번호를 모두 더하면 오류가 발생한 인덱스가 나옴
    • P1과 P2 에서 오류가 난다면, 1 + 2 = 3번 비트에서 오류 발생
  • 재전송이 어려운(ECC 메모리, 인공위성 통신) 등에서 사용

 

반응형

'IT Dictionary > Network' 카테고리의 다른 글

IPSec(IP Security Protocol)  (0) 2025.12.29
세션 계층(Session Layer) 정리  (0) 2024.12.02
전송 계층(Transport Layer) 정리 (2) (Feat. UDP, RTP)  (0) 2024.11.24
전송 계층(Transport Layer) 정리 (1) (Feat. TCP)  (0) 2024.11.21
네트워크 관리사 라우터 문제 대비  (0) 2023.08.24
'IT Dictionary/Network' 카테고리의 다른 글
  • IPSec(IP Security Protocol)
  • 세션 계층(Session Layer) 정리
  • 전송 계층(Transport Layer) 정리 (2) (Feat. UDP, RTP)
  • 전송 계층(Transport Layer) 정리 (1) (Feat. TCP)
MutJangE
MutJangE
즐거운 인생
  • MutJangE
    MutJangE
    MutJangE
  • 전체
    오늘
    어제
    • 분류 전체보기 (87)
      • IT Dictionary (59)
        • Hardware (3)
        • Software (9)
        • Data Structure (0)
        • Algorithm (1)
        • Database (7)
        • Network (10)
        • Linux (1)
        • Tool's Guide (1)
        • 정보보안산업기사 (24)
        • CTF & 보안 (3)
      • 일상 (9)
        • 배포중인 웹 서비스 (0)
        • CERT병 (7)
        • 토익 (0)
      • 프로그래밍 (19)
        • Java (1)
        • C# (6)
        • Unity (7)
        • React (4)
        • React native (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.5
    MutJangE
    오류 검출용 코드
    상단으로

    티스토리툴바