본문 바로가기
📖 CS/정보통신공학

📲 정보통신공학 - Ch6. 오류 검출 및 정정 - 6 순방향 오류 정정

by 정람지 2024. 4. 14.

출처 : William Stallings, "Data and Computer Communications (10th Edition)," Pearson, 2014


4.6  📲 순방향 오류 정정

데이터 링크 제어 프로토콜 (HDLC), 수송 프로토콜(TCP) : 오류검출 사용

무선 전송 : 오류 검출 코드는 "데이터 블록의 재전송"을 통해 이루어지므로 사용하기 부적합

- 무선링크에서의 비트 오류율은 상당히 높을 수 있고, 이로 인해서 수많 은재전송이 일어날 수 있음
- 특히 위성 링크와 같은 경우, 프레임 하나의 전송시간에 비해서 전파 지연이 매우 길어 매우 비효율적인 시스템이 될 수 있음

 

재전송 대신 수신기가 입력 데이터에 대해서 해당 데이터의 비트정보를 기반으로 오류를 스스로 수정!

  1. 오류 정정 코드 부착:
    • 데이터를 전송하기 전에, 송신기에서는 각 k-비트 데이터 블록에 오류 정정 코드를 추가하여 n-비트의 코드워드(codeword)를 생성( 전송 중에 발생할 수 있는 오류에 대비한 추가 정보를 포함)
  2. 전송과 수신:
    • 코드워드는 전송 도중 손상될 수 있으며, 수신기에서는 손상된 신호를 복조하여 원래의 코드워드와 유사하지만 오류가 포함될 수 있는 코드워드를 생성
  3. 복호 과정:
    • 수신된 코드워드는 FEC 복호기를 통과하여 오류의 유무를 판단하고, 가능한 경우 오류를 정정
    • 복호기는 다음 네 가지 결과 중 하나를 제공:
      • 오류 없음: 입력 코드워드에 오류가 없는 경우, 복호기는 원래의 데이터 블록을 정확하게 재구성
      • 오류 검출 및 정정 가능: 일부 오류는 복호기가 자동으로 검출하고 정정할 수 있음
      • 오류 검출 가능, 정정 불가: 일부 심각한 오류는 검출은 가능하지만 정정은 불가능할 수 있음
      • 오류 검출 불가: 매우 드물게, 복호기가 오류를 전혀 감지하지 못하고 잘못된 데이터 블록을 출력할 수 있습니다.

< 순방향 오류 정정의 특징 및 장점 >

  • 재전송 불필요: FEC는 데이터 블록의 재전송 없이 수신된 데이터에서 직접 오류를 정정할 수 있어, 전파 지연이 긴 위성 통신과 같은 환경에서 효율적
  • 무선 링크 적합성: 높은 비트 오류율 환경에서도 효과적으로 작동하여, 빈번한 재전송의 필요성을 줄임

👀 블록 코드의 원리

  • 해밍 거리:
    • 두 이진 코드워드 간의 해밍 거리는 서로 다른 비트의 개수로 정의
    • 이 거리는 오류의 감지 및 정정 능력을 결정하는 중요한 요소
  • 코드워드 변환:
    • k-비트 길이의 데이터 블록을 n-비트의 코드워드로 변환
    • 이때, 보다 크며, 차이는 검사 비트의 수
  • 중복성과 코드율:
    • 중복성은 데이터 비트에 추가된 검사 비트의 비율
    • 코드율은 전체 코드워드 비트 중 데이터 비트가 차지하는 비율을 의미하며, 이는 코드의 효율성을 나타냄
    • (예를 들어, 코드율이 1/2이면, 원래의 데이터 전송률을 유지하기 위해 두 배의 전송용량이 필요함을 의미)
  • 오류 정정 능력:
    • 블록 코드의 설계는 최소 해밍 거리에 기반
    • 이 거리는 주어진 코드가 감지하거나 정정할 수 있는 오류의 최대 수를 결정
    • 해밍 거리가 d인 코드는 최대 개의 오류를 감지하고, 최대 개의 오류를 정정할 수 있습니다.

<오류 정정의 실제 적용>

  • 에러 감지 및 정정:
    • 실제 데이터 전송에서, 코드워드는 전송 중에 오류가 발생할 수 있습니다. 수신된 코드워드는 오류가 포함될 수 있으며, 이는 복호 과정에서 감지되고 정정됩니다.
    • 복호기는 수신된 코드워드를 원래의 데이터 블록으로 변환할 수 있으며, 오류가 감지되면 이를 정정할 수 있음

<효율성 및 설계 고려사항>

  • 대역폭 및 처리 시간:
    • 블록 코드는 추가적인 검사 비트를 필요로 하기 때문에, 대역폭과 처리 시간이 증가할 수 있음
    • 따라서, 효율적인 코드 설계는 필수적
  • 오버헤드와 성능 간의 균형:
    • 오류 정정 코드의 설계는 성능 향상과 시스템의 오버헤드 간의 균형을 고려하여 이루어져야 함
    • 너무 많은 검사 비트는 시스템의 부담을 증가시킬 수 있음

나가놀고싶다