我在开发的过程中遇到了一个非常棘手的问题,希望各位高手来看看。我在98下开发VPN客户端,现在,一般的情况下都可以成功了,但是,在进行一些特殊的通讯模式的时候会出现问题,比如,我在FTP的前几个协商包里面需要改掉其协商地址,在驱动里面对包进行过滤并重新填入新的地址,但是,我发现虽...
全文
回复(28) 2003-01-15 18:40 来自版块 - NDIS网络接口开发
表情
fracker不明白,改地址,跟序号什么关系?(2003-01-16 11:05)
mikeluolinux下面代码都是公开的,你可以修改,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)
mikeluoedust对这个应该熟悉,你要修改序列号的。(2003-01-15 18:51)
edust很好办啊,在内部为你改过的这个 TCP 连接建一个表项,里面记录改后的差值,以后收到属于这个连接的数据包的时候进行 TCP 序号修正就可以了。 这也是 RFC1631 和 RFC3022 里推荐的标准方法!(2003-01-15 18:50)

返回顶部