当前位置: 首页 > news >正文

位于同一子网下的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请求,通信完成

相关文章:

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

前言 最近看书发现个问题,正好想学习下wireshark的使用,于是抓包做了下实验。 问题是这样的,假设有服务器A和服务器B,正确配置下两者处于同一子网;此时B的网络配置正确,而A在配置子网掩码时出了错&#xff…...

Dockerfile镜像实战

目录 1、构建SSH镜像 2、Systemctl镜像 3、nginx镜像 4、tomcat 镜像 5、mysql镜像 1、构建SSH镜像 cd /opt/sshd vim Dockerfile #第一行必须指明基于的基础镜像 FROM centos:7 #作者信息 MAINTAINER this is ssh image <hmj> #镜像的操作指令 RUN yum -y update R…...

企业如何选择安全又稳定的文件传输协议

企业无论是内部的数据共享&#xff0c;还是与外部的合作交流&#xff0c;都需要通过网络进行文件的传输和交换。然而&#xff0c;文件传输它涉及到多方面的因素&#xff0c;例如文件的大小、数量、类型、敏感性、传输距离、网络环境等。这些因素都会影响到文件传输的各个方面&a…...

Linux Kernel 4.13 RC6发布:正式版9月3日发布

美国当地时间上周末&#xff0c;大神Linus Torvalds发布了Linux Kernel 4.13内核的又一候选版本。上周发布的RC5版本更新幅度也要比上上周的RC4要小&#xff0c;Linus Torvalds表示本周发布的RC6版本属于常规更新&#xff0c;在过去一周的开发过程中并没有出现任何意外。RC6版本…...

C++学习——C++中const的新花样

以下内容源于C语言中文网的学习与整理&#xff0c;非原创&#xff0c;如有侵权请告知删除。 关于C语言中const的用法&#xff0c;见《C语言const的用法详解》。 一、C中const的新花样 在C语言中&#xff0c;const用来限制一个变量&#xff0c;表示这个变量不能被修改&#xf…...

【Linux环境搭建】五、Linux(CentOS7)编译源码安装Subversion

Subversion&#xff08;简称为SVN&#xff09;是一种版本控制系统&#xff0c;能够管理和跟踪项目开发中的代码变化。Subversion最初由CollabNet公司开发&#xff0c;现已成为Apache软件基金会的顶级项目之一。 Subversion使用一个中央仓库来存储所有项目文件和历史记录。开发人…...

微信小程序入门讲解【超详细】

一. 微信小程序简介 1.1 什么是小程序 2017年度百度百科十大热词之一 微信小程序&#xff08;wei xin xiao cheng xu&#xff09;&#xff0c;简称小程序&#xff0c;英文名Mini Program&#xff0c;是一种不需要下载安装即可使用的应用( 张小龙对其的定义是无需安装&#xf…...

AtCoder ABC239G 最小割集

题意 传送门 AtCoder ABC239G Builder Takahashi 题解 将原图中每个节点拆为入点 v v v 与出点 v ′ v v′&#xff0c;对于原图任一边 ( u , v ) (u,v) (u,v) 则 u ′ → v , v → u u\rightarrow v, v\rightarrow u u′→v,v→u 连一条容量为 ∞ \infty ∞ 的边&…...

Simple RPC - 01 框架原理及总体架构初探

文章目录 概述RPC 框架是怎么调用远程服务的&#xff1f;客户端侧的逻辑服务端侧的逻辑完整流程 客户端是如何找到服务端地址的呢&#xff1f;核心&#xff1a;NamingService跨语言的RPC实现原理 RPC 框架的总体结构对外接口服务注册中心如何使用业务服务接口客户端服务端 模块…...

VScode运行C/C++

VScode运行C/C VScode的安装这里不讲 一、mingw64的下载 二、VS code打开文件夹与创建C文件 ----------------这一步给萌新看&#xff0c;有C和VScode的基础可跳过---------------- 1.创建一个文件夹 2.vscode打开刚刚创建的文件夹 3.新建文件&#xff0c;在输入文件名1.c后…...

#智能车项目(三)串口初始化

串口1初始化 初始化串口1PA9 PA10 流程 1、声明结构体 GPIO_InitTypeDef GPIO_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; USART_InitTypeDef USART_InitStructure; 2、打开时钟 // 打开串口GPIO的时钟 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA , ENABLE); /…...

网络通信错误代码列表 HTTP 、FTP

HTTP 1xx&#xff08;临时响应&#xff09;&#xff1a;表示临时响应并需要请求者继续执行操作的状态代码。 100 &#xff08;继续&#xff09; 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分&#xff0c;正在等待其余部分。 101 &#xff08;切换协议…...

最新开源ThinkPHP6框架云梦卡社区系统源码/亲测可用(全新开发)

源码简介&#xff1a; 最新开源ThinkPHP6云梦卡社区系统源码&#xff0c;它是一款基于ThinkPHP 6框架开发的开源社区系统源码。该系统源码具有强大而稳定的后端架构&#xff0c;和简洁易操作的前端界面&#xff0c;能够给人们提供完整的社区功能和更具体的服务。 全新云梦卡社…...

[ROS2系列] ubuntu 20.04测试rtabmap

目录 背景&#xff1a; 一、配置 turtlebot3 二、安装RTAB-Map ROS2包&#xff1a; 三、启动 Turtlebot3 模拟器&#xff1a; 四、启动 RTAB 地图&#xff1a; 五、启动导航&#xff08;nav2_bringup应安装软件包&#xff09;&#xff1a; 背景&#xff1a; 1、设备&…...

【Java学习之道】JavaFx 框架与组件介绍

引言 如果你曾经尝试过使用Java编写一个漂亮的窗口应用程序&#xff0c;那么你一定知道JavaFX这个强大的工具。JavaFX是Java 8中引入的一个GUI开发框架&#xff0c;它提供了丰富的组件和功能&#xff0c;使得我们可以轻松地创建出功能强大、界面美观的桌面应用程序。无论你是想…...

Windows bat 脚本设计-开机自启动服务的方法、bat 调用另外的 bat 脚本 -没有java环境也能运行jar,在不安装jdk下如何运行jar包

目录 一、start.bat 启动服务 bat 脚本代码设计 && 没有java环境也能运行jar&#xff0c;在不安装jdk下如何运行jar包二、关闭 bat 启动的服务三、Windows 开机自启动服务的方法四、bat 调用另外的 bat 脚本参考链接 一、start.bat 启动服务 bat 脚本代码设计 &&am…...

zabbix触发器与动作

一、触发器&#xff08;Trigger&#xff09; 1、概念&#xff1a; 在 Zabbix 中&#xff0c;触发器用于监测 Zabbix 监控系统中的各种指标和条件&#xff0c;并在特定条件满足时触发警报。&#xff08;触发器用于定义监控项的报警阈值&#xff09; 2、触发器对象&#xff1a…...

华纳云:Nginx服务器可视化配置问题怎么解决

Nginx服务器可视化配置问题通常是由于缺少适当的工具或配置导致的。要解决这些问题&#xff0c;您可以考虑以下几种方法&#xff1a; 使用Nginx配置管理工具&#xff1a; 有一些第三方工具可用于可视化配置Nginx服务器&#xff0c;以简化配置过程。其中一些工具包括cPanel、Ple…...

C指针与一维二维数组、数组指针与指针数组、函数指针_数组的理解使用

文章目录 一、指针数组 和 数组指针① 数组指针② 指针数组 二、函数指针与函数指针数组① 函数指针② 函数指针数组 三、指针与一维、二维数组① 指针与一维数组② 指针与二维数组 一、指针数组 和 数组指针 ① 数组指针 数组指针&#xff08;Array Pointer&#xff09;是指…...

安装运行vue-element-admin的报错问题-解决办法

文章目录 1.第一处2.第二处3.安装运行 在使用vue-element-admin时&#xff0c;使用命令安装&#xff1a; npm install -registryhttps://registry.npm.taobao.org会报错&#xff0c;不通过。需要修改两处。 1.第一处 在目录vue-element-admin-master\src\components\Markdown…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾&#xff1a; 在上一篇中&#xff0c;我们成功地为应用集成了数据库&#xff0c;并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了&#xff01;但是&#xff0c;如果你仔细审视那些 API&#xff0c;会发现它们还很“粗糙”&#xff1a;有…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...