路由器下一跳地址怎么判断_网络基本功三:细说路由器

介绍

以太网交换机工作在第二层即数据链路层,用于在同一网络内部转发以太网帧。但是,当源和目的IP地址位于不同网络时,以太网帧必须发送给路由器。路由器负责在不同网络间传输报文,通过路由表来决定最佳转发路径。当主机将报文发送至不同IP地址时,由于主机无法直接与本地网络以外的设备通信,报文被转发至默认网关。默认网关就是数据流从本地网络路由至远端设备的目的地。它通常用来连接本地网与公共网。

报文转发过程:

路由器在一个接口接收报文并将它从另一个接口转发出去,这一过程的关键步骤是为输出链路将报文封装在适当的数据链路帧中。路由器主要执行以下三个步骤:

1. 将第二层的帧头和帧尾移除,解析出第三层报文。

2. 检查IP报文的目的IP地址,在路由表中查找最佳路由。

3. 如果路由器找到一条最佳路径,则将三层报文封装到新的二层帧中,并将帧转发到输出端口。

如下图所示:设备有三层IPv4地址,以太网接口有二层数据链路地址。例如PC 1的IPv4地址192.168.1.10,示例MAC地址0A-10。在报文从原设备传输至目的设备的过程中,三层IP地址不会改变。但是,每一跳随着报文在路由器中被解封装和重新封装,二层数据链路地址都会改变。很可能报文被封装成与接收时不同的另一种类型的二层帧。

3e5292833762ce223544fcbb91a99ccb.png

发送报文:

PC 1发送报文给PC 2时,首先必须确定目的IPv4地址是否位于同一网络。PC 1通过将自己的IPv4地址与子网掩码做与操作,来判断PC 1所属的网段。接下来,PC 1对目的IPv4地址与PC 1的子网掩码做同样的与操作。如果目的网络地址与PC 1网络相同,则PC 1不使用默认网关,而是在ARP缓存中查找目的IPv4地址的设备MAC地址。如果MAC地址不在缓存中,则PC 1产生一个ARP请求来获取地址并将报文发给目的地址。如果目的网络地址位于另一网络,则PC 1将报文转发至默认网关。

要确定默认网关的MAC地址,PC 1在它的ARP表中查找默认网关的IPv4地址以及相应的MAC地址。如果ARP表中没有默认网关的对应表项,则PC 1发送ARP请求。路由器R1回复ARP响应。之后PC 1将报文转发至默认网关的MAC地址,即路由器R1的Fa0/0接口。

转发至下一跳:

R1从PC 1接收到以太网帧后执行以下步骤:

1. R1检查目的MAC地址,与接收端口FastEthernet 0/0相匹配,因此,将帧复制到buffer。

2. R1识别以太网类型为0x800,意味着以太网帧的数据部分包含IPv4报文。

3. R1解封装该以太网帧。

4. 由于目的IPv4地址与R1直连的任何网络都不相符,R1在路由表中查找包含该目的IPv4地址主机的网络地址。本例中,路由表中有192.168.4.0/24网络的路由。目的IPv4地址为192.168.4.10,即该网络上的主机IPv4地址。

R1找到192.168.4.0/24路由的下一条IPv4地址为192.168.2.2以及输出端口FastEthernet 0/1,这意味着IPv4报文封装到一个新的以太网帧中,目标MAC地址是下一跳路由器的MAC地址。

由于下一个接口是在以太网上,所以R1必须用ARP解析出下一跳IPv4地址的MAC地址。

1. R1在ARP cache中查找下一跳IPv4地址192.168.2.2。如果表项不在ARP cache中,R1会从FastEthernet 0/1 接口发送ARP请求,R2会返回ARP响应。R1之后在ARP cache中更新192.168.2.2的MAC地址。

2. IPv4报文封装到新的以太网帧中并从R1的FastEthernet 0/1 接口转发出去。

到达目的地:

当帧到达R3时执行以下步骤:

1. R3将数据链路帧复制到它的buffer。

2. R3解封装该数据链路帧。

3. R3在路由表中查找该目的IPv4地址。R3路由表中有直接连接到该网络的路由。这表示报文可直接发送到目的设备而无需发送至路由器。

由于输出接口是一个直连以太网,所以R3必须用ARP解析出目的IPv4地址的MAC地址。

1. R3在它的ARP cache中查找目的IPv4地址,如果此ARP cache中没有此表项,R3会从FastEthernet 0/0 接口发送ARP请求。PC 2回复ARP响应告知它的MAC地址。R3之后在ARP cache中更新192.168.4.10的MAC地址。

2. IPv4报文封装到新的以太网帧中并从R3的FastEthernet 0/0 接口发出。

3. 当PC 2接收到该帧,检查帧的目的MAC地址,与网卡接收端口的MAC地址相匹配,PC 2于是将帧的剩余部分复制到自己的buffer。

4. PC 2识别到以太网类型为0x800,也就是帧的数据部分包含IPv4报文。

5. PC 2解封装以太网帧,将IPv4报文传递给操作系统的IPv4进程。

路由表:

路由表存储的信息包括:

直连路径:来自活动路由接口的路径。当接口为活动状态并配置了IP地址时,路由器添加一条直连路径。

远端路径:远端的网络连接到其他路由。通过静态配置或动态路由协议到达该网络。

路由表是存储在RAM中的一份数据文件,用于存储直连以及远端网络的路由信息。路由表中包含网络或下一跳地址的信息。这些信息告知路由器可以通过将报文发送至代表下一跳地址的路由器以最佳路劲到达目的地址。下一跳信息也可以是到下一个目的地的输出接口。

路由表内容:

Cisco IOS路由器可用show IP route命令显示IPv4路由表。路由器还提供一些额外的路由信息,包括路径是怎样学习到的,路径在表中有多长时间,使用哪一接口去到达预定义的目的地。

路由表中的表项可作为以下内容添加:

本地路径接口:当接口配置并激活时添加。

直连接口:当接口配置并激活时添加。

静态路径:当手动配置路径并且输出接口激活时。

动态路由协议:当路由协议动态学习到网络时添加,如EIGRP或OSPF。

路由表项的来源通过代码来标识,代码表明路径是怎样学习到的。例如,常用代码包括:

L:路由器接口地址。当路由器接收到报文时发送至本地接口而无需转发。

C:直连网段。

O:通过OSPF从另一个路由器动态学习到的网络。

D:通过EIGRP从另一个路由器动态学习到的网络。

下图显示了R1的路由表:

d9f55eb30065798f7671dbeba2654bbd.png

远端网络路由表项:

下图显示了R1到远端网络10.1.1.0的表项:

61b32236beecbbad4b877a165bebce49.png

Route source:路径是怎样学习到的。

Destination network:远端网络地址。

Administrative distance:路由来源的可信度。较低值表明优先选择。

Metric:是路由算法用以确定到达目的地的最佳路径的计量标准。较低值表明优先选择。

Next hop:转发报文的下一个路由器的IP地址。

Route timestamp:自学习到路径以来过了多少时间。

Outgoing interface:用以转发报文的输出接口。

直连路由表项:

下图显示了R1到直连网络192.168.10.0的路由表项:

6be7eaeba9617375f6738703cc5ddb1b.png

在一个接口状态为up/up并添加到IPv4路由表之前,接口必须:

· 指定有效的IPv4或IPv6地址。

· 通过no shutdown命令激活。

· 从另一设备(路由器,交换机,主机等)接收到载体信号。

当接口up之后,该接口的网络作为直连网络添加到路由表中。

不做专业的网络工作,了解路由的基本知识即可,可以暂时不用关注静态路由和动态路由,了解本章知识足够。

往期知识

网络基本功二:细说交换机

网络基本功一:细说网络传输

为什么浏览器User-agent总是有Mozilla字样

10分钟了解JWT-JSON Web Token

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

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

相关文章

HTML多选mysql,html多选下拉框 | 学步园

一个jquery ui,实现html的多选下拉框,在下拉里面加checkbox,不改变页面的提交特性,只是动态的改变select选中的多选数据。jsp页面例子:pageEncoding"UTF-8" import"java.util.*,java.text.*"%>String path…

利用逆矩阵解线性方程组_经典Jacobi方法用于求解矩阵特征值

1、引言求解线性方程组在许多领域中都有重要应用,写成矩阵的形式: 。求解 可以写成: ,这里需要求解矩阵 的逆。《线性代数》中给出的方法主要有两类:1、设置增广矩阵,利用高斯消元法,通过初等行…

filename: core/loader.php,使用第三方包后出现的这个错误,你们都遇到过吗?

使用了一些第三方包,经常会发现,引入某些第三方包后(比如在laravel5.6中引入viacreative/sudo-su),使用命令行工具会遇到这样的错误提示,卸载了第三方包后重新安装vendor目录问题立马解决。真是把人头发都愁白了:PHP F…

python函数的作用域_python学习第五篇 函数 变量作用域

原博文 2019-07-18 23:40 − 函数 函数是组合好的,可以重复使用的,用来实现单一或相关联功能的代码片段作用 能提高应用的模块性和代码的重复利用率函数的创建 第一函数的规则 1.函数代码块一def关键字开头,后接函数标识符名称和圆括号‘&…

js post中文乱码 php,AJAX之POST数据中文乱码如何解决

本文主要和大家分享AJAX之POST数据中文乱码如何解决,前端使用encodeURI进行编码,希望能帮助到大家。var param encodeURI(param);$.ajax({url: url,methodtype: "POST",async: false,timeout: 60000,contentType: "application/json&quo…

python递归 数字全排列_利用递归实现全排列(python)

利用递归实现全排列(python) """ 利用递归实现全排列 第一个位置可能有n种可能,第二个位置可能 有n-1种可能...... 代码思路就是第一个位置可以和n个元素交换, 第二个元素可以和n-1个元素进行交换,到最 后一个输出这次排列&am…

python pip使用_Python——pip的安装与使用

pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。目前如果你在 python.org 下载最新版本的安装包,则是已经自带了该工具。Python 2.7.9 或 Python 3.4 以上版本都自带 pip 工具。pip 官网:https://pypi.o…

php文章列表样式,PHPCMS V9 文章列表循环样式自定义方法

在此,再次分享Whidy的文章"phpcms文章列表循环不同样式制作方法",下面CMSYOU来与大家具体分享,原地址为http://whidy.net/phpcms-list-with-different-style.html,在这里感谢。大家在用PHPCMS系统做网站的时候,有时候在…

角速度求积分能得到欧拉角吗_一个有趣的反常积分问题

今天物理考试,老师提到了一个有趣的积分问题。听说是拉普拉斯变换的一个应用之一(生成函数?),但是我没听过那个东西所以硬上了:D1)试求积分 2) 试说明积分 的收敛性1)对于第一问可以…

php计算1-100奇数的和,学习脚本1:计算100以内奇数和和偶数和 (笔记)

let I$[$I1]let I1let I 注意此处只有是原先数值加1才可用此方法上述三者运算是相同的- 减等 两边的变量前边的减去后边的变量之后把值再放到原来的变量上 加等 两的的变量前边的加上后边的变量之后把值再放到原来的变量上* 乘等 两边的变量前边的乘上后边的变量之后把值再放到…

查看ie保存的表单_解决浏览器保存密码自动填充问题

解决浏览器保存密码自动填充问题问题描述话说有一天,我如往常一样打开我的开发网站进行登录操作。浏览器很平常的在我们进行登录操作之后询问我是否需要记住密码,懒惰如我点击了记住密码。一切都很正常的进行着,没有什么异常发生。然而&#…

java满江红1apk,满江红满V版游戏下载_满江红满V版安卓版游戏下载v1.0_3DM手游

喜欢玩精彩的传奇游戏吗?那就来《满江红满V版》这款佳作中吧!这款手游操作方式极其的简单,且玩法自由度也很高,咱们将会置身于一座很精美热血的魔幻大陆中,各种大伙熟悉的人物职业可供收集培养,极致精彩的P…

go get 的不再src目录中_GO语言基础进阶教程:包的使用

Go语言使用包(package)这种语法元素来组织源码,所有语法可见性均定义在package这个级别,与Java 、python等语言相比,这算不上什么创新,但与C传统的include相比,则是显得“先进”了许多。myblog …

python mysql 正则表达式,MySQL之正则表达式(REGEXP)

MySQL中正则表达式通常被用来检索或替换符合某个模式的文本内容,根据指定的匹配模式匹配文中符合要求的特殊字符串。例如,从一个文件中提取电话号码,查找一篇文章中重复的单词或替换用户输入的敏感语汇等,这些地方都可以使用正则表…

pyecharts anaconda_Pyecharts安装使用和绘图案例

一次偶然的机会,接触了pyecharts,发现做图交互效果非常棒,便深究、摸索、入坑。这篇文章主要讲述自己在安装和使用中遇到的问题,解决方法,最后还会有pyecharts中自己比较喜欢的绘图功能。pyecharts是一款将python与ech…

控制附件的大小 php,wordpress如何修改默认上传附件限制大小

关于上传文件大小的限制,有很多有几种情况,一是服务器上的限制(php.ini)php虚拟主机空间提供商为了保障服务器稳定、都会限制大容量附件上传,在php.ini文件中做了限制,二是网站程序本身都会有限制大小,wp媒体文件大小默…

如何把密度函数化为标准正态二维分布_概率微课:第三章(22) 二维随机变量及分布函数定义...

主要内容二维随机变量及分布函数定义更多系列视频概率微课:第二章(1) 随机变量的定义概率微课:第二章(2) 离散型随机变量概率微课:第二章(3) 两点分布及伯努利试验概率微课:第二章(4) 二项分布1概率微课:第二章(5) 二…

php中的缓,php中的缓存机制解释

php缓存的理解,先列出ob系列函数的作用:ob_start(func) 开启php缓存,回调函数是对缓存内数据的处理函数ob_gzhandler 作为 ob_start 的回调函数,对数据进行gz压缩ob_implicit_flush(true/false) 打开或关闭apache缓存&#xff0c…

php 下拉菜单多选get,Jquery实现select二级联动多选下拉菜单

前言平时虽然也有写前端,但是对于一些复杂的功能实现仍是一知半解。这次项目需要实现一个多选下拉菜单,并且该菜单要和上级下拉菜单保持联动。更加麻烦的是,我需要完成以下操作,以省、市二级联动菜单为例:选择河北省 &…

idea快捷键打开run的窗口_看了上篇文章,你不了解的IDEA操作……

注意作者:卡洛小豆。换种方式写文章,写的不好请多多见谅。未经授权,禁止转载夜,结束了一天的喧嚣后安静下来,伴随着远处路灯那微弱的光。风,毫无预兆地席卷整片旷野,撩动人的思绪万千。那是一个…