이 전 시간에서는 신호 변환에 대한 전반적인 과정을 살펴보았다.
이번 시간에는 데이터를 전송했을 때 오류가 발생하는 상황과 오류를 제어하는 기법에 대하여 알아보겠다.
너무 세세하게 들어가면 복잡하니 전반적인 틀을 이해했으면 좋겠다. 이러이러 한 게 있구나
(아예 모르는 것과 엄청난 차이가 있다.)
전송 오류 제어
발생 원인
손실(Loss)
• 채널상에서 발생되는 왜곡(distortion)에 의한 현상
감쇠 현상/왜곡(Attenuation Distortion)
• 전송 매체의 저항에 의해 에너지가 손실
지연 왜곡(Delay Distortion)
• 전송 매체를 통한 신호 전달이 주파수에 따라 달라지는 현상
열/백색 잡음(Thermal/White Noise)
• 주파수들의 합과 차의 신호를 발생함으로써 발생되는 채널의 간섭 현상
• 관련 잡음 최소화: 가드영역(guard bandwidth) 추가
누화 잡음(Cross Talk Noise)
• 인접한 전송 매체의 전기적 신호의 결합에 따른 잡음 => 신호 혼선
충격성 잡음(Impulse Noise)
• 번개나 천둥소리에 의한 충격 잡음
동일 채널 잡음, 방사 잡음 등
지난 시간에 직렬 등 전송 방식에 대하여 살펴 보았는데 이와 같은 방법들에 따른 오류율에 대하여 알아보자
오류율
이러한 오류가 발생 했을때 제어하는 방법에 대하여 살펴보자
오류 제어 방식
- 단순 방식(오류 무시)
- 순방향 오류 수정(FEC: Forward Error Correction, 전진 오류 수정)
- 역방향 오류 수정(BEC: Backward Error Correction, 후진 오류 수정)
- 자동 반복 요청(ARQ : Automatic Repeat request, 오류 검출 후 재전송)
단순 방식(오류 무시)
- 오류 검출 및 수정 방식이 포함되지 않음
- 일부 데이터의 소실이나 왜곡이 발생되더라도 운영에 큰 문제가 없을 경우 무시
- 데이터의 안전성을 위해 일반적으로 동일 프레임을 여러 번 보냄
루프/에코 방식(Loop/Echo)
- 송신측에서 전송한 메시지를 수신측에서 다시 전송측으로 보냄 (완전 엥무새 야~~~ : 야~~~~ , 뭐~~~~ : 뭐~~~~)
- 송신측은 회신메시지와 전송 메시지를 비교하여 동일함을 판단
순방향 오류 수정(FEC: Forward Error Correction, 전진 오류 수정)
ex 너가 알아서 수정해라
- 전송 프레임의 정보에 오류 검출과 복구를 위한 잉여 비트를 추가
- 데이터에 오류가 발견되면, 수정하여 데이터를 복원
- 연속적인 데이터 전송이 가능하며 역채널을 사용하지 않는다는 장점
- 단, ARQ 방식에 비해 복구를 위한 더 많은 추가 정보들이 포함되어야 함 (어떻게 수정 할지 다 알려줄게 너가 알아서 해)
- 오류 복구를 위한 하드웨어와 소프트웨어가 복잡
- 특정 비율 이상의 오류는 복구가 불가
- 대표적 방법으로는 해밍코드(Hamming Code)를 적용
역방향 오류 수정(BEC: Backward Error Correction, 후진 오류 수정)
- 송신측에서 전송된 프레임들 중 오류가 있는 프레임을 수신측에서 판단
- 오류 프레임에 대하여 송신측에게 통보(ACK, NAK)하여 재전송
- 대표적 에러 검출 방식
- 패리티 비트 검사, 블록 합 검사(BSC), 순환 중복 검사(CRC) 등
- 대표적 재전송 방식
- ARQ(Automatic Repeat request, 오류 검출 후 재전송)
자동 반복 요청(ARQ : Automatic Repeat request, 오류 검출 후 재전송)
- 송신 측은 프레임 1개를 전송 후 수신 성공을 확인하면 다음 프레임을 전송하는 방식
- 수신이 실패하면 직전 프레임을 다시 보냄
- 실패의 확인은 NAK(Negative AcKnowledgement) 수신 또는 ACK(ACKnowledgement) 타임아웃(timeout)으로 판단
- Timeout은 일반적으로 RTT(Round Trip Time) X 1.5
- 오버헤드(Overhead)가 큼
- IBM의 BASIC(BSC) 기법에서 주로 사용
연속적(Continuous) ARQ
- 정지 대기 ARQ 방식의 단점을 해결하기 위해 데이터 블록을 연속으로 보냄
- 대표적 방식: Go-Back N ARQ, 선택적(Selective) ARQ
- 전송 효율을 극대화하기 위해 전송할 데이터 블록의 길이를 가변
- 송신 측은 NAK의 주기를 분석하여 오류 발생률을 판단
- 오류 발생률이 낮으면 긴 프레임을, 높으면 짧은 프레임을 전송
- 구현이 복잡 => 가격이 비쌈
오류 검사
- 전송 프레임의 오류 검출과 복구를 위한 기능
- 오류 발생시 재전송 요청 또는 스스로 오류를 복원
오류 검사 종류
- 군 계수 검사(Group Control Check)
- 패리티 비트 검사(Parity Bit Check)
- 블록 합 검사(BSC: Block Sum Check)
- 해밍(Hamming) 코드 방식
- 순환 중복(CRC: Cycle Redundancy Check)