ARP 协议
MAC地址是用于物理上直接连接(在中继器能力范围内)的机器相互通信,IP地址是用于不同网络中间的机器相互通信,这是由传统的以太网的拓扑结构(总线型)决定的。
发送packet只能在数据链路层,由MAC地址来识别,当同一网络中的机器通信时,需要预先知道对方的MAC地址,否则向本网络发送ARP广播;当不同网络的机器相互通信时,需要知道网关的MAC地址,否则向本网络发送ARP广播;正是因为不知道MAC地址,才发送广播,知道的话,直接发送packet。对方需要知道收到的packet的格式,才能正确通信,ARP就是其中一种。
只有比对IP地址才知道是不是在同一网络。当不同网络的机器通信时,先发packet给网关,网关修改该packet的目的MAC地址为下一跳的机器的MAC地址,再发送过去,IP地址不变,以此类推,直到目的机器。
- 静态映射
- 动态映射
ARP协议是request-reply架构的,发送方先广播询问指定IP地址的MAC,收到广播的机器会应答,回复报文包含自己的MAC地址。双方都更新自己的ARP缓存表。
- ARP攻击:因为ARP报文的发起方并不验证收到的回复是否为指定IP的机器回复的,所以同一网络的机器可以向发送方不停的发送reply报文,声称自己是该IP的机器,从而劫持通信。reply报文中IP地址是可以伪造的
ARP PROXY
被一个路由器分开的机器不属于同一个网络,收不到双方的ARP广播,因为路由器不转发ARP广播。如果两台机器被路由器分开(接在路由器的不同接口上),但是IP地址属于同一个网络的,就不能正常通信。需要路由器作ARP代理。路由器收到ARP广播后回复自己的MAC地址。这样把物理上不连接的网络变成第二层上是同一个网络。
多播地址的ARP
静态映射。MAC地址有多播地址,IP地址也有。这样的网卡是特制的,带有这样的MAC地址:24位组织号码 + 24位IP地址
RARP
知道对方MAC地址,直接发送报文,而非广播,对方应答IP地址。一般机器不需要,IP地址存储在机器disk里面,无盘工作站需要。
posted on 2014-03-13 22:20 Happykiller 阅读(353) 评论(0) 编辑 收藏 举报