网络上最重要的就是IP了,以太网使用网卡,IP和MAC有一定的关联。
当我们想要了解某个IP配置在哪一张网卡时,我们的主机会对整个局域网发送ARP数据包,对方收到ARP数据包之后就会返回他的MAC地址给我们,我们的主机就会知道对方所在的网卡,接下来就能够开始传递数据了。
在TCP/IP协议中,A给B发送IP包,在包头上需要填写B的Ip地址为目标地址,但是这个IP包在以太网上传输的时候,还需要进行一次以太包的封装,在这个以太包中,目标地址就是B的MAC地址。
在A不知道B的MAC地址的情况下,A就广播一个ARP请求包,请求包中填有B的IP地址,以太网中的所有计算机都会接受这个请求,但是正常的情况下,只有B会给出ARP应答包,包中填充上了B的MAC地址,恢复给A。
当使用ARP协议取得目标IP和它的网卡号后,就会将它记录到我们主机的ARP表中,记录20分钟。
ARP :address resolution protocol。是在仅仅知道主机的IP地址的时候,获得它的MAC地址的协议。ARP具体来说就是将网络层地址解析为数据链路层的MAC地址。
为什么需要ARP (address resolution protocol),
ARP协议处在TCP/IP协议中的数据链路层,发送数据包的过程:把数据包从网络的最底层物理层一层一层的封装包头,然后发送出去,通过局域网的话,通过IP广播的方式把数据包丢给目标IP所在的网卡,通过MAC地址。
IP广播的方式需要给局域网里的每一个主机发送数据包,如果MAC地址可以吻合的话,数据就发送给目的网卡。
如果是通过交换机发送,交换机会有自己维护的一个地址表。交换机会读取数据包中的MAC地址,如果和表中的MAC地址对应,会把数据丢到交换机上的MAC地址对应的端口。
我们发送的数据包只知道目的IP地址,但是不知道目的MAC地址,我们需要ARP协议来把IP地址翻译成MAC地址,但是这是在最终到达NET_ID相同的局域网之后。
在发送数据包之前,某节点的IP地址的ARP请求被广播到网络之后,会受到确认其物理地址的应答。
查看linux系统中的arp表。
转载于:https://blog.51cto.com/yuangeqingtian/1303723