EVDO速率问题定位_第1页
EVDO速率问题定位_第2页
EVDO速率问题定位_第3页
EVDO速率问题定位_第4页
EVDO速率问题定位_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实用标准文案产品名称 Product name密级 Confidentiality levelCDMA2000内部公开产品版本 Product versionTotal 23 pages 共23页V200R003EVDO数据业务全流程速率问题定位指导书Prepared byDateCDMA性能研究部2008-9-3拟制日期Reviewed byDate评审人日期Approved byDate批准日期Authorized byDate签发日期Huawei Technologies Co., Ltd.华为技术有限公司All rights reserved版权所有侵权必究文档实用标准文案修订记录日期

2、修订版本描述作者2008/07/301.0初稿完成吴鹏 519722008-9-31.1修订、补充叶国骏 47562文档实用标准文案EVDO数据业务全流程速率问题定位指导书目录1DO单用户吞吐量分析简述 . .61.1DO单用户吞吐量概述 . .61.2本文使用说明 . .61.3DO单用户吞吐量分析假设 . .62数据流与协议栈 . .72.1协议栈原理图 . .72.2协议栈说明 . .72.3数据传输过程 . .92.4瓶颈理论(重要) . .102.5上层反映理论 . .102.6其他理论: . .103各协议层简介(紧急定位时可以不看). .113.1RLP协议介绍 . .113.1

3、.1RLP协议数据 . .113.1.2RLP初始化 . .123.1.3RLP复位 . .123.1.4RLP发送 . .133.1.5RLP接收 . .143.2TCP层简介 . .163.2.1TCP的可靠性: . .163.2.2TCP报文格式 . .173.2.3通告窗口 . .173.2.4拥塞 . .183.2.5TCP的慢启动算法 . .183.2.6最小开销 . .18文档实用标准文案3.3UDP层简介 . .183.4IP 层简介 . .193.4.1报文格式 . .193.4.2最小开销 . .193.5GRE.193.5.1GRE协议简介 . .193.5.2GRE协议

4、头 . .203.5.3排序功能 . .203.6PPP层简介 . .223.6.1链路控制协议 . .233.6.2前向处理过程 . .243.6.3反向处理过程 . .243.6.4MTU. .243.6.5PPP协议最小开销 . .243.6.6PPP协议的 Van Jacobson 报文首部压缩方法 .243.7Abis链路( BSC与 BTS之间) . .243.7.1前向描述 . .253.7.2反向描述 . .253.7.3Abis 口格式 . .263.8空口协议 . .263.9PCMCIA/USB(笔记本和 AT之间) . .263.10RP接口( BSC与 PDSN之间)

5、 . .263.11网络侧拓扑( PDSN与服务器之间) . .274 故障分析 . .274.1吞吐量不正常的现象种类 . .274.2吞吐量问题原因分析 . .274.2.1设备性能问题: . .274.2.2参数配置问题: . .274.2.3组网或软件问题导致丢包 . .274.2.4组网导致包乱序 . .28文档实用标准文案4.2.5空口因素导致 . .284.2.6环回时延太长导致 . .284.2.7前向对反向的影响 . .284.3出错假设分析: . .294.3.1FTP server PDSN. .294.3.2PDSN PCF. .294.3.3PCF FMR. .304

6、.3.4EC FMR. .304.3.5终端 EC. .304.3.6PC和终端 . .305获取定位信息. .305.1终端侧 TCP层 log 的获取( Commview, Earthreal) .315.1.1终端侧 QXDM log的获取 . .315.1.2EC板 log 的获取 . .355.1.3PPP错包数的获得 . .365.1.4FMR log 的获取 . .375.1.5PCF数据获取 . .385.1.6R/P 口 TCP层 log 的获取( Earthreal) .395.1.7维护台单用户流量跟踪 . .396问题定位方法. .396.1影响速率的因素分析 ( 排除

7、法 ) . .396.2理论分析方法 . .406.2.1空口问题定位 . .406.2.2判断是否有大量乱序 . .406.2.3判断是带宽受限还是丢包 . .416.2.4Iperf 定位带宽受限的问题 . .416.2.5丢包位置判断 . .417常用定位思路. .448参考资料 . .44文档实用标准文案1 DO单用户吞吐量分析简述1.1DO单用户吞吐量概述吞吐量是一个范围比较广的指标,本文是希望通过对理论的分析,和对实践定位的一些思路的整理,在定位过程中起到一定的帮助。如果在外部项目情况紧急的情况时,可以直接参考 排除法 章节,排除相关可能后如果还不能解决, 找到获取定位信息 的章节

8、,获取后发回在总部进行分析。 -影响 DO速率的因素很多,在实践过程中感觉用排除法和理论分析结合一齐使用定位的效率是最快的。故障定位思路占60, 40甚至要靠经验。指导书里包含了一些,大家在平时也要注意积累案例,记忆中案例多了,定位会快很多。平常时建议大家多自己做一些尝试和归纳,在使用中有指导书,有好的想法或发现本文有错误,请及时告知,以便于我们更新指导书。有解决不了的问题,欢迎发邮件讨论。1.2本文使用说明第二章数据流与协议栈:建立系统结构概念,理解系统工作方式第三章各层协议介绍:了解组成结构的各层协议和封装结构、是否有序号,校验方法第四章故障分析:分析和归纳故障现象和原因第五章获取定位信息

9、:每个节点有哪些和吞吐量有关的信息,如何获得第六章问题定位方法解释某个问题的定位方法和原理第七章常用定位思路讨论如何顺序执行众多的方法使定位快而且成功率高1.3DO单用户吞吐量分析假设无线环境:近点,C/I =11.7 db设备环境: BSC采用大容量配置,IP 框和 RP框采用光纤互连(其他环境相同)。物理层:前向速率可以稳定申请最高速率(DO RevA: 3.1Mbps; DO Rel0 :2.4Mbps 。不是必要条件,为不造成对反向影响,减少定位干扰)。计算机操作系统:Windows XP文档实用标准文案网络:空载,网络中除了进行测试的终端外,无其它终端终端: QTP6800信道板采用

10、 CSM6800芯片2 数据流与协议栈2.1协议栈原理图数据业务的传输经过很多协议层,通过不同层的保障达到传输的目的。数据业务出现传不动的现象, 不仅需要检查网元间链路,也就需要分层分析,看是那一层影响了上层应用的传输速率,通过层与链路的综合分析定位问题。DO数据业务传输过程中重要的网元以及协议栈对应如下图所示,通过协议栈与网元的对应关系,可以去定位这个网元的这个协议层是否存在故障。AppAppTCP/TCP/UDPUDPIPIPIPPPPPPPRLPRLPLinkLinkPCMCIAPCMCIABTS/CHMR-PR-PMACMAC/USB/USBAirlinkAirlinkAbistAbi

11、stPhyPhyPhyPhyPktPktInternetTEMobileBTS/BSC/PCFPDSNStation图 1 协议栈在各网元中的分布注意协议层的起始和终点。上层协议对下层协议而言都是静荷,下层协议并不关心上层到底是什么数据。2.2协议栈说明序号协议层次位置(物理分段)说明文档实用标准文案1应用层手机侧笔记本和服务器的使用 TCP协议或 UDP来传送;( FTP/http应用层软件是该层协议的等)两个对端2TCP层面向连接的端到端之间 (在为了保证数据流可靠的传输,它采用上图中位于服务器和手机的是 ACK(对端通告是否收到)、通告侧笔记本上) 的一种可靠传窗口(对端通告当前可发数据

12、流窗输协议。口)、慢启动、拥塞窗口(为避免拥塞,发送方将计算 RTT等确定发送数据流窗口)等机制,其性能指标可能与TCP层的参数设置、 网络拓扑、 物理层性能等等有关,但是首先应该怀疑物理层性能:带宽是否足够、时延是否合理、丢包率是否合理等等。 有关 TCP方面的知识请参考 TCP/IP 协议详解卷13UDP层面向无连接的端到端之间它只是简单的把数据报发送到对端,(在上图中位于服务器和没有 ACK,没有窗口, 按照上层数据流手机侧笔记本上) 的一种非量发送可靠传输协议4IP 层网际层协议。其功能主要是路由 (网络侧) 、分片 /位于网络连接的各个点上,重组(一般在起始和终点两端实现)上图中包括

13、服务器、路由等器、 PDSN、手机侧笔记本等5PPP连接点到点连接。PDSN将网络侧到来的报文分装成PPP上图中处于 PDSN和手机侧格式报文通过 Do系统发送给不同的手笔记本(拨号连接)之间。机侧笔记本(拨号连接);PDSN将网线侧到来的报文解包后还原成 IP 报文路由到服务器上去。6RP接口采用 GRE格式分装。位于目的是将不同手机用户的数据在PDSN文档实用标准文案PDSN和基站之间。和 BSC的 FMR用户实例之间传送。7PCMCIA/USB笔记本与手机之间的接口负责传送手机和笔记本之间的数据8RLP层无线链路协议。为了尽可能使得手机侧笔记本和 PDSN位于手机和 BSC FMR之间,

14、之间的 PPP报文在无线链路上减少丢互为收发,互为始终失,采用的一种 NAK机制,即没有收到某一段数据则通知对端重传。9Abis 接口BSC与 BTS之间的接口为了使得 BSC的 FMR和 BTS信道板之间的前向数据传送即充分利用带宽,又不发送太快导致信道板上 Buffer 中数据被覆盖,采用通告窗口机制;反向很简单,有多少就发多少。2.3数据传输过程从物理上看,自上而下分层接口为应用层、TCP/UDP、IP 、PPP、RLP、 abis 口、空口、和一般不会影响吞吐量(带宽足够)的R/P口、 P/I 口、 PCMCIA/USB口等。 RLP在DO 协议里是属于空口七层协议的应用层,所以下面按

15、照TCP、 UDP、 IP 、 PPP、 ABIS、空口分析。PC通过终端发送数据时:1. 源 PC把应用层数据依次打 TCP/UDP、 IP 、 PPP的包头、包尾,再按照 USB格式加开销发给终端;2. 终端把源 PC发来数据去掉 USB开销,按照空口格式加开销后发到空中,此时数据开销包括 TCP/UDP、 IP 、 PPP、空口;3.DO Rel.0 是在 EC解空口的物理层,然后把空口的mac包封装在 abis 包里发往FMR。 DO Rev.A是在 EC解到 RLP层,把 RLP层数据包封装在abis 包里发往 FMR。4. BSC的 FMR板把空口其他开销去掉,加上有线网络的开销经

16、过PCF从R/P口发到PDSN。5.PDSN去掉 FMR加的有线网络开销、再去掉源PC加的 PPP和 IP 层开销,在 PPP和 IP层开销里找到源PC要发送的地址,再打上IP 层、有线网络的开销发往目的PC;6. 目的 PC去掉 PDSN加的有线网络开销和 IP 层开销,再去掉源 PC加的 TCP/UDP开销就获得了应用层的数据。PC通过终端接受数据时格式相同,各节点按照协议打包、解包次序相反。文档实用标准文案2.4瓶颈理论(重要)在整个数据流的过程中并不是所有开销都会影响应用层速率,关键看在瓶颈段传输时是否包含该段开销。在整个链路上,逻辑层成为瓶颈的原因可以通过修改软件或参数解决(例如设置

17、TCP窗口),所以物理层是传输瓶颈的主要形成原因。物理层有三部分:空口、Abis 口( E1/T1 )、网线,由于网线最小带宽都是10M,所以瓶颈主要是空口和Abis 口。空口成为瓶颈时,影响吞吐量的开销包括:TCP/UDP、 IP 、 PPP、空口Abis 成为瓶颈时 ( E1/T1 不足),影响吞吐量开销包括:TCP/UDP、IP 、PPP、空口、 abis开销。2.5上层反映理论无论是哪一层, 如果丢包的情况发生,且没有在一定的时间内完成本层的重传(如果有重传机制的情况)一定会在上层表现出来。而上层的丢包,下层是无法知道的。至少有四对点对点的协议层会对是否丢包进行检查,TCP层: PC(

18、终端侧 ) 与 PC(FTPserver )间PPP层: PC(终端侧 ) 与 PDSN间RLP层:终端和 FMR之间空口物理层:终端和EC板间举个例子来说, RLP层丢包, PPP层一定会发现,应为 PPP的序号不连续了。如果 PPP 层自己丢包,在交给 RLP层前,就已经丢了, RLP是无法检查到是否 PPP丢包的。2.6其他理论:只有乱序和丢包(错包)会导致重传DO空口前向乱序,RLP层会处理DO Rev.A空口反向由于提前终止会导致乱序,但有假NAK抑止,空口不太差的时候对吞吐量不会造成影响文档实用标准文案3 各协议层简介(紧急定位时可以不看)3.1RLP协议介绍RLP: Radio

19、Link Protocol,无线链路协议。为了更高层协议(如TCP)有效的运转,尽量屏蔽掉具有高误帧率特性的空口链路的影响,使用基于 NAK重传的手段,为更高层协议提供有可接受低差错率的字节流服务。从端到端(从 AT到应用服务器) 全流程来看, RLP在PPP协议和 IP 协议以下,属于链路层协议范畴。 RLP协议直接承载 PPP协议数据。RLP协议数据RLP 不知道高层成帧的情况,它对无特征连续字节流进行操作;把高层无特征字节流添加 RLP头后,封装为RLP数据包,作为流层的负荷。RLP 包长的确定:一个RLP 分组不应超过给定目标信道和此信道目前传输速率的一个流层分组可携带的最大负荷。oc

20、tet streamRLPRLPRLPpacketheaderpayloadStreamLayerpayload图 2 RLP协议数据单元RLP包头的格式:(序列号空间为22bit )FieldLength (bits)SEQ22SEQThe RLP sequence number of the first octet in the RLP payload.文档实用标准文案RLP初始化RLP 初始化过程,初始化链路一端的RLP 变量和数据结构。具体执行如下操作:复位发送状态变量V(S) 为零,复位接收状态变量V(R) 和 V(N) 为零,清空重排缓冲区,清空重传队列。RLP复位RLP 复位过程

21、,保证AT 和 AN两端的 RLP状态变量同步。RLP复位过程包含初始化。(1)发起方的复位过程:发送方向对端发送一个Reset 消息后,进入RLP复位状态,并执行下述操作:执行前述的初始化过程在RLP复位状态下,忽略接收到的所有RLP数据字节在RLP复位状态下,忽略接收到的NAK消息在RLP复位状态下,接收到 ResetAck 消息后,向对端回复 ResetAck 消息,离开复位状态。在RLP复位状态下, 接收到 IdleState.ConnectionOpened 指示后, 将离开复位状态。如果不在 RLP复位状态下,接收到 ResetAck 消息,该消息将被忽略。( 2)应答方的复位过程

22、:应答方手段 Reset 消息后,无条件回复 ResetAck 消息;如果没在复位状态,则立即进入复位状态,并执行下述操作:执行前述的初始化过程在RLP复位状态下,忽略接收到的所有RLP数据字节在RLP复位状态下,忽略接收到的NAK消息在RLP复位状态下,接收到 ResetAck 消息后,向对端回复 ResetAck 消息,离开复位状态。在RLP复位状态下, 接收到 IdleState.ConnectionOpened 指示后, 将离开复位状态。如果不在 RLP复位状态下,接收到 ResetAck 消息,该消息将被忽略。( 3) RLP 复位流程,图示如下:文档实用标准文案发起方应答方Rese

23、t执行初始化执行初始化复位状态ResetAck复位状态离开ResetAck离开图 3 RLP复位流程RLP发送(1) RLP 发送序号的维护RLP是基于 NAK的协议, RLP包序列号空间s 22bit 。针对每个字节进行编号。RLP包序号的大小比较,需要在2S 空间按照无符号数模运算操作。S-1-1大于 N; N+1, N+2S-1 N-2,N-1小于 N。发送方维护发送状态变量V(S) , V(S) 代表待发送的下一个新RLP 包中第一个字节的序列号,该新包中的第i 个字节的序列号隐含为V(S) i 。当发送一个新包后,V(S) 将累加上该新包的字节长度。( 2) TRLPFlush 定时

24、器每当发送新RLP包时,重启该定时器;当定时器超时时,RLP至少应该发送一个包含V(S)-1 序列对应字节的包。该定时器用于解决基于Nak 重传机制下,接收端无法得知最后发送包是否丢失的问题。(3) NAK消息的处理发送方在发送一个新 RLP 包后,需要等待足够长的时间才可以从缓冲区中删除该数据,以备 NAK重传。文档实用标准文案NAK的处理分下述三种情况:NAK携带的 RLP序列号大于等于V(s) ,说明序列号混乱;则发起复位流程;NAK携带的 RLP序列号合法,但是对应字节已不存在;则忽略该NAK消息;NAK携带的 RLP序列号合法,对应字节还在重传缓冲区中;则将NAK对应字节放入重传缓冲

25、区,以备重传。(4)发送方缓冲区 的 设计发送方缓冲区可以设计为一个循环队列。该循环队列有3 大作用:写操作:把来自 PPU的上层字节流数据,写入本缓冲区;读操作:从本缓冲区读取发往流层的新数据;查询操作:从本缓冲区中读取已发送数据,以备NAK重传;该循环队列只需要维护 4 个独立的变量: 3 个绝对的下标索引1 个相对的逻辑序号。读索引:从该位置读新数据发送到流层;每当发送新数据后,累加该变量。写索引:从该位置写入来自PPU的数据;每当接收到PPU数据后,累加该变量。重传头索引:标识重传缓冲区的头索引,用于收到反向NAK后重传前向数据。移动头索引建议遵循下述的规则:(1)当头索引和读索引之间

26、的长度大于S-12 时,移动该头索引,确保重传数据区的包序号都是有效的;(2)也应当确保头索引和读索引之间的重传缓冲区长度不小于设定门限,以保证重传效果;(3)如果填充 PPU新数据已经到达重传头索引位置,应当允许PPU新数据覆盖重传数据,这时写索引和重传头索引可能相等,需要同步移动。V(s) 序号:与读索引紧密相关,同步移动, 表明读索引对应绝对下标位置处的字节数据在 RLP协议中的逻辑序号。通过这个关联关系,可以推算出整个循环队列的数据在 RLP协议中的逻辑包序号。RLP接收(1) RLP 接收序号的维护接收方维护序号V(R) 和 V(N) 。 V(R) 表示期待接收的下一个新字节序号;V

27、(N) 表示第一个遗漏的字节序号;文档实用标准文案(2)数据的接收操作:(3) NAK的生成:若接收字节X 大于 V(R) ,发送 NAK消息,请求重传重V(R) 到 X-1 的所有字节。(4) TRLPAbort 定时器当发现数据空洞,产生NAK消息时,同时启动TRLPAbort. 定时器;如果定时器超时前,空洞被填充,则停止本定时器;如果定时器超时后,空洞还存在,则RLP 把重排缓冲区中该空洞前的所有字节,统统传递到高层(此时差错率被遗留到了上层协议)。并后移V(N) 。文档实用标准文案(5) RLP 接收缓冲区的 设计接收方缓冲区也可以设计为一个循环队列。该循环队列有3 大作用:写操作:

28、把来自流层的反向数据,写入本缓冲区;读操作:从本缓冲区读取发往PPU的数据;重排操作:当发现数据空洞时,执行数据重排;3.2TCP层简介TCP的可靠性:a) 应用数据被分割成 TCP认为最适合发送的数据块。 这和 UDP完全不同, 应用程序产生的数据报长度将保持不变。 由TCP传递给 IP 的信息单位称为报文段或段 ( segment)。b) 当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。( TCP协议中自适应的超时及重传策略)。c) 当TCP收到发自 TCP连接另一端的数据, 它将发送一个确认。 这个确认不是立即发送,通常将

29、推迟几分之一秒。d) TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。 如果收到段的检验和有差错, TCP将丢弃这个报文段和不确认收到此报文段(希望发端超时并重发)。e) 既然 TCP报文段作为 IP 数据报来传输, 而 IP 数据报的到达可能会失序, 因此 TCP报文段的到达也可能会失序。如果必要, TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。f) 既然 IP 数据报会发生重复, TCP的接收端必须丢弃重复的数据。g) TCP还能提供流量控制。 TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接

30、收端缓冲区所能接纳的数据。 这将防止较快主机致使较慢主机的缓冲区溢出。TCP对字节流的内容不作任何解释。TCP不知道传输的数据字节流是二进制数据,还是ASCII 字符、 EBCDIC字符或者其他类型数据。对字节流的解释由TCP连接双方的应用层解释。文档实用标准文案TCP报文格式图 4 TCP报文格式TCP首部的数据格式。如果不计任选字段,它通常是20个字节。根据 FTP传输抓包情况,可选内容部分无信息。通告窗口接收方使用的流量控制,接收方通过设置通告窗口告诉发送方自己当前的接收能力。发送方发送的数据数量最大不能超过该窗口的大小。窗口大小:该值太小,不利于提高网络传输效率;太大,容易造成网络拥塞

31、;比较合理的值为:网络通道的容量。通道容量: 依赖于网络速度和两端的RTT,可以有很大的变动。可以计算通道的容量为:capacity(bit)=bandwidth(b/s)×round-trip time(s);一般称之为带宽时延乘积。RTT:单元的往返时间round-triptime ,该时间受网络影响不停变化,发送方实时的测量该值。文档实用标准文案拥塞当数据到达一个大的管道 (如一个快速局域网) 并向一个较小的管道 (如一个较慢的广域网) 发送时便会发生拥塞。 当多个输入流到达一个路由器, 而路由器的输出流小于这些输入流的总和时也会发生拥塞。网络上的整体速度 (往往是最低设备或链

32、路的速度, 即水桶效应) 小于服务器发送速度,导致数据丢失。而这个容量最大不能超过CWND和接收方通告窗口大小,所以链路的实际速率为:minwindow , CWND, capacity(链路容) /RTT ;TCP的慢启动算法TCP慢启动 (slowstart) 算法,该算法通过观察到新分组进入网络的速率应该与另一端返回确认的速率相同而进行工作。慢启动为发送方的TCP增加了另一个窗口:拥塞窗口(congestion window),记为 cwnd。当与另一个网络的主机建立TCP连接时, 拥塞窗口被初始化为1个报文段(即另一端通告的报文段大小)。每收到一个 ACK,拥塞窗口就增加一个报文段(c

33、wnd以字节为单位,但是慢启动以报文段大小为单位进行增加)。发送方取拥塞窗口与通告窗口中的最小值作为发送上限。拥塞窗口是发送方使用的流量控制,而通告窗口则是接收方使用的流量控制。发送方开始时发送一个报文段,然后等待ACK。当收到该 ACK时,拥塞窗口从1增加为 2,即可以发送两个报文段。当收到这两个报文段的ACK时,拥塞窗口就增加为4。这是一种指数增加的关系。最小开销最大载荷 / 报文总长度 = 1460/14803.3UDP层简介图 5 UDP报文格式文档实用标准文案3.4IP 层简介报文格式图6 IP 包格式在经过对 FTP下载进行抓包后,发现IP 包头只有前 20个字节。最小开销最大载荷 / 报文总长度 = 1480/15003.5GREGRE协议简介Generic Routing Encapsulation (GRE)为通用路由封装协议。是由Cisco 和Net-smiths 等公司于 1994年提交给 IETF的,标号为 RFC1701和 RFC1702。目前有多数厂商的网络设备均支持GRE隧道协议。GRE规定了如何用一种网络协议去封装另一种网络协议的方法。 GRE的隧道由两端的源 IP 地址和目的 IP 地

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论