IP地址属于网络层,而MAC地址属于数据链路层。 网络层协议使数据可以从一个网络传递到另一个网络上(ARP根据目的IP地址,找到中间节点的MAC地址,通过中间节点传送,从而最终到达目的网络);数据链路层协议可以使数据从一个节点传递到相同链路的另一个节点上(通过MAC地址)。
既然在网络链路上传送的帧最终是按照硬件地址去找到主机的,那么我们为什么还要使用抽象的IP地址,而不直接使用硬件地址进行通信呢?这样似乎还可以免除使用ARP
书上答案:由于全世界存在着各式各样的网络,他们使用不同的硬件地址
。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转化工作
,因此由用户或用户主机来完成这项工作几乎是不可能的的事。但IP编址就把这个复杂的问题解决了。连接到互联网的主机只需要各自拥有一个唯一的IP地址,他们之间的通信就像连接在同一个网络那么简单方便。因为ARP是由计算机软件自动进行的,对用户来说是看不见这种调用过程的。
互联网是由很多异构的物理网络通过路由器联接起来的,不同的物理网络,寻址方式很可能是不同的,可能根本不使用MAC地址。这样,不同的物理网络想要进行通讯就变得十分困难,因为彼此的数据帧相互不兼容。所以,我们想要一个公用的标准去遵循,这个标准就是IP。IP地址的分配是根据网络的拓朴结构,而不是根据谁制造了网络设置。
为什么有了IP地址,还要Mac地址
无论是局域网,还是广域网中的计算机之间的通信,最终都表现为将数据包从某种形式的链路上的初始节点出发,从一个节点传递到另一个节点,最终传送到目的节点。数据包在这些节点之间的移动都是由ARP(Address Resolution Protocol:地址解析协议)负责将IP地址映射到MAC地址上来完成的。
网友评论