2012-08-23 5 views
0

패킷과 체크섬 기능이 있습니다. 패킷을 보내기 전에 체크섬 필드는 0입니다. 체크섬을 계산하고 값을 체크섬 필드에 추가합니다. 수신 측에서는 동일한 체크섬 함수를 사용할 때 발신자 측에서 계산할 때 체크섬이 처음에는 0이지만 수신자 측에서 체크섬이 다른 0이 아닌 값이기 때문에 불일치가 발생합니다.값을 0으로 설정하지 않고 체크섬을 확인하는 방법

이 문제를 해결하려면 수신자 측에서 체크섬 필드를 0으로 설정하고 체크섬을 계산하십시오. 그러나 이것은 매우 우아하지 않습니다.

나는 이것에 대한 해결책을 찾고 있지만 아무 소용이 없습니다. 체크섬 기능은 꽤 표준적인 기능이며 블랙 박스입니다.

어떻게 수정해야합니까?

+1

이것은 전적으로 사용중인 체크섬 알고리즘의 종류에 따라 다릅니다. 다른 종류의 CRC는 다른 초기 값을 사용합니다. 따라서 사용 된 체크섬 알고리즘을 알려주지 않는 한 아무도 질문에 대답 할 수 없습니다. – Lundin

+0

계속 전진하고 싶지만 관리자가 허용하지 않습니다! – Nikhil

답변

2

체크섬 계산에 체크섬 숫자를 포함하지 마십시오. 체크섬 바이트 인 ( 제외)의 모든 체크섬을 계산하십시오.

체크섬 계산에 체크섬을 보유하도록 예약 된 바이트를 포함하면 몇 가지 여분의 CPU 사이클을 레코딩하고 전혀 얻지 못합니다.

+0

사용 된 체크섬 알고리즘에 대해 많은 가정을하고 있습니다. OP는 CRC도 언급하지 않았고 다른 종류의 체크섬도 많이 있습니다. – Lundin

+1

@Lundin 아니에요. 거기에 알고리즘에 의존하는 것을 볼 수 없습니다. 모든 체크섬에 대한 대답은 정확합니다. – EJP

+1

거룩한 원형 체크섬 참조 배트맨 –

관련 문제