计算机网络系列文章,点击上方合集↑

1. 交换机的原理
假设有A、B、C、D四台计算机,他们要相互发送数据。
如果没有交换机,计算机A要与其它三台相互发送数据,那就需要给他们每台之间牵一条网线。如下图:


❝
用于数据转发的交换机
❞
如果有很多台计算机,每台之间相互之间都连线是不可能的,就需要一种设备来交换数据,所有的计算机只需要连接到这一台交换设备就可以了。这个设备就是交换机。


-
交换机有很多网孔,可以用于多台计算机相互交换数据。
2. 交换机转发数据流程
❝
交换机根据 MAC 地址表查找 MAC 地址,然后将信号发送到相应的端口。
❞
假设我们有一个交换机,内部有四个端口,分别连接着四台计算机 A、B、C 和 D。这四台计算机分别有唯一的 MAC 地址,如下所示:
-
计算机 A:MAC 地址为 AA:AA:AA:AA:AA:AA -
计算机 B:MAC 地址为 BB:BB:BB:BB:BB:BB -
计算机 C:MAC 地址为 CC:CC:CC:CC:CC:CC -
计算机 D:MAC 地址为 DD:DD:DD:DD:DD:DD
假设计算机 A 想要向计算机 D 发送一个数据包。
-
首先,计算机 A 将数据包发送到与交换机的某个端口上。交换机的 MAC 地址表中还没有任何记录,因此它并不知道计算机 D 的确切位置。
-
交换机会查看数据包中的目标 MAC 地址,也就是 DD:DD:DD:DD:DD:DD。
-
交换机会将数据包发送到其所有其他端口(除了接收数据包的端口),这被称为广播。
-
计算机 D 收到广播数据包,并注意到数据包的目标 MAC 地址是自己的 MAC 地址。因此,它接收并处理该数据包。
-
计算机 D 向交换机发送一个带有自己的 MAC 地址的数据包,以让交换机知道它所在的端口。
-
交换机接收到计算机 D 发送的数据包,并更新它的 MAC 地址表。现在,交换机知道了计算机 D 的 MAC 地址和所在的端口。
-
当计算机 A 再次想要向计算机 D 发送数据时,交换机在查找 MAC 地址表后会直接将数据包转发到连接着计算机 D 的端口上。这样,数据包不会发送到其他端口,也不会造成冲突。
可以看到交换机通过学习和维护 MAC 地址表,能够准确地将数据包转发到目标设备所在的端口,实现了点对点的数据传输,避免了冲突和广播。这样的转发过程大大提高了网络的性能和效率。
3. 路由器
❝
路由器根据“IP 地址”判断转发目标。
❞
每个路由器都保存一个路由表,传输数据的时候会在路由表中进行查询,以此判断转发目标。

A公司的张三要给B公司李四发送数据:
-
张三的计算机①查询本机路由表,路由表只有默认的网关,也就是本公司的路由器②,②的IP地址是 192.168.1.1
,①将数据转发到②。 -
路由器②查询路由表,并没有查询到目标地址,然后②就将数据转发到默认网关,②的默认网关是③。②一般是家庭或公司路由器,它是通过拨号上网运营商自动分配的一个公网IP地址 58.42.230.02
(此IP不是固定IP,它可能会变)。 -
③的IP地址是 58.42.230.65
,这是一个公网固定IP。③是移动运营商的大型路由器,它的路由表记录了有几十万条路由信息,这些路由信息记录了它能到达的目标IP地址,通过查询路由表我们将数据转发到④,因为④能到达我们的目的地。 -
④表明中间可能会经过多个路由器节点。 -
⑤跟③一样也是一个运营商的大型路由器,一般可能是一个区或者县的大型路由器。⑤查询路由表将数据转发到⑥。 -
⑥是一个家庭或公司路由器,它是通过拨号上网运营商自动分配的一个公网IP地址 14.19.104.04
。⑥中有个外网和内网转换表(NAT技术),通过查询NAT表将数据转发到我们的目的地。
上述看似是①发送数据到⑦,其实是②发送数据到⑥,①->②和⑥->⑦是通过网络地址转换技术进行转发数据的。
❝
NAT(Network Address Translation)网络地址转换
❞
A公司的张三给自己公司的王五发送数据:
-
张三的计算机①查询本机路由表,路由表只有默认的网关,也就是本公司的路由器②,②的IP地址是 192.168.1.1
,①将数据转发到②。 -
路由器②查询路由表,发现目标IP地址的下一个节点就是 192.168.1.11
,直接转发给⑧。 -
王五计算机收到数据
4. 查看本机路由信息
通过route print
命令可以查看自己电脑的路由表信息。

5. 打印请求链路
通过tracert
命令可以查看本机到服务器的请求链路,如下:
tracert www.baidu.com
我们查询本机到百度的请求链路。

6. 交换机和路由器的区别
路由器负责网络之间的通信和转发,而交换机负责内部网络中的数据转发和通信。
-
工作层次不同:路由器在网络层(例如,IP层)上工作,负责根据目标IP地址将数据包从一个网络转发到另一个网络;而交换机在数据链路层(例如,以太网层)上工作,负责根据目标MAC地址将数据包从一个端口转发到另一个端口。
-
转发方式不同:路由器使用IP地址来进行数据包转发,通过查找路由表将数据包从源网络转发到目标网络。它可以在不同的网络之间实现数据包的跨网传输。而交换机使用MAC地址来进行数据包转发,通过学习和维护MAC地址表将数据包从一个端口转发到另一个端口,实现设备之间的点对点通信。
-
跨网络能力不同:路由器可以将数据包从一个网络转发到另一个网络,实现不同网络之间的互联。它可以在不同的网段之间进行网络间通信,并实现子网划分和网络隔离。而交换机只能在同一个网络中传输数据包,不能跨越网络边界。
-
广播和组播处理不同:路由器会阻止广播和组播数据包跨越不同的网络传播,以防止网络拥塞。它会使用路由协议来管理广播和组播流量。而交换机默认会将广播和组播数据包转发到所有连接的端口上,使其出现在整个网络中的所有设备上。
7. 结语
通过一个个路由器和交换机构成整个网络


关注微信公众号:“小虎哥的技术博客”,让我们一起成为更优秀的程序员❤️!
更多内容点击以下合集:
原文始发于微信公众号(小虎哥的技术博客):计算机网络中的交换机和路由器
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/169544.html