right_wind
驱动中牛
驱动中牛
  • 注册日期2001-10-12
  • 最后登录2018-05-29
  • 粉丝1
  • 关注0
  • 积分60分
  • 威望66点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:2546回复:10

高分请教(100分),关于IP-IN-IP的问题

楼主#
更多 发布于:2003-04-11 17:36
我在IMD中,将IP数据报重新封装后,增加了一个IP头,和原始的IP包头基本一致,测试后,Ping包能通,但是Ftp和http这种tcp连接的包不通,经过打印IP报数据后,发现tcp握手不能完成。
希望大家能给点解决的思路或经验!

最新喜欢:

baoyibao99baoyib...
good good study, day day up。
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-04-11 22:29
我在IMD中,将IP数据报重新封装后,增加了一个IP头,和原始的IP包头基本一致,测试后,Ping包能通,但是Ftp和http这种tcp连接的包不通,经过打印IP报数据后,发现tcp握手不能完成。
希望大家能给点解决的思路或经验!


各种包大小都能通?
[color=red]大头鬼! :P[/color]
right_wind
驱动中牛
驱动中牛
  • 注册日期2001-10-12
  • 最后登录2018-05-29
  • 粉丝1
  • 关注0
  • 积分60分
  • 威望66点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2003-04-12 09:41
ping包测试的最大报文是2000字节,没问题。
good good study, day day up。
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-04-12 10:15
应该看一下FTP的协议,改了IP以后端口号 报文序号还有一些命令格式需要做处理,具体的一些处理内容可以参考一下nat的RFC文档。
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
fuq_dddd
驱动老牛
驱动老牛
  • 注册日期2002-10-15
  • 最后登录2009-10-09
  • 粉丝0
  • 关注0
  • 积分331分
  • 威望57点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-04-12 21:56
应该是什么地方的校验没有修改
星星之火 可以燎原 每一个光亮 都可能是黎明 [img]http://joke.tom.com/img/assets/1/gaoxiao_80_910.gif[/img]
qishi1997
驱动牛犊
驱动牛犊
  • 注册日期2003-03-20
  • 最后登录2007-09-09
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-04-16 17:30
请问nat的RFC文档,在哪里可以找到?

qishi1997
驱动牛犊
驱动牛犊
  • 注册日期2003-03-20
  • 最后登录2007-09-09
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-04-16 17:46
请问:如果只对NDIS_BUFFER中的数据进行修改而且不改变缓冲区数据的长度(比如使用单字节异或),是否只对XPASSTHRU程序中send.c和recv.c代码进行修改就行了?大哥们帮帮忙
对Ip包头外所有数据加密,是否还要另算校验和?

拜托
skylgl
驱动小牛
驱动小牛
  • 注册日期2002-05-13
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分71分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-04-16 22:04
呵呵,典型的NAT问题呀,RFC?你看一下本论坛,有好多人都提供了解决的办法,标准的实现是edust提供的,但那不是一个最好的办法,虽然在linux核心实现中也用了类似的方法,当然,如果你要使用这种方法,可以参考linux中的FTP连接跟踪模块,那样的实现最为标准并且最简单。
当然还有更好的方法,就是HU斑竹所说的使用虚拟网卡来实现,这个具体的技术细节在这里没有办法详细的阐述,你可以参考XP DDK所提供的例子,叫做MUX,是一个中间层驱动,然后好好的设计你的实现,就可以了。我记得英文的NAT RFC为953,不是很清楚了,你自己查一下就可以搞定了
skylgl
驱动小牛
驱动小牛
  • 注册日期2002-05-13
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分71分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-04-16 22:09
不好意思是在后面才看到你所说的问题,其实,很简单,BUFFER的分配是一个定量的值,我不知道你是怎样分配的,但通常都是在BindAdapter中就统一分配了,这个你不用考虑。至于你要修改包,那是属于TCP/IP协议规定的了,如果你修改了TCP包,当然要重新计算TCP校验和,这个与操作系统没有关系。如果要实现加密,也就是说想做VPN的话,不但需要重新计算校验和还要自己实现分片和重组的。
qishi1997
驱动牛犊
驱动牛犊
  • 注册日期2003-03-20
  • 最后登录2007-09-09
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-04-18 02:45
如果用单字节加密,不改变包的大小是否要考虑分片、重组,不加密
ip包头那么是否要重算tcp校验和?
非常感谢
HuYuguang
论坛版主
论坛版主
  • 注册日期2001-04-25
  • 最后登录2013-04-29
  • 粉丝3
  • 关注1
  • 积分92分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分1分
  • 专家分0分
10楼#
发布于:2003-04-25 10:06
我在IMD中,将IP数据报重新封装后,增加了一个IP头,和原始的IP包头基本一致,测试后,Ping包能通,但是Ftp和http这种tcp连接的包不通,经过打印IP报数据后,发现tcp握手不能完成。
希望大家能给点解决的思路或经验!


tcp的chksum包含部分ip头。
因此,需要重新计算chksum。
不再回忆从前,我已经生活在幸福当中。
游客

返回顶部