在网络中ARP协议是怎样实现数据包传输的
2008-11-21 13:32:05 来源:WEB开发网你知道,数据包在局域网上是怎么传输的吗?是靠什么来传输的吗?也许你会说是靠IP地址,那么你只正确了一半。其实真正在传输过程中是靠计算机的网卡地址即MAC来传输。
有两台计算机A(IP:192.168.85.1 MAC:AA-AA-AA-AA-AA-AA)、B(IP:192.168.85.100 MAC:BB-BB-BB-BB-BB-BB)。
现在用A去ping B:
看见Reply from 192.168.85.100: bytes=32 time<10ms TTL=32 这样的信息。
然后在命令行中输入 arp -a,会看见192.168.85.100 BB-BB-BB-BB-BB-BB dynamic这样的信息。
这就是arp高速缓存中IP地址和MAC地址的一个映射关系,在以太网中,数据传递靠的是MAC,而并不是IP地址。其实在这背后就隐藏着arp的秘密。
你一定会问,网络上这么多计算机,A是怎么找到B的?那么我们就来分析一下细节。
首先A并不知道B在哪里,那么A首先就会发一个广播的ARP请求,即目的MAC为FF-FF-FF- FF-FF-FF,目的IP为B的192.168.85.100,再带上自己的源IP,和源MAC。
那么这个网段上的所有计算机都会接收到来自A的ARP请求,由于每台计算机都有自己唯一的MAC和IP,那么它会分析目的IP即192.168.85.100是不是自己的IP?
如果不是,网卡会自动丢弃数据包。如果B接收到了,经过分析,目的IP是自己的,于是更新自己的ARP高速缓存,记录下A的IP和MAC。然后B就会回应A一个ARP应答,就是把A的源IP,源MAC变成现在目的IP,和目的MAC,再带上自己的源IP,源MAC,发送给A。
当A机接收到ARP应答后,更新自己的ARP高速缓存,即把arp应答中的B机的源IP,源MAC的映射关系记录在高速缓存中。那么现在A机中有B的MAC和IP,B机中也有A的MAC和IP。arp请求和应答过程就结束了。
由于arp高速缓存是会定时自动更新的,在没有静态绑定的情况下,IP和MAC的映射关系会随时间流逝自动消失。在以后的通信中,A在和B通信时,会首先察看arp高速缓存中有没有B的IP和MAC的映射关系,如果有,就直接取得MAC地址,如果没有就再发一次ARP请求的广播,B再应答即重复上面动作。
赞助商链接