一:ftp 简介
1:ftp服务:
internet 是一个非常复杂额计算机环境,其中有pc/mac/小型机/大型机等。而在这些计算机上运行的操作系统也是五花八门,有 unix、Linux、微软的windowns、DOS,也有苹果机上运行的Mac OS.他么都采取了各自的技术规范,所以Internet发展的初期,要在这些系统之间进行文件传输是一件非常困难的事情。而FTP的设计就是为解决各种系统之间的文件交流问题。
Ftp 为了所有使用的该服务进行文件传输的主机建立一个统一的协议。基于不同操作系统的主机可以使用不同的FTP应用程序。但所有这些应用程序都必须遵循FTP协议。这样用户就可以把自己的文件传送其他人或者从其他计算机中获取文件。
Ftp采用客户端/服务器的工作模式(C/S结构),通过TCP协议建立客户端和服务器之间的连接,但与其他大多数的应用协议不同。FTP协议在客户端和服务器之间建立了两条通信链路、分别是控制链路和数据链路。其中,控制链路负责FTP会话过程中FTP命令的发送和接收。数据链路则负责数据的传输。FTP客户端与服务器之间的通信过程如下所示:
1):用户使用支持FTP协议的客户端程序,连接到 在远程的FTP服务器程序上。
2):用户使用客户端程序进行ftp文件的上传下载。ftp客户端程序会通过控制链路向FTP服务器发出相应的控制命令。
3):服务器程序接收并执行用户所发出的命令。
4):最后,FTP服务器将执行用户发出的命令。
比如说:用户发出一条命令,要求从服务器中下载某个文件,服务器会响应这个命令,将指定文件数据通过链路传送到用户的机器上。客户机程序接收到这个文件后,将其存放在用户目录中。
默认情况,ftp服务器端程序使用两个预备分配的端口号:22和21 。分别用于数据链路 和控制链路。其中,20 端口只有在传输数据的才会打开,并在数据传输结束后关闭。FTP服务器通过21端口监听客户端的连接请求。所以端口是一直保持打开状态。
ftp的数据传输有2种方式:bin(二进制)和asc(ascii码)。其中 bin 是以二进制的方式传输数据,被传输的文件内容不会在任何改变。而asc则是以ascii方式进行传输,应该使用bin的方式在不同的平台下传输文件时,文件的内容会发生改变。所以对于二进制文件,应该使用bin的方式进行传输,否则可能会导致文件无法使用。
使用FTP时必须首先登录,输入正确的用户名和密码,通过服务器端的验证并获取访问权限。才能上传下载文件,除此之外,FTP还提供了另外一种访问的验证模式:匿名FTP,通过这种方式,用户可以在不知道FTP服务器帐号和密码的情况下连接到远程主机上并传输文件。
通过ftp客户端程序匿名FTP服务器的方式同连接的FTP服务器的方式差不多,只是在用户验证的时候,必须输入anonymous,而密码可以是任意的字符串。习惯上一般使用自己的email地址作为密码,使系统维护程序能记录谁在存取这些文件。