路由器的原理

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


目录

  • 路由器的原理
    • 一,路由器基础及相关知识
        • 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入门 + 实战小案例

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/941703.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch-分词器详解

什么是分词器 1、分词器介绍 对文本进行分析处理的一种手段,基本处理逻辑为按照预先制定的分词规则,把原始文档分割成若干更小粒度的词项,粒度大小取决于分词器规则。 常用的中文分词器有ik按照切词的粒度粗细又分为:ik_max_word和ik_smart&…

怿星科技联合赛力斯举办workshop活动,进一步推动双方合作

12月18日,由怿星科技与赛力斯汽车联合举办的workshop活动在赛力斯五云湖总部展开,双方嘉宾围绕智能汽车发展趋势、行业前沿技术、汽车电子网络与功能测试等核心议题展开了深度对话与交流,并现场参观演示了多套前沿产品。怿星科技CEO潘凯、汽车…

tomato靶场攻略

前提:kali和tomato的连接方式都为net模式 tomato的默认网络连接方式为桥接模式,导入前注意修改,将tomato.ova的镜像导入虚拟机中 出现此页面则表示导入成功,打开kali虚拟机终端,切换为root权限 arp-scan -l 浏览器访…

深度学习中,用损失的均值或者总和反向传播的区别

如深度学习中代码: def train_epoch_ch3(net, train_iter, loss, updater):"""The training loop defined in Chapter 3."""# Set the model to training modeif isinstance(net, torch.nn.Module):net.train()# Sum of training lo…

K8S Ingress 服务配置步骤说明

部署Pod服务 分别使用kubectl run和kubectl apply 部署nginx和tomcat服务 # 快速启动一个nginx服务 kubectl run my-nginx --imagenginx --port80# 使用yaml创建tomcat服务 kubectl apply -f my-tomcat.yamlmy-tomcat.yaml apiVersion: apps/v1 kind: Deployment metadata:n…

基于DockerCompose搭建Redis主从哨兵模式

linux目录结构 内网配置 哨兵配置文件如下,创建3个哨兵配置文件 # sentinel26379.conf sentinel26380.conf sentinel26381.conf 内容如下 protected-mode no sentinel monitor mymaster redis-master 6379 2 sentinel down-after-milliseconds mymaster 60000 s…

将java项目部署到linux

命令解析 Dockerfile: Dockerfile 是一个文本文件,包含了所有必要的指令来组装(build)一个 Docker 镜像。 docker build: 根据 Dockerfile 或标准指令来构建一个新的镜像。 docker save: 将本地镜像保存为一个 tar 文件。 docker load: 从…

SQL server学习08-使用索引和视图优化查询

目录 一,创建和管理索引 1,索引的概念 2,索引的分类 3,创建索引的原则 4,创建索引 1)使用SSMS的图形化界面 2) 使用T-SQL 二,创建和使用视图 1,视图概念 2&…

ffmpeg翻页转场动效的安装及使用

文章目录 前言一、背景二、选型分析2.1 ffmpeg自带的xfade滤镜2.2 ffmpeg使用GL Transition库2.3 xfade-easing项目三、安装3.1、安装依赖([参考](https://trac.ffmpeg.org/wiki/CompilationGuide/macOS#InstallingdependencieswithHomebrew))3.2、获取ffmpeg源码3.3、融合xf…

EasyPoi 使用$fe:模板语法生成Word动态行

1 Maven 依赖 <dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-spring-boot-starter</artifactId><version>4.0.0</version> </dependency> 2 application.yml spring:main:allow-bean-definition-over…

C++----类与对象(下篇)

再谈构造函数 回顾函数体内赋值 在创建对象时&#xff0c;编译器通过调用构造函数&#xff0c;给对象中各个成员变量一个合适的初始值。 class Date{ public: Date(int year, int month, int day) { _year year; _month month; _day day; } private: int _year; int _mo…

delve调试环境搭建—golang

原文地址&#xff1a;delve调试环境搭建—golang – 无敌牛 欢迎参观我的个人博客&#xff1a;无敌牛 – 技术/著作/典籍/分享等 由于平时不用 IDE 开发环境&#xff0c;习惯在 linux终端vim 环境下开发&#xff0c;所以找了golang的调试工具&#xff0c;delve类似gdb的调试界…

Oracle安装报错:将配置数据上载到资料档案库时出错

环境&#xff1a;联想服务器 windows2022安装Oracle11g 结论&#xff1a;禁用多余网卡先试试&#xff0c;谢谢。 以下是问题描述和处理过程&#xff1a; 网上处理方式: hosts文件添加如下&#xff1a; 关闭防火墙 暂时无法测试通过。 发现ping不是本地状态&#xff0c;而是…

数据结构:栈(顺序栈)

目录 1.栈的定义 2.栈的结构 3.栈的接口 3.1初始化 3.2栈的销毁 3.3压栈 3.4判断栈是否为空 3.5出栈 3.6得到栈顶元素 3.7栈的大小 1.栈的定义 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端…

LightGBM分类算法在医疗数据挖掘中的深度探索与应用创新(上)

一、引言 1.1 医疗数据挖掘的重要性与挑战 在当今数字化医疗时代,医疗数据呈爆炸式增长,这些数据蕴含着丰富的信息,对医疗决策具有极为重要的意义。通过对医疗数据的深入挖掘,可以发现潜在的疾病模式、治疗效果关联以及患者的健康风险因素,从而为精准医疗、个性化治疗方…

【WPS安装】WPS编译错误总结:WPS编译失败+仅编译成功ungrib等

WPS编译错误总结&#xff1a;WPS编译失败仅编译成功ungrib等 WPS编译过程问题1&#xff1a;WPS编译失败错误1&#xff1a;gfortran: error: unrecognized command-line option ‘-convert’; did you mean ‘-fconvert’?解决方案 问题2&#xff1a;WPS编译三个exe文件只出现u…

深入理解Redis

1.数据结构类型 数据结构-SDS-简单动态字符串 Redis构建了一种新字符串结构,称为简单动态字符串(Simple Dynamic String),简称SDS。 Redis未直接使用C语言的字符串,如:char* s = "hello",本质是字符数组: {h, e, l, l, o, \0}。因为C语言字符串存在很多问题…

前端开发 之 12个鼠标交互特效上【附完整源码】

前端开发 之 12个鼠标交互特效上【附完整源码】 文章目录 前端开发 之 12个鼠标交互特效上【附完整源码】一&#xff1a;彩色空心爱心滑动特效1.效果展示2.HTML完整代码 二&#xff1a;彩色实心爱心滑动特效1.效果展示2.HTML完整代码 三&#xff1a;粒子连结特效1.效果展示2.HT…

解析mysqlbinlog

一、前置设置 ps -ef | grep mysql 查看mysql进程对应的安装目录 需设置mysql binlog日志模式为 ROW 二、执行命令 [rootlocalhost bin]# mysqlbinlog --verbose --base64-outputdecode-rows /usr/local/mysql/data/binlog.000069 > 1.sql 查看文件具体内容

理解神经网络

神经网络是一种模拟人类大脑工作方式的计算模型&#xff0c;是深度学习和机器学习领域的基础。 基本原理 神经网络的基本原理是模拟人脑神经系统的功能&#xff0c;通过多个节点&#xff08;也叫神经元&#xff09;的连接和计算&#xff0c;实现非线性模型的组合和输出。每个…