网络部分--基础知识点--为什么要使用IP地址和MAC地址两种地址?

注意理解网络层ip地址的作用,它与数据链路层的mac地址所解决的问题并不同,网络层ip地址解决是的跨网络传输的问题,而数据链路层的mac地址解决的是局域网(更准确的说是以太网)传输的问题。设想一下,若现在没有互联网,只有局域网,那么在局域网内实现端到端的通信(端到端的通信是指应用进程之间的通信),是不是可以不用设计网络层了,因为数据链路层已经解决了主机到主机的问题(这个时候你就不要再想没有网络层的ip地址和arp协议如何知道主机的mac地址,因为我说不设计网络层了,那我们就在数据链路层设计其他协议来解决这些问题),接下来直接是运输层,解决进程到进程的问题,就可以完成通信了。并且还可以将mac地址设计成固定且唯一,这样你拿着电脑无论去接哪个局域网,都可以直接在局域网内进行通信了,而不用等待网络管理员给你分配一个地址,而且还不用担心这个地址会与局域网内的其他人重复。

但是现在我们现在要搞互联网,也就是将全球所有的局域网互联互通,如果还接着只使用mac地址,那么跨局域网通信将会变得异常困难,因为虽然说mac地址可以唯一标识一台主机,但同时它也是固定的,这会使得路由的设计变得相当的困难,比如你随时可能从一个局域网移动到另一个局域网,但是上网的地址却没有变,那么网络如何路由到你,即便说可以设计路由协议来解决这个问题,但我想那也绝对是比设计一个网络层要复杂得多。所以再设计一个网络层,用另外一个可以唯一标识一台主机的地址,并且这个地址是动态分配,而且还是基于地域的,来解决这个跨网络传输问题将会更加简单合理。这就好比如果全世界只有一个人叫张三,理论上我们可以通过张三这个名找到张三这个人,但实际上好像有点困难,还是有个具体的地址门牌号啥的好找一点。这里的张三代指mac地址,具体的门牌号地址代指ip地址,张三无论跑去哪里,都可以直接用张三这个名字与周围的人进行交流,但若在世界另一个角落有个人想要与张三交换信息,那就很难办了,他如果不知道张三的具体地址,就根本无法把信息交付给张三。

知道了上面这些,接下来我们以这个角度来理解为什么互联网以TCP/IP协议族作为标准。因为我们这里说的是互联网,所以应更加关心跨网络传输的问题,而在TCP/IP协议族中只规定了网络层及以上的协议,并没有规定网络层以下该如何设计,所以它并不在意数据链路层使用的是什么协议。这时我们要把眼界放开阔一点,因为链路层协议不能与以太网协议划等号,我们可以在链路层使用其他协议,如PPP协议,这时根本就用不到mac地址了,甚至根本就不需要链路层地址了,因为没有链路层地址PPP协议也可以完成在局域网内信息由主机到主机的交付。也就是说TCP/IP协议族不管你链路层用什么协议,只要你网络层使用的是ip地址,那你就可以上互联网实现跨网络通信了,这样做也极为合理,它不仅让数据链路层协议百花齐放,从而实现各种类型的局域网传输,也推动了互联网的发展。综上,设计成两层即网络层和数据链路层,用两个不同的地址分别解决跨网络传输和局域网传输无疑是最合适的,所以说真的不得不佩服互联网的先驱者们的设计思想。

你可能感兴趣的:(网络部分)