基于局域网的文件传输系统的设计与实现毕业设计论文Word格式文档下载.docx
《基于局域网的文件传输系统的设计与实现毕业设计论文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于局域网的文件传输系统的设计与实现毕业设计论文Word格式文档下载.docx(40页珍藏版)》请在冰豆网上搜索。
Abstract
Inthisinformationera,therapiddevelopmentofcomputernetworktechnologyhasaffectedeverycorneralmost,includingpolitics,culture,life,economic,andpromotethegradualtransformationofhumansocietytoinformationsociety;
Weshouldalsoclearlyrecognizethatthefiletransferproblemisaproblemnottobeignoredinthedevelopmentofcomputernetworks.Intoday'
scongestednetwork,variousdatacompetingfornetworkresources,howtomaketransmissionmorereliable,andhowtoresolvetheefficientproblemisneedtobeimprovedandperfected.Inmanycases,people'
sdailyworkisrequiredtousefiletransfertocomplete.ButmostofthefiletransfercapabilitiesrequiretheremovabledisksandotherhardwaredevicesorserversontheInternet.Thiscausedmanyproblemsforthoselarge-scaleinternalnetworkusers,suchasawasteofmoney,awasteofnetworkresources,virusattacks,reducedworkefficiency.InordertofacilitatethesharingofresourcesofthehostintheLAN,WeneedtodevelopaLAN-basedfiletransfertoolfordocumentexchangedintheinternalnetwork.
ThefiletransfersystemdesignusesVC++6.0asdevelopmenttools.BycreatingaC/SSocketconnectiontorealizefast,accurate,securepeer-to-peerfiletransfercapabilities.ThesystemcanpromotethesharingoffilesbetweentheLANusertomeettheexchangeofinformationbetweenthehostandensurethefiletransfersecurity,andeffectivelyimproveworkefficiency.
KeyWords:
Socket;
Networkprogramming;
C/Smode;
1绪论
1.1前言
当今世界科学技术飞速发展,尤其以计算机通信网络为代表的互联网技术更是日新月异,令人眼花燎乱,目不睱接。
在计算机与网络迅速发展的今天,借助于网络进行信息资源交流给人们带来了极大的方便。
随着互联网技术的迅猛发展,计算机通信给人类文明带来了翻天覆地的变化。
1.2国内外研究现状
目前,国内外企业对局域网的文件传输系统认识和使用情况并不好,各个企业单位在局域网内实现文件传输,资源共享还有很大的缺陷。
技术无论是从理论上或实践上都还不够完善。
文件传输系统由于比较复杂,可变因素较多,安全性低,因此发展还不成熟。
但是随着科学技术的发展,各种以局域网为单位的文件传输系统已经进入稳健发展期,比如说市面上比较普遍使用的QQ、UC、飞鸽传书等以内部网络为中心的资源共享系统也即将进入高速发展期。
在国内,随着企业资源管理的规范化和规模的不断扩大,企业的计算机资源管理将不仅仅停留在依靠硬件或者Internet网络获取,而且将会向着安全的内部网络化资源管理方式迈进。
1.3课题研究的意义
随着网络通信技术的发展与用户需求日益多样化,现代局域网络正处在变革与发展之中,本课题的主要目的之一是为了更清晰地培养学生掌握科学研究方法的能力和使学生迅速体会文件传输系统的研发过程。
基于局域网的文件传输系统能够让家庭网络以及各个企业等局域网对内部资料有一个快捷,准确,安全的共享。
特别是对如今较大系统研发的模块分工合作得到了绝对保密性,从而使各项工作有计划、更科学的进行及顺利完成,使企业的办事效率得到显著提高。
文件传输系统主要功能是自动获取局域网内用户的主机名,IP地址以及工作组名字,最终以C/S模式通过TCP/IP协议实现点到点文件传输功能。
本系统既锻炼了我们的实际动手能力,使我们将大学四年所学的理论知识与实际开发相结合,又引
导我们进行了一次模拟实际产品的开发,对于我们以后工作能力的培养具有重要的意义。
1.4本文主要研究内容
计算机文件属于文件的一种,与普通文件载体不同,计算机文件是以计算机硬盘为载体存储在计算机上的信息集合。
文件可以是文本文档、图片、程序等等。
文件通常具有三个字母的文件扩展名,用于指示文件类型(例如,图片文件常常以JPEG格式保存并且文件扩展名为.jpg)。
文件传输需要经过两个步骤,一是网络的链接;
二是文件的传输。
本文提出的方案主要是在满足局域网内链路状态良好,IP地址已知的条件下的文件传输。
2系统需求分析
2.1现行业务系统描述
目前各种文件资源交流的主要方式可以分为三种:
(1)通过局域网内主机之间以文件共享后再经过复制,粘贴方式实现。
(2)依靠可移动磁盘的两次信息转移实现。
(3)通过Internet邮件方式实现。
此三种方法并非不可行,但它们都需要花费较长的时间以及安全性也得不到保证,工作效率将在很大程度上受到限制。
如果通过局域网内主机之间复制粘贴来实现文件资源共享,将浪费大量的网络带宽,极大程度上影响了网内用户的工作效率,甚至导致用户不能正常工作;
如果依靠移动磁盘实现文件的共享,将花费大量的金钱,而文件较大移动磁盘容量不足的情况下会令人极为头疼,何况移动磁盘是病毒传播的重要途径;
如果通过Internet邮件方式实现,用户需要接入Internet服务器,这种方式对远程服务器有非常大的依赖性,即使1KB的文件都要经历极度繁琐的路径,不能彻底实现点对点的即时交流,文件较大的情况下就不言而喻了。
最重要的是,在如今病毒黑客横行的网络世界中,信息的安全性也得不到保证。
综上所述,依靠Internet网络等方式实现文件资源交互的准确性,快速性及安全性远达不到理想的要求。
2.2现行系统主要存在的问题分析
针对企业来说,提高工作效率是企业的一个重心;
降低成本是企业赢取最大利益的重要方式;
保证信息安全却是可能影响企业生死存亡的关键。
企业需要对各种因素有足够深刻的认识才可能实现最终目标---盈利。
而传统的文件资源交互方式却存在很多的问题,大致可以分为:
一、不能有效地降低文件交互成本;
二、文件交换过程过于繁琐;
三、内部机密资料得不到安全保证;
四、文件交互的准确性得不到根本保证。
2.3提出解决方案
解决当前问题的方案主要是指在允许的成本、性能要求下,分析系统实施的可行性,提出功能实现的依据,包括其简单性,安全性以及经济可行性。
根据企业简单快速,安全的资源共享等要求,提出以下四种解决方案:
1)操作简单性方案:
开发的系统需要有以下特点:
Windows友好的用户界面和系统快速的应用方法,简单易操作,不需对使用人员进行培训,可以使用户很好的掌握。
对传输文件过程中的文件的载入设置都是非常简单可行,比如:
如
果用户忘记选择文件接收者的时候系统会自动提示“请选择接收用户”要求用户选择主机而不导致错误出现而引发的不便,这样就大大提高工作效率。
而且开发的系统应该简单易操作,易维护,减少了不必要的麻烦。
对于家庭局域网以及一些比较简单的中小企业网,系统必须做到在实际应用中较为成功。
系统应为用户提供Windows所一贯坚持的非常友好、操作简单的用户界面。
2)传输安全性方案:
系统开发完成后,能有效地使内部资源与外网的完全隔离,从而保证了内部机密文件的安全性。
3)经济可行性方案:
系统开发完成必须作到提高文件共享效率,不管是在资金上还是效率上都能达到预期的效果的。
最重要的一点就是:
使用户避免花费高额的资金去购买各种移动磁盘甚至是通过Internet邮件方式,使得用户方便的同时,也让信息少走了不少“弯路”。
4)快速准确性方案:
鉴于系统的目标要求和特点,能够保证快速准确地实现文件共享。
综合上述,本设计在WindowsXP操作系统下,以中文版c++6.0为开发工具,以C/S为系统功能结构,基于点对点的TCP/IP协议理论,通过Socket套节字连接客户端与服务器实现文件及文件夹传输。
彻底避免了文件交换过程与外部网络的接触,实现快速的文件资源共享。
并能够确保内部文件的机密性,能够在很大程度上有效地提高工作效率。
3TCP/IP协议
3.1开放式系统互连参考模型
TCP/IP是TransmissionControlProtocol/InternetProtocol的简写,中文译名为传输控制协议/互联网协议,是当今世界上最广而不基于任何特定硬件平台的网络通信协议.采用TCP/IP可以解决异种机联网和异种网互连的问题,并可以访问当今世界上最有影响力的Internet网TCP/IP协议的基本思想,是通过网间连接层将各种不同的网络连接起来,在各个网络的底层协议之上构造一个虚拟的大网,使用户与其他网的通讯就像与本网的主机通讯一样方便实现,这一思想的相关协议有TELNET、FTP、SMTP、TCP、UDP、IP、ICMP、ARP、RARP等。
TCP/IP协议并不完全符合OSI的七层参考模型。
传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。
该模型的目的是使各种硬件在相同的层次上相互通信。
这7层是:
物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
这4层分别为:
应用层:
应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。
传输层:
在此层中,它提供了节点间的数据传送,应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传等。
如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。
互连网络层:
负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。
网络接口层(主机-网络层):
接收IP数据报并进行传输,从网络上接收物理帧,抽取IP数据报转交给下一层,对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、SerialLine等)来传送数据。
3.2TCP/IP技术
TCP/IP是TransmissionControlProtocol/InternetProtocol的简写,中文译名为传输控制协议/互联网协议,是当今世界上最广而不基于任何特定硬件平台的网络通信协议。
采用TCP/IP可以解决异种机联网和异种网互连的问题,并可以访问当今世界上最有影响力的Internet网。
TCP/IP协议的基本思想是通过网间连接层将各种不同的网络连接起来,在各个网络的底层协议之上构造一个虚拟的大
网,使用户与其他网的通讯就像与本网的主机通讯一样方便实现,这一思想的相关协议有TELNET、FTP、SMTP、TCP、UDP、IP、ICMP、ARP、RARP等。
3.2.1TCP/IP体系结构
TCP/IP协议实际上就是在物理网上的一组完整的网络协议。
其中TCP是提供传输层服务,而IP则是提供网络层服务。
TCP/IP包括以下协议(结构如图3-1所示):
图3-1TCP/IP协议体系结构
IP:
网间协议(InternetProtocol)负责主机间数据的路由和网络上数据的存储。
同时为ICMP,TCP,UDP提供分组发送服务。
用户进程通常不需要涉及这一层。
ARP:
地址解析协议(AddressResolutionProtocol)此协议将网络地址映射到硬件地址。
RARP:
反向地址解析协议(ReverseAddressResolutionProtocol)此协议将硬件地址映射到网络地址。
ICMP:
网间报文控制协议(InternetControlMessageProtocol)此协议处理信关和主机的差错和传送控制。
TCP:
传送控制协议(TransmissionControlProtocol)这是一种提供给用户进程的可靠的全双工字节流面向连接的协议。
它要为用户进程提供虚电路服务,并为数据可靠传输建立检查。
(注:
大多数网络用户程序使用TCP)。
UDP:
用户数据报协议(UserDatagramProtocol)这是提供给用户进程的无连接协议,用于传送数据而不执行正确性检查。
FTP:
文件传输协议(FileTransferProtocol)允许用户以文件操作的方式(文件的增、删、改、查、传送等)与另一主机相互通信。
SMTP:
简单邮件传送协议(SimpleMailTransferProtocol)SMTP协议为系统之间传送电子邮件。
TELNET:
终端协议(TelnetTerminalProtocol)允许用户以虚终端方式访问远程主机。
HTTP:
超文本传输协议(HypertextTransferProtocol)。
是用于从WWW服务器传输超文本到本地浏览器的传送协议。
它可以使浏览器更加高效,使网络传输减少
TFTP:
简单文件传输协议(TrivialFileTransferProtocol)。
它是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。
3.2.2IP协议
网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。
IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;
相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。
IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。
IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。
高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。
也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。
IP确认包含一个选项,叫做IPsourcerouting,可以用来指定一条源地址和目的地址之间的直接路径。
对于一些TCP和UDP的服务来说,使用了该选项的IP包好像是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。
这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。
那么,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。
3.2.3TCP协议TCP/IP特点
TCP/IP协议的核心部分是传输层协议(TCP、UDP),网络层协议(IP)和物理接口层,这三层通常是在操作系统内核中实现,因此用户一般不涉及。
编程时,编程界面有两种形式:
一、是由内核心直接提供的系统调用;
二、使用以库函数方式提供的各种函数。
前者为核内实现,后者为核外实现。
用户服务要通过核外的应用程序才能实现,所以要使用套接字(Socket)来实现,下图3-2就是反映TCP/IP协议核心与应用程序的关系。
图3-2TCP/IP协议的核心与应用程序关系
3.2.4TCP/IP传送文件机制
下面以采用TCP/IP协议传送文件为例,说明TCP/IP的工作原理,其工作流程如下:
(1)在源主机上,应用层将一串应用数据流传送给传输层。
(2)传输层将应用层的数据流截成分组,并加上TCP报头形成TCP段,送交网络层。
(3)在网络层给TCP段加上包括源、目的主机IP地址的IP报头,生成一个IP数据包,并将IP数据包送交链路层。
(4)链路层在其MAC帧的数据部分装上IP数据包,再加上源、目的主机的MAC地址和帧头,并根据其目的MAC地址,将MAC帧发往目的主机或IP路由器。
(5)在目的主机,链路层将MAC帧的帧头去掉,并将IP数据包送交网络层。
(6)网络层检查IP报头,如果报头中校验和与计算结果不一致,则丢弃该IP
数据包;
若校验和与计算结果一致,则去掉IP报头,将TCP段送交传输层。
(7)传输层检查顺序号,判断是否是正确的TCP分组,然后检查TCP报头数据。
若正确,则向源主机发确认信息;
若不正确或丢包,则向源主机要求重发信息。
(8)在目的主机,传输层去掉TCP报头,将排好顺序的分组组成应用数据流送给应用程序。
这样目的主机接收到的来自源主机的字节流,就像是直接接收来自源主机的字节流一样。
如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。
TCP将包排序并进行错误检查,同时实现虚电路间的连接。
TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。
TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。
应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。
面向连接的服务(例如Telnet、FTP、rlogin、XWindows和SMTP)需要高度的可靠性,所以它们使用了TCP。
DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。
4Socket网络程序设计技术
4.1Socket编程
文件传输系统得以实现的根本在于建立有效的连接以及是否存在文件传输载体。
所谓Socket通常也称作"
套接字"
,用于描述IP地址和端口,socket类表现了客户端套接字,它是属于两台计算机的两个TCP通讯端口之间的通讯通道。
在网络编程中,客户端使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;
会话完成后,关闭Socket。
客户端不需要指定打开的端口。
服务器使用Socket监听指定的端口,端口可以随意指定,等待客户连接请求,客户连接后,会话产生;
在完成会话后,关闭连接。
4.1.1Winsock简介
以U.C.Berkeley大学BSDUNIX中流行的Socket接口为范例定义了一套microsoftWindows下网络编程接口。
它不仅包含了人们所熟悉的BerkeleySocket风格的库函数;
也包含了一组针对Windows的扩展库函数,以使程序员能充分地利用Windows消息驱动机制进行编程。
WindowsSockets规范本意在于提供给应用程序开发者一套简单的API,并让各家网络软件供应商共同遵守。
此外,在一个特定版本Windows的基础上,WindowsSockets也定义了一个二进制接口(ABI),以此来保证应用WindowsSocketsAPI的应用程序能够在任何网络软件供应商的符合WindowsSockets协议的实现上工作。
因此这份规范定义了应用程序开发者能够使用,并且网络软件供应商能够实现的一套库函数调用和相关语义。
遵守这套WindowsSockets规范的网络软件,我们称之为WindowsSockets兼容的,而WindowsSockets兼容实现的提供者,我们称之为WindowsSockets提供者。
一个网络软件供应商必须百分之百地实现WindowsSockets规范才能做到现WindowsSockets兼容。
任何能够与WindowsSockets兼容实现协同工作的应用程序就被认为是具有WindowsSockets接口。
我们称这种应用程序为WindowsSockets应用程序。
WindowsSockets规范定义并记录了如何使用API与Internet协议族(IPS,通常我们指的是TCP/IP)连接,尤其要指出所有的WindowsSockets实现都支持流套接口和数据报套接口。
应用程序调用WindowsSockets的API实现相互之间的通讯。
WindowsSockets又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。
为了方便网络编程,Microsoft联合了其他几家公司共同制定了一套WINDOWS下的网络编程接口,即WindowsSockets规范,它不是一种网络协议,而是一套开放的、支持多种协议的Windows下的网络编程接口。
现在的Winsock已经基本上实现了与协议无关,你可以使用Winso