CN103338184A - 数据发送方法及装置、数据接收装置以及数据传输系统 - Google Patents

数据发送方法及装置、数据接收装置以及数据传输系统 Download PDF

Info

Publication number
CN103338184A
CN103338184A CN2013102020908A CN201310202090A CN103338184A CN 103338184 A CN103338184 A CN 103338184A CN 2013102020908 A CN2013102020908 A CN 2013102020908A CN 201310202090 A CN201310202090 A CN 201310202090A CN 103338184 A CN103338184 A CN 103338184A
Authority
CN
China
Prior art keywords
data
passage
udp
information
port
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2013102020908A
Other languages
English (en)
Other versions
CN103338184B (zh
Inventor
许元进
韦孟华
李朋辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujian Nebula Big Data Application Service Co.,Ltd.
Original Assignee
FUJIAN ETIM INFORMATION TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by FUJIAN ETIM INFORMATION TECHNOLOGY Co Ltd filed Critical FUJIAN ETIM INFORMATION TECHNOLOGY Co Ltd
Priority to CN201310202090.8A priority Critical patent/CN103338184B/zh
Publication of CN103338184A publication Critical patent/CN103338184A/zh
Application granted granted Critical
Publication of CN103338184B publication Critical patent/CN103338184B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种数据发送方法及装置、数据接收装置以及数据传输系统。其中,数据发送方法通过TCP通道与UDP通道进行数据传输,包括如下步骤:在第一端口进行监听,若监听到新连接,则依据该新连接确立接收方;在第二端口进行基于用户数据报协议的绑定,并将第二端口信息,以及接收方绑定第三端口信息通过TCP通道发送给接收方;第二端口与第三端口之间建立UDP通道;通过TCP通道发送控制信息,通过UDP通道发送文件数据。本发明进一步提高了数据的传输效率。

Description

数据发送方法及装置、数据接收装置以及数据传输系统
技术领域
本发明涉及一种计算机数据通信传输领域,特别涉及一种数据发送方法及装置、数据接收装置以及数据传输系统。
背景技术
在互联网普及程度越来越高的今天,人们通过软件来传输数据文件变得越来越频繁。如何高效率的进行文件传输,也变成了时下的技术热点之一。
一般而言,文件传输采用的协议有两种:UDP协议或TCP协议。UDP(UserDatagram Protocol)也就是用户数据报协议,它工作在IP层之上的传输层,提供一种简单的不可靠的传送服务。TCP(Transmission Control Protocol)传输控制协议,也是工作在传输层上,不过它提供的是一种可靠的传输服务。
这两种协议都有各自的优缺点:
使用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。其中,监听步骤210为,在第一端口进行监听,若监听到新连接,则依据该新连接确立接收方;UDP通道建立步骤S220为,在第二端口进行基于用户数据报协议的绑定,并将所述第二端口信息,以及接收方绑定第三端口信息通过TCP通道发送给接收方;所述第二端口与所述第三端口之间建立UDP通道;发送方信息收发步骤为S230,通过所述TCP通道发送控制信息,通过所述UDP通道发送文件数据。
TCP的协议栈里会默认启用NAGLE算法(这是以发明人John Nagle命的名字),主要是避免小量的数据对网络的消耗。为了提高TCP通道发送控制信息的效率,所以关闭NAGLE算法。无论是TCP通道还是UDP通道都有一个MTU(最大传输单元,Maximum Transmission Unit),该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通道就用来收发文件的控制信息,控制信息包含文件信息、文件数据块信息,它们的数据结构设计如下,
Figure BDA00003252800100081
发送方用链表维护着已发送的数据信息块,并且在发送端拥有一个定时器,设置一个超时时间,在这个时间段内计算来自接收端发送过来的确认信息,根据这些数据计算出网络拥塞率,根据这个拥塞率及时调整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通道也随之建立起来,发送端把文件数据读入到内存,为了降低文件读写的延时,可以采取内存映射技术快速的读取文件,文件块封包的大小根据上面的计算公式算出。
Figure BDA00003252800100091
正如本领域的技术人员所习知,读写文件所造成的延时,也会对文件的传输效率造成影响,而本实施例采用内存映射技术可以很好的解决这个问题。
进一步优选地,上述数据发送方法实施例中,信息发送步骤进一步包括重传处理步骤,该步骤根据接收方反馈的确认接收信息,判断是否存在需要进行重传处理的数据包,若有,则进行重传。
换句话说,在接收到返回来确认信息后,会对比发送列表里面的已发送的数据信息块块,如果被确认,则该文件块将会从链表里移除,否则将通知该数据信息块对应的文件数据块重传。
参照图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(最大传输单元,MaximumTransmission Unit),该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通道就用来收发文件的控制信息,控制信息包含文件信息、文件数据块信息,它们的数据结构设计如下,
Figure BDA00003252800100121
发送方用链表维护着已发送的数据信息块,并且在发送端拥有一个定时器,设置一个超时时间,在这个时间段内计算来自接收端发送过来的确认信息,根据这些数据计算出网络拥塞率,根据这个拥塞率及时调整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通道也随之建立起来,发送端把文件数据读入到内存,为了降低文件读写的延时,可以采取内存映射技术快速的读取文件,文件块封包的大小根据上面的计算公式算出。
Figure BDA00003252800100131
正如本领域的技术人员所习知,读写文件所造成的延时,也会对文件的传输效率造成影响,而本实施例采用内存映射技术可以很好的解决这个问题。
进一步优选地,上述数据发送方法实施例中,信息发送模块进一步包括重传处理步骤,该模块根据接收方反馈的确认接收信息,判断是否存在需要进行重传处理的数据包,若有,则进行重传。
换句话说,在接收到返回来确认信息后,会对比发送列表里面的已发送的数据信息块块,如果被确认,则该文件块将会从链表里移除,否则将通知该数据信息块对应的文件数据块重传。
参照图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通道收发文件数据。
此外,本发明还公开了一种数据传输系统,包括上述任何一种数据发送装置和数据接收装置,并且,所述数据发送装置与所述数据接收装置相匹配。
由于数据发送装置和数据接收装置在上面已经进行了详细的说明,对应的技术效果也做了分析,具有这两个装置的数据传输装置也必然具有上述技术效果,在此不再赘述。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (13)

1.一种数据发送方法,其特征在于,该方法通过TCP通道与UDP通道进行数据传输,包括如下步骤:
监听步骤,在第一端口进行监听,若监听到新连接,则依据该新连接确立接收方;
UDP通道建立步骤,在第二端口进行基于用户数据报协议的绑定,并将所述第二端口信息,以及接收方绑定第三端口信息通过TCP通道发送给接收方;所述第二端口与所述第三端口之间建立UDP通道;
发送方信息收发步骤,通过所述TCP通道发送控制信息,通过所述UDP通道发送文件数据。
2.根据权利要求1所述的数据发送方法,其特征在于,所述发送方信息收发步骤进一步包括:
最大传输单元容量确定步骤,确定所述TCP通道和所述UDP通道的最大传输单元的容量;
数据包大小确定步骤,根据所述TCP通道和所述UDP通道的最大传输单元的容量,确定所述文件数据的数据包大小;
发送步骤,通过所述TCP通道发送控制信息,并所述文件数据的数据包进行发送。
3.根据权利要求1所述的数据发送方法,其特征在于,所述信息发送步骤进一步包括:
网络拥堵计算步骤,根据所述接收方反馈的确认接收信息,计算网络的拥堵状况;
数据包大小调整步骤,根据所述网络的拥堵状况调整所述控制信息和/或所述文件数据的数据包的容量大小。
4.根据权利要求1所述的数据发送方法,其特征在于,所述信息发送步骤进一步包括:
重传处理步骤,根据所述接收方反馈的确认接收信息,判断是否存在需要进行重传处理的数据包,若有,则进行重传。
5.根据权利要求1所述的数据发送方法,其特征在于,所述信息发送步骤进一步包括:
文件数据读取步骤,在通过所述UDP通道发送文件数据前,通过内存映射的方式读取文件数据。
6.一种数据发送装置,其特征在于,通过TCP通道与UDP通道进行数据传输,包括:
监听模块,用于在在第一端口进行监听,若监听到新连接,则依据该新连接确立接收方;
UDP通道建立模块,用于在第二端口进行基于用户数据报协议的绑定,并将所述第二端口信息,以及接收方绑定第三端口信息通过TCP通道发送给接收方;所述第二端口与所述第三端口之间建立UDP通道;
发送方信息收发模块,用于通过所述TCP通道发送控制信息,通过所述UDP通道发送文件数据。
7.根据权利要求6所述的数据发送装置,其特征在于,所述发送方信息收发模块进一步包括:
最大传输单元容量确定单元,用于确定所述TCP通道和所述UDP通道的最大传输单元的容量;
数据包大小确定单元,用于根据所述TCP通道和所述UDP通道的最大传输单元的容量,确定所述文件数据的数据包大小;
发送单元,用于通过所述TCP通道发送控制信息,并所述文件数据的数据包进行发送。
8.根据权利要求6所述的数据发送装置,其特征在于,所述信息发送模块进一步包括:
网络拥堵计算单元,用于根据所述接收方反馈的确认接收信息,计算网络的拥堵状况;
数据包大小调整单元,用于根据所述网络的拥堵状况调整所述控制信息和/或所述文件数据的数据包的容量大小。
9.根据权利要求6所述的数据发送装置,其特征在于,所述信息发送模块进一步包括:
重传处理单元,用于根据所述接收方反馈的确认接收信息,判断是否存在需要进行重传处理的数据包,若有,则进行重传。
10.根据权利要求6所述的数据发送装置,其特征在于,所述信息发送模块进一步包括:
文件数据读取单元,用于在通过所述UDP通道发送文件数据前,通过内存映射的方式读取文件数据。
11.一种与权利要求6所述的数据发送装置配合的数据接收装置,其特征在于,包括:
建立连接请求模块,用于向所述第一端口发送新连接建立请求;
UDP信息接收模块,用于在与所述发送装置建立连接后,通过TCP通道接收来所述数据发送装置所绑定的第二端口信息以及该数据接收装置所绑定第三端口信息;
绑定模块,在所述第三端口进行基于用户数据报协议的绑定,确定由所述第二端口与所述第三端口建立的UDP通道;
接收方信息收发模块,用于通过所述TCP通道接收控制信息,通过所述UDP通道接收文件数据。
12.根据权利要求11所述的数据接收装置,其特征在于,所述接收方信息收发模块进一步包括:
控制信息接收单元,用于通过所述TCP通道接收控制信息;
数据文件接收单元,用于通过所述UDP通道接收数据文件信息;以及
确认接收信息反馈单元,用于通过所述TCP通道对所述数据文件的数据包被确认接收的事件进行反馈。
13.一种数据传输系统,其特征在于,
包括如权利要求6至10中任一项所述的数据发送装置,以及,如权利要求11或12所述的数据接收装置,并且,所述数据发送装置与所述数据接收装置相匹配。
CN201310202090.8A 2013-05-27 2013-05-27 数据发送方法及数据发送装置 Active CN103338184B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310202090.8A CN103338184B (zh) 2013-05-27 2013-05-27 数据发送方法及数据发送装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310202090.8A CN103338184B (zh) 2013-05-27 2013-05-27 数据发送方法及数据发送装置

Publications (2)

Publication Number Publication Date
CN103338184A true CN103338184A (zh) 2013-10-02
CN103338184B CN103338184B (zh) 2017-02-15

Family

ID=49246282

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310202090.8A Active CN103338184B (zh) 2013-05-27 2013-05-27 数据发送方法及数据发送装置

Country Status (1)

Country Link
CN (1) CN103338184B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104717255A (zh) * 2013-12-15 2015-06-17 中国航空工业集团公司第六三一研究所 一种航电网络高速数据加卸载方法
CN108366112A (zh) * 2018-02-06 2018-08-03 杭州朗和科技有限公司 客户端的数据传输方法及系统、介质和计算设备
CN109347669A (zh) * 2018-10-23 2019-02-15 中国银行股份有限公司 一种银行系统间的批量作业的故障处理方法及装置
CN109756498A (zh) * 2019-01-04 2019-05-14 烽火通信科技股份有限公司 通信设备上tcp协议的nat alg转换方法及系统
CN111010399A (zh) * 2019-12-20 2020-04-14 北京天融信网络安全技术有限公司 一种数据传输方法、装置、电子设备及存储介质
CN111211878A (zh) * 2018-11-22 2020-05-29 杭州海康威视系统技术有限公司 一种文件传输方法、装置、系统及电子设备
CN113328954A (zh) * 2021-05-25 2021-08-31 深圳证券通信有限公司 一种阻断限制源端传输业务数据包的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102006283A (zh) * 2010-10-21 2011-04-06 意法·爱立信半导体(北京)有限公司 数据传输的方法和装置
CN101616077B (zh) * 2009-07-29 2011-10-05 武汉大学 互联网大文件的快速传输方法
CN102387157A (zh) * 2011-12-02 2012-03-21 杭州华三通信技术有限公司 一种数据传输方法和设备
US20120110205A1 (en) * 2010-10-28 2012-05-03 Samsung Sds Co., Ltd. Apparatus and method for ensuring fairness of udp data transmission in ethernet environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101616077B (zh) * 2009-07-29 2011-10-05 武汉大学 互联网大文件的快速传输方法
CN102006283A (zh) * 2010-10-21 2011-04-06 意法·爱立信半导体(北京)有限公司 数据传输的方法和装置
US20120110205A1 (en) * 2010-10-28 2012-05-03 Samsung Sds Co., Ltd. Apparatus and method for ensuring fairness of udp data transmission in ethernet environment
CN102387157A (zh) * 2011-12-02 2012-03-21 杭州华三通信技术有限公司 一种数据传输方法和设备

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104717255A (zh) * 2013-12-15 2015-06-17 中国航空工业集团公司第六三一研究所 一种航电网络高速数据加卸载方法
CN108366112A (zh) * 2018-02-06 2018-08-03 杭州朗和科技有限公司 客户端的数据传输方法及系统、介质和计算设备
CN109347669A (zh) * 2018-10-23 2019-02-15 中国银行股份有限公司 一种银行系统间的批量作业的故障处理方法及装置
CN109347669B (zh) * 2018-10-23 2021-11-02 中国银行股份有限公司 一种银行系统间的批量作业的故障处理方法及装置
CN111211878A (zh) * 2018-11-22 2020-05-29 杭州海康威视系统技术有限公司 一种文件传输方法、装置、系统及电子设备
CN111211878B (zh) * 2018-11-22 2023-02-07 杭州海康威视系统技术有限公司 一种文件传输方法、装置、系统及电子设备
CN109756498A (zh) * 2019-01-04 2019-05-14 烽火通信科技股份有限公司 通信设备上tcp协议的nat alg转换方法及系统
CN111010399A (zh) * 2019-12-20 2020-04-14 北京天融信网络安全技术有限公司 一种数据传输方法、装置、电子设备及存储介质
CN113328954A (zh) * 2021-05-25 2021-08-31 深圳证券通信有限公司 一种阻断限制源端传输业务数据包的方法
CN113328954B (zh) * 2021-05-25 2023-09-19 深圳证券通信有限公司 一种阻断限制源端传输业务数据包的方法

Also Published As

Publication number Publication date
CN103338184B (zh) 2017-02-15

Similar Documents

Publication Publication Date Title
CN103338184A (zh) 数据发送方法及装置、数据接收装置以及数据传输系统
CN103634299B (zh) 基于多连接的实时流媒体传输终端与方法
CN107979449B (zh) 一种数据传输方法及装置
CN102217258B (zh) 探测处理方法、数据发送端、数据接收端以及通信系统
JP2007531432A5 (zh)
KR102046792B1 (ko) 송신 노드로부터 목적지 노드로의 데이터 전송 방법
CN105791154B (zh) 一种基于udp的数据传输方法及装置
CN104093170A (zh) 基于tcp的数据传输方法和tcp代理装置
CN102148662A (zh) 一种数据发送速率的调整方法及装置
WO2020147453A1 (zh) 数据传输方法及相关装置
CN104618007B (zh) 一种同步卫星tcp协议分段连接优化方法
CN102801508A (zh) 处理网络丢包的控制方法
EP1914933A1 (en) Method and apparatus for retransmission request reduction in a network
CN102694631B (zh) 一种用于控制数据传输的方法和装置
US8943362B2 (en) Control and monitoring for fast millimeter-wave link using out-of-band wireless channel
CN103973414B (zh) 一种数据传输方法及装置
CN113938945A (zh) 数据包发送的方法、装置
CN108173920A (zh) 基于lorawan的文件传输方法
CN102932568B (zh) 嵌入式VoIP电话系统及实现VoIP电话语音质量管理的方法
US20060251076A1 (en) Real-time and reliable method for transporting data
CN104012054A (zh) 视频处理方法、设备及系统
CN106657078A (zh) Tcp传输方法及装置
US11304245B2 (en) Method and device proxy for handling radio communication of data to a wireless device
CN101159746B (zh) 一种自适应方法及系统
WO2013097611A1 (zh) 一种数据处理方法、装置及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210301

Address after: 350001 room 505, 5th floor, scientific research building, Hongshan Science Park, Gongye Road, Gulou District, Fuzhou City, Fujian Province

Patentee after: Fujian Nebula Big Data Application Service Co.,Ltd.

Address before: 4f, area B, Fujian Overseas Students Pioneer Park, 108 Jiangbin Avenue, Mawei District, Fuzhou City, Fujian Province, 350015

Patentee before: FUJIAN ETIM INFORMATION & TECHNOLOGY Co.,Ltd.