路由器的原理

✍作者:柒烨带你飞

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

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


目录

路由器的原理

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

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

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

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

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

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

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


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

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

我们下期见✍️

相关推荐
Bruce12313 小时前
web专题之php代审(二)
php
白帽黑客沐瑶13 小时前
【网络安全就业】信息安全专业的就业前景(非常详细)零基础入门到精通,收藏这篇就够了
网络·安全·web安全·计算机·程序员·编程·网络安全就业
BingoGo14 小时前
PHP-FPM 深度调优指南 告别 502 错误,让你的 PHP 应用飞起来
后端·php
树码小子14 小时前
Java网络编程:(socket API编程:TCP协议的 socket API -- 回显程序的服务器端程序的编写)
java·网络·tcp/ip
绿箭柠檬茶15 小时前
Ubuntu 服务器配置转发网络访问
服务器·网络·ubuntu
real 116 小时前
传输层协议UDP
网络·网络协议·udp
路由侠内网穿透17 小时前
本地部署 GPS 跟踪系统 Traccar 并实现外部访问
运维·服务器·网络·windows·tcp/ip
喵手20 小时前
玩转Java网络编程:基于Socket的服务器和客户端开发!
java·服务器·网络
徐子元竟然被占了!!1 天前
实验-基本ACL
网络
ftpeak1 天前
从零开始使用 axum-server 构建 HTTP/HTTPS 服务
网络·http·https·rust·web·web app