什么是ARP?
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。
连接设备
1. 同轴电缆(Coaxial)
同轴电缆连接计算机以及它们之间的通讯方式.png
缺陷:
1.半双工通信
2.容易冲突
3.不安全
4.一旦某段线路出现问题, 整个通信网络都会瘫痪
2. 集线器(Hub)
单集线器连接计算机以及它们之间的通讯方式.gif
多集线器连接计算机以及它们之间的通讯方式.gif
缺陷:
1.半双工通信
2.容易冲突
3.不安全
4.跟同轴电缆一样, 没有记录IP和MAC地址的能力
3. 网桥(Bridge)
网桥连接计算机以及它们之间的通讯方式.gif
功能和特点:
- 它可以
记录
每次ARP数据包通过时的携带的终端地址(IP和MAC)
,并且和网桥的某个端口号配对记录,下次如果有ICMP类型的数据包要通过时,就知道是它的目标是属于哪个端口的终端
- 以有两个端口号(A和B)的网桥为例:
A端口收到ARP数据包时记录终端的地址
端口号A{终端1的地址,终端2的地址,...终端N的地址}
B端口收到ARP数据包时记录终端的地址
端口号B{终端1的地址,终端2的地址,...终端N的地址}
- 当收到ICMP数据包时会判断属于哪个端口的终端,并判断是否执行转发,从而起到了
提高效率
和隔绝冲突域
的作用
4.交换机(Switch)
交换机连接计算机以及它们之间的通讯方式.gif
功能和特点:
1.相当于接口更多的网桥
2.全双工通信
3.比集线器更安全
4.连接的设备必须在同一网段, 即处在同一广播域
注意:虽然交换机好用,但是如果全世界的计算机都用交换机相连,那么很容易出现ARP广播风暴,网络资源会被瞬间耗尽。不仅如此,IP地址也不够用,所以交换机也不是最终的解决方案。
5.路由器(Router)
路由器连接计算机的方式.png
功能和特点:
1.提供网关服务
2.路由器一般都有不止一个端口
3.路由的每个端口都有一个IP和MAC地址
4.可以在不同网段之间转发数据(这样就实现了与世界联网)
5.隔绝广播域
6.处于同一网段下的终端通信不需要通过路由器
7.多个路由器相互连接的端口必须处在同一个网段中以计算机0向计算机3发送数据包为例
1.
计算机0
发送ARP数据包
经过交换机0
到计算机1
和路由器的端口Fa0/0
2.路由器
返回数据包给计算机0
,并且转发到计算机3
所在的网段
3.路由器
转发ARP数据包
到交换机1
,再分别发给计算机2
和计算机3
4.计算机3
把ARP数据包
发给交换机1
5.交换机1
把ARP数据包
发给路由器
6.由于此时路由器
已经记录了接收ARP数据包的终端地址
,所以ARP数据包
会发给交换机0
之后,直接发送到计算机0
7.计算机0
收到计算机3
的MAC地址
后就可以发送ICMP数据包
了(即开始通讯)
网友评论