局域网文件传输方式分析

2022-09-05 11:11:30 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

一、概述

在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协议传输:

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

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等。它们使共享包含各种格式的音频,视频,数据等的文件在网络上的沟通变得容易、更直接共享和交互,真正地消除中间商。就是人与人可以直接连接到其他用户的计算机、交换文件,而不是像过去那样连接到服务器去浏览与下载。

代码语言:javascript复制
它的特点是:

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

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

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

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

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

6 匿名和隐私

工作原理:

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

使用现状

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

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

三、各方式比较

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

四、总结

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

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

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

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/136047.html原文链接:https://javaforall.cn

0 人点赞