路由器的路由过程

大家好,我叫徐锦桐,个人博客地址为www.xujintong.com。平时记录一下学习计算机过程中获取的知识,还有日常折腾的经验,欢迎大家来访。

路由器是连接不同的局域网的一个设备,它一开始的目的是互联异构网络的。

前言

这里引用别的博客一段话方便理解,路由器的作用。

通过单纯的二层网络, 你可以把北京怡红院股份有限公司财务科办公室中的16台电脑连接起来两两通信, 16个会计可以互相通过网络聊天了。
但财务科的同志需要和东莞业务部的姑娘们对账, 这时你又要如何做呢?
这个时候, 局域网就不够用啦!你就需要用到广域网!!
你平常在家看草榴社区就是通过广域网在通信!!
这个网络的历史是这样的
刚开始, 大家搞出了局域网, 很开心。
慢慢的, 很多科研院所学术机构都搞出了自己的局域网。
慢慢的, 有人就说, 我们现在搞了这么多局域网了, 我们这些局域网之间能不能互通一下。
这样, 我们学校的学生就可以抄你们学校学生的毕业论文了, 吼不吼啊!?
大家说吼!

这样产生了一个问题,就是不用局域网设置的MAC地址不规范不通用,就好比中国用中文、日本用日本,在同一个圈子能交流,然后除了这个圈子就有问题了。
为了方便解决这个问题,就是直接再加一个网络层IP,相当于加个国际身份。

前置知识

路由表

在一个局域网内不同设备会有唯一的一个MAC地址,不同局域网的设备可以有MAC地址重复的,但是路由器有唯一的MAC地址,感觉相当于公网ip和私网ip似的。
首先主机会查看自己的路由表。
路由表.webp
解释一下这个路由表。
第一行,第一个0.0.0.0代表着默认网关(默认路由),它的IP地址为23.158.24.1。
第二行,23.158.24.0表示子网号,当进行路由匹配的时候,将ip与掩码相与,然后看是不是等于子网号,来判断是不是在一个局域网内,这是一个本地内网所有没有网关。
举个例子吧,如果我要看23.158.24.5是不是当前子网内的主机,就与每个掩码相与,

局域网内传输

局域网通信.webp
假设A要发送数据给B。
主机A会通过ARP,查路由表发现和主机B在一个局域网内,然后就会在局域网内进行ARP广播获取主机B的MAC地址。
在一个局域网内就用不到网络层了,不会经过路由器。交换机中存着一个表,存折MAC地址和交换机端口号的对应关系。通过ARP获取主机B的MAC地址后,之后数据发送到交换机,就会转发到对应主机的端口号。

非局域网传输

假如主机A要发送数据给主机C。
主机A通过查路由表发现和主机C不再一个子网下,在路由表中找到默认网关的IP(公网IP),然后通过ARP获取默认网关的MAC地址。
发送给网关后,会将包的源MAC地址换为网关的MAC地址,然后通过ARP获取目标主机网关(路由器)的MAC地址(获取目标主机MAC过程查看我的另一篇博客)。
然后路由器查路由表,查看下一跳的路由器IP地址,到达下一跳后路由器解析IP头和MAC头,发现MAC是自己(当前跳路由器)的MAC就会接受包,如果不是自己的MAC就会查路由表,发送到下一跳…最终到达目的子网,并且通过NATP找到该子网内的对应主机。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿伐曲泊帕的合并用药方案【医游记】

(图片来源于网络!) 阿伐曲泊帕是一种口服的促血小板生成素受体激动剂,用于治疗择期行诊断性操作或手术的慢性肝病相关血小板减少症的成年患者。本文将介绍阿伐曲泊帕的药理作用和药物相互作用。 药理作用 阿伐曲泊帕可以与人体…

【vSphere 8 自签名证书】企业 CA 签名证书替换 vSphere Machine SSL 证书Ⅱ—— 创建和添加证书模板

目录 博文摘要3. 使用 Microsoft 证书颁发机构创建 Machine SSL 和 Solution User 证书模板3.1 打开 Certificate Template Console3.2 复制模板3.3 修改 Compatibility 选项卡3.4 修改 General 选项卡3.5 修改 Extensions 选项卡3.6 修改 Subject Name 选项卡3.7 确认新模板 4…

粘包和半包问题及解决办法

粘包问题是指数据在传输时,在一条消息中读取到了另一条消息的部分数据,这种现象就叫做粘包。 半包问题是指数据在传输时,接收端只收到了部分数据,而非完整的数据,就叫做半包。 产生粘包和半包问题原因: …

Ubuntu更新镜像源切换

概述 用ubuntu用apt命令,自动安装或更新包的时候,默认的镜像源服务器非常卡,很不方便。切换到国内的镜像源,下载更新非常快。为防止以后忘记,本文以国内服务器阿里巴巴的为例简单描述。 版本 Ubuntu23.10 找到更新…

SOAR安全事件编排自动化响应-安全运营实战

SOAR是最近几年安全市场上最火热的词汇之一。各个安全产商都先后推出了相应的产品,但大部分都用得不是很理想。SOAR不同与传统的安全设备,买来后实施部署就完事,SOAR是一个安全运营系统,是实现安全运营过程中人、工具、流程的有效…

Map<String, Object> 和 com.fasterxml.jackson.databind.node.ObjectNode区别

Map<String, Object>和com.fasterxml.jackson.databind.node.ObjectNode都可以用来表示一个键值对集合&#xff0c;其中键是字符串&#xff0c;值可以是任何对象。 Map<String, Object>是Java标准库中的一种数据结构&#xff0c;用于存储一组键值对。它是一个接口…

4、Kafka 消费者

5.1 Kafka 消费方式 5.2 Kafka 消费者工作流程 5.2.1 消费者总体工作流程 5.2.2 消费者组原理 Consumer Group&#xff08;CG&#xff09;&#xff1a;消费者组&#xff0c;由多个consumer组成。形成一个消费者组的条件&#xff0c;是所有消费者的groupid相同。 • 消费者组内…

【设计模式】解释器模式

文章目录 1.解释器模式定义2.解释器模式的角色3.解释器模式实战案例3.1.场景说明3.2.结构类图3.3.代码实现 4.解释器模式优缺点5.解释器模式适用场景6.解释器模式总结 主页传送门&#xff1a;&#x1f481; 传送 1.解释器模式定义 解析器模式&#xff08;Interpreter Pattern&a…

网络解析(二)

ICMP 报文有很多的类型,不同的类型有不同的代码。最常用的类型是主动请求为 8,主动请求的应答为 0。 ICMP 相当于网络世界的侦察兵。我讲了两种类型的 ICMP 报文,一种是主动探查的查询报文,一种异常报告的差错报文; ping 使用查询报文,Traceroute 使用差错报文。 IP和…

进程(1)——什么是进程?【linux】

进程&#xff08;1&#xff09;——什么是进程&#xff1f;【linux】 一. 什么是进程&#xff1f;二. 管理进程&#xff1a;2.1 怎么管理&#xff1a;2.2 PCB2.3.1 task_struct2.3.2 组织task_struct&#xff1a; 三.查看进程3.1 ps ajx3.2 ls /proc 四. 父子进程4.1 什么是父子…

数据结构——三路划分(快排优化)

刷Leetcode时遇到的问题&#xff0c;用普通的快排去跑&#xff0c;发现有问题。 普通的Hoare或者其他的快排好像都没有直接解决掉这个问题&#xff0c;当一个数重复出现的时候&#xff0c;用普通的快排效率其实并没有那么高。所以&#xff0c;这也是普通快排的缺点之一。 所以&…

基于SSM的仓库管理系统

基于SSM的仓库管理系统的设计与实现【文末源码】 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringSpringMVCMyBatisVue工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 登录界面 管理员界面 员工管理 货物管理 员工界面 摘要 当考虑构建基于…

Git使用入门

一、Git简介 Git 是一个开源的分布式版本控制系统。 Git版本控制的功能为保存不同版本的代码&#xff0c;保存代码的地方叫做仓库。 每个仓库中有多个分支&#xff0c;每个分支上又有很多节点&#xff0c;每个节点代表一个版本&#xff0c;不同的分支可以进行合并&#xff0…

用节点亲和性把 Pod 分配到节点

用节点亲和性把 Pod 分配到节点 当前集群信息&#xff1a; rootk8s-master:~# kubectl get node -o wide NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME k8s…

通过小程序实现会议Oa的会议展示以及个人中心

&#x1f3c5;我是默&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;在这里&#xff0c;我要推荐给大家我的专栏《微信小程序 》。&#x1f3af;&#x1f3af; &#x1f680;无论你是编程小白&#xff0c;还是有一定基础的程序员&#xff0c;…

游戏盾如何有效防护DDoS

从进入计算机时代以来&#xff0c;DDoS攻击一直是网络世界中的一大威胁&#xff0c;让无数服务陷入瘫痪。这种攻击的原理非常简单&#xff1a;攻击者使用大量的僵尸主机或蠕虫病毒&#xff0c;向目标服务器发送海量请求&#xff0c;迅速耗尽服务器的资源&#xff0c;使其无法继…

蓝桥杯 (年号字串 C++)

思路&#xff1a; 1、看成10进制转化成26进制 。 2、A表示1、B表示2。以此类推&#xff0c;Z表示26. 代码&#xff1a; #include <iostream> using namespace std; int main() {char str[10]; int sum 2019, n, i 0; while (sum > 0) {str[i] sum % 26 64;sum / …

REDIS命令

常见文件名 Redis-cli使用命令 1、启动Redis2、连接Redis3、停止Redis4、发送命令 1、redis-cli带参数运行&#xff0c;如&#xff1a;2、redis-cli不带参数运行&#xff0c;如&#xff1a;5、测试连通性key操作命令 获取所有键查询键是否存在删除键查询键类型移动键查询key的生…

vue ref和$refs获取组件实例

vue ref和$refs获取组件实例 **创建 工程&#xff1a; H:\java_work\java_springboot\vue_study ctrl按住不放 右键 悬着 powershell H:\java_work\java_springboot\js_study\Vue2_3入门到实战-配套资料\01-随堂代码素材\day04\准备代码\15-ref和$refs获取组件实例 vue --ve…