高分讨论网络流量限制原理,来者有分,按劳分配!!!



------
主要讨论两方面的网络流量限制。

1、本地软件限速(重点讨论)
比较流行的软件有:NetLimiter、NetBalancer、NetPeeker等。
这些软件能够分别限制在本机运行的所有网络程序的流量,是什么原理?实现的思路?

2、局域网限速
比较流行的软件有:聚生网管、网络执法官、P2P终结者、skiller等。
这些软件能够限制局域网内机器的流量,是什么原理?实现的思路?

再就是是否可以在路由器上协商为某台机器的某个应用程序分配一定的网络流量?

谢谢!
------
网络驱动截获住收发接口,怎么限就怎么限
------
1.终端限速
2.交换机限速
3.网卡降速

如果是使用类似WINPCAP的方式,可以将网络数据包截获并缓冲后,进行优先级排序,优先响应发送给预设的端口的报文。
------
谢谢楼上几位,继续。
------
没做过网络,up一下
------

------
我想要改变TCP的传送机制是不可能,除非你不用它,限制流量的话,只能在上层设置吧,比如可以设置某一收发线程的优先级,也可以设置收发缓冲区大小
------
如果想在应用层限速
其实就是sleep而已

------
学习
------
领分的
------
to hurryboylqs:
网络驱动截获住收发接口,怎么限就怎么限

是否是在网络驱动截获到收发数据后,延迟给应用程序?

to WizardK:
1.终端限速 
2.交换机限速 
3.网卡降速 

如果是使用类似WINPCAP的方式,可以将网络数据包截获并缓冲后,进行优先级排序,优先响应发送给预设的端口的报文。

1、终端限速是什么?终端是指计算机还是应用程序?如果是计算机限速那么应用是局域网限速相关的,如果是应用程序,那么如何限?
2、交换机限速的话那就不是软件开发人员的问题了,而是网管的问题,我这儿讨论的是如何在不改变硬件环境的情况下,用软件达到让局域网内某台机器限速。
3、网卡限速的结果还是用硬件来限制某台计算机的流量,而且是限制了这台机器上的所有程序,我希望是某台机器上的某个应用程序。

可否详细介绍WINPCAP的原理。


to dong364:
to bragi523:
应用层限速只能自己限制自己吧,二位是否用过第1条中提到过的软件,那些都是可以随意限制本机上任何网络应用程序的上传和下载的流量的。


谢谢这几位兄,希望继续踊跃发言。
再就是如果版主觉得可行,是否可以考虑给本帖置顶?





------
干扰本机,就可以在应用层等来进行限速,程序来控制

干扰局域网其他机器,就可以给他发送ARP等干扰包来影响它的网络速度等。
------
截包,修改数据请求。
------
楼主想做什么?
------
gz
------
1、本地软件限速(重点讨论) 
比较流行的软件有:NetLimiter、NetBalancer、NetPeeker等。 
这些软件能够分别限制在本机运行的所有网络程序的流量,是什么原理?实现的思路? 
答:
通过应用层的hook可以让网络数据都从你的进程里经过,这样就可以统计流量.对于如何限制你应该考虑本地防火墙的原理.对于windows,编程管理ipspec就可以调用系统层来block对应程序的网络连接
------
不错不错;;
------
局域网流量限制就是用的arp欺骗原理。装个arp防火墙就无效了。
------
要想在路由器上限制应用的流量,得看你的路由器的支持程度了,不过现在基本上路由器都支持这类QoS功能,cisco的,华为的。

至于在本机上限制流量,我想,应该是在协议栈的hook上面挂载自己的函数,添加发送队列,控制数据包的发送速度吧

------
帮顶!
------
接分··帮顶
------
UP
------
我是来学习的。
------
关注
------
截获并区分不同程序的数据包。然后计算速度 并缓存过快的包 达到限速的目的!!!!!!
------
顶,来学习的。
------
不怎么懂,顶下
------
学习了
------
本地,局域网限速之类的原理是完全一样的。
一般在数据链路层进行,其实就是驱动程序一部分。拿以太网驱动举例。
驱动例程记录流量,根据当前经历的时间与总流量关系确定是否要从IP队列中取数据发送。

像迅雷之类的限速,完全是应用层的事情了。
------
补充一下。
在Linux下,可以直接改驱动,改变它的从IP队列取数据和发送的行为。重新编译即可。
像Windows不开源的东西,像libpcap(winpcap)之类,发送行为我们可以控制,不知道能不能改变从IP队列取数据的行为,如果这个也能控制的话,和开源类的OS是一样了。
------
又看了一下回帖,限速的方法有很多,但有一点要保证,你限速后不能影响上层的行为机制。
------
学习
------
看一下高手
------
再就是是否可以在路由器上协商为某台机器的某个应用程序分配一定的网络流量?
//Panabit就可以,基于协议分析;C/S模式的带宽锁bwlock也行。不过这些都没有集成在路由里,需要单独装在一台机器上。

1、本地软件限速(重点讨论) 
比较流行的软件有:NetLimiter、NetBalancer、NetPeeker等。 
//国产的还有FluxEye、QQ医生、360流量管理、迅雷软件助手。楼主要自己做?


------
我是来学习的!
------
1,
简单的 IP 层过滤驱动实现,(可 google IPFilter)
复杂的网络驱动层咯,(可 google 网络驱动层)

2,
原理 ARP 欺骗
开发包,winpcap

3,
路由管不到应用程序,十万八千里
部分智能交换机可能有限速功能

------
学习
------
顶,
还在学习计算机网络……
------
哈,我也是来学习的
------
xuexi
------
NetLimiter is client-side traffic shaping and monitoring software for the Windows operating system.[1] Unlike most traffic-shaping utilities, which are based on centrally managed hardware, NetLimiter is a software-only solution. This has the advantage of being less expensive to deploy, but can result in being more difficult to manage its use across more than one computer.[citation needed]
While it has a significant market among more technically-minded computer users, in medium-to-large networks it becomes difficult for administrators to maintain multiple copies of configuration files.[citation needed] It is, however, useful for simulating slow links between departments showing how the applications will work when deployed to slower sites.[citation needed]
It is often lumped together with other free or shareware in articles[2] that present the reader with 'essential' applications and poweruser-type utilities.[3]
------
引用 39 楼 iamrainliang 的回复:
1,
简单的 IP 层过滤驱动实现,(可 google IPFilter)
复杂的网络驱动层咯,(可 google 网络驱动层)

2,
原理 ARP 欺骗
开发包,winpcap

3,
路由管不到应用程序,十万八千里
部分智能交换机可能有限速功能


------
1 在驱动层上,可以抓到所有的网络包,即IP包, 以TCP/IP为例, 在包中有一个16-bit的源端口值, 每一个用于通信的应用程序都对就着一个接收端口。在IP头中有一个16-bit 的包长度值。那么netlimiter可以计算发给每一个应用程序的包的总长度。
比如有两个EXE A和EXE B.
A使用端口100,B使用端口200.那么netlimiter可以知道在某段时间里A接收了多少字节的数,B接收了多少字节的数。想让A慢的话可以在驱动中延时一会才转发它的IRP包。

2 聚生网管用ARP欺骗,欺骗的方法也有好几种,比如他伪装成局域网中另外一台机器,那么本来应该发给该机器的数据包却跑到运行聚生的这台机器上了,它可以选择立即发给你或者延时一会儿发给你,这样就控制速度了,如果彻底不发给你,你就断网了。

3 在路由器上可以限制某一台机器中的某个应用程序的速度,我不知道现在的路由有没有能做到的,但是我觉得在理论上其实也是行得通的。因为在局域网中,每一台机器拥有的是内网IP地址,它通过路由器和外界连接,那么对于在外网上的一台机器来说,局域网内的所有机器的IP都是一样的。那么它怎么给这个局域网中的某个机器发数据呢?这个它就不知道了,它只知道把数据发到路由器,路由器再根据端口映射(这个端口和SOCKET用的端口不一样,这个端口用来标识局域网中的不同机器的)把数据转发到局域网中的目标机。所以如果路由器在记录某个机器对应某个端口时,再把某个应用程序使用的端口也记录下来的话,就能实现楼主要的功能。但是要知道某个应用程序的名字及其对应的端口,并在路由器的配置界面中显示出来,这个工作可能要在路由器和局域网机器上安装新软件以用于此信息的交换。
------
d
------
截取的数据包实际上发出的跟请求的大小那块显示的吧?
------
顶一下~
有分么……
------
学习接分来的。

局域网 限速的话,好一点的路由IP-mac绑定,机子上再设个静态网关,ARP不就没戏了?
------
网络驱动截获住收发接口,怎么限就怎么限
------
Mark
------
来者有份
------
再次
------
学习
------
Make
------
JF
------
JF Again
------
mark
------
引用 11 楼 scq2099yt 的回复:
to hurryboylqs:
网络驱动截获住收发接口,怎么限就怎么限

是否是在网络驱动截获到收发数据后,延迟给应用程序?

to WizardK:
1.终端限速
2.交换机限速
3.网卡降速

如果是使用类似WINPCAP的方式,可以将网络数据包截获并缓冲后,进行优先级排序,优先响应发送给预设的端口的报文。

1、终端限速是什么?终端是指计算机还是应用程序?如果是计算机限速那么应用是局域网限速相关的,如果是应用程序,那么如何限?
2、交换机限速的话那就不是软件开发人员的问题了,而是网管的问题,我这儿讨论的是如何在不改变硬件环境的情况下,用软件达到让局域网内某台机器限速。
3、网卡限速的结果还是用硬件来限制某台计算机的流量,而且是限制了这台机器上的所有程序,我希望是某台机器上的某个应用程序。

可否详细介绍WINPCAP的原理。


to dong364:
to bragi523:
应用层限速只能自己限制自己吧,二位是否用过第1条中提到过的软件,那些都是可以随意限制本机上任何网络应用程序的上传和下载的流量的。


谢谢这几位兄,希望继续踊跃发言。
再就是如果版主觉得可行,是否可以考虑给本帖置顶?




------
够高端
------
交换机可根据端口限制其网络流量
------
我们局域网网是通过一个公共账号进行登录,从DHCP获取一个随机IP,然后就可以上网了,但是网管可以控制的我们想用多少流量就用多少,而且还可以一点流量也没,这是怎么做到的啊?
------
学习~
------
不太会
------
引用 60 楼 wizardk 的回复:
引用 11 楼 scq2099yt 的回复:
to hurryboylqs:
网络驱动截获住收发接口,怎么限就怎么限

是否是在网络驱动截获到收发数据后,延迟给应用程序?

to WizardK:
1.终端限速
2.交换机限速
3.网卡降速

.

如果是使用类似WINPCAP的方式,可以将网络数据包截获并缓冲后,进行优先级排序,优先响应发送给预设的端口的报文。

1、终端限速是什么?终端是指计算机还是应用程序?如果是计算机限速那么应用是局域网限速相关的,如果是应用程序,那么如何限?
2、交换机限速的话那就不是软件开发人员的问题了,而是网管的问题,我这儿讨论的是如何在不改变硬件环境的情况下,用软件达到让局域网内某台机器限速。
3、网卡限速的结果还是用硬件来限制某台计算机的流量,而且是限制了这台机器上的所有程序,我希望是某台机器上的某个应用程序。

可否详细介绍WINPCAP的原理。


to dong364:
to bragi523:
应用层限速只能自己限制自己吧,二位是否用过第1条中提到过的软件,那些都是可以随意限制本机上任何网络应用程序的上传和下载的流量的。


谢谢这几位兄,希望继续踊跃发言。
再就是如果版主觉得可行,是否可以考虑给本帖置顶?




1.终端限速
指的是在计算机终端进行限速,不是应用程序自己限速,如果是应用程序就没必要讨论了,限速的方法很多。众所周知,网络报文的传输路径是[网卡驱动]->[操作系统协议栈]->[应用程序],首先协议栈是无法改动的,其次网卡驱动一般也无法改动,那么只能是在网卡驱动和协议栈之间加上一个关卡。具体到WINPCAP的原理,你可以参考:
http://blog.csdn.net/someyuan/archive/2009/01/15/3790974.aspx

2.交换机限速
交换机限速是指交换机可以设定工作速度,进行端口流量控制,达到限制流量传输速度的目的。

3.网卡降速
网卡在接通的时候,会进行自动协商,其后的工作速度就是协商的结果。通过网卡降速来实现,只是我的设想,具体如何实现没有想到好办法,因为在自动协商后,再写速度寄存器的话,无法改变对方对你(修改速度寄存器的网卡)的认识,会造成通讯问题。

------
关注学习
------
局域网限速软件多为ARP欺骗来实现吧,反正用arp防火墙能使大部分这类软件失效
------
不懂内
------
基本上软件限速,我觉得吧,就是给要限速的地址发广播包。

在路由或者交换设备上的话,就是优先级。
------
mark
待学习...............



------
关注ing
------
学习
------
不大懂,来学习的。
------
路由器是可以对端口限速的吧,如果有二层交换也是可以实现的,不是非要通过软件才能实现这些功能。
------
up
------
问我啊,我是一个企业的网管,主要看你怎么做,硬件可以,软件也可以 联系156178740
------
59665
------
98563563
------
5445964565
------
截包感觉还是不可取,局域网的那些软件有点半黑客性质,只要是截包和篡改,要限制流量感觉从路由和交换上进行硬限制或进行分流处理
------
现在有专门的流控设备
------
mark
------
通过底层网络侦听可获得电脑对外通信的流量,然后通过hook可获得哪些进程在发送数据包,不知对不对哦。
------
不懂,帮顶一下
------
引用 82 楼 hjg 的回复:
不懂,帮顶一下

------
只用过p2p over 。。。很流氓的软件
------
http://363766780.a235.72ym.cn/
这个不错,看有没你要的
------
引用 21 楼 cnzdgs 的回复:
本地软件限速可以通过驱动程序对网络I/O进行过滤,根据进程ID来区分进程,每个进程单独计算流量,达到流量限制时将请求挂起一段时间。
局域网限速已知的方法是通过ARP欺骗,让目标主机把数据发向自己,再由自己转发出去,或者干脆让其发送到无效地址上。

------
学习
------
jf
------
感谢版主推荐,也感谢楼上的兄弟们,希望有更多兄弟发表看法。呵呵。
------
mark
------
学习了,不错!!
------
引用 2 楼 wizardk 的回复:
1.终端限速
2.交换机限速
3.网卡降速

如果是使用类似WINPCAP的方式,可以将网络数据包截获并缓冲后,进行优先级排序,优先响应发送给预设的端口的报文。

------
Mark
------
来学习
------
听说有分拿
桂ICP备07017180号