mac80211解析八

Full-mac和Softmac对比

mac80211解析八_第1张图片

Infrastructure BSS

mac80211解析八_第2张图片
NOTE: Infrastructure BSS != IBSS – IBSS = Independent BSS. (Ad-Hoc mode)

IBSS

mac80211解析八_第3张图片

Mesh mode

full mesh和 partial mesh对比
mac80211解析八_第4张图片
mac80211解析八_第5张图片

The 802.11 MAC Header

每个mac帧都包含了一个mac头,还有长度变化的帧数据,和32位长的FCS(frame check sequence)。
如图所示:
mac80211解析八_第6张图片

在mac80211模块中,帧mac头结构体用ieee_80211_hdr结构体来表示,定义如下:

struct ieee80211_hdr {
    __le16 frame_control;
    __le16 duration_id;
    u8 addr1[ETH_ALEN];
    u8 addr2[ETH_ALEN];
    u8 addr3[ETH_ALEN];
    __le16 seq_ctrl;
    u8 addr4[ETH_ALEN];
} __packed __aligned(2); 

定义目录(include/linux/ieee80211.h)

ieee80211_hdr可以和ethernet头结构体struct ethhdr做对照,ethdr中含了三类:源mac地址,目的mac地址和ether类型。80211的mac头包含了六个地址和其他域。对于一个典型的数据帧,使用三个地址,而对于ACK帧,只使用接收帧。
在mesh网络或者mesh扩展网络中使用两个地址。
在80211的mac头中,包含了起始的帧控制,这个帧控制决定了mac头。
数据帧各个字段说明:
mac80211解析八_第7张图片

The Frame Control

帧控制的长度是16位,如图所示:

mac80211解析八_第8张图片

Protocol位
协议版本位由两个bit构成,用以显示该帧所使用的 MAC版本。目前,802.11 MAC 只有一个版本;它的协议编号为0。到目前为止,802.11 改版尚不需用到新的协议编号。

Type与Subtype位
类型与次类型位用来指定所使用的帧类型。有三类帧类型,控制帧、数据帧和管理帧。数据帧负责在工作站之间传输数据;控制帧负责区域的清空、信道的获取以及载波监听的维护,并于收到数据时予以肯定确认,借此提高工作站之间数据传送的可靠性;管理帧负责监督,主要用来加入或退出无线网络以及处理接入点之间关联。各类帧类型又含有不同种类的子帧类型。

More fragments 位
如果上层的封包经过 MAC分段处理,最后一个片段除外,其他片段均会将此 bit设定为 1 。大型的数据帧以及某些管理帧可能需要加以分段;除此之外的其他帧则会将此 bit设定为0 。

Retry 位
有时候可能需要重传帧。任何重传的帧会将此 bit设定为 1 ,以告知接收端剔除重复的帧。

Power management位
802.11网卡通常以 PC Card 的型式出现,主要用于以电池供电的笔记本电脑。为了提高电池的使用时间,通常可以关闭网卡以节省电力。该位用来指出传送端在完成目前的基本帧交换之后是否进入省电模式。1 代表工作站即将进入省电模式,而 0 则代表工作站会一直保持在清醒状态。基站必须行使一系列重要的管理功能,所以不允许进入省电模式,因此基站所传送的帧中,该位必然为0。

More data位
为了服务处于省电模式的工作站,基站会将接收的帧加以暂存。基站如果设定该位,即代表至少有一个帧待传给休眠中的工作站。

Protected Frame位
无线传输本质上就比较容易遭受拦截。如果帧受到链路层安全协议的保护,该位会被设定为 1。

Order位
帧与帧片段可依序传送。一旦进行“严格依序”传送,该位被设定为 1

未完待续。。。

你可能感兴趣的:(kernel,无线网络,linux网络)