局域网文件传输方式分析

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

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

一、概述

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

 

它的特点是:

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

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

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

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

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

6    匿名和隐私

工作原理:

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

 

使用现状

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

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

 

 

 

三、各方式比较

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

四、总结

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

 

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

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

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • icem二维非结构网格划分_Ansys Icem CFD网格划分实例详解PDF及附件[通俗易懂]

    icem二维非结构网格划分_Ansys Icem CFD网格划分实例详解PDF及附件[通俗易懂]网格划分是CFD仿真计算中重要的一环,icem也是Ansys家族的王牌成员,虽然现在已被mesh以及fluentmesh追赶,但是依旧是学生时代主流的追求完美结构化网格的利器!学好icem对于拓结构的理解也会更深刻!这本书没找到原版的,只有影印版,看起来不是很舒服,但是有配套视频可以学习,也算慰藉。建议买本纸质版康康,虽然纸质版也不是很清晰,因为不是彩印的,所以凑活看吧!一、书籍简介名…

  • php代码执行函数_php代码如何运行

    php代码执行函数_php代码如何运行**php代码执行函数解析**​一、代码执行漏洞原理:用户输入的数据被当做后端代码进行执行<?php@eval($_REQUEST[8])?>//其实一句话木马的本质就是一个代码执行漏洞。用户输入的数据被当做代码进行执行。这里提一下RCE(remotecommand/codeexecute)远程命令或者代码执行。现在只要渗透的最终情况可以实现执行命令或者是代码都属于RCE,例如代码执行、文件包含、反序列化、命令执行,甚至是写文件Getshell都可以属于RCE在PHP存在诸多

  • 基于CCXT接口建立的多模块数字货币量化交易模型(MMQT)在python中的实现[通俗易懂]

    基于CCXT接口建立的多模块数字货币量化交易模型(MMQT)在python中的实现[通俗易懂]目录一、前言问题的引出MMQT模型的优势二、MMQT简介1.接口模块2.风控模块3.策略模块4.反馈模块三、MMQT的代码实现1.定义中间模块(类)1.初始化2.获取账户信息、交易对信息、订单信息3.数据更新4.创建订单5.获取订单状态6.撤销订单7.获取k线信息2.定义风控模块(类)3.定义策略模块(类)1.策略模块初始化2.技术分析及交易下单3.反馈模块4.相关类实例化1.ccxt实例化2.中间类、风控类、策略类实例化3.调控程序四、回测的代码实现1.获取数据2.数据清洗3.模拟账户初始化4.回测程序五

  • 安装VMware 和Ubuntu教程 以及ubuntu更新源「建议收藏」

    安装VMware 和Ubuntu教程 以及ubuntu更新源「建议收藏」1、VMwareWorkstation安装教程,见链接https://jingyan.baidu.com/article/9f7e7ec09da5906f281554d6.html2.VMware虚拟机下安装ubuntu操作系统(1)、下载ubuntu操作系统镜像(2)、点击文件–新建虚拟机,或者点击右边新建虚拟机。(3)、这里选择典型的安装模式(4)、点击下一步,选择安装…

  • layoutSubviews 调用

    layoutSubviews 调用学习了一下UIView的setNeedsDisplay和setNeedsLayout方法。首先两个方法都是异步执行的。而setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到UIGraphicsGetCurrentContext,就可以画画了。而setNeedsLayout会默认调用layoutSubViews,就可以处理子视图中的一些数据。宗上所诉,setNeedsD

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号