大家好,我是本期栏目编辑小友,现在为大家讲解mac层的主要功能介绍问题。
MAC简介
即媒体干预控制层,属于OSI模型中数据链路层的下层子层。它定义了数据帧在介质上的传输方式。在共享相同带宽的链路中,对连接介质的访问是“先到先得”。这里定义了物理寻址,也定义了逻辑拓扑(信号通过物理拓扑的路径)。线路控制、错误通知(未纠正)、帧传输顺序和可选的流量控制也在该子层中实现。
MAC协议的类型。
多用户多址的核心问题是如何采用一些协调机制,即多用户竞争一个信道时采用哪种MAC协议。比如有两种极端的MAC协议,一种是完全自由的,用户自由发送,但一个需要解决的问题是碰撞后怎么办,另一种是完全排序,给每个用户发送和接收数据包的详细规则。但是,其实这是不可能的,因为MAC协议主要决定了通信的吞吐量、时延等性能,所以这一块非常重要,而且是各种方式的结合。MAC协议主要分为以下三类。
1.固定信道分配。信道基本上可以分为频分、时分、码分和空分,每个用户固定分配一个信道。这种方法实时性很高,但很浪费。主要是为了发声。例如FDMA(电话)、时分多址(全球移动通信系统)、码分多址。
2.随机分配频道。主要面向数据。例如,ALOHA和CSMA就是随机分配的典型例子。
3.按需分配渠道。根据用户需求,按需求分配频道。例如,802.16表示根据需求分配信道。主要是区域多媒体。
媒体访问控制帧格式
媒体访问控制帧基本格式如下图所示:
1.框架控件字段。
-ProtocolVersion:当前为0。
-类型:框架有三种类型,每种类型都有一些子类别(参见子类型)。
00:管理框架。
01:控制框。
10:数据帧(DataFrame)。
11:不使用。
-SubType: frame subType,它和type一起决定了一个框架的类型,如下表所示。
-ToDS/FromDS:表示帧的目的地是否为DS(分布式系统),可以简单理解为是否是【发往/发自】AP。
-Morefragments:指示是否有更多的片段(除了最后一个片段)。
-重试:表示当前帧是否为重传帧,接收方收到后会删除重复帧。
-电源管理:表示STA的电源管理模式。1表示STA在数据交换完成后进入省电模式,对于AP始终为0。
-更多数据:指示接入点为进入省电模式的站缓冲帧(来自直接序列)。
-WEP:指示框架体是否使用WEP加密。
-订单:表示将进行严格的订单转移。
2.其他领域。
-DuraTIon/ID:可用于以下三种场景。
@1DuraTIon,第15位为0,用于设置NAV,该值代表预计使用介质的微秒数。
@2在CFP帧中,第14个位置为0,第15个位置为1,其他值为0,字段值为32768,这样其他没有收到信标帧的站就可以宣布没有竞争周期。
@3在PS-Poll帧中,第14位和第15位同时设置为1,用于从省电模式下唤醒的STA发送一个AID(关联标识符),以获取AP中缓存的帧。
-地址:有几种类型,根据帧类型使用哪些地址字段。通常有三种,SA、DA和BSSID。
基本服务集标识符。
DA,目的地地址。
服务协议,源地址
RA,接收端地址。
TA,发件人地址。
-SequenceControl:它包含两个子字段,一个4位片段号和一个12位序列号。
序列号4096的模数从0开始,每处理一个上层数据包就增加1。
如果上层数据包被分段,所有帧片段都以相同的顺序编号。
对于重新传输的帧,序列号不变。
-frame body:frame body也叫Datafield,用于传输上层的Payload,可以是0。
-FCS:帧校验序列,采用循环冗余校验(CRC)码。计算范围包括媒体访问控制报头和帧体中的所有字段。
3.帧体数据。
与以太网不同,802.11的帧体由802.2的逻辑链路控制。
(LLC)来封装不同类型的网络协议有两种封装方式:RFC1042、802.1H
下图是802.11里的IP封装
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中去。
12下一页全文 本文导航第 1 页:mac层的主要功能介绍第 2 页:以太网的MAC层标签:
版权声明:转载此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢您的支持与理解。