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地址是什么 首先,我们要知道网络中的相互访问其实就是在进行两者间的数据传递.就如同送快递一样,快递发出只有知道你的住址信息,才能将快递送到你的手中.而在网络访问时,只有知道你在网络中的地址信息 ...
随机推荐
- Linux学习笔记之二————Linux系统的文件和目录
一.Windows和Linux文件系统区别 1.在 windows 平台下,打开“计算机”,我们看到的是一个个的驱动器盘符: 每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形,如图所示: ...
- (转)tasklist命令参数应用详细图解
原文:https://blog.csdn.net/bcbobo21cn/article/details/51759521 一 操作实例不带参数: /svc参数: /SVC 显示每个进程中的服务信息,当 ...
- Django--Admin 组件
Django 提供了admin 组件 为项目提供基本的管理后台功能(对数据表的增删改查). Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib ...
- HTML页面自动跳转,windows操作
1) html的实现 <head> <!-- 以下方式只是刷新不跳转到其他页面 --> <meta http-equiv="refresh" cont ...
- postgresql 获取修改列的值
使用returning CREATE TABLE users (firstname text, lastname text, id serial primary key); INSERT INTO u ...
- JavaWeb学习 (十五)————JSP指令
一.JSP指令简介 JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分. 在JSP 2.0规范中共定义了三个指令: pa ...
- Oracle,MySQL,sqlserver三大数据库如何获取系统当前时间
Oracle中如何获取系统当前时间:用SYSDATE() MySQL中获取系统当前时间主要有以下几点: (1)now()函数以('YYYY-MM-dd HH:mm:SS')返回当前的日期时间,可以直接 ...
- c# 判断是否是手机访问
public static bool CheckAgent() { bool flag = false; string agent = HttpContext.Current.Request.User ...
- IDEA创建简单SSM项目使用传统Jar包
#IDEA SSM项目使用传统Jar包 创建项目 下一步,命名 下一步,创建完成 下一步,创建资源文件夹resources 页面概览 左侧目录树 演示如下 一些简单的说明 其中包之间的层次调用 ent ...
- 以杨辉三角为例,从内存角度简单分析C语言中的动态二维数组
学C语言,一定绕不过指针这一大难关,而指针最让人头疼的就是各种指向关系,一阶的指针还比较容易掌握,但一旦阶数一高,就很容易理不清楚其中的指向关系,现在我将通过杨辉三角为例,我会用四种方法从内存的角度简 ...