欢迎来到天天文库
浏览记录
ID:15590951
大小:270.50 KB
页数:20页
时间:2018-08-04
《加深对tcpip协议的理解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1.加深对TCP/IP协议的理解2.了解FTP协议的工作原理以及它与TCP/IP协议的关系3.掌握用MFC编写FTP协议的实现程序本实验将介绍FTP协议的工作原理及其与TCP/IP协议的关系,并在VisualC++6.0的环境下实现FTP下载工具。在完成本实验之后,请思考下列问题:1.为什么FTP协议选择TCP/IP协议作为其实现协议?2.FTP协议与HTTP协议有什么不同?3.在一个FTP连接成功建立后,客户端和服务端是否还依然保持连接?4.代码未完成UPLOAD功能,请同学们课下独立完成。一.什么是FTP协议FTP(FileTransferProtocol)协议是
2、从一个系统向另一个系统传递文件的标准协议。FTP的目标是促进文件和程序的共享。鼓励间接和含蓄的使用远程计算机。使用户不必面对主机间使用的不同的文件存储系统。有效和可靠地传输文件。FTP,是设计成让别的程序使用的,尽管用户可以直接通过终端来使用。约有二十年时间,研究者调查了相当广泛的文件传输方法。FTP经历了多次改变。1971年作了第一次定义。(整个的说明参见RFC114)FTP(FileTransferProtocol)协议是TCP/IP的应用,它工作在应用层,是一种高级协议。它通过两个TCP连接来传输一个文件,这两个连接分别为控制连接和数据连接。服务器以被动的方式打
3、开某个端口(一般是21号端口),它以通常的客户服务器方式建立,等待客户的连接;客户则以主动方式打开TCP端口来建立连接。然后,由用户来向服务器发送命令。数据连接是一种全双工的连接。一个连接建立起来后,目标文件服务器必须运行一个FTP服务软件。FTPD是标准的FTP服务daemon。它的功能很简单:回复inetd(inetd是服务器启动的守护进程,提供Internet服务的守护进程的连接请求。)收到的连接请求,并满足这些要传输文件的请求。这个daemon在许多发行版的UNIX中是个标准。 FTPD等待一个连接请求。当这样的一个请求到达时,FTPD请求用户登录。用户提供
4、它的合法的登录名和口令或匿名登录。 一旦登录成功,用户可以下载文件了。在某些情况下,如果服务器的安全允许,用户可以上载文件。FTP的控制连接是通过TELNET的连接来传输命令的。其工作原理如图:Client端用户用户FTP程序用户命令控制器用户数据传输控制文件系统服务端控制器服务器数据传输控制文件系统控制连接数据连接二.一个标准的FTP例程在Windows中,IE内嵌了FTP的Client端,这里就不作介绍了。为了让大家更深入的理解FTP的工作过程,我们用基本命令与FTP服务器连接。具体步骤如下:1.在Windows开始菜单下的“运行”中键入command,进入Ms
5、dos界面。2.在命令行下键入,ftpftp.cs.sjtu.edu.cn3.如果连接成功,服务器将提示你输入用户名,请键入anonymous,遇到Password直接回车即可。4.键入dir命令,可列出当前目录的内容。get[文件名]可将文件下在至当前目录。至于更多的命令,同学们可用ftp-?来查看help,这里就不多讲了。可以看出FTP客户端是通过命令的方式与服务器交互,从而来获得服务的。我们自己编写程序也要通过这种方法来实现客户端。三.连接的建立控制连接的建立比较简单,可以通过对指定套接字的IP地址和端口来建立。对于数据连接就比较复杂。数据连接机制包括建立连接和
6、选择数据参数。用户和服务器数据传输进程有默认的数据端口,用户进程默认数据端口和控制连接端口相同;服务器进程默认数据端口和控制连接端口相邻。被动数据传输进程在数据端口接收数据,FTP的请求命令决定数据传输的方向。服务器在接受到请求以后,将初始化端口的数据连接。当连接建立后,传输在数据连接之间传送,服务器协议解释器向用户协议解释器返回应答。通过PORT命令可以改变端口。服务器在下面情况下关闭数据连接:l服务器结束发送数据,通过EOF要求中止传送;l用户发送ABORT命令;l用户改变端口;l控制连接关闭;l发生不可恢复的错误;1.数据连接的管理所有FTP必须支持默认数据端口
7、上数据连接,并且只有用户协议解释器能够初始化非默认端口的使用。其有两种操作:(1)确定非默认数据端口:用户协议解释器可以使用PORT命令指定非默认端口,他要求服务器以PASV确定非默认数据端口。(2)数据连接的重用:在流式数据传输时,文件结束通过关闭连接指示。但是,当要传送多个文件时会发生错误。解决方法有两个:一是确定非默认端口,另一个是使用另一种传输模式。2.传输模式FTP定义了三种文件传输模式:流模式、块模式和压缩模式。(1)流模式:数据以字节流的形式传送。它对使用的数据表示类型没有限制,允许记录结构。(2)块模式:文件一块形式传送。块带有自己的
此文档下载收益归作者所有