阅读:1623回复:3
数据包经过路由器路由时是否要重新计算ip的校验和?(急)
数据包经过路由器路由时是否要重新计算ip的校验和?
现在我拦截了ip数据包,修改了ip报头数据,需要计算ip校验和.我使用了比较一般的算法计算的,但是在有的计算机上非常占用cpu时间,该如何解决这个问题啊,谁有ip校验和的优化算法? 如何做能够把cpu降下来呢? 谢谢了! |
|
|
沙发#
发布于:2005-07-01 20:20
数据包经过路由器路由肯定要重新计算ip的校验和!
|
|
板凳#
发布于:2005-07-01 21:51
是的!
在驱动中如果占cpu比率比较大,应该如何把cpu利用率降下来呢? |
|
|
地板#
发布于:2005-07-02 14:34
/* The function in 2.2 was invalid, producing wrong result for
* check=0xFEFF. It was noticed by Arthur Skawina _year_ ago. --ANK(000625) */ static inline int ip_decrease_ttl(struct iphdr *iph) { u32 check = iph->check; check += __constant_htons(0x0100); iph->check = check + (check>=0xFFFF); return --iph->ttl; } Linux协议栈中的做法,值得参考,建议朋友这些问题的时候多去阅读Linux或者FreeBSD的源码。 |
|
|