時(shí)間:2022-06-20 12:28:10
緒論:在尋找寫作靈感嗎?愛發(fā)表網(wǎng)為您精選了8篇文件傳輸協(xié)議,愿這些內(nèi)容能夠啟迪您的思維,激發(fā)您的創(chuàng)作熱情,歡迎您的閱讀與分享!
[關(guān)鍵詞]傳統(tǒng)文化;藝術(shù);和諧社會;作用
一、傳統(tǒng)文化藝術(shù)及其精神動力
中國的傳統(tǒng)文化藝術(shù),博大而豐富多彩,成為中華民族文化得以發(fā)展的源泉。傳統(tǒng)文化藝術(shù)的產(chǎn)生有著深刻的民族習(xí)俗、政治、經(jīng)濟(jì)、宗教乃至審美的歷史淵源,是中華民族文化千百年來沉淀的結(jié)果,是廣大勞動人民集體的智慧和創(chuàng)造,它與勞動人民的生活、密不可分。從“藝術(shù)”這一詞的演變,可以看出與勞動生產(chǎn)的關(guān)系密不可分。“藝”字原為“藪”,在我國甲骨文中,它是人類在種植的形象,象征著勞動技術(shù)。我國學(xué)者鄧福星先生寫道:“人的起源不僅為藝術(shù)的發(fā)生提供了最基本的條件,而且使之成為必然。在一定意義上,我們可以把從猿到人的轉(zhuǎn)變看成是上述三個(gè)主要體系的進(jìn)化――人類各部分器官和機(jī)體的日趨完善,心理機(jī)能的發(fā)展和人類社會關(guān)系的形成,這些都是藝術(shù)發(fā)生的基本條件。一切精美的傳統(tǒng)文化藝術(shù)品無不出自人類靈巧的雙手;動聽的歌聲需要人的歌喉才能唱出,優(yōu)美的舞姿也要靠人的肢體來表現(xiàn)。一定歷史條件下的社會關(guān)系既為藝術(shù)的發(fā)展提供了產(chǎn)生和發(fā)展的條件,也就從根本上規(guī)定、制約著藝術(shù)作品的特征和基調(diào)?!薄翱茖W(xué)充實(shí)提高了我們的知識生活,而藝術(shù)也同樣充實(shí)提高了我們的感情生活”,喚醒了人類求美精神意識。如原始民族喜歡紅色一類的強(qiáng)烈色調(diào),山頂洞人在他們同伴的尸體旁撒上礦物質(zhì)的紅粉,山頂洞人裝飾品的穿孔也幾乎都是紅色,因?yàn)樗麄兊拇Ф加贸噼F礦染過,這是他們最初的求美精神意識的產(chǎn)生。也許紅色引起的感情愉悅中積淀了人的想象和理解,或許原始人從紅色想到了與他們生命攸關(guān)的火,或許想到了溫暖的太陽,總之,這一切都促使了人類的求美精神意識的發(fā)展。在人類社會歷史的發(fā)展中,傳統(tǒng)文化藝術(shù)活動促進(jìn)了人類精神意識的產(chǎn)生和發(fā)展。而傳統(tǒng)文化藝術(shù)品則是物化了的人的精神,其產(chǎn)生離不開人的精神活動。
首先,傳統(tǒng)文化藝術(shù)是以人的社會心理需要而產(chǎn)生的。人們在生產(chǎn)勞動中,有了社會交往等強(qiáng)烈的心理需要,為滿足這種需要,就產(chǎn)生了傳統(tǒng)的文化藝術(shù)。
其次,傳統(tǒng)文化藝術(shù)離不開人的情緒、情感與想象。由于人的情緒、情感等的推動,加上藝術(shù)豐富的想象,人們便把舊的表象進(jìn)行加工改造,而產(chǎn)生了新的藝術(shù)形象。一切傳統(tǒng)文化藝術(shù)的出現(xiàn)都是思維的結(jié)果,離不開入的精神活動,都是人精神活動的產(chǎn)物,依賴于人的精神活動,一般是意識與潛意識活動的相互依存、相互作用、相互調(diào)節(jié)及相互轉(zhuǎn)化的結(jié)果。
從精神層次來說,傳統(tǒng)文化藝術(shù)作品的完成依賴于意識――潛意識――意識,這一點(diǎn)我們從原始初民的實(shí)際生活中可以看出。他們通過對夢的表現(xiàn)與交流則導(dǎo)致了人類最早藝術(shù)的實(shí)現(xiàn)。如原始初民們幾乎人人怕死,然而在夢中他們又“見”到死去的家人或熟人,于是醒后就造出一個(gè)“天堂”與“地獄”的世界,以及“圖滕”藝術(shù)等,而這一認(rèn)識的途徑是在夢中,絕大多數(shù)是形象的夢,是潛意識的產(chǎn)物,夢態(tài)生活及對夢的分析導(dǎo)致了藝術(shù)的產(chǎn)生。尤其現(xiàn)代藝術(shù)創(chuàng)作則更與人的思維等精神活動不可分,一切創(chuàng)作都是精神活動的結(jié)果。由此可見,傳統(tǒng)文化藝術(shù)的歷史源遠(yuǎn)流長,對人類生活的涵蓋面廣泛。在世界文化歷史的進(jìn)程當(dāng)中,以中國為代表的傳統(tǒng)文化藝術(shù),表現(xiàn)了中國人追求“天人合一”的思想以及和諧文化的精神意蘊(yùn)。
二、傳統(tǒng)文化藝術(shù)在構(gòu)建和諧社會中的作用
在藝術(shù)活動中,傳統(tǒng)文化藝術(shù)表達(dá)了人們對社會、對美好生活的共同祝愿,促進(jìn)了群體間以及人們與先祖、與自然的情感交流,鞏固了民間群體的穩(wěn)定和發(fā)展。在藝術(shù)活動中,傳統(tǒng)文化藝術(shù)終擔(dān)任著重要的角色。傳統(tǒng)文化藝術(shù)包納了百姓生活的方方面面,涵蓋了宗教、倫理、道德、價(jià)值等全部精神文化和生產(chǎn)勞作等物質(zhì)文化。傳統(tǒng)文化藝術(shù)是依賴民眾生活而發(fā)生和存在的,依靠群體的齊心協(xié)力來維系生存和發(fā)展,使民眾文化生活更為豐富和頻繁,同時(shí),也使傳統(tǒng)文化藝術(shù)更為廣泛和普及。
人類有史以來在不同時(shí)期、不同地域創(chuàng)造的各種傳統(tǒng)文化藝術(shù),并不存在先進(jìn)和落后,而只有文化觀念的差異及由此而形成的美學(xué)觀念的區(qū)別。中國傳統(tǒng)美學(xué)強(qiáng)調(diào)的是主客體的統(tǒng)一的整體意識和求全美滿的美學(xué)觀念,認(rèn)為萬事萬物都是一個(gè)和諧的整體都遵循著一個(gè)本質(zhì)的規(guī)律。因而中國古代的藝術(shù)家始終致力于以整體為美的創(chuàng)作。將天、地、人、藝術(shù)、道德看作是一個(gè)生機(jī)勃勃的有機(jī)整體,以人的感情賦予物的形式,借物抒情是一種善和美的行為和意志。在傳統(tǒng)文化藝術(shù)的題材和構(gòu)成形式上都表露出那種善始善終的處世哲學(xué)和精神力量。
【關(guān)鍵詞】 中國傳統(tǒng)吉祥紋樣 民間藝術(shù) 山西繡花鞋墊 傳承 保護(hù)
隨著經(jīng)濟(jì)與科技的飛速發(fā)展,西方文化思潮的傳入,多年來現(xiàn)代物質(zhì)文化對中國社會各個(gè)方面的影響,社會的進(jìn)步導(dǎo)致了一些傳統(tǒng)的手工藝技術(shù)停止發(fā)展,甚至幾近消失。然而中國要不斷發(fā)展壯大,其根本還是要發(fā)揚(yáng)和壯大自己的東西、自己的文化,讓世界認(rèn)識中國了解中國?,F(xiàn)在越來越多的人開始關(guān)注我們祖先留下來的經(jīng)典之作,開始關(guān)注中國傳統(tǒng)的文脈。注重于中國傳統(tǒng)吉祥紋樣的繼承、發(fā)揚(yáng)、保護(hù)、研究,并與現(xiàn)代設(shè)計(jì)相結(jié)合,出現(xiàn)了很多具有中國特色的現(xiàn)代設(shè)計(jì)創(chuàng)意。本文通過對山西民間繡花鞋墊藝術(shù)表現(xiàn)的研究,來探討了中國吉祥紋樣在民間藝術(shù)生中的應(yīng)用。讓跟多的人認(rèn)識中國傳統(tǒng)紋樣的藝術(shù)魅力,以及其所包含的文化價(jià)值、所體現(xiàn)的中華民族千百年多彩燦爛的生命力與創(chuàng)造力。首先讓我們了解一下中國傳統(tǒng)吉祥紋樣。
一、中國傳統(tǒng)吉祥紋樣的發(fā)展與表現(xiàn)
中國傳統(tǒng)吉祥紋樣的雛形可以追溯到原古時(shí)代圖騰崇拜時(shí)期,吉祥紋樣的產(chǎn)生與人們對自然崇拜的信仰是密不可分的,人類對自然充滿了敬畏、對生活充滿了熱情,作為吉事的祭祀和卜笠便是原古人們對吉兇的最初認(rèn)識,表現(xiàn)在人們在甲骨上記錄了吉、大吉之類的卜辭。李硯祖先生這樣認(rèn)為“從紋的形式而言,吉祥紋樣的起源與原古先民觀物取像的觀察方式以及在卜笠活動中察看紋像的認(rèn)識有直接關(guān)系”。到新石器時(shí)期當(dāng)時(shí)的器物上如彩陶、石雕、玉刻上出現(xiàn)了各種形狀的怪獸,如龍、鳳、龜、鳥等,以及回紋、云紋等。到商、周、春秋戰(zhàn)國時(shí)間,真正意義的吉祥紋樣出現(xiàn)在了青銅器與漆器中,例如我們熟悉的饕餮紋、夔龍紋,象紋等,這些紋飾及承載紋飾的器物象征了擁有者地位的尊貴,象征著擁有權(quán)利。到秦漢時(shí)期,佛教傳入中土,佛教、道教、儒學(xué)思想的融合,再加之民間神話傳說的積淀,極大程度的豐富了吉祥紋樣的題材。例如儒家嚴(yán)格具有等級的君臣、父子、兄弟、夫妻、朋友五種倫理關(guān)系,在傳統(tǒng)紋樣中用鳳凰、白鶴、白頭、鴛鴦、燕子五中瑞鳥組合來表現(xiàn),稱之為“五翎”(指“五倫”)。并且這些紋樣被廣泛的應(yīng)用到了當(dāng)時(shí)的建筑、陶瓷、刺繡、繪畫等藝術(shù)表現(xiàn)中,伴隨工藝水品的發(fā)展,各種表現(xiàn)手法相應(yīng)而生。到隋唐元宋時(shí)期,吉祥紋樣日漸完善,并開始有了新的發(fā)展,到明清時(shí)期,吉祥紋樣走向了成熟。圖案表達(dá)形式更加豐富多彩,并產(chǎn)生了圖案表現(xiàn)技法與規(guī)范,使吉祥紋樣更趨于完美,對整個(gè)社會文化影響深遠(yuǎn),不僅從圖形上有了進(jìn)一步發(fā)展,同時(shí)也有了一些能代表吉祥的風(fēng)俗與語言,來贊譽(yù)人們向往的吉祥社會。
吉祥圖案發(fā)展到目前,種類繁多,我們從他的表現(xiàn)內(nèi)容簡單給他做一個(gè)分類:1)借助于諧音。也就是人們常說的“口彩”。漢字中有許多讀音相同,字義不一的現(xiàn)象。借助于這點(diǎn),就產(chǎn)生了這樣一類型吉祥紋樣。例如 “喜上眉梢”,它的表現(xiàn)則是一只喜鵲落在梅枝上的景象,暗語有喜事。再例如在今天很多地方結(jié)婚都保持的一個(gè)祝福民俗“早生貴子”,即棗、花生、桂圓、蓮子。2)對動植物屬性的借鑒。借鑒植物和動物的一些自然屬性來借物喻志。例如孔子有言“歲寒,知松柏之后凋也”便是“歲寒三友”松、竹、梅的人格原型。再如被稱之為“四君子”的梅、蘭、竹、菊,則借鑒的是梅凌歲寒而獨(dú)開之傲而不俗,蘭空谷幽香、孤芳自賞之幽而不病,竹瀟灑挺拔、清麗俊逸之輕而不佻,菊凌霜自行、不趨炎勢之麗而不嬌。對動物的屬性的借鑒在傳統(tǒng)紋樣中也是數(shù)不勝數(shù)的,例如“喜從天降”則是被稱為親客的蜘蛛,從蛛網(wǎng)上沿著一根蛛絲往下滑。3)吉祥文字的變形組合應(yīng)用。最具代表的莫過于百壽圖了。福、祿、壽、喜、富貴、吉祥、招財(cái)進(jìn)寶這些大多數(shù)在日常生活里我們都能見到。
二、繡花鞋墊中的吉祥紋樣特征
繡花鞋墊是山西民間文化藝術(shù)的一個(gè)重要表現(xiàn),十五六歲女子出嫁之前,都會為自己、為愛人繡制鞋墊,作為自己必不可少的嫁妝。他是女子像男子表達(dá)愛情的一種信物,也是女子對生活、對婚姻、對愛情充滿向往的一種寄托。民間手繡花工鞋墊的制作工藝大概需要5-7天完成,需要經(jīng)過打底(制坯子)、裁剪、粘表層、包邊、畫圖、繡制、表內(nèi)襯,熨燙幾道工序。依據(jù)所送對象的不同,繡花鞋墊有著不同的內(nèi)容與題材,圖案豐富、主題多樣、含義深刻,寄托著各種各樣的祝福。
傳統(tǒng)繡花鞋墊圖案題材的選擇寓意深遠(yuǎn),在不同的環(huán)境下使用的鞋墊選材不盡相同。用于婚嫁的繡花鞋墊,多為未出嫁的女子為自己為愛人繡制的嫁妝,是愛情的信物。它的表現(xiàn)多用動植物來圖案來創(chuàng)作,采用了諧音寓意的方式。題材多采用傳統(tǒng)吉祥紋樣中的“連生貴子”、“榴開百子”、“百年和合”等,大多采用了諧音的表現(xiàn)方式,“榴開百子”石榴籽多,則“籽”與“子”相關(guān),寓意多生男孩,“百年和合”百多為百合花,年指萬年青,和多用荷花代替,合為盒子,通過這樣雙關(guān)的手法來祝愿新婚夫婦百年好合。動物類型題材有“鴛鴦戲水”、“鳳戲牡丹”、“喜鵲登梅”、“龍鳳呈祥”等等。如果鞋墊是送給長輩、朋友的,那么他的題材也會改變,例如“壽比南山”、“松鶴延年”、“五福捧壽”等。傳統(tǒng)繡花鞋墊除了動植物題材以外還會直接用文字來表達(dá)吉祥的祝福,如“一生平安”、“事事順心”、“百壽圖”、“百福圖”、“心想事成”、“四季平安”以及象征繁衍不息的“卐”字等。小小一雙鞋墊,通過不同的組合圖案傳達(dá)著濃濃的祝福與情義。
繡花鞋墊題材的多樣性,決定了其構(gòu)圖方法的豐富性。民間手工制繡花鞋墊的圖案一般都是多種傳統(tǒng)吉祥紋樣的重組構(gòu)成。制作者以心造型,以理造型,每個(gè)鞋墊圖樣都有著自身的語言表述。表現(xiàn)自然、淳樸。民間繡花鞋墊最大的構(gòu)圖特征便是“滿”?;蛟S這邊是民間淳樸感情的體現(xiàn),繡制者對生活、對新人、對愛情、對長輩充滿了濃厚的愛意,滿腔的祝福,所以繡制鞋墊的時(shí)候會把所有的能表達(dá)的祝福一股腦繪制上去。這或許也正是繡花鞋墊的魅力所在。最具代表性的莫過于被稱之為“全鞋墊”的婚禮用鞋墊。全鞋墊中出現(xiàn)了很多動植物為代表的吉祥紋樣,分別有:代表財(cái)富的金蟬,代表富貴的牡丹,繁衍不息用于裝飾的“卐”字,以及兔子、蔥、葫蘆、佛手、剪刀、魚兒、如意、扇子,蓮花、蝙蝠、喜珠等,組合多樣、表現(xiàn)豐富、色彩質(zhì)樸,深的大眾喜歡。全鞋墊上圖案的意義有這樣一首民謠可以解釋:
蛤蟆搬金磚,輩輩都當(dāng)官;剪子鉸佛手,兩口好相守;扇子扇牡丹,兩口好喜歡;大鞋套小鞋,葫蘆倒寶來;兔兔吃蔥蔥,來年抱孫孫;時(shí)時(shí)如節(jié)慶,歲歲都有余;事事如意牡丹根,蓮花佛手貴長生。
除了“滿”以外,繡花鞋墊構(gòu)圖還遵循了“對稱”的原則,意指成雙成對。繡花鞋墊的對稱表現(xiàn)分為兩種形式,一種是圖案的絕對對稱。左右兩只鞋墊形成圖案上的對稱,另一種則是意識形態(tài)上的對稱。例如: “金童”對“玉女”,“龍”對“鳳”,“獅子”對“老虎”,“喜鵲”對“鴛鴦”等。通過這樣的組合來表達(dá)豐富的內(nèi)涵。例如“喜鵲”對“鴛鴦”,則表示雙喜臨門,夫妻恩愛。
第三個(gè)構(gòu)圖特征我們給它歸納為“三分法”,即把鞋墊按照腳形分開構(gòu)圖,這三部分是腳掌、腳心、腳跟。聽起來很有意思,但也正是民間藝術(shù)質(zhì)樸可愛的一種表現(xiàn)。例如,腳掌有佛手、石榴、桃子,寓指福壽、多子又安康;腳心兩尾順魚,寓意順順利利、如魚得水;腳跟金蟬抱磚,寓指必定做官。再如,腳掌有獅虎,寓指虎虎生威,祛病鎮(zhèn)邪。腳心書福、囍,寓指福喜臨門;腳跟蓮花,寓指步步生蓮,仕途人生順風(fēng)順?biāo)取?/p>
三、保護(hù)、傳承和發(fā)揚(yáng)
手工繡花鞋墊發(fā)展至今,近年來多被機(jī)器繡制所代替,大量的刺繡產(chǎn)業(yè)化充斥著市場,但是也出現(xiàn)了很多亂象。批量生產(chǎn),加之設(shè)計(jì)上的缺乏,繡花鞋墊中的紋樣被簡化、使民間繡花鞋墊的表現(xiàn)單一,呆板缺失了那種本身的文化內(nèi)涵,以及所要表現(xiàn)的祝福寓意。這就要求在市場與技術(shù)發(fā)展的同時(shí),我們需要培養(yǎng)大批的創(chuàng)意、設(shè)計(jì)、研發(fā)新產(chǎn)品的人才。在充分了解認(rèn)識傳統(tǒng)圖案表現(xiàn)手法、表達(dá)方式,以及繡花鞋墊所傳達(dá)的民俗真諦后,對制品進(jìn)行再設(shè)計(jì)。注重繡品的內(nèi)容表現(xiàn)豐富,題材寓意貼切,內(nèi)涵延伸廣,順應(yīng)繡花鞋墊本身繡制特征,來促進(jìn)產(chǎn)業(yè)的發(fā)展。我們需要傳承的不僅僅是一些圖案表現(xiàn),而是與之共存的傳統(tǒng)文化與民俗精神。
參考文獻(xiàn)
[1] 季寶玲.魯南刺繡鞋墊[J].科技信致富向?qū)В?000.03.
[2] 高琪.淺析陜北繡花鞋墊的生命內(nèi)涵[J].裝飾,2008.01.
[3] 鐘敬文.民俗學(xué)概論[M].上海文藝出版社,1998.
關(guān)鍵詞:TCP/IP協(xié)議 文件傳輸協(xié)議FTP Windows Sockets 套接口
中圖分類號:TP319 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2013)06-0105-01
1 引言
TCP/IP協(xié)議棧應(yīng)用層是超越網(wǎng)絡(luò)通信機(jī)制限制的一層。在TCP/IP協(xié)議棧中有三大基本協(xié)議之一文件傳輸協(xié)議FTP使Internet上任何異構(gòu)型主機(jī)或操作系統(tǒng)之間都能實(shí)現(xiàn)相互間的文件傳輸。它有自己一套獨(dú)立的命令(或稱子命令),獨(dú)立于各種主機(jī)本身的操作系統(tǒng),是任何用戶都可以使用的網(wǎng)絡(luò)通用命令。研究和開發(fā)在Windows下的網(wǎng)絡(luò)編程技術(shù)具有普遍的應(yīng)用價(jià)值。[1]
2 Windows Sockets和FTP應(yīng)用協(xié)議
2.1 Windows Sockets
TCP/IP協(xié)議核心作用是對物理網(wǎng)絡(luò)(物理層和數(shù)據(jù)鏈路層)在傳輸層/網(wǎng)絡(luò)層建立統(tǒng)一虛擬“邏輯網(wǎng)絡(luò)”,屏蔽所有物理網(wǎng)絡(luò)硬件差異,以實(shí)現(xiàn)普遍的“連通性”。[2]TCP/IP應(yīng)用中,最普遍使用的是Windows Sockets API編程接口。應(yīng)用程序調(diào)用Windows Sockets的API實(shí)現(xiàn)相互之間的通訊。Windows Sockets又利用下層的網(wǎng)絡(luò)通訊協(xié)議功能和操作系統(tǒng)調(diào)用實(shí)現(xiàn)實(shí)際的通訊工作。任何能夠與Windows Sockets兼容實(shí)現(xiàn)協(xié)同工作的應(yīng)用程序就被認(rèn)為是具有Windows Sockets接口。
2.2 基于TCP/IP的FTP應(yīng)用協(xié)議
文件傳輸協(xié)議(FTP)提供文件傳輸服務(wù),以使在客戶和服務(wù)器之間拷貝文件,并提供附加的服務(wù)以方便文件傳輸過程。
FTP是基于字符的客戶接口,同時(shí)使用兩個(gè)不同TCP連接。“分配號”RFC(評議征求)為FTP分配兩個(gè)公認(rèn)端口號。[3]當(dāng)FTP服務(wù)器模塊裝入TCP/IP系統(tǒng)時(shí),程序打開端口21,使服務(wù)器在此監(jiān)聽。FTP客戶呼叫服務(wù)器時(shí),它和端口21建立一個(gè)在整個(gè)FTP任務(wù)過程中都活躍存在的連接。通過該連接,客戶被服務(wù)器認(rèn)證,發(fā)控制以后所有活動的命令。當(dāng)客戶發(fā)命令給服務(wù)器請求文件傳輸時(shí)(列目錄被認(rèn)為是一個(gè)ASCII文件傳輸),使用端口號20的第二個(gè)連接被打開,當(dāng)傳輸結(jié)束時(shí)此連接被關(guān)閉。FTP客戶和服務(wù)器在控制連接上的通信是通過用戶協(xié)議解釋器(客戶程序中)和服務(wù)器協(xié)議解釋器間交換命令進(jìn)行,F(xiàn)TP客戶發(fā)給服務(wù)器的每一個(gè)命令必須有至少一個(gè)來自服務(wù)器的應(yīng)答。應(yīng)答由一個(gè)三個(gè)數(shù)字的編碼和一個(gè)文本字符串組成。文本字符串顯示給用戶看,編碼由客戶程序解釋以決定下一步動作。
2.3 套接口
套接口存在于通訊域中,是通訊的基石,一個(gè)正在被使用的套接口都有它的類型和與其相關(guān)的進(jìn)程。套接口通常和同一個(gè)域中的套接換數(shù)據(jù)(數(shù)據(jù)交換也可能穿越域的界限,但這時(shí)一定要執(zhí)行某種解釋程序)。用戶目前可以使用兩種套接口,即流套接口和數(shù)據(jù)報(bào)套接口。流套接口提供了雙向的,有序的,無重復(fù)并且無記錄邊界的數(shù)據(jù)流服務(wù)。數(shù)據(jù)報(bào)套接口支持雙向的數(shù)據(jù)流,但并不保證是可靠,有序,無重復(fù)的。[4]
3 面向連接的FTP編程應(yīng)用
4 結(jié)語
本文主要論述了使用Windows Sockets開發(fā)FTP應(yīng)用的研究與實(shí)現(xiàn)。FTP是TCP/IP上一個(gè)非常典型應(yīng)用。采用流套接口,實(shí)現(xiàn)了接收不同長度數(shù)據(jù)流。并且有較完善的錯誤處理機(jī)制,能給出網(wǎng)絡(luò)錯誤的消息描述。隨著Internet的不斷發(fā)展和Windows平臺的普及,基于Winsock接口這樣的網(wǎng)絡(luò)編程也會顯得越發(fā)重要。
參考文獻(xiàn)
[1]胡道元.計(jì)算機(jī)局域網(wǎng)[M].清華大學(xué)出版社,1990.9.
[2][美]Craig Zacker著,TCP/IP網(wǎng)絡(luò)管理[M].中國水利水電出版社,1998.8.
MSN最新安全版中關(guān)村在線免費(fèi)下載頁面:
.cn/detail/11/109664.shtml
QQ和MSN應(yīng)該是我們最常用的IM軟件,但是相信不少人都注意到,兩個(gè)軟件在傳輸文件的時(shí)候,MSN要比QQ慢很多,當(dāng)然也不是絕對的每次傳輸MSN都慢,然而這絕對是大多數(shù)情況。這到底是為什么呢?讓我們來一看究竟。
就本質(zhì)上而言,QQ是一個(gè)基于TCP/UDP協(xié)議的通訊軟件,而MSN是基于TCP協(xié)議的通訊軟件,但對博大精深的網(wǎng)絡(luò)通訊協(xié)議的理解和應(yīng)用,QQ和MSN卻有著彼此不同的理念。
那么QQ是如何通訊的呢?在TCP/IP協(xié)議中,唯一標(biāo)識一個(gè)應(yīng)用進(jìn)程的是socket,它通過網(wǎng)絡(luò)層的IP地址和傳輸層的端口號來實(shí)現(xiàn),對于同一個(gè)IP地址的內(nèi)部網(wǎng)絡(luò),通過不同的端口號來標(biāo)識不同的QQ進(jìn)程;當(dāng)你登錄QQ服務(wù)器的時(shí)候,服務(wù)器會保留你的保留IP地址和端口號信息,并在你的好友的QQ進(jìn)程中進(jìn)行列表顯示,然后兩個(gè)進(jìn)程就可以通信了。
通常,發(fā)送文件的計(jì)算機(jī)首先要通過消息服務(wù)器將其IP地址發(fā)送給接收計(jì)算機(jī),當(dāng)接收計(jì)算機(jī)同意接收的確認(rèn)消息反饋到消息服務(wù)器后,消息服務(wù)器將據(jù)此設(shè)置好文件傳輸對話。隨即,發(fā)送計(jì)算機(jī)與接收計(jì)算機(jī)就會在確定好的端口范圍內(nèi),建立起TCP或UDP連接開始文件的檢索與傳輸。
在默認(rèn)狀態(tài)下,QQ優(yōu)先采用了UDP(User Data Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)協(xié)議傳送數(shù)據(jù),而對可靠性要求高的數(shù)據(jù)通訊系統(tǒng)往往使用TCP協(xié)議傳輸數(shù)據(jù)。與TCP協(xié)議不同,UDP協(xié)議并不提供數(shù)據(jù)傳送的驗(yàn)證機(jī)制――在整個(gè)文件傳輸過程中如果出現(xiàn)數(shù)據(jù)報(bào)的丟失,協(xié)議本身并不能作出任何的檢測或提示。因此,通常人們把UDP協(xié)議稱為不可靠的傳輸協(xié)議。
UDP協(xié)議適用于無需應(yīng)答、要求時(shí)效的軟件使用,這樣的設(shè)計(jì)正好與QQ追求的目標(biāo)相符,所以QQ優(yōu)先使用了此協(xié)議進(jìn)行一切功能應(yīng)用。但是,由于UDP協(xié)議具有不可靠性,常會因種種原因?qū)е孪⒒驍?shù)據(jù)的發(fā)送失敗(很多時(shí)候會發(fā)現(xiàn)發(fā)送文件給對方接收時(shí),對方根本收不到要求接收文件的消息?;蚴前l(fā)送聊天消息時(shí),對方根本沒有收到過消息)。顯然,UDP協(xié)議由于排除了信息可靠傳遞機(jī)制,將安全和排序等功能移交給上層應(yīng)用來完成,極大降低了執(zhí)行時(shí)間,使速度得到了保證。QQ在數(shù)據(jù)傳輸上更注重實(shí)際性能,為了獲得更好的使用效果,往往可以犧牲一定的可靠性。因此,使用QQ來傳輸數(shù)據(jù),在很多時(shí)候就成了一個(gè)“不錯”的選擇。
一般內(nèi)網(wǎng)傳輸首選QQ,速度最快。QQ的文件傳輸是直接個(gè)人對個(gè)人,采用P2P的傳輸方式,具有不需中轉(zhuǎn)的優(yōu)勢,而且服務(wù)器都在國內(nèi),傳輸性能要高于外國IM軟件。
看過了QQ,我們再來看看MSN的傳輸原理。MSN全稱MSN Messenger,是微軟公司推出的即時(shí)通訊軟件。MSN Messenger憑借自身的優(yōu)秀性能和簡易操作,已躋身為目前世界上使用最為廣泛的IM軟件(即時(shí)通訊軟件),在國內(nèi)也有著眾多的用戶,是唯一一款可以和QQ抗衡的IM軟件。如今MSN除了互聯(lián)網(wǎng)通信外還廣泛用于局域網(wǎng),如學(xué)校、公司、政府機(jī)構(gòu)等內(nèi)部人員交流。
就MSN所用的TCP協(xié)議來說,它已經(jīng)包含了數(shù)據(jù)傳遞驗(yàn)證機(jī)制。而網(wǎng)絡(luò)傳輸協(xié)議中的驗(yàn)證機(jī)制往往是接收方收到發(fā)送方信息后自動回復(fù)一個(gè)確認(rèn)信息,因此有時(shí)候在網(wǎng)絡(luò)出現(xiàn)延遲或線端擁塞時(shí),即使MSN顯示連接正常也會出現(xiàn)“無法將XXXX信息發(fā)送給所有接收者”。
中國航空工業(yè)西安航空計(jì)算技術(shù)研究所 陜西西安 710119
[摘要]隨著綜合化航電的深入發(fā)展,分區(qū)操作系統(tǒng)下文件傳輸服務(wù)已成為新的應(yīng)用需求。本文從VxworksAE653操作系統(tǒng)的體系架構(gòu)出發(fā),結(jié)合簡單文件傳輸協(xié)議(Trivial File Transfer Protocol,TFTP)的工作模式,引入選項(xiàng)協(xié)商機(jī)制對協(xié)議進(jìn)行了擴(kuò)展,給出了在分區(qū)機(jī)制操作系統(tǒng)VxworksAE653下TFTP的實(shí)現(xiàn)方法。
[
關(guān)鍵詞 ]綜合化航電;分區(qū)操作系統(tǒng);簡單文件傳輸協(xié)議;選項(xiàng)協(xié)商
引言
隨著航電系統(tǒng)綜合化的不斷發(fā)展、新一代航電系統(tǒng)中對于數(shù)據(jù)傳輸要求的不斷提高,航電系統(tǒng)中傳輸?shù)牟粌H僅是命令和狀態(tài)數(shù)據(jù),而且還有大量的中間結(jié)果、可加載的應(yīng)用軟件等,文件傳輸服務(wù)在分區(qū)機(jī)制操作系統(tǒng)下廣泛應(yīng)用已成為航電系統(tǒng)新的需求。在分區(qū)操作系統(tǒng)下實(shí)現(xiàn)文傳傳輸服務(wù),將為綜合化航電系統(tǒng)文件傳輸應(yīng)用的開發(fā)提供有力的支持。
1.VxwoksAE653操作系統(tǒng)簡介
VxworksAE653操作系統(tǒng)美國WindRiver公司依據(jù)ARINC653標(biāo)準(zhǔn)推出的具備分區(qū)機(jī)制的高安全操作系統(tǒng)。操作系統(tǒng)分為上下兩層,下層操作系統(tǒng)稱之為核心操作系統(tǒng),上層操作系統(tǒng)稱之為分區(qū)操作系統(tǒng)。核心操作系統(tǒng)提供分區(qū)機(jī)制,并且提供最基本的分區(qū)相關(guān)服務(wù),如根據(jù)主時(shí)間框架內(nèi)分配給分區(qū)的時(shí)間窗口調(diào)度分區(qū);利用處理器的MMU對分區(qū)的空間進(jìn)行保護(hù)。分區(qū)操作系統(tǒng)主要負(fù)責(zé)與分區(qū)無關(guān)的分區(qū)內(nèi)進(jìn)程的管理,如分區(qū)內(nèi)的進(jìn)程管理、進(jìn)程調(diào)度、進(jìn)程間通信、分區(qū)內(nèi)端口的管理等。在該結(jié)構(gòu)下,分區(qū)機(jī)制的實(shí)現(xiàn)依賴于核心操作系統(tǒng)及其支撐硬件,與分區(qū)無關(guān)的進(jìn)程管理依賴于每個(gè)分區(qū)自己的分區(qū)操作系統(tǒng),本文中TFTP軟件是基于VxworksAE653操作系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)的。
2.TFTP簡介
TFTP是一種基于UDP的用來傳輸文件的簡單文件傳輸協(xié)議,它是基于客戶/服務(wù)器模式,主要功能是從遠(yuǎn)程服務(wù)器上讀取文件或者將文件傳輸給遠(yuǎn)程服務(wù)器。
2.1 TFTP數(shù)據(jù)報(bào)文格式
TFTP數(shù)據(jù)以定長512字節(jié)傳輸。一個(gè)TFTP包頭含以下兩個(gè)部分: TFTP操作碼和數(shù)據(jù)。圖1為5種TFTP報(bào)文格式。
2.2 TFTP的工作模式
TFTP的工作模式為客戶/服務(wù)器(C/S)模式。創(chuàng)建連接后,客戶端和服務(wù)器端通過協(xié)議包進(jìn)行信息交互。下面是一個(gè)客戶端向服務(wù)器端發(fā)送文件的例子,(1)客戶端通過發(fā)送端口向服務(wù)器端的接收端口上發(fā)送WRQ請求。(2)服務(wù)器端的接收端口接收到請求后,通過發(fā)送端口向客戶端發(fā)出ACK,塊號為0。(3)客戶端接收到塊號為0的ACK包后,連接建立。(4)客戶端依次向服務(wù)器端發(fā)送DATA包,DATA包序列從1開始,同時(shí)客戶端檢查ACK包序列,如ACK包檢查有誤,中止傳輸。如ACK包序列正確,繼續(xù)傳輸直至傳輸結(jié)束。
3.TFTP在分區(qū)機(jī)制操作系統(tǒng)下的設(shè)計(jì)
TFTP的客戶端和服務(wù)器段分別處于VxworksAE653操作系統(tǒng)的應(yīng)用分區(qū)中,應(yīng)用分區(qū)中支持滿足ARINC653標(biāo)準(zhǔn)的接口。TFTP的任何一個(gè)傳輸服務(wù)都以客戶端申請寫文件或者讀文件請求發(fā)起連接,如果服務(wù)器同意連接請求,則連接成功。文件中的數(shù)據(jù)以定長的字節(jié)傳輸,每個(gè)數(shù)據(jù)包都包含一個(gè)數(shù)據(jù)塊,在發(fā)送一個(gè)數(shù)據(jù)包之前,前一個(gè)數(shù)據(jù)必須得到確認(rèn)。在VxworksAE653操作系統(tǒng)下,TFTP的設(shè)計(jì)需要考慮通信和文件系統(tǒng)配置、超時(shí)重傳機(jī)制、協(xié)議包的合法性檢查、協(xié)議包序列號驗(yàn)證以及協(xié)議的可擴(kuò)展性問題。
3.1 通信配置
VxworksAE653操作系統(tǒng)下,核心操作系統(tǒng)提供了一組設(shè)備管理接口,系統(tǒng)集成人員通過調(diào)用該接口可向核心操作系統(tǒng)注冊網(wǎng)絡(luò)設(shè)備驅(qū)動。本文中的TFTP軟件所使用的網(wǎng)絡(luò)為以太網(wǎng)UDP驅(qū)動。通過將以太網(wǎng)UDP驅(qū)動注冊到核心操作系統(tǒng)可完成網(wǎng)絡(luò)驅(qū)動配置。分區(qū)間通信為端口-通道-虛端口機(jī)制,分區(qū)中通過端口進(jìn)行數(shù)據(jù)收發(fā),虛端口可直接訪問下層設(shè)備進(jìn)行數(shù)據(jù)收發(fā),端口和虛端口之間通過通道連接。在VxworksAE653操作系統(tǒng)的配置藍(lán)圖中,分別為TFTP客戶端和服務(wù)器端配置通信端口,使得TFTP客戶端和服務(wù)器端可通過端口進(jìn)行數(shù)據(jù)通信。
3.2 文件系統(tǒng)配置
TFTP軟件通過以文件的形式對數(shù)據(jù)進(jìn)行管理。VxworksAE653操作系統(tǒng)提供了系統(tǒng)調(diào)用機(jī)制,分區(qū)可通過系統(tǒng)調(diào)用的形式使用核心操作系統(tǒng)的服務(wù),通過在核心操作系統(tǒng)向分區(qū)擴(kuò)展文件系統(tǒng)服務(wù)接口,分區(qū)中運(yùn)行的TFTP軟件可以通過系統(tǒng)調(diào)用的方式訪問文件系統(tǒng)服務(wù)。
3.3 超時(shí)重傳
TFTP協(xié)議通過超時(shí)和重傳機(jī)制在協(xié)議層保證數(shù)據(jù)傳輸?shù)目煽啃?。TFTP超時(shí)和重傳策略為:TFTP發(fā)送一個(gè)數(shù)據(jù)包,接收方收到此數(shù)據(jù)包后,必須對發(fā)送方做出應(yīng)答。發(fā)送方在設(shè)定的超時(shí)時(shí)間內(nèi)如果沒有收到應(yīng)答,將重新發(fā)送此數(shù)據(jù)包,如果在限定的發(fā)送次數(shù)內(nèi)仍然沒有收到應(yīng)答包,則此次文件傳輸失敗。
3.4 協(xié)議包序號檢查
在數(shù)據(jù)傳輸過程中,如果數(shù)據(jù)的源序列號和期望的序列號不同,這個(gè)包則被認(rèn)為是一個(gè)無效的包而丟棄。設(shè)想發(fā)送方發(fā)出一個(gè)數(shù)據(jù)包,這個(gè)數(shù)據(jù)包由于某種原因在網(wǎng)絡(luò)設(shè)備中被復(fù)制成兩個(gè)包,接收方將先后接受兩個(gè)包。接收方在接收到第一個(gè)包后,期望的數(shù)據(jù)序列號會自動加1,當(dāng)?shù)诙€(gè)包到達(dá)后,數(shù)據(jù)序列號和期望序列號不同,所以第一個(gè)包被丟棄,而不會導(dǎo)致一個(gè)數(shù)據(jù)包接收兩次。TFTP協(xié)議包需要檢查序號的數(shù)據(jù)包為DATA包和ACK包。
3.5 異常處理
TFTP軟件在進(jìn)行文件傳輸過程中,在客戶端/服務(wù)器端可能會出現(xiàn)一些異常情況(如文件未找到、訪問越界、非法的TFTP操作等),當(dāng)出現(xiàn)異常情況后,異常的發(fā)現(xiàn)方立即組織一個(gè)ERROR,發(fā)給對方,同時(shí)退出連接。ERROR包的接收方收到消息后,退出連接。
3.6 協(xié)議擴(kuò)展
RFC1350標(biāo)準(zhǔn)推薦的協(xié)議數(shù)據(jù)包大小為512字節(jié),超時(shí)時(shí)間為2S,重傳次數(shù)為3次。TFTP協(xié)議在設(shè)計(jì)中在RFC1350標(biāo)準(zhǔn)的基礎(chǔ)上參考RFC2347標(biāo)準(zhǔn)加入了選項(xiàng)協(xié)商機(jī)制。選項(xiàng)協(xié)商機(jī)制是在原有的WRQ和RRQ包中擴(kuò)展了數(shù)據(jù)包長度、重傳次數(shù)和超時(shí)時(shí)間協(xié)商選項(xiàng),引入了OACK包回應(yīng)選項(xiàng)協(xié)商。文件傳輸?shù)陌l(fā)起方在發(fā)送WRQ或RRQ包的時(shí)候,將建議的數(shù)據(jù)報(bào)長度、重傳次數(shù)、超時(shí)時(shí)間寫入到WRQ或RRQ包中,接收收方接收并解析WRQ或RRQ包后,如果支持選項(xiàng)協(xié)商中的一項(xiàng)或者多項(xiàng),發(fā)送OACK包進(jìn)行回應(yīng)。如果接收方不支持選項(xiàng)協(xié)商機(jī)制,發(fā)送ACK包進(jìn)行回應(yīng),傳輸雙方按照RFC1350標(biāo)準(zhǔn)推薦的協(xié)議設(shè)置工作。
4.TFTP的軟件實(shí)現(xiàn)
TFTP軟件的客戶端軟件和服務(wù)器端軟件分別駐留的不同硬件模塊上的VxworksAE653操作系統(tǒng)分區(qū)中,通過應(yīng)用分區(qū)中的應(yīng)用端口進(jìn)行數(shù)據(jù)通信,通過文件系統(tǒng)對文件數(shù)據(jù)進(jìn)行存儲和訪問。
4.1 TFTP客戶端的實(shí)現(xiàn)
TFTP的客戶端軟件首先在WRQ和RRQ包中設(shè)置選項(xiàng)協(xié)商參數(shù),包括TFTP數(shù)據(jù)包大小、重傳次數(shù)和超時(shí)時(shí)間,然后將讀/寫命令請求發(fā)送出去,接收服務(wù)端的回應(yīng)信息,若連接失敗,退出本次服務(wù);如果和服務(wù)器端連接成功,在服務(wù)器端的回應(yīng)信息中判定服務(wù)器端是否支持選項(xiàng)協(xié)商機(jī)制,如果服務(wù)器端不支持選項(xiàng)協(xié)商機(jī)制,則恢復(fù)缺省協(xié)議參數(shù)后開始上傳/下載文件數(shù)據(jù)傳輸。如果服務(wù)器端支持選項(xiàng)協(xié)商機(jī)制,則直接開始上傳/下載文件數(shù)據(jù)傳輸。上傳文件時(shí),從本地文件中讀出協(xié)議參數(shù)規(guī)定長度的數(shù)據(jù),從發(fā)送端口將數(shù)據(jù)發(fā)送到服務(wù)器的接收端口上,同時(shí)在接收端口上等待來自服務(wù)器端的應(yīng)答包。如果在協(xié)議參數(shù)設(shè)定的時(shí)間內(nèi)接收端口上接收到了應(yīng)答包,且應(yīng)答包包序列正確,說明服務(wù)器端口已經(jīng)確認(rèn)數(shù)據(jù)包已經(jīng)收到,接下來進(jìn)行下一包數(shù)據(jù)的傳送,如果在設(shè)定的時(shí)間內(nèi)接收端口上沒有收到應(yīng)答信息,則客戶端認(rèn)為服務(wù)器端沒有接收到數(shù)據(jù)包,繼續(xù)對此數(shù)據(jù)進(jìn)行重傳。若按照協(xié)議參數(shù)設(shè)定的次數(shù)連續(xù)重傳后仍然沒有收到應(yīng)答包,則認(rèn)為此次上傳任務(wù)失敗??蛻舳藢⑼顺鲞B接。下載文件時(shí),客戶端程序在在協(xié)議限定的時(shí)間內(nèi)(超時(shí)時(shí)間和重傳次數(shù)相乘)接收數(shù)據(jù),如果沒有收到數(shù)據(jù),則退出,如果能收到數(shù)據(jù),則將收到的數(shù)據(jù)寫入文件,同時(shí)向遠(yuǎn)程服務(wù)器發(fā)送回應(yīng)消息。重復(fù)此過程,直至接收完所有的文件數(shù)據(jù)。
4.2 TFTP服務(wù)端的實(shí)現(xiàn)
TFTP服務(wù)端工作流程如下:1)服務(wù)器端接收客戶端發(fā)送的命令。2)服務(wù)器端解析客戶端命令請求。解析客戶端WRQ/RRQ協(xié)議包,若客戶端發(fā)送的WRQ/RRQ具備協(xié)議協(xié)商機(jī)制要求,同步服務(wù)端的協(xié)議參數(shù),發(fā)送OACK協(xié)議包進(jìn)行應(yīng)答。3)根據(jù)(2)的解析結(jié)果,在分區(qū)操作系統(tǒng)中創(chuàng)建文件上傳/下載傳輸任務(wù)進(jìn)行文件傳輸,服務(wù)器端上傳/下載傳輸與客戶端相應(yīng)服務(wù)處理流程相同。
5.結(jié)束語
本文在研究分區(qū)操作系統(tǒng)VxWorksAE653架構(gòu)的基礎(chǔ)上,介紹了TFTP的數(shù)據(jù)報(bào)文格式和工作過程,并結(jié)合相關(guān)協(xié)議標(biāo)準(zhǔn)對TFTP協(xié)議進(jìn)行了擴(kuò)展設(shè)計(jì),給出了分區(qū)機(jī)制操作系統(tǒng)VxWorksAE653下TFTP的設(shè)計(jì)思路和實(shí)現(xiàn)方法,在開發(fā)實(shí)例測試中,Vxworks653平臺下的TFTP軟件穩(wěn)定運(yùn)行,在傳輸過程中,客戶端軟件與Windows平臺下的TFTP服務(wù)器可以兼容工作,出現(xiàn)網(wǎng)絡(luò)故障時(shí),可以進(jìn)行超時(shí)重傳,具有良好的容錯能力。
參考文獻(xiàn)
[1]徐曉光,員海順等.分區(qū)操作系統(tǒng)下的分區(qū)間通信設(shè)計(jì)[J],現(xiàn)代電子技術(shù).2013,36(14):58-64.
[2]李偉,李杰濤等.VxWorks下文件傳輸?shù)脑O(shè)計(jì)和實(shí)現(xiàn)[J],科技創(chuàng)新導(dǎo)報(bào).2013.19:38-39.
[3]Sollins K. RFC2347,The TFTP Protocol ( Revision 2) [S].USA: IETF,2010.
關(guān)鍵詞:FTP;文件傳輸;上傳;下載
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)09-0110-02
Abstract:FTP protocol and software, used to transmit files, is a complex technique and its many functions have not been developed in Internet. This paper introduced the software of FTP client, which is developed in the environment of win7 and JAVA. The software is carrying out file transmission and file operation between Client and Server in Internet/LAN. Integrated functions of the softwarewere the following:file uploading, file downloading, file browsing at client, file browsing at server and information feedback. The software has visual interfaces and the basic and common functions of FTP protocol.It is easy to use.
Key words:FTP; file transmission; upload, download
文件傳輸協(xié)議(FTP)是使用最為普遍的網(wǎng)絡(luò)協(xié)議之一,由最早的簡單文件傳輸協(xié)議(TFTP)發(fā)展而來,經(jīng)過不斷的修正與完善,已成為網(wǎng)絡(luò)間文件傳輸?shù)闹匾獏f(xié)議。FTP在Internet上用于控制文件的雙向傳輸,可以在網(wǎng)絡(luò)中傳輸電子文檔、圖片、聲音、影視及程序等多種類型的文件。市面上FTP軟件一般功能多,實(shí)現(xiàn)技術(shù)復(fù)雜,許多功能用戶很少使用。為了適應(yīng)公司員工上傳和下載文件需要,在 win7環(huán)境下應(yīng)JAVA開發(fā)了一套FTP客戶端軟件。該軟件在Inter-net/LAN的環(huán)境中能實(shí)現(xiàn)客戶機(jī)與服務(wù)器之間文件的傳輸和操作的基本功能。
1 FTP相關(guān)技術(shù)
1.1 FTP工作原理
FTP是網(wǎng)絡(luò)上的應(yīng)用層協(xié)議,使用TCP協(xié)議傳輸。FTP會話時(shí)包含了兩個(gè)通道,一個(gè)叫控制通道,一個(gè)叫數(shù)據(jù)通道。控制通道是和FTP服務(wù)器進(jìn)行溝通的通道,連接FTP,發(fā)送FTP指令都是通過控制通道來完成的。數(shù)據(jù)通道是和FTP服務(wù)器進(jìn)行文件傳輸或者列表的通道。
1.2 FTP的工作方式
FTP的工作方式有PORT模式和PASV模式兩種。
PORT模式:是主動模式,在主動傳輸模式下,由服務(wù)器向客戶端發(fā)起一個(gè)用于數(shù)據(jù)傳輸?shù)倪B接??蛻舳说倪B接端口由服務(wù)器端和客戶端通過協(xié)商確定。主動傳輸模式下,F(xiàn)TP服務(wù)器使用20端口與客戶端的端口進(jìn)行連接,并傳輸數(shù)據(jù),客戶端只是處于接收狀態(tài)。
PASV模式:是被動模式。在被動傳輸模式下,F(xiàn)TP服務(wù)器等待客戶與其聯(lián)系。由客戶端向服務(wù)器發(fā)起一個(gè)用于數(shù)據(jù)傳輸?shù)倪B接。被動傳輸模式下,F(xiàn)TP服務(wù)器打開一個(gè)暫態(tài)端口等待客戶端對其進(jìn)行連接,并傳輸數(shù)據(jù),服務(wù)器并不參與數(shù)據(jù)的主動傳輸,只是被動接受。
2 系統(tǒng)設(shè)計(jì)
2.1總體設(shè)計(jì)
1)基本功能:界面設(shè)計(jì);本機(jī)文件資源瀏覽;遠(yuǎn)程文件資源瀏覽;與服務(wù)器連接時(shí)的信息反饋。
2)文件傳輸功能:文件的上傳和下載。
3)擴(kuò)展功能:傳輸進(jìn)度顯示;文件瀏覽、文件刪除功能。
2. 2 系統(tǒng)功能設(shè)計(jì)
文件傳輸模塊是整個(gè)系統(tǒng)的核心。此模塊實(shí)現(xiàn)FTP客戶端與服務(wù)器之間的文件傳送。文件的傳輸包括上傳和下載兩個(gè)功能。
本機(jī)文件瀏覽模塊的功能是對本機(jī)上的文件進(jìn)行瀏覽。
遠(yuǎn)程瀏覽模塊的功能是對服務(wù)器上的文件進(jìn)行瀏覽。
文件操作模塊主要實(shí)現(xiàn)文件刪除、打開等功能。
傳輸進(jìn)度、信息顯示模塊顯示客戶端與服務(wù)器之間進(jìn)行信息交過程的實(shí)時(shí)情況(連接成功與否、上傳和下載的進(jìn)度等)。
3 系統(tǒng)實(shí)現(xiàn)
3.1登錄模塊
客戶端中使用connectServe方法來實(shí)現(xiàn)連接服務(wù)器功能,首先是使用FtpClient類的openServer(string server)方法打開遠(yuǎn)程FTP服務(wù)器,然后使用FtpClient類的login(user, password)方法登錄服務(wù)器。登錄遠(yuǎn)程FTP服務(wù)器有兩種方式,一種是注冊用戶登錄,另一種是以匿名方式登錄。為了安全,本系統(tǒng)使用第一種方式登錄,所以需要擁有該服務(wù)器的注冊用戶名和密碼。
為了建立一條與指定主機(jī)、指定端口上的FTP服務(wù)器的連接,首先定義4個(gè)變量,命名為ip(服務(wù)器IP地址),username(用戶名),port(端口號),password(密碼),分別用來接收來自數(shù)據(jù)輸入界面的數(shù)據(jù)。連接服務(wù)器的命令函數(shù):openServer(String host,String username, int port, String password )。然后將接收到的數(shù)據(jù)發(fā)送至服務(wù)器驗(yàn)證,驗(yàn)證成功則使用append()方法在信息顯示界面中提示連接成功,失敗則顯示無法連接,并給出錯誤提示。
3.2 本地文件瀏覽模塊
功能是顯示本機(jī)的文件目錄。首先用類DefaultTableModel創(chuàng)建一個(gè)表格模型,DefaultTableModel是 TableModel 的一個(gè)實(shí)現(xiàn),它使用一個(gè) Vector 來存儲單元格的值。表格包括三個(gè)數(shù)據(jù)項(xiàng):文件名,文件大小,修改日期。通過使用一個(gè)二維數(shù)組Object[][]來存儲這三個(gè)數(shù)據(jù)。通過方法getCurrentDirectory()獲得當(dāng)前目錄,再利用listFile()獲取該目錄下的文件,經(jīng)解析后存入二維數(shù)組中。
3.3 遠(yuǎn)程文件瀏覽模塊
具體功能是顯示服務(wù)器端的文件目錄。當(dāng)連接服務(wù)器,登入成功之后,可以使用FtpClient控件的List()方法來獲取FTP服務(wù)器上目錄與文件的詳細(xì)內(nèi)容,包括創(chuàng)建文件日期,文件大小,目錄與文件的名稱等相關(guān)信息。在得到文件名后,調(diào)用其方法getSystemIcon()就可以獲得相應(yīng)的文件圖標(biāo)。由于List()方法執(zhí)行后的結(jié)果是TelnetInputStream數(shù)據(jù)流,本系統(tǒng)通過getFileAll()方法進(jìn)行解析后把它顯示在表格中。
3.4 上傳模塊和下載模塊
1)文件下載模塊
文件的下載,使用TelnetInputStream流,并使用FTPClient控件的get()方法將流的源頭綁定,然后再在本地用將要下載的文件或者目錄名來新建一個(gè)文件或者目錄,并綁定到FileOutputStream流中,執(zhí)行TelnetInputStream流的讀并寫入FileOutputStream流中,就可以完成下載功能。文件下載流程圖如圖1所示。在下載之前程序首先需要判斷瀏覽框中選中的是目錄還是文件。若選中的是文件,則直接調(diào)用方法:void downloadFile(String filename, String newfilename);
若選中的是目錄需要使用遞歸的方法下載目錄中的文件或者是子目錄。它調(diào)用了三個(gè)方法,依次為:void downloadDir(String filename);
void downloadFile_x(String pathname,String filename);
void downloadFile(Stringfilename, String newfilename);
2)文件上傳程序
文件的上傳和文件的下載基本類似,不過使用的是TelnetOutputStream流,并使用FtpClient控件的put方法和流綁定,然后在遠(yuǎn)程目錄上新建要上傳的文件或者目錄,將本地文件綁定到FileInputStream流中,執(zhí)行FileInputStream流的讀入并寫入TelnetOutputStream流中即可完成上傳功能,對于目錄的上傳同樣需要遞歸方法來實(shí)現(xiàn)。
3.5 傳輸進(jìn)度、信息顯示模塊
1)傳輸進(jìn)度
該模塊幫助用戶了解文件傳輸?shù)臓顟B(tài),使用Timer組件來實(shí)現(xiàn)。
Timer函數(shù)的構(gòu)造如下:Timer(int delay,ActionListener);
利用Timer組件根據(jù)所給予的dalay時(shí)間內(nèi)周期性地觸發(fā)ActionEvent事件,調(diào)用ActionListener接口所定義的actionPerformed()方法,通過計(jì)算已傳輸?shù)膬?nèi)容和要傳輸?shù)奈募拇笮?,?shí)現(xiàn)傳輸進(jìn)度的顯示。start()方法和stop()方法分別用于Timer組件的激活和停止。
2)信息顯示模塊
使用JTextArea類可以創(chuàng)建顯示多行文本的對象,通過方法append()來顯示客戶端與服務(wù)器的交互信息,如顯示登入成功與否,顯示來自服務(wù)器端的友好信息,以及文件上傳和下載成功與否。
4 結(jié)束語
該軟件能夠以帳戶和密碼遠(yuǎn)程登入FTP服務(wù)器,完成文件的上傳與下載并保證文件的完好。軟件體積小巧、直觀,利用圖形界面操作簡單易懂。
參考文獻(xiàn):
[1] Douglas E Comer. 用TCP/IP進(jìn)行網(wǎng)際互聯(lián)(第一、二、三卷)[M]. 林遙, 譯. 北京: 機(jī)械工業(yè)出版社, 2004.
[2] 張峰. Java程序設(shè)計(jì)與項(xiàng)目實(shí)戰(zhàn)(全程實(shí)錄)[M]. 北京: 清華大學(xué)出版社, 2011.
本文主要向大家闡述的是安全技巧之保護(hù)企業(yè)FTP安全的最佳實(shí)踐方案,以下就是相關(guān)內(nèi)容的具體描述。希望你能從中獲得自己想要的東西。雖然各種威脅在持續(xù)發(fā)展演變,但是文件傳輸協(xié)議(通常稱為FTP)基本上還是跟幾年前一樣,而且還在大范圍地使用。
FTP主要用來傳輸大文件,它就是為了這個(gè)目的設(shè)計(jì)的。FTP是一種客戶端服務(wù)器(主從模式)協(xié)議,它使用控制和數(shù)據(jù)兩條通道進(jìn)行文件傳輸??刂仆ǖ烙脕磉M(jìn)行身份認(rèn)證,并給服務(wù)器發(fā)送命令。該協(xié)議本身不支持加密,因此,在控制通道中發(fā)送的所有流量都是直接發(fā)送的,或者說是未加密的,這是該協(xié)議的弱點(diǎn)之一。在企業(yè)中,FTP服務(wù)通常被用來處理那些不敏感的內(nèi)容,而且跟其他敏感信息系統(tǒng)都是完全隔離的。人們還得保證FTP服務(wù)能夠及時(shí)更新。配置錯誤的以及結(jié)構(gòu)不合理的FTP服務(wù)可能會成為企業(yè)中重要的安全漏洞。
企業(yè)確保FTP安全的最佳做法是什么?FTP安全狀況達(dá)到可以傳輸敏感數(shù)據(jù)的地步了嗎?或者說有什么好的方法可以讓FTP更安全?如果FTP還不夠安全,不足以用來傳輸敏感數(shù)據(jù),那么有哪些協(xié)議可以替代它呢?我們會在本文中回答這些問題。
FTP無處不在,這一點(diǎn)不可否認(rèn)。就像其他廣泛使用的技術(shù)一樣,FTP也開始成為攻擊者易于攻擊的目標(biāo)。這么多年來,攻擊者已經(jīng)有了許多使用FTP以及利用FTP漏洞的經(jīng)驗(yàn)。有關(guān)FTP服務(wù)安全性的討論很激烈,一般來說,人們沒有就哪種方法能最好地保護(hù)FTP安全達(dá)成共識。主要是由于商業(yè)需要,才讓這項(xiàng)服務(wù)繼續(xù)存在,而沒有使用其他更加安全的替代產(chǎn)品。一般來說,任何使用或者考慮使用FTP的企業(yè)都應(yīng)該先問自己以下三個(gè)問題:
(1) 我們真的需要FTP嗎?
(2) 我們怎樣才能安全地設(shè)置FTP(我將會解釋這個(gè)自相矛盾的情況)?
(3) 有沒有既安全又容易使用的FTP替代產(chǎn)品?
第一個(gè)問題很有趣。從技術(shù)上講,答案是否定的。其實(shí)市面上有許多更加安全的其他技術(shù),我們將在后面討論。然而,實(shí)際的答案卻是肯定的,因?yàn)镕TP應(yīng)用非常廣泛,而且具有跨平臺的支持性,大多數(shù)企業(yè)都被迫選擇支持FTP。
我花了相當(dāng)多的時(shí)間對過濾設(shè)備(即防火墻)上的FTP連接進(jìn)行故障排除,了解到FTP的控制和數(shù)據(jù)通道設(shè)計(jì)不是很適合在數(shù)據(jù)包穿越多個(gè)不同的網(wǎng)絡(luò)設(shè)備環(huán)境中使用。
正如我先前提到的,FTP是一個(gè)客戶端服務(wù)器協(xié)議,使用單獨(dú)的控制和數(shù)據(jù)通道進(jìn)行文件傳輸。控制通道用來進(jìn)行身份認(rèn)證,并給服務(wù)器發(fā)送命令。這種身份認(rèn)證機(jī)制比較脆弱,因?yàn)檎J(rèn)證信息沒有經(jīng)過加密就直接發(fā)送到服務(wù)器,使得這種網(wǎng)絡(luò)傳輸很容易被竊聽。在一般的FTP實(shí)施過程中,一些典型的安全漏洞讓這個(gè)問題更加復(fù)雜化。
盡管企業(yè)FTP安全存在弊端,但是許多企業(yè)還是選擇它進(jìn)行大容量的數(shù)據(jù)傳輸。大多數(shù)工作站、應(yīng)用程序,甚至網(wǎng)絡(luò)過濾設(shè)備都內(nèi)置了對FTP的支持。其他產(chǎn)品可能會更加安全,但是它們還是無法與FTP的便利性和低成本相抗衡。
讓我們暫且假設(shè)FTP是唯一的選擇。那么,我們可以來仔細(xì)研究幾種能夠讓這項(xiàng)服務(wù)達(dá)到一定安全性的方法。先從網(wǎng)絡(luò)設(shè)計(jì)階段開始,我們可以把FTP服務(wù)限制在專用虛擬局域網(wǎng)網(wǎng)段上。通常需要從你的交換機(jī)、路由器或者防火墻設(shè)備中分出一個(gè)單獨(dú)的專用網(wǎng)段來管理FTP服務(wù)。這種做法有多方面的目的,不僅能使你專門使用防火墻的一部分來防護(hù)這個(gè)網(wǎng)段,并進(jìn)行策略(控制源IP)控制和簡化故障排除(主動/被動連接),而且會給你提供一個(gè)阻塞點(diǎn)(choke point),從而監(jiān)視和使用網(wǎng)絡(luò)安全設(shè)備,比如IDS或者IPS。在這種情況下,阻塞點(diǎn)方法可以非常方便地進(jìn)行監(jiān)測和預(yù)防,你能夠監(jiān)視利用FTP服務(wù)(比如IDS)相關(guān)漏洞而發(fā)起的攻擊,或者主動攔截利用IPS對FTP服務(wù)的攻擊等。
下一步,我們需要側(cè)重于讓管理FTP的服務(wù)器本身變得更為強(qiáng)大(盡管我在上文中提到首先要進(jìn)行網(wǎng)絡(luò)設(shè)計(jì),但是我不建議在所有的安全強(qiáng)化步驟完成之后才對服務(wù)器進(jìn)行處理)。我建議大家不僅僅要考慮應(yīng)用最新補(bǔ)丁,按照因特網(wǎng)安全中心(CIS)的標(biāo)準(zhǔn)來設(shè)置服務(wù)器,還要考慮更多的東西。當(dāng)受到攻擊的時(shí)候,FTP服務(wù)往往會引起嚴(yán)重的附加損失。這是因?yàn)?在許多情況下,FTP服務(wù)是具有高優(yōu)先級的過程(比如:作為根用戶),如果被攻擊者成功利用的話,攻擊者會得到系統(tǒng)級的權(quán)限。
在服務(wù)器上隔離FTP服務(wù),可以很大程度地防止利用這種漏洞攻擊。這與基于網(wǎng)絡(luò)的隔離有所不同,這種隔離是通過處理服務(wù)的硬件實(shí)現(xiàn)的。FTP隔離可以通過在虛擬環(huán)境(開源Xen系統(tǒng)管理程序)中運(yùn)行FTP服務(wù)或者改變根目錄(chroot)來實(shí)現(xiàn)。在改變根目錄這種方法中,管理員能夠在處理過程中改變磁盤根目錄,這基本上限制了超出自身限制范圍的操作以及訪問文件系統(tǒng)敏感區(qū)域的能力。改變根目錄可以用幾種方法實(shí)現(xiàn),有些例子用“/etc/FTPchroot”為特定用戶確定一個(gè)chroot環(huán)境,有些則使用“FTP-chroot”登錄。這兩種方法都建議FTP后臺程序在ls支持下重新編譯,所以沒有特殊的依賴關(guān)系。
目前,有一種易于安全維護(hù)的FTP替代品,叫做Secure Shell(SSH)。與FTP不一樣,SSH以加密的形式發(fā)送所有內(nèi)容。SSH使用加密的傳輸服務(wù),并且把一個(gè)文件傳輸放在最高層,避免了FTP服務(wù)普遍的安全缺陷和復(fù)雜性。為了簡單起見,我認(rèn)為SCP(主要是文件傳輸)、SFTP(運(yùn)行在SSH上面的、全新的文件傳輸協(xié)議)和以SSH為通道的FTP會話,每種服務(wù)都使用了SSH,它們都可以作為FTP可以接受的、更加安全的替代品。在這個(gè)分類中比較奇怪的是FTPS(SSL上的FTP)。說實(shí)話,我認(rèn)為FTPS作為FTP替代品不可行,因?yàn)樗c防火墻不兼容。使用更加安全的協(xié)議需要進(jìn)行服務(wù)隔離,并且要采取適當(dāng)?shù)姆?wù)器安全強(qiáng)化措施。
關(guān)鍵詞:TCP;文件傳輸;線程池;OpenSSL
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:1007-9599 (2011) 06-0000-01
TCP-based Secure File Transmission System Design and Research
Liu Xianqiang,Lin Hui,Huang Chengmao
(School of Optoelectronic Information,University of Electronic Science&Technology,Chengdu610054,China)
Abstract:This article describes the file transmission system processes and design,base on TCP protocol in Linux.In the transmission process,the server uses the thread pool technology to achieve the multi-threaded design,and using openSSL library to ensure security of the data encryption during file tarnsmission.
Keywords:TCP;File Transmission;Thread Pool;OpenSSL
文件傳輸系統(tǒng)是目前一項(xiàng)非常廣泛的應(yīng)用。在網(wǎng)絡(luò)如此發(fā)達(dá)的今天,基本上隨處都會用到文件的傳輸功能。本系統(tǒng)是基于Linux平臺TCP協(xié)議的安全文件傳輸系統(tǒng)。通過TCP協(xié)議對文件數(shù)據(jù)進(jìn)行加密的傳輸。在傳輸過程中,使用了openSSL庫實(shí)現(xiàn)了對文件數(shù)據(jù)的2048位的非對稱加密,以保證傳輸過程中文件數(shù)據(jù)的安全。而系統(tǒng)的大框架使用了線程池實(shí)現(xiàn)多線程的技術(shù),以實(shí)現(xiàn)多個(gè)客戶端同時(shí)進(jìn)行文件傳輸?shù)墓δ?。這種設(shè)計(jì)非常適合多用戶段任務(wù)的系統(tǒng)設(shè)計(jì)。
一、TCP傳輸協(xié)議
TCP(Transmission Control Protocol,TCP)是重要的傳輸層協(xié)議,它是是一種面向連接的,可靠的,基于字節(jié)流的傳輸層通信協(xié)議。在簡化的計(jì)算機(jī)網(wǎng)絡(luò)OSI模型中,他完成傳輸層所指定的功能。它能提供端口編號的譯碼,以識別主機(jī)的應(yīng)用程序,而且完成數(shù)據(jù)的可靠傳輸。TCP協(xié)議具有嚴(yán)格的內(nèi)裝差錯檢驗(yàn)算法確保數(shù)據(jù)的完整性。TCP是面向字節(jié)的順序協(xié)議,這意味著包內(nèi)的每個(gè)字節(jié)被分配一個(gè)順序編號,并分配給每包一個(gè)順序編號。
二、利用線程池實(shí)現(xiàn)多線程技術(shù)
程序中,我們用到了多線程的設(shè)計(jì)。如果單一的進(jìn)行多線程設(shè)計(jì),那么當(dāng)有任務(wù)來時(shí),要創(chuàng)建一個(gè)線程,當(dāng)任務(wù)結(jié)束的時(shí)候,要銷毀線程,這樣會耗費(fèi)大量的系統(tǒng)資源。我們考慮到文件傳輸是短任務(wù),多用戶的情況,該系統(tǒng)可以使用線程池來進(jìn)行多線程的設(shè)計(jì),這樣會節(jié)約很多的系統(tǒng)資源。
系統(tǒng)首先創(chuàng)建一個(gè)線程池,讓線程池中所有的線程都處于等待的狀態(tài)。在系統(tǒng)有任務(wù)請求時(shí),處理過程中將任務(wù)添加到隊(duì)列,然后在調(diào)用一個(gè)在線程池中處于空閑等待的線程對任務(wù)進(jìn)行處理。在任務(wù)處理完后,該線程又回到等待狀態(tài),等待下一次任務(wù)的到來,這樣就不用重復(fù)的創(chuàng)建和銷毀線程,節(jié)約了很大的系統(tǒng)資源和時(shí)間資源。如果線程池中所有的線程都處于忙的狀態(tài),那么在有任務(wù)進(jìn)來,我就將其添加到等待隊(duì)列中去,以等待有空閑線程時(shí),在對該任務(wù)進(jìn)行處理。
線程池中所有的線程都是資源共享的,我們在設(shè)計(jì)時(shí)在對公共資源進(jìn)行訪問時(shí),必須進(jìn)行保護(hù)。這里我們通過互斥鎖和條件變量的機(jī)制來保護(hù)系統(tǒng)中被訪問的公共資源,這樣能夠防止多個(gè)線程同時(shí)訪問一個(gè)資源是出現(xiàn)的沖突的情況。
三、在文件的傳輸過程中對文件數(shù)據(jù)加密與解密
SSL就是為了加密數(shù)據(jù)而產(chǎn)生的協(xié)議,它是位于應(yīng)用層和TCP/IP之間的一層,數(shù)據(jù)經(jīng)過它流出的時(shí)候被加密,再往TCP/IP送,而數(shù)據(jù)從TCP/IP流入之后先進(jìn)入它這一層被解密,同時(shí)它也能夠驗(yàn)證網(wǎng)絡(luò)連接兩端的身份。它的主要功能就是兩個(gè):1.解密在網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)包,同時(shí)保護(hù)這些數(shù)據(jù)不被修改,和偽造。2.認(rèn)證網(wǎng)絡(luò)對話中雙方的身份。在對文件數(shù)據(jù)進(jìn)行加密傳輸?shù)臅r(shí)候,我們需要生成數(shù)字證書(cacert.pem)和密鑰(privkey.pem),這是我們在加解密過程中要用到得。這里我們采用2048位的非對稱加密。OpenSSL庫中提供的生成2048位非對稱加密的密鑰和證書的命令非別為:
openssl genrsa -out privkey.pem 2048
openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095
四、整個(gè)系統(tǒng)的設(shè)計(jì)框架流程簡述
五、結(jié)語
本文中提出的用線程池來實(shí)現(xiàn)多線程的算法非常適合文件傳輸這類多用戶短任務(wù)設(shè)計(jì)。用OpenSSL對傳輸過程中的數(shù)據(jù)加密是非常安全的,目前是使用最多的對數(shù)據(jù)加密的工具。該系統(tǒng)的設(shè)計(jì)還有很大的提升空間,我們可以對傳輸?shù)奈募M(jìn)行完整性驗(yàn)證,這可以利用目前使用廣泛的hash MD5算法來實(shí)現(xiàn),還有斷點(diǎn)續(xù)傳功能也可以在很大程度上完善該系統(tǒng)的設(shè)計(jì),這樣可以使文件傳輸系統(tǒng)得到進(jìn)一步的擴(kuò)展。
參考文獻(xiàn):
[1]尤晉元,張亞英,戚正偉.UNIX環(huán)境高級編程(第2版)[M].北京:人民郵電出版社,2006
[2]謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)[M].大連:大連理工大學(xué)出版社,2004:79-80
[3]Al Kelley Ira Pohl.C語言解析教程(原書第4版)[M].Addision-Wesley,2002