今天在研究免费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请求报文的更多相关文章

  1. 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通,代 ...

  2. 【转】 ip段/数字,如192.168.0.1/24是什么意思?

    http://blog.csdn.net/aerchi/article/details/39396423 ip段/数字,如192.168.0.1/24是什么意思? ip段/数字,如192.168.0. ...

  3. ip地址0.0.0.0与127.0.0.1的区别(转载)

    原文链接:http://blog.csdn.net/ttx_laughing/article/details/58586907 最近在项目开发中发现一个奇怪的问题,当服务器与客户端在同一台机器上时,用 ...

  4. [转帖]IP地址、子网掩码、网络号、主机号、网络地址、主机地址以及ip段/数字-如192.168.0.1/24是什么意思?

    IP地址.子网掩码.网络号.主机号.网络地址.主机地址以及ip段/数字-如192.168.0.1/24是什么意思? 2016年03月26日 23:38:50 JeanCheng 阅读数:105674  ...

  5. 本机ip、127.0.0.1和0.0.0.0区别及内环流量

    本机ip.127.0.0.1和0.0.0.0区别及内环流量 所谓内环流量 简单的说是指 计算机内部,程序间通讯产生的流量,或者叫 本地流量,对应的是来自网络的流量. 比如,你安装了卡巴斯基,avast ...

  6. 本机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 ...

  7. 127.0.0.1和0.0.0.0和本机IP的区别

    在一次网络课程的听课中,我突然察觉到自己有个疑惑就是在配置一些服务的时候我们会用到localhost(127.0.0.1)或者0.0.0.0 和当前主机IP这三个.那么具体该怎么使用这三个地址,这三个 ...

  8. 精通awk系列(9):修改字段或NF引起的$0重新计算

    回到: Linux系列文章 Shell系列文章 Awk系列文章 修改字段或NF值的联动效应 注意下面的分割和计算两词:分割表示使用FS(field Separator),计算表示使用预定义变量OFS( ...

  9. [转]localhost、127.0.0.1和0.0.0.0和本机IP的区别

    一.IP地址是什么 首先,我们要知道网络中的相互访问其实就是在进行两者间的数据传递.就如同送快递一样,快递发出只有知道你的住址信息,才能将快递送到你的手中.而在网络访问时,只有知道你在网络中的地址信息 ...

随机推荐

  1. Linux学习笔记之二————Linux系统的文件和目录

    一.Windows和Linux文件系统区别 1.在 windows 平台下,打开“计算机”,我们看到的是一个个的驱动器盘符: 每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形,如图所示:  ...

  2. (转)tasklist命令参数应用详细图解

    原文:https://blog.csdn.net/bcbobo21cn/article/details/51759521 一 操作实例不带参数: /svc参数: /SVC 显示每个进程中的服务信息,当 ...

  3. Django--Admin 组件

    Django 提供了admin 组件 为项目提供基本的管理后台功能(对数据表的增删改查). Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib ...

  4. HTML页面自动跳转,windows操作

    1) html的实现 <head> <!-- 以下方式只是刷新不跳转到其他页面 --> <meta http-equiv="refresh" cont ...

  5. postgresql 获取修改列的值

    使用returning CREATE TABLE users (firstname text, lastname text, id serial primary key); INSERT INTO u ...

  6. JavaWeb学习 (十五)————JSP指令

    一.JSP指令简介 JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分. 在JSP 2.0规范中共定义了三个指令: pa ...

  7. Oracle,MySQL,sqlserver三大数据库如何获取系统当前时间

    Oracle中如何获取系统当前时间:用SYSDATE() MySQL中获取系统当前时间主要有以下几点: (1)now()函数以('YYYY-MM-dd HH:mm:SS')返回当前的日期时间,可以直接 ...

  8. c# 判断是否是手机访问

    public static bool CheckAgent() { bool flag = false; string agent = HttpContext.Current.Request.User ...

  9. IDEA创建简单SSM项目使用传统Jar包

    #IDEA SSM项目使用传统Jar包 创建项目 下一步,命名 下一步,创建完成 下一步,创建资源文件夹resources 页面概览 左侧目录树 演示如下 一些简单的说明 其中包之间的层次调用 ent ...

  10. 以杨辉三角为例,从内存角度简单分析C语言中的动态二维数组

    学C语言,一定绕不过指针这一大难关,而指针最让人头疼的就是各种指向关系,一阶的指针还比较容易掌握,但一旦阶数一高,就很容易理不清楚其中的指向关系,现在我将通过杨辉三角为例,我会用四种方法从内存的角度简 ...