검색어 입력폼
평가점수A

CRC(cyclic redundancy check) 기본 설명 및 C 를 이용한 소스 구현

저작시기 2007.04 |등록일 2007.06.01 한글파일한글 (hwp) | 14페이지 | 가격 5,000원

소개글

Cyclic redundancy check 를 C(C++)로 구현하는 것이 본 프로젝트의 목적이다. 시뮬레이션은 오로지 C 또는 C++로만 구현해야 하며, CRC를 생성하여 이를 전송하는 부분과 전송받은 데이터를 토대로 에러발생 여부를 검사하는 부분 2가지로 구성한다. 보내고자 하는 char형의 데이터가 입력되면 송신부분에서 CRC를 생성하여 보내고자 하는 데이터와 함께 수신부로 전송을 한다. 이때 비트당 0.1% 에러 발생 확률로 데이터를 전송한다. 수신부분에서는 전송받은 데이터의 error를 검출하여 최종 결과를 얻는다.
- 송신부분
보내고자 하는 데이터는 char형을 scanf로 입력받는다. 예를 들어 “data communications and networking” 이라는34개의 character를 입력 받았다고 가정하면, 각 character에 대한 ASCII 코드를 추출한다. 그리고 이를 바탕으로 CRC를 생성한 후 보내고자 하는 데이터와 함께 수신측으로 전송한다. 이 때 비트당 에러 발생 확률은 0.1%로 한다.

- 수신부분
수신된 데이터를 가지고 에러의 발생 여부를 검사한다. 만약 에러가 발생하였다면 에러가 발생하지 않을 때까지 송신측으로 부터 데이터를 전송 받는다.

CRC를 이용한 에러 check 를 C프로그램을 이용하여 구현하였습니다.
첫 부분은 기본적인 CRC의 설명을 하였고, 소스코드를 구현하기 위해
순서도(flow chart)를 나타내었습니다.
각 순서도는 system,sender and reciever, CRC generator, CRC checker 등 상세하게 나타내었고
소스코드도 상세한 주석을 통해 모두가 이해할수 있도록 작성하였습니다.

목차

1. CRC의 정의, 특성 등의 기본적인 개념 정리
1.1 What is the error?
1.2 What is the CRC?
1.3 Fundamental notion of CRC
1.4 Commonly used and standardized CRCs
2. Flow chart 작성
- System
- Sender 및 receiver
- CRC generator 및 CRC checker
- 전송 중 에러 발생에 대한 부분
3. Source Code 설명
4. 실행결과에 대한 설명
5. 그 외 필요한 설명

본문내용

1. CRC의 정의, 특성 등의 기본적인 개념 정리

1.1 What is the error?
트랜지스터를 기반으로 하는 컴퓨터는 모든 데이터 처리를 2진법에 기초한다. high-low voltage동작을 컴퓨터 프로세서는 0과 1로 표현하는 것이다. 우리가 컴퓨터로 사용하는 문서, 음악, 영화 등 모든 데이터는 0과 1로 이루어진 binary 덩어리이다. 마치 영화 ‘매트릭스’의 도입화면에서 나타나는 녹색 줄의 0과1의 무수한 코드처럼 말이다. 그러므로 컴퓨터간의 데이터 전송 시에도 0과 1의 조합이 전송되는 것이다. 문제는 이런 데이터의 이동에 있어서 방해요인이 있다는 것이다. 비록 미미한 정도지만 전송선의 저항이 있을 수도 있고, 혹은 네트워크 내의 오류가 있을 수도 있고, 주변 통신기기의 강력한 전파로 인해 전송에 장애가 올 수도 있는 것이다. 이런 약간의 방해요인으로 0과 1의 조합에 균열이 가면 데이터는 엉망이 되고 만다. 이렇게 sender가 의도하지 않은 전송 중에 일어나는 error를 receiver쪽에서는 전혀 알 수 없으므로 이것을 detecting하고 더 나아가 correcting하기 위한 기술들이 필요하다.

1.2 What is the CRC?
Network는 한 장치에서 다른 장치로 정확하게 데이터를 전송할 수 있어야 한다. 한 장치에서 수신한 데이터가 다른 장치 송신된 데이터와 동일하다고 확신할 수 없는 network는 쓸모가 없다. 그러나 sender에서 receiver로 전송되는 데이터는 전송 중에 변경될 가능성을 항상 가지고 있다. 신뢰성 있는 시스템은 이러한 errors를 Detecting하고 Correcting할 수 있는 기법을 포함하고 있어야 한다.
순환중복검사(巡環重復檢査), CRC(cyclic redundancy check)는 네트워크 등을 통하여 데이터를 전송할 때 전송된 데이터에 오류가 있는지를 확인하기 위한 체크값을 결정하는 방식을 말한다.
다운로드 맨위로