CN107454178A - 数据传输方法及装置 - Google Patents
数据传输方法及装置 Download PDFInfo
- Publication number
- CN107454178A CN107454178A CN201710697635.5A CN201710697635A CN107454178A CN 107454178 A CN107454178 A CN 107454178A CN 201710697635 A CN201710697635 A CN 201710697635A CN 107454178 A CN107454178 A CN 107454178A
- Authority
- CN
- China
- Prior art keywords
- transmitting terminal
- port
- network
- receiving terminal
- terminal
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2517—Translation of Internet protocol [IP] addresses using port numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2514—Translation of Internet protocol [IP] addresses between local and global IP addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/256—NAT traversal
- H04L61/2567—NAT traversal for reachability, e.g. inquiring the address of a correspondent behind a NAT server
-
- 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
-
- 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/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据传输方法及装置,包括:确定为发送端分配的网络中继服务;所述发送端向所述网络中继服务注册,并等待接收端的配对注册;如果在第一预设时间内接收到所述接收端的配对注册,所述发送端通过信令控制服务向所述接收端发送信令控制信息;如果所述发送端在第二预设时间内接收到所述接收端的信息写入,则确定通道连接类型,并按照所述通道连接类型建立数据传输通道;所述发送端通过所述数据传输通道向所述接收端发送数据。该数据传输方法及装置,实现过程简单,响应速度快,且可靠性高。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种数据传输方法及装置。
背景技术
随着移动设备的快速发展以及网络传输速度的提高,使用互联网资源实现两端设备的通信,在人与人之间进行多媒体语音通话、视频、文件传输,变得越来越频繁。要保证通信效果,要求连接通道的连通率必须保持非常高的比例,最好为100%,且响应速度要快,在进行文件类数据传输等可靠性要求高的场合,需要保证数据包传送时不发生丢失。
现有技术中,主要存在以下两种数据传输方法:
方法一:采用基于NAT(Network Address Translation,网络地址转换)的终端间的数据传输方法,主要包括以下过程:
1、穿透服务器辅助注册过程;
2、数据传输过程:若可以查询到终端用户B的注册信息,则首先确定终端用户A与B的NAT设备类型;终端用户A和B利用所述直连通道的地址和端口号进行数据传输,否则,经过基于内容请求的负载均衡算法获取转发通道的地址和端口号,终端用户A和B通过转发通道的地址和端口号进行数据传输。
该方法存在的问题是:在两端尝试直连穿透时,都需要预注册,然后通过查询的方式来先确定两端用户的NAT(Cone NAT、限制Cone NAT、端口限制Cone NAT、Symmetric NAT)设备类型,而且两端的NAT类型组合过多,判断流程过于复杂。
方法二:通过即时通讯服务器将至少两个分别作为呼叫方和接听方的即时通讯客户端建立通讯连接,实现即时语音通讯的方法。其中,呼叫方向接听方发出发送语音数据的请求,接听方判断语音数据通道是否空闲,若空闲,则返回空闲消息,允许呼叫方发送语音数据,否则返回拒绝消息。
该方法虽能保证在线的两端能够建立起通讯的通道,但存在的技术问题是:在数据传输过程中只能使用一个服务器中继的通道,除了传输速率会受限制而导致延迟,也会影响即时通讯服务器其他数据消息的传递的及时性。
通过以上介绍可知,现有技术中的数据传输方法要么过于复杂,要么传输速率受限,数据传输效果都不够理想,亟需一种实现简单,响应快速的数据传输方法。
发明内容
本发明实施例提供一种数据传输方法及装置,实现过程简单,响应速度快,且可靠性高。
一方面,本发明实施例提供一种数据传输方法,包括:
确定为发送端分配的网络中继服务;
所述发送端向所述网络中继服务注册,并等待接收端的配对注册;
如果在第一预设时间内接收到所述接收端的配对注册,所述发送端通过信令控制服务向所述接收端发送信令控制信息;
如果所述发送端在第二预设时间内接收到所述接收端的信息写入,则确定通道连接类型,并按照所述通道连接类型建立数据传输通道;
所述发送端通过所述数据传输通道向所述接收端发送数据。
可选的,所述确定为发送端分配的网络中继服务包括:
发送端连接网络连接探测服务,并接收所述网络探测服务返回的信息,所述网络探测服务返回的信息中至少包括:公网地址和端口、分配的网络中继服务的地址和端口;
根据分配的网络中继服务的地址和端口,确定为所述发送端分配的网络中继服务;
在确定为所述发送端分配的网络中继服务后,所述方法还包括:
对所述网络探测服务返回的信息中的端口进行端口监听;
如果端口监听失败,则对失败端口进行标识,并继续进行端口监听,直到监听失败次数达到预设次数或者监听成功。
可选的,所述发送端向所述网络中继服务注册,包括:
所述发送端创建唯一配对ID,并连接为发送端分配的网络中继服务;
所述发送端向所述网络中继服务发送所述唯一配对ID,并请求所述网络中继服务采用所述唯一配对ID进行注册;
所述信令控制信息中至少包括以下信息中的一个或多个:
发送端创建的唯一配对ID,发送端的公网地址和监听端口,发送端的内网地址和监听端口,中继服务的网络地址和端口,以及附加信息,其中,所述附加信息包括:待传输数据的类型,待传输数据的信息、待传输数据的大小,待传输数据文件的文件名;
所述发送端接收到所述接收端的信息至少包括:接收端的公网地址和监听端口,接收端的内网地址和监听端口。
可选的,所述确定通道连接类型,包括:
发送端连接接收端的公网地址和端口、内网地址和端口;
循环检测所述发送端到所述接收端的内网连接是否连接成功,以及所述发送端监听的端口到接收端的内网连接是否连接成功;
如果所述发送端到所述接收端的内网连接成功,并且所述发送端监听的端口到接收端的内网连接成功,则确定通道连接类型为内网连接;
如果所述发送端到所述接收端的内网连接失败,且所述发送端监听的端口到接收端的内网连接失败,则检测所述发送端到所述接收端的公网连接是否连接成功,以及所述发送端监听的端口到接收端的公网连接是否连接成功;
如果所述发送端到所述接收端的公网连接成功,且所述发送端监听的端口到接收端的公网连接成功,则确定所述通道连接类型为外网连接;
如果在第三预设时间内所述发送端到所述接收端的内网连接及外网连接都失败,且所述发送端监听的端口到接收端的内网连接及外网连接都失败,或者未检测到,则确定所述通道连接类型为中继服务连接。
可选的,在确定通道连接类型后,所述方法还包括:
通过所述网络中继服务将确定的通道连接类型发送给接收端;
如果确定的通道连接类型为内网连接或者外网连接,则关闭所述网络中继服务。
另一方面,本发明实施例提供一种数据传输方法,包括:
接收端接收发送端发送的信令控制信息,并从所述信令控制信息中获取建立数据传输通道的信令信息;
接收端连接所述发送端注册并等待的网络中继服务,并请求所述网络中继服务进行配对注册;
如果配对注册成功,则所述接收端通过所述网络中继服务向所述发送端写入信息;
在所述发送端建立数据传输通道后,向所述数据传输通道中写入确认信息,并接收所述发送端通过所述数据传输通道发送的数据。
可选的,所述建立数据传输通道的信令信息中至少包括:所述发送端的公网地址和监听端口,所述发送端的内网地址和监听端口,所述发送端发起注册及等待的网络中继服务的网络地址及端口,所述发送端向所述网络中继服务发送的唯一配对ID,以及附加信息,其中,所述附加信息包括:待传输数据的类型,待传输数据的信息、待传输数据的大小,待传输数据文件的文件名;
所述接收端通过所述网络中继服务向所述发送端写入的信息中至少包括:接收端的公网地址和监听端口、内网地址和监听端口。
第三方面,本发明实施例提供一种数据传输装置,包括:
第一确定单元,用于确定为发送端分配的网络中继服务;
注册单元,用于所述发送端向所述网络中继服务注册,并等待接收端的配对注册;
第一发送单元,用于在第一预设时间内接收到所述接收端的配对注册后,所述发送端通过信令控制服务向所述接收端发送信令控制信息;
第二确定单元,用于所述发送端在第二预设时间内接收到所述接收端的信息写入后,确定通道连接类型;
建立单元,用于按照所述通道连接类型建立数据传输通道;
第二发送单元,用于所述发送端通过所述数据传输通道向所述接收端发送数据。
可选的,所述第一确定单元,包括:
连接模块,用于发送端连接网络连接探测服务;
接收模块,用于接收所述网络探测服务返回的信息,所述网络探测服务返回的信息中至少包括:公网地址和端口、分配的网络中继服务的地址和端口;
确定模块,用于根据分配的网络中继服务的地址和端口,确定为所述发送端分配的网络中继服务;
所述装置还包括:
监听单元,用于对所述网络探测服务返回的信息中的端口进行端口监听;
标识单元,用于在端口监听失败后,对失败端口进行标识。
所述监听单元,还用于在端口监听失败后,继续进行端口监听,直到监听失败次数达到预设次数或者监听成功。
第四方面,本发明实施例提供一种数据传输装置,包括:
第一接收单元,用于接收端接收所述发送端发送的信令控制信息;
获取单元,用于从所述信令控制信息中获取建立数据传输通道的信令信息;
连接单元,用于接收端连接所述发送端注册并等待的网络中继服务;
请求单元,用于请求所述网络中继服务进行配对注册;
第一写入单元,用于在配对注册成功后,所述接收端通过所述网络中继服务向所述发送端写入信息;
第二写入单元,用于在所述发送端建立数据传输通道后,向所述数据传输通道中写入确认信息;
第二接收单元,用于接收所述发送端通过所述数据传输通道发送的数据。
本专利申请提供的数据传输方法及装置,通过确定为发送端分配的网络中继服务;发送端向网络中继服务注册,并等待接收端的配对注册;如果在第一预设时间内接收到接收端的配对注册,发送端通过信令控制服务向接收端发送信令控制信息;如果发送端在第二预设时间内接收到接收端的信息写入,则确定通道连接类型,并按照通道连接类型建立数据传输通道;发送端通过数据传输通道向接收端发送数据。该数据传输方法及装置,实现过程简单,响应速度快,且可靠性高。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例提供的一种数据传输方法的流程图;
图2为本发明实施例提供的另外一种数据传输方法的流程图;
图3为本发明实施例提供的另外一种数据传输方法的流程图;
图4为本发明实施例提供的另外一种数据传输方法的流程图;
图5为本发明实施例提供的一种数据传输装置的框图。
图6为本发明实施例提供的另外一种数据传输装置的框图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
本专利申请中所涉及的专有名词及术语解释如下:
P2P:全称为Peer to Peer,又称为对等网络技术,能够使互联网两端的客户机直接联系;
NAT(Network Address Translation,路由器网络地址转换),当在专用网内部的一些主机已经分配到了本地IP地址,但又需要和因特网上的主机通信时,可以采用NAT方法;
TCP(Transmission Control Protocol,传输控制协议):是一种面向连接的、可靠的、基于字节流的传输层通信协议。
本专利申请的一个实施例提供了一种数据传输方法,如图1所示,包括以下步骤S11-步骤S15:
步骤S11:确定为发送端分配的网络中继服务;
步骤S12:发送端向网络中继服务注册,并等待接收端的配对注册;
步骤S13:如果在第一预设时间内接收到接收端的配对注册,发送端通过信令控制服务向接收端发送信令控制信息;
步骤S14:如果发送端在第二预设时间内接收到接收端的信息写入,则确定通道连接类型,并按照通道连接类型建立数据传输通道;
步骤S15:发送端通过数据传输通道向接收端发送数据。
在另外一个实施例中,确定为发送端分配的网络中继服务包括:
发送端连接网络连接探测服务,并接收网络探测服务返回的信息,其中,网络探测服务返回的信息中至少包括:公网地址和端口、分配的网络中继服务的地址和端口;
根据分配的网络中继服务的地址和端口,确定为发送端分配的网络中继服务。
在另外一个实施例中,在确定为发送端分配的网络中继服务后,所述方法还可以包括以下步骤:
对网络探测服务返回的信息中的端口进行端口监听;
如果端口监听失败,则对失败端口进行标识,并继续进行端口监听,直到监听失败次数达到预设次数或者监听成功。
在另外一个实施例中,发送端向所述网络中继服务注册,可以包括:
发送端创建唯一配对ID,并连接为发送端分配的网络中继服务;
发送端向网络中继服务发送唯一配对ID,并请求网络中继服务采用唯一配对ID进行注册。
在另外一个实施例中,上述信令控制信息中至少包括以下信息中的一个或多个:
发送端创建的唯一配对ID,发送端的公网地址和监听端口,发送端的内网地址和监听端口,中继服务的网络地址和端口,以及附加信息,其中,附加信息可以包括:待传输数据的类型,待传输数据的信息、待传输数据的大小,待传输数据文件的文件名;
发送端接收到接收端的信息至少包括:接收端的公网地址和监听端口,接收端的内网地址和监听端口。
在另外一个实施例中,确定通道连接类型,包括:
发送端连接接收端的公网地址和端口、内网地址和端口;
循环检测发送端到接收端的内网连接是否连接成功,以及发送端监听的端口到接收端的内网连接是否连接成功;
如果发送端到接收端的内网连接成功,并且发送端监听的端口到接收端的内网连接成功,则确定通道连接类型为内网连接;
如果发送端到接收端的内网连接失败,且发送端监听的端口到接收端的内网连接失败,则检测发送端到接收端的公网连接是否连接成功,以及发送端监听的端口到接收端的公网连接是否连接成功;
如果发送端到接收端的公网连接成功,且发送端监听的端口到接收端的公网连接成功,则确定通道连接类型为外网连接;
如果在第三预设时间内发送端到接收端的内网连接及外网连接都失败,且发送端监听的端口到接收端的内网连接及外网连接都失败,或者未检测到,则确定通道连接类型为中继服务连接。
在另外一个实施例中,在确定通道连接类型后,所述方法还可以包括以下步骤:
通过网络中继服务将确定的通道连接类型发送给接收端;
如果确定的通道连接类型为内网连接或者外网连接,则关闭网络中继服务。
本发明实施例提供的数据传输方法,通过确定为发送端分配的网络中继服务;发送端向所述网络中继服务注册,并等待接收端的配对注册;如果在第一预设时间内接收到接收端的配对注册,发送端通过信令控制服务向接收端发送信令控制信息;如果发送端在第二预设时间内接收到接收端的信息写入,则确定通道连接类型,并按照通道连接类型建立数据传输通道;发送端通过数据传输通道向接收端发送数据。该数据传输方法及装置,实现过程简单,响应速度快,且可靠性高。
在本专利申请的另外一个实施例中,提供了一种数据传输方法,如图2所示,包括步骤S21-步骤S24:
步骤S21:接收端接收发送端发送的信令控制信息,并从信令控制信息中获取建立数据传输通道的信令信息;
步骤S22:接收端连接发送端注册并等待的网络中继服务,并请求网络中继服务进行配对注册;
步骤S23:如果配对注册成功,则接收端通过网络中继服务向发送端写入信息;
步骤S24:在发送端建立数据传输通道后,向数据传输通道中写入确认信息,并接收发送端通过数据传输通道发送的数据。
在另外一个实施例中,上述建立数据传输通道的信令信息中至少包括:发送端的公网地址和监听端口,发送端的内网地址和监听端口,发送端发起注册及等待的网络中继服务的网络地址及端口,发送端向网络中继服务发送的唯一配对ID,以及附加信息,其中,附加信息包括:待传输数据的类型,待传输数据的信息、待传输数据的大小,待传输数据文件的文件名。
在另外一个实施例中,上述接收端通过网络中继服务向发送端写入的信息中至少包括:接收端的公网地址和监听端口、内网地址和监听端口。
本发明实施例提供的数据传输方法,通过接收端接收发送端发送的信令控制信息;从信令控制信息中获取建立数据传输通道的信令信息;接收端连接发送端注册并等待的网络中继服务;请求网络中继服务进行配对注册,在配对注册成功后,接收端通过网络中继服务向发送端写入信息;在发送端建立数据传输通道后,向数据传输通道中写入确认信息,并接收发送端通过数据传输通道发送的数据。该数据传输装置,实现过程简单,响应速度快,且可靠性高。
需要说明的是,在本发明实施例中,主要包含三个服务以及发送端和接收端。以下将对各个服务的功能进行介绍,并对发送端和接收端(两客户端)相关的详细流程进行说明。
信令控制服务:能够可靠将发送端A的信令信息传送至接收端B,两客户端端与信令控制服务均采用安全传输,保证信令信息的安全。两客户端端与信令服务保持长连接,维持心跳,断线重连,例如在即时通讯系统中的即时通讯服务。
网络探测服务:能够为客户端提供探测自身内外网IP地址,并根据负载均衡算法分配网络中继服务。
网络中继服务:发送端和接收端在此服务中注册配对,建立两端的通讯通道,并以此为备选中继连接通道。
以下将通过一个具体实施例中对本专利申请的技术方案进一步详细说明。
本实施例提供一种数据传输方法,应用于发送端A,主要包括以下步骤S101-步骤S107:
步骤S101:发送端A的地址、端口收集,探测自身的公网地址、本地所绑定的端口。
1、发送端A连接网络探测服务,并读取返回信息。其中,返回信息中包含公网地址和端口、分配的网络中继服务的地址和端口。
其中,在接收完信息后,可以关闭连接;并且可以在连接前设置套接字选项SO_REUSEADDR以便下一步监听时能重用该端口。
2、发送端A监听1中返回的信息中的端口。
如果监听失败,则对失败端口号加1,再尝试重复监听;在尝试重复监听过程中,如果监听成功则停止尝试,如果持续监听失败,则可以设置最大尝试次数,例如将最大尝试次数设置为不超过10次。
步骤S102:发送端A到网络中继服务注册和等待对端配对。
1、创建一个唯一配对ID,例如长度可以设置为32的字符串,当然采用其他长度的字符串也可以,凡是符合RFC4122生成UUID(全球唯一标识)的ID都可以。
2、发送端A连接步骤S101中探测服务分配的网络中继服务。
3、将配对ID发送给上述网络中继服务,请求使用配对ID注册。若注册失败,连接将被服务端关闭。
4、注册完毕后,发送端A保持连接等待接收端B的到来。若在第一预设时间,例如5分钟内、10分钟内接收端B一直没来连接配对,发送端A主动终止。
步骤S103:发送信令控制给接收端B。
通过信令控制服务(终端与信令控制服务始终保持长连接)将信令信息安全发送至接收端B。
其中,发送的信令信息包含如下内容:
1、步骤S102中创建的唯一配对ID。接收端B将根据此唯一配对ID到网络中继服务与发送端A进行配对。
2、步骤S101中所探测的发送端A端的公网地址和监听端口。该组地址端口等待接收端B通过公网的连接。
3、本地的局域网地址和步骤S101中的监听端口。该组地址端口等待接收端B通过内网的连接。
4、步骤S101中分配的网络中继服务的网络地址和端口。使用步骤S101中分配的网络中继服务地址和端口,这样接收端B收到通知后,能明确定发送端A已经在哪个中继服务上等待。
5、其他业务所需要附加信息,非建立通道必要信息。如,本次连接请求为传送文件类型,待发送文件的文件信息,文件大小,文件名等,接收端收到“接收文件通知”时,会显示该附加信息,这样接收端B能够获知发送端的目的,或者看出该文件的重要性,进而确定是否需要接收等。
步骤S104:判断是否等待超时:是,则执行步骤S107结束;否,则执行步骤S105;
发送端A在网络中继服务上等待接收端B的连接配对后信息的写入,如果在第二预设时间内,例如3分钟或5分钟内没有数据写入,则判断为第二客户端(接收端)无响应,终止本次通道建立。
如果发送端A如能读取到接收端B写入的信息,则信息中至少包含:
1、接收端B的公网地址和监听端口
2、接收端B的内网地址和监听端口
步骤S105:交互式选择最合适的连接。
步骤S1051:发送端A开始同时连接接收端B的公网地址和端口、内网地址和端口。
步骤S1052:开始循环检测如下4种连接状态。
1)发送端A到接收端B的公网连接。
2)发送端A到接收端B的内网连接。
3)发送端A监听的端口是否有接收端B来的公网连接
4)发送端A监听的端口是否有接收端B来的内网连接
如果满足如下条件时,则终止本次检测:
a.上述2)4)连接成功时,选中任一内网连接,停止检测;
b.上述1)3)连接成功,并且2)4)均失败时,选中任一外网连接,停止检测;
c.上述1)2)3)4)在自定义的指定时间(第三预设时间)内均失败或者无法检测到,则停止检测,使用网络中继服务为备选通道。
步骤S1053:在选中连接类型后,通过网络中继服务将选中的通道信息发送给接收端B。
其中,如果最终协商的通道为直连通道(内网连接或外网连接),在等待接收端B确认后,关闭网络中继服务通道,切换到直连通道进行后续数据交换。
如果最终协商的通道为网络中继服务通道,则继续使用网络中继服务通道进行后续数据交换。
步骤S106:数据传送。
到此步,两端的通道已经建立,在此通道基础上,根据不同业务类型(文件、语音、视频)等,进行相关的数据传输。
步骤S107、结束。
当业务数据传送完毕或者某端主动终止时,通道关闭,结束。
本发明实施例中的P2P两端直连方法,与现有技术中的NAT穿越方法相比实现更为简单,并能优选最佳连接通道,同时在复杂的网络环境提供备选的连接通道,并快速的响应连接结果,减少用户的感应时间,保证传输的可靠性和高连通率。
本专利申请的另外一个实施例提供了一种数据传输方法,如图4所示,应用于接收端B,包括以下步骤S201-步骤S207:
接收端B收到信令控制信息后,进行自身公网地址和端口的探测,从信令控制信息中获取配对ID、发送端A的公网地址和端口、发送端A的内网地址和端口、网络中继服务的网络地址和端口以及额外附加信息,并连接网络中继服务,进行注册配对,与发送端A进行通道选择交互。
具体流程如下:
步骤S201:接收信令控制信息。
接收端B从信令控制服务获取到发送端A发送过来的建立通道的信令信息,其中,信息包含:
1)发送端A的公网地址和监听端口。
2)发送端A的内网地址和监听端口。
3)发送端A已经注册等待的网络中继服务的网络地址和端口。
4)发送端A在网络中继服务上等待配对的唯一配对ID。
5)其他附加信息;
步骤S202:接收端B的地址、端口收集,探测自己的公网地址、本地所绑定的端口。
1、接收端B连接探测服务,并读取返回信息。其中,返回信息中包含公网地址和端口。在接收完信息后,关闭连接。
其中,在连接前可以设置套接字选项SO_REUSEADDR以便下一步监听时能重用该端口。
2、接收端B监听1)中返回的信息中的端口。
如果监听失败,则对失败端口号加1,再尝试重复监听;在尝试重复监听过程中,如果监听成功则停止尝试,如果持续监听失败,则可以设置最大尝试次数,例如将最大尝试次数设置为不超过10次。
步骤S203:网络中继服务注册配对。
1、接收端B连接步骤S201中发送端A已注册等待的网络中继服务。
2、将步骤S201中的配对ID发送给网络中继服务,请求配对注册。
步骤S204:判断是否注册成功:否,则执行步骤S207结束;是,则执行步骤S205。
如果发送端A已经离开或者步骤S201中的唯一配对ID错误,则会注册配对失败。如果注册配对失败,则终止步骤S207。
步骤S205:交互式选择最合适的连接。
1、注册配对成功后,通过网络中继服务向发送端A写入信息。
其中,写入的信息包含接收端B的步骤S202中的公网地址和监听端口,内网地址和监听端口。
2、开始连接步骤S201中发送端A的公网地址和监听端口、内网地址和监听端口。
3、在网络中继服务的套接字上等待接收发送端A的选中通道的信息。
4、接收到发送端A的选中通道信息后,在网络中继服务上写入确认信息。
5、如果最终协商的通道为直连通道(外网连接或内网连接),则关闭网络服务的中继通道,切换到直连通道进行后续数据交换。如最终协商的通道为网络中继服务通道,则继续使用中继服务通道进行后续数据交换。
步骤S206:数据传送;
到此步,两端的通道已经建立,在此通道基础上,根据不同业务类型(文件、语音、视频)等,进行相关的数据传输。
步骤S207、结束。
当业务数据传送完毕或者某端主动终止时,通道关闭,结束。
本发明实施例可针对各种需要点对点(P2P)即时进行数据传输的场合,其中,包括文件传输、远程控制、视频、语音,充分有效地利用了两端建立的独立传输通道,不受限于PC、移动端,在各个系统平台均能互通。尤其是在两端的连通性上,连通率高基本能够达到100%,基于TCP/IP的传输方法保证了P2P的连通率。
本专利申请的另外一个实施例提供了一种数据传输装置,如图5所示,包括:
第一确定单元31,用于确定为发送端分配的网络中继服务;
注册单元32,用于发送端向网络中继服务注册,并等待接收端的配对注册;
第一发送单元33,用于在第一预设时间内接收到接收端的配对注册后,发送端通过信令控制服务向接收端发送信令控制信息;
第二确定单元34,用于发送端在第二预设时间内接收到接收端的信息写入后,确定通道连接类型;
建立单元35,用于按照通道连接类型建立数据传输通道;
第二发送单元36,用于发送端通过数据传输通道向接收端发送数据。
在另外一个实施例中,第一确定单元,包括:
连接模块,用于发送端连接网络连接探测服务;
接收模块,用于接收网络探测服务返回的信息,其中,网络探测服务返回的信息中至少包括:公网地址和端口、分配的网络中继服务的地址和端口;
确定模块,用于根据分配的网络中继服务的地址和端口,确定为发送端分配的网络中继服务。
在另外一个实施例中,上述装置还可以包括:
监听单元,用于对网络探测服务返回的信息中的端口进行端口监听;
标识单元,用于在端口监听失败后,对失败端口进行标识。
所述监听单元,还用于在端口监听失败后,继续进行端口监听,直到监听失败次数达到预设次数或者监听成功。
本发明实施例提供的数据传输装置,通过确定为发送端分配的网络中继服务;发送端向所述网络中继服务注册,并等待接收端的配对注册;如果在第一预设时间内接收到接收端的配对注册,发送端通过信令控制服务向接收端发送信令控制信息;如果发送端在第二预设时间内接收到接收端的信息写入,则确定通道连接类型,并按照通道连接类型建立数据传输通道;发送端通过数据传输通道向接收端发送数据。该数据传输方法及装置,实现过程简单,响应速度快,且可靠性高。
本专利申请的另外一个实施例提供了一种数据传输装置,如图6所示,包括:
第一接收单元41,用于接收端接收发送端发送的信令控制信息;
获取单元42,用于从信令控制信息中获取建立数据传输通道的信令信息;
连接单元43,用于接收端连接发送端注册并等待的网络中继服务;
请求单元44,用于请求网络中继服务进行配对注册;
第一写入单元45,用于在配对注册成功后,接收端通过网络中继服务向发送端写入信息;
第二写入单元46,用于在发送端建立数据传输通道后,向数据传输通道中写入确认信息;
第二接收单元47,用于接收发送端通过数据传输通道发送的数据。
本发明实施例提供的数据传输装置,通过接收端接收发送端发送的信令控制信息;从信令控制信息中获取建立数据传输通道的信令信息;接收端连接发送端注册并等待的网络中继服务;请求网络中继服务进行配对注册,在配对注册成功后,接收端通过网络中继服务向发送端写入信息;在发送端建立数据传输通道后,向数据传输通道中写入确认信息,并接收发送端通过数据传输通道发送的数据。该数据传输装置,实现过程简单,响应速度快,且可靠性高。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(系统、设备)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
容易理解的是,本专利申请的方法实施例和装置实施例是一一对应的,在装置实施例中未详细描述的内容可以参照方法实施例的相关介绍。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种数据传输方法,其特征在于,包括:
确定为发送端分配的网络中继服务;
所述发送端向所述网络中继服务注册,并等待接收端的配对注册;
如果在第一预设时间内接收到所述接收端的配对注册,所述发送端通过信令控制服务向所述接收端发送信令控制信息;
如果所述发送端在第二预设时间内接收到所述接收端的信息写入,则确定通道连接类型,并按照所述通道连接类型建立数据传输通道;
所述发送端通过所述数据传输通道向所述接收端发送数据。
2.根据权利要求1所述的方法,其特征在于:
所述确定为发送端分配的网络中继服务包括:
发送端连接网络连接探测服务,并接收所述网络探测服务返回的信息,所述网络探测服务返回的信息中至少包括:公网地址和端口、分配的网络中继服务的地址和端口;
根据分配的网络中继服务的地址和端口,确定为所述发送端分配的网络中继服务;
在确定为所述发送端分配的网络中继服务后,所述方法还包括:
对所述网络探测服务返回的信息中的端口进行端口监听;
如果端口监听失败,则对失败端口进行标识,并继续进行端口监听,直到监听失败次数达到预设次数或者监听成功。
3.根据权利要求2所述的方法,其特征在于:
所述发送端向所述网络中继服务注册,包括:
所述发送端创建唯一配对ID,并连接为发送端分配的网络中继服务;
所述发送端向所述网络中继服务发送所述唯一配对ID,并请求所述网络中继服务采用所述唯一配对ID进行注册;
所述信令控制信息中至少包括以下信息中的一个或多个:
发送端创建的唯一配对ID,发送端的公网地址和监听端口,发送端的内网地址和监听端口,中继服务的网络地址和端口,以及附加信息,其中,所述附加信息包括:待传输数据的类型,待传输数据的信息、待传输数据的大小,待传输数据文件的文件名;
所述发送端接收到所述接收端的信息至少包括:接收端的公网地址和监听端口,接收端的内网地址和监听端口。
4.根据权利要求3所述的方法,其特征在于,所述确定通道连接类型,包括:
发送端连接接收端的公网地址和端口、内网地址和端口;
循环检测所述发送端到所述接收端的内网连接是否连接成功,以及所述发送端监听的端口到接收端的内网连接是否连接成功;
如果所述发送端到所述接收端的内网连接成功,并且所述发送端监听的端口到接收端的内网连接成功,则确定通道连接类型为内网连接;
如果所述发送端到所述接收端的内网连接失败,且所述发送端监听的端口到接收端的内网连接失败,则检测所述发送端到所述接收端的公网连接是否连接成功,以及所述发送端监听的端口到接收端的公网连接是否连接成功;
如果所述发送端到所述接收端的公网连接成功,且所述发送端监听的端口到接收端的公网连接成功,则确定所述通道连接类型为外网连接;
如果在第三预设时间内所述发送端到所述接收端的内网连接及外网连接都失败,且所述发送端监听的端口到接收端的内网连接及外网连接都失败,或者未检测到,则确定所述通道连接类型为中继服务连接。
5.根据权利要求1至4任一项所述的方法,其特征在于,在确定通道连接类型后,所述方法还包括:
通过所述网络中继服务将确定的通道连接类型发送给接收端;
如果确定的通道连接类型为内网连接或者外网连接,则关闭所述网络中继服务。
6.一种数据传输方法,其特征在于,包括:
接收端接收发送端发送的信令控制信息,并从所述信令控制信息中获取建立数据传输通道的信令信息;
接收端连接所述发送端注册并等待的网络中继服务,并请求所述网络中继服务进行配对注册;
如果配对注册成功,则所述接收端通过所述网络中继服务向所述发送端写入信息;
在所述发送端建立数据传输通道后,向所述数据传输通道中写入确认信息,并接收所述发送端通过所述数据传输通道发送的数据。
7.根据权利要求6所述的方法,其特征在于,所述建立数据传输通道的信令信息中至少包括:所述发送端的公网地址和监听端口,所述发送端的内网地址和监听端口,所述发送端发起注册及等待的网络中继服务的网络地址及端口,所述发送端向所述网络中继服务发送的唯一配对ID,以及附加信息,其中,所述附加信息包括:待传输数据的类型,待传输数据的信息、待传输数据的大小,待传输数据文件的文件名;
所述接收端通过所述网络中继服务向所述发送端写入的信息中至少包括:接收端的公网地址和监听端口、内网地址和监听端口。
8.一种数据传输装置,其特征在于,包括:
第一确定单元,用于确定为发送端分配的网络中继服务;
注册单元,用于所述发送端向所述网络中继服务注册,并等待接收端的配对注册;
第一发送单元,用于在第一预设时间内接收到所述接收端的配对注册后,所述发送端通过信令控制服务向所述接收端发送信令控制信息;
第二确定单元,用于所述发送端在第二预设时间内接收到所述接收端的信息写入后,确定通道连接类型;
建立单元,用于按照所述通道连接类型建立数据传输通道;
第二发送单元,用于所述发送端通过所述数据传输通道向所述接收端发送数据。
9.根据权利要求8所述的装置,其特征在于,所述第一确定单元,包括:
连接模块,用于发送端连接网络连接探测服务;
接收模块,用于接收所述网络探测服务返回的信息,所述网络探测服务返回的信息中至少包括:公网地址和端口、分配的网络中继服务的地址和端口;
确定模块,用于根据分配的网络中继服务的地址和端口,确定为所述发送端分配的网络中继服务;
所述装置还包括:
监听单元,用于对所述网络探测服务返回的信息中的端口进行端口监听;
标识单元,用于在端口监听失败后,对失败端口进行标识。
所述监听单元,还用于在端口监听失败后,继续进行端口监听,直到监听失败次数达到预设次数或者监听成功。
10.一种数据传输装置,其特征在于,包括:
第一接收单元,用于接收端接收所述发送端发送的信令控制信息;
获取单元,用于从所述信令控制信息中获取建立数据传输通道的信令信息;
连接单元,用于接收端连接所述发送端注册并等待的网络中继服务;
请求单元,用于请求所述网络中继服务进行配对注册;
第一写入单元,用于在配对注册成功后,所述接收端通过所述网络中继服务向所述发送端写入信息;
第二写入单元,用于在所述发送端建立数据传输通道后,向所述数据传输通道中写入确认信息;
第二接收单元,用于接收所述发送端通过所述数据传输通道发送的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710697635.5A CN107454178B (zh) | 2017-08-15 | 2017-08-15 | 数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710697635.5A CN107454178B (zh) | 2017-08-15 | 2017-08-15 | 数据传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107454178A true CN107454178A (zh) | 2017-12-08 |
CN107454178B CN107454178B (zh) | 2020-07-31 |
Family
ID=60492270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710697635.5A Active CN107454178B (zh) | 2017-08-15 | 2017-08-15 | 数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107454178B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762951A (zh) * | 2018-05-23 | 2018-11-06 | 北京五八信息技术有限公司 | 一种传递通知的方法、装置、计算机设备及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3119290A1 (fr) * | 2021-01-27 | 2022-07-29 | Eho.Link | Procede d’etablissement d’un canal de communication poste-a-poste securise, dedie a une application reseau, entre deux equipements reseau distants |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070092453A (ko) * | 2006-03-10 | 2007-09-13 | 주식회사 나라비전 | 이마켓 플레이스를 위한 메신저 시스템 및 그 운영방법 |
CN101079840A (zh) * | 2007-02-12 | 2007-11-28 | 腾讯科技(深圳)有限公司 | 一种数据传输系统及方法 |
US8065418B1 (en) * | 2004-02-02 | 2011-11-22 | Apple Inc. | NAT traversal for media conferencing |
CN103795819A (zh) * | 2014-01-27 | 2014-05-14 | 杭州顺浪信息技术有限公司 | P2p应用中基于nat的终端间的数据传输方法 |
CN103957287A (zh) * | 2014-04-25 | 2014-07-30 | 浙江大学城市学院 | 一种基于nat穿透适配器的物联网设备p2p连接方法 |
CN104104712A (zh) * | 2013-04-05 | 2014-10-15 | 三星Sds株式会社 | 移动环境中的p2p连接系统和终端以及利用其的p2p连接方法 |
CN104205741A (zh) * | 2012-03-28 | 2014-12-10 | 索尼公司 | 信息处理设备、信息处理方法和程序 |
US9497160B1 (en) * | 2013-06-24 | 2016-11-15 | Bit Action, Inc. | Symmetric NAT traversal for direct communication in P2P networks when some of the routing NATs are symmetric |
-
2017
- 2017-08-15 CN CN201710697635.5A patent/CN107454178B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8065418B1 (en) * | 2004-02-02 | 2011-11-22 | Apple Inc. | NAT traversal for media conferencing |
KR20070092453A (ko) * | 2006-03-10 | 2007-09-13 | 주식회사 나라비전 | 이마켓 플레이스를 위한 메신저 시스템 및 그 운영방법 |
CN101079840A (zh) * | 2007-02-12 | 2007-11-28 | 腾讯科技(深圳)有限公司 | 一种数据传输系统及方法 |
CN104205741A (zh) * | 2012-03-28 | 2014-12-10 | 索尼公司 | 信息处理设备、信息处理方法和程序 |
CN104104712A (zh) * | 2013-04-05 | 2014-10-15 | 三星Sds株式会社 | 移动环境中的p2p连接系统和终端以及利用其的p2p连接方法 |
US9497160B1 (en) * | 2013-06-24 | 2016-11-15 | Bit Action, Inc. | Symmetric NAT traversal for direct communication in P2P networks when some of the routing NATs are symmetric |
CN103795819A (zh) * | 2014-01-27 | 2014-05-14 | 杭州顺浪信息技术有限公司 | P2p应用中基于nat的终端间的数据传输方法 |
CN103957287A (zh) * | 2014-04-25 | 2014-07-30 | 浙江大学城市学院 | 一种基于nat穿透适配器的物联网设备p2p连接方法 |
Non-Patent Citations (1)
Title |
---|
CHENLYCLY: "关于使用UDP(TCP)跨局域网,NAT穿透的心得", 《HTTPS://BLOG.CSDN.NET/CHENLYCLY/ARTICLE/DETAILS/52344405》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762951A (zh) * | 2018-05-23 | 2018-11-06 | 北京五八信息技术有限公司 | 一种传递通知的方法、装置、计算机设备及存储介质 |
CN108762951B (zh) * | 2018-05-23 | 2022-04-19 | 北京五八信息技术有限公司 | 一种传递通知的方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107454178B (zh) | 2020-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6219710B1 (en) | Method and apparatus for peer-to-peer communication | |
CN103339910B (zh) | 通过基于远程过程调用的通信协议的全双工双向通信、及其应用 | |
US6324583B1 (en) | Method and apparatus for enabling communication between dissimilar protocol stacks | |
CN102685214B (zh) | 用于对等混合通信的系统和方法 | |
TWI408936B (zh) | 網路穿透方法及網路通訊系統 | |
US6879593B1 (en) | Connections of nodes on different networks | |
US8510376B2 (en) | Processing requests transmitted using a first communication directed to an application that uses a second communication protocol | |
US20040189698A1 (en) | Instant messaging to service bureau | |
WO2010078380A1 (en) | A method and apparatus for emergency call processing | |
WO2013185655A1 (zh) | 移动座席呼叫的分配方法和装置 | |
US9392034B2 (en) | Systems and methods of distributed silo signaling | |
EP3679713A1 (en) | Call reconnection | |
CN106850502A (zh) | 基于长连接的业务请求转发方法、存储方法、装置及系统 | |
CN107454178A (zh) | 数据传输方法及装置 | |
CN103516573B (zh) | 受限网络中客户端之间的数据传输方法和客户端 | |
US20090077230A1 (en) | Call processing system and method | |
FR2846841A1 (fr) | Systeme et procede de gestion d'acces d'un reseau de communication a un terminal mobile | |
WO2011009339A1 (zh) | 一种数据传输的方法、系统和装置 | |
CN101626345A (zh) | 一种报文处理方法及家庭网关中的实时流协议应用层网关 | |
CN107547680A (zh) | 一种数据处理方法及装置 | |
CN107547618A (zh) | 一种会话拆除方法和装置 | |
CN105188087B (zh) | 一种基于短信网关的业务通信方法和系统 | |
US20080301305A1 (en) | Method and related system for building up a network connection between clients and servers through a stream fork by utilizing http protocol | |
CN107454210A (zh) | 通信方法及系统 | |
CN113765745A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |