nicklezhang
驱动牛犊
驱动牛犊
  • 注册日期2004-03-29
  • 最后登录2017-06-19
  • 粉丝0
  • 关注0
  • 积分24分
  • 威望145点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:2741回复:3

请教:如何在win7下实现流控,traffic shaping?

楼主#
更多 发布于:2010-06-29 21:06
我想在win7写一个流控软件,在功能上能达到限制指定程序的下载速度。TDI从vista开始已经开始被遗弃了,Winsock Kernel好像也只是提供一个kernel-mode Network Programming Interface,通俗的说就是kernel-mode socket编程,无法用来拦截别的程序的数据包。Windows Filtering Platform只能用来过滤数据:丢弃还是接受,不能用来对数据包排队限制带宽。如果使用NDIS IM driver,在这里限制接受的带宽,也会有问题,这样网卡提交上来的包就被IM放进队列,安装指定带宽的形式再提交给os,这样如果IM把太多的rx NetBufferList放在队列里,就会导致网卡的rx buffer被用光,这样网卡就会发pause,所有的包都收不进来了。
我下载了Netlimiter,BMW等流控软件,反汇编过来也没看出什么名堂,驽钝。各位大侠有何建议,Thanks a lot in advance!!!
cyliu
论坛版主
论坛版主
  • 注册日期2003-06-13
  • 最后登录2014-04-11
  • 粉丝5
  • 关注0
  • 积分1238分
  • 威望2531点
  • 贡献值0点
  • 好评度577点
  • 原创分14分
  • 专家分10分
沙发#
发布于:2010-06-30 12:59
水池容量有限,进来的水多,出去水少时,总会有满的时候,这是只有丢掉数据包。这和使用tdi还是ndis没有关系。

建议看看linux的Qos
走走看看开源好 Solaris vs Linux
iihacker
论坛版主
论坛版主
  • 注册日期2010-01-07
  • 最后登录2017-08-16
  • 粉丝5
  • 关注8
  • 积分377分
  • 威望1941点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2010-12-14 12:08
DNISHOOK可以吗?和LWF是一个样子。 In  WFP , tcp need dpc list,so donot sleep.
NDIS 1群74755180 NDIS 2群182802097 交换机软硬件技术群 187471475 FPGA PCI PCIE 群187471817
iihacker
论坛版主
论坛版主
  • 注册日期2010-01-07
  • 最后登录2017-08-16
  • 粉丝5
  • 关注8
  • 积分377分
  • 威望1941点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2010-12-14 12:08
…………
NDIS 1群74755180 NDIS 2群182802097 交换机软硬件技术群 187471475 FPGA PCI PCIE 群187471817
游客

返回顶部