关于实现限制下载速度的问题

tprax634 2010-05-03 09:40:23
我很菜很疑惑,到底应该怎么办到限制下载速度。下载速度不是由服务器的上行速度,和ISP入口的下行速度决定的吗?那么我们如何插手呢?无论我们怎么做?路由器还是继续收一样多的包啊。。?因为服务器的上行速度和ISP的下行速度是不会变的啊。。路由器收一样多的包,那么该拥挤还是拥挤,空闲还是继续空闲啊。我记得有人说过,sleep了某个流量很大的进程可以起作用。但是就算sleep了,服务器发过来的包还是照样塞满路由器缓冲区,不是吗?那到底怎么实现?还是我理解错了?请大家指点指点
...全文
376 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhf 2010-05-03
  • 打赏
  • 举报
回复
按你的topo,可以理解为是outer缓冲区满了丢弃。有些路由器实现是未满就开始丢弃
tprax634 2010-05-03
  • 打赏
  • 举报
回复
详细点分析
outer 路由器缓冲区 inter---- 网卡缓冲区-----程序


当程序不断被sleep,网卡缓冲区的数据读取速度变慢,路由器inter缓冲区等待不到网卡缓冲区队列空闲的时候,就会开始丢弃关于到达这张网卡的包。


你是这个意思吗?我这样理解对吗?
hhf 2010-05-03
  • 打赏
  • 举报
回复
路由器缓冲区拥挤,我们也同样受影响啊?
答:是的。

那路由器凭什么判断什么时候丢包?
答:各路由器实现不同,单cisco的路由器就有好几种qos队列,详细请查看cisco文档或相关设备文档。

我们的程序能够影响路由器让它丢包?
答:你的程序接收慢,路由器队列满,自然就有影响。

服务器不是照样继续发送请求的数据给我们吗?
答:是的。

速度没变啊,至少从服务器到路由器这一段速度是不可能的啊。
答:理解错误,tcp本身就有拥塞避免机制,细节本人也描述不好,为免误导,请查看TCP/IP详解卷一。
tprax634 2010-05-03
  • 打赏
  • 举报
回复
我们的网络情况是由路由器决定的啊,路由器缓冲区拥挤,我们也同样受影响啊?你说它有丢包机制,好,可是服务器向路由器发送包的数目总是那么多,那路由器凭什么判断什么时候丢包?我们的程序能够影响路由器让它丢包?
让我们的程序sleep了,服务器不是照样继续发送请求的数据给我们吗?速度没变啊,至少从服务器到路由器这一段速度是不可能的啊。
hhf 2010-05-03
  • 打赏
  • 举报
回复
就是sleep嘛,但你钻牛角尖了,路由器塞满了不关你的程序什么事的,路由器有自己的丢包处理机制,tcp也有相应的滑动窗口应付拥塞。
尹成 2010-05-03
  • 打赏
  • 举报
回复
tprax634 正解!

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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