knightlori
驱动牛犊
驱动牛犊
  • 注册日期2010-05-14
  • 最后登录2010-12-15
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望41点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:4566回复:3

关于使用NDIS HOOK DRIVER 来对本地联网进程做流量控制

楼主#
更多 发布于:2010-05-14 16:52
  1. RT,使用NDIS Hook Driver来对本地联网进程做流量控制是否合适呢?有没有做过相关应用的大侠能给个思路?
 2. 使用NDIS Hook Driver以进程为粒度做流控,还要再写TDI Filter Driver来截取进程信息来作为依据吗?
 3. 之前,看过网上有人说“设定一个时间窗口,在该窗口内统计流 量,达到流量上限之后的数据包全部丢弃,下一个时间窗口继续这一过程。表面上看有数据包被丢弃,会导致通讯失败,但实际上时间窗口足够小,应用软件有机会 重发数据包,并不影响使用。”这一流控策略在实际应用中精度够吗?
 4  不知道有人分析过netlimiter的原理机制,大概是怎样实现的?
 感谢解答。
knightlori
驱动牛犊
驱动牛犊
  • 注册日期2010-05-14
  • 最后登录2010-12-15
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望41点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2010-05-15 09:00
貌似做流控的比较少啊,大家谈谈自己想法也行啊
cyliu
论坛版主
论坛版主
  • 注册日期2003-06-13
  • 最后登录2014-04-11
  • 粉丝5
  • 关注0
  • 积分1238分
  • 威望2531点
  • 贡献值0点
  • 好评度577点
  • 原创分14分
  • 专家分10分
板凳#
发布于:2010-05-17 15:04
1. RT,使用NDIS Hook Driver来对本地联网进程做流量控制是否合适呢?有没有做过相关应用的大侠能给个思路?

可以

2. 使用NDIS Hook Driver以进程为粒度做流控,还要再写TDI Filter Driver来截取进程信息来作为依据吗?

需要

3. 之前,看过网上有人说“设定一个时间窗口,在该窗口内统计流 量,达到流量上限之后的数据包全部丢弃,下一个时间窗口继续这一过程。表面上看有数据包被丢弃,会导致通讯失败,但实际上时间窗口足够小,应用软件有机会 重发数据包,并不影响使用。”这一流控策略在实际应用中精度够吗?

大致精确。可参考linux Qos

4  不知道有人分析过netlimiter的原理机制,大概是怎样实现的?

具有tdi模块,其安装了tdi驱动:nltdi.sys

4.1 Hook了tcp和udp

     result = hook_device(DriverObject, &DeviceObject, &AttachedDevice, L"\\Device\\Tcp");
  
走走看看开源好 Solaris vs Linux
knightlori
驱动牛犊
驱动牛犊
  • 注册日期2010-05-14
  • 最后登录2010-12-15
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望41点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2010-05-17 16:48
谢谢版主的耐心解答。
查了些资料,具体带宽分配,流量整形算法实现,基于自己应用来对linux 中TBF做改进可保证精度比较高。
游客

返回顶部