位于同一子网下的ip在子网掩码配置错误的情况下如何进行通信(wireshrak抓包分析)

前言

最近看书发现个问题,正好想学习下wireshark的使用,于是抓包做了下实验。
问题是这样的,假设有服务器A和服务器B,正确配置下两者处于同一子网;此时B的网络配置正确,而A在配置子网掩码时出了错,导致在A中计算B的网段时发现二者不处于同一子网;而它们之间存在网关,恰巧与AB都处于同一网段,此时A想要ping通B,可以成功吗?

文字描述的不是很清楚,直接上例子。

A的ip为16(完整ip为192.168.1.16,16是省略写法,下文亦同),B的ip为103,网关ip为1,A的子网掩码被配置为224(255.255.255.224),B为0(255.255.255.0)。

由下图与运算可得A的子网为0000 0000,B的子网也为0000 0000,但在A的视角看来,当他想要ping通B时,使用自己的子网掩码224算出B的网段为0110 0000,明显二者不位于同一网段,A无法直接通过ARP解析到B的mac地址。

在这里插入图片描述

那它们通信的过程具体是怎么样的呢?让我们接着往下看

上述数据是由我的实验中抽出来的,我将电脑wlan网卡的配置修改了一下,相当于服务器A,我的手机为服务器B,它们连接同一个路由器,则路由器相当于网关。
出于隐私考虑,我把mac地址打码了,留最后两位作为区分

服务器A :IP 192.168.1.16    mac:ef 子网掩码:255.255.255.224 (ping之前A的arp缓存中已有网关mac地址)服务器B: IP 192.168.1.103   mac:8e 子网掩码:255.255.255.0网关:IP 192.168.1.1    mac:ce

实验过程

实验开始前,使用arp -a命令查询arp缓存,发现此时A中已有网关的mac地址
在这里插入图片描述
接下了开始ping,同时使用wireshrak抓取wlan网卡的网络包
在这里插入图片描述
ping请求完成后,arp缓存中增加了B的mac地址
在这里插入图片描述

网络包分析

接下了到分析网络包的时间了
因为第一次ping请求最有价值,于是我只把一开始的数据包截取出来,让我们仔细分析一下。
在这里插入图片描述
插入一段名词解释
Redirect for host

ICMP 重定向(ICMP Redirect)就是路由器收到数据包的接口正是去往目的地的出口时,则会向源发送 ICMP重定向(ICMPRedirect),通告对方直接将数据包发向自己的下一跳即可,不要再发给自己。

91号
在这里插入图片描述
服务器A(Inter)向服务器B发送ping请求,但目的地是网关mac地址(我的路由器是tplink,上面也看得出来==),因为在它看来B和自己不在同一个子网内,无法直接通过ARP广播查询B的mac地址,于是它请求网关转发它对B的ping请求,因此dst为网关(这是基于A本来就知道B的mac地址,否则应该还需要通过ARP广播(broadcast)查询网关的mac地址后才能进行发送,这一步我没有验证)

92号
在这里插入图片描述
网关向服务器A发送icmp重定向,这时它可能将包转发给了服务器B,但无从得知

94号
在这里插入图片描述
服务器A收到了来自服务器B的广播,此时B在广播查询服务器A的mac地址
因为在B的视角看来,A和它同处于同一网段,因此它直接使用ARP广播来查找A
95号
在这里插入图片描述
服务器A(ef)向服务器B(8e)响应自己的mac地址,证明A在响应arp请求时不会考虑子网是否相同
此时B中已经得知A的mac地址,可以直接响应

在这里插入图片描述
服务器B响应服务器A的ping请求,通信完成

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

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

相关文章

探索数字时代的核心:服务器如何塑造未来并助你成就大业

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

E138: Can‘t write viminfo file

E138: Can’t write viminfo file /home/xxx/.viminfo! 原因 进入/home/xxx/目录下,用ls -a你会发现有很多.viminfa.tmp - .viminfz.tmp 这种的临时文件,这是因为使用vim编辑器时,如果编辑器没有正常退出就会生成一个暂存文件,…

家用洗地机哪个牌子最好用?质量最好的洗地机推荐

提到家务清洁,相信应该是很多宝妈头疼的事儿,不仅工作量打,耗时又耗力,拥有一款完美的清洁工具,那讲大大的提升幸福指数,而洗地机便是当下的智能清洁神器之一。那么家用洗地机哪个牌子最好用,质…

网络安全—小白自学笔记

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高; 二、则是发展相对成熟…

Pytorch:cat、stack、squeeze、unsqueeze的用法

Pytorch:cat、stack、squeeze、unsqueeze的用法 torch.cat 在指定原有维度上链接传入的张量,所有传入的张量都必须是相同形状 torch.cat(tensors, dim0, *, outNone) → Tensor tensor:相同形状的tensor dim:链接张量的维度,不能超过传入张…

警惕!又2本Hindawi期刊被剔除,Scopus期刊目录更新!(附下载)

【SciencePub学术】 01Scopus目录更新概况 此次Scopus期刊目录更新后,有5本期刊不再被收录(Discontinued titles September 2023),同上次更新时相比,此次又新增93本期刊(Accepted titles)进入Scopus数据库。目前Scop…

CSS Vue/RN 背景使用opacity,文字在背景上显示

Vue <div class"training_project_tip"> <div class"tip">展示的文字</div> </div> .training_project_tip { font-size: 12px; font-weight: 400; text-align: left; color: #ffffff; margin-top: 8px; position: relative; dis…

flask基础开发知识学习

之前做了一些LLM的demo&#xff0c;接口用flask写的&#xff0c;但是涉及到后端的一些业务就感觉逻辑写的很乱&#xff0c;代码变成屎山&#xff0c;于是借助官方文档和GPT迅速补了一些知识&#xff0c;总结一下一个很小的模板 于是决定边学边重构之前的代码… 文章目录 代码结…

2024年孝感市建筑类中级职称申报资料私企VS国企

2024年孝感市建筑类中级职称申报资料私企VS国企 民营企业中级职称申报跟事业单位或者是国企申报中级职称流程不一样么&#xff1f;实际上流程基本都是相同的&#xff0c;就是提交纸质版资料有点不一样。 孝感市建筑类中级职称申报基本流程 1.参加建筑类中级职称水平能力测试。 …

Spring(18) @Order注解介绍、使用、底层原理

目录 一、简介二、List 注入使用示例2.1 测试接口类2.2 测试接口实现类12.3 测试接口实现类22.4 启动类&#xff08;测试&#xff09;2.5 测试结果场景一&#xff1a;场景二&#xff1a; 三、CommandLineRunner 使用示例3.1 接口实现类13.2 接口实现类23.3 测试结果场景一&…

排序算法可视化

前言 这两天在B站上刷到一个视频&#xff0c;用python把各种排序动画可视化显示了出来觉得还蛮好玩的&#xff0c;当即就决定用Flutter写一个玩玩&#xff0c;顺便复习一下排序算法&#xff0c;话不多说&#xff0c;进入正文~ 效果图&#xff1a; 该效果图为鸡尾酒排序(双向冒…

OpenRemote: Java 开源 IoT 物联网开发平台,匹配智慧城市、智能家居、能源管理

OpenRemote 是一个直观、用户友好的基于Java语言的开源 IoT 物联网设备管理平台&#xff0c;它包括从连接设备到构建应用程序和特定领域的智能应用程序的所有功能和特性。通过OpenRemote物联网平台&#xff0c;用户可以收集和处理来自不同设备的传感器数据&#xff0c;适用于智…

Java Kids-百倍提速【Mac IOS】

引言&#xff1a;当今社会&#xff0c;创新和提升效率已经成为了大家普遍的追求。无论是个人生活还是企业经营&#xff0c;我们都希望能够以更高的效率完成任务&#xff0c;节省时间和资源。因此&#xff0c;提速成为了一种时代的要求&#xff0c;而"Java Kids 百倍提速&q…

C#进阶——反射(Reflection)

定义&#xff1a;反射指的是在运行时动态地获取、检查和操作程序中的类型信息&#xff0c;而在我们的Unity中反射允许开发者在运行时通过代码来访问和修改对象的属性、方法和字段&#xff0c;而不需要提前知道这些成员的具体信息。 举一个例子&#xff0c;我们使用反射在运行的…

c++ --- 归并排序

2、归并排序 步骤&#xff1a; 选取中间点 mid (LR)/2递归排序 左边left 和 右边 right归并 ---- 将数组合二为一 模板代码 int temp[10]; void merge_sort(int q[], int l, int r) {//如果左右边界相等 直接退出if (l > r) return;//获取数组中心int mid (l r) / 2;/…

Vue双向绑定原理

响应式原理 响应式是Vue的核心特性之一&#xff0c;数据驱动视图&#xff0c;我们修改数据视图随之响应更新&#xff0c;其原理是&#xff1a; ⚡️ 通过数据劫持结合发布和-订阅者模式的方式&#xff0c;通过拦截对数据的操作&#xff0c;在数据变动时发 布消息给订阅者&…

Element el-table 表格内容 样式错乱的问题

表格切换样式错乱展示 因为切换行的高度变化可能未异步渲染 解决方法&#xff1a; 在需要使用v-if渲染的el-table-column元素上加上一个不重复的key值即可解决问题 :key“Math.random()” <el-table-columnprop""label"问题"width"630.5px":…

day35

今日内容概要 Socket抽象层(socket编程) 基于TCP协议的借助socket可以编程客户端和服务端的程序 链接循环 通信循环 基于UDP协议的套接字(socket)编程 粘包现象 如何解决粘包现象(重要的是解决的思路) struct模块的使用(打包、解包) 今日内容详细 Socket抽象层&#x…

Selenium自动化测试总结

一、Selenium自动化测试&#xff08;基于python&#xff09; 1、Selenium简介&#xff1a; 1.1 Selenium是一款主要用于Web应用程序自动化测试的工具集合。Selenium测试直接运行在浏览器中&#xff0c;本质是通过驱动浏览器&#xff0c;模拟浏览器的操作&#xff0c;比如跳转、…

Qt 样式表大全整理

【QT】史上最全最详细的QSS样式表用法及用例说明_qt样式表使用大全_半醒半醉日复日&#xff0c;花落花开年复年的博客-CSDN博客 QT样式表的使用_qt 设置按下 release hover 按钮样式表_create_right的博客-CSDN博客 QPushButton {border-image: url(:/Start_Stop.png); } QPu…