본문 바로가기
ComputerScience/Network

네트워크 오류 검출 방법과 종류

by whitele 2021. 3. 30.
반응형

네트워크 오류

네트워크에서 송수신하면서 외부의 간섭이나 처리적인 문제로 송수신 도중 값이 바뀌는 오류가 발생할 수 있다. 그에 대한 방법으로 속도를 낮추거나 신호를 강하게 보낼 수도 있다. 아무리 최선의 방법을 쓰더라도 어떻게든 오류는 발생할 수 있다. 그렇기 때문에 오류가 발생하였는지 발생하지 않았는지 검사하는 체계가 필요하다. 

네트워크 오류의 종류

오류로는 3가지로 나눌 수 있다.

  • 단일 비트 오류
  • 다중 비트 오류
  • 집단 비트 오류

단일 비트의 경우 하나의 비트만 오류가 있는 경우이고 다중비트는 둘 이상의 오류가 발생할 경우, 집단 비트 오류의 경우 데이터 구간 중 2개 이상의 비연속적인 오류가 있는 경우이다.

오류 검사의 종류

 오류검사의 종류로는 패리티 비트, 블록 검사합, CRC(순환 중복검사, Cyclic Redundancy Check), 해밍 코드(Hamming code)등이 있다. 이중 간단한 방법으로는 패리티 비트, 블록 검사합이 있다. 단순 오류 검출에 가깝다. CRC는 오류 검출에 탁월하고 Hamming Code는 오류 검출 및 정정에 가깝다.

패리티 비트(Parity Bit)

데이터를 전송할 때마다 패리티 비트를 추가하여 수신 측에서 오류가 발생했는지 검사하는 방식이다. 맨 처음 8비트 중 1비트를 패리티 비트로 사용하여 오류를 검출한다. 대표적으로 홀수 패리티 방식과 짝수 패리티 방식이 있다.

홀수 패리티 방식 : 데이터 구간 중 1의 개수가 홀수가 되도록 패리티 비트를 지정하는 방식

짝수 패리티 방식 : 데이터 구간 중 1의 개수가 짝수가 되도록 패리티 비트를 지정하는 방식

Parity bit data data data data data data data

비트끼리 XOR 연산을 하여 (짝수 패리티 방식의 경우) 0이 결괏값으로 나오면 오류가 발생하지 않는다고 가정하는 것이다.(오류가 발생했을 수도 있다.) 만약 여기서 오류가 검출된다면 수신 측은 재전송 요청을 한다. 앞서 말했듯이 짝수개의 오류가 발생했을 경우 오류인지 아닌지 판단하기 어렵다. 그리고 패리티 검사의 경우는 단순히 오류가 발생했는지 아닌지를 검사하는 정도이기에 어디서 오류가 발생했는지 그리고 오류를 정정하는 기능은 없다.

블록 합 검사(Block Sum Check)

기존의 패리티 검사로는 짝수개의 비트 오류가 발생했을 경우 오류 검출이 힘들다. 블록합 검사는 수직 패리티 비트를 추가하여 2차원적으로 오류 검사를 수행한다. 짝수개의 오류가 발생해도 오류를 검출할 수 있다. 그러나 그만큼 오버헤드가 발생한다.

블록합 검사

단일 비트 오류의 경우 오류의 위치를 알 수 있으며 수정을 할 수 있다. 다중 비트 오류는 검출만 가능하며 위치까지는 알 수 없다. 그러나 집단 비트 중 

1 1
0 1
1 0
1 1

 위와 같은 경우 오류 검출이 되지 않는다. 수직, 수평 비트 모두 짝수비트 오류이기 때문에 오류 검출이 불가능하다. 패리티 비트 검사의 경우보다 오류 검출 성능이 뛰어나지만 여전히 오류 미검출이 발생할 수 있고 오류 수정은 단일 비트의 경우를 제외하면 오류 수정이 불가능하다.

검사합(Check Sum)

 송신측

  1. 데이터를 n 비트로 나눈다.
  2. 나눈 구간의 합을 만들기 위해 1의 보수를 사용하여 서로 더한다.
  3. 모두 합하면 검사합이 된다.

수신 측

  1. 송신 측에서 1,2,3을 진행한다.
  2. 결과가 0이면 오류가 없는 것이고 그렇지 않다면 오류가 발생한 것이다.

정확한 오류 위치를 알 수는 없으나 오류를 탐지하는 데 있어서 효율적이다.

728x90
반응형

댓글