对于路由器我想大家都不会陌生,在家庭中都会有一个路由器来连接网络设备,它长这个样子,
还有的小伙伴可能要问了,交换机是什么呢?它与路由器有什么区别?我们经常听到的网关和路由又是什么意思?接下来我们将一一解释这些东西。
(1)交换机:它的主要功能就是把数据包发送到正确的地方去,在我的上一篇文章中讲到的写信例子中戳一戳,交换机相当于邮递员,根据数据包中的mac地址,找到对应的目标端口,把我们的信件送到正确的地方。一台交换机有多个端口,它们都有对应的编号,计算机的网卡通过网线连接到交换机上的端口,这个端口就是一个确定的物理地址,我们只要知道某个网卡的mac地址在哪个端口上,我们就能把正确的把数据包发给它,所以在计算机中有一张记录端口与mac地址对应的映射关系表,我们称之为mac地址表,交换机维护着这张映射关系表,想要与某个mac地址通信时,只要查询一下这张表就能找到对应mac地址的端口,然后把信息从对应端口发出去即可。我们知道每个数据包都有两个mac地址,一个时发送方的mac地址称为源mac地址,一个接受方mac地址称为目标mac地址,交换机在接收到数据后会将接收端口和源mac地址进行绑定,然后交换机要根据目标mac地址查找,从哪个端口把数据发送出去,这时候会出现两种情况,第一种情况在mac地址表中找到了目标mac地址关联的端口,把数据发送出去。第二种情况没有在mac地址表中找到,则向除了接收端口的所有端口群发,这种行为叫做泛洪,如果在网络中找到了该目标端口则进行数据发送,通过一段时间后,该网络中的所有设备都会被找到,如此可见在交换机中只关心mac地址不关心IP地址,mac地址在tcp/ip协议中处于第二层数据链路层,所以交换机也被称为二层设备。
(2)路由器:我们知道路由器有两种端口,一种时LAN口,一种时WAN口,LAN口一共有多个,可以用来连接家庭里的网络设备,比如手机、台式机、笔记本等,其中手机和笔记本时是通过WiFi连接,其本质也是通过LAN口连接。WAN口只有一个,用来连接运营商网络,以连接到互联网中,如果把路由器的WAN口忽略掉,就相当于一个交换机,如果考虑WAN口,这时候我们就要引入网关的概念。
(3)网关:要了解网关,首先我们要知道子网是如何划分的,我们把子网掩码和IP地址按位相与,我们常用的子网掩码255.255.255.0,前三个字节也就是前24位全都是1,后八位全为0,假如我们的IP地址为192.168.4.171,和子网掩码按位相与的结果就是192.168.4.0,我们把前三个字节相同的IP地址划分为一个子网,由于子网掩码是连续的1和0组成,所以我们把1的数量表示掩码,我们通过ip/掩码表示一个网络,比如192.168.4.0/24表示的网络中用于255个IP地址,所以如果想扩大子网中的IP数量需要通过把子网掩码的数量调小,反之调大。我们知道了子网的概念之后有什么用呢,因为tcp/ip协议规定属于一个子网的IP地址可以随意通信,属于不同子网的IP地址只能通过网关来进行转发,一个网关拥有两张网卡,分别配置了两个子网的IP地址,这样就可以在两个网络中转发数据包,这样我们就拥有了连接了两个子网的网络。我们来举一个简单的例子,计算机a向计算机b发送数据包时,计算机a首先根据目标IP判断计算机b是否和自己处于同一个网络,如果属于则直接从网卡发出,如果不是则把数据包的目标mac地址改为网关的mac地址发送给网关,网关收到数据包后会查询路由表查到这包数据是要给另一个网络中的计算机b,网关修改目标mac地址为计算机b的mac地址,并且把源mac地址修改为网关的mac地址,然后从另一个网络的网卡发出。