免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: fangshi168775
打印 上一主题 下一主题

禁止发送RST包 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2013-04-15 09:59 |只看该作者
不知道楼主解决了这个问题没有
我现在也发现这样 但是这个rst包不是我发出的 应该是系统在底层协议栈就发出了 不知为啥

论坛徽章:
0
12 [报告]
发表于 2013-04-15 10:19 |只看该作者
回复 11# foreverzeus


    改协议栈

论坛徽章:
0
13 [报告]
发表于 2013-04-15 16:14 |只看该作者
回复 12# zimang


    需要到这么底层?之前我试过用一个client来发syn包 我来回syn+ack 也是马上就出现rst。

从某种程度上来说,是不是因为另一端跟我通信的目的端口,在我这边系统认为没有开启导致的呢?
兄弟能说大概要处理哪些地方吗?

论坛徽章:
0
14 [报告]
发表于 2013-04-15 16:20 |只看该作者
回复 13# foreverzeus


    不知道你的需求, 我以为你的需求和lz标题一样。

论坛徽章:
0
15 [报告]
发表于 2013-04-15 17:51 |只看该作者
回复 14# zimang


    其实就是想自己发packet 来模拟一些东西,比如tcp握手
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP)
用的是这个socket
这个socket能正常发东西,能够接收到发给本机的所有包,但是我看资料好像,收到的这些包是底层多拷贝了一份扔给这个socket的?

现在的问题是我发了一个syn 然后对方给我了发了一个syn+ack 我的机器马上给对方扔了个rst,此时我的socket读到syn+ack返回ack已经没用了。

楼主想屏蔽rst 估计也是遇到这样问题。
不过如果raw_socket的实现的确是拷贝一份的话 那么明显这样是不行了,因为系统收包比我快,先给了rst。
是否我能用socket绑定某个端口,让某个端口的数据一定是到我这里来,并不是拷贝的呢?好像写了一些也不行。疑问多多,对协议栈了解不深。
能否指导下?

论坛徽章:
0
16 [报告]
发表于 2013-04-15 18:23 |只看该作者
回复 15# foreverzeus


    对方发回来的数据包肯定是经过协议栈的,所以你只能在协议栈上做手脚。 你搜搜iptables ip queue, 这个可以把原始的数据包发到用户空间。然后你在用户空间回。

论坛徽章:
0
17 [报告]
发表于 2013-04-15 18:36 |只看该作者
回复 16# zimang


    好 谢谢 上班了比较忙 这两天我抽时间有空研究下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP