网络层——ARP协议
来源:互联网 发布:工龄的算法 编辑:程序博客网 时间:2024/06/07 23:05
1.ARP协议
地址解析协议,Address Resolution Protocol,用于实现IP地址到MAC地址映射(知道IP问MAC),实现数据的封装过程。ARP协议是在Ethernet以上,属于网络层。
ARP数据包:
字段1是ARP请求的目的以太网地址,全1时代表广播地址。
字段2是发送ARP请求的以太网地址。
字段3以太网帧类型表示的是后面的数据类型,ARP请求和ARP应答这个值为0x0806。
字段4表示硬件地址的类型,硬件地址不只以太网一种,是以太网类型时此值为1。
字段5表示要映射的协议地址的类型,要对IPv4地址进行映射,此值为0x0800。
字段6和7表示硬件地址长度和协议地址长度,MAC地址占6字节,IP地址占4字节。
字段8是操作类型字段,值为1,表示进行ARP请求;值为2,表示进行ARP应答;值为3,表示进行RARP请求;值为4,表示进行RARP应答。
字段9是发送端ARP请求或应答的硬件地址,这里是以太网地址,和字段2相同。
字段10是发送ARP请求或应答的IP地址。
字段11和12是目的端的硬件地址和协议地址。
2.ARP原理
假设现在有两台主机,用户土豆的IP是1.1,MAC为MAC1,用户洋芋IP是1.2,MAC是MAC2
现在土豆要给洋芋发消息,但土豆不知道洋芋的MAC是多少?(没有MAC就无法发消息给洋芋了)土豆想要给洋芋发消息,就要先广播发送消息,跟大家say个hello,问一下局域网内的大家知不知道洋芋在哪?(广播请求)
当然洋芋也能收到这个请求,所以他就回复了土豆他在哪(MAC2)(单播回复)当土豆知道了洋芋的MAC地址之后(数据链路层的数据知道了目的地址),就可以愉快的通信了
从抓包的角度来看:
图中MAC地址全为0表示的是广播请求
也可以看出在广播的时候是采用暴力扫描的方式
3.ARP攻击
还是土豆想找洋芋,要给洋芋发送消息,这时候有个黑客山药蛋企图进行ARP欺骗
- 土豆的广播请求
土豆的广播可以被山药蛋收到 - 洋芋的单播回复
洋芋单播后的MAC地址是正确的MAC - 山药蛋进行欺骗——告诉土豆,洋芋的MAC其实是“MAC3”
山药蛋会重复发很多次说“洋芋的MAC其实是MAC3”以确保原来正确的MAC地址被覆盖掉
然后土豆想发给洋芋的信息就发给了山药蛋
攻击软件P2P终结者
设置成功后,为选定主机设置策略就可以进行控制(如果局域网中两个人同时使用此软件,那就要看谁的优先级更高咯)
4.总结:
- 广播数据包不能跨网段;(arp request无法发送到远端设备)
- 多网段通信过程中,IP地址不变,但是MAC地址变
同网段通信过程中,IP和MAC信息不变,“跟谁通信用谁的mac”
- 网络层——ARP协议
- 协议-网络层-ARP
- 网络层(二)ARP协议
- 网络层 arp协议的作用
- 网络层 arp协议的作用
- 网络层 arp协议的作用
- 网络层ICMP和ARP协议
- 网络层 arp协议的作用
- 网络层其他协议(ARP、ICMP )
- 网络层协议(1):子网划分,ARP
- 网络层--地址解析协议ARP
- 网络层地址I解析协议ARP
- Linux网络基础——ARP协议
- 我们一起学网络(四)——网络层(IP划分方式与ARP协议)
- 实验二 网络层协议分析-2.1 ARP协议分析
- 二 网络层协议(一)ARP和RARP协议
- 网络层协议——IP协议
- 【网络协议】ARP协议
- Tomcat系统架构分析
- 《微软的软件测试之道》【PDF】下载
- 遇见的activiti问题。哎!
- python---异常处理
- Windows下安装PyTorch0.3.0
- 网络层——ARP协议
- python调用dll传指针参数
- 数据结构实验之图论四:迷宫探索
- 欢迎使用CSDN-markdown编辑器
- 0丢包但是无法访问目标主机,虚拟机可以访问主机
- Python:使用ctypes库调用外部DLL 数据类型对应
- jbpm介绍流程
- 设计模式-工厂模式
- DOM对象控制HTML