您现在的位置是:首页 >技术交流 >【计网】为什么 IP 地址和 MAC 地址需要同时存在?网站首页技术交流
【计网】为什么 IP 地址和 MAC 地址需要同时存在?
(以下内容总结自互联网。)
从 OSI 七层结构来说
IP 地址属于 IP 协议,是网络层的地址 ;MAC 地址属于以太网协议,是数据链路层的地址。
Q:为什么不能只用 MAC 地址,取消 IP 地址?
A:使用 IP 地址来定位比用 MAC 地址来定位更加方便,IP 地址有层次,MAC 没有。
Q:为什么不能只用 IP 地址,取消 MAC 地址?
A:源 MAC 在转发的时候会改变,到达目的地后就不知道是谁发来的了。
IP 头部里记录了源 IP 和目的 IP,这两个在路由器转发的时候都是不会变的。
以太网头部里记录了源 MAC 和目的 MAC,这两个在路由器转发的时候是会发生改变的。
Q:为什么不在 IP 头里再加几个字段“上一条 IP”、“下一跳 IP”呢?分别保存不行吗?这样不就能取消 MAC 地址了吗?
A:一开始没有这么做,后来再修改成本太大1。此外,网络层除了 IP 还有其他协议,其他的协议可能会依赖 MAC 地址1。
从历史原因来说
最开始,网络中的计算机数量比较少,只需要 MAC 地址就可以和同一网络上的计算机通信。
网络逐渐发展,主机的数量增加,同时也产生了很多个不同的网络,为了解决不同网络之间互连的问题,又加了一层,才有了 IP 协议4。
可以说,MAC 地址诞生之初用于识别不同设备,IP 地址诞生之初用于跨网络识别设备1。
此外,不同的以太网可能使用不同的标准,MAC 地址可能也有所差异。更有可能数据链路层用的根本不是以太网,而是其他的协议(IP 协议甚至可以运行在蓝牙上5。)。IP 地址的存在就屏蔽了这种差异,把协议 A 地址、协议 B 地址、...互转
变成了协议 A 地址↔IP 地址、协议 B 地址↔IP 地址、...
,简化了流程。
Q:如果我不需要连接到互联网,只是同一局域网之间的设备互相通信,直接根据 MAC 地址来通信吗?(也就是不使用 TCP/IP 协议)
A:理论可行,但是你要重新实现一套网络层协议,直接用 MAC 地址作为定位依据。6
但是现在局域网依旧使用 IP 协议,毕竟有现成的为什么不直接用?
总结
MAC 地址和 IP 地址的目的各不相同,MAC 解决的是识别同网络下设备的问题,IP 解决的是识别很多个网络下设备的问题。