别折腾路由器了,换一个好点的交换机吧! 路由器到底能不能代替交换机?(路由器、交换机与网关)

2022-04-02 11:38:25 浏览数 (2)

这里有两台电脑通过一根网线将两台电脑连接起来,设备之间可以相互传输数据。现在增加一台电脑,总数变为三台,任意两台电脑想要传数据,需要三根网线,并且每台设备需要两个网口。再增加一台电脑,四台设备实现任意两台互联,每台电脑需要三个网口,并且需要六根网线。随着设备数量的增加,对网口和网线的数量要求呈几何级增长。比较理性的朋友肯定会发现,这么搞下去,成本实在太高,太费钱。

为了省下网口和网线的钱,KAPANAN公司在1989年发明了第一台网络交换机,这台交换机可以识别各个设备的MAC地址,也就是电子设备的身份证。实现点对点收发数据。每台设备只需要一个网口一根网线,连接到交换机接口上,当设备发送和接受数据时,交换机就会依据MAC地址自动把数据发送到指定设备。大大简化了网络链路,降低了成本。 交换机的英文名称是Switch,直译过来是开关。国内的专家觉得“开关”这个名词非常不直观,把开关打开,这里的开关是指电源开关呢?还是交换机呢?而交换机这个名字听起来更强大,看名字就了解实际功能。(交换机字面意思:用于交换数据的机器)这里海翎光电的小编要吐槽一下Kalpana公司了,你知不知道你起的名字,给多少美国儿童带来了噩梦啊?如下图:小朋友生日时想要一Switch,结果收到的却是交换机。哈哈哈。

说起路由器,想必大家都不会陌生。每个家庭都会至少有一个路由器来连接网络设备。但是还有小伙伴提到,交换机是用来做什么的?它与路由器有什么区别呢?我们经常听到的网关和路由又是什么意思呢?

交换机的主要功能就是把数据包发送到正确的位置。交换机相当于邮递员,根据数据包中的目标mac地址,找到它对应的物理端口。一台交换机有很多个端口,它们都有自己的编号(如下图)。计算机的网卡通过网线连接到交换机的网口上,这个端口就是一个确定的物理位置。我们只要知道某个网卡的mac地址在哪个端口上,我们就能正确的把数据包发给它。

图示武汉海翎研制的工业交换机每个端口的编号图示武汉海翎研制的工业交换机每个端口的编号

所以在交换机中有一张端口与mac地址的映射关系表,交换机维护这张映射关系表,想要与某个mac地址通信时,只需要来查询一下这个mac在哪个端口上,然后从对应的端口发送出去就可以了。

每一包数据都会有两个mac地址,一个是发送方的mac地址,称为源mac。另一个是接收方的mac地址称为目标mac。交换机收到一包数据后,首先要把这包数据的源mca与接收端口进行绑定,然后交换机要根据目标mac查找,从哪个端口把数据包发送出去。

这个时候就会出现两种情况。第一种情况是mac地址表中查询到关联的端口,则直接从关联端口发出。第二种情况是mac地址表中没有查询到关联的端口,则向除了接收端口之外的所有端口群发。这种行为称之为泛洪。如果目标mac地址在这个网络中则它一定能收到群发的数据包。如此运行一段时间后,通过交换机的mac地址表,就可以找到网络中的所有网卡设备。

由此可见,交换机只会关心数据包中的mac地址,而不会关心IP地址。mac地址在TCP/IP协议中,处于第二层数据链路层。

我们再来看一下路由器,我们知道路由器有两种接口,一种是LAN口,一种是WAN口。LAN口可以有多个,用来接家庭网络设备。比如台式机,手机,笔记本。其中,手机和笔记本是通过WIFI连接到路由器的设备。也相当于连接到了LAN口上。WAN口只有一个用来接入运营商网络。连接到互联网中。 如果把路由器的WAN口忽略,只用LAN口。其实路由器就是一台交换机。那考虑到WAN口呢?这里我们就要引入一个概念就是网关。网关是干什么的呢?为了说明网关的作用,我们需要先了解一下子网是如何划分的。我们把IP地址和子网掩码按位相与,与的意思就是1与几就是几,而0与几都是0。 我们常用的子网掩码,255.255.255.0前3个字节也就是前24位全是1后8位全为0。所以按位相与的结果,一定是这个IP地址的前三个字节不变,而最一个字节是0。

比如192.168.1.10与255.255.255.0等于192.168.1.0。 我们把IP地址与子网掩码相与之后的结果相同的两个IP认为是在同一个子网,也就是说IP为162.168.1.10,子码掩网为 255.255.255.0的这张网卡与另一个192.168.1.X的网卡,一定是在同一个子网当中。 因为子网掩码都是连续的1和连续的0。所以我们通常用1的数量来表示子网掩码。 比如255.255.255.0就是24。我们用IP/子网掩码来表示一个网络。 比如192.168.1.0/24表示的网络中拥有255个IP地址。 所以如果想扩大子网中IP地址的数量,我们只需要把子网掩码调小。 如果想减少子网中IP地址的数量,我们只需要把子网掩码调大就可以了。

知道了子网的概念,那子网有什么意义呢?因为tcp/ip协议规定,不同子网之间是不可以直接通信的。如果要通信需要通过网关来进行转发。网关上有两张网卡分别配置了属于两个子网的IP地址。可以在两个网络之间转发数据包,这样我们就拥有了一个连接了两个子网的网络。

我们举一个简单的例子:子网1中的计算机a发送数据包时,首先计算机a会根据目标IP判断是否跟自己属于同一个子网。如果是同一个子网则直接从网卡发出。如果不是同一个子网,则需要把数据包的目标mac地址改为网关mac,然后发送给网关。 网关拿到这一包数据后,再通过路由表查询到这一包数据属于子网2,网关修改目标mac地址为计算机b的mac地址,修改源mac为自己的mac,然后从子网2的网卡发出,以上出现了多次根据目标ip判断数据包应该如何发送的行为,我们就称之为路由。

路由器有一个WAN口接入互联网,多个LAN接入本地网络。他们就分别属于不同的子网,所以从内网访问互联网就是跨网络的行为,这时候就需要路由器来担任网关的角色。他的行为就叫路由。

细心的小伙伴可能已经发现问题了,两个不同家庭中的计算机可能都是192.168.1.10这个IP地址。如果按照上面所说的情况发送到互联网上,那互联网上不就会存在无数个相同的IP地址了?这确实是一个问题,欢迎大家在评论区讨论交流。

0 人点赞