阅读:1648回复:2
Passthru 转送效率问题
我在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] |
|
沙发#
发布于:2005-04-05 10:55
我也想试试看看
你用什么办法修改routing table? 操作平台是什么? |
|
|
板凳#
发布于:2005-04-06 09:09
Windows XP
在MS-DOS窗口用 “route” 指令 Ex. route add dest-ip intermediate-ip (“route print” 可看目前的routing table) |
|