科普:路由器和交换机的区别
首先还是先说说这两个产品的定义吧:
 
路由器(英语:Router,又称路径器)是一种电讯网络设备,提供路由与转送两种重要机制,可以决定数据包从来源端到目的端所经过的路由路径(host到host之间的传输路径),这个过程称为路由;将路由器输入端的数据包移送至适当的路由器输出端(在路由器内部进行),这称为转送。
交换机(Switch)意为“开关”是一种用于电(光)信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路。最常见的交换机是以太网交换机。其他常见的还有电话语音交换机、光纤交换机等 。
简单点说两者区别:
 
1.路由器根据路由表转发数据,路由表中含有网段和接口;交换机根据mac地址表转发数据,mac地址表中含有mac地址和接口;
 
2.交换机连接的是同一网络段(不懂就去看Google吧)的计算机;路由器连接的是不同网段的。数据要想通过交换机,则发送方的计算机必须给这个数据加上发送端和接收端这双方的mac地址和接口;
 
3.路由器工作在网络层,交换机工作在数据链路层。
 
4.正如定义所说路由器有路由和转送的功能,交换机只有转发功能但是因为路由器相对比较智能,他在转送的时候还可以选择最佳路劲。
 
补充说明:因为现在的交换机做的越来越智能,上面所说的区别3和区别4这两个区别也越来越模糊,因此不做特意强调。
 
计算机A想给计算机B发送数据:
 
1.如果这两个计算机在同一个网段,假设他们通过交换机S1连接,通信过程如下:
 
a.计算机A广播信息:“有没有人知道B的mac地址,我想给B发送消息”。
 
b.交换机S1收到消息后发现自己的mac地址表中没有记录计算机A和B的相关信息,就先通过这则消息把A的端口号和mac地址记录在它的mac地址表中,然后继续把这个消息广播给这个网段内的所有计算机,当B收到消息后就回复消息给交换机S1,交换机S1就根据这则消息记录下到达B1的端口号和mac地址,然后回复消息给A.
 
c.A知道了B可以接受这则消息的端口号和B的mac地址,就把这些信息封装在他所要发送的消息中,经交换机发给B.
 
2.如果这两台计算机不在同一个网段(设为10和20网段,10网段连接A计算机,20网段连接B计算机),假设通过的路由器为R1,则通信过程如下(省略通过交换机的过程):
 
a.因为A在同一网段内的广播信息无法穿越路由器直接到达B,这个时候路由器就能发挥它的路由和转发功能了,当广播的消息到达R1时,路由器根据自己的路由表去查找,发现了到达B的ip地址和端口,就回复消息给A说:“我知道到达B的最优路径,你把消息先发给我就可以了,接下来,你等着就行”。
 
b.A收到了从R1回复的消息就把要发送给B的消息连同R1的mac地址和端口号一起封装,然后发给R1,R1收到消息后改变这则消息的原始端口和IP地址(原始端口和IP地址是A的端口和IP)为自己所处网段为10的IP和端口P0,然后把这则消息连同P0和自己的mac封装起来,查找自己的路由表,找到了到达B的最佳路径后就把刚才封装的信息发给B,路由器的这个转换过程详情请看地址解析协议ARP。