소스 코드는 많이 있는데. 원리를 알고 싶습니다.
CRC테이블이 만들어진 근거두 궁금하구요
아시는분은 답변 부탁 드립니다.
http://en.wikipedia.org/wiki/Cyclic_redundancy_check
CRC 테이블은 미리 만들어진 lookup table인 듯 합니다. 이미 완성된 정보가 준비되어 있어서 필요할 때마다 참조(lookup)가 가능하다면, 매번 정보가 필요할 때마다 연산을 수행하여 정보를 생성하는 경우보다 연산량을 줄여서 연산 속도를 높일 수 있겠죠.
"덧셈 대신 구구단"을 생각하시면 될 것 같습니다.
나눗셈의 원리죠.
원수를 특정 수로 나누면 몫과 나머지가 나옵니다. 이 중 몫은 그냥 버리고 나머지만을 주는데 이 나머지 값이 CRC입니다. 받은 쪽에서는 나눗셈을 한 다음 보내준 나머지 값과 비교해서 틀리면 오류로 간주하죠.
패킷의 경우는 패킷 전체를 하나의 거대한 수로 보고 거기에 대해 특정 수로 나눗셈을 하는 걸로 알고 있고요. (어차피 보내지는 패킷 데이터들이 2진수의 연속이니까요...)
여기서 나누기 위해 사용하는 '특정 수'라는 것은 사전에 미리 다 정해져 있습니다.
CRC도 허점은 있습니다. - 나머지 값과 같은 패턴으로 오류가 발생하는 경우 나머지는 똑같고 몫만 틀려지기 때문에 에러 검출 안됩니다. 하지만 패리티비트에 비하면 그거 일어날 확률은 훨씬 더 희박하죠.
Written By the Black Knight of Destruction
감사합니다.
황혼보다 어두운 자여 내 몸에 흐르는 피보다 더 붉은 자여 시간의 흐름 속에 파뭍힌 위대한 그대의 이름을 걸고 나 여기서 어둠에 맹세하노라 우리 앞을 가로막고 있는 모든 어리석은 자 들에게 나와 그대의 힘을 위대한 파멸의 힘을 보여줄 것을
질문과 답변을 보고 갑니다. 감사합니다.
http://www.ikpil.com
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
http://en.wikipedia.org/wiki/Cyclic_redu
http://en.wikipedia.org/wiki/Cyclic_redundancy_check
CRC 테이블은 미리 만들어진 lookup table인 듯 합니다. 이미 완성된 정보가 준비되어 있어서 필요할 때마다 참조(lookup)가 가능하다면, 매번 정보가 필요할 때마다 연산을 수행하여 정보를 생성하는 경우보다 연산량을 줄여서 연산 속도를 높일 수 있겠죠.
"덧셈 대신 구구단"을 생각하시면 될 것 같습니다.
나눗셈의 원리죠.원수를 특정 수로 나누면 몫과 나머지가 나옵니다.
나눗셈의 원리죠.
원수를 특정 수로 나누면 몫과 나머지가 나옵니다. 이 중 몫은 그냥
버리고 나머지만을 주는데 이 나머지 값이 CRC입니다. 받은 쪽에서는
나눗셈을 한 다음 보내준 나머지 값과 비교해서 틀리면 오류로 간주하죠.
패킷의 경우는 패킷 전체를 하나의 거대한 수로 보고 거기에 대해
특정 수로 나눗셈을 하는 걸로 알고 있고요. (어차피 보내지는 패킷
데이터들이 2진수의 연속이니까요...)
여기서 나누기 위해 사용하는 '특정 수'라는 것은 사전에 미리 다 정해져 있습니다.
CRC도 허점은 있습니다. - 나머지 값과 같은 패턴으로 오류가 발생하는 경우
나머지는 똑같고 몫만 틀려지기 때문에 에러 검출 안됩니다. 하지만 패리티비트에
비하면 그거 일어날 확률은 훨씬 더 희박하죠.
Written By the Black Knight of Destruction
감사합니다.
감사합니다.
황혼보다 어두운 자여
내 몸에 흐르는 피보다 더 붉은 자여
시간의 흐름 속에 파뭍힌 위대한 그대의 이름을 걸고 나 여기서 어둠에 맹세하노라
우리 앞을 가로막고 있는 모든 어리석은 자 들에게
나와 그대의 힘을
위대한 파멸의 힘을 보여줄 것을
질문과 답변을 보고
질문과 답변을 보고 갑니다. 감사합니다.
http://www.ikpil.com
댓글 달기