MAC地址

       硬件地址又称为物理地址或MAC地址(因为这种地址用在MAC帧中),“MAC地址”,实际上就是是适配器地址,当这块适配器插入(或嵌入)到某台计算机后,适配器上的标识符EUI-48就成为这台计算机的MAC地址。

MAC帧的格式

       常见的以太网MAC帧格式有两种标准,一种是DIX Ethernt V2标准(即以太网V2标准),另一种是IEEE的802.3标准,这里只介绍使用最多的以太网V2的MAC帧格式,图中假定网络层使用的是IP协议,实际上使用其他的协议也是可以的。

       前两个字段分别为6字节长的目的地址和源地址字段。第三个字段是2字节的类型字段,用来标志上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议。例如当类型字段的值是0X0800时,就表示上层使用的是IP数据报。若类型字段的值为0X8137,则表示该帧是由Novell IPX发过来的。第四个字段是数据字段,其长度在46到1500字节之间(46字节是这样得来的:最小长度64自己减去18字节的首部和尾部就得出数据字段的最小长度)。最后一个字段是4字节的帧检验序列FCS(使用CRC检验)。

       在以太网V2的MAC帧格式中,其首部并没有一个帧长度(或数据长度)字段,那么,MAC子层又怎样知道从接收到的以太网帧中取出多长字节的数据交付上一层协议呢?我们知道一种曼彻斯特编码(就是MAC帧用的这种)的一个重要特点就是:在曼彻斯特编码的每一个码元(不管码元是1还是0)的正中间一定有一次电压的转换(从高到低或从低到高)。当发送方把一个以太网帧发送完毕后,就不再发送其他码元了(既不发送1,也不发送0),因此,发送方网络适配器的接口上的电压也就不再变化了。这样接收方就可以很容易找到以太网帧的结束位置。在这个位置往前数4字节(FCS字段长度是4字节),就能确定数据字段的结束位置。

       当数据字段的长度小于46字节时,MAC子层就会在数据字段的后面加入一个整数字节的填充字段,以保证以太网的MAC帧长不小于64字节。MAC帧的首部并没有指出数据字段的长度是多少,在有填充字段的情况下,接收端的MAC子层在剥去首部和尾部后就把数据字段和填充字段一起交给上层协议。现在问题是上层协议如何知道填充字段的长度呢?(IP层应当丢弃没有用的填充字段)。可见,上层协议必须具有识别有效的数据字段长度的功能。我们知道,当上层使用IP协议时,其首部就有一个“总长度”字段。因此,“总长度”加上填充字段的长度,就应当等于MAC帧数据字段的长度。例如,当IP数据报的总长度为42字节时,填充字段共有4字节。当MAC帧把46字节的数据上交给IP层后,IP层就把其中最后4字节的填充字段丢弃。(就是IP协议的首部有一个记录IP数据报的总长度,比如为42字节,当现在MAC帧交上去的为46字节,现在IP层就知道最后的4个字节为填充字段,所以就丢弃这4个填充字段)。

       从上图可以看出,在传输媒体上实际传送的要比MAC帧还多8个字节,这是因为当一个站在刚开始接受MAC帧时,由于适配器的时钟尚未与到达的比特流达成同步,因此MAC帧的最前面的若干位就无法接受接受,结果使整个的MAC成为无用的帧。为了接收端迅速实现位同步,从MAC子层向下传到物理层时还要在帧的前面插入8字节(由硬件完成),它有两个字段构成。第一个字段是7个字节的前同步码(1和0交替码),它的作用是使接收端的适配器在接收MAC帧时能够迅速调整其时钟频率,使他和发送端的时钟同步,也就是“实现位同步”(位同步就是比特同步的意思)。第二个字段是帧开始定界符,定义为10101011.它的前六位的作用和前同步码一样,最后的两个连续的1就是告诉接收端适配器:“MAC”帧的信息马上就来了,请适配器注意接收。MAC帧的FCS字段的检验范围不包括前同步码和帧开始定界符。

       还需注意,在以太网上传输数据时是以帧为单位传送的,以太网在传送帧时,各帧之间还必须有一定的间隙。因此,接收端只要找到帧开始定界符,其后面的连续到达 的比特流就都属于同一个MAC帧。可见以太网不需要使用帧结束定界符,也不需要使用字节插入来保证透明传输。

       IEEE802.3标准规定凡出现下列情况之一的即为无效的MAC帧:

1) 帧的长度不是整数个字节。

2) 用收到的帧检验序列FCS查出有差错。

3) 收到的帧的MAC客户端数据字段的长度不在46~1500字节之间。考虑到MAC帧首部和尾部的长度共有18字节,可以得出有效的MAC帧长度为64~1518字节之间。

     对于检查出的无效MAC帧就简单的丢弃。以太网不负责重传丢弃的帧。

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值