物联网工程组网技术实验报告汇总.doc_第1页
物联网工程组网技术实验报告汇总.doc_第2页
物联网工程组网技术实验报告汇总.doc_第3页
物联网工程组网技术实验报告汇总.doc_第4页
物联网工程组网技术实验报告汇总.doc_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

物联网工程组网技术实验报告专 业 班 级 姓 名 学 号 课 程 物联网工程组网技术 指导教师 实验一:OPNET环境安装一、实验目的:搭建环境,为OPNET仿真做基础二、实验内容:1.安装VC6.0后环境变量的设置方法,可以在“计算机-属性高级系统设置高级环境变量”中进行设置。INCLUDE=C:Program FilesMicrosoft Visual StudioVC98atlinclude;CProgram FilesMicrosoft Visual StudioVC98mfcinclude;C:Program FilesMicrosoft Visual StudioVC98include;LIB=C:Program FilesMicrosoft Visual StudioVC98mfclib;C:Program FilesMicrosoft Visual StudioVC98lib;MSDevDir=C:Program FilesMicrosoft Visual StudioCommonMSDev98;Path=C:Program FilesMicrosoft Visual StudioCommonToolsWindows NT;C:Program FilesMicrosoft Visual StudioCommonMSDev98bin;C:Program FilesMicrosoft Visual StudioCommonTools;C:Program FilesMicrosoft Visual StudioVC98bin;直到可以在命令行正常运行cl, link等命令为准。2. 拔掉网线,如果有防火墙软件,打开UDP2047端口或者彻底关闭防火墙。3. 执行modeler_145A_PL1_7116_win.exe,按照提示安装OPNET Modeler软件。最后选择 License类型时,请选择Standalone模式。安装流程如下:4.执行modeler_docs_28-Jan-2008_win.exe和models_145A_PL1_27Feb08_win.exe,按照提示安装文档和库文件(默认安装即可)。5.配置:安装完后,进到安装目录找到modeler.exe。6.将OPNET.Modeler.11.5.License.MakerFFS.exe拷贝到 OPNET14.5.A jre_models bin下。7. 运行OPNET Modeler,此时会提示无License,选择运行License Management,此时应该没有任何 license。8.双击bin目录下的OPNET.Modeler.11.5.License.MakerFFS.exe,回车继续,等到出现结束提示后,回车关闭该窗口。9.安装完成后,可以测试一下,打开OPNET后,新建一个网络模型,Run后,如果成正常显示分析结束,则可以使用了。实验二:创建Aloha Model一、实验目的:熟悉OPNET Modeler的project、node model、link model和process model创建的基本操作,并且创建一个the Aloha Model实例。二、实验内容:创建一个the Aloha Model实例。三、实验步骤:3.1 创建 the Aloha Transmitter Process Model1. 打开OPNET Modeler。2. 选择File NewProcess Model,然后选择OK。3. 点击,创建3个状态在工作空间里。4. 在3个状态中做下列变化,从左到右: A右击第一个状态,改名为init ,并将其状态改为forced。 B对于第二个状态,改名为idle。 C对于第三个状态,改名为tx_pkt,并将其状态改为forced。5. 向各个状态间添加关系。设置完后,如下图:6.打开Header Block并且添加如下代码,保存退出。/* Input stream from generator module */#define IN_STRM 0/* Output stream to bus transmitter module */#define OUT_STRM 0/* Conditional macros */#define PKT_ARVL (op_intrpt_type() = OPC_INTRPT_STRM)/* Global Variable */extern int subm_pkts;7.选择菜单栏上Code Blocks State Variable Block,并填入下图所示信息:保存,退出。8.右击init状态点,选择Enter Executives block,写入下面代码,保存,退出。/* Get the maximum packet count, */* set at simulation run-time */op_ima_sim_attr_get_int32 (max packet count,&max_packet_count);9.右击tx_pkt状态点,选择Enter Executives block,写入下面代码,保存,退出。10.选择interfaces Global Attributes,并填入下图所示信息:保存,退出。11.选择Interfaces Process Interfaces,修改如下图所示:12.完成此进程的建立,命名为aloha_tx。3.2创建the Generic Transmitter Node Model1.选择File New Node Model,然后选择OK。2. 创建两个processor modules(即),一个bus transmitter module(即),并且如下图修改名字,创建关系。3.打开gen的属性对话框,做下图所示修改:保存,退出。4. 打开tx_proc的属性对话框,做下图所示修改:保存,退出。5.再创建一个processor module和bus receiver module(即),并且如下图修改名字,创建关系。6.右击statistic wire打开属性框,做如下修改:保存,退出。7.右击tx_proc module,选择Show Connectivity,若如下图所示,则正确正确连接。8.选择 Interfaces Node Interfaces。做如下修改:保存,退出。9. 将此模型命名为cct_tx,保存,退出。3.3 创建the Generic Receiver Process and Node Models1. 选择File New Process Model,然后选择OK。2. 画四个state transitions,如下所示。3. 打开Header Block并且添加如下代码,保存退出。4. 选择菜单栏上Code Blocks State Variable Block,并填入下图所示信息:5. 选择菜单栏上Code Blocks Function Block,填入下图代码:保存,退出。6.右击init状态点,选择Enter Executives block,写入下面代码,保存,退出。7. 选择Interfaces Process Interfaces,修改如下图所示:保存,退出。8. 将此模型命名为cct_rx,保存,退出。3.4 创建一个新的Link Model1. 选择File New Link Model, 然后选择OK。2. 在Supported link types中,照下图修改:保存,退出。3. 将此link模型命名为cct_link,保存,退出。3.5 创建一个the Network Model1. 选择File New Project, 然后选择OK。2. 将Project命名为cct_network,并且将scenario命名为aloha。其他步骤按照下图所示。其他则按默认设置,知道完成创建项目。3. 点击,弹出如下对话框,按对话框上步骤执行。4. 点击Link Models按钮,添加cct_link,然后点击Ok关闭对话框。5. 点击Node Models按钮,添加cct_rx和cct_tx,然后点击Ok关闭对话框。6. 将object palette保存为cct,点击OK关闭object palette对话框。7. 选择菜单栏中Topology Rapid Configuration Bus ,点击next。然后照图修改,保存,退出。8. 画一个接受结点,用连接网络。9. 将此模型命名为cct_network,保存,退出。3.6 执行the Aloha Simulation1. 选择Scenarios Scenario Components Import2. 选择Simulation Sequence,然后选择cct_network-CSMA,接着OK。3. 将此Project保存。4. 选择DES Configure/Run Discrete Event Simulation (Advanced)5. 右击scenario (12 runs),选择Edit Attributes。做如下修改:A. 点击Execution ApplicationB. 点击Outputs Statistics CollectionC. 点击Inputs Global Attributes接着点击Object Attributes点击OK,关闭Simulation Sequence对话框。6. 选择File Save。7.点击Running Man按钮8. 选择yes9. 结果如下:关闭对话框。10. 选择菜单栏中View Results按钮11. 选择DES Parametric Studies12. 展开Scalar Statistics,右击Channel Throughput S,并选择Set as Y-Series。结果如下:13. 点击show实验三:包交换网络创建一、实验目的:1、学会使用包和链路编辑器;2、学会自定义统计结果;3、熟悉节点和进程模型及其如何在网络模型中运作;4、学会评估网络的性能。二、实验原理:我们先来熟悉一下包交换网络的物理通信机制和各个节点的功能:网络的物理通信机制如图所示,每个节点至少包含一对点对点收发机,并且通过一条有现双工链路和另一对点对点收发机组,每个这样的收发机组可以支持数据的双向传输,在中心交换节点中,配置了四对点对点收发机,从而在物理上能够支持与四个周边的节点互相联通。网络的物理通信拓扑结构 网络功能的概述拓扑结构包含两种类型的节点模型,他们分别是中心节点和周边节点,本次实验的目的是仿真一个周边节点发出的业务能够通过中心交换节点路由至另一个目的周边节点,从中心交换节点来看,我们假设,包是以随机的方式来自四个周边节点,每个包含目的地址,目的地址可以用一个整数来表示不同的目的周边节点,中心节点接收到包后通过对目的地址的解析最后选择一个合适的发电机将包送往目的地。 中心交换节点如何实现寻址和包交换每个有向包流有一个唯一的索引号。这个索引号总是和某个收信机或者某个发信机唯一对应,而收信机和发信机又和周边节点唯一对应,所以可以直接用流索引号作为包交换的依据,当然为了增强网络的稳健性。周边节点的功能作为网络的业务源,周边节点产生包,然后为每个包分配一个目的地址并且通过点对点发信机传输出去,同时作为网络的业务终端,周边节点接受包并且统计其端对端延时。 周边节点结构 中心交换节点结构三、实验内容:3.1 创建一个新的包模型打开opent modeler 14.5,从File菜单中选择New,然后在列表中选择Packet Format,单击OK按钮,打开报格式编辑器。单击 Create New Field 工具按钮 ,将光标移到编辑窗口中,单击鼠标左键,再单击鼠标右键,一个新的包域出现在编辑窗口中设置包域的属性,在包域上单击鼠标右键,从弹出的菜单中选择Edit Attribute,从弹出的属性设置对话框中,如下设置属性值,单击OK关闭对话框。定义好的包域名称和大小会在编辑窗口中显示,如图从File菜单中选择Save,将包格式命名为40401_pksw_format关闭包格式编辑器。3.2 创建新的链路模型:(1)从File菜单中选择New,然后在列表中选择Link Model,单击OK按钮,打开链路模型编辑器。 (2)设置支持的包格式,如图所示,除了ptdup外的链路类型对应的Supported属性设置为no,表明该链路只支持点对点双工连接。(3)设置packet formats属性对应的Initial Value属性为40401_pksw_format。(4)设置data rate 的属性值为9600。(5)设置ecc model 的属性值为ecc_zero_err。(6)设置error model 的属性值为error_zero_err。(7)设置propdel model的属性值为dtp_propdel。(8)设置txdel model 属性值为dpt_txdel。(9)从File菜单中选择Save,将链路模型命名为40401_pksw_link,单击Save。(10)关闭链路模型编辑器3.3 创建中心交换节点模型:(1)从File菜单中选择New,然后在列表中选择Node Model,单击OK按钮,打开节点模型编辑器。(2)在编辑窗口中放置一个进程模块,四个点对点发信机,和四个点对点收信机,如图所示给每个对象命名,并用包流将每个收信机和发信机与hub相连。(3)查看包流的连接情况,在hub进程模块上单击鼠标右键,从弹出的菜单中选择Show Connectivity,如图所示(4)关闭该对话框(5)定义收发机模型属性 a、按住shift键,依次单击所有的收信机和发信机(注意不要选中包流); b、在其中一个收信机或发信机上单击鼠标右键,从弹出的菜单中选择Edit Attribues; c、 单击channel属性右边的value栏,关掉所有默认的格式,然后选择40401_pksw_format包格式,将它的属性改为supported.单击ok关闭对话框; d、单击Apply changes to selected objects 复选框,将以上的设置改变对所有选中的对象起作用。(6)定义节点模型的界面属性,从Interfaces菜单中选择Node Interfaces,出现节点界面对话框,将节点类型支持属性表框,除fixed外的节点类型对应的supported属性设置为no。(7)将节点模型命名为40401_pksw_hub并保存。3.4 创建hub进程模型:(1)从 File 菜单中选择New ,然后从列表中选择Process Model ,单击OK按钮,打开进程模型编辑器(2)单击创建状态按钮,然后光标移到编辑窗口中,单击鼠标左键,放置一个状态,然后单击鼠标右键,命名该状态为idle。(3)单击创建状态转移按钮,单击idle状态,创建一个回到该状态自身的转移。在转移线上单击鼠标右键,从弹出的菜单中选择Edit Attributes,然后将转移的condition属性改为PK_ARRVL,并将executive属性改为route_pk()。(4)单击Ok关闭转移属性对话框。接下来定义PK_ARRVL条件的宏,单击编辑头块按钮并输入以下定义宏PK_ARRVL的代码。(5)从File菜单中选择Save。PK_ARRVL条件判断hub进程接受的中断类型是否是流中断(在OPNET中以常量OPC_INTRPR_STRM表示),如果进程异常的接收到其他类型的中断则状态找不到转移条件从而导致出错,以防万一还需要为idle状态创建一个指向自身default(其他条件不满足则该条件满足)的转移线。为idle状态创建一个指向自身的转移线,在转移线上单击鼠标右键,从弹出的菜单中选择Edit Attributes,然后将转移的condition属性改为default,右击鼠标关闭对话框。(6)编写条件执行代码route_pk()。单击编辑函数块按钮并输入以下代码并保存。真正有效的代码是在FIN(route_pk())之后,第一句用来从合适的输入流(输入流索引通过核心函数op_intrpt_strm得到)中取得包(op_pk_get),第二句代码析取包中的目的域,它含有包的目的地址。这里的目的地址实际上是输出索引流,它对应发往目的节点的收信机,而最后一句代码将包发给相应的收信机。(7)更改进程的属性。从Interfaces菜单中选择Process Interfaces,把begsin intrpt的属性的初始值改为enabled,如果需要,在Comments文本栏增加模块的说明,单击OK,保存更改。(8)单击编译进程摸块按钮,从File菜单中选择Close,关闭进程模型编辑器。(9)最后需要将编译好的进程模型指定给节点模型,从Windows下拉菜单中选择Node Editors,然后找到rr_pksw-hub,这是节点模型编辑器被激活,在hub进程上单击鼠标右键,从弹出的菜单中选择Edit Attributes,将process model的属性值改为rr_pksw_process,单击OK按钮关闭属性对话框,保存节点模型。3.5 创建周边节点模型:(1)在刚刚保存过的hub节点模型编辑器中的Edit的菜单下拉框中选择Clear Model,这是编辑器工作空间被清空,按下图放置并命名模块。 (2)在src模块上单击鼠标右键,从弹出的菜单中选择Edit Attributes,将process model的属性值改为simple_source,然后单击Ok关闭属性对话框。 (3)按下列方向建立包流:rev-proc;proc-xmt;src-proc。在proc进程模块上单击鼠标右键,在弹出的菜单中选择Show Conneectivity,查看包流分配表。如果每个设置都正确,需要删掉所有的包流重新按照步骤(3)设置一遍。 (4)为了运行参数化仿真,需要将业务的Packet Interarrival Time属性提升,当提升了属性后,就可以在仿真运行时很容易改变了。在src模块上单击鼠标右键,从弹出的菜单中选择Edit Attributes,在属性栏中选择左边一栏的Packet Interarrival Time(这时该属性变为蓝色),然后单击promote按钮。这样就提升了属性,可以在仿真属性中设置它的值。同时希望业务生成模块能够产生前面定义的包格式,单击Packet Format属性对应的右边Value栏,将它更改为40401_pksw_format,单击Ok关闭属性对话框。 (5)改变收发信机的信道速率和支持的包格式,以匹配指定的的链路模型。定义收发机模型属性: 按住shift键,依次以鼠标左键单击收信机和发信机(注意不要选中包流); 在其中一个收信机或发信机模块上单击鼠标右键,从弹出的菜单中选择Edit Attributes; 单击channel属性右边的value栏,在弹出的信道属性表中将data reta设置为9600和“Supports Unformatted Packets”复选框,关掉所有默认支持的格式,然后找到40401_pksw_format包格式,将他属性改为supported,单击OK关闭对话框; 单击Apply changes to selected objects复选框,将以上的设置改变对所有的选中对象起作用,然后单击OK按钮。 (6)定义节点模型的界面属性,Interfaces菜单中选择Node Interfaces,出现节点界面对话框,找到支持的节点类型属性表,除了fixed外的节点类型对应的Supported属性设置为no,表明该节点只能作为固定节点。(7)属性重命名 可以简化复杂的属性命名,或者扩展过于简化的名称。当某个属性是由底层提升的来的,它的名称就会变得很冗长而且没有意义,这时可能需要把它的名称简化。Node Intefaces对话框中选择Rename/Merge按钮,在Unmodified Attributes栏中找到要更名的属性src.Packet Interarrival Time,然后单击按钮,在Promotion Name文本栏中输入新的名字source interarrival time,单击OK关闭重命名对话框。 (8)为source interarrival time属性指定预定值,在Node Intefaces对话框中选择新命名的source interarrival time属性,这时左边的Edit Properties按钮被激活,单击它,这时出现Attributessource interarrival time对话框,在Symbol Map表中,将所有Symbol对应的Status变为suppress,如下图所示增加4个符号与值的映射项。 (9)隐藏属性可以避免用户看到不需要设置参数的属性项,从而能够简化用户界面,这个操作不会影响仿真结果。除了 source interarrival time外的属性的Status改为hidden。单击OK关闭节点界面对话框,从File菜单中选择Save As将节点模型命名为rr_pksw_node,然后关闭节点模型编辑器。 3.6 周边节点的进程模型:(1)从File菜单中选择New,从弹出的菜单中选择Process Model,单击OK按钮。如图在编辑窗口放置两个状态并改变状态的属性:在第一个状态上单击鼠标右键,在弹出的菜单中选择Set name将其改名为init,并且选择Make State Unforced使其变为强制的(force),这是状态变为绿色。将第二个状态更名为idle。(保持它为红色的非强制的Unforced状态)。 在init状态中,进程模型将加载一个从03的均匀分布概率函数。(2)为状态创建转移线。下图所示所指定状态转移以及条件满足所执行的函数,xmt()转移执行函数产生将调用概率函数随即产生目的地址,并将其分配给来自于业务生成模块的包,然后再将它发出去,rev()转移执行函数作用是在接受到包时计算其端到端的延时,并将结果写到全局统计量。a、单击编辑头块按钮定义转移条件,输入以下代码:RCV_IN_STRM,SRC_IN_STRM 对应数据包的输入流索引号,而XMT_OUT_STRM为输出流索引号,输入输出都是相对当前进程模块(proc)而言,它们对应与proc模块相连的某条包流,连接关系一旦确定,它们的索引号只是常数。之所以要放在头文件中定义这些端口号,只是为了修改方便而且避免混淆。b、从File菜单中选择Save保存文件。(3)定义状态变量和临时变量。单击编辑状态变量工具按钮,在状态变量对话框中输入以下内容,单击OK关闭对话框。(4)创建一个全局统计探针收集包的端对端延时结果。a、在进程模型的Interfaces菜单中选择Declare Global Statistics(申明全局统计量)。b、将Stat Name属性命名为ETE Delay。c、在探针描述文本框中输入:Calculates ETE delay by subtracting packet cteation time from current simulation time。d、从File菜单中选择Save保存文件。e、检查设置是否完成,单击OK关闭Declare Global Statistics对话框。(5)为进程模型中的每个状态添加入口和出口执行代码,首先为Init状态添加入口执行代码。a、双击Init状态的上半部打开其入口执行代码编辑框,输入以下代码:b、从File菜单中选择Save保存文件。Xmt()转移执行函数当SRC_ARRVL条件满足时(即包从业务生成模块到达pro模块)才执行,该函数将包发送之前要为它分配一个目的地址。c、在函数模块中,输入以下代码,从File菜单中选择Save保存文件。第一行代码从包流的输入索引号(SRC_IN_STRM),获取数据包,第二行代码通过调用均匀概率分布函数指针(address_dist,它在init状态中定义)而产生一个随机值,将该值设置为包的“address_dist”域(参考前面的包格式定义)。最后一句从包流的输出流索引号(XMT_OUT_STRM)将包发送出去。(6)Rev()转移执行函数当RCV_ARRVL条件满足(即包从收信机到达proc模块)时执行。主要目的是计算端对端延时并写入全据统计探针。a、在函数模块中输入以下代码,从File菜单中选择Save保存文件。(7)还需要激活“仿真开始”中断。在Interfaces菜单中选择Process Interfaces,从Process Interfaces对话框中将begsim intrpt 属性变改为enabled。在comment文本框中加入进程描述,单击OK关闭对话框。3.7 创建网络模型:(1)从OPNET Modeler主窗口中的File菜单中选择New,从下拉表中选择Project,然后单击OK。(2)Project Name命名为rr_pksw_net,将Scenario命名为Bascline,单击OK按钮这时出现网络建立向导,单击Quite,将自己指定网络规格,这时需要从一个对象模版中选择,首先需要创建一个对象模版,它包含你需要用到的模版。(3)单击打开对象模版工具按钮,在弹出的对话框中单击配置模版按钮(Configure Palette)。(4)在Configure Palette对话框中,单击Clear按钮,然后单击Node Models按钮。找到40401_pksw_hub和rr_pksw_node节点模型并单击右边的Status栏使其变为included,然后单击OK。(5)在Configure Palette对话框中,单击Link Models按钮,找到40401_pksw_link并包括include该链路模型,单击OK。(6)在Configure Palette对话框中,单击OK按钮,将模版命名为rr_pksw_net_baseline。(7)准备构建网络:在项目编辑窗口放置一个subnet模型,并命名为pksw1。双击这个子网模块进入它的内部,放置四个周边节点对象rr_pksw_node,放置一个中心节点对象40401_pksw_hub,并将该节点命名为hub,单击模板中的链路对象40401_pksw_link,依次(node_0, node_1, node_2, node_3)连接四个周边和hub节点 注意:在保存项目之前,最好验证链路的连接是否正确:单击验证连接工具按钮,选中Verify links,单击OK按钮,如果某个链路上出现红色的叉,则链路不通,反之,链路正确。3.8 收集统计量并分析结果:建好所有模型,开始仿真网络行为。选择要收集的结果:(1)在工程窗口的空白处(任意位置)单击鼠标右键,从弹出的菜单中选择Choose Individual DES Statistics,打开Global Statistics列表,选中End-to-End Delay,单击OK关闭对话框。(2)在node_0与hub间的链路上单击鼠标右键,从弹出的菜单中选择Choose Individual DES Statistics,打开point-to-point列表,选中上行和下行链路利用率,单击OK关闭对话框并保存项目文件。 配置仿真(1)从Simulation菜单中选择Configure Simulation(Advanced),这时仿真编辑器打开,在仿真设置上单击鼠标右键,从弹出的菜单中选择Edit Attributes。以下是当包产生间隔为“4”的仿真:a、将仿真设置为文件名为-pksw-sim1.b、将随机种子seed设置为21,仿真时间设置为1000分钟。c、给Source Interarrival time属性赋值:单击add单击Value栏d、将矢量结果文件Vector File命名为-pksw-sim1.-e、单击OK,关闭对话框。下面配置另一个仿真:f、复制并粘贴刚刚配置的仿真-pksw-sim1,并将新的仿真命名为-pksw-sim2,g、单击鼠标右键,选择Edit Attribute h、同上,将Source Intrearrival time属性赋值为40,将矢量结果文件Vector file命名为-pksw-sim2,并将其保存。运行仿真:点击运行,运行结果如下:实验四:Web Reporting一、实验内容:本课的重点是使用Web报表来查看和分析模拟结果。我们将会学习如何去选择报表,生成web报表,和使用报告中提供的信息来对网络行为做出明智决策。二、实验过程:1.打开OPNET Modeler,选择file-open,在modelsstdtutorial_reqbasic中,找到web_report,打开。2.选择Edit Preferences,在search for中填入network sim字段,然后点击find按钮。3. 如果Network Simulation Repositories字段不为stdmod,单击该字段。点击Insert按钮,填入stdmod。点击二次ok。分别关闭Network Simulation Repositories和Preferences对话框。4.点击Configure/Run Discrete Event Simulation (DES)按钮。如下图所示,在output中找到report,单击report。在Statistics reports中选中FTP&VOICE。接着单击run按钮。5.如下图所示,在显示结果树视图中,展开对象统计信息节点。根据需要选择以下两种统计数据展开树视图。在Presentation窗格中选择Object Statistics,底部下拉菜单中选择as is。接着点击show按钮。6.点击DES Results Generate Web Report,会出现Specify Report对话框。确保Include graphed results被选中,点击ok生

温馨提示

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

评论

0/150

提交评论