线上期刊服务咨询,发表咨询:400-808-1701 订阅咨询:400-808-1721

文件传输协议8篇

时间:2022-06-20 12:28:10

文件传输协议

文件传输协议篇1

黄河、黄河,这是长江,请开炮收到,正在汇报,正在汇报,完毕。

当时觉得他们说话特别嗦,重复呼叫名号、自报家门、重复对方要求,重复自己的话,最后还加个完毕,看着都着急。

很不幸,在网络世界,电脑和电脑之间的通讯,比这个“嗦”有过之而无不及。

这个所谓的“嗦”,是因为战场通讯和网络通讯有很多相似的地方:环境恶劣、距离遥远、干扰众多而又要内容不失真,所以通讯双方,都要反复验证信息传送的正确性。这一套通话的模式,在网络世界里称为协议,而上面那种通话模式―互相喊话、确认身份、确认发送的信息、确认发送结束,可以比拟为网络中最常用的TCP协议(见图1)。

小提示:

TCP协议是TCP/IP协议的一部分,而TCP/IP协议是互联网的基础。通俗地理解,TCP是“说话”的方式、IP协议用来“呼叫”通话的电脑。

QQ传输文件比MSN快?原因一

QQ、MSN在传文件时,将文件的数据分成很多小数据包,每个包里面再添加上这些嗦的“话”,以保证能可靠地接收,毫无疑问“一分钟也传不了几句话”。

后来,QQ改革了,换了一种通话协议―UDP协议,这个协议如同发电报,将数据一股脑地发给对方,对方只简单地回复“收到”即可。至于全不全、对不对就不管了。这个协议效率很高,传送文件的速度当然就快了(见图2)。

小提示:

UDP协议虽然可靠性差、错误率高,但在网络视频应用中效果良好,视频聊天软件均采用此协议。另外,QQ也采取了一些措施来克服它的缺点,如让文件断点续传(MSN无断点续传功能)。

原因二,选择最近的路线

网络还有一个复杂的情况:两台互传文件的电脑可能远隔“千山万水”,要通过许多服务器、路由器、网关和电缆中转,才有可能达到目的地。UDP协议为了加快连接速度,会选择尽量短的路线(称为UDP直连模式)。而MSN使用的TCP协议,却先将数据包发送到MSN服务器,服务器再转送到目的地(称为TCP中转模式),数据正确性虽有保证,但绕了路,也会受到服务器拥堵的影响。

原因三,礼让与加塞

TCP协议是一个“和谐”的协议,当它发觉网络堵塞,会自动减慢数据包发送,让互联网保持通畅。而UDP协议是一个“霸道”的协议,它想尽一切办法将数据传送出去,而不管是否加重网络拥堵。

用什么传输比较稳定

通过上面的分析,稳定传输文件非MSN莫属么?其实MSN虽使用TCP协议,但中转太多,服务器又在国外,掉线率不比QQ少,因此从连接的稳定性而言,QQ和MSN差不多,但MSN传输的文件,错误率会小一些。

小提示:

文件传输完成后,赶快测试传输的文件是否有错误。另外,传输不畅,可以使用新浪UC、网易泡泡(见图3)、百度Hi等类似工具。

传大文件用什么

这次推荐QQ么?传大文件,QQ容易掉线、大小受限制(2GB)、数据错误率较高,这次推荐一款称为Lava-Lava的软件(/)。该软件文件传输性能和QQ差不多,但它提供的离线传输功能,速度很快,常可以达到你的网络的最大上传、下载速度,稳定性高,离线传输的文件大小不受限制(QQ限制1GB)。有人还通过注册2个Lava-Lava号来当网络硬盘使用呢。

小提示:

离线传输就是先将文件传送到服务器,然后接收方再从服务器下载。Lava-Lava的离线传输操作非常方便,在聊天窗口,选择“文件传输通过离线服务器转发文件”即可(见图4),或直接拖动文件到未上线好友的聊天窗口中。

文件传输协议篇2

关键词:Android LinuxSSH QuickSSHD可行性

中图分类号:TN918.1 文献标识码:A 文章编号:1007-9416(2012)03-0000-00

Android操作系统最初由Andy Rubin领头的开发小组开发,最初主要支持手机。2005年由Google注资收购经过开发改良,逐渐扩展到平板电脑及其他领域上。Android操作系统采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以Java编写。

SSH为Secure Shell的缩写,由IETF的网络工作小组(Network Working Group)所制定;SSH为建立在应用层和传输层基础上的安全协议。

传统的网络服务程序,如FTP、POP和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。而SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。透过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。

SSH之另一项优点为其传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、POP、甚至为PPP提供一个安全的“通道”。有点类似于VPN,但是它在保密方面的能力,远远强于VPN。

SSH协议框架中最主要的部分是三个协议:传输层协议、用户认证协议和连接协议。同时SSH协议框架中还为许多高层的网络安全应用协议提供扩展的支持。

QuickSSHD在智能手机中的使用。

通过下面介绍的一个使用过程,用来证明SSH安全传输协议在Android平台下的可行性,本次实验使用的软硬件及其各版本如下:(1)基于Android2.3.5版本的智能手机一部(已经获得root权限),(2)x86电脑一部;(3)在手机端安装了QuickSSHD的2.0.2(已付费)版本软件;(4)在电脑端安装了FileZilla软件,版本号是3.5.3。

QuickSSHD支持sftp与xterm(命令行终端)方式管理手机,可USB可3G可wifi,我这次使用的软件是FileZilla,因此测试了sftp功能,用的是wifi登录方式进行实验。在图1所示是QuickSSHD软件登录界面。

当你安装好QuickSSHD软件后开始使用,你可以获取一个由软件自动提供给你的IP地址(本次实验中得到的地址是192.168.1.102),且你进入时可以提供密码或者共享Keys的方式进行加密,一般建议采用密码的形式,这个密码是自定义的,也就是在x86电脑端开启软件FileZilla时所需输入的密码,第一次使用后,可以将这个IP地址和密码都设置为常用,以后登录不必每次都输入。

当在Android端设定好命令之后,你可以到x86电脑端设定好软件FileZilla的各项命令,上图显示我本次实验是进行sftp传输的实验,使用的登录名是root,密码就是你在Android端已经输入的密码,最后一个是端口,这个一般是固定的,sftp都是采用的22端口,图2所示是FileZilla软件在Android端和x86计算机端传输文件的界面,其中左图为x86计算机端路径,右图为Android端的/sdcard路径所示。

设置好点击快速连接之后,就会进入图5所示界面,该界面就是一个进行进行sftp方式传输的界面,左半面是x86电脑的磁盘驱动器,右半面你可以选择Android操作系统所属的各个文件夹,因为Linux是特性是利用文件管理系统,因此,你只要管理好了文件,也就是管理好了这个Linux,乃至你的Android系统,由于本次软件所测试的sftp协议在Android上的传输可行性,因此我在右半面选择的是该电子设备所携带的sdcard文件夹。通过测试,通常使用在Linux操作系统中的sftp传输协议完全能够使用在x86电脑和Android系统系统之间。

在本篇文章所述中,虽然只是针对SSH协议的sftp传输方式进行了验证,但是SSH传输协议的优点远不止此,因为是一种相对安全的传输协议方式,SSH协议今后还会在更多的应用区域得到更加广泛的推广,例如需要在公共区域的WIFI上网,虽然利用VPN也可以,但是有的地方封杀VPN,SSH比较安全,当然,还可以利用更改配置文件的方法,更改SSH的默认端口和对登录IP进行限制,进一步的保证利用SSH协议传输数据的安全性。

参考文献

[1] 余永洪.用SSH技术远程管理Linux服务器.《计算机与现代化》,2002.

[2] 孔祥真,徐小龙,邢宏健.Linux操作系统服务器SSH远程管理配置.《网络安全技术与应用》,2011.

[3] 刘平.Android手机访问服务器的一种数据交互方法.《电子设计工程》,2010.

[4] 刘振昌.让SSH远程管理更安全.《中国教育网络》,2011

文件传输协议篇3

传输网的设计

节目传输网的设计原则是:充分利用现有资源,在保证信号质量的前提下,实现节目高效、安全传输。

一、网络传输协议的选用。目前,常见的网络传输协议有:TCP/IP协议、IPX/SPX协议、NETBEUI协议等。基于TCP/IP协议的以太网技术已十分成熟,FTP文件传输协议是TCP/IP的一种具体应用,是Internet网络上传输文件的通用方法。它位于TCP/IP模型当中的应用层,是一个高层的协议。FTP下层使用的是TCP可靠的运输服务,用户通过一个支持FTP协议的客户机程序,连接到远程主机上的FTP服务器程序,进行文件传输。在文件传输的过程中,FTP提供交互式的访问,使用两个独立的端口号分别建立控制和数据两个连接是FTP文件传输协议的特色,它的主要好处是使协议更加简单,并且比较容易实现,在传输过程中可以控制服务器和用户之间的连接。因此,在新闻节目传输网建设中,我们采用FTP传输协议。

二、节目编码方式的选用。如果在网络传输中直接采用视频AVI格式,因其文件太大,需占用很大的带宽才能确保传输的高效性,因而在素材源端有必要对视频文件进行压缩编码。目前,常用的图像压缩编码方式有:MPEG-1、MPEG-2、H.261、H.263、MPEG-4、H.264等,而最具代表性的是MPEG压缩技术。MPEG组织推出的MPEG-2标准是针对标准数字电视和高清晰度电视在各种应用下的压缩方案和系统层的详细规定,在系统和传送方面做了更加详细的规定和进一步的完善,特别适用于广播级的数字电视的编码和传送。同时,目前各县市电视台使用中的非编设备大多采用MPEG-2的编码方式。为了尽量在传输过程中节省时间,采用MPEG-2的编码方式,可以省去相互转码。

三、网络带宽的选用。网络带宽越宽传输速度越快,然而,带宽资源非常有限。为了合理选用带宽大小,我们利用MPEG-2 IBP帧8Mbps编码方式采集10分钟的素材,其视频文件大小为612MB,采用FTP协议,在广电宽带网中进行了传输实验。通过测试,我们发现视频文件采用MPEG-2 IBP帧8Mbps的编码方式,只要网络的传输带宽达到8Mbps,理论上两点之间的节目互传就可以达到1:1的传输时间,但实测传输时间为1:1.1,这样的传输速度能为人所接受。因此,在传输网的建设中,给定每个县(市)8Mbps的专用带宽,以期节目传输畅通。

传输网的组建

为充分利用现有资源,降低成本,节目传输依托广电宽带网进行传送,在实际组建过程中,我们采用专用IP和专用带宽通道,使整个网成为一个独立的以太局域网。为减少网络连接对实际传输速率的影响,各县(市)台上传工作站不经过中间链接,直接接入当地广电宽带网络中心交换机指定IP端口。FTP服务器需满足所有县市台并发访问的需要,则直接连接至市网络中心机房交换机100M端口。为保证非编网络系统的安全,对于节目传输网中选定需采用的素材,由FTP服务器以音视频信号的方式输出直接上载至非编网络系统。

一、FTP服务器软硬件配置。吉安电视台提供各县(市)台上传素材集中存储、集中管理的FTP服务器。考虑到多个县(市)台可能同时上传,要求并发访问时不出现堵塞,并能浏览素材及对素材进行简单编辑,将所需素材转换为音视频信号上传至吉安台非编系统。同时,考虑到各县(市)台上传节目的时间灵活性,该设备必须是不间断开机,要求其具有极高的稳定性。结合多方面因素,该FTP服务器采取这样的硬件配置:双至强5110 1.6G*2处理器/ 华硕5000X主板/2G内存/80G SATA系统盘/ 320G*4 SATA数据盘/ATI 2600显卡/集成网卡(可选千兆网卡)/大洋ME200图像I/O卡。在FTP服务器上安装windows XP 操作系统、专用FTP服务器软件Serv-U。采用授权帐号和密码,方能登陆FTP服务器,不允许匿名登陆;限定登录用户的权限、登录主目录及空间大小等,设定每个帐户访问路径,分配专用的文件存放空间。同时,安装大洋专业非编软件,能对素材进行编辑后再上载至非编网络系统。

二、上传工作站软硬件配置。各县(市)台按传输网的设计要求提供一台工作站,供节目编码上传/下载用。同时安装CuTeFTP软件。该软件是一个基本文件传输协议的软件,功能很稳定,使用起来也很简单,支持断点续传。

文件传输协议篇4

关键词:TCP协议;Winsock控件;网络编程;

文件传输

一、Winsock控件基础

Winsock即Windows Sockets规范的简称,是目前最流行的网络通信应用程序接口之一。所谓Socket,通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过“套接字”向网络发出请求或者应答网络请求。Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以较为方便的编写网络上数据的传递。Winsock控件可以与远程计算机建立连接,并通过用户数据报协议UDP或者传输控制协议TCP进行数据交换,这两种协议都可以用来创建客户与服务器应用程序。与Timer控件和CommandDialog控件类似,Winsock控件在运行时是不可见的。在使用Winsock控件时,首先需要考虑使用什么协议。可以使用的协议包括UDP和TCP。两种协议之间的重要区别在于它们的连接状态:TCP协议控件是基于连接的协议,可以将它同电话系统相比。在开始数据传输之前,用户必须先建立连接。UDP协议是一种无连接协议,两台计算机之间的传输类似于传递邮件:消息从一台计算机发送到另一台计算机,但是两者之间没有明确的连接。到底选择哪一种协议通常是由需要创建的应用程序决定的。本文以TCP为例介绍文件传输。

TCP协议的全名为“传输控制协议(transfer control protocol)”,这是一种在Internet上使用的 主要协议。因此,当您使用TCP协议连接两个网络上的设备时,将可以在它们之间交换希望交换的数据。

同时,如果您开发的应用程序属于主从式应用架构应用系统时,将必须要知道应用系统主机的ip地址(利用RemoteHost属于取得)以及连接端口号(利用remoteport属于取得)。在这些数据完全备齐之后,您才可以进行进一步的调用、连接。

因此,如果正在建立主机端应用程序时,必须指定本机,必须指定本机(执行应用程序所在的计算机)所用的连接端口号(localport属于),接着将Winsock控件设置为“监听(listen)”,即可等候远程客户端进行调用与连接。因此,当主机端接收到客户端调用并且要求连接的信息时,将会触发“要求连接()”的事件,接着进行标准“允许”或是“拒绝”的程序。

一旦主机端与客户端连接完成之后,您将可以开始使用“传送数据(senddata)”方法,将数据传送给对方,并且利用“传送完成(sendcomplete)”事件,来检测数据是否传送完毕。同时,在数据传达对方的计算机时,将会触发对方计算的“接收数据(dataarrival)”事件。此时,您可以使用“取得数据(getdata)”方法,来去出这些接收到的数据。

二、Winsock控件工作原理

Winsock控件是基于Socket规范创建的,所以其通信的实质是对Socket接口进行数据的读写操作。如果两个应用程序需要通信,它们可以通过使用Socket类来建立套接字连接,可以将这个过程想象为一次电话呼叫过程:呼叫者通过拨号与被呼叫者连接,当电话接通时,双方都可以自由通话了,只不过这里的呼叫者被称为“客户”,被呼叫者则称为“服务器”,而号码则为“IP地址+端口”,但在建立连接之前,必须由“客户”发出呼叫,且此时的“服务器”正在监听。因此,基于TCP/IP协议的通信,需要分别建立客户端应用程序和服务器端应用程序。

三、基本实现方法

客户端要与服务器端进行通信,首先,必须知道服务器端的域名或IP地址(RemoteHost属性),就像要和某人打电话前,必须知道对方的电话号码;其次,还必须和服务器端约定相同的端口(RemotePort属性),用于数据的输入和输出;最后,调用Connect方法与服务器端建立连接。

四、实例实现

(一)实现原理

本文将实现的文件传输只有一个发送方和一个接收方,这是最基本的文件传输方式,运用的原理也比较简单:发送方先获取待传输文件的基本信息,主要是文件名及文件长度;然后,将其发送给接收方;接着,建立和文件一样大小的数据缓冲区,并将文件读入;最后,将数据缓冲区中的数据发送给接收方。与此同时,当接收方接收到文件名和文件长度之后,就为其创建新的文件和数据缓冲区;然后,接收传输的文件数据,并将其放在数据缓冲区中;最后,依次将数据缓冲区的数据写入新创建的文件中。这样便完成了不同计算机之间的文件传输。

(二)服务器端主程序主要代码

'发送文件名和文件长度代码:

Winsock1.SendData filename

Winsock1.SendData filelength

'发送文件的内容

Open filepath For Binary As #1'设置数据缓冲区

ReDim data(filelength)

For j = 1 To filelength

Get #1, j, data(j)

Next

send = filelength

Winsock1.SendData data

Close #1

End Sub

"客户端请求连接"事件代码:

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)

If Winsock1.State 0 Then

Winsock1.Close

End If

Winsock1.Accept requestID '接受客户请求

End Sub

(三)客户端主程序主要代码代码

"连接"按钮事件的代码:

Private Sub connect_Click()

Winsock1.Protocol = sckTCPProtocol'以TCP方式进行通信

'设置远程服务器IP地址,为方便调试笔者使用的是自身的IP地址

Winsock1.RemoteHost = hostText.Text

'设置远程服务器通信程序端口号,与服务器端相同

Winsock1.RemotePort = Val(portText.Text)

Winsock1.connect'与服务器端建立连接

End Sub

"数据到达"事件的代码:

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

'状态栏显示提示文字

StatusBar1.SimpleText = "正在接收服务器发送的数据..."

'先接收文件名和文件的长度

If flag = True Then

Winsock1.GetData filename, vbString, bytesTotal - 4

Winsock1.GetData filelength, vbLong

'建立文件

Open filename For Binary As #1

flag = False

Else

'设置缓冲区

ReDim data(bytesTotal)

'接收数据并写入文件

Winsock1.GetData data, vbArray + vbByte

For j = received + 1 To received + bytesTotal

Put #1, j, data(j - received - 1)

Next

'更新接收到的数据

received = received + bytesTotal

ProgressBar1.Value = Int((received / filelength) * 100)

If ProgressBar1.Value >= 100 Then Close #1

End If

End Sub

从以上的实例中,基本了解了有关Winsock控件的使用方法和文件传输的过程。然而,当需要传送的数据比较大时,就不能像以上介绍的那样,直接将整个文件放入数据缓冲区中了,我们的内存是无法忍受用一个几百MB甚至上GB的空间去存储那些临时数据的。显然,这种做法已远不能满足我们的需求,这时可以将文件按照一定的大小,分成若干个数据包。首先,设置数据包的大小,根据文件的基本信息,计算出总共需要的数据包数;然后,依次读取同数据包一样大小的数据到数据缓冲区中;接着,将数据缓冲区中的数据,发送到指定的计算机上;同时在另一端,建立一个数据缓冲区,缓冲区的大小要根据接收到的数据来确定,依次接收客户端传输过来的数据包,并将数据缓冲区的数据写入相应的文件中,这样就很容易实现大文件的传输了。

五、小结

本文通过在VB中使用Winsock控件,实现网络之间的文件传输,更进一步理解了其工作原理。虽然本文重点介绍的是TCP协议的文件传输,但是UDP协议的文件传输实现与TCP是相似的。本文介绍的Winsock工作原理、实现方法、实例的展现还是有普遍的适用性的,能在一定的程度上有助于解决普遍的问题。

参考文献:

[1]黄玲玲,杨剀,王颖.在VB中使用Winsock控件实现局域网通信[J].信息技术,2005,6

[2]王晓平,钟军.VisualBasie网络通信协议分析与应用实现.2003

文件传输协议篇5

关键词:万维网;WWW;HTTP;FTP;Web服务器

WWW(World Wide Web,3W,Web)中文译名为万维网,环球信息网等。是欧洲核物理研究中心(CERN)为全球范围的科学家利用Internet建立在客户机/服务器模型之上,为了方便地进行通信、交流和查询所建立的。Internet采用超文本和超媒体的信息组织方式,将信息的链接扩展到整个Internet上。万维网是一个分布式的超媒体(Hypermedia)系统,它是超文本(Hypertext)系统的扩充,所谓超文本是包含指向其他文档的链接文本,超文本是万维网的基础,在万维网中,主要使用了两个协议,分别是HTTP协议和FTP协议。

1 HTTP协议

超文本传输协议(Hypertext Transfer Protocol,HTTP)提供了访问超文本信息的功能,是万维网与Web服务器之间的通信协议,属于应用层。HTTP协议是用于分布式协作超文本信息系统的、通用的、面向对象的协议。可以用于传输各种超文本页面和数据。

HTTP协议包括以下4个步骤:

第一,建立连接。客户端向服务器发出建立连接HTTP报文的请求,服务端将响应发送回客户端,连接建立。

第二,发送请求。客户端按照HTTP协议通过连接线路向服务端发送请求。

第三,给出应答。服务器按照客户端的要求给出应答,将结果HTML文件返回给客户端。

第四,关闭连接。客户端接到HTTP报文请求后关闭连接。

HTTP协议是基于TCP/IP之上的协议,它不仅保证是否能够正确传输超文本文档,而且还要确定传输文档中的哪一部分,以及哪部分内容首先显示等。通常HTTP报文消息包括客户向服务器的请求报文和服务器向客户的响应报文。这两种类型的报文消息由一个起始行,一个或者多个头域,一个指示结束的空行和消息体组成。HTTP的报文结构包括通用首部、请求首部、响应首部、实体首部和实体主体五个部分。每个头域由,和三部分组成。(注意:域名与大小写无关,可以在域值前添加任何数量的空格符,可将万维网的头域扩展为多行。)

通用域名首部包含请求和响应报文,其中的头域还包含Cache-Control、Connection、Date、Pragma、Transfer-Encoding、Upgrade、Via等。对通用头域的扩展要求通讯双方都支持,如果存在不支持的通用头域,一般将会作为实体处理。

一次HTTP操作其工作过程可分为以下几步:

第一,浏览器分析链接指向页面的URL。

第二,浏览器向DNS请求解析IP地址。

第三,域名系统DNS解析出微软服务器的IP地址。

第四,浏览器与该服务器建立TCP链接。

第五,浏览器发出HTTP请求GET。

第六,服务器通过HTTP响应把文件index.heml发送给浏览器。

第七,TCP连接释放。

第八,浏览器将文件index.heml进行解释,并将Web页显示给用户。

如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,由显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。HTTP采用TCP作为运输层协议,保证了数据的可靠传输,HTTP不需要考虑数据在传输过程中丢失后是怎样重传的,但是HTTP协议本身是无连接的,即通信双方在交换HTTP报文之前不需要先建立HTTP链接。

2 FTP协议

文件传输协议(File Transfer Protocol,FTP)是因特网上使用最广泛的文件传输协议,FTP运行在TCP上采用客户/服务器模型,包括两个组成部分,分别为FTP服务器、FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于服务器上的资源。FTP使用20和21这两个端口,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,数据传输端口就是21。

FTP提供以下功能:

第一,提供不同种类的主机系统之间的传输。

第二,使用户对远程服务器上的文件进行管理。

第三,提供文件共享能力。

另FTP还有两种模式,主动方式Standard(PORT方式),被动方式Passive(PASV方式)。Standard模式下FTP客户端发送PORT命令到服务器。Passive模式下FTP的客户端发送PASV命令到FTP Server。

Port:FTP客户端与服务器的21端口建立控制连接,用来传输控制信息,客户端发送请求,通过控制连接发送给服务器端的控制进程。服务器通过自己的数据连接端口连接至客户端的指定端口并发送数据。

FTP服务器在很多情况下是不支持PASV模式的,因为很多防火墙在设置时,是不允许接受外部发起连接的,因而位于防火墙后或内网的客户端无法穿过防火墙打开FTP服务器的高端端口,故许多内网的客户端不能用PORT模式登陆FTP服务器,造成无法连接。

文件交换协议(File Exchange Protoco,FXP)相当于是FTP的控制器,也可以认为FXP本身其实就是FTP的一个子集,使一个FTP客户端控制两个FTP服务器,在两个服务器之间传送文件。FTP协议的任务是使计算机将文件传送至另一台计算机,它与这两台计算机所处的位置、联接的方式、是否使用相同的计算机操作系统均没有关系。例如,两台计算机通过FTP协议连接,并且能够成功地访问Internet,用户就可以使用FTP命令来传输文件。

其传输方式可分为两大类:ASCII传输和二进制数据传输。

ASCII传输模式:若客户端当时正在拷贝的文件中包含的简单ASCII码,在机器上运行的是不同的操作系统,当文件传输时,FTP协议通常会自动地调整文件的内容以便于将文件“翻译”成另一台计算机存储的文本文件格式,就是我们通常所说的翻译。但是时常会有这样的情况发生,用户正在传输的文件包含的不是文本文件,它们可能是程序、数据库、字处理文件或者压缩文件等信息。那么这时,ASCII传输模式则会消耗大量的时间、资源进行翻译,与我们所希望的相去甚远,于是,出现了第二种传输方式,二进制传输。

参考文献:

[1] 沈红,李爱华.计算机网络(第二版)[M].清华大学出版社,2010.

[2] 谢希仁.计算机网络(第5版)[M].电子工业出版社,2011.

作者简介:周开强(1993―),男,黑龙江庆安人。

文件传输协议篇6

关键词:TCP/IP;网络通信;运用

中图分类号:TP393.04

TCP/IP是网络通信比较常用的协议之一,为通信提供网络化的连接方式。基于TCP/IP的网络通信,防破坏的能力较强,保持网络通信的稳定环境。网络通信在TCP/IP的干预下,拓宽通信路径,体现强度可靠的通信方式。TCP/IP的协议优势是网络通信频繁使用的主要原因,简化网络通信的路径。网络环境在TCP/IP要求下,有效支撑网络通信的运行,进而提高网络通信的运行标准,构建安全、稳定的通信环境。

1 基于TCP/IP网络通信的模式

网络通信的模式可以通过Web与客户机实现,首先利用Socket构建通信通道,同时作为连接Web和客户机的通道,能够有效接收用户的通信请求,准确发送每一条通信内容[1]。网络通信模式具备三项连接内容。第一建立连接,主要是在TCP/IP控制环境下,主动接收通信请求,构成Socket的服务请求,为网络通信提供实时监控的环境,满足多方用户的通信需求,建立连接的过程中构成网络通信的基本模式;第二数据通信,用户发送的通信信息在Socket内部形成读写模式,组成客户机的输入请求,明确用户请求信息的内容,数据通信的另一端为输出端,提高Socket的读写能力,保障服务水平;第三拆除连接,在用户没有通信请求时,相邻两个通信通道不存在通信连接,需要关闭Web到客户机的通信通道,TCP/IP主动关闭Socket的服务路径即可。

2 在TCP/IP参与下网络通信的设计

TCP/IP为网络通信提供协议保障,参与到网络通信的设计中,所以重点分析网络通信的设计,如下:

2.1 端口设计

网络通信利用TCP/IP协议构建服务文件,服务文件组成端口系统,用户利用端口进行网络通信,以此获取服务内容[2]。当用户传输通信信息时,必须通过服务文件搜寻传输端口,以DOS的服务文件为例,分析端口设计,其选择的网络通信服务端口为86/04/20,利用TCP/IP协议的网络形式,满足网络通信的端口设计。不同服务文件的端口设计存有一定的标准,用户需要利用端口开发新的网络通信路径,必须在原有服务文件内添加“openlab 3033/tcp”命令,该命令表示用户端口设计的通信路径名称为openlab,端口为3033,协议为tcp,由此可以作为网络通道的固定端口,不会出现重复的端口设计。

2.2 字节设计

字节是网络通信的一部分,所有信息处理均以字节为单位,TCP/IP能够明确不同字节在网络通信中的顺序。字节顺序是保障网络通信正常的基础,网络通信借助端口筛选字节并规范顺序,保障网络通信的价值。字节顺序设计与端口具有一定联系,通过TCP/IP可以为字节顺序提供IP信息,有利于网络通信的高效切换。

2.3 编程设计

编程设计是TCP/IP的核心,保障网络通信各个层次的运行水平。编程为网络通信提供有效的物理链路,优化接口处理,确保网络通信能够按照协议要求正常进行。因为TCP/IP要求下的编程形式比较多,属于直接编写类型,所以编程设计需要符合网络通信的实际要求,避免出现矛盾编程。

3 基于TCP/IP网络通信的运用

以TCP/IP为协议中心的网络通信,表现出多样化的应用领域,例举网络通信的应用,体现基于TCP/IP网络通信的优势和发展方向。

3.1 远程监控的应用

以某水电站为例,分析网络通信在远程监控中的应用。水电站对通信质量的要求较高,用于满足PLC的远程控制,所以为保障网络通信的稳定性,依靠TCP/IP营造可靠的通信环境[3]。水电站包含诸多运行终端,在Internet/Intranet的环境下,将通信信息传输到远程客户端。TCP/IP保障网络通信的传输水平,能够有效缩短水电站数据服务中心到PLC的传输时间,提高远程监控的能力。水电站的远程客户端发送监控请求,迅速建立TCP/IP连接服务,将网络通信信息传递到现场监控计算机,然后达成监控协议,操作员通过远程终端计算机,控制水电站的重点操作,远程控制设备运行。通过网络通信连接水电站的各项设备,不仅可以实现远程监控,更是体现远程操作的优势。

3.2 传输领域的应用

TCP/IP为网络通信提供优质的传输环境,既可以实现不同类型传输方式的转化,又可以防止文件传输过程中的外界干扰。网络通信实现高分辨率的秒传服务。例如:图形文件的传输,图形已经被作为特殊的文字文件参与到传输过程中,图形文件中包含大量的标准信息,TCP/IP协助网络传输系统识别图形文件的属性,促使图形文件能够准确通过网络协议的控制,匹配对应的属性参数,当图形文件作为网络通信内容进入传输系统时,TCP/IP会主动分析图形文件的内部编程,准确抽取图形文件中传输信息,迅速搜索传输位置,然后确保图形文件成功转化为适应的网络通信信息,完成传输。TCP/IP可以全面记录图形文件的各项信息,保障图形文件不受时间、地域的限制,能够积极完成通信描述。

3.3 虚终端的应用

用户向互联网发送请求时,主要以自身终端为主,导致互联网面临多样化的终端设备,直接影响互联网的兼容性,干扰网络通信的运行。TCP/IP协议为网络通信提供虚拟化的终端服务,改变用户的实际终端,优化网络通信的兼容性。以滚动类型的虚终端为例,分析基于TCP/IP网络通信的应用。TCP/IP可以解析经由网络通信传输的信息,构建成新型的虚终端,整合不同类型的请求信息,促使请求数据表现出滚动传输的方式。滚动类虚终端同样体现在U盘、移动硬盘等设备上,实现网络通信的相互融合,不会阻断数据传输。

3.4 办公环境的应用

以TCP/IP为协议中心的网络通信,在办公环境发挥极大优势,高水平管理办公文件[4]。例如:电子邮件的发送,因为电子邮件具备复杂的结构,其对网络通信系统要求较高,属于多层次的通信信息,电子邮件除主题外,还需附加多项消息,最容易扰或攻击,其在网络通信系统中的传输,还需通过TCP/IP协议保护,TCP/IP保障发送邮件的整体性,避免信息遗漏,能够保障邮件在最短的时间内传输到收件人,避免邮件信息失效。办公环境对网络通信的依赖程度较高,利用TCP/IP支持网络通信的运行,提高通信环境的稳定性。

4 结束语

由于TCP/IP的参与,网络通信得到广泛运用,而且运用领域逐渐增加,渗透信息高效传输的思想。为提升网络通信的运行水平,还需深入分析TCP/IP的本质内涵,发挥网络通信的实际优势。网络通信利用TCP/IP协议,实现信息传输,为信息输送提供高质量的通道,连接网络通信的物理链路,强化通信结构,推进通信网络化的快速发展。

参考文献:

[1]张凯.TCP/IP网络通信协议的实现与探讨[J].网络与信息,2011(09):98-100.

[2]周兵.基于嵌入式TCP/IP的实时数据传输[J].微计算机信息,2011(08):14-16.

[3]雒海东.基于TCP/TP协议下的网络通信的应用开发[J].青海电力,2012(03):78-80.

[4]朱蓉.基于TCP/IP协议的网络通信模式的实现[J].嘉兴学院学报,2012(03):34-36.

文件传输协议篇7

关键词:Gstreamer; 流媒体; RTSP; RTP/RTCP

中图分类号:TN919.8 文献标识码:A 文章编号:1006-3315(2013)03-149-002

1.前言

流媒体技术以流的方式在网络中传输媒体,具有良好的实时性和交互性。随着3G、4G等高速移动通信技术的发展成熟和多媒体智能移动设备的普及,流媒体技术获得了广泛应用和迅速发展。本文基于GStreamer架构,采用RTP/RTCP协议实现数据传输,设计了一种流媒体播放器,处理芯片采用OMAP3430,操作系统为嵌入式Linux系统,借助高速网络,可以实现高质量的流媒体播放。

2.相关技术介绍

2.1流媒体技术。流媒体是指以流的方式在网络中传输音频、视频和多媒体文件的形式。流媒体文件格式是支持采用流式传输及播放的媒体格式。流式传输方式是将视频和音频等多媒体文件经过特殊的压缩方式分成一个个压缩包,由服务器向用户计算机连续、实时传送。用户采用内容缓存的方式,只需要进行很短时间的缓冲,就可以一边播放一边下载,而不需要提前下载整个文件。

流媒体传输一般都是采用建立在udp协议上的rtp/rtsp实时传输协议。相对于注重传输质量的tcp协议来说,udp协议更加注重传输速度,这种协议对于实时性要求很高的流媒体文件来说,无疑是更加合适的。

2.2Gstreamer概述。GStreamer是一种流媒体应用框架,采用了基于插件(plugin)和管道(pipeline)的体系结构,框架中的所有的功能模块都被实现成可以插拔的组件(component),并且在需要的时候能够很方便地安装到任意一个管道上,由于所有插件都通过管道机制进行统一的数据交换,因此很容易利用已有的各种插件“组装”出一个功能完善的多媒体应用程序。其主要功能模块包括元件、衬垫、箱柜等。

元件(Elements)是Gstreamer框架中所有可用组件的基础,是组成管道的基本构件。元件可以分为数据源元件、过滤器元件、接收器元件等,实现数据的输入、处理和输出等功能。

衬垫(pad)是元件(element)与外界的连接通道,每个衬垫都带有特定的功能信息,通过将不同元件的衬垫依次连接起来构成一条媒体处理管道,使数据在流经管道的过程能够被各个元件正常处理,最终就可以实现特定的多媒体功能。

箱柜(Bins):箱柜是一个可以装载元件的容器,同时其自身也是一个GstElement对象,也能够被用来容纳其他的箱柜对象。

2.3实时传输协议(RTP/RTCP)。RTP/RTCP协议栈由两个相互紧凑的协议组成,其中RTP协议负责传送具有实时特征的多媒体数据,而RTCP协议负责反馈控制、监测QoS、监视和传递相关信息。由于流媒体数据传输对于传输实时性的要求远高于传输可靠性,RTP/RTCP数据通常采用UDP/IP封装,它们共同完成网络传输层的功能。

2.4实时流媒体协议(RTSP)。RTSP协议是一种对流媒体数据的传输进行控制的应用级协议。通过RTSP协议,可以实现音视频的控制、点播等功能。

3.流媒体播放器的实现

本文设计的流媒体播放器,可以分为以下几个模块:用户界面、RTSP控制模块、RTP/RTCP传输模块、数据转换模块、解码模块、视音频输出模块。如图1所示。用户通过用户界面与客户端交互,RTSP模块响应用户界面发送的命令,建立RTP数据传输会话,会话建立之后,由RTP/RTCP模块循环接收RTP数据包并进行排序,然后转换模块对RTP数据进行解包,转换成原始的音视频数据,然后送入解码模块进行解码,最后通过音视频输出模块将媒体展示给用户。

图1流媒体播放器架构

用户界面是客户端跟用户之间交互的界面,它包括两部分内容:一是媒体播放控制,比如暂停、快进等;二是媒体内容的展示,比如视频画面的显示等。在Linux系统下,本文利用GTK+库开发GUI框架。

RTSP模块用于会话的建立和控制,它提供响应界面操作的接口,直接响应界面发送的命令。RTSP也提供互联的双方或多方的一个传输方式和编码方式的协商操作,在网络允许的情况下,建立一条最佳的传输通道。当客户端用户选择服务器上某项流媒体内容的时候,播放器会通过RTSP协议,与服务器建立会话,通知服务器往本地RTP接收端口发送音视频数据。

RTP/RTCP模块为流媒体播放器的核心组成部分,当RTSP建立传输会话之后,RTP和RTCP会各使用一个端口,RTP端口会循环接收RTP数据包,同时RTCP端口会周期性的发送RTCP报,RTCP包中包含已发送的数据包的数量、丢失的数据包的数据等统计资料,因此,服务器可以利用这些信息动态的改变传输速率,甚至改变有效载荷类型。RTP包由RTP包头和RTP数据构成,RTP包头中包含了一些可以较好保证流数据连续性实时性的信息,如序列号、时间戳等。序列号可以保证到达客户端的RTP包的连续,而时间戳可以同步音视频包。根据包头中的时间戳接收的数据包进行重新排序,然后传送到转换模块进行处理。

4.小结

本文采用Gstreamer架构,对RTP/RTCP/RTSP协议进行了深入研究,设计了一种基于Linux系统的流媒体播放器,通过构建RTP/RTCP流媒体传输插件,实现了流媒体数据的实时传输和播放,在终端设备中可以取得良好的流媒体播放效果。

这种基于Gsreamer的媒体播放器具备良好的灵活性和可移植性,借助高速传播网络,特别适合在各种不同类型的智能终端实现流媒体的接收和播放等功能,在视频监控、远程会议、视频教学、多媒体娱乐等多种不同场合都可以获得广泛应用。

参考文献:

[1]孙弼阳,李虹,王颖.移动流媒体业务的技术与应用[J]现代电信科技,2008(06):13-18

[2]陈丹,郭先会.RTP/RTCP协议在3GPP移动流媒体业务中的研究与应用[J]山西电子技术,2010(06):65-66

[3]陈洪敏.基于RTP/RTCP协议流媒体传输的研究[J]福建电脑.2010(02):93-94

[4]王蕊,刘卫东,王金童.基于GStreamer的媒体播放研究[J]电子设计工程.2012(03):34-36

文件传输协议篇8

关键词 USB;CAN;BOOTLOADER

中图分类号:TP29 文献标识码:A 文章编号:1671-7597(2013)11-0000-00

1 系统结构

Can-bootloader的实现基于如图1所示系统环境结构。

图1

其中:

USB-CAN转接卡:实现USB总线到CAN总线的协议转换,通过该设备实现BCU的can总线与PC机的数据通信。

下位机板卡:运行bootloader软件,接收S19镜像文件。

PC机(windows):运行上位机程序,向BCU发送S19镜像文件。

2 通信协议

BOOTLOADER通过CAN总线与USB-CAN卡通信,BOOTLOADER通过CAN总线接收从PC机发送过来的S19镜像文件(通过USB-CAN卡)进行BOOTLOADER的flash烧写。

整个通信协议基于文本传输格式的异步文件传输协议,PC机和CAN卡之间以128字节块的形式传输数据,CAN卡与BOOTLOADER之间以8字节的形式传输数据,采用应答传输机制来配合USB高速端的流控,CAN卡将PC机传输过来的数据块以8字节发送,发完一整包(128字节)的数据后以ACK的形式通知PC机可以发送下一包数据。

2.1 上位机与CAN卡通信协议

上位机与CAN卡之间通过USB总线连接,USB-CAN卡被windows识别为普通USB设备,上位机应用程序调用CAN卡的windows驱动程序进行数据读写,数据包长(含包头)最大为128byte。具体实施协议如下所述(USB总线物理层具备CRC校验,所以协议不需对数据进行校验。

2.1.1 协议包数据格式

协议数据包格式如图2所示。

图2

其中包长、包序号、标志皆为1byte,数据为0~125byte。具体含义如下:

包长:指示本包数据长度

包序号:指示本包序列号,第一包序号约定为1,后续序号在0~255间循环。

标志:指示本包数据是否为待传输文件的最后一包,若是起始包将标志置1,最后一包将标志置2,其他置0。

2.1.2 确认包格式

确认包为接收方收到正确的数据后向发送方传输,固定为1byte,值为0x 0x06。#define ACK 0x06。

2.2 CAN卡与BOOTLOADER通信协议

CAN卡与BOOTLOADER之间数据包长固定为8字节。具体实施协议如下所述:

2.2.1 协议数据包格式

(每个数据包含有125字节数据)

协议数据包格式如图3所示。

图3

传输文件用到的基本数据包大小为125字节,若待传输文件的大小不是125字节的整数倍,那么最后一包数据报文的长度不足部分需以CTRLZ填充报文。

2.2.2 协议相关控制字符

(文件以文本格式传送,以下控制字符不占用128个ascii码)

SOH 0x01; EOT 0x04

ACK 0x06; NAK 0x15

CAN 0x18; CTRLZ 0x1A

2.2.3 协议传输概述

传输启动:

协议传输由数据接收方发起,接收方通过向发送方发送NAK报文,发送方收到后进入发送流程。

传输过程:

当发送方接收到接收方发送的第一个NAK后,发送方进入协议的传输过程,进入传输过程后发送方需将待传送数据按照图3所示数据包格式打包,最后将打包的成帧数据包传送。

数据的发送接收采用ACK确认机制,发送方发送一包数据后需等待接收方的确认ACK,收到ACK后发送方才能继续发送数据;若通信的过程中发送方有可能收到NAK或CAN字节的异常处理报文,其中NAK表示接收方请求重发当前报文,CAN字节表示接收方请求停止传输。

结束传输:

如果收发通信双方传输正常,发送方需向接收方发送EOT字节以通知接受方传输正常结束。接受方收到EOT字节之后需回送ACK进行确认。当然在结束传输的过程中接收方也可以发送CAN字节来强制停止传输(发送方收到CAN字节后不需再发EOT确认)。

3 USB-CAN转接卡设计

3.1 USB从设备驱动设计

USB总线中的通信包含以下四种:控制传输、批量传输、中断传输、定时传输等四种。USB设备的枚举过程采用的就是控制传输。从设备枚举成功后,本设计的数据传输方案采用USB规范定义的中断传输和批量传输两种传输方式来传输数据,其中中断传输用于收发控制数据,而批量传输用于传输数据。

其中控制传输是重点和难点,当从设备插入USB集线器时,主机向从设备发送一个获取状态命令请求来验证设备是否激起重启状态。设备现在使用默认地址0x0与主机通信。通信流程如下所述:

1)主机通过默认地址0x0发送USB协议中的获取设备描述符命令以获取控制传输管道的基本参数(最大数据包长等)。

2)主机发送设置地址命令给设备请求分配新的地址,请求成功后设备端保存新地址(此后的通信都通过这个新地址进行通信)。

3)主机通过新地址发送获取设备描述符命令,获取设备描述符的完整信息(如VID、PID等)。

4)主机通过新地址发送获取设备配置命令,获取设备的配置信息。此时主机提示加载新设备驱动程序后,主机发送设置配置命令为设备选择合适的配置参数,配置成功后,设备就可以通过应用软件进行数据传输阶段的通信了。

数据传输阶段较简单,只需对相应的数据端点寄存器进行读写即可完成数据的收发。

3.2 CAN驱动设计

CAN控制器采用SJA1000,SJA1000支持BasicCan和PeliCan两种模式。其中PeliCan模式功能强大、支持多种滤波方式,本设计采用PeliCan模式。上位机通过USB发送应用程序镜像(具体实现见上述通信协议),BOOTLOADER解析协议,完成镜像的烧写,最终能通过USB-CAN卡实现对多点CAN网络进行指定节点的应用程序烧写。

3.3 windows驱动及应用软件设计

USB的windows驱动采用DriverStudio2.6 DDK,启动DDK后选择WDM类型,再选择USB总线类型、并设置好VID和PID,最后设置好各个端点地址、端点传输类型、最大包长等选项后,完成USB驱动的框架,在读写函数中加入驱动的数据处理部分后即可完成驱动的设计(生成inf和sys文件),最终驱动程序读写部分打包为DLL文件以便上位机应用程序调用,应用程序协议处理较简单(参看上述协议部分),最终程序界面如图4所示。

4 CAN-BOOTLOADER设计

4.1 BOOTLOADER结构

BOOTLOADER结构如图5所示。

各区在FLASH中的地址范围如下:

应用程序区+应用程序中断向量表:0x7843ff~0x7f3fff、0x7f83ff~0x7fffff

BOOTLOADER区+BOOTLOADER中断向量表:0x7803ff~0x783fff、0x7f43ff~0x7f7fff

程序复位首先进入bootloader,进入后由bootloader管理中断向量表,将应用程序中单片机的默认中断向量整体映射到bootloader中断向量表中,进入应用程序后bootloader交出管理权由应用程序管理使用单片机默认的中断向量表。

4.2 程序结构及处理流程

Bootloader处理的镜像文件格式采用S19格式,S19的文件格式解析是完成烧写的重要组成部分,S19文件是摩托罗拉公司为便于对可执行镜像文件便于烧写而提出的一种文件格式。其中开发的重心集中在烧写APP命令的处理,Bootloader接收到编程命令后,进入CAN通信自定义协议接收流程,bootloader收到128字节块存入缓冲区后根据图中所示状态机解析出S19文件的完整一行数据,将该行烧入FLASH;烧写成功后继续协议的下一个128字节块的数据接收;当收到S19文件的最后一行时完成对整个S19文件烧写处理流程,协议接收到128字节数据后的流程处理如图7所示。

5 结束语

本文基思卡尔MC9S12系列开发的bootloader,实现了单片机bootloader所需的大部分功能,且软件模块划分合理、设计思路清晰;同时串口通信协议采用标准的xmodem协议,具备一定的通用性,对其它架构的单片机或处理器设计开发bootloader亦有一定的参考价值。

参考文献

[1]MC9S12XEP100 Reference Manual CoversMC9S12XEFamily.

[2]邵贝贝.嵌入式系统中的双核技术[M].北京:北京航空航天大学出版社,2008.

作者简介

万礼华(1974-),男,汉族,重庆市沙坪坝区人,高级工程师,硕士,研究方向:轨道交通闸机通行控制算法,汽车电子控制器,短波自适应通数字电台,综合交换调度设备等。

推荐期刊