您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 网络协议的实现与应用实训报告
郑州轻工业学院本科实验报告网络协议的实现与应用实训学院计算机与通信工程学院专业年级网络运维姓名王冲学号541207110136指导老师一、实训目的(1)理解FTP协议的工作原理,掌握FTP服务器的安装和配置方法。(2)掌握FTP客户端的开发方法。(3)掌握ICMP报文的格式和各字段含义,理解Ping程序的工作原理,掌握ICMP协议在Ping命令中的应用。二、实训任务查阅相关资料,独立完成以下实训任务,并撰写实训报告。1.FTP服务器的搭建(可在虚拟机上搭建)使用Serv-U架设FTP服务器,设定多个FTP服务器,限定登录用户的权限、登录目录及服务器空间大小。2.FTP客户端的设计与实现理解FTP工作原理,用自己熟悉的程序设计语言来实现FTP客户端。FTP客户端分为连接模块、文件管理模块、文件传输模块和辅助管理模块。3.基于ICMP协议的应用的实现设计并实现基于ICMP协议的网络命令PING程序三、实训步骤任务一、架设FTP服务器对课题任务进行分析,按要求架设FTP服务器并对账户进行设置,限定登录用户的权限、登录目录及服务器空间大小。下载并运行Serv-U,出现“设置向导”窗口,然后按照这个向导的指引进行配置。具体步骤如下:(1)设置Serv-U的IP地址与域名单击“下一步”跳过系统提示信息,来到“您的IP地址”窗口,输入本机的IP地址。下一步,进行“域名”设定。这个域名只是用来标识该FTP域,没有特殊的含义,比如按照班级学号输入“ftp.xxaq1001.com”。接下来的“系统服务”选项必须选“是”,这样当用户的电脑一启动,服务器也会跟着开始运行。(2)设置匿名登录匿名访问就是允许用户以Anonymous为用户名,无需特定密码即可连接服务器并拷贝文件。如果用户不想让陌生人随意进入用户的FTP服务器,或想成立VIP会员区,就应该在“匿名账号”窗口中选“否”,这样就只有经过用户许可的账号才能登录该FTP。鉴于匿名登录尚有一定的实用需求,可以选“是”。之后就要为匿名账户指定FTP上传或下载的主目录,这是匿名用户登录到FTP服务器后看到的目录。设定后,向导还会继续询问用户是否将匿名用户锁定于此目录中,从安全的角度考虑,建议选“是”。这样匿名登录的用户将只能访问用户指定的主目录及以下的各级子目录,而不能访问上级目录,便于保证硬盘上其他文件的安全。(3)创建新账户除了匿名用户,用户一般还需要建立有密码的专用账号,也就是说可以让指定用户以专门的账号和密码访问用户的服务器,这样做适用于实行会员制下载或只让好友访问。在“命名的账号”窗口中将“创建命名的账号吗?”选为“是”,进入“账号名称”设置,填入用户制定的账号名称,而后在“账号密码”窗口输入该账号的密码。单击“下一步”,会要求用户指定FTP主目录,并询问是否将用户锁定于主目录中,选“是”,作用与匿名账户设定基本相同,不再赘述。紧接着要设置该账户的远程管理员权限,分为“无权限”、“组管理员”、“域管理员”、“只读管理员”和“系统管理员”五种选项,每项的权限各不相同,可根据具体情况进行选择。至此,用户已拥有了一个域——ftp.xxqn1001.com及两个账号——Anonymous和xxqn0901。点击“完成”退出向导,稍等片刻Serv-U软件主界面将自动弹出,用户还要在此进行一些管理员设置。(4)管理员设置在Serv-U管理员界面,每个Serv-U引擎都能用来运行多个虚拟的FTP服务器,而虚拟的FTP服务器就称为“域”。对FTP服务器来说,建立多个域是非常有用的,每个域都有各自的用户、组和相关的设置。下面简要介绍管理器界面上必要的各项设置。首先点击窗体左方的“本地服务器”,选择右边的“自动开始(系统服务)”。选择左方的“域→活动”,这里记载了该域下所有用户的活动情况,是非常重要的监控数据。“域→组”:在此可自建一些用户组,把各类用户归到相应的组中,便于管理。“域→用户”:这里有用户刚建立的两个账号,其中的细节设置十分重要,具体如下。a)账号:如果有用户违反FTP的规定,用户可以点击此处的“禁用账号”,让该用户在一段时间内被禁止登录。另外此处的“锁定用户于主目录”一定要勾选,否则用户硬盘的绝对地址将暴露。b)常规:根据自身的实际需要,在此设置最大的下载和上传速度、登录到本服务器的最大用户数、同一IP地址的登录线程数等。c)IP访问:用户可以在此拒绝某个讨厌的IP地址访问用户的FTP服务器,只要在“编辑规则”处填上某个IP地址,以后该IP的访问将会全部被拦下。d)配额:选择“启用磁盘配额”,在此为每位FTP用户设置硬盘空间。点击“计算当前”,可知当前的所有已用空间大小,在“最大”一栏中设定最大的空间值。最后,请在有改动内容的标签卡上点击右键,选择“应用”,如此才能使简单的个人FTP服务器设置生效。任务二、利用C#/C++实现FTP客户端在理解了FTP工作原理后,利用C#/C++语言来设计和开发FTP客户端。FTP客户端分为连接模块、文件管理模块、文件传输模块和辅助管理模块。连接模块实现主机与服务器的连接的功能;文件管理模块实现新建文件、删除文件等功能;文件传输模块实现主机与服务器连接成功后上传和下载文件功能。辅助管理模块实现一些相关功能,如读写配置INI文件。FTP客户端软件系统连接模块上传模块下载模块发起连接接收连接上传文件下载文件1.系统界面设计为了使用户能够方便的使用FTP客户端,本系统实现过程中将用户登录和信息显示整合在一个窗体中。FTP客户端仅设置一个主窗体,主窗体中显示以下信息。用户登录:用来让用户输入服务器IP,用户名,密码。本系统为简单起见,此处将服务器配置在本机,并设定了有效用户名和密码。上下载队列显示:显示正在上传或者下载的文件。当用户上传、下载文件时,对应的FTP服务器会根据FTP相关命令和响应码显示上传、下载文件的相关信息。按钮操作:用户可以通过点击登录、上传、下载按钮来实现客户端的具体操作。信息显示:显示服务器目录和文件列表,当对文件进行相关操作时,会显示服务器的返回信息。FTP客户端主界面图示:2.连接模块系统的连接模块主要是给用户提供一个连接FTP服务器(使用serv-u软件实现)的平台,只有成功连接到FTP服务器,FTP客户端才可以登录到FTP服务器进行相关的操作。系统连接模块图如图所示:连接模块发起连接接收连接连接模块功能图3.用户登录该简单FTP客户端系统是为了方便用户实现资源共享而设计的软件,用户通过登录到服务器端,进行文件的上传或者下载来完成资源的共享。本系统设置的登录界面和主界面在一起,当运行程序时,系统会默认的显示出服务器的IP地址,用户名以及密码,用户无需再手动输入相关信息,点击“登录”按钮后向FTP服务器发送信息,然后FTP客户端显示服务器目录和文件列表,并且还显示服务器返回的信息。4.登录属性设置为使客户端能登录服务器,须设置以下属性:(1)FTP服务器IP:tbxServerIp(为简单起见,置为127.0.0.1)(2)用户名:tbxUsername(3)密码:tbxPassword(4)说明:txtport(一般为21,这里我们为简单起见将端口号设为21)tbxUsername及tbxPassword代表登录此FTP服务器所需要的用户名及密码,若点击匿名,则代表是以anonymous(匿名)身份登入;若输入用户名与密码,Connect会以此做为其用户名及密码与FTP服务器建立连接;随后是对“登录”按钮的设置,实现与服务器端的连接。5.登录模块代码///summary登录/summaryprivatevoidbtnlogin_Click(objectsender,EventArgse){if(tbxServerIp.Text==string.Empty){MessageBox.Show(请先填写服务器IP地址,提示);return;}ftpUristring=ftp://+tbxServerIp.Text;networkCredential=newNetworkCredential(tbxUsername.Text,tbxPassword.Text);if(ShowFtpFileAndDirectory()==true){btnlogin.Enabled=false;btnlogout.Enabled=true;lstbxFtpResources.Enabled=true;lstbxFtpState.Enabled=true;tbxServerIp.Enabled=false;if(chkbxAnonymous.Checked==false){tbxUsername.Enabled=false;tbxPassword.Enabled=false;chkbxAnonymous.Enabled=false;}else{chkbxAnonymous.Enabled=false;}tbxloginmessage.Text=登录成功;btnUpload.Enabled=true;btndownload.Enabled=true;btnDelete.Enabled=true;}else{lstbxFtpState.Enabled=true;tbxloginmessage.Text=登录失败;}}6.上传模块代码///summary///上传文件////summaryprivatevoidbtnUpload_Click(objectsender,EventArgse){//选择要上传的文件OpenFileDialogopenFileDialog=newOpenFileDialog();openFileDialog.FileName=openFileDialog.FileNames.ToString();openFileDialog.Filter=所有文件(*.*)|*.*;if(openFileDialog.ShowDialog()!=DialogResult.OK){return;}FileInfofileinfo=newFileInfo(openFileDialog.FileName);try{stringuri=GetUriString(fileinfo.Name);FtpWebRequestrequest=CreateFtpWebRequest(uri,WebRequestMethods.Ftp.UploadFile);request.ContentLength=fileinfo.Length;intbuflength=8196;byte[]buffer=newbyte[buflength];FileStreamfilestream=fileinfo.OpenRead();StreamresponseStream=request.GetRequestStream();lstbxFtpState.Items.Add(打开上传流,文件上传中...);intcontenlength=filestream.Read(buffer,0,buflength);while(contenlength!=0){responseStream.Write(buffer,0,contenlength);contenlength=filestream.Read(buffer,0,buflength);}responseStream.Close();filestream.Close();FtpWebResponseresponse=GetFtpResponse(request);if(response==null){lstbxFtpState.Items.Add(服务器未响应...);lstbxFtpState.TopIndex=lstbxFtpState.Items.Count-1;return;}lstbxFtpState.Items.Add(上传完毕,服务器返回:+response.StatusCode++response.Statu
本文标题:网络协议的实现与应用实训报告
链接地址:https://www.777doc.com/doc-6188818 .html