1,首先是校验错误的宏定义
/* define checksum error flags */
#define CSE_IP 0x01
#define CSE_TCP 0x02
#define CSE_UDP 0x04
#define CSE_ICMP 0x08
#define CSE_IGMP 0x10//Internet Group Management Protocol
#define CSE_IP 0x01
#define CSE_TCP 0x02
#define CSE_UDP 0x04
#define CSE_ICMP 0x08
#define CSE_IGMP 0x10//Internet Group Management Protocol
IP数据报的检验和:
为了计算一份数据报的I P检验和,首先把检验和字段置为0。然后,对首部中每个16 bit
进行二进制反码求和(整个首部看成是由一串16 bit的字组成),结果存在检验和字段中。当
收到一份I P数据报后,同样对首部中每个16 bit进行二进制反码的求和。由于接收方在计算过
程中包含了发送方存在首部中的检验和,因此,如果首部在传输过程中没有发生任何差错,
那么接收方计算的结果应该为全1。
关于static inline的函数----------------------------------------------------------------
inline指示符指示编译器用函数体代码去替换函数调用,这种替换叫“联编扩展”(有时称为“联编”)联编扩展在更大的代码的潜在代价上减少函数调用的费用。