首页> 中国专利> 一种UDP连接和TCP连接相互转化的方法、系统及中转服务器

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

摘要

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

著录项

  • 公开/公告号CN101547134A

    专利类型发明专利

  • 公开/公告日2009-09-30

    原文格式PDF

  • 申请/专利权人 天津德智科技有限公司;

    申请/专利号CN200810084240.9

  • 发明设计人 张元达;李征;

    申请日2008-03-27

  • 分类号H04L12/56;H04L29/08;H04L29/06;

  • 代理机构北京集佳知识产权代理有限公司;

  • 代理人逯长明

  • 地址 300384 天津市新技术产业园区华苑产业区华天道8号海泰信息广场c-803

  • 入库时间 2023-12-17 22:40:15

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-03-17

    未缴年费专利权终止 IPC(主分类):H04L12/56 授权公告日:20111228 终止日期:20190327 申请日:20080327

    专利权的终止

  • 2011-12-28

    授权

    授权

  • 2011-08-10

    专利申请权的转移 IPC(主分类):H04L12/56 变更前: 变更后: 登记生效日:20110701 申请日:20080327

    专利申请权、专利权的转移

  • 2010-02-03

    实质审查的生效

    实质审查的生效

  • 2009-09-30

    公开

    公开

说明书

技术领域

本发明涉及通信技术领域,特别是涉及一种UDP连接和TCP连接相互转化的方法。

背景技术

用户数据报协议(User Datagram Protocol,UDP)是开放式系统互联(OpenSystem Interconnect,OSI)参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠的信息传送服务。与传输控制协议(Transmission ControlProtocol,TCP)相比,具有传输速度快、系统开销小等优点,它适用于不需要TCP可靠机制的情形,服务于很多知名应用层协议,如简单网络管理协议(Simple Net Management Protocol,SNMP)、域名系统(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终端判断数据流量是否可以发送,如果是,所述UDP终端通过所述TCP连接向中转服务器发送数据,并记录发送的速度;如果否,退出。

其中,所述判断数据流量是否可以发送的具体过程包括:

所述UDP终端创建发送队列,并创建发送线程;

将所述数据放入发送队列,判断当前发送队列的长度是否超过预先设定的长度,如果否,所述发送线程通过所述TCP连接向所述中转服务器发送数据,如果是,退出。

其中,所述UDP终端在所有数据发送完毕之后,还包括:

结束所述发送线程,销毁所述发送队列。

其中,中转服务器通过TCP连接将数据发送给所述TCP连接相对应的UDP终端之前,还包括:

判断数据流量是否可以发送,如果是,通过TCP连接将数据发送给所述TCP连接相对应的UDP终端,并记录发送的速度;如果否,退出。

其中,所述判断数据流量是否可以发送的具体过程包括:

中转服务器创建发送队列,并创建发送线程,

将所述数据放入发送队列,判断当前发送队列的长度是否超过预先设定的长度,如果否,所述发送线程通过TCP连接将数据发送给所述TCP连接相对应的UDP终端,如果是,退出。

其中,中转服务器在所有数据发送完毕之后,还包括:

结束所述发送线程,销毁所述发送队列。

一种UDP连接和TCP连接相互转化的系统,包括终端装置和中转服务器,其中:

终端装置,用于向中转服务器发送建立TCP连接的请求,并利用所述中转服务器分配的TCP连接将数据发送到中转服务器;

中转服务器,用于为所述UDP终端分配TCP连接,建立用于对外通讯的UDP连接,并利用所述用于对外通讯的UDP端口将数据发送到目的端。

其中,

所述中转服务器还用于:将用于对外通讯的UDP连接的IP地址和端口发送到终端装置;

所述终端装置还用于:在接收到所述UDP连接的IP地址和端口后,建立用于本地通讯的UDP连接。

其中,

所述中转服务器还用于:通过所述用于对外通讯的UDP连接,接收目的端发送的数据,确定与所述UDP连接对应的TCP连接,并通过该TCP连接将所述数据发送给所述TCP连接对应的终端装置;

所述终端装置还用于:通过与所述TCP连接对应的用于本地通讯的UDP连接,将数据发送给上层调用。

其中,所述终端装置还用于:

创建发送队列及发送线程;

将所述数据放入所述发送队列,并判断当前发送队列的长度是否超过预先设定的长度,如果否,所述发送线程通过所述TCP连接向所述中转服务器发送数据,如果是,退出;

判断所述TCP连接返回是否成功,如果是,记录所述发送的速度;如果否,保留所述数据等待下次发送;

在所有数据发送完毕之后,结束所述线程,销毁所述发送队列。

其中,所述中转服务器还用于:

创建发送队列及发送线程;

将所述数据放入所述发送队列,并判断当前发送队列的长度是否超过预先设定的长度,如果否,所述发送线程通过所述TCP连接向所述终端装置发送所述数据,如果是,退出;

判断所述TCP连接返回是否成功,如果是,记录所述发送的速度;如果否,保留所述数据等待下次发送;

在所有数据发送完毕之后,结束所述发送线程,销毁所述发送队列。

一种实现UDP连接和TCP连接相互转化的中转服务器,包括:

TCP连接分配单元,用于为终端装置分配TCP连接;

UDP连接建立单元,用于建立用于对外通讯的UDP连接;

TCP数据接收单元,用于接收所述终端装置利用所述TCP连接发送来的数据;

UDP数据发送单元,用于利用所述用于对外通讯的UDP端口将所述数据发送到目的端。

其中,还包括:

UDP数据接收单元,用于通过所述用于对外通讯的UDP连接,接收所述目的端发送的数据;

对应关系确定单元,用于确定与所述UDP连接对应的TCP连接;

TCP数据发送单元,用于通过所述TCP连接将所述数据发送给所述TCP连接对应的终端装置。

其中,还包括:

流量控制单元,用于所述TCP数据发送单元发送数据之前,判断数据流量是否可以发送,如果是,则触发所述TCP数据发送单元;如果否,退出。

根据本发明提供的具体实施例,本发明公开了以下技术效果:

首先,本发明实施例通过UDP连接与TCP连接的相互转化来适应复杂的网络环境,使得在严格限制的防火墙面前,支持UDP连接的客户端或服务器通过中转服务器就可以实现与外网进行通讯,而且不需要对客户端或服务器进行大的改造。其次,本发明实施例对数据进行了流量控制,提高了系统的性能。

附图说明

图1是本发明实施例一提供的方法的流程图;

图2是本发明实施例二提供的方法的流程图;

图3是本发明实施例三提供的方法的流程图;

图4是本发明实施例提供的流量控制方法的流程图;

图5是本发明实施例提供的系统的示意图;

图6是本发明实施例提供的中转服务器的示意图;

图7是本发明实施例提供的另一中转服务器的示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

实施例一:参照图1,设UDP终端处于一个局域网中,UDP终端想要向公网上的用户发送数据,实现本发明实施例所提供的方法包括以下步骤:

S101:UDP终端中转服务器发送建立TCP连接的请求;

中转服务器创建接收TCP连接的监听服务,UDP终端接收上层调用后,向所述中转服务器发送建立TCP连接消息;

所述TCP连接用于实现所述UDP终端到所述中转服务器之间的连接,通过所述TCP连接可以进行所述UDP软件与所述中转服务器之间数据的转发;

S102:中转服务器为所述UDP终端分配TCP连接,并建立用于对外通讯的UDP连接;

S103:所述UDP终端通过所述TCP连接将数据发送到中转服务器;

这里,UDP终端是在得知中转服务器已经为其分配了TCP连接之后,利用该TCP连接将数据发送到中转服务器;

S104:中转服务器通过所述用于对外通讯的UDP连接,将数据发送到目的端。其中,所述目的端指所述UDP终端想要向其发送数据的处于网外的UDP终端。

通过以上各步骤便完成了UDP数据向目的端的转发,本发明实施例也能够实现从目的端接收数据,目的端通过接收中转服务器的数据,可以得知中转服务器建立的用于对外通讯的UDP连接的端口,此时目的端可以通过中转服务器向UDP终端返回数据,下面对从目的端接收数据的步骤进行详细地描述。

实施例二、参见图2,本发明实施例所提供的实现本发明实施例的方法包括以下步骤:

S201至S202与S101至S102相同;

S203:中转服务器将所述UDP连接的IP地址和端口发送到所述UDP终端;

S204:所述UDP终端接收到所述IP地址和端口之后,建立用于本地UDP通讯的UDP连接;

这里,所述UDP终端通过接收到的所述UDP连接的IP地址和端口,即可确定所述中转服务器已经建立为其建立了TCP连接;建立所述用于本地UDP通讯的UDP连接的目的是,将接收到远端发送来的数据通过所述用于本地UDP通讯的UDP连接的端口发送给上层调用;

S205至S206与S103至S104相同;

S207:中转服务器通过所述用于对外通讯的UDP连接,接收目的端发送的数据;

S208:确定所述用于对外通讯的UDP连接对应的TCP连接,并通过所述TCP连接将目的端发送的数据发送给所述TCP连接对应的UDP终端;

S209:所述UDP终端通过与所述TCP连接对应的用于本地通讯的UDP连接,将数据发送给上层调用。

上述实施例可以完成UDP数据的转发,但由于UDP是面向无连接的,而TCP是面向连接的,因此从UDP收到的数据包要用TCP发送时如果进行相应的流量控制,则可以使本发明实施例提供的方法表现出更好的性能,因此,在本发明的优选实施例中,可以包括流量控制的步骤,下面对此实施例进行详细的介绍。

实施例三:参照图3,实现本发明实施例所提供的方法包括以下步骤:

S301至S302与S101至S102相同;

S303:所述UDP终端判断所述数据流量是否可以发送,如果是,进入S304;如果否,退出;

S304:通过所述TCP连接将所述数据发送给中转服务器,并记录本次发送的速度,进入S305;

S305与S104相同。

其中,参照图4,本发明实施例三所述判断所述数据流量是否可以发送的具体过程是:

S401:所述UDP终端创建发送队列,并创建发送线程;

S402:将所述数据放入所述发送队列;

S403:判断当前发送队列的长度是否超过预先设定的长度,如果否,进入S404,如果是,退出;

S404:所述发送线程通过所述TCP连接向所述中转服务器发送所述数据;

当UDP终端发送完所有数据之后,将结束所述发送线程,销毁所述发送队列。

同样,为了在接收目的端的数据时也获得更好的性能,中转服务器在向所述UDP终端发送所述目的端发来的数据之前,需要对此数据进行流量控制,与本发明实施例三所述的方法类似,只需要由所述中转服务器判断所述数据流量是否可以发送,如果是,通过所述TCP连接将所述数据发送给所述UDP终端,并记录本次发送的速度,如果否,退出。其中判断所述数据是否可以发送的步骤与图4所示类似,不同之处只在于判断的主体为所述中转服务器,具体过程这里不再赘述。

与上述实施例所提供的方法相对应,参见图5,本发明还提供了一种实现UDP中转的系统,该系统包括:

终端装置U501,用于向中转服务器发送建立TCP连接的请求,并利用所述中转服务器分配的TCP连接将数据发送到中转服务器;

中转服务器U502,用于为所述UDP终端分配TCP连接,建立用于对外通讯的UDP连接,并利用所述用于对外通讯的UDP端口将数据发送到目的端。

在终端装置U501向目的端发送数据的过程中,首先由终端装置U501向中转服务器U502发送建立TCP连接的请求,中转服务器U502在收到所述请求后,为终端装置U501分配TCP连接,并建立用于对外通讯的UDP连接;然后,终端装置通过为其分配的TCP连接,将数据发送到中转服务器U502;再由中转服务器U502通过用于对外通讯的UDP连接,将数据发送到目的端。这样便完成了数据从终端装置向目的端转发的过程。

为了目的端也能向终端装置U501发送数据,中转服务器U502还用于将用于对外通讯的UDP连接的IP地址和端口发送到终端装置501;终端装置501还用于在接收到中转服务器发送的所述UDP连接的IP地址和端口后,建立用于本地通讯的UDP连接。

当目的端需要向终端装置U501发送数据时,中转服务器U502还用于:通过所述用于对外通讯的UDP连接,接收目的端发送的数据,确定与所述UDP连接对应的TCP连接,并通过该TCP连接将所述数据发送给所述TCP连接对应的终端装置;终端装置U501还用于:通过与所述TCP连接对应的用于本地通讯的UDP连接,将数据发送给上层调用。

在接收数据的过程中,中转服务器U502通过所述用于对外通讯的UDP连接,接收目的端发送的数据,确定与所述UDP连接对应的TCP连接,并通过该TCP连接将所述数据发送给所述TCP连接对应的终端装置U501;终端装置U501在收到中转服务器U501发来的数据后,通过与所述TCP连接对应的用于本地通讯的UDP连接,将数据发送给上层调用。

在本发明的优选实施例中,当终端装置发送数据、需要对数据进行流量控制时,则所述终端装置还用于:

创建发送队列,并创建发送线程;

将所述数据放入所述发送队列,并判断当前发送队列的长度是否超过预先设定的长度,如果否,所述发送线程通过所述TCP连接向所述中转服务器发送数据,如果是,退出;

判断所述TCP连接返回是否成功,如果是,记录所述发送的速度;如果否,保留所述数据等待下次发送;

在所有数据发送完毕之后,结束所述线程,销毁所述发送队列。

在本发明的优选实施例中,当中转服务器接收数据、需要对数据进行流量控制时,所述中转服务器还用于:

创建发送队列,并创建发送线程;

将所述数据放入所述发送队列,并判断当前发送队列的长度是否超过预先设定的长度,如果否,所述发送线程通过所述TCP连接向所述终端装置发送所述数据,如果是,退出;

判断所述TCP连接返回是否成功,如果是,记录所述发送的速度;如果否,保留所述数据等待下次发送;

在所有数据发送完毕之后,结束所述发送线程,销毁所述发送队列。

与本发明提供的UDP连接和TCP连接相互转化的方法和系统相对应,本发明还提供了一种实现UDP连接和TCP连接相互转化的中转服务器,参见图6,该中转服务器包括:

TCP连接分配单元U601,用于为终端装置分配TCP连接;

UDP连接建立单元U602,用于建立用于对外通讯的UDP连接;

TCP数据接收单元U603,用于接收所述终端装置利用所述TCP连接发送来的数据;

UDP数据发送单元U604,用于利用所述用于对外通讯的UDP端口将所述数据发送到目的端。

TCP连接分配单元U601在收到终端装置发送的建立TCP连接的请求之后,为终端装置分配TCP连接,同时UDP连接建立单元U602,建立用于对外通讯的UDP连接;当终端装置发送来数据时,TCP数据接收单元U603接收所述终端装置利用TCP连接发送来的数据,然后再由UDP数据发送单元U604利用用于对外通讯的UDP端口将所述数据发送到目的端。

当接收目的端发送来的数据时,该中转服务器还包括:

UDP数据接收单元U605,用于通过所述用于对外通讯的UDP连接,接收所述目的端发送的数据;

对应关系确定单元U606,用于确定与所述UDP连接对应的TCP连接;

TCP数据发送单元U607,用于通过所述TCP连接将所述数据发送给所述TCP连接对应的终端装置。

UDP数据接收单元U605通过用于对外通讯的UDP连接接收到所述目的端发送的数据后,由对应关系确定单元U606确定与所述UDP连接对应的TCP连接,然后由TCP数据发送单元U607通过所述TCP连接将所述数据发送给所述TCP连接对应的终端装置。

当需要对数据进行流量控制时,该中转服务器还包括:

流量控制单元U608,用于所述TCP数据发送单元U607发送数据之前,判断数据流量是否可以发送,如果是,则触发所述TCP数据发送单元U607;如果否,退出。

从以上实施例可见,通过本发明实施例,使得在严格限制的防火墙面前,支持UDP连接的客户端或服务器通过中转服务器就可以实现与外网进行通讯,不需要对客户端或服务器进行大的改造。另外,本发明实施例还对数据进行了流量控制,提高了整个系统的性能。

以上对本发明所提供的一种UDP连接与TCP连接相互转化的方法、系统及中转服务器,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号