ns-2模擬實(shí)例課件_第1頁(yè)
ns-2模擬實(shí)例課件_第2頁(yè)
ns-2模擬實(shí)例課件_第3頁(yè)
ns-2模擬實(shí)例課件_第4頁(yè)
ns-2模擬實(shí)例課件_第5頁(yè)
已閱讀5頁(yè),還剩67頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第第4章章 NS-2網(wǎng)絡(luò)模擬教學(xué)應(yīng)用案例網(wǎng)絡(luò)模擬教學(xué)應(yīng)用案例 2NS-2 OverviewNS2 架構(gòu)OTclTclCLNetwork ComponentsTclEventSchedulerC/C+UITcl: Tool Command LanguageOTcl: Object-Oriented TclTclCL: C+ and OTcl linkageEvent Scheduler: event-driven Network Components:Agent: TCP、UDPTraffic Generator: FTP、CBRUI: User Interface3NS-2 OverviewC

2、+處理package傳送修改或增加 agents、protocols 少改變,執(zhí)行速度快 OTcl處理網(wǎng)絡(luò)場(chǎng)景(scenario)模擬運(yùn)行已編譯 C+對(duì)象多改變,執(zhí)行速度慢(interpreter)4NS-2 OverviewOTcl and C+:The DualityC+OTclPure C+objectsPure OTclobjectsC+/OTcl split objectsnsOTcl to call C+ : command(), tcl.result()C+ to call OTcl: tcl.eval()5NS-2 OverviewTCP/IP、NS2 和OSI 7-Layer

3、 的對(duì)比ApplicationPresentationSessionTransportNetworkData LinkPhysicalApplicationAgentNodeLinkApplicationTCP/UDPIPNetworkAccess6NS-2 OverviewNS2 模擬過(guò)程修改或增加協(xié)議(C+)建立網(wǎng)絡(luò)場(chǎng)景(OTcl)執(zhí)行模擬(NS2)模擬結(jié)果(Trace File)結(jié)果分析(Nam, Xgraph )簡(jiǎn)單UDP網(wǎng)絡(luò)模擬簡(jiǎn)單TCP網(wǎng)絡(luò)模擬簡(jiǎn)單TCP和UDP混合網(wǎng)絡(luò)模擬結(jié)果分析一、網(wǎng)絡(luò)模擬基本示例8#Create a simulator objectset ns new Sim

4、ulator#Define a finish procedureproc finish global ns nf $ns flush-trace#Close the trace file close $nf#Execute nam on the trace file exec nam out.nam & exit 0# Insert your own code for topology creation# and agent definitions, etc. here#Call the finish procedure after 5 seconds simulation time$

5、ns at 5.0 finish#Run the simulation$ns runHow to start#proc name arglist body9Example 1. The UDP SimulationFig. 1. The UDP Simulation Architecture10#Create a simulator objectset ns new Simulator#Open the nam trace fileset nf open out.nam w$ns namtrace-all $nf#Define a finish procedureproc finish glo

6、bal ns nf $ns flush-trace #Close the trace file close $nf #Execute nam on the trace file exec nam out.nam & exit 0Example 1The first Tcl script code11#Create two nodesset n0 $ns nodeset n1 $ns node#Create a duplex link between the nodes$ns duplex-link $n0 $n1 1Mb 10ms DropTail#Create a UDP agent

7、 and attach it to node n0set udp0 new Agent/UDP$ns attach-agent $n0 $udp0# Create a CBR traffic source and attach it to udp0set cbr0 new Application/Traffic/CBR$cbr0 set packetSize_ 500$cbr0 set interval_ 0.005$cbr0 attach-agent $udp0#Create a Null agent (a traffic sink) and attach it to node n1set

8、null0 new Agent/Null$ns attach-agent $n1 $null0#Connect the traffic source with the traffic sink$ns connect $udp0 $null0Two nodes, one link12#Schedule events for the CBR agent$ns at 0.5 $cbr0 start$ns at 4.5 $cbr0 stop#Call the finish procedure after 5 seconds of simulation time$ns at 5.0 finish#Run

9、 the simulation$ns runtell the CBR agent when to send data and when to stop sending 13Example 2 : The TCP SimulationFig. 2. The TCP Simulation Architecture14#Create a simulator objectset ns new Simulator#Define different colors for data flows (for NAM)$ns color 1 Blue$ns color 2 Redset statevar cwnd

10、_set record_interval 0.02set file1 open file1.ns wset file2 open file2.ns w#Define a finish procedureproc finish global ns nf file1 file2 statevar close $file1 close $file2 $ns flush-trace eval exec xgraph file1.ns file2.ns -x time -y $statevar -t Reno_Test & exit 0TCP Simulation #115proc record

11、 global ns tcp1 file1 tcp2 file2 statevar record_interval #Set the time after which the procedure should be called againset time $record_interval #Get the current time set now $ns nowputs $file1 $now $tcp1 set $statevarputs $file2 $now $tcp2 set $statevar #Re-schedule the procedure$ns at expr $now+$

12、time recordTCP Simulation #216#Create four nodesset n0 $ns nodeset n1 $ns nodeset n2 $ns nodeset n3 $ns node#Create links between the nodes$ns duplex-link $n0 $n1 10Mb 0.4ms DropTail$ns duplex-link $n3 $n1 10Mb 0.4ms DropTail$ns duplex-link $n1 $n2 1.5Mb 40ms DropTail#Set Queue Size of link (n2-n3)

13、to 20$ns queue-limit $n1 $n2 20TCP Simulation #317#Setup two TCP connectionsset tcp1 new Agent/TCP/Reno$ns attach-agent $n0 $tcp1set sink1 new Agent/TCPSink$ns attach-agent $n2 $sink1$ns connect $tcp1 $sink1$tcp1 set window_ 128set tcp2 new Agent/TCP/Reno$ns attach-agent $n3 $tcp2set sink2 new Agent

14、/TCPSink$ns attach-agent $n2 $sink2$ns connect $tcp2 $sink2$tcp2 set window_ 64#Setup two FTP over TCP connectionsset ftp1 new Application/FTP$ftp1 attach-agent $tcp1$ftp1 set type_ FTPset ftp2 new Application/FTP$ftp2 attach-agent $tcp2$ftp2 set type_ FTPTCP Simulation #418#Schedule events for the

15、FTP agents$ns at 0.0 record$ns at 00.0 $ftp1 start$ns at 20.0 $ftp1 stop$ns at 00.0 $ftp2 start$ns at 20.0 $ftp2 stop#Call the finish procedure after 5 seconds of simulation time$ns at 20.0 finish#Run the simulation$ns runTCP Simulation #51920Example 3. mix TCP and UDP simulation21Fig. 3. mix TCP an

16、d UDP simulation22#Create a simulator objectset ns new Simulator#Define different colors for data flows (for NAM)$ns color 1 Blue$ns color 2 Red#Open the NAM trace fileset nf open out.nam w$ns namtrace-all $nfset nd open out.tr w$ns trace-all $nd#Define a finish procedureproc finish global ns nf nd

17、$ns flush-trace #Close the NAM trace file close $nf close $nd #Execute NAM on the trace file exec nam out.nam & exit 023#Create four nodesset n0 $ns nodeset n1 $ns nodeset n2 $ns nodeset n3 $ns node#Create links between the nodes$ns duplex-link $n0 $n2 2Mb 10ms DropTail$ns duplex-link $n1 $n2 2M

18、b 10ms DropTail$ns duplex-link $n2 $n3 1.7Mb 20ms DropTail#Set Queue Size of link (n2-n3) to 10$ns queue-limit $n2 $n3 10#Give node position (for NAM)$ns duplex-link-op $n0 $n2 orient right-down$ns duplex-link-op $n1 $n2 orient right-up$ns duplex-link-op $n2 $n3 orient right#Monitor the queue for li

19、nk (n2-n3). (for NAM)$ns duplex-link-op $n2 $n3 queuePos 0.524#Setup a TCP connectionset tcp new Agent/TCP$tcp set class_ 2$ns attach-agent $n0 $tcpset sink new Agent/TCPSink$ns attach-agent $n3 $sink$ns connect $tcp $sink$tcp set fid_ 1#Setup a FTP over TCP connectionset ftp new Application/FTP$ftp

20、 attach-agent $tcp$ftp set type_ FTP25#Setup a UDP connectionset udp new Agent/UDP$ns attach-agent $n1 $udpset null new Agent/Null$ns attach-agent $n3 $null$ns connect $udp $null$udp set fid_ 2#Setup a CBR over UDP connectionset cbr new Application/Traffic/CBR$cbr attach-agent $udp$cbr set type_ CBR

21、$cbr set packet_size_ 1000$cbr set rate_ 1mb$cbr set random_ false26#Schedule events for the CBR and FTP agents$ns at 0.1 $cbr start$ns at 1.0 $ftp start$ns at 4.0 $ftp stop$ns at 4.5 $cbr stop#Detach tcp and sink agents (not really necessary)$ns at 4.5 $ns detach-agent $n0 $tcp ; $ns detach-agent $

22、n3 $sink#Call the finish procedure after 5 seconds of simulation time$ns at 5.0 finish#Print CBR packet size and intervalputs CBR packet size = $cbr set packet_size_puts CBR interval = $cbr set interval_#Run the simulation$ns run27Trace File Format & Output Trace File 0.1 1 2 cbr 1000 - 2 1.0 3.

23、1 0 0 0.1 1 2 cbr 1000 - 2 1.0 3.1 0 0 0.108 1 2 cbr 1000 - 2 1.0 3.1 1 1 0.108 1 2 cbr 1000 - 2 1.0 3.1 1 1 r 0.114 1 2 cbr 1000 - 2 1.0 3.1 0 0 0.114 2 3 cbr 1000 - 2 1.0 3.1 0 0 0.114 2 3 cbr 1000 - 2 1.0 3.1 0 0 0.116 1 2 cbr 1000 - 2 1.0 3.1 2 2 0.116 1 2 cbr 1000 - 2 1.0 3.1 2 2 r 0.122 1 2 cb

24、r 1000 - 2 1.0 3.1 1 1 0.122 2 3 cbr 1000 - 2 1.0 3.1 1 1.11/25/1028End-to-End Delay BEGIN #程序初始化,設(shè)定以變量來(lái)記錄目前最高處理封包ID。 highest_packet_id = 0; action = $1; time = $2; node_1 = $3; node_2 = $4; type = $5; flow_id = $8; node_1_address = $9; node_2_address = $10; seq_no = $11; packet_id = $12; #記錄目前最高的pa

25、cket ID if ( packet_id highest_packet_id ) highest_packet_id = packet_id; #記錄封包的傳遞時(shí)間 if ( start_timepacket_id = 0 ) start_timepacket_id = time; #記錄CBR (flow_id=2) 的接收時(shí)間 if ( flow_id = 2 & action != d ) if ( action = r ) end_timepacket_id = time; else #把不是flow_id=2的封包或者是flow_id=2#但此封包被drop的時(shí)間設(shè)定為-

26、1 end_timepacket_id = -1; END #當(dāng)資料全部讀取完成后,開(kāi)始計(jì)算有效封包的端到端的延遲時(shí)間 for ( packet_id = 0; packet_id = highest_packet_id; packet_id+ ) start = start_timepacket_id; end = end_timepacket_id; packet_duration = end - start; #只把接收時(shí)間大于傳遞時(shí)間的記錄列出來(lái) if ( start cbr_delay執(zhí)行結(jié)果:0.100000 0.038706 0.108000 0.038706 0.116000

27、0.038706 0.124000 0.038706 0.132000 0.038706 3031LossBEGIN #程序初始化,設(shè)定一個(gè)變量保持packet被drop的數(shù)目fsDrops = 0;numFs = 0; action = $1; time = $2; node_1 = $3; node_2 = $4; src = $5; flow_id = $8; node_1_address = $9; node_2_address = $10; seq_no = $11; packet_id = $12;#統(tǒng)計(jì)從n1送出多少packetsif (node_1=1 & node_2

28、=2 & action = +) numFs+;#統(tǒng)計(jì)flow_id為2,且被drop的封包 if (flow_id=2 & action = d) fsDrops+;END printf(number of packets sent:%d lost:%dn, numFs, fsDrops);執(zhí)行方法: $awk -f measure-drop.awk out.tr執(zhí)行結(jié)果: number of packets sent: 550 lost:8這表示CBR送出了550個(gè)封包,但其中8個(gè)封包丟掉了。二、網(wǎng)絡(luò)模擬進(jìn)階實(shí)例二、網(wǎng)絡(luò)模擬進(jìn)階實(shí)例3節(jié)點(diǎn)的無(wú)線網(wǎng)絡(luò)模型有線和無(wú)線混合案例1

29、簡(jiǎn)單無(wú)線網(wǎng)絡(luò)模型簡(jiǎn)單無(wú)線網(wǎng)絡(luò)模型3個(gè)節(jié)點(diǎn)成一字型的拓?fù)浣Y(jié)構(gòu)。Node 0向node 2發(fā)送恒定速率cbr數(shù)據(jù)了,它們不在相互的信號(hào)覆蓋范圍內(nèi),但它們可以通過(guò)節(jié)點(diǎn)的中繼實(shí)現(xiàn)相互間的通信。采用默認(rèn)值ns/tcl/lib/ns-default.tcl中有定義。(cbr流的包大小、流速率以及無(wú)線節(jié)點(diǎn)的物理層的發(fā)射功率、信號(hào)接收門限等參數(shù))N(0)N(1)N(2)udp0null0cbr時(shí)間/s0.59.5cbr三節(jié)點(diǎn)無(wú)線網(wǎng)絡(luò)拓?fù)淙?jié)點(diǎn)無(wú)線網(wǎng)絡(luò)拓?fù)鋮⒖即a:#簡(jiǎn)單無(wú)線網(wǎng)絡(luò)模型模擬#無(wú)線節(jié)點(diǎn)參數(shù)set val(chan) Channel/WirelessChannel ;# channel type 信道

30、類型:無(wú)線信道set val(prop) Propagation/TwoRayGround ;# radio-propagation model 信道模型:TwoRayGroundset val(netif) Phy/WirelessPhy ;# network interface type 無(wú)線物理層set val(mac) Mac/802_11 ;# MAC type MAC層協(xié)議set val(ifq) Queue/DropTail/PriQueue ;# interface queue typeset val(ll) LL ;# link layer type set val(ant)

31、 Antenna/OmniAntenna ;# antenna modelset val(ifqlen) 50 ;# max packet in ifqset val(rp) AODV ;# 路由協(xié)議set val(x) 600 ;# 拓?fù)溟L(zhǎng)度set val(y) 200 ;# 拓?fù)鋵挾萻et val(stop) 10.0 ;# time of simulation end# 建立一個(gè)simulator實(shí)例set ns new Simulator#$ns use-newtrace#開(kāi)啟Trace跟蹤和NAM跟蹤set tracefd open wireless.tr wset namtrace

32、 open wireless.nam w$ns trace-all $tracefd$ns namtrace-all-wireless $namtrace $val(x) $val(y)#建立topology對(duì)象set topo new Topography$topo load_flatgrid $val(x) $val(y)#創(chuàng)建godcreate-god 3set chan_1_ new $val(chan)#配置無(wú)線節(jié)點(diǎn)(包括使用何種路由協(xié)議,何種mac協(xié)議,無(wú)線信道的模型等等)$ns node-config -adhocRouting $val(rp) -llType $val(ll)

33、 -macType $val(mac) -ifqType $val(ifq) -ifqLen $val(ifqlen) -antType $val(ant) -propType $val(prop) -phyType $val(netif) -channel $chan_1_ -topoInstance $topo -agentTrace ON -routerTrace ON -macTrace ON -movementTrace OFF #建立無(wú)線節(jié)點(diǎn)并設(shè)置節(jié)點(diǎn)的位置(節(jié)點(diǎn)位置決定了拓?fù)浣Y(jié)構(gòu))set n(0) $ns node #$n(0) shape hexagon#$n(0) label

34、 n0#$n(0) label-color Red$n(0) random-motion 0$n(0) set X_ 100.0$n(0) set Y_ 100.0$n(0) set Z_ 0.0$ns initial_node_pos $n(0) 20set n(1) $ns node$n(1) random-motion 0$n(1) set X_ 300.0$n(1) set Y_ 100.0$n(1) set Z_ 0.0$ns initial_node_pos $n(1) 20set n(2) $ns node$n(2) random-motion 0$n(2) set X_ 500

35、.0$n(2) set Y_ 100.0$n(2) set Z_ 0.0$ns initial_node_pos $n(2) 20 #建立一個(gè)UDP代理set udp0 new Agent/UDP ;#建立一個(gè)數(shù)據(jù)發(fā)送代理$ns attach-agent $n(0) $udp0 ;#將數(shù)據(jù)發(fā)送代理綁定到發(fā)送節(jié)點(diǎn)set null0 new Agent/Null ;#建立一個(gè)數(shù)據(jù)接收代理$ns attach-agent $n(2) $null0 ;#將數(shù)據(jù)接收代理綁定到接收節(jié)點(diǎn)$ns connect $udp0 $null0 ;#連接兩個(gè)代理(也就決定了數(shù)據(jù)包的發(fā)送和接收節(jié)點(diǎn)) #在UDP代理上建

36、立CBR流set cbr new Application/Traffic/CBR $cbr attach-agent $udp0 # 仿真結(jié)束時(shí)重置節(jié)點(diǎn)for set i 0 $i 3 incr i $ns at 10.0 $n($i) reset;#啟動(dòng)和結(jié)束流代理$ns at 0.5 $cbr start$ns at 9.5 $cbr stop#定義結(jié)束進(jìn)程proc finish global ns tracefd namtrace $ns flush-trace close $tracefd close $namtraceexit 0#仿真結(jié)束時(shí)調(diào)用結(jié)束進(jìn)程$ns at $val(sto

37、p) finish$ns at $val(stop) puts NS EXISTING.; $ns haltputs Start Simulation.# run the simulation$ns run有線有線+無(wú)線混合模擬無(wú)線混合模擬拓?fù)湟粋€(gè)有線節(jié)點(diǎn)sinkNode、一個(gè)基站節(jié)點(diǎn)bs(0)、2個(gè)無(wú)線節(jié)點(diǎn)ss(0),ss(1)。層次路由a.b.cA代表節(jié)點(diǎn)所處的網(wǎng)絡(luò)位置B代表節(jié)點(diǎn)所處的子網(wǎng)地址C代表節(jié)點(diǎn)的地址Ns配置層次路由地址AddrParams set domain_num_ AddrParams set cluster_num_ AddrParams set nodes_num_ 注

38、: n_domains表示設(shè)定的網(wǎng)絡(luò)數(shù)目, n_clusters表示設(shè)定每個(gè)網(wǎng)絡(luò)的子網(wǎng)數(shù)目, n_nodes表示設(shè)定每個(gè)子網(wǎng)的節(jié)點(diǎn)數(shù)目Ex:AddrParams set domain_num_ 3;#設(shè)定3個(gè)網(wǎng)絡(luò)AddrParams set cluster_num_ 1 2 1;#網(wǎng)絡(luò)2有2個(gè)子網(wǎng),其余網(wǎng)絡(luò)有一個(gè)子網(wǎng)AddrParams set nodes_num_ 2 1 1 2;#網(wǎng)絡(luò)2的2個(gè)子網(wǎng)各有1個(gè)節(jié)點(diǎn),其余子網(wǎng)有2個(gè)節(jié)點(diǎn) 每一個(gè)無(wú)線節(jié)點(diǎn)必須與一個(gè)基站節(jié)點(diǎn)處于同一個(gè)網(wǎng)絡(luò),在定義無(wú)線節(jié)點(diǎn)時(shí)也必須指定其基站節(jié)點(diǎn)?;竟?jié)點(diǎn)配置時(shí)需要開(kāi)啟有線路由,而無(wú)線節(jié)點(diǎn)的配置過(guò)程中必須關(guān)閉有線路由,這是

39、區(qū)別基站節(jié)點(diǎn)和無(wú)線節(jié)點(diǎn)的地方。Bs(0)ss(1)sinkNodeudp0null0cbr0時(shí)間/s0.59.5cbr04節(jié)點(diǎn)無(wú)線節(jié)點(diǎn)無(wú)線+有線混合網(wǎng)絡(luò)拓?fù)溆芯€混合網(wǎng)絡(luò)拓?fù)鋝s(0)null11.09.0cbr1鏈路 無(wú)線信道udp1cbr1Code:#有線無(wú)線網(wǎng)絡(luò)混合模擬#無(wú)線節(jié)點(diǎn)參數(shù)set val(chan) Channel/WirelessChannel ;# channel type 信道類型:無(wú)線信道set val(prop) Propagation/TwoRayGround ;# radio-propagation model 信道模型:TwoRayGroundset val(ne

40、tif) Phy/WirelessPhy ;# network interface type 無(wú)線物理層set val(mac) Mac/802_11 ;# MAC type MAC層協(xié)議set val(ifq) Queue/DropTail/PriQueue ;# interface queue typeset val(ll) LL ;# link layer type set val(ant) Antenna/OmniAntenna ;# antenna modelset val(ifqlen) 50 ;# max packet in ifqset val(rp) DSDV ;#路由協(xié)議s

41、et val(nn) 4 ;#節(jié)點(diǎn)數(shù)目set val(x) 600 ;set val(y) 600 ;set val(stop) 10.0 ;# time of simulation end# 建立一個(gè)simulator實(shí)例set ns new Simulator#設(shè)定分層路由地址$ns node-config -addressType hierarchicalAddrParams set domain_num_ 2 ;# 2個(gè)網(wǎng)絡(luò)lappend cluster_num 1 1 ;# 每個(gè)網(wǎng)絡(luò)一個(gè)子網(wǎng)AddrParams set cluster_num_ $cluster_numlappend

42、 eilastlevel 1 3 ;# 2個(gè)子網(wǎng)的節(jié)點(diǎn)數(shù)目為1和3AddrParams set nodes_num_ $eilastlevelputs Configuration of hierarchical addressing done#$ns use-newtrace#設(shè)置traceset tracefd open wired_wireless2.tr wset namtrace open wired_wireless2.nam w$ns trace-all $tracefd$ns namtrace-all-wireless $namtrace $val(x) $val(y)#建立to

43、pology對(duì)象set topo new Topography$topo load_flatgrid $val(x) $val(y) #創(chuàng)建godcreate-god $val(nn)set sinkNode $ns node 0.0.0$sinkNode set X_ 500$sinkNode set Y_ 300$sinkNode set Z_ 0$ns initial_node_pos $sinkNode 60set chan_1_ new $val(chan)#無(wú)線節(jié)點(diǎn)配置$ns node-config -wiredRouting ON -adhocRouting $val(rp) -

44、llType $val(ll) -macType $val(mac) -ifqType $val(ifq) -ifqLen $val(ifqlen) -antType $val(ant) -propType $val(prop) -phyType $val(netif) -channel $chan_1_ -topoInstance $topo -agentTrace ON -routerTrace ON -macTrace ON -movementTrace OFF #新建BS節(jié)點(diǎn)set bs(0) $ns node 1.0.0$bs(0) random-motion 0 #節(jié)點(diǎn)標(biāo)簽與初始位

45、置設(shè)定$bs(0) set X_ 200.0$bs(0) set Y_ 300.0$bs(0) set Z_ 0.0$ns initial_node_pos $bs(0) 60#定義節(jié)點(diǎn)間的鏈路$ns duplex-link $sinkNode $bs(0) 10Mb 1ms DropTail$ns duplex-link-op $sinkNode $bs(0) orient left#定義鏈路的隊(duì)列長(zhǎng)度#$ns queue-limit $bs(0) $sinkNode 10#監(jiān)視鏈路的隊(duì)列#$ns duplex-link-op $bs(0) $sinkNode queuePos 0.5$ns

46、 node-config -wiredRouting OFF -macType Mac/802_11 #新建SS節(jié)點(diǎn)set ss(0) $ns node 1.0.1$ss(0) base-station AddrParams addr2id $bs(0) node-addr$ss(0) set X_ 50.0$ss(0) set Y_ 450.0$ss(0) set Z_ 0.0$ns initial_node_pos $ss(0) 60set ss(1) $ns node 1.0.2$ss(1) base-station AddrParams addr2id $bs(0) node-addr$ss(1) s

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論