计算以太网帧的crc

时间:2013-11-28 23:22:40

标签: package tcl crc crc32

我想在tcl脚本中计算此帧的CRC:

00000A00080000000A00090000004500002E0000000040117AC00000000000000000003F003F001AB6EB000102030405060708090A0B0C0D0E0F1011

预期的CRC为0x1652255A。我尝试了以下(找到here):

% set string \x00\x00\x0A\x00\x08\x00\x00\x00\x0A\x00\x09\x00\x00\x00\x45\x00\x00\x2E\x00\x00\x00\x00\x40\x11\x7A\xC0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3F\x00\x3F\x00\x1A\xB6\xEB\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\
x0D\x0E\x0F\x10\x11
% package require crc32
1.3
% crc::crc32 -format %X $string
690CE0EE ;# not good

% set string 00000A00080000000A00090000004500002E0000000040117AC00000000000000000003F003F001AB6EB000102030405060708090A0B0C0D0E0F1011
% set bin [binary format H* $string]
% crc::crc32 -format %X $bin
690CE0EE ;# same than previous one

我不明白这个过程,我不确定它是否正常工作,因为结果总是一样的:

%  crc::crc32 -format %X foo
690CE0EE
%  crc::crc32 -format %X somethingdifferent
690CE0EE

如果我继续this online tool,如果找到预期的结果......

问题是来自我还是来自包裹?

1 个答案:

答案 0 :(得分:1)

我没看到你所看到的。

% set string \x00\x00\x0A\x00\x08\x00\x00\x00\x0A\x00\x09\x00\x00\x00\x45\x00\x00\x2E\x00\x00\x00\x00\x40\x11\x7A\xC0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3F\x00\x3F\x00\x1A\xB6\xEB\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F\x10\x11


    E.@zÀ??¶ë



% package require crc32
1.3.1
% crc::crc32 -format %X $string
1652255A