欢迎访问爱发表,线上期刊服务咨询

文件传输协议8篇

时间:2022-06-20 12:28:10

绪论:在寻找写作灵感吗?爱发表网为您精选了8篇文件传输协议,愿这些内容能够启迪您的思维,激发您的创作热情,欢迎您的阅读与分享!

文件传输协议

篇1

[关键词]传统文化;艺术;和谐社会;作用

一、传统文化艺术及其精神动力

中国的传统文化艺术,博大而丰富多彩,成为中华民族文化得以发展的源泉。传统文化艺术的产生有着深刻的民族习俗、政治、经济、宗教乃至审美的历史渊源,是中华民族文化千百年来沉淀的结果,是广大劳动人民集体的智慧和创造,它与劳动人民的生活、密不可分。从“艺术”这一词的演变,可以看出与劳动生产的关系密不可分。“艺”字原为“薮”,在我国甲骨文中,它是人类在种植的形象,象征着劳动技术。我国学者邓福星先生写道:“人的起源不仅为艺术的发生提供了最基本的条件,而且使之成为必然。在一定意义上,我们可以把从猿到人的转变看成是上述三个主要体系的进化――人类各部分器官和机体的日趋完善,心理机能的发展和人类社会关系的形成,这些都是艺术发生的基本条件。一切精美的传统文化艺术品无不出自人类灵巧的双手;动听的歌声需要人的歌喉才能唱出,优美的舞姿也要靠人的肢体来表现。一定历史条件下的社会关系既为艺术的发展提供了产生和发展的条件,也就从根本上规定、制约着艺术作品的特征和基调。……”“科学充实提高了我们的知识生活,而艺术也同样充实提高了我们的感情生活”,唤醒了人类求美精神意识。如原始民族喜欢红色一类的强烈色调,山顶洞人在他们同伴的尸体旁撒上矿物质的红粉,山顶洞人装饰品的穿孔也几乎都是红色,因为他们的穿带都用赤铁矿染过,这是他们最初的求美精神意识的产生。也许红色引起的感情愉悦中积淀了人的想象和理解,或许原始人从红色想到了与他们生命攸关的火,或许想到了温暖的太阳,总之,这一切都促使了人类的求美精神意识的发展。在人类社会历史的发展中,传统文化艺术活动促进了人类精神意识的产生和发展。而传统文化艺术品则是物化了的人的精神,其产生离不开人的精神活动。

首先,传统文化艺术是以人的社会心理需要而产生的。人们在生产劳动中,有了社会交往等强烈的心理需要,为满足这种需要,就产生了传统的文化艺术。

其次,传统文化艺术离不开人的情绪、情感与想象。由于人的情绪、情感等的推动,加上艺术丰富的想象,人们便把旧的表象进行加工改造,而产生了新的艺术形象。一切传统文化艺术的出现都是思维的结果,离不开入的精神活动,都是人精神活动的产物,依赖于人的精神活动,一般是意识与潜意识活动的相互依存、相互作用、相互调节及相互转化的结果。

从精神层次来说,传统文化艺术作品的完成依赖于意识――潜意识――意识,这一点我们从原始初民的实际生活中可以看出。他们通过对梦的表现与交流则导致了人类最早艺术的实现。如原始初民们几乎人人怕死,然而在梦中他们又“见”到死去的家人或熟人,于是醒后就造出一个“天堂”与“地狱”的世界,以及“图滕”艺术等,而这一认识的途径是在梦中,绝大多数是形象的梦,是潜意识的产物,梦态生活及对梦的分析导致了艺术的产生。尤其现代艺术创作则更与人的思维等精神活动不可分,一切创作都是精神活动的结果。由此可见,传统文化艺术的历史源远流长,对人类生活的涵盖面广泛。在世界文化历史的进程当中,以中国为代表的传统文化艺术,表现了中国人追求“天人合一”的思想以及和谐文化的精神意蕴。

二、传统文化艺术在构建和谐社会中的作用

在艺术活动中,传统文化艺术表达了人们对社会、对美好生活的共同祝愿,促进了群体间以及人们与先祖、与自然的情感交流,巩固了民间群体的稳定和发展。在艺术活动中,传统文化艺术终担任着重要的角色。传统文化艺术包纳了百姓生活的方方面面,涵盖了宗教、伦理、道德、价值等全部精神文化和生产劳作等物质文化。传统文化艺术是依赖民众生活而发生和存在的,依靠群体的齐心协力来维系生存和发展,使民众文化生活更为丰富和频繁,同时,也使传统文化艺术更为广泛和普及。

人类有史以来在不同时期、不同地域创造的各种传统文化艺术,并不存在先进和落后,而只有文化观念的差异及由此而形成的美学观念的区别。中国传统美学强调的是主客体的统一的整体意识和求全美满的美学观念,认为万事万物都是一个和谐的整体都遵循着一个本质的规律。因而中国古代的艺术家始终致力于以整体为美的创作。将天、地、人、艺术、道德看作是一个生机勃勃的有机整体,以人的感情赋予物的形式,借物抒情是一种善和美的行为和意志。在传统文化艺术的题材和构成形式上都表露出那种善始善终的处世哲学和精神力量。

篇2

【关键词】 中国传统吉祥纹样 民间艺术 山西绣花鞋垫 传承 保护

随着经济与科技的飞速发展,西方文化思潮的传入,多年来现代物质文化对中国社会各个方面的影响,社会的进步导致了一些传统的手工艺技术停止发展,甚至几近消失。然而中国要不断发展壮大,其根本还是要发扬和壮大自己的东西、自己的文化,让世界认识中国了解中国。现在越来越多的人开始关注我们祖先留下来的经典之作,开始关注中国传统的文脉。注重于中国传统吉祥纹样的继承、发扬、保护、研究,并与现代设计相结合,出现了很多具有中国特色的现代设计创意。本文通过对山西民间绣花鞋垫艺术表现的研究,来探讨了中国吉祥纹样在民间艺术生中的应用。让跟多的人认识中国传统纹样的艺术魅力,以及其所包含的文化价值、所体现的中华民族千百年多彩灿烂的生命力与创造力。首先让我们了解一下中国传统吉祥纹样。

一、中国传统吉祥纹样的发展与表现

中国传统吉祥纹样的雏形可以追溯到原古时代图腾崇拜时期,吉祥纹样的产生与人们对自然崇拜的信仰是密不可分的,人类对自然充满了敬畏、对生活充满了热情,作为吉事的祭祀和卜笠便是原古人们对吉凶的最初认识,表现在人们在甲骨上记录了吉、大吉之类的卜辞。李砚祖先生这样认为“从纹的形式而言,吉祥纹样的起源与原古先民观物取像的观察方式以及在卜笠活动中察看纹像的认识有直接关系”。到新石器时期当时的器物上如彩陶、石雕、玉刻上出现了各种形状的怪兽,如龙、凤、龟、鸟等,以及回纹、云纹等。到商、周、春秋战国时间,真正意义的吉祥纹样出现在了青铜器与漆器中,例如我们熟悉的饕餮纹、夔龙纹,象纹等,这些纹饰及承载纹饰的器物象征了拥有者地位的尊贵,象征着拥有权利。到秦汉时期,佛教传入中土,佛教、道教、儒学思想的融合,再加之民间神话传说的积淀,极大程度的丰富了吉祥纹样的题材。例如儒家严格具有等级的君臣、父子、兄弟、夫妻、朋友五种伦理关系,在传统纹样中用凤凰、白鹤、白头、鸳鸯、燕子五中瑞鸟组合来表现,称之为“五翎”(指“五伦”)。并且这些纹样被广泛的应用到了当时的建筑、陶瓷、刺绣、绘画等艺术表现中,伴随工艺水品的发展,各种表现手法相应而生。到隋唐元宋时期,吉祥纹样日渐完善,并开始有了新的发展,到明清时期,吉祥纹样走向了成熟。图案表达形式更加丰富多彩,并产生了图案表现技法与规范,使吉祥纹样更趋于完美,对整个社会文化影响深远,不仅从图形上有了进一步发展,同时也有了一些能代表吉祥的风俗与语言,来赞誉人们向往的吉祥社会。

吉祥图案发展到目前,种类繁多,我们从他的表现内容简单给他做一个分类:1)借助于谐音。也就是人们常说的“口彩”。汉字中有许多读音相同,字义不一的现象。借助于这点,就产生了这样一类型吉祥纹样。例如 “喜上眉梢”,它的表现则是一只喜鹊落在梅枝上的景象,暗语有喜事。再例如在今天很多地方结婚都保持的一个祝福民俗“早生贵子”,即枣、花生、桂圆、莲子。2)对动植物属性的借鉴。借鉴植物和动物的一些自然属性来借物喻志。例如孔子有言“岁寒,知松柏之后凋也”便是“岁寒三友”松、竹、梅的人格原型。再如被称之为“四君子”的梅、兰、竹、菊,则借鉴的是梅凌岁寒而独开之傲而不俗,兰空谷幽香、孤芳自赏之幽而不病,竹潇洒挺拔、清丽俊逸之轻而不佻,菊凌霜自行、不趋炎势之丽而不娇。对动物的属性的借鉴在传统纹样中也是数不胜数的,例如“喜从天降”则是被称为亲客的蜘蛛,从蛛网上沿着一根蛛丝往下滑。3)吉祥文字的变形组合应用。最具代表的莫过于百寿图了。福、禄、寿、喜、富贵、吉祥、招财进宝这些大多数在日常生活里我们都能见到。

二、绣花鞋垫中的吉祥纹样特征

绣花鞋垫是山西民间文化艺术的一个重要表现,十五六岁女子出嫁之前,都会为自己、为爱人绣制鞋垫,作为自己必不可少的嫁妆。他是女子像男子表达爱情的一种信物,也是女子对生活、对婚姻、对爱情充满向往的一种寄托。民间手绣花工鞋垫的制作工艺大概需要5-7天完成,需要经过打底(制坯子)、裁剪、粘表层、包边、画图、绣制、表内衬,熨烫几道工序。依据所送对象的不同,绣花鞋垫有着不同的内容与题材,图案丰富、主题多样、含义深刻,寄托着各种各样的祝福。

传统绣花鞋垫图案题材的选择寓意深远,在不同的环境下使用的鞋垫选材不尽相同。用于婚嫁的绣花鞋垫,多为未出嫁的女子为自己为爱人绣制的嫁妆,是爱情的信物。它的表现多用动植物来图案来创作,采用了谐音寓意的方式。题材多采用传统吉祥纹样中的“连生贵子”、“榴开百子”、“百年和合”等,大多采用了谐音的表现方式,“榴开百子”石榴籽多,则“籽”与“子”相关,寓意多生男孩,“百年和合”百多为百合花,年指万年青,和多用荷花代替,合为盒子,通过这样双关的手法来祝愿新婚夫妇百年好合。动物类型题材有“鸳鸯戏水”、“凤戏牡丹”、“喜鹊登梅”、“龙凤呈祥”等等。如果鞋垫是送给长辈、朋友的,那么他的题材也会改变,例如“寿比南山”、“松鹤延年”、“五福捧寿”等。传统绣花鞋垫除了动植物题材以外还会直接用文字来表达吉祥的祝福,如“一生平安”、“事事顺心”、“百寿图”、“百福图”、“心想事成”、“四季平安”以及象征繁衍不息的“卐”字等。小小一双鞋垫,通过不同的组合图案传达着浓浓的祝福与情义。

绣花鞋垫题材的多样性,决定了其构图方法的丰富性。民间手工制绣花鞋垫的图案一般都是多种传统吉祥纹样的重组构成。制作者以心造型,以理造型,每个鞋垫图样都有着自身的语言表述。表现自然、淳朴。民间绣花鞋垫最大的构图特征便是“满”。或许这边是民间淳朴感情的体现,绣制者对生活、对新人、对爱情、对长辈充满了浓厚的爱意,满腔的祝福,所以绣制鞋垫的时候会把所有的能表达的祝福一股脑绘制上去。这或许也正是绣花鞋垫的魅力所在。最具代表性的莫过于被称之为“全鞋垫”的婚礼用鞋垫。全鞋垫中出现了很多动植物为代表的吉祥纹样,分别有:代表财富的金蝉,代表富贵的牡丹,繁衍不息用于装饰的“卐”字,以及兔子、葱、葫芦、佛手、剪刀、鱼儿、如意、扇子,莲花、蝙蝠、喜珠等,组合多样、表现丰富、色彩质朴,深的大众喜欢。全鞋垫上图案的意义有这样一首民谣可以解释:

蛤蟆搬金砖,辈辈都当官;剪子铰佛手,两口好相守;扇子扇牡丹,两口好喜欢;大鞋套小鞋,葫芦倒宝来;兔兔吃葱葱,来年抱孙孙;时时如节庆,岁岁都有余;事事如意牡丹根,莲花佛手贵长生。

除了“满”以外,绣花鞋垫构图还遵循了“对称”的原则,意指成双成对。绣花鞋垫的对称表现分为两种形式,一种是图案的绝对对称。左右两只鞋垫形成图案上的对称,另一种则是意识形态上的对称。例如: “金童”对“玉女”,“龙”对“凤”,“狮子”对“老虎”,“喜鹊”对“鸳鸯”等。通过这样的组合来表达丰富的内涵。例如“喜鹊”对“鸳鸯”,则表示双喜临门,夫妻恩爱。

第三个构图特征我们给它归纳为“三分法”,即把鞋垫按照脚形分开构图,这三部分是脚掌、脚心、脚跟。听起来很有意思,但也正是民间艺术质朴可爱的一种表现。例如,脚掌有佛手、石榴、桃子,寓指福寿、多子又安康;脚心两尾顺鱼,寓意顺顺利利、如鱼得水;脚跟金蝉抱砖,寓指必定做官。再如,脚掌有狮虎,寓指虎虎生威,祛病镇邪。脚心书福、囍,寓指福喜临门;脚跟莲花,寓指步步生莲,仕途人生顺风顺水等。

三、保护、传承和发扬

手工绣花鞋垫发展至今,近年来多被机器绣制所代替,大量的刺绣产业化充斥着市场,但是也出现了很多乱象。批量生产,加之设计上的缺乏,绣花鞋垫中的纹样被简化、使民间绣花鞋垫的表现单一,呆板缺失了那种本身的文化内涵,以及所要表现的祝福寓意。这就要求在市场与技术发展的同时,我们需要培养大批的创意、设计、研发新产品的人才。在充分了解认识传统图案表现手法、表达方式,以及绣花鞋垫所传达的民俗真谛后,对制品进行再设计。注重绣品的内容表现丰富,题材寓意贴切,内涵延伸广,顺应绣花鞋垫本身绣制特征,来促进产业的发展。我们需要传承的不仅仅是一些图案表现,而是与之共存的传统文化与民俗精神。

参考文献

[1] 季宝玲.鲁南刺绣鞋垫[J].科技信致富向导,2000.03.

[2] 高琪.浅析陕北绣花鞋垫的生命内涵[J].装饰,2008.01.

[3] 钟敬文.民俗学概论[M].上海文艺出版社,1998.

篇3

关键词:TCP/IP协议 文件传输协议FTP Windows Sockets 套接口

中图分类号:TP319 文献标识码:A 文章编号:1007-9416(2013)06-0105-01

1 引言

TCP/IP协议栈应用层是超越网络通信机制限制的一层。在TCP/IP协议栈中有三大基本协议之一文件传输协议FTP使Internet上任何异构型主机或操作系统之间都能实现相互间的文件传输。它有自己一套独立的命令(或称子命令),独立于各种主机本身的操作系统,是任何用户都可以使用的网络通用命令。研究和开发在Windows下的网络编程技术具有普遍的应用价值。[1]

2 Windows Sockets和FTP应用协议

2.1 Windows Sockets

TCP/IP协议核心作用是对物理网络(物理层和数据链路层)在传输层/网络层建立统一虚拟“逻辑网络”,屏蔽所有物理网络硬件差异,以实现普遍的“连通性”。[2]TCP/IP应用中,最普遍使用的是Windows Sockets API编程接口。应用程序调用Windows Sockets的API实现相互之间的通讯。Windows Sockets又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。任何能够与Windows Sockets兼容实现协同工作的应用程序就被认为是具有Windows Sockets接口。

2.2 基于TCP/IP的FTP应用协议

文件传输协议(FTP)提供文件传输服务,以使在客户和服务器之间拷贝文件,并提供附加的服务以方便文件传输过程。

FTP是基于字符的客户接口,同时使用两个不同TCP连接。“分配号”RFC(评议征求)为FTP分配两个公认端口号。[3]当FTP服务器模块装入TCP/IP系统时,程序打开端口21,使服务器在此监听。FTP客户呼叫服务器时,它和端口21建立一个在整个FTP任务过程中都活跃存在的连接。通过该连接,客户被服务器认证,发控制以后所有活动的命令。当客户发命令给服务器请求文件传输时(列目录被认为是一个ASCII文件传输),使用端口号20的第二个连接被打开,当传输结束时此连接被关闭。FTP客户和服务器在控制连接上的通信是通过用户协议解释器(客户程序中)和服务器协议解释器间交换命令进行,FTP客户发给服务器的每一个命令必须有至少一个来自服务器的应答。应答由一个三个数字的编码和一个文本字符串组成。文本字符串显示给用户看,编码由客户程序解释以决定下一步动作。

2.3 套接口

套接口存在于通讯域中,是通讯的基石,一个正在被使用的套接口都有它的类型和与其相关的进程。套接口通常和同一个域中的套接换数据(数据交换也可能穿越域的界限,但这时一定要执行某种解释程序)。用户目前可以使用两种套接口,即流套接口和数据报套接口。流套接口提供了双向的,有序的,无重复并且无记录边界的数据流服务。数据报套接口支持双向的数据流,但并不保证是可靠,有序,无重复的。[4]

3 面向连接的FTP编程应用

4 结语

本文主要论述了使用Windows Sockets开发FTP应用的研究与实现。FTP是TCP/IP上一个非常典型应用。采用流套接口,实现了接收不同长度数据流。并且有较完善的错误处理机制,能给出网络错误的消息描述。随着Internet的不断发展和Windows平台的普及,基于Winsock接口这样的网络编程也会显得越发重要。

参考文献

[1]胡道元.计算机局域网[M].清华大学出版社,1990.9.

[2][美]Craig Zacker著,TCP/IP网络管理[M].中国水利水电出版社,1998.8.

篇4

MSN最新安全版中关村在线免费下载页面:

.cn/detail/11/109664.shtml

QQ和MSN应该是我们最常用的IM软件,但是相信不少人都注意到,两个软件在传输文件的时候,MSN要比QQ慢很多,当然也不是绝对的每次传输MSN都慢,然而这绝对是大多数情况。这到底是为什么呢?让我们来一看究竟。

就本质上而言,QQ是一个基于TCP/UDP协议的通讯软件,而MSN是基于TCP协议的通讯软件,但对博大精深的网络通讯协议的理解和应用,QQ和MSN却有着彼此不同的理念。

那么QQ是如何通讯的呢?在TCP/IP协议中,唯一标识一个应用进程的是socket,它通过网络层的IP地址和传输层的端口号来实现,对于同一个IP地址的内部网络,通过不同的端口号来标识不同的QQ进程;当你登录QQ服务器的时候,服务器会保留你的保留IP地址和端口号信息,并在你的好友的QQ进程中进行列表显示,然后两个进程就可以通信了。

通常,发送文件的计算机首先要通过消息服务器将其IP地址发送给接收计算机,当接收计算机同意接收的确认消息反馈到消息服务器后,消息服务器将据此设置好文件传输对话。随即,发送计算机与接收计算机就会在确定好的端口范围内,建立起TCP或UDP连接开始文件的检索与传输。

在默认状态下,QQ优先采用了UDP(User Data Protocol,用户数据报协议)协议传送数据,而对可靠性要求高的数据通讯系统往往使用TCP协议传输数据。与TCP协议不同,UDP协议并不提供数据传送的验证机制――在整个文件传输过程中如果出现数据报的丢失,协议本身并不能作出任何的检测或提示。因此,通常人们把UDP协议称为不可靠的传输协议。

UDP协议适用于无需应答、要求时效的软件使用,这样的设计正好与QQ追求的目标相符,所以QQ优先使用了此协议进行一切功能应用。但是,由于UDP协议具有不可靠性,常会因种种原因导致消息或数据的发送失败(很多时候会发现发送文件给对方接收时,对方根本收不到要求接收文件的消息。或是发送聊天消息时,对方根本没有收到过消息)。显然,UDP协议由于排除了信息可靠传递机制,将安全和排序等功能移交给上层应用来完成,极大降低了执行时间,使速度得到了保证。QQ在数据传输上更注重实际性能,为了获得更好的使用效果,往往可以牺牲一定的可靠性。因此,使用QQ来传输数据,在很多时候就成了一个“不错”的选择。

一般内网传输首选QQ,速度最快。QQ的文件传输是直接个人对个人,采用P2P的传输方式,具有不需中转的优势,而且服务器都在国内,传输性能要高于外国IM软件。

看过了QQ,我们再来看看MSN的传输原理。MSN全称MSN Messenger,是微软公司推出的即时通讯软件。MSN Messenger凭借自身的优秀性能和简易操作,已跻身为目前世界上使用最为广泛的IM软件(即时通讯软件),在国内也有着众多的用户,是唯一一款可以和QQ抗衡的IM软件。如今MSN除了互联网通信外还广泛用于局域网,如学校、公司、政府机构等内部人员交流。

就MSN所用的TCP协议来说,它已经包含了数据传递验证机制。而网络传输协议中的验证机制往往是接收方收到发送方信息后自动回复一个确认信息,因此有时候在网络出现延迟或线端拥塞时,即使MSN显示连接正常也会出现“无法将XXXX信息发送给所有接收者”。

篇5

中国航空工业西安航空计算技术研究所 陕西西安 710119

[摘要]随着综合化航电的深入发展,分区操作系统下文件传输服务已成为新的应用需求。本文从VxworksAE653操作系统的体系架构出发,结合简单文件传输协议(Trivial File Transfer Protocol,TFTP)的工作模式,引入选项协商机制对协议进行了扩展,给出了在分区机制操作系统VxworksAE653下TFTP的实现方法。

[

关键词 ]综合化航电;分区操作系统;简单文件传输协议;选项协商

引言

随着航电系统综合化的不断发展、新一代航电系统中对于数据传输要求的不断提高,航电系统中传输的不仅仅是命令和状态数据,而且还有大量的中间结果、可加载的应用软件等,文件传输服务在分区机制操作系统下广泛应用已成为航电系统新的需求。在分区操作系统下实现文传传输服务,将为综合化航电系统文件传输应用的开发提供有力的支持。

1.VxwoksAE653操作系统简介

VxworksAE653操作系统美国WindRiver公司依据ARINC653标准推出的具备分区机制的高安全操作系统。操作系统分为上下两层,下层操作系统称之为核心操作系统,上层操作系统称之为分区操作系统。核心操作系统提供分区机制,并且提供最基本的分区相关服务,如根据主时间框架内分配给分区的时间窗口调度分区;利用处理器的MMU对分区的空间进行保护。分区操作系统主要负责与分区无关的分区内进程的管理,如分区内的进程管理、进程调度、进程间通信、分区内端口的管理等。在该结构下,分区机制的实现依赖于核心操作系统及其支撑硬件,与分区无关的进程管理依赖于每个分区自己的分区操作系统,本文中TFTP软件是基于VxworksAE653操作系统设计和实现的。

2.TFTP简介

TFTP是一种基于UDP的用来传输文件的简单文件传输协议,它是基于客户/服务器模式,主要功能是从远程服务器上读取文件或者将文件传输给远程服务器。

2.1 TFTP数据报文格式

TFTP数据以定长512字节传输。一个TFTP包头含以下两个部分: TFTP操作码和数据。图1为5种TFTP报文格式。

2.2 TFTP的工作模式

TFTP的工作模式为客户/服务器(C/S)模式。创建连接后,客户端和服务器端通过协议包进行信息交互。下面是一个客户端向服务器端发送文件的例子,(1)客户端通过发送端口向服务器端的接收端口上发送WRQ请求。(2)服务器端的接收端口接收到请求后,通过发送端口向客户端发出ACK,块号为0。(3)客户端接收到块号为0的ACK包后,连接建立。(4)客户端依次向服务器端发送DATA包,DATA包序列从1开始,同时客户端检查ACK包序列,如ACK包检查有误,中止传输。如ACK包序列正确,继续传输直至传输结束。

3.TFTP在分区机制操作系统下的设计

TFTP的客户端和服务器段分别处于VxworksAE653操作系统的应用分区中,应用分区中支持满足ARINC653标准的接口。TFTP的任何一个传输服务都以客户端申请写文件或者读文件请求发起连接,如果服务器同意连接请求,则连接成功。文件中的数据以定长的字节传输,每个数据包都包含一个数据块,在发送一个数据包之前,前一个数据必须得到确认。在VxworksAE653操作系统下,TFTP的设计需要考虑通信和文件系统配置、超时重传机制、协议包的合法性检查、协议包序列号验证以及协议的可扩展性问题。

3.1 通信配置

VxworksAE653操作系统下,核心操作系统提供了一组设备管理接口,系统集成人员通过调用该接口可向核心操作系统注册网络设备驱动。本文中的TFTP软件所使用的网络为以太网UDP驱动。通过将以太网UDP驱动注册到核心操作系统可完成网络驱动配置。分区间通信为端口-通道-虚端口机制,分区中通过端口进行数据收发,虚端口可直接访问下层设备进行数据收发,端口和虚端口之间通过通道连接。在VxworksAE653操作系统的配置蓝图中,分别为TFTP客户端和服务器端配置通信端口,使得TFTP客户端和服务器端可通过端口进行数据通信。

3.2 文件系统配置

TFTP软件通过以文件的形式对数据进行管理。VxworksAE653操作系统提供了系统调用机制,分区可通过系统调用的形式使用核心操作系统的服务,通过在核心操作系统向分区扩展文件系统服务接口,分区中运行的TFTP软件可以通过系统调用的方式访问文件系统服务。

3.3 超时重传

TFTP协议通过超时和重传机制在协议层保证数据传输的可靠性。TFTP超时和重传策略为:TFTP发送一个数据包,接收方收到此数据包后,必须对发送方做出应答。发送方在设定的超时时间内如果没有收到应答,将重新发送此数据包,如果在限定的发送次数内仍然没有收到应答包,则此次文件传输失败。

3.4 协议包序号检查

在数据传输过程中,如果数据的源序列号和期望的序列号不同,这个包则被认为是一个无效的包而丢弃。设想发送方发出一个数据包,这个数据包由于某种原因在网络设备中被复制成两个包,接收方将先后接受两个包。接收方在接收到第一个包后,期望的数据序列号会自动加1,当第二个包到达后,数据序列号和期望序列号不同,所以第一个包被丢弃,而不会导致一个数据包接收两次。TFTP协议包需要检查序号的数据包为DATA包和ACK包。

3.5 异常处理

TFTP软件在进行文件传输过程中,在客户端/服务器端可能会出现一些异常情况(如文件未找到、访问越界、非法的TFTP操作等),当出现异常情况后,异常的发现方立即组织一个ERROR,发给对方,同时退出连接。ERROR包的接收方收到消息后,退出连接。

3.6 协议扩展

RFC1350标准推荐的协议数据包大小为512字节,超时时间为2S,重传次数为3次。TFTP协议在设计中在RFC1350标准的基础上参考RFC2347标准加入了选项协商机制。选项协商机制是在原有的WRQ和RRQ包中扩展了数据包长度、重传次数和超时时间协商选项,引入了OACK包回应选项协商。文件传输的发起方在发送WRQ或RRQ包的时候,将建议的数据报长度、重传次数、超时时间写入到WRQ或RRQ包中,接收收方接收并解析WRQ或RRQ包后,如果支持选项协商中的一项或者多项,发送OACK包进行回应。如果接收方不支持选项协商机制,发送ACK包进行回应,传输双方按照RFC1350标准推荐的协议设置工作。

4.TFTP的软件实现

TFTP软件的客户端软件和服务器端软件分别驻留的不同硬件模块上的VxworksAE653操作系统分区中,通过应用分区中的应用端口进行数据通信,通过文件系统对文件数据进行存储和访问。

4.1 TFTP客户端的实现

TFTP的客户端软件首先在WRQ和RRQ包中设置选项协商参数,包括TFTP数据包大小、重传次数和超时时间,然后将读/写命令请求发送出去,接收服务端的回应信息,若连接失败,退出本次服务;如果和服务器端连接成功,在服务器端的回应信息中判定服务器端是否支持选项协商机制,如果服务器端不支持选项协商机制,则恢复缺省协议参数后开始上传/下载文件数据传输。如果服务器端支持选项协商机制,则直接开始上传/下载文件数据传输。上传文件时,从本地文件中读出协议参数规定长度的数据,从发送端口将数据发送到服务器的接收端口上,同时在接收端口上等待来自服务器端的应答包。如果在协议参数设定的时间内接收端口上接收到了应答包,且应答包包序列正确,说明服务器端口已经确认数据包已经收到,接下来进行下一包数据的传送,如果在设定的时间内接收端口上没有收到应答信息,则客户端认为服务器端没有接收到数据包,继续对此数据进行重传。若按照协议参数设定的次数连续重传后仍然没有收到应答包,则认为此次上传任务失败。客户端将退出连接。下载文件时,客户端程序在在协议限定的时间内(超时时间和重传次数相乘)接收数据,如果没有收到数据,则退出,如果能收到数据,则将收到的数据写入文件,同时向远程服务器发送回应消息。重复此过程,直至接收完所有的文件数据。

4.2 TFTP服务端的实现

TFTP服务端工作流程如下:1)服务器端接收客户端发送的命令。2)服务器端解析客户端命令请求。解析客户端WRQ/RRQ协议包,若客户端发送的WRQ/RRQ具备协议协商机制要求,同步服务端的协议参数,发送OACK协议包进行应答。3)根据(2)的解析结果,在分区操作系统中创建文件上传/下载传输任务进行文件传输,服务器端上传/下载传输与客户端相应服务处理流程相同。

5.结束语

本文在研究分区操作系统VxWorksAE653架构的基础上,介绍了TFTP的数据报文格式和工作过程,并结合相关协议标准对TFTP协议进行了扩展设计,给出了分区机制操作系统VxWorksAE653下TFTP的设计思路和实现方法,在开发实例测试中,Vxworks653平台下的TFTP软件稳定运行,在传输过程中,客户端软件与Windows平台下的TFTP服务器可以兼容工作,出现网络故障时,可以进行超时重传,具有良好的容错能力。

参考文献

[1]徐晓光,员海顺等.分区操作系统下的分区间通信设计[J],现代电子技术.2013,36(14):58-64.

[2]李伟,李杰涛等.VxWorks下文件传输的设计和实现[J],科技创新导报.2013.19:38-39.

[3]Sollins K. RFC2347,The TFTP Protocol ( Revision 2) [S].USA: IETF,2010.

篇6

关键词:FTP;文件传输;上传;下载

中图分类号:TP393 文献标识码: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

文件传输协议(FTP)是使用最为普遍的网络协议之一,由最早的简单文件传输协议(TFTP)发展而来,经过不断的修正与完善,已成为网络间文件传输的重要协议。FTP在Internet上用于控制文件的双向传输,可以在网络中传输电子文档、图片、声音、影视及程序等多种类型的文件。市面上FTP软件一般功能多,实现技术复杂,许多功能用户很少使用。为了适应公司员工上传和下载文件需要,在 win7环境下应JAVA开发了一套FTP客户端软件。该软件在Inter-net/LAN的环境中能实现客户机与服务器之间文件的传输和操作的基本功能。

1 FTP相关技术

1.1 FTP工作原理

FTP是网络上的应用层协议,使用TCP协议传输。FTP会话时包含了两个通道,一个叫控制通道,一个叫数据通道。控制通道是和FTP服务器进行沟通的通道,连接FTP,发送FTP指令都是通过控制通道来完成的。数据通道是和FTP服务器进行文件传输或者列表的通道。

1.2 FTP的工作方式

FTP的工作方式有PORT模式和PASV模式两种。

PORT模式:是主动模式,在主动传输模式下,由服务器向客户端发起一个用于数据传输的连接。客户端的连接端口由服务器端和客户端通过协商确定。主动传输模式下,FTP服务器使用20端口与客户端的端口进行连接,并传输数据,客户端只是处于接收状态。

PASV模式:是被动模式。在被动传输模式下,FTP服务器等待客户与其联系。由客户端向服务器发起一个用于数据传输的连接。被动传输模式下,FTP服务器打开一个暂态端口等待客户端对其进行连接,并传输数据,服务器并不参与数据的主动传输,只是被动接受。

2 系统设计

2.1总体设计

1)基本功能:界面设计;本机文件资源浏览;远程文件资源浏览;与服务器连接时的信息反馈。

2)文件传输功能:文件的上传和下载。

3)扩展功能:传输进度显示;文件浏览、文件删除功能。

2. 2 系统功能设计

文件传输模块是整个系统的核心。此模块实现FTP客户端与服务器之间的文件传送。文件的传输包括上传和下载两个功能。

本机文件浏览模块的功能是对本机上的文件进行浏览。

远程浏览模块的功能是对服务器上的文件进行浏览。

文件操作模块主要实现文件删除、打开等功能。

传输进度、信息显示模块显示客户端与服务器之间进行信息交过程的实时情况(连接成功与否、上传和下载的进度等)。

3 系统实现

3.1登录模块

客户端中使用connectServe方法来实现连接服务器功能,首先是使用FtpClient类的openServer(string server)方法打开远程FTP服务器,然后使用FtpClient类的login(user, password)方法登录服务器。登录远程FTP服务器有两种方式,一种是注册用户登录,另一种是以匿名方式登录。为了安全,本系统使用第一种方式登录,所以需要拥有该服务器的注册用户名和密码。

为了建立一条与指定主机、指定端口上的FTP服务器的连接,首先定义4个变量,命名为ip(服务器IP地址),username(用户名),port(端口号),password(密码),分别用来接收来自数据输入界面的数据。连接服务器的命令函数:openServer(String host,String username, int port, String password )。然后将接收到的数据发送至服务器验证,验证成功则使用append()方法在信息显示界面中提示连接成功,失败则显示无法连接,并给出错误提示。

3.2 本地文件浏览模块

功能是显示本机的文件目录。首先用类DefaultTableModel创建一个表格模型,DefaultTableModel是 TableModel 的一个实现,它使用一个 Vector 来存储单元格的值。表格包括三个数据项:文件名,文件大小,修改日期。通过使用一个二维数组Object[][]来存储这三个数据。通过方法getCurrentDirectory()获得当前目录,再利用listFile()获取该目录下的文件,经解析后存入二维数组中。

3.3 远程文件浏览模块

具体功能是显示服务器端的文件目录。当连接服务器,登入成功之后,可以使用FtpClient控件的List()方法来获取FTP服务器上目录与文件的详细内容,包括创建文件日期,文件大小,目录与文件的名称等相关信息。在得到文件名后,调用其方法getSystemIcon()就可以获得相应的文件图标。由于List()方法执行后的结果是TelnetInputStream数据流,本系统通过getFileAll()方法进行解析后把它显示在表格中。

3.4 上传模块和下载模块

1)文件下载模块

文件的下载,使用TelnetInputStream流,并使用FTPClient控件的get()方法将流的源头绑定,然后再在本地用将要下载的文件或者目录名来新建一个文件或者目录,并绑定到FileOutputStream流中,执行TelnetInputStream流的读并写入FileOutputStream流中,就可以完成下载功能。文件下载流程图如图1所示。在下载之前程序首先需要判断浏览框中选中的是目录还是文件。若选中的是文件,则直接调用方法:void downloadFile(String filename, String newfilename);

若选中的是目录需要使用递归的方法下载目录中的文件或者是子目录。它调用了三个方法,依次为:void downloadDir(String filename);

void downloadFile_x(String pathname,String filename);

void downloadFile(Stringfilename, String newfilename);

2)文件上传程序

文件的上传和文件的下载基本类似,不过使用的是TelnetOutputStream流,并使用FtpClient控件的put方法和流绑定,然后在远程目录上新建要上传的文件或者目录,将本地文件绑定到FileInputStream流中,执行FileInputStream流的读入并写入TelnetOutputStream流中即可完成上传功能,对于目录的上传同样需要递归方法来实现。

3.5 传输进度、信息显示模块

1)传输进度

该模块帮助用户了解文件传输的状态,使用Timer组件来实现。

Timer函数的构造如下:Timer(int delay,ActionListener);

利用Timer组件根据所给予的dalay时间内周期性地触发ActionEvent事件,调用ActionListener接口所定义的actionPerformed()方法,通过计算已传输的内容和要传输的文件的大小,实现传输进度的显示。start()方法和stop()方法分别用于Timer组件的激活和停止。

2)信息显示模块

使用JTextArea类可以创建显示多行文本的对象,通过方法append()来显示客户端与服务器的交互信息,如显示登入成功与否,显示来自服务器端的友好信息,以及文件上传和下载成功与否。

4 结束语

该软件能够以帐户和密码远程登入FTP服务器,完成文件的上传与下载并保证文件的完好。软件体积小巧、直观,利用图形界面操作简单易懂。

参考文献:

[1] Douglas E Comer. 用TCP/IP进行网际互联(第一、二、三卷)[M]. 林遥, 译. 北京: 机械工业出版社, 2004.

[2] 张峰. Java程序设计与项目实战(全程实录)[M]. 北京: 清华大学出版社, 2011.

篇7

本文主要向大家阐述的是安全技巧之保护企业FTP安全的最佳实践方案,以下就是相关内容的具体描述。希望你能从中获得自己想要的东西。虽然各种威胁在持续发展演变,但是文件传输协议(通常称为FTP)基本上还是跟几年前一样,而且还在大范围地使用。

FTP主要用来传输大文件,它就是为了这个目的设计的。FTP是一种客户端服务器(主从模式)协议,它使用控制和数据两条通道进行文件传输。控制通道用来进行身份认证,并给服务器发送命令。该协议本身不支持加密,因此,在控制通道中发送的所有流量都是直接发送的,或者说是未加密的,这是该协议的弱点之一。在企业中,FTP服务通常被用来处理那些不敏感的内容,而且跟其他敏感信息系统都是完全隔离的。人们还得保证FTP服务能够及时更新。配置错误的以及结构不合理的FTP服务可能会成为企业中重要的安全漏洞。

企业确保FTP安全的最佳做法是什么?FTP安全状况达到可以传输敏感数据的地步了吗?或者说有什么好的方法可以让FTP更安全?如果FTP还不够安全,不足以用来传输敏感数据,那么有哪些协议可以替代它呢?我们会在本文中回答这些问题。

FTP无处不在,这一点不可否认。就像其他广泛使用的技术一样,FTP也开始成为攻击者易于攻击的目标。这么多年来,攻击者已经有了许多使用FTP以及利用FTP漏洞的经验。有关FTP服务安全性的讨论很激烈,一般来说,人们没有就哪种方法能最好地保护FTP安全达成共识。主要是由于商业需要,才让这项服务继续存在,而没有使用其他更加安全的替代产品。一般来说,任何使用或者考虑使用FTP的企业都应该先问自己以下三个问题:

(1) 我们真的需要FTP吗?

(2) 我们怎样才能安全地设置FTP(我将会解释这个自相矛盾的情况)?

(3) 有没有既安全又容易使用的FTP替代产品?

第一个问题很有趣。从技术上讲,答案是否定的。其实市面上有许多更加安全的其他技术,我们将在后面讨论。然而,实际的答案却是肯定的,因为FTP应用非常广泛,而且具有跨平台的支持性,大多数企业都被迫选择支持FTP。

我花了相当多的时间对过滤设备(即防火墙)上的FTP连接进行故障排除,了解到FTP的控制和数据通道设计不是很适合在数据包穿越多个不同的网络设备环境中使用。

正如我先前提到的,FTP是一个客户端服务器协议,使用单独的控制和数据通道进行文件传输。控制通道用来进行身份认证,并给服务器发送命令。这种身份认证机制比较脆弱,因为认证信息没有经过加密就直接发送到服务器,使得这种网络传输很容易被窃听。在一般的FTP实施过程中,一些典型的安全漏洞让这个问题更加复杂化。

尽管企业FTP安全存在弊端,但是许多企业还是选择它进行大容量的数据传输。大多数工作站、应用程序,甚至网络过滤设备都内置了对FTP的支持。其他产品可能会更加安全,但是它们还是无法与FTP的便利性和低成本相抗衡。

让我们暂且假设FTP是唯一的选择。那么,我们可以来仔细研究几种能够让这项服务达到一定安全性的方法。先从网络设计阶段开始,我们可以把FTP服务限制在专用虚拟局域网网段上。通常需要从你的交换机、路由器或者防火墙设备中分出一个单独的专用网段来管理FTP服务。这种做法有多方面的目的,不仅能使你专门使用防火墙的一部分来防护这个网段,并进行策略(控制源IP)控制和简化故障排除(主动/被动连接),而且会给你提供一个阻塞点(choke point),从而监视和使用网络安全设备,比如IDS或者IPS。在这种情况下,阻塞点方法可以非常方便地进行监测和预防,你能够监视利用FTP服务(比如IDS)相关漏洞而发起的攻击,或者主动拦截利用IPS对FTP服务的攻击等。

下一步,我们需要侧重于让管理FTP的服务器本身变得更为强大(尽管我在上文中提到首先要进行网络设计,但是我不建议在所有的安全强化步骤完成之后才对服务器进行处理)。我建议大家不仅仅要考虑应用最新补丁,按照因特网安全中心(CIS)的标准来设置服务器,还要考虑更多的东西。当受到攻击的时候,FTP服务往往会引起严重的附加损失。这是因为,在许多情况下,FTP服务是具有高优先级的过程(比如:作为根用户),如果被攻击者成功利用的话,攻击者会得到系统级的权限。

在服务器上隔离FTP服务,可以很大程度地防止利用这种漏洞攻击。这与基于网络的隔离有所不同,这种隔离是通过处理服务的硬件实现的。FTP隔离可以通过在虚拟环境(开源Xen系统管理程序)中运行FTP服务或者改变根目录(chroot)来实现。在改变根目录这种方法中,管理员能够在处理过程中改变磁盘根目录,这基本上限制了超出自身限制范围的操作以及访问文件系统敏感区域的能力。改变根目录可以用几种方法实现,有些例子用“/etc/FTPchroot”为特定用户确定一个chroot环境,有些则使用“FTP-chroot”登录。这两种方法都建议FTP后台程序在ls支持下重新编译,所以没有特殊的依赖关系。

目前,有一种易于安全维护的FTP替代品,叫做Secure Shell(SSH)。与FTP不一样,SSH以加密的形式发送所有内容。SSH使用加密的传输服务,并且把一个文件传输放在最高层,避免了FTP服务普遍的安全缺陷和复杂性。为了简单起见,我认为SCP(主要是文件传输)、SFTP(运行在SSH上面的、全新的文件传输协议)和以SSH为通道的FTP会话,每种服务都使用了SSH,它们都可以作为FTP可以接受的、更加安全的替代品。在这个分类中比较奇怪的是FTPS(SSL上的FTP)。说实话,我认为FTPS作为FTP替代品不可行,因为它与防火墙不兼容。使用更加安全的协议需要进行服务隔离,并且要采取适当的服务器安全强化措施。

篇8

关键词:TCP;文件传输;线程池;OpenSSL

中图分类号:TP311文献标识码: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

文件传输系统是目前一项非常广泛的应用。在网络如此发达的今天,基本上随处都会用到文件的传输功能。本系统是基于Linux平台TCP协议的安全文件传输系统。通过TCP协议对文件数据进行加密的传输。在传输过程中,使用了openSSL库实现了对文件数据的2048位的非对称加密,以保证传输过程中文件数据的安全。而系统的大框架使用了线程池实现多线程的技术,以实现多个客户端同时进行文件传输的功能。这种设计非常适合多用户段任务的系统设计。

一、TCP传输协议

TCP(Transmission Control Protocol,TCP)是重要的传输层协议,它是是一种面向连接的,可靠的,基于字节流的传输层通信协议。在简化的计算机网络OSI模型中,他完成传输层所指定的功能。它能提供端口编号的译码,以识别主机的应用程序,而且完成数据的可靠传输。TCP协议具有严格的内装差错检验算法确保数据的完整性。TCP是面向字节的顺序协议,这意味着包内的每个字节被分配一个顺序编号,并分配给每包一个顺序编号。

二、利用线程池实现多线程技术

程序中,我们用到了多线程的设计。如果单一的进行多线程设计,那么当有任务来时,要创建一个线程,当任务结束的时候,要销毁线程,这样会耗费大量的系统资源。我们考虑到文件传输是短任务,多用户的情况,该系统可以使用线程池来进行多线程的设计,这样会节约很多的系统资源。

系统首先创建一个线程池,让线程池中所有的线程都处于等待的状态。在系统有任务请求时,处理过程中将任务添加到队列,然后在调用一个在线程池中处于空闲等待的线程对任务进行处理。在任务处理完后,该线程又回到等待状态,等待下一次任务的到来,这样就不用重复的创建和销毁线程,节约了很大的系统资源和时间资源。如果线程池中所有的线程都处于忙的状态,那么在有任务进来,我就将其添加到等待队列中去,以等待有空闲线程时,在对该任务进行处理。

线程池中所有的线程都是资源共享的,我们在设计时在对公共资源进行访问时,必须进行保护。这里我们通过互斥锁和条件变量的机制来保护系统中被访问的公共资源,这样能够防止多个线程同时访问一个资源是出现的冲突的情况。

三、在文件的传输过程中对文件数据加密与解密

SSL就是为了加密数据而产生的协议,它是位于应用层和TCP/IP之间的一层,数据经过它流出的时候被加密,再往TCP/IP送,而数据从TCP/IP流入之后先进入它这一层被解密,同时它也能够验证网络连接两端的身份。它的主要功能就是两个:1.解密在网络中传输的数据包,同时保护这些数据不被修改,和伪造。2.认证网络对话中双方的身份。在对文件数据进行加密传输的时候,我们需要生成数字证书(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

四、整个系统的设计框架流程简述

五、结语

本文中提出的用线程池来实现多线程的算法非常适合文件传输这类多用户短任务设计。用OpenSSL对传输过程中的数据加密是非常安全的,目前是使用最多的对数据加密的工具。该系统的设计还有很大的提升空间,我们可以对传输的文件进行完整性验证,这可以利用目前使用广泛的hash MD5算法来实现,还有断点续传功能也可以在很大程度上完善该系统的设计,这样可以使文件传输系统得到进一步的扩展。

参考文献:

[1]尤晋元,张亚英,戚正伟.UNIX环境高级编程(第2版)[M].北京:人民邮电出版社,2006

[2]谢希仁.计算机网络[M].大连:大连理工大学出版社,2004:79-80

[3]Al Kelley Ira Pohl.C语言解析教程(原书第4版)[M].Addision-Wesley,2002

推荐期刊