전송 오류 제어 편집하기

IT위키

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
1번째 줄: 1번째 줄:
[[분류:네트워크]]
[[분류:네트워크]]


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


;FEC, Forward Error Correction
=== 지연 왜곡 ===
;Delay Distortion
* 주로 유선 전송 매체에서 발생
* 하나의 전송 매체를 통해 여러 신호를 전달했을 경우 주파수에 따라서 그 속도가 달라짐으로써 발생


데이터 전송 과정에서 발생한 오류를 검출하여 재 전송 요구 없이 스스로 수정
=== 상호 변조 잡음 ===
;Intermodulation Noise
* 서로 다른 주파수들이 하나의 전송 매체를 공유할 때 주파수 간의 합이나 차로 인해 새로운 주파수가 생성


*송신 측에서는 문자나 프레임에 오류 검출을 위한 부가 정보를 추가시켜 전송
=== 충격 잡음(Impulse Noise) ===
*ARQ 방식과는 달리 재 전송 요구가 없기 때문에 역 채널이 필요 없고, 연속적인 데이터 흐름 가능
* 비연속적이고 불규칙한 진폭을 가지며, 순간적으로 높은 진폭이 발생하는 잡음
*데이터 비트 이외에 오류 검출 및 수정 비트(잉여비트)들이 추가로 전송되기 때문에 전송 효율은 낮음
* 번개와 같은 외부적인 충격이나 기계적인 통신 시스템에서의 결함 등이 원인
*대표적인 예로 해밍(Hamming) 코드 방식과 상승 코드 방식
* 디지털 데이터를 전송하는 경우 중요한 오류 발생의 원인이 됨


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


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


====정지-대기 ARQ====
=== 해밍 코드(Hamming Code) 방식 ===
* 자기 정정 부호의 하나로 비트 착오를 검출해서 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): 통신 경로에서 에러 발생시 수신측은 에러의 발생을 송신 측에 통보하고 송신측은 에러가 발생한 프레임을 재 전송하는 방식


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


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


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


*여러 블록을 연속적으로 전송하고, 수신측에서 부정 응답(NAK)을 보내오면 송신측이 오류가 발생한 블록만을 재 전송
=== 적응적 ARQ ===
*복잡한 논리 회로와 큰 용량의 버퍼 필요
 
====적응적 ARQ====
 
;Adaptive Automatic Repeat reQuest
;Adaptive Automatic Repeat reQuest
 
* 전송 효율을 최대로 하기 위해서 데이터 블록의 길이를 채널의 상태에 따라 그때 그때 상태에 따라서 동적으로 변경하는 방식
*전송 효율을 최대로 하기 위해서 데이터 블록의 길이를 채널의 상태에 따라 그때 그때 상태에 따라서 동적으로 변경하는 방식
* 전송 효율이 제일 좋으나, 제어 회로가 복잡하고 비용이 많이 들어 현재는 거의 사용하지 않음.
*전송 효율이 제일 좋으나, 제어 회로가 복잡하고 비용이 많이 들어 현재는 거의 사용하지 않음.
 
==같이 보기==
 
*[[전송 오류]]
*[[전송 오류 검출]]
IT위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 IT위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소 편집 도움말 (새 창에서 열림)