测试说明:
1、pktMatch为测试的完整的数据包;
2、在相应的函数里面打印出计算出的checksum(参考例程中的printf),与pktMatch里面的checksum对比即可判断本程序是否可行;
附:
ipchecksum计算原理:
1、checksum字段置0;
2、20字节的头部每两个字节作为16bit数进行求和;
3、加上进位;
4、结果取反即得到checksum;
5、接收端进行第2步计算checksum为ffff即无差错
tcpchecsum/udpchecksum计算原理:
1、TCP/UDP的有效载荷会参与checksum计算;
2、TCP/UDP会引入一个伪首部:即32bit的源/目的ip地址,8bit0,8bit协议号和16bit TCP/UDP报文长度(头部加数据)
3、计算checksum和ip一样,看代码即可