0:00:00.120,0:00:07.950 [歌曲倒计时:7,6,5,4,3,2,1][br]互联网:封包、路由和可靠度 0:00:07.950,0:00:13.650 嗨,我的名字是林恩。我是Spotify的软件工程师 0:00:13.650,0:00:18.970 我会第一个承认,我经常认为互联网的可靠性是理所当然的。 0:00:18.970,0:00:23.170 然而,互联网的信息量巨大,要如何可靠地将每个数据传递给你呢? 0:00:23.170,0:00:29.080 假设您想播放Spotify的歌曲,你的计算机 0:00:29.080,0:00:33.989 似乎是直接连接到Spotify服务器,Spotify会在专用线路上直接向你发送歌曲。 0:00:33.989,0:00:39.410 但实际上这不是互联网的运作方式。如果互联网是由直接的专用连接构成, 0:00:39.410,0:00:43.640 那么随着数百万用户的加入,就不可能保持工作。 0:00:43.640,0:00:48.050 特别是不能保证每根电线和电脑都能正常工作。 0:00:48.050,0:00:53.350 相反地,数据是以更不直接的方式在互联网上传播。 0:00:53.350,0:01:01.210 很多年前,在20世纪70年代早期,我的合作伙伴 0:01:01.210,0:01:06.870 Bob Kahn和我开始着手设计我们现在称之为互联网的东西。 0:01:06.870,0:01:14.790 Bob和我有责任和机会设计互联网协议及其架构。 0:01:14.790,0:01:20.000 因此,我们始终坚持参与互联网的增长和发展,直到现在也在继续。 0:01:20.000,0:01:25.500 信息从一台计算机传输到另一台计算机的方式非常有趣。它不需要 0:01:25.500,0:01:30.900 遵循固定的路径,事实上,你的路径可能会在计算机中转换为计算机对话。 0:01:30.900,0:01:36.100 互联网上的信息在我们所说的信息包中,从一台计算机传到 0:01:36.100,0:01:42.050 另一台计算机,一个信息包在互联网上从一个地方传播到另一个地方, 0:01:42.050,0:01:46.360 就像你在车里从一个地方到另一个地方一样。 0:01:46.360,0:01:51.420 根据交通拥堵或道路状况,每次旅行时, 0:01:51.420,0:01:59.000 您可能会选择或被迫采取不同的路线到达同一个地方。 0:01:59.000,0:02:03.980 就像你可以在一辆车里传送各种各样的东西一样, 0:02:03.980,0:02:10.359 很多数字信息可以用IP包发送,但也有一些限制。 0:02:10.359,0:02:14.200 如果你需要将航天飞机从其建造地点移动到发射的位置,该怎么办? 0:02:14.200,0:02:18.780 因为航天飞机不能装在一辆卡车里,所以需要将它分解成碎片,用一队卡车运输。 0:02:18.780,0:02:23.099 他们都可以采取不同的路线,并可以在不同的时间到达目的地。 0:02:23.099,0:02:28.109 但一旦所有的碎片都到达后,你就可以重新组装成完整的航天飞机并准备发射。 0:02:28.109,0:02:34.329 在互联网上,细节同样起作用。 0:02:34.329,0:02:40.090 如果你要将非常大的图像发送给朋友或上传到网站, 0:02:40.090,0:02:44.819 图像可能由数以百万计的1和0比特组成,数量太大,无法在一个包中发送。 0:02:44.819,0:02:49.810 由于它是计算机上的数据,图像可快速被分解成 0:02:49.810,0:02:55.719 数百甚至数千个称为数据包的较小的部分。 0:02:55.719,0:03:00.230 与汽车或卡车不同,这些数据包没有司机,也没有选择路线。 0:03:00.230,0:03:04.650 每个包都有它的来源和去向的互联网地址。互联网上, 0:03:04.650,0:03:09.430 称为路由器的特殊计算机就像流量管理器一样,可以使数据包顺利通过网络。 0:03:09.430,0:03:15.239 如果一条线路拥堵,个别的数据包可能通过互联网通过不同的路线, 0:03:15.239,0:03:20.370 它们可能在稍微不同的时间到达目的地,甚至出现故障。 0:03:20.370,0:03:26.569 我们来谈谈“路由器”是如何工作的。作为互联网协议的一部分, 0:03:26.569,0:03:31.169 每个路由器都跟踪用于发送数据包的多条路径, 0:03:31.169,0:03:37.079 并且它根据数据包的目的IP地址为每个数据选择最便宜的可用路径。 0:03:37.079,0:03:42.120 在这种情况下最便宜并不意味着成本,而是时间和政治等非技术因素和公司之间的关系。 0:03:42.120,0:03:47.499 通常,数据传输的最佳路径并不一定是最直接的。 0:03:47.499,0:03:53.150 具有路径的选项会使网络容错。这意味着 0:03:53.150,0:03:57.700 这意味着即使出现可怕的错误,网络也可以继续发送数据包。 0:03:57.700,0:04:04.849 这是互联网关键原则的基础:可靠性。 0:04:04.849,0:04:09.349 现在,如果你想请求一些数据而不是所有的数据都交付了呢? 0:04:09.349,0:04:14.829 假如你想听一首歌。你如何100%确定所有数据都将被传送,以便歌曲完美播放? 0:04:14.829,0:04:21.440 这就需要介绍你最好的朋友TCP(传输控制协议)了。 0:04:21.440,0:04:26.530 TCP以数据包的形式管理所有数据的发送和接收,可以把它想象成一个有保障的邮件服务。 0:04:26.530,0:04:31.669 当你在设备上请求歌曲时,Spotify会将一首歌分解为多个数据包。 0:04:31.669,0:04:37.210 当数据包到达时,TCP会进行完整清点并回复以确认收到每个数据包。 0:04:37.210,0:04:42.840 如果所有数据包都在那里,TCP会签收您的交付,您就成功收到了歌曲。 0:04:42.840,0:04:54.819 如果TCP发现某些数据包丢失,它将不会签收 0:04:54.819,0:04:59.930 否则你的歌听起来不会悦耳,或者歌曲的某些部分可能会丢失。 0:04:59.930,0:05:05.930 对于每个丢失或不完整的数据包,Spotify将重新发送它们。 0:05:05.930,0:05:13.370 一旦TCP验证了该歌曲请求的多个数据包的传递,您的歌曲就会开始播放。 0:05:13.370,0:05:19.220 TCP 和路由器系统的优点在于它们是可扩展的。他们可以使用8到80亿台设备。 0:05:19.220,0:05:23.449 实际上,由于这些容错和冗余原则, 0:05:23.449,0:05:28.069 我们添加的路由器越多,互联网就越可靠。 0:05:28.069,0:05:34.379 更棒的是我们还可以在不中断它服务的情况下增长和扩展互联网。 0:05:34.379,0:05:39.280 互联网由数十万个网络和数十亿台物理连接的计算机和设备组成。 0:05:39.280,0:05:44.360 这些组成互联网的不同系统相互连接,相互通信, 0:05:44.360,0:05:51.289 并协同工作,这是因为在互联网上传输数据的方式是一致的。 0:05:51.289,0:05:56.000 计算机设备,或者互联网上的路由器,帮助所有的数据包到达目的地, 0:05:56.000,0:06:02.789 如果有必要的话,在那里重新组装。这种情况每天发生数十亿次, 0:06:02.789,0:06:08.889 你和其他人是否正在发送电子邮件,访问网页,进行视频聊天, 0:06:08.889,0:06:13.870 使用移动应用程序,或互联网上的传感器或设备 0:06:13.870,0:06:14.910 相互通信时。