当前位置: 首页 > article >正文

路由器的原理

✍作者:柒烨带你飞
💪格言:生活的情况越艰难,我越感到自己更坚强;我这个人走得很慢,但我从不后退。
📜系列专栏:网路安全入门系列


目录

  • 路由器的原理
    • 一,路由器基础及相关知识
        • 1. 路由是什么?
        • 2. 路由器的分类
    • 二,网络层IP数据报的格式
    • 三,路由器的工作原理
      • 路由表的形成
      • 路由器转发数据的封装过程

路由器的原理

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

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

路由器是属于三层(网络层)设备。
网络层的功能:
把上层数据封装成一个个数据报,会对数据进行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),供路由选择时使用,表中包含的信息决定了数据转发的策略。类比一下,路由表就像我们平时使用的地图一样,标识着各种路线,路由表中保存着子网的标志信息、网上路由器的个数和下一个路由器的名字等内容。

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

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

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


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

  • 1 环境配置集合
  • 2 C语言小实例项目
  • 3 HTML入门 + 实战小案例

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


http://www.kler.cn/a/454117.html

相关文章:

  • QML自定义DelayButton(带进度的按钮)样式
  • OpenCV相机标定与3D重建(35)计算两幅图像之间本质矩阵(Essential Matrix)的函数findEssentialMat()的使用
  • Spring API 接口加密/解密
  • 单例模式懒汉式、饿汉式(线程安全)
  • 【自留】Unity VR入门
  • 机器视觉检测相机基础知识 | 颜色 | 光源 | 镜头 | 分辨率 / 精度 / 公差
  • Axure10
  • 【无标题】学生信息管理系统界面
  • GitLab安装及使用
  • C++打造局域网聊天室第十三课: 任务栏托盘功能的实现
  • [2003].第2-01节:关系型数据库表及SQL简介
  • [bug]java导出csv用Microsoft Office Excel打开乱码解决
  • 【K8S问题系列 | 20 】K8S如何删除异常对象(Pod、Namespace、PV、PVC)
  • 各种网站(学习资源、常用工具及其他,持续更新中~)
  • Python - 获取当前函数中的所有参数信息(名称和值)
  • 【Rust自学】7.3. 路径(Path)Pt.2:访问父级模块、pub关键字在结构体和枚举类型上的使用
  • Redis基础知识分享(含5种数据类型介绍+增删改查操作)
  • c#自定义事件
  • 2023年软件产业报告|2023年我国软件业经济运行情况及未来发展趋势预期
  • 【论文阅读笔记】Scalable, Detailed and Mask-Free Universal Photometric Stereo
  • 数据库系统概论
  • ctfshow-web入门-文件包含(web82-web86)条件竞争实现session会话文件包含
  • Llama3.370B超越GPT-4o和Claude3.5 Sonnet
  • 从随机生成到深度学习:使用DCGAN和CycleGAN生成图像的实战教程
  • Android 开发中自定义Toast
  • Metricbeat安装教程——Linux——Metricbeat监控ES集群