我在使用curl时遇到了问题,从1.28.1版到1.37.1版--同样的问题发生在Linux环境中,在使用命令行时,我同时运行以下命令:
curl -o /dev/null "http://example.com/short_video.mp4" -o /dev/null "http://example.com/short_video.mp4" &
curl -o /dev/null "http://example.com/short_video.mp4" &
curl -o /dev/null "http://example.com/short_video.mp4" &
curl -o /dev/null "http://example.com/short_video.mp4" &问题是-它开始成功下载,但通常,在高速互联网连接,一个下载卡在零速度,整个过程被卡住.唯一有帮助的是使用限速:
curl --speed-limit 5 -o /dev/null "http://example.com/short_video.mp4" &然后它就会认识到下载速度很低,并且停止了下载,但是我想知道如何避免这种情况。
发布于 2016-05-29 13:27:30
经过一项小的研究后,它似乎只是偶尔发生在任何单一的连接,(即使没有使用多个连接),它似乎是一个错误的TCP流控制引用为:愚蠢窗口综合症:syndrome。
引用:
当发送应用程序缓慢创建数据、接收应用程序缓慢地消耗数据或两者兼而有之时,滑动窗口操作可能会出现严重问题。如果有此问题的服务器无法处理所有传入数据,则请求其客户端减少每次发送的数据量( TCP数据包上的窗口设置)。如果服务器继续无法处理所有传入数据,则窗口变得越来越小,有时甚至到了发送的数据小于数据包报头的程度,使得数据传输效率极低。
我注意到过了很长一段时间(2分钟或更长时间),它又开始下载了。
https://stackoverflow.com/questions/29192920
复制相似问题