我知道局域网中的计算机如何相互通信(所有以太网/MAC 地址/NAT 等内容),但我想知道,互联网路由器如何通信?它们是否连接到某种大型局域网?使用什么协议来传送数据包(例如 IP 和 BGP 数据包)?
答案1
路由器形成某种形式的网格。每个路由器都与其他几个路由器相连(可能在 LAN 上,但通常只是直接连接,可能是长距离连接,如海底电缆、T 载波或光纤链路),并且每个路由器都知道自己连接到哪个路由器。每个路由器通常有多个 IP 地址,每个链接到它拥有的另一个路由器都有一个 IP 地址。
路由器通常运行路由协议,这些协议允许它们发现邻居(它们直接连接的路由器)连接到什么。这些协议包括 IS-IS、BGP、EIGRP、RIP、OSPF 等。它们也可以静态地跟踪这些信息;路由协议是一种省力设备,它允许网络管理员在发生更改(无论是故意的还是由于故障)时自动维护路由表。因此,每个路由器都连接到其他几个路由器,并且大致知道什么在哪里。这些信息可以通过互联网过滤;路由器也会相互告知邻居的邻居,因此可以构建一个视图,了解每个方向(大致)可到达的所有事物。路由器还会跟踪事物之间的距离(之间有多少个路由器,以及路径可能有多快),以便于高效地将数据包发送到目的地。
一些路由器(例如您的 LAN 网关或某些 ISP 的路由器)只有几条路由:它们作为网关的 LAN,以及通常用于互联网其余部分的一条默认路由(在 IPv4 网络中,这是 0.0.0.0/0,或“默认”路由)。因此,它们知道发往其 LAN 的数据包朝一个方向(从 LAN 接口出去),而发往其他地方的数据包朝另一个方向(从 WAN 接口出去)。
其他具有更多链路和两侧更多网络的路由器在一定程度上扩展了此概念。它们将知道每个方向上的前缀(正式名称为 IP 地址的网络号部分)是什么,并沿着该路由发送数据包(因此得名)。它们以这种方式将数据包相互中继,直到到达目的地;如果无法到达目的地,则有几种机制可以丢弃该数据包并显示它已被丢弃。
因此,您的数据包到达您的 ISP,可能是从您的 LAN 路由器,该路由器知道 Internet 所处的接口,并以此方式发送数据包。每个后续路由器都会查看目标地址,并根据其路由表确定它属于哪个网络,以及它去往哪个方向;它会知道以某个数字开头的地址位于某个特定其他 ISP 的“方向”,并以此方式发送数据包(为此,在每一跳都会更改第 2 层信息,因此 MAC 地址(例如)将在每一跳都会更改)。最终,它会到达与您尝试访问的主机位于同一网络上的路由器,并到达该目的地。
这些中继步骤中的每一个都称为一个跃点。您可以使用traceroute
实用程序(tracert
在 Windows 上)查看此工作,但由于 ICMP 过滤非常普遍,您可能看不到所有跃点。
答案2
答案3
是的,BGP 用于在 AS 之间交换路由信息。从而实现互联网上的成功路由。这是使用 TCP(当然还有 IP)实现的,然后您在 AS 内使用 IGRP 和 OSPF。
答案4
该协议是 TCP/IP,它们通过 WAN 连接而不是 LAN 连接。路由协议只是路由器使用的“语言”。在基本网络中,您可以配置相同的路由协议,以便路由器可以相互理解,这些路由协议称为内部网关协议。互联网中使用的“语言”称为 BGP,称为外部网关协议。