路由器的路由过程

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

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

前言

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

通过单纯的二层网络, 你可以把北京怡红院股份有限公司财务科办公室中的16台电脑连接起来两两通信, 16个会计可以互相通过网络聊天了。

但财务科的同志需要和东莞业务部的姑娘们对账, 这时你又要如何做呢?

这个时候, 局域网就不够用啦!你就需要用到广域网!!

你平常在家看草榴社区就是通过广域网在通信!!

这个网络的历史是这样的

刚开始, 大家搞出了局域网, 很开心。

慢慢的, 很多科研院所学术机构都搞出了自己的局域网。

慢慢的, 有人就说, 我们现在搞了这么多局域网了, 我们这些局域网之间能不能互通一下。

这样, 我们学校的学生就可以抄你们学校学生的毕业论文了, 吼不吼啊!?

大家说吼!

这样产生了一个问题,就是不用局域网设置的MAC地址不规范不通用,就好比中国用中文、日本用日本,在同一个圈子能交流,然后除了这个圈子就有问题了。

为了方便解决这个问题,就是直接再加一个网络层IP,相当于加个国际身份。

前置知识

路由表

在一个局域网内不同设备会有唯一的一个MAC地址,不同局域网的设备可以有MAC地址重复的,但是路由器有唯一的MAC地址 ,感觉相当于公网ip和私网ip似的。

首先主机会查看自己的路由表。

解释一下这个路由表。

第一行,第一个0.0.0.0代表着默认网关(默认路由),它的IP地址为23.158.24.1。

第二行,23.158.24.0表示子网号,当进行路由匹配的时候,将ip与掩码相与,然后看是不是等于子网号,来判断是不是在一个局域网内,这是一个本地内网所有没有网关。

举个例子吧,如果我要看23.158.24.5是不是当前子网内的主机,就与每个掩码相与,

局域网内传输

假设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找到该子网内的对应主机。

相关推荐
白狐_7981 天前
【408计算机网络|第01章|408-CN-01】计算机网络概述与体系结构:性能指标、分层、OSI与TCP/IP
网络协议·tcp/ip·计算机网络
白狐_7981 天前
【408计算机网络|第03章·上|408-CN-03A】数据链路层(上):组帧、差错控制与可靠传输
网络·网络协议·计算机网络
阿慧今天瘦了嘛2 天前
计算机组成原理概述:从硬件到软件的桥梁
计算机网络·算法
Flandern11112 天前
HTTPS(TLS 1.3)完整流程
数据库·网络协议·计算机网络·https
沐苏瑶2 天前
计算机网络核心笔记:打通 TCP/UDP 与 HTTP/HTTPS 底层逻辑(重点上)
笔记·计算机网络·http·https
ZJH__GO3 天前
网络编程v2--多客户端互通
java·运维·服务器·开发语言·计算机网络
Tsuki_tl3 天前
吃透 TCP:可靠传输完整原理【上】
网络协议·tcp/ip·计算机网络·三次握手·后端面试·四次挥手·传输层
shiyi.十一4 天前
第2章:应用层 — 知识要点与架构
网络·计算机网络·架构
sbjdhjd4 天前
SQL 注入零基础详解:原理、手工注入流程与 Sqli-Labs 靶场实战1~5关和第9关思路
数据库·sql·计算机网络·web安全·网络安全·网络攻击模型·安全架构
humors2215 天前
新手笔记本/路由/手机安全问题小记
安全·华为·电脑·手机·路由器·笔记本·tplink