前言

灵活组播服务(Flexible multicast service, FMS)在802.11v提出,用于帮助设备节能的一种技术。在WNM中,FMS的实现是可选的。
本文基于《802.11-2020》对FMS的功能、帧结构、流程等方面进行简要介绍,旨在了解基本的原理。

缩写

Acronyms Definition
FMS Flexible multicast service
BUs bufferable units
DTIM delivery traffic indication map
WNM Wireless Multimedia
TCLAS traffic classification .The specification of certain parameter values to identify a PDU or a MSDU. The classification process is performed above the MAC SAP, within the MLME, or within the MAC, based on the type of classification.
SAP service access point
MLME MAC sublayer management entity

简介

常规的Power save下,STA需要下每个DTIM醒来接收组播业务。FMS则使non-AP STA能够为多组Rx组播流请求一个备用(alternate)的DTIM。在这种机制下:

  • STA可以在备用的DTIM而非每个常规DTIM醒来接收相应的组播流,从而获得更长的Sleep时间,达到省电的目的;
  • STA能够为组播业务建立高于最小可用数据速率的数据速率和delivery interval。

帧格式

FMS能力

STA在Extended Capabilities->FMS指示了是否支持FMS。

dot11FMSActivated Extended Capabilities->FMS
1 Supported(1)
0 Not Supported(0)

WNM action FMS type

FMS request和FMS response是一种管理帧中的WNM action帧,通过帧结构中的Category=WNM指示。

并在WNM action字段中指明子类型为FMS Request和FMS Response。

FMS Request

FMS Request帧non-AP STA发送给AP,以请求指定的FMS并为一组组寻址流建议delivery interval。FMS Request也由non-AP STA发送,请求对先前的FMS请求进行修改。FMS Request的动作字段格式如图9-928所示。
non-AP STA可以发送FMS Request,用以请求FMS并为一组组播流建议delivery interval。
non-AP STA也可以发送FMS Request,用以修改前一次的FMS 请求。


Category和WNM Action见上文。

FMS Request Element

字段 说明
Element ID FMS Request的Element ID=87
Length 后续长度指示
FMS Token FMS Token 为一组FMS流的标志。如果是新的FMS req,FMS Token=0;否则FMS Token=AP在FMS Response中分配的值
FMS Request Subelements 其中的Subelement ID指示不同的类型。Subelement ID=1则为FMS subelement;Subelement ID=221则为Vendor Specific subelement;Subelement ID=其他值为预留。其中Vendor Specific subelement是运营商自定义元素,本文不展开

FMS subelement

字段 说明
Subelement ID Subelement ID=1指示该字段为FMS subelement
Length 后续字段长度
Delivery Interval 指示STA请求的传输流周期,单位DTIM。默认值=1。如果为0表示STA不再使用TCLAS elements标识的FMS流。
Max Delivery Interval 指示STA支持的最大传输流周期,单位DTIM。Max Delivery Interval=0表示STA愿意接受AP支持的任一最大delivery interval。
Rate Identification 指示STA接收组播帧的请求的接收速率,详见《802.11-2020》9.4.1.32。如果STA并不请求特定的接收速率,则该字段为0。
FMS ID FMSID由接入点(AP)分配给FMS成功请求之后的特定组寻址流的标识符。如果这是一个新的FMS request,FMSID=reserved。否则,FMSID设置为AP在FMS响应元素中分配的值。
TCLAS Elements TCLAS Elements字段包含一个或多个TCLAS元素,用于指定传输流过滤器。TCLAS Elements数量有限,需满足FMS request elements<=255octets。
TCLAS Processing Element(opional) 可选字段,定义如何处理多个TCLAS元素。

Vendor Specific element

运营商自定义元素,本文不展开。

FMS Response

FMS Response提供有关组播帧传送的信息。

FMS Response element

字段 说明
Element ID FMS Response的Element ID=88
Length 后续长度指示
FMS Token FMS Token是一组FMS流的标识,这组FMS流共享计数器,计数器由AP维护FMS Counter ID来标识。
FMS Response Subelements 其中的Subelement ID指示不同的类型。Subelement ID=1则为FMS Status subelement;Subelement ID=2则为TCLAS Status subelement;Subelement ID=221则为Vendor Specific subelement;Subelement ID=其他值为预留。其中Vendor Specific subelement是运营商自定义元素,本文不展开

FMS Status subelement

字段 说明
Subelement ID Subelement ID=1指示该字段为FMS subelement
Length 后续字段长度
Element Status 指示对于STA请求的Delivery Interval的响应状态。详见下图
Delivery Interval 定义与该FMSID对应的流的帧的连续传输之间的DTIM周期的最小整数。
Max Delivery Interval 定义了AP用于对应于FMSID的流的最大delivery interval。Max Delivery Interval =0表示对于FMSID标识的流,AP没有最大delivery interval。
FMSID FMSID由接入点(AP)分配给FMS成功请求之后的特定组寻址流的标识符。
FMS Counter 包含FMS Counter ID、Current Count两个字段。FMS Counter ID表示AP为特定FMS流分配的计数器标识。FMS Status subelement-> FMS Counter –>Current Count目前为预留
Rate Identification 指示用于组播传输的数据速率。如果Rate Identification =0,表示未指定组播速率。
Multicast Address 包含与此FMS response相关的组播传输的MAC地址。

其中Element Status各个值的含义如下:

Element Status Description
0 Accept
1 Deny, due to request format error or ambiguous classifier.
2 Deny, due to lack of resources on the AP.
3 Deny, due to requested classifier(s) matching 2 or more existing streams on different intervals.
4 Deny, by policy, requested stream or filter is not permitted to participate in the service.
5 Deny, reason unspecified.
6 Alternate proposed, due to existing stream with different delivery interval.
7 Alternate proposed, due to policy limits on the AP.
8 Alternate proposed, because the AP changed the delivery interval.
9 Multicast rate changes not allowed.
10 Terminate, due to an AP policy change.
11 Terminate, due to lack of resources of the AP.
12 Terminate, due to other FMS stream with higher priority.
13 Alternate proposed, because the AP changed the maximum delivery interval.
14 Alternate proposed, because the AP is unable to provide requested TCLAS-based classifiers.
15–255 Reserved

TCLAS Status subelement

字段 说明
Subelement ID Subelement ID=2指示该字段为TCLAS Status subelement
Length 后续字段长度
FMSID FMSID由接入点(AP)分配给FMS成功请求之后的特定组寻址流的标识符。
TCLAS Elements TCLAS Elements字段包含一个或多个TCLAS元素,用于指定传输流过滤器。TCLAS Elements数量有限,需满足FMS request elements<=255octets。
TCLAS Processing Element 可选字段,定义如何处理多个TCLAS元素。

Vendor Specific element

运营商自定义元素,本文不展开。

FMS Descriptor element

Beacon->FMS Descriptor定义了AP缓存的组播BUs(group addressed BUs)的信息。

字段 说明
Element ID FMS Descriptor的Element ID=86
Length 后续长度指示
Number of FMS Counters 定义FMS Descriptor->FMS Counters中包含的FMS Counter字段的个数
FMS Counters 在组播BUs分配了特定delivery interval后,STA基于FMS Counters对应的组播FMS流何时发送。FMS Counters包含0~多个FMS Counter字段。每个FMS Counter字段包含FMS Counter ID、Current Count两个子字段。FMS Counter ID表示AP为特定FMS流分配的计数器标识;Current Count指示了下一个DTIM Beacon之前还有多少个DTIM beacon(包括当前的)。当AP接收到1~多个FMS流,则至少要包含1个FMS Counter字段。最多允许有8个FMS计数器。
FMSIDs 包含0~多个FMSID。每个FMSID由AP分配,长1octet。包含FMSID说明AP已经和缓存了组播BUs,并且在DTIM Beacon后可立即传输。

FMS流程

基本流程

dot11FMSActivated=True时,AP要在Beacon中携带FMS Descriptor,FMS Descriptor指示了FMS组播BUs(bufferable units)。如果AP没有缓存的Bus,则FMS Descriptor-> Length=1。AP应为一个nontransmitted BSSID在Beacon-> Multiple BSSID element->corresponding Nontransmitted BSSID Profile中包含FMS Descriptor。
AP支持任意数量的FMS流,且支持1~8种不同的FMS流delivery interval,对应8个FMS计数器。不同的FMSID可以拥有相同的delivery interval,因此会共享同一个FMS计数器。换而言之,一个FMS计数器对应唯一的delivery interval,而可能对应多个FMS流。

每次DTIM Beacon,FMS counter - -(实际应该是子字段Current Count - -)。
FMS counter减到0时,AP缓存对应FMS流的BUs将会在下一个DTIM Beacon之后发送。
发送完对应FMS流的BUs,AP将重置对应FMS counter为对应FMS流的delivery interval。
不使用FMS的non-AP STA则需要在每个DTIM间隔唤醒以接收组播BUs。
支持FMS功能的STA,不论是哪种流,都应支持delivery interval=1。

STA通过发送FMS Request帧或Reassociation Request帧来请求启用FMS模式。携带1到多个FMS Request elements,其中每个FMS Request element携带1~多个FMS subelements。每个FMS subelement标识一个FMS流、及请求该流的delivery interval和maximum delivery interval。

AP响应FMS Response,其中FMS Response element按顺序与请求里的FMS Request element一一对应;每个FMS Response element包含1个FMS Status subelement,及0~多个其他的subelements(例如TCLAS Status subelement、Vendor Specific subelement)。

如果AP接受请求的FMS subelement和对应的delivery interval,则相应FMS Status subelement中的Element Status应设置为Accept,并且FMSID分配为非0值。

如果请求的FMS subelement中的FMS流匹配到已经使用的delivery interval,则AP将该FMS流分配对应的FMS Counter ID(对应delivery interval)。

AP可以重新调度由FMSID标识的FMS流,以使该FMS流的传输时间与STA在相同的delivery interval已经接收的其它FMS流的传输时间一致。为此,AP有以下两个选项:

  1. 使用FMS流通知STA。即AP应在出现两个连续Beacon帧的Current Count字段上保持非0值且不变。
  2. 当前Current Count=0时,将一个未经请求的FMS Response发送到原始FMS Response帧中包含的组播地址,该组地址带有更新的delivery interval。AP将此FMS Response作为一个组播,并在合适的DTIM(所有STA都醒着接收)发送。

AP可以发送一个未经请求的FMS Response以终止FMS的使用,其中对应FMSID的delivery interval设置为0,Element Status设置为10~12(“Terminate”类型),并以任何理由恢复FMSID对应的任何FMS流的默认(non-FMS)传输规则。

如果STA请求了非0值的delivery interval,并且指定了max delivery interval,则AP不得修改大于non-AP STA指定的max delivery interval的流的delivery interval。

AP递交同一FMSID的缓存MSDU时,顺序按照MSDU在MAC Data SAP接收到的顺序。

如果AP拒绝该FMS请求,需要在FMS Status subelement中设置为1~5即deny,及相应的原因。

如果AP从FMS请求指定的值中选择一个备用delivery interval或备用max delivery interval,需要在FMS Status subelement中设置为6~8即Alternate proposed,及相应的原因。

为了终止某个FMS流(标识为FMSID)的使用,non-AP STA应发送FMS Request帧,其中对应该FMSID的delivery interval=0。

AP应对格式错误的FMS Request或Reassociation Request作出响应,其中FMS Response frame 或Reassociation Response拒绝所有FMS Request element,并指明FMS Status code=1(拒绝,原因:请求格式错误或分类器不明确)。

FMS 响应流程

支持FMS的non-AP STA在接收到FMS Response(其中的Addr1==STA MAC或者AP组播)时,基于FMS Response->FMS Status subelement-> Element Status会有不同的处理。

STA接收到的FMS Response->FMS Status subelement-> Element Status AP/STA处理
Accept(0) 如果STA在FMS Request请求了非0值的delivery interval,则之后STA与AP将以新的delivery interval交互指定FMS流的传输。STA在收到FMS Response的下一DTIM Beacon醒来以同步对应FMS流的FMS Current Count;一旦同步上,STA无需在每个DTIM醒来接收组播缓存数据
Deny(1~5) AP不采用STA请求的delivery interval,而是在每个DTIM传输对应的FMS流
Alternate proposed (6~8,13) AP不采纳STA 在FMS Request里申请的delivery interval 和maximum delivery interval;AP在FMS Status subelement中提出自己期望使用的delivery interval 和maximum delivery interval(基于STA发的另一个FMS Request中指定的delivery interval 和maximum delivery interval);STA可以发送一个新的FMS Request,包含AP建议的delivery interval 和maximum delivery interval,如果AP接收此请求,将以新的值进行交互
Alternate proposed(14) AP不采纳STA 在FMS Request里申请的delivery interval 和maximum delivery interval;AP将修改TCLAS Status subelement-> TCLAS element或TCLAS Processing element中的部分字段并返回给STA作为指示。STA如果接收到修改TCLAS element,其中Classifier Mask=0和 Classifier Parameter=0,STA认为表示AP未提供建议值。
Terminate(10~12) AP终止指定FMSID对应的流的FMS传输,而采用DTIM间隔传输;STA在每个DTIM醒来接收组播缓存数据。

FMS组播速率选择

支持FMS的STA在FMS Request会推荐较高组播速率。AP可向STA发送FMS响应帧以改变STA的多播速率。
AP选速时,速率不得高于现有STA和请求STA提供的最低速率值。
AP调度时TXVECTOR参数,包括FORMAT、NON_HT_MODULATION、PREAMBLE_TYPE、MCS、CH_BANDWIDTH、 STBC、FEC_CODING、GI_TYPE需要兼容现有STA和请求STA的能力。
AP可向STA发送FMS Response以改变STA的组播速率。
当AP向STA发送FMS Response->Element Status=“Multicast rate changes not allowed”,则表示AP不允许组播速率的修改。那么STA就不应再请求改变组播速率。

总结

FMS机制使得STA能够为指定组播流请求一个备用的DTIM,以及对应的组播发送速率,以此减少STA醒来接收组播数据的时间,达到省电的目的。

参考资料

[1] 《802.11-2020》

802.11 - 灵活组播服务(Flexible multicast service)相关推荐

  1. 网络基本概念之TCP, UDP, 单播(Unicast), 多播(组播)(Multicast)

    网络基本概念之TCP, UDP, 单播(Unicast), 多播(组播)(Multicast) 我们周围一切几乎都依赖于把事情抽象成低等级,并在某一点把它具体化,在一些设计概念中,接口层十分清晰并且目 ...

  2. TS OLT Internet业务和组播业务(multicast)配置指导

    1.OLT 上网业务配置指导 1.登录方式及登录账号和密码串口 串口 和telnet 192.168.0.100 账号/密码:root/1234562. 创建DBA模版 OLT(config)#dba ...

  3. 什么叫组播地址(Multicast Address )?

    组播的地址是保留的D类地址从224.0.0.0-239.255.255.255,而且一些地址有特定的用处如,224.0.0.0- 244.0.0.255只能用于局域网中路由器是不会转发的,并且224. ...

  4. 双11直播技术强力后盾——阿里云导播服务功能详解与场景应用

    最早的双11购物节是从2009年淘宝开始,历经8年的洗礼,现在双11已经演变成全球范围内所有线上线下商家和消费者的购物狂欢节,今年的天猫双11以1682亿元的交易额圆满收官,再次打破去年的记录. 直播 ...

  5. skynet框架应用 (八) Multicast组播

    8 Multicast组播 8.1 Multicast介绍 local mc = require "skynet.multicast" ​ 引入 multicast 模块后,你可以 ...

  6. 网工笔记(三):IP Multicast组播技术

    IP多路组播技术,英文为IP Multicast,  就是英文文档里经常说到的BUM报文里的大M.这是一门特别的技术,它从2层到3层协议mac地址到IP地址都自成一体.很多网工同行只在IE考试里学习了 ...

  7. 华为路由器经MPLS XXX配置组播稀疏(PIM-SM)模式服务

    此前实验发现,组播服务经过MPLS XXX后就各路由器组播流量无法发送与接收,网上查阅相关资料后未发现满意结果,在平哥,松哥以及本人的共同研究下,将此实验完成. 现将实验配置方法贴出,如有不足之处,欢 ...

  8. 分布式系统(四) 组播 Multicast

    Multicast 组播 通信模式 Unicast 一个进程向另一个进程发送消息 尽力而为:如果信息传送,就没有被破坏 可靠的:保证信息能传送 有序:信息传送(deliver)的顺序与发送的顺序一致 ...

  9. 10mbps 局域网组播_无线局域网Apple Bonjour部署指南

    当适合于对支持的组播应用例如Apple的Bonjour协议,本文在运行原理和配置提供信息为Cisco Unified无线LAN解决方案.查询和宣布特定服务的此协议enable (event) Appl ...

  10. IP组播---IGMP、MLD、IGMP SSM Mapping、IGMP Snooping详解

    简介 Internet Group Management Protocol 互联网组管理协议,负责IPv4组播成员管理的协议 在接收者主机和组播路由器之间交互IGMP报文实现组成员的管理功能,建立.维 ...

最新文章

  1. 反弹模型(bounce model)----adot, H, Hdot变化图
  2. Linux发布环境,linux发布环境初始化脚本
  3. html5图片加载不了,webView加载html图片遇到的问题解决
  4. [密码学] 公钥密码基础与RSA
  5. python正则表达式指南_Python正则表达式指南
  6. boost::graph模块使用 read_graphviz 加载 GraphViz Dot 文本的示例 ,图转换为具有自定义属性的 BGL adjacency_list 图
  7. MongoDB索引问题
  8. Sitemesh 3 的使用及配置
  9. 云服务器开启ftp_用云服务器怎么挂机器人
  10. SAP License:赛锐信息访谈启示录(一)
  11. 用python开发文本翻译小软件
  12. win Server 2012 R2 密钥
  13. qq邮箱不能上传文件的修复
  14. 小程序源码:全新实用工具证件照制作-多玩法安装简单
  15. Mac上AI照片编辑工具:Luminar AI
  16. 计算机网络实验 Go Back N (带有ACK)滑动窗口协议 C++
  17. 计算机软件过期黑屏怎么办,Adobe flashplayer过期怎么办
  18. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(理解)
  19. 【单片机】辉光管时钟系列<一>--单片机最小系统
  20. selenium爬堆糖网壁纸

热门文章

  1. Android模拟器不支持蓝牙
  2. linux查看端口命令ss,Linux查看端口号ss和losf指令
  3. Thoughtworks QA测试一面凉经
  4. 口诀计算机,PID算法的通俗讲解及调节口诀[计算机类]
  5. 《东周列国志》第五十回 东门遂援立子倭 赵宣子桃园强谏
  6. RouterOS(ROS)设置动态域名(DDNS)
  7. 猴子搬香蕉Java实现_猴子搬香蕉问题
  8. Unity Shader Interior mapping 内部映射
  9. 呆萝卜 竞品分析报告
  10. “传递关爱 感恩社会” ——美斯坦福2017年捐资助学仪式隆重举行