mac地址的作用

最近读一本关于linux编程的书籍,看到一部分很迷茫,忽然不知道mac地址的作用,既然已经有了ip地址了要mac地址何用呢?

MAC地址是数据链路层的地址,如果mac地址不可直达 ,直接丢弃,在LAN里面,一个网卡的MAC地址是唯一的
MAC地址在arp协议里常常用到,mac地址到ip地址的相互转化

IP地址是网络层的地址,如果ip地址不可达,接着转发,在WAN里面,ip地址不唯一,计算机的ip地址可以变动

咱们讨论下五层协议的作用。
物理层传输数据。数据链路实现的是网卡接口的驱动程序,以处理数据再物理层的传输。网路层的目的是选取中间节点,确定两台机器之间的线路。传输层处理端到端的通信。应用层处理业务逻辑。

数据通过封装,比如

应用层数据
tcp/udp数据 应用层数据
ip头部 tcp/udp数据 应用层数据
以太网头部 ip头部 tcp/udp数据 应用层数据

以上数据统一称为以太网帧–
以太帧的结构。目的物理地址-源物理地址,类型,数据,(crc)校验码

分发则反过来操作

网络层使用ip地址寻找一台机器,数据链路层使用mac地址寻找一台机器。

回到原始的问题

引用:不求东西 https://www.zhihu.com/question/21546408/answer/28155896

IP地址本质上是终点地址,它在跳过路由器(hop)的时候不会改变,而MAC地址则是下一跳的地址,每跳过一次路由器都会改变。

这就是为什么还要用MAC地址的原因之一,它起到了记录下一跳的信息的作用。

注:一般来说IP地址经过路由器是不变的,不过NAT(Network address translation)例外,这也是有些人反对NAT而支持IPV6的原因之一。

最后结论是:
mac地址可以作为一个翻译,毕竟世界不止有英特网也有其他网络
在二层用arp协议实现mac地址和ip地址的映射
在三层使用ip地址传输数据,基本不用到mac地址,用到也只是记录下一跳的信息。

你可能感兴趣的:(软件开发)