集线器、交换机和路由器都是计算机网络设备,而且非常容易混淆。那么集线器、交换机和路由器有什么区别呢?
用简单的话说,就是智商高低。路由器最智能、集线器最傻。
集线器、交换机和路由器都允许你把一个或多个计算机连接到其他计算机、网络设备等。每个都有多个网络接口,允许你插入网线接入网络,但是内部原理不同。下面我们分别看一下这些设备。
集线器
集线器的英文是hub,它是这三个设备中最便宜、最简单的网络设备。它的工作任务很简单,就是把一个网口的数据包转发到其他网口。就像水管工使用的三通,不知道有没有n通。
我画了一个简单的图示:
上面是发送给A的数据包,但是集线器不理会哪个是A,它把数据包广播给所有计算机。各个计算机机自己决定哪个包是发送给自己的。
当A计算机发送数据包时:
连接到集线器的每个计算机“看到”其他计算机可以“看到”的数据包。集线器只管傻傻的分发数据就行了,不理会数据该怎么发。它是连接小型网络最简单的方法。
交换机
交换机的英文是switch-开关。交换机干了集线器可以干的事,但是它更高效。它通过“留意”数据包是怎么交换的,它就可以知道数据包的目的地是哪里。
交换机在刚启动时,它傻傻的啥也不知道,就如同一个集线器:
就在接收到第一个数据包时,它实际上就“学”到了一些东西。它知道这个连接来自那里,这样在A回复是,它知道这个数据该发送给谁:
在发送这个数据包时,它又“学”到了新东西。它知道了A在哪,下次再有发给A的数据包,它就不需要广播给其他计算机了:
这样网络流量就不用发送给每个端口了。在繁忙的网络上,交换机比集线器要快的多。感觉交换机上了小学。
路由器
路由器的英文是router,是三个中最复杂最智能的网络设备。路由器大小不一,从小到4网口的路由器到到驱动互联网大型路由器。
你可以把路由器理解为一种可编程的计算机,对数据的操控能力更强。
路由器干了集线器可以干的事;消费级的路由器至少支持如下两个附加功能:
- DHCP
- NAT
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议。一个连接到路由器的设备会向路由器发送请求:“快给爷分配一个IP”,DHCP相当配合,相当和谐(内网IP)。路由器也会向ISP运营商询问IP地址,也就是你连接互联网的IP地址(外网IP)。
NAT(Network Address Translation,网络地址转换)-路由器在外网/内网间转换数据包的IP地址。当计算机A发送数据包时,使用的IP地址是192.168.0.100;当数据包经过路由器时,它把本地IP地址转换为外网IP地址;当然,它会记录这个转换,当有回应A的数据包时,路由器知道这个包要发送给计算机A。
NAT的一个缺点的是,外网不能直接和内网计算机建立连接,中间挡了一个路由器。
互联网上使用的路由器还会判断A->B的最佳路径。