数据链路上只要知道了对方的MAC地址不是就可以发送数据了吗?为什么还要IP地址?
原因有四:
一、MAC地址就好比一个人的身份证,有了身份证,你就能知道这个人在哪吗?我们需要利用IP地址来确定这个人的所在区域,在局域网中,可以使用本地的MAC地址进行通信。
二、到达目标机器的局域网之后,ip就没有用了,此时需要利用MAC地址来确定目标机器。因为局域网的IP对应的机器是不固定的 ,所以,在局域网中使用IP寻址是不严谨的。
三、假定MAC地址就是广播地址,那么所有接受过MAC包的路由器都会把这个消息进行转发,因此目标机器会收到很多重复的包(因为各个接受过该包的路由器都将其转发)。(为了防止上述现象的发生,目前路由器可以做到不转发那些将MAC地址作为广播地址的IP数据包)
四、如果不使用IP地址,那么就需要维护一个极其庞大的MAC地址表,在查找目的机器的时候,就需要向全世界发送数据包,可想而知会造成多大的网络流量。