相信学习过《计算机网络》这门课程的同学都对mac地址和ip地址有所了解,包括交换机是如何“自我”学习建立地址表,而各种路由算法又是如何将我们的世界“连接”起来的。
我在学习这部分的时候,突然想为什么既有mac地址,又有ip地址,我们不能让他们存在一个就让我们的世界连接起来吗?
我们知道,MAC集成在网卡,由48bit的16进制的数字组成,在网络底层的物理传输过程中,数据传输是通过物理地址来识别主机的。
mac地址本应该是全球唯一的,但是现实总是残酷的,当然,这不是本文重点,不过只要两个相同的mac地址不出现在同一个局域网内,那还是没影响的。
为什么要引入ip地址,即所谓的”逻辑地址“?
第一,实际中,我们的数据链路层不只有一种协议,链路之间信息传输不只有一种,这也就是网络层存在的意义,它屏蔽了链路层的细节,我们只需要关注主机和主机之间的通信,而ip协议就处于网络层中,同样的,网络层其实有多种协议,只不过ip协议成为了今天的主流。有了ip地址,我们可以对网络进行逻辑上的划分。
第二,现在我们假设只使用mac地址的话,全世界通过一台又一台的交换机互连起来,在小型局域网中,用户之间发送信息时,他们之间的媒介是交换机,交换机不断的“学习“更新地址表,从而将报文送到正确的用户手中,但要知道,这只是局域网通信啊,如果我们把整个世界当成一个局域网,还继续采用这种方式的话,传输效率将不堪设想。所以局域网内还是二层通信,而局域网和局域网之间,我们利用三层通信。
联系:在局域网中,如果我们只知道对方的ip地址,这时我们需要arp协议获取到对方的mac地址,进而通信。
小结:ip地址在网络层中,具有”三层“意义,而mac地址在数据链路层中,具有”二层“意义,在局域网内,我们使用mac地址寻址,而当需要跨网段时,我们需要利用ip地址寻址。