版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
平安文件传输系统的设计与实现院系:计算机与通信工程学院班级:嵌入式软件10-01姓名:学号:54111指导老师:陈晓雷老师平安文件传输系统的软件设计框架平安文件传输系统由硬件和软件两局部组成。硬件局部可以是普通的安装Linux操作系统的PC机,也可以是嵌入式系统。本系统的硬件实现平台是S3C2440嵌入式开发板。现代网络通信中,大局部网络协议的实现都由客户端〔Client〕和效劳器端〔Server〕来协作完成。这种模型本质上涉及两个不同的程序,通常这两个程序在不同机器上运行,这些机器之间都有网络连接。效劳器端程序提供效劳并对来自客户程序的请求作成响应。而客户端程序那么是在使用者和效劳器端程序之间建立某种沟通的渠道,或者是作为使用效劳器端提供的某种网络效劳的工具。本文传输过程也是通过客户端和效劳器端来实现,软件实现的总体框图如图:系统使用C和C++程序编写,支持将每个文件的元数据进行存储;支持从效劳器中获取文件的元数据;效劳器是多线程的,能够允许多个客户端同时连接;并且记录文件操作事件日志,能够支持用户名和密码的验证;客户端是QT应用程序,具有上传和下载两种能力,并且为了确保上传和下载是否成功,先检查碰盘空间。系统的数据流如图:效劳器端是数据流向的交汇点,也是系统数据存储的资源池。各个客户端发起连接请求,效劳端利用进程并发技术,相应多个客户端的请求。因此效劳端主要完成两个任务,检查客户端是否成功登录,以及判断客户端发来的信号,对该信号进行相应。客户端是每个应用终端的实现方式也是外在表现,它主要包括:登录交互平台、检查信息是否完整喝客户端主窗口的配置。用户根据自己的需要在成功登录系统以后,可以向效劳器发出命令。可以发出的命令包括:效劳器List显示、效劳器端List刷新、上传文件、下载文件、客户端List显示。系统的内部设计是通过socket套接字建立连接,socket在所有的网络操作系统和网络应用程序中都是必不可少的,它是网络通信中应用进程和网络协议之间的接口。在Linux操作系统中,socket属于文件系统中的一局部,网络通信可以被看作是对文件系统的读取。这就使得用户对网络的控制,像对文件的控制一样方便。Socket网络通信同样也分为效劳器端和客户端两局部。平安文件传输系统的效劳器端设计效劳器端的作用是响应用户连接请求,验证用户,对取到的命令进行解析,根据命令执行不同的操作。根据输入的文件名翻开文件并将文件数据读入缓冲区;将缓冲区内的数据写入文件。并且对接收到的协议包解封,将数据缓冲区中的数据进行封装。效劳器端内部设计流程图如图:效劳器端内部设计主要用到的连接函数有:(1)intsocket(intfamily,inttype,intprotocol)该函数用于建立一个socket连接,可指定socket类型等信息。在建立了socket连接之后,可对socketadd或sockaddr_in进行初始化,以保存所建立的socket信息。(2)intbind(intsockfd,structsockaddr*my_addr,intaddrlen)该函数是用于将本地IP地址绑定端口号的,假设绑定其他地址那么不能成功。另外,它主要用于TCP的连接,而在UDP的连接中那么无必要。本文基于TCP连接。(3)intlisten(intsockfd,intbacklog)该函数用于通知内核,效劳器将在某个套接口上监听并接受连接。(4)intaccept(intsockfd,void*addr,int*addrlen)该函数的作用是,当其被调用时,效劳器端的程序会一直拥塞直到有一个客户程序发出了连接。accept()调用成功时,返回连接进来的客户机的文件描述符,之后效劳器端就可以利用该描述符向客户机读写信息了,失败时返回-1.(5)intsend(intsockfd,constvoid*msg,intlen,unsignedintflags)和intrecv(intsockfd,void*buf,intlen,unsignedintflags)这两个函数是在建立连接后用于完成发送与接收数据的系统调用。3.平安文件传输系统的客户端设计客户端的作用是通过输入IP,port向效劳器发起请求连接,然后将用户名和密码发给效劳器进行验证,验证通过后通过选中客户端本地的目录来查看该目录下的文件列表,上传的时候根据输入的文件名找到文件并将文件数据读入缓冲区,下载的时候从保存有文件数据的缓冲区取出数据写入本地磁盘。客户端在上传文件的时候将得到的文件数据缓冲区中的数据封装到协议包,下载文件的时侯根据得到的协议包解析出其中包含的文件有效数据。客户端内部设计流程图:客户端内部设计主要用到的连接函数有:(1)intsocket(intfamily,inttype,intprotocol)该函数的作用同效劳器端socket()函数,用于建立socket连接。(2)intbind(intsockfd,structsockaddr*my_addr,intaddrlen)该函数的作用同效劳器端bind()函数,用于将本地IP地址绑定端口号。(3)intconnect(intsockfd,structsockaddr*serv_addr,intaddrlen)该函数用于与效劳器端建立连接。(4)intsend(intsockfd,constvoid*msg,intlen,unsignedintflags)和intrecv(intsockfd,void*buf,intlen,unsignedintflags)这两个函数是在建立连接后用于完成发送与接收数据的系统调用。系统的通信流程是:首先在效劳器端使用socket()建立一个通信的断点,再用bind()命令把一个地址绑定到这个端点,然后,效劳器端使用listen()侦听连接请求。当远程的客户机试图使用connect()连接listen()正在监听的端口时,连接将会在请求队列中等待,直到效劳器使用accept()处理了连接请求后,将会产生一个新的描述这个连接端口的套接字,利用这个套接字旧可以发送或接收数据了。如果listen()一直没有侦听到连接请求,那么效劳器任务就会在accept()处阻塞,直到有连接请求到来。对于客户任务来说,它也需要先用socket()建立一个通信端口,但是它不必用bind()把一个本地地址绑定到这个端口,而是直接使用connect()向指定的效劳器发出连接请求,如果请求被接受,下一步就可以进行数据流通信了。4.平安文件传输系统的平安策略设计目前常见的加密协议有以下几种:IPSec协议,SET协议,SSL协议。其中IPSec协议可以提供很高的平安性,但是实现它却不是一件很容易的事,它需要对网络层的IP数据包进行重新封装,无论对效劳器还是客户端都要做很大的改动,对于平安文件传输系统而言,代价很大且增加了通信两端的复杂度。SET协议是应用层的平安协议,它是专门针对网上信用卡支付提出的一个标准,主要是保证通信信息的加密与平安,很有针对性。本系统并未涉及电子交易方面的东西,因此不是网络通信系统平安协议的最正确选择。SSL协议是一种在两台机器之间提供平安通道的协议,它具有保护传输数据喝识别通信机器的功能。应用SSL协议所建立的通道是透明的,它对传输的数据不加更改,客户端和效劳器之间的数据是经过加密的,这种透明性使得几乎所有基于TCP的协议稍加修改就可以运行于SSL之上,非常方便。本系统就是利用SSL协议为Linux系统之间的文件传输打造一个平安的通道。SSL可以看成是在应用层和传输层之间的一个层,SSL协议在应用层协议通信之前完成加密算法、通信密钥的协商以及效劳器认证工作.应用层协议传送加密数据。从而保证通信的私密性。SSL协议堆栈图如图:SSL协议主要功能是在客户与效劳器间提供了一条的平安通信连接,主要由握手协议和记录协议实现。其中SSL握手协议负责客户与效劳器间会话的加密。当SSL客户端与效劳器第一次通信时。他们需要交换版本号、加密算法、身份认证并使用公钥技术来生成共享密钥:SSL记录协议用于交换应用数据。发送方SSL接收应用层数据。对数据加密。而后将加密数据送往TCP插口,接收方从TCP插口读取数据后。解密交给应用层。SSL协议提供一种加密的握手会话.使客户端和效劳器端实现身份验证、协商加密算法和压缩算法、交换密钥信息。如果两台计算机协商建立新的SSL会话.它们会使用数字证书来确认对方的身份、交换密钥材料。密钥材料的交换利用网络效劳器的公钥对材料进行加密。一旦收到加密后的材料.网络效劳器就用相应的私钥进行解密。这种握手会话通过数字签名和数字证书来实现客户机和效劳器双方的身份验证。在用数字证书对双方的身份验证后。双方就可以用密钥进行平安会话。本系统的效劳器端SSL协议实现过程如图:所示为效劳器端SSL流程,客户端的SSL实现是效劳器端实现的逆过程。整体流程为:SSL客户端向SSL效劳器发送连接请求.并要求验证效劳器的身份;效劳器发送数字证书响应以证明其身份;客户端验证证书的有效性;效劳器发出客户端的证书验证请求;完成对客户端的证书的验证;协商用于加密的加密算法和用于完整性检查的哈希函数;客户端和效劳器互发随机数并通过使用哈希函数从随机数中生成会话密钥。SSL握手协议描述建立平安连接的过程。而SSL记录协议那么定义了数据传送的格式.上层数据包括SSL握手协议建立平安连接时所需传送的数据都通过SSL记录协议再往下层传送。这样,应用层通SSL协议把数据传给传输层时,已是被加密后的数据。5.结论平安文件传输系统是手持式PDA的一个重要功能软件,它的成功实现为用户平安保密工作提供了一种可行的方法。本文从软件的整体设计方法上依次介绍了系统效劳端、客户端设计,并对系统平安策略进行了分析,介绍了本系统所使用的SSL协议的加密方法。系统整体运行稳定,传输效率高。6.参考文献[1]卢开澄.计算机网
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年美食节场地租赁及紧急预案合同
- 2024年版货物买卖合同实例
- 2024年生态农业有机肥应用合作协议3篇
- 2024庭院住宅产权转让合同书样本6篇
- 2024幼儿园教育师资培训与交流合同
- 运动健身行业顾问工作总结
- 2024建设工程施工合同示范
- 2025年度安防技术培训与咨询服务协议3篇
- 酒店管理的客房预订管理
- 航空行业设计师工作总结
- YS/T 649-2007铜及铜合金挤制棒
- GB/T 21089.1-2007建筑涂料水性助剂应用性能试验方法第1部分:分散剂、消泡剂和增稠剂
- GB/T 13738.1-2008红茶第1部分:红碎茶
- 工厂5S检查评分评价基准表(全)
- 三年级上册数学教案-3.1 时间的初步认识三(年 月 日-复习课)▏沪教版
- 员工奖惩签认单
- 检验检测服务公司市场研究与市场营销方案
- VDA270气味性测试参考标准中文
- 水泥稳定碎石基层及底基层检验批质量检验记录
- 2022年版课程方案解读及学习心得体会:课程的综合性与实践性
- 2737市场调查与商情预测-国家开放大学2018年1月至2021年7月期末考试真题及答案(201801-202107不少于6套)
评论
0/150
提交评论