版块
论坛
喜欢
话题
应用
搜索
登录
注册
skylgl的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=24921
关于TCPIP堆栈的问题
我在开发的过程中遇到了一个非常棘手的问题,希望各位高手来看看。我在98下开发VPN客户端,现在,一般的情况下都可以成功了,但是,在进行一些特殊的通讯模式的时候会出现问题,比如,我在FTP的前几个协商包里面需要改掉其协商地址,在驱动里面对包进行过滤并重新填入新的地址,但是,我发现虽...
全文
回复
(
28
)
2003-01-15 18:40
来自版块 -
NDIS网络接口开发
◆
◆
表情
告诉我的粉丝
提 交
fracker
:
不明白,改地址,跟序号什么关系?
(2003-01-16 11:05)
回复
mikeluo
:
linux下面代码都是公开的,你可以修改,windows下面你有不知道TCPIP是在哪里处理的你去哪里修改?只能你自己来处理这个问题。
(2003-01-16 10:30)
回复
skylgl
:
首先感谢edust的回答,也谢谢你的提醒,可能是因为最近过与烦乱的缘故,不过,你的回答我的确是考虑过的,其实,说明白一点,你就是自己实现IP协议栈对这个功能的支持,而在其他操作系统中,IP堆栈总是为每个连接保存这几个序列号的值,显然,针对一个连接而言,如果你在其中的一个包该了这个...
(2003-01-16 10:01)
回复
edust
:
你想,比如,我发个A,想得到的是B,而你传回来的是C,你想我能认识吗? 主机 A 要发给 B 之前,你截到了包,改完之后假设差值为 2,把这个 2 记下来,把改过的包发给 B,B 收到这个包之后回送给你一个包,这时就要进行序号修正了,把这个包的 ACK 序号跟差值运算,...
(2003-01-15 20:23)
回复
edust
:
你的这个方法是想在驱动里面为每个包都改序列号吗?这个,TCP上层似乎不会忍这种改变,你试过没? 当然试过了,没试过的话我只会说“关注”,就不会参与讨论了!
(2003-01-15 20:08)
回复
skylgl
:
你的这个方法是想在驱动里面为每个包都改序列号吗?这个,TCP上层似乎不会忍这种改变,你试过没?你想,比如,我发个A,想得到的是B,而你传回来的是C,你想我能认识吗?
(2003-01-15 19:15)
回复
mikeluo
:
edust对这个应该熟悉,你要修改序列号的。
(2003-01-15 18:51)
回复
edust
:
很好办啊,在内部为你改过的这个 TCP 连接建一个表项,里面记录改后的差值,以后收到属于这个连接的数据包的时候进行 TCP 序号修正就可以了。 这也是 RFC1631 和 RFC3022 里推荐的标准方法!
(2003-01-15 18:50)
回复
« 上一页
1
2
3
skylgl
加关注
写私信
0
关注
0
粉丝
114
帖子
返回顶部