TCP/IP协议族之应用层协议(FTP、TFTP)

文件传送协议FTP: File Transfer Protocol

    是因特网上使用得最广泛的文件传送协议。提供交互式的访问,允许客户指明文件的类型与格式(如指明是否使用ASCII码),并允许文件具有存取权限(如访问文件的用户必须经过授权,并输入有效的口令)。FTP屏蔽了各计算机系统的细节,可在异构网络中任意计算机之间传送文件。

    FTP基于TCP,TFTP基于UDP,是文件共享协议的一大类,即复制整个文件。其特点是:若要存取一个文件,就必须先获得一个本地的文件副本。若要修改文件,只能对文件的副本进行修改,然后再将修改后的文件副本传回原节点。

    文件共享协议的另一大类是联机访问。联机访问意味着允许多个应用程序同时对一个文件进行存取。和数据库系统不同的是用户不需要调用一个特殊的客户进程,而是由操作系统提供对远地共享文件进行访问的服务,就如同对本地文件的访问一样。使用户可以用远地文件人微言轻输入和输出运行任何应用程序,而操作系统中的文件系统则提供对共享文件的透明存取。透明存取优点:将原来用于处理本地文件的应用程序用来处理远地文件时,不需要对该应用程序作明显改动。属于文件共享协议的有网络文件系统NFS。NFS使本地计算机共享远地的资源,就像这些资源在本地一样。NFS主要应用于TCP/IP网络上。现在也可OS/2、MS-Windows,NetWare等。

    主机间传送文件需要解决的主要问题有:

        计算机存储数据的格式不同;

        文件的目录结构和文件命名的规定不同;

        对于相同的文件存取功能,操作系统使用的命令不同;

        访问控制方法不同。

    FTP只提供文件传送的一些基本的服务,使用TCP可靠的运输服务。

    主要功能是减少或消除在不同操作系统下处理文件的不兼容性。

    使用客户服务器方式。一个FTP服务器进程可同时为多个客户进提供服务。FTP服务器进程主要由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。

    主进程的工作步骤:

    <1>. 打开熟知端口(TCP21),使客户进程能够连接上。

    <2>. 等待客户进程发出连接请求。

    <3>. 启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程来运行期间根据需要还可能创建其他一些子进程。

    <4>. 回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发地进行。

    在进行文件传输时,FTP的客户和服务器之间要建立两个并行的TCP连接:“控制连接”和“数据连接”。控制连接在整个会话期间一直保持打开,FTP客户所发出的传送请求,通过控制连接发送给服务器端的控制进程,但控制连接并不用来传送文件。实际用于传输文件的是“数据传送进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程。数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。由于FTP使用了一个分离控制连接,因此FTP的控制信息是带外传送的。

    当客户进程向服务器进程发出建立连接请求的时候,要寻找连接服务器进程的熟知端口(21),同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。接着,服务器进程用自己传送数据的熟知端口(20)与客户进程所提供的端口号码来建立数据传送连接。由于FTP使用了两个不同的端口号,所以数据连接与控制连接不会发生混乱。

    NFS允许应用程序打开一个远地文件,并能在该文件的某一个特定的位置上开始读写数据。这样,NFS可使用户只复制一个大文件中的一个很小的片段,而不需要复制整个大文件。在网络上传送的只是少量的修改数据。

 

简单文件传送协议TFTP: Trivial File Transfer Protocol

    客户服务器方式,使用UDP数据报,需要有自己差错改正措施。TFTP只支持文件传输而不支持交互。TFTP没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份识别。

    主要优点:<1>.TFTP可用于UDP环境。当需要将程序或文件同时向许多机器下载时就往往需要使用TFTP。<2>.TFTP代码所占内存较小。

    主要特点:

    <1>.每次传送的数据报文有512字节的数据,但最后一次可不足512字节。

    <2>.数据报文按序编号,从1开始。

    <3>.支持ASCII码或二进制传送。

    <4>.可对文件进行读或写。

    <5>.使用很简单的首部。

    TFTP工作很像停止等待协议,每发送完一个文件块后就等待对方的确认,确认时应指明所确认的块编号。发送数据后在规定时间内收不到确认就要重发数据PDU。发送确认PDU的一方若在规定时间内收不到下一个文件块,也要重发确认PDU。这样就可保证文件的传送不致因某一个数据报的丢失而告终。

    在一开始工作时,TFTP客户进程发送一个读请求报文或写请求报文给TFTP服务器进程,其熟知端口号为69。TFTP服务器进程要选择一个新的端口和TFTP客户进程进行通信。若文件长度恰好为512字节的整数倍,则在文件传送完毕后,还必须在最后发送一个只含首部而无数据的数据报文。若文件长度不是512字节的整数倍,则最后传送数据报文中的数据字段一定不满512字节,这正好可以作为文件结束的标志。

     

 

 

转载于:https://www.cnblogs.com/way_testlife/archive/2010/10/11/1847529.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/275869.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

消灭病毒_消灭遗产

消灭病毒The year was 1995, I was 10 years of age. The number 1 single in the UK was Think Twice by Celine Dion, and Batman Forever was the highest grossing movie across the pond in the States. Manchester United, unfortunately, won their 3rd Premier League …

logcat崩溃_使用logcat抓取Android崩溃日志

一、安装jdkJDK网上教程非常多&#xff0c;此处不再赘述。(好像不装也没关系&#xff0c;未实测)二、工具列表a) adb包(v.1.0.31版本或以上&#xff0c;下文提供下载地址)b) logcat.bat文件(下文制作)三、安装adb(二选一)a) 放到任意位置(推荐)因为adb…

基于 Ubuntu 16.04 LTS 的 KDE neon 到达维护周期

随着 KDE neon 在 Ubuntu 18.04 LTS 发布&#xff0c;开发团队已经决定 放弃维护基于 Ubuntu 16.04 LTS版本&#xff0c;大多数用户预警将希望升级到基于 Ubuntu LTS 的 KDE neno 新版本。“去年KDE neno 被重新定位到 Ubuntu bionic / 18.04上&#xff0c;并且升级已经基本顺利…

真诚推荐7个能助你成长的前端大佬

不得不说&#xff0c;如今比前些年学习资料多很多了。现在的前端公众号也挺多的&#xff0c;这里推荐几个前端大佬运营的公众号&#xff0c;都是聚焦前端垂直领域的优质公众号&#xff0c;关注这些公众号至少可以&#xff1a;1、了解现在前端技术发展情况和未来发展趋势&#x…

Silverlight学习笔记(3):Silverlight的界面布局

在上一篇中讲述了使用VS2010开发Silverlight的一些基础知识&#xff0c;并且讲述了Silverlight的部署和代码安全知识&#xff0c;这一篇主要是讲述如何在Silverlight中摆放界面元素。记得早年前我还在学习Java的时候&#xff0c;当时有两种开发Java SE的方法&#xff0c;一种是…

pov-inc_yourself劳自己-懒惰的设计师的POV和一些Figma

pov-incAre you ready and lazy enough (you will fully understand with continue reading this)? Coffee and tea next to you? Alright. This article is going to (not) kick you in your a**. It will be a bit of ‘lesson learned’, for sure a bit of FIGMA, and a …

Geary 0.13.0 发布,GNOME 3 Email 客户端应用

百度智能云 云生态狂欢季 热门云产品1折起>>> Geary 0.13.0 发布了&#xff0c;Geary 是一个电子邮件应用&#xff0c;用于 GNOME 3 桌面版本&#xff0c;它允许阅读、查找和发送电子&#xff0c;并提供简洁、现代化的界面。这是一个重要的新版本&#xff0c;具有许…

mysql表连接_mysql表连接

在数据库中tableA连接tableB如下&#xff1a;tableA:a1  a21  12  23  24  3tableB:b1 b22  12  23  33  46  5笛卡尔积&#xff1a;select * from tableA, tableB.1  1  2  11  1  2  21  1  3  31  1  3  41  1  6  52…

轻型本地服务器_一小时超轻型漂移机

轻型本地服务器Iwas introduced to the world of Hyper Light Drifter through a series of visions — titans ravage a broken city, a shallow sea is stained red by floating corpses, a skinny dog leads me into the yawning abyss of a pillar in the center of the se…

baidu的服务器数据里面装的都是垃圾!

baidu的服务器数据里面装的都是垃圾&#xff01; 除了垃圾广告一点价值没有&#xff0c;能不能学学google。 国人天天喊支持国货&#xff0c;但国货很多垃圾&#xff0c;没有人管理这些制造垃圾的人。 转载于:https://www.cnblogs.com/helper/archive/2010/10/12/1848371.html

聊聊前端面试

大家好&#xff0c;我是若川。今天分享一篇面试相关的文章。点击下方卡片关注我、加个星标&#xff0c;或者查看源码等系列文章。学习源码整体架构系列、年度总结、JS基础系列最近 Zoom 国内又开放招聘了&#xff0c;我们组有了前端的 HC&#xff0c;所以我也参加了几场面试。合…

成为自信的node.js开发者(一)

这个博客是我最近整理了过去的文章。 适合阅读的同学 想更进一步深入理解node的同学&#xff0c;如果你已经稍微了解一点点node, 可以用node做一些小demo&#xff0c;并且想更深一步的了解&#xff0c;希望这篇文章可以帮助到你。 不太适合阅读的同学 不太熟悉基本的javascript…

mysql读写分离和分布式_MySQL主从复制与读写分离

MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践Mysql作为目前世界上使用最广泛的免费数据库&#xff0c;相信所有从事系统运维的工程师都一定接触过。但在实际的生产环境中&#xff0c;由单台Mysql作为独立的数据库是完全不能满足实际需求的&#xff0c;无论是在安全…

ux和ui_UI和UX设计师的10种软技能

ux和ui重点 (Top highlight)As designers, whether it be UI, UX, or Product Design, we tend to direct our focus and energy on developing and mastering tangible skills.作为设计师&#xff0c;无论是UI&#xff0c;UX还是产品设计&#xff0c;我们都将重点和精力放在开…

SQLServer中批量插入数据方式的性能对比 (转)

转自&#xff1a;http://www.cnblogs.com/wlb/archive/2010/03/02/1676136.html 昨天下午快下班的时候&#xff0c;无意中听到公司两位同事在探讨批量向数据库插入数据的性能优化问题&#xff0c;顿时来了兴趣&#xff0c;把自己的想法向两位同事说了一下&#xff0c;于是有了本…

VueConf China 2021 《Vue3生态进展-尤雨溪》 Reaction

大家好&#xff0c;我是若川。今天分享昨天Vueconf的一篇文章&#xff0c;来了解下Vue的生态进展。另外今晚7点&#xff0c;Vuebeijing社区邀请了尤大会在视频号直播&#xff0c;可以加我微信 ruochuan12&#xff0c;告诉观看地址提前预约。点击下方卡片关注我、加个星标&#…

Plsql运行mysql脚本_oracle中PLSQL语句

1.set autot off 禁止使用autotrace命令 set autot on 这个命令包括exp 和 stat(执行语句、生成explain plan、生成统计信息) set autot trace 不执行sql语句&#xff0c;但(生成explain plan、生成统计信息) set autot trace exp stat 与上句同 set autot trace st1.set autot…

2019年,你需要关注这些Node API和Web框架

对于Node.js框架和开源软件来说&#xff0c;2018年是非常有趣的一年。开发者社区讨论了企业赞助对开源项目的作用以及如何维护那些没有经济支持却有数百万人使用的项目。同样&#xff0c;安全问题也得到了极大关注&#xff0c;一些流行的Node/JS软件包被劫持&#xff0c;Github…

ai创造了哪些职业_关于创造职业的思考

ai创造了哪些职业When I was growing up, the idea of a creative career wasn’t an option.当我长大时&#xff0c;创意事业的想法不是一个选择。 I had enjoyed doodling, arts and crafts as a kid, so as I grew up, it was a natural transition into Photoshop and lat…

Windows Mobile,用C#更改网络连接(SSID、IP Address、Subnet Mask、Gatew... (转)

前几天在做一个改变PDA无线网络连接的SSID和IP的功能是发现了一个好东西OpenNETCF Framework使用OpenNETCF.Net包&#xff0c;实现了任意改变PDA无线网络连接的功能。并且不需要Reset PDA。现在正在做一个IP Manager For Windows Mobile的小程序。实现搜索当前网卡可见的SSID、…