네트워크

네트워크 에러제어 방법에 대해 알아보도록 하겠습니다.

forward error correction Circle 2024. 2. 15. 08:02
반응형

네트워크를 사용해서 데이터를 송신하다보면 다양한 에러가 발생합니다.

송신과 수신을 하는 프로그램 에러부터 네트워크 케이블 절단, 무선으로 전송할 때 신호감쇠,

잡음 등 많은 형태의 에러가 있습니다. 에러가 발생하면 우선 에러가 발생했는지 탐지해야하고

그 다음 에러를 수정하여 정상 구동할 수 있게 해야 합니다.

 

우선 탐지는 수신자가 제대로 수신받고 있는지 송신자에게 알려주어야 하고 수신 받은 데이터에

에러가 없는지는 송신자와 수신자 간의 일정한 약속으로 확인해야 합니다.

 

수신 받은 데이터에 에러가 없는지 확인하는 것을 FEC ( Forward Error Correction)

수신자가 데이터를 수신 받지 못하면 재전송 하는 것을 BEC (Backward Error Correction)

기법
내용
FEC
(Forward Error Correction)
Ⅰ.송신측이 특정한 정보 비트를 함께 전송하여 수신측에서 이 정보 비트로 에러 발생 시 수정
(수신측이 에러처리)
Ⅱ.데이터 전송과정에서 발생한 오류를 검출하여 오류를 재전송 요구 없이 수정
Ⅲ.재전송 요구가 없어 역채널이 필요없고, 연속적인 데이터 전송 기능
Ⅳ.오류 검출 및 수정을 위한 잉여 비트들이 추가 전송되므로 전송 효율 감소
Ⅴ.해밍 코드와 상승 코드 방식이 있음
BEC
(Backward Error Correction)
Ⅰ. 수신측이 에러 검출 후 송신측에게 에러가 발생한 데이터 블록을 다시 전송 요청하는 방식
(송신측이 에러 처리, ARQ(Auto Repeat request)
Ⅱ.패리티검사, CRC 등 Checksum을 이용하여
오류 검출 후 오류제어는 ARQ가 처리
Ⅲ. Stop-and-Wait, Go-Back-N, Selective Repeat ARQ, Adaptive ARQ 가 있음

Ⅰ. FEC (Forward Error Correction) 기법

FEC 기법 중 가장 간단한 방법은 1의 개수가 짝수 개인지, 홀수 개인지 확인하여 에러를 확인하는 패리티 검사가 있습니다. 또한 특정 합계를 계산하여 합계가 맞는지 확인하는 블록 합계 검사도 있고, 에러 발생시 수정까지 할 수 있는 해밍코드가 있습니다.

실제로 많이 사용하는 방법은 CRC 기법이고, CRC는 Checksum 비트를 전송하여 Checksum 비트로 수신자가 연산하여 에러여부를 확인하는 것으로 무선 LAN과 이더넷 프레임에서 사용됩니다.

 

Ⅱ. BEC (Backward Error Correction) 기법

1) Stop-and-Wait 방식은 하나의 데이터를 송신하고 수신 확인 신호를 받을 때까지 기다린 다음 전송하는 방식입니다. 송신자가 대기해야 되므로 비효율적입니다.

2) Go-Back-N 방식은 수신자가 데이터를 수신 받지 못할 경우 마지막으로 수신 받은 데이터 이후의 모든 데이터를 재전송하는 방법으로 TCP 프로토콜에서 사용하는 방법입니다.

3) Selective Repeat 방식은 수신자가 수신 받은 데이터 중에서 중간에 빠져 있는 것만 재전송하는 방식으로 에러를 처리합니다.

 

Ⅲ. BEC 기법의 특징

기법
Stop-and-Wait
Go-Back-N
Selective Repeat
재전송
요청방법
에러 발생 즉시 재전송
오류 발생 또는 잃어버린 프레임 이후의 모든 프레임을 재요청하거나
타임아웃으로 자동 재송신
오류 발생 또는 잃어버린 프레임 이후의 모든 프레임을 재요청하거나
타임아웃으로 자동 재송신
수신 방법
순차적으로 수신
프레임 송신 순서와 수신 순서가 동일해야 수신
순서와 상관없이 윈도우 크기만큼의 범위 내에서 자유롭게 수신
장 단점
1. 가장 단순한 구현
2. 신뢰성있는 전송
3. 대기시간 존재로
전송 효율 저하
1. 간단한 구현
2. 적은 수신측 버퍼 사용량
1. 구현이 복잡
2. 버퍼 사용량이 많음
3. 보다 적은 재전송
4. 대역폭

*TCP 는 Go-Back-N 방식을 사용합니다.

 

반응형