#checksum #internet #ipv4 #tcp #protocols #format #rfc1071

无std internet-checksum

RFC 1071校验和计算(“互联网校验和”)

3个不稳定版本

0.2.1 2021年11月9日
0.2.0 2019年8月29日
0.1.0 2019年6月25日

15#internet 中排名

Download history 6653/week @ 2024-04-26 6629/week @ 2024-05-03 8402/week @ 2024-05-10 7224/week @ 2024-05-17 6359/week @ 2024-05-24 6559/week @ 2024-05-31 8727/week @ 2024-06-07 7455/week @ 2024-06-14 7205/week @ 2024-06-21 5564/week @ 2024-06-28 5090/week @ 2024-07-05 6571/week @ 2024-07-12 7481/week @ 2024-07-19 9315/week @ 2024-07-26 8682/week @ 2024-08-02 8304/week @ 2024-08-09

每月下载量35,323次
4 个crate(3个直接)中使用

自定义许可

30KB
411

RFC 1071 "互联网校验和" 计算。

此crate实现了RFC 1071中定义的“互联网校验和”,并在RFC 1141和RFC 1624中进行了更新,这些校验和被许多不同协议的报文格式所使用。校验和通过计算输入的连续16位字的1的补码和的1的补码来操作。

基准测试

校验和::add_bytes

以下微基准测试是在2018年Google Pixelbook上进行的。每个基准测试构建一个Checksum对象,使用给定字节数的输入调用Checksum::add_bytes,然后调用Checksum::checksum来完成。平均值是在3次试验中计算的。

字节 时间 速率
20 |   2,649 ns |  7.55 MB/s
31 |   3,826 ns |  8.10 MB/s
32 |   3,871 ns |  8.27 MB/s
64 |   1,433 ns |  44.7 MB/s

128 | 2,225 ns | 57.5 MB/s 256 | 3,829 ns | 66.9 MB/s 1023 | 13,802 ns | 74.1 MB/s 1024 | 13,535 ns | 75.7 MB/s

校验和::add_bytes_small

以下微基准测试是在2018年Google Pixelbook上进行的。每个基准测试构建一个Checksum对象,使用给定字节数的输入调用Checksum::add_bytes_small,然后调用Checksum::checksum来完成。平均值是在3次试验中计算的。

字节 时间 速率
20 |   2,639 ns |  7.57 MB/s
31 |   3,806 ns |  8.15 MB/s

update

以下微基准测试是在2018年Google Pixelbook上进行的。每个基准测试使用原始2字节校验和调用update,并使用指定长度的字节数组进行更新。平均值是在3次试验中计算的。

字节 时间 速率
 2 |   1,550 ns |  1.29 MB/s
 4 |   1,972 ns |  2.03 MB/s
 8 |   2,892 ns |  2.77 MB/s

无运行时依赖