一种终端建立连接的方法、终端和服务器的制造方法

文档序号:9451576阅读:227来源:国知局
一种终端建立连接的方法、终端和服务器的制造方法
【技术领域】
[0001]本发明涉及流媒体技术领域,尤其涉及一种终端建立连接的方法、终端和服务器。
【背景技术】
[0002]媒体流是指视频、声音等数据以实时传输协议为承载,并以连续流的形式从源端向目的端传输,在目的端接收到一定缓存的数据后就可以进行播放的多媒体应用。随着视频点播的广泛应用,传统的媒体流传输系统暴露出很多的问题,用户的点播对服务器的冲击过大,容易引人单点故障,于是就引入了点对点(Peer to Peer, P2P)传输技术;所谓P2P技术就是指网络用户之间直接传递数据,进行数据传输的各个节点是对等的。目前P2P技术的应用非常广泛,其中即时通信技术就是P2P技术的典型代表,通过P2P技术,即时通信的双方可以直接进行文字、语音或视频的数据传输。
[0003]一般来说,当两个终端处于同一网络中,第一终端需要访问第二终端时,只需要和所述第二终端建立起TCP连接,即可实现与所述第二终端之间的通信;但是当所述第二终端处于局域网中,或者所述第二终端与所述第一终端分为处于不同的局域网中时,第一终端也不能与所述第二终端直接建立TCP连接。目前,当只有所述第一终端或所述第二终端处于局域网中时,第一终端就不能与所述第二终端直接建立TCP连接,处于局域网中的终端可以做即插即用(Universal Plug and Play,缩写为upnp)端口映射,从而使得处于外网的终端可以访问处于局域网的终端;当所述第二终端与所述第一终端分为处于不同的局域网中时,第一终端也不能与所述第二终端直接建立TCP连接,该情况下可采用网络地址转换(NetworkAdress Translat1n,缩写为NAT)的方式进行通信,NAT穿透要求双方互相告知公网地址并做一定的试探。
[0004]但是,由于NAT的限制,在某些情况下NAT无法穿透。例如,NAT分为四种类型:完全圆锥型(full cone)、IP限制显示圆锥形型(IPrestricted cone)、端口显示圆锥型(portrestricted cone)和对称型(symmetric)。Cone 和 Symmetric 的区别是:处于 NAT 内的终端以某个固定地址,向外网两个不同的地址发UDP包,若这两个包在NAT上形成两个不同的公网映射地址,那么这个NAT就是Symmetric类型的;否则,这个NAT是Cone类型的。同时,NAT的行为决定了是否能穿透:cone与cone之间可以穿透,full cone与symmetric之间可以穿透,其它情况一般不能穿透。大多数Symmetric类型的NAT,映射的IP不变,而分配的映射端口每次+1 ;假设双方L和R,获得的映射端口为Pa和Pb。加入端口猜测的地址,连通性检查(ICE)流程应为:
[0005]L 检查 R 的 NAT 端 P:Pb, Pb+1,......,Pb+M ;
[0006]R 检查 L 的 NAT 端 P:Pa, Pa+1,......,Pa+N ;
[0007]L发起连通性检测后,获取的映射端口为Pa,会形成以下洞:
[0008]Pa+XO 到 Pb,Pa+Xl 到 Pb+1,Pa+X2 到 Pb+2,…,Pa+XM 到 Pb+M。
[0009]但是,R发起连通性检测后,获取的映射端口为Pb,形成的反向的洞为:
[0010]Pb+YO 到 Pa,Pb+Yl 到 Pa+1,Pb+Y2 到 Pa+2,…,Pb+YN 到 Pa+N。
[0011]只有两边的洞对上,通道才能打通,连通性检测才能成功,也就是必须满足“洞对应条件”,即:存在m和η (其中,m为小于或等于M的整数,η为小于或等于N的整数),使得Xm = η,且Yn = m ;由于检测过程中无法控制NAT的映射行为,因此上述条件很难满足;根据理论分析,大部分对称NAT每次建立新映射,端口加1,因此两边的洞可以表示为:
[0012]Pa+Ι 到 Pb, Pa+2 到 Pb+1, Pa+3 到 Pb+2,…,Pa+ (Μ+1)到 Pb+M。
[0013]Pb+1 到 Pa, Pb+2 到 Pa+1, Pb+3 到 Pa+2,…,Pb+(N+1)到 Pa+N。
[0014]在此情况下,根本不可能满足“洞对应条件”,大大降低了第一终端与第二终端之间通过NAT穿透的方式建立连接的几率。

【发明内容】

[0015]本发明实施例提供了一种终端建立连接的方法、终端和服务器,用于解决现有技术中当第二终端处于局域网中、或者第二终端与第一终端分别位于不同的局域网中时,第二终端与第一终端之间无法进行通信的问题。
[0016]本发明实施例提供了一种终端建立连接的方法,所述方法包括:
[0017]第一终端生成包含第二终端的标识信息的连接请求并发送给服务器,令服务器根据该第二终端的标识信息将所述连接请求发送给第二终端;
[0018]所述第一终端接收服务器转发的由所述第二终端根据所述连接请求生成的、包含所述第二终端的候选地址的连接请求回复消息;其中,所述第二终端的候选地址包含所述第二终端的upnp地址和呈无序排列的端口猜测地址;
[0019]第一终端根据所述第二终端的候选地址进行连通性检测,并且当连通性检测成功时与所述第二终端建立连接。
[0020]本发明实施例提供的终端建立连接的方法中,通过第一终端生成包含第二终端的标识信息的连接请求并发送给服务器,令服务器根据该第二终端的标识信息将所述连接请求发送给第二终端;并通过所述第一终端接收服务器转发的由所述第二终端根据所述连接请求生成的、包含所述第二终端的候选地址的连接请求回复消息;其中,所述第二终端的候选地址包括所述第二终端的upnp地址和呈无序排列的端口猜测地址;第一终端根据所述第二终端的候选地址进行连通性检测,由于所述第二终端的候选地址中包括了 upnp地址,使得当其中一个终端处于局域网中时可以通过upnp端口映射的方式终端建立,并且,由于述第二终端的候选地址中包括了呈无序排列的端口猜测地址,由于所述端口猜测地址时无序的,这就排除了因映射端口每次加I所导致的两侧通道不能导通的问题,使得连通性检测成功的几率增大,可有效解决现有技术中因第二终端处于局域网中、或者第二终端与第一终端分别位于不同的局域网中所导致的第二终端与第一终端之间无法进行P2P通信的问题。
[0021]较佳的,所述连接请求回复消息包含所述第二终端的标识信息;所述第二终端的候选地址还包含所述第二终端的本地地址和公网地址。
[0022]当所述连接请求回复消息中包含所述第二终端的标识信息时,有利于所述第一终端根据所述第二终端的标识信息判断所述第二终端的身份。当所述第二终端的候选地址还包含所述第二终端的本地地址和公网地址时,所述第一终端可以先根据所述第二终端的本地地址和公网地址进行连通性检测,在根据所述第二终端的本地地址和公网地址进行连通性检测失败的情况下,再根据所述第二终端的upnp地址或端口猜测地址进行连通性检测,有利于提高连通性检测的成功率。
[0023]较佳的,所述连接请求包含所述第一终端的标识信息和所述第一终端的候选地址;其中,所述第一终端的候选地址包含所述第一终端的本地地址、公网地址、upnp地址和端口猜测地址,令接收该连接请求的第二终端根据所述第一终端的候选地址和第一终端的标识信息进行连通性检测。
[0024]当所述连接请求包含所述第一终端的标识信息和所述第一终端的候选地址时,有利于所述第二终端根据所述第一终端的标识信息判断第一终端的身份;同时,第二终端可以根据所述第一终端的候选地址进行连通性检测,并且由于所述第一终端的候选地址包含所述第一终端的本地地址、公网地址、upnp地址和端口猜测地址,连通性检测成功的几率变大,有利于解决现有技术中因第二终端处于局域网中、或者第二终端与第一终端分别位于不同的局域网中所导致的第二终端与第一终端之间无法进行P2P通信的问题。
[0025]较佳的,所述第一终端根据所述第二终端的候选地址进行连通性检测,具体包括:
[0026]第一终端根据所述第二终端的候选地址向第二终端发送包含所述第一终端的标识信息的第一连通性检测信令,令所述第二终端根据所述第一连通性检测信令中的第一终端的标识信息判断发送连接请求的第一终端与发送第一连通性检测信令的第一终端是否一致,若一致,所述第二终端生成包含所述第二终端的标识信息的第一连通性检测信令回复消息并发送给所述第一终端;
[0027]第一终端接收所述第二终端发送的第一连通性检测信令回复消息,根据所述第一连通性检测信令回复消息中的第二终端的标识信息判断发送所述连接请求回复消息的第二终端与发送所述第一连通性检测信令回复消息的第二终端是否一致,若一致,所述第一终端确定与所述第二终端建立连接。
[0028]在接收到所述第二终端发送的连接请求回复消息后,所述第一终端生成包含所述第一终端的标识信息的第一连通性检测信令,并根据所述第二终端的候选地址向所述第二终端发送所述第一连通性检测信令,令所述第二终端根据所述第一连通性检测信令中的第一终端的标识信息判断发送连接请求的第一终端与发送第一连通性检测信令的第一终端是否一致,若一致,则认定发送所述第一连通性检测信令的第一终端为合法终端,所述第二终端生成包括所述第二终端的标识信息的第一连通性检测信令回复消息并发送给所述第一终端;第一终端根据所述第一连通性检测信令回复消息中的第二终端的标识信息判断发送所述连接请求回复消息的第二终端与发送所述第一连通性检测信令回复消息的第二终端是否一致,若一致,则认定所述第二终端为合法终端,可以根据所述第二终端的候选地址与之建立连接,在所述第一终端与第二终端之间实现通信传输。
[0029]本发明实施例提供了一种终端建立连接的方法,所述方法包括:
[0030]第二终端接收服务器发送的包含所述第二终端的标识信息的连接请求;其中,所述连接请求是由第一终端生成并发送给服务器、令服务器根据所述第二终端的标识信息转发给所述第二终端的;
[0031]第二终端根据所述连接请求生成包含所述第二终端的候选地址的连接请求回复消息;其中,所述第二终端的候选地址包含所述第二终端的upnp地址和呈无序排列的端口猜测地址;
[0032]所述第二终端将所述连接请求回复消息发送服务器,令服务器将所述连接请求回复消息发送给所述第一终端,所述第一终端根据所述第二终端的候选地址进行连通性检测,并且当连通性检测成功时与所述第二终端建立连接。
[0033]本发明实施例提供的终端建立连接的方法中,通过第一终端生成包含第二终端的标识信息的连接请求并发送给服务器,令服务器根据该第二终端的标识信息将所述连接请求发送给第二终端,使得接收所述连接请求的第二终端根据所述连接请求生成包含所述第二终端的候选地址的连接请求回复消息;其中,所述第二终端的候选地址包括所述第二终端的upnp地址和呈无序排列的端口猜测地址;并且,所述第二终端将所述连接请求回复消息发送给服务器,并令服务器转发给第一终端,使得第一终端根据所述第二终端的候选地址进行连通性检测;由于所述第二终端的候选地址中包括了 upnp地址,使得当其中一个终端处于局域网中时可以通过upnp端口映射的方式终端建立,并且,由于述第二终端的候选地址中包括了呈无序排列的端口猜测地址,由于所述端口猜测地址时无序的,这就排除了因映射端口每次加I所导致的两侧通道不能导通的问题,使得连通性检测成功的几率增大,可有效解决现有技术中因第二终端处于局域网中、或者第二终端与第一终端分别位于不同的局域网中所导致的第二终端与第一终端之间无法进行通信的问题。
[0034]较佳的,所述连接请求回复消息包含所述第二终端的标识信息;所述第二终端的候选地址还包含所述第二终端的本地地址和公网地址。
[0035]当所述连接请求回复消息中包含所述第二终端的标识信息时,有利于所述第一终端根据所述第二终端的标识信息判断所述第二终端的身份。当所述第二终端的候选地址还包含所述第二终端的本地地址和公网地址时,所述第一终端可以先根据所述第二终端的本地地址和公网地址进行连通性检测,在根据所述第二终端的本地地址和公网地址进行连通性检测失败的情况下,再根据所述第二终端的upnp地址或端口猜测地址进行连通性检测,有利于提高连通性检测的成功率。
[0036]较佳的,所述连接请求包含所述第一终端的标识信息和所述第一终端的候选地址;其中,所述第一终端的候选地址包含所述第一终端的本地地址、公网地址、upnp地址和端口猜测地址,令接收该连接请求的第二终端根据所述第一终端的候选地址进行连通性检测。
[0037]当所述连接请求包含所述第一终端的标识信息和所述第一终端的候选地址时,有利于所述第二终端根据所述第一终端的标识信息判断第一终端的身份;同时,第二终端可以根据所述第一终端的候选地址进行连通性检测,并且由于所述第一终端的候选地址包含所述第一终端的本地地址、公网地址、upnp地址和端口猜测地址,连通性检测成功的几率变大,有利于解决现有技术中因第二终端处于局域网中、或者第二终端与第一终端分别位于不同的局域网中所导致的第二终端与第一终端之间无法进行通信的问题。
[0038]较佳的,在与第一终端建立连接之前,所述方法还包括:
[0039]第二终端根据所述第一终端的候选地址向第一终端发送包含所述第二终端的标识信息的第二连通性检测信令,令所述第一终端根据所述第二连通性检测信令中的第二终端的标识信息判断发送连接请求回复消息的第二终端与发送第二连通性检测信令的第二终端是否一致,若一致,所述第一终端生成包含所述第一终端的标识信息的第二连通性检测信令回复消息并发送给所述第二终端;
[0040]第二终端接收所述第一终端发送的第二连通性检测信令回复消息,根据所述第二连通性检测信令回复消息中的第一终端的标识信息判断发送所述连接请求的第一终端与发送所述第二连通性检测信令回复消息的第一终端是否一致,若一致,所述第二终端确定与所述第一终端建立连接。
[0041]所述第二终端在向服务器发送连接请求回复消息后,生成包含所述第二终端的标识信息的第二连通性检测信令,并根据所述第一终端的候选地址发送给第一终端,令所述第一终端根据所述第二连通性检测信令中的第二终端的标识信息判断发送连接请求回复消息的第二终端与发送第二连通性检测信令的第二终端是否一致,若一致,则认定发送所述第二连通性检测信令的第二终端为合法终端,所述第一终端生成包含所述第一终端的标识信息的第二连通性检测信令回复消息并发送给所述第二终端;第二终端根据所述第二连通性检测信令回复消息中的第一终端的标识信息判断发送所述连接请求的第一终端与发送所述第二连通性检测信令回复消息的第一终端是否一致,若一致,则认定所述第一终端为合法终端,可以根据所述第一终端的候选地址与所述第二终端之建立连接,在所述第一终端与第二终端之间实现通信传输。
[0042]本发明实施例提供了一种终端建立连接的方法,所述方法包括:
[0043]服务器接收第一终端发送的包含第二终端的标识信息的连接请求;
[0044]服务器根据该第二终端的标识信息将所述连接请求发送给所述第二终端;
[0045]服务器接收第二终端发送的连接请求回复消息,所述连接请求回复消息是由所述第二终端根据所述连接请求生成的、包含了所述第二终端的候选地址;其中,所述第二终端的候选地址包含所述第二终端的upnp地址和
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1