南京大学信息管理学院Poorbear@sina.comFtp及其他下载技术邓三鸿Poorbear@sina.com南京大学信息管理学院Poorbear@sina.com下载技术一览•C/S模式–Ftp为代表•P2P模式–Bt为代表南京大学信息管理学院Poorbear@sina.com关于FtpFTP协议的全称是FileTransferProtocol(文件传输协议),顾名思义,它是用来传输文件的一种协议。FTP协议已经存在了很久,以前都是用在UNIX的工作站和服务器之间,用来传输远程的文件,而且都是采用文字的操作命令。南京大学信息管理学院Poorbear@sina.comFtp命令1ftp[host][port]进入ftp命令状态openhost[port]重新建立一个新的连接.dir/ls[remote-directory][local-file]列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件.cddirectory:同UNIX的CD命令.cdup:返回上一级目录.close:终止远端的FTP进程,返回到FTP命令状态,quit:退出ftp命令状态南京大学信息管理学院Poorbear@sina.comFtp命令2get[remote-file][local-file]从远端主机中传送至本地主机中.mkdirdirectory-name在远端主机中建立目录.putlocal-file[remote-file]将本地主机一文件传送至远端主机Help/?[command]输出命令的解释南京大学信息管理学院Poorbear@sina.com常用Ftp服务软件•Serv_U•IIS南京大学信息管理学院Poorbear@sina.com常用Ftp客户端软件•IE•CuteFtp功能很强大,占资源也不少•LeapFtpLeapftp速度很快,对代理的支持不大好•FlashFxp具备在两台主机之间在后台传输文件的能力,速度不快。南京大学信息管理学院Poorbear@sina.com例南京大学信息管理学院Poorbear@sina.comFtp协议的特点大多数的TCP服务是使用单个的连接,一般是客户向服务器的一个周知端口发起连接,然后使用这个连接进行通讯。但是,FTP协议却有所不同,它使用双向的多个连接,而且使用的端口很难预计。南京大学信息管理学院Poorbear@sina.comFTP连接•一个控制连接(controlconnection)这个连接用于传递客户端的命令和服务器端对命令的响应。它使用服务器的21端口,生存期是整个FTP会话时间。•几个数据连接(dataconnection)这些连接用于传输文件和其它数据,例如:目录列表等。这种连接在需要数据传输时建立,而一旦数据传输完毕就关闭,每次使用的端口也不一定相同。而且,数据连接既可能是客户端发起的,也可能是服务器端发起的。南京大学信息管理学院Poorbear@sina.comFtp的C/S模式OperatingsystemdataprocesscontrolprocessOperatingsystemcontrolprocessdataprocessclientserverTCP/IPInternet南京大学信息管理学院Poorbear@sina.comFtp工作模式1Port(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。Local:12345-ftp.nju.edu.cn:21就是说我从我的机器的12345端口向njuftp的21端口发起连接登录和验证密码这个过程都是在这个连接里面验证的。其他操作走的不是这个连接(ls列目录和下载数据等)ftp客户端会向服务器端发送一个命令:portxxxxxxx意思是告诉服务器,自己的IP和自己的一个端口,然后由服务器来主动连接这个端口.所以数据连接是这样的:ftp.nju.edu.cn:20-Local:54321如果服务器端有防火墙,那么如果需要别人正常访问的话就要:1.允许别人访问自己的21端口2.允许自己访问别人的任意端口南京大学信息管理学院Poorbear@sina.comFtp工作模式2•PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。•Local:54312-ftp.nju.edu.cn:55555如果客户端有防火墙,那么应该用passive模式连接外面的ftp否则数据连接无法建立南京大学信息管理学院Poorbear@sina.comFTP客户端的注意事项选择用PASV方式还是PORT方式登录FTP服务器,选择权在FTP客户端。一、客户端只有内网IP,没有公网IP从上面的FTP基础知识可知,如果用PORT方式,因为客户端没有公网IP,FTP将无法连接客户端建立数据链路。因此,在这种情况下,客户端必须要用PASV方式,才能连接FTP服务器。大部分人登录不上,典型的错误原因就是因为客户端没有公网IP,但用了IE作为FTP客户端来登录(IE默认使用PORT方式)。二、客户端有公网IP,但安装了防火墙如果用PASV方式登录FTP服务器,因为建立数据链路的时候,是由客户端向服务器发送连接请求,没有问题。反过来,如果用PORT方式登录FTP服务器,因为建立数据链路的时候,是由服务器向客户端发送连接请求,此时连接请求会被防火墙拦截。如果要用PORT方式登录FTP服务器,请在防火墙上打开1024以上的高端端口。南京大学信息管理学院Poorbear@sina.comIIS下的FtpServer南京大学信息管理学院Poorbear@sina.com南京大学信息管理学院Poorbear@sina.com南京大学信息管理学院Poorbear@sina.com南京大学信息管理学院Poorbear@sina.com南京大学信息管理学院Poorbear@sina.com用Serv_U架设FtpServer南京大学信息管理学院Poorbear@sina.com关于安装路径的选择•安装路径的不良习惯:把所有程序都安装到默认的%system%\programfiles\下。普通软件是没有什么大问题的,但是这对于服务类软件和安全类软件是非常危险的,在默认情况下user对programfiles的权限是可访问可运行的,对于黑客来说,无需夺得管理员权限就可随意关掉你的防火墙病毒墙,把需要的文件共享,很简单就达到完全入侵的目的。建议:把Serv-u安装到权限已设置好的安全目录中去较为稳妥南京大学信息管理学院Poorbear@sina.com建立FTP服务器南京大学信息管理学院Poorbear@sina.com新建域的服务器IP南京大学信息管理学院Poorbear@sina.com添加新建域的域名南京大学信息管理学院Poorbear@sina.com选择服务端口南京大学信息管理学院Poorbear@sina.com选择域类型南京大学信息管理学院Poorbear@sina.com完成南京大学信息管理学院Poorbear@sina.com域设置1南京大学信息管理学院Poorbear@sina.com域设置2南京大学信息管理学院Poorbear@sina.com域设置3_1南京大学信息管理学院Poorbear@sina.com域设置3_2Message变量的使用%Time-目前的时间%Date-目前的日期%UNow-目前的联机人数%UAll-从激活到目前为止的联机人次%U24h-在过去24小时内的联机人次%MaxUsers-总连接人数上限%MaxAnonymous-匿名帐号人数上限(AnonymousFTP)%Name-帐号名称%IP-对方主机名称/地址(Hostname/IP)%DIR-目前的目录%Disk-目前的磁盘驱动器名(C:D:.....)%DFree-磁盘剩余空间%Fup-上传文件个数%Fdown-下传文件个数%Ftot-总传文件数%Bup-上传字节数%Bdown-下传字节数%Btot-总传输字节数%Tconm-联机时间数(以分为单位)%Tcons-联机时间数(以秒为单位,与%tconm配合使用)南京大学信息管理学院Poorbear@sina.com域设置3_3例如:◎来自%IP的朋友您好。◎PoorbearFtp开通以来已接通%UAll位使用者。◎过去24小时总共有%U24h次连接。◎目前有%UNow位使用者在线,最多容许%MaxAnonymous位使用者同时在线。效果可能是...220-Serv-UFTP-Serverv2.5iforWinSockready...220-◎来自xxx.xxx.xxx.xxx的朋友您好。220-◎PoorbearFtp开通以来已接通132445位使用者。220-◎过去24小时总共有213次连接。220-◎目前有xxx位使用者在线,最多容许100位使用者同时在线。南京大学信息管理学院Poorbear@sina.com域设置4南京大学信息管理学院Poorbear@sina.com域设置5南京大学信息管理学院Poorbear@sina.com日志南京大学信息管理学院Poorbear@sina.com组权限1南京大学信息管理学院Poorbear@sina.com组权限2南京大学信息管理学院Poorbear@sina.com用户设置1南京大学信息管理学院Poorbear@sina.com用户设置2南京大学信息管理学院Poorbear@sina.com用户设置3南京大学信息管理学院Poorbear@sina.com用户设置4南京大学信息管理学院Poorbear@sina.comP2P下载•BT(BitTorrent)•E-donkey/Emule南京大学信息管理学院Poorbear@sina.com下载模式南京大学信息管理学院Poorbear@sina.comEDonkey•或eMule•参考地址南京大学信息管理学院Poorbear@sina.comBT介绍:软件:种子:@sina.comED/BT区别•ED--要连上一个固定serverBT--没有固定server,只要分享者制作出该分享档案的.torrent档公布出来便可•ED--分享的人越多速度越快?BT--种子seed越多速度越快•ED--世界性的分享BT--团体性的分享(可做到速度保证)•ED--知道在分享者的username&速度BT--显示IP/速度南京大学信息管理学院Poorbear@sina.comBT原理分析•Tracker即时接收所有下载者信息(IP地址和端口),并且给每个下载者一份随机的peer列表。•下载者每隔一段时间连一次Tracker,告知自己的进度和取得列表,这样就可以和那些已经直接连接上的peer进行数据的上传下载。•在进行文件传输时,每个文件一般被划分成256K的大小的块,每个块都计算其校验值。用户间互相的Choke和UnChoke对方,来交换这些文件块。TrackerPeerPeerPeerPeerPeerPeer南京大学信息管理学院Poorbear@sina.com其他P2P•视频–PPlive–PPStream•音频–skype南京大学信息管理学院Poorbea