ARP协议分析
一、ARP概述
网络中所有的协议(HTTP、URL、FTP、TELNET、TCP、UDP、ARP ······)都包含在TCP/IP协议栈中,从使用上来看:其中大部分协议都是大家平常上网所接触到的,不知道你们是否留意过;从安全上来看:其中最不安全的协议就是ARP协议(在功能上讲属于二层协议、在层次上讲属于三层协议);为什么说ARP协议是最不安全的呢???一般我们在网上见到的或听其他人所讲的涉及"网络扫描"、"内网渗透"、"流量欺骗"、"中间人拦截"、"局域网流控"所导致的问题一般都与ARP协议有关(内网中所引发的网络问题)
ARP(Address Resolution Protocol)协议简单来说就是:地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。在以太网中,一台主机要把数据帧发送到同一局域网上的另一台主机时,设备驱动程序必须知道以太网地址(MAC地址)才能发送数据。而我们只知道IP地址,这时就需要采用ARP协议将IP地址映射为以太网地址(MAC地址)。计算机之间的通信最终还是要依靠MAC地址(每一个MAC地址确定一台计算机,相当于每个人的身份证一样进行唯一标识)
对于大部分人来说要注意一点IP地址和MAC地址是不一样的,(1)IP地址是逻辑地址作用于软件上,而MAC地址是实际地址作用于硬件上;(2)IP地址(IPV4)长度为4Byte(32bit),MAC地址长度为6Byte(48bit);
相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。
二、ARP报文格式
(1) 各字段意义
以太网首部:
以太网目的地址:广播时:ff-ff-ff-ff-ff-ff
以太网源地址:源MAC地址
帧类型: 0x0806 (0x0806是ARP帧的类型值 ; 0x0800网际协议IP数据报)
ARP包:
硬件类型:表示硬件地址(MAC地址)的类型,值为1表示以太网地址
协议类型:表示要映射的协议地址类型。它的值为0x0800表示IP地址类型
硬件地址长度:以太网MAC地址长度为 6Byte
协议地址长度:IP地址长度为 4Byte
操作类型(op):1表示ARP请求,2表示ARP应答,3表示RARP请求,4表示RARP应答
发送端MAC地址:发送方设备的硬件地址
发送端IP地址:发送方设备的IP地址
目标MAC地址:接收方设备的硬件地址
目标IP地址:接收方设备的IP地址
(2) WireShark&&ARP报文结合分析
三、ARP原理之广播请求&单播回应
(1) 了解简单网络拓扑
(2) 实验条件:PC1 ping PC2 进行简单通信
但是,PC1此时的ARP表中没有PC2的MAC地址映射,PC1只知道PC2的IP地址(IP2)并不知道PC2的MAC地址,这个时候就要用到ARP协议,通过IP地址解析出MAC地址(这个过程由PC1广播,PC2单播使PC1获取PC2的MAC地址)
(3) PC1广播&PC2单播更新ARP表
PC1为了与PC2通信,获取PC2的MAC地址,开始在同一内网中进行广播在交换机处进行广播的请求转发,(广播请求包的内容包含:谁的IP地址是IP2(谁是PC2)、我的IP地址是IP1,MAC地址是MAC1、)当每一台主机收到这个广播请求包的时候,会根据 "谁的IP地址是IP2" 进行判断该请求包是否是对自己的请求,假如其它主机发现不是对自己做出的请求,那么其它主机就会直接丢掉这个请求包,真正接收到这个请求包的主机会发出回应包(Reply(2))进行回应(回应包里的内容包含:PC2与PC1的IP地址和MAC地址)此时PC2也会根据这个请求包来更新自己的ARP表,方便以后通信,当PC2的响应包到达PC1时,PC1会根据响应包里面PC2的IP地址和MAC地址信息进行更新自己的ARP表,如果广播和单播都没有什么问题,现在PC1和PC2之间就可以正常通信了。
四、ARP广播&单播通信数据包解读
通过上面的概述,到这里相信你应该对ARP协议、ARP广播、ARP单播有了大概的认识,为了进一步了解它们,我们用WireShark在真是网络中进行流量抓包分析ARP协议过程。
真实环境中还是利用上面的拓扑结构,还原第三部分中的过程
PC1:IP1 192.168.43.146 MAC1 c8:3d:d4:81:86:49
PC2:IP2 192.168.43.200 MAC2 00:0c:29:3b:8e:bc
ARP请求包(request)PC1广播
ARP响应包(reply)PC2单播
ARP协议分析的更多相关文章
- arp协议分析&python编程实现arp欺骗抓图片
arp协议分析&python编程实现arp欺骗抓图片 序 学校tcp/ip协议分析课程老师布置的任务,要求分析一种网络协议并且研究安全问题并编程实现,于是我选择了研究arp协议,并且利用pyt ...
- ARP协议分析(Wireshark)
一.说明 1.1 背景说明 以前学网络用的谢希仁的<计算机网络原理>,一是网开始学不太懂网络二是ARP协议是没有数据包格式的(如果没记错应该是没有).学完只记得老师说:ARP很简单的,就是 ...
- ARP 协议抓包分析
ARP(Address Resolution Protocol)- 地址解析分析 ARP 协议是根据IP地址获取物理地址的一个TCP/IP协议. 当PC1 想与 PC2 进行通信时,需要同时知道PC2 ...
- 从零开始学安全(四十二)●利用Wireshark分析ARP协议数据包
wireshark:是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换,是目前 ...
- wareshark网络协议分析之ARP
一.ARP协议简介 简单的说ARP协议就是实现ip地址到物理地址的映射.当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机时,是根据48bit的以太网地址(物理地址)来确定网络接口的. ARP ...
- 01、WireShark——ARP 协议包分析
1. 什么是ARP ARP(Address Resolution Protocol)协议,即地址解析协议.该协议的功能就是将 IP 地 址解析成 MAC 地址. ARP(Address Resolu ...
- WireShark——ARP 协议包分析
1. 什么是ARP ARP(Address Resolution Protocol)协议,即地址解析协议.该协议的功能就是将 IP 地 址解析成 MAC 地址. ARP(Address Resolu ...
- PYTHON黑帽编程1.5 使用WIRESHARK练习网络协议分析
Python黑帽编程1.5 使用Wireshark练习网络协议分析 1.5.0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks At ...
- TCP、UDP、IP 协议分析
http://rabbit.xttc.edu.cn/rabbit/htm/artical/201091145609.shtml http://bhsc881114.github.io/2015/06 ...
随机推荐
- Java的四种引用——强引用、软引用、弱引用、虚引用
目录 强引用 软引用 弱引用 虚引用 强引用 拥有强引用的对象永远不会被GC,可以根据引用的get方法获取到被引用对象 软引用 在内存充足的额时候,拥有软引用的对象不会被GC:即将内存溢出的时候,会对 ...
- Android滑动列表(拖拽,左滑删除,右滑完成)功能实现(2)
ItemTouchHelper类 之前我们实现了滑动列表的一些基本功能,为了实现更多的效果,我们来仔细看一下ItemTouchHelper中的类: ItemTouchHelper.SimpleCall ...
- 二叉查找树的C++实现
#include <iostream> #include <algorithm> #include <stack> using namespace std; /// ...
- react生命周期函数
如图,可以把组件生命周期大致分为三个阶段: 第一阶段:是组件第一次绘制阶段,如图中的上面虚线框内,在这里完成了组件的加载和初始化: 第二阶段:是组件在运行和交互阶段,如图中左下角虚线框,这个阶段组 ...
- Springboot搭建SSM+JSP的web项目
Springboot搭建SSM+JSP的web项目 一:创建项目结构: 项目结构分为三个部分: 1 后端项目开发文件: 包: Util 工具包 Mapper db层 Serv ...
- c#基础小练习
1.通过控制台接受输入的数字,将数字放到一维数组中,进行反转数据处理,然后将反转的数据打印到控制台应用程序里 方法一 步骤: 1.添加接收控制台输入的数据变量 2.将接收的字符串转换成一维数组 3.新 ...
- git常用方法整理
Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一). Git有什么特点?简单来说就是:高端大气上档次! 初始化本地仓库 mkdir xxx cd xxx git init 创建本 ...
- error: can't copy 'docx\templates\default-docx-template': doesn't exist or not a regular file --------------- Failed building wheel for python-docx; python-docx的安装使用;python操作word
本人第一安装python-docx很不幸就出现了,如下的错误:(如果你也遇到同样的错误,不要慌可以参考下面解决方案,由于第一次处理这种错误,如有不对欢迎大家多多批评指正) 问题所在是因为我们的setu ...
- Hadoop源码分析:Hadoop编程思想
60页的ppt讲述Hadoop的编程思想 下载地址 http://download.csdn.net/detail/popsuper1982/9544904
- 基于 TensorFlow 在手机端实现文档检测
作者:冯牮 前言 本文不是神经网络或机器学习的入门教学,而是通过一个真实的产品案例,展示了在手机客户端上运行一个神经网络的关键技术点 在卷积神经网络适用的领域里,已经出现了一些很经典的图像分类网络,比 ...