数据发送方法及数据发送装置与流程

文档序号:12008746阅读:253来源:国知局
数据发送方法及数据发送装置与流程
本发明涉及一种计算机数据通信传输领域,特别涉及一种数据发送方法及装置、数据接收装置以及数据传输系统。

背景技术:
在互联网普及程度越来越高的今天,人们通过软件来传输数据文件变得越来越频繁。如何高效率的进行文件传输,也变成了时下的技术热点之一。一般而言,文件传输采用的协议有两种:UDP协议或TCP协议。UDP(UserDatagramProtocol)也就是用户数据报协议,它工作在IP层之上的传输层,提供一种简单的不可靠的传送服务。TCP(TransmissionControlProtocol)传输控制协议,也是工作在传输层上,不过它提供的是一种可靠的传输服务。这两种协议都有各自的优缺点:使用UDP协议传输文件,虽然通信双方不需要维护链接信息,不占用太多的系统资源,处理速度快,但在网络繁忙的情况下,容易造成丢包和乱序,而为了纠正这些问题,需要在应用层面增加控制协议,并且需要共用同一条数据通道,这样会降低文件的传输效率。而使用TCP协议传输文件,当传送的数据量过多时,TCP层缓冲区大小将会成为瓶颈,而且TCP本身的重传机制,也将会影响到高效率的传输。

技术实现要素:
有鉴于此,本发明提出一种数据发送方法及装置、数据接收装置以及数据传输系统,以进一步提高数据传输的效率。第一方面,本发明公开了一种数据发送方法,该方法通过TCP通道与UDP通道进行数据传输,包括如下步骤:监听步骤、UDP通道建立步骤和发送方信息收发步骤。其中,监听步骤为,在第一端口进行监听,若监听到新连接,则依据该新连接确立接收方;UDP通道建立步骤为,在第二端口进行基于用户数据报协议的绑定,并将所述第二端口信息,以及接收方绑定第三端口信息通过TCP通道发送给接收方;所述第二端口与所述第三端口之间建立UDP通道;发送方信息收发步骤为,通过所述TCP通道发送控制信息,通过所述UDP通道发送文件数据。进一步地,上述数据发送方法中,所述发送方信息收发步骤进一步包括:第一判断步骤、分片步骤和发送步骤。其中,第一判断步骤为,判断所述文件数据的数据包能否通过最大传输单元;分片步骤为,在所述文件数据的数据包不能通过最大传输单元的情况下,对所述数据包进行分片处理;发送步骤为,对分片处理后的文件数据的数据包通过所述UDP通道进行发送。进一步地,上述数据发送方法中,所述信息发送步骤进一步包括:网络拥堵计算步骤和数据包大小调整步骤。其中,网络拥堵计算步骤为,根据所述接收方反馈的确认接收信息,计算网络的拥堵状况;数据包大小调整步骤为,根据所述网络的拥堵状况调整所述控制信息和/或所述文件数据的数据包的容量大小。进一步地,上述数据发送方法中,所述信息发送步骤进一步包括重传处理步骤,该步骤根据所述接收方反馈的确认接收信息,判断是否存在需要进行重传处理的数据包,若有,则进行重传。进一步地,上述数据发送方法中,所述信息发送步骤进一步包括文件数据读取步骤,该步骤在通过所述UDP通道发送文件数据前,通过内存映射的方式读取文件数据。本发明数据发送方法在发送数据文件时,同时启动TCP通道和UDP通道,具体分工是,基于TCP通道来收发少量的控制信息数据,利用UDP协议的发送效率,用UDP通道用来收发大量的文件数据,通过将控制信息与数据文件传输的发送分开的方式,避免了数据文件采用TCP通道传输时,由于文件数据块的传输占用的系统资源比较多而效率低的问题;同时,由于少量的控制信息数据由TCP发送,则可以避免UDP通道发送数据时,容易发生丢包乱序,以及控制协议选择通道的问题。进而,本实施例可以进一步提高数据的传输效率,并且,具有很好的可靠性。第二方面,本发明数据发送装置,其特征在于,通过TCP通道与UDP通道进行数据传输,包括:监听模块、UDP通道建立模块和发送方信息收发模块。其中,监听模块用于在在第一端口进行监听,若监听到新连接,则依据该新连接确立接收方;UDP通道建立模块用于在第二端口进行基于用户数据报协议的绑定,并将所述第二端口信息,以及接收方绑定第三端口信息通过TCP通道发送给接收方;所述第二端口与所述第三端口之间建立UDP通道;发送方信息收发模块用于通过所述TCP通道发送控制信息,通过所述UDP通道发送文件数据。进一步地,上述数据发送装置中,所述发送方信息收发模块进一步包括:最大传输单元容量确定单元、数据包大小确定单元和发送单元。最大传输单元容量确定单元用于确定所述TCP通道和所述UDP通道的最大传输单元的容量;数据包大小确定单元用于根据所述TCP通道和所述UDP通道的最大传输单元的容量,确定所述文件数据的数据包大小;发送单元用于通过所述TCP通道发送控制信息,并所述文件数据的数据包进行发送。进一步地,上述数据发送装置中,所述发送方信息发送模块进一步包括:网络拥堵计算单元和数据包大小调整单元。其中,网络拥堵计算单元用于根据所述接收方反馈的确认接收信息,计算网络的拥堵状况;数据包大小调整单元用于根据所述网络的拥堵状况调整所述控制信息和/或所述文件数据的数据包的容量大小。进一步地,上述数据发送装置中,所述信息发送模块进一步包括重传处理单元,该重传处理单元用于根据所述接收方反馈的确认接收信息,判断是否存在需要进行重传处理的数据包,若有,则进行重传。进一步地,上述数据发送装置中,所述信息发送模块进一步包括文件数据读取单元,该文件数据读取单元用于在通过所述UDP通道发送文件数据前,通过内存映射的方式读取文件数据。本发明数据发送装置在发送数据文件时,同时启动TCP通道和UDP通道,具体分工是,基于TCP通道来收发少量的控制信息数据,利用UDP协议的发送效率,用UDP通道用来收发大量的文件数据,通过将控制信息与数据文件传输的发送分开的方式,避免了数据文件采用TCP通道传输时,由于文件数据块的传输占用的系统资源比较多而效率低的问题;同时,由于少量的控制信息数据由TCP发送,则可以避免UDP通道发送数据时,容易发生丢包乱序,以及控制协议选择通道的问题。进而,本实施例可以进一步提高数据的传输效率,并且,具有很好的可靠性。第三方面,本发明还公开了一种与上述数据发送装置配合的数据接收装置,包括:建立连接请求模块、UDP信息接收模块、绑定模块和接收方信息收发模块。其中,建立连接请求模块用于向所述第一端口发送新连接建立请求;UDP信息接收模块用于在与所述发送装置建立连接后,通过TCP通道接收来所述数据发送装置所绑定的第二端口信息以及该数据接收装置所绑定第三端口信息;绑定模块在所述第三端口进行基于用户数据报协议的绑定,确定由所述第二端口与所述第三端口建立的UDP通道;接收方信息收发模块用于通过所述TCP通道接收控制信息,通过所述UDP通道接收文件数据。进一步地,上述数据接收装置中,所述接收方信息收发模块进一步包括:控制信息接收单元、数据文件接收单元和确认接收信息反馈单元。其中,控制信息接收单元用于通过所述TCP通道接收控制信息;数据文件接收单元用于通过所述UDP通道接收数据文件信息;确认接收信息反馈单元用于通过所述TCP通道对所述数据文件的数据包被确认接收的事件进行反馈。本发明数据接收装置接收文件时,同时启动TCP通道和UDP通道,具体分工是,基于TCP通道来接收少量的控制信息数据,利用UDP协议的发送效率,用UDP通道用来接收大量的文件数据,通过将控制信息与数据文件传输的发送分开的方式,避免了数据文件采用TCP通道传输时,由于文件数据块的传输占用的系统资源比较多而效率低的问题;同时,由于少量的控制信息数据由TCP发送,则可以避免UDP通道发送数据时,容易发生丢包乱序,以及控制协议选择通道的问题。进而,本实施例可以进一步提高数据的传输效率,并且,具有很好的可靠性。第四方面,本发明还公开了一种数据传输系统,包括上述任何一种数据发送装置和数据接收装置,并且,所述数据发送装置与所述数据接收装置相匹配。由于数据发送装置和数据接收装置在上面已经进行了详细的说明,对应的技术效果也做了分析,具有这两个装置的数据传输装置也必然具有上述技术效果,在此不再赘述。附图说明构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1为本发明数据发送方法第一实施例的步骤流程图;图2为本发明数据发送方法第二实施例的步骤流程图;图3为本发明数据发送方法第三实施例的步骤流程图;图4为本发明数据发送方法第四实施例的步骤流程图;图5为本发明数据发送装置第一实施例的结构框图;图6为本发明数据发送装置第二实施例的结构框图;图7为本发明数据发送装置第三实施例的结构框图;图8为本发明数据发送装置第四实施例的结构框图;图9为本发明数据发送装置的工作流程图;图10为本发明数据接收装置第一实施例的结构框图图11为本发明数据接收装置另一实施例中,接收方信息收发模块的结构框图;图12为本发明数据接收装置的工作流程图。具体实施方式需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。参照图1,图1为本发明数据发送方法第一实施例的步骤流程图。本实施例数据发送方法通过TCP通道与UDP通道进行数据传输,包括如下步骤:监听步骤S110、UDP通道建立步骤S120和发送方信息收发步骤S130。其中,监听步骤110为,在第一端口进行监听,若监听到新连接,则依据该新连接确立接收方;UDP通道建立步骤S120为,在第二端口进行基于用户数据报协议的绑定,并将所述第二端口信息,以及接收方绑定第三端口信息通过TCP通道发送给接收方;所述第二端口与所述第三端口之间建立UDP通道;发送方信息收发步骤S130为,通过所述TCP通道发送控制信息,通过所述UDP通道发送文件数据。本实施例数据发送方法在发送数据文件时,同时启动TCP通道和UDP通道,具体分工是,基于TCP通道来收发少量的控制信息数据,利用UDP协议的发送效率,用UDP通道用来收发大量的文件数据,通过将控制信息与数据文件传输的发送分开的方式,避免了数据文件采用TCP通道传输时,由于文件数据块的传输占用的系统资源比较多而效率低的问题;同时,由于少量的控制信息数据由TCP发送,则可以避免UDP通道发送数据时,容易发生丢包乱序,以及控制协议选择通道的问题。进而,本实施例可以进一步提高数据的传输效率,并且,具有很好的可靠性。参照图2,图2为本发明数据发送方法第二实施例的步骤流程图。与上一实施例相似,本实施例通过TCP通道与UDP通道进行数据传输,包括如下步骤:监听步骤S210、UDP通道建立步骤S220和发送方信息收发步骤S230。其中,监听步骤S210为,在第一端口进行监听,若监听到新连接,则依据该新连接确立接收方;UDP通道建立步骤S220为,在第二端口进行基于用户数据报协议的绑定,并将所述第二端口信息,以及接收方绑定第三端口信息通过TCP通道发送给接收方;所述第二端口与所述第三端口之间建立UDP通道;发送方信息收发步骤为S230,通过所述TCP通道发送控制信息,通过所述UDP通道发送文件数据。TCP的协议栈里会默认启用NAGLE算法(这是以发明人JohnNagle命的名字),主要是避免小量的数据对网络的消耗。为了提高TCP通道发送控制信息的效率,所以关闭NAGLE算法。无论是TCP通道还是UDP通道都有一个MTU(最大传输单元,MaximumTransmissionUnit),该MTU是指一种通信协议的某一层上面所能通过的最大数据包大小,通常以字节为单位。如果超过这个MTU,系统会对数据包进行分片处理,这会大大降低传输的效率,所以发送数据包的大小不能超过MTU。邮件鉴于此,更加优选地,本实施例中,信息收发步骤230进一步包括:最大传输单元容量确定步骤2301、数据包大小确定步骤S2302和发送步骤S2303。其中,最大传输单元容量确定步骤为2301为,确定所述TCP通道和所述UDP通道的最大传输单元的容量;数据包大小确定步骤S2302为,根据所述TCP通道和所述UDP通道的最大传输单元的容量,确定所述文件数据的数据包大小;发送步骤S2303为,通过所述TCP通道发送控制信息,并所述文件数据的数据包进行发送。在本实施例中,除了具有第一实施例的优势外,由于还设置有根据TCP通道还是UDP通道都有一个MTU确定文件数据的数据包的大小,因此,数据包的小小不会超过TCP通道或UDP通道的MTU,系统不会对数据包进行分片处理,由此,本实施例相对于第一实施例,会大大提高数据传输的效率。参照图3,图3为本发明数据发送方法第三实施例的步骤流程图。与第一实施例相似,本实施例通过TCP通道与UDP通道进行数据传输,包括如下步骤:监听步骤S310、UDP通道建立步骤S320和发送方信息收发步骤S330。其中,监听步骤310为,在第一端口进行监听,若监听到新连接,则依据该新连接确立接收方;UDP通道建立步骤S320为,在第二端口进行基于用户数据报协议的绑定,并将所述第二端口信息,以及接收方绑定第三端口信息通过TCP通道发送给接收方;所述第二端口与所述第三端口之间建立UDP通道;发送方信息收发步骤为S330,通过所述TCP通道发送控制信息,通过所述UDP通道发送文件数据。更加优选地,本实施例中,信息收发步骤330进一步包括:网络拥堵计算步骤3301和数据包大小调整步骤3302。其中,网络拥堵计算步骤3301为,根据接收方反馈的确认接收信息,计算网络的拥堵状况;数据包大小调整步骤3302为,根据网络的拥堵状况调整控制信息和/或文件数据的数据包的容量大小。当确立好发送方和接收方时,TCP通道就用来收发文件的控制信息,控制信息包含文件信息、文件数据块信息,它们的数据结构设计如下,typedefstruct_tagFileInfo{charhash_code[32];//文件的数字指纹,采用MD5算法charfile_name[MAX_PATH];//文件名}FileInfo,*LPFileInfo;typedefstruct_tagFileBlockInfo{charhashcode[32];//文件的数字指纹,采用MD5算法intcur_block_num;//文件当前块号}FileBlockInfo,*LPFileBlockInfo;发送方用链表维护着已发送的数据信息块,并且在发送端拥有一个定时器,设置一个超时时间,在这个时间段内计算来自接收端发送过来的确认信息,根据这些数据计算出网络拥塞率,根据这个拥塞率及时调整UDP传输数据块的大小,计算公式为:block_size=MAX_MSS_VALUE*jam_rate;可以看出,本实施例除了具有第一实施例的优势外,还具有良好的拥塞控制处理性能。UDP通道发送数据虽然发送十分高效,但是也会占用大量的带宽,造成网络拥塞,而负责传输控制协议的TCP通道将会受到影响,所以本实施例通过提供一个算法来计算网络的拥塞情况,调整文件块的大小,进而解决万罗拥塞的问题。参照图4,图4为本发明数据发送方法第四实施例的步骤流程图。与第一实施例相似,本实施例通过TCP通道与UDP通道进行数据传输,包括如下步骤:监听步骤S410、UDP通道建立步骤S420和发送方信息收发步骤S430。其中,监听步骤410为,在第一端口进行监听,若监听到新连接,则依据该新连接确立接收方;UDP通道建立步骤S420为,在第二端口进行基于用户数据报协议的绑定,并将第二端口信息,以及接收方绑定第三端口信息通过TCP通道发送给接收方;第二端口与第三端口之间建立UDP通道;发送方信息收发步骤为S430,通过TCP通道发送控制信息,通过UDP通道发送文件数据。更加优选地,本实施例中,信息收发步骤430进一步包括:文件数据读取步骤4301,该步骤在通过UDP通道发送文件数据前,通过内存映射的方式读取文件数据;发送步骤4302,通过所述TCP通道发送控制信息,通过所述UDP通道发送文件数据。在确立好发送方和接收方的同时,UDP通道也随之建立起来,发送端把文件数据读入到内存,为了降低文件读写的延时,可以采取内存映射技术快速的读取文件,文件块封包的大小根据上面的计算公式算出。typedefstruct_tagFileBlock{FileBlockInfoinfo;//文件数据块信息unsignedshortfile_block_size;//文件数据块大小charpFileBlock[MAX_BLOCK_SIZE];//文件数据块的内容}FileBlock,*LPFileBlock;正如本领域的技术人员所习知,读写文件所造成的延时,也会对文件的传输效率造成影响,而本实施例采用内存映射技术可以很好的解决这个问题。进一步优选地,上述数据发送方法实施例中,信息发送步骤进一步包括重传处理步骤,该步骤根据接收方反馈的确认接收信息,判断是否存在需要进行重传处理的数据包,若有,则进行重传。换句话说,在接收到返回来确认信息后,会对比发送列表里面的已发送的数据信息块块,如果被确认,则该文件块将会从链表里移除,否则将通知该数据信息块对应的文件数据块重传。参照图5,图5为本发明数据发送装置第一实施例的结构框图。本实施例数据发送装置通过TCP通道与UDP通道进行数据传输,包括:监听模块50、UDP通道建立模块52和发送方信息收发模块54。其中,监听步骤50用于在第一端口进行监听,若监听到新连接,则依据该新连接确立接收方;UDP通道建立模块52用于在第二端口进行基于用户数据报协议的绑定,并将第二端口信息,以及接收方绑定第三端口信息通过TCP通道发送给接收方;第二端口与第三端口之间建立UDP通道;发送方信息收发模块54用于通过TCP通道发送控制信息,通过UDP通道发送文件数据。本实施例数据发送装置在发送数据文件时,同时启动TCP通道和UDP通道,具体分工是,基于TCP通道来收发少量的控制信息数据,利用UDP协议的发送效率,用UDP通道用来收发大量的文件数据,通过将控制信息与数据文件传输的发送分开的方式,避免了数据文件采用TCP通道传输时,由于文件数据块的传输占用的系统资源比较多而效率低的问题;同时,由于少量的控制信息数据由TCP发送,则可以避免UDP通道发送数据时,容易发生丢包乱序,以及控制协议选择通道的问题。进而,本实施例可以进一步提高数据的传输效率,并且,具有很好的可靠性。参照图6,图6为本发明数据发送装置第二实施例的结构框图。与上一实施例相似,本实施例通过TCP通道与UDP通道进行数据传输,包括:监听模块60、UDP通道建立模块62和发送方信息收发模块64。其中,监听模块60用于在第一端口进行监听,若监听到新连接,则依据该新连接确立接收方;UDP通道建立模块62用于在第二端口进行基于用户数据报协议的绑定,并将第二端口信息,以及接收方绑定第三端口信息通过TCP通道发送给接收方;第二端口与第三端口之间建立UDP通道;发送方信息收发模块64用于通过TCP通道发送控制信息,通过UDP通道发送文件数据。TCP的协议栈里会默认启用NAGLE算法,主要是避免小量的数据对网络的消耗。为了提高TCP通道发送控制信息的效率,所以关闭NAGLE算法。无论是TCP通道还是UDP通道都有一个MTU(最大传输单元,MaximumTransmissionUnit),该MTU是指一种通信协议的某一层上面所能通过的最大数据包大小,通常以字节为单位。如果超过这个MTU,系统会对数据包进行分片处理,这会大大降低传输的效率,所以发送数据包的大小不能超过MTU。邮件鉴于此,更加优选地,本实施例中,信息收发模块64进一步包括:最大传输单元容量确定单元641、数据包大小确定单元642和发送单元643。其中,最大传输单元容量确定单元641用于确定TCP通道和UDP通道的最大传输单元的容量;数据包大小确定单元642用于根据TCP通道和UDP通道的最大传输单元的容量,确定文件数据的数据包大小;发送单元643用于通过TCP通道发送控制信息,并文件数据的数据包进行发送。在本实施例中,除了具有第一实施例的优势外,由于还设置有根据TCP通道还是UDP通道都有一个MTU确定文件数据的数据包的大小,因此,数据包的小小不会超过TCP通道或UDP通道的MTU,系统不会对数据包进行分片处理,由此,本实施例相对于第一实施例,会大大提高数据传输的效率。参照图7,图7为本发明数据发送装置第三实施例的结构框图。与第图5所示的实施例相似,本实施例通过TCP通道与UDP通道进行数据传输,包括如下模块:监听模块70、UDP通道建立模块72和发送方信息收发模块74。其中,监听模块70用于在第一端口进行监听,若监听到新连接,则依据该新连接确立接收方;UDP通道建立模块72用于在第二端口进行基于用户数据报协议的绑定,并将所述第二端口信息,以及接收方绑定第三端口信息通过TCP通道发送给接收方;所述第二端口与所述第三端口之间建立UDP通道;发送方信息收发模块74用于通过所述TCP通道发送控制信息,通过所述UDP通道发送文件数据。更加优选地,本实施例中,信息收发模块74进一步包括:网络拥堵计算单元741和数据包大小调整单元742。其中,网络拥堵计算单元741用于根据接收方反馈的确认接收信息,计算网络的拥堵状况;数据包大小调整单元742用于根据网络的拥堵状况调整控制信息和/或文件数据的数据包的容量大小。当确立好发送方和接收方时,TCP通道就用来收发文件的控制信息,控制信息包含文件信息、文件数据块信息,它们的数据结构设计如下,typedefstruct_tagFileInfo{charhash_code[32];//文件的数字指纹,采用MD5算法charfile_name[MAX_PATH];//文件名}FileInfo,*LPFileInfo;typedefstruct_tagFileBlockInfo{charhashcode[32];//文件的数字指纹,采用MD5算法intcur_block_num;//文件当前块号}FileBlockInfo,*LPFileBlockInfo;发送方用链表维护着已发送的数据信息块,并且在发送端拥有一个定时器,设置一个超时时间,在这个时间段内计算来自接收端发送过来的确认信息,根据这些数据计算出网络拥塞率,根据这个拥塞率及时调整UDP传输数据块的大小,计算公式为:block_size=MAX_MSS_VALUE*jam_rate;可以看出,本实施例除了具有第五实施例的优势外,还具有良好的拥塞控制处理性能。UDP通道发送数据虽然发送十分高效,但是也会占用大量的带宽,造成网络拥塞,而负责传输控制协议的TCP通道将会受到影响,所以本实施例通过提供一个算法来计算网络的拥塞情况,调整文件块的大小,进而解决网络拥塞的问题。参照图8,图8为本发明数据发送装置第四实施例的结构框图。与图5所示的实施例相类似,本实施例通过TCP通道与UDP通道进行数据传输,包括如下模块:监听模块80、UDP通道建立模块82和发送方信息收发模块84。其中,监听模块80用于在第一端口进行监听,若监听到新连接,则依据该新连接确立接收方;UDP通道建立模块82用于在第二端口进行基于用户数据报协议的绑定,并将第二端口信息,以及接收方绑定第三端口信息通过TCP通道发送给接收方;第二端口与第三端口之间建立UDP通道;发送方信息收发模块84用于通过TCP通道发送控制信息,通过UDP通道发送文件数据。更加优选地,本实施例中,信息收发模块84进一步包括:文件数据读取单元841和发送单元842。文件数据读取单元841用于在通过UDP通道发送文件数据前,通过内存映射的方式读取文件数据;发送单元842用于通过所述TCP通道发送控制信息,通过所述UDP通道发送文件数据。在确立好发送方和接收方的同时,UDP通道也随之建立起来,发送端把文件数据读入到内存,为了降低文件读写的延时,可以采取内存映射技术快速的读取文件,文件块封包的大小根据上面的计算公式算出。typedefstruct_tagFileBlock{FileBlockInfoinfo;//文件数据块信息unsignedshortfile_block_size;//文件数据块大小charpFileBlock[MAX_BLOCK_SIZE];//文件数据块的内容}FileBlock,*LPFileBlock;正如本领域的技术人员所习知,读写文件所造成的延时,也会对文件的传输效率造成影响,而本实施例采用内存映射技术可以很好的解决这个问题。进一步优选地,上述数据发送方法实施例中,信息发送模块进一步包括重传处理步骤,该模块根据接收方反馈的确认接收信息,判断是否存在需要进行重传处理的数据包,若有,则进行重传。换句话说,在接收到返回来确认信息后,会对比发送列表里面的已发送的数据信息块块,如果被确认,则该文件块将会从链表里移除,否则将通知该数据信息块对应的文件数据块重传。参照图9,图9为本发明数据发送方法一个实施例的工作流程图。发送方进程流程是这样的:1)发送方在指定的端口监听,端口号为PORT;2)有新连接到来,确立发送方和接收方;3)确立完成后,发送方此时在PORT+1端口号进行UDP绑定;4)发送方把自己绑定UDP端口号信息,以及接收方应绑定的端口号信息通过TCP通道发送给接收方;5)通过TCP通道收发控制信息,通过UDP通道收发文件数据。参照图10,图10为本发明数据接收装置第一实施例的结构框图。本实施例数据接收装置与上述实施例中的数据发送装置配合使用,包括:建立连接请求模块1000、UDP信息接收模块1020、绑定模块1030和接收方信息收发模块1040。其中,建立连接请求模块1000用于向第一端口发送新连接建立请求;UDP信息接收模块1020用于在与发送装置建立连接后,通过TCP通道接收来数据发送装置所绑定的第二端口信息以及该数据接收装置所绑定第三端口信息;绑定模块1030用于在第三端口进行基于用户数据报协议的绑定,确定由第二端口与第三端口建立的UDP通道;接收方信息收发模块1040用于通过TCP通道接收控制信息,通过UDP通道接收文件数据。本实施例数据接收装置接收文件时,同时启动TCP通道和UDP通道,具体分工是,基于TCP通道来接收少量的控制信息数据,利用UDP协议的发送效率,用UDP通道用来接收大量的文件数据,通过将控制信息与数据文件传输的发送分开的方式,避免了数据文件采用TCP通道传输时,由于文件数据块的传输占用的系统资源比较多而效率低的问题;同时,由于少量的控制信息数据由TCP发送,则可以避免UDP通道发送数据时,容易发生丢包乱序,以及控制协议选择通道的问题。进而,本实施例可以进一步提高数据的传输效率,并且,具有很好的可靠性。参照图11,图11为本发明数据接收装置第二实施例的结构框图。本实施例中,接收方信息收发模块1040进一步包括:控制信息接收单元10401、数据文件接收单元10402和确认接收信息反馈单元10403。其中,控制信息接收单元10401用于通过TCP通道接收控制信息;数据文件接收单元10402用于通过UDP通道接收数据文件信息;确认接收信息反馈单元10403用于通过TCP通道对数据文件的数据包被确认接收的事件进行反馈。参照图12,图12为本发明数据接收装置的工作流程图。接收方的工作流程是这样的:1)接收方向端口号为PORT的TCP服务端发起连接请求;2)成功后,确定发送方和接收方;3)接收来自服务端发送的UDP端口信息,绑定UDP于指定的端口上。4)通过TCP通道收发控制信息,UDP通道收发文件数据。此外,本发明还公开了一种数据传输系统,包括上述任何一种数据发送装置和数据接收装置,并且,所述数据发送装置与所述数据接收装置相匹配。由于数据发送装置和数据接收装置在上面已经进行了详细的说明,对应的技术效果也做了分析,具有这两个装置的数据传输装置也必然具有上述技术效果,在此不再赘述。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1