端对端的数据传输方法和系统的制作方法

文档序号:8499904阅读:452来源:国知局
端对端的数据传输方法和系统的制作方法
【技术领域】
[0001]本发明涉及一种即时通讯相关的数据传输方法和系统,具体涉及一种端对端的数据传输方法和系统。
【背景技术】
[0002]端对端(P2P,peer to peer)终端之间即时通信的数据通信,也称P2P tr第一终端vers第一终端1,p2p穿透,端对端通信双方可能处于各自的防火墙内,需要一种机制在建立双方的数据通道。
[0003]现有技术下,端对端的即时通信(IM)交换消息和数据的一般架构如图1所示,即时通信(頂)交换消息和数据的一般架构如下:
P2P通信的双方一般都处于各自的防火墙内,两个通信的主机通常不能直接相连,需要某种某种穿透的机制。对于文字消息等数据量小的消息传输,通信双方可以直接与即时通信服务器建立tcp连接,即时通信服务器作为一个中转的服务器。
[0004]对于实时音视频等数据量大的数据,tcp连接并不合适,一般是用UDP( UDP UserD第一终端t第一终端gr第一终端m Protocol)进行传输,需要辅助中转服务器(rel第一终端y server)。现在已经有一些比较完善的解决方法,比如rfc5766,Tr第一终端vers第一终端I Using Rel第一终端ys第一终端round N第一终端T (TURN)。
[0005]现有的TURN方式有以下几个缺点:
1.数据中转服务器端口占用大,对每一个通信的主机,需要分配一个UDP端口
2.整个协议定义复杂,中转服务器和即时通信服务器相互独立,需要在客户端用不同的协议去维护中转服务器与即时通信服务器之间的联系。
[0006]3.当任何一个数据通道的端口发生变化时,客户端需要配合协议重新建立整个数据通道
现有的TURN穿透适用于大数据量的传输,比如实时音视频的传输。对于小量或者中等数据规模的应用显得过于复杂,并不合适,比如I秒几个第二终端yte的传感器数据传输。
[0007]因此,现有技术存在缺陷,有待于进一步改进和发展。

【发明内容】

[0008]本发明的目的是提供一种端对端的数据传输方法和系统,使系统更简单可行,以更好地支持小数据量或者中等数据量的传输。
[0009]为了实现上述目的,本发明采用如下技术方案:
端对端的数据传输方法,适用于位于第一终端和第二终端之间进行即时通信,所述第一终端和第二终端之间设置即时通信服务器和中转服务器,其中,
第一通讯终端和第二通讯终端进行即时通讯服务器的通讯认证通;讯认证通过后,所述第二终端通过即时通信服务器向第一终端发送接收消息,即时通信服务器在接收到第二终端的接收消息时,向数据中转服务器发送建立数据会话的请求,中转服务器将建立数据会话的请求中的第一终端和第二终端的标识信息存储到会话映射表;
所述中转服务器将数据输入UDP端口和数据输出UDP端口发送给即时通讯服务器,由即时通讯服务器发送给所述第一终端和第二终端;
第一终端和第二终端首先通过中转服务器的会话建立数据通道,数据通道建立后,中转服务器接收到数据后,通过查询会话映射表,确定当前发送的目的端口,最终实现数据交换。
[0010]所述的端对端的数据传输方法,其中,第一通讯终端和第二通讯终端进行即时通讯服务器的通讯认证具体包括:
第一通讯终端通过及时通讯服务器向第二通讯发送数据交换请求,第二终端通过即时通信服务器向第一终端发送确认请求。
[0011]所述的端对端的数据传输方法,其中,第一终端和第二终端首先通过中转服务器的会话建立数据通道的步骤包括:
第一终端建立第一 UDP端口,第二终端建立第二 UDP端口,并通过各自的UDP端口向中转服务器已知的数据输入UDP端口发认证请求;
中转服务器得到第一终端和第二终端的第一 m)P端口和第二 UDP端口,将第一终端和第二终端的各自的m)P端口存储到会话映射表,并建立存储会话ID ;
所述中转服务器并将会话ID返回给第一终端和第二终端,所述第一终端和第二终端都得到会话ID后,数据通道建立完成。
[0012]所述的端对端的数据传输方法,其中,所述中转服务器通过查看会话映射表的第一终端和第二终端的标识信息或第一终端,第二终端的各自UDP端口信息,并将会话ID返回给所述第一终端和第二终端。
[0013]所述的端对端的数据传输方法,其中,当所述第一终端或第二终端任何一段端口有变化时,发送消息通知中转服务器,中转服务器更新会话映射表。
[0014]所述的端对端的数据传输方法,其中,所述会话映射表包括一个数据输入UDP端口和一个数据输出m)P端口。
[0015]所述的端对端的数据传输方法,其中,所述第一终端和第二终端的标识信息包括第一终端和第二终端的IP地址、MAC地址。
[0016]所述的端对端的数据传输方法,其中,所述即时通讯服务器将中转服务器的数据输入UDP端口信息和数据输出UDP端口信息添加到第一终端和第二终端之间的数据包内。
[0017]端对端的数据传输系统,用于第一终端和第二中终端之间的即时通讯,包括位第一终端和第二终端,所述第一终端和第二终端之间设置即时通信服务器和中转服务器,其特征在于,
所述中转服务器在设置会话映射表,所述会话映射表存储中转服务器的数据输入UDP端口和数据输出m)P端口,建立会话双方的标识信息列表,会话双方的UDP端口信息和会话ID ;
第一通讯终端和第二通讯终端进行即时通讯服务器的通讯认证通;讯认证通过后,所述第二终端通过即时通信服务器向第一终端发送接收消息,即时通信服务器在接收到第二终端的接收消息时,向数据中转服务器发送建立数据会话的请求,中转服务器将建立数据会话的请求中的第一终端和第二终端的标识信息存储到会话映射表; 所述中转服务器将数据输入UDP端口和数据输出UDP端口发送给即时通讯服务器,由即时通讯服务器发送给所述第一终端和第二终端;
第一终端和第二终端首先通过中转服务器的会话建立数据通道,中转服务器接收到数据后,通过查询会话映射表,确定当前发送的目的端口,最终实现数据交换。
[0018]所述的端对端的数据传输系统,其中,所述会话映射表包括一个数据输入UDP端口和一个数据输出m)P端口。
[0019]本发明提供本发明端对端的数据传输方法和系统,中转服务器在应用层维护一种会话映射表,以确定发送的数据最终被路由的目的地址,所有数据通道使用中转服务器相同的数据输入m)P端口和数据输出UDP端口,不受不同的UDP端口限制,不会占用UDP端口的资源,最多只需要一个数据输入UDP端口和一个数据输出UDP端口即可。本发明也可以根据实际情况使用多组数据输入UDP端口和数据输出UDP端口,但是UDP端口的资源占用明显减少,节约了资源。
【附图说明】
[0020]图1为现有端对端数据传输结构示意图;
图2为本发明端对端数据传输方法的流程图。
【具体实施方式】
[0021]下面结合优选的实施例对本发明做进一步详细说明。
[0022]本发明提供的端对端的数据传输方法,适用于位于第一防火墙内的第一终端,和第二防火墙内的第二终端之间进行即时通信,所述第一终端和第二终端通过即时通信服务器建立tcp连接进行文字消息等数据量小的消息传输,所述第一终端和第二终端通过中转服务器使用UDP协议进行实时音视频等数据量大的数据的传输。
[0023]本发明在所述中转服务器在应用层维护一种会话映射表,所述会话映射表存储中转服务器的一个数据输入UDP端口和一个数据输出UDP端口,建立会话双方的标识信息列表,会话双方的UDP端口信息和会话ID,所述第一终端和第二终端之间的数据传输方法包括如下步骤:
第一通讯终端和第二通讯终端进行即时通讯服务器的通讯认证,优选的第一通讯终端通过及时通讯服务器向第二通讯发送数据交换请求,第二终端通过即时通信服务器向第一终端发送确认请求。
[0024]第一通讯终端和第二通讯终端进行即时通讯服务器的通讯认证通过后,第二终端通过即时通信服务器向第一终端发送接收消息,即时通信服务器在接收到第二终端的接收消息时,向数据中转服务器发送建立数据会话的请求,所述建立数据会话的请求包括第一终端和第二终端的标识信息,中转服务器初始化所述会话映射表,将第一终端和第二终端的标识信息存储到会话映射表。所述标识信息指明了数据传输的目的地。
[0025]所述中转服务器将数据输入UDP端口和数据输出UDP端口发送给即时通讯服务器,由即时通讯服务器发送给所述第一终端和第二终端。
[0026]所述即时通讯服务器可以将中转服务器的数据输入UDP端口和数据输出UDP端口添加到第一终端和第二终端之间的数据包内。所述第一终端和第二终端的标识信息包括第一终端和第二终端的IP地址、MAC地址等,这里不做限制。
[0027]所述第一终端和第二终端通过向即时通信服务器发消息得到中转服务器的地址,包括中转服务器将数据输入Μ)Ρ端口和数据输出UDP端口。
[0028]第一终端和第二终端需要通过中转服务器进行数据传输时,第一终端和第二终端首先通过中转服务器的会话建立数据通道,优选的第一终端,第二终端建立各自的UDP端口用于数据交换,例如第一终端建立第一 m)P端口,第二终端建立第二 UDP端口,并通过各自的UDP端口向中转服务器已知的数据输入UDP端口发认证请求。中转服务器得到第一终端和第二终端的第一 UDP端口和第二 UDP端口,将第一终端和第二终端的各自的UDP端口存储到会话映射表,并建立存储会话ID。
[0029]所述中转服务器通过查看会话映射表的第一终端和第二终端的标识信息或第一终端,第二终端的各自UDP端口信息,并将会话ID返回给第一终端和第二终端;
所述第一终端和第二终端都得到会话ID后,
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1