CN103888500B - 一种数据传输方法及电子设备 - Google Patents
一种数据传输方法及电子设备 Download PDFInfo
- Publication number
- CN103888500B CN103888500B CN201210564172.2A CN201210564172A CN103888500B CN 103888500 B CN103888500 B CN 103888500B CN 201210564172 A CN201210564172 A CN 201210564172A CN 103888500 B CN103888500 B CN 103888500B
- Authority
- CN
- China
- Prior art keywords
- port
- connection
- connections
- udp
- port connection
- 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.)
- Active
Links
Landscapes
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据传输方法,用于提高数据传输效率。所述方法包括:在数据传输的两端之间建立M个端口连接,为该M个端口连接设置网络地址转换NAT穿越,当需要传输数据时,从已建立的M个端口连接中选择一个第一端口连接;M为正整数;通过所述第一端口连接将待传输的第一数据传输至所述接收端。本发明还公开了用于所述方法的电子设备。
Description
技术领域
本发明涉及通信领域,特别涉及一种数据传输方法及电子设备。
背景技术
在实现HTTP(超文本传输协议)的P2P(peer to peer,点对点传输)时,由于HTTP是短连接,所以每次建立连接时都需要专门进行NAT(网络地址转换),即将IP数据包头中的IP地址转换为另一个IP地址,以实现私有网络访问公共网络的功能。由于HTTP连接是并发的,可能会同时存在多个HTTP连接,而这些HTTP连接都需要进行NAT。显然,这样会降低连接效率,较为耗费时间。
现有的解决方案:通过建立在公共网络中的服务器进行中转。
两个局域网中的设备均可以预先和建立在公共网络中的一服务器建立HTTP连接,从而可以使在这两个设备之间传输的数据通过服务器中转后到达对方。由于服务器建立在公网上,所以不需要在建立HTTP连接时进行NAT。
该方案的缺点是:
(1)传输的数据都需要通过服务器进行中转,其传输效率显然没有P2P的传输性能高;
(2)对于该服务器来说压力很大。
发明内容
本发明实施例提供一种数据传输方法及电子设备,用于解决现有技术中数据传输效率较低的技术问题,实现了提高数据传输效率的技术效果。
一种数据传输方法,包括以下步骤:
在数据传输的两端之间建立M个端口连接,为该M个端口连接设置网络地址转换NAT穿越,当需要传输数据时,从已建立的M个端口连接中选择一个第一端口连接;M为正整数;
通过所述第一端口连接将待传输的第一数据传输至所述接收端。
较佳的,在为该M个端口连接设置NAT穿越之后还包括步骤:当所述M个端口连接中有N个端口连接在第一预设时长内未接收到所述第一数据时,关闭所述N个端口连接;其中,N为不大于M的自然数。
较佳的,从已建立的M个端口连接中选择一个第一端口连接的步骤包括:从已建立的所述M个端口连接中任意选择一个处于空闲状态的端口连接作为所述第一端口连接;或从已建立的所述M个端口连接中选择一个处于空闲状态的特定的端口连接作为所述第一端口连接。
较佳的,如果所述数据为UDP数据,建立M个端口连接的步骤包括:
建立至少一个总连接,在所述至少一个总端口连接中包括有所述M个端口连接,该M个端口连接通过在所述总端口连接的报文头中设置对应于每个端口连接的标识信息来区分,所述为该M个端口连接设置NAT穿越的步骤包括:为所述总端口连接设置NAT穿越。
较佳的,从已建立的所述M个端口连接中选择一个第一端口连接的步骤包括:从所述M个端口连接中选择空闲的端口连接对应的标识信息,根据所述标识信息从已建立的所述总端口连接中选择所述第一端口连接。
较佳的,所述端口连接为UDP连接或RUDP连接。
较佳的,根据所述第一端口连接及接收端信息将待传输的第一数据传输至所述接收端之后还包括步骤:通过所述第一端口连接向所述接收端发送心跳信息,以维持与所述接收端之间的所述第一端口连接。
较佳的,在通过所述第一端口连接向所述接收端发送心跳信息,以维持与所述接收端之间的所述第一端口连接之后还包括步骤:当所述第一端口连接在第二预设时长内未接收到待传输的第二数据时,关闭所述第一端口连接。
较佳的,所述端口连接为HTTP短连接。
一种电子设备,所述电子设备包括:
选择模块,用于在数据传输的两端之间建立M个端口连接,为该M个端口连接设置网络地址转换NAT穿越,当需要传输数据时,从已建立的M个端口连接中选择一个第一端口连接;M为正整数;
传输模块,用于通过所述第一端口连接将待传输的第一数据传输至所述接收端。
较佳的,所述电子设备还包括关闭模块,用于:当所述M个端口连接中有N个端口连接在第一预设时长内未接收到所述第一数据时,关闭所述N个端口连接;其中,N为不大于M的自然数。
较佳的,所述选择模块具体用于:从已建立的所述M个端口连接中任意选择一个处于空闲状态的端口连接作为所述第一端口连接;或从已建立的所述M个端口连接中选择一个处于空闲状态的特定的端口连接作为所述第一端口连接。
较佳的,如果所述数据为用户数据包协议UDP数据,所述选择模块具体用于:建立至少一个总端口连接,在所述至少一个总端口连接中包括有所述M个端口连接,该M个端口连接通过在所述总端口连接的报文头中设置对应于每个端口连接的标识信息来区分;及为所述总端口连接设置NAT穿越。
较佳的,所述选择模块具体用于:从所述M个端口连接中选择空闲的端口连接对应的标识信息,根据所述标识信息从已建立的所述总端口连接中选择所述第一端口连接。
较佳的,所述端口连接为UDP连接或RUDP连接。
较佳的,所述传输模块还用于:通过所述第一端口连接向所述接收端发送心跳信息,以维持与所述接收端之间的所述第一端口连接。
较佳的,所述电子设备还包括关闭模块,用于:当所述第一端口连接在第二预设时长内未接收到待传输的第二数据时,关闭所述第一端口连接。
较佳的,所述端口连接为超文本传输协议HTTP短连接。
本发明实施例中的数据传输方法可以包括:建立M个端口连接,对所述M个端口连接均设置网络地址转换NAT穿越,当需要传输数据时,从已建立的M个端口连接中选择一个第一端口连接;M为正整数;通过所述第一端口连接将待传输的第一数据传输至所述接收端。
先建立M个端口连接,且对所述M个端口连接中的每个端口连接均设置网络地址转换NAT穿越,当需要传输数据时,可以从已建立的M个端口连接中选择一个所述第一端口连接进行传输,所述第一端口连接可以是处于空闲状态的端口连接。这样,预先建立有多个端口连接,在需要传输数据时直接从中选择一个处于空闲状态的端口连接进行传输即可,无需在需要传输数据时再建立端口连接,节省了时间,提高了数据传输效率。且无需服务器中转,不会给服务器带来较大负担,也因为不需要通过服务器中转,进一步提高了数据传输效率。
附图说明
图1为本发明实施例中数据传输方法的主要流程图;
图2为本发明实施例中电子设备的详细结构图。
具体实施方式
本发明实施例中的数据传输方法可以包括:建立M个端口连接,对所述M个端口连接均设置网络地址转换NAT穿越,当需要传输数据时,从已建立的M个端口连接中选择一个第一端口连接;M为正整数;通过所述第一端口连接将待传输的第一数据传输至所述接收端。
先建立M个端口连接,且对所述M个端口连接中的每个端口连接均设置网络地址转换NAT穿越,当需要传输数据时,可以从已建立的M个端口连接中选择一个所述第一端口连接进行传输,所述第一端口连接可以是处于空闲状态的端口连接。这样,预先建立有多个端口连接,在需要传输数据时直接从中选择一个处于空闲状态的端口连接进行传输即可,无需在需要传输数据时再建立端口连接,节省了时间,提高了数据传输效率。且无需服务器中转,不会给服务器带来较大负担,也因为不需要通过服务器中转,进一步提高了数据传输效率。
参见图1,本发明实施例中数据传输方法的主要流程如下:
步骤101:在数据传输的两端之间建立M个端口连接,对所述M个端口连接均设置网络地址转换NAT穿越,当需要传输数据时,从已建立的M个端口连接中选择一个第一端口连接;M为正整数。
本发明实施例中,可以首先建立所述M个端口连接,在建立所述M个端口连接后,可以为所述M个端口连接中的每个端口连接均设置NAT穿越,以便所述M个端口连接中的每个端口连接都能直接进行数据传输。
本发明实施例中,在建立所述M个端口连接后,可以对所述M个端口连接进行监控。如果监控到所述M个端口连接中有N个端口连接在第一预设时长内未接收到所述第一数据,则可以关闭所述N个端口连接。本发明实施例中,N可以是不大于M的自然数。
如果监控到其中有的端口连接在所述第一预设时长内未接收到所述第一数据,则可以关闭这些未接收到所述第一数据的端口连接,以尽量减轻公网中服务器的负担。
本发明实施例中,所述第一端口连接可以是处于空闲状态的端口连接。
例如,在建立所述M个端口连接后,如果要从中选择所述第一端口连接,首先可以确定所述M个端口连接中处于空闲状态的P个端口连接,再从所述P个端口连接中选择所述第一端口连接。P可以是不大于M的自然数。
本发明实施例中,所述端口连接可以是HTTP(超文本传输协议)连接,或者也可以是UDP(用户数据包协议)连接,或者也可以是其他类型的端口连接。
具体的,本发明实施例中,如果需要传输的数据为TCP数据,则所述端口连接可以是HTTP短连接,如果需要传输的数据为UDP数据,则所述端口连接可以是UDP连接或RUDP(可靠用户数据报协议)连接。
下面以所述端口连接是UDP连接为例进行说明。
可选的,本发明实施例中,在建立所述M个端口连接后,如果要从中选择所述第一端口连接,一种可能的方式可以是从所述M个端口连接中任意选择一个处于空闲状态的端口连接作为所述第一端口连接,即从所述P个端口连接中任意选择一个端口连接作为所述第一端口连接。
可选的,本发明实施例中,在建立所述M个端口连接后,如果要从中选择所述第一端口连接,另一种可能的方式可以是从所述M个端口连接中选择一个处于空闲状态的、特定的端口连接作为所述第一端口连接,即从所述P个端口连接中选择一个特定的端口连接作为所述第一端口连接。
本发明实施例中,如果需要传输的数据为UDP数据,则建立的所述M个端口连接可以组成至少一个总端口连接,即所述M个端口连接均为所述至少总端口连接的组成部分,在所述至少一个总端口连接的报文头中可以设置有分别对应于所述M个端口连接中每个端口连接的标识信息,即,该M个端口连接可以通过在所述至少一个总端口连接的报文头中设置对应于每个端口连接的标识信息来区分。此时,所述端口连接可以是UDP连接或RUDP连接。
例如,如果第一端口连接、第二端口连接和第三端口连接组成第一总端口连接,第四端口连接和第五端口连接组成第二端口连接,则所述第一总端口连接的报文头中可以设置有分别对应于所述第一端口连接、所述第二端口连接和所述第三端口连接的标识信息,所述第二总端口连接的报文头中可以设置有分别对应于所述第四端口连接和所述第五端口连接的标识信息。
此时,如果要为该M个端口连接设置NAT穿越,具体可以是为所述至少一个总端口连接设置NAT穿越。
本发明实施例中,以建立一个总端口连接为例进行说明,以所述总端口连接UDP连接为例。
即,本发明实施例中,如果需要传输的数据为UDP数据,可以建立一个UDP连接,该UDP连接在这里称为总UDP连接,所述M个UDP连接在这里可以继续称为UDP连接,或者也可以称为UDP子连接,所有UDP子连接的数据都通过所述总UDP连接发送,并通过在UDP子连接的报文头中加入不同的标识信息来区分每个UDP子连接。
较佳的,本发明实施例中,所述总UDP连接中包括的UDP子连接可能是处于空闲状态的UDP连接,也可能是处于工作状态的UDP子连接。在从所述总UDP连接中选择所述第一UDP子连接时,需要选择的是处于空闲状态的UDP子连接。本发明实施例中,所述标识信息不仅可以用于唯一标识一个UDP子连接,还可以表明相应UDP子连接所处的状态。这样,在选择时可以直接根据所述标识信息进行选择。则,本发明实施例中,可以从所述M个端口连接中选择处于空闲状态的端口连接对应的标识信息,根据所述标识信息可以从已建立的所述总端口连接中选择所述第一端口连接。
例如,M=4,所述总UDP连接中共包括有四个UDP子连接,则所述总UDP连接的报文头中可以设置有四个标识信息,其中第一标识信息可以用于标识该四个UDP子连接中的第一个UDP子连接,第二标识信息可以用于标识该四个UDP子连接中的第二个UDP子连接,第三标识信息可以用于标识该四个子UDP连接中的第三个子UDP连接,第四标识信息可以用于标识该四个UDP子连接中的第四个UDP子连接。
所述第一标识信息不仅可以唯一标识所述第一个UDP子连接,还可以表明所述第一个UDP子连接所处的状态,例如所述第一个UDP子连接处于空闲状态;所述第二标识信息不仅可以唯一标识所述第二个UDP子连接,还可以表明所述第二个UDP子连接所处的状态,例如所述第二个UDP子连接处于空闲状态;所述第三标识信息不仅可以唯一标识所述第三个UDP子连接,还可以表明所述第三个UDP子连接所处的状态,例如所述第三个UDP子连接处于空闲状态;所述第四标识信息不仅可以唯一标识所述第四个UDP子连接,还可以表明所述第四个UDP子连接所处的状态,例如所述第四个UDP子连接处于空闲状态。
这样,如果要从所述总UDP连接中选择所述第一UDP子连接,即要从所述M个UDP子连接中选择所述第一UDP子连接,可以根据所述标识信息从已建立的总UDP连接中选择所述第一UDP子连接。其中,所述第一UDP子连接处于空闲状态。
例如,M=4,所述总UDP连接中共包括有四个UDP子连接,则所述总UDP连接的报文头中可以设置有四个标识信息。如果选择的标识信息为所述第一标识信息,则表明本次选择了所述第一个UDP子连接。
可选的,本发明实施例中,在建立所述M个UDP子连接后,如果所述M个UDP子连接组成所述总UDP连接,如果要从中选择所述第一UDP子连接,首先要从所述总UDP连接中选择一个所述标识信息,一种可能的方式可以是从所述总UDP连接中任意选择一个处于空闲状态的UDP子连接作为所述第一UDP子连接。
可选的,本发明实施例中,在建立所述M个UDP子连接后,如果要从中选择所述第一UDP子连接,另一种可能的方式可以是从所述M个UDP子连接中选择一个处于空闲状态的、特定的UDP连接作为所述第一UDP子连接。
步骤102:通过所述第一端口连接将待传输的第一数据传输至所述接收端。
本发明实施例中,在选择所述第一端口连接后,可以根据所述第一端口连接及相应的接收端信息将待传输的第一数据传输至所述接收端。
其中,所述接收端信息可以包括在所述第一数据中。
在需要传输数据时,可以直接从已建立的多个端口子连接中选择一个处于空闲状态的所述第一端口连接进行传输,节省了临时建立端口连接的时间。同时,已建立的端口连接是已设置好NAT穿越的端口连接,无需再实现NAT穿越,同样节省了时间,显然提高了数据传输效率。
本发明实施例中,在根据所述第一端口连接及所述接收端信息将所述第一数据传输至所述接收端后,还可以通过所述第一端口连接向所述接收端发送心跳信息,以维持与所述接收端之间的所述第一端口连接。
这样做是为了便于后续继续传输数据,持续维持所述第一端口连接,后续如果还有数据需要传输则可以直接利用所述第一端口连接进行传输,无需再选择端口连接进行传输,节省了选择时间,提高了数据传输效率。
本发明实施例中,可以实时、定时或受触发时对所述第一端口连接进行监控。如果检测到在通过所述第一端口连接向所述接收端发送所述心跳信息,以维持与所述接收端之间的所述第一端口连接之后,所述第一端口连接在第二预设时长内未接收到待传输的第二数据,则可以关闭所述第一端口连接。
如果所述第一端口连接在所述第二预设时长内都未接收到所述第二数据,表明可能没有需要传输的数据,这时可以关闭所述第一端口连接,以节约出公网中服务器的接口,便于服务器向其他客户端提供服务,尽量避免资源浪费,做到资源的合理利用。
以下通过几个具体的实施例介绍本发明中的数据传输方法,下面的实施例主要介绍了所述方法的几种可能的应用场景。需要说明的是,本发明中的实施例只用于解释本发明,而不能用于限制本发明。凡是符合本发明思想的实施例均在本发明的保护范围之内,本领域技术人员自然知道应如何根据本发明的思想进行变型。
实施例一:
本实施例中,所述端口连接为HTTP短连接。
本实施例中,可以首先在数据传输的两端之间建立M个HTTP短连接,在建立所述M个HTTP短连接后,可以为所述M个HTTP短连接中的每个HTTP短连接均设置NAT穿越,以便所述M个HTTP短连接中的每个HTTP短连接被选择后都能直接进行数据传输。
本实施例中,在建立所述M个HTTP短连接后,如果要从中选择所述第一HTTP短连接,首先可以确定所述M个HTTP短连接中处于空闲状态的P个HTTP短连接,再从所述P个HTTP短连接中选择所述第一HTTP短连接。P可以是不大于M的自然数。
本实施例中,在建立所述M个HTTP短连接后,如果要从中选择所述第一HTTP短连接,选择的方式可以是从所述M个HTTP短连接中任意选择一个处于空闲状态的HTTP短连接作为所述第一HTTP短连接,即从所述P个HTTP短连接中任意选择一个HTTP短连接作为所述第一HTTP短连接。
例如,本实施例中M=4,所述M个HTTP短连接分别为第一个HTTP短连接、第二个HTTP短连接、第三个HTTP短连接和第四个HTTP短连接,其中所述第一个HTTP短连接、所述第三个HTTP短连接和所述第四个HTTP短连接处于空闲状态,所述第二个HTTP短连接处于工作状态。则在选择时可以从所述第一个HTTP短连接、所述第三个HTTP短连接和所述第四个HTTP短连接中任意选择一个HTTP短连接作为所述第一HTTP短连接,本实施例中选择了所述第三个HTTP短连接作为所述第一HTTP短连接。
本实施例中,在选择所述第一HTTP短连接后,可以根据所述第一HTTP短连接及相应的接收端信息将待传输的第一数据传输至所述接收端。
其中,所述接收端信息可以包括在所述第一数据中。
在需要传输数据时,可以直接从已建立的多个HTTP短连接中选择一个处于空闲状态的所述第一HTTP短连接进行传输,节省了临时建立HTTP短连接的时间。同时,已建立的HTTP短连接是已设置好NAT穿越的HTTP短连接,无需再实现NAT穿越,同样节省了时间,显然提高了数据传输效率。
本实施例中,在根据所述第一HTTP短连接及所述接收端信息将所述第一数据传输至所述接收端后,还可以通过所述第一HTTP短连接向所述接收端发送心跳信息,以维持与所述接收端之间的所述第一HTTP短连接。
这样做是为了便于后续继续传输数据,持续维持所述第一HTTP短连接,后续如果还有数据需要传输则可以直接利用所述第一HTTP短连接进行传输,无需再选择HTTP短连接进行传输,节省了选择时间,提高了数据传输效率。
实施例二:
本实施例中,所述端口连接为HTTP短连接。
本实施例中,可以首先建立M个HTTP短连接,在建立所述M个HTTP短连接后,可以为所述M个HTTP短连接中的每个HTTP短连接均设置NAT穿越,以便所述M个HTTP短连接中的每个HTTP短连接被选择后都能直接进行数据传输。
本实施例中,在建立所述M个HTTP短连接后,可以对所述M个HTTP短连接进行监控。如果监控到所述M个HTTP短连接中有N个HTTP短连接在第一预设时长内未接收到所述第一数据,则可以关闭所述N个HTTP短连接。本发明实施例中,N可以是不大于M的自然数。
如果监控到其中有的HTTP短连接在所述第一预设时长内未接收到所述第一数据,则可以关闭这些未接收到所述第一数据的HTTP短连接,以尽量减轻公网中服务器的负担。
本实施例中,初始时M=6,所述M个HTTP短连接分别为第一个HTTP短连接、第二个HTTP短连接、第三个HTTP短连接、第四个HTTP短连接、第五个HTTP短连接和第六个HTTP短连接。监控确定所述第五个HTTP短连接和所述第六个HTTP短连接在所述第一预设时长内均未接收到所述第一数据,则可以关闭所述第五个HTTP短连接和所述第六个HTTP短连接。关闭后,M=4。
本实施例中,在建立所述M个HTTP短连接后,如果要从中选择所述第一HTTP短连接,首先可以确定所述M个HTTP短连接中处于空闲状态的P个HTTP短连接,再从所述P个HTTP短连接中选择所述第一HTTP短连接。P可以是不大于M的自然数。
本实施例中,在建立所述M个HTTP短连接后,如果要从中选择所述第一HTTP短连接,一种可能的方式可以是从所述M个HTTP短连接中选择一个处于空闲状态的、特定的HTTP短连接作为所述第一HTTP短连接,即从所述P个HTTP短连接中选择一个特定的HTTP短连接作为所述第一HTTP短连接。
例如,本实施例中因已关闭了所述第五个HTTP短连接和所述第六个HTTP短连接,关闭后的M=4,则所述M个HTTP短连接分别为第一个HTTP短连接、第二个HTTP短连接、第三个HTTP短连接和第四个HTTP短连接,其中所述第一个HTTP短连接、所述第三个HTTP短连接和所述第四个HTTP短连接处于空闲状态,所述第二个HTTP短连接处于工作状态。则在选择时可以从所述第一个HTTP短连接、所述第三个HTTP短连接和所述第四个HTTP短连接中选择一个特定的HTTP短连接作为所述第一HTTP短连接,本实施例中所述第四HTTP短连接为特定的HTTP短连接,则本实施例中选择了所述第四个HTTP短连接作为所述第一HTTP短连接。
本实施例中,在选择所述第一HTTP短连接后,可以根据所述第一HTTP短连接及相应的接收端信息将待传输的第一数据传输至所述接收端。
其中,所述接收端信息可以包括在所述第一数据中。
在需要传输数据时,可以直接从已建立的多个HTTP短连接中选择一个处于空闲状态的所述第一HTTP短连接进行传输,节省了临时建立HTTP短连接的时间。同时,已建立的HTTP短连接是已设置好NAT穿越的HTTP短连接,无需再实现NAT穿越,同样节省了时间,显然提高了数据传输效率。
本实施例中,在根据所述第一HTTP短连接及所述接收端信息将所述第一数据传输至所述接收端后,还可以通过所述第一HTTP短连接向所述接收端发送心跳信息,以维持与所述接收端之间的所述第一HTTP短连接。
这样做是为了便于后续继续传输数据,持续维持所述第一HTTP短连接,后续如果还有数据需要传输则可以直接利用所述第一HTTP短连接进行传输,无需再选择HTTP短连接进行传输,节省了选择时间,提高了数据传输效率。
本实施例中,可以实时、定时或受触发时对所述第一HTTP短连接进行监控。如果检测到在通过所述第一HTTP短连接向所述接收端发送所述心跳信息,以维持与所述接收端之间的所述第一HTTP短连接之后,所述第一HTTP短连接在第二预设时长内未接收到待传输的第二数据,则可以关闭所述第一HTTP短连接。
如果所述第一HTTP短连接在所述第二预设时长内都未接收到所述第二数据,表明可能没有需要传输的数据,这时可以关闭所述第一HTTP短连接,以节约出公网中服务器的接口,便于服务器向其他客户端提供服务,尽量避免资源浪费,做到资源的合理利用。
实施例三:
本实施例中,需要传输的数据为UDP数据。本实施例中,所述端口连接为RUDP连接。
本实施例中,可以首先在数据传输的两端之间建立总RUDP连接。然后建立M个RUDP连接,建立的所述M个RUDP连接组成一个总RUDP连接,即所述M个RUDP连接均为所述总RUDP连接的组成部分,在所述总RUDP连接的报文头中可以设置有分别对应于所述M个UDP连接中每个RUDP连接的标识信息。在建立所述M个RUDP连接后,可以为所述M个RUDP连接中的每个RUDP连接均设置NAT穿越,即可以为所述总RUDP连接设置NAT穿越,以便所述M个RUDP连接中的每个RUDP连接被选择后都能直接进行数据传输。
较佳的,本实施例中,所述总RUDP连接中包括的RUDP连接可能是处于空闲状态的RUDP连接,也可能是处于工作状态的RUDP连接。在从所述总RUDP连接中选择所述第一RUDP连接时,需要选择的是处于空闲状态的RUDP连接。本发明实施例中,所述标识信息不仅可以用于唯一标识一个RUDP连接,还可以表明相应RUDP连接所处的状态。这样,在选择时可以直接根据所述标识信息进行选择。
本实施例中,M=4,所述总RUDP连接中共包括有四个RUDP连接,则所述总RUDP连接的报文头中可以设置有四个标识信息,其中第一标识信息可以用于标识该四个RUDP连接中的第一个RUDP连接,第二标识信息可以用于标识该四个RUDP连接中的第二个RUDP连接,第三标识信息可以用于标识该四个RUDP连接中的第三个RUDP连接,第四标识信息可以用于标识该四个RUDP连接中的第四个RUDP连接。
所述第一标识信息不仅可以唯一标识所述第一个RUDP连接,还可以表明所述第一个RUDP连接所处的状态,例如所述第一个RUDP连接处于空闲状态;所述第二标识信息不仅可以唯一标识所述第二个RUDP连接,还可以表明所述第二个RUDP连接所处的状态,例如所述第二个RUDP连接处于工作状态;所述第三标识信息不仅可以唯一标识所述第三个RUDP连接,还可以表明所述第三个RUDP连接所处的状态,例如所述第三个RUDP连接处于空闲状态;所述第四标识信息不仅可以唯一标识所述第四个RUDP连接,还可以表明所述第四个RUDP连接所处的状态,例如所述第四个RUDP连接处于空闲状态。
本实施例中,在建立所述M个RUDP连接后,可以对所述M个RUDP连接进行监控。如果监控到所述M个RUDP连接中有N个RUDP连接在第一预设时长内未接收到所述第一数据,则可以关闭所述N个RUDP连接。本发明实施例中,N可以是不大于M的自然数。
如果监控到其中有的RUDP连接在所述第一预设时长内未接收到所述第一数据,则可以关闭这些未接收到所述第一数据的RUDP连接,以尽量减轻公网中服务器的负担。
本实施例中,没有关闭任一个RUDP连接。
本实施例中,在建立所述M个RUDP连接后,如果要从中选择所述第一RUDP连接,首先可以根据所述标识信息确定所述M个RUDP连接中处于空闲状态的P个RUDP连接,再从所述P个RUDP连接中选择所述第一RUDP连接。P可以是不大于M的自然数。本实施例中确定所述第一个RUDP连接、所述第三个RUDP连接和所述第四个RUDP连接均处于空闲状态,而所述第二个UDP连接处于工作状态,即P=3。
本实施例中,在建立所述M个RUDP连接后,如果要从中选择所述第一RUDP连接,一种可能的方式可以是从所述M个RUDP连接中选择一个处于空闲状态的、特定的RUDP连接作为所述第一RUDP连接,即从所述P个RUDP连接中选择一个特定的RUDP连接作为所述第一RUDP连接。
例如,本实施例中所述M个RUDP连接分别为所述第一个RUDP连接、所述第二个RUDP连接、所述第三个RUDP连接和所述第四个RUDP连接,其中所述第一个RUDP连接、所述第三个RUDP连接和所述第四个RUDP连接处于空闲状态,所述第二个RUDP连接处于工作状态。则在选择时可以从所述第一个RUDP连接、所述第三个RUDP连接和所述第四个RUDP连接中选择一个特定的RUDP连接作为所述第一RUDP连接,本实施例中所述第四RUDP连接为特定的RUDP连接,则本实施例中选择了所述第四个RUDP连接作为所述第一RUDP连接。
本实施例中,在选择所述第一RUDP连接后,可以根据所述第一RUDP连接及相应的接收端信息将待传输的第一数据传输至所述接收端。
其中,所述接收端信息可以包括在所述第一数据中。
在需要传输数据时,可以根据所述标识信息直接从已建立的所述总RUDP连接中选择一个处于空闲状态的所述第一RUDP连接进行传输,节省了临时建立RUDP连接的时间。同时,已建立的RUDP连接是已设置好NAT穿越的RUDP连接,无需再实现NAT穿越,同样节省了时间,显然提高了数据传输效率。
实施例四:
本实施例中,需要传输的数据为UDP数据。本实施例中,所述端口连接为UDP连接。
本实施例中,可以首先在数据传输的两端之间建立M个UDP连接,建立的所述M个UDP连接组成一个总UDP连接,即所述M个UDP连接均为所述总UDP连接的组成部分,在所述总UDP连接的报文头中可以设置有分别对应于所述M个UDP连接中每个UDP连接的标识信息。在建立所述M个UDP连接后,可以为所述M个UDP连接中的每个UDP连接均设置NAT穿越,即可以为所述总UDP连接设置NAT穿越,以便所述M个UDP连接中的每个UDP连接被选择后都能直接进行数据传输。
较佳的,本实施例中,所述总UDP连接中包括的UDP连接可能是处于空闲状态的UDP连接,也可能是处于工作状态的UDP连接。在从所述总UDP连接中选择所述第一UDP连接时,需要选择的是处于空闲状态的UDP连接。本发明实施例中,所述标识信息不仅可以用于唯一标识一个UDP连接,还可以表明相应UDP连接所处的状态。这样,在选择时可以直接根据所述标识信息进行选择。
本实施例中,M=4,所述总UDP连接中共包括有四个UDP连接,则所述总UDP连接的报文头中可以设置有四个标识信息,其中第一标识信息可以用于标识该四个UDP连接中的第一个UDP连接,第二标识信息可以用于标识该四个UDP连接中的第二个UDP连接,第三标识信息可以用于标识该四个UDP连接中的第三个UDP连接,第四标识信息可以用于标识该四个UDP连接中的第四个UDP连接。
所述第一标识信息不仅可以唯一标识所述第一个UDP连接,还可以表明所述第一个UDP连接所处的状态,例如所述第一个UDP连接处于空闲状态;所述第二标识信息不仅可以唯一标识所述第二个UDP连接,还可以表明所述第二个UDP连接所处的状态,例如所述第二个UDP连接处于工作状态;所述第三标识信息不仅可以唯一标识所述第三个UDP连接,还可以表明所述第三个UDP连接所处的状态,例如所述第三个UDP连接处于空闲状态;所述第四标识信息不仅可以唯一标识所述第四个UDP连接,还可以表明所述第四个UDP连接所处的状态,例如所述第四个UDP连接处于空闲状态。
本实施例中,在建立所述M个UDP连接后,可以对所述M个UDP连接进行监控。如果监控到所述M个UDP连接中有N个UDP连接在第一预设时长内未接收到所述第一数据,则可以关闭所述N个UDP连接。本发明实施例中,N可以是不大于M的自然数。
如果监控到其中有的UDP连接在所述第一预设时长内未接收到所述第一数据,则可以关闭这些未接收到所述第一数据的UDP连接,以尽量减轻公网中服务器的负担。
本实施例中,没有关闭任一个UDP连接。
本实施例中,在建立所述M个UDP连接后,如果要从中选择所述第一UDP连接,首先可以根据所述标识信息确定所述M个UDP连接中处于空闲状态的P个UDP连接,再从所述P个UDP连接中选择所述第一UDP连接。P可以是不大于M的自然数。本实施例中确定所述第一个UDP连接、所述第三个UDP连接和所述第四个UDP连接均处于空闲状态,而所述第二个UDP连接处于工作状态,即P=3。
本实施例中,在建立所述M个UDP连接后,如果要从中选择所述第一UDP连接,一种可能的方式可以是从所述M个UDP连接中任意选择一个处于空闲状态的UDP连接作为所述第一UDP连接,即从所述P个UDP连接中任意选择一个UDP连接作为所述第一UDP连接。
例如,本实施例中所述M个UDP连接分别为所述第一个UDP连接、所述第二个UDP连接、所述第三个UDP连接和所述第四个UDP连接,其中所述第一个UDP连接、所述第三个UDP连接和所述第四个UDP连接处于空闲状态,所述第二个UDP连接处于工作状态。则在选择时可以从所述第一个UDP连接、所述第三个UDP连接和所述第四个UDP连接中任意选择一个UDP连接作为所述第一UDP连接,本实施例中选择了所述第一个UDP连接作为所述第一UDP连接。
本实施例中,在选择所述第一UDP连接后,可以根据所述第一UDP连接及相应的接收端信息将待传输的第一数据传输至所述接收端。
其中,所述接收端信息可以包括在所述第一数据中。
在需要传输数据时,可以根据所述标识信息直接从已建立的所述总UDP连接中选择一个处于空闲状态的所述第一UDP连接进行传输,节省了临时建立UDP连接的时间。同时,已建立的UDP连接是已设置好NAT穿越的UDP连接,无需再实现NAT穿越,同样节省了时间,显然提高了数据传输效率。
本实施例中,在根据所述第一UDP连接及所述接收端信息将所述第一数据传输至所述接收端后,还可以通过所述第一UDP连接向所述接收端发送心跳信息,以维持与所述接收端之间的所述第一UDP连接。
这样做是为了便于后续继续传输数据,持续维持所述第一UDP连接,后续如果还有数据需要传输则可以直接利用所述第一UDP连接进行传输,无需再选择UDP连接进行传输,节省了选择时间,提高了数据传输效率。
本实施例中,可以实时、定时或受触发时对所述第一UDP连接进行监控。如果检测到在通过所述第一UDP连接向所述接收端发送所述心跳信息,以维持与所述接收端之间的所述第一UDP连接之后,所述第一UDP连接在第二预设时长内未接收到待传输的第二数据,则可以关闭所述第一UDP连接。
如果所述第一UDP连接在所述第二预设时长内都未接收到所述第二数据,表明可能没有需要传输的数据,这时可以关闭所述第一UDP连接,以节约出公网中服务器的接口,便于服务器向其他客户端提供服务,尽量避免资源浪费,做到资源的合理利用。
参见图2,本发明还提供一种电子设备,所述电子设备可以包括选择模块201和传输模块202。
较佳的,本发明实施例中,所述电子设备还可以包括关闭模块203。
选择模块201可以用于在数据传输的两端之间建立M个端口连接,对所述M个端口连接设置网络地址转换NAT穿越,当需要传输数据时,从已建立的M个端口连接中选择一个第一端口连接;M为正整数。
选择模块201具体可以用于从已建立的所述M个端口连接中任意选择一个处于空闲状态的端口连接作为所述第一端口连接;或从已建立的所述M个端口连接中选择一个处于空闲状态的特定的端口连接作为所述第一端口连接。
选择模块201具体可以用于根据所述标识信息从已建立的所述总端口连接中选择所述第一端口连接。
如果所述数据为UDP数据,选择模块201具体可以用于建立至少一个总端口连接,在所述至少一个总端口连接中包括有所述M个端口连接,该M个端口连接通过在所述总端口连接的报文头中设置对应于每个端口连接的标识信息来区分;及为所述总端口连接设置NAT穿越。
选择模块201具体可以用于从所述M个端口连接中选择空闲的端口连接对应的标识信息,根据所述标识信息从已建立的所述总端口连接中选择所述第一端口连接。
传输模块202可以用于通过所述第一端口连接将待传输的第一数据传输至所述接收端。
传输模块202还可以用于通过所述第一端口连接向所述接收端发送心跳信息,以维持与所述接收端之间的所述第一端口连接。
关闭模块203可以用于当所述M个端口连接中有N个端口连接在第一预设时长内未接收到所述第一数据时,关闭所述N个端口连接;其中,N为不大于M的自然数。
关闭模块203可以用于当所述第一端口连接在第二预设时长内未接收到待传输的第二数据时,关闭所述第一端口连接。
本发明实施例中,所述端口连接可以是HTTP短连接,或者也可以是UDP连接,或者也可以是RUDP连接。
本发明实施例中的数据传输方法可以包括:建立M个端口连接,对所述M个端口连接均设置网络地址转换NAT穿越,当需要传输数据时,从已建立的M个端口连接中选择一个第一端口连接;M为正整数;通过所述第一端口连接将待传输的第一数据传输至所述接收端。
先建立M个端口连接,且对所述M个端口连接中的每个端口连接均设置网络地址转换NAT穿越,当需要传输数据时,可以从已建立的M个端口连接中选择一个所述第一端口连接进行传输,所述第一端口连接可以是处于空闲状态的端口连接。这样,预先建立有多个端口连接,在需要传输数据时直接从中选择一个处于空闲状态的端口连接进行传输即可,无需在需要传输数据时再建立端口连接,节省了时间,提高了数据传输效率。且无需服务器中转,不会给服务器带来较大负担,也因为不需要通过服务器中转,进一步提高了数据传输效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (16)
1.一种数据传输方法,其特征在于,包括以下步骤:
在数据传输的两端之间建立M个端口连接,为该M个端口连接设置网络地址转换NAT穿越,当需要传输数据时,从已建立的M个端口连接中选择一个第一端口连接;M为正整数;
通过所述第一端口连接将待传输的第一数据传输至接收端;
如果所述数据为UDP数据,建立M个端口连接的步骤包括:
建立至少一个总连接,在所述至少一个总端口连接中包括有所述M个端口连接,该M个端口连接通过在所述总端口连接的报文头中设置对应于每个端口连接的标识信息来区分,所述为该M个端口连接设置NAT穿越的步骤包括:为所述总端口连接设置NAT穿越。
2.如权利要求1所述的方法,其特征在于,在为该M个端口连接设置NAT穿越之后还包括步骤:当所述M个端口连接中有N个端口连接在第一预设时长内未接收到所述第一数据时,关闭所述N个端口连接;其中,N为不大于M的自然数。
3.如权利要求1所述的方法,其特征在于,从已建立的M个端口连接中选择一个第一端口连接的步骤包括:从已建立的所述M个端口连接中任意选择一个处于空闲状态的端口连接作为所述第一端口连接;或从已建立的所述M个端口连接中选择一个处于空闲状态的特定的端口连接作为所述第一端口连接。
4.如权利要求1所述的方法,其特征在于,从已建立的所述M个端口连接中选择一个第一端口连接的步骤包括:从所述M个端口连接中选择空闲的端口连接对应的标识信息,根据所述标识信息从已建立的所述总端口连接中选择所述第一端口连接。
5.如权利要求4所述的方法,其特征在于,所述端口连接为UDP连接或RUDP连接。
6.如权利要求1-5任一项所述的方法,其特征在于,根据所述第一端口连接及接收端信息将待传输的第一数据传输至所述接收端之后还包括步骤:通过所述第一端口连接向所述接收端发送心跳信息,以维持与所述接收端之间的所述第一端口连接。
7.如权利要求6所述的方法,其特征在于,在通过所述第一端口连接向所述接收端发送心跳信息,以维持与所述接收端之间的所述第一端口连接之后还包括步骤:当所述第一端口连接在第二预设时长内未接收到待传输的第二数据时,关闭所述第一端口连接。
8.如权利要求1所述的方法,其特征在于,所述端口连接为HTTP短连接。
9.一种电子设备,其特征在于,所述电子设备包括:
选择模块,用于在数据传输的两端之间建立M个端口连接,为该M个端口连接设置网络地址转换NAT穿越,当需要传输数据时,从已建立的M个端口连接中选择一个第一端口连接;M为正整数;
传输模块,用于通过所述第一端口连接将待传输的第一数据传输至接收端;
如果所述数据为用户数据包协议UDP数据,所述选择模块具体用于:建立至少一个总端口连接,在所述至少一个总端口连接中包括有所述M个端口连接,该M个端口连接通过在所述总端口连接的报文头中设置对应于每个端口连接的标识信息来区分;及为所述总端口连接设置NAT穿越。
10.如权利要求9所述的电子设备,其特征在于,所述电子设备还包括关闭模块,用于:当所述M个端口连接中有N个端口连接在第一预设时长内未接收到所述第一数据时,关闭所述N个端口连接;其中,N为不大于M的自然数。
11.如权利要求9所述的电子设备,其特征在于,所述选择模块具体用于:从已建立的所述M个端口连接中任意选择一个处于空闲状态的端口连接作为所述第一端口连接;或从已建立的所述M个端口连接中选择一个处于空闲状态的特定的端口连接作为所述第一端口连接。
12.如权利要求9所述的电子设备,其特征在于,所述选择模块具体用于:从所述M个端口连接中选择空闲的端口连接对应的标识信息,根据所述标识信息从已建立的所述总端口连接中选择所述第一端口连接。
13.如权利要求12所述的电子设备,其特征在于,所述端口连接为UDP连接或RUDP连接。
14.如权利要求9-13任一项所述的电子设备,其特征在于,所述传输模块还用于:通过所述第一端口连接向所述接收端发送心跳信息,以维持与所述接收端之间的所述第一端口连接。
15.如权利要求14所述的电子设备,其特征在于,所述电子设备还包括关闭模块,用于:当所述第一端口连接在第二预设时长内未接收到待传输的第二数据时,关闭所述第一端口连接。
16.如权利要求9所述的电子设备,其特征在于,所述端口连接为超文本传输协议HTTP短连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210564172.2A CN103888500B (zh) | 2012-12-21 | 2012-12-21 | 一种数据传输方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210564172.2A CN103888500B (zh) | 2012-12-21 | 2012-12-21 | 一种数据传输方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103888500A CN103888500A (zh) | 2014-06-25 |
CN103888500B true CN103888500B (zh) | 2017-11-03 |
Family
ID=50957218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210564172.2A Active CN103888500B (zh) | 2012-12-21 | 2012-12-21 | 一种数据传输方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103888500B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101197850A (zh) * | 2007-12-26 | 2008-06-11 | 北京航空航天大学 | 一种面向广域网络的对等通信与文件传输方法 |
EP1959645A1 (en) * | 2007-02-16 | 2008-08-20 | Alcatel Lucent | Method for NAT traversal in a P2P-SIP network |
CN101437036A (zh) * | 2008-12-22 | 2009-05-20 | 北京中企开源信息技术有限公司 | 支持nat/防火墙穿越的文件传输方法和系统 |
CN101742588A (zh) * | 2009-12-02 | 2010-06-16 | 华为技术有限公司 | 基站通信方法及基站 |
CN101841484A (zh) * | 2010-05-12 | 2010-09-22 | 中国科学院计算技术研究所 | 一种在结构化p2p网络中实现nat穿越的方法和系统 |
CN102447749A (zh) * | 2010-10-15 | 2012-05-09 | 中兴通讯股份有限公司 | 支持nat穿越的集中式p2p系统、nat穿越的方法 |
-
2012
- 2012-12-21 CN CN201210564172.2A patent/CN103888500B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1959645A1 (en) * | 2007-02-16 | 2008-08-20 | Alcatel Lucent | Method for NAT traversal in a P2P-SIP network |
CN101197850A (zh) * | 2007-12-26 | 2008-06-11 | 北京航空航天大学 | 一种面向广域网络的对等通信与文件传输方法 |
CN101437036A (zh) * | 2008-12-22 | 2009-05-20 | 北京中企开源信息技术有限公司 | 支持nat/防火墙穿越的文件传输方法和系统 |
CN101742588A (zh) * | 2009-12-02 | 2010-06-16 | 华为技术有限公司 | 基站通信方法及基站 |
CN101841484A (zh) * | 2010-05-12 | 2010-09-22 | 中国科学院计算技术研究所 | 一种在结构化p2p网络中实现nat穿越的方法和系统 |
CN102447749A (zh) * | 2010-10-15 | 2012-05-09 | 中兴通讯股份有限公司 | 支持nat穿越的集中式p2p系统、nat穿越的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103888500A (zh) | 2014-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105591912B (zh) | 一种转发路径的选择方法和装置 | |
CN104601432A (zh) | 一种报文传输方法和设备 | |
CN108645450B (zh) | 一种智慧城市环保系统 | |
CN102377640B (zh) | 一种报文处理装置和报文处理方法、及预处理器 | |
CN104518936B (zh) | 链路动态聚合方法和装置 | |
CN106936875B (zh) | 基于广域网数据压缩的改进tcp代理方法 | |
CN105763297B (zh) | 一种基于云计算系统的远程数据优化传输方法和装置 | |
BR112012015484B1 (pt) | Método de comunicação sem fio, estação e artigo | |
CN108289125A (zh) | 基于流式处理的tcp会话重组与统计数据提取方法 | |
CN110831039A (zh) | 多路并发系统中的数据传输方法及传输服务器 | |
CN108833430B (zh) | 一种软件定义网络的拓扑保护方法 | |
CN108924219A (zh) | 远程操作终端的方法、装置及系统 | |
CN108123826B (zh) | 一种跨区数据的交互系统及方法 | |
CN109561164A (zh) | Nat表项的管理方法、装置及nat设备 | |
CN107508828B (zh) | 一种超远程数据交互系统及方法 | |
CN109039959A (zh) | 一种sdn网络规则的一致性判断方法及相关装置 | |
CN101640616B (zh) | Mac地址的回收方法和设备 | |
CN105357071A (zh) | 一种网络复杂流量识别方法及识别系统 | |
CN104009956B (zh) | 一种基于嵌入式多核协处理网闸系统的通信方法 | |
CN104113510A (zh) | 虚拟桌面系统及其消息数据的传输方法 | |
CN104702596B (zh) | 一种基于数据包长度的信息隐藏与传输的方法及系统 | |
CN105323236B (zh) | 用于经由多态安全代理来检查在线通信会话的系统、方法和装置 | |
CN103888500B (zh) | 一种数据传输方法及电子设备 | |
CN106027419B (zh) | 一种数据结构的管理方法和装置 | |
CN103441894A (zh) | 一种l2tp并发连接性能测试的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |