王致远,张陶冶,郭志斌,邱佳慧,张 菊,苏昭阳,刘 留
1.北京交通大学电子信息工程学院,北京 100044
2.中国联合网络通信集团有限公司智网创新中心,北京 100048
近年来,智能网联汽车被公认为是全球汽车产业发展的焦点,C-V2X (Cellular Vehicle-to-Everything)作为智能网联汽车的关键技术受到了巨大的关注,其致力于车辆与周围的车、基础设施、网络和行人之间建立全方位的连接并实现高可靠低时延的信息交互[1-3],从而促进智能决策和协同控制。C-V2X 模式4 在3GPP R14/15 中被指定为支持基本的V2X 安全服务[4],其通过车辆、路侧设备以及行人之间周期性信息交互,实现碰撞预警、道路危险警告和超速警告等安全应用[5]。
C-V2X 模式4 为了保证车辆在没有基站覆盖的场景下正常通信,采用分布式资源调度方式,遵循基于感知的半持续调度(Semi-Persistent Scheduling,SPS)[6]。当终端选择资源时,将对资源池进行感知,排除已被占用的资源,并在干扰较小的资源中随机选择。在选择发送资源后进行周期性占用,使得周围车辆感知并避开已被占用的资源。然而在真实交通场景下,由于感知受限以及信道拥塞等问题,可能出现相邻车辆选择相同的资源,导致接收端信干噪比低无法正常接收,此类问题被称为资源碰撞。由于周期性资源占用,碰撞将在多个周期上持续。在车流量较高的情况下,资源碰撞是影响C-V2X 通信性能的主要原因之一[7-8]。
资源碰撞是当前C-V2X 研究的重点,相关研究从不同角度设计并提出解决方案。Xing 等[9]从地理位置的角度提出划分为多个地理区域,每个区域分配ID 和相应的资源池。车辆根据所处位置从对应的资源池中选择资源,从而降低不同区域终端间的干扰。Molina-Masegosa 等[10]从资源保留概率、资源选择窗以及接收功率阈值等SPS 参数配置角度进行研究,提出基于标准算法的最佳参数配置。Jung 等[11]提出选择两个发送资源,并在传输中交替使用。即使在一个资源上发送碰撞,另一块资源也可以正常传输。He 等[12]提出了一种基于短期感测的资源选择方案,在所选发送资源的开始处配置短期感知时间,依据感知结果确定是否最终在该资源上传输。Bazzi 等[13]通过分析无线盲点发生的概率,对资源自主选择模式进行扩展,提出资源保留概率的自适应调整方案。然而,由于分布式资源调度,资源碰撞问题难以避免,上述方案无法解除已发生的碰撞,即无法解决在多个周期上的持续数据包碰撞。当前SPS 中持续存在数据包冲突问题的根本原因是具有重叠选择窗口的车辆之间缺少选定资源的通信[14],因此允许各分布式节点进行合作是一种有效解决方案[15],即允许观察到碰撞事件的邻居车辆向碰撞车辆提供反馈。Wendland 等[16]通过广播反馈解决隐藏节点问题,根据数据包成功接收记录资源位置并形成位图,以位图的形式进行反馈。然而,位图占据较大的空间,且未考虑反馈者的位置。Yoon 等[14]根据接收功率设置反馈关注区域,反馈终端仅反馈关注区域内的碰撞事件。但以接收功率划分关注区域忽略了场景间的差异,发生碰撞的终端全部更换资源将造成资源的浪费。因此,碰撞反馈机制需要结合资源碰撞的成因和车联网通信的特点进行系统设计,从而使其能够解除资源碰撞并提升资源复用的有效性。
本文基于V2X 理论模型分析,将碰撞产生原因总结为资源选择不确定性、感知受限、信道拥塞以及半双工。针对上述因素,围绕碰撞发生的过程设计资源碰撞避免机制。在资源碰撞时,碰撞终端无法了解到碰撞的发生,设计了邻居终端反馈机制以告知碰撞车辆;
在碰撞终端意识到碰撞后,设计了基于重选计数器的碰撞解除机制以解除碰撞并协调资源;
在碰撞解除后,针对未成功传输的V2X 数据,设计了基于单次感知传输的重传机制。通过上述机制系统地解决资源碰撞问题,并对所提出方案进行理论分析和仿真验证。
C-V2X 无线资源由时域中的子帧和频域中的子信道组成[17]。其中,子信道由一组资源块(Resource Block,RB)组成,每个RB 由12 个子载波形成,子载波间隔为15 kHz。一个子帧包含2个时隙,每个时隙由7 个OFDM 符号组成。物理信道包括控制信道和共享信道,两者在相同子帧上采用相邻频率资源传输。控制信道主要携带控制信息,包括共享信道位置、资源预留间隔等;
数据信道用于承载V2X 消息。C-V2X 时频资源划分如图1 所示。
图1 C-V2X 时频资源池
C-V2X 终端的资源调度方式为基于感知的半持续调度,其包括感知和资源选择两个阶段。在感知阶段,车辆持续监测每个子帧,尝试接收其他车辆的信号,若在子信道上成功解调其他车辆的控制信道,即记录该子信道的位置并测量参考信号接收功率(Reference Signal Receiving Power,RSRP);
若在子信道上未接收到数据,则测量该子信道上的接收信号强度指示(Received Signal Strength Indication,RSSI)以用于评估资源上的干扰情况。
当需要传输数据时,终端将进入资源选择阶段。终端应排除距离较近的车辆所使用的资源,否则将产生严重的资源碰撞。故终端需要设定RSRP 门限,排除成功解调控制信道且RSRP 高于门限的子信道。若排除满足上述的子信道后,剩余子信道数量不足总数的20%,那么将上述条件中的RSRP 门限提高3 dB,直到剩余资源数量大于等于资源总数的20%。在排除符合上述条件的子信道后,设置大小为资源块总数20%的候选资源集合,将剩余资源中平均RSSI 较小的资源块放入候选资源集合中。终端在候选集合中随机选择发送资源,并且设定资源保留概率和周期性占用次数。当达到占用次数时,将依据资源保留概率确定是否重新选择资源。
文献[18]提出了C-V2X 性能分析模型,在该模型中将车辆分为发送车辆、接收车辆以及干扰车辆。其中,在场景中选定发送车辆和接收车辆后,则其他车辆均为干扰车辆。针对每个干扰车辆,计算其与发送车辆产生资源碰撞而导致接收车辆无法成功接收的概率。若存在干扰车辆与发送车辆选择相同资源且接收车辆处干扰信号功率高于门限,则认为该数据包由于资源碰撞而无法正常接收。因此将资源碰撞概率δCOL表示为
其中,t表示发送车辆,i表示干扰车辆,r表示接收车辆,dt,r表示收发车辆间的距离,dt,i表示干扰车辆与发送车辆间的距离,di,r表示干扰车辆和发送车辆间的距离,干扰车辆i导致的碰撞概率为。
将干扰车辆造成的碰撞丢包概率进一步讨论,只有当干扰车辆和发送车辆选择相同资源且干扰车辆在接收车辆上的干扰高于阈值时,才会导致碰撞引起的丢包问题。干扰车辆和发送车辆选择相同资源的概率与干扰车辆和发送车辆间的距离、资源调度以及拥塞控制有关,而接收车辆上干扰功率高于阈值的概率与收发车辆的距离、干扰车辆和接收车辆的距离以及传播有关,因此碰撞概率可以表示为
其中,pINT为干扰节点在接收节点上的干扰高于阈值的概率,pSIM为发送节点和干扰节点选择相同资源的概率。
半持续调度机制对选择的资源进行周期性占用,一旦发生资源碰撞后,碰撞车辆由于半双工机制无法了解到碰撞的发生,将产生连续多个数据包的丢失,直到发送车辆或碰撞车辆达到占用次数。错误资源选择至少造成的丢包数可以表示为
其中,RCt为发送车辆对所选资源的占用次数,RCi为干扰车辆对所选资源的占用次数。
接收车辆上干扰能量高于门限的概率与功率控制、传播有关,而本文主要关注无线资源调度,因此对发送车辆和干扰车辆选择相同资源的概率进一步讨论,可以表示为
其中,τ为传输频率,PSD(dt,i) 为发送节点和干扰节点可以互相感知到的概率,Cc(dt,i) 为发送节点和干扰节点的公共候选资源数,Nc为发送节点的候选资源数。
发送车辆和干扰车辆是否选择相同资源取决于能否相互感知。在两车能够相互感知到,则仅在两车选择窗重叠的情况下,因资源选择具有不确定性可能选择相同的资源。其中,两车选择窗重叠的概率为1/τ。在该情况下,由于两车能够相互感知,因此可采用相应的措施进行资源碰撞避免,Jeon 等[19]提出发送端提前确定是否需要重选资源,若需要重选,则提前选择资源并在控制信息中添加“lookahead”指示下一次资源选择位置,能够有效解决资源选择窗重叠的问题。通过结合资源预约机制,无论是否重选资源,在传输中都将指示下一次资源位置,有利于其他车辆识别碰撞,因此本文所提方案基于“lookahead”方式。在感知受限的情况下,发送车辆和接收车辆无法相互感知,发送车辆选择两车公共候选资源且干扰车辆同样选择该资源的概率为。需要注意的是,当信道拥塞时较多资源已被占用,那么两车的候选资源池将具有较大的重叠,从而导致较大的碰撞概率。在此情况下资源碰撞问题难以避免,且碰撞终端由于半双工无法了解到碰撞的发生,碰撞将在多个周期上持续。本文算法主要针对由于感知受限和半双工造成的连续资源碰撞问题,由于碰撞双方无法相互感知,难以在碰撞前完全避免其发生,因此考虑采用邻居车辆进行分布式反馈使碰撞车辆了解到碰撞的发生,在此基础上进行碰撞的解除与恢复。
基于车联网资源预约机制以及“lookahead”资源广播机制,在使用周期性资源和重新选择资源的情况下,终端均会在一次传输中提前告知周围终端其下一次使用资源的位置,周围终端在收到此数据包后将在资源池中标记终端预约的下一次资源。若有两个及以上终端在传输中预约了相同的资源,并且在该资源位置未能成功接收数据包,那么周围的其他终端将识别到可能发生的资源碰撞并进行碰撞反馈。
本文重点关注碰撞反馈的条件,当满足碰撞反馈的条件时才进行反馈。错误的碰撞反馈不仅无法起到减少资源碰撞的作用,反而可能使资源合理复用的终端放弃其传输资源并更换新的资源。由于终端在传输中会预约其下一次传输所使用的资源,故其原有传输资源已被预约,附近车辆将不会选择该资源,从而造成资源的浪费。碰撞终端的邻居终端对于碰撞的识别具有较高的准确性,而距碰撞终端较远的终端可能将合理的资源复用识别为碰撞。因此,确定并计算反馈范围是碰撞反馈的重要内容。在文献[14]中利用无线信号强度表征通信范围,存在比较大的误差,这是由于车联网传播环境中视距传输和非视距传输下接收能量具有较大差异。本文考虑车联网消息中携带了发送终端的位置信息,因此接收终端能够计算其与发送终端间的真实地理距离。车联网V2V 通信性能要求一般为300 m[20],反馈终端关注周围300 m 范围以内的碰撞事件。
考虑到资源池的有限以及反馈信息的数据较少,感知到碰撞的终端将需要反馈的信息添加到其下一次传输中的控制信息中,并且规定终端在传输时对距离当前传输最近的碰撞进行反馈,从而实现在较短时间内将反馈信息告知碰撞车辆。邻居终端反馈机制示意图如图2 所示。
图2 邻居终端反馈机制示意图
在该机制下,碰撞反馈依靠周围的邻居终端进行反馈,周围的反馈终端数vf可表示为
其中,df为碰撞识别距离,dt,i为发送终端和干扰节点之间的距离,ρ为车流密度。
接着需要考虑反馈终端周围存在的碰撞数量,以确定每个碰撞的反馈终端数,反馈终端周围存在的碰撞数量NCOL可以表示为
其中,δCOL(x) 为距离接收终端x时的发生碰撞概率,由式(1)可得。
当碰撞发生后,若碰撞终端接收到反馈将进行碰撞解除,因此碰撞持续数的概率函数可以表示为
其中,pf为邻居终端成功进行碰撞反馈的概率,可以表示为
其中,PDR(x) 为收发端距离为x时的收包率。若设定的反馈距离较近,则在碰撞识别区域内由于功率低于门限和传播造成的丢包概率较小,PDR(x)可近似为(1-δCOL(x))。
当接收到碰撞反馈后,若碰撞终端同时更换资源,由于无法获知对方选择的资源位置,仍存在再次碰撞的可能。并且由于资源预约机制,碰撞终端在传输中已经对下一次所使用的资源进行预约,因此其他终端将不会使用该资源,造成了资源的浪费。
本文设计基于重选计数器的碰撞解除机制,重选计数器意味着终端将继续占用此资源的次数,为了利用重选计数器辅助碰撞解除,需要终端在传输数据时将重选计数器添加到控制信息中。终端在碰撞反馈信息中除了标明碰撞的时频位置外,同时加入占用此资源终端的最大重选计数器值。若存在多个最大重选计数器的情况,则将最大重选计数器值加1 后添加。当终端接收到碰撞反馈信息时,若其重选计数器大于等于最大重选计数器值时,则继续使用当前资源;
若重选计数器小于最大重选计数器值时,则更改发送资源,从而使得具有较大重选计数器的终端继续使用该资源,而重选计数器较小的终端更改资源。该机制的优势为不仅能够有效解除资源碰撞,而且能够起到被动感知的作用,使得其中一个碰撞终端继续使用该资源,而其他终端重新选择资源,能够促进资源的合理分配,并且避免了终端频繁更换资源。
反馈终端进行碰撞识别和反馈的流程图如图3(a)所示,碰撞终端接收反馈并解除碰撞的流程图如图3(b)所示。
图3 基于重选计数器的碰撞解除机制流程图
若碰撞终端均更换资源,不仅会造成资源的浪费,并且由于双方无法预知到对方下一次使用资源的位置,仍有可能再次发生碰撞,再次发生碰撞的概率δ′COL(dt,i) 可以表示为
其中,Cc(dt,i) 为发送节点和干扰节点的公共候选资源数,Nc为发送节点的候选资源数。
通过重选计数器进行资源碰撞解除后,仅在发送节点和干扰节点的重选计数器相同时才存在再次发生碰撞的可能,再次发生碰撞的概率δ′COL(dt,i) 可以表示为
其中,RCmax为选择资源后进行周期性占用的最大次数,RCmin为进行周期性占用的最小次数。
在3GPP 标准中,为了提升V2X 传输的可靠性,将盲重传设为可选项[21]。如果使用盲重传方式,在选择资源时终端在选择初传资源之外,还将选择一个随机时间位移和不同子信道上的重传资源。在发送中,初传资源传输原始数据包,重传资源传输原始数据包的副本。两者除了控制信息中的初重传标志不同外,其他信息均一致。由于收端只需接收到初传数据包或重传数据包即可,而初传和重传均发生资源碰撞的概率较小,因此盲重传能够提升传输可靠性。然而,这种提升仅限于在信道空闲的情况下。由于盲重传将占用两倍的带宽,在信道繁忙的情况下反而增加了信道的拥塞程度,造成了更多的资源碰撞,无法起到提升传输可靠性的目的。
在本文提出的数据包碰撞反馈和解除机制中,即使碰撞经过邻居车辆的反馈得到了解除,然而发生碰撞的数据包已经丢包,直到下一次数据包传输前,收端将无法更新发端的状态信息。当选择相同资源的车辆距离较近时,这意味着周围较多车辆在这段时间内无法了解到两车的状态信息。因此,本文提出基于单次感知传输的数据包重传机制,当碰撞终端解除碰撞后,立即利用基于感知的单次资源选择(Sensing+One shot)[21]为发生碰撞的数据包选择重传资源,即通过感知避让其他终端的发送资源,但不预约下一次的发送资源。
由于发生了资源碰撞,则收端在上一次成功接收数据包后未能接收到新的数据包,因此V2X 状态消息在碰撞解除直至成功接收到数据包后才得到更新。在此过程中,接收端数据包更新时延τu的概率函数可以表示为
其中,tCOL为发生资源碰撞的时刻,tSUCC为碰撞前最后一次成功接收的时刻;
λ为发送频率(1~10 Hz),RC′为碰撞解除后的重选计数器值,n表示碰撞解除后的第n次传输,n∈[1,RC′];
dt,r表示发送端和接收端间的距离,PDR(dt,r) 为数据包传递率,δCOL(dt,r) 为资源碰撞概率。这里需要注意的是,由于碰撞已解除,故此时成功传输数据包的概率为(PDR(dt,r)+δCOL(dt,r))。
在采取重传机制后,当碰撞终端成功接收到碰撞反馈后,将选择用于重传的资源并进行发送,因此接收端数据包更新时延τu的概率函数可以表示为
其中,τf为碰撞反馈的时延;
τr为碰撞终端进行丢包重传的时延,其与重传资源的选择窗配置有关。
由上可得,在未使用重传机制的情况下,碰撞发生后数据包的更新需要等待整数倍的发送周期。而在所提出的重传机制下,若接收端成功接收重传数据包,则在碰撞发生后数据包的更新仅需等待碰撞反馈和丢包重传的时延,有利于车联网终端间实时状态信息更新。
通过改进的LTEV2Vsim 平台[22]对本文所提出的算法进行验证,并与3GPP 标准方案、Yoon 等[14]方案进行对比。在仿真中,场景选取为高速直道,设置3 种车辆密度情况:车流量100 车/km(轻度拥塞交通,100 km/小时),车流量200 车/km(中度拥塞交通,60 km/小时),车流量300 车/km(严重拥塞交通,30 km/小时)。车辆的初始位置依据一维泊松分布[23]。信道模型选取3GPP 规定的WINNER+B1 模型[24-25],信号带宽为10 MHz,子信道数量为2,每个子信道中包含25 个RB。车联网通信消息为基本安全消息[26],数据包发送频率为10 Hz[27],大小为300 Bytes。感知窗口为1 000 ms,重选计数器RC的范围为[5,15],资源保留概率设置为0,仿真参数具体配置如表1 所示。为了验证所提出方案的有效性,本文选取数据包碰撞数、收包率和数据包更新时延作为性能衡量指标。
表1 仿真参数配置
数据包碰撞数的定义为在选定范围内终端选择相同资源的数量,较低的数据包碰撞数表示资源分配较为合理。由于车联网V2V 的覆盖需求为300 m,因此600 m 内的资源碰撞均会影响性能,故选取的碰撞识别范围为400、500 和600 m。仿真结果如图4 所示。
图4 数据包碰撞数仿真结果
在图4 中,一方面资源碰撞的数量随着碰撞识别范围的增加而提升,这是由于在更大的区域内将存在更多的车辆选择相同资源;
另一方面资源碰撞的数量随着车流量的升高而提升,这是由于越来越多的车竞争有限的资源。在100 veh./km 与200 veh./km车流量下,当碰撞识别距离为600 m时,本文算法较标准算法即基于感知的半持续调度减少了约50%的碰撞数。标准算法由于周期性占用导致了持续资源碰撞,本文通过邻居终端反馈的方式解除持续碰撞,式(7)推导了所提出算法中碰撞持续数的概率函数,其取决于反馈终端的数量和反馈信息的成功接收率。在拥塞交通下,碰撞终端周边存在较多的反馈终端,距离越近的终端具有更高的反馈成功率。在碰撞终端接收反馈后,所提出的算法使碰撞终端依据重选计数器协调资源,式(10)推导了解除后碰撞再次发生的概率函数,其取决于碰撞终端间具有相同重选计数器的概率和公共候选资源数,而重选计数器值相同的概率较小。由此可得,本文算法能够有效减少持续碰撞并促进资源合理分配,仿真结果与理论分析相符。另外,与Yoon 等[14]提出的算法相比,本文算法在车流量100 veh./km下减少了约40%的碰撞数,在车流量200 veh./km 下碰撞数减少约30%。而车流量为300 veh./km 时,在600 m 的碰撞识别距离下本文算法较标准算法减少约30%的碰撞数,较Yoon 等算法的碰撞数减少约15%。这是由于严重拥塞下信道几乎已被占满,解除碰撞后的终端在选择资源时仍难以保证合理的资源复用距离。
收包率定义为所有发送的数据包中成功接收的数据包数量与全部数据包数量的比值,衡量了通信的覆盖性能,计算公式为
其中,NSUCC为成功接收的数据包数量,NTOT为全部数据包的数量。
收包率仿真结果如图5 所示。
图5 收包率仿真结果
随着收发端距离的增加,受到干扰终端和传播效应的影响,导致3 种方案的收包率均相应降低。可以观察到在不同的车辆密度场景中,本文算法较标准算法和Yoon 等算法具有更好的性能。具体而言,当收发距离为200 m 且车辆密度分别为100、200 和300 veh./km 时,与标准方案相比,所提方案可以将收包率分别提高8%、18%和13%;
与Yoon 等算法相比,所提方案可以分别提升4%、7%和8%的收包率。然而当两车距离大于350 m 时,本文算法与标准算法、Yoon 等算法性能趋近,这是由于本文算法为了避免错误的碰撞反馈设置了碰撞识别范围,反馈车辆对于超出识别范围的碰撞事件不进行反馈。
数据包更新时延的定义为在选定的范围内从同一节点连续成功接收数据包的时间间隔,在仿真中数据包更新时延的计算区域为300 m,并以累计分布函数(Cumulative Distribution Function,CDF)的形式表示,仿真结果如图6 所示。仿真中设置的发送周期为100 ms,因此数据包更新时延的累计分布函数在100 ms 处有较大阶跃,之后在时延为100 ms的整数倍处均有一定的阶跃。车联网致力于实时信息交互,较长的数据包更新时延表示在此时间范围内其他终端无法了解到发送终端这段时间的位置和速度等信息,影响道路交通安全。因此要求终端在接收大部分数据包时具有较短的更新时延,这里选取第95 百分位数以对比不同的算法。
图6 数据包更新时延仿真结果
从图6 中可知,当车流密度为100 veh./km 时,本文算法更新时延的第95 百分位数约为140 ms,与Yoon 等算法性能相近,较标准算法缩短60 ms;
当车流密度为200 veh./km 时,本文算法第95 百分位数约为160 ms,较标准算法减少了140 ms,较Yoon 等算法缩短50 ms;
而当车流密度为300 veh./km 时,本文算法第95 百分位数约为200 ms,较标准算法减少200 ms,较Yoon 等算法降低100 ms。所提出的算法使终端在解除碰撞后重传发生碰撞的数据包,式(12)推导了数据包更新时延的概率函数,其取决于重传包的成功接收率。若收端成功接收重传包,则从碰撞发生到数据包更新仅需等待碰撞反馈和丢包重传的时延,而在标准算法下则需等待整数倍的发送周期。由此可得,本文采用重传机制进行碰撞恢复能够有效降低数据包更新时延,仿真结果与理论分析相符。
针对C-V2X 中资源复用不合理造成的碰撞问题,本文在分析其产生原因的基础上,围绕碰撞发生的过程提出了基于分布式反馈的碰撞解除与重传机制。首先通过邻近终端识别碰撞,并判断该碰撞是否属于反馈区域内以提升反馈的准确性。接着在碰撞解除中,为了避免资源的浪费和二次碰撞的发生,提出了基于重选计数器的资源保留机制,使得具有较大重选计数器的终端继续使用该资源,其他终端则更换资源,有利于资源的合理复用。最后当碰撞解除后,针对发生碰撞而丢包的V2X 数据,提出了基于单次感知传输的重传机制以进行碰撞恢复。仿真结果表明,所提出的机制能够有效降低数据包碰撞数,从而提升传输可靠性并降低数据包的更新时延。因此,本文认为在基于感知的C-V2X 分布式资源调度中,由于终端之间缺乏关于资源选择的信息交互,分布式反馈作为一种能够有效提升资源复用合理性并保证传输可靠性的方案应得到重视。
猜你喜欢 重传计数器数据包 采用虚拟计数器的电子式膜式燃气表煤气与热力(2022年2期)2022-03-09SmartSniff网络安全和信息化(2018年4期)2018-11-09面向异构网络的多路径数据重传研究∗计算机与数字工程(2018年9期)2018-09-28计数器竞争冒险及其处理的仿真分析湖北师范大学学报(自然科学版)(2015年1期)2016-01-10数据链路层的选择重传协议的优化改进电子设计工程(2015年6期)2015-02-27基于Libpcap的网络数据包捕获器的设计与实现中国新通信(2014年11期)2014-09-11任意N进制计数器的设计方法河南科技(2014年10期)2014-02-27基于单片机的仰卧起坐计数器电子设计工程(2014年18期)2014-02-27视觉注意的数据包优先级排序策略研究深圳信息职业技术学院学报(2013年3期)2013-08-22MPTCP中一种减缓缓存阻塞的重传策略电视技术(2013年17期)2013-01-31扩展阅读文章
推荐阅读文章
恒微文秘网 https://www.sc-bjx.com Copyright © 2015-2024 . 恒微文秘网 版权所有
Powered by 恒微文秘网 © All Rights Reserved. 备案号:蜀ICP备15013507号-1