기술(IT)

에러 제어 (Error control)

2019. 10. 18.
728x90

오류 제어는 정보 이론과 컴퓨터 과학과 통신의 응용 분야와의 코딩 이론에서 신뢰할 수 없는 통신 채널을 통해 디지털 데이터를 신뢰성 있게 전달할 수 있는 기법이다. 오류 검출 기법은 그러한 오류를 검출할 수 있는 반면 오류 수정은 많은 경우 원본 데이터의 재구성을 가능하게 한다. 많은 통신 채널은 채널 소음에 노출되기 때문에 소스에서 수신기로 전송하는 동안 오류가 발생할 수 있다. 

자동 반복 요청(ARQ)
자동 반복 재퀘스트는 신뢰성 있는 데이터 전송을 달성하기 위해 오류 감지 코드, 승인 및/또는 음성 승인 메시지 및 시간 초과를 사용하는 데이터 전송의 오류 제어 방법이다. 수신인은 수신자가 데이터 프레임을 올바르게 수신했음을 나타내는 메시지를 말한다. 일반적으로 송신기가 시간 초과가 발생하기 전에 승인을 받지 못할 경우, 프레임이 올바르게 수신되거나 미리 결정된 재전송 횟수를 초과하여 오류가 지속될 때까지 프레임을 재전송한다. 세 가지 유형의 ARQ 프로토콜은 Stop-and-Wait ARQ, Go-Back-N ARQ 및 Selective Repeat ARQ이다. ARQ는 통신 채널이 인터넷의 경우와 같이 용량이 다양하거나 알려지지 않은 경우에 적합하다. 그러나, ARQ는 백 채널의 가용성을 요구하고, 재전송으로 인해 지연 시간이 증가할 가능성이 있으며, 재전송 버퍼와 타이머의 유지보수가 필요하며, 네트워크 혼잡의 경우 서버 및 전체 네트워크 용량에 부담을 줄 수 있다. 예를 들어, ARQ는 ARQ-E 형태의 단파 무선 데이터 링크에 사용되거나 ARQ-M으로 멀티플렉싱과 결합된다.

전방 오류 수정
허용되는 실제 최대 코드 비율은 사용된 오류 수정 코드에 따라 달라지며, 더 낮을 수 있다. 이는 섀넌의 증명이 실존적 성격일 뿐이며, 최적이며 효율적인 인코딩과 디코딩 알고리즘을 가진 코드를 구성하는 방법을 보여주지 않았기 때문이다. FEC(Forward Error Correction)는 전송 과정 중 또는 저장 중에 다수의 에러가 도입되었을 때에도 수신자가 복구할 수 있도록 메시지에 오류 수정 코드(ECC)와 같은 중복 데이터를 추가하는 과정이다. 수신자가 송신자에게 데이터의 재전송을 요청할 필요가 없으므로, 전방 오류 수정에 백채널이 필요하지 않으므로 방송 등 단순 통신에 적합하다. 오류 수정 코드는 하위 계층 통신뿐 아니라 CD, DVD, 하드 디스크 및 RAM과 같은 미디어의 신뢰성 있는 저장에도 자주 사용된다. 오류 수정 코드는 보통 회선 코드와 블록 코드 간에 구별되며, 컨버전스 코드는 비트 단위로 처리된다. 그것들은 특히 하드웨어의 구현에 적합하며, 디코더는 최적의 디코딩을 가능하게 한다. 블록 코드는 블록별로 처리된다. 블록 코드의 초기 예로는 반복 코드, 해밍 코드 및 다차원 패리티 체크 코드가 있다. 그 다음으로는 리드 솔로몬 코드가 현재 널리 사용되고 있기 때문에 가장 주목할 만한 여러 가지 효율적인 코드가 뒤따랐다. 터보 코드와 저밀도 패리티 체크 코드는 거의 최적의 효율성을 제공할 수 있는 비교적 새로운 구조물이다. 섀넌의 정리는 전방 오류 수정에 있어 중요한 정리로서, 일정한 오류 확률이나 신호 대 잡음 비율이 있는 채널을 통해 신뢰할 수 있는 통신이 가능한 최대 정보 속도를 기술한다. 이 엄격한 상한은 채널 용량으로 표현된다. 구체적으로는, 암호화의 길이가 증가하면, 코드 비율이 채널 용량보다 작을 경우, 이산 메모리 없는 채널의 오류 확률을 임의로 작게 만들 수 있는 코드가 존재한다고 정리에서는 말하고 있다. 

복합 계획
후자의 접근방식은 특히 요율 없는 삭제 코드를 사용할 때 삭제 채널에서 매력적이다. 하이브리드 ARQ는 ARQ와 전방 오류 보정의 조합이다. 두 가지 기본 접근법이 있다. 메시지는 항상 FEC 패리티 데이터로 전송된다. 수신기는 패리티 정보를 사용하여 메시지를 해독하고, 패리티 데이터가 디코딩에 충분하지 않은 경우에만 ARQ를 사용하여 재전송을 요청한다. 메시지는 패리티 데이터 없이 전송된다. 수신기가 오류를 검출하면 ARQ를 이용해 송신기로부터 FEC 정보를 요청해, 그것을 이용해 원래의 메시지를 재구성한다. 오류 제어 성능이 좋으면 통신 채널의 특성에 따라 계획을 선택할 필요가 있다.

일반적인 채널 모델에는 오류가 무작위로 발생하는 메모리 없는 모델과 특정 확률로 발생하는 동적 모델이 포함된다. 따라서 오류 감지 및 수정 코드는 일반적으로 무작위 오류 탐지/수정 및 버스트 오류 탐지/정정을 구별할 수 있다. 일부 코드는 무작위 오류와 버스트 오류의 혼합에도 적합할 수 있다.모든 오류 감지 및 수정 계획은 수신자가 배달된 메시지의 일관성을 확인하고 손상된 것으로 결정된 데이터를 복구하는 데 사용할 수 있는 메시지에 일부 중복성을 추가한다. 오류 감지 및 수정 체계는 체계적이거나 비체계적일 수 있다. 체계적인 체계에서 송신기는 원래의 데이터를 전송하고, 일정한 수의 체크 비트를 첨부하는데, 이것은 어떤 결정론적 알고리즘에 의해 데이터 비트로부터 파생된다. 오류 감지만 필요한 경우 수신기는 수신된 데이터 비트에 동일한 알고리즘을 적용하고, 수신된 체크 비트와 출력을 비교할 수 있으며, 값이 일치하지 않으면 전송 중 어느 지점에서 오류가 발생한 것이다. 비체계적인 코드를 사용하는 시스템에서, 원래의 메시지는 동일한 정보를 전달하는 암호화된 메시지로 변환되며, 적어도 원본 메시지의 비트 수만큼 된다. 채널 특성을 결정할 수 없거나 매우 가변적인 경우 오류 감지 체계를 잘못된 데이터의 재전송을 위한 시스템과 결합할 수 있다. 이것은 자동 반복 요청으로 알려져 있으며, 가장 두드러지게 인터넷에서 사용된다. 오류 제어를 위한 대체 접근방식은 ARQ와 오류 수정 코딩의 조합인 하이브리드 자동 반복 요청이다.

LIST

'기술(IT)' 카테고리의 다른 글

PCM (Pulse Code Modulation)  (0) 2019.10.20
ISI (Inter Symbol Interference)  (0) 2019.10.19
MPLS (Multi Protocol Label Switching)  (0) 2019.10.17
실시간 운영 체제(RTOS)  (0) 2019.10.16
RISC(Reduced Instruction Set Computer)  (0) 2019.10.15

댓글

추천 글