网络与信息安全实验报告.docx
《网络与信息安全实验报告.docx》由会员分享,可在线阅读,更多相关《网络与信息安全实验报告.docx(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、网络与信息安全实验报告 计算机科学与技术学院 网络与信息平安课程设计 学 号: 专 业:计算机科学与技术 学生姓名: 任课老师:* 2022年3月 FTP服务器的设计与实现 * 计算机科学与技术学院,哈尔滨工程高校 摘要:FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的限制文件的双向传输。同时,它也是一个应用程序(Application)。 基于不同的操作系统有不同的FTP应用程序,而全部这些应用程序都遵守同一种协议以传输文件。在FTP的运用当中,用户常常遇到两个概念:下载 (Download)和上传(Uplo
2、ad)。下载文件就是从远程主机拷贝文件至自己的计算机上;上传文件就是将文件从自己的计算机中拷贝至 远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。本文基于FTP协议搭建了一个FTP服务器,实现简洁的上传下载功能。 关键字:FTP,网络协议,服务器 一、FTP协议的工作原理 1.简介 FTP是因特网网络上历史最悠久的网络协议,凭借其独特的优势始终都是因特网中最重要、最广泛的服务之一。FTP是TCP/IP供应的标准机制,实现从一台主机向另一台主机传送文件的任务。目前FTP客户端软件许多,大致我们可以把它们分为三类:第一类是传统的FTP客户机;其次类是图
3、形化用户界面的FTP软件;第三类是Web阅读器。 从根本上说,FTP就是在网络中各种不同的计算机之间根据TCP/IP协议来传输文件。FTP采纳的是现在流行的Client/Server模式,由FTP客户端和FTP服务器端程序组成。通常服务器端是远程端点,用户可以通过Internet网络连接到远程的FTP服务器站点。服务器的功能是主要的。只有当FTP服务器支持各种协议和指令时,才能够开发相应的客户端程序。 开发任何基于FTP的客户端软件都必需遵循FTP的工作原理,FTP的独特的优势同时也是与其它客户服务器程序最大的不同点就在于它在两台通信的主机之间运用了两条TCP连接,一条是数据连接,用于数据传送
4、;另一条是限制连接,用于传送限制信息(吩咐和响应),这种将吩咐和数据分开传送的思想大大提高了FTP的效率,而其它客户服务器应用程序一般只有一条TCP连接。图1给出了FTP的基本模型。客户有三个构件:用户接口、客户限制进程和客户数据传送进程。服务器有两个构件:服务器限制进程和服务器数据传送进程。在整个交互的FTP会话中,限制连接始终是处于连接状态的,数据连接则在每一次文件传送时先打开后关闭。 用户接口 限制连接限制进程限制进程吩咐与应答数据连接数据传送进程数据传送进程文件传输图1 FTP的基本模型 FTP是TCP/IP的一种详细应用,它工作在OSI模型的第七层,TCP模型的第四层上,即应用层,运
5、用TCP传输而不是UDP,这样FTP客户在和服务器建立连接前就要经过一个被广为熟知的“三次握手”的过程,它带来的意义在于客户与服务器之间的连接是牢靠的,而且是面对连接,为数据的传输供应了牢靠的保证。采纳FTP协议可使 Internet用户高效地从网上的FTP服务器下载大信息量的数据文件,将远程主机上的文件拷贝到自己的计算机上。以达到资源共享和传递信息的目的。由于FTP的运用使得Internet上出现大量为用户供应的下载服务器。Internet成为了一个巨型的软件仓库。FTP在文件传输中还支持断点续传功能,可以大幅度地减小CPU和网络带宽的开销。 FTP须要2个端口,一个端口是限制连接端口,也即
6、21端口,用于发送指令给服务器并等待服务器响应;另一个端口是数据传输端口,端口号为20(仅PORT模式),用于建立数据传输通道。 FTP的连接模式有2种:PORT和PASV。PORT模式是一个主动模式,PASV是被动模式,二者都是相对于服务器而言的。 2.FTP运行原理 FTP的工作原理与其他很多网络好用程序一样,也是基于客户/服务器模式。互联网文件传输协议(File Transfer Protocol) 标准是在FTC959说明的。该协议定义了一个在远程计算机系统和本地计算机系统之间传输文件的标准。一般来说,要传输文件的用户需先经过认证以后才能登录ftp服务器,访问在远程服务器的文件。大多数
7、的FTP服务器往往供应一个guest的公共帐户来允许没有FTP服务器帐户的用户可以访问该FTP服务器。一个FTP会话通常包括五个软件元素的交互。就模型而言,从1973年以来并没有什么改变。如图2所示。 用户接口用户SPIUSERPI文件系统SDTPUDTP图2 FTP协议模型 文件系统 在一个FTP会话中,会存在两个独立的网络连接,一个是由两端的PI运用的,另一个是由两端的DTP运用的。PI之间的连接一般被称作限制连接(control connection),DTP之间的连接被称作数据连接(data connection)。通常状况下,ftp服务器监听端口号21来等待限制连接建立恳求,当客户连
8、接恳求到达,会在客户和ftp服务器之间建立一个限制连接。而数据连接端口号的选择依靠于限制连接上的吩咐,通常是客户发送一个限制消息来指定客户须要建立一个数据连接来传输ftp数据(如下载/上载一个文件,显示当前书目的内容等等,都须要建立数据连接来传输数据),在该消息中,指定了客户监听并等待连接的端口号,而服务器从限制连接收到该吩咐,向客户端发起一个连接恳求到消息中指定的端口号,客户端收到该恳求以后就会建立一个数据连接。连接建立以后,服务器或客户就会主动通过该连接发送数据(可能是要传输的文件,也可能是用户在吩咐行上发出的IS吩咐的输出)。 二、 系统设计与实现 1 功能要求 本系统是一个在局域网内实
9、现的小型FTP文件传输服务器。主要实现的是FTP服务器端功能,包括:FTP服务日志,在线用户的管理,统计客户端信息还有客户端上传、下载、选择数据传输模式、变更书目等,并给出相应的提示。 2 主界面 程序界面主要包括服务器日志、在线用户、统计信息、平安管理、菜单栏、工具栏、状态栏。如图5所示。 图5 服务器用户界面 3 主要功能与实现 用CSocket类编制的服务器端的程序,其过程如下,其过程主要是: 创建CSocket对象。 创建底层套接字Socket。 调用Listen,起先监听从客户端发来的访问恳求。 假如收到恳求,调用CAsyncSocket:Accept( )函数进行接收外理。 建立C
10、SocketFile对象,并且使该对象与CSocket对象具备肯定的联系。 建立Carchive对象,以便实现卸装(接收)数据和存储(发送)数据的目的地址。当然,该Carchive对象应当与前面的CSocketFile对象建立联系。 运用Carchive对象在客户和服务器Socket之间传递数据,从而实现服务器Socket和客户机Socket之间的通信。值得留意的是,一个给定的Carchive对象只能在单一的方向上传递数据:或者接收,或者发送。一般状况下,可能须要两个Carchive对象来实现数据的双向传递。 3.1菜单栏功能模块 菜单拦包括:服务器,查看。 服务器菜单包括:起先,停止,用户账
11、户向导,用户账户等功能。 查看菜单包括:服务器日志,在线用户,配置,统计,平安等功能。 各项功能实现如下: 服务器功能: (1) 帐户向导:当你 登录服务器时你须要一个有效的账户,用户帐户向导将引导您通过必要的步骤,创建一个新的用户帐户。并将其添加到用户帐户对话框,创建用户名,如图6所示。 图6 用户帐户向导窗口 通过这个窗口你可以创建自己的用户名以及密码用以登陆FTP服务器,该部分功能实现代码如下: (2) 用户帐户功能:这一功能主要是服务器端添加,修改和删除用户帐户,设置书目权限(运用添加按钮以添加一个新书目,其中选定的用户帐户已具有访问权限,每小组书目您可以设定不同的权限,例如你可以给全
12、部权限到C:下载,但限制的权限为C :下载申请时,没有权限指定的书目,在这个书目中它会自动阻挡用户要求上传任何子书目)。书目属性,当您添加的编辑书目的用户帐户,书目属性对话框将显示物理书目(物理书目是真正的路径文件夹的名称)。虚拟书目(虚拟书目是一个物理文件夹的别名,当用户连接到您的FTP服务器,它将看到这个书目名而不是真正的物理名称)。设制服务端允许客户端的权限,例如允许客户端可以下载,上传,重命名哪些服务器端的文件内容。例如用户123将: E:盘设为许可书目,客户端就可以随时下载,上传E:盘里面的内容,如图7所示。 图7 用户帐户窗口 3.2 查看功能模块 (1) 服务器日志模块的功能:在
13、此屏幕,记录客户端与服务器端的连接信息以及传输信息,当客户端登陆服务器时服务器日志会显示是否与服务器连接胜利,当客户端要上传文件或是下载文件胜利时会记录服务器和FTP客户端的具体资料,从而有助于您追踪服务器与客户端之间全部的通讯讯息,数目之间的方括号 是线程ID,如图8所示。 图8 服务器日志窗口 (2) 在线用户模块的功能:通过服务器来查看在线客户端的用户名,用户IP地址,用户登陆时间等信息,如图9所示。 图9 在线用户窗口 (3) 配置模块的功能:配置FTP服务器全部的设置。默认服务器端口为21,可以同时连接最多用户数,客户端与服务器端连接时间(当客户端已闲置的详细时间,它会自动断开),欢
14、迎信息(当客户端连接到服务器时将会显示该文本),再见讯息(文本将显示当一个客户端从服务器断开时)其他设置,FTP服务器在Windows下启动,启动最小化在系统盘 ,并在启动时自动激活服务器。用户还可以将用户各种信息都记录在服务器日志里,如图10所示。 图10 配置界面 三、试验结论 本次试验实现了一个基于FTP协议的服务器系统,基本完成了FTP服务器所需的大多数功能。用户能够选择相应的数据传输模式,对指定的文件进行上传下载。通过该程序的开发,涵盖了一个FTP服务器所应当具有的功能,能够说明一般的FTP吩咐,符合相应的规范。 四、参考文献 1蔡勇.FTP服务器技术探讨及实现D.电子科技高校,20
15、05.2王占军,王伟,赵志刚.基于FTP协议的文件传输组件设计与实现J.沈阳师范高校学报(自然科学版),2022,03:375-377.3吴珂,卢秉亮,张磊.基于FTP协议客户端软件的实现J.沈阳航空工业学院学报,2006,04:39-42. 五、源代码 / stdafx.cpp : source file that includes just the standard includes / FTPServer.pch will be the pre-compiled header / stdafx.obj will contain the pre-compiled type informat
16、ion #include stdafx.h CString BrowseForFolder(HWND hWnd, LPCSTR lpszTitle, UINT nFlags) / Were going to use the shell to display a / Choose Directory dialog box for the user. CString strResult = ; LPMALLOC lpMalloc; if (:SHGetMalloc(&lpMalloc) != NOERROR) / failed to get allocator return strResult;
17、char szBuffer_MAX_PATH; char szDisplayName_MAX_PATH; BROWSEINFO browseInfo; browseInfo.hwndOwner = hWnd; / set root at Desktop browseInfo.pidlRoot = NULL; browseInfo.pszDisplayName = szDisplayName; browseInfo.lpszTitle = lpszTitle; browseInfo.ulFlags = nFlags; browseInfo.lpfn = NULL; browseInfo.lPar
18、am = 0; LPITEMIDLIST lpItemIDList; if (lpItemIDList = :SHBrowseForFolder(&browseInfo) != NULL) / Get the path of the selected folder from the item ID list. if (:SHGetPathFromIDList(lpItemIDList, szBuffer) / At this point, szBuffer contains the path the user chose. if (szBuffer0 = 0) / SHGetPathFromI
19、DList failed, or SHBrowseForFolder failed. AfxMeageBox(Failed to get directory, MB_ICONSTOP|MB_OK); return strResult; / We have a path in szBuffer! strResult = szBuffer; return strResult; else / The thing referred to by lpItemIDList / might not have been a file system object. / For whatever reason,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 信息 安全 实验 报告
限制150内