전송 오류 제어 편집하기

IT위키

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

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

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


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


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


*패리티 검사, CRC등을 사용하여 오류를 검출
== 자동 반복 요청(ARQ) ==
*오류 제어는 자동 반복 요청(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)을 보내오면 송신 측이 오류가 발생한 블록부터 모두 재 전송
* 에러가 발생한 블록 이후의 모든 블록을 다시 재 전송
* 에러가 발생한 부분부터 모두 재 전송 하므로 중복 전송 문제


*여러 블록을 연속적으로 전송하고, 수신 측에서 부정 응답(NAK)을 보내오면 송신 측이 오류가 발생한 블록부터 모두 재 전송
=== 선택적 재전송 ARQ ===
*에러가 발생한 블록 이후의 모든 블록을 다시 재 전송
*에러가 발생한 부분부터 모두 재 전송 하므로 중복 전송 문제
 
====선택적 재전송 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위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소 편집 도움말 (새 창에서 열림)