版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
使用SIPp进行SIP压力测试
2008-03-26
目录
1简介
SIPp是一个测试SIP协议性能的工具软件。这是一个GPL的开放源码软件。
它包含了一些基本的用户代理工作流程(UAC与UAS),并可使用INVITE与BYE建立与
释放多个呼叫。它也能够读XML的场景文件,即描述任何性能测试的配置文件。它能动态显
示测试运行的统计数据(呼叫速率、信号来回的延迟,与消息统计)。周期性地把CSV统计
数据转储,在多个套接字上的TCP与UDP,利用重新传输管理的多路复用。在场景定义文件
中能够使用正规表达式,动态调整呼叫速率。
SIPp能够用来测试许多真实的SIP设备,如SIP代理,B2BUAs,SIP媒体服务器,SIP/x
网关,SIPPBX,等等,它也能够模仿上千个SIP代理呼叫你的SIP系统。
2安装
四种安装方法(本文使用第四种安装):
1.没有TLS支持与密码验证支持
#tar-xvfsipp-xxx.tar.gz
#cdsipp-xxx
#make
Make出来的sipp文件就是一个可执行的文件,只需要搭配场景xml文件与csv文件即可进
行SIP测试
2.拥有TLS支持与密码验证支持,但是不支PCAP语音播放
#tar-xvfsipp-xxx.tar.gz
#cdsipp-xxx
#makeossl
这样编译出来的文件就加入了TLS至于与密码验证支持功能sipp软件了。
3.支持PCAPPlay,但是没有密码验证支持:(PCAPPlay即为能够进行RTP语音,但是没
有407ALTII验证)
#tar-xvfsipp-xxx.tar.gz
#cdsipp-xxx
#makepcapplay
4.支持PCAP声音文件播放,而且支持密码验证支持:(支持407auth验证支持)
口tar-xvfsipp-xxx.tar
#cdsipp-xxx
#makepcapplayossl
3使用方法
./sipp-sfreg.xml-infreg.csv-p6077-i<local-ip>-m4<ipaddressof
registrar〉:5060
-sf读取场景文件
-inf读取csv文件
-P本机使用端口
-i本机IP
-m要进行压力测试的次数
Ipaddressofregistrar要进行压力测试的IP地址
4情景
Uac(192.216.2.224)->Asterisk(192.216.224.183)Uas
4.1注册
模拟若干个注册包到asterisk,asterisk0100tring与401authentication,SIPp
发送invite带auth验证消息到asterisk,asterisk回100tring与200ok。
4.LI测试
./sipp-r1-11-sfreg.xml-inftest.csv192.216.224.183
-----------------------------ScenarioScreen---------C1-9J:ChangeScreen--
Cal1-rate(1ength>PortTotal-timeTotal-calIsRemote-host
1.0(0ms>/1.000s5c605.02s1192.216.224,183:5060(UDP)
0newcallsduring1.000spe20msschedulerresolution
1calls(limit1>Peakwas1calls,aFter1s
0Running,1Paused,0Hoken
0out-oF-callmsg(discarded)
1opensockets
oTimeoutUnexpected-Msg
REGISTER---------->o0oo
100<----------ooo
401<----------oo
REGISTER---------->ooo
100<----------ooo
200<----------
PauseC4000ms3
----C+I-I*I:Adjustratetraffic
4.1.2reg.xml
<?xmlversion11.0"encodingiIS0-8859T”?>
<!DOCTYPEscenarioSYSTEM"sipp.dtd*>
<!一Thisprogramisfreesoftware;youcanredistributeitand/or->
<!-modifyitunderthetermsoftheGNUGeneralPublicLicenseas->
<一publishedbytheFreeSoftwareFoundation;eitherversion2ofthe
<-License,or(atyouroption)anylaterversion.~>
<
<!-Thisprogramisdistributedinthehopethatitwillbeuseful,一>
<!—butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof—>
<—MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.Seethe
<-GNUGeneralPublicLicenseformoredetails.—>
<!—
<-YoushouldhavereceivedacopyoftheGNUGeneralPublicLicense
<一alongwiththisprogram;ifnot,writetothe
<一FreeSoftwareFoundation,Inc.,
<—59TemplePlace,Suite330,Boston,MA02111-1307USA
<
<Sippdefault'branchc'scenario.
<
<~首先发送SIP注册消息,Registero里面的From与To是注册的号码一》
<scenarioname="branch_client”>
<sendretrans=*,500*>
<![CDATA[
REGISTERsip:[remotejp]SIP/2.0
Via:STP/2.0/[transport][local_ip]:[localport];branch=[branch]
I'rom:[fieldO]<sip:[fioldO]@[local_ip]:[localport]>;tag=[callnumber]
To:[fieldO]<sip:[fieldO]@[remote_ip]:[remote_port]>
Call-ID:[call_id]
CSeq:1REGISTER
Contact:sip:[fieldOj@[local_ip]:[local_port]
Content-Lenglh:0
Expires:300
]]>
〈/send)
<recvresponse=*100,zopticnal="true”>
</recv>
<!—SIPp会收到来自AST要求验证的401消息体,Recv意思为Receive,接收到来自AST的401
要求验证的消息,Next为假如收到401,那么转至Label为1的地方进行操作一>
<recvresponse="401"auth="true"next="l"〉
</recv>
<!-sendinvitewithauthenticationmessages->
<!-开始发送Register消息,里面将把验证的密码消息发送给对方,在消息体里面是抓不到
密码消息的,而且已经被md5方式加密过。--)
<labelid=T/>
<sendretrans="500”>
<![CDATA[
REGISTERsip:[fiel(101@[remote_ip]:[remoteport]SIP/2.0
Via:SIP/2.0/[transport][local_ip]:[local_port]
From:[fieldO]<sip:[field0]@[localip]:[localport]>;tag=[callnumber]
To:[field。[<sip:[field0]@[remote_ip]:[remote_port]>
Call-ID:[call_id]
CSeq:2REGISTER
Contact:sip:[field0]@[local_ip]:[local_port]
[fieldl]
Content-Length:[len]
Expires:3600
]]>
</send>
<recvresponse="100"optional="true”>
</recv>
<!—收到来自AST的200ACK消息后,系统转至等待1000ms,或者者能够直接去掉该设置一>
<recvrcsponsc="200"ncxt="2”>
</recv>
<labelid=*2V>
<pausemi11iseconds=",1000*/>
<!-Keepthecallopenforawhileincasethe200islosttobe—>
<!-abletoretransmititifwereceivetheBYEagain.—>
<pausemilliseconds="4000”/>
<!-definitionoftheresponsetimerepartitiontable(unitisms)->
<ResponseTimeRepartitionvalue=*10,20,30,40,50,100,150,200”/>
<!-definitionofthecalllengthrepartitiontable(unitisms)—>
<CallLengthRepartitionvaluc="10,50,100,500,1000,5000,10000'/>
〈/scenario)
4.1.3test,csv
SEQUENTIAL
6666609;[authenticationusername=6666609password=6666609]
4.2呼叫
SIPp发送Invite消息到asterisk,AST回407要求密码验证,SIPp返回200ok,并
发送invite带密码消息到asterisk,asterisk返回200OK,接着返回180,SIPp如今开
始传输RTP到asterisk,延迟5000ms发送DTMF=1的号码,然后SIPp发送Bye消息到
asterisk,asterisk返回200ok给SIPp。
4.2.1测试
./sipp-r1-i192.216.2.224-11-sfuac-mcdia.xml-inftest.csv192.216.224.183
-----------------------------ScenarioScreen---------L1-9J:ChangeScreen—
Cal1-rate(1ength)PortTotal-timeTotal-calIsRemote-host
1.0(0ms)/1.000s503010.03s1192.216.224.183:5060(UDP)
0newcallsduring1.030speriod19msschedulerresolution
1calls(limit1>Peakwas1calls,after1s
0Running,1Paused,1Wokenup
0out-of-callmsg(discarded)
1opensockets
217TotalRTPpcktssent8.316lastperiodRTPrate(kB/s)
MessagesoTimeout
INVITE----------->1o0o
407<----------1o0
ACK----------->1o
INVITE----------->1oqo
100<----------1o0o
183<----------0o0o
180<----------1o0o
200<----------E-RTD11o0
ACK---------->1
CN0P]o
Pause05000ms]1
CNOP1o
PauseC1000ms]1o
BYE----------->1o0o
200<----------10
Pause2000msJ0
---0+1-1*1/]:AdjustrateCq]:Softexit----Cp]:Pausetraffic
4.2.2uac-media.xml
<?xmlversion^l.0"encodingszIS0-8859-T?>
<?DOCTYPEscenarioSYSTEM"sipp.dtd”〉
<一Thisprogramisfreesoftware;youcanredistributeitand/or
<-modifyitunderthetermsoftheGNUGeneralPublicLicenseas~>
<——publishedbytheFreeSoftwareFoundation;eitherversion2ofthe
<-License,or(atyouroption)anylaterversion.
<
<一Thisprogramisdistributedinthehopethatitwillbeuseful,
<-butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof
<—MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.Seethe
<-GNUGeneralPublicLicenseformoredetails.—>
<
<-YoushouldhavereceivedacopyoftheGNUGeneralPublicLicense—>
<一alongwiththisprogram;ifnot,writetothe
<一FreeSoftwareFoundation,Inc.,
<—59TemplePlace,Suite330,Boston,MA02111-1307USA
<
<Sipp'uac'scenariowithpcap(rtp)play
<
<scenarioname="UACwithmedia”)
<!一Inclientmode(sippplacingcalls),theCall-IDMISTbe一>
<!-generatedbysipp.Todoso,use[call_id]keyword.—>
<sendretrans=^500*>
<![CDATA[
INVITEsip:[fieldl]@[remote_ip]:[rcmoteport]SIP/2.0
Via:SIP/2.0/[transport][local_ip]:[local_port];branch=[branch]
From:[field。]<sip:[fieldO]©[local_ip]:[localport]>;tag=[callnumber]
To:[fieldlJ<sip:[fieldl]@[remoteip]:[remote_port]>
Call-ID:[call_id]
CSeq:1INVITE
Contact:sip:[fieldO]@[local_ip]:[local_port]
Max-Forwards:70
Subject:PerformanceTest
Content-Type:application/sdp
ContentLength:[1en]
v=0
o=userl536557652353687637INIP[local_ip_type][local_ip]
s="
c=INIP[local_ip_:ype][local_ip]
t=00
m=audio[auto_media_port]RTP/AVP8
a=rtpmap:8PCMA/8000
a=rtpmap:101telephone-event/8000
a=fmtp:1010-11,16
]]>
</send>
<recvresponse="407"auth=*true*>
</recv>
<!-Byaddingrrs="true”(RecordRouteSets),theroutesets—>
<!-aresavedandusedforfollowingmessagessent.Usefultotest一>
<!―againststatefulSTPproxies/B2BUAs.一>
<!-Packetlostcanbesimulatedinanysend/recvmessageby->
<!-byaddingthe*lost="10"'.Valuecanbe[1-100]percent.—>
<send>
<![CDATA[
ACKsip:[fieldl]@.reniote_ip]:[remote_port]SIP/2.0
Via:SIP/2.0/[transport][local_ip]:[local_port];branch=[branch]
From:[fieldO]<sip:[fieldO]©[localip]:[localport]>;tag=[call_number]
To:[fieldl]<sip:[fieldl]@[remote_ip]:[remote_port]>[peer_tag_param]
Call-ID:[calljd]
CSeq:1ACK
Contact:sip:[fieldO]@[local_ip]:[local_port]
Max-Forwards:70
Subject:PerformanceTest
Content-Length:0
]]>
</send>
<sendretrans="500”>
<![CDATA[
INVITEsip:[ficldl]@[remoteip]:[rcmoteport]SIP/2.0
Via:SIP/2.0/[transport][local_ip]:[local_port]
From:[fieldO]<sip:[ficldO]@[localip]:[localport]>;tag=[callnumber]
To:[fieldl]<sip:[field!!@[remote_ip]:[remoteport]>
Call-ID:[calljd]
CSeq:2INVITE
Contact:sip:[fieldO]@[local_ip]:[local_port]
[field2]
Max-Forwards:70
Subject:PerformanceTost
Content-Type:application/sdp
Content-Length:[len]
v=0
o=userl536557652353687637INIPtlocaliptype][localip]
s=-
t=00
c=INIP[media_ip_:ype][mediaip]
m=audio[auto_media_port]RTP/AVP0
a=rtpmap:0PCMU/8000
]]>
</send>
<recvresponse^lOO^optional="true”>
</recv>
<recvresponse-183“optional=*true*>
</recv>
<recvresponse="180"optional="true"〉
</recv>
<recvresponse=*200/,rtd=*true*>
</recv>
<!-Packetlostcanbesimulatedinanysend/recvmessageby->
<!―byaddingthe*lost="10"'.Valuecanbe[1-100]percent.—>
<send>
<![CDATA[
ACKsip:[fieldl]@.remote_ip]:[remote_port]SIP/2.0
Via:SIP/2.0/[transport][local_ip]:[local_port];branch=[branch]
From:[fieldO]<sip:[fieldO]@[localip]:[localport]>;tag=[callnumber]
To:[fieldlj<sip:[fieldl]@[remote_ipj:[remote_port]>Lpeer_tag_param]
Call-ID:[call_id]
CSeq:2ACK
Contact:sip:[fioldO]@[localip]:[localport]
MaxForwards:70
Subject:PerformanceTest
Content-Length:0
]]>
</send>
<!-Playapre-recordedPCAPfilo(RTPstream)一>
<nop>
<action>
<execplaypcap_audio="pcap/g71la.pcap"/>
</action>
</nop>
<!-Pause8seconds,whichisapproximatelythedurationofthe->
<!—PCAPfile—>
<pausemi11iseconds="5000”/>
<!—PlayanoutofbandDTME'1'—>
<nop>
<action>
<execp1aypcapaudio=/,pcap/dtmf_2833_1.pcap”/>
</action>
</nop>
<pausemilliseconds=z,1000*/>
<!-The'crlf'optioninsertsablanklineinthestatisticsreport.—>
<sendretrans="500”>
<![CDATA[
BYEsip:[fieldl]@'remote_ip]:[remote_port]SIP/2.0
Via:SIP/2.0/[transport][localip]:[localport];branch=[branch]
From:[fieldO]<sip:[fieldO]@[local_ip]:[local_port]>;tag=[call_number]
To:[fieldlJ<sip:[fieldl]@[rcmote_ip]:[rcmoteport]>[peertagparam]
Call-ID:[call_id]
CSeq:2BYE
Contact:sip:[fieldO]@[locaiip]:[localport]
Max-Forwards:70
Subject:PerformanceTest
Content-Length:0
]]>
</send>
<recvrespcnse="200"crlf="t「ue”>
</recv>
<pausemi11iseconds=",2000*/>
<!-definitionoftheresponsetimerepartitiontable(unitisms)->
<ResponseTimcRcpartitionvalued10,20,30,40,50,100,150,200”/>
<!-definitionofthecalllengthrepartitiontable(unitisms)—>
<CallLengthRepartitionvalue=w10,50,100,500,1000,5000,10000")
</sccnario>
4.2.3test,csv
SEQUENTIAL
6666608;6666609;[authenticationusername=6666608password=6666608]
6666608;6666610;[authenticationuscrnamc=6666608password=6666608]
4.3会议
50个人同时呼叫555会议接入号,进入后输入密码5#,进入会议室,然后打招呼,30秒后
同时退出聊天室,15秒后再次进入会议室,不停地循环。
4.3.1测试
./sipp-i192.216.2.224-sfmeetme.xml-infmeetme.csv192.216.224.183-150
------------------------------ScenarioScreen---------ChangeScreen--
Cal1-rate(1ength)PortTotal-timeTotal-calisRemote-host
10.0(0ms)/1.000s5061181.06s200192.216.224.183:5060(UDP)
0newcallsduring1.001speriod2msschedulerresolution
50calls(limit50>Peakuas50calls,after5s
0Running,50Paused,0Wokenup
0out-of-callmsg(discarded)
1opensockets
51116TotalRTPpcktssent0.000lastperiodRTPrate<kB/s)
M6ssages
o3Timeout
INVITE20o00o
407<20o00
ACK20o2
INVITE2Co20o
1002o000o
180000o
183o10o
200<----------E-RTD1200
ACK——/
PauseC3000ms]
CNOPJ
PauseC1000ms]
CNOP]
PauseC1000ms]
CNOPJ
PauseC30.0s]
DlDCv.tr___________7•、
onn/----------
PauseL15.OsJ1500
C+I-I*I/D:Adjustrate----Cq]:Softexit----Cp]:Pausetraffic
4.3.2meetme.xml
<?xmlversion="l.0"encodingiISO-8859T”?>
<DOCTYPEscenarioSYSTEM"sipp.dtd”>
<一Thisprogramisfreesoftware;youcanredistributeitand/or
<-modifyitunderthetermsoftheGNUGeneralPublicLicenseas
<——piihlishpdhythpFrppSnftwarpFniindation;piihprvprsinn2nfthp
<-License,or(atyouroption)anylaterversion.
<
<一Thisprogramisdistributedinthehopethatitwillbeuseful,
<-butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof
<—MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.Seethe
<——GNUGeneralPublicLicenseformoredetails.—>
<
<-YoushouldhavereceivedacopyoftheGNUGeneralPublicLicense
<——alongwiththisprogram;ifnot,writetothe
<!-FreeSoftwarcFoundation,Inc.,一>
<!—59TemplePlace,Suite330,Boston,MA02111-1307USA—>
<!——>
<!-Sipp'uac'scenariowithpcap(rtp)play->
<!—~>
〈scenarioname="UACwithmedia”〉
<!―Inclientmode(sippplacingcalls),theCall-IDMUSTbe—>
<!-generatedbysipp.Todoso,use[callid]keyword.—>
(sendretrans="500”>
<![CDATA[
INVITEsip:[fieldl]@[remote_ip]:[remote_port]SIP/2.0
Via:SIP/2.0/[transport][local_ip]:[local_port];branch=[branch]
From:[field。〕<sip:[fieldO]@[local_ip]:[localport]>;tag=[calInuniber]
To:Lfieldl]<sip:[fieldl]d[remote_ip]:[remote_port]>
Call-ID:[call_id]
CSeq:1INVITE
Contact:sip:[fioldO]@[localip]:[localport]
MaxForwards:70
Subject:PerformanceTest
Content-Type:application/sdp
Content-Length:[len]
v=0
o=userl536557652353687637INIP[local_ip_type][local_ip]
s=-
c=lNIP[local_ip_:ype][local_ip]
t=00
m=audio[auto_media_port]RTP/AVP8
a=rtpmap:8PCMA/8000
a=rtpmap:101telephone-event/8000
a=fmtp:1010-11,16
]]>
</send>
<recvresponse="407"auth=*true*>
</recv>
<!-Byaddingrrs="true”(RecordRouteSets),theroutesots一>
<!-aresavedandusedforfollowingmessagessent.Usefultotest->
<!-againststatefulSIPproxies/B2BUAs.一>
<!-Packetlostcanbesimulatedinanysend/recvmessageby->
<!-byaddingtheJlost="10"'.Valuecanbe[1-100]percent.—>
<send>
<![CDATA[
ACKsip:[fieldl]@'remote_ip]:[rcmoteport]SIP/2.0
Via:SIP/2.0/[transport][local_ip]:[local_port];branch=[branch]
I'rom:[fioldO]<sip:[fieldO]@[localip]:[localport]>;tag=[callnumber]
To:[fieldl]<sip:[fieldl]@[remote_ip]:[remote_port]>[peer_tag_param]
Call-ID:[call_id]
CSeq:1ACK
Contact:sip:[fieldO]@[local_ip]:[local_port]
Max-Forwards:70
Subject:PerformanceTest
Content-Length:0
]]>
</send>
<sendretrans=*500*>
<![CD/\TA[
INVITEsip:[fieldl]@[remote_ip]:[remote_port]SIP/2.0
Via:SIP/2.0/[transport][local_ip]:[local_port]
From:[fieldO]<sip:[ficldO]@[localip]:[localport]>;tag=[callnumber]
To:[fieldl]<sip:[fieldl]@[remote_ip]:[remote_port]>
Call-ID:[callid]
CSeq:2INVITE
Contact:sip:[fieldO]@[local_ip]:[local_port]
[field2]
Max-Forwards:70
Subject:PerformanceTest
Content-Type:application/sdp
Content-Length:[len]
v=0
o=userl536557652353687637INIP[local_ip_type][local_ip]
s=-
t=00
c=INIP[media_ip_:ype][media_ip]
m=audio[auto_mcdia_port]RTP/AVP0
a=rtpmap:0PCMU/8000
]]>
</send>
<recvresponse_100“optional="true”>
</recv>
<recvresponse="180"optional="true"〉
</recv>
<recvresponse=*183/,optional=*truez,>
</recv>
<recvresponse="200"rtd=*truewcrlf="true”>
</recv>
<send>
<![CDATA[
ACKsip:[fieldl]@[remoteip]:[remoteport]S1P/2.0
Via:SIP/2.0/[transport][local_ip]:[local_port];branch=[branch]
From:[fieldO]<sip:[fieldO]@[local_ip]:[local_port]>;tag=[call_number]
To:[fieldlJ<sip:[fie1d1]@[remote_ip]:[remote_port]>[peertagparam]
Call-ID:[call_id]
CSeq:2ACK
Contact:sip:[fieldO]@[local_ip]:[local_port]
Max-Forwards:70
Subject:PerformanceTest
Content-Length:0
]]>
</send>
<!-Playapre-recordedPCAPfile(RTPstream)—>
<!-Pause8seconds,whichisapproximatelythedurationofthe—>
<!—PCAPfile—>
<pauscinilliscconds="3000”/>
<!PlayanoutofbandDTMP'5''>
<nop>
<action>
<execp1ay_pcap_audio=,,pcap/dtmf_2833_5.pcapV>
</action>
</nop>
<pausemilliscconds="1000”/>
<nop>
<action>
<execplay_pcap_audio=wpcap/dtmf_2833_pound.pcapM/>
</action>
</nop>
<pausemi11iseconds=*1000V>
<nop>
<action>
<execp1ay_pcap_audio=",pcap/g711a.pcap*/>
</action>
</nop>
<pauscmi11iseconds=,,30000/,/>
<sendretrans="500”>
<![CDATA[
BYEsip:[fieldl]@'remote_ip]:[remote_port]SIP/2.0
Via:SIP/2.0/[transport][localip]:[localport];branch=[branch]
From:[fieldO]<sip:[field0]@[local_ip]:[local_port]>;tag=[call_number]
To:[fieldlJ<sip:[fieldl]@[rcmoteip]:[rcmoteport]>[peertagparam]
Call-ID:[calljd]
CSeq:2BYE
Contact:sip:[fieldO]@[local_ip]:[local_port]
Max-Forwards:70
Subject:PerformanceTest
Content-Length:0
]]>
</send>
<recvresponse=*200/,crlf="lrue”>
</recv>
<pausemi11iseconds="15000”/)
<!-definitionoftheresponsetimerepartitiontable(unitisms)->
<ResponseTimeRepartitionvalue=*10,20,30,40,50,100,150,200”/>
<!-definitionofthecalllengthrepartitiontable(unitisms)—>
<CallLengthRcpartitionvalue="10,50,100,500,1000,5000,10000"/>
</scenario>
4.3.3meetme.csv
SEQUENTIAL
8001:555[authenticationusername=8001password=8001]
8002555[authenticationusername=8002password=8002]
8003555[authenticationusername=8003password=8003]
8004555[authenticationusername=8004password=8004]
8005555[authenticationusername=8005password=8005]
8006555[authenticationuscrname=8006password=8006]
8007;555[authenticationusername=8007password=8007]
8008;555[authenticationusornamc=8008password=8008]
8009555[authenticationusername=8009password=8009]
8010555[authenticationusername=8010password=8010]
8011555[authenticationusername=8()l1password=80l1]
8012555[authenticationusername=8012password=8012]
8013555[authenticationuscrname=8013password=8013]
8014:555[authenticationusername=8014password=8014]
8015;555[authenticationusorname=8015password=8015]
8016555[authenticationusername=8016password=8016]
8017555[authenticationusername=8017password=8017]
8018555[authenticationusername=8()18password=80l8]
8019555[authenticationusername=8019password=8019]
8020555[authenticationusername=8020password=8020]
8021555[authenticationusername=8021password=8021]
8022555[authenticationusornamc=8022password=8022]
8023;555[authenticationusername=8023password=8023]
8024555;[authenticationusername=8024password=8024]
8025555;[a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 26年仿制药基因检测适配指南
- 鸟儿的呼唤课件
- 儿童性教育课程设计与实施指南
- 线上教育体系建设与运营方案
- 电话沟通技巧小班课件
- 2026手术室绿色通道护理管理
- 2026急性缺血性脑卒中静脉溶栓护理指南解读
- 2026妊娠合并贫血护理教学查房解读
- 男孩早熟教育体系构建
- 呼吸作用教学设计
- 2025年广西壮族自治区崇左市初二学业水平地理生物会考真题试卷(含答案)
- 2026年科目1驾驶技术模拟题库及完整答案详解
- TSG08-2026《特种设备使用管理规则》全面解读课件
- 《2026年化学制药企业安全风险防控专项工作方案》解读
- (二检)莆田市2026届高三第二次质量调研测试政治试卷(含答案)
- 毕业设计(伦文)-皮革三自由度龙门激光切割机设计
- 2025-2030中医院行业市场深度分析及竞争格局与投资价值研究报告
- 水利工程监理实施细则范本(2025版水利部)
- 一项目一档案管理制度
- 2025华润建材科技校园招聘正式启动笔试历年参考题库附带答案详解
- 有关PLC的毕业论文
评论
0/150
提交评论