目录
初识交换机和路由器
左为路由器,右为交换机
交换机
交换机的前身是集线器,集线器是物理层的设备,有很多接口,当一台计算机A想发消息给计算机B,消息到达集线器,集线器就无脑把信息广播给所有连接它的计算机BCDEF...然后由计算机们自行筛选信息,是给自己的就接收,不是发给自己的就丢弃。
这样造成了网络资源的浪费。如果集线器能智能一点,把信息只发给对的计算机就好了,于是发明了交换机,交换机就是在集线器的基础上更加智能一点了,能把信息只发给对应的 计算机。又因为它这一点智能,所以它在数据链路层。
交换机能够连接多个设备并构建一个局域网。
交换机内部维护着一张MAC地址表,记录了MAC地址与端口的对应关系。
数据包携带两个MAC地址:源MAC和目标MAC。交换机接收数据包后,首先会将源MAC与接收端口绑定,并查找目标MAC对应的端口。若找到对应端口,则直接发送;若未找到,则向除接收端口外的所有端口群发(泛洪)。通过这一过程,交换机能逐渐构建完整的网络设备地图。
值得注意的是,交换机仅关注MAC地址,而忽略IP地址。
当有几十台电脑的时候可以设置很多台交换机,这时交换机还能应付,如果有几百台电脑的话,交换机记录不了如此多的映射关系,就捉襟见肘了。
所以又有了路由器
路由器
路由器台独立拥有MAC地址的设备,并且可以帮我把数据包做一次转发,把它定义在了网络层 。路由器的每一个端口,都有独立的MAC地址。
路由器有两种接口,一种是wan口,一种是lan口。
lan口可以有多个,用来连接家庭网络设备,比如台式机,手机,笔记本,其中手机和笔记本是通过WiFi连接到路由器的设备,也相当于连接到了lan口上。wan口只有一个 ,用来接入运营商网络,以连接到互联网中。
如果把路由器的wan口忽略,只用lan口,其实路由器就是一台交换机;
主要区别
1、路由器在网络层,路由器根据IP地址寻址,路由器可以处理TCP/IP协议,交换机不可以,交换机根据MAC地址寻址。交换机在数据链路层。
2、路由器可以把一个IP分配给很多个主机使用,这些主机对外只表现出一个IP。交换机可以把很多主机连起来,这些主机对外各有各的IP。
3、交换机分割冲突域,但不分割广播域,而路由器分割广播域。由交换机连接的网段,仍属于同一个广播域,广播数据包会在交换机连接的所有网段上传播,这时会导致广播风暴和安全漏洞。而连接在路由器上的网段会被分配到不同的广播域。路由器不会转发广播数据。
4、路由器提供防火墙的服务,交换机不能提供该功能。集线器、都是做端口扩展的,就是扩大局域网(通常都是以太网)的接入点,也就是能让局域网可以连进来更多的电脑。路由器是用来做网间连接,也就是用来连接不同的网络。
5.交换机是用来连接局域网的,路由器是用来连接互联网的(也可以连接多个局域网)
工作流程
真实情况下,两个主机不是通过网线直连的,而是通过一系列的交换机或路由器来进行数据转发的。
经过交换机或者路由器,都要涉及到封装分用【五层网络协议(封装和分用)-CSDN博客】
只不过,封装分用的程度不一定是到应用层
经典交换机来说,就只需要封装分用到数据链路层即可(交换机需要通过以太网帧头中的目的mac来知道接下来如何转发)
经典的路由器来说,就只需要封装分用到网络层即可(路由器需要通过IP报头中的目的IP来知道具体接下来如何转发)
如果是交换机:
A发送消息,到达交换机。交换机就会把光电信号转换成以太网数据帧二进制数据,交给数据链路
1.取出光电信号转成以太网数据帧
2.交换机的数据链路层会对数据进行解析
这个解析过程,一方面要取出载荷部分,另一方面,就要解析到帧头中的关键信息
3.根据帧头中的信息,决定下一步把数据往哪里进行发送。根据这个情况再进一步的构造出新的以太网数据帧
4.把这个新的数据继续通过物理层发送出去
如果是路由器
情况稍微复杂一点点,就是封装分用到网络层
1.先是物理层拿到光电信号,转成二进制数据交给数据链路层
2.路由器的数据链路层对上述数据进行解析,拿到载荷,交给网络层(IP协议)
3.IP协议又会进一步对这个数据进行解析,取出载荷,也要解析这里的报头
取出数据,IP协议重新进行封装
4.继续交给数据链路层,继续加上帧头帧尾
5.这个数据再交给物理层,转成光电信号,继续传输
上述过程是经典的交换机和路由器,如果是现实中的情况就更加复杂