컴퓨터네트워크: CRC와 해밍코드 오류검출
본 내용은
"
인하대_컴퓨터네트워크_과제
"
의 원문 자료에서 일부 인용된 것입니다.
2023.10.04
문서 내 토픽
-
1. CRC(순환중복검사) 계산방법CRC는 모듈로-2 연산을 사용하여 자릿수가 맞으면 XOR 연산을 수행한다. 생성코드 G로 데이터코드 D의 LSB에 G의 최고차수만큼 0을 붙인 비트를 나누고, 나머지 R을 데이터코드의 LSB에 붙여 전송코드를 만든다. 수신측에서는 수신된 코드를 동일한 생성코드로 나누어 나머지가 0이면 에러가 없고, 0이 아니면 전송과정에서 에러가 발생했음을 확인할 수 있다.
-
2. CRC 종류 및 응용CRC의 종류는 CRC-16, CRC-32, CRC-64 등이 있으며, -n에서 n은 생성 비트의 비트 수를 나타낸다. 같은 비트 수라도 사용 분야에 따라 다른 다항식이 적용되는데, CRC-16-IBM은 USB에, CRC-16-DEC는 무선 전화에 사용된다.
-
3. 해밍코드(Hamming Code) 정의 및 원리해밍코드는 데이터비트에 체크비트를 추가한 코드로, CRC와 달리 에러 비트의 위치를 찾아 정정이 가능하다. 체크비트의 위치는 2^n(n=0,1,2...)이므로 1, 2, 4, 8 등이며, 체크비트는 회색 비트들이 이븐 패리티가 되도록 생성된다. 송신된 체크비트와 수신된 체크비트를 비교하여 에러 위치를 특정할 수 있다.
-
4. CRC 알고리즘 구현6비트 데이터를 입력받아 생성자 최고차항 수만큼 0을 붙인 Dividend를 만든다. 생성자와 Dividend의 XOR 값을 반복 계산하여 나머지를 구한다. find 함수로 Dividend에서 가장 먼저 1이 들어있는 위치를 찾아, 반환값이 5 이하일 때까지 XOR 연산을 반복하여 최종 CRC 코드를 생성한다.
-
1. CRC(순환중복검사) 계산방법CRC는 데이터 전송 중 오류 감지를 위한 중요한 기법입니다. 계산 방법은 송신 데이터에 생성다항식을 이용하여 나머지를 구하는 방식으로, 이진 다항식 나눗셈을 기반합니다. 송신자는 원본 데이터에 CRC 값을 추가하여 전송하고, 수신자는 동일한 생성다항식으로 나누어 나머지가 0이면 오류가 없다고 판단합니다. 이 방식은 계산이 간단하면서도 효율적이어서 네트워크 통신, 저장장치 등에서 광범위하게 사용됩니다. 다만 오류 정정은 불가능하고 오류 감지만 가능하다는 한계가 있습니다.
-
2. CRC 종류 및 응용CRC는 생성다항식의 차수에 따라 CRC-8, CRC-16, CRC-32 등으로 분류되며, 각각 다른 오류 감지 능력을 제공합니다. CRC-32는 이더넷과 ZIP 파일에서, CRC-16은 모뎀 통신에서, CRC-8은 센서 데이터 전송에서 사용됩니다. 산업 표준으로는 CRC-CCITT, CRC-DNP 등이 있으며, 각 분야의 특성에 맞게 최적화된 생성다항식을 사용합니다. 응용 분야는 매우 광범위하여 무선통신, 자동차 CAN 버스, 의료기기 등 신뢰성이 중요한 모든 시스템에서 필수적으로 활용되고 있습니다.
-
3. 해밍코드(Hamming Code) 정의 및 원리해밍코드는 오류 감지뿐만 아니라 오류 정정까지 가능한 선형 오류정정부호입니다. 원리는 데이터 비트에 패리티 비트를 추가하여 각 패리티 비트가 특정 위치의 비트들을 검사하도록 설계합니다. 수신 측에서는 각 패리티 검사 결과를 조합하여 오류 위치를 특정할 수 있으며, 단일 비트 오류는 완벽하게 정정 가능합니다. 해밍코드는 메모리, 통신 시스템에서 중요하게 사용되며, 특히 우주 탐사나 위성 통신처럼 재전송이 어려운 환경에서 매우 유용합니다. 다만 오버헤드가 있고 다중 비트 오류 정정은 불가능하다는 제한이 있습니다.
-
4. CRC 알고리즘 구현CRC 알고리즘 구현은 테이블 기반 방식과 비트 시프트 방식 두 가지가 주로 사용됩니다. 비트 시프트 방식은 이해하기 쉽고 메모리 효율적이지만 속도가 느리고, 테이블 기반 방식은 사전 계산된 룩업 테이블을 사용하여 빠른 처리가 가능합니다. 구현 시 생성다항식 선택, 초기값 설정, 최종 XOR 값 처리 등 세부 사항이 중요합니다. 현대 프로세서는 CRC 계산을 위한 전용 명령어를 지원하기도 하여 하드웨어 가속이 가능합니다. 소프트웨어 구현은 C, Python 등 다양한 언어에서 라이브러리로 제공되므로 실무에서는 검증된 구현을 활용하는 것이 권장됩니다.
-
CRC와 해밍코드 8페이지
CRC와해밍코드CRC [Cyclic Redundancy Check]CRC(Cyclic Redundancy Check)는 시리얼 전송에서 데이타의 신뢰성을 검증하기 위한 에러 검출 방법의 일종이다.간단한 에러 검출방법으로는 parity 비트에 의한 방법과 check-sum에 의한 에러 검출 방법이 있지만 parity 비트에 의한 방법은 데이타 중에 한꺼번에 2비트나 4비트가 변하게 되면 검출을 할 수 없고, check-sum에 의한 방법은 한 바이트에서 +1, 다른 바이트에서는 -1로 에러가 생기는 경우만 해도 에러는 검출 되지 않는...2010.07.02· 8페이지 -
최신 정보통신 개론 개정판 4장 연습문제 5페이지
정보통신 개론 4장 연습문제1. 통신 프로토콜의 개념을 정의하시오.: 통신을 원하는 두 객체 간에 무엇을, 어떻게, 언제 통신할 것인지 서로 약속해 놓은 규정이라 정의할 수 있고,통신 프로토콜은 여러 계층으로 나눠진 네트워크에서 똑같은 계층에서 사용하는 표준화된 통신 규약으로, 네트워크 기능을 효율적으로 발휘할 수 있도록 한다.2. 통신 프로토콜의 발전과 표준화 배경을 기술하시오.: 프로토콜은 컴퓨터를 이용해 처음 통신을 시작한 1960년대부터 사용하였다. 처음에는 IBM에서 제정한 프로토콜인 BSC와 SDLC를 많이 사용하였다. ...2016.11.18· 5페이지 -
오류제어 방식 16페이지
오류제어방식오류제어 방식 오류제어란 ? 전기 신호는 매체를 따라 흐를 때 열 , 자기장 등의 간섭으로 신 호가 바뀌거나 손실될 수 있다 . 만약 바뀌거나 손실된다면 수 신 측에서 올바른 정보를 받지 못한다 . 때문에 정보 속에 오류 를 찾아 수정 , 복구 하는 오류 제어 기술이 필요하다 .오류제어의 여러 가지 방식 1) 패리티 검사 (Parity Check) 한 블록의 데이터 끝에 한 bit 를 추가하는 가장 간단한 오류 검출 기 법 . 7bit 데이터를 전송할 때 1bit 패리티 비트를 넣어 보낸다 . - 짝수 패리티 (Even ...2010.09.28· 16페이지 -
오류제어방식 16페이지
과 목 : 디지털통신 학 년 : 3 학년 이 름 : 이지윤 제 출 일 : 2009. 10. 4 오류제어방식오류제어 방식 오류제어란 ? 전기 신호는 매체를 따라 흐를 때 열 , 자기장 등의 간섭으로 신 호가 바뀌거나 손실될 수 있다 . 만약 바뀌거나 손실된다면 수 신 측에서 올바른 정보를 받지 못한다 . 때문에 정보 속에 오류 를 찾아 수정 , 복구 하는 오류 제어 기술이 필요하다 .오류제어의 여러 가지 방식 1) 패리티 검사 (Parity Check) 한 블록의 데이터 끝에 한 bit 를 추가하는 가장 간단한 오류 검출 기 법 . ...2009.10.09· 16페이지 -
해밍코드와 crc코드 레포트 13페이지
해밍 코드컴퓨터 스스로 데이터의 오류를 검출하고 수정하는 오류 수정 코드이다. 수학자 리처드 웨슬리 해밍(Richard Wesley Hamming)의 이름에서 유래되었다. 보통 에러 검출 코드들이 에러를 검출할 뿐 교정은 불가능한 것을 개선한 것으로, 대부분의 마이크로칩 디바이스에 채택되어 신뢰도를 높이는 데 사용된다.컴퓨터 스스로 데이터 오류를 찾아낼 수 있는 코드로, 수학자 리처드 웨슬리 해밍(Richard Wesley Hamming:1915∼1998)의 이름에서 유래되었다. 해밍이 1940년대 말에 벨전화연구소에서 개발하여 1...2007.10.28· 13페이지
