计算机网络中的交换机和路由器

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

计算机网络中的交换机和路由器

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 发送一个数据包。

  1. 首先,计算机 A 将数据包发送到与交换机的某个端口上。交换机的 MAC 地址表中还没有任何记录,因此它并不知道计算机 D 的确切位置。

  2. 交换机会查看数据包中的目标 MAC 地址,也就是 DD:DD:DD:DD:DD:DD。

  3. 交换机会将数据包发送到其所有其他端口(除了接收数据包的端口),这被称为广播。

  4. 计算机 D 收到广播数据包,并注意到数据包的目标 MAC 地址是自己的 MAC 地址。因此,它接收并处理该数据包。

  5. 计算机 D 向交换机发送一个带有自己的 MAC 地址的数据包,以让交换机知道它所在的端口。

  6. 交换机接收到计算机 D 发送的数据包,并更新它的 MAC 地址表。现在,交换机知道了计算机 D 的 MAC 地址和所在的端口。

  7. 当计算机 A 再次想要向计算机 D 发送数据时,交换机在查找 MAC 地址表后会直接将数据包转发到连接着计算机 D 的端口上。这样,数据包不会发送到其他端口,也不会造成冲突。

可以看到交换机通过学习和维护 MAC 地址表,能够准确地将数据包转发到目标设备所在的端口,实现了点对点的数据传输,避免了冲突和广播。这样的转发过程大大提高了网络的性能和效率。

3. 路由器

路由器根据“IP 地址”判断转发目标。

每个路由器都保存一个路由表,传输数据的时候会在路由表中进行查询,以此判断转发目标。

计算机网络中的交换机和路由器

A公司的张三要给B公司李四发送数据:

  1. 张三的计算机①查询本机路由表,路由表只有默认的网关,也就是本公司的路由器②,②的IP地址是192.168.1.1,①将数据转发到②。
  2. 路由器②查询路由表,并没有查询到目标地址,然后②就将数据转发到默认网关,②的默认网关是③。②一般是家庭或公司路由器,它是通过拨号上网运营商自动分配的一个公网IP地址58.42.230.02(此IP不是固定IP,它可能会变)。
  3. ③的IP地址是58.42.230.65,这是一个公网固定IP。③是移动运营商的大型路由器,它的路由表记录了有几十万条路由信息,这些路由信息记录了它能到达的目标IP地址,通过查询路由表我们将数据转发到④,因为④能到达我们的目的地。
  4. ④表明中间可能会经过多个路由器节点。
  5. ⑤跟③一样也是一个运营商的大型路由器,一般可能是一个区或者县的大型路由器。⑤查询路由表将数据转发到⑥。
  6. ⑥是一个家庭或公司路由器,它是通过拨号上网运营商自动分配的一个公网IP地址14.19.104.04。⑥中有个外网和内网转换表(NAT技术),通过查询NAT表将数据转发到我们的目的地。

上述看似是①发送数据到⑦,其实是②发送数据到⑥,①->②和⑥->⑦是通过网络地址转换技术进行转发数据的。

NAT(Network Address Translation)网络地址转换

A公司的张三给自己公司的王五发送数据:

  1. 张三的计算机①查询本机路由表,路由表只有默认的网关,也就是本公司的路由器②,②的IP地址是192.168.1.1,①将数据转发到②。
  2. 路由器②查询路由表,发现目标IP地址的下一个节点就是192.168.1.11,直接转发给⑧。
  3. 王五计算机收到数据

4. 查看本机路由信息

通过route print命令可以查看自己电脑的路由表信息。

计算机网络中的交换机和路由器

5. 打印请求链路

通过tracert命令可以查看本机到服务器的请求链路,如下:

tracert www.baidu.com

我们查询本机到百度的请求链路。

计算机网络中的交换机和路由器

6. 交换机和路由器的区别

路由器负责网络之间的通信和转发,而交换机负责内部网络中的数据转发和通信。

  1. 工作层次不同:路由器在网络层(例如,IP层)上工作,负责根据目标IP地址将数据包从一个网络转发到另一个网络;而交换机在数据链路层(例如,以太网层)上工作,负责根据目标MAC地址将数据包从一个端口转发到另一个端口。

  2. 转发方式不同:路由器使用IP地址来进行数据包转发,通过查找路由表将数据包从源网络转发到目标网络。它可以在不同的网络之间实现数据包的跨网传输。而交换机使用MAC地址来进行数据包转发,通过学习和维护MAC地址表将数据包从一个端口转发到另一个端口,实现设备之间的点对点通信。

  3. 跨网络能力不同:路由器可以将数据包从一个网络转发到另一个网络,实现不同网络之间的互联。它可以在不同的网段之间进行网络间通信,并实现子网划分和网络隔离。而交换机只能在同一个网络中传输数据包,不能跨越网络边界。

  4. 广播和组播处理不同:路由器会阻止广播和组播数据包跨越不同的网络传播,以防止网络拥塞。它会使用路由协议来管理广播和组播流量。而交换机默认会将广播和组播数据包转发到所有连接的端口上,使其出现在整个网络中的所有设备上。

7. 结语

通过一个个路由器和交换机构成整个网络

计算机网络中的交换机和路由器

计算机网络中的交换机和路由器

关注微信公众号:“小虎哥的技术博客”,让我们一起成为更优秀的程序员❤️!

更多内容点击以下合集:

深入编程原理系列合集

Java 基础系列合集

Java23种设计模式合集

Spring Boot 系列合集

Spring Cloud 微服务系列合集

领域驱动设计系列合集

原文始发于微信公众号(小虎哥的技术博客):计算机网络中的交换机和路由器

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/169544.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!