[데이터통신] 데이터 오류 제어
데이터 오류 제어
오류 발생 원인
-
상호 변조 잡음(Inter Modulation Noise)
서로 다른 주파수들이 똑같은 전송 매체를 공유할 때 이 주파수들이 서로의 합과 차의 신호를 발생함으로써 발생되는 채널의 간섭 현상 -
누화 잡음(Cross Talk Noise)
인접한 전송 매체의 전기적인 신호의 결합으로 생기는 잡음 -
동일 채널 잡음
두 개 이상의 채널이 동일한 주파수를 사용하게 될 때 발생하는 잡음
위성 통신에서 사용하는 주파수와 도심속에서 사용하는 주파수가 가끔 동일할 때 이러한 잡음이 발생한다. -
방사 잡음
높은 주파수 대역을 사용하는 위성 통신에서 주로 발생하는 잡음으로 전송 신호의 주 신호에서 새어 나가는 신호를 의미 -
지연 왜곡(Delay Distortion)
주로 하드와이어 전송 매체에서 발생되며, 전송 매체를 통한 신호 전달이 주파수에 따라 그 속도를 달리함으로써 유발되는 신호 손상 현상으로 주파수의 중심 주파수와 양쪽 끝 주파수 강도의 차이 때문에 발생하는 오류 -
열 잡음(Thermal Noise), 백색 잡음(White Noise)
전송 매체 내에서 온도 변화에 따른 전자 운동량이 변함으로써 발생하는 잡음으로 모든 전자/전기적인 전송 매체에서 발생. 열 잡음은 위성 통신에서는 발생하지 않음 -
손실, 감쇠 현상, 누화 잡음, 충격성 잡음
오류 제어 방식
순방향(전진) 오류 수정(FEC
: Forward Error Correction)
송신측에서 전송 프레임에 잉여 비트를 추가하여 수신츠겡서 오류를 검사하고 수정까지 할 수 있도록 하여 송신측에서는 같은 프레임을 재전송하는 일이 없도록 하는 방식
- 종류 : 해밍코드, 상승 코드
- 송신 측이 한 개이고 수신측이 여러 개일 경우에 사용하는 방식
역방향(후진) 오류 수정(BEC
: Backward Error Correction)
송신측에서 전송되어 온 프레임들 중 오류가 있는 프레임을 판단하여 오류가 발생되면 송신측에 통보하여 다시 재전송 받는 방식
- 종류 : CRC, 패리티 비트, BSC(블록 합 : Block Sum Check)
- ARQ(Automatic Repeat reQuest)
ARQ(Automatic Repeat reQuest : 오류 검출 후 재전송)
-
Stop-And-Wait ARQ
한 번에 한 개의 프레임을 전송
한 개의 프레임을 전송한 후 수신측의ACK
나NAK
를 기다린다
ACK → 다음 프레임 전송
NAK, 일정시간 무응답 → 같은 프레임 재전송
재전송이 있을 수 있으므로 송신측에 버퍼가 한 개 필요
오버헤드로 인한 부담이 크다
BASIC
전송 절차에서 사용하는 오류 제어 방식 -
Go-Back-N ARQ
여러 개의 프레임을 전송
수신측의NAK
신호가 도착하지 않으면 계속적으로 전송
수신측의 응답이 없으면 긍정적인 응답으로 간주
오류가 발생하면 오류가 발생한 프레임부터 다시 전송
중복 전송 문제가 발생
오류가 적은 전송일 때 효율적
HDLC
,SDLC
전송 절차에서 사용되는 오류 제어 방식 -
Selective-Repeat ARQ
여러 개의 프레임을 전송
수신측의NAK
신호가 도착하지 않으면 계속적으로 전송
수신측의 응답이 없으면 긍정적인 응답으로 간주
오류가 발생하면 오류가 발생한 프레임만
재전송
중복 전송 문제를 보완한 방식
일부분을 재전송하면 수신측에서는 재결합을 해야 하므로 많은 버퍼가 필요
기술적으로 복잡하여 Go-Back-N ARQ에 비해 사용되는 경우가 적다
오류가 많을 때 주로 사용
HDLC
전송 절차에서 사용되는 오류 제어 방식 -
Dynamically ARQ
동적으로 프레임을 전송
수신측에서는 오류 발생 확률을 송신측에 전송
송신측은 적절한 개수를 수신측에 동적으로 전송
전송 효율의 향상 기대
제어 기술이 매우 복잡하고 비용 문제로 인해 거의 사용하지 않음
오류 검출 방식
해밍코드(Hamming Code)
데이터비트에 몇 개의 체크비트가 추가된 형태로 수신측에서 에러 비트의 위치와 정정이 가능하므로 자기 정정 부호라고 한다
- 1비트의 오류만 수정이 가능하며, 2비트의 오류 검출은 가능하나 수정을 불가능하다
- 정보 비트 외에 잉여 비트가 많이 필요하므로 많은 양의 데이터 전송에 유리하다
$2^p >= d + p + 1$
d: 데이터 비트 / p: 체크 비트패리티 비트의 위치 = $2^n, (n=0,1,2…)$
데이터 크기가 8비트라 가정할 때, 위 식에 대입 시 패리티 비트는 4가 되어 4비트의 추가 비트가 필요하다
짝수패리티라 가정할 때, 각 검사 시 총 ‘1’의 개수가 짝수가 되도록 확인하여 Pn 값을 입력한다
P1 : 1번째 비트에서 시작하여 1비트 간격으로 검사
P2 : 2번째 비트에서 시작하여 2비트 간격으로 검사
P3 : 4번째 비트에서 시작하여 4비트 간격으로 검사
P4 : 8번째 비트에서 시작하여 8비트 간격으로 검사
= Pn : P$^{n-1}$번째 비트에서 시작하여 P$^{n-1}$비트 간격으로 검사
위 테이블에서 P1, P3을 보면 총 ‘1’의 개수가 홀수이므로 오류임을 알 수 있다. 그렇기 때문에 P1, P3을 ‘1’로 오류가 없는 P2, P3를 ‘0’으로 가정한다.
이 때, P4/P3/P2/P1(컴퓨터가 인식하는 2진수는 오른쪽부터 시작하므로)으로 나열했을 때 각 위의 값을 넣어주면 최종적으로 0101 값이 구해지고 결과값은 5이므로 5번째 비트가 오류임을 확인할 수 있다.
상승 코드(부호) 방식
순차적 디코딩과 한계값 디코딩을 사용하여 오류를 수정
- 여러 개의 비트 오류가 있더라도 모두 수정할 수 있는 방식
군 계수 검사 방식
전송되는 정보 비트열 중 ‘1’의 개수를 세어서 2진수로 변환한 다음 2진수 끝의 두 비트를 전송되는 정보 비트열에 추가하여 전송하는 방식
패리티 비트
잉여 비트를 추가하여 전송 오류의 검출을 위해 사용한다
- 전송 비트 내 ‘1’의 개수가 짝수 또는 홀수 개가 되도록 결정
- 짝수 개의 비트가 오류가 발생할 경우 검출률이 낮아지는 단점 존재
수직 중복 검사(VRC: Vertical Redundancy Check, 1차원 패리티)
오류 검출 방식에서 가장 적은 비용이 들며 가장 널리 사용되는 기법으로 보통 패리티 검사라고 한다.
- 패리티 비트를 각 정보 비트에 추가하여 패리티 비트를 포함한 정보 비트 내의 ‘1’의 전체 개수를
짝수
가 되도록 한다 - 패리티 비티의 위치는 고정되지 않고 앞/뒤/중간 어디든 사용 가능
세로 중복 검사(LRC: Longitudinal Redundancy Check, 2차원 패리티)
전송 비트를 일정량의 블록으로 묶어서 블록의 맨 마지막에 패리티 비트를 부여
순환 중복 방식(CRC: Cycle Redundancy Check)
다항식 코드를 사용하여 오류를 검출하는 방식
정보 비트열 전부를 한 번에 검사하지 않고 부분적으로 중첩되게 검사하므로, 집단/군집 오류 검출 방식이라고도 한다
- 동기식 전송에 주로 사용
HDLC
프레임의 FCS 블록에서 사용- 가장 많이 사용되는 오류 검출 방식
- 1개, 2개, 홀수 개의 오류는 완벽하게 검출
- 매우 복잡하나 오류를 수정할 수 있는 방식이 아님을 주의
검사 합(Checksum)
패리티 검사나 CRC와 같이 중복의 개념을 기반으로 하여 네트워크를 통해 전달된 값이 변경되었는지를 검사하는 값으로 무결성
을 제공
송신측에서 전송할 모든 데이터를 16 비트 워드 단위로 구분하고 1의 보수를 취한 뒤 그 합에 대한 결과를 전송한다. 수신측은 같은 합을 하여 오류를 검출한다(검사합의 값이 0 이면 오류 없음, 0이 아니면 오류 있음)
- 간단한 방식이나 워드의 순서가 바뀌는 오류에 대한 검출은 불가
- 보통
16비트
워드 단위로 사용
RS 부호(Reed–Solomon error correction)
Reed와 Solomon이 개발한 군집 형태의 오류를 수정할 수 있는 코드로 콤팩트 디스크에 사용되는 CIRC(교차 인터리브 리드 솔로몬 부호)이다. 하드 디스크에 사용된 LDC(긴거리 부호) 와 DVD에 사용된 RSPC(리드 솔로몬 적부호) 등이 있다.
댓글남기기