計(jì)算機(jī)網(wǎng)絡(luò)課設(shè) 計(jì)算校驗(yàn)和._第1頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)課設(shè) 計(jì)算校驗(yàn)和._第2頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)課設(shè) 計(jì)算校驗(yàn)和._第3頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)課設(shè) 計(jì)算校驗(yàn)和._第4頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)課設(shè) 計(jì)算校驗(yàn)和._第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 沈陽(yáng)理工大學(xué)課程設(shè)計(jì)專(zhuān)用紙 No12學(xué)生姓名林娟班級(jí)學(xué)號(hào)1103050401專(zhuān) 業(yè)計(jì)算機(jī)科學(xué)與技術(shù)課程設(shè)計(jì)題目 計(jì)算校驗(yàn)和評(píng)語(yǔ)組長(zhǎng)簽字:成績(jī)?nèi)掌?2012 年 12 月3日課程設(shè)計(jì)任務(wù)書(shū)學(xué) 院信息科學(xué)與工程學(xué)院專(zhuān) 業(yè)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)生姓名林娟班級(jí)學(xué)號(hào)1103050401課程設(shè)計(jì)題目計(jì)算校驗(yàn)和實(shí)踐教學(xué)要求與任務(wù): 本課程設(shè)計(jì)的主要意圖是,通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)中的計(jì)算校驗(yàn)和來(lái)了解計(jì)算機(jī)是怎么樣判斷接收數(shù)據(jù)的正確與錯(cuò)誤。同時(shí)也讓我們更進(jìn)一步的了解計(jì)算機(jī)的一般思想,從而了解計(jì)算校驗(yàn)和的目的與作用。最后我們要學(xué)會(huì)計(jì)算校驗(yàn)和,了解和擴(kuò)展計(jì)算機(jī)網(wǎng)絡(luò)的知識(shí)面。校驗(yàn)和的作用就是保證數(shù)據(jù)傳送的正確性。本次課程設(shè)計(jì)的

2、主要內(nèi)容包括以下幾個(gè)方面:課程設(shè)計(jì)目的,通過(guò)這一點(diǎn)我們可以了解我們?yōu)槭裁匆?jì)算校驗(yàn)和,它的作用和目的是什么,從而學(xué)會(huì)計(jì)算校驗(yàn)和。課程設(shè)計(jì)的要求,根據(jù)下面課程設(shè)計(jì)中的計(jì)算方法編制程序?yàn)榻o定數(shù)據(jù)計(jì)算檢驗(yàn)和。計(jì)算校驗(yàn)和的相關(guān)知識(shí),如交換性與結(jié)合性,字節(jié)順序的自主性,并行計(jì)算以及實(shí)例,以及給出一些編碼技術(shù)可以提高校驗(yàn)和的速度。課程設(shè)計(jì)分析,主要是從數(shù)據(jù)的輸入方式,校驗(yàn)和的計(jì)算流程圖。工作計(jì)劃與進(jìn)度安排:第15周星期一:設(shè)計(jì)任務(wù)分析和總體設(shè)計(jì)星期二:軟件算法和流程設(shè)計(jì)星期三:軟件編碼實(shí)現(xiàn)星期四:軟件總體調(diào)試星期五:交課程設(shè)計(jì)報(bào)告、答辯、驗(yàn)收程序指導(dǎo)教師: 2012 年12月 日專(zhuān)業(yè)負(fù)責(zé)人:2012 年

3、12 月 日學(xué)院教學(xué)副院長(zhǎng):2012 年 12月 日 目 錄摘 要1 課程設(shè)計(jì)目的12 課程設(shè)計(jì)要求13相關(guān)知識(shí)54課程設(shè)計(jì)分析115程序代碼126運(yùn)行結(jié)果與分析137 實(shí)驗(yàn)體會(huì).138參考文獻(xiàn)13沈陽(yáng)理工大學(xué)1 課程設(shè)計(jì)目的網(wǎng)絡(luò)上的信號(hào)最終,都是通過(guò)物理傳輸進(jìn)行傳輸線路進(jìn)行傳輸?shù)?,如果高層沒(méi)有采用差錯(cuò)控制,那么物理層傳輸?shù)臄?shù)據(jù)信號(hào)是可能有差錯(cuò)的。為了保證數(shù)據(jù)的正確性,在物理層的基礎(chǔ),計(jì)了數(shù)據(jù)層。設(shè)計(jì)數(shù)據(jù)鏈路層的主要作用就是在原始的、有差錯(cuò)的線路改進(jìn)成邏輯上無(wú)差錯(cuò)的數(shù)據(jù)鏈路,以向網(wǎng)絡(luò)層提供高質(zhì)量的服務(wù)。本課程設(shè)計(jì)主要通過(guò)一個(gè)簡(jiǎn)單例子使學(xué)生了解網(wǎng)絡(luò)協(xié)議中校駔和的計(jì)算過(guò)程,以及設(shè)置校驗(yàn)和的作用。

4、目前,進(jìn)行了差錯(cuò)檢測(cè)和差錯(cuò)控制的主要方法是:在需要傳輸?shù)臄?shù)據(jù)分組后面加上一定的冗余信息通常都是通過(guò)對(duì)所發(fā)送的數(shù)據(jù)應(yīng)用某種算法進(jìn)行計(jì)算而得到的。數(shù)據(jù)的接收方在接收到數(shù)據(jù)后進(jìn)行同樣的計(jì)算再與收到的冗余信息進(jìn)行比較不,如果結(jié)果不同說(shuō)明出現(xiàn)了差錯(cuò),此時(shí)可以要求發(fā)送方重傳該組數(shù)據(jù),以此達(dá)到保證數(shù)據(jù)準(zhǔn)確性的目的。 在普通使用的網(wǎng)絡(luò)協(xié)議中都設(shè)置了校驗(yàn)和項(xiàng)以保存冗余信息,例如IPV4、ICMPV4、IGMPV4、ICMPV6、UDP 和TCP等等。計(jì)算校驗(yàn)和算法稱(chēng)為網(wǎng)際協(xié)議和算法,簡(jiǎn)單來(lái)說(shuō),就是把被校驗(yàn)的數(shù)據(jù)按16位進(jìn)行累加,然后取反碼。若數(shù)據(jù)字節(jié)長(zhǎng)度為奇數(shù),則在數(shù)據(jù)尾部補(bǔ)一個(gè)字節(jié)的0以湊成偶數(shù)。關(guān)于計(jì)算更詳

5、細(xì)的信息請(qǐng)參考RFC1071。2 課程設(shè)計(jì)要求根據(jù)前面介紹的算法,編制程序?yàn)榻o定數(shù)據(jù)計(jì)算校驗(yàn)和。(1)、以命令行形式運(yùn)行:check_sum infile其中check_sum為程序名,infile為輸入數(shù)據(jù)文件名。 (2)、輸出:數(shù)據(jù)文件的校驗(yàn)和。3.相關(guān)知識(shí)3.1校驗(yàn)和的概念 網(wǎng)絡(luò)上的數(shù)據(jù)最終都是通過(guò)物理傳輸線路進(jìn)行傳輸?shù)模绻邔記](méi)有采用差錯(cuò)控制,那么物理層傳輸?shù)臄?shù)據(jù)的正確性,在物理層的基礎(chǔ)上設(shè)計(jì)了數(shù)據(jù)鏈路,以向網(wǎng)絡(luò)層提高質(zhì)量的服務(wù)。 目前,進(jìn)行差錯(cuò)檢測(cè)和控制的主要方法是發(fā)送方在需要發(fā)送的數(shù)據(jù)后面增加一定的冗余信息,這些冗余信息通常是通過(guò)對(duì)發(fā)送的數(shù)據(jù)進(jìn)行某種算法計(jì)算而得到的。接收方對(duì)接收

6、數(shù)據(jù)進(jìn)行同樣的計(jì)算,然后與數(shù)據(jù)后面附加的冗余信息進(jìn)行比較,如果比較結(jié)果不同就說(shuō)明在傳輸中出現(xiàn)了差錯(cuò),并要求發(fā)送方重新傳送該數(shù)據(jù),以此達(dá)到確保數(shù)據(jù)準(zhǔn)確性的目的。在普通使用的網(wǎng)絡(luò)協(xié)議(例如IP,ICMP,IGMP,UDP與TCP等)中,通常都設(shè)置了校驗(yàn)和字段以保存這些冗余信息。計(jì)算這些校驗(yàn)和的算法稱(chēng)為網(wǎng)絡(luò)校驗(yàn)和算法,就是將被校驗(yàn)的數(shù)據(jù)按16位進(jìn)行累加,然后取反碼,如果數(shù)據(jù)字節(jié)長(zhǎng)度為奇數(shù),則數(shù)據(jù)尾部補(bǔ)一個(gè)字節(jié)的0以湊成偶數(shù)。關(guān)于計(jì)算校驗(yàn)和算法的詳細(xì)信息請(qǐng)參考。計(jì)算校驗(yàn)和(1) 交換性與結(jié)合性因?yàn)樾r?yàn)和主要考慮被校驗(yàn)數(shù)據(jù)中所包含字節(jié)數(shù)量的是奇數(shù)還是偶數(shù),所以校驗(yàn)和的計(jì)算可以以任意順序進(jìn)行,甚至可以把數(shù)

7、據(jù)進(jìn)行分組后再計(jì)算。例如,用A、B、C、D,Y,Z分別表示一系列八位組,用a,b這樣形式的字節(jié)來(lái)表示a*256+b的整數(shù),那么16位校驗(yàn)和就可以通過(guò)以下形式給出:A,B+C,D+Y,Z 1A,B+C,D+Z,0 2在這里,+代表1補(bǔ)數(shù)加法,即將前面的16位校驗(yàn)和按位取反。1可以以(A,B+C,D+J,0+(0,K+Y,Z) 3的形式進(jìn)行計(jì)算。(2) 字節(jié)順序的自主性打破被校驗(yàn)數(shù)據(jù)中的字節(jié)順序仍可以計(jì)算出正確的16位校驗(yàn)和。例如,我們交換字節(jié)組中兩字節(jié)的順序,得到B,A+D,C+Z,Y 4所得到的得結(jié)構(gòu)與1式是相同的(當(dāng)然結(jié)果也是要進(jìn)行一次反轉(zhuǎn)的)。為什么會(huì)是這樣呢?我們發(fā)現(xiàn)兩種順序獲得的進(jìn)位是

8、相同的,都是從第15位到第0位進(jìn)位以及從第7位到第8位進(jìn)位。這也就是說(shuō),交換字節(jié)位置只是改變高低位字節(jié)的排列順序,但并沒(méi)有改變它們的內(nèi)在聯(lián)系。因此,無(wú)論底層的硬件設(shè)置中對(duì)字節(jié)的接收順序如何,校驗(yàn)和都可以被準(zhǔn)確地校驗(yàn)出來(lái)。例如,假設(shè)校驗(yàn)和是以主機(jī)序(高位字節(jié)在前低位字節(jié)在后)計(jì)算的數(shù)據(jù)幀,但以網(wǎng)絡(luò)序(低位字節(jié)在前高位字節(jié)在后)存放在內(nèi)存中。每一個(gè)16位的字中的字節(jié)在傳送過(guò)程中都交換了順序,在計(jì)算校驗(yàn)和之后仍會(huì)先交換位置再存入內(nèi)存,這樣就與接受到的原本以網(wǎng)絡(luò)序存儲(chǔ)的數(shù)據(jù)幀中的校驗(yàn)和項(xiàng)保持一致了。(3)并進(jìn)行計(jì)算某些機(jī)器的字處理長(zhǎng)度是16位的倍數(shù),這樣可以提高它的計(jì)算速度。由于加法所具有的結(jié)合性,我

9、們沒(méi)有必要按照順序?qū)γ總€(gè)字節(jié)進(jìn)行累加。相反,我們可以利用這一特點(diǎn)對(duì)它們進(jìn)行并行累加。并行地計(jì)算校驗(yàn)和只是增加了每次累加的信息長(zhǎng)度。例如,在一個(gè)323位的機(jī)器上,我們可以一次增加4個(gè)字節(jié),即A,B,C,D+。計(jì)算結(jié)束后再把累加和“折疊”起來(lái),把一個(gè)32位的數(shù)值變?yōu)?6位,這樣產(chǎn)生的新的進(jìn)位也要循環(huán)累積起來(lái)。此外,在此仍不考慮字節(jié)順序的問(wèn)題,我們可以用D,C,B,A+或B,A,D,C+;這樣的順序來(lái)計(jì)算校驗(yàn)和,最終再通過(guò)交換16位校驗(yàn)和中的字節(jié)序來(lái)得到正確的值。這些改變順序的方法都是為了讓所有的偶數(shù)字節(jié)進(jìn)入一個(gè)校驗(yàn)和字節(jié),所有的奇數(shù)字節(jié)進(jìn)入一個(gè)校驗(yàn)和字節(jié)。3.3 示例下面將通過(guò)一個(gè)簡(jiǎn)單的例子來(lái)演示

10、通過(guò)上述的幾種方法所得到的校驗(yàn)和的情況16位按字節(jié)累加“正?!表樞蚪粨Q順序字節(jié)0/1:00 0100010100字節(jié)2/3:f2 03F20303f2字節(jié)4/5:f4 f5f4f5f5f4字節(jié)6/7:f6 f7f6f7f7f6- -合計(jì)1:2dc 1f02ddf01f2dcdc f0ddf0f2dc進(jìn)位:1 221- -合計(jì)2:dd f2ddf2f2dd最終結(jié)果:dd f2ddf2dd f232位按字節(jié)累加“正常”順序交換順序字節(jié)0/1/2/3:0001f203010003f203f20100字節(jié)4/5/6/7:f4f5f6f7f5f4f7f6f7 f6 f5f4-合計(jì)1:0f4f7e8fa0

11、f6f4fbe80fbe8f6f4進(jìn)位:000前半段:f4f7f6f4fbe8后半段:e8fafbe8f6f4-合計(jì)2:1ddf11f2dc1f2dcddf1f2dcf2dc進(jìn)位:111-合計(jì)3:ddf2f2ddf2dd最終結(jié)果:ddf2ddf2ddf2還有一個(gè)例子是把計(jì)算工作分為兩組,第二組是以奇數(shù)邊界起始的。按字節(jié)累加“正?!表樞蜃止?jié)0/1:00 010001字節(jié)2/:f2 (00)f200- -合計(jì):f2 01f201字節(jié)4/5:03 f403f4字節(jié)6/7:f5 f6f5f6字節(jié)8/:f7 (00)f700- -合計(jì)2:1f0ea合計(jì)2:f0ea進(jìn)位:1-合計(jì)3:f0eb合計(jì)1:f20

12、1合計(jì)3(交換字節(jié)序):ebf0-合計(jì)41ddf1合計(jì)4ddf1進(jìn)位:1-合計(jì)5:ddf23.4 一些編碼技術(shù)可以提高校驗(yàn)和的計(jì)算速度(1)延遲進(jìn)位法這種方法在主要的累加循環(huán)結(jié)束之后再把進(jìn)位累加進(jìn)和值。其實(shí)現(xiàn)方式就是用32位的累加器獲得16位校驗(yàn)和,這樣溢出就產(chǎn)生在高16位上。這種方法避免了累加器中進(jìn)位傳感器機(jī)構(gòu)的設(shè)置,但是它要求的容量是原來(lái)的累加器容量的兩倍,因此它更多地依賴(lài)于硬件條件。(2)反向循環(huán)法這種方法可以減少由循環(huán)而產(chǎn)生的負(fù)荷,有效地展開(kāi)內(nèi)部的累加循環(huán),把循環(huán)過(guò)程中的一系列加法命令復(fù)制下來(lái)。這種技術(shù)通??梢怨?jié)省大量的時(shí)間,但是程序的邏輯設(shè)計(jì)會(huì)比較復(fù)雜。(3)合并數(shù)據(jù)拷貝法計(jì)算校驗(yàn)和

13、以及讀入數(shù)據(jù)都需要將數(shù)據(jù)從內(nèi)存的一個(gè)位置轉(zhuǎn)移到另一個(gè)位置,這樣會(huì)占用內(nèi)存總線的帶寬,而內(nèi)存總線的傳輸效率是提高校驗(yàn)和計(jì)算速度的瓶頸,尤其是對(duì)于某些機(jī)器(如一些簡(jiǎn)單的慢速的微型機(jī))來(lái)說(shuō),這一問(wèn)題尤為嚴(yán)重。為了解決這個(gè)問(wèn)題,可以把數(shù)據(jù)讀入的過(guò)程與校驗(yàn)的過(guò)程合二為一,也就是在讀入數(shù)據(jù)的同時(shí)計(jì)算校驗(yàn)和,這樣就可以省去一次數(shù)據(jù)移動(dòng)的過(guò)程,從而提高校驗(yàn)和的計(jì)算速度。4 課程設(shè)計(jì)分析校驗(yàn)和的計(jì)算過(guò)程主要分為三個(gè)步驟:數(shù)據(jù)文件的輸入,校驗(yàn)和的計(jì)算和校驗(yàn)結(jié)果的輸出。其中,主要的是數(shù)據(jù)的輸入和校驗(yàn)和的計(jì)算過(guò)程。4.1 數(shù)據(jù)的輸入方式輸入數(shù)據(jù)可能是以字符形式存儲(chǔ)的,而校驗(yàn)和的計(jì)算則要采用數(shù)據(jù)形式,所以在從文件讀取數(shù)

14、據(jù)時(shí),都要進(jìn)行字符到數(shù)據(jù)的相互轉(zhuǎn)換。1)將讀入的ASCII碼轉(zhuǎn)化為相應(yīng)的整型變量。if(ch>=0&&<=9)ch-=0;elseif(ch>=a&&ch<=f)ch=ch-a+10;elseif(ch>=A&&ch<=F)ch=ch-A+10;2)在使用C+編程時(shí)直接使用16進(jìn)制的方式打開(kāi)輸入文件。Ifstream in(argv1,ios:nocreate);i.setf(ios:hex);4.2 校驗(yàn)和的計(jì)算校驗(yàn)和算法是本程序的核心部分,在2.5節(jié)中我們介紹了一些相關(guān)的算法,而應(yīng)用最為普遍的是端循環(huán)進(jìn)位法

15、。端循環(huán)進(jìn)位的算法如下:將數(shù)據(jù)按一定數(shù)位進(jìn)行累加,最高位的進(jìn)位則循環(huán)加入最低位。待校驗(yàn)的數(shù)據(jù)按16位為一個(gè)單位相加,采用端循環(huán)進(jìn)位,最后對(duì)所得16位的數(shù)據(jù)取反碼。因?yàn)榇r?yàn)的數(shù)據(jù)是以字節(jié)方式分隔的,所以為了方便,將16位的數(shù)據(jù)分成高8位和低8位分別處理。該算法的代碼如下:圖2-1給出了一個(gè)流程的參考方案。endaroundcarry(int &highyte,int &lowbyte)while(highbyte>0xff|lowbyt化e>0xff)0 /高8位或低8位中的任何一方產(chǎn)生了溢出(進(jìn)位)lowbyte+=(highbyte>>8); /低字

16、節(jié)加上高字節(jié)超過(guò)8位的進(jìn)位highbyte=highbutr&0xff; /清除高字節(jié)的進(jìn)位highbyte+=(lowbyte>>8); /高字節(jié)加上來(lái)自低字節(jié)的進(jìn)位lowbyte=lowbyte&0xff; Count /清除低字節(jié)的進(jìn)4.3 程序流程圖圖2-1給出了一個(gè)流程的參考方案開(kāi)始,初始化 ch,count,sum,checksum 從文件讀取一個(gè)字符 Ch=EOF?Ch="? Ch轉(zhuǎn)換為相應(yīng)的8位數(shù)據(jù),count+ Count偶數(shù)? Ch低4位送入低四位 Ch低4位送入高4位得到p 值 將32位sum折疊到16位 求sum反碼并結(jié)束 (cou

17、nt/2)%2=1? 得到sum rp和sum低8位相加 rp和sum高8位相加 Y Y Y Y N N N N 4.4 相關(guān)擴(kuò)展前面我們提到,校驗(yàn)和還有其他一些計(jì)算方法,下面我們就來(lái)簡(jiǎn)要介紹以下利用延遲進(jìn)位法進(jìn)行計(jì)算的方法。延遲進(jìn)位法的算法描述:將進(jìn)位累加的過(guò)程延遲到整個(gè)累加循環(huán)結(jié)束之后進(jìn)行,這樣可以提高計(jì)算速度。3.1 主要的實(shí)現(xiàn)過(guò)程while(!infile.eof()/判斷文件是否結(jié)束,若否則對(duì)被校驗(yàn)的16位數(shù)據(jù)進(jìn)行累加int h, 1;/分別表示16位數(shù)據(jù)的高8位和低8位infile>>hex>>h;/從文件中讀入一個(gè)16進(jìn)制表示的數(shù)據(jù),作為高8位if(inf

18、ile.eof() l=0;/若后面沒(méi)有其他數(shù)據(jù),將0作為低8位else infile>>hex>>1;/若后面還有數(shù)據(jù),讀入下一個(gè)作為低8位sum+=(h*256+l);/將組合好的16位數(shù)據(jù)累加到sum中infile.close();/關(guān)閉文件check_sum=short(sum&0xffff)+(sum>>16);/將32位累加和轉(zhuǎn)換為16位數(shù)據(jù)/若累加過(guò)程中有向高16位的進(jìn)位,則要將進(jìn)位部分加到低16位上check_sum=-check_sum;/對(duì)累加和取反碼 開(kāi)始 命令行輸入正確? 創(chuàng)建輸入文件流,打開(kāi)指定輸入文32位累加器sum置0

19、文件結(jié)束? 讀入下一個(gè)字節(jié)數(shù)據(jù)作為高8位 后面還有數(shù)據(jù)? 讀入下一個(gè)字節(jié)數(shù)據(jù)作為低8位 將組合好的16位數(shù)據(jù)加到sum中歐 輸出格式提示 退出 關(guān)閉文件 取sum的低16位sum&oxffff Sum高16位為0? 將sum高16位數(shù)據(jù)sum>>16加到低16位上 對(duì)所得數(shù)據(jù)取反,即為check_sum 輸出check_sum 結(jié)束 Y 低8位置0N N N Y Y N 5 程序代碼#include<stdio.h>#include<stdlib.h>void main(int arga, char *argb)/指針數(shù)組作為主函數(shù)參數(shù),用于函數(shù)帶參

20、數(shù)入/定義并初始化變量FILE *fp;char ch;unsigned char r1,r2;unsigned int count=0,checksum=0,rp=0;unsigned long int sum=0;/打開(kāi)文件argb1if(fp=fopen("d:jiaoyan.txt","r")=NULL)printf("nn File can't be opened");exit(1);printf("nnthe type of output:data-sumnn");/從txt文件讀取字符,并進(jìn)行

21、數(shù)據(jù)處理while(1)if(ch=etc(ft)!=EOF)count+;if(ch!=' ')if(count%12=0)printf("n"); /將字符轉(zhuǎn)換成相應(yīng)的整形變量if(ch>='0'&&ch<='9')ch-='0'elseif(ch>='a'&&ch<='f')ch=ch-'a'+10;elseif(ch>='A'&&ch<='F')ch=ch-'A'+10; /

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論