一般情况下,只要确定了IP地址,就可以直接发送IP数据包给目标地址
在数据链路层,我们要知道实际通信的时候每个IP对应的MAC地址
1.ARP摘要
ARP是一种能够解决地址问题的协议
以目标IP地址为线索,来定位下一个应该接收数据包的网络设备对应的MAC地址
如果目标主机不在同一条链路上面,通过路由器查找下一跳路由器的MAC地址
ARP适用于IPV4
ICMPV6适用于IPV6
2.ARP的工作机制
ARP借助ARP请求与ARP响应两种类型的包来确定MAC地址
发送端先通过广播发送一个ARP请求包(包含了想知道MAC地址的主机的IP)
广播的包可以被同一链路上的所有主机或者路由器所接收,因此每一个接收到ARP请求包的主机或者路由器都会解析该包
如果ARP请求包中的目标IP地址与自己的IP地址一致,那么就将自己的MAC地址塞入ARP响应包发送给发送端
通过ARP从IP地址获得MAC地址,实现了链路内的IP通信
因为ARP可以动态的进行地址解析,因此TCP/IP在网络构造和通信的时候不需要知道IP地址,只要有IP地址就可以
如果每次发送一个IP数据包都进行ARP请求的话会造成数据流量的浪费
通常会把获取到的MAC地址缓存一段时间,在内存中开辟一片域区来记忆这些信息
存放IP地址与MAC地址对应关系的ARP表格
等到下一次发送同样数据包的时候,直接去ARP表中进行使用,