首先,我分享一下百度经验上面的讲解:
- 区别一
- 路由器可以为局域网自动分配IP和虚拟拨号
- 交换机只是用来分配网络数据的
- 区别二
- 路由器在网络层,根据IP地址寻址,路由器还可以处理“TCP/IP”协议,交换机不行
- 区别三
- 交换机在数据链路层,根据MAC地址寻址
- 区别四
- 路由器可以把一个IP分给多个主机使用,对外IP相同
- 交换机可以把很多主机连接起来,对外的IP不同
- 区别五
- 路由器可以提供防火墙,交换机不提供这个功能
- 区别六
- 交换机是做扩大局域网接入点的,可以让局域网连进更多的电脑
- 路由器是用来做网间连接,也就是用来连接不同的网络的
交换机的转发原理
交换机通电后会自动建立一个端口地址表,也叫MAC地址表它会记录每个设备的MAC地址机和哪个端口连接的,它会有自动学习功能,一开始如果没有地址,每次经过交换机的信息,它都会读取并记录下送信息过来的设备端口MAC地址,如果下次有其他设备送信息给该设备,就直接送达了。
最普遍的情况下,转发原则是这样的:交换机收到一个以太帧数据,它自己会比对交换机已经学习到的端口地址表,如果表里存在端口地址,直接在对应的端口转发出去。如果表里不存在,则会向剩下的每个端口(除送信息过来的端口)广播发送一条相同的信息。
- 交换机A和交换机B,现在如果从主机01发一个数据到主机03,设定的前提是,交换机A和B的地址表都是空白。
- 那么首先,从主机01发数据到交换机A,交换机A在收到数据以后,先识别出主机的MAC地址是01(假设是01因为每台设备都是16进制的唯一地址),端口号是1。
- 交换机A查找自己MAC地址表,发现没有(如果有就直接转发),交换机A向其他的所有端口广播。
- 交换机B收到数据信息后,识别并学习源地址和过来的端口号。
- 交换机B查看地址表,发现没有,记录并向除了端口3以外的两个端口发送广播包。
- 最后的情况是,主机02会收到数据一次,不是自己的,丢弃数据;主机03收到数据一次,正好是自己的,接收数据;主机04也收到一次,丢弃。
路由器的工作原理
举个例子:
- 主机A准备发数据给主机B。
- A将B的IP地址连同数据一起,以数据包形式发送给路由器R1。
- 路由器R1收到数据包后,先从数据中读取到B的IP地址,然后根据路径表计算发往B的最优路径。
- 比如路径为:R1->R2->R5->B;并将数据包发往路由器R2。
- 路由器2重复路由器1的工作,并将数据包转发给路由器5。
- 路由器5同样取出目的地址,发现目的地址就在自己的网段上,于是将该数据包直接交给主机B。
- 主机B收到主机A的信息,一次完整的通信宣告结束。
当作笔记记录一下,参考了一些资料:
https://jingyan.baidu.com/article/7908e85cda65e1af481ad2c4.html
微信公众号:第一监控