欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > 『 Linux 』数据链路层 - MAC帧/以太网帧

『 Linux 』数据链路层 - MAC帧/以太网帧

2024/11/30 19:40:04 来源:https://blog.csdn.net/2202_75303754/article/details/144043896  浏览:    关键词:『 Linux 』数据链路层 - MAC帧/以太网帧

文章目录

    • MAC帧/以太网帧
    • 局域网的通信原理


MAC帧/以太网帧

MAC帧也叫做以太网帧,通常情况下MAC帧也是一个更广义的语术,用来描述数据链路层,即OSI模型的第二层的一种数据帧格式,这种格式包括其他如WI-FI,令牌环,帧中继等数据链路层所使用的数据帧;

以太网帧是具体使用的一种MAC帧,通常在讨论数据链路层的帧结构时两词代指相同内容;

MAC帧的报文结构如图所示;

MAC帧所采用的报文为定长报文,通过定长报文的方式将报头与有效载荷进行分离;

在进行分用时,MAC帧报头中类型字段将表明一些常用的数据格式,如IP(类型0800),ARP请求/响应(类型0806),PARP请求/响应(类型0835);

通过该字段来判断报文中的有效载荷需要交付给上层网络层的哪个协议,即分用思路;

而报文中的源地址和目的地址表示的通常为MAC地址;


局域网的通信原理

在网络通信过程中始终需要遵从"先决策,后执行"的策略,即上层进行决策,下层进行执行;

对应在网络通信过程中,网络层通常担任决策的一方,即决定需要将数据包交由给下一跳的哪一台设备;

以IP协议为例,在使用IP协议进行网络通信时,通常使用IP地址进行决策,即具体下一跳(Next hop)需要将数据发送至哪一个IP地址的设备,而真正在数据链路层所使用的地址为MAC地址;

  • MAC地址

    通常MAC地址简单来说就是网络设备的"身份证";

    用于唯一标识联网设备的硬件地址,每台设备上的网络接口卡(如以太网卡,WIFI适配器)都有一个独特的MAC地址;

    MAC地址通常为48位,用6对十六进制数字不表示,如00:1A:2B:3C:4D:5E;

    每个MAC地址都是全球唯一的,在局域网中,MAC地址用于标识和区分不同设备;

通常情况下在同一个局域网中,数据链路层中数据的传输是每个设备都能接收到的,但每台设备在收到对应的MAC帧时对MAC帧进行分析,当观察到MAC帧中的目的地址与本机的MAC地址不同时将会丢弃剩下的有效载荷;

这种通信原理在数据链路层中也被称为单播,对应的广播情况下同一个局域网内的所有设备都会获取到该MAC帧,并将该MAC帧交付给上层;

通常情况下,在同一局域网中至运行一个设备进行网络通信,因为本质上网络通信在光缆中是光电信号,光电信号在传输过程中也可能因为其他信号从而被干扰,这种情况被称为数据碰撞;

因此本质上互联网就是有限资源,因此为了避免这种情况,每台设备在数据链路层都会提供对应的"碰撞避免算法",但"碰撞避免算法"终究只能尽量避免数据碰撞的发生;

在数据传输过程中,通常一个数据若是过大,那么它在网络中需要传输的时间也就更长,因此MAC帧对报文进行了定长的方式,避免过大的报文在网络中进行传输;

同时为了兼容MAC帧的载荷大小,上层协议也需要做出调整,如IP协议再面对较大的数据包时将会对数据包进行分片处理,使得向数据链路层交付的每个数据包都不会超过MAC帧限制大小;

而在之前的文章提过,通常不支持IP协议对数据包进行分片处理,原因是数据包若是进行分片且其中一个分片在传输过程中出现丢包情况则会导致所有的IP数据包再次进行重发而不会只重发丢失的分片,因此引入了传输层的一些策略,如TCP协议中的流量控制,滑动窗口,慢启动等策略;

每一层的协议都在与更下一层的协议进行兼容;

在上面的内容中可以了解到,每一个设备都要对所接收到的MAC帧进行检查,确保MAC帧中的MAC地址与本设备的MAC地址相同时才会交付给上层,而真正交付到对应设备时,对应的设备同样的在数据链路层中先进行解包为IP数据包,再由网络层协议如IP协议检查对应的路由表找到下一个设备的IP地址,再交付给数据链路层封装为MAC帧交由下一台设备;

因此在进行网络通信时本质上数据是在不停的进行 “封装-解包-再封装” 的操作的;

当一个MAC帧因目的MAC地址匹配而重新到达网络层进行查看路由表并重新设置新的目标MAC地址而重新封装为新的MAC帧,这意味着一个MAC帧是只在当前局域网内有效的,因为每过一个新的网关(路由器)后都会有一个新的MAC帧,也许其有效载荷是相同的,但实际他们的MAC帧报头都是重新封装且不同的,所以一个MAC帧只在当前局域网内有效;

本质上所谓的数据发送到目标网络是通过无数个连续的子网实现的;

的MAC帧报头都是重新封装且不同的,所以一个MAC帧只在当前局域网内有效;

本质上所谓的数据发送到目标网络是通过无数个连续的子网实现的;

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com