CN103354558B - 一种基于xmpp服务器的打洞方法 - Google Patents
一种基于xmpp服务器的打洞方法 Download PDFInfo
- Publication number
- CN103354558B CN103354558B CN201310256691.7A CN201310256691A CN103354558B CN 103354558 B CN103354558 B CN 103354558B CN 201310256691 A CN201310256691 A CN 201310256691A CN 103354558 B CN103354558 B CN 103354558B
- Authority
- CN
- China
- Prior art keywords
- user terminal
- top box
- set top
- router
- outer net
- 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
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及打动技术,尤其是一种基于XMPP服务器打洞方法<b>。</b>本发明所要解决的技术问题是:针对现有技术存在的问题,提供一种基于XMPP服务器打洞方法,实现点对点的传输。本发明包括用户终端、机顶盒分别登录XMPP服务器,并进行账户认证;然后机顶盒与用户终端建立打洞连接;最后机顶盒与用户终端建立数据连接进行数据传输。本发明应用于数据打洞传输领域。
Description
技术领域
本发明涉及打动技术,尤其是一种基于XMPP服务器的打洞方法。
背景技术
随着项目开发,大数据传输、视频传输面临了极大问题。传统的数据传输通过服务器(如xmpp服务器)进行中转实现。对于少量数据,通过服务器中转传输是可行的;对于大数据、视频数据、音频数据,再通过服务器中转传输是不可采取的。服务器中转过程中,服务器面临着巨大的负荷,对服务器的性能是一种严峻的考验;通过服务器对大数据、视频数据、音频数据中转,传输效率不高,并且存在一些风险,当服务器崩溃后,数据传输将会失败。通过服务器中转大数据,对服务器网络宽带要求甚高,增加了开发成本,维护难度大。
发明内容
本发明所要解决的技术问题是:针对现有技术存在的问题,提供一种基于XMPP服务器的打洞方法,实现点对点的传输,将打破传统的传输方式,不需要依赖服务器就能实现大数据、视频、音频的传输,减轻服务器的负荷,可靠性、稳定性以及传输效率将大大提高。
本发明采用的技术方案如下:
一种基于XMPP服务器的打洞方法包括:
S1:用户终端、机顶盒分别登录XMPP服务器;用户终端登录UDP服务进行用户终端账号认证;用户终端向UDP服务文件模块发送数据时,采用心跳机制保持第一路由器端口常开;
S2:用户终端通过XMPP服务器将用户终端外网IP地址及用户终端外网端口号发送给机顶盒;机顶盒接收用户终端外网IP地址以及用户终端外网端口号;
S3:机顶盒登录UDP服务文件模块;机顶盒向UDP服务文件模块发送数据时,采用心跳机制保持第二路由器端口常开;
S4:机顶盒与用户终端建立打洞连接;
S5:机顶盒与用户终端建立数据连接,进行数据传输。
进一步的,所述S1中用户终端、机顶盒分别登录XMPP服务器;用户终端登录UDP服务进行用户终端账号认证的具体步骤是:
S11:用户终端、机顶盒分别通过第一路由器、第二路由器登录XMPP服务器;
S12:用户终端通过第一路由器登录UDP服务文件模块,进行用户终端账号认证,若用户账号与UDP服务文件模块保存的注册账号有匹配,则用户终端账号通过认证,否则,返回S11;
S13:UDP服务文件模块通过第一路由器返回用户终端外网IP地址与用户终端外网端口号给用户终端,其中第一路由器,用于用户终端登录UDP服务文件模块时,保存用户终端外网IP地址、用户终端外网端口号组成信息与用户终端内网IP地址、用户终端内网端口号组成信息之间的映射关系。
进一步的,所述S1中用户终端向UDP服务文件模块发送数据时,采用心跳机制保持第一路由器端口常开的具体步骤是:用户终端向UDP服务文件模块发送数据时,用户终端向第一路由器间隔时常T,发送N次数据,用于保持用户终端外网IP地址、用户终端外网端口号组成信息与用户终端内网IP地址、用户终端内网端口号组成信息之间的映射关系不变,其中T>0,N>0。
进一步的,所述S2具体步骤是:用户终端通过第一路由器发送用户终端外网IP地址及用户终端外网端口号给XMPP服务器,XMPP服务器将用户终端外网IP地址及用户终端外网端口号通过第二路由器发送给机顶盒;机顶盒接收用户终端外网IP地址以及用户终端外网端口号。
进一步的,所述S2中机顶盒向UDP服务文件模块发送数据时,采用心跳机制保持第二路由器端口常开的具体步骤是:机顶盒向UDP服务文件模块发送数据时,机顶盒向第二路由器间隔时常T,发送N次数据,用于保持机顶盒外网IP地址、机顶盒外网端口号组成信息与机顶盒内网IP地址、机顶盒内网端口号组成信息之间的映射关系,其中T>0,N>0。
进一步的,所述S3具体步骤是:
S31:机顶盒通过第二路由器登录UDP服务文件模块时,进行机顶盒账号认证,若用户账号与UDP服务文件模块保存的注册账号有匹配,则用户终端账号通过认证,否则,返回S2;;
S32:UDP服务文件模块通过第二路由器返回机顶盒外网IP地址、机顶盒外网端口号给机顶盒,第二路由器,用于机顶盒登录UDP服务文件模块时,保存机顶盒外网IP地址、机顶盒外网端口号组成信息与机顶盒内网IP地址、机顶盒内网端口号组成信息之间的映射关系。
进一步的,所述S4具体步骤是:
S41:机顶盒通过第二路由器发送请求打洞消息给XMPP服务器;
S42:XMPP接收机顶盒发送的请求打洞消息,再通过第一路由器将请求打洞消息发送给用户终端;
S43:用户终端接收到请求打洞消息后,通过第一路由器发送打洞消息给第二路由器;
S44:用户终端通过第一路由器发送打洞消息成功标志信息给XMPP服务器,XMPP服务器接收到打洞消息成功标志信息后,通过第二路由器发送打洞成功消息给机顶盒。
进一步的,所述S5具体是:机顶盒与用户终端建立打洞连接后,机顶盒通过第二路由器传输数据,第一路由器接收到第二路由器发送的数据后,传递给用户终端。
进一步的,所述XMPP服务器与第一路由器、第二路由器进行消息传递时,采用IQ消息机制
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1)用户终端与机顶盒之间建立打洞连接是基于XMPP服务器及其UDP服务程序模块进行的,将机顶盒的外网IP地址与外网端口号与用户终端的外网IP地址与外网端口号进行交换,并通过机顶盒发送请求打洞信息,用户终端对机顶盒发送的请求信息进行答复,从而建立稳定的基于XMPP服务器的打洞协议的连接,为后续机顶盒与用户终端进行数据传输奠定基础。
2)用户终端对机顶盒的请求信息进行答复时,通过第一路由器向第二路由器发送符合打洞协议的数据或者其他任意的数据时,系统默认用户终端向机顶盒确认打洞连接,并后续通过用户终端向UDP服务文件模块发送打洞成功消息,并通过UDP服务文件模块回复打洞成功消息给机顶盒,从而完成符合打洞协议规定的打洞连接。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1本发明流程图。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
相关说明:
1.UDP服务文件模块是通过XMPP服务器中UDP服务文件程序实现的,用于进行用户终端、机顶盒用户认证。用于接收用户终端、机顶盒端的心跳数据,分别对应保持第一路由器、第二路由器通信端口常开。
2.第一路由器的作用是用于用户终端登录UDP服务文件模块时,保存用户终端外网IP地址、机顶盒端端口号组成信息与用户终端内网IP、用户终端内网端口组成信息之间的映射关系。用户终端发送心跳数据给UDP服务文件模块时,保持第一路由器映射关系不发生变化。
3.第二路由器作用是用于机顶盒登录UDP服务文件模块时,保存机顶盒外网IP地址、机顶盒端端口号组成信息与机顶盒端内网IP、机顶盒端内网端口组成信息之间的映射关系。机顶盒端发送心跳给UDP服务文件模块时,保持第二路由器映射关系不发生变化。
4.用户终端是手机、PDA等用于进行无线传输的用智能移动终端。
5.XMPP服务器与用户终端、机顶盒进行数据交互时通过IQ消息机制传递数据。
6.请求打洞消息表示的是机顶盒向用户终端发送的询问信息,用于与用户终端建立打洞连接。打洞消息:用户终端通过第一路由器向第二路由器发送的打洞消息没有实际意义,其作用只是为了符合打洞协议的规定,当然此时可以不发送打洞消息,而发其他无意义的数据;当机顶盒通过第二路由器、第一路由器向用户终端发送打洞消息时,其实就是真正意义上的发送数据。打洞消息成功标志信息时用户终端通过第一路由器、XMPP服务器、第二路由器回发给机顶盒的返回信息,用于告知机顶盒,此时用户终端已经准备好建立打洞连接,为后续机顶盒与用户终端进行数据连接打下基础。
7.用户终端外网IP地址指的是公网给用户终端分配的IP地址,用户终端内网IP地址指的是局域网给用户终端分配的地址;用户终端端口号指的是公网给用户终端分配的端口号,用户终端内网端口指的是局域网给用户终端分配的端口号。
8.机顶盒外网IP地址指的是公网给机顶盒分配的IP地址,机顶盒内网IP地址指的是在局域网给机顶盒分配的地址,机顶盒内网IP地址与机顶盒外网IP地址的映射关系是通过第二路由器实现的;机顶盒外网端口号指的是公网给机顶盒分配的端口号。机顶盒内网端口指的是内网给机顶盒分配的端口号。
9.用户终端向UDP服务文件模块发送数据时,采用心跳机制保持第一路由器端口常开的原因是第一路由器在一定时间后关闭用户终端外网IP地址、用户终端外网端口号组成信息与用户终端内网IP地址、用户终端内网端口号组成信息之间的映射关系,为了保持与UDP服务文件模块能够一直通信,需要用户终端一直发送UDP心跳包给XMPP服务器上的UDP服务文件模块,来保持上述映射关系不被关闭。
10.机顶盒登录UDP服务文件模块;机顶盒向UDP服务文件模块发送数据时,采用心跳机制保持第二路由器端口常开的原因是第二路由器在一定时间后关闭机顶盒外网IP地址、机顶盒外网端口号组成信息与机顶盒内网IP地址、机顶盒内网端口号组成信息之间的映射关系,为了保持与UDP服务文件模块能够一直通信,需要机顶盒一直发送UDP心跳包给XMPP服务器的UDP服务文件模块,来保持上述映射关系不被关闭。
实施例一:如图1所述,本明工作流程:
S1:用户终端、机顶盒分别对应通过第一路由器、第二路由器登录XMPP服务器;
S2:用户终端通过第一路由器登录XMPP服务器的UDP服务文件模块,进行用户终端账号认证,若用户账号与UDP服务文件模块保存的注册账号有匹配,则用户终端账号通过认证,否则,返回S1;
S3:UDP服务文件模块通过第一路由器返回用户终端外网IP地址与用户终端外网端口号给用户终端。
S4:用户终端通过第一路由器发送用户终端外网IP地址、用户终端外网端口号给XMPP服务器,XMPP服务器将用户终端外网IP地址、用户终端外网端口号通过第二路由器发送给机顶盒;
S5:机顶盒通过第二路由器登录XMPP服务器的UDP服务文件模块,进行机顶盒账号认证;若机顶盒账号与UDP服务文件模块保存的注册账号有匹配,则机顶盒账号通过认证,否则,返回S4;
S6:UDP服务文件模块通过第二路由器返回机顶盒外网IP地址、机顶盒外网端口号给机顶盒;
S7:机顶盒通过第二路由器发送机顶盒端请求打洞消息给XMPP服务器;
S8:XMPP服务器接收机顶盒发送的请求打洞消息,通过第一路由器将请求打洞消息发送给用户终端,其中XMPP服务器与第一路由器、第二路由器传递发送消息时,都是通过IQ消息传递机制进行;
S9:用户终端接收到请求打洞消息后,通过第一路由器发送打洞消息给第二路由器(用户终端发送请求打洞消息N次之后,默认用户终端向机顶盒打洞成功);
S10:用户终端通过第一路由器发送打洞消息成功标志信息给XMPP服务器,XMPP服务器接收到打洞消息成功标志信息后,通过第二路由器发送打洞成功消息给机顶盒;
S11:机顶盒通过第二路由器传输数据,第一路由器接收到第二路由器发送的数据后,传递给用户终端。
上述所有步骤中,XMPP服务器与第一路由器、第二路由器传递发送消息时,XMPP服务器是通过IQ消息传递机制将数据通过第一路由器、第二路由器分别对应传递给用户终端、机顶盒。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
Claims (6)
1.一种基于XMPP服务器的打洞方法,其特征在于包括:
S1:用户终端、机顶盒分别登录XMPP服务器;用户终端登录UDP服务进行用户终端账号认证;用户终端向UDP服务文件模块发送数据时,采用心跳机制保持第一路由器端口常开;
S2:用户终端通过XMPP服务器将用户终端外网IP地址及用户终端外网端口号发送给机顶盒;机顶盒接收用户终端外网IP地址以及用户终端外网端口号;
S3:机顶盒登录UDP服务文件模块;机顶盒向UDP服务文件模块发送数据时,采用心跳机制保持第二路由器端口常开;
S4:机顶盒与用户终端建立打洞连接;
S5:机顶盒与用户终端建立数据连接,进行数据传输;
所述S1中用户终端、机顶盒分别登录XMPP服务器;用户终端登录UDP服务进行用户终端账号认证的具体步骤是:
S11:用户终端、机顶盒分别通过第一路由器、第二路由器登录XMPP服务器;
S12:用户终端通过第一路由器登录UDP服务文件模块,进行用户终端账号认证,若用户账号与UDP服务文件模块保存的注册账号有匹配,则用户终端账号通过认证,否则,返回S11;
S13:UDP服务文件模块通过第一路由器返回用户终端外网IP地址与用户终端外网端口号给用户终端,其中第一路由器,用于用户终端登录UDP服务文件模块时,保存用户终端外网IP地址、用户终端外网端口号组成信息与用户终端内网IP地址、用户终端内网端口号组成信息之间的映射关系;
所述S1中用户终端向UDP服务文件模块发送数据时,采用心跳机制保持第一路由器端口常开的具体步骤是:用户终端向UDP服务文件模块发送数据时,用户终端向第一路由器间隔时常T,发送N次数据,用于保持用户终端外网IP地址、用户终端外网端口号组成信息与用户终端内网IP地址、用户终端内网端口号组成信息之间的映射关系不变,其中T>0,N>0;
所述S2具体步骤是:用户终端通过第一路由器发送用户终端外网IP地址及用户终端外网端口号给XMPP服务器,XMPP服务器将用户终端外网IP地址及用户终端外网端口号通过第二路由器发送给机顶盒;机顶盒接收用户终端外网IP地址以及用户终端外网端口号。
2.根据权利要求1所述的一种基于XMPP服务器的打洞方法,其特征在于所述S2中机顶盒向UDP服务文件模块发送数据时,采用心跳机制保持第二路由器端口常开的具体步骤是:机顶盒向UDP服务文件模块发送数据时,机顶盒向第二路由器间隔时常T,发送N次数据,用于保持机顶盒外网IP地址、机顶盒外网端口号组成信息与机顶盒内网IP地址、机顶盒内网端口号组成信息之间的映射关系,其中T>0,N>0。
3.根据权利要求1所述的一种基于XMPP服务器的打洞方法,其特征在于所述S3具体步骤是:
S31:机顶盒通过第二路由器登录UDP服务文件模块时,进行机顶盒账号认证,若用户账号与UDP服务文件模块保存的注册账号有匹配,则用户终端账号通过认证,否则,返回S2;
S32:UDP服务文件模块通过第二路由器返回机顶盒外网IP地址、机顶盒外网端口号给机顶盒,第二路由器,用于机顶盒登录UDP服务文件模块时,保存机顶盒外网IP地址、机顶盒外网端口号组成信息与机顶盒内网IP地址、机顶盒内网端口号组成信息之间的映射关系。
4.根据权利要求3所述的一种基于XMPP服务器的打洞方法,其特征在于所述S4具体步骤是:
S41:机顶盒通过第二路由器发送请求打洞消息给XMPP服务器;
S42:XMPP接收机顶盒发送的请求打洞消息,再通过第一路由器将请求打洞消息发送给用户终端;
S43:用户终端接收到请求打洞消息后,通过第一路由器发送打洞消息给第二路由器;
S44:用户终端通过第一路由器发送打洞消息成功标志信息给XMPP服务器,XMPP服务器接收到打洞消息成功标志信息后,通过第二路由器发送打洞成功消息给机顶盒。
5.根据权利要求4所述的一种基于XMPP服务器的打洞方法,其特征在于所述S5具体是:机顶盒与用户终端建立打洞连接后,机顶盒通过第二路由器传输数据,第一路由器接收到第二路由器发送的数据后,传递给用户终端。
6.根据权利要求1至5之一所述的一种基于XMPP服务器的打洞方法,其特征在于所述XMPP服务器与第一路由器、第二路由器进行消息传递时,采用IQ消息机制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310256691.7A CN103354558B (zh) | 2013-06-26 | 2013-06-26 | 一种基于xmpp服务器的打洞方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310256691.7A CN103354558B (zh) | 2013-06-26 | 2013-06-26 | 一种基于xmpp服务器的打洞方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103354558A CN103354558A (zh) | 2013-10-16 |
CN103354558B true CN103354558B (zh) | 2016-03-16 |
Family
ID=49310864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310256691.7A Active CN103354558B (zh) | 2013-06-26 | 2013-06-26 | 一种基于xmpp服务器的打洞方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103354558B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104754384A (zh) * | 2015-04-02 | 2015-07-01 | 乐视致新电子科技(天津)有限公司 | 基于智能路由器播放视频的方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101860536A (zh) * | 2010-05-31 | 2010-10-13 | 北京邮电大学 | 一种基于sip软终端的私网穿越系统和方法 |
CN102932235A (zh) * | 2012-10-09 | 2013-02-13 | 曙光信息产业(北京)有限公司 | 云计算环境下的即时通信方法和服务器系统 |
-
2013
- 2013-06-26 CN CN201310256691.7A patent/CN103354558B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101860536A (zh) * | 2010-05-31 | 2010-10-13 | 北京邮电大学 | 一种基于sip软终端的私网穿越系统和方法 |
CN102932235A (zh) * | 2012-10-09 | 2013-02-13 | 曙光信息产业(北京)有限公司 | 云计算环境下的即时通信方法和服务器系统 |
Non-Patent Citations (3)
Title |
---|
Web模式下基于XMPP的即时通信系统的设计与实现;王璐;《中国优秀硕士学位论文全文数据库 信息科技辑》;20110315;第2011年卷(第3期);I138-476 * |
一种利用TURN穿越对称型NAT方案的设计与实现;闵江;《中国优秀硕士学位论文全文数据库 信息科技辑》;20100515;第2010年卷(第5期);I139-61 * |
李鸿彬;杨雪华;雷为民.TURN服务器原型系统的设计与实现.《计算机应用》.2005,第25卷(第7期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN103354558A (zh) | 2013-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2833597B1 (en) | Apparatus and method for communications involving a legacy device | |
CN105579864B (zh) | 用于精细定时测量的装置、方法和机器可读介质 | |
CN101170745B (zh) | 基于蓝牙的即时通讯方法、服务器、系统和终端 | |
CN101883056B (zh) | 基于udt和tcp中转实现nat穿越的方法 | |
RU2013122949A (ru) | Улучшенный способ, точка доступа, сервер и система для автоматического удаленного доступа к сетям стандарта ieee 802.11 | |
CN103688516B (zh) | 提供公共可达性的方法和有关系统与装置 | |
TW200826548A (en) | Discovery method for network devices | |
CN102845123A (zh) | 虚拟私云的连接方法及隧道代理服务器 | |
CN101807945A (zh) | 无线数据传输系统和采用该系统的数据传输方法 | |
CN101136929B (zh) | 因特网小型计算机系统接口数据传输方法及设备 | |
CN101895590A (zh) | 基于udt实现nat穿越的系统和方法 | |
US20140304419A1 (en) | System and terminal for p2p connection in mobile environment and method for p2p connection using the same | |
CN108306986B (zh) | 多类型媒体数据网络地址转换穿越方法、终端及系统 | |
CN103297324A (zh) | 一种网络数据即时传输中的局域网定位方法 | |
CN103209108A (zh) | 一种基于dvpn的路由生成方法和设备 | |
WO2019011076A1 (zh) | 一种数据处理方法、装置、设备及计算机可读存储介质 | |
WO2015090225A1 (zh) | 基于Linux下的自适应组件间通信方法 | |
EP3873038A3 (en) | Communication between private networks | |
WO2016101510A1 (zh) | 获取nat信息的方法及bras设备 | |
CN103685007A (zh) | 一种边缘设备报文转发时的mac学习方法及边缘设备 | |
CN103354558B (zh) | 一种基于xmpp服务器的打洞方法 | |
WO2015070763A1 (zh) | X2接口的自建立方法及装置 | |
CN102420858B (zh) | 一种ftp模式配置方法、数据传输方法及设备 | |
CN103647693A (zh) | 基于虚拟网络实现gnss接收机远程数据传输的系统及方法 | |
GB0420718D0 (en) | Method for establishing a communications link between a mobile station and a client side |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210525 Address after: No. 6, Jiuhua Road, khuchuang Park, Mianyang, Sichuan Patentee after: Sichuan Jiuzhou Investment Holding Group Co.,Ltd. Address before: 621000 No.6, Jiuhua Road, Mianyang City, Sichuan Province Patentee before: SICHUAN JIUZHOU ELECTRIC GROUP Co.,Ltd. |