【硕士论文】FTP服务器技术研究及实现.pdf_第1页
【硕士论文】FTP服务器技术研究及实现.pdf_第2页
【硕士论文】FTP服务器技术研究及实现.pdf_第3页
【硕士论文】FTP服务器技术研究及实现.pdf_第4页
【硕士论文】FTP服务器技术研究及实现.pdf_第5页
免费预览已结束,剩余90页可下载查看

【硕士论文】FTP服务器技术研究及实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电子科技大学 硕士学位论文 ftp服务器技术研究及实现 姓名:蔡勇 申请学位级别:硕士 专业:计算机技术 指导教师:任立勇;杨健 20050512 f t p 服务器的研究与实现 摘要 “f t p 服务器技术研究及实现”是宜宾学院自然科学研究资助课题。虽然f t p 服务器的应用已经很广,但在国内还缺乏高性能的产品,并且由于商业原因对国内 外的商业产品的关键技术又知之甚少。同时,我们国内对服务器的研究也是相对较 少的,这从学术刊物上发表的相关文章就可以看出,所以本课题的研究是有一定意 义的。作该课题时目标就是使所开发的软件具有商业f t p 服务器的大部分功能和特 征。 当前i n t e r n e t 在迅猛发展,如果说i n t e r n e t 是信息高速公路的话,f t p 就是其 上面的洲际车。它使用t c p i p 体系结构中应用层上的f t p 协议( f i l et r a n s f e r p r o t o c 0 1 ) ,在不同的计算机系统之间互相传输文件的过程,因此人们又把文件传输 服务称为f t p 服务。 本文对f t p 服务器的实现方法及技术,在理论和实践相结合的基础上进行了 较为深入的研究和探讨,首先讨论了f t p 服务器的基本理论、工作原理和 w i n d o w ss o c k e t s 。然后根据f t p 服务器的工作特点,系统地对三种基本的 网络服务器内部架构进行了探讨和比较,得出结论:多线程机制更加适合于实现高 性能、高稳定的f t p 服务器。接着对f t p 服务器的网络i o 的并发实现进行了分 析。最后对f t p 服务器的安全进行了探讨,提出了如何建立安全可靠的f t p 服务 体系结构。 通过对f t p 服务器的内部机制及其实现技术研究后,在此基础上设计了一个 基于s o c k e t 的多线程f t p 服务器,该服务器采用消息驱动数据的机制来实现处理 过程的推进。f t p 服务器内部在非阻塞s o c k e t 基础之上实现阻塞操作,用以完成 f t p 命令字符的传输、解析和执行。因f t p 服务器涉及到大量的用户帐号、i p 地 址的限制等数据,对这些数据采用序列化处理,这样避免了直接使用c f i l e 对象, 从而加快用户账号及权限、网络安全设置的查找过程。而f t p 另一大主要功能就是 完成文件的传输,在程序实现中采用一个非常关键的函数a s y n c s e l e c t ( ) 函数, 用来指定新创建的s o c k e t 将监测的网络事件,实现数据的异步i o 。 最后是对f t p 服务器的功能和性能进行测试,测试结果表明服务器实现了设 计目标并具有较高的性能。 关键词: f t p ,s o c k e t ,多线程,同步i o ,异步i o ,序列化,非阻塞 f t p 服务器的研究与实现 a b s t r a c t ”t h ef t ps e r v e rt e c h n i q u es t u d ya n dr e a l i z a t i o n ”i san a t u r a ls c i e n t i f i cr e s e a r c h s u b j e c ta i d e db yc o l l e g eo fy i b i n f t ps e r v e rh a sb e e na p p l i e dw i d e l y h o w e v e r ,t h e r e s t i l ll a c kt h ep r o d u c t sw i 吐lh i g h p e r f o r m a n c ei nc h i n a , a n dw c a l s ok n o wl i t t l ea b o u tt h e k e yt e c h n o l o g y o fc o m m e r c i a l p r o d u c t sa th o m e a n da b r o a df i o mb u s i n e s sr e a s o n a tt h e s a l n et i m e ,w ed or e l a t i v e l yl e s so nt h es e r v e rr e s e a r c ha n dt h i sc a l lb es e e nf r o mt h e r e l e v a n ta r t i c l e sp u b l i s h e do n a c a d e m i c j o u r n a l s t h e r e f o r e i ti sv e r ys i g n i f i c a n t t od ot h e s e r v e rr e s e a r c hd o m e s t i c a l l y t h ep u r p o s eo ft h es u b j e c ti st od e v e l o pt h es o f t w a r e 、】l ,i t i l m o s to f t h ef u n c t i o n sa n df e a t u r e so f b u s i n e s sf t ps e r v e r t o d a y , t h ei n t e m e t ,a l s oc a l l e di n f o r m a t i o nh i 曲w a y , i sd e v e l o p i n gr a p i d l y w ec a n s a yt h a tf t p i st h ei n t e r c o n t i n e n t a lv e h i c l eo ns u c ha ni n f o r m a t i o nh i g h w a yb e c a u s ei t u s e sf t p ( f i l et r a n s f e rp r o t o c o lo nt h ea p p l i c a t i o nl a y e oo ft h es y s t e m a t i cs t r u c t u r eo f t c p 仃pt ot r a n s f e rf i l e sb e t w e e nd i f f e r e n tc o m p u t e rs y s t e m s ,t h e r e f o r es u c hk i n do f s e r v i c ei sc a l l e df t ps e r v i c e b a s e do nt h ec o m b i n a t i o no ft h e o r ya n dp r a c t i c e ,t e c h n o l o g ya n dt h er e a l i z a t i o n m e t h o do ff t ps e r v e ra r es t u d i e da n dd i s c u s s e di nt h i sp a p e r f i r s t l y , w ed i s c u s sa n d s u m m a r i z et h eb a s i ct h e o r i e s ,o p e r a t i n gp r i n c i p l e sa n dw i n d o w ss o c k e t s t h e n a c c o r d i n g t ot h ew o r kf e a t u r eo f f t ps e r v e rs y s t e m ,t h r o u g he x p l o r i n ga n d c o m p a r i n g t h e i n n e rs t r u c t u r eo f t h r e ek i n d so fb a s i cn e t w o r ks e r v e r s ,w cd r a wt h ef o l l o w i n gc o n c l u s i o n : m u l t i - t h r e a dp r o g r a m m i n gt e c h n o l o g yi sm o r es u i t a b l ef o rt h es t a b l ef 1 1 ps e r v e rw i t h l l i g hp e r f o r m a n c e a f t e r t h a t w ea n a l y z et h ec o n c u r r e n to fn e t w o r ki d oo ff t p s e r v e r t h ef i n a ls a f e t yo ff t ps e r v i c ei sd i s c u s s e d ;m a k eh o wt oe s t a b l i s hs a f ea n d r e l i a b l ef t ps e r v e sa r c h i t e c t u r e w e d e s i g nam u l t i - t h r e a df t p s e r v e rb a s e do ns o c k e tb y e x p l o r i n g t h ei n n e rs y s t e m a n dt h er e a l i z a t i o nt e c h n o l o g yo ff t ps e r v e r a d o p t i n gt h em o d eo fu s i n gm e s s a g et o d r i v ed a t at or u nt h es e r v e rp r o c e s sd o e st h er e a l i z a t i o no f t h et e c h n o l o g y i n s i d et h ef t p s e r v e rb l o c k i n go p e r a t i o nb a s e do nn o n - b l o c k i n gs o c k e ti st ot r a n s f e r , a n a l y z ea n d e x e c u t ef t pc o m m a n dc h a r a c t e r s t h ea d o p t i o no fd e a l i n gw i t hd a t aw i t ht h em e t h o do f s e r i a l i z a t o nc a na v o i du s i n gc f i l eo b j e c td i r e c t l ya n dq u i c k e nt h es e a r c h i n gp r o c e s sf o r u s e ra c c o u n t s t h e i rp o w e r sa n dt h en e t w o r ks a f e t ys e t t i n g sb e c a u s ef t ps e r v e ri s n f t p 服务器的研究与实现 c o n c e r n e dw i t hp l e n t yo fu s e ra c c o u n t sa n dt h el i m i to fi pa d d r e s s f u r t h e r m o r e ,a n o t h e r m a j o rf u n c t i o no ff t pi st ot r a n s f e rf i l e sb ya d o p t i n gak e yf u n c t i o na s y n c s e l e c t o f u n c t i o nt ol o c a t et h en e t w o r ki n c i d e n t st h a tw i l lb em o n i t o r e db yn e w l yc r e a t e ds o c k e t t or e a l i z ea s y n c h r o n o u si 0o f d e a l i n gw i t hd a t a f i n a l l yw e t e s tt h ef u n c t i o na n dp e r f o r m a n c eo ff t ps e r v e rt os h o wt h a tt h es e r v e r r e a l i z e so l l ra i mw i t hh i g h p e r f o r m a n c e k e y w o r d s : f 时,s o c k e t ,m u l t i - t h r e a d ,s y n c h r o n i z e di 0 ,a s y n c h r o n o u si 0 ,s e f i a l i z e ,n o n - b l o c k i n g 1 1 1 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究上 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人己经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均己在论文中作了明 确的说明并表示谢意。 签名:蕉复 日期:。坫年f 月1 1 日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关僳留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:筮盔导师签名丝毫 日期:硝年,月,二日 第一章引言 1 1 f t p 服务在i n t e r n e t 中的应用 随着i n t e r n e t 在全世乔的普及和发展,越来越多的用户将自己的计算机连入这个 人类有史以来最庞大的网络中。其中f t p ( f i l et r a n s f e rp r o t o c 0 1 ) 是i n t e r n e t 中最 早提供的服务之一,目前仍在被人们广泛使用着。如果说i n t e m e t 是如今的信息高速 公路的话,f t p 就是其上面的洲际车。它使用t c p i p 体系结构中应用层上的f t p 协议在不同的计算机系统之间互相传输文件的过程。人们通常将文件传输服务称为 f t p 服务。通过f t p 服务,i n t e r n e t 上的用户可以从授权的异地计算机上获取所需的 文件,也可以把本地文件传输到其他计算机上,这就为计算机之间双向传输文件提供 了一种有效的手段。 文件传输得到了极大的扩展,给用户带来了很多的方便,例如i n t e r n e t 上实现资 源共享的最基本的手段之一就是匿名f t p ( a n o n y m o u sf t p ) 。但是,随着文件传输范 围的扩大,给网络管理带来了很多的问题。在考虑对一个文件进行传输的时候,必须 要考虑文件传输安全、传输质量、访问控制等诸多方面的因素,于是,f t p 服务器就 成了解决文件传输的关键所在。 i 1 1i n t e r n e t 上文件传输所面临的问题 在网络普及的今天,政府机关、企业、学校等各行各业已经广泛地应用并建立了 自己的f t p 服务器,f t p 极大地提高了我们的工作效率和管理水平。由于计算机网 络的互联、互通的特性,在为我们工作带来方便和效率的同时,也给安全管理和工作 管理带来了问题。在考虑对一个网络的文件传输进行管理时,网络管理员通常要面临 以下一些问题: ( 1 ) 如何使用多种加密手段保全服务器及客户信息的安全; ( 2 ) 如何保证整个网络的i n t e r n e t 文件传输速度的稳定: ( 3 ) 如何根据国家的法规和自身的业务范围,管理用户的访问内容; ( 4 ) 如何完成服务器备份及还原向导; ( 5 ) 如何实现对用户访问内容的监察和审计; ( 6 ) 如何阻止内部网的非授权用户或计算机对某些文件的访问: ( 7 ) 如何阻止i n t e r n e t 上非授权用户对内部网资源的非法访问; 从这些问题可以看出,对文件访问活动的管理是一项非常复杂的工作,需要综合考 f t p 服务器的研究与实现 虑经济上的投入,经费上的控制,网络安全上的防护,访问内容上的管理等多方面的 问题。由于网络中用户的i n t e r n e t 访问活动是分散和随机进行的,对其进行管理的难 度是很大的,而管理者所能控制和直接操作的只有f t p 服务器,因此f t p 服务器的 功能和安全性就成了问题的焦点。 1 1 2f t p 文件服务器的优势 能在任何w i n d o w s 的网络环境中将一台计算机变成f t p 文件服务器,以达到互 联网或企业、组织内部的资源共享的目的。 ( 1 ) 可以是互联网上的一台有其它计算机可以访问到的公网i p 地址的计算机。 ( 2 ) 可以是局域网中的一台计算机,局域网内其它计算机用户可以通过安装有f t p s e r v e r 的这台计算机执行文件传输及权限管理。 ( 3 ) 可以是公司内部网中的一个或多个工作站,以实现公司内部的资源共享。 一般来说,通过f t p 传输文件要比使用其他协议( 如h t t p ) 更加有效,这主要有 两个原因。 第一,f t p 协议就是用来传输文件的,而且仅仅用来传输文件。它不像h t t p 还 有其他的一些功能,f t p 的唯一工作就是确保文件正确的传输,除了校验发送和接收 的文件是否一致以外,它不会像h t t p 那样停下来翻译文件的内容。 第二,通常主机的f t p 事务处理是f t p 服务器的唯一工作。既然这样,计算机 的处理器资源被完全投入到f t p 事务处理中,而不会被几个竞争服务器( 处理器的) 时间的工作所分割。 1 1 , 3 盯p 文件服务器的作用 f t p 随处可见,作为最常用的信息服务。f t p 可运载任何数据,从原始的a s c i i 文本,p o s t s c r i p t ,s g m l ,到可执行代码、图象、声音、视频动画等。同时,它也 是上传文件的唯一有效的途径,可以把文件上传到你喜爱的w e b 站点;下载文件时, 所使用的协议也可能就是f t p 。现在大多数浏览器都包含一个内置的f t p 客户端来 进行f t p 传输。 由于f t p 运载数据量很大,在整个i n t e m e t 的流量统计中,f t p 占3 6 。迄今 为止,只有近几年发展起来的环球信息服务能与之媲美。f t p 文件传送服务,主要用 于存放大量的网络公用软件,常用工具和技:术文档,以及一些著名f t p 服务的镜像。 建立匿名f t p 服务器,可以将本单位的产品信息、用户手册提供绘用户公开访问; 还可以将i n t e r n e t 上大量的常用软件、免费软件、免费资源和文档资料等存储于本地、 供本地用户访问。这样既方便了用户、又减少了对出口信道的占用。要想从服务器中 f r p 服务器的研究与实现 把文件传送到本地的计算机( 术语称“客户机”) 上或者把自己机器上的资源传送到服 务器上,就必须在两台机器中进行文件传送,那么双方就必须要共同遵守一定的规则, f t p 就是用来在客户机和服务器之间进行文件传输以实现文件共享的协议。 访问f t p 服务器时,不是所有文件你都能访问,有一些是不允许你访问的文件和 目录。站点管理员会把可访问文件放在一个公共的文件夹中,用户访问时一般就是所 指定的这些文件夹中进行。 1 1 4f t p 服务的工作模式 f t p 服务采用典型的客户机朋艮务器的工作模式。远端提供f t p 服务的计算机我 们称之为f t p 服务器,通常是i n t e r n e t 信息服务提供者的计算机,它负责管理一个 文件仓库,i n t e r n e t 用户可以通过f t p 客户机从文件仓库中取文件或向文件仓库中存 入文件。我们将从客户机上把文件或资源传送到服务器上的过程称为上传,而将从服 务器上把文件或资源传送到客户机上的过程称为下载。图1 1 反映的就是这种工作模 式: 1 2 本课题的研究背景 下载文件 上 图1 1f t p 服务的工作模式 由于f t p 服务器功能强大,在网络中发挥着重要的作用,所以f t p 服务器的应 用很广泛,但在国内还缺乏高性能的产品,并且由于商业原因对国内外的商业产品的 3 f t p 服务器的研究与实现 关键技术又知之甚少。同时,我们国内对服务器的研究也是相对较少的,这从学术刊 物上发表的相关文章就可以看出,所以本课题的研究是有一定意义的。 在f t p 服务器的众多功能中,安全性是一个突出且敏感的功能。绝大多数企业、 部门在使用f t p 服务器的时候,都会考虑这个问题,把它作为选购f t p 服务器产品 的重要依据。目前市场上流行的f t p 服务器,像w u - f t p 、p r o f t p 、s e r v - uf t p s e r v e r 等,都是国外的产品,虽然功能和性能等方面都还不错,但毕竟是通用的软 件,任何人都可以得到并对其进行研究,从而可能给这些软件的安全性带来了潜在的 问题。从保证安全性的角度出发,很有必要根据自身的需要开发一个自己的f t p 服 务器,这样就可以避免采用通用软件带来的危险。另一方面,在实际使用国外这些产 品的过程中,发现它们并不能很好的满足国内单位的要求。比如说,访问日志功能, 虽然绝大多数的国外产品都有,但是,这些日志功能都是定死的,不能够根据企业的 要求来灵活的生成,而这个功能又是国陡很多企业所必须的。因此研究并实现f t p 服务器不仅有助于我们深入了解各种i n t e r n e t 协议的实现细节,掌握f t p 的技术, 而且可实现软件的国产化,满足国内用户的安全性需求,对于社会和个人都是有积极 意义的。 宜宾学院计算中心基于以上因素,准备使用f t p 服务器来实现校园网内部文件传 输,特别是为了在教学中更好地服务于教师和学生,例如教师可以把上课用的资料放 在根目录,学生随时随地可以浏览、下载讲义和上传作业等资料。学生有建目录和上 传文件的权限,但不能删除和移动,只有教师才有删除和移动的权限。学生也不能浏 览和下载其他学生的作业。决定开发一个适合自己使用的,有自己特色的f t p 服务 端软件,能在计算中心的服务器上正常运行,开发成功之后,在此基础上还要不断完 善其功能和性能,使其软件能最终走向市场。 因此,作该课题时目标就是使所开发的软件具有商业f t p 服务器的大部分功能和 特征。本文将对f t p 服务器的关键要素进行讨论,并且设计和实现一个f t p 服务器。 1 3 论文内容组织 本文从f t p 服务器的概念入手,分析了f t p 服务器的基本原理、相关的网络协 议及其f t p 服务器的作用,接着讨论f t p 服务器中的实现技术w i n d o w ss o c k e t s a p i 。文中还分析了服务器设计中的关键问题一一服务器内部结构及不同结构的比较 和选择。在以上研究的基础上,设计并实现了一个基于多线程的f t p 服务器。后续 章节的主要内容安排如下: 第二章理论基础及相关协议 4 f t p 服务器的研究与实现 主要讲述了计算机网络的体系结构和f t p 服务器与t c p i p 的体系结构关系,论 述了f t p 服务器概念和基本原理,分析了与f t p 服务器相关的其它网络应用层协议 及w i n s o c k e t 编程机制。 第三章f t p 服务器内部结构的研究 研究了f t p 服务器实现的关键问题服务器的内部结构,分析并比较了三种服 务器结构,在此基础上提出了:经典的网络服务器逻辑大多采用多线程,多进程方式, 更有利于服务器的编程实现和稳定。接着分析服务器实现多线程同步i o 的设计所涉 及到的问题和单线程异步i o 设计中涉及到的问题。最后论述了如何建立一个安全的 f t p 服务器。 第四章基于多线程的f t p 服务器的设计 主要讲述了一个基于s o c k e t 的多线程的f t p 服务器的设计,各个模块的设计和 架构。 第五章f t p 服务器的实现 着重讲述了f t p 服务器实现中的关键技术、相关算法和主要流程等。 第六章功能及性能测试 从功能和性能两方面对f t p 服务器进行了测试,测试结果表明系统实现了设计 的功能并达到较高的性能。 一! ! ! 壁堑壁些堡塑兰壅堡 第二章理论基础及相关协议 2 1 计算机网络的基本概念 2 1 1 计算机网络的概念 计算机网络的最基本的形式是两台计算机相互连接进行通信。当然,大多数网络 中计算机的数量大大超过两台,但是网络通信的原理都是一样的。在技术上都是计算 机和通信的结合。可以说:计算机网络是独立自主的计算机互连的集合体。计算机网 络具有如下特点: ( 1 ) 计算机独立自主。一台计算机不能强制性地启动、停止和控制另一台计算机, 排除了计算机间的主从关系。 ( 2 ) 借助于通信链路,互连手段多样,可以通过电缆、光纤、微波和通信卫星。 ( 3 ) 遵循一定的网络体系结构,在协议的支持下工作。 根据规模和距离的大小,可以将网络分为局域n ( l a n ) 、城域网( m a n ) 广域网 ( w a n ) 、互联网( i n t e r n e t ) 以及无线n ( w i r e l e s sn e tn e t w o r k ) 。 2 1 ,2 理解网络结构 对于网络的硬件结构,是由下面两部分组成的: ( 1 ) 主机( h o s t ) :指的是用户使用的连入网络的计算机,如充当服务器( s e r v e r ) 的机器和充当客户机( c l i e n t ) 的计算机。 ( 2 ) 通信子网( s u b n e t ) :一般包括网络的通信链路和各种交换部件。 2 1 3 理解网络体系结构 首先,我们要区别网络结构和网络体系结构。网络结构是着眼于硬件方面,从硬 件上来理解网络,使人们明白网络是由哪些设备组成的,各设备都有什么用。而说到 网络的体系结构,则是讲述我们如何总体规划计算机网络软硬件的设计,以实现这个 数据通信系统。那么,什么是网络的体系结构昵? 可以从两个方面来理解: ( 1 ) 可以把它看作是协议和层次的结合。 f t p 服务器的研究与实现 ( 2 ) 网络的体系结构的目的在于描述网络通信功能的分层方式、协议标准和信息 格式。以使遵从同一结构的产品实现兼容,即链接后可实现已有的数据、资源和程序 的共享。 2 1 4 网络体系结构中的层次概念 网络按层或级来组织是为了降低设计的复杂性,使每层建立在下面一层的基础之 上。分层的数目,各层的名称、内容与实现的功能可能“因网而异”,但是每一层均 为上一层提供一定的服务,且屏蔽掉具体的实现细节。到目前为止最有代表性的网络 分层模型有两种:其一为国际标准化组织0 s o ) 所提出的开放系统互连( o s l ) 七层协议 参考模型:其二为美国电气与电子工程师学会( i e e e ) 8 0 2 委员会所提出的参考模型。 下面我们重点谈一下国际标准化组织0 s o ) 所提出的开放系统互连( o s l ) 七层协议参 考模型。图2 1 显示了这这两种体系的结构模型的大概情况。 i s o ,。s l 七层协议及参考模型 o s i 参考模型的七层分层结构。该模型是按逻辑组合功能来分层的,上一层是建 立在下一层的基础上,较高层向较低层提供服务请求,而较低层为较高层提供服务。 所谓开放系统是指按照这种模型所构成的网络是可以互连的,是彼此开放的,从而便 于世界各地的网络互连。 7应用层 6表示层 5会话层 4运输层 3网络层 2数据链路层 1物理层 应用层 ( 各种应用层协议如; t e l n e t , f t p ,s m t p 等) 传输层t c p ,u d p 网际层l p 网络接口层 图2 1t c p i p 与o s l 体系结构的对比 层次的概念使得网络便于管理和维护,各层只需要完成本层的功能即可,各层提 供接口来同别层联系。从概念上讲,当两台主机进行通信的时候,它们的相应层也进 行对话。不同网络主机的各层称为对等实体,对等实体之间的通信叫做虚通信。实际 上,网络中计算机之间的通信在网络的最低层( 物理层) ,只有那里才存在真正的物理 连接。两台主机之间要通信需要双方有一定的通信规则,这个规则就叫作协议。 7 f 仲服务器的研究与实现 2 1 _ 5 网络体系结构中的协议的概念 协议是一系列通信规则和被接受的约定。在网络中,协议是由国际组织制定的一 组规则,应用程序在发送和接受数据时必须遵守它们。网络的各个层使用它们进行通 信,在分层网络中,每层使用定义好的协议与它周围的各层通信。 2 1 6 服务和协议 上面讲到,网络分层的每层为其上层提供专门的服务。也就是说,每层完成的功 能是上面各层工作的基础。除了最低层( 物理层) ,上面各层都依赖下一层完成其特定 的功能。网络设计人员用每层为其上层提供的服务来指代它的功能。所以要分清协议 和服务的区别。 网络服务定义或描述了诸如错误检测等功能。网络协议定义或描述了网络软件提 供这些服务时使用数据包的格式和结构。在错误检测这个服务中,协议必须定义这个 服务必须检测哪些错误条件。 同样,网络各层请求下层提供服务时,:子层的协议必须定义这些服务请求使用的 数据包的格式和结构。这些服务请求最终传到物理层,在那里将变成数据包。当用户 检查网络各层时,会闯“这层究竟提供什么服务? ”这时会发现,如果一个网络层需 要特定的服务时,这层必须使用特定的数据协议来请求这种服务。 2 1 7 理解服务模式 网络使用不同的方法在对等实体之间提供同样的通信服务,我们将这些不同的方 法叫做服务模式。简言之,服务模式规定了本层怎样实现功能。一般来说,应用程序 的要求会指定你使用某种特定的服务模式。如果现存的协议不能提供应用程序要求的 所有的服务模式,就必须设计自己的协议来实现所要求的模式。 一般协议所提供的服务模式有以下几种:面向连接的服务、无连接的服务、排序 服务、差错控制服务和流量控制服务。 面向连接的服务是电话系统服务模式的抽象,在每一次通信以前,必须与另外一 个程序建立连接。即每一次数据传输都要经过建立连接,使用连接和终止连接的过程。 在数据传输过程中,各数据分组不携带目的地址,而使用连接号。使用面向连接服务 时,收发数据不但顺序一致,而且内容相同。t o p 协议提供面向连接的虚电路。 f i p 服务器的研究与实现 无连接服务则是邮政系统服务的抽象,每个分组都携带完整的目的地址,各分组 在系统中独立传送。无连接服务不能保证分组的先后顺序,不进行分组出错的恢复与 重传,不保证传输的可靠性,u d p 协议提供无连接的数据报服务。 2 2t c p i i p 协议组 2 2 1t c p i p 简介 t c p i p 的历史要追溯到7 0 年代中期,当时a r p a ( a d v a n c a dr e s e a r c hp r o j e c t a g e n c y ,即d a r 尸艮一d e f e n s e a d v a n c e dr e s e a m h p r o j e c ta g e n c y 的前身) 为了实 现异种网之间的互连( i n t e r c o n n e c t i o n ) 与互通( i n t e r c o m m u n i c a t i o n ) ,大力资助网间网 技术的研究和开发,于1 9 7 7 年到1 9 7 9 年推出目前形式的t c p i p 体系结构和协议规 范。到今天,t c p i p 技术以及i n t e r n e t 网间网己经为广大计算机工作者,计算机厂 商和计算机用户所接受。作为一种事实上的并日益进化的工业标准,t c p i p 技术方 兴未艾。 2 2 2t c p i p 的网络分层结构 对t c p i p 协议来说,t c p 提供传输层服务,i p 提供网络层服务。t c p i p 协议 组( 或i n t e m e t 协议组) 的分层结构见图2 - 2t c p i p 网络模型。 层次名称实现的协议 应用层应用程序、t e l n e t 、s m t p 、p o p 3 等 传输层 t c p 和u d p 网络层i p 和i c m p 数据链路层硬件接口、a r p 和r a r p 物理层物理传输介质 图2 - 2t c f i p 网络模型 t c p i p 协议组与0 s i 模型的对应关系中有关协议的名称及其基本含义如下: i p : 网间协议( i n t e r n e tp r o t o c 0 1 ) 负责主机间数据的路由和网络上数据的存储。 同时为i c m p ,t c p ,u d p 提供分组发送服务。用户进程通常不需要涉及这一层。 a r p : 地址解析协议( a d d r e s sr e s o l u t i o np r o t o c 0 1 ) 此协议将网络地址映射到硬 件地址。 f t p 服务器的研究与实现 r a r p :反向地址解析协议( r e v e r s e a d d r e s s r e s o l u t i o np r o t o c 0 1 ) 此协议将硬件 地址映射到网络地址 i c m p ; 网间报文控制协议( i n t e m e tc o n t r o lm e s s a g ep r o t o c 0 1 ) 此协议处理信关 和主机的差错和传送控制。 t c p :传送控制协议( t r a n s m i s s i o nc o n t r o lp r o t o c 0 1 ) 这是一种提供给用户进程的 可靠的全双工字节流面向连接的协议。它要为用户进程提供虚电路服务,并为数据可 靠传输建立检查。( 注:大多数网络用户程序使用t c p ) u o p = 用户数据报协议( u s e rd a t a g r e mp r o t o c 0 1 ) 这是提供给用户进程的无连接 协议,用于传送数据而不执行正确性检查。 f t p :文件传输协议( f i l e t r a n s f e r p r o t o c 0 1 ) 允许用户以文件操作的方式( 文件的 增、删、改、查、传送等) 与另一主机相互通信。 s m t p ; 简单邮件传送协议( s i m p l em a i lt r a n s f e rp r o t o c 0 1 ) s m t p 协议为系统之 间传送电子邮件。 t e l n e t :终端协议( t e l n e t t e r m i n a lp r e c o t 0 1 ) 允许用户以虚终端方式访问远程 主机 h t t p : 超文本传输协议( h y p e r t e x t t r a n s f e rp r e c o t 0 1 ) t f t p :简单文件传输协议( t r i v i a lf i l et r a n s f e rp r o t o c 0 1 ) 2 3f t p 协议及工作原理 f t p 的目标是提高文件的共享性提供非直接使用远程计算机,使存储介质对用 户透明和可靠高效地传送数据。虽然我们也可以手工使用它,但是它的主要作用是供 程序使用的。 2 3 1f t p 概念 ( 1 ) 字节大小,在f t p 中字节大小有两个:逻辑字节大小和用于传输的字节大小。 传输字节不必等于逻辑字节大小,也不必对数据结构进行解释。 f 2 ) 控制连接是建立在u s e r - p i t 和s e r v e r - p i 之间用于交换命令与应答的通信 链路。 ( 3 ) 数据连接是传输数据的全双工连接。传输数据可以发生在服务器d t p 和用户 d t p 之间也可以发生在两个服务器d t p 之问。 f t p 服务器的研究与实现 ( 4 ) d t p = 数据传输过程( d t p ) 建立和管理数据连接,d t p 可以是主动的也可以 是被动的。 ( 5 ) e o r 代表记录尾。 ( 6 ) n t v 代表网络虚拟终端,它的定义与在t e l n e t 协议中的定义一致。 ( 7 ) n v f s 代表网络虚拟文件系统。 ( 8 ) f t p 可以传输非连续的文件,这些文件的一部分称为页。 ( 9 ) p i 代表协议解释器。 ( 1 0 ) 服务器d t p 代表一种传输过程,它通常处于“主动”状态,它和侦听端口建立 数据连接,它还可以为传输和存储设置参数,并根据p l 的指令传输数据。当然,d t p 也可以转入“被动”状态。 ( 1 1 ) 服务器f t p 进程,它是和用户f t p 进程一起工作的,它由p i 和d t p 组成。 至于用户f t p 进程则是由p i ,d t p 和用户接口组成的。下图是f t p 服务示意图: ih p 接口 ll l 报井器p i l f t p 命l 孥 l 崩p p ii l1 f t p 响戊 li l i 文件哥;境l i 搿i 数攒 l j | l l j 、d t pl 【一 连接 il 麒努器阿p 埘p r p 图2 - 3p - t p 工作示意图 注意:数据连接是双向的。它不用整个时间都存在。上图中用户p i 开始控制连接, 控制连接与t e l n e t 协议很象。在开始阶段,标准f t p 命令由用户p i 产生并通过控制 连接传送到服务器进程。服务器p l 向用户p i 返回标准应答。f t p 命令指定数据连接 参数和文件系统操作。用户d t p 在特定数据端口侦听,服务器开始数据连接并以指 定的参数开始数据传输。数据端口不必在开始f t p 命令的机器上,但用户或用户f t p 进程必须确定它在指定的数据端口上侦听。这个数据连接是全双工的。 在另外一种情况下,用户或许希望在两个主机间传送文件,不是两个本地主机。 用户在两台主机间建立控制连接,然后规划数据连接。用这种方式,控制信息由用户 p l 获得,但是数据在服务器d t p 之间传送。图2 - 4 就是一个例子: f 1 甲服务器的研究与实现 图2 4 用户控制下的两个服务器之间数据传输 协议要求数据传输在处理时打开控制连接。在完成f t p 服务后由用户中止控制连 接,而服务器具体操作。如果在未接收命令时关闭了控制连接,服务器也会关闭数据 传输。f t p 和t e l n e t 很有联系,f t p 使用t e l n e t 协议进行控制连接,可有两种方法 达到目的:用户p l 或服务器p i 可以在自己的过程中实现t e l n e t 协议的功能:第二种 方法是利用系统中现有的t e l n e t 模块。实现上,f t p 对t e l n e t 协议的依赖也不多, 即使重新实现,代码量也不大。 2 3 2 数据传输功能 数据连接只传输数据,控制连接传送命令和响应。几个命令是关于在主机间传输 数据的,数据传输基本上独立于物理结构的,但是如果在压缩传输模式下流式传输与 文件结构有关,文件的属性与表示类型有关。 1 数据类型 数据表示是由用户指定的表示类型,它可以是隐含的,也可以是用户指定的。请 一定注意:逻辑字节长度与物理字节长度是不同的。 a s c i i 类型 这是所有f t p 必须实现的默认类型,用于传送文本文件。 e b c d i c 类型 它是作为a s c i i 的另一种方法在主机间传送数据的数据类型。 图象类型 在此类型下传送的数据被看作连续的位,发送方将数据打包到8 位传输字节中传 送。 本地类型 也可以以十进制指定逻辑字节大小。 2 文件结构 除了有不同的数据类型外,f t p 还允许有不同的文件结构,下面是三种文件结构: 文件式结构:文件中没有内部结构,文件被看作是二进制流; 记录结构:文件是由系列记录组成的; f t p 服务器的研究与实现 页结构:文件是由不同的索引页组成的。 3 建立数据连接 传送数据机制包括建立连接选择数据参数。用户和服务器d t p 有默认数据端口。 用户进程默认数据端口和控制连接端口相同。服务器进程默认数据端口和控制连接端 e l 相邻。传输字节大小是8 位字节。此字节是实际传输字节,但不代表主机内的数据 表示。被动数据传输进程在数据端口接收数据,f t p 请求命令决定数据传输的方向。 服务器在接收到请求以后,将初始化端口的数据连接。当连接建立后,传输在d t p 之间传送,服务器p i 对用户p i 返回应答。f t p 实现运行一个默认数据端口,用户 p i 才能改变默认端口。 通过p o r t 命令可能改变端口,用户可能希望数据在第三方主机上进行其它操作, 用户p i 需要在两个服务器p l 上建立连接。一个服务器被告知侦听另- - h e 务器的请求。 用户p i 通过p o r t 命令通知另一服务器的数据端口。最后双方发送相应的传送命令。 通常,服务器负责支持数据连接,初始化并关闭它,除非用户d t p 在传输模式下要 求关闭连接。服务器在下面情况下关闭数据连接: ( 1 ) 服务器结束发送数据,通过e o f 要求中止传送: ( 2 ) 用户发送a b o r t 命令; ( 3 ) 用户改变端口; ( 4 ) 控制连接关闭; ( 5 ) 发生不可恢复错误。 4 数据连接管理 默认数据连接端口:所有f t p 必须支持默认数据连接,只有用户尸i 能够初始化 非默认端口的使用。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论