查看“Address Resolution Protocol”的源代码
←
Address Resolution Protocol
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
地址解析协议(Address Resolution Protocol),通常称为“ARP”,是一种允许主机在只有[[IPv4]]地址时获取远程主机的以太网地址(MAC)的协议。 从技术上讲,由于数据格式大小可变,ARP支持其它地址格式,但通常与[[Ethernet]]和IP地址一起使用。 应该注意的是,IPv6中通过不同的协议提供了类似的功能。 ==背景== ARP定义于[http://tools.ietf.org/html/rfc826 RFC826]。 它运行在链路层上。 == 数据包格式 == '''** 注 **''' 如果所有整数字面量都假定为小尾端表示。 那么发送数据包时,需要将16位和32位整数转换为big-endian。 ====C风格的数据包格式==== <pre> struct arp { u16 htype; //硬件类型 u16 ptype; //协议类型 u8 hlen; // 硬件地址长度(以太网=6) u8 plen; // 协议地址长度(IPv4=4) u16 opcode; // ARP操作码 u8 srchw[hlen]; // 源硬件地址-hlen字节(见上文) u8 srcpr[plen]; // 源协议地址-plen字节(见上文)。如果IPv4只能是“u32”类型。 u8 dsthw[hlen]; // 目标硬件地址-hlen长度字节(见上文) u8 dstpr[plen]; //目的协议地址——plen字节(见上文)。如果IPv4只能是“u32”类型。 }; </pre> ====描述==== ''' 硬件类型 Hardware Type ''' 发送ARP数据包的硬件层的类型。以太网是0x1,除非使用PPP或其它什么,否则不需要任何其它值。 ''' 协议类型 Protocol Type ''' ARP请求使用的协议地址的类型。 IP是0x0800。 同样,除非你有不寻常的需求,否则你不应该在这里需要另一个值(在这种情况下,你应该知道你在做什么)。 ''' 硬件长度 Hardware Length ''' 硬件层类型的硬件地址长度。 MAC地址的长度为6字节。 ''' 协议长度 Protocol Length ''' 协议层的协议地址长度。IPv4地址的长度为4字节。 ''' 操作代码 Operation Code ''' 区别要执行的操作。 ''' 源/目的硬件地址 Source/Dest Hardware Address ''' 源主机和目的主机的硬件地址。 对于ARP请求操作时,大多数实现将目标MAC地址归零。 ''' 源/目的协议地址 Source/Dest Protocol Address ''' 源主机和目的主机的协议地址。 === 操作(Operations) === === ARP Request (ARP请求)=== ARP请求允许主机查找IP已知主机的MAC地址。 它的操作码是0x0001。 === ARP Reply (ARP应答)=== ARP应答是对ARP请求的响应。 它的操作码是0x0002。 [[Category:Network Protocols]] [[de:Address Resolution Protocol]]
返回至“
Address Resolution Protocol
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
变体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息