2012-03-09 2 views
10

"순환 중복 검사"과 같은 추악한 소리의 개념과 작동을 이해하는 데 문제가 있습니다. 저는 컴퓨터 네트워크 (Computer Networks)에서 대학 과정에 다니고 있으며 이미 길을 잃고 있습니다.Cyclic Redundancy Check 란 무엇이며 간단한 용어 (for-dummies 스타일)로 어떻게 작동합니까?

문제는 수학에 대한 나의 이해가 매우 제한적이며 (학교에서 수학을 오래 전 공부하고 대부분 잊어 버렸습니다.) 예를 들어 생성 다항식이 무엇인지, 어떤 다항식이 필요한지를 알 수 없습니다. CRC로하고 그것을 요약해라 - 그것들 모두는 나에게 완전히 이해할 수없는 것처럼 보인다.

나는 CRC에 위키 항목을 읽었지 만 수학이 좋지 않아이 기호와 수학 용어가 중국어와 비슷하기 때문에 CRC는 도움이되지 못했습니다.

나는 CRC가 네트워크에서 데이터를 전송할 때 오류 탐지에 사용되지만 그 이후부터는 손실된다는 것을 알고 있습니다.

누구나 간단히이 개념을 설명하고 예제를 제공 할 수 있습니까?

마지막 강의에서 교수는이 모든 1과 0을 그리기 시작했고 무엇이 내가 멍청이를 빤히 쳐다 보는지 모르겠다.

아무도 나를 이해하는 데 도움이 될 수있어서 매우 고맙겠습니다. 당신이 대답은 당신이 그와 함께 살 의향이 경우, 일부 지나친 단순화 동의해야 매우 간단하려면

+0

당신은 위키 피 디아에 대한 기사를 읽어 봤어? – kirilloid

+0

다음 pdf를 읽으시는 것이 좋습니다 : http://www.HackersDelight.org/crc.pdf – guga

+0

예 둘 다 읽었지 만 누군가가 더 잘 설명해 줄 수 있다고 생각했습니다. –

답변

19

, 여기 간다 :

데이터는 불완전 링크를 통해 전송 - 오류가 발생할 수 있습니다 방법. 수신 된 정보가 너무 많은 대역폭을 낭비하지 않고 전송 된 정보와 동일한 지 확인하려는 경우 어떻게할까요?

모든 정보를 두 번 전달할 수 있으며 수신 측에서 첫 번째 정보가 두 번째 정보와 다른 경우 오류가 발생했다는 것을 알고 데이터를 다시 요청해야합니다. 낭비 적이기 때문에 대역폭을 효과적으로 줄일 수 있습니다.

이제 데이터 자체보다 훨씬 작지만 값에 의존하는 값을 계산할 수 있다면 어떨까요? 따라서 (오류로 인해) 데이터가 변경되면 계산 된 값이 더 이상 데이터와 "일치"하지 않으므로 오류가 발생했음을 알 수 있습니다. 그런 계산이 있습니까?

간단한 나누기와 나머지를이 값으로 사용하는 것은 어떻습니까?

정보/1,000을 전송하고 싶습니다. 나는 그것을 선택한 숫자로 나눕니다 - 예를 들어 6 ... 저는 저에게 166과 4의 나머지를줍니다. 저는 실제로 정보를 전송하는 것보다 훨씬 작은 체크 값으로 나머지를 사용합니다. 그래서 낭비하지 않을 것입니다. 너무 많은 대역폭과 나는 1,000을 전송 한 다음 4를 보낸다. 수신기는 그것을 얻는다. 1,000은 6으로 나누고 나머지는 4이다. 에러가 발생하지 않았다고 가정한다.

오류가 발생하여 링크 오류로 인해 1,000 대신 998이 수신되면 6으로 나누고 4와 일치하지 않는 나머지 2 개를 얻고 비올라는 오류가 발생했음을 알게됩니다. 그것이 CRC의 기본 원칙입니다.

물론 다항식으로 나누기 때문에 조금 더 복잡하지만 나머지는 데이터를 나타내는 짧은 값으로 사용하여 같은 방식으로 오류를 검사합니다.나는 이것이 당신이 무슨 일이 일어나고 있는지에 주위에 당신의 머리를 얻을 도움이되기를 바랍니다

는)

+1

이 과도하게 답변되었습니다 실제로 CRC의 개념을 이해하기에 좋은 출발점이 될 수 있습니다. :) –

관련 문제