Manboy
驱动牛犊
驱动牛犊
  • 注册日期2004-05-17
  • 最后登录2005-05-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1648回复:2

Passthru 转送效率问题

楼主#
更多 发布于:2005-03-25 10:19
我在PTReceive和PTReceivePacket写了转送的机制:
收到某个封包之后会用NdisSend把收到的封包送给另一个点,
在PTReceive中做完NdisSend后回传NDIS_STATUS_NOT_ACCEPTED, PTReceivePacket中做完NdisSend后回传0
(因此就不会做到原本的IndicateReceivePacket)

在PtSendComplete中把之前做给NdisSend的封包释放

改完之后可以跑  但是效率很差
我跟直接以 “route” 指令改变routing table的转送方式比较
(看dbgview里面的时间)

修改过的passthru:
PTReceive/PTReceivePacket中NdisSend做完 到 进入PtSendComplete需要 0.15~0.2s  (看dbgview, Receive中NdisSend送出的封包没有经过MPSend)

用”route”指令
PTReceive/PTReceivePacket收到封包 然后OS做转送的封包会经过MPSend
最后进入PtSendComplete  从收到封包到 SendComplete需要 0.0005s ~ 0.003s
OS做转送也是收到一个封包就做一次转送
(看起来OS也并不是做了一个buffer存到一定大小才送)

请教我是否忘记做甚么步骤了吗??
求救


[编辑 -  3/25/05 by  Manboy]
IoriKingdom
驱动小牛
驱动小牛
  • 注册日期2004-06-17
  • 最后登录2010-04-26
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望23点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-04-05 10:55
我也想试试看看
你用什么办法修改routing table?
操作平台是什么?
天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,曾益其所不能。
Manboy
驱动牛犊
驱动牛犊
  • 注册日期2004-05-17
  • 最后登录2005-05-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-04-06 09:09
Windows XP
在MS-DOS窗口用 “route” 指令
Ex.  route  add  dest-ip  intermediate-ip
(“route print” 可看目前的routing table)
游客

返回顶部