DevGang

[DC-14] 에러 본문

정보처리/DC

[DC-14] 에러

별천랑 2021. 2. 10. 00:19

1. 에러의 발생원인 

- 감쇠(Attenuation)

  • 전송 신호가 전송 매체를 통과하는 과정에서 거리에 따라 점차 약해지는 현상

- 지연 왜곡(Delay Distortion)

  • 주로 하드와이어 전송 매체에서 발생되며, 전송 매체를 통한 신호 전달이 주파수에 따라 그 속도를 달리 함으로써 유발되는 신호 손상

- 상호 변조 잡음(Intermodulation Noise)

  • 서로 다른 주파수들이 똑같은 전송 매체를 공유할 때 이 주파수들이 서로의 합과 차의 신호를 발생함으로써 발생되는 잡음

- 충격 잡음(Impulse Noise)

  • 비연속적이고 불규칙한 진폭을 가지며, 순간적으로 높은 진폭이 발생하는 잡음
  • 외부의 전자기적 충격이나 기계적인 통신 시스템에서의 결함 등이 원인
  • 디지털 데이터를 전송하는 경우 중요한 오류 발생의 원인이 됨

※ 우연적 왜곡과 시스템적 왜곡

 ① 우연적 왜곡

  • 예측할 수 없이 무작위로 발생하는 왜곡
  • 백색 잡음(열잡음), 충격 잡음, 누화 잡음, 위상 히트 잡음

 ② 시스템적 왜곡

  • 전송 채널 상에서 언제든지 발생할 수 있는 왜곡
  • 손실, 감쇠 등

2. 에러 검출 방식 

1) 패리티(Parity) 검사

  • 데이터 한 블록 끝에 1비트의 검사 비트인 패리티 비트(Parity Bit)를 추가하여 전송 에러를 검출하는 방식
  • 짝수(우수) 패리티 ; 전송 비트 내에 1의 개수가 짝수가 되도록 하는 것
  • 홀수(기수) 패리티 : 전송 비트 내에 1의 개수가 홀수가 되도록 하는 것
  • 수직 패리티 체크 방식(VRC, Vertical Redundancy Check) - 전송 비트들 중 수직에 대한 1의 bit 수를 짝수 혹은 홀수가 되도록 하는 방식
  • 수평 패리티 체크 방식(LRC, Longitudinal Redundancy Check) - 전송 비트를 일정량의 블록으로 묶어 블록의 맨 마지막에 패리티를 부여하는 방식 

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

  • 특정 다항식에 의한 연산 결과를 데이터에 삽입하여 전송하는 에러 검출 방법
  • 동기 전송에서 주로 사용되는 에러 검출 방식
  • HDLC 프레임의 FCS에 사용되는 방식

3) 해밍 코드(Hamming Code) 방식

  • 자기 정정 부호의 하나로 비트 착오를 검출해서 1 bit 착오를 정정하는 부호 방식
  • 송신한 데이터와 수신한 데이터의 각 대응하는 비트가 서로 다른 비트의 수를 해밍 거리(Hamming Distance)라고 함

<해밍 코드로 변환하여 전송하는 예제>

  • 4비트의 정보(1011)를 홀수 패리티 비트를 사용하는 해밍 코드로 변환하여 전송할 때 올바른 해밍 코드는?
  • 총 정보 비트 수가 4개이므로 패리티 비트가 들어갈 자리인 1, 2, 4 자리를 비운 나머지 자리에 정보 비트를 기입함

  • 오류 검출을 위한 패리티 결정 방법 - n번째 패리티 비트를 결정하기 위해서는 n비트만큼을 포함하고 n비트씩 건너뛴 비트들을 대상으로 패리티 비트를 결정. 즉 1번 패리티 비트를 결정하기 위해서는 1비트만큼 포함하고 1비트씩 건너뛴 1, 3, 5, 7... 비트가 대싱이 됨

4) 상승 부호(코드) 방식

  • 순차적 디코딩(Sequential Decoding)과 한계값 디코딩(Threshold Value Decoding)을 사용하여 에러를 수정하는 방식 

5) 궤환 전송 방식 

 

6) 연속 전송 방식(자동 연속 방식)

 

7) Block Sum Check

  • 패리티 검사의 단점을 보완하는 방식으로, 각 문자 당 패리티 체크 비트(수평 패리티 체크)와 전송 프레임의 모든 문자들에 대한 패리티 문자(블록 합 체크 문자, 또는 수직 패리티 체크)를 함께 전송하는 방식

※ 에러 제어용 코드 부가 방식

  • 패리티 검사
  • 해밍 코드
  • 순환 중복 검사 

3. 에러 제어 방식

1) 자동 반복 요청(ARQ, Automatic Repeat reQuest)

  • 통신 경로에서 에러 발생 시 수신 측은 에러의 발생을 송신 측에 통보하고 송신 측은 에러가 발생한 프레임을 재전송

 ① 정지-대기(Stop-and-Wait) ARQ

  • 송신 측이 하나의 블록을 전송한 후 수신 측에서 에러의 발생을 점검한 다음 에러 발생 유무 신호(ACK, NAKC)를 보내올 때까지 기다리는 방식
  • 수신 측에서 에러 점검 후 제어 신호를 보내올 때까지 오버헤드(overhead)가 효율 면에서 가장 부담이 큼 

 ② 연속(Continuous) ARQ

  • Go-Back-N ARQ
    • 에러가 발생한 블록 이후의 모든 블록을 다시 재전송하는 방식
    • 에러가 발생한 부분부터 모두 재전송하므로 중복 전송의 단점이 있음
  • 선택적 재전송(Selective-Repeat) ARQ
    • 수신 측에서 NAK를 보내오면 에러가 발생한 블록만 재전송
    • 복잡한 논리 회로와 큰 용량의 버퍼가 필요

 ③ 적응적(Adaptive) ARQ

  • 데이터 블록의 길이를 채널의 상태에 따라 동적으로 변경시키는 방식

 2) 전송 에러 제어 방식

 ① 전진 에러 수정(FEC, Forward Error Correction)

  • 송신 측에서 정보 비트에 오류 정정을 위한 제어 비트를 추가하여 전송하면 수신 측에서 이 비트를 사용하여 에러를 검출하고 수정하는 방식
  • ARQ 방식과는 달리 재전송 요구가 없으므로 역 채널이 필요 없고 연속적인 데이터 흐름이 가능
  • ARQ에 비해 기기와 코딩이 더 복잡함
  • ARQ 방식과 마찬가지로 데이터와 함께 잉여 비트들을 함께 전송함
  • 잉여 비트들이 데이터 시스템 효율의 개선을 저해함
  • 대표적인 예로 해밍(Hamming) 코드 방식과 상승 코드 방식이 있음 

 ② 후진 에러 수정(BEC, Backward Error Correction)

  • 데이터 전송 과정 중 에러가 발생하면 송신 측에 재전송을 요구하는 방식

 

'정보처리 > DC' 카테고리의 다른 글

[DC-16] 교환 회선&전용 회선  (0) 2021.02.10
[DC-15] 전송 트래픽 제어  (0) 2021.02.10
[DC-13] 데이터 링크 제어 프로토콜  (0) 2021.02.10
[DC-12] 정보(데이터) 전송 제어  (0) 2021.02.10
[DC-11] 신호 변환  (0) 2021.02.10
Comments