路由器的原理

✍作者:柒烨带你飞

💪格言:生活的情况越艰难,我越感到自己更坚强;我这个人走得很慢,但我从不后退。

📜系列专栏:网路安全入门系列


目录

路由器的原理

一,路由器基础及相关知识

路由器是一个能将数据报(包)传输给目的地,并在转发过程当中进行最佳路径选择的设备

路由器是属于三层(网络层)设备。
网络层的功能:

把上层数据封装成一个个数据报,会对数据进行IP头部的封装。

逻辑寻址(IP寻址)、路由和数据传输的最佳路径选择。

网络层所传输的PDU(协议数据单元)是:数据报(数据包)

1. 路由是什么?

路由是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程。路由器根据接收到数据包中的网络层地址以及路由器内部维护的路由表决定输出端口以及下一跳地址,并且重写链路层数据包头实现转发数据包。

2. 路由器的分类

直连路由,静态路由,默认(缺省)路由,动态路由

  1. 直连路由

    路由器接口上配置的网段地址会自动出现在路由表中并与接口关联,这样的路由叫做直连路由.直连路由是由链路层发现的,其优点是自动发现,开销小;缺点是只能发现本接口所属网段.

  2. 静态路由

    系统管理员手工设置的路由称为静态(static)路由,一般是在系统安装时就根据网络的配置情况预先设定的,它不会随未来网络拓扑结构的改变而自动改变.其优点是不占用网络和系统资源,安全;缺点是当一个网络模块故障发生后,静态路由不会自动修正,必须有管理员介入,需网络管理员手工逐条配置,不能自动对网络状态变化做出相应的调整.

  3. 默认(缺省)路由

    一种特殊的静态路由,在路由表中找不到目标网络的路由条目时,路由器会把请求转发到默认路由接口,默认路由一般应用与末节网络,如:网页404就是默认路由转载的

  4. 动态路由

    路由表可以是由系统管理员固定设置好的静态路由表,也可以是配置动态路由选择协议根据网络系统的运行情况而自动调整的.根据所配置的路由选择协议提供的功能,动态路由可以自动学习和记忆网络运行情况,在需要时自动计算数据传输的最佳路由.它适应大规模的复杂的网络环境下的应用.所有的动态路由协议在TCP/IP协议栈中都属于应用层的协议.但是不同的路由协议使用的底层协议不同.

二,网络层IP数据报的格式

IPv4报文格式
IPv6报文格式

三,路由器的工作原理

路由器的工作原理,如上图

主机1.1要发送一个数据给主机4.1,由于主机1.1和主机4.1不在同一网段,主机1.1要先把数据发给本网段的网关路由器A,路由器A收到数据报后会拆封查看数据报的IP头部,查看目的地IP地址。数据报的目的地址是4.1,网段就是4.0,路由器根据网段是4.0,查看路由表4.0网段是从SO端口转发出去的,于是路由器就会在该端口转发出去,后面的流程同理一样

同网段直接通过ARP广播找到主机,而不同网段需要将数据报发给网关

路由表的形成

路由表是指路由器或者其他互联网网络设备上存储的一张路径表,该表中存有到达特定网络终端的路径。

路由器为了完成选择最佳路径工作,在路由器中保存着各种传输路径的相关数据------路由表(Routing Table),供路由选择时使用,表中包含的信息决定了数据转发的策略。类比一下,路由表就像我们平时使用的地图一样,标识着各种路线,路由表中保存着子网的标志信息、网上路由器的个数和下一个路由器的名字等内容。

路由表可以是由系统管理员固定设置好的,也可以由系统动态修改,可以由路由器自动调整,也可以由主机控制。

路由器转发数据的封装过程

路由器转发数据的封装过程


博主的其他系列专栏📜📜📜

创作不易,😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!留下你的看法和建议💕

我们下期见✍️

相关推荐
JaguarJack18 小时前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo18 小时前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack2 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理2 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
DianSan_ERP2 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
呉師傅2 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑
QQ5110082852 天前
python+springboot+django/flask的校园资料分享系统
spring boot·python·django·flask·node.js·php
WeiXin_DZbishe2 天前
基于django在线音乐数据采集的设计与实现-计算机毕设 附源码 22647
javascript·spring boot·mysql·django·node.js·php·html5
2501_946205522 天前
晶圆机器人双臂怎么选型?适配2-12寸晶圆的末端效应器有哪些?
服务器·网络·机器人
linux kernel2 天前
第七部分:高级IO
服务器·网络