一种UDP连接和TCP连接相互转化的方法、系统及中转服务器技术方案

技术编号:4246402 阅读:1799 留言:1更新日期:2012-04-11 18:40
本发明专利技术公开了一种UDP连接和TCP连接相互转化的方法,该方法包括:UDP终端向中转服务器发送建立TCP连接的请求;中转服务器为所述UDP终端分配TCP连接,并建立用于对外通讯的UDP连接;所述UDP终端通过所述TCP连接将数据发送到中转服务器;中转服务器通过所述用于对外通讯的UDP连接,将数据发送到目的端。本发明专利技术还公开了一种UDP连接和TCP连接相互转化的系统及中转服务器。通过本发明专利技术实施例,使得在严格限制的防火墙面前,支持UDP连接的客户端或服务器通过中转服务器就可以实现与外网进行通讯,不需要对客户端或服务器进行大的改造。另外,本发明专利技术实施例对数据进行了流量控制,提高了系统的性能。

【技术实现步骤摘要】

本专利技术涉及通信
,特别是涉及一种UDP连接和TCP连接相互转化 的方法。
技术介绍
用户数据净艮协议(User Datagram Protocol, UDP )是开放式系统互耳关(Open System Interconnect, OSI )参考模型中一种无连接的传输层协议,提供面向 事务的简单不可靠的信息传送服务。与传输控制协议(Transmission Control Protocol, TCP)相比,具有传输速度快、系统开销小等优点,它适用于不需 要TCP可靠机制的情形,服务于很多知名应用层协议,如简单网络管理协议 (Simple Net Management Protocol, S丽P )、 域名系统(Domain Name System, DNS)及简单文件传输系统(Trivial File Transfer Protocol, TFTP )。通常防火墙设置为只许转发来自内部接口的UDP包,来自外部接口的UDP 包则不转发,甚至有一些严格限制的防火墙设置为只有超文本传输协议 (Hypertext Transfer Protocol, HTTP)才能访问外网,使得使用UDP通讯 的软件在这样的防火墙面前将无法登录。现在的问题是,比如说,DNS名称解 析要求应用UDP,如果提供DNS服务,至少要容许一些内部要求穿越防火墙; 还有互联网中继聊天(Internet Relay Chat, IRC)这样的客户程序也应用 UDP,如果要让用户应用它,就同样要允许他们的UDP数据包进入网络。现有技术中解决这个问题的方法是设置HTTP代理,用TCP连接外网的方 式连接到对应的TCP服务器上,也就是使服务器端和客户端软件支持TCP连接 方式登录。现有技术虽然能够解决这个问题,但由于客户端和服务器支持UDP连接的 同时还要支持TCP连接,因此增加了服务器端和客户端的复杂度。
技术实现思路
本专利技术所要解决的技术问题是提供一种UDP连接和TCP连接相互转化的方 法,以解决现有技术中,需要支持UDP连接的客户端和服务器同时支持TCP连接来穿透严格限制的防火墙的问题。为解决上述技术问题,根据本专利技术提供的具体实施例,本专利技术公开了以下技术方案一种UDP连接和TCP连接相互转化的方法,包括 UDP终端向中转服务器发送建立TCP连接的请求;中转服务器为所述UDP终端分配TCP连接,并建立用于对外通讯的UDP连接;所述UDP终端通过所述TCP连接将数据发送到中转服务器; 中转服务器通过所述用于对外通讯的UDP连接,将数据发送到目的端。 其中,所述中转服务器建立用于对外通讯的UDP连接之后,还包括 将所述UDP连接的IP地址和端口发送到所述UDP终端; 所述UDP终端接收到所述IP地址和端口之后,建立用于本地UDP通讯的 UDP连接。其中,还包括中转服务器通过所述用于对外通讯的UDP连接,接收目的端发送的数据; 确定所述用于对外通讯的UDP连接对应的TCP连接,并通过所述TCP连接 将所述数据发送给所述TCP连接对应的UDP终端;据发送给上层调用。其中,所述UDP终端通过所述TCP连接向所述中转服务器发送数据之前, 还包括所述UDP终端判断数据流量是否可以发送,如果是,所述UDP终端通过所 述TCP连接向中转服务器发送数据,并记录发送的速度;如果否,退出。 其中,所述判断数据流量是否可以发送的具体过程包括 所述UDP终端创建发送队列,并创建发送线程;将所述数据放入发送队列,判断当前发送队列的长度是否超过预先设定的 长度,如果否,所述发送线程通过所述TCP连接向所述中转服务器发送数据, 如果是,退出。其中,所述UDP终端在所有数据发送完毕之后,还包括结束所述发送线程,销毁所述发送队列。终端之前,还包括判断数据流量是否可以发送,如果是,通过TCP连接将数据发送给所述 TCP连接相对应的UDP终端,并记录发送的速度;如果否,退出。其中,所述判断数据流量是否可以发送的具体过程包括中转服务器创建发送队列,并创建发送线程,将所述数据放入发送队列,判断当前发送队列的长度是否超过预先设定的 长度,如果否,所述发送线程通过TCP连接将数据发送给所述TCP连接相对应 的UDP终端,如果是,退出。其中,中转服务器在所有数据发送完毕之后,还包括结束所述发送线程,销毁所述发送队列。一种UDP连接和TCP连接相互转化的系统,包括终端装置和中转服务器, 其中终端装置,用于向中转服务器发送建立TCP连接的请求,并利用所述中转 服务器分配的TCP连接将数据发送到中转服务器;中转服务器,用于为所述UDP终端分配TCP连接,建立用于对外通讯的 UDP连接,并利用所述用于对外通讯的UDP端口将数据发送到目的端。其中,所述中转服务器还用于将用于对外通讯的UDP连接的IP地址和端口发 送到终端装置;所述终端装置还用于在接收到所述UDP连接的IP地址和端口后,建立 用于本地通ifl的UDP连才妄。 其中,所述中转服务器还用于通过所述用于对外通讯的UDP连接,接收目的端 发送的数据,确定与所述UDP连接对应的TCP连接,并通过该TCP连接将所述 凄t据发送给所述TCP连接对应的终端装置;所述终端装置还用于通过与所述TCP连4妄对应的用于本地通讯的UDP连 接,将数据发送给上层调用。其中,所述终端装置还用于 创建发送队列及发送线程;将所述数据放入所述发送队列,并判断当前发送队列的长度是否超过预先 设定的长度,如果否,所述发送线程通过所述TCP连接向所述中转服务器发送 数据,如果是,退出;判断所述TCP连接返回是否成功,如果是,记录所述发送的速度;如果否, 保留所述数据等待下次发送;在所有数据发送完毕之后,结束所述线程,销毁所述发送队列。其中,所述中转服务器还用于创建发送队列及发送线程;将所述数据放入所述发送队列,并判断当前发送队列的长度是否超过预先 设定的长度,如果否,所述发送线程通过所述TCP连接向所述终端装置发送所 述数据,如果是,退出;判断所述TCP连接返回是否成功,如果是,记录所述发送的速度;如果否, 保留所述数据等待下次发送;在所有数据发送完毕之后,结束所述发送线程,销毁所述发送队列。一种实现UDP连接和TCP连接相互转化的中转服务器,包括TCP连接分配单元,用于为终端装置分配TCP连接;UDP连接建立单元,用于建立用于对外通讯的UDP连接;TCP数据接收单元,用于接收所述终端装置利用所述TCP连接发送来的数据;UDP数据发送单元,用于利用所述用于对外通讯的UDP端口将所述凄t据发 送到目的端。其中,还包括UDP数据接收单元,用于通过所述用于对外通讯的UDP连接,接收所述目的端发送的数据;对应关系确定单元,用于确定与所述UDP连接对应的TCP连接;TCP数据发送单元,用于通过所述TCP连接将所述数据发送给所述TCP连接对应的终端装置。其中,还包括流量控制单元,用于所述TCP数据发送单元发送数据之前,判断数据流量 是否可以发送,如果是,则触发所述TCP数据发送单元;如果否,退出。 根据本专利技术提供的具体实施例,本专利技术公开了以下技术效果首先,本专利技术实施例通过UDP连接与TCP连接的相互转化来适应复杂的网 络环境,使得在严格限制的防火墙面前,支持UDP连接的客本文档来自技高网
...

【技术保护点】
一种UDP连接和TCP连接相互转化的方法,其特征在于,包括: UDP终端向中转服务器发送建立TCP连接的请求; 中转服务器为所述UDP终端分配TCP连接,并建立用于对外通讯的UDP连接; 所述UDP终端通过所述TCP连接将 数据发送到中转服务器; 中转服务器通过所述用于对外通讯的UDP连接,将数据发送到目的端。

【技术特征摘要】
1、一种UDP连接和TCP连接相互转化的方法,其特征在于,包括UDP终端向中转服务器发送建立TCP连接的请求;中转服务器为所述UDP终端分配TCP连接,并建立用于对外通讯的UDP连接;所述UDP终端通过所述TCP连接将数据发送到中转服务器;中转服务器通过所述用于对外通讯的UDP连接,将数据发送到目的端。2、 根据权利要求1所述的方法,其特征在于,所述中转服务器建立用于 对外通讯的UDP连接之后,还包括将所述UDP连接的IP地址和端口发送到所述UDP终端; 所述UDP终端4^收到所述IP地址和端口之后,建立用于本地UDP通讯的 UDP连接。3、 根据权利要求2所述的方法,其特征在于,还包括 中转服务器通过所述用于对外通讯的UDP连接,接收目的端发送的数据; 确定所述用于对外通讯的UDP连接对应的TCP连接,并通过所述TCP连接将所述数据发送给所述TCP连4妄对应的UDP终端;所述UDP终端通过与所述TCP连4妄对应的用于本地通讯的UDP连4妄,将H 据发送给上层调用。4、 根据权利要求1所述的方法,其特征在于,所述UDP终端通过所述TCP 连接向所述中转服务器发送数据之前,还包括所述UDP终端判断数据流量是否可以发送,如果是,所述UDP终端通过所 述TCP连接向中转服务器发送数据,并记录发送的速度;如果否,退出。5、 根据权利要求4所述的方法,其特征在于,所述判断数据流量是否可 以发送的具体过程包括所述UDP终端创建发送队列,并创建发送线程;将所述数据放入发送队列,判断当前发送队列的长度是否超过预先设定的 长度,如果否,所述发送线程通过所述TCP连接向所述中转服务器发送数据, 如果是,退出。6、 根据权利要求5所述的方法,其特征在于,所述UDP终端在所有数据发送完毕之后,还包括结束所述发送线程,销毁所述发送队列。7、 根据权利要求3所述的方法,其特征在于,中转服务器通过TCP连接 将数据发送给所述TCP连接相对应的UDP终端之前,还包括判断数据流量是否可以发送,如果是,通过TCP连接将数据发送给所述 TCP连接相对应的UDP终端,并记录发送的速度;如果否,退出。8、 根据权利要求7所述的方法,其特征在于,所述判断数据流量是否可 以发送的具体过程包括中转服务器创建发送队列,并创建发送线程,将所述数据放入发送队列,判断当前发送队列的长度是否超过预先设定的 长度,如果否,所述发送线程通过TCP连接将数据发送给所述TCP连接相对应 的UDP终端,如果是,退出。9、 根据权利要求8所述的方法,其特征在于,中转服务器在所有数据发 送完毕之后,还包括结束所述发送线程,销毁所述发送队列。10、 一种UDP连接和TCP连接相互转化的系统,其特征在于,包括终端装 置和中转服务器,其中终端装置,用于向中转服务器发送建立TCP连接的请求,并利用所...

【专利技术属性】
技术研发人员:张元达李征
申请(专利权)人:天津德智科技有限公司
类型:发明
国别省市:12[中国|天津]

网友询问留言 已有1条评论
  • 来自[广东省深圳市联通] 2014年06月07日 09:25
    你好,你们有现成的转换器吗?
    0
1