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