以太网的MAC层

MAC地址又称为硬件地址或者是物理地址,其实是指局域网上的每一台计算机中固化在适配器的ROM中的地址。由于计算机的发展,世界上的计算机太多,为了能够标识每一台计算机,目前所采用的MAC地址一般是6字节的48位的长度。这里我们可以这样简单的理解,所谓的MAC地址,实际上就是适配器地址

简述一下适配的作用:

适配器实际上就是每台计算机接入到互联网的一个接口,路由器因为要将数据在不同的局域网上面路由,所以路由器一般不止一个接口,就是说路由器一般不止一个硬件地址。

适配器有过滤的功能,它在局域网上每次收到一个MAC帧时(局域网上面传输的数据),就检查MAC帧中的目的地址,发现如果和自己的地址一样,则拿到该MAC帧,然后做其他处理,如果发现和自己的MAC地址不一样,则把刚刚拿到的MAC帧再次丢到局域网中,以供其他的计算机使用。局域网上面的每一台计算机都是通过这种方式拿到自己需要的数据(MAC帧)。

MAC帧的格式

首先看一下以太网V2的MAC帧格式(MAC格式标准有两个,一个是DIX Ethernet V2标准,一个是IEEE的802.3标准)

以太网的MAC层

上图中的第一个地段的6个字节放置的是目的地址,第二个字段的6个字节放置的内容是源地址,第三个字段的2个字节放置的内容是类型,用来标识上一层使用的是什么协议,比如0800是IP协议,0806是ARP协议,8035是RARP协议,MAC层根据这些字段的内容来把数据传递给特定的层去使用。第四个字段是数据字段,它的长度是46–1500字节,如果数据的长度不满46字节,MAC帧就会加入一些数据进行填充,那么上层是如何知道数据的长度呢,因为MAC帧并没有一个字段用来标识数据的长度,解决这个问题使用了一种曼彻斯特编码,大家可以上网查阅。最后一个字段是4个字节是帧检验序列,使用了CRC校验。

这里还需要注意的一个问题是,当我们数据字段的数据长度没有46字节时,上层是如何把多余的由MAC帧填充的数据丢掉呢,这里我们的上层协议中有字段长度,会自动的识别,然后把多余的数据丢掉。

相关推荐