본문 바로가기
  • 컴공생의 공부 일기
  • 공부보단 일기에 가까운 것 같은
  • 블로그
📖 CS/정보통신공학

정보통신공학 Chap 6 : Error Detection and Correction : 2. Error Detection

by 정람지 2025. 4. 14.

ℹ️ 책정리


ℹ️ 굣님요약 정리!

 

✅ Error Detection in Serial Communication

 

 

⚠️ 원리

  • 데이터 전송 속도가 높을수록  bit error 영향도 커짐
  • 프레임이 길어질수록  오류가 포함될 확률도 증가

 

🧪 주요 방식 (3가지)

방식 설명계층  
Parity Check 1비트 패리티(홀수/짝수)를 붙여 오류 감지 L2
CRC (Cyclic Redundancy Check) 다항식 나눗셈 기반 고정밀 오류 검출 L2
Internet Checksum 1의 보수 합산 방식, TCP/IPv4 등에서 사용 L3/L4

 


 

✅ 1.  Parity Check (Physical Layer or Data Link Layer)

기본 원리 Parity 비트를 추가하여 전체 비트의 1의 개수를 짝수 또는 홀수로 만듦

 

  • 홀수 개 비트 오류는 검출 가능
  • 짝수 개 비트 오류는 검출 불가 ❌ 

 

| 2차원 Parity (2D Parity) |

행과 열에 각각 parity 비트를 추가한 구조

  • 단일 비트 오류: 검출 및 정정 가능
  • 짝수 개 오류 (행 or 열만): 검출 가능, 정정 불가
  • 짝수 개 오류 (직사각형): 검출도 안 됨
  • 홀수 개 오류 (직사각형): 검출 가능, 정정은 완벽하지 않음

💡 참고

오류 감지만 되고 정정은 안 되는 경우 → “어느 비트가 바뀌었는지 예측할 수 없음” 

→ 정확한 위치 식별이 어려워 100% 정확한 정정은 불가


 

✅ 2. Internet Checksum (IPv4 L3, TCP/UDP L4)

  • 16비트 단위의 데이터를 모두 더하고
  • 결과의 1의 보수를 취해 Checksum 생성
  • 수신 측에서 다시 전체를 더해서 0xFFFF가 되는지 확인 

 

| 검출 능력 |

  • 대부분의 단일/소수 비트 오류는 검출 가능
  • 하지만, 순서가 바뀐 경우에는 검출 못 함 |

 

| 검출 실패 예 |

  • 송신: 5AD3 EE35
  • 수신: 59D3 EF35 B6F6  오류가 발생했지만 Checksum 결과가 0xFFFF
  • 이유: 16비트 단위로 순서 바뀐 경우, 덧셈의 교환법칙(Commutative law) 때문에 검출 실패 

 

💡 참고 | Checksum은 순서를 고려하지 않는 연산, CRC는 순서 민감함 |

 


✅ 3. Cyclic Redundancy Check (CRC) at L2 / L1

 

  • 송신자: D(k) 뒤에FCS 비트 F(n−k)를 붙여서 전송
  • FCS는 다항식 나눗셈 나머지 (mod 2)
  • 수신자: 전체 비트열 T(n)을 동일한P(x)로 나눠
  • → 나머지가 0이면 오류 없음 |
  • T(n) = D(k)·x^{n-k} + F(n-k)
  • P(x)는 송수신자가 공유하는 생성 다항식 |

 

| 예시 |

  • k = 10,
  • P(x) = x^6 + x^4 + x^2 + 1 → 차수 6
  • P(x)는 7비트 (계수 포함)
  • FCS 비트 수 = 6비트
  • 실제 전송 비트 수 = 10(data) + 6(FCS) = 16 bits |

 

| 디지털 회로 구현 시 |

  • Shift Register: 6개 (P의 차수)
  • XOR Gate: 3개 (계수가 1인 항이 4개이므로 -1) |

 

| 구현 방식 |

  1. Modulo-2 bit 연산 (XOR)
  2. 다항식 연산
  3. 디지털 논리 회로 (LFSR 구조) |
  4. | 💡 참고 | CRC는 순서에 민감 → 순서 바뀌면 검출 가능 |

 


✅ 전체 요약 비교

방식 구현 복잡도 검출 능력 정정 가능 여부 특이 사항
Parity 매우 낮음 낮음 (홀수 개 오류만) 일부 (2D만) 짝수 개 비트 오류 감지 안 됨
Checksum 낮음 중간 (위치 바뀜 취약) 불가능 교환법칙으로 인해 검출 실패 가능
CRC 중간~높음 매우 높음 (burst 포함) 불가능 (정정은 안 됨) LFSR로 고속 구현 가능, 가장 널리 사용됨

시험기간 왹공팟