패리티 비트와 해밍 코드
패리티 비트와 해밍 비트의 개념과 간단한 사용법을 알아봅니다.
패리티 비트
비트
1의 개수를 맞춤으로써, 오류를 검출한다.
- 짝수 패리티 비트, 홀수 패리티 비트가 있습니다.
 - 짝수 기준으로 설명하겠습니다.
 - 만약 전송하고 싶은 데이터가 
1011이라면, 현재1의 개수는 3개 입니다.- 리틀 앤디안 기준으로 가장 우측에 비트 
1을 더 붙여줍니다. 10111이 됩니다.- 만약 짝수 패리티 비트 에서 
10110이 온다면, 오류가 났음을 알게됩니다. 
 - 리틀 앤디안 기준으로 가장 우측에 비트 
 
패리티 비트의 한계
- 오류가 발생했음만 식별할 수 있고, 수정할 수 없습니다.
 - 오류 비트가 짝수개가 발생한경우에는 검출 할 수 없습니다.
    
10111이 정상적인 비트 일때 맨 앞, 맨 뒤 비트 두개에 문제가 생긴다면00110이 됩니다.1의 비트수가 여전히 짝수개 이므로 오류가 낫음을 찾지 못하게 됩니다.
 
해밍 코드
패리티 비트를 이용하여 오류검출과 동시에 수정까지 할 수 있게 됩니다.
2^n위치에 패리티 비트를 심어주어줍니다.- 이 비트부터 시작하는 데이터 비트들이 정상인지를 확인합니다.
 
오류 검출 & 수정 과정
- 짝수로 확인할때 
1101100라는 데이터가 왔다고 합니다. - 역시나 리틀 앤디안으로 우측에서 좌측 순으로 읽습니다.
 - 이때 패리티 비트는 
2^n1번째, 2번째, 4번째 가 됩니다.- P1(패리티 비트1) 범위를 체크하면
 - P1 D1 D2 D3 를 확인하게 되고, 우측부터 셋을때 1번째 3번째 5번째 7번째 비트를 확인하게 됩니다.
        
1010으로1이 짝수개이므로 에러가 없다고 판단하고0으로 합니다.
 - P2의 경우 
1110이므로 홀수이므로 에러가 있다고 판단하고1으로 합니다. - P3의 경우 
1101이므로1로 합니다. 
 110을 10진수로 바꾸면6이고 6번째 비트에 문제가 있다고 판단합니다.- 1
001100 이 올바른 비트 입니다. 
- 1
 
장점
- 클라이언트 측에서 서버에게 재전송 요청을 보내지 않아도 됩니다.
    
- 우주, 지구처럼 먼거리의 경우, 재전송 요청, 수신 자체가 굉장한 낭비입니다.
 
 
단점
- 필요 비트의 개수가 많아 집니다.
 
Reference
- 리틀 앤디안
 - https://gyoogle.dev/blog/computer-science/computer-architecture/%ED%8C%A8%EB%A6%AC%ED%8B%B0%20%EB%B9%84%ED%8A%B8%20&%20%ED%95%B4%EB%B0%8D%20%EC%BD%94%EB%93%9C.html
 - https://m.blog.naver.com/ggggamang/221113176831