Sender IP字段为"0.0.0.0"的ARP请求报文
今天在研究免费ARP的过程中,抓到了一种Sender IP字段为“0.0.0.0”的ARP请求报文(广播),抓包截图如下:

这让我很疑惑。一个正常的ARP请求不应该只是Target MAC字段为全0吗?经过我多次试验,发现在网卡在启动的过程中会出现这个神奇的ARP请求包,具体的操作为: 拔掉网线再插上、DHCP获取地址、手动更改网卡的IP或者掩码时,会出现这个ARP请求包。(前提条件是网卡曾经是配置了IP地址的)
我猜测是在网卡启动时,网卡先进行IP冲突检测,检测一下是否有其他设备正在使用这个IP地址(即图中的172.168.2.110),看这个地址是否可用。同时又因为此时网卡还在启动,IP地址可以理解为还不存在,因此就用0.0.0.0代替IP来组装ARP请求包。
截图中还可以看出,连续三次发送了这种报文,也未收到ARP应答。网卡就将自己IP暂时设为原来的172.168.2.110(此时网卡应该已经启动完了);以防万一,网卡还重新发了一个免费ARP(Serder IP和Target IP相同,均为172.168.2.110),再次确认网络上是否有设备在使用这个IP地址。之后(截图中大概是5s以后)就是进行正常的ARP请求应答了。
这个报文在win10和win7上都能抓到,都是三个,但是后续免费ARP就只能在win10系统上抓到,win7上没有抓到后续的那个免费ARP(操作都是相同的,几种办法都尝试了)。由此可见,win7就是通过这个Sender IP字段为"0.0.0.0"的ARP请求报文来进行IP地址冲突检测;win10就是双重保险,两种请求报文都有。
Sender IP字段为"0.0.0.0"的ARP请求报文的更多相关文章
- 127.0.0.1、0.0.0.0和本机IP地址的区别和使用
一.表面上的区别如下: 首先假设本机有多个网卡:eth0 :192.168.0.1 eth1:192.168.1.1 lo: 127.0.0.1 0.0.0.0 不能ping通,代 ...
- 【转】 ip段/数字,如192.168.0.1/24是什么意思?
http://blog.csdn.net/aerchi/article/details/39396423 ip段/数字,如192.168.0.1/24是什么意思? ip段/数字,如192.168.0. ...
- ip地址0.0.0.0与127.0.0.1的区别(转载)
原文链接:http://blog.csdn.net/ttx_laughing/article/details/58586907 最近在项目开发中发现一个奇怪的问题,当服务器与客户端在同一台机器上时,用 ...
- [转帖]IP地址、子网掩码、网络号、主机号、网络地址、主机地址以及ip段/数字-如192.168.0.1/24是什么意思?
IP地址.子网掩码.网络号.主机号.网络地址.主机地址以及ip段/数字-如192.168.0.1/24是什么意思? 2016年03月26日 23:38:50 JeanCheng 阅读数:105674 ...
- 本机ip、127.0.0.1和0.0.0.0区别及内环流量
本机ip.127.0.0.1和0.0.0.0区别及内环流量 所谓内环流量 简单的说是指 计算机内部,程序间通讯产生的流量,或者叫 本地流量,对应的是来自网络的流量. 比如,你安装了卡巴斯基,avast ...
- 本机IP、127.0.0.1和0.0.0.0的区别
本机ip.127.0.0.1和0.0.0.0区别 网络java IP地址的记法: IP地址由四个字节构成,为了方便阅读和书写,每个字节用0-255的数字表示,字节之间用’.'分割,如: 10.10 ...
- 127.0.0.1和0.0.0.0和本机IP的区别
在一次网络课程的听课中,我突然察觉到自己有个疑惑就是在配置一些服务的时候我们会用到localhost(127.0.0.1)或者0.0.0.0 和当前主机IP这三个.那么具体该怎么使用这三个地址,这三个 ...
- 精通awk系列(9):修改字段或NF引起的$0重新计算
回到: Linux系列文章 Shell系列文章 Awk系列文章 修改字段或NF值的联动效应 注意下面的分割和计算两词:分割表示使用FS(field Separator),计算表示使用预定义变量OFS( ...
- [转]localhost、127.0.0.1和0.0.0.0和本机IP的区别
一.IP地址是什么 首先,我们要知道网络中的相互访问其实就是在进行两者间的数据传递.就如同送快递一样,快递发出只有知道你的住址信息,才能将快递送到你的手中.而在网络访问时,只有知道你在网络中的地址信息 ...
随机推荐
- ArrayBlockingQueue 阻塞队列 生产者 与消费者案例
package com.originalityTest; import java.net.UnknownHostException; import java.util.ArrayList; impor ...
- 判断 php 程序是通过什么方式运行的 (浏览器,还是命令行)
php 程序既可以通过浏览器来访问(一般是 apache.nginx等服务器), 也可以通过命令行来直接运行(cli 执行) 如果需要判断 当前程序是以何种方式来执行,应该怎样判断呢,使用:php_s ...
- vscode使用汇总——常用插件、常用配置、常用快捷键
一.代码提示快捷键设置:(keybindings.json) [ { "key": "ctrl+j", "command": "- ...
- JS下计算当前日期(当天)后N天出现NAN或者undefined的情况
前言: 帮客户做一个订单系统,需要一个日期1,一个日期2,默认情况下日期1为当天,日期2为明天,只是当时有些疑惑的是日期2偶尔会出现NAN的情况,今天在segmentfault.com看到了同样的问题 ...
- js对象深拷贝与浅拷贝
浅拷贝 把a赋值给b,a与b指向相同的内存,修改b值,a也会跟着改变. var a = "aa"; var b = a; b = "bb"; 这个时候a也变成了 ...
- CentOS7日期时间设置方法以及时间基本概念介绍
在CentOS 6版本,时间设置有date.hwclock命令,从CentOS 7开始,使用了一个新的命令timedatectl. 一.基本概念 1.1 GMT.UTC.CST.DST 时间 (1) ...
- C# MVC 用户登录状态判断
来源:https://www.cnblogs.com/cherryzhou/p/4978342.html 在Filters文件夹下添加一个类AuthenticationAttribute ,代码如下: ...
- [PHP] 算法-有序数组旋转后寻找最小值的PHP实现
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组 ...
- Tomcat报failed to parse the expression [${xxx}]异常(javax.el.ELException)的解决方法
Tomcat 7 'javax.el.ELException' 的解决方式tomcat 7对EL表达式的语法要求比较严格,例如"${owner.new}"因包含关键字new就会导致 ...
- JAVA的高并发基础认知 二
一.JAVA高级并发 1.5JDK之后引入高级并发特性,大多数的特性在java.util.concurrent 包中,是专门用于多线程发编程的,充分利用了现代多处理器和多核心系统的功能以编写大规模并发 ...