计算机专业毕业论文FTP协议分析与扩展.docx

上传人:b****8 文档编号:10343834 上传时间:2023-02-10 格式:DOCX 页数:36 大小:454.41KB
下载 相关 举报
计算机专业毕业论文FTP协议分析与扩展.docx_第1页
第1页 / 共36页
计算机专业毕业论文FTP协议分析与扩展.docx_第2页
第2页 / 共36页
计算机专业毕业论文FTP协议分析与扩展.docx_第3页
第3页 / 共36页
计算机专业毕业论文FTP协议分析与扩展.docx_第4页
第4页 / 共36页
计算机专业毕业论文FTP协议分析与扩展.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

计算机专业毕业论文FTP协议分析与扩展.docx

《计算机专业毕业论文FTP协议分析与扩展.docx》由会员分享,可在线阅读,更多相关《计算机专业毕业论文FTP协议分析与扩展.docx(36页珍藏版)》请在冰豆网上搜索。

计算机专业毕业论文FTP协议分析与扩展.docx

计算机专业毕业论文FTP协议分析与扩展

FTP协议分析与扩展

【摘要】本论文的目的是描述FTP的理论和消除大家对FTP的错误认识。

FTP在今天的网络模式中,特别是在国际互联网络中的应用存在较为严重的安全问题,但是随着ssl和sshFTPftp服务中的应用和自身的不断完善,使得FTP服务的安全性得到了很大的提高,可靠性得到了增强,FTP也随之发展到一个新的高度。

【关键词】FTP协议分析扩展

AnalysisAndExtensionofFTPProtocol

【Abstract】ThepurposeofthisthesispaperistodescribethetheoryofFTPandtoeliminatethemistakespeopletendtomakewithit.Intoday'snetworkmodes,especiallyintheapplicationoftheInternetnetworks,thereareserioussecurityproblemswithFTP.However,withtheapplicationofsslandssh,aswellastheincreasingimprovementofFTPserviceitself,thesecurityandreliabilityofFTPservicehavebothbeengreatlyenhanced,andthereforeFTPistogethercomingtoanewlevel.

【Keywords】FTPProtocolAnalysisExtend

 

1绪论

1.1选题背景

FTP服务已经是一种广为应用的网络服务,它是基于网络环境进行文件传输的文件传输系统,所有类型的文件几乎都可以转移。

但是在国际互联网上如此繁盛的今天,FTP显现出了自身存在的问题,无法安全的传输比较重要的资料。

很多人就开始对FTP失去了信心,认为FTP已经走到尽头了。

但是随着ssl和ssh在ftp服务中的应用和自身的不断完善,不仅增强了ftp的安全性,也使ftp的可靠性得到了提高,在这种情况下FTP得到了拯救,又重新得到了信任和支持,ftp得到了广泛的应用,ftp也随之发展到一个新的高度。

1.2选题意义

由于ftp在网络上以明文的方式传输数据,在网络上应用存在巨大的安全隐患,所以很多人错误的认为ftp无法走出这个困局,ftp的应用被替代而将慢慢消失。

本论文的目的主要是通过阐述ftp的基本理论和知识来消除大家对FTP的错误认识。

FTP是一种专门为当时相对而言比较封闭的互联网使用而设计的传输文件协议。

FTP目前存在的一个问题是如何解决无法实现自身验证的问题,如果这个问题得到解决FTP的安全性将上一个新的台阶。

FTP在今天的网络模式中,特别是在国际互联网络中的应用存在较为严重的安全问题,但是随着ssl和ssh在ftp服务中的应用和自身的不断完善,使得ftp服务的安全性得到了很大的提高,可靠性得到了增强,ftp也随之发展到一个新的高度。

1.3文献综述

本人在CNKI、维普数据库中查找了很多关于FTP协议分析及扩展相关的文章,目前关于FTP协议及扩展的研究,国内外都已经比较成熟,但是还有很多地方需要继续研究改进。

比如如何克服无法验证自身身份的缺点。

 

2研究理论基础

2.1研究工具及分析方法

2.1.1研究工具

1)ftp服务器Serv_U

2)ftp客户端工具flashftp

3)minisffer网络抓包工具

4)WildPacketsEtherPeek协议分析仪

2.1.2分析方法

利用抓包工具minisffer对客户端与ftp服务器交换的数据进行抓包分析,观察分析被截获的数据来证明ftp在网络上以明文的方式来传输数据。

 

3FTP分析

3.1FTP和TCP端口

基于是使用主动模式还是被动模式,FTP使用不一样的TCP端口号,在详细阐述FTP前,先简要介绍一下TCP端口号的一些基本概念。

TCP使用端口号来标识所发送和接收的应用,端口号可以帮助TCP来分离字节流并且帮相应字节传递给正确的应用程序。

TCP端口号可以是半永久的和暂时的。

服务器端监听在半永久的端口上来让客户端访问。

客户端使用暂时的端口在本地标识一个对话,客户端端口只在使用TCP服务时候才存在,而服务器端口只要服务器在运行就一直在监听。

TCP端口可以归为3类:

1)众所周知端口(Well-KnownPorts)

众所周知端口即知名的端口号,范围从0到1023,这些端口号一般固定的分配给某些服务。

例如:

21端口分配给FTP服务,25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务等。

这里要注意的一点是,某些系统协议使用固定的端口号,它是不能被改变的。

  

(2)动态端口(DynamicPorts)

  动态端口的范围从1024到65535,这些端口号可以供许多服务来使用。

运行的程序只需向系统提出访问网络的申请,系统就能够从分配一个端口号供该程序使用。

  这里要注意的是,动态端口常常被黑额程序所利用。

  (3)保留端口号

  Unix系统有保留端口号的概念。

只有具有超级用户特权的进程才允许给它自己分配一个保留端口号。

这些端口号介于1到1023之间,一些应用程序将它作为客户与服务器之间身份认证的一部分。

已经注册了的端口号原本决定分配只给注册的应用去使用,但是近些年来端口号已经陷入到了瓶颈,也许会看到原本应该是分配给注册应用使用的注册端口却被没有注册应用给用做成了临时的端口。

3.2ftp与tcp分析

3.2.1ftp分析

FTP(FileTransferProtocal),是文件传输协议的简称。

FTP的作用:

FTP的主要作用,就是让用户连接上一个远程主机,把远程主机上的文件下载到本地。

FTP工作原理

图ftp协议图

上图是ftp协议的官方协议图:

可以看出它主要是由两个socket组成的。

1,控制连接,主要是用于发送控制命令

2,数据连接,主要用于文件上传和下载时文件数据的传输.

ftp协议的建立流程:

首先,客户端建立一个套接字1,套接字绑定的IP和端口为ftp服务器的ip和著名端口21.注意套接字1建立时应该是面向连接的。

这时客户端就和服务器建立了控制连接。

然后,客户端就可以发送相关命令了

以传输文件为例,传输文件的一般步骤如下:

a)在本地电脑上登陆到国际互联网。

b)搜索有文件共享主机或者个人电脑。

c)当与远程主机或者对方的个人电脑建立连接后,用对方提供的用户名和口令登陆到该主机或对方的个人电脑。

d)在远程主机或对方的个人电脑登陆成功后,就可以上传你想跟别人分享的东东或者下载别人授权共享的资料。

e)完成工作后关闭FTP下载软件,切断连接。

为了实现文件传输,用户还要运行专门的文件传输程序,比如网际快车就有这方面的功能,其它还有很多专门的FTP传输软件,各有各的特色。

3.2.2tcp分析

TCP(TransmissionControlProtocol):

中文全称传输控制协议。

TCP是一种面向连接的、可靠的、基于字节流的运输层(Transportlayer)通信协议。

TCP的作用:

tcp的作用,主要用于在主机间建立一个虚拟连接,以实现高可靠性的数据包交换。

该协议传输模式中在将数据包成功发送给目标计算机后,TCP会要求发送一个确认;如果在某个时限内没有收到确认,那么TCP将重新发送数据包。

另外,在传输的过程中,如果接收到无序、丢失以及被破坏的数据包,TCP还可以负责恢复。

这是IP协议做不到的。

TCP工作原理:

TCP/IP协议参照OSI的七层参考模型,经过创造性的结合发展出了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

这4层分别为:

应用层、传输层、互连网络层、网络接口层。

a)应用层:

应用程序间沟通的层,如电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。

  b)传输层:

在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。

 c)互连网络层:

负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。

 d)网络接口层:

对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、SerialLine等)来传送数据。

3.3ftp与tftp分析

TFTP(TrivialFileTransferProtocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。

端口号为69。

3.3.1目的

  TFTP是一个传输文件的简单协议,它基于UDP协议而实现,但是我们也不能确定有些TFTP协议是基于其它传输协议完成的。

此协议设计的时候是进行小文件传输的。

因此它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证,它传输8位数据。

传输中有三种模式:

netascii,这是8位的ASCII码形式,另一种是octet,这是8位源数据类型;最后一种mail已经不再支持,它将返回的数据直接返回给用户而不是保存为文件。

3.3.2概况

  任何传输起自一个读取或写入文件的请求,这个请求也是连接请求。

如果服务器批准此请求,则服务器打开连接,数据以定长512字节传输。

每个数据包包括一块数据,服务器发出下一个数据包以前必须得到客户对上一个数据包的确认。

如果一个数据包的大小小于512字节,则表示传输结构。

如果数据包在传输过程中丢失,发出方会在超时后重新传输最后一个未被确认的数据包。

通信的双方都是数据的发出者与接收者,一方传输数据接收应答,另一方发出应答接收数据。

大部分的错误会导致连接中断,错误由一个错误的数据包引起。

这个包不会被确认,也不会被重新发送,因此另一方无法接收到。

如果错误包丢失,则使用超时机制。

错误主要是由下面三种情况引起的:

不能满足请求,收到的数据包内容错误,而这种错误不能由延时或重发解释,对需要资源的访问丢失(如硬盘满)。

TFTP只在一种情况下不中断连接,这种情况是源端口不正确,在这种情况下,指示错误的包会被发送到源机。

这个协议限制很多,这是都是为了实现起来比较方便而进行的。

3.3.3与其它协议的联系

  因为TFTP使用UDP,而UDP使用IP,IP可以还使用其它本地通信方法。

因此一个TFTP包中会有以下几段:

本地媒介头,IP头,数据报头,TFTP头,剩下的就是TFTP数据了。

TFTP在IP头中不指定任何数据,但是它使用UDP中的源和目标端口以及包长度域。

由TFTP使用的包标记(TID)在这里被用做端口,因此TID必须介于0到65,535之间。

对它的初始化我们在后面讨论。

TFTP头中包括两上字节的操作码,这个码指出了包的类型,下面是大体上的TFTP包格式。

  ---------------------------------------------------

  |LocalMedium|Internet|Datagram|TFTP|

  ---------------------------------------------------

3.3.4初始连接

初始连接时候需要发出WRQ(请求写入远程系统)或RRQ(请求读取远程系统),收到一个确定应答,一个确定可以写出的包或应该读取的第一块数据。

通常确认包包括要确认的包的包号,每个数据包都与一个块号相对应,块号从1开始而且是连续的。

因此对于写入请求的确定是一个比较特殊的情况,因此它的包的包号是0。

如果收到的包是一个错误的包,则这个请求被拒绝。

创建连接时,通信双方随机选择一个TID,因此是随机选择的,因此两次选择同一个ID的可能性就很小了。

每个包包括两个TID,发送者ID和接收者ID。

这些ID用于在UDP通信时选择端口,请求主机选择ID的方法上面已经说过了,在第一次请求的时候它会将请求发到TID69,也就是服务器的69端口上。

应答时,服务器使用一个选择好的TID作为源TID,并用上一个包中的TID作为目的ID进行发送。

这两个被选择的ID在随后的通信中会被一直使用。

下例是一个写入的例子,其中WRQ,ACK和DATA代表写入请求,确认和数据。

3.3.5TFTP相关应用

 1.主机A向主机B发出WRQ,其中端口为69

  2.B机向A机发出ACK,块号为0,包括B和A的TID

  此时连接建立,第一个数据包以序列号1从主机开始发出。

以后两台主机要保证以开始时确定的TID进行通信。

如果源ID与原来确定的ID不一样,这个包会被认识为发送到了错误的地址而被抛弃。

错误的包是被发送到正确端口的,但是包本身有错误。

设想发送方发出一个请求,这个请求在网络的那个设备中被复制成两个包,接收方先后接收到两个包。

接收方会认为为这是两个独立的请求,会返回两个应答。

当这两个应答其中之一被接收到时,连接已经建立。

第二个应答再到达时,这个包会被抛弃,而不会因为接收到第二个应答包而导致第一个建立的连接失败。

  3TFTP包

  TFTP支持五种类型的包,我们在以上已经说明这五种类型的包:

  opcodeoperation

  1Readrequest(RRQ)

  2Writerequest(WRQ)

  3Data(DATA)

  4Acknowledgment(ACK)

  5Error(ERROR)

  包头中包括了这个包所指定的操作码。

  2bytesstring1bytestring1byte

  ------------------------------------------------

  |Opcode|Filename|0|Mode|0|

  ------------------------------------------------

  Figure5-1:

RRQ/WRQ包

  RRQ和WRQ包(代码分别为1和2)的格式如上所示。

文件名是NETASCII码字符,以0结束。

而MODE域包括了字符串"netascii","octet"或"mail",名称不分大小写。

接收到NETASCII格式数据的主机必须将数据转换为本地格式。

OCTET模式用于传输文件,这种文件在源机上以8位格式存储。

假设每个机器都存在一个8位的格式,这样的假设是最一般的。

比如DEC-20,这是一种36位机,我们可以假设它是4个8位外加另外4位而构成。

如果机器收到OCTET格式文件,返回时必须与原来文件完全一样。

在使用MAIL模式时,用户可以在FILE处使用接收人地址,这个地址可以是用户名或用户名@主机的形式,如果是后一种形式,允许主机使用电子邮件传输此文件。

如果使用MAIL类型,包必须以WRQ开始,否则它与NETASCII完全一样。

我们的讨论建立在发送方和接收方都在相同模式的情况下,但是双方可以以不同的模式进行传输。

例如一个机器可以是一台存储服务器,这样一台服务器需要将NETASCII格式转换为自己的格式。

另外,我们可以设想DEC-20这种机器,它使用36位字长,用户这边可以使用特殊的机制一次读取36位,而服务器却可以仍然使用8位格式。

在这两种情况下,我们看到了两台机器使用不同格式的情况。

可以在两台主机间定义其它的传输方式,但是定义要小心,因为这种传输方式不为人知,而且也没有权威机构为其指定名称或定义它的模式。

  2bytes2bytesnbytes

  ----------------------------------

  |Opcode|Block#|Data|

  ----------------------------------

  Figure5-2:

DATA包

  数据在数据包中传输,其格式如上图所示。

数据包的OP码为3,它还包括有一个数据块号和数据。

数据块号域从1开始编码,每个数据块加1,这样接收方可以确定这个包是新数据还是已经接收过的数据。

数据域从0字节到512字节。

如果数据域是512字节则它不是最后一个包,如果小于512字节则表示这个包是最后一个包。

除了ACK和用于中断的包外,其它的包均得到确认。

发出新的数据包等于确认上次的包。

WRQ和DATA包由ACK或ERROR数据包确认,而RRQ数据包由DATA或ERROR数据包确认。

下图即是一个ACK包,操作码为4。

其中的包号为要确认的数据包的包号。

  2bytes2bytes

  ---------------------

  |Opcode|Block#|

  ---------------------

  Figure5-3:

ACK包

  WRQ数据包被ACK数据包确认,WRQ数据包的包号为0。

  2bytes2bytesstring1byte

  -----------------------------------------

  |Opcode|ErrorCode|ErrMsg|0|

  -----------------------------------------

  Figure5-4:

ERROR包

  一个ERROR包,它的操作码是5,它的格式如上所示。

此包可以被其它任何类型的包确认。

错误码指定错误的类型。

错误的值和错误的意义在附录中。

错误信息是供程序员使用的。

3.3.6正常终止

  传输的结束由DATA数据标记,其包括0-511个字符。

这个包可以被其它数据包确认。

接收方在发出对最后数据包的确认后可以断开连接,当然,适当的等待是比较好的,如果最后的确定包丢失可以再次传输。

如果发出确认后仍然收到最后数据包,可以确定最后的确认丢失。

发送最后一个DATA包的主机必须等待对此包的确认或超时。

如果响应是ACK,传输完成。

如果发送方超时并不准备重新发送并且接收方有问题或网络有问题时,发送也正常结束。

当然实现时也可以是非正常结束,但无论如何连接都将被关闭。

3.3.7早终结

如果请求不能被满足,或者在传输中发生错误,需要发送ERROR包。

这仅是一种传输友好的方式,这种包不会被确认也不会被重新传输,因此这种包可能永远不会被接收到。

因此需要用超时来侦测错误。

3.4ftp与tftp的区别

FTP是完整、面向会话、常规用途文件传输协议。

而TFTP用作bonesbare-特殊目的文件传输协议。

交互使用FTP。

TFTP允许仅单向传输的文件。

   FTP提供身份验证。

而TFTP不。

   

FTP使用已知TCP端口号:

20的数据和21用于连接对话框。

TFTP用于UDP端口号69其文件传输活动。

   

因为TFTP不支持验证WindowsNT,所以FTP服务器服务不支持TFTP。

   

FTP依赖于TCP,是面向连接并提供可靠的控件。

TFTP依赖UDP,需要减少开销,几乎不提供控件。

   

简单文件传送协议TFTP(TrivialFileTransferProtocol)是一个TCP/IP协议族中一个很小且易于实现的文件传送协议。

TFTP也是使用客户服务器方式,但它使用UDP数据报,因此TFTP需要有自己的差错改正措施。

   TFTP的主要特点是:

   

(1)每次传送的数据PDU中有512字节的数据,但最后一次可不足512字节。

   

(2)数据PDU也称为文件块(block),每个块按序编号,从1开始。

   (3)支持ASCII码或二进制传送。

   (4)可对文件进行读或写。

   (5)使用很简单的首部。

   (6)TFTP只支持文件传输而不支持交互;

   (7)TFTP没有一个庞大的命令集;

   (8)没有列目录的功能;

   (9)也不能对用户进行身份鉴别。

   TFTP的工作很像停止等待协议。

例如:

   

(1)发送完一个文件块后就等待对方的确认,确认时应指明所确认的块编号。

   

(2)发完数据后在规定时间内收不到确认就要重发数据PDU。

   (3)发送确认PDU的一方若在规定时间内收不到下一个文件块,也要重发确认PDU。

这样就可保证文件的传送不致因某一个数据报的丢失而告失败。

TFTP在一开始工作时,客户进程发送一个读请求PDU或写请求PDU给TFTP服务器进程,其熟知端口号码为69。

TFTP服务器进程要选择一个新的端口和TFTP客户进程进行通信。

若文件长度恰好为512字节的整数倍,则在文件传送完毕后,还必须在最后发送一个只含首部而无数据的数据PDU;若文件长度不是512字节的整数倍,则最后传送数据PDU的数据字段一定不满512字节,这正好可作为文件结束的标志。

3.5FTP模式分析

当对一个FTP问题进行排错时候,首先要问的一个问题是使用的是port模式的还是passive模式。

因为这两种行为迥异,所以这两种模式引起的问题也不同;在过去,客户端缺省为active(port)模式;近来,由于Port模式的安全问题,许多客户端的FTP应用缺省为Passive模式。

FTP支持两种模式。

这两种模式被称为“标准”(或PORT,或“主动”)和“被动”(或PASV)。

“标准”模式FTP客户端会向FTP服务器发送PORT命令。

“被动”模式客户端会向FTP服务器发送PASV命令。

这些命令是在建立FTP会话时通过FTP命令通道进行发送的。

2种模式FTP客户端都要建立一个到FTP服务器上TCP端口21的连接。

客户选择大于1024的端口发起连接,此连接会建立FTP命令通道。

不能列目录是因为FTP使用不同的通道来传递数据,这也是FTP不同于HTTP服务的地方,HTTP需要一条通道就可以了。

serv-u默认的方式就是PORT方式。

PORT方式能连接、也能列目录、能下载文件,PASV方式能连接、不能列目录下载文件。

3.5.1FTP的主动模式(Port模式)

3.5.1.1主动模式

在主动模式中,FTP服务器绑定了两个端口:

21和20(这两个端口是默认值,可以设成别的端口)。

其中21端口负责客户端和服务器之间的命令传送。

一开始,由客户端主动连接服务端的21端口,并且向服务器发送相应的FTP命令。

另外一个端口20是负责客户端和服务端的数据传送。

但要注意,并不是客户端主动连接服务端的20端口,而是在客户端创建一个使用匿名端口的服务端连接(在Java中就是创建一个ServerSocket对象,并且绑定端口是0)。

然后客户端通过21端口将这个匿名端口通知服务端。

最后,服务端主动连接客户端的这个匿名端口(所以这种模式叫主动模式,就是服务器主动连接客户端)。

主动模式的工作原理。

图主动模式的工作原理

从上图可以看出,在主动模式中,在传送命令和数据时,建立连接的过程是相反的。

也就是说,在传送命令时,由客户端主动连接服务器的21端口。

而传送数据时,由服务器主动连接客户端的匿名端口。

这种方式是FTP服务器最初的工作模式,但这种模式

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1