假设您有一个从套接字读取的程序.如何将下载速率保持在某个给定阈值以下?
在应用程序层(使用Berkeley套接字样式API),您只需观察时钟,以您想要限制的速率读取或写入数据.
如果你平均只读取10kbps,但是源发送的数量超过了这个,那么最终它和你之间的所有缓冲区都将填满.TCP/IP允许这样做,并且协议将安排发送器减速(在应用层,可能所有你需要知道的是,在另一端,阻塞写入调用将阻塞,非阻塞写入将失败,并且异步写入将无法完成,直到您已阅读足够的数据才能允许它.
在应用层,您只能是近似值 - 您不能保证硬限制,例如"任何一秒内不超过10 kb将通过网络中的给定点".但是如果你跟踪你收到的内容,从长远来看你可以获得平均水平.