[歌曲倒计时: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亿台设备。 实际上,由于这些容错和冗余原则, 我们添加的路由器越多,互联网就越可靠。 更棒的是我们还可以在不中断它服务的情况下增长和扩展互联网。 互联网由数十万个网络和数十亿台物理连接的计算机和设备组成。 这些组成互联网的不同系统相互连接,相互通信, 并协同工作,这是因为在互联网上传输数据的方式是一致的。 计算机设备,或者互联网上的路由器,帮助所有的数据包到达目的地, 如果有必要的话,在那里重新组装。这种情况每天发生数十亿次, 你和其他人是否正在发送电子邮件,访问网页,进行视频聊天, 使用移动应用程序,或互联网上的传感器或设备 相互通信时。