【计算机网络】通过ensp实验分析二三层数据包转发过程

news/2024/10/13 9:47:08

一、实验准备

需要提前安装好wireshark、virtalbox、WinPcap和模拟工具ensp,具体的安装过程可以自行百度~

特别提醒一点就是virtalbox和ensp的兼容性问题,我安装的是ensp1.3.00.100版本,该版本不支持virtalbox官网的6和7版本,我这边退回到5版本才正常运行起来。

 

二、网络拓扑图

pc1:ip地址 10.1.1.1/24,下一跳地址10.1.1.2/24,Mac地址:54-89-98-ba-30-20

pc2:ip地址 10.2.2.1/8,下一跳地址10.2.2.2/16,Mac地址:54-89-98-d5-75-f1

路由器 GE0/0/0:ip地址:10.1.1.2/24,Mac地址:00-e0-fc-34-7b-1a

GE0/0/0:ip地址:10.2.2.2/16,Mac地址:00-e0-fc-34-7b-1b

 

三、过程分析

在pc1上 ping 10.2.2.1,在路由器的左右两接口处分别抓包

1.首先pc1会通过掩码判断,网络号是10.1.1.0/24网段的,和目标ip属于不同的网段,所以要借助自己的网关进行三层转发

2.pc1查询ARP缓存表看是否有网关的MAC地址,发现没有;便以广播的形式在本网段发送arp请求帧,请求自己网关10.1.1.2的Mac地址

3.路由器收到arp广播,发现请求的是自己G0/0/0的接口ip的Mac地址,于是单播arp回复给pc1,并且记录pc1的mac地址到arp上

4.PC1收到应答后先把R1 MAC地址写入自己的ARP缓存表,然后把R1的MAC地址作为目标MAC地址,PC1的MAC地址作为源MAC地址封装在数据包中,发送给R1。路由器收到数据包,拆封到三层,发现目标ip不是自己,目标ip是10.2.2.1/?于是开始查路由,按掩码最长的进行匹配。查到直连路由10.2.0.0/16可达,下一跳是自己的接口G0/0/1。

display ip routing-table

5.G0/0/1收到要去10.2.2.1,先做arp请求,arp广播请求10.2.2.1的mac地址

pc2回复了单播的arp,告知了自己的MAC地址

6.路由器会将pc2的mac地址缓存下来

dis arp all

7.路由器根据目的ip查arp缓存得到Mac地址,再查Mac表得到下一跳的接口,从出接口发出。

 

四、总结

1.源IP和目标IP始终不变,变的只是Mac地址。

pc1给pc2发送icmp包时

路由器左接口抓包

 路由器右接口抓包

2.ARP请求以广播发送,单播回应。
3.路由器隔离广播,每一个网段都是独立的广播域。

4.pc根据自己的掩码计算网络号,来决定是二层还是三层转发。如果是三层,就请求自己的网关Mac,让路由器去查路由,查arp进行转发

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Redis持久化、主从与哨兵架构详解

参考 图灵课堂 https://zhuanlan.zhihu.com/p/443951927 https://blog.csdn.net/weixin_37548768/article/details/124538778?spm=1001.2014.3001.5502 https://www.runoob.com/redis/redis-transactions.htmlredis支持持久化到磁盘,这样可用进一步保证数据的完整性。 redis持…

异或

这道题目的思路比较好 由于\(1\)到\(n\)的路径很多,我们猜想,任意选一条路径可以通过某种异或运算来得到最优解 证明:假设我们选出的路径不是最优路径,那么对于另一条最优路径,一定可以通过我们选出的路径异或上若干个简单环来达到。举个例子说明假设我们选出的是直线段\(…

rt1052点亮0.96寸spi屏

一,前言 目的是用rgb屏,但是rgb屏硬件还没准备好,所以要先学习下lvgl上位机,但是学习完要烧录到屏中看效果,所以我今天就先点亮spi屏。找了之前stm32时候点亮频的lcd驱动进行的移植,cs我不是gpio控制的,所以注释了2行,看起来无影响。 二,说明 0.96存spi驱动的LCD屏ST7…

【网络通信】Windows搭建RTMP视频流服务器(含推流/拉流详细教程)

RTMP(Real-Time Messaging Protocol)是一种用于实时流媒体传输的网络协议,主要用于传输音频、视频和数据。RTMP最初是由Adobe Systems公司开发的,用于其Flash平台和Adobe Media Server,但随着技术的发展和开源社区的推动,RTMP已经成为了一个广泛使用的流媒体传输协议。今…

基于直方图的图像曝光量分析FPGA实现,包含tb测试文件和MATLAB辅助验证

1.算法运行效果图预览 正常图像: checkb位于f192b和f250b之间多度曝光图像: checkb位于f192b和f250b之外,判决为曝光过度。2.算法运行软件版本 vivado2019.2matlab2022a3.算法理论概述 参考资料如下:主要采用的方法为: 4.部分核心程序`timescale 1ns / 1ps // // Compan…

人机验证 reCaptcha 无法解锁 使用 Gooreplacer 的解决方案

解决方案 浏览器搜索并安装插件 Gooreplacer(参考下方链接),新增设置:匹配模式 google.com/recaptcha 匹配类型 通配符 目标地址 recaptcha.net/recaptcha如下图:并开启,刷新页面,即可。 故障分析及解决思路 常见的人机验证(reCaptcha)网址是 google.com/recaptcha,而…

RESTful风格接口设计

我们平常开发一般只使用GET、POST方法。而对于HTTP给出的PUT、DELETE等其他方法都没使用。以RESTful风格设计接口就能全部用上这些方法。 按照RESTful理查德森成熟度模型改造接口 这个模型跟数据库范式等级相似,都是一层一层满足。我们的mvc接口不好说是哪一级,一般都是每个操…

前端 Vue-cli中 vue.config.js 的配置详解

Vue-cli 3 / Vue-cli 4 目录结构├── README.md # 说明 |-- dist # 打包后文件夹 ├── babel.config.js # babel语法编译 ├── package-lock.json ├── public # 静态文件夹,这类资源将会直接被拷贝,而不会经过 webpack 的处…