设为首页收藏本站language 语言切换
查看: 1587|回复: 0
收起左侧

ARP如何在网络中进行数据传输

[复制链接]
 成长值: 63400
发表于 2010-8-28 11:27:14 | 显示全部楼层 |阅读模式
经常有朋友问我,数据包在局域网上是怎么传输的,是靠什么来传输的?自然很多用户会说是靠IP来传播,其实真正在传输过程中起决定作用的是计算机的MAC地址(即网卡地址或物理地址)。
  假如有两台计算机A(IP:192.168.0.1 MAC:AA-AA-AA-AA-AA-AA)、B(IP:192.168.0.2MAC:BB-BB-BB-BB-BB-BB)需要建立连接,自然用户会想到通过ping命令来检测连接状况。
    例如:
ping 192.168.0.2

  看见
Reply from 192.168.0.2: bytes=32 time<10ms TTL=32

   
    然后在命令行中输入arp -a,会看见192.168.0.2 BB-BB-BB-BB-BB-BB dynamic这样的信息。
  这就是arp高速缓存中IP地址和MAC地址的一个映射关系,由此可见,在网络中数据传递靠的是MAC地址信息,而并不是IP地址。
  有用户肯定想知道,A和B是如何建立连接关系的,现在笔者就代有疑惑的用户来分析一下。
  首先A需要向网络内发送一个ARP广播请求,要求与目的MAC为BB-BB-BB-BB-BB-BB ,目的IP为B的192.168.0.2建立连接,在请求信息中同样包含了自己的源IP,和源MAC。
  网络中的所有计算机都会接收到来自A的ARP请求,由于每台计算机都有自己唯一的MAC和IP,网络中的计算机会分析目的IP即192.168.0.2是不是自己的IP?
  如果不是,网卡会自动丢弃数据包。如果B接收到了,经过分析,目的IP是自己的,于是更新自己的ARP高速缓存,记录下A的IP和MAC。然后B回应A一个ARP应答,我们可以理解为把A的源IP,源MAC更改为现在的目的IP和目的MAC,再携带上自己的源IP和源MAC,发送给A。
  当A计算机接收到ARP应答后,更新自己的ARP高速缓存,即把应答中的B机的源IP,源MAC的映射关系记录在高速缓存中。那么现在A机中有B的MAC和IP,B机中也有A的MAC和IP。这样一个ARP请求就结束了,用户A和B也就可以相互建立连接。
  由于ARP高速缓存列表是会定时自动更新的,在没有静态绑定的情况下,IP和MAC的映射关系会是不固定的。这里用户可能会想到ARP欺骗,对ARP欺骗就是利用了这个原理,伪造网关IP信息向整个网内发送连接请求,所以通过IP和MAC地址绑定可以起到防范ARP病毒的作用。如果ARP对应关系是静态的,那么会直接建立连接,如果ARP缓存列表没有A或B的信息,就会从新建立连接请求。
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-2-4 06:48 , Processed in 0.061382 second(s), 12 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表