我很菜很疑惑,到底应该怎么办到限制下载速度。下载速度不是由服务器的上行速度,和ISP入口的下行速度决定的吗?那么我们如何插手呢?无论我们怎么做?路由器还是继续收一样多的包啊。。?因为服务器的上行速度和ISP的下行速度是不会变的啊。。路由器收一样多的包,那么该拥挤还是拥挤,空闲还是继续空闲啊。我记得有人说过,sleep了某个流量很大的进程可以起作用。但是就算sleep了,服务器发过来的包还是照样塞满路由器缓冲区,不是吗?那到底怎么实现?还是我理解错了?请大家指点指点
调试欢乐多
让我们的程序sleep了,服务器不是照样继续发送请求的数据给我们吗?速度没变啊,至少从服务器到路由器这一段速度是不可能的啊。
答:是的。那路由器凭什么判断什么时候丢包?
答:各路由器实现不同,单cisco的路由器就有好几种qos队列,详细请查看cisco文档或相关设备文档。我们的程序能够影响路由器让它丢包?
答:你的程序接收慢,路由器队列满,自然就有影响。服务器不是照样继续发送请求的数据给我们吗?
答:是的。速度没变啊,至少从服务器到路由器这一段速度是不可能的啊。
答:理解错误,tcp本身就有拥塞避免机制,细节本人也描述不好,为免误导,请查看TCP/IP详解卷一。
outer 路由器缓冲区 inter---- 网卡缓冲区-----程序
当程序不断被sleep,网卡缓冲区的数据读取速度变慢,路由器inter缓冲区等待不到网卡缓冲区队列空闲的时候,就会开始丢弃关于到达这张网卡的包。
你是这个意思吗?我这样理解对吗?