需要路由器和IP地址

网络工程 路由 路由器 IP地址 层2 第3层
2021-07-31 19:42:50

我不知道我的研究是否足够,但我在网上找不到答案。

我的问题是为什么不使用网桥而不是路由器。我们知道网桥可以连接两个不同的网络。使用网桥(或交换机),我们可以使用 MAC 地址来识别主机,将数据从一个网络传输到另一个网络。

接下来,我们说路由器选择可能的最佳路由并将数据发送到该线路。这只是算法,因此可以在网桥中实现诸如(距离向量路由或链路状态路由)之类的算法。然后网桥也可以选择最佳路径,而且仅使用 MAC 地址进行操作。

现在这不会质疑路由器的存在吗?如果路由器不存在,那么 IP 地址也不存在。

基本上,我的问题是为什么需要额外的 IP 地址来识别设备。我也知道人们说 IP 是逻辑寻址,而网桥不在网络层等中运行。所以我的问题变成了当第 2 层可以做这些事情时,为什么确切需要网络层。第 2 层和第 3 层之间的显着区别是什么,以至于第 3 层必不可少?

我很清楚我遗漏了一些要点。我只需要用对 IP 地址、路由器和网络层的需求的强烈推理来澄清我的疑虑。

4个回答

假设您连接到具有 3 个端口的网桥。一个端口连接到您的主机;一个连接到你西边的网络,最后一个连接到你东边的网络。

现在假设您想将数据发送到具有第 2 层地址的设备。你的网桥如何知道是将数据包转发到东方还是西方?显然,您的网桥将在其转发表中查找 MAC 地址并将数据包转发到正确的接口。

现在想象你在一个全球网络中。您是否要将世界上的每个 MAC 地址都保留在您的网桥上?打开或关闭设备时会发生什么?如果他们移动?您将如何找到未知设备?你会淹没整个地球吗?您无法跟踪全球网络上的每台设备。

简而言之,第 3 层地址提供路由信息。第 3 层地址具有传达位置和身份的层次结构。IP 地址的网络部分告诉您主机在哪里(拓扑),并且可以汇总该信息,因此您的 PC 不需要知道如何将数据转发到 Internet 上的每个主机。这种扩展路由的能力使全球互联网成为可能。

我们知道网桥可以连接两个不同的网络。使用网桥(或交换机),我们可以使用 MAC 地址来识别主机,将数据从一个网络传输到另一个网络。

那不是真的。网桥是工作在 LAN 上的透明的第 2 层设备。它对其他 LAN 或第 3 层(例如 IP)一无所知,并且没有层次结构。LAN 上的每个主机都是对等体,所有广播流量都会到达并中断 LAN 上的每个主机,即使流量不是针对该主机的,并且 LAN 可以增长到足够大,以至于它们会因为所有广播流量而中断. (LAN 也称为广播域。)

路由器需要将流量从一个 LAN 传输到另一个 LAN,因为第 2 层没有不同 LAN 的概念。您需要使用第 3 层来区分 LAN。Internet 路由表非常庞大,有超过 600,000 条路由到不同的网络,但是第 2 层需要为每个网络上的所有主机提供单独的地址,这不切实际。

LAN 上的安全性很少,但在第 3 层的 LAN 之间添加安全性非常容易。

第 2 层将使您从同一 LAN 上的一台主机连接到另一台主机,但您需要第 3 层才能从一个 LAN 到达另一个 LAN,您需要第 4 层才能到达主机内的进程。

需要意识到的是,我们今天都知道和喜爱的网络堆栈并不是作为一个单一的连贯整体设计的。设计 IP 和以太网的团队是不同的团队,他们设计不同的标准来实现不同的目标。

以太网不能扩展,有几个原因。

  1. 以太网地址不反映主机的网络位置。因此,网桥必须保留已知网络地址的完整列表。
  2. 以太网具有广播(和有效广播的“多播”),并且运行在以太网上的许多协议实现都依赖于它们。随着网络的增长,更大的广播在流量中所占的比例越来越大。
  3. 用于定位主机的数据平面学习技术产生了几个问题。首先,它需要一个不可扩展的无环拓扑。其次,这意味着部分单播流量最终会被视为广播流量(这让我们回到第 2 点)

为什么它会受到这些限制?因为从根本上说,它从来不是为构建大型网络而设计的。这些问题是否可以通过足够的努力来解决?绝对但人们没有,因为我们已经拥有 IP。


IP 从一开始就被设计为将一系列不同的网络互连成一个大型网络。因此,它从一开始就是围绕明确分配的地址设计的,这些地址将反映主机所在的网络。它从一开始就设计为允许多条路径。这并不是说没有/没有成长的烦恼,但 IP 从根本上是针对大型网络的。

是的,每个数据包中有两个源地址和两个目标地址可能会被视为浪费,如果您从头开始将其设计为一个连贯的整体,这可能不是您设计网络的方式,但这不是我们当前网络堆栈的方式成为。它是由不同团体出于不同原因设计的两个协议,相互叠加。

默认情况下,在第 3 层网络之间,您不会收到来自其他网络的任何 ARP。

这首先是安全保护,因此您应该使用特定的 VLAN 编号作为您的指纹。