很多人在聊路由器,然后就神话一些路由器的性能,电子产品、数码产品别弄这么多玄学的事情,玄学的东西太多了,除了给穷人或者是乍富的土豪一点安慰感,也就没太多的实质意义。
今天咱们来聊聊什么是路由器。
很多人对路由器的概念仅仅是家里宽带商赠送的光猫,其实这是一个复合设备,并不能算作传统意义上的路由器。
传统意义上的路由器只有路由功能,什么交换功能、网桥功能、Wi-Fi功能等等的我们能用到的功能也就一概不包括。
大多数情况下谈到路由,我们都会从因特网开始聊起,再有水准的一些作者会提到阿帕网。概念上没太大问题,毕竟ARPANET是最早实施TCP/IP体系的完整网络,随着它的扩展和发展最后形成了我们现在用的因特网(Internet)。这也就是大家现在口中说的“上网”了。
但路由器的概念提出得更早,早在1966年,英国国家物理实验室的唐纳德·戴维斯就提出了分组交换的概念,并设计实施了NPL网络,在其中设计了一台接口计算机,用来实现了不同网络接口的转发功能。
这是世界上第一台路由器的设计,但当时叫了一个更朴实无华的名字Gateway(门路、网关),这也是为什么我们在手动配置网络的时候,填写这个网络的路由器IP地址的位置上出现 Default gateway(默认网关)的由来了。
这就是一个网络上的历史遗留名词,从上世纪六十年代一直叫到了现在。当然了,后期“网关”、“路由器”两者都有各自的更细化的发展,这些词汇也都不是当初的意思了。现在的“网关”主要作用是汇集离散网络中的数据到另外一个离散网络中。在家里最常见的就是ITO网关了,例如飞利浦hue的桥接器:
这就是典型网关设备,将Zigbee网络和TCP/IP网络做了跨接。
当然,现在很多代理网关、存储网关是可以工作在ISO网络的第七层的,这些也是网关设备。
路由则向着另一个更专精的方向发展,它起到的作用就是进行流量引导。
这就是大家对路由器的一个误解点了,路由——是流量引导的工具,并不是网络接入设备。当然了,现在很多人的家里只有一条宽带入户,也就难怪会有人觉得路由器是一个“接入设备”了。
真正的路由器是指在网络上连通两个不同网络的设备:
在大部分情况下,路由器是成对出现的,也就是一个路由器连接到另外一个路由器,在路由器一侧是一个网络,在路由器的另一侧是一个路由,这样两个不同的子网就可以被路由器所连接起来。
而我们如果从电脑应用上看,路由器、链路其实是透明的,我们所见的也就是应用程序对应用程序端到端的数据流动或者是主机对主机的数据传输。
为了达成这一个目的,路由器本身就是以路由表为依据做了一个数据包转发功能。以iN的路由来做个例子:
在路由表中我们可以根据最基本的网络划分来决定数据流向哪个端口,这是最早路由器就已经实现的设计。
当我们在IP网络上所请求的目标地址并不是在子网之内,这个数据包就会发送到路由器所在的IP地址上(默认网关)。然后路由器在接到这个数据包的时候根据路由表来确定数据是发往哪个网络端口。
例如在我的路由器上,出现了172.16、10.10.10、10.10.20、10.10.30、10.0.100……这些地址段,172.16这个子网是内网,主要是iN家里的设备;“10.”的网络是接入到家中的路由器中其他路由器的地址;路由表中还有0.0.0.0/0的地址这是指家里网络之外的任何IP地址。
路由器在接收到数据包的时候就会按照数据包中的目的地址信息将数据流引流到相应的网络端口中。
例如一个目的地址是202.99.96.68的数据包就会引流到PPPOE的端口上进行正常的Internet访问。或者一个目的地址为10.0.100.1的数据包就会引流到Internet-WAN的端口上对光猫进行控制。
所以说,你看到的路由器真正的功能仅仅是基于路由规则对数据进行分流。
在家里的千兆路由器和在企业机房里面的千兆路由器虽然都提供千兆端口,但是价格可能相差几十倍。原因则在于你家里的路由器运算速度不高,很难处理大型的路由表(当然一般家里也用不着);而企业路由器本身的处理性能很高,可以快速地处理大量数据包,降低数据传输延迟。这是家用设备很难企及的高度。
那么如何加快家里的网络速度呢?这里就得说一下网络设备的功能分离的操作了。
一个简单的企业网络拓扑图是上面的画法,路由器是一个独立设备,下联一个交换机,再从交换机连接到企业中的电脑上。
对比企业,家用的宽带路由器承载了光纤网关、桥接器、路由器、交换机、Wi-Fi等一系列的功能。
原本就比较羸弱的CPU要处理大量的和路由无关的功能,这种情况下网速不慢才怪。但是要说罪魁祸首并不是在路由一边,而是在家用路由器集成的“交换机”上。
“交换机”的工作是干嘛?是根据MAC地址表将数据转发到对应的交换机端口。
和路由器查路由表一样,又是一个“查表”的过程。
地址解析协议(Address Resolution Protocol,ARP)是一个通过解析网络层地址来找寻数据链路层地址的网络传输协议,它在IPv4中极其重要!
你访问家里的NAS,你知道NAS的IP地址是 192.168.1.250,但以太网并不知道,需要从IP(网络层)到MAC(数据链路层)再做一个转化,这就是ARP协议,在以太网上工作的交换机就是依据MAC地址将数据转入到合适的交换机端口上。如果在MAC地址表中没有记录,就会全网广播一下,看看那个设备会回应这个MAC地址。交换机处理MAC地址的转换是基于数据包的,每个数据包都要查表-传输。尤其是你内网流量比较大的时候,这种任务就相当繁重了。
回头看家用路由,所有繁重的任务都是由一个设备来完成的——这不好吧???
如果是千兆带宽,不如将路由器下面的一个千兆接口再接入一个交换机,来处理家中内部的通讯。这时候家里的内网数据根本不会触及到上一层的路由器上,也就不会加重路由器的工作负担,你的网速自然而然就可以提高了。
当然了,你有更多的设备,有更大的内网数据传输需求那么你就需要更精确地规划你的“网络系统”。“网络系统”——网络并不是牵几根网线加上几个无线就可以叫“网络系统”的。你的规划、分层最终都会决定你的网络使用体验。
例如这样接,路由器性能再高也就仅仅是一个路由器,剩下的任务还是让交换机来做,各司其职;从另外一个角度来说,内网数据又不出屋子,干嘛到路由器上去转悠呢?
明白这个道理,你再去看那么多口的软路由,是不是瞬间就觉得香了?
人家软路由上的那么多网口,你以为真的是用来接入局域网设备的吗?
话说,真正正经的路由器,那可能有那么多的局域网口呢?
#路由器的工作原理你知道吗?#