以太网的寻址
在一个以太网内,连接了许多台PC机,要把message从A主机发送到B主机,一般要通过IP层作为互通。但是对于一台主机来说,其底层硬件和IP地址并没有直接的关系,也就是说,一个IP数据包从A到B,A去找到目标B不是说找到B的IP就搞定了,更准确的说是要找到B的MAC地址。
MAC是每一个网卡固有的唯一标识,那么从A发送的数据包是如何找到B主机的呢?
1、主机A发送一种叫做ARP(地址解释协议)的以太网帧,这个帧里面有A的MAC地址,A的IP地址,目的B的IP地址,而B的MAC地址占时不知道,设置为00000000;
2、然后ARP进行广播,在整个网络中去寻找目的IP与B的IP相匹配的主机;
3、找到之后,就记下目的主机B的MAC地址,建立一条记录;
4、许多个这样的记录,就绘制成了一张“地址映射表”,方便下次访问(以后就不用ARP广播了,可以直接访问了)
打个比方:
A要送礼物给B,但是只知道B的名字(IP地址),却不知道B的住址(MAC地址),那么这个ARP包的广播,就好比A挨家挨户的去敲门询问一样,他要寻找一个名叫m.n.p.q的主机。于是各个住户(各台主机)都判断一下自己的名字是否叫m.n.p.q。只有B发现自己的名字匹配,于是A就找到B了,然后记录下B的住址(MAC地址),以后A与B之间就可以“礼尚往来,互相通信”了,不需要再挨家挨户的去敲门了。