전송 오류 제어: Difference between revisions
From IT Wiki
Line 70: | Line 70: | ||
== 오류 제어 방식 == | == 오류 제어 방식 == | ||
;자동 반복 요청(ARQ, Automatic Repeat reQuest): 통신 경로에서 에러 발생시 수신측은 에러의 발생을 송신 측에 통보하고 송신측은 에러가 발생한 프레임을 재 전송하는 방식 | |||
=== 정지-대기(Stop-and-Wait) ARQ === | |||
* 송신 측이 하나의 블록을 전송한 후 수신 측에서 에러의 발생을 점검한 다음 에러 발생 유무 신호를 보내올 때까지 기다리는 방식이다. | * 송신 측이 하나의 블록을 전송한 후 수신 측에서 에러의 발생을 점검한 다음 에러 발생 유무 신호를 보내올 때까지 기다리는 방식이다. | ||
* 수신 측의 응답이 긍정 응답(ACK)이면 다음 블록을 전송하고, 부정 응답(NAK)이면 앞서 송신했던 블록을 재 전송한다. | * 수신 측의 응답이 긍정 응답(ACK)이면 다음 블록을 전송하고, 부정 응답(NAK)이면 앞서 송신했던 블록을 재 전송한다. | ||
* 전송 효율이 가장 낮고, 오류가 발생한 블록만 재 전송하므로 구현 방법이 가장 단순하다. | * 전송 효율이 가장 낮고, 오류가 발생한 블록만 재 전송하므로 구현 방법이 가장 단순하다. | ||
=== Go-Back-N ARQ === | |||
* 여러 블록을 연속적으로 전송하고, 수신 측에서 부정 응답(NAK)을 보내오면 송신 측이 오류가 발생한 블록부터 모두 재 전송 | * 여러 블록을 연속적으로 전송하고, 수신 측에서 부정 응답(NAK)을 보내오면 송신 측이 오류가 발생한 블록부터 모두 재 전송 | ||
* 에러가 발생한 블록 이후의 모든 블록을 다시 재 전송 | * 에러가 발생한 블록 이후의 모든 블록을 다시 재 전송 | ||
* 에러가 발생한 부분부터 모두 재 전송 하므로 중복 전송 문제 | * 에러가 발생한 부분부터 모두 재 전송 하므로 중복 전송 문제 | ||
=== 선택적 재전송 ARQ === | |||
;Selective-Repeat Automatic Repeat reQuest | ;Selective-Repeat Automatic Repeat reQuest | ||
* 여러 블록을 연속적으로 전송하고, 수신측에서 부정 응답(NAK)을 보내오면 송신측이 오류가 발생한 블록만을 재 전송 | * 여러 블록을 연속적으로 전송하고, 수신측에서 부정 응답(NAK)을 보내오면 송신측이 오류가 발생한 블록만을 재 전송 | ||
* 복잡한 논리 회로와 큰 용량의 버퍼 필요 | * 복잡한 논리 회로와 큰 용량의 버퍼 필요 | ||
=== 적응적 ARQ === | |||
;Adaptive Automatic Repeat reQuest | ;Adaptive Automatic Repeat reQuest | ||
* 전송 효율을 최대로 하기 위해서 데이터 블록의 길이를 채널의 상태에 따라 그때 그때 상태에 따라서 동적으로 변경하는 방식 | * 전송 효율을 최대로 하기 위해서 데이터 블록의 길이를 채널의 상태에 따라 그때 그때 상태에 따라서 동적으로 변경하는 방식 | ||
* 전송 효율이 제일 좋으나, 제어 회로가 복잡하고 비용이 많이 들어 현재는 거의 사용하지 않음. | * 전송 효율이 제일 좋으나, 제어 회로가 복잡하고 비용이 많이 들어 현재는 거의 사용하지 않음. |
Revision as of 14:32, 12 January 2020
오류
감쇠
- Attenuation
- 전송 신호가 전송 매체를 통과하는 과정에서 거리에 따라 점차 약해지는 현상
- 주파수가 높을수록 감쇠 현상이 심해지고, 감쇠 현상을 해결하기 위해 중계기 이용
지연 왜곡
- Delay Distortion
- 주로 유선 전송 매체에서 발생
- 하나의 전송 매체를 통해 여러 신호를 전달했을 경우 주파수에 따라서 그 속도가 달라짐으로써 발생
상호 변조 잡음
- Intermodulation Noise
- 서로 다른 주파수들이 하나의 전송 매체를 공유할 때 주파수 간의 합이나 차로 인해 새로운 주파수가 생성
충격 잡음(Impulse Noise)
- 비연속적이고 불규칙한 진폭을 가지며, 순간적으로 높은 진폭이 발생하는 잡음
- 번개와 같은 외부적인 충격이나 기계적인 통신 시스템에서의 결함 등이 원인
- 디지털 데이터를 전송하는 경우 중요한 오류 발생의 원인이 됨
오류 제어 방식
전진 에러 수정
- FEC, Forward Error Correction
데이터 전송 과정에서 발생한 오류를 검출하여 재 전송 요구 없이 스스로 수정
- 송신 측에서는 문자나 프레임에 오류 검출을 위한 부가 정보를 추가시켜 전송
- ARQ 방식과는 달리 재 전송 요구가 없기 때문에 역 채널이 필요 없고, 연속적인 데이터 흐름 가능
- 데이터 비트 이외에 오류 검출 및 수정 비트(잉여비트)들이 추가로 전송되기 때문에 전송 효율은 낮음
- 대표적인 예로 해밍(Hamming) 코드 방식과 상승 코드 방식
후진 에러 수정
- BEC, Backward Error Correction
데이터 전송 과정에서 오류가 발생하면 송신 측에 재 전송을 요구하는 방식
- 패리티 검사, CRC등을 사용하여 오류를 검출
- 오류 제어는 자동 반복 요청(ARQ, Automatic Repeat reQuest)으로 수행
오류 검출 방식
패리티 검사
- Parity Check
- 데이터 한 블록 끝에 1비트의 검사 비트(Parity Bit)를 추가하여 전송 에러를 검출
- 짝수(우수) 패리티
- 전송 비트 내의 1의 개수가 짝수가 되도록 하는 것
- 홀수(기수) 패리티
- 전송 비트 내의 1의 개수가 홀수가 되도록 하는 것
- 수직 패리티 체크 방식(VRC, Vertical Redundancy Check)
- 전송 비트들 중 수직에 대한 1의 bit수를 짝수 혹은 홀수가 되도록 하는 방식
- 수평 패리티 체크 방식(LRC, Longitudinal Redundancy Check)
- 전송 비트를 일정량의 블록으로 묶어 블록의 맨 마지막에 패리티를 부여하는 방식
순환 중복 검사(CRC, Cyclic Redundancy Check)
- 특정 다항식에 의한 연산 결과를 데이터에 삽입하여 전송하는 에러 검출 방법이다.
- 동기식 전송에서 주로 사용되고, 집단 오류를 검출할 수 있고, 검출률이 높으므로 가장 많이 사용되는 에러 검출 방식이다.
- HDLC 프레임의 FCS에 사용되는 방식이다.
해밍 코드(Hamming Code) 방식
- 자기 정정 부호의 하나로 비트 착오를 검출해서 1 bit 착오를 정정하는 부호 방식이다.
- 오류의 검출은 물론 스스로 수정까지 하므로 자기 정정 부호라고도 한다.
- 송신한 데이터와 수신한 데이터의 각 대응하는 비트가 서로 다른 비트의 수를 해밍 거리(Hamming Distance)라고 한다.
- 전송 비트 중에서 1, 2, 4, 8, 16, 32, 64, … , 2n 번째를 오류 검출을 위한 패리티 비트로 사용하며, 이 비트의 위치는 변하지 않는다.
상승 부호(코드) 방식
- 순차적 디코딩(Sequential Decoding)과 한계값 디코딩(Threshold Value Decoding)을 사용하여 에러를 수정
궤환 전송 방식
- 수신측에서 받은 데이터를 송신측으로 되돌려 보내어 원본 데이터와 비교하여 오류가 있는 경우 재 전송
연속 전송 방식(자동 연속 방식)
- 송신 측에서 동일 데이터를 두번 이상 전송하면 수신 측에서 두 데이터를 비교해 이상 유무를 판별한 후에 오류 발생 시, 이를 수정하는 방식
오류 제어 방식
- 자동 반복 요청(ARQ, Automatic Repeat reQuest)
- 통신 경로에서 에러 발생시 수신측은 에러의 발생을 송신 측에 통보하고 송신측은 에러가 발생한 프레임을 재 전송하는 방식
정지-대기(Stop-and-Wait) ARQ
- 송신 측이 하나의 블록을 전송한 후 수신 측에서 에러의 발생을 점검한 다음 에러 발생 유무 신호를 보내올 때까지 기다리는 방식이다.
- 수신 측의 응답이 긍정 응답(ACK)이면 다음 블록을 전송하고, 부정 응답(NAK)이면 앞서 송신했던 블록을 재 전송한다.
- 전송 효율이 가장 낮고, 오류가 발생한 블록만 재 전송하므로 구현 방법이 가장 단순하다.
Go-Back-N ARQ
- 여러 블록을 연속적으로 전송하고, 수신 측에서 부정 응답(NAK)을 보내오면 송신 측이 오류가 발생한 블록부터 모두 재 전송
- 에러가 발생한 블록 이후의 모든 블록을 다시 재 전송
- 에러가 발생한 부분부터 모두 재 전송 하므로 중복 전송 문제
선택적 재전송 ARQ
- Selective-Repeat Automatic Repeat reQuest
- 여러 블록을 연속적으로 전송하고, 수신측에서 부정 응답(NAK)을 보내오면 송신측이 오류가 발생한 블록만을 재 전송
- 복잡한 논리 회로와 큰 용량의 버퍼 필요
적응적 ARQ
- Adaptive Automatic Repeat reQuest
- 전송 효율을 최대로 하기 위해서 데이터 블록의 길이를 채널의 상태에 따라 그때 그때 상태에 따라서 동적으로 변경하는 방식
- 전송 효율이 제일 좋으나, 제어 회로가 복잡하고 비용이 많이 들어 현재는 거의 사용하지 않음.