snmp簡(jiǎn)介及應(yīng)用設(shè)計(jì).doc_第1頁(yè)
snmp簡(jiǎn)介及應(yīng)用設(shè)計(jì).doc_第2頁(yè)
snmp簡(jiǎn)介及應(yīng)用設(shè)計(jì).doc_第3頁(yè)
snmp簡(jiǎn)介及應(yīng)用設(shè)計(jì).doc_第4頁(yè)
snmp簡(jiǎn)介及應(yīng)用設(shè)計(jì).doc_第5頁(yè)
已閱讀5頁(yè),還剩16頁(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)介

.SNMP簡(jiǎn)介及應(yīng)用設(shè)計(jì);.目 錄1SNMP簡(jiǎn)介11.1snmp概況11.2名詞解釋11.3主要版本及特點(diǎn)21.4SNMP參考模型22CERTUSNET節(jié)點(diǎn)介紹32.1Certusnet OID32.2CERTUSNET MIB庫(kù)43索引64Manager與Agent74.1Manager84.2Agent85GET95.1代理流程95.2接口介紹115.3數(shù)據(jù)加入到容器的過(guò)程115.3.1子代理調(diào)用container_load115.3.2數(shù)據(jù)加載過(guò)程125.3.3container_load流程136Trap146.1Trap作用146.2Trap的工作流程146.3Trap調(diào)用過(guò)程146.4Trap數(shù)據(jù)流166.5TrapIndex17參考191 SNMP簡(jiǎn)介1.1 snmp概況簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(SNMP,Simple Network Management Protocol)構(gòu)成了互聯(lián)網(wǎng)工程工作小組(IETF,Internet Engineering Task Force)定義的internet協(xié)議簇的一部分。該協(xié)議能夠支持網(wǎng)絡(luò)管理系統(tǒng),用以監(jiān)測(cè)連接到網(wǎng)絡(luò)上的設(shè)備是否有任何引起管理上關(guān)注的情況。它由一組網(wǎng)絡(luò)管理的標(biāo)準(zhǔn)組成,包含一個(gè)應(yīng)用層協(xié)議(application layer protocol)、數(shù)據(jù)庫(kù)模型(database schema),和一組數(shù)據(jù)對(duì)象。(1) SNMP是為網(wǎng)絡(luò)管理服務(wù)而定義的應(yīng)用協(xié)議,在1988年8月首次定義,由Internet IETF的研究小組為了解決Internet上的路由器管理問(wèn)題而提出的,很快就在RFC1157中達(dá)到了正式標(biāo)準(zhǔn)。 (2) SNMP是NMS(Network Management System)和代理之間的異步請(qǐng)求和相應(yīng)協(xié)議。 (3) SNMP是由一系列協(xié)議組和規(guī)范組成的,它們提供了一種從網(wǎng)絡(luò)上的設(shè)備中收集網(wǎng)絡(luò)管理信息的方法。 (4) SNMP被設(shè)計(jì)成與協(xié)議無(wú)關(guān),所以它可以在IP,IPX,AppleTalk,OSI以及其他用到的傳輸協(xié)議上被使用。 (5) 從被管理設(shè)備中收集數(shù)據(jù)有兩種方法:一種是輪詢(polling-only)方法,另一種是基于中斷(interrupt-based)的方法。 (6) SNMP消息全部通過(guò)UDP端口161接收,只有Trap信息采用UDP端口162。 1.2 名詞解釋SNMP,Simple Network Management Protocol:簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議 它是一個(gè)標(biāo)準(zhǔn)的用于管理IP網(wǎng)絡(luò)上結(jié)點(diǎn)的協(xié)議。此協(xié)議包括了監(jiān)視和控制變量集以及用于監(jiān)視設(shè)備的兩個(gè)數(shù)據(jù)格式:SMI和MIB。 MIB, Management Information Base:管理信息庫(kù) 由網(wǎng)絡(luò)管理協(xié)議訪問(wèn)的管理對(duì)象數(shù)據(jù)庫(kù),它包括SNMP可以通過(guò)網(wǎng)絡(luò)設(shè)備的SNMP管理代理進(jìn)行設(shè)置的變量。 SMI,Structure of Management Information:管理信息結(jié)構(gòu) 用于定義通過(guò)網(wǎng)絡(luò)管理協(xié)議可訪問(wèn)的對(duì)象的規(guī)則。SMI定義在MIB中使用的數(shù)據(jù)類型及網(wǎng)絡(luò)資源在MIB中的名稱或表示。 PDU,Protocol Data Unit:協(xié)議數(shù)據(jù)單元 在網(wǎng)絡(luò)中傳送的數(shù)據(jù)包。 SNMP規(guī)定了5種協(xié)議數(shù)據(jù)單元PDU(也就是SNMP報(bào)文),用來(lái)在管理進(jìn)程和代理之間的交換。OID,Object Identifier:對(duì)象標(biāo)識(shí)符區(qū)分MIB的成員ASN.1:高級(jí)數(shù)據(jù)描述語(yǔ)言,描述數(shù)據(jù)類型、結(jié)構(gòu)、組織及編碼方法。包含語(yǔ)法符號(hào)和編碼規(guī)則兩大部分。SNMP使用ASN.1描述協(xié)議數(shù)據(jù)單元(PDU)和管理對(duì)象信息庫(kù)(MIB)1.3 主要版本及特點(diǎn)(1) 目前snmp有三個(gè)版本,v1,v2,v3。(2) v2, v1 的安全機(jī)制比較脆弱,通信不加密,所有通信字符串和數(shù)據(jù)都以明文形式發(fā)送。(3) v3提供了驗(yàn)證機(jī)制、加密機(jī)制、時(shí)間同步機(jī)制等,安全性大大提高。(4) SNMP采用了Client/Server模型的特殊形式:代理/管理站模型。對(duì)網(wǎng)絡(luò)的管理與維護(hù)是通過(guò)管理工作站與SNMP代理間的交互工作完成的。每個(gè)SNMP從代理負(fù)責(zé)回答SNMP管理工作站關(guān)于MIB定義信息的各種查詢。1.4 SNMP參考模型由以下4個(gè)主要部分構(gòu)成:互聯(lián)網(wǎng)絡(luò),網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)管理進(jìn)程和被管網(wǎng)絡(luò)資源圖1-1snmp參考模型包含三種消息類型:get,set,trap(1) get消息:Get-Request ,Get-Next-Request,Get-ResponseSNMP管理站用Get-Request消息從擁有SNMP代理的網(wǎng)絡(luò)設(shè)備中檢索信息,而SNMP代理則用Get-Response消息響應(yīng)。Get-Next-Request用于和Get-Request組合起來(lái)查詢特定的表對(duì)象中的列元素(2) Set消息:Set-Request,SetResponseSNMP管理站用Set-Request 可以對(duì)網(wǎng)絡(luò)設(shè)備進(jìn)行遠(yuǎn)程配置(包括設(shè)備名、設(shè)備屬性、刪除設(shè)備或使某一個(gè)設(shè)備屬性有效/無(wú)效等)(3) Trap消息:SNMP代理使用Trap向SNMP管理站發(fā)送非請(qǐng)求消息,一般用于描述某一事件的發(fā)生。MIB2 CERTUSNET節(jié)點(diǎn)介紹2.1 Certusnet OID管理信息庫(kù)(Management Information Base)MIB指明了網(wǎng)絡(luò)元素所維持的變量(即能夠被管理進(jìn)程查詢和設(shè)置的信息)。MIB給出了一個(gè)網(wǎng)絡(luò)中所有可能的被管理對(duì)象的集合的數(shù)據(jù)結(jié)構(gòu)。SNMP的管理信息庫(kù)和域名DNS相似的樹型結(jié)構(gòu),根在最上面,根沒有名字,也沒有標(biāo)號(hào)。圖2-1畫出了MIB的一部分,它又被稱為對(duì)象命名(object naming tree)。圖2- 1 MIB對(duì)象命名樹的頂級(jí)對(duì)象三個(gè),在iso的下面有四個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)有標(biāo)號(hào)。標(biāo)號(hào)一般是從0,1,2,3.分配的,對(duì)于某一個(gè)節(jié)點(diǎn)就可以用一串標(biāo)號(hào)來(lái)標(biāo)識(shí),例如internet節(jié)點(diǎn)可以標(biāo)識(shí)為:.1.3.6.1,system可以標(biāo)識(shí)為.1.3.6.1.2.1.1。enterprises節(jié)點(diǎn)標(biāo)識(shí)為.1.3.6.1.4.1 。Enterprises節(jié)點(diǎn)比較特殊,其所屬節(jié)點(diǎn)數(shù)量比較大。Certusnet從IANA組織獲取的標(biāo)號(hào)為33620,certusnet完整OID為.1.3.6.1.4.1.33620,圖中紅色字體顯示部分。2.2 CERTUSNET MIB庫(kù)Certusnet主要有兩個(gè)mib庫(kù)文件:分別為l CERTUSNET-IPTV-WATCHER-MIB.txtl IPTV-WATCH-NOTIF-MIB.txtCERTUSNET-IPTV-WATCHER-MIB.txt中定義iptvWatcher模塊(如圖2-2),這個(gè)模塊主要負(fù)責(zé)處理來(lái)自Manager端的get消息,set消息。IPTV-WATCH-NOTIF-MIB.txt中定義channelAlarmNotif模塊(如圖2-3),這個(gè)模塊與iptvWatcher不同,主要負(fù)責(zé)發(fā)送trap消息到Manager端。圖2- 2 iptvWatcher模塊圖2- 3channelAlarmNotif模塊關(guān)于這些MIB節(jié)點(diǎn)的OID以及所獲取數(shù)據(jù)的對(duì)應(yīng)數(shù)據(jù)庫(kù)的表大概介紹,如表2-1是iptv-watcher模塊的節(jié)點(diǎn)介紹,表2-2是channelAlarmNotif的介紹。表2-1certusnet子節(jié)點(diǎn)域名數(shù)據(jù)庫(kù)iptv-watcherOID描述audiostreambwTableaudiostreambw.1.3.6.1.4.1.33620.1.1帶寬信息audiostreamdescTableaudiostreamdesc.1.3.6.1.4.1.33620.1.2audiostreamintervalTableaudiostreaminterval.1.3.6.1.4.1.33620.1.3傳輸?shù)臄?shù)據(jù)包信息audiostreamqualTableaudiostreamqual.1.3.6.1.4.1.33620.1.4MOS值channelinfoTablechannelinfo.1.3.6.1.4.1.33620.1.5頻道信息audiostreampkttransTablestreampkttrans.1.3.6.1.4.1.33620.1.6音頻流數(shù)據(jù)包信息videostreampkttransTablestreampkttrans.1.3.6.1.4.1.33620.1.7視頻流數(shù)據(jù)包信息audiostreampkttranssumTablestreampkttranssum.1.3.6.1.4.1.33620.1.8videostreampkttranssumTablestreampkttranssum.1.3.6.1.4.1.33620.1.9audiostreamstatusTablestreamstatus.1.3.6.1.4.1.33620.1.10音頻流狀態(tài)信息videostreamstatusTablestreamstatus.1.3.6.1.4.1.33620.1.11視頻流狀態(tài)信息audiostreamtr101290p1Tablestreamtr101290p1.1.3.6.1.4.1.33620.1.12videostreamtr101290p1Tablestreamtr101290p1.1.3.6.1.4.1.33620.1.13audiostreamtr101290p2Tablestreamtr101290p2.1.3.6.1.4.1.33620.1.14videostreamtr101290p2Tablestreamtr101290p2.1.3.6.1.4.1.33620.1.15audiostreamtransprotocolTablestreamtransprotocol.1.3.6.1.4.1.33620.1.16videostreamtransprotocolTablestreamtransprotocol.1.3.6.1.4.1.33620.1.17videostreamdescTablevideostreamdesc.1.3.6.1.4.1.33620.1.18videostreamframeTablevideostreamframe.1.3.6.1.4.1.33620.1.19videostreamframebwTablevideostreamframebw.1.3.6.1.4.1.33620.1.20videostreamframejitterTablevideostreamframejitter.1.3.6.1.4.1.33620.1.21videostreamintervalTablevideostreaminterval.1.3.6.1.4.1.33620.1.22videostreamintervalextTablevideostreamintervalext.1.3.6.1.4.1.33620.1.23videostreamqualTablevideostreamqual.1.3.6.1.4.1.33620.1.24videostreamsceneTablevideostreamscene.1.3.6.1.4.1.33620.1.25lastupdateintervalTablelastupdateinterval.1.3.6.1.4.1.33620.1.26baseip2indexTablechannelinfo.1.3.6.1.4.1.33620.1.27索引表lastqualifiedhistTablelastqualifiedhist.1.3.6.1.4.1.33620.1.28streammdiqualTablestreammdiqual.1.3.6.1.4.1.33620.1.29表2-2 channelAlarmNotif域名Channelalarm表OID描述channelAddresschannel_address.1.3.6.1.4.1.33620.2.1頻道地址mosValuemosvalue.1.3.6.1.4.1.33620.2.2MOS值vstqvstq.1.3.6.1.4.1.33620.2.3codecQuant.codecquant.1.3.6.1.4.1.33620.2.4alarmTimealarmtime.1.3.6.1.4.1.33620.2.5告警時(shí)間causeTypetype.1.3.6.1.4.1.33620.2.6mediaRatemedia_rate.1.3.6.1.4.1.33620.2.7lossRatelossrate.1.3.6.1.4.1.33620.2.8channelPortchannel_port.1.3.6.1.4.1.33620.2.9頻道端口mdiDfmdi_df.1.3.6.1.4.1.33620.2.10DFmdiMlrmdi_mlr.1.3.6.1.4.1.33620.2.11MLR3 索引對(duì)MIB變量進(jìn)行操作,必須對(duì)MIB的每個(gè)變量進(jìn)行標(biāo)識(shí)。只有葉子節(jié)點(diǎn)是可操作的, SNMP沒法處理表格的一整行或一整列. l 簡(jiǎn)單變量 對(duì)于簡(jiǎn)單變量的處理是通過(guò)在其對(duì)象標(biāo)識(shí)后面添加.0處理。例如對(duì)象標(biāo)識(shí)是1.3.6.1.2.1.7.1,則實(shí)例標(biāo)識(shí)是1.3.6.1.2.1.7.1.0。對(duì)于簡(jiǎn)單變量,.0就是表示索引。例如:rootice chulk# snmpget -v2c -c certus 127.0.0.1 .1.3.6.1.2.1.7.1.0UDP-MIB:udpInDatagrams.0 = Counter32: 179l 表格 每個(gè)MIB中的索引都包含一個(gè)以上的索引。對(duì)于audiostreambw表來(lái)說(shuō),MIB定義了包含channeladdr和channelport對(duì)應(yīng)的索引。在表格中,一個(gè)給定變量的所有實(shí)例都在下個(gè)變量的所有實(shí)例之前顯示。這意味表格的操作順序是先行后列的。表格中對(duì)行的排序和表格中索引的值有關(guān)。關(guān)于索引查詢的主要是在baseip2indexTable節(jié)點(diǎn)。由表2-1可以看出節(jié)點(diǎn)數(shù)據(jù)來(lái)自數(shù)據(jù)庫(kù)iptv-watcher的channelinfo表,baseip2indexTable加載ip和port兩項(xiàng)數(shù)據(jù)。container_load接口里用的sql語(yǔ)句:SELECT channeladdr ,channelport FROM channelinfo WHERE monitored = t。channeladdr和channelport主要作用是來(lái)生成表索引。如3-1 84就是一個(gè)索引,是表audiostreambwTable的一條索引。圖3-1索引的獲取過(guò)程Manager端在進(jìn)行snmpget,snmpgetnext操作獲取數(shù)據(jù),必須知道要獲取數(shù)據(jù)的完整OID,否則無(wú)法獲得數(shù)據(jù)。如圖3-1顯示Index獲取過(guò)程。Manager端通過(guò)查詢baseip2indexTable獲取IP 和Port對(duì)應(yīng)的唯一索引,索引加上表名,列名合成完整OID。如下圖所示。圖3-2 OID解釋#snmpget -v2c -c certus 127.0.0.1 .1.3.6.1.4.1.33620.1.1.1.4.84 運(yùn)行獲取數(shù)據(jù):CERTUSNET-IPTV-WATCHER-MIB:adsmbwpeakaudiobandwidth.84 = Counter64: 1880184 Manager與AgentSnmpd是一個(gè)守護(hù)進(jìn)程,它是作為后臺(tái)進(jìn)程啟動(dòng)簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(SNMP)代理程序。接受客戶端的請(qǐng)求并回應(yīng)。當(dāng)某些事件發(fā)生,代理進(jìn)程主動(dòng)發(fā)出的報(bào)文(trap操作),通知管理進(jìn)程特定事件發(fā)生。在進(jìn)行第三方擴(kuò)展代理,用mib2c生成MIB表節(jié)點(diǎn)對(duì)應(yīng)的代碼。調(diào)用第三方接口。4.1 Manager如圖4-1描述Manager端的請(qǐng)求與接收回應(yīng)過(guò)程圖4- 1 Manager端與Agent交互4.2 AgentAgent代理端要進(jìn)行PDU數(shù)據(jù)包解析,查詢MIB,將操作結(jié)果封裝成PDU發(fā)送回請(qǐng)求端。如圖4-2圖4- 2 Agent處理過(guò)程Main Loop of Agent: 1. 代理在默認(rèn)161端口等待數(shù)據(jù)到來(lái)2. 讀取UDP數(shù)據(jù)報(bào),標(biāo)記傳輸?shù)刂凡l(fā)送實(shí)體. 3. 跟蹤被代理處理邏輯請(qǐng)求ID 4. 序列化數(shù)據(jù)報(bào)成為ASN.1格式 5. 轉(zhuǎn)換成snmp消息6. 檢測(cè)版本號(hào) 7. 檢測(cè)團(tuán)體名(相當(dāng)于密碼),如果是未知的,則代理通過(guò)162端口發(fā)送AUTHENTICATION trap 到管理端并丟棄數(shù)據(jù)包。8. 代理遍歷請(qǐng)求的變量列表,代理調(diào)用訪問(wèn)程序執(zhí)行所需的操作。5 GET 5.1 代理流程以adudiostreambwTable為例,運(yùn)行代理:./audiostreambwTable f L D audiostreambwTable MSnmpwalk測(cè)試:rootice chulk# snmpwalk -v2c -c public 127.0.0.1 audiostreambwTable一個(gè)子代理的大概運(yùn)行流程如圖5-1 圖5- 1子代理運(yùn)行過(guò)程5.2 接口介紹公共接口:initialize_interface、shutdown_interface、registration_get、registration_set container_get、container_size、allocate_rowreq_ctx、release_rowreq_ctx、index_to_oid index_from_oid、_row_find_by_mib_index、_container_init、_container_shutdown、_container_load、_container_free。initialize_interface:初始化表定義,定義一張表的內(nèi)容和它的結(jié)構(gòu)化shutdown_interface:關(guān)閉表并關(guān)閉容器registration_get:表的get方法注冊(cè),處理get消息registration_set:表的set方法注冊(cè),處理set消息container_get:返回一個(gè)容器container_size:容器大小allocate_rowreq_ctx:為一張表數(shù)據(jù)的分配內(nèi)存,xxxTable_rowreq_ctx結(jié)構(gòu)存放表的索引以及表數(shù)據(jù)。release_rowreq_ctx:為表結(jié)構(gòu)釋放內(nèi)存index_to_oid:轉(zhuǎn)換 索引為OIDindex_from_oid:從OID獲取索引_row_find_by_mib_index:這個(gè)接口用來(lái)查詢get指定的索引數(shù)據(jù)_container_init:容器的初始化_container_shutdown:容器的關(guān)閉_container_load:load initial data_container_free:container clean up這些接口的具體實(shí)現(xiàn)及最終調(diào)用是在xxxTable_data_access.c文件中,而我們要更改的具體實(shí)現(xiàn)數(shù)據(jù)加載在xxxTable_container_load接口。5.3 數(shù)據(jù)加入到容器的過(guò)程5.3.1 子代理調(diào)用container_load以audiostreambwTable表為例,介紹子代理程序?qū)?shù)據(jù)加入容器的過(guò)程,在audiostreambwTable_subagent的main函數(shù)中調(diào)用init_audiostreambwTable初始化mib代碼,一直到調(diào)用audiostreambwTable_container_load加載數(shù)據(jù)。init_audiostreambwTable-initialize_table_audiostreambwTable-_audiostreambwTable_initialize_interface-_audiostreambwTable_container_init netsnmp_cache_create(_cache_load)-audiostreambwTable_container_load5.3.2 數(shù)據(jù)加載過(guò)程圖5- 2數(shù)據(jù)封裝到容器從數(shù)據(jù)庫(kù)獲取數(shù)據(jù),對(duì)應(yīng)一張表的數(shù)據(jù),相對(duì)于MIB中的表節(jié)點(diǎn)的值,將從數(shù)據(jù)庫(kù)獲取的數(shù)據(jù)進(jìn)行操作放入容器中,如圖5-2。. 圖5- 3加載過(guò)程如上圖,從數(shù)據(jù)庫(kù)iptv-watcher中將audiostreambw這張表的數(shù)據(jù)取出來(lái),通過(guò)類型轉(zhuǎn)換加入rowreq_ctx的data結(jié)構(gòu)中,每次載入一行記錄,表以channel_address和channel_port建立索引,圖中audiostreambwIndex為audiostreambwTable的索引,最后調(diào)用CONTAINER_INSERT載入容器,再進(jìn)行查詢獲取對(duì)應(yīng)的數(shù)據(jù),反饋給發(fā)起get的Manager端。5.3.3 container_load流程6 Trap6.1 Trap作用在SNMP 管理站中,運(yùn)行著一個(gè)后臺(tái)進(jìn)程snmpd,負(fù)責(zé)接收和確認(rèn)SNMP 請(qǐng)求及Trap信號(hào)、處理請(qǐng)求并返回結(jié)果、向配置文件中的所有主機(jī)發(fā)送Trap 信號(hào)。TRAP是提供從代理進(jìn)程到管理站的異步報(bào)告機(jī)制。為了使管理站能夠及時(shí)而又有效地對(duì)被管理設(shè)備進(jìn)行監(jiān)控,同時(shí)又不過(guò)分增加網(wǎng)絡(luò)的通信負(fù)載,必須使用陷入(TRAP)制導(dǎo)的輪訊過(guò)程。代理進(jìn)程負(fù)責(zé)在必要時(shí)向管理站報(bào)告異常事件,得到異常事件的報(bào)告后,管理站可以查詢有關(guān)的代理,以便得到更具體的信息,對(duì)事件的原因做進(jìn)一步的分析。6.2 Trap的工作流程如圖6-1 Agent發(fā)送trap消息給Manager端agent端:編寫mib文件,確定好trap名稱等信息。命令方式:發(fā)送各種trap命令(manager地址后面一定要加端口號(hào)162),在manager端看反應(yīng)結(jié)果,在agent端無(wú)反應(yīng)以下都未實(shí)現(xiàn)。自動(dòng)觸發(fā):配置snmpd.conf設(shè)置觸發(fā)trap,系統(tǒng)發(fā)生某類錯(cuò)誤時(shí)會(huì)自動(dòng)觸發(fā)相應(yīng)類型的trap,發(fā)送給manager。程序方式:一部份trap需要寫c語(yǔ)言程序,用相應(yīng)的api(send_v2trap)發(fā)送。manager端:配置snmptrapd.conf文件,設(shè)置訪問(wèn)權(quán)限。將mib導(dǎo)入到mibs文件夾中。編寫處理trap的程序。配置snmptrapd.conf文件,添加traphandler項(xiàng),將不同的trap對(duì)應(yīng)到不同的處理程序上。圖6- 1 Trap模型6.3 Trap調(diào)用過(guò)程圖6- 2 Trap過(guò)程 如上圖代理啟動(dòng),進(jìn)行必要的參數(shù)處理,然后初始化庫(kù),再初始化ChannelAlarm mib 代碼,調(diào)用trapIndexInit初始化索引trapIndex 為表channelAlarm ID最小的值,snmp_larm_register注冊(cè)回調(diào)函數(shù),每隔30秒回調(diào)一次send_channelAlarm_trap, 接著g

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論