lwip 中的 IP header check sum 算法

本文介绍了一种在小端系统中使用Wireshark抓取IP包头并计算Checksum的方法,展示了三种不同的Checksum算法实现,包括lwip_standard_chksum_v1、v2和v3,并比较了它们的计算结果。

使用wireshark抓包,提取出一个IP包头,用于测试计算IP check sum 结果:

char ip_header[] = {0x45, 0x00, 0x00, 0x28, 0x36, 0x59, 0x40, 0x00, 0x40, 0x06,
                               0x00, 0x00, 0xc0, 0xa8, 0x50, 0x80, 0xcb, 0xd0, 0x28, 0x22};

将check sum 设置为0x00,0x00.

使用lscup查看系统的字节序:

$ lscpu
Architecture:          x86_64
CPU 运行模式:    32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
每个核的线程数:1
每个座的核数:  1
Socket(s):             2
NUMA 节点:         1
厂商 ID:           GenuineIntel
CPU 系列:          6
型号:              60
Model name:            Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz
步进:              3
CPU MHz:             3292.410
BogoMIPS:              6584.82
超管理器厂商:  VMware
虚拟化类型:     完全
L1d 缓存:          32K
L1i 缓存:          32K
L2 缓存:           256K
L3 缓存:           6144K
NUMA node0 CPU(s):     0,1
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm cpuid_fault invpcid_single pti fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid xsaveopt arat

“Byte Ord

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值