ljjlovernet
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2004-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1987回复:19

关于ndis工作方式的问题

楼主#
更多 发布于:2003-12-15 09:43
我现在想把在中间层处理过的数据信息送回到ip层(也就是送回给上层的协议),请问我这么做能行的通么?

请各位兄弟多多给些意见,给些帮助。
我是来学习的。不打扫卫生
cc_file
驱动牛犊
驱动牛犊
  • 注册日期2003-05-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-12-15 11:03
可以
我站在人群中,笑容如阳光般的灿烂,但是你可知道,我心底的忧伤...
ljjlovernet
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2004-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-12-15 11:14
能告诉我怎么做么?
我是来学习的。不打扫卫生
cc_file
驱动牛犊
驱动牛犊
  • 注册日期2003-05-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-12-15 11:20
imd收到数据包后,分配新的packet,将数据包拷贝出来;
向协议驱动指示该数据已经发完;
处理数据包;
向协议驱动指示,收到了一个包;
我站在人群中,笑容如阳光般的灿烂,但是你可知道,我心底的忧伤...
ljjlovernet
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2004-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-12-15 11:22
我只把处理过的上层来包送回给ip想重新作一下分片。把未处理过的下层来包先送入ip做一次分片重组,然后再送到中间层处理,然后再送回到ip。这能行么?!
我是来学习的。不打扫卫生
cc_file
驱动牛犊
驱动牛犊
  • 注册日期2003-05-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-12-15 11:31
我只把处理过的上层来包送回给ip想重新作一下分片。把未处理过的下层来包先送入ip做一次分片重组,然后再送到中间层处理,然后再送回到ip。这能行么?!

“把处理过的上层来包送回给ip”? 怎么送!ip为什么会重新对它作分片呢?
“把未处理过的下层来包先送入ip做一次分片重组,然后再送到中间层处理,”ip为什么会送回给中间层处理呢!

我觉得好不理解啊
我站在人群中,笑容如阳光般的灿烂,但是你可知道,我心底的忧伤...
ljjlovernet
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2004-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-12-15 11:42
不好意思,我说的不对劲,
我的意思是把中间层的得到的包中的ip可以接受的信息先剥离出来,再回送给ip,比如我把加密过的ip报文部分的信息送回给ip让他再给分片;

我是来学习的。不打扫卫生
cc_file
驱动牛犊
驱动牛犊
  • 注册日期2003-05-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-12-15 14:31
我觉得不行。
但是,为什么要这样呢?是因为加密后的ip长度变大,超过了网卡的最大包长(比如1500)么?如果是这样,把mtu改小就可以了的
我站在人群中,笑容如阳光般的灿烂,但是你可知道,我心底的忧伤...
ljjlovernet
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2004-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-12-15 14:53
1500已经是最大了,不可以再大了,一般的一个以太桢的最大长度是1518,去掉18个字节的桢头和桢尾信息就剩下1500字节了
我是来学习的。不打扫卫生
ljjlovernet
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2004-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-12-15 15:18
再大传输过程中就可能由路由器把我的包分片了。我不想有这样的事情发生。
我是来学习的。不打扫卫生
cc_file
驱动牛犊
驱动牛犊
  • 注册日期2003-05-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-12-15 16:08
是啊,所以要把mtu该小,比如改成1400字节,上面下来的包就最大只有1414字节,加密后不超过1500就可以了
我站在人群中,笑容如阳光般的灿烂,但是你可知道,我心底的忧伤...
youngyt
驱动牛犊
驱动牛犊
  • 注册日期2003-11-23
  • 最后登录2006-12-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-12-15 16:30
楼主可能是想让IP帮你分片再发出去吧。

我想你这样在两层来回转是不现实的,我认为不可以。你要实现分片要自己写个函数就行了。

将变大的IP包的包头拆掉,将净苛分片,然后再给每个分片加上刚才拆掉包头,当然每个包头里还要改一下序列号。就是完全模仿IP分片嘛,呵呵~~ :D
ljjlovernet
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2004-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-12-15 16:41
hehe,我原意是这样的,你说的也有些小毛病,被分片的包序列号应该是一样的,只是他们的片偏移是不同的。另外他们分段标识都被标识了。

还是要写代码啊。 :P谁能帮俺找一个分片-重组的函数,小弟当感激不尽。
我是来学习的。不打扫卫生
ljjlovernet
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2004-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-12-15 16:45
发包时还好说,我收包时呢?我得再这层作一次重组才可以把重组过的包上传给协议层。
我是来学习的。不打扫卫生
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-12-15 17:01
哈哈,做VPN的吧,看来做这个东西大家要的东西都一样喔:)我知道你的意思,这样做试试:在IM中的QUERYINFORMATION的时候在QUERY下层NIC的MTU告诉上层一个合适的值,这样确保IM做完处理的MAC帧小于1500(不加头部和帧同步码);对于在中途的分片,强行置IP头部的位,不许它在IP子网内部分片,如果是X.25或别的可以不管,让他们自己分了在装,只要保证在接受处IP包是完整的就行。进入的包不用管,长度不回大于你要的!
根据地的兄弟们,团结就是力量
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-12-15 17:04
自己做分组重装一点儿问题也没有,但是原来协议栈的功能浪费了,插不进协议栈就不做分片重装了吧,做WIN上的是不太方便
根据地的兄弟们,团结就是力量
ljjlovernet
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2004-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-12-15 17:40
我直接改注册表也可以限制mtu的大小,让他在加密之后不知过大。
我是来学习的。不打扫卫生
ljjlovernet
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2004-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2003-12-15 17:47
谢谢,可是我分都给完了,以后再送上吧
我是来学习的。不打扫卫生
ljjlovernet
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2004-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2003-12-15 17:50
但是如果我收到的包是被在传输过程中分片了的呢?
我是来学习的。不打扫卫生
youngyt
驱动牛犊
驱动牛犊
  • 注册日期2003-11-23
  • 最后登录2006-12-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2003-12-15 18:10
但是如果我收到的包是被在传输过程中分片了的呢?

上面有位仁兄说了在IP头中禁止这样做 :cool:
游客

返回顶部