为什么有时候下载东西一开始很快,后来就越来越慢?

为什么有时候下载东西一开始很快,后来就越来越慢?

凌波默,初来乍到 请多指教

答主考完试来更新了~先说正事

1、关于 P2P

P2P 可以简单理解为好多个原回答过程的叠加,但因为每个点的起点,网络环境不同,叠加状态并不同步,故速度也不能确定,使用 P2P 下载的文件(通常都是很大的文件)在下载后期速度变慢的原因主要是【可供分享的资源越来越少】即,已经全部下载完成,拥有所有资源的人一定比刚下载了一部分,拥有一部分已下载资源的人少,所以越到后面分享资源的人越少,所以越慢。可以理解为下载过程中的靡不有初鲜克有终。

2、关于 TCP

然而并不是所有的下载过程都是 P2P 下载,例如题设“下载安卓开发不同版本的 SDK”场景,就是简单的 TCP 下载过程,另外一些常见的场景包括几乎所有的浏览器下载。关于百度云是不是 P2P 下载,有的文件是有的文件不是,P2P 下载的文件有标记。

2.1 TCP 版本问题

TCP 有 30+ 个版本不过大致原理与拥塞控制过程都差不多,可能的差别就是拥塞窗口从 1 还是从 2 开始,加法增加的门限是 24 还是 30 之类,不能将这么多个版本一一列举,但基本的过程都是遵循 AIMD 模型,即加法增加乘法减小。

2.2 现在早就不用 TCP 协议了?

TCP 拥塞控制依旧是最广泛使用的拥塞控制策略,没有之一,也一直有版本的更新。

2.3 加法增加的门限?

自己设定的门限,也与版本有关

2.4 若不丢包会一直增加下去么?

还与接受区域的缓存大小有关,也就是说人家发给你这么多内容,你也得有缓存区域放得下才行,实际上的接收速度是拥塞窗口与缓存窗口两者中的较小那个值。

2.5 一个拥塞窗口传输的文件大小?

差不多 1500KB 左右,也就是一兆多点儿

再说非正事

1、计算机网络及格了么?

这个知识点虽然计算机网络也学到过,但是关于为什么越来越慢是通信网老师讲的,计算机网络 92,通信网 A~

2、刚学完就出来卖弄?

已经毕业了,这个属于基础课,后面学习的是其他方向

最后

欢迎讨论拒绝上来就喷

对于上来就喷的评论:喷完就走真刺激,这种情况答主只能双击 666 了~最烦不说正事只是喷喷喷的人,除了戾气以外什么都没贡献。

对于认真讨论与反驳的答主:谢谢大家的讨论,自己的姿势水平也提高了~根据各位的评论又完善了一下回答,原答案不删,因为没错~

最后的最后

很开心能够引起讨论与关注

很开心能够帮助到一部分人

很开心各位非专业能看懂我的回答

——————————————————————以下原回答:

不是套路!!!是 TCP 协议的拥塞控制机制导致的!

要理解 TCP 的拥塞控制机制,还得从古老的七层模型说起……

其中 TCP 协议应用于传输层,下载就是传输的一种,而 TCP 传输的速度基本是这样的

其中横坐标是传输次数,纵坐标是“拥塞窗口”数,就是要传输的报文需要先进入这个窗口才能发出去,简单的理解成传输速度就可以了

假设我要在百度云上下载一个文件,以之为例解释一下这个过程。

(A→B 段)

百度云:不知道当前网络环境怎么样,路上堵不堵……不管了发一个报文试试。

我:收到啦收到啦!

百度云:诶呦不错那再发两个试试~

……

百度云:行了行了差不多了可以慢点儿增加了

这一段,起点学名叫做慢开始,后面叫指数增大

(B→C 段)

百度云:加一个

我:收到啦

百度云:再加一个

我:收到啦

百度云:再加一个

我:……

百度云:? 诶好像堵了= =

这一段,学名叫做,拥塞避免算法,即,加法增大

(C→D 段)

百度云:算了从头开始

这一段叫做,乘法减小,开始新的慢开始,指数增大,但是,只增大到刚刚的一半,就进入拥塞避免阶段啦!(D→E 段,E 纵坐标是 C 的一半)

以上是 TCP Tahoe 版本的传输过程(也是主要考试的内容),然而实际上这个版本太基础了,已经废弃不用了,实际使用的是红线的版本,叫做 TCP Reno(但是这个不考)

红色版本与蓝色版本的区别就是,红色版本的乘法减小并不是直接减到 1 然后重新慢开始,而是采用了效率高一些的“快恢复快重传”算法,也就是乘法减小至原来的一半(C→F 段,F 是 C 的一半)然后直接开始加法增大。这样可以看到比原来的蓝色版本稍微快了一点。

但下载还是很慢啊怎么办,关于这点老师的说法是,自己手动暂停一下,再重新开始下载,就又能享受一次第一次的指数增加加法增加的速度,不然后面一直减半减半减半就会越来越慢越慢越慢………………

以上都是与 TCP 协议有关的理论因素,其他因素还包括加速器啊下载器啊什么的

最后,这篇回答叫做:“为什么有时候下载东西一开始很快,后来就越来越慢”回答暨通信网理论基础课程复习笔记