Networking - ARP 协议
ARP 协议概述
ARP(Address Resolution Protocol),即地址解析协议,用于把 IP 地址映射到物理地址。网段上的每台主机都维护着一个被称为 ARP Table 或 ARP Cache 的表格,其中包含着网段上其他主机的 IP 地址与物理地址的对应关系。当主机需要向网段上的其他主机发送数据时,它会查看 ARP Cache 来获得目的的物理地址。ARP 缓存是动态变化的。如果要接收数据的地址当前并不存在于 ARP Cache,主机就会广播一个 ARP 请求帧。
ARP 请求帧包含未解析的 IP 地址,还包含发送这个请求的主机的 IP 地址和物理地址。网段上的其他主机接收到这个 ARP 请求,拥有这个未解析的 IP 地址的主机会向发出请求的主机发送自己的物理地址。这个新的 IP 地址与物理地址的对应关系就会添加到请求主机的 ARP Cache 中。一般来说,ARP Cache 里的条目在一定时间后会过期,条目就会被从表里删除。当主机需要向这个条目所包含的 IP 地址发送数据时,解析过程会再次重复。
ARP 报文格式
ARP 报文格式如下:
| HTYPE | PTYPE | HLEN | PLEN | OPER | SHA | SPA | THA | TPA |
HTYPE(Hardware Type): 该字段有 2 个字节,表示硬件类型。
PTYPE(Protocol Type): 该字段有 2 个字节,表示协议类型。
HLEN(Hardware Address Length ): 该字段有 1 个字节,表示硬件地址长度。
PLEN(Protocol Address Length ): 该字段有 1 个字节,表示协议地址长度。
OPER(Operation): 该字段有 2 个字节,表示操作类型。1 表示 ARP 请求,2 表示 ARP 应答。
SHA(Sender Hardware Address): 该字段有 6 个字节,表示发送者硬件地址。
SPA(Sender Protocol Address): 该字段有 4 个字节,表示发送者 IP 地址。
THA(Target Hardware Address): 该字段有 6 个字节,表示目标硬件地址。
TPA(Target Protocol Address): 该字段有 4 个字节,表示目标 IP 地址。
ARP 工作过程
Networking - ARP 协议的更多相关文章
- 浅谈ARP协议以及应用
0. 前言 本章主要简单的介绍ARP的协议格式,主机如何发送和处理ARP报文,以及免费ARP. 1. ARP协议原理 ARP,全称Address Resolution Protocol,地址解析协议, ...
- 6410实现网卡(DM9000A)收发功能及ARP协议实现
1. 网卡硬件结构(DM9000A) 网卡的实质就是MAC通过MII接口控制PHY的过程. MAC主要负责数据帧的构建.数据差错检查.传送控制等. PHY是物理接口收发器,属于物理层,当它收到MAC过 ...
- Lvs原理及部署之ARP协议
1.什么使ARP协议 ARP协议,全称"Address Resolution Protocol" ,中文名是地址解析协议,使用ARP协议可实现通过IP地址获得对应的物理地址(MAC ...
- 计算机网络(2)-----ARP协议
ARP协议(Address Resolution Protocol) 概念 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/I ...
- ARP协议
ARP协议就是一个获取对方MAC地址的协议,ARP协议它是一个网络层的协议,它的作用是通过ARP request报文来获得对方的MAC地址,ARP报文里面发送的内容大概是192.168.1.20你的M ...
- ARP协议格式、ARP运行机制入门学习
相关学习资料 http://baike.baidu.com/view/149421.htm?fromtitle=ARP%E5%8D%8F%E8%AE%AE&fromid=1742212& ...
- ARP缓存表的构成ARP协议全面实战协议详解、攻击与防御
ARP缓存表的构成ARP协议全面实战协议详解.攻击与防御 1.4.3 ARP缓存表的构成 在局域网的任何一台主机中,都有一个ARP缓存表.该缓存表中保存中多个ARP条目.每个ARP条目都是由一个IP ...
- ARP协议详解
ARP协议:地址解析协议,将IP地址映射到MAC地址. ARP缓存:每个主机都有存储IP地址和MAC地址的缓冲区.每条记录最长生存时间为10分钟,如果一条记录2分钟没有使用,则会被删除.如果始终在使用 ...
- TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议
把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数 ...
随机推荐
- POJ 3668 Game of Lines (暴力,判重)
题意:给定 n 个点,每个点都可以和另一个点相连,问你共有多少种不同斜率的直线. 析:那就直接暴力好了,反正数也不大,用set判重就好,注意斜率不存在的情况. 代码如下: #include <c ...
- [置顶] 文件和目录(一)--unix环境高级编程
普通文件和目录linux中最多的两类文件,linux中一共有七种类型的文件,如下: 1.普通文件 2.目录 3.字符特殊设备 4.块特殊设备 5.FIFO,又叫命名管道 6.Socket,即套接字 7 ...
- PictureEdit中拖放图片
public partial class Form2 : Form { string fileName = string.Empty; public Form2() { InitializeCompo ...
- log_bin_trust_function_creators错误解决
log_bin_trust_function_creators错误解决 当有mysql本地或远程建立function或procedure时报上面的错误 经试验是log_bin_trust_fun ...
- 【不积跬步,无以致千里】DELETE SINGLE IPTABLES RULES
You can delete them based on what they’re doing: iptables -D INPUT -s 127.0.0.1 -p tcp --dport 111 - ...
- Android如何判断一个应用在运行
在一个应用中,或一个Service .Receiver中有时候需要判断一个应用是否正在运行,以便进行一些相关的处理,这个时候我们需要得到一个ActivityManager,这个Manager顾名思意就 ...
- 参数对象Struts2中Action的属性接收参数
题记:写这篇博客要主是加深自己对参数对象的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢. Action中三种传递并接受参数: 1. 在Action添加成员属性接受参数 例如请求的 ...
- 自己写一个jQuery垂直滚动栏插件(panel)
html中原生的滚动栏比較难看,所以有些站点,会自己实现滚动栏,导航站点hao123在一个側栏中,就自己定义了垂直滚动栏,效果比較好看,截图例如以下: watermark/2/text/aHR0cDo ...
- 恢复WinMend Folder Hidden隐藏的文件
前几天用了个WinMend Folder Hidden,顺手隐藏了一个文件,感觉很方便的样子. 今天突然要用的时候发现这个文件不见了,于是我去Everything搜索,其实我是忘了之前已经把它隐藏了, ...
- 关于Python中的self
虽然我现在写过一些Python代码,但实际上几乎还没用过Class,而且一直觉得一个很别扭的事情是,Class中的函数都要写个参数self,虽然实例化调用的时候不需要. 当然,一开始就知道Python ...