CN111147573A - 一种数据传输的方法和装置 - Google Patents
一种数据传输的方法和装置 Download PDFInfo
- Publication number
- CN111147573A CN111147573A CN201911347142.4A CN201911347142A CN111147573A CN 111147573 A CN111147573 A CN 111147573A CN 201911347142 A CN201911347142 A CN 201911347142A CN 111147573 A CN111147573 A CN 111147573A
- Authority
- CN
- China
- Prior art keywords
- data
- receiving end
- transmitted
- unit
- packet
- 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.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 65
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000004891 communication Methods 0.000 claims abstract description 45
- 238000012545 processing Methods 0.000 claims description 27
- 230000003139 buffering effect Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 8
- 239000000872 buffer Substances 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000005012 migration Effects 0.000 description 4
- 238000013508 migration Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000003862 health status Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/108—Resource delivery mechanisms characterised by resources being split in blocks or fragments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
- H04L67/5651—Reducing the amount or size of exchanged application data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/166—IP fragmentation; TCP segmentation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据传输的方法和装置,属于网络通信技术领域。所述方法包括:发送端与接收端建立通信连接;将待传输数据包拆分为多个数据单元;通过多个数据流,向所述接收端传输所述多个数据单元。采用本发明,可以减少数据传输过程中消耗的内存资源和带宽资源。
Description
技术领域
本发明涉及网络通信技术领域,特别涉及一种数据传输的方法和装置。
背景技术
在RPC(Remote Procedure Call,远程过程调用)框架下,发送端和接收端可以按照分布式的结构部署在不同地理位置,发送端可以基于调用本地应用程序中对象的处理逻辑,不需要了解底层的网络传输过程,而通过网络远程在接收端上请求服务,即远程调用接收端上的对象。
具体来说,发送端在与接收端建立连接、并完成了寻址处理后,如果需要发起远程过程调用,发送端可以将调用请求(携带有方法、参数信息)交由发送端,客户端对调用请求进行编码和封装等打包处理,再将打包后的调用请求发送到接收端。接收端存根接收调用请求,进行解码,然后调用接收端函数,由接收端基于参数执行处理,得到调用结果。之后,接收端可以对调用结果进行打包并返回至发送端。这样,客户端接收调用结果,并进行解码,再将得到的最终结果提供给发送端。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
在基于RPC框架进行传输大数据包时,一方面,由于在数据发送前和接收后需要把数据内容全部加载到内存中,会占用发送端和接收端较大的内存资源;另一方面,传输过程中会占用较多的带宽资源,花费较长时间,尤其在弱网络环境下会存在较高的丢包可能性。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种数据传输的方法、装置和系统。所述技术方案如下:
第一方面,提供了一种数据传输的方法,所述方法包括:
与接收端建立通信连接;
将待传输数据包拆分为多个数据单元;
通过多个数据流,向所述接收端传输所述多个数据单元。
第二方面,提供了一种数据传输的装置,所述装置包括:
连接模块,用于与接收端建立通信连接;
拆分模块,用于将待传输数据包拆分为多个数据单元;
传输模块,用于通过多个数据流,向所述接收端传输所述多个数据单元。
第三方面,提供了一种网络设备,所述网络设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如第一方面所述的数据传输的方法。
第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如第一方面所述的数据传输的方法。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例中,发送端与接收端建立通信连接;将待传输数据包拆分为多个数据单元;通过多个数据流,向接收端传输多个数据单元。这样,发送端侧对待传输数据包进行多层拆分得到数据单元,并以数据单元的形式通过多个数据流进行传输,接收端侧接收数据单元并将数据单元拼装成小数据包,一方面,在数据发送前和接收后仅需加载小量的数据单元,无需加载全部数据包,可以节省发送端和接收端的内存资源,另一方面,可以有效避免传输过程中的队头阻塞,并可以降低传输过程中的时延,减少网络因素导致的连接重连、数据重传等造成的影响,从而提高数据传输质量,减少传输过程占用的带宽资源。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据传输的方法流程图;
图2是本发明实施例提供的一种连接迁移的方法流程图;
图3是本发明实施例提供的一种数据重传的方法流程图;
图4是本发明实施例提供的一种数据传输的装置结构示意图;
图5是本发明实施例提供的一种数据传输的装置结构示意图;
图6是本发明实施例提供的一种网络设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种数据传输的方法,该方法可以由发送端和接收端共同实现,其中,发送端和接收端均可以是具备数据收发和处理功能的网络设备,如可以是服务器、计算机等。发送端与接收端上可以部署有RPC框架,二者通过RPC框架可以实现数据传输和函数的远程调用。在调用过程中,发送端可以向接收端发送调用请求,并在调用请求中添加需要调用的函数以及调用函数时所需的参数。在本实施例中,发送端可以以数据包的形式向接收端发送调用请求,当数据包的数据量过大时,发送端可以先对数据包进行拆分,然后以拆分后的规格将数据包传输至接收端。接收端接收到拆分后数据包后,可以先执行拼装处理,然后对拼装得到的数据包进行后续处理。值得一提的是,在不同实施例中,发送端和接收端的功能可以互换,即接收端可以向发送端发送调用请求,以实现对发送端上方法函数的远程调用,其具体过程与发送端发起远程调用的过程基本一致,本实施例不再赘述。
下面将结合具体实施方式,对图1所示的处理流程进行详细的说明,内容可以如下:
步骤101,发送端与接收端建立通信连接。
在实施中,在RPC框架下的发送端需要远程调用接收端的方法函数时,发送端可以先与接收端建立TCP连接。该TCP连接可以是按需连接,即发送端需要执行远程调用时主动与接收端发起建立,在调用结束后发送端主动断开连接;也可以是长连接,即发送端和接收端建立起连接之后长期保留,无论是否存在数据包的发送,多次远程调用过程可以使用同一个TCP连接。之后,发送端可以与接收端在上述TCP连接上建立多个数据流,其中,每个数据流可以在发送端和接收端上对应一个线程,不同线程用于在不同的数据流上发送或接收数据。上述多个数据流可以是相互间不存在干扰影响的双向流,流与流之间相互独立,单个数据流上的数据传输阻塞及失败重传不会影响同一TCP连接上其它数据流的数据传输,发送端可通过数据流向接收端发送数据,反之接收端也可通过上述数据流向发送端发送数据。进一步的,在建立数据流后,发送端和接收端可以通过周期性发送探活数据包的形式检测每条数据流的健康状态,以根据检测结果对数据传输进行及时调整。
可选的,发送端和接收端可以根据双方的负载信息在通信连接上建立多个数据流,相应的处理可以如下:发送端向接收端发送携带有发送端负载信息的连接创建请求;接收端与发送端建立通信连接,并基于发送端负载信息和接收端负载信息在通信连接上初始化多个数据流。
在实施中,发送端在向接收端发送连接创建请求时,可以检测本地内存、带宽、CPU等发送端负载信息,并将检测到的发送端负载信息添加至连接创建请求中。接收端在接收到发送端发送的携带有发送端负载信息的连接创建请求之后,可以与发送端建立通信连接,并可以同样采集本地内存、带宽、CPU等接收端负载信息,然后可以基于发送端负载信息和接收端负载信息在通信连接上初始化多个数据流。具体来说,通信连接上数据流的个数可以默认等同为接收端的CPU核数,再参考接收端和发送端上各CPU的负载,以及最近5分钟内的内存和带宽使用状况,计算出数据流的个数和每个数据流的流量窗口大小。这样,基于发送端和接收端的负载状态决定数据流的个数和大小,可以充分利用发送端和接收端的设备资源,以提高数据传输效率,并可以防止由于设备过载而影响数据的传输质量。
步骤102,发送端将待传输数据包拆分为多个数据单元。
在实施中,发送端在与接收端建立了基于通信连接的多条数据流之后,可以通过多条数据流向接收端发送数据包。具体的,发送端可以先对待传输数据包进行拆分处理,以得到多个数据量较小的小数据包。之后,发送端可以对小数据包进行压缩,再将每个小数据包继续拆分为数据规格更小的多个数据单元。当然,在不同实施例中,发送端还可以基于相同原理对数据单元进行更进一步的拆分,以得到数据量更小的传输单元,从而可以缓解数据包过大造成的传输瞬时压力。
可选的,发送端在对大数据包进行拆包时,可以基于数据包大小、类型,以及发送端和接收端的负载来确定拆包规则,相应的,步骤102的处理可以如下:发送端基于待传输数据包的大小、类型,以及发送端负载信息和接收端负载信息,确定数据包拆分规则;发送端根据数据包拆分规则将待传输数据包拆分为多个小数据包,并将每个小数据包拆分为多个数据单元。
在实施中,发送端在对待传输数据包进行拆包处理时,可以先确定待传输数据包的大小和类型,然后根据类型和大小决定对应的拆分数据包的方案。同时,发送端还可以参考接收端负载信息和发送端负载信息,确定出数据包拆分规则。进而,发送端可以根据数据包拆分规则将待传输数据包拆分为多个小数据包,并将每个小数据包拆分为多个数据单元。其中,接收端负载信息可以是发送端与接收端建立通信连接时,由接收端发送至发送端的。需要说明的是,负载较高时,为了避免数据流传输阻塞,可以尽量选取传输数量更小的包,故而可以将待传输数据包拆分为数量更多,数据量更小的包。
可选的,发送端在对数据包进行拆包之后,可以为拆分得到每个数据单元配置成指示具体数据内容的单元ID,相应的,步骤102之后可以存在如下处理:对于任一数据单元,发送端根据数据单元所属小数据包的小包ID和数据单元在小数据包中的数据偏移量,生成数据单元的单元ID,并将单元ID添加至数据单元。
在实施中,发送端将待传输数据包进行多次拆分,得到多个数据单元之后,可以对每个数据单元添加单元ID,用于标记每个数据单元,其中,多个数据单元的单元ID可以依序递增。具体的,对于任一数据单元,发送端可以先确定该数据单元所属的小数据包,以及数据单元在小数据包中的数据偏移量,然后基于预设算法根据小数据包的小包ID和上述数据偏移量,生成该数据单元的单元ID,进而可以将单元ID添加至数据单元中。这样,通过不同的单元ID可以对每个数据单元进行唯一标识,并且通过单元ID可以快速确定每个数据单元所对应的具体数据内容。值得一提的是,小包ID可以是发送端在拆分待传输数据包时,针对每个拆分得到的小数据包生成的,用于唯一标识小数据包,且发送端在生成小包ID时,可以进一步参考小数据包在待传输数据包中的偏移位置,以通过小包ID可以确定小数据包在待传输数据包中对应的具体数据内容。
步骤103,发送端通过多个数据流,向接收端传输多个数据单元。
在实施中,发送端对待传输数据包进行多次拆分得到数据单元后,可以通过与接收端建立的多个数据流,将拆分得到的数据单元传输至接收端。其中,一个流可以传输多个数据单元,一个小数据包的多个数据单元可在多个流之间传输,在传输过程中,发送端可以根据每个数据流的负载状态,在不同数据流上传输不同数据量大小的数据单元。
步骤104,接收端接收并缓存发送端通过多个数据流传输的数据单元。
在实施中,接收端在与发送端建立了基于通信连接的多个数据流后,可以通过多个数据流对应的数据接收线程,接收发送端通过上述多个数据流传输的数据单元,然后可以将接收到的数据单元缓存至统一的缓冲区。进一步的,接收端可以设置有多个缓冲区,每个缓冲区可以用于缓存不同小数据包的数据单元。
步骤105,接收端将缓存的数据单元拼装成小数据包,并对小数据包执行应用层处理。
在实施中,接收端在接收并缓存数据单元的同时,可以对已缓存的数据单元进行拼装处理。当已缓存的多个数据单元可以成功拼装成一个完整的小数据包时,接收端可以将拼装得到的小数据包传输至应用层进行处理,并且同时删除缓冲区内相关的数据单元。
可选的,基于发送端在数据单元中添加单元ID的处理,步骤105的处理可以具体如下:对于缓存的每个数据单元,根据数据单元中携带的单元ID,确定数据单元对应的小包ID和数据单元在小数据包中的数据偏移量;根据每个数据单元对应的小包ID和数据偏移量,将缓存的数据单元拼装成小数据包。
在实施中,接收端通过多个数据流接收到发送端发送的数据单元并进行缓存后,可以提取数据单元中携带的单元ID,然后根据单元ID完成各个小数据包的拼装处理。上述过程中,对于缓存的每个数据单元,服务器可以基于预设算法由数据单元携带的单元ID还原出数据单元对应的小包ID和数据单元在小数据包中的数据偏移量,然后可以按照小包ID将归属不同小数据包的数据单元分别进行汇总,进而可以根据每个数据单元对应的数据偏移量,将对应同一小包ID的所有数据单元拼装成小数据包。
可选的,发送端在与接收端建立数据流后,可以向接收端发送用于唯一标识每个数据流的数据流ID,以用于实现发送端和接收端间的连接迁移,故而发送端在向接收端发送连接创建请求之前,可以生成多个数据流的数据流ID,然后将所有数据流ID添加至连接创建请求中。接收端在接收到连接创建请求,并与发送端建立了通信连接后,可以将该通信连接的参数信息与上述数据流ID对应存储。
而基于上述数据流ID的处理,发送端和接收端间还可以包含如图2所示流程:
步骤201,当与接收端的通信连接中断时,发送端向接收端发送携带有多个数据流的数据流ID的连接重建请求。
在实施中,发送端在向接收端发送数据的过程中,如果检测到与接收端的通信连接中断,则可以获取该通信连接建立前所生成的多个数据流的数据流ID,并向接收端发送携带有这些数据流ID的连接重建请求。
步骤202,当接收到发送端发送的携带有数据流ID的连接重建请求时,接收端恢复数据流ID对应的通信连接,并在该通信连接上恢复多个数据流,再基于多个数据流继续传输数据单元。
在实施中,接收端可以接收发送端发送的连接重建请求,判断其中是否携带有数据流ID。如果携带,接收端则可以根据已存储的数据流ID和通信连接的参数信息,恢复该数据流ID对应的通信连接,然后在该通信连接上恢复多个数据流,再基于多个数据流继续传输数据单元。不难理解,上述数据流ID与发送端所处网络(IP地址、端口等信息)无关,当发送端所处网络发生变化时,数据流ID不变,故而接收端可以使用数据流ID确定原通信连接,仍通过原数据流与发送端进行数据传输,从而可以实现连接迁移,避免连接多次创建,减少因连接重建导致不必要的数据重传,保证业务逻辑不被中断。
可选的,发送端可以在将待传输数据包拆分为小数据包后,缓存每个小数据包在待传输数据包中的偏移位置,以便基于偏移位置和前述单元ID进行如图3所示的数据重传处理,具体流程可以如下:
步骤301,当检测到目标数据单元传输失败,或接收的目标数据单元的数据不完整时,接收端向发送端反馈携带有目标数据单元的单元ID的数据重传请求。
在实施中,接收端在接收发送端发送的数据单元时,可以根据数据单元的单元ID确定每个数据单元的总数据量,然后可以利用总数据量和数据单元的已接收量判断接收到的数据单元是否完整。同时,考虑到发送端按照单元ID依序发送数据单元,数据正常传输的情况下接收端应当依序接收数据单元,故而可以设定接收端在接收到数据单元A之前,已累计接收到预设数目个发送顺序在数据单元A之后的数据单元,则判定数据单元A传输失败。进一步的,当检测到目标数据单元传输失败,或接收的目标数据单元的数据不完整时,接收端可以向发送端反馈携带有目标数据单元的单元ID的数据重传请求,以使发送端重新发送目标数据单元。
步骤302,当接收到接收端发送的携带有目标数据单元的单元ID的数据重传请求时,发送端根据单元ID确定目标数据单元对应的目标小数据包和数据偏移量。
步骤303,发送端基于目标小数据包在待传输数据包中的偏移位置和数据偏移量,重新生成目标数据单元,并向接收端发送目标数据单元。
在实施中,发送端在确定目标数据单元所属的目标小数据包后,可以根据缓存内容判断目标小数据包在待传输数据包中的偏移位置,然后结合目标数据单元在目标小数据包中的数据偏移量,确定出目标数据单元对应的具体数据内容,进而可以重新生成目标数据单元。之后,发送端可以将目标数据单元通过通信连接上的任一数据流传输至接收端。这样,当需要重传某个数据单元时,发送端无需重新加载整个待传输数据包,便可确定并生成需要重传的数据内容,从而可以减少数据重传设备资源的消耗,并且提高数据重传的效率。当然,为了便于接收端尽快完成目标数据单元所属目标小数据包的拼装处理,发送端可以在目标数据单元上添加优先级信息,从而可以触发接收端优先接收并处理目标数据单元。此外,发送端在发送数据单元的同时,还可以根据各数据单元所属的数据类型(如关键数据、补充数据等),和/或数据流的当前负载情况,为不同数据单元赋予不同的传输优先级,从而发送端可以优先发送传输优先级较高的数据单元。例如,数据流的当前负载较高,只能传输数据量较小的数据单元,则可以为数据量较小的数据单元设置较高的传输优先级,反之亦成立。
进一步的,发送端还可以基于每个数据流的数据传输情况,决定是否增删数据流,相应的处理可以如下:发送端根据多个数据流的数据传输情况,向接收端发送数据流新增请求;当接收到发送端发送的数据流新增请求时,接收端基于通信连接创建新的数据流;或者,
发送端根据所述多个数据流的数据传输情况和/或设备负载状况,向所述接收端发送数据流中断请求;当接收到发送端发送的数据流中断请求时,接收端中断数据流中断请求对应的目标数据流,停止接收目标数据流上的数据单元。
在实施中,发送端通过通信连接上的多个数据流向接收端发送数据单元时,可以实时监测多个数据流的数据传输情况,并且可以根据监测结果,判断是否执行数据流增加处理,即决定是否向接收端发送数据流新增请求。举例来说,当检测到多个数据流的负载长期高于预设过载阈值时,则可以适当增加数据流,故而发送端可以向接收端发送数据流新增请求。
相似的,发送端通过通信连接上的多个数据流向接收端发送数据单元时,可以实时监测多个数据流的数据传输情况和设备负载状况(包括发送端负载状况和接收端负载状况),并且可以根据监测结果,判断是否执行数据流删除处理,即决定是否向接收端发送数据流中断请求。举例来说,当检测到多个数据流的负载长期低于预设空闲阈值时,则可以对数据流进行适当删减,故而发送端可以向接收端发送对应一个或多个数据流的数据流中断请求,该数据流中断请求中可以携带有需要中断的数据流的数据流ID;或者,当检测到数据流B的数据传输质量较差时,发送端则可以向接收端发送对应数据流B的数据流中断请求,同时,还可以向接收端发送携带有数据流B的数据流ID的数据流新增请求,以使接收端与发送端在创建了新数据流后,将数据流B上的数据转移至新数据流上进行传输。
需要说明的是,对多个数据流的检测是实时的,当符合增加或减少数据流要求时,发送端与接收端进行数据流的增加或中断。
基于上述发送端的处理,接收端在接收到发送端发送的数据流新增请求时,可以先基于两者间的通信连接创建新的数据流,然后根据数据流新增请求中流标识的携带情况,判断是否执行数据传输的迁移处理。而接收端在接收到发送端发送数据流中断请求时,可以确定数据流中断请求携带的流标识所对应的目标数据流,然后对目标数据流进行关闭操作,并停止接收发送端后续通过目标数据流传输过来的数据单元。这样,通过对数据流的增/删处理,既可以避免资源闲置,保证资源利用率,又可以防止因数据流过载而影响数据的传输质量。
值得一提的是,发送端可以通过在数据流新增请求中添加优先级、流量窗口大小等信息的方式对需要创建的新数据流进行参数设置,这样,接收端在接收到数据流新增请求后,可以基于其中添加的信息与发送端创建符合相应参数的新数据流。
可选的,接收端通过向发送端发送流量调整指令的方式实现多个数据流间数据传输的负载均衡,相应的处理可以如下:接收端根据多个数据流对应的接收负载情况,向发送端发送流量调整指令;发送端接收接收端发送的流量调整指令,根据流量调整指令携带的流标识和指定流量阈值,调整数据流的流量窗口大小。
其中,流量调整指令可以携带有流标识和指定流量阈值。
在实施中,接收端在接收发送端方的数据单元时,可以检测每个数据流对应的接收负载状态,然后根据该接收负载状态,向发送端发送流量调整指令,该流量调整指令可以携带有流标识和指定流量阈值。例如,当接收端检测到数据流处于过载状态时,则可以向发送端发送针对该数据流的流量调整指令,以使发送端缩小该数据流的流量窗口大小;当接收端检测到数据流处于空闲状态时,则可以向发送端发送针对该数据流的流量调整指令,以使发送端放大该数据流的流量窗口大小。故而,发送端在接收到接收端发送的流量调整指令后,可以根据流量调整指令携带的流标识,确定需要调整的数据流,再基于流量调整指令携带的指定流量阈值,对数据流的流量窗口大小进行调整。这样,通过流量调整指令可以有效避免多个数据流间负载不均,提高了传输过程中的网络资源利用率,并且可以防止因数据流过载而导致数据传输失败。
本发明实施例中,发送端与接收端建立通信连接;将待传输数据包拆分为多个数据单元;通过多个数据流,向接收端传输多个数据单元。这样,发送端侧对待传输数据包进行多层拆分得到数据单元,并以数据单元的形式通过多个数据流进行传输,接收端侧接收数据单元并将数据单元拼装成小数据包,一方面,在数据发送前和接收后仅需加载小量的数据单元,无需加载全部数据包,可以节省发送端和接收端的内存资源,另一方面,可以有效避免传输过程中的队头阻塞,并可以降低传输过程中的时延,减少网络因素导致的连接重连、数据重传等造成的影响,从而提高数据传输质量,减少传输过程占用的带宽资源。
基于相同的技术构思,本发明实施例还提供了一种数据传输的装置,如图4所示,所述装置包括:
连接模块401,用于与接收端建立通信连接;
拆分模块402,用于将待传输数据包拆分为多个数据单元;
传输模块403,用于通过多个数据流,向所述接收端传输所述多个数据单元。
基于相同的技术构思,本发明实施例还提供了一种数据传输的装置,如图5所示,所述装置包括:
连接模块501,用于与发送端建立通信连接和基于所述通信连接的多个数据流;
接收模块502,用于接收并缓存所述发送端通过所述多个数据流传输的数据单元;
处理模块503,用于将缓存的数据单元拼装成小数据包,并对所述小数据包执行应用层处理。
基于相同的技术构思,本发明实施例还提供了一种数据传输的系统,所述系统包括发送端和接收端,其中,所述发送端和接收端协同实现上述实施例所述的数据传输的方法。
图6是本发明实施例提供的网络设备的结构示意图。该网络设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器622(例如,一个或一个以上处理器)和存储器632,一个或一个以上存储应用程序642或数据644的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器632和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对网络设备600中的一系列指令操作。更进一步地,中央处理器622可以设置为与存储介质630通信,在网络设备600上执行存储介质630中的一系列指令操作。
网络设备600还可以包括一个或一个以上电源629,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口658,一个或一个以上键盘656,和/或,一个或一个以上操作系统641,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD等等。
网络设备600可以包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行上述数据传输的指令。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种数据传输的方法,其特征在于,所述方法包括:
与接收端建立通信连接;
将待传输数据包拆分为多个数据单元;
通过多个数据流,向所述接收端传输所述多个数据单元。
2.根据权利要求1所述的方法,其特征在于,所述与接收端建立通信连接,包括:
向接收端发送携带有发送端负载信息的连接创建请求,以使所述接收端与发送端建立通信连接,并基于所述发送端负载信息在所述通信连接上初始化多个数据流。
3.根据权利要求2所述的方法,其特征在于,所述连接创建请求还携带有发送端生成的所述多个数据流的数据流ID;
所述通过所述多个数据流,向所述接收端传输所述多个数据单元之后,还包括:
当与所述接收端的通信连接中断时,向所述接收端发送携带有所述数据流ID的连接重建请求,以使所述接收端根据所述数据流ID恢复所述多个数据流,并基于所述多个数据流继续传输所述多个数据单元。
4.根据权利要求1或2所述的方法,其特征在于,所述将待传输数据包拆分为多个数据单元,包括:
基于待传输数据包的大小、类型,以及发送端负载信息和接收端负载信息,确定数据包拆分规则;
根据所述数据包拆分规则将待传输数据包拆分为多个小数据包,并将每个所述小数据包拆分为多个数据单元。
5.根据权利要求4所述的方法,其特征在于,所述将每个所述小数据包拆分为多个数据单元之后,还包括:
对于任一数据单元,根据所述数据单元所属小数据包的小包ID和所述数据单元在小数据包中的数据偏移量,生成所述数据单元的单元ID,并将所述单元ID添加至所述数据单元。
6.根据权利要求4所述的方法,其特征在于,所述将待传输数据包拆分为多个小数据包之后,还包括:
缓存每个所述小数据包在所述待传输数据包中的偏移位置;
所述方法还包括:
当接收到所述接收端发送的携带有目标数据单元的单元ID的数据重传请求时,根据所述单元ID确定所述目标数据单元对应的目标小数据包和数据偏移量;
基于所述目标小数据包在所述待传输数据包中的偏移位置和所述数据偏移量,重新生成所述目标数据单元,并向所述接收端发送所述目标数据单元。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述多个数据流的数据传输情况,向所述接收端发送数据流新增请求,以使所述接收端在接收到所述数据流新增请求后,基于所述通信连接创建新的数据流。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述多个数据流的数据传输情况和/或设备负载状况,向所述接收端发送数据流中断请求,以使所述接收端在接收到所述数据流中断请求后,中断所述数据流中断请求对应的目标数据流,停止接收所述目标数据流上的数据单元。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述接收端发送的流量调整指令,根据所述流量调整指令携带的流标识和指定流量阈值,调整所述数据流的流量窗口大小。
10.一种数据传输的装置,其特征在于,所述装置包括:
连接模块,用于与接收端建立通信连接;
拆分模块,用于将待传输数据包拆分为多个数据单元;
传输模块,用于通过多个数据流,向所述接收端传输所述多个数据单元。
11.一种网络设备,其特征在于,所述网络设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如下处理:
与接收端建立通信连接;
将待传输数据包拆分为多个数据单元;
通过多个数据流,向所述接收端传输所述多个数据单元。
12.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如下处理:
与接收端建立通信连接;
将待传输数据包拆分为多个数据单元;
通过多个数据流,向所述接收端传输所述多个数据单元。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201911347142.4A CN111147573A (zh) | 2019-12-24 | 2019-12-24 | 一种数据传输的方法和装置 |
| EP20775796.4A EP3873067A4 (en) | 2019-12-24 | 2020-03-13 | DATA TRANSMISSION PROCESS AND APPARATUS |
| PCT/CN2020/079351 WO2021128602A1 (zh) | 2019-12-24 | 2020-03-13 | 一种数据传输的方法和装置 |
| US17/061,517 US11303737B2 (en) | 2019-12-24 | 2020-10-01 | Method and device for data transmission |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201911347142.4A CN111147573A (zh) | 2019-12-24 | 2019-12-24 | 一种数据传输的方法和装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN111147573A true CN111147573A (zh) | 2020-05-12 |
Family
ID=70519699
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201911347142.4A Pending CN111147573A (zh) | 2019-12-24 | 2019-12-24 | 一种数据传输的方法和装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US11303737B2 (zh) |
| EP (1) | EP3873067A4 (zh) |
| CN (1) | CN111147573A (zh) |
| WO (1) | WO2021128602A1 (zh) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113438274A (zh) * | 2021-05-26 | 2021-09-24 | 曙光网络科技有限公司 | 数据传输方法、装置、计算机设备及可读存储介质 |
| CN114338227A (zh) * | 2022-01-21 | 2022-04-12 | 山东大学 | 基于分割流量的网络流量分析对抗方法及装置 |
| CN115021873A (zh) * | 2022-06-13 | 2022-09-06 | 浙江大华技术股份有限公司 | 一种数据重传的方法、装置及电子设备 |
| CN116264565A (zh) * | 2023-05-16 | 2023-06-16 | 山东省邱集煤矿有限公司 | 一种基于语义拆分的煤矿井下数据传输方法、装置及设备 |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20220191256A1 (en) * | 2020-12-16 | 2022-06-16 | Ncr Corporation | Agnostic data collection platform |
| CN116918401A (zh) * | 2021-03-04 | 2023-10-20 | 联想(新加坡)私人有限公司 | 使用小数据传输的定位测量报告 |
| CN115052044B (zh) * | 2022-08-12 | 2022-11-18 | 南瑞轨道交通技术有限公司 | 一种基于双网双链路的海量数据传输方法 |
| US20240394920A1 (en) * | 2023-05-26 | 2024-11-28 | Delta Electronics, Inc. | Projection calibration method and projection calibration system |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103283193A (zh) * | 2011-01-04 | 2013-09-04 | 纳派泰克股份公司 | 用于接收和转发数据的装置和方法 |
| CN108243211A (zh) * | 2016-12-24 | 2018-07-03 | 华为技术有限公司 | 一种数据传输方法及装置 |
| CN109474642A (zh) * | 2019-01-08 | 2019-03-15 | 郑州云海信息技术有限公司 | 基于以太网udp协议数据传输方法、装置、设备及介质 |
| CN110391989A (zh) * | 2018-04-17 | 2019-10-29 | 网宿科技股份有限公司 | 一种进行数据传输的方法和装置 |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5557798A (en) * | 1989-07-27 | 1996-09-17 | Tibco, Inc. | Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes |
| WO2010045089A1 (en) * | 2008-10-08 | 2010-04-22 | Sourcefire, Inc. | Target-based smb and dce/rpc processing for an intrusion detection system or intrusion prevention system |
| EP2467786B1 (en) * | 2009-08-17 | 2019-07-31 | Akamai Technologies, Inc. | Method and system for http-based stream delivery |
| CN102523225A (zh) * | 2011-12-22 | 2012-06-27 | 浙江国自机器人技术有限公司 | 分布式松耦合构架中的解耦方法及分布式松耦合构架平台 |
| CN103457973B (zh) * | 2012-06-01 | 2016-04-27 | 深圳市腾讯计算机系统有限公司 | 一种图片上传方法、系统、图片上传客户端及网络服务器 |
| US10904144B2 (en) * | 2012-12-27 | 2021-01-26 | Sitting Man, Llc | Methods, systems, and computer program products for associating a name with a network path |
| US10986029B2 (en) * | 2014-09-08 | 2021-04-20 | Liveu Ltd. | Device, system, and method of data transport with selective utilization of a single link or multiple links |
| US10397674B2 (en) * | 2015-12-01 | 2019-08-27 | Adtran, Inc. | PON wavelength bonding for providing higher-rate data services |
| US10243837B2 (en) * | 2016-06-06 | 2019-03-26 | Argela Yazilim ve Bilisim Teknolojileri San. ve Tic. A.S. | Enabling split sessions across hybrid public safety and LTE networks |
| EP3580929B1 (en) * | 2017-05-18 | 2023-08-16 | DriveU Tech Ltd. | Device, system, and method of wireless multiple-link vehicular communication |
| KR101983088B1 (ko) * | 2017-06-23 | 2019-05-31 | (주)넷비젼텔레콤 | 다중 경로 환경에서의 udp 패킷 처리 방법 |
| KR102021671B1 (ko) * | 2017-12-11 | 2019-09-16 | 건국대학교 산학협력단 | SDN에서 애플리케이션 레이어의 통신을 위한 노스바운드 API로써의 gRPC |
| CN107948215A (zh) * | 2018-01-17 | 2018-04-20 | 广州汇智通信技术有限公司 | 一种基于udp通信的远程调用方法和装置 |
| CN109951260B (zh) * | 2018-02-12 | 2020-04-03 | 华为技术有限公司 | 一种数据包发送方法及相关设备 |
| CN109981674B (zh) * | 2019-04-04 | 2021-08-17 | 北京信而泰科技股份有限公司 | 一种远程过程调用方法、装置、设备及介质 |
-
2019
- 2019-12-24 CN CN201911347142.4A patent/CN111147573A/zh active Pending
-
2020
- 2020-03-13 WO PCT/CN2020/079351 patent/WO2021128602A1/zh not_active Ceased
- 2020-03-13 EP EP20775796.4A patent/EP3873067A4/en not_active Withdrawn
- 2020-10-01 US US17/061,517 patent/US11303737B2/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103283193A (zh) * | 2011-01-04 | 2013-09-04 | 纳派泰克股份公司 | 用于接收和转发数据的装置和方法 |
| CN108243211A (zh) * | 2016-12-24 | 2018-07-03 | 华为技术有限公司 | 一种数据传输方法及装置 |
| CN110391989A (zh) * | 2018-04-17 | 2019-10-29 | 网宿科技股份有限公司 | 一种进行数据传输的方法和装置 |
| CN109474642A (zh) * | 2019-01-08 | 2019-03-15 | 郑州云海信息技术有限公司 | 基于以太网udp协议数据传输方法、装置、设备及介质 |
Non-Patent Citations (1)
| Title |
|---|
| WEIXIN_34364071: ""什么是队头阻塞以及如何解决"", 《CSDN博客HTTPS://BLOG.CSDN.NET/WEIXIN_34364071/ARTICLE/DETAILS/91416530》 * |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113438274A (zh) * | 2021-05-26 | 2021-09-24 | 曙光网络科技有限公司 | 数据传输方法、装置、计算机设备及可读存储介质 |
| CN114338227A (zh) * | 2022-01-21 | 2022-04-12 | 山东大学 | 基于分割流量的网络流量分析对抗方法及装置 |
| CN115021873A (zh) * | 2022-06-13 | 2022-09-06 | 浙江大华技术股份有限公司 | 一种数据重传的方法、装置及电子设备 |
| CN116264565A (zh) * | 2023-05-16 | 2023-06-16 | 山东省邱集煤矿有限公司 | 一种基于语义拆分的煤矿井下数据传输方法、装置及设备 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP3873067A1 (en) | 2021-09-01 |
| US20210195000A1 (en) | 2021-06-24 |
| WO2021128602A1 (zh) | 2021-07-01 |
| EP3873067A4 (en) | 2021-09-01 |
| US11303737B2 (en) | 2022-04-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111147573A (zh) | 一种数据传输的方法和装置 | |
| US8867354B2 (en) | Transmission control method, transmission control system, communication device and recording medium of transmission control program | |
| CN106612284B (zh) | 一种流数据的传输方法和装置 | |
| CN112104562B (zh) | 拥塞控制方法及装置、通信网络、计算机存储介质 | |
| JPWO2008023656A1 (ja) | 通信装置 | |
| CN104954279A (zh) | 一种传输控制方法、装置及系统 | |
| CN103795632A (zh) | 一种数据报文传输方法及相关设备、系统 | |
| US10432530B2 (en) | System and method of providing compression technique for jitter sensitive application through multiple network links | |
| CN104683259A (zh) | Tcp拥塞控制方法及装置 | |
| WO2017114231A1 (zh) | 一种报文发送方法、tcp代理以及tcp客户端 | |
| WO2024207870A1 (zh) | 一种数据传输方法和相关装置 | |
| WO2017107148A1 (zh) | 一种数据传输方法及网络侧设备 | |
| CN115022419A (zh) | 一种自动调整mss的方法、装置和存储介质 | |
| CN112671662B (zh) | 数据流加速方法、电子设备和存储介质 | |
| CN101106526A (zh) | 一种报文处理方法 | |
| CN115766605A (zh) | 网络拥塞控制方法、装置及系统 | |
| CN110912831B (zh) | Tcp传输方法、装置及存储介质 | |
| CN117676695A (zh) | Tcp传输方法、装置和系统 | |
| CN103227794A (zh) | 数据传输控制方法、装置以及系统 | |
| WO2020154872A1 (zh) | 一种传输控制协议加速方法和装置 | |
| JP4786354B2 (ja) | iSCSI通信制御方法とそれを用いた記憶システム | |
| CN114584566A (zh) | 基于消息队列的数据处理方法、装置、设备及存储介质 | |
| CN119166567A (zh) | 用于远程直接存储器访问的设备和方法 | |
| CN105472655B (zh) | 一种拥塞窗口的调整方法、相关装置和系统 | |
| CN109217978A (zh) | 数据传输的方法、装置和系统 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| RJ01 | Rejection of invention patent application after publication | ||
| RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200512 |