网络是怎样连接的(三十)—— 运营商之间的网络连接

469 阅读5分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第28天,点击查看活动详情

运营商之间的连接

顺着网络包传输的路径,我们到达了运营商内部,接下来我们来看看网络包在运营商内部是如何传输。

同一运营商

首先,如果最终目的地 Web 服务器和客户端是连接在同一个运营商中的,那么 POP 路由器的路由表中应该有相应的转发目标。运营商的路由器可以和其他路由器交换路由信息,从而自动更新自己的路由表,通过这一功能,路由信息就实现了自动化管理。

于是,路由器根据路由表中的信息判断转发目标,这个转发目标可能是 NOC,也可能是相邻的 POP,无论如何,路由器都会把包转发出去,然后下一个路由器也同样根据自己路由表中的信息继续转发。经过几次转发之后,网络包就到达了 Web 服务器所在的 POP 的路由器,然后从这里被继续转发到 Web 服务器。

不同运营商

下面我们再看看服务器的运营商和客户端的运营商不同的情况。

这种情况下,网络包需要先发到服务器所在的运营商,这些信息也可以在路由表中找到,这是因为运营商的路由器和其他运营商的路由器也在交换路由信息。

总之,对于互联网内部的路由器来说,无论最终目的地是否属于同一家运营商,都可以从路由表中查到,因此只要一次接一次按照路由表中的目标地址来转发包,最终一定可以到达 Web 服务器所在的 POP。这样一来,我们就可以把包发到任何地方,包括地球的另一面。

运营商之间的路由

从上面我们可以看到只要路由表中能够查询的到,我们就可以把包发到任何地方。但是这些路由信息是如何写到路由表中的呢?其实很简单,只要让相连的路由器告知路由信息就可以了。只要获得了对方的路由信息,就可以知道对方路由器连接的所有网络,将这些信息写入自己的路由表中,也就可以向那些网络发送包了。

获得对方的路由信息之后,我们也需要将自身的路由信息告知对方。这样一来,对方也可以将发往我们所在子网的包转发过来。这个路由信息交换的过程是由路由器自动完成的,这里使用的机制称为 BGP(Border Gateway Protocol,边界网关协议

根据所告知的路由信息的内容,这种路由交换可分为两类。一类是将互联网中的路由全部告知对方。比如运营商 A 将互联网上所有路由都告知运营商 B,则运营商 B 不但可以访问运营商 A,还可以访问运营商 A 后面的运营商 C、D 和 E。然后,通过运营商 A 就可以向所有的运营商发送包。像这样,通过运营商 A 来发送网络包的方式称为 转接

另一种类型是两个运营商之间仅将与各自网络相关的路由信息告知对方。这样,只有双方之间的网络可以互相收发网络包,这种方式称为非转接,也叫 对等

参考文档

  • 《网络是怎样连接的》—— 户根勤

往期文章