下载软件中的限速是如何实现的

tristan0429 2009-08-21 09:46:06
如题,谢谢!
...全文
1591 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dobzhansky 2009-08-21
  • 打赏
  • 举报
回复
学习
wuyq11 2009-08-21
  • 打赏
  • 举报
回复
把连接超时设置到1S以上。
做计数器,记录每秒下载的字节数。
在下载线程中判断“当前秒”中下载的字节数是否超限。超限了就停止下载。
等到下一秒再开始新的下载。 Thread.Sleep(sleep);延迟
http://topic.csdn.net/u/20090211/09/d507b845-6fb8-4bac-a8eb-34b6dcad247f.html
http://topic.csdn.net/t/20060401/14/4655985.html
soaringbird 2009-08-21
  • 打赏
  • 举报
回复
速度是单位时间段内的流量。
下载也是客户端向服务器发出申请,要哪段的数据,服务器把这段返回回来。不限速时就是成功返回后继续发下一段的申请,如果限速,可以在发下次请求前延时一段时间。
tristan0429 2009-08-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zlkingdom 的回复:]
数据包超过限制的流量或者是触发了QoS或ACL规则丢包处理 从而限速 。。。
当第一次发包通过路由时,这时路由没有作出反应,只做转发到目的地功能;
然后有反应回来,当流量接近限速时,会作出扔弃某些包的反应,再向目的地要求再次发送,这样就会发生,下载刚开始超出限制的速度。
内网虽然带宽够,但是路由器的缓存少,不会作保存

最简单的限速就是丢包 像TCP协议这样的可靠连接协议可以通过窗口机制来检测网络拥塞 进行流量控制 而不是简单的重发 滑动窗口本质上是描述接受方的TCP数据报缓冲区大小的数据 发送方根据这个数据来计算自己最多能发送多长的数据 如果发送方收到接受方的窗口大小为0的TCP数据报 那么发送方将停止发送数据 等到接受方发送窗口大小不为0的数据报的到来 。。。
[/Quote]

刚刚没看见,这个看似需要服务器那边控制路由器?
那本地软件点“限速”按钮的时候其实是向服务器发送一个信号??
mythad 2009-08-21
  • 打赏
  • 举报
回复
学习,帮顶!
tristan0429 2009-08-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 falx2004 的回复:]
按时 检查所下载的内容的大小  如果超出了 设定 则稍微的sleep一下
[/Quote]

...

这样子的话其实中间会有段时间是不下载的,重新开始后又会重新连接,但是给用户的 ui 上不让他看出来,是吧?同样对服务器来说和没限速是一样的,那这个“限速功能”有啥用呢?(如:迅雷、qq、bt 等软件)
zlkingdom 2009-08-21
  • 打赏
  • 举报
回复
数据包超过限制的流量或者是触发了QoS或ACL规则丢包处理 从而限速 。。。
当第一次发包通过路由时,这时路由没有作出反应,只做转发到目的地功能;
然后有反应回来,当流量接近限速时,会作出扔弃某些包的反应,再向目的地要求再次发送,这样就会发生,下载刚开始超出限制的速度。
内网虽然带宽够,但是路由器的缓存少,不会作保存

最简单的限速就是丢包 像TCP协议这样的可靠连接协议可以通过窗口机制来检测网络拥塞 进行流量控制 而不是简单的重发 滑动窗口本质上是描述接受方的TCP数据报缓冲区大小的数据 发送方根据这个数据来计算自己最多能发送多长的数据 如果发送方收到接受方的窗口大小为0的TCP数据报 那么发送方将停止发送数据 等到接受方发送窗口大小不为0的数据报的到来 。。。
flyerwing 2009-08-21
  • 打赏
  • 举报
回复
学习下。
falx2004 2009-08-21
  • 打赏
  • 举报
回复
按时 检查所下载的内容的大小 如果超出了 设定 则稍微的sleep一下
tristan0429 2009-08-21
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wuyq11 的回复:]
把连接超时设置到1S以上。
做计数器,记录每秒下载的字节数。
在下载线程中判断“当前秒”中下载的字节数是否超限。超限了就停止下载。
等到下一秒再开始新的下载。 Thread.Sleep(sleep);延迟
http://topic.csdn.net/u/20090211/09/d507b845-6fb8-4bac-a8eb-34b6dcad247f.html
http://topic.csdn.net/t/20060401/14/4655985.html
[/Quote]

这样做对服务器端来说不是和没限速基本一样吗??和那种电信限制你网速应该有本质区别吧??
hyblusea 2009-08-21
  • 打赏
  • 举报
回复
在应用层主要是通过调节线程的sleep来实现限速。
P2P终结者是一款网络管理软件,用来管理局域网BT、电驴等大量占用带宽的下载软件,可以帮助您更好的管理您的局域网。它可以运行在Windows2000/XP/2003操作系统上。 P2P终结者是由Net.Soft工作室开发的一套专门用来控制企业网络P2P下载流量的网络管理软件软件针对目前P2P软件过多占用带宽的问题,提供了一个非常简单的解决方案。软件基于底层协议分析处理实现,具有很好的透明性。软件可以适应绝大多数网络环境,包括代理服务器、ADSL路由器共享上网,Lan专线等网络接入环境。 P2P终结者彻底解决了交换机连接网络环境问题,做到真正只需要在任意一台主机安装即可控制整个网络的P2P流量,对于网络的主机来说具有很好的控制透明性,从而有效地解决了这一目前令许多网络管理员都极为头痛的问题,具有良好的应用价值。 P2P终结者目前可以控制绝大部分流行的P2P软件下载,而且P2P终结者开发人员将持续跟踪最新的P2P下载技术的发展,在发现会对网络正常应用造成较大影响的网络下载技术时,会及时进行软件升级更新。 功能: 1.支持目前主流P2P协议控制(Bittorrent,BaiduX,PP,Poco,Kamun,Thunder,Kugoo,eMule等)   2.支持P2P下载带宽限制自定义   3.支持指定主机全局带宽限制   4.主机网络带宽实时查看功能,可以使网络管理员对网络带宽使用情况做到一目了然   5.完全集成一些网络攻击工具的断开公网连接功能   6.IP-MAC绑定控制功能
聚生网管局域网限速软件是专业的局域网网速限制工具、局域网网速控制软件软件的核心功能可以实时统计局域网流量,可以让网管实时查看电脑流量、监控电脑带宽、查看局域网电脑网速占用等功能,从而达到禁止局域网P2P下载、禁止PPS网络电视、禁止QQ直播等流行的P2P网络电视、限制网页视频、禁止在线视频禁止电脑玩游戏、限制计算机游戏、屏蔽网页游戏等诸多功能。用户只需要在局域网一台普通PC或者服务器部署就可以控制整个局域网所有电脑的所有上网行为。同时完全不受各种杀毒软件、一切防火墙的影响和干扰,各项网络管理、网络控制功能均可完全实现!需要的朋友快来下载吧! 聚生网管局域网限速软件具体应用 首先,在局域网内部任意一台电脑安装聚生网管系统并点击启动控制之后,就可以将局域网所有电脑扫描到,计算机管理员可以实时查看局域网电脑IP、查看局域网电脑MAC、查看电脑主机名等情况。然后,只需要将电脑前面打勾,就可以查看电脑带宽占用,并且可以看上行带宽和下行带宽,从而可以实施更精准的带宽控制。 其次,可以为局域网电脑指定上网控制策略,在聚生网管系统的“配置策略”这里,点击“新建策略”,并输入策略名称就可以看到聚生网管的网络控制功能列表,然后网管员只需要点点鼠标就可以完全启用上网控制功能。比如禁止P2P下载、禁止炒股、禁止聊天、限制网络游戏、禁止网络购物、限制微博、禁止网络视频、禁止右键另存为下载等等,所有功能点点鼠标就可以完全启用。设置完毕策略控制之后,只需要将这些策略指派给想要控制的电脑,就可以实时控制电脑的上网行为了。通过有效监控局域网不合理的网络应用,可以从根源上治理局域网网络带宽入不敷出的窘况,从而保证网络资源的充分、合理和高效利用。 最后,聚生网管系统集成的ARP攻击防护功能、防止ARP欺骗、防范ARP木马等功能,可以有效防止局域网ARP攻击导致的局域网掉线、断网现象,从而有效地保证局域网的安全、稳定和畅通。 聚生网管局域网限速软件截图

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧