ARP
维基百科,自由的百科全书
应用层 | DNS, FTP, ENRP,HTTP, IMAP, IRC, NNTP, POP3, RTP, SIP, SMTP, SNMP, SSH, Telnet, BitTorrent, DHCP ... |
传输层 | DCCP, SCTP, TCP, UDP, IL, RUDP, ... |
网络层 | IP(IPv4, IPv6),ICMP,ARP,RARP,IGMP... |
zh-cn:数据链路层; zh-hk:資料鏈結層; zh-tw:資料鏈結層 | Ethernet, Wi-Fi, Token Ring, MPLS, PPP ... |
zh-cn:物理层; zh-hk:實體層; zh-tw:實體層 | RS-232, EIA-422, RS-449, EIA-485, 10BASE2, 10BASE-T ... |
ARP协议(Address Resolution Protocol),或称地址解析协议。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
[编辑] 功能
在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址,但这个目标MAC地址是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。
[编辑] 原理
在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一对应的,如表甲所示。
主机名稱 | IP地址 | MAC地址 |
---|---|---|
A | 192.168.38.10 | 00-AA-00-62-D2-02 |
B | 192.168.38.11 | 00-BB-00-62-C2-02 |
C | 192.168.38.12 | 00-CC-00-62-C2-02 |
D | 192.168.38.13 | 00-DD-00-62-C2-02 |
E | 192.168.38.14 | 00-EE-00-62-C2-02 |
... | ... |
以主机A(192.168.38.10)向主机B(192.168.38.11)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址為(00-BB-00-62-C2-02),直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“192.168.38.11的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.38.12的MAC地址是(00-BB-00-62-C2-02)”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。