一、概述

在C/S结构的软件开发过程中通常被限于局域网范围内, 常常会遇到需要传输数据文件、音视频文件、升级文件到服务器端或者客户端。每个工作站点都是通过交换机或者集线器、路由器等设备相互连接在一起。由于需要传输的站点数量、局域网环境、OS系统的不同,传输上的性能上也有很大的区别, 传输方式也是多种多样的,比如常见的局域网共享传输、基于FTP协议传输、点对点传输等方式。不同的网络操作系统(NOS)在局域网内采用的底层通信协议是不一样的。现在就和大家分享一下局域网文件传输的分析和比较。

二、传输方式的特点和原理

局域网文件共享传输:

从开发角度来说文件共享方式传输是一种简便的方式,只需要将文件设置成共享,共享权限开放即可。这样就需要开启OS的SERVER服务,它主要提供了支持本计算机通过网络的文件、打印、和命名管道共享,包括了C$、IPC$等共享,开启了135和445等危险端口.所以优点很明显,就是简易了共享的操作,缺点就是安全性降低了。

它的特点是:

1      需要开启文件共享服务,文件通信方式方便、简易

2       传输过程、速度等由操作系统自动调整,无需用户设置

3      需要以共享文件的方式存在于网络

4      由于采用文件共享,安全性能较低,遇到IO读写访问错误、断网、断电时,恢复后没有断点续传等功能

5      明文传输,数据易被篡改和窃听从而存在很大的安全隐患

工作原理:

文件共享传输方式,主要采用TCPIP协议访问资源,通过本局域网上的网络邻居,UNC路径访问,一般是利用名字解析NETBIOS,dns,wins获得对方的IP地址,获取对方共享资源列表,当点击共享资源时候,客户机对服务器端点发出建立会话请求,这发生在传输层。为了在服务端和客户端之间传送TCP数据,必须先建立一个虚拟电路,也就是TCP连接,建立TCP连接的标准过程是这样的:

 第一步,请求端(客户端)发送一个包含SYN标志的TCP报文,SYN即同步(Synchronize),同步报文会指明客户端使用的端口以及TCP连接的初始序号;

  第二步,服务器在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接受,同时TCP序号被加一,ACK即确认(Acknowledgement)。

  第三步,客户端也返回一个确认报文ACK给服务器端,同样TCP序列号被加一,到此一个TCP连接完成。 
以上的连接过程在TCP协议中被称为三次握手(Three-way   Handshake)。 
会话连接建立后,对方检查共享资源的设置,通过注册表中的共享级别。

共享信息在册表中,跟踪操作系统的不同,注册表位置也有所不同。 
HKEY_CURRENT_MACHINE/Software/Microsoft/Windows/Current_Version/Network/Lanman/共享名 
A.Parm1enc为“完全共享”密码

B.Parm2enc为“只读共享”密码

确定是何种级别后,客户端就可以访问到相应的资源了。 
这种共享加密的方式很简单,都是明文的,只要到对方的机器上,查看注册表就可以知道密码。(16进制,需要对照翻译)

使用现状

常见的局域网共享工具

FTP协议传输:

FTP文件传送协议(File Transfer Protocol,简称FTP)。中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。
与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。
它的特点是:

1     不需要开启文件共享服务,与OS无关性。

2      提供交互式的访问,使得用户更容易通过操作命令与远程系统交互

3      允许客户指定存储文件的类型与格式

4      具备鉴别控制能力,允许文件具有存取权限

5       屏蔽了计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件

6      支持断点续传传输。

工作原理:

FTP的连接过程中,一般会大开两个连接端口,一个用于控制连接的命令发送,一个用于数据传输。FTP协议不像HTTP协议一样需要一个端口作为连接(默认时HTTP端口是80,FTP端口是21)。FTP协议需要两个端口,一个端口是作为控制连接端口,也就是FTP的21端口,用于发送指令给服务器以及等待服务器响应;另外一个端口用于数据传输端口,端口号为20(仅用PORT模式),是用建立数据传输通道的,主要作用是从客户向服务器发送一个文件,从服务器向客户发送一个文件,从服务器向客户发送文件或目录列表。

使用现状

常见的FTP服务器端工具

一种被广泛运用的FTP服务器端软件,支持 全Windows系列。它设置简单,功能强大,性能稳定。FTP 服务器用户通过它用 FTP协议能在 internet上共享文件。它并不是简单地提供文件的下载,还为用户的系统安全提供了相当全面的保护。

常见的FTP客户端工具

CuteFtp是一款非常受欢迎的FTP工具,界面简洁,并具有的支持上下载断点续传、操作简单方便等特征使其在众多的FTP软件中脱颖而出,无论是下载软件还是更新主页,都是一款不可多得的好工具。

点对点传输:

点对点技术简称P2P是目前互联网上最流行、最有优势的传输技术,它们的传输是通过网络以不同的形式,也许是FTP传输,也许是使用QQ这样的工具传输等等.

它依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。P2P网络通常用于通过Ad Hoc连接来连接节点。这类网络可以用于多种用途,各种文件共享软件已经得到了广泛的使用。P2P技术也被使用在类似VoIP等实时媒体业务的数据通信中, 如迅雷看看、PPLive等。

通常我们把点对点技术分为两种,纯点对点技术与非纯点对点技术。

纯点对点网络没有客户端或服务器的概念,只有平等的同级节点,同时对网络上的其它节点充当客户端和服务器。这种网络设计模型不同于客户端-服务器模型,在客户端-服务器模型中通信通常来往于一个中央服务器。这种方式也非常适合在局域网中应用,可以有效的减少服务器的负载过重等问题。

非纯点对点技术如电驴(eMule)、BT、KuGoo等。它们使共享包含各种格式的音频,视频,数据等的文件在网络上的沟通变得容易、更直接共享和交互,真正地消除中间商。就是人与人可以直接连接到其他用户的计算机、交换文件,而不是像过去那样连接到服务器去浏览与下载。

它的特点是:

1    巨大的扩展力,与OS无关性。

2    在C/S模式中的好处是不用费力的去查找连接服务器,与服务器端无关性,站点与站点之间是平等关系

3     提供稳定、 可预测的资料传送服务

4     有效的利用了网络中的带宽,使得带宽能最大化使用

5      支持断点续传传输、低成本的所有权和共享

6    匿名和隐私

工作原理:

纯点对点局域网传输由多个站点都同时在线,每个站点都开放一个监听端口,每个站点每次启动时读取局域网上的ARP表查询局域网中开放该端口的站点,并进行连接。然后发送在线站点表到连接的站点。传输文件时打开一个传输端口,很容易实现站点与站点之间的数据传输。

使用现状

常见的局域网点对点传输工具

如飞鸽传书局域网文件传输工具,它是一款流传非常广的局域网实用软件,相比Windows 文件共享系统,飞鸽在实用性,速度,快捷,方便程度上都有提高。可以一次性传送单文件超过8G的文件。

三、各方式比较

在C/S结构的开发过程中,我们常常需要站点与站点之间的传输和通信.从产品的应用角度不同,到底哪种方式更适合我们呢?下面将对以上三种方式做一个比较。

四、总结

总的来看,使用FTP方式传输方式较为灵活和实用,能够很好的完成多站点同时完成上传下载的任务,在FTP服务器端还能够支持平衡负载,传输速度上也比较快,在不同的操作系统上消除了不兼容性等问题。

文件共享的高层协议基本都采用SMB协议,曾经就有人通过对局域网内所窃取的用于文件输出的SMB数据包进行分析及重组,从而得到最初的传输文件。所以在安全方式上不如其他的传输方式,传输采用协议时一定要用tcp来保证数据的可靠性 ,udp在传输过程中没有数据效验,在网络环境较差的情况下,很容易发生丢包现象。在多站点同时传输时较慢。

总之在C/S结构中需要使用哪种传输方式,需要根据实际情况来综合考虑。

局域网文件传输方式分析相关推荐

  1. 详细介绍!Linux 上几种常用的文件传输方式

    点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 责编:乐乐 来源:https://dwz.cn/VWIHhsOw 昨天发布一篇Linux文章( ...

  2. 小试跨平台局域网文件传输工具NitroShare,几点感想

    随着电脑系统国产化的推进,单位用的OA系统已转移到国产电脑上了,但是国产电脑上的操作系统基于Linux,软件商店里可选的应用软件还不够多,功能也还有待提高.为了提高处理效率,经常需要把文件从国产电脑传 ...

  3. python 编写一个局域网文件传输的程序

    可以使用 Python 的 socket 模块来编写一个局域网文件传输程序. 首先,你需要在服务端程序中创建一个 socket 对象,并绑定到特定的 IP 地址和端口上.然后,服务端可以通过调用 so ...

  4. 局域网传输还在用飞鸽?还在用QQ,其实Python也可以实现类似的功能!Python基于scoket实现多路复用TCP局域网文件传输

    局域网传输的基本信息 1.IO是什么? ⦁定义 ⦁ 阻塞IO ⦁ 非阻塞IO 2.IO多路复用 定义 select具体用法 3.实现多路复用局域网文件传输 server.py client.py Fi ...

  5. 如何将数据从旧电脑传输到新电脑,哪种文件传输方式更好

    迁移到新的Windows 10 电脑是一个令人兴奋的时刻,尤其是如果您有幸从我们现在可用的最佳Windows笔记本电脑列表中选择一个选项.问题是您熟悉的文件位于旧电脑上,并且您不想重新开始.为了简化电 ...

  6. 局域网文件传输神器Feem(Feem使用教程)

    局域网文件传输神器Feem 官网地址,下载后一路安装就可以了 有免费版(限制人数下载).也有收费版 另一台局域网内的电脑,浏览器打开http://192.168.55.2:3456 就可以直接传输文件 ...

  7. WindowsLinux文件传输方式总结

    技术交流 关注微信公众号 Z20安全团队 , 回复 加群 ,拉你入群 一起讨论技术. 直接公众号文章复制过来的,排版可能有点乱, 可以去公众号看. 在渗透过程中,通常会需要向目标主机传送一些文件,来达 ...

  8. 钉钉小程序可以上传文件_怎样禁止钉钉外发文件?钉钉文件传输协议分析

    钉钉(DingTalk)是中国领先的智能移动办公平台,用于商务沟通和工作协同.越来越多企业采用钉钉来进行办公自动化,但是由此带来的信息安全问题也不能忽视.钉钉软件可以很容易的上传附件.外发和接收文件, ...

  9. Linux中文件传输方式

    TFTP : FTP是文件服务器,可实现将文件上传至远程服务器,也可以从服务器下载文件到本地主机. scp: scp能够将不同主机的文件进行相互传输,使用简单方便. rz : 用于linux与wind ...

  10. Linux 几种文件传输方式

    本文记录linux系统中文件传输的多种方式,留作备忘.linux中文件传输的方式有ftp,scp,rsync,rz,sz等,但各个工具的功能又有所区别: FTP : FTP是文件服务器,可实现文件的上 ...

最新文章

  1. mysql设置约束l命令_2、MYSQL 基本数据库命令及约束
  2. 办公室28个经典赞美句子【转】
  3. SAP MM 盘点凭证上的posting block
  4. 安装python缺少dll_解决Python安装时报缺少DLL问题【两种解决方法】
  5. Kafka设计解析(七)- Kafka Stream
  6. 函数进阶之生成器和迭代器
  7. 二十七、oracle 异常
  8. 数据分析师的个人感悟
  9. 教你以一秒钟10万+个密码的速度破解WiFi
  10. 嵌入式单片机基础篇(十九)之一般TFTLCD 模块的使用流程
  11. c语言二次方程的实根,C程序求二次方程的根
  12. Road to Coder _Game
  13. 嵌入式学习路径之单片机 | 月薪5个k到5个w的路径全在这了
  14. 静态资源文件无法加载导致jsp页面渲染不成功问题
  15. Spring漫画学习笔记(一) 什么是BeanDefinition
  16. window文件格式转换成linux格式
  17. 洛谷——P1361 小猫爬山
  18. SQL “varchar转换为numeric时出错” 的小插曲
  19. python 工作流workflow_Workflow笔记1——工作流介绍
  20. 熵权法、主客观权重及matlab应用

热门文章

  1. Nvivo用法--数据可视化工具
  2. 在线翻译、词典、离线工具大全
  3. 三星手机怎么关掉android设置向导,三星手机自动关机怎么设置
  4. 字节码增强之Javassist
  5. Android控件 TabHost,Android控件之TabHost用法实例分析
  6. XP环境下查看psd文件缩略图显示补…
  7. android 怎么反编译,Android反编译工具的用法
  8. 补偿IIR滤波器引入的延迟
  9. Sm4【国密4加密解密】实战
  10. 【175】Easy CHM的使用