以下内容节选自Quora,回答者Pankaj Kedia
问题
既然每个设备的MAC地址是唯一的,那为什么我们还需要引入IP来唯一地标识网络中的一个系统呢?
回答者的答案
让我用类比的方法来简单地回答这个问题:
假设你的名字‘A’,显然世界上其他人可能和你重名,所以这不能唯一地辨识你的身份。现在我们把你父亲的名字也加上(假设你父亲的名字是B),那么可以用B-A来标识你。但显然,这也未必能唯一地标识你的身份。
但是,我们再加上你爷爷的名字、你爷爷的父亲的名字——‘A’, ‘B.A’, ‘C.B.A’, ‘D.C.B.A’, ‘E.D.C.B.A’, ‘F.E.D.C.B.A’…可以想象,只要这条链足够长,就可以唯一得标识你的身份了。
而上面讲的这条名字链就像是MAC地址,一个设备的MAC地址是不会变的,就好像一个人的族谱是不会变的。
现在你能唯一地标识你的身份了。现在假设一个人寄一个快递(就好像在计算机网络中发送一个分组),TA可以把收件人的名字(包括族谱上父亲、爷爷的名字)写在快递上。这种方式也许有效。但是想一下,邮局看到这样没有地址的包裹它会怎么分发?邮局也许需要寻找世界上每一个人看看谁是收件人。类似于邮局,计算机网络中的路由器也要承受相似的问题: 它的转发表需要非常大,以包含世界上每一个MAC。
所以,类似于寄快递需要写地址,计算机网络中的分组也需要IP地址。
PS: MAC地址确实有可能更改,就好像有些人的族谱和姓名也是可以更改的,不过这不是时常发生的。