阅读:2522回复:19
如何控制流量?(100分奉上)
前面有个帖子讨论过,但没有结论.
在win200 ddk下 我有两种方法: 一种是用缓冲区加定时器的方法,定时器定为10ms 这种方法是定时器频繁中断,机器根本动不了. 第二中方法是在ptsendpcomplete函数中加计算器,如果没有到一定数目就不调用NdisMSendComplete. 这种方法发现数据传不出去?为什么,我头大? 请版主及各位大侠帮忙,100分奉 上. |
|
最新喜欢:![]() |
沙发#
发布于:2004-06-11 09:35
真的是很需要各位的帮助,给点希望好不好!
我现在不知如何入手 |
|
板凳#
发布于:2004-06-11 12:23
你要控制“流量”,还是“流速”?
看你的意思是要控制流速了。这有点难。因为数据被NDISSEND以后的即时速度就是网卡的最大速度了,此时根本就控制不住了。要在SEND以前控制,除非你一个一个字节的发送,方可达到基本匀速。 如果是流量,那就好办了。累加到一定字节数,阻止发送接受就好了。 |
|
地板#
发布于:2004-06-18 19:56
请教asmsys老大:
流量控制做在miniport上好还是IM上好?能否具体讲讲。谢谢 |
|
|
地下室#
发布于:2004-06-20 13:23
我现在已经能实现流量的控制,是在IM层做的,
用了定时器加缓冲,但发现是把MPSEND的包先存在一个缓冲区 中,然后返回pending ,等定时器来发缓冲区的包, 但发现如果pending 到一定的数量后,重协议层发的包将发生阻涉, MPSEND收到的包很少,是不是直到收到MPSENDCOMPLETE后协议层才再次发送包,还有协议层的缓冲区有多大呢? |
|
5楼#
发布于:2004-06-20 22:10
1.应该是NDISSENDCOMPLETE吧。
2.协议层缓冲区多大?1664?是个变量? 3.定时器加缓冲不知你做的效果如何?可否有更好的办法? |
|
|
6楼#
发布于:2004-06-21 09:13
感觉不行啊,流量大了就控制不住
|
|
7楼#
发布于:2004-06-21 21:20
期待新办法
|
|
|
8楼#
发布于:2004-06-22 09:32
你想做流量控制还是带宽控制?需要做到这么细吗?你想做网关?
|
|
9楼#
发布于:2004-06-22 09:44
你想做流量控制还是带宽控制?需要做到这么细吗?你想做网关? 做带宽控制该怎么做比较好? |
|
|
10楼#
发布于:2004-06-23 11:01
我现在已经能实现流量的控制,是在IM层做的, 如果缓冲能够保存数据,则复制Packet,然后调用NdisMSendComplet,否则再Pending该数据包。 |
|
11楼#
发布于:2004-06-23 12:43
我现在没有复制包,我只是保持包的指针,然后返回pending。
这样会不会有问题? |
|
12楼#
发布于:2004-06-23 13:10
如果NDIS_STATUS_RESOURCE时必须COPY。
|
|
13楼#
发布于:2004-06-24 17:55
不爽,今天又让老大k.
我用了各种方法,丢包,pending包, 虽然都有一定的控制,但就是不稳定. 我下了个老外的流量控制软件,设4M就一点不多.牛. 国产的就没看见有. |
|
14楼#
发布于:2004-06-24 17:57
它们是在MI做流量控制吗?楼上的各位老大可有高建
|
|
15楼#
发布于:2004-06-27 18:28
它们是在MI做流量控制吗? 请问他们是指?能说说你下的那个软件吗?我想看看。 |
|
|
16楼#
发布于:2004-07-01 18:06
bandcontrol
|
|
17楼#
发布于:2004-07-01 22:06
我的MSN:longriver2004@hotmail.com 请联系我。谢谢!
|
|
|
18楼#
发布于:2004-07-21 16:03
[quote]我现在已经能实现流量的控制,是在IM层做的, 如果缓冲能够保存数据,则复制Packet,然后调用NdisMSendComplet,否则再Pending该数据包。 [/quote] 这个方法不可以吗,我也想做一个流量控制,想用这种方法,请高手指点一个新得方法 |
|
19楼#
发布于:2004-07-21 16:07
在driverstudio中有一个例子,是利用IM进行延迟转发的,可不可以在这个例子的基础上利用缓冲和定时器来进行转发,控制带宽流量
|
|