计算机网络-学习路由器_路由学习-程序员宅基地

技术标签: 路由器的工作原理  路由器  计算机网络-路由器  计算机网络  

记录一下学习笔记,这篇大多参考《网络是怎么连接的》,感兴趣的同学建议直接读这本书,我这里做一些自己的笔记

  • 路由器是什么
  • 路由器的工作原理
  • 路由器是如何连上互联网的
  • 路由器和交换机的区别

路由器是什么

在这里插入图片描述
路由器是连接两个或多个网络的硬件设备,在网络间起网关的作用。简单来说,路由器就是用来连接两个或多个不同的局域网的。即一个局域网里面的网络请求要访问外面,就需要路由器作为网关,通过路由器访问出去。

路由器就是用来连接两个或多个不同的局域网的

在这里插入图片描述

路由器的每个端口都相当一个网卡,都有IP地址,每个端口都可以连接一个局域网,而且每个端口的IP和连接的局域网是同一个网段

路由器也是特殊的计算机,可以理解为精简的计算机,专门用来处理网络层,作为网关使用,所以我们的计算机也可以作为路由器,但是我们的计算机包含的功能更多,即计算机包含路由器。
                                              在这里插入图片描述

路由器是如何工作的

路由器的基本原理

路由器的工作位于TCP/IP协议的第三层网络层,前一篇博客讲的交换机位于底层数据链路层。路由器在网络层把数据链路层的数据包接收进来,然后IP是否是给自己的,是的话就接收,不是则丢弃。
在这里插入图片描述

路由器的各个端口都具有 MAC 地址和 IP 地址

路由器转发包和上一篇的交换机转发包类似,路由器在转发包时,首先会通过端口将发过来的包接收进来,这一步的工作过程取决于端口对应的通信技术。对于以太网端口来说,就是按照以太网规范进行工作,而无线局域网端口则按照无线局域网的规范工作,总之就是委托端口的硬件将包接收进来。接下来,转发模块会根据接收到的包的 IP 头部中记录的接收方 IP 地址,在路由表中进行查询,以此判断转发目标。然后,转发模块将包转移到转发目标对应的端口,端口再按照硬件的规则将包发送出去,也就是转发模块委托端口模块将包发送出去的意思。这就是路由器的基本原理

再做一些补充。刚才我们讲到端口模块会根据相应通信技术的规范来执行包收发的操作,这意味着端口模块是以实际的发送方或者接收方的身份来收发网络包的。以以太网端口为例,路由器的端口具有 MAC 地址 ,因此它就能够成为以太网的发送方和接收方 。端口还具有 IP 地址,从这个意义上来说,它和计算机的网卡是一样的。当转发包时,首先路由器端口会接收发给自己的以太网包 ,然后查询转发目标,再由相应的端口作为发送方将以太网包发送出去。这一点和交换机是不同的,交换机只是将进来的包转发出去而已,它自己并不会成为发送方或者接收方

路由表是怎么样的?

路由器是基于IP设计的,故路由器是根据IP来转发数据包的,,但是交换机是根据MAC地址转发的,里面有一张MAC地址表,所以路由器内部也有一张路由表,根据路由表里面的IP来转发相应的端口。

其实我们本地的计算机也有路由表,我们可以看看在windows按win+R输入cmd,打开命令函,输入route print可以看到本机的路由表
在这里插入图片描述
在这里插入图片描述

名称 结束
目标地址 网段,实际上这里的 IP 地址只包含表示子网的网络号部分的比特值,而表示主机号部分的比特值全部为 0,路由器会将接收到的网络包的接收方 IP地址与路由表中的目标地址进行比较,并找到相应的记录。交换机在地址表中只匹配完全一致的记录,而路由器则会忽略主机号部分,只匹配网络号部分
子网掩码 此列显示目标地址的子网掩码,真正的网络号是通过IP地址和子网掩码与运算得出,目标地址和子网掩码是用来计算目标网络号的
网关 根据目标地址和子网掩码匹配到某条记录后,路由器就会将网络包交给接口列中指定的网络接口(即端口),并转发到网关列中指定的 IP 地址,如果网关IP为空,则目标地址就是实际的转发IP地址
接口 本路由器的出口ip
跃点数 跃点计数,它表示距离目标 IP 地址的距离是远还是近。这个数字越小,表示距离目的地越近;数字越大,表示距离目的地越远 。一般情况下,如果有多条到达相同目的地的路由记录,路由器会采用metric值小的那条路由

注:
在链路上,表示数据传输不经过其他网络和路由器,即目标地址和当前路由是在同一局域网里面,不需要再经过下一跳的路由器

描述目标地址是怎么匹配目的IP地址
这里得先简单复习一下子网掩码,子网是用来区分我们的IP地址的网络号和主机号的
例如我们查看IP地址,我们的IP地址是192.168.1.20,子网掩码:255.255.255.0,即192.168.1.20/24,那么就表示192.168.1是IP段的网络号,后面的20是这个IP段的主机号。

在匹配地址的过程中,路由器需要知道网络号的比特数,因此路由表中还有一列子网掩码,通过这个值就可以判断出网络号的比特数。匹配数据包和路由器的目标地址对上的网络号的记录即可。

为什么需要子网掩码区分网络号和主机号
就好比寄快递一样,得写明哪个小区哪个房间号,小区就像网络号,房间号就像主机号。写明了快递员就可以把东西寄到相应的小区,再由小区转发到房间号,这样分类效率大幅提高。所以我们在路由器也是这样,找到对应网络号的就转出去就可以了,如果没有网络号,路由器就要保存大量主机号的IP,数据量多时每次查询效率就会很低,如果有网络号路由器保存的记录就会减少很多。

路由聚合
有一些例外,有时地址本身的子网掩码和路由表中的子网掩码是不一致的,这是路由聚合的结果。路由聚合会将几个子网合并成一个子网,并在路由表中只产生一条记录。要搞清楚这个问题,我们还是看一个例子。如图 3.14 所示,我们现在有 3 个子网,分别为路由器会忽略主机号,只匹配网络号。10.10.1.0/24、10.10.2.0/24、10.10.3.0/24,路由器 B 需要将包发往这 3 个子网。在这种情况下,路由器 B 的路由表中原本应该有对应这 3 个子网的 3条记录,但在这个例子中,无论发往任何一个子网,都是通过路由器 A 来进行转发,因此我们可以在路由表中将这 3 个子网合并成 10.10.0.0/16,这样也可以正确地进行转发,但我们减少了路由表中的记录数量,这就是路由聚合。经过路由聚合,多个子网会被合并成一个子网,子网掩码会发生变化,同时,目标地址列也会改成聚合后的地址。
在这里插入图片描述

还有一种情况,如果子网掩码为 255.255.255.255,也就是说地址中的全部 32 个比特都为 1。这样一来,主机号部分比特全部为 0 可以表示一个子网,主机号部分比特不全部为 0 可以表示某一台计算机,这种情况表示目标地址就是实际的主机号,和路由器在同一局域网上。

路由表匹配到多条记录如何处理

如果匹配符合的记录有多个,例如192.168.1.10匹配到路由表的目标地址的两行记录:192.168.1.0/24,192.168.1.10/32,这种情况,路由器首先寻找网络号比特数最长的一条记录 。网络号比特数越长,说明主机号比特数越短,也就意味着该子网内可分配的主机数量越少,即子网中可能存在的主机数量越少,这一规则的目的是尽量缩小范围,所以根据这条记录判断的转发目标就会更加准确。

然而,有时候路由表中会存在网络号长度相同的多条记录,例如考虑到路由器或网线的故障而设置的备用路由就属于这种情况。这时,需要根据跃点计数的值来进行判断。跃点计数越小说明该路由越近,因此应选择跃点计数较小的记录。

找不到匹配路由时选择默认路由
路由器的IP如果匹配不到,就会直接丢失,不会像交换机一样广播。但是实际我们路由表还有一行默认路由(发往更高层级的路由),目标地址为0.0.0.0,子网掩码为 0.0.0.0的记录,即匹配所有IP,如果找不到其他网络号更长的记录,就会把数据包转发到默认的路由记录上去。

路由表中子网掩码为 0.0.0.0 的记录表示“默认路由”。

如果在路由表中无法找到匹配的记录,路由器会丢弃这个包,并通过ICMPA 消息告知发送方 。这里的处理方式和交换机不同,原因在于网络规模的大小。交换机连接的网络最多也就是几千台设备的规模,这个规模并不大 。如果只有几千台设备,遇到不知道应该转发到哪里的包,交换机可以将包发送到所有的端口上,虽然这个方法很简单粗暴,但不会引发什么问题。然而,路由器工作的网络环境就是互联网,它的规模是远远大于以太网的,全世界所有的设备都连接在互联网上,而且规模还在持续扩大,未来的互联网里到底会有多少设备,我们谁都说不准。在如此庞大的网络中,如果将不知道应该转发到哪里的包发送到整个网络上,那就会产生大量的网络包,造成网络拥塞。因此,由器遇到不知道该转发到哪里的包,就会直接丢弃。

为什么路由器不能找不到对应IP,不能像交换机一样广播?因为路由器连接了多个局域网,可能还连接了互联网,连接的设备数量非常大,广播会形成网络拥塞,而交换机只连接了一个局域网,里面的设备有限,所以路由器遇到找不到的IP匹配的记录,就会丢掉。

路由表的记录是如何维护的
但是默认路由是怎么配置上去的?正常是通过路由协议自动发现路由器之间的其他路由器后自动配置的。

路由表记录维护的方式和交换机也有所不同。交换机中对 MAC 地址表的维护是包转发操作中的记录MAC地址,而路由器中对路由表的维护是与包转发操作相互独立的,也就是说,在转发包的过程中不需要对路由表的内容进行维护。对路由表进行维护的方法有几种,大体上可分为以下两类。

  • (a)由人手动维护路由记录
  • (b) 根据路由协议机制,通过路由器之间的信息交换由路由器自行维护路由表的记录其中(b)中提到的路由协议有很多种,例如 RIP、OSPC、BGP 等都属于路由协议。

路由器具体的工作流程
在这里插入图片描述

来看一看路由器的整个工作过程。
首先,路由器是工作在网络层的,路由器会接收网络包。路由器的端口有各种不同的类型,这里我们只介绍以太网端口是如何接收包的。以太网端口的结构和计算机的网卡基本相同,接收包并存放到缓冲区中的过程也和网卡几乎没有区别。首先,信号到达网线接口部分,将信号转换为数字信息,然后通过包末尾的 FCS 进行错误校验,如果没问题则检查 MAC 头部中的接收方 MAC 地址,看看是不是发给自己的包,如果是就放到接收缓冲区中,否则就丢弃这个包。如果包的接收方 MAC地址不是自己,说明这个包是发给其他设备的,如果接收这个包就违反了以太网的规则。

路由器的端口都具有 MAC 地址,只接收与自身地址匹配的包, 遇到不匹配的包则直接丢弃。

完成包接收操作之后,路由器就会丢弃包开头的 MAC 头部。MAC 头部的作用就是将包送达路由器,其中的接收方 MAC 地址就是路由器端口的 MAC 地址。因此,当包到达路由器之后,MAC 头部的任务就完成了,于是 MAC 头部就会被丢弃。

通过路由器转发的网络包,其接收方 MAC 地址为路由器端口的MAC 地址。

然后根据包里面发送的目的地IP地址,在路由表中进行匹配,匹配到的记录,如果网关IP不为空,则网关IP是发往下一个的地址,如果网关为空,则目标地址的IP是发往下一个的地址。这里我们有了发往下一个地址的IP,但是在重新封装包的时候需要写入的下一个地址的MAC地址,这个时候我们还不知道下一个地址的MAC地址,知道对方的 IP 地址之后,接下来需要通过 ARP 根据 IP 地址查询 MAC 地址,并将查询的结果作为接收方MAC 地址。路由器也有 ARP 缓存,因此首先会在 ARP 缓存中查询,如果找不到则发送 ARP 查询请求。

路由器也会使用 ARP 来查询下一个转发目标的 MAC 地址。

在这里插入图片描述

把查询到的MAC头部加入数据包(上一个MAC地址包被丢掉),最后网络包封装完成后,接下来会将其转换成电信号并通过端口发送出去。这一步的工作过程和计算机也是相同的。如果输出端口为以太网,则发送出去的网络包会通过交换机到达下一个路由器。由于接收方 MAC 地址就是下一个路由器的地址,所以交换机会根据这一地址将包传输到下一个路由器。
在这里插入图片描述

接下来,下一个路由器会将包转发给再下一个路由器,经过层层转发之后,网络包就到达了最终的目的地。

路由器是如何连上互联网的

你的电脑先在应用层打包一个 HTTP报文,然后在传输层在打包成 TCP报文,然后再根据 DNS 查到的 IP 在网络层打包成 IP数据报,然后在通过链路层打包成以太网数据帧,发送给你的交换机。交换机收到后,重新包装数据帧,再发送给路由器,路由器根据路由表查询转发的下一个路由IP,然后根据ARP协议获取下一个转发的IP的MAC地址,路由器重新封装包发给下一个路由,经过互联网的多个路由接力,随着这一过程反复执行,包就会最终到达 IP 的目的地,被服务器接收到,服务器程序处理完后返回这一网页的HTTP报文,再传输回给用户,这样用户的电脑就能看到服务器返回的网页了。

在这里插入图片描述

在这里插入图片描述

路由器和交换机的区别

要理解两者之间的关系,关键点在于计算机在发送网络包时,或者是路由器在转发网络包时,都需要在前面加上 MAC 头部。之前的讲解都是说在开头加上 MAC 头部,如果看图 3.16 大家可以发现,准确的说法应该是将 IP 包装进以太网包的数据部分中。也就是说,给包加上 MAC 头部并发送,从本质上说是将 IP 包装进以太网包的数据部分中,委托以太网去传输这些数据。IP 协议本身没有传输包的功能,因此包的实际传输要委托以太网来进行。路由器是基于 IP 设计的,而交换机是基于以太网设计的,因 此 IP 与以太网的关系也就是路由器与交换机的关系。详细的后面再总结一篇《计算机网络-路由器和交换机的区别》
在这里插入图片描述

参考:

户根勤《网络是怎样连接的》

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_21187515/article/details/119383038

智能推荐

分布式光纤传感器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告_预计2026年中国分布式传感器市场规模有多大-程序员宅基地

文章浏览阅读3.2k次。本文研究全球与中国市场分布式光纤传感器的发展现状及未来发展趋势,分别从生产和消费的角度分析分布式光纤传感器的主要生产地区、主要消费地区以及主要的生产商。重点分析全球与中国市场的主要厂商产品特点、产品规格、不同规格产品的价格、产量、产值及全球和中国市场主要生产商的市场份额。主要生产商包括:FISO TechnologiesBrugg KabelSensor HighwayOmnisensAFL GlobalQinetiQ GroupLockheed MartinOSENSA Innovati_预计2026年中国分布式传感器市场规模有多大

07_08 常用组合逻辑电路结构——为IC设计的延时估计铺垫_基4布斯算法代码-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏12次。常用组合逻辑电路结构——为IC设计的延时估计铺垫学习目的:估计模块间的delay,确保写的代码的timing 综合能给到多少HZ,以满足需求!_基4布斯算法代码

OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版-程序员宅基地

文章浏览阅读3.3k次,点赞3次,收藏5次。OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版

关于美国计算机奥赛USACO,你想知道的都在这_usaco可以多次提交吗-程序员宅基地

文章浏览阅读2.2k次。USACO自1992年举办,到目前为止已经举办了27届,目的是为了帮助美国信息学国家队选拔IOI的队员,目前逐渐发展为全球热门的线上赛事,成为美国大学申请条件下,含金量相当高的官方竞赛。USACO的比赛成绩可以助力计算机专业留学,越来越多的学生进入了康奈尔,麻省理工,普林斯顿,哈佛和耶鲁等大学,这些同学的共同点是他们都参加了美国计算机科学竞赛(USACO),并且取得过非常好的成绩。适合参赛人群USACO适合国内在读学生有意向申请美国大学的或者想锻炼自己编程能力的同学,高三学生也可以参加12月的第_usaco可以多次提交吗

MySQL存储过程和自定义函数_mysql自定义函数和存储过程-程序员宅基地

文章浏览阅读394次。1.1 存储程序1.2 创建存储过程1.3 创建自定义函数1.3.1 示例1.4 自定义函数和存储过程的区别1.5 变量的使用1.6 定义条件和处理程序1.6.1 定义条件1.6.1.1 示例1.6.2 定义处理程序1.6.2.1 示例1.7 光标的使用1.7.1 声明光标1.7.2 打开光标1.7.3 使用光标1.7.4 关闭光标1.8 流程控制的使用1.8.1 IF语句1.8.2 CASE语句1.8.3 LOOP语句1.8.4 LEAVE语句1.8.5 ITERATE语句1.8.6 REPEAT语句。_mysql自定义函数和存储过程

半导体基础知识与PN结_本征半导体电流为0-程序员宅基地

文章浏览阅读188次。半导体二极管——集成电路最小组成单元。_本征半导体电流为0

随便推点

【Unity3d Shader】水面和岩浆效果_unity 岩浆shader-程序员宅基地

文章浏览阅读2.8k次,点赞3次,收藏18次。游戏水面特效实现方式太多。咱们这边介绍的是一最简单的UV动画(无顶点位移),整个mesh由4个顶点构成。实现了水面效果(左图),不动代码稍微修改下参数和贴图可以实现岩浆效果(右图)。有要思路是1,uv按时间去做正弦波移动2,在1的基础上加个凹凸图混合uv3,在1、2的基础上加个水流方向4,加上对雾效的支持,如没必要请自行删除雾效代码(把包含fog的几行代码删除)S..._unity 岩浆shader

广义线性模型——Logistic回归模型(1)_广义线性回归模型-程序员宅基地

文章浏览阅读5k次。广义线性模型是线性模型的扩展,它通过连接函数建立响应变量的数学期望值与线性组合的预测变量之间的关系。广义线性模型拟合的形式为:其中g(μY)是条件均值的函数(称为连接函数)。另外,你可放松Y为正态分布的假设,改为Y 服从指数分布族中的一种分布即可。设定好连接函数和概率分布后,便可以通过最大似然估计的多次迭代推导出各参数值。在大部分情况下,线性模型就可以通过一系列连续型或类别型预测变量来预测正态分布的响应变量的工作。但是,有时候我们要进行非正态因变量的分析,例如:(1)类别型.._广义线性回归模型

HTML+CSS大作业 环境网页设计与实现(垃圾分类) web前端开发技术 web课程设计 网页规划与设计_垃圾分类网页设计目标怎么写-程序员宅基地

文章浏览阅读69次。环境保护、 保护地球、 校园环保、垃圾分类、绿色家园、等网站的设计与制作。 总结了一些学生网页制作的经验:一般的网页需要融入以下知识点:div+css布局、浮动、定位、高级css、表格、表单及验证、js轮播图、音频 视频 Flash的应用、ul li、下拉导航栏、鼠标划过效果等知识点,网页的风格主题也很全面:如爱好、风景、校园、美食、动漫、游戏、咖啡、音乐、家乡、电影、名人、商城以及个人主页等主题,学生、新手可参考下方页面的布局和设计和HTML源码(有用点赞△) 一套A+的网_垃圾分类网页设计目标怎么写

C# .Net 发布后,把dll全部放在一个文件夹中,让软件目录更整洁_.net dll 全局目录-程序员宅基地

文章浏览阅读614次,点赞7次,收藏11次。之前找到一个修改 exe 中 DLL地址 的方法, 不太好使,虽然能正确启动, 但无法改变 exe 的工作目录,这就影响了.Net 中很多获取 exe 执行目录来拼接的地址 ( 相对路径 ),比如 wwwroot 和 代码中相对目录还有一些复制到目录的普通文件 等等,它们的地址都会指向原来 exe 的目录, 而不是自定义的 “lib” 目录,根本原因就是没有修改 exe 的工作目录这次来搞一个启动程序,把 .net 的所有东西都放在一个文件夹,在文件夹同级的目录制作一个 exe._.net dll 全局目录

BRIEF特征点描述算法_breif description calculation 特征点-程序员宅基地

文章浏览阅读1.5k次。本文为转载,原博客地址:http://blog.csdn.net/hujingshuang/article/details/46910259简介 BRIEF是2010年的一篇名为《BRIEF:Binary Robust Independent Elementary Features》的文章中提出,BRIEF是对已检测到的特征点进行描述,它是一种二进制编码的描述子,摈弃了利用区域灰度..._breif description calculation 特征点

房屋租赁管理系统的设计和实现,SpringBoot计算机毕业设计论文_基于spring boot的房屋租赁系统论文-程序员宅基地

文章浏览阅读4.1k次,点赞21次,收藏79次。本文是《基于SpringBoot的房屋租赁管理系统》的配套原创说明文档,可以给应届毕业生提供格式撰写参考,也可以给开发类似系统的朋友们提供功能业务设计思路。_基于spring boot的房屋租赁系统论文

推荐文章

热门文章

相关标签