假设你是一个报文,看路由器会如何处理你
概述
我们都知道路由器作为Internet的骨架,连接了整个互联网,可以说是整个网络的基石。但为什么路由器这么牛呢?是因为路由器能够在不同的网段之间进行通信,可以根据一定的规则把报文一跳一跳的转到目的地。
关于路由器如何转发报文,网络已经很多的教程,我们今天就不详细说了。今天我们要分享的路由器在转发报文的过程中,是如何处理报文的。同时我们换一个视角,假设我们是报文,看看路由器如何处理我们。
PS:我们说的路由器不是家庭用的小网关,而是用来连接不同网段的三层路由器,两者之间区别还是比较大的。
家庭网关和三层路由器
路由器对报文的处理
为了阐述报文的处理流程,我们使用简化的拓扑来描述:只使用一台路由器和两台PC,这样不仅能说明路由器如何处理报文,还能学习一下PC对报文的处理流程。
拓扑图
2台PC和一台路由器
- PC1配置的IP为10.1.1.2/24,网关是10.1.1.1
- PC2配置的IP为20.1.1.2/24,网关是20.1.1.1
- PC1和PC2明显不在同一个网段
- 路由器E0/1接口配置为PC1的网关:10.1.1.1
- 路由器E0/2接口配置为 PC2的网关:20.1.1.1
- 测试PC1和PC2之间的报文交互
访问流程
步骤1:PC1想要给PC2发送数据,要先获取网关的MAC;
- PC1已经知道PC2的IP地址(20.1.1.2),查看这个IP地址时,发现它和自己(10.1.1.2)不在同一个网段,会把报文转发给网关处理。
- PC1已经配置好网关(10.1.1.1),所以就会尝试把报文发送给网关。但是PC1查看自己的ARP表项,发现是空的,默认情况下没有ARP表项。
默认情况下,ARP表项是空的
- PC1只有获取网关的MAC地址才能封装报文,所以它会发送ARP Request请求网关的MAC,ARP报文如下图所示:
PC1请求网关的MAC
- 路由器收到这个ARP Request以后,发现Target IP是自己E0/1的IP地址,就会发送ARP Reply,把自己的MAC地址发送给PC1
路由器回复的MAC
- PC1收到ARP Reply以后,就会创建一个ARP表项,以后发送给网关的MAC都会使用这个地址来填充;
ARP表项
步骤2:PC2使用网关的MAC封装报文,发送给路由器
- PC1使用网关的MAC填充报文,然后发送出去
PC1发送的数据报文
- 目的MAC填充的是aa:bb:cc:00:01:10,这是网关的MAC
- 目的IP是20.1.1.2,这个是PC2的IP地址
步骤3:路由器对报文的处理:剥掉二层MAC,重新封装
- 路由器收到PC1发送的报文以后,会检查目的MAC地址,如果和自己的接口一样,就处理,否则丢弃;
接口MAC和收到的报文MAC对比
- 路由器会把报文的二层信息全部剥掉,只留下三层及以上的数据;
剥掉二层信息
- 路由器然后根据报文的目的IP地址,查找路由表,发现下一跳是出接口是E0/2;
查找路由器
- 路由器就会使用出接口E0/2的MAC地址对之前的三层报文进行封装;
路由器E0/2MAC地址
- 封装完成的报文:源MAC是E0/2的MAC,目的IP地址不变,高层的ICMP内容也不变;
使用E0/2的MAC重新封装报文
- 目的MAC是PC2的MAC:路由器在发送报文给PC2之前,会发送ARP请求PC2的MAC,过程和前面类似,这里就不说了;
步骤4:PC2收到路由器发送的报文
- PC2会先检查目的MAC地址,是否和自己网卡MAC相同,如果不相同, 则丢弃报文;
MAC地址
- 如果相同,则上送高层处理,然后回复ICMP,回复的ICMP的源MAC是PC2自己网卡的MAC;
PC2回复的ARP Reply
- 路由器对收到的PC2的报文的处理和PC1类似,也会重新封装二层MAC信息,然后转发给PC1;
PC1收到的ARP Reply信息
总结
通过上面的描述,我们可以看出来有2个比较重要的知识点:
- 知识点一:对于不在同一网段的报文,PC会包报文发送给网关,由网关来处理;
- 知识点二:收到报文以后,路由器会先剥掉二层信息,保留三层及以上数据;在将数据发送出去时,还会对数据进行重新封装,加上新的二层信息。
这就是从报文角度看到网络设备的处理流程,各位看完有点感觉了吗?
原文:https://www.toutiao.com/i6743053836123898375/
假设你是一个报文,看路由器会如何处理你相关推荐
- 一个报文的路由器之旅_报文的交换和寻址转发
从"交换"谈起 数据是通过接口板接收和发送,通信线缆都要插接到接口板的接口上.那么,把某一 个接口来的数据包送到另一个接口发出去,这两个接口需要连起来.但实际上,数据 包可能从任意 ...
- 一个报文的路由器之旅_【NE探秘】一个报文的路由器之旅
什么是二层桥接转发? 二层所指的是数据链路层.二层桥接转发,是指数据帧在数据链路层是怎样被转发的. 数据链路层有很多不同的网络类型,Token ring(令牌环网).Ethernet.FDDI(光纤网 ...
- 计算机网络原理fin,一个动画看懂网络原理之TCP建立和释放过程
一个动画看懂网络原理之TCP建立和释放过程 一.TCP的概念 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议.T ...
- 计算机网络中的网桥,一个动画看懂网络原理之网桥的工作原理
一个动画看懂网络原理之网桥的工作原理 一.网桥是干什么的 网桥工作在OSI参考模型数据链路层的两端口或多端口二层网络设备,是用来连接不同网段的存储转发设备.使用网桥能扩展网络的距离或范围,还可以提高网 ...
- 计算机网络中 中继器的作用是,一个动画看懂网络原理之中继器工作过程
一个动画看懂网络原理之中继器工作过程 我们在学习计算机网络技术时,涉及到网络设备时,书本上往往在介绍网卡之后,就会给大家介绍中继器,那么中继器是什么,它的作用是什么,它的工作过程又是怎样的,下面就这些 ...
- 一个框架看懂优化算法之异同 SGD/AdaGrad/Adam
Adam那么棒,为什么还对SGD念念不忘 (1) -- 一个框架看懂优化算法 机器学习界有一群炼丹师,他们每天的日常是: 拿来药材(数据),架起八卦炉(模型),点着六味真火(优化算法),就摇着蒲扇等着 ...
- 假设你有一个多层感知机网络(MLP),输入层有10个节点、一个单隐层共50个神经元,最后是一个3个神经元的输出层。请问网络的结构是什么样子的使用数学形式进行描述?
假设你有一个多层感知机网络(MLP),输入层有10个节点.一个单隐层共50个神经元,最后是一个3个神经元的输出层.请问网络的结构是什么样子的使用数学形式进行描述? 输入矩阵X的形状是什么? 隐藏层的权 ...
- 从一个案例看系统优化
10月27日,由子衿技术团队首席架构师白鳝(徐戟)老师在"DBA+南京群"进行了一次关于"从一个案例看系统优化"的线上主题分享.小编特别整理出其中精华内容,供大 ...
- 假设你有一个数组,其中第i 个元素是第i天给定股票的价格。设计算法以找到最大利润。你可以根据需要完成尽可能多的交易(即,多次买入并卖出一股股票)。注意:您不能同时进行多笔交易(即,您必须在再次购买之前
假设你有一个数组,其中第i 个元素是第i天给定股票的价格.设计算法以找到最大利润.你可以根据需要完成尽可能多的交易(即,多次买入并卖出一股股票).注意:您不能同时进行多笔交易(即,您必须在再次购买 ...
最新文章
- Response.Redirect 打开新窗口的两种方法
- cxGRID能否对模板进行保存
- Python组合数据类型:序列sequence,列表list、元组tuple
- 数商云:B2C商城网站建设功能框架大解析
- 盘点2016年炙手可热的TV BOX电视盒子
- 如何用adb连接android手机
- ajax blockUI
- pytorch中F.avg_pool1d()和F.avg_pool2d()
- 代码规范 任重而道远
- java博饼_java博饼游戏( 完善中。。。。。。。。。。。)
- python中index什么意思_Python中index()和seek()的用法(详解)
- 一些基本的Oracle命令
- 建站分享:调整WordPress自带标签云参数
- 20200107笔记
- 《自控力》第八章读书笔记
- 人工智能浪潮中,AI如何为企业降本增效?
- 如何使用抽象类和抽象方法
- 突然不能从主机向虚拟机上拷贝文件了
- 雷达导引头伺服系统的建模与仿真
- 50个BBS经典签名