什么叫路由?

路由器的英文是 Router,也就是「找路的工具」。找什么路?寻找各个网络节点之间的路。

换句话说,路由器就像是快递中转站,包裹会经过一个个的中转站,从遥远的地方寄到你家附近,数据包也是一样。

路由器是连接两个网络的硬件设备,承担寻路功能,是网络的大门,因此,路由器又叫做网关设备(Gateway)。

路由表

路由器和交换机一样,也有自己的小本本,这个路由表上记载了到各个网络节点之间的路,会记录数据来源、相应的路由条目以及下一跳。

路由表就相当于路由器的导航,路由器只需要按照路由表的指示走就可以了。当然前提是,路由表中存在匹配该数据包目的 IP 地址的路由条目。路由表会周期性更新,当网络拓扑发生变化时也会更新,不用担心走错路。

路由器收发数据包的流程

路由器在收发数据包的时候会先查看路由表,如果路由表里有匹配项,就会把数据包交给下一跳。如果没有匹配项,就会直接丢弃数据包,然后告诉主机,这个目的地不可达。

直连、静态路由、动态路由

路由条目的获取来源有很多种,比如说直连、静态路由和动态路由。

直连,也就是路由器的直接邻居。路由器会自己去认识邻居,然后记录下来。

当然,也可以通过手动添加的方式告诉路由器目的网段的路径,也就是静态路由,适合网络规模比较小的场景。但是当网络拓扑发生变化,或是规模扩大的时候,配置和维护的成本就会很高。

这时候就需要结合动态路由,让路由器通过动态的方式来学习。在大型网络中,往往采用这种动、静路由相结合的方式进行部署。

三层寻址

上期讲解的「二层寻址」,大家还记得吗?二层寻址就是交换机根据 MAC 地址,在物理层进行寻址。

三层寻址就是指路由器根据 IP 地址,在网络层进行寻址。

  路由器三层寻址流程

当主机想要发送数据的时候,首先会查看目的地是否和自己在同一个网段,如果在同一个网段就会让交换机进行二层转发。

如下图所示,PC1 要给 PC2 发送数据,就会通过交换机来完成。

如果不在同一个网段,主机会把数据包交给自己的路由器,路由器再根据目的 IP 查询自己的路由表,如果有匹配的条目,则交给下一跳,没有就丢弃。

如下图所示,PC1 要给 PC3 发送数据,发现 PC3 和自己不在同一个网段,就会把数据包交给路由器 A,再根据路由表的条目转发给路由器 B -> C,最后通过交换机 C 送达 PC3。

寻路原则

既然路由器是负责找路的,那条条大路通罗马,哪条大路最近呢?

默认情况下,路由的查询遵循最长匹配原则,也就是掩码越长、越精确,路由器就会优先选择那条路。

然后考虑路径开销,比如说带宽、管理距离、度量值等。也就是如果从这条路走,要花上多少时间和金钱。绝大部分数据通信行为是双向的,考虑流量的时候,还要关注流量的往返,从这条路去,也得从这条路回来,回来的时候没路了,这也不行。

路由查询的行为是逐跳的,到目标网络沿途的每个路由器都必须有关于该目标网段的路由信息。简单来说,数据包每经过一个路由器,路由器就会告诉它下一跳是谁,该往哪个方向走。

如何选择路由器?

路由器选型可以考虑这几个因素:带宽需求/转发性能、端口数量、带机量。

比如说家里拉了千兆宽带,那么路由器一定得是千兆路由器,还要满足千兆 NAT 转发的性能。顺带一提,运营商配的光猫是自带路由功能的,如果没有特殊需求,普通家庭一般够用了。

一般家用场景,路由端口用的不太多,可以通过交换机补充。大部分商用场景,4-12 口也就够了,再多的话,相信大部分企业会选择三层交换机。

带机量是一个很重要的指标,我们一般会考虑并发用户,还有用户的业务类型。

以 UniFi 的网关设备为例:USG 可以到 100 并发,普通家庭或小微企业,都足够用了;USG-Pro-4 带机量可以到 1000 并发,中小企业需求基本可以满足;如果还有更高需求,可以使用 UDM-Pro。

欢迎点赞收藏转发

           

                     —— End ——

路由器的工作原理详解相关推荐

  1. nginx配置文件及工作原理详解

    nginx配置文件及工作原理详解 1 nginx配置文件的结构 2 nginx工作原理 1 nginx配置文件的结构 1)以下是nginx配置文件默认的主要内容: #user nobody; #配置用 ...

  2. sync.Map低层工作原理详解

    sync.Map低层工作原理详解 目录 为什么需要sync.Map?适合什么场景? sync.Map内部实现基本原理及结构体分析 sync.Map低层工作原理 1. 为什么需要sync.Map?适合什 ...

  3. ASP.NET页面与IIS底层交互和工作原理详解 (二)

    第三回: 引言 Http 请求处理流程 和 Http Handler 介绍 这两篇文章里,我们首先了解了Http请求在服务器端的处理流程,随后我们知道Http请求最终会由实现了IHttpHandler ...

  4. camera (13)---智能手机双摄像头工作原理详解:RBG +RGB, RGB + Mono

    智能手机双摄像头工作原理详解:RBG +RGB, RGB + Mono 由于双摄技术的快速发展,目前已经衍生出了几种不同的双摄硬件和算法配置解决方案.不同手机厂商可能有不同的双摄配置,比如华为荣耀P9 ...

  5. ASP.NET页面与IIS底层交互和工作原理详解(一)

    第一回: 引言 我查阅过不少Asp.Net的书籍,发现大多数作者都是站在一个比较高的层次上讲解Asp.Net.他们耐心.细致地告诉你如何一步步拖放控件.设置控件属性.编写CodeBehind代码,以实 ...

  6. 有刷直流电机工作原理详解

    有刷直流电机工作原理详解 来源:网络整理• 2018-05-10 09:00 • 56380次阅读 有刷直流电机被广泛用于从玩具到按钮调节式汽车坐椅的应用中.有刷直流 (Brushed DC,BDC) ...

  7. 晶体三极管结构及其工作原理详解

    晶体三极管基本概述 晶体管是一种与其他电路元件结合使用时可产生电流增益.电压增益和信号功率增益的多结半导体器件.因此,晶体管称为有源器件,而二极管称为无源器件.晶体管的基本工作方式是在其两端施加电压时 ...

  8. FTP协议及工作原理详解

    FTP协议及工作原理详解 1. FTP协议 什么是FTP呢?FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写. 该协议是Internet文件传送的 ...

  9. 卡尔曼滤波工作原理详解

    卡尔曼滤波工作原理详解 网上看到有不少的博客翻译 How a Kalman filter works, in pictures, 这篇文章中非常有趣的解释了卡尔曼滤波,. 但是目前很多翻译的文章中公式 ...

最新文章

  1. 漫画:程序员太难了!为什么 Java 中的 main 方法必须是它?
  2. Tree Reconstruction UVA - 10410
  3. [云炬python3玩转机器学习笔记] 1-3课程所使用的主要技术栈
  4. 基础拾遗------泛型详解
  5. [Leedcode][JAVA][第999题][直接考虑题意]
  6. java编译时文件是什么,JAVA编译出现 进行语法解释时已抵达文件结尾 是什么意思?...
  7. python模块名限定_python 正则表达式 匹配 ?的使用 限定符 sys.re模块
  8. 郁闷好久的电脑问题终于搞定---电脑经常死机
  9. javaWeb校园宿舍管理解析(二)
  10. 再次了解深浅拷贝问题
  11. C++_数据结构_堆用法详解
  12. matlab 电流相量图,表示了电路电压相量与电流相量之间的关系.ppt
  13. 山东联通中兴B860 AV1.1机顶盒 刷机问题解决
  14. 【JAVAWEB复习系列】第二部分
  15. matlab边角网间接平差计算,12.2测边网与边角网间接平差
  16. VC开发程序创建Dump文件
  17. 迪威视讯打造全国网格化管理样板 龙华“织网工程”
  18. 初窥Xcode4 -- Xcode4主题样式、快捷键等常用设置
  19. 第一个panda3d C++程序
  20. Mysql数据库索引的理解及聚簇索引和非聚簇索引的区别

热门文章

  1. php蛋糕文字生成二维码,蛋糕PHP中的自定义分页
  2. hive 查看表结构
  3. oracle 查看表结构
  4. Python写的ATM程序
  5. 自动化测试QTP初步了解
  6. jiffies和clock tick
  7. 转:js 将json字符串转换为json对象的方法解析
  8. python args和kwargs
  9. One or more files are in a conflicted state
  10. 手机还是发烫?两招教你快速解决