CN116016025A - 一种通信方法、设备及存储介质 - Google Patents
一种通信方法、设备及存储介质 Download PDFInfo
- Publication number
- CN116016025A CN116016025A CN202111224343.2A CN202111224343A CN116016025A CN 116016025 A CN116016025 A CN 116016025A CN 202111224343 A CN202111224343 A CN 202111224343A CN 116016025 A CN116016025 A CN 116016025A
- Authority
- CN
- China
- Prior art keywords
- communication
- virtual network
- opposite terminal
- mptcp
- network card
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种通信方法、设备及存储介质,包括:通信端与通信对端建立虚拟隧道,所述虚拟隧道将被通信端与通信对端视为虚拟网卡;通信端在两个虚拟网卡之间,使用MPTCP连接建立通信通道;通信端将需要进行带宽叠加和/或切换的流量,导流至对端的虚拟网卡上进行传输。采用本发明,即使在两端都存在多WAN的情况下,也能实现自动在多WAN口之间切换,和/或能自动叠加多WAN口的带宽资源。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种通信方法、设备及存储介质。
背景技术
随着技术的发展许多设备具有了多个网络接口,而TCP(传输控制协议,TransferControl Protocol)依然是一个单线路的协议,在TCP的通信过程中发端和收端都不能随意变换地址。目前可以利用多个网络接口的这一特性来改善性能和有效冗余。例如:手机同时连接WIFI(无线保真技术,Wireless Fidelity)信号和3G信号的时候,如果WIFI关掉,使用WIFI进行的TCP连接就会断开,而不能有效利用3G网络继续收发数据。而MPTCP(多路径TCP,Multipath TCP)可以在一条TCP链接中包含多条路径,避免上述问题出现。MPTCP允许在一条TCP链路中建立多个子通道。当一条通道按照三次握手的方式建立起来后,可以按照三次握手的方式建立其他的子通道,这些通道以三次握手建立连接和四次握手解除连接。这些通道都会绑定于MPTCP session(多路径TCP会话),发送端的数据可以选择其中一条通道进行传输。3GPP(第三代合作伙伴计划,3rdGeneration Partnership Project)定义无线终端可以同时接入多个无线网络,达到以较低的成本实现更高带宽的目的,这种方式称为多接入带宽聚合或者多径(反之则为单径)。多WAN(广域网,Wide Area Network)口带宽聚合技术就是把不同的TCP连接会话,分配到不同的WAN口,使用多个TCP会话同时传输数据,不同的会话承载于不同的WAN口,从而达到总的通信带宽叠加的效果。比较常见的有多WAN路由器将不同的网络会话的IP(网际互连协议,Internet Protocol)包转发到不同的WAN链路,从而让多个链路被多个网络会话共享。目前的CPE(客户终端设备,Customer PremisesEquipment)也支持多WAN口带宽聚合技术。
现有技术的不足在于,虽然目前CPE和路由器支持多WAN口带宽聚合技术,但不具备单连接会话的带宽叠加功能。
发明内容
本发明提供了一种通信方法、设备及存储介质,用以解决在CPE和路由器支持多WAN口带宽聚合技术,但不具备单连接会话的带宽叠加功能的问题。
本发明提供以下技术方案:
一种通信方法,包括:
通信端与通信对端建立虚拟隧道,所述虚拟隧道将被通信端与通信对端视为虚拟网卡;
通信端在两个虚拟网卡之间,使用MPTCP连接建立通信通道;
通信端将需要进行带宽叠加和/或切换的流量,导流至对端的虚拟网卡上进行传输。
实施中,进一步包括:
对通信对端进行身份认证,认证通过后导流至对端的虚拟网卡上进行传输。
实施中,通过设置路由规则将需要进行带宽叠加和/或切换的流量,导流至对端的虚拟网卡上进行传输。
实施中,在两个虚拟网卡之间,使用MPTCP连接建立通信通道,包括:
通知通信对端用于参与MPTCP通信的IP地址列表,用以供通信对端按照fullmesh算法在多个WAN之间的多个路径上建立子流,构建一个MPTCP连接。
实施中,在两个虚拟网卡之间,使用MPTCP连接建立通信通道,包括:
接收通信对端通知的用于参与MPTCP通信的IP地址列表后,通信端按照fullmesh算法在多个WAN之间的多个路径上建立子流,构建一个MPTCP连接。
实施中,通信端将需要进行带宽叠加和/或切换的流量,导流至对端的虚拟网卡上进行传输,包括:
将需发送的TCP数据转换为UDP数据包;
选择线路,将UDP数据包分配到不同子流上发送到对应的底层网卡后进行传输。
实施中,所述通信端和/或通信对端是具有多WAN、多线路、多通道、或多路径的通信设备。
实施中,将UDP数据包分配到不同子流上发送时,进一步包括:
根据每个WAN口的通信状态和/或负载将UDP数据包分配到不同子流上发送。
实施中,进一步包括:
将接收的UDP数据包转换为TCP数据后,发往MPTCP socket接口处后,恢复成原始数据发往上层应用。
实施中,虚拟网卡是通过ioctl接口配置的。
一种通信设备,包括:
处理器,用于读取存储器中的程序,执行下列过程:
与通信对端建立虚拟隧道,所述虚拟隧道将被通信端与通信对端视为虚拟网卡;
在两个虚拟网卡之间,使用MPTCP连接建立通信通道;
将需要进行带宽叠加和/或切换的流量,导流至对端的虚拟网卡上进行传输;
收发机,用于在处理器的控制下接收和发送数据。
实施中,进一步包括:
对通信对端进行身份认证,认证通过后导流至对端的虚拟网卡上进行传输。
实施中,通过设置路由规则将需要进行带宽叠加和/或切换的流量,导流至对端的虚拟网卡上进行传输。
实施中,在两个虚拟网卡之间,使用MPTCP连接建立通信通道,包括:
通知通信对端用于参与MPTCP通信的IP地址列表,用以供通信对端按照fullmesh算法在多个WAN之间的多个路径上建立子流,构建一个MPTCP连接。
实施中,在两个虚拟网卡之间,使用MPTCP连接建立通信通道,包括:
接收通信对端通知的用于参与MPTCP通信的IP地址列表后,通信端按照fullmesh算法在多个WAN之间的多个路径上建立子流,构建一个MPTCP连接。
实施中,将需要进行带宽叠加和/或切换的流量,导流至对端的虚拟网卡上进行传输,包括:
将需发送的TCP数据转换为UDP数据包;
选择线路,将UDP数据包分配到不同子流上发送到对应的底层网卡后进行传输。
实施中,所述通信设备是具有多WAN、多线路、多通道、或多路径的通信设备。
实施中,将UDP数据包分配到不同子流上发送时,进一步包括:
根据每个WAN口的通信状态和/或负载将UDP数据包分配到不同子流上发送。
实施中,进一步包括:
将接收的UDP数据包转换为TCP数据后,发往MPTCP socket接口处后,恢复成原始数据发往上层应用。
实施中,虚拟网卡是通过ioctl接口配置的。
一种通信设备,包括:
隧道模块,用于与通信对端建立虚拟隧道,所述虚拟隧道将被通信端与通信对端视为虚拟网卡;
连接模块,用于在两个虚拟网卡之间,使用MPTCP连接建立通信通道;
传输模块,用于将需要进行带宽叠加和/或切换的流量,导流至对端的虚拟网卡上进行传输。
实施中,传输模块进一步用于对通信对端进行身份认证,认证通过后导流至对端的虚拟网卡上进行传输。
实施中,传输模块进一步用于通过设置路由规则将需要进行带宽叠加和/或切换的流量,导流至对端的虚拟网卡上进行传输。
实施中,连接模块进一步用于在两个虚拟网卡之间使用MPTCP连接建立通信通道时,包括:通知通信对端用于参与MPTCP通信的IP地址列表,用以供通信对端按照fullmesh算法在多个WAN之间的多个路径上建立子流,构建一个MPTCP连接。
实施中,连接模块进一步用于在两个虚拟网卡之间使用MPTCP连接建立通信通道时,包括:接收通信对端通知的用于参与MPTCP通信的IP地址列表后,通信端按照fullmesh算法在多个WAN之间的多个路径上建立子流,构建一个MPTCP连接。
实施中,传输模块进一步用于将需要进行带宽叠加和/或切换的流量,导流至对端的虚拟网卡上进行传输,包括:
将需发送的TCP数据转换为UDP数据包;
选择线路,将UDP数据包分配到不同子流上发送到对应的底层网卡后进行传输。
实施中,所述通信设备是具有多WAN、多线路、多通道、或多路径的通信设备。
实施中,传输模块进一步用于将UDP数据包分配到不同子流上发送时,根据每个WAN口的通信状态和/或负载将UDP数据包分配到不同子流上发送。
实施中,传输模块进一步用于将接收的UDP数据包转换为TCP数据后,发往MPTCPsocket接口处后,恢复成原始数据发往上层应用。
实施中,隧道模块进一步用于通过ioctl接口配置虚拟网卡。
本发明实施例中还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行通信方法的计算机程序。
本发明有益效果如下:
在本发明实施例提供的技术方案中,在通信端与通信对端建立虚拟隧道,使用MPTCP连接建立通信通道,再将需要进行带宽叠加和/或切换的流量,导流至对端的虚拟网卡上进行传输;由于两端只建立了一个隧道,并使用了MPTCP技术,而MPTCP可以在一条TCP链接中包含多条路径,因此,即使在两端都存在多WAN的情况下,也能实现自动在多WAN口之间切换,和/或能自动叠加多WAN口的带宽资源。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例中通信方法实施流程示意图;
图2为本发明实施例中CPE数据传输示意图;
图3为本发明实施例中通信设备结构示意图。
具体实施方式
发明人在发明过程中注意到:
目前CPE和路由器支持多WAN口带宽聚合技术,存在一个严重的障碍,只能实现连接会话级别的带宽叠加,不能实现数据包级别的带宽叠加。这种带宽叠加技术,只有存在多个TCP会话的情况下才有效。如果只有一个TCP会话,这个会话的流量始终只能承载于一个WAN口,无法实现带宽叠加。对于某一个TCP会话,这个会话的通信带宽速度,最大只能达到一个WAN口的带宽。即使其它WAN口存在空闲的带宽,这个TCP会话也无法利用其它WAN口的带宽资源。如果强行把一个TCP连接会话的数据分配到多个不同的WAN口,则在接收端就面临严重的数据包乱序问题,导致通信无法正常进行。
但是,当前的很多应用,还是单TCP会话通信。比如在视频监控行业,这个问题非常突出。视频监控流的实时产生和传输,都是单TCP会话通信。即使路由器存在多个WAN口,也无法充分利用多WAN口的带宽资源。又比如IPSec(因特网协议安全,Internet ProtocolSecurity)隧道通信,也是单连接会话通信,无法把同一个IPSec隧道的数据包,分配到不同的WAN口发送。这些应用的通信,无法修改升级为多连接会话的通信。这些通信应用,都无法利用多WAN口的带宽资源。需要解决单连接会话的条件下、叠加多WAN口带宽资源的问题。而且多WAN口之间的自动切换也是需要解决的急迫问题。
基于此,本发明实施例中提供了一种带宽聚合方案,在通信两端使用隧道技术,搭建一个虚拟隧道。对于一个设备而言,隧道是一个虚拟网卡,结合MPTCP技术,使虚拟网卡具备单连接会话的带宽叠加功能和/或多WAN口之间的自动切换功能。只要涉及到多WAN、多线路、多通道、多路径的通信问题,本方案都可以在其中实施。
下面结合附图对本发明的具体实施方式进行说明。
图1为通信方法实施流程示意图,如图所示,包括:
步骤101、通信端与通信对端建立虚拟隧道,所述虚拟隧道将被通信端与通信对端视为虚拟网卡;
步骤102、通信端在两个虚拟网卡之间,使用MPTCP连接建立通信通道;
步骤103、通信端将需要进行带宽叠加和/或切换的流量,导流至对端的虚拟网卡上进行传输。
实施中,所述通信端和/或通信对端是具有多WAN、多线路、多通道、或多路径的通信设备。
实施例提供的技术方案是一种带宽聚合方案,在通信两端使用隧道技术,搭建一个虚拟隧道。对于一个设备而言,隧道是一个虚拟网卡;然后结合MPTCP技术,使虚拟网卡具备单连接会话的带宽叠加功能和多WAN口之间的自动切换功能。只要涉及到多WAN、多线路、多通道、多路径的通信问题,本方案都可以在其中发挥出重要价值。
具体的,可以首先在通信两端使用隧道技术,搭建一个虚拟隧道。对于一个设备而言,隧道是一个虚拟网卡。并在两个虚拟网卡之间,使用一个MPTCP连接来建立起通信通道。通信两端,一端是服务端(通信端),先在一个端口上监听。另一端是客户端(通信对端),去连接服务端。每一个连接的对端,称之为一个peer(对等节点),就是一个虚拟隧道。不同的peer,通过ID(标识)号来识别管理。
实施中,还可以进一步包括:对通信对端进行身份认证,认证通过后导流至对端的虚拟网卡上进行传输。
具体的,为了安全性,服务端可以强制客户端发送一个身份信息,服务端对这个身份信息进行验证。验证通过后,才能传输数据。在一个短时间内,客户端不能验证通过,服务端将关闭该客户端的连接,拒绝建立隧道连接。所以,可以先在服务端设置每个客户端peer的ID号。客户端发起连接时,socket连接建立,首先就必须发送验证请求包,向服务端申请身份验证。服务端验证通过,发回验证通过响应,身份验证成功之后,才能进行其它通信。
实施中,通过设置路由规则将需要进行带宽叠加和/或切换的流量,导流至对端的虚拟网卡上进行传输。
具体的,当身份验证成功后,可以通过设置路由规则,把需要进行带宽叠加和切换的流量,导流至客户端的虚拟网卡。可以注入虚拟网卡的流量类型,完全没有限制。TCP、UDP(用户数据报协议,User Datagram Protocol)、ICMP(因特网控制信息协议,InternetControl Message Protocol)、IPSec、BGP(边界网关协议,Border Gateway Protocol)等都可以支持。同时虚拟网卡对导入的流量进行封装,例如添加协议标识、帧类型、帧长度等,使这些流量在隧道中传输时,能区分出不同的IP包。
实施中,在两个虚拟网卡之间,使用MPTCP连接建立通信通道,包括:
通知通信对端用于参与MPTCP通信的IP地址列表,用以供通信对端按照fullmesh算法在多个WAN之间的多个路径上建立子流,构建一个MPTCP连接。
实施中,在两个虚拟网卡之间,使用MPTCP连接建立通信通道,包括:
接收通信对端通知的用于参与MPTCP通信的IP地址列表后,通信端按照fullmesh算法在多个WAN之间的多个路径上建立子流,构建一个MPTCP连接。
具体的,将封装好的数据再发往MPTCP socket接口处,其中MPTCP的连接建立,客户端需要支持MPTCP通信。客户端根据服务端的回包,来检查判断服务端是否支持MPTCP通信。服务端支持MPTCP,就可以按照MPTCP协议来建立子流,建立MPTCP连接。服务端不支持MPTCP,就可以按照标准TCP来建立连接。
服务端接收到客户端的连接请求包,也检查判断客户端是否支持MPTCP。如果不支持,就按照标准的TCP流程回复,建立标准的TCP连接。如果支持,就回复MPTCP参数,告知对方本端可以参与MPTCP通信的IP地址列表。
客户端接收到此IP地址列表,再按照fullmesh(全网络,一种网络连接形式,即所有结点之间都直接连接的形式)算法,自动在多个WAN之间的多个路径上建立子流,最后构建一个完整的MPTCP连接。多个WAN口之间的流量速度具有带宽叠加效果。带宽叠加具有fullmesh功能。如果两端CPE的WAN口都能互通,则可以实现NxM的带宽叠加。
实施中,通信端将需要进行带宽叠加和/或切换的流量,导流至对端的虚拟网卡上进行传输,包括:
将需发送的TCP数据转换为UDP数据包;
选择线路,将UDP数据包分配到不同子流上发送到对应的底层网卡后进行传输。
具体实施中,将UDP数据包分配到不同子流上发送时,进一步包括:
根据每个WAN口的通信状态和/或负载将UDP数据包分配到不同子流上发送。
图2为CPE数据传输示意图,如图所示,下层TCP数据不再是直接发向底层网卡。TCP数据在发送到底层网卡之前,通过TCP/UDP转换驱动模块,先把发送的TCP数据包转换为UDP数据包,再进行线路选择,把数据分配到不同子流上,从不同子流发送数据包,这也就对应不同的路径,从不同路径传输数据,再发送到选择的底层网卡。
该TCP/UDP转换驱动模块,还可以同时进行线路故障检测和切换处理。
总的数据流量是在不同WAN口之间均衡分摊。不同WAN口之间具有负载均衡的效果。并且负载均衡是智能动态调整。某个WAN口的通信速度快,就负载更多的流量。某个WAN口的带宽大,就负载更多的流量。例如使用RTT(往返时间,Round Trip Time)算法来负载流量,当前RTT越小的线路,当前的流量优先级就越高。线路的流量负载增大,相应地就会增大该线路的RTT,该线路的流量优先级就会逐渐降低,负载又会更多分摊到其它线路。如此在多个不同的线路之间动态调整负载的流量。实时检测每个WAN口的通信状态。检测到某个WAN口出现故障,数据流量就立即被转移分摊到其它WAN口。
UDP数据包的构造,很容易进行处理,不需要调用socket(套接字,是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象)接口,可以显著降低系统调用的开销和CPU处理开销,从而实现了单连接会话的带宽叠加功能和多WAN口之间的自动切换功能。
实施中,还可以进一步包括:
将接收的UDP数据包转换为TCP数据后,发往MPTCP socket接口处后,恢复成原始数据发往上层应用。
接收端接收到多个子流的数据包,通过TCP/UDP转换驱动模块,先把发送的UDP数据包转换为TCP数据包,再发往MPTCP socket接口处,通过linux(一种操作系统)系统标准的TCP协议栈来实现和保证收端的数据包的有序性,再通过对数据的解封,从而恢复原始数据发往上层应用。
实施中,虚拟网卡是通过ioctl接口配置的。
具体的,虚拟网卡有一些特殊的参数,需要修改调整。标准的IP link(IP链路)命令无法修改调整这些特殊参数。所以,可以通过nw配置应用程序,执行nw命令来配置管理虚拟网卡的特殊参数。nw应用程序和虚拟网卡之间,通过Linux标准的ioctl(设备驱动程序中设备控制接口函数)接口进行数据交互。
基于同一发明构思,本发明实施例中还提供了一种通信设备及计算机可读存储介质,由于这些设备解决问题的原理与通信方法相似,因此这些设备的实施可以参见方法的实施,重复之处不再赘述。
在实施本发明实施例提供的技术方案时,可以按如下方式实施。
图3为通信设备结构示意图,如图所示,设备中包括:
处理器300,用于读取存储器320中的程序,执行下列过程:
与通信对端建立虚拟隧道,所述虚拟隧道将被通信端与通信对端视为虚拟网卡;
在两个虚拟网卡之间,使用MPTCP连接建立通信通道;
将需要进行带宽叠加和/或切换的流量,导流至对端的虚拟网卡上进行传输;
收发机310,用于在处理器300的控制下接收和发送数据。
实施中,进一步包括:
对通信对端进行身份认证,认证通过后导流至对端的虚拟网卡上进行传输。
实施中,通过设置路由规则将需要进行带宽叠加和/或切换的流量,导流至对端的虚拟网卡上进行传输。
实施中,在两个虚拟网卡之间,使用MPTCP连接建立通信通道,包括:
通知通信对端用于参与MPTCP通信的IP地址列表,用以供通信对端按照fullmesh算法在多个WAN之间的多个路径上建立子流,构建一个MPTCP连接。
实施中,在两个虚拟网卡之间,使用MPTCP连接建立通信通道,包括:
接收通信对端通知的用于参与MPTCP通信的IP地址列表后,通信端按照fullmesh算法在多个WAN之间的多个路径上建立子流,构建一个MPTCP连接。
实施中,将需要进行带宽叠加和/或切换的流量,导流至对端的虚拟网卡上进行传输,包括:
将需发送的TCP数据转换为UDP数据包;
选择线路,将UDP数据包分配到不同子流上发送到对应的底层网卡后进行传输。
实施中,所述通信设备是具有多WAN、多线路、多通道、或多路径的通信设备。
实施中,将UDP数据包分配到不同子流上发送时,进一步包括:
根据每个WAN口的通信状态和/或负载将UDP数据包分配到不同子流上发送。
实施中,进一步包括:
将接收的UDP数据包转换为TCP数据后,发往MPTCP socket接口处后,恢复成原始数据发往上层应用。
实施中,虚拟网卡是通过ioctl接口配置的。
其中,在图3中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器300代表的一个或多个处理器和存储器320代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机310可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。处理器300负责管理总线架构和通常的处理,存储器320可以存储处理器300在执行操作时所使用的数据。
本发明实施例中还提供了一种通信设备,包括:
隧道模块,用于与通信对端建立虚拟隧道,所述虚拟隧道将被通信端与通信对端视为虚拟网卡;
连接模块,用于在两个虚拟网卡之间,使用MPTCP连接建立通信通道;
传输模块,用于将需要进行带宽叠加和/或切换的流量,导流至对端的虚拟网卡上进行传输。
实施中,传输模块进一步用于对通信对端进行身份认证,认证通过后导流至对端的虚拟网卡上进行传输。
实施中,传输模块进一步用于通过设置路由规则将需要进行带宽叠加和/或切换的流量,导流至对端的虚拟网卡上进行传输。
实施中,连接模块进一步用于在两个虚拟网卡之间使用MPTCP连接建立通信通道时,包括:通知通信对端用于参与MPTCP通信的IP地址列表,用以供通信对端按照fullmesh算法在多个WAN之间的多个路径上建立子流,构建一个MPTCP连接。
实施中,连接模块进一步用于在两个虚拟网卡之间使用MPTCP连接建立通信通道时,包括:接收通信对端通知的用于参与MPTCP通信的IP地址列表后,通信端按照fullmesh算法在多个WAN之间的多个路径上建立子流,构建一个MPTCP连接。
实施中,传输模块进一步用于将需要进行带宽叠加和/或切换的流量,导流至对端的虚拟网卡上进行传输,包括:
将需发送的TCP数据转换为UDP数据包;
选择线路,将UDP数据包分配到不同子流上发送到对应的底层网卡后进行传输。
实施中,所述通信设备是具有多WAN、多线路、多通道、或多路径的通信设备。
实施中,传输模块进一步用于将UDP数据包分配到不同子流上发送时,根据每个WAN口的通信状态和/或负载将UDP数据包分配到不同子流上发送。
实施中,传输模块进一步用于将接收的UDP数据包转换为TCP数据后,发往MPTCPsocket接口处后,恢复成原始数据发往上层应用。
实施中,隧道模块进一步用于通过ioctl接口配置虚拟网卡。
为了描述的方便,以上所述装置的各部分以功能分为各种模块或单元分别描述。当然,在实施本发明时可以把各模块或单元的功能在同一个或多个软件或硬件中实现。
本发明实施例中还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行通信方法的计算机程序。
具体实施可以参见通信方法的实施。
综上所述,本发明实施例中提供的技术方案,实现了单连接会话的带宽叠加。
在两端都是多WAN口的情况下,在两端只建立一个隧道,也即先使用MPTCP技术,在通信两端搭建一个MPTCP隧道,实现自动在多WAN口之间切换,和/或能自动叠加多WAN口的带宽资源。
进一步的,利用TCP/UDP转换驱动模块,可以通过Linux标准的TCP/IP协议栈的HOOK(钩子)功能来实现,不需要借助第三方模块来实现。在HOOK钩子函数中,实现TCP/UDP数据包转换的处理。
本方案对任何流量类型都具备单连接会话的带宽叠加功能和多WAN口之间的自动切换功能。只要涉及到多WAN、多线路、多通道、多路径的通信问题,本方案都可以在其中进行实施。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (13)
1.一种通信方法,其特征在于,包括:
通信端与通信对端建立虚拟隧道,所述虚拟隧道将被通信端与通信对端视为虚拟网卡;
通信端在两个虚拟网卡之间,使用多路径传输控制协议MPTCP连接建立通信通道;
通信端将需要进行带宽叠加和/或切换的流量,导流至对端的虚拟网卡上进行传输。
2.如权利要求1所述的方法,其特征在于,进一步包括:
对通信对端进行身份认证,认证通过后导流至对端的虚拟网卡上进行传输。
3.如权利要求1所述的方法,其特征在于,通过设置路由规则将需要进行带宽叠加和/或切换的流量,导流至对端的虚拟网卡上进行传输。
4.如权利要求1所述的方法,其特征在于,在两个虚拟网卡之间,使用MPTCP连接建立通信通道,包括:
通知通信对端用于参与MPTCP通信的网际互连协议IP地址列表,用以供通信对端按照全网络fullmesh算法在多个广域网WAN之间的多个路径上建立子流,构建一个MPTCP连接。
5.如权利要求1所述的方法,其特征在于,在两个虚拟网卡之间,使用MPTCP连接建立通信通道,包括:
接收通信对端通知的用于参与MPTCP通信的IP地址列表后,通信端按照fullmesh算法在多个WAN之间的多个路径上建立子流,构建一个MPTCP连接。
6.如权利要求1至5任一所述的方法,其特征在于,通信端将需要进行带宽叠加和/或切换的流量,导流至对端的虚拟网卡上进行传输,包括:
将需发送的传输控制协议TCP数据转换为用户数据报协议UDP数据包;
选择线路,将UDP数据包分配到不同子流上发送到对应的底层网卡后进行传输。
7.如权利要求6所述的方法,其特征在于,所述通信端和/或通信对端是具有多WAN、多线路、多通道、或多路径的通信设备。
8.如权利要求7所述的方法,其特征在于,将UDP数据包分配到不同子流上发送时,进一步包括:
根据每个WAN口的通信状态和/或负载将UDP数据包分配到不同子流上发送。
9.如权利要求1至5任一所述的方法,其特征在于,进一步包括:
将接收的UDP数据包转换为TCP数据后,发往多路径传输控制协议套接字MPTCP socket接口处后,恢复成原始数据发往上层应用。
10.如权利要求1至5任一所述的方法,其特征在于,虚拟网卡是通过ioctl接口配置的。
11.一种通信设备,其特征在于,包括:
处理器,用于读取存储器中的程序,执行下列过程:
与通信对端建立虚拟隧道,所述虚拟隧道将被通信端与通信对端视为虚拟网卡;
在两个虚拟网卡之间,使用MPTCP连接建立通信通道;
将需要进行带宽叠加和/或切换的流量,导流至对端的虚拟网卡上进行传输;
收发机,用于在处理器的控制下接收和发送数据。
12.一种通信设备,其特征在于,包括:
隧道模块,用于与通信对端建立虚拟隧道,所述虚拟隧道将被通信端与通信对端视为虚拟网卡;
连接模块,用于在两个虚拟网卡之间,使用MPTCP连接建立通信通道;
传输模块,用于将需要进行带宽叠加和/或切换的流量,导流至对端的虚拟网卡上进行传输。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至10任一所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111224343.2A CN116016025A (zh) | 2021-10-19 | 2021-10-19 | 一种通信方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111224343.2A CN116016025A (zh) | 2021-10-19 | 2021-10-19 | 一种通信方法、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116016025A true CN116016025A (zh) | 2023-04-25 |
Family
ID=86030394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111224343.2A Pending CN116016025A (zh) | 2021-10-19 | 2021-10-19 | 一种通信方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116016025A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116633847A (zh) * | 2023-05-25 | 2023-08-22 | 上海贝锐信息科技股份有限公司 | 一种通信系统、方法、装置、设备及存储介质 |
-
2021
- 2021-10-19 CN CN202111224343.2A patent/CN116016025A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116633847A (zh) * | 2023-05-25 | 2023-08-22 | 上海贝锐信息科技股份有限公司 | 一种通信系统、方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109218186B (zh) | 一种多路径数据传输处理方法及网络设备 | |
US10085253B2 (en) | Methods and apparatus for controlling wireless access points | |
US9231820B2 (en) | Methods and apparatus for controlling wireless access points | |
CN111699666B (zh) | 用于高效多径传输的技术 | |
US20170251515A1 (en) | Methods and systems for managing bonded communications across multiple communication networks | |
CN104541483B (zh) | 用于连接性故障时为家庭网络启用重新路由的方法和系统 | |
Wang et al. | SDUDP: A reliable UDP-Based transmission protocol over SDN | |
CN101860491B (zh) | 聚合类链路双向转发检测方法及其设备 | |
EP2380320A1 (en) | Transparent interaction with multi-layer protocols via selective bridging and proxying | |
EP2569922A1 (en) | Cross-stratum optimization protocol | |
US10367893B1 (en) | Method and apparatus of performing peer-to-peer communication establishment | |
CN102546559A (zh) | 受限网络中端到端传输数据的方法、设备和系统 | |
US20050120140A1 (en) | Method of and system for multi-patch communication | |
Condoluci et al. | Fixed-mobile convergence in the 5G era: From hybrid access to converged core | |
JP2017518717A (ja) | 動的なデータ中継としてのプロキシ装置の使用 | |
CN116016025A (zh) | 一种通信方法、设备及存储介质 | |
CN114500176A (zh) | 用于vpn的多流负载均衡方法、装置、系统及存储介质 | |
CN115766605A (zh) | 网络拥塞控制方法、装置及系统 | |
CN107104892A (zh) | 网络加速的方法和装置 | |
CN110300064A (zh) | 一种数据流量处理方法、设备及系统 | |
CN112838983B (zh) | 数据传输方法、系统、设备、代理服务器及存储介质 | |
CA2997246A1 (en) | Hybrid data transport solution, in particular for satellite links | |
Zhou et al. | Performance enhancement of multipath TCP with cooperative relays in a collaborative community | |
CN105847275A (zh) | 一种数据传输通道建立方法、系统和服务器 | |
CN113271252A (zh) | 通信建立方法、系统和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |