mac层的主要功能介绍

  MAC简介

  MAC即媒体介入控制层,属于OSI模型中数据链路层下层子层。它定义了数据帧怎样在介质上进行传输。在共享同一个带宽的链路中,对连接介质的访问是“先来先服务”的。物理寻址在此处被定义,逻辑拓扑(信号通过物理拓扑的路径)也在此处被定义。线路控制、出错通知(不纠正)、帧的传递顺序和可选择的流量控制也在这一子层实现。

  MAC协议的种类

  多个用户,多址接入的核心问题就是:对于一个信道,多个用户产生竞争的时候,如何采用一些协调机制,也就是采用何种MAC协议。例如两种极端的MAC协议,一种是完全自由的方式,用户自由发送,但是要解决一个问题是碰撞后如何办,一种是完全排序,每个用户都被规定了详细的规则来发送,接收包。但是,实际上不可能这样的,因为MAC协议,主要决定了通信的吞吐量、延迟等性能,所以,这块是非常重要的,是多种方式的结合。MAC协议主要分为以下三类

  1、固定分配信道。信道基本上可以分为频分、时分、码分、空分,每个用户都被固定的分配了一个信道,这种方式实时性很高,但是有浪费。主要是面向语音。例如FDMA(电话)、TDMA(GSM)、CDMA.

  2、随机分配信道。。主要是面向数据。例如ALOHA,CSMA就是随机分配的典型例子。

  3、按需分配信道。根据用户的要求,按照需求分配信道,例如802.16就是按照需求分配信道。主要是面型多媒体。

  MAC帧格式

  MAC帧基本格式如下图所示:

mac层的主要功能介绍

  1、FrameControl字段

mac层的主要功能介绍

  -ProtocolVersion:目前为0

  -Type:帧类别,有下面三种,每个类别又有一些子类别(见Subtype)

  00:管理帧(ManagementFrame)

  01:控制帧(ControlFrame)

  10:数据帧(DataFrame)

  11:保留未使用

  -Subtype:帧子类别,与Type共同来决定一个帧的类型,详细如下表所示

mac层的主要功能介绍

  -ToDS/FromDS:指示帧目的地是否为DS(分布式系统),可以简单地理解为是否【发往/来自】AP

mac层的主要功能介绍

  -Morefragments:指示是否还有分片(除去最后一个分片)

  -Retry:指示当前帧是否为重传帧,接收方收到后会删掉重复帧

  -Powermanagement:指示STA的电源管理模式,1表示STA在数据交换完成后进入省电(Power-Save)模式,对于AP恒为0

  -Moredata:指示AP为进入省电模式的STA进行帧缓存(来自DS)

  -WEP:指示framebody是否使用WEP加密

  -Order:指示将进行严格次序(StrictlyOrdered)传送

  2、其他字段

  -DuraTIon/ID:可以用在下面三个场景中

mac层的主要功能介绍

  @1DuraTIon,第15位置0,用于设定NAV,数值代表预计使用介质的微秒数

  @2在CFP帧中,第14位置0,第15位置1,其他值为0,字段值为32768,让其他没有收到Beacon帧的STA公告无竞争周期

  @3在PS-Poll(省电-轮询)帧中,第14、15位同时置1,用于从省电模式醒来的STA发送AID(关联标识符)以取得在AP中的缓存帧

  -Address:有以下几种类型,由帧类型决定使用哪几个地址字段,通常有三个,SA、DA和BSSID

  BSSID,基本服务集标识符

  DA,目的地址

  SA,源地址

  RA,接收端地址

  TA,发送端地址

  -SequenceControl:包含两个子字段,4位的分片编号(FragmentNumber)和12位的顺序编号(SequenceNumber)

mac层的主要功能介绍

  顺序编号4096的模数,从0开始,每处理一个上层封包就加1

  若上层封包分片处理,所有帧分片采用相同顺序编号

  对于重传帧,顺序编号不变

  -FrameBody:帧主体也称数据字段(Datafield),用于传递上层有效载荷(Payload),可为0

  -FCS:帧校验序列,采用循环冗余校验(CRC)码,计算范围包括MAC头中所有字段及帧主体

  3、帧主体数据

  不同于以太网,802.11的FrameBody以802.2的逻辑链路控制(LLC)来封装不同类型的网络协议

  有两种封装方式:RFC1042、802.1H

  下图是802.11里的IP封装

mac层的主要功能介绍

  MAC的修改地址

  通用修改

  需要根据MAC芯片型号联系厂家拿到对应的固件刷写工具,以及MAC地址文件,其中MAC地址是需要向IEEE联盟购买有效段的,并是唯一的,如果出现重复的则会报IP地址重复的错误而导致相同MAC地址的计算机网络访问异常。

  Unix/Linux系统下修改MAC地址

  进入保存MAC信息文件

  图形界面下Alt+Ctrl+Space→打开命令行终端→

  方法1、输入:ifconfig

  方法2、输入:ifconfig|grep“inet”|cut-c0-36|sed-e‘s/[a-zA-Z:]//g’

  方法3、输入:hostname-i

  方法4、输入:netstat-r

  方法5、输入:cat/etc/resolv.conf

  →显示相关网络数据

  其中inetaddr为ip地址,HWaddr是主机的HardwareAddress即MAC。

  修改MAC

  方法1、修改MAC的方法:在/etc/rc.d/init.d/中的network中加入ifconfigeth0hwetherxx:xx:xx:xx:xx:xx(MAC)然后重新启动就会发现网卡地址已经是xxxxxxx了。

  方法2、也可以将/sbin/ipconfigeth0hwetherMACaddr加入到/etc/rc.local中去。

  • mac层的主要功能介绍已关闭评论
    A+
发布日期:2019年07月14日  所属分类:通信