전송 오류 제어: Difference between revisions

From CS Wiki
No edit summary
No edit summary
 
Line 1: Line 1:
[[분류:네트워크]]
[[분류:네트워크]]


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


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


== 자동 반복 요청(ARQ) ==
*패리티 검사, CRC등을 사용하여 오류를 검출
*오류 제어는 자동 반복 요청(ARQ, Automatic Repeat reQuest)으로 수행
 
===[[자동 반복 요청|자동 반복 요청(ARQ)]]===
 
;Automatic Repeat reQuest
;Automatic Repeat reQuest
통신 경로에서 에러 발생시 수신측은 에러의 발생을 송신 측에 통보하고 송신측은 에러가 발생한 프레임을 재 전송하는 방식
통신 경로에서 에러 발생시 수신측은 에러의 발생을 송신 측에 통보하고 송신측은 에러가 발생한 프레임을 재 전송하는 방식


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


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


=== 선택적 재전송 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
* 전송 효율을 최대로 하기 위해서 데이터 블록의 길이를 채널의 상태에 따라 그때 그때 상태에 따라서 동적으로 변경하는 방식
* 전송 효율이 제일 좋으나, 제어 회로가 복잡하고 비용이 많이 들어 현재는 거의 사용하지 않음.


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

Latest revision as of 21:42, 8 March 2022


오류 제어 방식[edit | edit source]

전진 에러 수정[edit | edit source]

FEC, Forward Error Correction

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

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

후진 에러 수정[edit | edit source]

BEC, Backward Error Correction

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

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

자동 반복 요청(ARQ)[edit | edit source]

Automatic Repeat reQuest

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

정지-대기 ARQ[edit | edit source]

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

Go-Back-N ARQ[edit | edit source]

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

선택적 재전송 ARQ[edit | edit source]

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

적응적 ARQ[edit | edit source]

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

같이 보기[edit | edit source]