전송 오류 제어: 두 판 사이의 차이

IT위키
편집 요약 없음
 
(다른 사용자 한 명의 중간 판 3개는 보이지 않습니다)
1번째 줄: 1번째 줄:
[[분류:네트워크]]
[[분류:네트워크]]


== 오류 ==
==오류 제어 방식==
=== 감쇠 ===
===[[전진 에러 수정]]===
;Attenuation
* 전송 신호가 전송 매체를 통과하는 과정에서 거리에 따라 점차 약해지는 현상
* 주파수가 높을수록 감쇠 현상이 심해지고, 감쇠 현상을 해결하기 위해 중계기 이용


=== 지연 왜곡 ===
;FEC, Forward Error Correction
;Delay Distortion
 
* 주로 유선 전송 매체에서 발생
데이터 전송 과정에서 발생한 오류를 검출하여 재 전송 요구 없이 스스로 수정
* 하나의 전송 매체를 통해 여러 신호를 전달했을 경우 주파수에 따라서 그 속도가 달라짐으로써 발생


=== 상호 변조 잡음 ===
*송신 측에서는 문자나 프레임에 오류 검출을 위한 부가 정보를 추가시켜 전송
;Intermodulation Noise
*ARQ 방식과는 달리 재 전송 요구가 없기 때문에 역 채널이 필요 없고, 연속적인 데이터 흐름 가능
* 서로 다른 주파수들이 하나의 전송 매체를 공유할 때 주파수 간의 합이나 차로 인해 새로운 주파수가 생성
*데이터 비트 이외에 오류 검출 및 수정 비트(잉여비트)들이 추가로 전송되기 때문에 전송 효율은 낮음
*대표적인 예로 해밍(Hamming) 코드 방식과 상승 코드 방식


=== 충격 잡음(Impulse Noise) ===
===[[후진 에러 수정]]===
* 비연속적이고 불규칙한 진폭을 가지며, 순간적으로 높은 진폭이 발생하는 잡음
* 번개와 같은 외부적인 충격이나 기계적인 통신 시스템에서의 결함 등이 원인
* 디지털 데이터를 전송하는 경우 중요한 오류 발생의 원인이 됨


== 오류 제어 방식 ==
;BEC, Backward Error Correction
=== 전진 에러 수정 ===
;FEC, Forward Error Correction
데이터 전송 과정에서 발생한 오류를 검출하여 재 전송 요구 없이 스스로 수정
* 송신 측에서는 문자나 프레임에 오류 검출을 위한 부가 정보를 추가시켜 전송
* ARQ 방식과는 달리 재 전송 요구가 없기 때문에 역 채널이 필요 없고, 연속적인 데이터 흐름 가능
* 데이터 비트 이외에 오류 검출 및 수정 비트(잉여비트)들이 추가로 전송되기 때문에 전송 효율은 낮음
* 대표적인 예로 해밍(Hamming) 코드 방식과 상승 코드 방식


=== 후진 에러 수정 ===
; BEC, Backward Error Correction
데이터 전송 과정에서 오류가 발생하면 송신 측에 재 전송을 요구하는 방식
데이터 전송 과정에서 오류가 발생하면 송신 측에 재 전송을 요구하는 방식
* 패리티 검사, CRC등을 사용하여 오류를 검출
* 오류 제어는 자동 반복 요청(ARQ, Automatic Repeat reQuest)으로 수행


== 오류 검출 방식 ==
*패리티 검사, CRC등을 사용하여 오류를 검출
=== 패리티 검사 ===
*오류 제어는 자동 반복 요청(ARQ, Automatic Repeat reQuest)으로 수행
;Parity Check
 
# 데이터 한 블록 끝에 1비트의 검사 비트(Parity Bit)를 추가하여 전송 에러를 검출
===[[자동 반복 요청|자동 반복 요청(ARQ)]]===
# 짝수(우수) 패리티
 
#*전송 비트 내의 1의 개수가 짝수가 되도록 하는 것
;Automatic Repeat reQuest
# 홀수(기수) 패리티
#* 전송 비트 내의 1의 개수가 홀수가 되도록 하는 것
# 수직 패리티 체크 방식(VRC, Vertical Redundancy Check)
#* 전송 비트들 중 수직에 대한 1의 bit수를 짝수 혹은 홀수가 되도록 하는 방식
# 수평 패리티 체크 방식(LRC, Longitudinal Redundancy Check)
#* 전송 비트를 일정량의 블록으로 묶어 블록의 맨 마지막에 패리티를 부여하는 방식


=== 순환 중복 검사(CRC, Cyclic Redundancy Check) ===
통신 경로에서 에러 발생시 수신측은 에러의 발생을 송신 측에 통보하고 송신측은 에러가 발생한 프레임을 재 전송하는 방식
* 특정 다항식에 의한 연산 결과를 데이터에 삽입하여 전송하는 에러 검출 방법이다.
* 동기식 전송에서 주로 사용되고, 집단 오류를 검출할 수 있고, 검출률이 높으므로 가장 많이 사용되는 에러 검출 방식이다.
* [[HDLC]] 프레임의 FCS에 사용되는 방식이다.


=== 해밍 코드(Hamming Code) 방식 ===
====정지-대기 ARQ====
* 자기 정정 부호의 하나로 비트 착오를 검출해서 1 bit 착오를 정정하는 부호 방식이다.
* 오류의 검출은 물론 스스로 수정까지 하므로 자기 정정 부호라고도 한다.
* 송신한 데이터와 수신한 데이터의 각 대응하는 비트가 서로 다른 비트의 수를 해밍 거리(Hamming Distance)라고 한다.
* 전송 비트 중에서 1, 2, 4, 8, 16, 32, 64, … , 2n 번째를 오류 검출을 위한 패리티 비트로 사용하며, 이 비트의 위치는 변하지 않는다.


=== 상승 부호(코드) 방식 ===
;Stop-and-Wait Automatic Repeat reQuest
* 순차적 디코딩(Sequential Decoding)과 한계값 디코딩(Threshold Value Decoding)을 사용하여 에러를 수정


=== 궤환 전송 방식 ===
*송신 측이 하나의 블록을 전송한 후 수신 측에서 에러의 발생을 점검한 다음 에러 발생 유무 신호를 보내올 때까지 기다리는 방식이다.
* 수신측에서 받은 데이터를 송신측으로 되돌려 보내어 원본 데이터와 비교하여 오류가 있는 경우 전송
*수신 측의 응답이 긍정 응답(ACK)이면 다음 블록을 전송하고, 부정 응답(NAK)이면 앞서 송신했던 블록을 재 전송한다.
*전송 효율이 가장 낮고, 오류가 발생한 블록만 전송하므로 구현 방법이 가장 단순하다.


=== 연속 전송 방식(자동 연속 방식) ===
====Go-Back-N ARQ====
* 송신 측에서 동일 데이터를 두번 이상 전송하면 수신 측에서 두 데이터를 비교해 이상 유무를 판별한 후에 오류 발생 시, 이를 수정하는 방식


== 오류 제어 방식 ==
;Go-Back-N Automatic Repeat reQuest
;자동 반복 요청(ARQ, Automatic Repeat reQuest): 통신 경로에서 에러 발생시 수신측은 에러의 발생을 송신 측에 통보하고 송신측은 에러가 발생한 프레임을 재 전송하는 방식


=== 정지-대기(Stop-and-Wait) ARQ ===
*여러 블록을 연속적으로 전송하고, 수신 측에서 부정 응답(NAK)을 보내오면 송신 측이 오류가 발생한 블록부터 모두 재 전송
* 송신 측이 하나의 블록을 전송한 후 수신 측에서 에러의 발생을 점검한 다음 에러 발생 유무 신호를 보내올 때까지 기다리는 방식이다.
*에러가 발생한 블록 이후의 모든 블록을 다시 전송
* 수신 측의 응답이 긍정 응답(ACK)이면 다음 블록을 전송하고, 부정 응답(NAK)이면 앞서 송신했던 블록을 재 전송한다.
*에러가 발생한 부분부터 모두 전송 하므로 중복 전송 문제
* 전송 효율이 가장 낮고, 오류가 발생한 블록만 전송하므로 구현 방법이 가장 단순하다.


=== Go-Back-N ARQ ===
====선택적 재전송 ARQ====
* 여러 블록을 연속적으로 전송하고, 수신 측에서 부정 응답(NAK)을 보내오면 송신 측이 오류가 발생한 블록부터 모두 재 전송
* 에러가 발생한 블록 이후의 모든 블록을 다시 재 전송
* 에러가 발생한 부분부터 모두 재 전송 하므로 중복 전송 문제


=== 선택적 재전송 ARQ ===
;Selective-Repeat Automatic Repeat reQuest
;Selective-Repeat Automatic Repeat reQuest
* 여러 블록을 연속적으로 전송하고, 수신측에서 부정 응답(NAK)을 보내오면 송신측이 오류가 발생한 블록만을 재 전송
* 복잡한 논리 회로와 큰 용량의 버퍼 필요


=== 적응적 ARQ ===
*여러 블록을 연속적으로 전송하고, 수신측에서 부정 응답(NAK)을 보내오면 송신측이 오류가 발생한 블록만을 재 전송
*복잡한 논리 회로와 큰 용량의 버퍼 필요
 
====적응적 ARQ====
 
;Adaptive Automatic Repeat reQuest
;Adaptive Automatic Repeat reQuest
* 전송 효율을 최대로 하기 위해서 데이터 블록의 길이를 채널의 상태에 따라 그때 그때 상태에 따라서 동적으로 변경하는 방식
 
* 전송 효율이 제일 좋으나, 제어 회로가 복잡하고 비용이 많이 들어 현재는 거의 사용하지 않음.
*전송 효율을 최대로 하기 위해서 데이터 블록의 길이를 채널의 상태에 따라 그때 그때 상태에 따라서 동적으로 변경하는 방식
*전송 효율이 제일 좋으나, 제어 회로가 복잡하고 비용이 많이 들어 현재는 거의 사용하지 않음.
 
==같이 보기==
 
*[[전송 오류]]
*[[전송 오류 검출]]

2022년 3월 9일 (수) 11:42 기준 최신판


오류 제어 방식[편집 | 원본 편집]

전진 에러 수정[편집 | 원본 편집]

FEC, Forward Error Correction

데이터 전송 과정에서 발생한 오류를 검출하여 재 전송 요구 없이 스스로 수정

  • 송신 측에서는 문자나 프레임에 오류 검출을 위한 부가 정보를 추가시켜 전송
  • ARQ 방식과는 달리 재 전송 요구가 없기 때문에 역 채널이 필요 없고, 연속적인 데이터 흐름 가능
  • 데이터 비트 이외에 오류 검출 및 수정 비트(잉여비트)들이 추가로 전송되기 때문에 전송 효율은 낮음
  • 대표적인 예로 해밍(Hamming) 코드 방식과 상승 코드 방식

후진 에러 수정[편집 | 원본 편집]

BEC, Backward Error Correction

데이터 전송 과정에서 오류가 발생하면 송신 측에 재 전송을 요구하는 방식

  • 패리티 검사, CRC등을 사용하여 오류를 검출
  • 오류 제어는 자동 반복 요청(ARQ, Automatic Repeat reQuest)으로 수행

자동 반복 요청(ARQ)[편집 | 원본 편집]

Automatic Repeat reQuest

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

정지-대기 ARQ[편집 | 원본 편집]

Stop-and-Wait Automatic Repeat reQuest
  • 송신 측이 하나의 블록을 전송한 후 수신 측에서 에러의 발생을 점검한 다음 에러 발생 유무 신호를 보내올 때까지 기다리는 방식이다.
  • 수신 측의 응답이 긍정 응답(ACK)이면 다음 블록을 전송하고, 부정 응답(NAK)이면 앞서 송신했던 블록을 재 전송한다.
  • 전송 효율이 가장 낮고, 오류가 발생한 블록만 재 전송하므로 구현 방법이 가장 단순하다.

Go-Back-N ARQ[편집 | 원본 편집]

Go-Back-N Automatic Repeat reQuest
  • 여러 블록을 연속적으로 전송하고, 수신 측에서 부정 응답(NAK)을 보내오면 송신 측이 오류가 발생한 블록부터 모두 재 전송
  • 에러가 발생한 블록 이후의 모든 블록을 다시 재 전송
  • 에러가 발생한 부분부터 모두 재 전송 하므로 중복 전송 문제

선택적 재전송 ARQ[편집 | 원본 편집]

Selective-Repeat Automatic Repeat reQuest
  • 여러 블록을 연속적으로 전송하고, 수신측에서 부정 응답(NAK)을 보내오면 송신측이 오류가 발생한 블록만을 재 전송
  • 복잡한 논리 회로와 큰 용량의 버퍼 필요

적응적 ARQ[편집 | 원본 편집]

Adaptive Automatic Repeat reQuest
  • 전송 효율을 최대로 하기 위해서 데이터 블록의 길이를 채널의 상태에 따라 그때 그때 상태에 따라서 동적으로 변경하는 방식
  • 전송 효율이 제일 좋으나, 제어 회로가 복잡하고 비용이 많이 들어 현재는 거의 사용하지 않음.

같이 보기[편집 | 원본 편집]