请教一下校验和的问题
时间:2011-01-15
来源:互联网
请问:如果我在netfilter hook 的 NF_IP_FORWARD修改了将要转发的数据包,具体修改了http中客户端向服务器的请求消息,把消息中cookie:参数的值置为了空字符,我使用tcp_v4_check函数进行重新对tcp进行校验,如下:
tcph->check = tcp_v4_check(tcph,
tmp->len - (tmp->nh.iph->ihl << 2),
tmp->nh.iph->saddr, tmp->nh.iph->daddr,
csum_partial((char *)tcph, tmp->len - (tmp->nh.iph->ihl << 2),
0));
但是修改后的数据包不能被发送出去,请问大侠们,对数据包的data部分进行了修改,需要再进行tcp校验吗,为什么我的数据包发布出去呐?通过抓包工具查看,数据包的中cookie的值仍然存在,不是我修改后的空字符串,怎么处理能使我的修改成功,而且能把修改后的数据包发出去呐?请大侠们帮帮忙,谢谢!
tcph->check = tcp_v4_check(tcph,
tmp->len - (tmp->nh.iph->ihl << 2),
tmp->nh.iph->saddr, tmp->nh.iph->daddr,
csum_partial((char *)tcph, tmp->len - (tmp->nh.iph->ihl << 2),
0));
但是修改后的数据包不能被发送出去,请问大侠们,对数据包的data部分进行了修改,需要再进行tcp校验吗,为什么我的数据包发布出去呐?通过抓包工具查看,数据包的中cookie的值仍然存在,不是我修改后的空字符串,怎么处理能使我的修改成功,而且能把修改后的数据包发出去呐?请大侠们帮帮忙,谢谢!
作者: lanmolei814 发布时间: 2011-01-15
数据包修改以后校验和必须重新计算。
作者: jcwKyl 发布时间: 2011-01-15
我只是修改了数据包的data部分,没有修改数据包的长度,没有修改协议头,也需要对校验和进行从新计算吗?如果是,那用什么方法校验呐,怎么判断校验和是否正确呀?
作者: lanmolei814 发布时间: 2011-01-15
TCP校验和是包括数据部分的,所以必须重新计算。
另外,你可以用tcpdump看看你发出去的数据包,如果校验和不对,tcpdump会显示checksum incorrect的,你这样来确信是不是校验和的问题。
校验和计算方法google一下都能找到。我这里就不贴了。
最直接的方法就是用tcpdump看你发送的那些包,直到没有checksum incorrect这样的显示为止。
另外,你可以用tcpdump看看你发出去的数据包,如果校验和不对,tcpdump会显示checksum incorrect的,你这样来确信是不是校验和的问题。
校验和计算方法google一下都能找到。我这里就不贴了。
最直接的方法就是用tcpdump看你发送的那些包,直到没有checksum incorrect这样的显示为止。
作者: jcwKyl 发布时间: 2011-01-15
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28