数据发送方法和系统与流程

文档序号:17326403发布日期:2019-04-05 21:49阅读:155来源:国知局
数据发送方法和系统与流程

本发明涉及通信技术领域,尤其涉及一种数据发送方法和系统。



背景技术:

智能终端通过接入网络可以实现各种各样的功能,给人们的日常生活带来了巨大的便利。

当智能终端无法继续连接当前网络时,根据当前的网络策略智能终端会切换连接到另一个网络,由于网络ip地址的改变,智能终端需要对切换后的网络进行重新识别,切换前建立的连接切换之后就无法进行,切换过程中正在进行的文件下载服务,或者网络通话会中断。因此,数据发送过程中网络的切换会造成数据传输中断、延迟及丢包等现象的存在,从而影响用户体验。



技术实现要素:

本发明提供一种数据发送方法和系统,以实现移动站点在网络切换的情况下通信连接的不中断。

第一方面,本发明实施例提供了一种数据发送方法,包括:

终端上配置的虚拟网卡对接收到的待发送数据进行第一层封装,并将所述第一层封装后得到的第一数据包发送至网络协议栈,其中,所述第一层封装包括将所述待发送数据的源ip地址设置为所述虚拟网卡的静态ip地址,将所述待发送数据的目的ip地址设置为接收端ip地址;

所述网络协议栈对所述第一数据包进行第二层封装,并将所述第二层封装后得到第二数据包通过当前网络发送至代理服务器,其中,所述第二层封装包括将所述第一数据包的源ip地址设置为所述当前网络对应的网卡ip地址,将所述第一数据包的目的ip地址设置为代理服务器ip地址;

所述代理服务器对所述第二数据包进行解封装,得到所述第一数据包,并将所述第一数据包发送至所述接收端。

第二方面,本发明实施例还提供了一种数据发送系统,该系统包括终端上配置的虚拟网卡、网络协议栈和代理服务器,其中,

所述虚拟网卡用于对接收到的待发送数据进行第一层封装,并将所述第一层封装后得到的第一数据包发送至所述网络协议栈,其中,所述第一层封装包括将所述待发送数据的源ip地址设置为所述虚拟网卡的静态ip地址,将所述待发送数据的目的ip地址设置为接收端ip地址;

所述网络协议栈用于对所述第一数据包进行第二层封装,并将所述第二层封装后得到第二数据包通过当前网络发送至所述代理服务器,其中,所述第二层封装包括将所述第一数据包的源ip地址设置为所述当前网络对应的网卡ip地址,将所述第一数据包的目的ip地址设置为代理服务器ip地址;

所述代理服务器用于对所述第二数据包进行解封装,得到所述第一数据包,并将所述第一数据包发送至所述接收端。

本发明通过移动终端上的虚拟网卡对接收到的待发送数据进行第一层封装,得到源ip地址为虚拟网卡的静态ip地址,目的ip地址为接收端ip地址的第一数据包,并将第一数据包发送至网络协议栈,网络协议栈对接收到的第一数据包进行第二层封装,得到源ip地址为当前真实网络对应的网卡的ip地址,目的ip地址为代理服务器并将第二数据包通过当前网络发送至代理服务器,代理服务器将接收到的第二数据包进行解封装从而得到第一数据包,并将第一数据包发送至接收端,由于发送至接收端的第一数据包的源ip地址为虚拟网卡的静态ip地址,且虚拟网卡的静态ip地址固定不变,因此在数据发送的过程中,即使切换了网络连接,也能保证接收端接收到的数据包的源ip地址不变,进而保障通讯服务的不中断,提高了数据传输效率和质量。

附图说明

图1为本发明实施例一提供的一种数据发送方法的流程图;

图2是本发明实施例二提供的一种数据发送方法的流程图;

图3是本发明实施例二提供的一种数据发送方法的原理框架图;

图4是本发明实施例三提供的一种数据发送系统的结构图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1为本发明实施例一提供的一种数据发送方法的流程图,本实施例可适用于应用程序通信过程中进行数据发送的情况,该方法可以由终端上配置的虚拟网卡、网络协议栈和代理服务器组成的数据发送系统来执行,如图1所示,方法具体包括如下步骤:

s110、终端上配置的虚拟网卡对接收到的待发送数据进行第一层封装,并将第一层封装后得到的第一数据包发送至网络协议栈。

其中,上述终端可以为手机、电脑等移动终端,在终端上配置虚拟网卡并添加对应的固定的静态ip地址,虚拟网卡对接收到的待发送数据进行第一层封装,采用的封装格式为将待发送数据的源ip地址设置为虚拟网卡的静态ip地址,将待发送数据的目的ip地址设置为接收端的ip地址,将封装后得到的第一数据包发送至网络协议栈。

s120、网络协议栈对第一数据包进行第二层封装,并将第二层封装后得到第二数据包通过当前网络发送至代理服务器。

其中,上述第二层封装是网络协议栈根据当前连接的网络,对第一数据包进行第二层封装,具体的,若当前连接的网络为wi-fi网络,则将接收到的第一数据包的源ip地址设置为当前wi-fi网络对应的wlan网卡的ip地址,将第一数据包的目的ip地址设置为代理服务器的ip地址,得到第二层封装之后的第二数据包通过当前终端接入的网络发送到代理服务器。

s130,代理服务器对第二数据包进行解封装,得到第一数据包,并将第一数据包发送至接收端。

代理服务器对接收到的第二数据包进行解封装,具体的,代理服务器接收到第二数据包后,会把第二数据包的外面一层ip头解开,得到内层的第一数据包,进一步的,上述代理服务器对解封装后得到的第一数据包进行网络地址转换,即将第一数据包的源ip地址重写为自身的ip地址,此时第一数据包的源ip地址为代理服务器ip地址,目的地址为接收端的ip地址,将该重写后的第一数据包发送至接收端,从而完成移动通信过程中的数据发送。

进一步的,移动终端中的应用程序在建立tcp连接进行数据发送的过程中,若移动终端连接的网络发生变化,示例性的,移动终端从当前连接的wi-fi网络切换至移动网络,此时由于终端中配置的虚拟网卡的静态ip地址固定不变,即数据发送端的ip地址始终保持不变,因此,在数据发送过程中,移动终端中的应用程序维护的tcp连接所绑定的ip地址和端口一直存在,因此,移动终端中的应用程序之间的建立的tcp通信不会中断,用户在网络切换前后进行的网络通话、文件下载等操作不会被中断,从而避免了因网络切换带来的数据传输中断、延迟即丢包等问题,提高了数据传输效率和质量。

本实施例的技术方案,通过移动终端上的虚拟网卡对接收到的待发送数据进行第一层封装,得到源ip地址为虚拟网卡的静态ip地址,目的ip地址为接收端ip地址的第一数据包,并将第一数据包发送至网络协议栈,网络协议栈对接收到的第一数据包进行第二层封装,得到源ip地址为当前真实网络对应的网卡的ip地址,目的ip地址为代理服务器并将第二数据包通过当前网络发送至代理服务器,代理服务器将接收到的第二数据包进行解封装从而得到第一数据包,并将第一数据包发送至接收端,由于发送至接收端的第一数据包的源ip地址为虚拟网卡的静态ip地址,且虚拟网卡的静态ip地址固定不变,因此在数据发送的过程中,即使切换了网络连接,也能保证接收端接收到的数据包的源ip地址不变,进而保障通讯服务的不中断,提高了数据传输效率和质量。

实施例二

图2为本发明实施例二提供的一种数据发送方法的流程图,本实施例在上述实施例的基础上,在终端上配置的虚拟网卡对接收到的待发送数据进行第一层封装之前之前,还包括终端上的发送端与接收端之间建立tcp连接通信;发送端将待发送数据发送至虚拟网卡。如图2所示,具体包括如下步骤:

s210、终端上的发送端与接收端之间建立tcp连接通信。

具体地,发送端可以指移动终端上的应用程序,参见图3,图3为本发明实施例二提供的一种数据发送方法的原理框架图。首先,移动终端310中的应用程序(图中未示出)和互联网中的一个ip地址为166.32.65.98的接收端330建立了tcp连接通信。

s220、发送端将待发送数据发送至虚拟网卡。

发送端和接收端330之间的tcp通信建立之后,作为发送端的应用程序要向ip地址为166.32.65.98的接收端330发送数据,此时,通过设置默认路由,将待发送数据根据默认路由先发送至虚拟网卡312。

s230、终端上配置的虚拟网卡312对接收到的待发送数据进行第一层封装,并将第一层封装后得到的第一数据包发送至网络协议栈。

具体地,将虚拟网卡的静态ip地址固定为10.1.10.2,虚拟网卡312把接收到的待发送的tcp数据进行第一层封装,封装格式为:将待发送数据的源ip地址设置为10.1.10.2,即虚拟网卡312的静态ip地址,将待发送数据的目的ip地址设置为166.32.65.98,即接收端330的ip地址,待发送数据经过上述第一层封装后得到第一数据包,第一数据包从虚拟网卡312发送至网络协议栈。

s240、网络协议栈对第一数据包进行第二层封装,并将第二层封装后得到第二数据包通过当前网络发送至代理服务器。

网络协议栈根据当前连接的网络,参见图3,当前连接的网可以为wi-fi网络,对接收到的第一数据包进行第二层封装,具体的,将第一数据包的源ip地址设置为wlan网卡311的ip地址,具体为192.168.1.5,wlan网卡通过接入互联网340和代理服务器320之间进行数据传输,将第一数据包的目的ip地址设置为网络协议栈的ip地址,具体为163.52.48.33,经过上述第二层封装后得到第二数据包,第二数据包通过当前移动终端310连接的wi-fi网络发送至代理服务器320。

s250、代理服务器对第二数据包进行解封装,得到第一数据包,并将第一数据包发送至接收端。

代理服务器320为linux主机上运行的代理服务软件,它对接收到的第二数据包进行解封装,得到第一数据包,即源ip地址为10.1.10.2,目的ip地址为166.32.65.98的数据包,代理服务器320将解封装后得到的第一数据包进行网络地址转移,即将上述第一数据包的源地址重写为自身的ip地址163.52.48.33,重写后的第一数据包的源ip地址为163.52.48.33,目的地的ip为166.32.65.98,重写后的第一数据包通过当前连接的wi-fi网络发送至接收端330。

此时,若移动终端切换所连接的网络,示例性的,移动终端从当前连接的wi-fi网络切换至移动4g网络,此时移动终端中的4g网卡313通过移动核心网350接入移动网络,由于虚拟网卡312的静态ip固定不变,即接收端和发送端之间建立的tcp连接通信所绑定的数据发送端口以及端口的ip地址不变,所以网络切换前后所建立的tcp连接通信不会中断。

本实施例的技术方案,首先终端中的应用程序和互联中的一个端点建立tcp通信连接,终端中的应用程序作为发送端要将数据发送给接收端,应用程序在通信过程中绑定虚拟网卡,在发送端向接收端发送数据的过程中,由于虚拟网卡的静态ip地址固定不变,应用程序之间建立的tcp连接通信所绑定的ip地址和端口一直存在,因此在网络切换的情况下原先建立的tcp连接通信不会中断。

实施例三

图4本发明实施例三提供的一种数据发送系统的结构图。可执行本发明任意实施例所提供的数据发送方法,参见图4,本发明实施例提供的数据发送系统包括:终端上配置的虚拟网卡410、网络协议栈420和代理服务器430。

其中,虚拟网卡410,用于对接收到的待发送数据进行第一层封装,并将第一层封装后得到的第一数据包发送至网络协议栈,其中,第一层封装包括将待发送数据的源ip地址设置为虚拟网卡的静态ip地址,将待发送数据的目的ip地址设置为接收端ip地址。

网络协议栈420,用于对第一数据包进行第二层封装,并将第二层封装后得到第二数据包通过当前网络发送至代理服务器,其中,第二层封装包括将第一数据包的源ip地址设置为当前网络对应的网卡ip地址,将第一数据包的目的ip地址设置为代理服务器ip地址。

代理服务器430,用于对第二数据包进行解封装,得到第一数据包,并将第一数据包发送至接收端。

具体的,上述解封装模块430具体用于:将第一数据包中的虚拟网卡的静态ip地址重写为代理服务器的ip地址,并基于第一数据包中的接收端ip地址,将重写后的第一数据包发送至接收端。

本发明实施例的技术方案,通过移动终端上的虚拟网卡对接收到的待发送数据进行第一层封装,得到源ip地址为虚拟网卡的静态ip地址,目的ip地址为接收端ip地址的第一数据包,并将第一数据包发送至网络协议栈,网络协议栈对接收到的第一数据包进行第二层封装,得到源ip地址为当前真实网络对应的网卡的ip地址,目的ip地址为代理服务器并将第二数据包通过当前网络发送至代理服务器,代理服务器将接收到的第二数据包进行解封装从而得到第一数据包,并将第一数据包发送至接收端,在数据发送的过程中,虚拟网卡的静态ip地址固定不变,因此在数据发送的过程中,即使切换了网络连接,也能保障通讯服务的不中断。

本实施例中,上述数据发送系统还包括:终端上配置的通信模块。

具体地,终端上配置的通信模块用于将终端上的发送端与接收端之间建立tcp连接通信,其中,发送端用于将待发送数据发送至所述虚拟网卡。

本发明实施例所提供的数据发送系统可执行本发明任意实施例所提供的数据发送方法,具备执行方法相应的功能模块和有益效果。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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