1. 首先让我们来看一下什么是交换机?
首先对于路由来说,它的主要功能就是把数据包发送到正确的位置。
通俗的讲,交换机就像快递员,而它的任务就是根据目标的mac地址,找到它对应的物理端口。
让我们先理解一下端口与设备mac地址的关系,通常一个交换机有许多个端口,计算机的网卡通过网线连接到交换机的网口上,所以在交换机中,有一张端口与mac地址的映射关系表,(mac地址表),它负责维护这张表,所以这就简单了,当我们想要与某个mac地址通讯时,我们只需要找到它对应的端口就好了。
让我先来说一下交换机传输数据的过程,首先当交换机收到一包数据后,会先将这包数据的源mac地址与接受端口绑定起来,然后交换机根据目标mac地址来找到要从那个端口发出去,
- 当mac地址表中有这个mac地址时,交换机直接就从这个端口发出去就好了
- 当mac地址表中没有这个mac地址时,交换机则向除了源端口的所有端口群发(泛洪),接着就由此更新mac表。
所有交换机只关心mac地址,mac地址在TCP/IP协议中,处于第二层,所以交换机也被称为二层设备。
2. 接着让我们来看一下什么是路由器
路由器由两种接口,
1.LAN口(用来连接设备,台式机直接通过网线连入LAN口,而手机等其它设备是通过wifi连接到路由器的设备,也相对与连接到了LAN口上)
2.WAN口(用来接入运营商网络)
如果忽略WAN口,那么路由器就是一台交换机。
加上WAN口,那么就是一个网关
让我们先引入子网这个概念
当我们把IP与子网掩码相与之后得到的一个结果,如果两个ip地址与子网掩码相与之后得到的结果相同,那我们则称它们处在同一个子网中,在TCP/IP协议中规定,两个子网之间不能通讯,所以这个时候就需要网关,网关上有两张网卡,分别配置了两个子网的ip,这样就可以在两个子网之间转发数据,(网关就像一座桥,两个子网就像两个地域,网卡配置的ip就像桥的具体位置,两个地域通讯时,都就靠这座桥来通讯)
接着让我们看一下数据包的发送过程,子网1中的计算机a发送数据包时,首先a会先根据目标ip判断对方是否和自己在同一个子网中,
1.如果在的话,就直接发生数据
2.如果不在,则需要把目标mac地址,改为网关mac地址,发送给网关,网关拿到这个数据包之后,查询路由表,查询到这一数据属于子网2,然后修改目标mac地址为计算机b的地址,修改源mac为自己的mac,然后从子网2的网卡发出。
所以说,交换机,负责子网内部通讯,而路由,负责子网与子网之间的通讯。