参考文献 802.11ax Draft 8.0

TBTT(Target Beacon Transmission Time):信标预定传送时间,类始于现在是几点,实际上这个是一个定时后的发送/接收beacon动作的周期,其周期的时间就是由Beacon Interval所决定的。当TBTT时间到达的时候,AP会主动发送beacon帧,而节点也都会主动接收该beacon帧(包括休眠模式的节点,也会苏醒过来接受该beacon),然后利用beacon进行时间同步,并且查看TIM字段,若没有自己的数据缓存,那么节点继续转为休眠模式,直到下一个TBTT时间到来。
http://www.bubuko.com/infodetail-2439083.html关于相关概念可参考此文章。

802.11ax TWT

说在前面:本文说的Individual TWT虽然包括STA–STA之间、STA–AP之间的协议;但是,偏重于STA–AP之间建立的individual TWT ahreement。

TWT机制中,通信双方严谨的名称,indivudual TWT:TWT requesting STA、TWT responing STA;broadcast TWT:TWT scheduing AP、TWT scheduled STA。 但是为了方便,下文如果提到AP和STA,就默认STA是TWT requesting STA或者TWT scheduled STA; AP是TWT responing STA或者TWT scheduling AP。

简介

802.11ax中的TWT分为两种:individual TWTbroadcast TWT

individual TWT是建立在两个设备之间的协议,即individual TWT agreements,(例如:STA-AP,STA-STA(TDLS)),目前有be的提案提到希望可以将TWT推广到peer-to-peer STA。(参考802.11be提案,提案号为1046)。

broadcast TWT是由HE AP统一调度,HE STA可以通过主动申请或者被邀请的方式加入一个broadcast TWT(一个broadcast TWT由一个<Broadcast TWT ID,MAC address>元组唯一标识),成为其成员,然后在特定时间苏醒,进行帧交换。

TWT能力支持字段

TWT Requester Support subfield; TWT Responder Support subfield; Broadcast TWT Support subfield 这三个字段都是在HE Capabilities element元素中的,所以是在管理帧中存在的。它们表明此HE STA(重点注意:需要是HE STA)在individual TWT和broadcast TWT中可以扮演的角色。前两个用在indiviual TWT agreement;最后一个用在broadcast TWT中。

在一个STA/AP发送的帧中,只要Broadcast TWT Support sufield被设置为1就代表此STA/AP支持broadcast TWT;并且如果是HE STA,那就是扮演TWT scheduled STA角色;如果是HE AP,那就是扮演TWT shceduling AP的角色。

  1. HE AP会向与其关联、并且已经宣布支持TWT的STAs请求其参加TWT机制。其实这里用“请求”这个词不是很合适,我觉得应该“通知”更好,即HE AP将HE Operation element中的TWT Required subfield设置为1来通知STA:“我(AP)支持你(STA)和我建立TWT(individual TWT或者broadcast TWT)”
  2. non-AP STA通过TWT Requester Support subfield和Broadcast TWT Support sufield来表明自己可以扮演TWT Requesting STA(individual TWT)和TWT scheduied STA(broadcast TWT)的角色;
  3. 当以上两个信息通过管理帧在AP和STA之间沟通完后,STA就可以和AP建立indvidual TWT agreement或broadcast TWT。

涉及到的元素和字段



Conrol field字段中的Negotiation Type字段是指示要建立Individual TWT还是Broadcast TWT。其中Bit3叫做Broadcast field,当它为1时,代表是Braodcast TWT;为0时,代表是Individual TWT。

  1. 00:代表这个TWT element中仅包含一个indiviual TWT parameter set;
  2. 01:代表这个TWT element中仅包含一个indiviual TWT parameter set;
    不同之处在于,不同值情况下,Target Wake Time field和TWT Wake Interval Mantissa、TWT Wake Interval Exponent fields三个字段的设置不同;具体可以看Draft 8.0 Page184。
  3. 10:代表这个TWT element包含一个或者多个broadcast TWT parameter sets;(TWT scheduling AP利用此设置来向TWT scheduled STA提供broadcast TWT schedules)
  4. 11:同上。(TWT scheduling AP和TWT scheduled STA利用此设置来管理broadcast TWT内的成员关系,比如加入和退出)




Individual TWT

Individual TWT中通信双方分别叫做:TWT requesting STATWT responing STA

individual TWT agreement可分为两种:implicit TWT agreementtrigger-enabled TWT agreement(trigger-enabled TWT agreement的TWT responding STA一定是HE AP)。
Draft主要讲的是Trigger-enabled TWT agreement,所以下面的内容基本都是在trigger-enabled TWT agreement的前提下说的。

一个individual TWT的示例

下图是一个trigger-enabled TWT agreement的例子:

  1. TWT responsing STA是HE AP,其在TWT response中告知TWT requesting STA其接受individual TWT agreement的建立,并且告知STA下一次TWT开始的时间,然后STA在对应的时间苏醒;

  2. STA2和AP建立individual TWT agreement的方式是通过TWT responing AP主动发送unsolicited TWT response的方式;此TWT response的TWT Setup Command field可能有以下几种value:accept TWT, Alternate(备用) TWT 或者 Dictate(命令、指挥) TWT
    2.1 带有Alternate TWT or Dictate TWT的unsolcitied TWT response会告知STA “我AP很可能接受的TWT parameter”,接下来你(STA)发送的TWT request如果带有这些TWT parameter,那么我AP应该会接受;
    2.2 带有Accept TWT的unsolicited response 代表AP接受你(接收者STA)和我建立individual agreement,接下来就看你的意思了,你接受就建立,不接受就发一个TWT Teardown Frame来拒绝。

  3. 然后TWT responing STA(即,AP)在trigger-enabled TWT SP时期内发送Trigger帧;(通过将Trigger子字段设置为1来设置一个Trigger-enabled TWT)
    3.1 这里要注意的一点,这里直接说的是AP在TWT SP开始时向STA发送Trigger,而未说明AP是如何获取这个TXOP的

  4. 接收到Ttigger帧后,TWT requesting STA利用一个帧(这里是PS-Poll帧和Qos Null帧)来告知响应STA其已苏醒;
    4.1 注:以下内容同样适合broadcast TWT;
    4.2 TWT requesting STA要向TWT responing STA发送“已苏醒指示”,就代表这个TWT SP是一个announced TWT SP,announced TWT SP的意思是:在TWT responing STA要向TWT requesting STA发送帧之前,它要先接收到“苏醒指示”。与之对应的是unannounced TWT SP,这种情况下,TWT requesting STA在TWT SP开始时自动转入awake状态,TWT responing STA在发送帧之前不用等待来自TWT requesting STA的“已苏醒指示”。
    4.3 STA1利用PS-Poll帧来做苏醒指示,就代表STA1是工作在PS mode模式下,当TWT SP是一个announced TWT SP时,在PS mode模式下的STA还可能发送U-APSD帧来表明其苏醒状态;PS mode工作模式下的STA可以侦听Beacon帧,AP可以利用Beacon帧中的TIM element,将对应STA的AID Bit位设置为1,来通知STA有其下行缓存数据,在TWT SP开始后,STA可以申请下行数据的发送(下行数据传输方式
    4.4 STA2发送的是Qos-Null帧,这是利用其他指示帧来指示其苏醒状态;在Draft中指出,可以用任何指示帧来指示苏醒状态。PS-Poll帧、U-APSD帧是针对PS mode、announced TWT SP的STA来说的
    4.5 这个“苏醒指示”有三个作用:1. 告知AP其已苏醒;2. 作为对AP所发的Trigger帧的响应;3. 请求下行数据
    4.6 在TWT requesting STA表明苏醒状态后,TWT responing STA就应该在不超过TWT SP时间、TWT requesting STA保持awake状态时,尽可能多的向TWT requesting STA发送缓存数据;

  5. 然后AP和STA进行帧交互;

  6. 交互完成之后,TWT requesting STA进入休眠状态;

  7. 至于下一次TWT requesting STA何时苏醒,这里Individual TWT agreement涉及到两种:隐式TWT和显示TWT。这个点在802.11ah中就已经存在
    7.1 隐式TWT:TWT requesting STA通过加上一个固定的值来自行计算下一次苏醒时间;
    7.2 显示TWT:在TWT SP期间进行帧交互的时候,TWT responing STA会显示的告知TWT requesting STA下一次苏醒时间。

关于individual TWT的下行传输

上面已经提到了一个点,即AP利用Beacon帧来告知STA有其下行缓存,然后STA苏醒后利用“苏醒指示”来请求下行数据的发送。

这里补充一点,如果STA工作在active mode模式,那么AP可以在任何时候向STA发送下行数据;如果STA工作在PS mode,那么只要STA是awake状态(无论是在TWT SP之内/之外),那么AP就可以向其发送下行数据。

关于individual TWT的上行传输

首先,协议指出,一个TWT requesting STA不应在协商的TWT SP之外的时间向TWT responding STA发送帧,也不应在trigger-enabled TWT SPs内向TWT responding STA发送未包含在HE TB PPDU内的帧。

但是,上面所说的只是正常情况。当TWT requesting STA有上行数据时,TWT requesting STA会决定要在TWT SP内或外发送哪些帧,并且当TWT requesting STA被建议不要在TWT SP内使用EDCA机制时,TWT requesting STA仍然可能这样做。即,如果STA决定进行上行传输,则STA可能会争夺对信道的访问,并且可能会竞争到TWT SP之外的信道,然后进行上行传输。

trigger-enable TWT的上行传输

trigger-enabled TWT agreement下的TWT responding STA必须在每个TWT SP内为该TWT agreement调度用于TWT requesting STA的Trigger帧;并且此Trigger帧可以用包含TRS Control子字段的、包含在DL MU PPDU中的帧来代替,前提是需要在这个帧中为STA分配足够的上行资源让其来上传它的BSR报告,并且,在接下来发送的Trigger帧中为STA分配足够的资源来让其上传它在BSR报告中报告的上行缓存。
上面所说内容说明了trigger-enable TWT SP中上行传输的方式

注:关于implicit TWT agreement,Draft中未提到在TWT SP中的传输机制。

一些个人理解

依据802.11提案和Draft 26.8.2开头部分所讲到的内容,有以下个人理解:

现在TWT一般都会用保护机制,即NAV,例如RTS/CTS等等。在这条规则下,如果之前的传输未完成,则TWT SP开始时间可能会有所不同;这将导致延迟的不可预测性和抖动的增加。(即,如果TWT SP已经开始了,但是在其开始前,其他设备的TXOP还未完成,占用了TWT SP时间内的资源。

所以,包括上面提到的以及下面将要提到的Broadcast TWT,在TWT SP开始时,如果AP要发送Trigger帧,或者RTS/CTS帧,都是需要先获得TXOP的;同样的,TWT SP开始时苏醒的STA想要进行上行数据传输,也是需要先竞争信道的

对于有上行数据的STA,要么等待Trigger帧的调度,要么自己用EDCA来竞争信道

broadcast TWT

broadcast TWT的通信双方一定是HE AP和HE STA,分别叫做TWT scheduling AP和TWT scheduled STA

TWT scheduling AP和TWT scheduled STA都会把HE Capabilities element元素中的Broadcast TWT Support field设置为1来表明自己支持broadcast TWT。

broadcast TWT也有两种:trigger-enabled broadcast TWTnon trigger-enabled broadcast TWT(这种在Draft中未介绍太多)。AP在non trigger-enabled的TWT SP期间不应该安排发送Trigger帧,而应在trigger-enabled的TWT SP期间安排Trigger帧。

STA加入Broadcast TWT成员资格的方式(两种)

  1. TWT scheduling AP可以通过向TWT shceduled STA发送一个**(Re)association Response frame**(或称作unsolicited TWT response)(此帧的Negotiation Type subfield被设置为3(即,11),Draft的第9节说过,Negotiation Type subfield的Bit3为Broadcast field字段。当Broadcast subfield为1时,代表此TWT element是一个broadcast TWT element),从而主动将一个STA(此STA需要支持broadcast TWT,支持的方法是将Broadcast TWT Support field设置为1)配置成broadcast TWT schedule成员。
    1.1unsolicited TWT responseTWT Setup Command field可能有以下几种 value:accept TWT, Alternate(备用)TWTDictate(命令、指挥)TWT
    1.2 带有Alternate TWT or Dictate TWT的 unsolcitied TWT response会告知STA我AP很可能接受的TWT parameter,接下来你STA发送的TWT request如果带有这些TWT parameter,那么我AP应该会接受;
    1.3 带有Accept TWT的unsolicited response代表AP接受你(接收者STA)和我建立 individual agreement,接下来就看你的意思了,你接受就建立(无需发送帧),不接受就发一个TWT Teardown Frame或者一个TWT response。
  2. TWT shceduled STA也可以向TWT scheduling AP发送TWT request来申请加入某个broadcast TWT。
    2.1 每一个braodcast TWT由一个<broadcast ID, MAC address>元组来标识,broadcast TWT ID的值为Broadcast TWT ID subfield的值(大于0,等于0有其他意义,具体看Draft);MAC address是TWT scheduling AP的地址;
    2.2 TWT element分为individual element和broadcast element,由Control field中的Broadcast subfield控制。每种element中都有一个TWT Parameter Information字段,在broadcast TWT Parameter Set field中有一个Broadcast TWT Info子字段。这个子字段中包含Broadcast TWT ID字段
  3. 加入成员和退出成员资格,是要通过AP和STA进行协商的;协商时所交换的帧中的TWT element中的Negotiation Type subfield被设置为3。

建立资格后的TWT调度

Braodcast TWT schedules由TWT scheduling AP来广播的,所利用的帧的TWT element中的Negotiation Type subfield被设置为2。

用于成员TWT scheduled STAs的broadcast TWT schedules被值大于0的Broadcast TWT ID所标识;用于所有TWT scheduled STAs的 broadcast TWT schedules被值等于0的Broadcast TWT ID所标识。

具体可以看以下例子:

一个broadcast TWT的示例

  1. TWT scheduling AP发送一个Beacon帧,在此Beacon帧中会包含一个braodcast TWT element, 此element指示了一个broadcast TWT SP,在此TWT SP内TWT scheduling AP打算向TWT scheduled STAs发送Trigger frames或者DL BUs。(Question1 :Beacon interval:通常100ms,但是可以根据实际情况来设置)
  2. 在trigger-enabled TWT SP内,AP向STA1和STA2发送Basic Trigger frame,其中STA1和 STA2要向AP发送一个“指示帧”作为对Basic trigger帧的响应,以指示它们在TWT SP内苏醒。(和上面的individual TWT的trigger-enabled一样)

TWT scheduling AP应该遵循的规则

  1. 在TBTT时刻,TWT scheduling AP会发送一个包含broadcast TWT element的 Beacon帧。这个TWT element可能包含一个或者多个TWT parameter sets,每一个参数集会指示一个周期性的TWT。TWT scheduled STA可以选择一个broadcast TWT申请加入
    1.1 那么如何知道一个TWT Parameter之后是否还有呢?答:Broadcast TWT Parameter Set field的Request Type中有一个Last Broadcast Parameter Set subfield,通过它来控制;
    1.2 多个TWT parameter sets的作用:每个TWT参数集指定一个特定broadcast TWT,它会在这个broadcast TWT SP内生效。例如:通知下一次苏醒时间(Target Wake Time)、Flow Type(announced和unannounced)等等。
  2. TWT scheduling AP将Trigger field设置为1,以指示一个trigger-enabledTWT scheduled STA也会这样做)。否则,它将Trigger field设置为0(即,the TWT is not a triggerenabled TWT)。Trigger field的路径是Broadcast TWT parameter Set field–>Request Type subfield–>Trigger subfield
  3. 在一个trigger-enabed TWT SP期间,TWT scheduling AP会发送一个Trigger frame(其寻址可能是一个或者多个TWT scheduled STAs);除此之外,(这一段和individual TWT内一样)这个帧可能会被带有TRS Control subfiled的、包含在DL MU PPDU的帧所替代,并且AP应该为 STA分配足够的资源让其上传其 BSR(此BSR是对DL MU PPDU的响应)。并且后续还要分配足够的资源让此STA上传其BSR内所指的内容。
  4. 在一个trigger-enabled TWT SP期间,TWT scheduling AP应该尽可能多的在非零Broadcast TWT ID成员TWT scheduled STAs之间轮询,从而使得STA可以与AP进行帧交换;
    4.1 不清楚的点:为什么是轮询,AP是通过哪个字段来指定STAs上报BSR的??(User Info field?还是AID?这点未说明,待查)
  5. 当在一个broadcast TWT SP期间发送的Trigger frame中的Broadcast TWT Recommendation subfield的值为0或3时,AP可能会分配0或多个RA-RUs; 当其值为1时,AP不会分配RA-RU
  6. 在一个announced TWT SP期间,当一个TWT scheduling AP收到来自一个工作在PS mode下的TWT scheduled STA发来的、指示其会在TWT SP内苏醒的指示时, AP应该向该STA发送尽量多的 buffered BUs。
    6.1 PS mode、unannounced TWT SP期间,AP也应该尽量多的向TWT shceduled STA发送buffered BUs;
    6.2 尽量多的意思:所发送的BU不超过TWT SP;TWT scheduled STA未进入休眠状态。
  7. TWT scheduling AP可以在任意时刻向工作在active mode下的TWT scheduled STA发送帧;也可以向工作在PS mode下、但是在TWT SP时间外还处于awake状态的STAs发送帧

TWT scheduled STA应该遵循的规则

  1. TWT schedlued STA不应该在broadcast TWT SPs时间段之外向TWTscheduling AP发送帧 ;在trigger-enabled broadcast TWT SPs内,TWT scheduled STA不应该向TWT schedling AP发送未包含在HE TB PPDUs内的帧。
    1.1 上面说的只是建议,这段NOTE所说的意思是,尽管你建议我TWT scheduled STA不要在TWT SP之内/之外采用EDCA机制竞争信道。但是如果我STA想要进行上行传输,我还是可能这样去做。
  2. 一个TWT scheduled STA申请加入broadcast TWT时(申请成员资格时以及退出成员资格时,所需要发送的帧的字段设置在Page425。 STA会利用Broadcast TWT Parameter Set field–>Broadcast TWT Info–>Broadcast TWT ID子字段来表明其想要加入哪一个broadcast TWT
    2.1 个人理解:前面在TWT scheduling AP处说过,AP会在Beacon帧包含多个TWT Parameters,那么多个TWT Parameter就会有多个Broadcast TWT ID,所以可以供STA来选择;
    2.2 一个TWT scheduled STA可以同时加入多个broadcast TWTs
  3. AP主动发送邀请帧的字段设置如下:只要一个TWT scheduled STA收到了一个 TWT element,其中TWT Request field =0、Negotia-tion Type subfield=3、TWT Setup Command field=Accept TWT,那么此STA就变成了此TWT element中所包含的 Broadcast TWT ID所标识的broadcast TWT的成员。但是,它可以通过发送“拒绝帧”来从中退出
  4. 工作在PS mode模式下的TWT scheduled STA在接收到一个Beacon frame(此Beacon帧带有一个TWT element,此element向STA指示了一个broadcast TWT的信息,例如何时开始等等)之后,会进入休眠模式; 然后,TWT scheduled STA会在broadcast TWT SP开始的时候苏醒,因为STA已经指示过它将会在此时苏醒。指示的方式有四种(Page427)
  5. STA可以通过一个TWT Informationg frame来告知AP其在某个broadcast TWT开始时间不会苏醒;
    5.1 AP也可能通过一个TWT Informationg frame来告知STA在某个broadcast TWT期间不用苏醒。
  6. 一个TWT scheduled STA在以下条件下,不会在TBTT时刻接收Beacon frame
    6.1. STA已经收到了其所期待的Beacon帧(其中包含了一个TWT element,并且此element指示了一个broadcast TWT)
    6.2. 不接收的Beacon所对应的TBTT是 在最新接收到的Beacon帧(其中 包含了一个TWT element,并且此element指示了一个broadcast TWT)之后的下n个TBTT内;其中n等于1+Broadcast TWT Persistence subfield的值。(持久性)
  7. 上面提到过很多次,在announced TWT SP期间,PS mode工作模式下的 TWT scheduled STA会利用两种帧来宣布自己的苏醒状态。这里添加以下两点:
    7.1. 这里TWT scheduled STA所发送的帧也叫做Trigger帧,利用的是 HE TB PPDU;但是此Trigger帧和AP发送的Trigger是不是一类, 还不确定;
    7.2. 发送此“苏醒帧”的目的是向AP请求下行缓存。
    NOTE-- 一个TWT scheduling AP如果想让某个TWT scheduled STA来 请求下行缓存,AP会将Beacon frame中的TIM element中的对应于此STA的AID的bit位设置位1,以此来通知这个STA。

802.11ax TWT详解2相关推荐

  1. 802.11ax TWT(Target Wake Time)机制

    参考文献 802.11ax Draft 8.0 .IEEE Std 2016.https://zhuanlan.zhihu.com/p/79572297 首先,明确一个时间点,TWT功能是802.11 ...

  2. 802.11 wireless 详解

    wireless 是个广义的概念 这个 空气波形传播写以在1991年时就标准化了在后来一步步补充完善, 它包含短波传输 bluetooth nfc ,中场波wlan 和 zigbee . 下来我们讲一 ...

  3. AAA之802.1x认证详解(一)

    ACS上的配置:System Configuration 打开ACS的配置界面,点Network Configuration,在AAA Servers里点击Add Entry配置AAA服务器. 配置A ...

  4. 第二十二节:通信之WLAN(802.11ax@TWT-I)

    欢迎大家一起学习探讨通信之WLAN.本节探讨802.11ax(即WiFi6)协议规定的TWT功能.该功能主要通过"允许管理STA在BSS中的活动,通过调度STA在不同的时间运行,以达到最小化 ...

  5. 802.11ax 的OFDMA资源分配详解

    802.11ax 引入的最重要的技术就是OFDMA.OFDMA中引入了RU(资源块)概念,也就是20Mhz/40Mhz/80Mhz/160Mhz的带宽可以切割成不同尺寸的RU,分配给不同的用户使用,这 ...

  6. 第6代无线技术802.11ax详解

    802.11ax,也称为高效无线网络(High-Efficiency Wireless-HEW),通过一系列系统特性和多种机制增加系统容量,通过更好的一致覆盖和减少空口介质拥塞来改善Wi-Fi网络的工 ...

  7. 第6代无线技术802.11ax详解(技术构成、特点、误区)

    802.11ax,也称为高效无线网络(High-Efficiency Wireless-HEW),通过一系列系统特性和多种机制增加系统容量,通过更好的一致覆盖和减少空口介质拥塞来改善Wi-Fi网络的工 ...

  8. WiFi无线网络参数 802.11a/b/g/n 详解

    转载自:WiFi无线网络参数 802.11a/b/g/n 详解 如转载侵犯您的版权,请联系:2378264731@qq.com 802.11a/b/g/n,其实指的是无线网络协议,细分为802.11a ...

  9. 【Wi-Fi 802.11协议】管理帧 之 Beacon帧详解

    Beacon帧简介 信标帧,由AP以一定的时间间隔周期性发出,以此来告诉外界自己无线网络的存在. Beacon帧组成 下图为Beacon帧的组成 下图为抓包所得(AP为2.4g 11n模式),Pack ...

最新文章

  1. Python Qt GUI设计:QMainWindow、QWidget和QDialog窗口类(基础篇—10)
  2. 全线衰退:PC产业一枝孤秀
  3. 一起感受不一样的项目沙盘
  4. Kafka:Zero-Copy零拷贝
  5. ArcMap中的名称冲突问题
  6. 图形结构:安排课程,图的遍历策略
  7. lcd取模如何取16位_两种方式实现取16位变量的高低8位, 不严谨对比
  8. 使用sql语句向SDO_Geometry插入要素
  9. Ubuntu21.04 安装 VLC视频播放器
  10. Webrtc 开源代码的简单介绍
  11. 浮点数取绝对值的方法
  12. laravel-excel 3 导出(多图片导出)
  13. ip查看服务器信息,如何查看服务器的出口ip地址
  14. java 微信群组头像_仿微信生成群组头像
  15. Linux下Mysql的解压安装 5.7.32
  16. 多元线性回归方程原理及其推导
  17. 初识js-charts和E-charts
  18. 普通话测试第四题评分标准_普通话测试第四题评分细则
  19. iOS 一个带动画的等待指示器
  20. Proactol什么是脂肪燃烧

热门文章

  1. 斐波那契堆为何称为斐波那契
  2. 移动通信数字移动电话客户号码结构
  3. Android底部导航栏+消息提醒
  4. 求助,mosek安装/mosek安装出错怎么解决
  5. tar命令参数详解linux,linux tar命令参数及用法详解
  6. Unity 避免在人物动画上使用关键帧
  7. 酉矩阵和Hermite矩阵
  8. 基于OP放大器的有源模拟滤波器设计--SK滤波器
  9. 振动信号处理 (一)
  10. 虚拟服务器修改mac,虚拟机修改服务器mac地址