CN105721570A - 数据点对点传输方法及装置 - Google Patents
数据点对点传输方法及装置 Download PDFInfo
- Publication number
- CN105721570A CN105721570A CN201610079489.5A CN201610079489A CN105721570A CN 105721570 A CN105721570 A CN 105721570A CN 201610079489 A CN201610079489 A CN 201610079489A CN 105721570 A CN105721570 A CN 105721570A
- Authority
- CN
- China
- Prior art keywords
- point
- customer end
- data
- nat
- lan
- 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
- 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
- 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/2557—Translation policies or rules
-
- 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/2589—NAT traversal over a relay server, e.g. traversal using relay for network address translation [TURN]
Abstract
本发明属于数据网络传输技术领域,具体涉及一种数据点对点传输方法及装置。本方法包含步骤:客户端A和客户端B在空闲时间进行公网信息的获取及更新;客户端A获取其公网端口,再将其公网信息、公网端口、局域网信息发送给客户端B;客户端B在收到客户端A发送的信息后,获取其公网端口,并将其公网信息、公网端口、局域网信息发送给客户端A;客户端A和客户端B各自解析对方发送的信息,获取对方的NAT类型,选择最优传输路径,建立会话。本发明对公网信息的获取和更新进行了优化,从而减少通话开始后在STUN查询上花费的时间延迟;减少了进行本地探测等待导致客户端较长的起始等待时间;通过增加数据反馈机制,保证通信的成功率;同时通过进一步细分NAT类型,保证部分对称NAT环境下也可以进行点对点传输,提高了点对点成功率。
Description
技术领域
本发明属于数据网络传输技术领域,具体涉及一种数据点对点传输方法和装置。
背景技术
SIP(SessionInitiationProtocol,会话初始协议)是由IETF(InternetEngineeringTaskForce,因特网工程任务组)制定的多媒体通信协议。它是一个基于文本的应用层控制协议,用于创建、修改和释放一个或多个参与者的会话。广泛应用于CS(CircuitSwitched,电路交换)、NGN(NextGenerationNetwork,下一代网络)以及IMS(IPMultimediaSubsystem,IP多媒体子系统)的网络中,可以支持并应用于语音、视频、数据等多媒体业务,同时也可以应用于Presence(呈现)、InstantMessage(即时消息)等特色业务。
在IPV4环境下,中国IP地址紧缺,用户上网需要NAT设备将私网转换成公网,但是NAT(NetworkAddressTranslation,网络地址转换)设备使得不同的私网之间无法直接通过网络完成数据交互。目前解决私网穿透主要有STUN,TURN,ICE等协议。
STUN(SimpleTraversalofUDPoverNATs,NAT的UDP简单穿越)是一种网络协议,它允许位于NAT(或多重NAT)后的客户端找出自己的公网地址,通过SIP信令可以告诉对方自己的公网信息,从而实现私网穿透,但是缺点是不支持对称NAT(SymNat)类型穿透,并且如果双方都位于同一个NAT之后,也不适用。
TURN:也就是TraversalUsingRelayNAT的缩写,即通过Relay方式穿越NAT,TURN应用模型通过分配TURNServer的地址和端口作为客户端对外的接受地址和端口,即私网用户发出的报文都要经过TURNServer进行Relay转发,这种方式解决了STUN应用无法穿透对称NAT(SymmetricNAT)以及类似的Firewall设备的缺陷,但是TURN的局限性在于所有报文都必须经过TURNServer转发,增大了包的延迟和丢包的可能性,另外所有数据都通过中转服务器,增加了服务器的开销。
ICE:也就是InteractiveConnectivityEstablishment的缩写,是实现NAT穿透的一种技术方案;ICE是一种NAT(NetworkAddressTranslation,网络地址转换)穿透技术,它整合了STUN和TURN等协议。ICE是offer/answer模型的扩展,通过在offer和answer的SDP(SessionDescriptionProtocol,会话描述协议)里面包含多种IP地址和端口,然后对本地SDP和远程SDP里面的IP地址进行配对,然后通过点对点连通性检查进行连通性测试工作,如果测试通过即表明该传输地址对可以建立连接。但是采用ICE存在如下局限:1、协议交互探测耗时,导致SIP客户端存在较长的黑屏时间;2由于在部分网络环境下,根据stun会导致NAT类型误判,导致双方无法进行通信;3.双方都处于对称网络类型的私网中时,会判断无法实现点对点传输数据从而走TURN中转,其实部分对称网络环境下是可以实现点对点传输数据的。
申请号为201210149366.6的中国专利,公开了一种SIP呼叫中自适应穿越NAT的方法,通过对NAT设备情况进行自适应分析,判定得出最优数据传输路径。被叫方获取到主叫方的网络信息后,进行发送探测包,通过探测包确定最优路径,这种方法的缺点是增加开始会话的数据传输的时延。另外,由于没有数据反馈机制,无法保证最终的数据传输成功。
发明内容
本发明的目的之一在于克服以上缺点,提供一种数据点对点传输方法,缩短协议交互探测时间,提高点对点连接以及最终数据传输的的成功率。
为了解决上述技术问题,本发明提供了一种数据点对点传输方法,包括以下步骤:
客户端A和客户端B在空闲时间进行公网信息的获取及更新;
客户端A获取其公网端口,再将其公网信息、公网端口、局域网信息发送给客户端B;
客户端B在收到客户端A发送的信息后,获取其公网端口,并将其公网信息、公网端口、局域网信息发送给客户端A;
客户端A和客户端B各自解析对方发送的信息,获取对方的NAT类型,选择最优传输路径,建立会话。
本技术方案中,对公网信息的获取和更新进行了优化,客户端在空闲时间进行公网信息的获取和更新,而不是在发起通话时候才去获取,这样减少了通话开始后在STUN查询上花费的时间延迟,缩短协议交互探测时间,缩短客户端响应的时间。
进一步地,所述公网信息包括NAT类型,及公网IP地址;所述局域网信息包括局域网IP地址和局域网端口。
进一步地,所述选择最优传输路径,包含以下步骤:
判定客户端A和客户端B是否可进行同一NAT间点对点传送数据、不同NAT间点对点传送数据或局域网间点对点传送数据;
若是,则进行同一NAT点对点传送数据、不同NAT间点对点传送数据或局域网间点对点传送数据,否则,通过TURN服务器中转传送数据。
本发明数据的点对点传输路径选择方法,分为判断步骤和路径选择步骤,先判断适用的点对点传输方式,然后根据判断结果,选择最优的传输路径进行数据传输,提高数据传输的实时性;在确定无法进行点对点传输数据的情况下,再选择通过TURN服务器中转进行数据传输,确保数据传输的流畅性。
进一步地,所述判定客户端A和客户端B是否可进行同一NAT间点对点传送数据、不同NAT间点对点传送数据具体为:
判断客户端A和客户端B是否处于同一个NAT;
若客户端A和客户端B处于同一个NAT,进一步判断,如果此NAT允许回环,则判定客户端A和客户端B可进行同一NAT间点对点传送数据;
若客户端A和客户端B处于不同的NAT,根据双方NAT类型查询配置表判断是否支持点对点传输,支持则判定客户端A和客户端B可进行NAT间的点对点传送数据。
进一步地,所述判定客户端A和客户端B是否可进行局域网间点对点传送数据具体为:其中一客户端发起局域网通路探测,若收到局域网通路探测响应,则判定客户端A和客户端B可进行局域网间点对点数据传输。
进一步地,所述判定客户端A和客户端B是否可进行同一NAT间点对点传送数据、不同NAT间点对点传送数据或局域网间点对点传送数据,上述三种判定方法可并列进行,若判定客户端A和客户端B可进行局域网间点对点传送数据,则优先采用局域网间点对点传送数据,否则,根据是否可进行同一NAT间点对点传送数据、不同NAT间点对点传送数据的判定结果进行数据传输。
本发明的三种判定方法可同时并发进行,根据最先得到的判定结果进行路径选择,如果后续得到的判定结果优先级更高,再进行传输路径的变更操作,通过并发进行的方式,减少了判断步骤所需的时间。另外,本发明将局域网间点对点传送数据优先级设置为最高,保证了在多种点对点传送方式均适用的情况下,以最高效率的方式传送数据。
进一步地,所述配置表的配置步骤为:
根据NAT设备的映射表现和过滤表现属性将NAT进行分类;
得到客户端A的NAT类型、客户端B的NAT类型、以及客户端A和客户端B是否支持点对点通讯的三者映射关系表。
进一步地,所述根据NAT设备的映射表现和过滤表现属性将NAT进行分类,具体为:
将NAT分成完全圆锥型,地址限制型,端口限制型,对称型四类,其中,所述对称型NAT进一步细分成6类,对应SymNat1~SymNat6。
本发明上述技术方案通过细分SymNat类型,增加了客户端A与客户端B的排列组合,补充了多种对称NAT可以实现点对点数据传输的情形,提高了不同NAT间的点对点成功率。
进一步地,所述选择最优传输路径,还包含以下步骤:
建立会话后,如果客户端A或客户端B在预设时间内未收到数据,通过服务器发送消息给对方客户端,一起切换到TURN服务器中转进行数据传输。
通过增加数据反馈机制,客户端可以从点对点误判中恢复成服务器中转模式,提高了容错率,保证了最终通信的成功率。
相应地,本发明还提供了一种数据点对点传输装置,其特征在于,包括:
定时更新模块,用于客户端A和客户端B在空闲时间进行公网信息的获取及更新;
信息发送模块,用于客户端A获取其公网端口,再将其公网信息、公网端口、局域网信息发送给客户端B;
信息应答模块,用于客户端B在收到客户端A发送的信息后,获取其公网端口,并将其公网信息、公网端口、局域网信息发送给客户端A;
传输路径选择模块,用于客户端A和客户端B各自解析对方发送的信息,获取对方的NAT类型,选择最优传输路径,建立会话。
进一步地,所述传输路径选择模块,包括:
判断单元,用于判定客户端A和客户端B是否可进行同一NAT间点对点传送数据、不同NAT间点对点传送数据或局域网间点对点传送数据;
路径选择单元,用于若是,则进行同一NAT点对点传送数据、不同NAT间点对点传送数据或局域网间点对点传送数据,否则,通过TURN服务器中转传送数据。
进一步地,所述判断单元包括:
判断子单元一,用于判断客户端A和客户端B是否处于同一个NAT;
若客户端A和客户端B处于同一个NAT,进一步判断,如果此NAT允许回环,则判定客户端A和客户端B可进行同一NAT间点对点传送数据;
若客户端A和客户端B处于不同的NAT,根据双方NAT类型查询配置表判断是否支持点对点传输,支持则判定客户端A和客户端B可进行NAT间的点对点传送数据。
进一步地,所述判断单元还包括:
判断子单元二,用于判定客户端A和客户端B是否可进行局域网间点对点传送数据,具体为:其中一客户端发起局域网通路探测,若收到局域网通路探测响应,则判定客户端A和客户端B可进行局域网间点对点数据传输。
进一步地,所述传输路径选择模块,还包括:
容错单元,用于建立会话后,如果客户端A或客户端B在预设时间内未收到数据,通过服务器发送消息给对方客户端,一起切换到TURN服务器中转进行数据传输。
相应地,本发明还提供了一种楼宇对讲系统,其特征在于,包含所述的数据点对点传输装置。
综上所述,本发明对公网信息的获取和更新进行了优化,客户端在空闲时间进行公网信息的获取和更新,而不是在发起通话时候才去获取,这样减少了通话开始后在STUN查询上花费的时间延迟,缩短协议交互探测时间,缩短客户端响应的时间。在数据点对点输出路径选择时候,本发明可同时进行三种路径(同一NAT间点对点传送数据、不同NAT间点对点传送数据或局域网间点对点传送数据)的判定,减少判断步骤的时间,选择最优的方式进行点对点传输数据,提高数据传输的实时性;在确定无法进行点对点传输数据的情况下,再选择通过TURN服务器中转进行数据传输,确保数据传输的流畅性。另外,本发明将局域网间点对点传送数据优先级设置为最高,保证了在多种点对点数据传送方式均适用的情况下,以最高效率的方式传送数据。同时,本发明技术方案不论是否处于同一个NAT,均强制进行局域网探测,避免了若通过STUN获取网络信息失败会导致局域网点对点失败的情况,提高了局域网下点对点通信的成功率。本发明的数据点对点传输路径选择方法通过细分NAT类型,补充了多种对称NAT可以实现点对点数据传输的情形,提高了不同NAT间的点对点传输成功率。另外,在数据传输过程中增加数据反馈,提供容错机制,客户端可以从点对点传输的误判中恢复成服务器中转模式,保证了最终通信的成功率。
附图说明
图1是本发明实施例的一种数据点对点传输方法步骤流程图。
图2是本发明实施例基于SIP的音视频点对点传输主叫步骤示意图。
图3是本发明实施例基于SIP的音视频点对点传输被叫步骤示意图。
图4是本发明数据点对点选择最优传输路径步骤流程图。
图5是本发明数据的点对点传输路径选择一种方法详细步骤流程图。
图6是本发明数据的点对点传输路径选择另一种方法详细步骤流程图。
图7是本发明实施例的一种数据点对点传输装置结构框架图。
图8是本发明传输路径选择模块结构框架图。
图9是本发明的判断单元结构框架图。
图10是本发明一种楼宇对讲系统结构框架图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1,本发明实施例的一种数据点对点传输方法步骤流程图;步骤如下:
步骤1.客户端A和客户端B在空闲时间进行公网信息的获取及更新;
STUN是一种网络协议,它允许位于NAT后的客户端找出自己的公网IP地址信息,查出自己位于哪种类型的NAT之后以及NAT为某一个内网端口所绑定的公网端口,这些信息被用来在两个同时处于NAT路由器之后的主机之间建立UDP通信。在实际应用中,由于采用STUN协议查询自己各个公网信息需要花费较长的时间,本发明对此进行优化,即在通话前各客户端会定时进行STUN查询,获取及更新固定不变的公网信息,包括NAT类型信息以及自己的公网IP地址信息,从而减少发起通话时在STUN查询上花费的时间。
步骤2.客户端A获取其公网端口,再将其公网信息、公网端口、局域网信息发送给客户端B;
由于公网端口信息是在数据传输开始的时候才创建并与内网端口进行绑定,而且许多系统都是随机分配的,所以空闲时间无法进行自动获取及更新,只能在数据传输开始之前进行查询。另外,局域网信息,包括局域网IP地址,内网端口信息也是在数据传输开始之前进行查询。客户端A进行STUN查询获取NAT为其内网端口绑定的公网端口后,将公网端口信息、空闲时间查询到的自己的NAT类型,公网IP地址,以及局域网IP地址,内网端口信息加入到SDP里面,并发起呼叫信息。
步骤3.客户端B在收到客户端A发送的信息后,获取其公网端口,并将其公网信息、公网端口、局域网信息发送给客户端A;
客户端B接收到呼叫信息后,同样通过STUN查询获取内网端口绑定的公网端口,再连同空闲时间查询到的自己的NAT类型,公网IP地址,以及局域网IP地址,内网端口信息加入到SDP里面,回复应答信息。
步骤4.客户端A和客户端B各自解析对方发送的信息,获取对方的NAT类型,选择最优传输路径,建立会话。
客户端A和客户端B先各自解析对方发送的SDP信息,得到对方的NAT类型,根据获得到的信息,判断客户端A和客户端B之间是否支持点对点连接传送数据,以及可以进行哪种类型的点对点连接传送数据。
然后再根据判断结果选择采用何种点对点连接传送数据,其中选择传输路径的优先级从高到低为:最优先采用局域网间点对点传送数据;其次,采用同一NAT点对点传送数据或不同NAT间点对点传送数据;最后,选择TURN服务器中转方式传送数据。
在建立会话后,如果客户端A或客户端B在预设时间内未收到数据,通过服务器发送消息给对方客户端,一起切换到TURN服务器中转进行数据传输。
本发明可传输的数据包括音频,视频,文件,图片等各种数据,下面以基于SIP的音视频点对点传输数据为例,介绍本发明方法具体步骤,SIP(SessionInitiationProtocol,会话初始协议)是由因特网工程任务组制定的多媒体通信协议。它是一个基于文本的应用层控制协议,用于创建、修改和释放一个或多个参与者的会话,广泛应用于语音、视频、数据等多媒体业务,但由于通信的两个客户端往往位于NAT之后,因此用传统的方法是无法建立连接的,可采用本发明的数据点对点传输方法进行传输数据。
如图2,是本发明实施例基于SIP的音视频点对点传输主叫步骤示意图,包含步骤:
主叫方A发起INVITE请求,表示主叫用户发起会话请求,邀请被叫方B加入会话;同时发出的SDP包含公网端口信息、NAT类型信息,公网IP地址,局域网IP地址,内网端口信息,以及会话类型和一些呼叫所必须的参数,这里的会话类型可能是单纯的语音,也可能是网络会议所用的多媒体视频,还可能是游戏会话。
如果主叫方A在一定的时间内没有接收到被叫方B的返回的接听消息,则结束会话,如果接收到被叫方B的接听消息,则开始解析B的网络信息;
根据解析出的网络信息,选择最优传输路径,发送媒体数据流,同时发送SIP信令ACK给被叫方B,表示主叫方A已经收到了被叫方B对INVITE请求的最终响应;
在设定时间内如果收到媒体数据,则会话正常开始,否则,路径传输切换成服务器中转模式,发送INFO信令通知被叫方B,在具体实施例中,设定时间可以为3秒。
如图3,是基于SIP的音视频点对点传输主叫步骤示意图,步骤如下:
被叫方B等待主叫方A的呼叫请求;
被叫方B接收到主叫方A的呼叫请求,如果不接听,则会话结束,如果接听,则解析接收到的SDP网络信息,发送200OK消息给主叫方A,表示成功响应,同时发送包含公网端口信息、NAT类型信息,公网IP地址,局域网IP地址,内网端口信息的SDP信息给主叫方A;
如果被叫方B没有接收到主叫方A发送的SIP信令ACK,则会话结束,如果接收到,则选择最优传输路径,发送媒体数据流;
在设定时间内如果收到媒体数据,则会话正常开始,否则,路径传输切换成服务器中转模式,发送INFO信令通知主叫方A,在具体实施例中,设定时间可以为3秒。
如图4,是本发明数据点对点选择最优传输路径步骤流程图,步骤如下:
步骤1.判定客户端A和客户端B是否可进行同一NAT间点对点传送数据、不同NAT间点对点传送数据或局域网间点对点传送数据;
本发明中,客户端A和客户端B之间传输的数据可以为音频文件,视频文件,图片、文档或其他类型的数据。在现实中,网络客户端A和网络客户端B能否实现点对点连接传送数据,取决于客户端A和客户端B的网络位置,有可能客户端A和客户端B处于同一个局域网,也有可能处于同一个NAT,或者处于不同的NAT之间。本发明数据的点对点传输路径选择方法,先对上述可能存在的三种情况进行判断,确定客户端A和客户端B之间是否支持点对点连接传送数据,以及可以进行哪种类型的点对点连接传送数据。
步骤2.若是,则进行同一NAT点对点传送数据、不同NAT间点对点传送数据或局域网间点对点传送数据,否则,通过TURN服务器中转传送数据。
本发明选择最终传输路径的优先级从高到低为:最优先采用局域网间点对点传送数据;其次,采用同一NAT点对点传送数据或不同NAT间点对点传送数据;最后,选择服务器中转方式传送数据。
根据步骤1的判断结果选择采用何种点对点连接传送数据,首先,如果判定客户端A和客户端B可进行局域网间点对点传送数据,则优先采用局域网间点对点传送数据。在实际场景中,可能存在客户端A和客户端B之间既支持局域网间点对点传送数据,又支持同一NAT点对点传送数据的情况,这种情况下,优先采用局域网间点对点传送数据。
若客户端A和客户端B不支持局域网间点对点传送数据,则再判断是否可采用同一NAT点对点传送数据或不同NAT间点对点传送数据。在不支持局域网间点对点传送数据的情况下,如果客户端A和客户端B之间支持同一NAT点对点传送数据,则采用同一NAT点对点传送数据;如果客户端A和客户端B之间支持不同NAT间点对点传送数据,则采用不同NAT间点对点传送数据。在现实场景中,这两种情况不可能同时存在,最多只有一种情况存在。
最后,如果判断三种点对点连接方式都不支持,则采用服务器中转方式传输数据。
步骤3.建立会话后,如果客户端A或客户端B在预设时间内未收到数据,通过服务器发送消息给对方客户端,一起切换到TURN服务器中转进行数据传输。
由于实际应用中部分网络环境比较复杂,例如有些厂商路由器上外网端口分配默认与内网端口相同,但是一旦外网端口被占用则分配的外网端口会与内网端口不再相同,导致STUN查询NAT类型会产生误判,此时通过数据反馈机制,可以从点对点误判中恢复成服务器中转模式,保证通信的成功率。
由于本发明判断客户端A和客户端B是否可进行同一NAT间点对点传送数据、不同NAT间点对点传送数据或局域网间点对点传送数据是同时并发进行,得到判断结果的时间也不相同,所以本发明是根据得到判断结果的时间先后顺序进行后续传输路径选择,就会存在以下两种详细步骤流程图,如图5,是本发明数据的点对点传输路径选择一种方法详细步骤流程图,在先得到客户端A和客户端B是否支持局域网间点对点传送数据判断结果的情况下采用,具体步骤如下:
步骤1.同时发起客户端A和客户端B是否可进行局域网间点对点传送数据以及客户端A和客户端B是否可进行同一NAT间点对点传送数据或不同NAT间点对点传送数据的判断。
其中,判定客户端A和客户端B是否可进行局域网间点对点传送数据具体为:其中一客户端发起局域网通路探测,若收到局域网通路探测响应,则判定客户端A和客户端B支持局域网间点对点数据传输,否则,判定客户端A和客户端B不支持局域网间点对点数据传输。
另外,判定客户端A和客户端B是否可进行同一NAT间点对点传送数据、不同NAT间点对点传送数据具体方法为:
判断客户端A和客户端B是否处于同一个NAT;
若客户端A和客户端B处于同一个NAT,进一步判断,如果此NAT允许回环,则判定客户端A和客户端B可进行同一NAT间点对点传送数据;
若客户端A和客户端B处于不同的NAT,根据双方NAT类型查询配置表判断是否支持点对点传输,支持则判定客户端A和客户端B可进行NAT间的点对点传送数据。
为了提高不同NAT情况下客户端A和客户端B之间点对点连接的成功率,本发明对NAT类型进行细分,并得到上述配置表,具体生成步骤为:
1)区别于传统的将NAT分成FullConeNat(完全圆锥NAT),RestrictedNat(地址限制NAT),PortRestrictedNat(端口限制NAT),SymNat(对称型NAT)四大类,本发明根据NAT设备的NAT_BEHAVIOR(映射表现)属性和NAT_FILTERING(过滤表现)属性将对称型NAT进一步细分成6类,对应SymNat1~SymNat6,总共分为9种NAT类型。具体分类如下表格所示:
其中,Endpoint-IndependentMapping(端点独立映射):对于从一个相同的内部IP地址和端口(X:x)发往任何外部IP地址和端口的随后数据包,NAT会重用端口映射;Address-DependentMapping(地址依赖性映射):对于接下来要从同一个内部IP地址和端口(X:x)发往同一个外部地址,不管外部端口号是多少,NAT都会重用端口映射;AddressandPort-DependentMapping(地址和端口依赖性映射):对于接下来要从同一个同部IP地址和端口(X:x)发往同一个外部地址和端口号的数据包,当映射依然处于活动状态的时候,NAT设备会重用端口映射。
Endpoint-IndependentFiltering(端点独立的过滤):不管外部IP地址和端口号(Z:z)是多少,NAT都只过滤不发往内部IP地址和端口号(X:x)的数据包。NAT会转发所有发往X:x的数据包;Address-DependentFiltering(地址依赖性过滤):NAT过滤不发往内部地址X:x的数据包。并且,如果X:x之前没有发送任何数据包给Y(和Y使用的端口无关),那么NAT设备就会过滤从Y:y发往X:x的数据包;AddressandPort-DependentFiltering地址和端口依赖性过滤:NAT过滤不发往内部地址X:x的数据包。并且,如果X:x之前没有发送任何数据包给Y:y,那么NAT设备就会过滤从Y:y发往X:x的数据包。
2)得到客户端A的NAT类型、客户端B的NAT类型、以及客户端A和客户端B是否支持点对点通讯的三者映射关系表。
以下即为映射关系表,其中可以看出并非所有对称网络都无法实现点对点,只有SymNat6与SymNat6以及SymNat6与PortRestrictedNat、SymNat6与SymNat3这三种NAT类型搭配无法实现点对点传输,其余的都可以实现点对点传输。
例如,在一具体场景中,客户端A的NAT类型为SymNat3,客户端B的NAT类型为SymNat1,在传统的判断方式下,认为客户端A和客户端B都属于对称型NAT,不支持点对点数据传送,只能通过服务器中转方式传送数据。根据本发明的映射关系表可以知道,在该具体场景中,客户端A和客户端B之间可以支持不同NAT间点对点连接,客户端A和客户端B可采用不同NAT间点对点连接传送数据,这样数据传输效率更高。
步骤2.根据客户端A和客户端B是否支持局域网间点对点传送数据判定结果选择传输路径,若支持则采用局域网间点对点传送数据,否则采用服务器中转方式传输数据。
根据传输路径选择优先原则,如果已经判断出客户端A和客户端B之间支持局域网间点对点传送数据,则采用该方式传送数据,即使客户端A和客户端B还支持同一NAT点对点传送数据或不同NAT间点对点传送数据。只有在客户端A和客户端B不支持局域网间点对点传送数据情况下,再进一步根据是否支持同一NAT点对点传送数据或不同NAT间点对点传送数据判定结果选择传输路径,若支持,则采用同一NAT点对点传送数据或不同NAT间点对点传送数据,否则采用服务器中转方式传输数据。
步骤3.建立会话后,如果客户端A或客户端B在预设时间内未收到数据,通过服务器发送消息给对方客户端,一起切换到TURN服务器中转进行数据传输,否则保持现有传输路径不变。
如图6,是本发明数据的点对点传输路径选择另一种方法详细步骤流程图,在先得到客户端A和客户端B是否可进行同一NAT间点对点传送数据或不同NAT间点对点传送数据判定结果的情况下采用,具体步骤为:
步骤1.同时发起客户端A和客户端B是否可进行局域网间点对点传送数据以及客户端A和客户端B是否可进行同一NAT间点对点传送数据或不同NAT间点对点传送数据的判断。
步骤2.先根据客户端A和客户端B是否可进行同一NAT间点对点传送数据或不同NAT间点对点传送数据判定结果选择传输路径,若支持则采用同一NAT点对点传送数据或不同NAT间点对点传送数据,否则采用服务器中转方式传输数据。
再根据客户端A和客户端B是否支持局域网间点对点传送数据判定结果选择传输路径,若支持则采用局域网间点对点传送数据,否则保持现有传输路径不变。
例如,在一具体实施例中,先判断出客户端A和客户端B支持同一NAT点对点传送数据,且客户端A和客户端B之间的局域网间点对点通路探测尚未得到回应,则采用同一NAT点对点连接传送数据。若后续客户端A和客户端B之间的局域网间点对点通路探测得到了回应,客户端A和客户端B再切换到局域网点对点连接传送数据。
步骤3.建立会话后,如果客户端A或客户端B在预设时间内未收到数据,通过服务器发送消息给对方客户端,一起切换到TURN服务器中转进行数据传输,否则保持现有传输路径不变。
如图7,是本发明实施例的一种数据点对点传输装置结构框架图,包括:
定时更新模块,用于客户端A和客户端B在空闲时间进行公网信息的获取及更新;
信息发送模块,用于客户端A获取其公网端口,再将其公网信息、公网端口、局域网信息发送给客户端B;
信息应答模块,用于客户端B在收到客户端A发送的信息后,获取其公网端口,并将其公网信息、公网端口、局域网信息发送给客户端A;
传输路径选择模块,用于客户端A和客户端B各自解析对方发送的信息,获取对方的NAT类型,选择最优传输路径,建立会话。
如图8,是本发明传输路径选择模块结构框架图,包括:
判断单元,用于判定客户端A和客户端B是否可进行同一NAT间点对点传送数据、不同NAT间点对点传送数据或局域网间点对点传送数据;
路径选择单元,用于若是,则进行同一NAT点对点传送数据、不同NAT间点对点传送数据或局域网间点对点传送数据,否则,通过TURN服务器中转传送数据;
容错单元,用于建立会话后,如果客户端A或客户端B在预设时间内未收到数据,通过服务器发送消息给对方客户端,一起切换到TURN服务器中转进行数据传输。
如图9,是本发明的判断单元结构框架图,包括:
判断子单元一,用于判断客户端A和客户端B是否处于同一个NAT;
若客户端A和客户端B处于同一个NAT,进一步判断,如果此NAT允许回环,则判定客户端A和客户端B可进行同一NAT间点对点传送数据;
若客户端A和客户端B处于不同的NAT,根据双方NAT类型查询配置表判断是否支持点对点传输,支持则判定客户端A和客户端B可进行NAT间的点对点传送数据。
判断子单元二,用于判定客户端A和客户端B是否可进行局域网间点对点传送数据,具体判断过程为:其中一客户端发起局域网通路探测,若收到局域网通路探测响应,则判定客户端A和客户端B可进行局域网间点对点数据传输。
本发明的数据点对点传输装置可应用在两个设备(甚至多个设备)需进行数据传输的场景中。例如,楼宇对讲领域、安防监控领域、对讲领域等等。在楼宇对讲领域中,客户端A可以是梯口机,室内机等楼宇设备,客户B可以是移动终端,例如手机、平板、智能穿戴式设备等等。
如图10,是本发明一种楼宇对讲系统结构框架图,所述楼宇对讲系统包含了本发明数据点对点传输装置。该楼宇对讲系统可用于实现访客与用户之间的视频对讲功能,通过包含本发明数据点对点传输装置,提高了客户端之间连接的速度,减少响应时间,同时通过选择最优的点对点数据传输方式,从而提高了楼宇出入口的对讲主机与用户家中的可视对讲分机之间数据传输的速度和效率,保证视频画面的清晰度和流畅度。
在一具体的应用实施例中,客户端A为梯口机,客户端B为手机。当用户的手机和梯口机应用本发明的数据点对点传输装置进行数据传输时,例如用户想通过手机往梯口机发送照片等数据时,具体过程如下:
定时更新模块,用于梯口机和手机在空闲时间进行公网信息的获取及更新;
信息发送模块,用于梯口机获取其公网端口,再将其公网信息、公网端口、局域网信息发送给手机;
信息应答模块,用于手机在收到梯口机发送的信息后,获取其公网端口,并将其公网信息、公网端口、局域网信息发送给梯口机;
传输路径选择模块,用于梯口机和手机各自解析对方发送的信息,获取对方的NAT类型,选择最优传输路径,建立会话。
其中,传输路径选择模块包括以下单元:
判断单元,用于判定梯口机和手机是否可进行同一NAT间点对点传送数据、不同NAT间点对点传送数据或局域网间点对点传送数据;
路径选择单元,用于若是,则进行同一NAT点对点传送数据、不同NAT间点对点传送数据或局域网间点对点传送数据,否则,通过TURN服务器中转传送数据;
容错单元,用于建立会话后,如果梯口机或手机在预设时间内未收到数据,通过服务器发送消息给对方,梯口机和手机一起切换到TURN服务器中转进行数据传输。
进一步,判断单元包括以下子模块:
判断子模块一,用于判断梯口机和手机是否处于同一个NAT;
若梯口机和手机处于同一个NAT,进一步判断,如果此NAT允许回环,则判定梯口机和手机可进行同一NAT间点对点传送数据;
若梯口机和手机处于不同的NAT,根据双方NAT类型查询配置表判断是否支持点对点传输,支持则判定梯口机和手机可进行NAT间的点对点传送数据。
判断子模块二,用于判定梯口机和手机是否可进行局域网间点对点传送数据,具体判断过程为:其中梯口机发起局域网通路探测,若收到局域网通路探测响应,则判定梯口机和手机可进行局域网间点对点数据传输。
在安防监控领域,客户端A可以是摄像头,客户端B可以是监控主机;在对讲领域,客户端A可以对讲设备A,客户端B可以是对比设备B。总之,两个以上设备之间需要进行数据传输时,均可应用本发明的装置。通过包含本发明数据点对点传输装置,提高了客户端之间连接的速度,减少响应时间,同时通过选择最优的点对点数据传输方式,从而提高了两设备之间数据传输的速度和效率,保证视频画面的清晰度和流畅度。
Claims (15)
1.一种数据点对点传输方法,其特征在于,包括以下步骤:
客户端A和客户端B在空闲时间进行公网信息的获取及更新;
客户端A获取其公网端口,再将其公网信息、公网端口、局域网信息发送给客户端B;
客户端B在收到客户端A发送的信息后,获取其公网端口,并将其公网信息、公网端口、局域网信息发送给客户端A;
客户端A和客户端B各自解析对方发送的信息,获取对方的NAT类型,选择最优传输路径,建立会话。
2.如权利要求1所述的数据点对点传输方法,其特征在于,所述公网信息包括NAT类型,及公网IP地址;所述局域网信息包括局域网IP地址和局域网端口。
3.如权利要求1所述的数据点对点传输方法,其特征在于,所述选择最优传输路径,包含以下步骤:
判定客户端A和客户端B是否可进行同一NAT间点对点传送数据、不同NAT间点对点传送数据或局域网间点对点传送数据;
若是,则进行同一NAT点对点传送数据、不同NAT间点对点传送数据或局域网间点对点传送数据,否则,通过TURN服务器中转传送数据。
4.如权利要求3所述的数据点对点传输方法,其特征在于,所述判定客户端A和客户端B是否可进行同一NAT间点对点传送数据、不同NAT间点对点传送数据具体为:
判断客户端A和客户端B是否处于同一个NAT;
若客户端A和客户端B处于同一个NAT,进一步判断,如果此NAT允许回环,则判定客户端A和客户端B可进行同一NAT间点对点传送数据;
若客户端A和客户端B处于不同的NAT,根据双方NAT类型查询配置表判断是否支持点对点传输,支持则判定客户端A和客户端B可进行NAT间的点对点传送数据。
5.如权利要求3所述的数据点对点传输方法,其特征在于,所述判定客户端A和客户端B是否可进行局域网间点对点传送数据具体为:其中一客户端发起局域网通路探测,若收到局域网通路探测响应,则判定客户端A和客户端B可进行局域网间点对点数据传输。
6.如权利要求3-5之一所述的数据点对点传输方法,其特征在于,所述判定客户端A和客户端B是否可进行同一NAT间点对点传送数据、不同NAT间点对点传送数据或局域网间点对点传送数据,上述三种判定方法可并列进行,若判定客户端A和客户端B可进行局域网间点对点传送数据,则优先采用局域网间点对点传送数据,否则,根据是否可进行同一NAT间点对点传送数据、不同NAT间点对点传送数据的判定结果进行数据传输。
7.如权利要求4所述的数据点对点传输方法,其特征在于,所述配置表的配置步骤为:
根据NAT设备的映射表现和过滤表现属性将NAT进行分类;
得到客户端A的NAT类型、客户端B的NAT类型、以及客户端A和客户端B是否支持点对点通讯的三者映射关系表。
8.如权利要求7所述的数据点对点传输方法,其特征在于,所述根据NAT设备的映射表现和过滤表现属性将NAT进行分类,具体为:
将NAT分成完全圆锥型,地址限制型,端口限制型,对称型四类,其中,所述对称型NAT进一步细分成6类,对应SymNat1~SymNat6。
9.如权利要求3-5之一所述的数据点对点传输方法,其特征在于,所述选择最优传输路径,还包含以下步骤:
建立会话后,如果客户端A或客户端B在预设时间内未收到数据,通过服务器发送消息给对方客户端,一起切换到TURN服务器中转进行数据传输。
10.一种数据点对点传输装置,其特征在于,包括:
定时更新模块,用于客户端A和客户端B在空闲时间进行公网信息的获取及更新;
信息发送模块,用于客户端A获取其公网端口,再将其公网信息、公网端口、局域网信息发送给客户端B;
信息应答模块,用于客户端B在收到客户端A发送的信息后,获取其公网端口,并将其公网信息、公网端口、局域网信息发送给客户端A;
传输路径选择模块,用于客户端A和客户端B各自解析对方发送的信息,获取对方的NAT类型,选择最优传输路径,建立会话。
11.如权利要求10所述的数据点对点传输装置,其特征在于,所述传输路径选择模块,包括:
判断单元,用于判定客户端A和客户端B是否可进行同一NAT间点对点传送数据、不同NAT间点对点传送数据或局域网间点对点传送数据;
路径选择单元,用于若是,则进行同一NAT点对点传送数据、不同NAT间点对点传送数据或局域网间点对点传送数据,否则,通过TURN服务器中转传送数据。
12.如权利要求11所述的数据点对点传输装置,其特征在于,所述判断单元包括:
判断子单元一,用于判断客户端A和客户端B是否处于同一个NAT;
若客户端A和客户端B处于同一个NAT,进一步判断,如果此NAT允许回环,则判定客户端A和客户端B可进行同一NAT间点对点传送数据;
若客户端A和客户端B处于不同的NAT,根据双方NAT类型查询配置表判断是否支持点对点传输,支持则判定客户端A和客户端B可进行NAT间的点对点传送数据。
13.如权利要求11所述的数据点对点传输装置,其特征在于,所述判断单元还包括:
判断子单元二,用于判定客户端A和客户端B是否可进行局域网间点对点传送数据,具体为:其中一客户端发起局域网通路探测,若收到局域网通路探测响应,则判定客户端A和客户端B可进行局域网间点对点数据传输。
14.如权利要求11-13之一所述的数据点对点传输装置,其特征在于,所述传输路径选择模块,还包括:
容错单元,用于建立会话后,如果客户端A或客户端B在预设时间内未收到数据,通过服务器发送消息给对方客户端,一起切换到TURN服务器中转进行数据传输。
15.一种楼宇对讲系统,其特征在于,包含权利要求10-13任一所述的数据点对点传输装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610079489.5A CN105721570B (zh) | 2016-02-04 | 2016-02-04 | 数据点对点传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610079489.5A CN105721570B (zh) | 2016-02-04 | 2016-02-04 | 数据点对点传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105721570A true CN105721570A (zh) | 2016-06-29 |
CN105721570B CN105721570B (zh) | 2019-06-25 |
Family
ID=56156607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610079489.5A Active CN105721570B (zh) | 2016-02-04 | 2016-02-04 | 数据点对点传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105721570B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878474A (zh) * | 2017-04-25 | 2017-06-20 | 浙江风向标科技有限公司 | 一种p2p连接建立的方法和装置 |
CN108989597A (zh) * | 2018-08-30 | 2018-12-11 | 中国科学院上海技术物理研究所 | 医学影像传输方法、传输中心和终端 |
CN109660495A (zh) * | 2017-10-12 | 2019-04-19 | 网宿科技股份有限公司 | 一种文件传输方法和装置 |
CN110677471A (zh) * | 2019-09-24 | 2020-01-10 | 日立楼宇技术(广州)有限公司 | 门禁系统的数据链路构建方法、装置、设备和存储介质 |
CN110730217A (zh) * | 2019-09-24 | 2020-01-24 | 日立楼宇技术(广州)有限公司 | 门禁系统传输链路调整方法、装置、门禁设备和存储介质 |
CN113315823A (zh) * | 2021-05-21 | 2021-08-27 | 广州赞赏信息科技有限公司 | 一种低延迟音视频传输方法 |
CN113472917A (zh) * | 2021-07-27 | 2021-10-01 | 浪潮思科网络科技有限公司 | 一种数据报文的网络地址转换方法、设备及介质 |
CN114390037A (zh) * | 2022-01-12 | 2022-04-22 | 中国科学院软件研究所 | 一种终端访问家庭网络设备的方法及系统 |
WO2022148321A1 (zh) * | 2021-01-11 | 2022-07-14 | 杭州复杂美科技有限公司 | 节点通信方法、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863157A (zh) * | 2005-10-28 | 2006-11-15 | 华为技术有限公司 | 穿越nat实现网络通信的方法及装置 |
CN101860536A (zh) * | 2010-05-31 | 2010-10-13 | 北京邮电大学 | 一种基于sip软终端的私网穿越系统和方法 |
CN102685141A (zh) * | 2012-05-22 | 2012-09-19 | 北京邮电大学 | 一种VoIP中基于语音可达性的融合穿越方法 |
CN102685268A (zh) * | 2012-05-22 | 2012-09-19 | 北京邮电大学 | 一种VoIP中基于ICE协议的快速私网穿越方法 |
CN105187567A (zh) * | 2015-06-24 | 2015-12-23 | 东莞市南星电子有限公司 | 一种基于sip和ice的音视频通信方法 |
-
2016
- 2016-02-04 CN CN201610079489.5A patent/CN105721570B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863157A (zh) * | 2005-10-28 | 2006-11-15 | 华为技术有限公司 | 穿越nat实现网络通信的方法及装置 |
CN101860536A (zh) * | 2010-05-31 | 2010-10-13 | 北京邮电大学 | 一种基于sip软终端的私网穿越系统和方法 |
CN102685141A (zh) * | 2012-05-22 | 2012-09-19 | 北京邮电大学 | 一种VoIP中基于语音可达性的融合穿越方法 |
CN102685268A (zh) * | 2012-05-22 | 2012-09-19 | 北京邮电大学 | 一种VoIP中基于ICE协议的快速私网穿越方法 |
CN105187567A (zh) * | 2015-06-24 | 2015-12-23 | 东莞市南星电子有限公司 | 一种基于sip和ice的音视频通信方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878474A (zh) * | 2017-04-25 | 2017-06-20 | 浙江风向标科技有限公司 | 一种p2p连接建立的方法和装置 |
CN109660495A (zh) * | 2017-10-12 | 2019-04-19 | 网宿科技股份有限公司 | 一种文件传输方法和装置 |
CN108989597A (zh) * | 2018-08-30 | 2018-12-11 | 中国科学院上海技术物理研究所 | 医学影像传输方法、传输中心和终端 |
CN110677471A (zh) * | 2019-09-24 | 2020-01-10 | 日立楼宇技术(广州)有限公司 | 门禁系统的数据链路构建方法、装置、设备和存储介质 |
CN110730217A (zh) * | 2019-09-24 | 2020-01-24 | 日立楼宇技术(广州)有限公司 | 门禁系统传输链路调整方法、装置、门禁设备和存储介质 |
WO2022148321A1 (zh) * | 2021-01-11 | 2022-07-14 | 杭州复杂美科技有限公司 | 节点通信方法、计算机设备和存储介质 |
CN113315823A (zh) * | 2021-05-21 | 2021-08-27 | 广州赞赏信息科技有限公司 | 一种低延迟音视频传输方法 |
CN113472917A (zh) * | 2021-07-27 | 2021-10-01 | 浪潮思科网络科技有限公司 | 一种数据报文的网络地址转换方法、设备及介质 |
CN114390037A (zh) * | 2022-01-12 | 2022-04-22 | 中国科学院软件研究所 | 一种终端访问家庭网络设备的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105721570B (zh) | 2019-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105721570B (zh) | 数据点对点传输方法及装置 | |
US7257837B2 (en) | Firewall penetration system and method for real time media communications | |
US8082324B2 (en) | Method of establishing a tunnel between network terminal devices passing through firewall | |
EP2805476B1 (en) | Ice based nat traversal | |
US7353255B2 (en) | System and apparatus for geographically distributed VoIP conference service with enhanced QoS | |
CN101257433B (zh) | 实现网络地址转换穿越的方法和系统 | |
CN105681445B (zh) | 数据的点对点传输路径选择方法及装置 | |
US20050008024A1 (en) | Gateway and method | |
US20090077245A1 (en) | Client-To-Client Direct RTP Exchange In A Managed Client-Server Network | |
KR100785294B1 (ko) | 패킷 통신 서비스를 제공하는 시스템 및 그 방법 | |
WO2013040970A1 (zh) | 中继节点选择方法及装置 | |
JP2005151579A (ja) | データ通信方法 | |
JP4685955B2 (ja) | アドレス変換デバイスを通じたモバイル通信端末と信号サーバとの間の接続の最適化 | |
RU2332804C2 (ru) | Обработка начальных мультимедийных данных ii | |
US8374178B2 (en) | Apparatus and method for supporting NAT traversal in voice over internet protocol system | |
JP2012015797A (ja) | 電話交換装置及び電話端末及び電話システムで使用される制御方法 | |
US8233400B2 (en) | Methods, systems, and computer readable media for verifying the availability of an internet protocol (IP) media router during a call setup | |
JP4433206B2 (ja) | コネクションを確立し維持する方法 | |
US20190141096A1 (en) | Method for Implementing a Call Control of a Client on a Telephony Endpoint Representing a User, and Port Handler Designed Therefor | |
KR101080383B1 (ko) | 브이오아이피 호설정 방법 및 이를 수행하는 브이오아이피 통신 시스템 | |
CN109067659B (zh) | 一种会话建立方法、路由器及会话系统 | |
US20080137647A1 (en) | VoIP terminal and method for providing multi-call service | |
KR100627818B1 (ko) | 얼리 미디어 서비스 제공 방법 및 시스템 | |
CN101707548A (zh) | 一种软交换网络以及在软交换网络中建立呼叫的方法 | |
EP1492303A2 (en) | Gateway and method |
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 |