一种基于动态端口切换的数据传输方法和系统与流程

文档序号:12135382阅读:287来源:国知局
一种基于动态端口切换的数据传输方法和系统与流程

本发明涉及网络传输技术领域,特别涉及一种基于动态端口切换的数据传输方法和系统。



背景技术:

随着互联网规模的不断增大,网络环境也变得越来越复杂,而人们对数据传输的质量也要求越来越高。超大文件传输,或者类似直播这种数据流的传输,传输时间往往会持续很长时间,有时甚至需要持续几天。这种场景下,发送端与接收端通过建立一条传输控制协议(TCP)连接进行数据传输,如果所依托的传输链路不稳定,在文件传输过程中会出现传输中断失败,直播画面卡顿等问题,严重影响用户体验。

现有技术在类似跨国或者跨运营商等恶劣又复杂的网络环境下的数据传输常常面临以下问题:

(1)连接突然被禁止问题:由于传输控制协议的数据发包速率太快或者传输带宽比较大,触发了传输链路中的一些基础设施的惩罚措施,导致这条连接被禁止掉,数据传输中断。

(2)通过应用层做断线重连和断点续传代价比较大:常规手段的恢复技术较为复杂,并且对技术应用有所限制,并非所有情况下都能恢复。



技术实现要素:

为了解决现有技术的问题,本发明实施例提供了一种基于动态端口切换的数据传输方法和系统。所述技术方案如下:

一方面,一种基于动态端口切换的数据传输方法,包括以下步骤:

发送端和接收端建立包含第一源端口的连接,然后发送端设置第二源端口;

发送端通过第一源端口向接收端发送报文;

当发送端与接收端连接被禁止时,发送端通过第二源端口与接收端建立连接并发送报文。

进一步的,发送端和接收端建立包含第一源端口的连接,然后发送端设置第二源端口的具体步骤包括:

发送端通过传输控制协议与接收端建立连接,传输控制协议通过四元组来唯一标示连接,四元组包括源互联网协议地址、第一源端口、目的互联网协议地址和目的端口;

发送端选择新端口作为第二源端口;

发送端构造报文,将第二源端口信息封装在报文中,通过第一源端口发送给接收端;

接收端接收到含有第二源端口信息的报文后,解析出第二源端口信息,构造端口确认报文,发送给发送端。

进一步的,发送端构造报文,将第二源端口信息封装在报文中,通过第一源端口发送给接收端的具体步骤包括:

发送端构造报文,将第二源端口信息封装在报文中,通过第一源端口发送给接收端;

发送端启动定时器,设定定时阈值为T,等待接收端回复的端口确认报文;

如果在定时阈值T内没有收到端口确认报文,则重传报文。

进一步的,发送端通过第一源端口向接收端发送报文的具体步骤包括:

发送端为每个待发送报文设置发送次数计数值,发送次数计数值初始值设置为0,待发送报文每发送一次,发送次数计数值增加1;

发送端通过第一源端口向接收端发送报文。

进一步的,当发送端与接收端连接被禁止时,发送端通过第二源端口与接收端建立连接并发送报文的具体步骤包括:

发送端判断发送端与接收端连接是否被禁止;

如果连接未被禁止,则发送端继续通过第一源端口向接收端发送报文;

如果连接被禁止,则触发端口切换机制,发送端通过第二源端口向接收端重新发送报文。

进一步的,发送端判断发送端与接收端连接是否被禁止的具体步骤包括:

发送端判断报文是否发送成功;

如果发送成功则发送端与接收端连接未被禁止;

如果发送不成功则判断报文的发送次数计数值是否大于预设值;

如果发送次数计数值小于等于预设值,则发送端与接收端连接未被禁止;

如果发送次数计数值大于预设值,则发送端与接收端连接被禁止。

进一步的,如果连接被禁止,则触发端口切换机制,发送端通过第二源端口向接收端重新发送报文具体步骤为:发送端将第一源端口更改为第二源端口,然后通过第二源端口与接收端建立连接并发送报文,唯一标示连接的四元组为源互联网协议地址、第二源端口、目的互联网协议地址和目的端口。

另一方面,一种基于动态端口切换的数据传输系统,包括发送端和接收端,发送端和接收端通过传输控制协议连接;

发送端包括:

端口备份模块,用于在发送端设置第二源端口,并进行源端口切换;

第一收发模块,与端口备份模块连接,用于向接收端发送报文,并接收接收端返回的回复报文;

接收端包括:

第二收发模块,与第一收发模块连接,用于接收发送端发送的报文,并向发送端发送回复报文。

进一步的,发送端还包括:

连接状态模块,与第一收发模块连接,用于判断发送端与接收端的连接状态。

进一步的,连接状态模块具体包括:

报文计数模块,与第一收发模块连接,用于对每个报文的发送次数计数;

状态判断模块,与报文计数模块连接,用于通过报文的发送次数判断发送端与接收端的连接状态。

进一步的,状态判断模块的判断规则为:

当报文的发送次数小于等于预设值时,判断发送端与接收端连接正常;

当报文的发送次数大于预设值时,判断发送端与接收端连接中断或被禁止。

本发明实施例提供的技术方案带来的有益效果是:本发明包括“连接禁止”自动检测机制和动态端口切换机制。“连接禁止”自动检测机制通过在发送端记录每个数据包的重传次数,当一个数据包重传次数达到一定阀值时,判定连接被禁止。动态端口切换机制是在发送端和接收端建立一条连接的时候,双方会协商出来一个新的源端口,作为备份端口,也就是一条连接有两个四元组。正常情况下,所有数据都通过其中一个四元组传输,当通过“连接禁止”自动检测机制发现有连接被禁止的情况发生时,切换到另外一个四元组上传输数据,并再协商出来一个新的四元组。本发明通过这种动态的变换端口的机制,可以有效的解决传输链路基础设施对连接进行限制的问题,实现在传输协议层面的连接自动断线重连,对应用层完全透明,并保证数据传输的稳定性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例一提供的基于动态端口切换的数据传输方法流程图;

图2是本发明实施例一提供的基于动态端口切换的数据传输方法流程图;

图3是本发明实施例一提供的基于动态端口切换的数据传输方法中步骤S207的具体流程图;

图4是本发明实施例二提供的基于动态端口切换的数据传输系统结构图;

图5是本发明实施例二提供的基于动态端口切换的数据传输系统结构图;

图6是本发明实施例二提供的基于动态端口切换的数据传输系统结构图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

实施例一

本发明提供一种基于动态端口切换的数据传输方法,如图1所示,包括以下步骤:S101,发送端和接收端建立包含第一源端口的连接,然后发送端设置第二源端口;S102,发送端通过第一源端口向接收端发送报文;S103,当发送端与接收端连接被禁止时,发送端通过第二源端口与接收端建立连接并发送报文。

具体的,如图2所示:

步骤S201,发送端通过传输控制协议(TCP)与接收端建立连接。发送端与接收端触发传输控制三次握手机制,当传输控制三次握手成功后,建立一个传输控制四元组,传输控制协议通过四元组来唯一标示连接。四元组包括源互联网协议地址、第一源端口、目的互联网协议地址和目的端口。

步骤S202,发送端选择端口作为第二源端口。发送端通过传输控制协议选择一个新的端口作为第二源端口。第二源端口作为第一源端口的备用端口,当第一源端口的连接被禁止时,可直接启用第二源端口。

步骤S203,发送端构造报文,将第二源端口信息封装在报文中,通过第一源端口发送给接收端。发送端构造一个报文,将第二源端口信息封装在报文中,通过第一源端口发送给接收端;同时发送端启动定时器,设定定时阈值为T,等待接收端回复的端口确认报文;如果在定时阈值T内没有收到端口确认报文,则重传报文,报文最多重传三次。T=2×RTT,RTT为发送端和接收端的数据往返延迟。

步骤S204,接收端接收到含有第二源端口信息的报文后,解析出第二源端口信息,构造端口确认报文,发送给发送端。接收端收到报文后,解析出第二源端口的信息,并构造端口确认报文,发送给发送端,此时接收端可以接收来自第二源端口的报文,并当成来自第一源端口的报文处理。

步骤S205,发送端为每个待发送报文设置发送次数计数值。发送次数计数值初始值设置为0,待发送报文每发送一次,发送次数计数值增加1。

步骤S206,发送端通过第一源端口向接收端发送报文。

步骤S207,判断发送端与接收端连接是否被禁止。如果连接未被禁止,则执行步骤S208,如果连接被禁止,则执行步骤S209。

步骤S208,发送端继续通过第一源端口向接收端发送报文;

步骤S209,触发端口切换机制,发送端通过第二源端口向接收端重新发送报文。发送端将第一源端口更改为第二源端口,然后通过第二源端口与接收端建立连接,并重复步骤S202至S209的步骤向接收端发送报文。此时唯一标示连接的四元组为源互联网协议地址、第二源端口、目的互联网协议地址和目的端口。

具体的,步骤S207,判断发送端与接收端连接是否被禁止的具体步骤如图3所示:

步骤S2071,发送端判断报文是否发送成功。如果该报文发送成功,则发送端与接收端连接正常,该报文发送结束后,执行步骤S208,继续发送下一个报文;如果该报文发送失败,则进行步骤S2072。

步骤S2072,判断报文的发送次数计数值是否大于预设值。一般将发送次数计数值预设为10,本发明对此不作限定。如果发送次数计数值≤10,则判断发送端与接收端连接未被禁止,返回步骤S206;如果发送次数计数值>10,则判断发送端与接收端连接被禁止,进行步骤S209。

假设链路的最大带宽为M,文件大小为N,那么理论上文件传输时间T=N/M,设最大时间Tmax=3×T,当一个大小为N的文件传输时间超过Tmax时,则认为是一个传输“高点”。在实际环境中,从广州移动到四川电信,传输100M的文件,带宽是3MB/s,传输100次,使用本发明之前高点率为56%,使用之后高点率将为12%。

本发明包括“连接禁止”自动检测机制和动态端口切换机制。“连接禁止”自动检测机制通过在发送端记录每个数据包的重传次数,当一个数据包重传次数达到一定阀值时,判定连接被禁止。动态端口切换机制是在发送端和接收端建立一条连接的时候,双方会协商出来一个新的源端口,作为备份端口,也就是一条连接有两个四元组。正常情况下,所有数据都通过其中一个四元组传输,当通过“连接禁止”自动检测机制发现有连接被禁止的情况发生时,切换到另外一个四元组上传输数据,并再协商出来一个新的四元组。本发明通过这种动态的变换端口的机制,可以有效的解决传输链路基础设施对连接进行限制的问题,实现在传输协议层面的连接自动断线重连,对应用层完全透明,并保证数据传输的稳定性。

实施例二

本发明还提供一种基于动态端口切换的数据传输系统,如图4所示,包括发送端100和接收端200,发送端100和接收端200通过传输控制协议连接。

具体的,

发送端100包括:第一收发模块101和端口备份模块102。

接收端200包括:第二收发模块201。

端口备份模块102用于在发送端100设置备份源端口,并进行源端口切换;第一收发模块101与端口备份模块102连接,用于向接收端200发送报文,并接收接收端200返回的回复报文;第二收发模块201与第一收发模块101连接,用于接收发送端100发送的报文,并向发送端100发送回复报文。

如图5所示,发送端100还包括连接状态模块103,与第一收发模块101连接,用于判断发送端与接收端的连接状态。

如图6所示,连接状态模块103具体包括:报文计数模块1031和状态判断模块1032。

报文计数模块1031与第一收发模块101连接,用于对每个报文的发送次数计数;状态判断模块1032与报文计数模块1031连接,用于通过报文的发送次数判断发送端100与接收端200的连接状态。状态判断模块1032的判断规则为:当报文的发送次数小于等于预设值时,判断发送端100与接收端200连接正常;当报文的发送次数大于预设值时,判断发送端100与接收端200连接中断或被禁止。一般发送次数预设值为10,本发明对此不作限定。

如图4所示的基于动态端口切换的数据传输系统的发送端部分,可以作为一种单独的数据传输装置。该装置可以是路由器,也可以是交换机或其他装置,还可以作为服务器组成结构的一部分,安装在服务器中。本发明在此不再赘述。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1