CN117527730A - 远程通信系统、远程通信方法及装置 - Google Patents
远程通信系统、远程通信方法及装置 Download PDFInfo
- Publication number
- CN117527730A CN117527730A CN202210901648.0A CN202210901648A CN117527730A CN 117527730 A CN117527730 A CN 117527730A CN 202210901648 A CN202210901648 A CN 202210901648A CN 117527730 A CN117527730 A CN 117527730A
- Authority
- CN
- China
- Prior art keywords
- network card
- link layer
- data frame
- data link
- layer data
- 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
- 238000004891 communication Methods 0.000 title claims abstract description 46
- 238000000034 method Methods 0.000 title claims description 56
- 230000015654 memory Effects 0.000 claims description 36
- 238000004590 computer program Methods 0.000 claims description 19
- 238000013519 translation Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 6
- 230000001133 acceleration Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/60—Software-defined switches
- H04L49/602—Multilayer or multiprotocol switching, e.g. IP switching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种远程通信系统、远程通信方法及装置,远程通信系统包括终端设备和二层转发设备,终端设备与二层转发设备之间具有NAT连接,终端设备包括第一虚拟网卡和第一物理网卡,二层转发设备包括第二虚拟网卡和第二物理网卡;第一虚拟网卡获取数据链路层数据帧,并将数据链路层数据帧向第一物理网卡发送;第一物理网卡接收数据链路层数据帧并将数据链路层数据帧通过NAT连接向二层转发设备发送;第二物理网卡通过NAT连接接收第一物理网卡发送的数据链路层数据帧,并将数据链路层数据帧向第二虚拟网卡发送;第二虚拟网卡接收第二物理网卡发送的数据链路层数据帧,通过虚拟网卡与NAT连接配合,以实现远程通信。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种远程通信系统、远程通信方法及装置。
背景技术
随着互联网的发展,对不同设备间远程通信的诉求越来越强烈,例如,手机与手机、手机与PC、手机与家居设备、家居设备与家居设备之间的远程通信。
特别是生态智能家居场景,用户常常通过手机控制不同的家居设备,但是由于不同生态的家居设备支持的协议不一样,导致用户无法通过手机对支持不同协议的家居设备进行控制。
发明内容
鉴于以上内容,有必要提供一种远程通信系统、远程通信方法及装置,通过在终端设备和二层转发设备之间建立NAT连接,并在终端设备侧通过虚拟网卡代理数据链路层数据帧并将数据链路层数据帧通过NAT连接向二层转发设备,从而实现终端设备通过二层转发设备控制与二层转发设备连接的多个设备。
第一方面,本申请实施例提供了一种远程通信系统,所述远程通信系统包括终端设备和二层转发设备,所述终端设备与所述二层转发设备之间具有网络地址转换NAT连接,所述终端设备包括第一虚拟网卡和第一物理网卡,所述第一虚拟网卡和所述第一物理网卡桥接,所述二层转发设备包括第二虚拟网卡和第二物理网卡,所述第二虚拟网卡和所述第二物理网卡桥接;所述第一虚拟网卡用于获取数据链路层数据帧,并将所述数据链路层数据帧向所述第一物理网卡发送;所述第一物理网卡用于接收所述数据链路层数据帧并将所述数据链路层数据帧通过所述NAT连接向所述二层转发设备发送;所述第二物理网卡用于通过所述NAT连接接收所述第一物理网卡发送的数据链路层数据帧,并将所述数据链路层数据帧向所述第二虚拟网卡发送;所述第二虚拟网卡用于接收所述第二物理网卡发送的数据链路层数据帧。
采用上述技术方案,通过在终端设备创建虚拟网卡作为数据链路层数据帧的代理,由虚拟网卡将代理的数据链路层数据帧向物理网卡发送,物理网卡通过终端设备和二层转发设备之间的NAT连接将数据链路层数据帧发送,并由二层转发设备向与其连接的待控制设备发送,终端设备通过终端设备与待控制设备进行远程通信,且待控制设备与二层转发设备连接。
在上述第一方面的一种可能的实现中,所述第一虚拟网卡进一步用于在内核态获取所述数据链路层数据帧,并将所述数据链路层数据帧向所述第一物理网卡发送;所述第一物理网卡进一步用于在内核态接收所述第一虚拟网卡发送的所述数据链路层数据帧并将所述数据链路层数据帧通过所述NAT连接向所述二层转发设备发送。
采用上述技术方案,终端设备通过在内核态传输数据链路层数据帧,减少了终端设备用户态和内核态之间的切换,提升转发效率。
在上述第一方面的一种可能的实现中,所述第一虚拟网卡还用于:确定所述数据链路层数据帧匹配预设策略,则将所述数据链路层数据帧向所述第一物理网卡发送。
采用上述方案,在第一虚拟网卡向第一物理网卡发送数据链路层数据帧时,若数据链路层数据帧满足预设策略,则将第一虚拟网卡向第一物理网卡直接发送数据链路层数据帧,相较于,第一虚拟网卡首先向网络协议栈发送数据链路层数据帧,再有网络协议栈向第一物理网卡发送数据链路层数据帧,实现软加速功能,减少内存拷贝,提升传输速度。
在上述第一方面的一种可能的实现中,所述终端设备还包括第一网络协议栈,第一虚拟网卡还用于:向所述第一网络协议栈发送所述数据链路层数据帧;所述网络协议栈用于接收所述数据链路层数据帧,并将所述数据链路层数据帧向所述第一物理网卡发送。
在上述第一方面的一种可能的实现中,所述二层转发设备还包括第二网络协议栈,所述第二物理网卡还用于接收数据链路层数据帧,并将所述数据链路层数据帧向所述第二网络协议栈发送;所述第二网络协议栈接收所述数据链路层数据帧,并将所述数据链路层数据帧向所述第二虚拟网卡发送。
第二方面,提供一种远程通信方法,应用于一终端设备,所述终端设备包括第一虚拟网卡和第一物理网卡,所述第一虚拟网卡和所述第一物理网卡桥接,所述远程通信方法包括:所述第一虚拟网卡获取数据链路层数据帧,并将所述数据链路层数据帧向所述第一物理网卡发送;所述第一物理网卡接收所述数据链路层数据帧并将所述数据链路层数据帧通过NAT连接向二层转发设备发送,其中所述终端设备与所述二层转发设备之间具有网络地址转换NAT连接。
在上述第二方面的一种可能的实现中,所述第一虚拟网卡获取数据链路层数据帧,并将所述数据链路层数据帧向所述第一物理网卡发送;所述第一物理网卡接收所述数据链路层数据帧包括:所述第一虚拟网卡在内核态获取所述数据链路层数据帧,并将所述数据链路层数据帧向所述第一物理网卡发送;所述第一物理网卡在内核态接收所述第一虚拟网卡发送的所述数据链路层数据帧。
在上述第二方面的一种可能的实现中,所述将所述数据链路层数据帧向所述第一物理网卡发送包括:所述第一虚拟网卡确定所述数据链路层数据帧匹配预设策略,则将所述数据链路层数据帧向所述第一物理网卡发送。
在上述第二方面的一种可能的实现中,所述终端设备还包括第一网络协议栈,所述将所述数据链路层数据帧向所述第一物理网卡发送包括:所述第一虚拟网卡向所述第一网络协议栈发送所述数据链路层数据帧;所述第一网络协议栈接收所述数据链路层数据帧,并将所述数据链路层数据帧向所述第一物理网卡发送。
第三方面,提供一种远程通信方法,应用于二层转发设备,所述二层转发设备包括第二虚拟网卡和第二物理网卡,所述第二虚拟网卡和所述第二物理网卡桥接;所述远程通信方法包括:所述第二物理网卡通过NAT连接接收终端设备发送的数据链路层数据帧,并将所述数据链路层数据帧向所述第二虚拟网卡发送,其中,所述终端设备与所述二层转发设备之间具有网络地址转换NAT连接;所述第二虚拟网卡接收所述第二物理网卡发送的数据链路层数据帧。
在上述第三方面的一种可能的实现中,所述第二物理网卡通过NAT连接接收终端设备发送的数据链路层数据帧,并将所述数据链路层数据帧向所述第二虚拟网卡发送,所述第二虚拟网卡接收所述第二物理网卡发送的数据链路层数据帧包括:所述第二物理网卡通过所述NAT连接在内核态接收所述终端设备发送的所述数据链路层数据帧,并将所述数据链路层数据帧向所述第二虚拟网卡发送;所述第二虚拟网卡在内核态接收所述第二物理网卡发送的所述数据链路层数据帧。
在上述第三方面的一种可能的实现中,所述远程通信方法还包括:所述第二虚拟网卡获取数据链路层数据帧;所述第二虚拟网卡确定所述数据链路层数据帧匹配预设策略,则将所述数据链路层数据帧向所述第二物理网卡发送。
在上述第三方面的一种可能的实现中,所述二层转发设备还包括第二网络协议栈,所述远程通信方法还包括:所述第二物理网卡接收数据链路层数据帧,并将所述数据链路层数据帧向所述第二网络协议栈发送;所述第二网络协议栈接收所述数据链路层数据帧,并将所述数据链路层数据帧向所述第二虚拟网卡发送。
第四方面,提供一种终端设备,所述终端设备包括:存储器,用于存储指令;与所述存储器耦合的处理器,当所述指令被所述处理器执行时,使得所述终端设备实现如第二方面任一项所述的远程通信方法。
第五方面,提供一种二层转发设备,所述二层转发设备包括:存储器,用于存储指令;与所述存储器耦合的处理器,当所述指令被所述处理器执行时,使得所述二层转发设备实现如第三方面所述的远程通信方法。
第六方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时,实现如第二方面、第三方面任一项所述的远程通信方法。
第七方面,提供一种计算机程序产品,包括程序,当所述程序被处理器执行时,实现如第二方面、第三方面任意一项所述的远程通信方法。
应当理解地,第二方面至第七方面中任一种设计所带来的技术效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
图1为一种智能家居网络的环境示意图。
图2为本申请实施例提供一种远程通信的环境示意图。
图3为本申请实施例提供一种远程通信的模块示意图。
图4为本申请实施例提供的终端设备的一种数据传输的示意图。
图5为终端设备的数据传输的示意图。
图6为本申请实施例提供的终端设备的另一种数据传输的示意图。
图7为本申请实施例提供的终端设备的又一种数据传输的示意图。
图8为本申请实施例提供的远程通信方法的流程示意图。
图9为本申请实施例提供的另一种远程通信方法的流程示意图。
图10为本申请实施例的终端设备的硬件示意图。
图11为本申请实施例的二层转发设备的硬件示意图。
具体实施方式
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请实施例的描述中,“示例性的”或者“例如”等词用于标识作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请中的技术领域的技术人员通常理解的含义相同。本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。应理解,本申请中除非另有说明,“多个”是指两个或多于两个,“和/或”包括关联的所列项目中的一个或多个的任何和所有组合。
首先,介绍本申请实施例所涉及的技术术语:
1、桥接(Bridging)
桥接就是把一台终端设备或路由器等设备上的若干个网络接口“连接”起来。其中一个网络接口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。
2、TAP
TAP是操作系统内核中的虚拟网络设备,TAP设备是一个二层设备,通过/dev/tapX文件可以收发MAC层数据包,即数据链路层数据帧,拥有MAC层功能,TAP设备可以与物理网卡做桥bridge,支持MAC层广播。TAP设备从传统网络设备(如网桥)接收报文并进行相应的转发处理。
3、物理网卡和虚拟网卡
物理网卡是硬件设备,位于硬件层,可接收外部设备发送的数据或向外部设备发送数据;虚拟网卡是操作系统内核中的虚拟网络设备,由软件实现,并向运行于操作系统上的软件提供与硬件的网络设备完全相同的功能,但虚拟网卡在内存中拷贝数据。虚拟网卡可为TAP设备。对于物理网卡而言,一端连接的是物理网络,一端连接的是网络协议栈。对于虚拟网卡设备而言,一端连接的是应用程序(通过字符设备文件/net/dev/tap),一端连接的是网络协议栈。
4、NAT穿越
NAT是一种地址转换技术,它可以将IP报文头中的IP地址转换为另一个IP地址,并通过转换端口号达到地址重用的目的,为了解决NAT部署给点到点网络带来的问题,出现了一些点到点网络的NAT穿越技术。例如反向链接技术、应用层网关ALG(Application LevelGateway)技术、打洞技术(Hole Punching)、中间件技术等。
为了便于理解,下面结合附图对本申请实施例中的技术方案进行描述。
首先结合图1介绍一种应用智能家居网络的环境示意图。
如图1所示,智能家居网络包括多个家居设备,如图1所示的投影仪、扫描仪、智能摄像头、平板电脑等,用户常常通过终端设备远程控制智能家居网络的家居设备,例如在用户的终端设备和智能家居设备之间建立基于NAT技术的NAT连接,然后基于NAT连接建立虚拟专用网络VPN隧道连接,并通过VPN隧道传输终端设备和智能家居设备之间的交互消息。然而终端设备无法建立VPN服务器且VPN隧道仅能代理传输三层网络协议报文,无法代理数据链路层数据帧。另外智能家居网络的多个家居设备属于不同的生态系统,导致多个家居设备支持不同的私有协议,仅基于NAT穿越技术无法实现用户使用的手机与多个支持不同私有协议的家居设备进行远程通信,以便通过手机控制多个支持不同私有协议的家居设备。
请参见图2,基于上述问题,本申请实施例提供一种远程通信系统,该远程通信系统包括终端设备、二层转发设备及多个家居设备,多个家居设备接入二层转发设备所在的无线局域网WLAN,终端设备与二层转发设备之间建立NAT连接。如此,终端设备通过向二层转发设备发送数据链路层数据帧,并通过二层转发设备将数据链路层数据帧向与其建立WLAN连接的家居设备发送,以实现与多个家居设备远程通信,从而实现对多个支持不同协议的家居设备进行控制。
在一些实施例中,二层转发设备为路由器。
可以理解,在其他实施例中,家居设备可与二层转发设备通过网线进行有线连接或通过短距离通信技术,例如WiFi技术进行无线连接。
请参见图3,终端设备包括第一虚拟网卡和第一物理网卡,第一虚拟网卡和第一物理网卡桥接,二层转发设备包括第二虚拟网卡和第二物理网卡,第二虚拟网卡和第二物理网卡桥接。
当终端设备向家居设备发送数据链路层数据帧,以便通过与家居设备之间的远程通信控制家居设备:
第一虚拟网卡用于获取该数据链路层数据帧,并将该数据链路层数据帧向第一物理网卡发送;
第一物理网卡用于接收第一虚拟网卡发送的数据链路层数据帧,并通过NAT连接将该数据链路层数据帧向二层转发设备发送。
在一些实施例中,终端设备的应用程序形成控制指令,并将控制指令向终端设备的网络协议栈发送,网络协议栈依据控制指令形成数据链路层数据帧并进行路由判决,以将数据链路层数据帧向第一虚拟网卡发送,第一虚拟网卡读取数据链路层数据帧并将数据链路层数据帧再次向网络协议栈发送,网络协议栈接收数据链路层数据帧之后,将数据链路层数据帧向第一物理网卡发送,由第一网卡通过NAT连接将该数据链路层数据帧向二层转发设备发送。
二层转发设备的第二物理网卡用于通过NAT连接接收终端设备发送的数据链路层数据帧,并将数据链路层数据帧向第二虚拟网卡发送;
第二虚拟网卡用于接收第二物理网卡发送的数据链路层数据帧。
在一些实施例中,第二物理网卡通过NAT连接接收终端设备发送的数据链路层数据帧,第二虚拟网卡接收第二物理网卡发送的数据链路层数据帧,第二虚拟网卡将数据链路层数据帧向二层转发设备的网络协议栈发送,并由网络协议栈进行路由,然后网络协议栈将数据链路层数据帧发送给对应的第二物理网卡,并由第二物理网卡向对应的家居设备发送。
在一些实施例中,第一虚拟网卡为在终端设备创建的TAP设备,第二虚拟网卡为在二层转发设备创建的TAP设备。
具体地,使用虚拟网卡控制工具ip tuntap或通过程序操作/dev/net/tap创建虚拟网卡TAP;使用网桥管理工具brctl创建虚拟网桥Bridge。利用虚拟网桥Bridge将终端设备或二层转发设备的物理网卡和虚拟网卡TAP桥接起来。
如此,通过在终端设备和二层转发设备中创建虚拟网卡做数据链路层数据帧的代理服务,通过第一虚拟网卡将数据链路层数据帧向终端设备的第一物理网卡转发,第一物理网卡通过终端设备和二层转发设备之间的NAT连接将数据链路层数据帧向二层转发设备,并由二层转发设备的第二物理网卡通过NAT连接接收终端设备发送的数据链路层数据帧,然后第二物理网卡将数据链路层数据帧发送给对应的第二虚拟网卡,并由第二虚拟网卡发送给对应的待控制设备。
进一步地,在家居设备向终端设备发送数据链路层数据帧时,二层转发设备的第二物理网卡还用于接收家居设备发送的数据链路层数据帧,并将数据链路层数据帧向二层转发设备的网络协议栈发送,并由网络协议栈向第二虚拟网卡发送,第二虚拟网卡读取数据链路层数据帧并将数据链路层数据帧向网络协议栈发送,网络协议栈向对应的第二物理网卡发送,第二物理网卡通过NAT连接向终端设备接收对应的数据链路层数据帧。
第一物理网卡用于通过NAT连接接收第二物理网卡发送的数据链路层数据帧,并将数据链路层数据帧向第一虚拟网卡发送;
第一虚拟网卡用于接收第二物理网卡发送的数据链路层数据帧,并将该报文向对应的应用程序发送。
如此,家居设备通过二层转发设备向终端设备发送数据链路层数据帧,二层转发设备通过第二虚拟网卡代理并转发数据链路层数据帧,第二物理网卡通过NAT连接向终端设备发送数据链路层数据帧;第一物理网卡通过NAT连接接收二层转发设备发送的数据链路层数据帧,并将数据链路层数据帧向第一虚拟网卡发送。
请参见图4,为终端设备向二层转发设备发送数据链路层数据帧的示意图
如图4所述,终端设备的应用程序APP形成报文并将数据包向网络协议栈发送,网络协议栈对报文进行路由匹配(例如通过路由确定需向第一虚拟网卡发送报文),将报文转换为数据链路层数据帧,并将数据链路层数据帧向第一虚拟网卡发送,第一虚拟网卡读取对应的数据链路层数据帧,并将读取的数据链路层数据帧向网络协议栈发送,网络协议栈接收到数据链路层数据帧之后,将数据链路层数据帧发送给对应的第一物理网卡,并由对应的第一物理网卡向二层转发设备发送。
请参见图5,图5为一种终端设备向与二层转发设备进行远程通信的示意图。
其中路径1为终端设备接收二层转发设备发送的数据链路层数据帧,终端设备的第一物理网卡在用户态的recv接收该二层转发设备发送的数据链路层数据帧,并向在用户态的第一虚拟网卡转发数据链路层数据帧(例如通过write写入在用户态的第一虚拟网卡),第一虚拟网卡接收到数据链路层数据帧之后,向在内核态的第一虚拟网卡转发数据链路层数据帧,并由第一虚拟网卡将该数据链路层数据帧向终端设备的网络协议栈转发。
上述实施例中,数据链路层数据帧的传输过程均需经过终端设备的用户态和内核态之间的切换,数据链路层数据帧传输过程中存在软中断,影响数据链路层数据帧的转发效率。
请参见图6,为本申请提供的一种终端设备与二层转发设备进行远程通信的示意图。
其中路径3为终端设备接收二层转发设备发送的数据链路层数据帧,终端设备的第一物理网卡在内核态接收该二层转发设备发送的数据链路层数据帧,并向在内核态的第一虚拟网卡转发数据链路层数据帧,并由在内核态的第一虚拟网卡将该数据链路层数据帧向终端设备的网络协议栈转发,以便通过网络协议栈通过路由将数据链路层数据帧发送给对应的应用。
其中路径4为终端设备向二层转发设备发送的数据链路层数据帧,终端设备的在内核态的第一虚拟网卡接收网络协议栈发送的数据链路层数据帧,然后内核态的第一虚拟网卡向在内核态的第一物理网卡发送,然后由在内核态的第一物理网卡通过NAT连接将数据链路层数据帧向二层转发设备发送。
上述数据链路层数据帧传输过程均在内核态执行,减少了终端设备与二层转发设备之间数据链路层数据帧的内核态和用户态之间的切换。提升转发效率,提升带宽降低时延。
在一些实施例中,在终端设备的第一虚拟网卡获取对应的应用程序发送的数据链路层数据帧时,判断该数据链路层数据帧是否满足预设传输规则,若满足预设规则,则由在内核态的第一虚拟网卡获取该数据链路层数据帧,然后在内核态的第一虚拟网卡将数据链路层数据帧发送给对应的网络协议栈,并由对应的网络协议栈将数据链路层数据帧通过第一物理网卡发送给对应的二层转发设备。若不满足预设规则,则由在用户态的第一虚拟网卡获取数据链路层数据帧。
其中,预设规则可预先配置在第一虚拟网卡中,例如预设规则可为目的地址为预设MAC地址的数据链路层数据帧。
请再次参见图4,终端设备向二层转发设备发送数据链路层数据帧过程中,需要将数据链路层数据帧向网络协议栈发送两次,增大了数据链路层数据帧的传输时延。
请参见图7,本申请的第一虚拟网卡在接收到数据链路层数据帧时,判断数据链路层数据帧是否满足预设策略,若数据链路层数据帧满足预设策略,则第一虚拟网卡将数据链路层数据帧向第一物理网卡发送,由第一物理网卡通过NAT连接将数据链路层数据帧向二层转发设备发送。
在一些实施例,预设策略包括匹配条件及匹配条件对应的转发动作,例如,匹配条件为数据链路层数据帧的源MAC地址和目的MAC地址,若第一虚拟网卡接收到数据链路层数据帧满足匹配条件,则对数据链路层数据帧执行对应的转发动作,即将数据链路层数据帧向目的端口转发,以将数据链路层数据帧向对应的二层转发设备发送。减少内存拷贝,提升传输速度。
在一些实施例中,第一虚拟网卡接收目的地址为目标MAC地址的数据链路层数据帧时,形成目的MAC地址和端口和源MAC和端口之间的映射关系,并依据该映射关系形成预设策略。如图7所示,第一虚拟网卡依据接收目的地址为目标MAC地址的数据链路层数据帧时形成软加速学习配表,当接收到其他数据链路层数据帧,通过查表,即查找软加速学习配表中的软加速表项,判断数据链路层数据帧是否满足软加速学习配表中的规则,若满足,则第一虚拟网卡将数据链路层数据帧向第一物理网卡发送,由第一物理网卡通过NAT连接将数据链路层数据帧向二层转发设备发送。
当然,在其他实施例中,用户还可在第一虚拟网卡配置对应的预设策略。
请参见图8,为本申请实施例提供的一种远程通信方法的流程示意图。该远程通信方法应用于一终端设备。下面以远程通信方法应用于图2中的终端设备为例进行详细说明。
S801、第一虚拟网卡获取数据链路层数据帧,并将数据链路层数据帧向第一物理网卡发送;
S802、第一物理网卡接收数据链路层数据帧并将数据链路层数据帧通过NAT连接向二层转发设备发送。
其中,终端设备与二层转发设备之间具有网络地址转换NAT连接。
在一些实施例中,S801和S802中第一虚拟网卡获取数据链路层数据帧,并将数据链路层数据帧向第一物理网卡发送;第一物理网卡接收数据链路层数据帧包括:
第一虚拟网卡在内核态获取数据链路层数据帧,并将数据链路层数据帧向第一物理网卡发送;
第一物理网卡在内核态接收第一虚拟网卡发送的数据链路层数据帧。
在一些实施例中,S802中将数据链路层数据帧向第一物理网卡发送包括:
第一虚拟网卡确定数据链路层数据帧匹配预设策略,则将数据链路层数据帧向第一物理网卡发送。
在一些实施例中,终端设备还包括第一网络协议栈,S802中将所述数据链路层数据帧向所述第一物理网卡发送包括:
第一虚拟网卡向第一网络协议栈发送数据链路层数据帧;
第一网络协议栈接收数据链路层数据帧,并将数据链路层数据帧向第一物理网卡发送。
请参见图9,为本申请实施例提供的一种远程通信方法的流程示意图。该远程通信方法应用于一二层转发设备。下面以远程通信方法应用于图2中的二层转发设备为例进行详细说明。
二层转发设备包括第二虚拟网卡和第二物理网卡,第二虚拟网卡和第二物理网卡桥接。远程通信方法包括以下步骤:
S901、第二物理网卡通过NAT连接接收终端设备发送的数据链路层数据帧,并将数据链路层数据帧向第二虚拟网卡发送。
其中,所述终端设备与所述二层转发设备之间具有网络地址转换NAT连接。
S902、第二虚拟网卡接收第二物理网卡发送的数据链路层数据帧。
在一些实施例中,第二物理网卡通过NAT连接接收终端设备发送的数据链路层数据帧,并将数据链路层数据帧向第二虚拟网卡发送,第二虚拟网卡接收第二物理网卡发送的数据链路层数据帧包括:
第二物理网卡通过所述NAT连接在内核态接收终端设备发送的数据链路层数据帧,并将数据链路层数据帧向所述第二虚拟网卡发送;
第二虚拟网卡在内核态接收第二物理网卡发送的数据链路层数据帧。
在一些实施例中,远程通信方法还包括:
所述第二虚拟网卡获取数据链路层数据帧;
所述第二虚拟网卡确定所述数据链路层数据帧匹配预设策略,则将数据链路层数据帧向所述第二物理网卡发送。
在一些实施例中,二层转发设备还包括第二网络协议栈,远程通信方法还包括:
第二物理网卡接收数据链路层数据帧,并将所述数据链路层数据帧向第二网络协议栈发送;
第二网络协议栈接收数据链路层数据帧,并将数据链路层数据帧向第二虚拟网卡发送。
图10为本申请一实施例所提供的终端设备的架构示意图。所述终端设备100包括存储器121、处理器122、通讯总线123和通信器125,所述存储器121、通信器125通过所述通讯总线123与所述处理器122通信连接。
所述终端设备100还包括存储在所述存储器121中并可在所述处理器122上运行的计算机程序104。
所述处理器122执行所述计算机程序104时实现所述方法实施例中屏幕信息显示方法的步骤。或者,所述处理器122执行所述计算机程序124实现所述系统实施例中各模块/单元的功能。
示例性的,所述计算机程序124可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器121中,并由所述处理器122执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,所述指令段用于描述所述计算机程序124在所述终端设备100中的执行过程。
可以理解地,所述图10仅仅是终端设备100的示例,并不构成对终端设备100的限定,终端设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备100还可以包括输入设备等。
所称处理器122可以是中央处理单元(Central Processing Unit,CPU),还可以包括其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者所述处理器也可以是任何常规的处理器等,所述处理器122是所述终端设备100的控制中心,利用各种接口和线路连接整个终端设备100的各个部分。
所述存储器121可用于存储所述计算机程序124和/或模块/单元,所述处理器122通过运行或执行存储在所述存储器121内的计算机程序和/或模块/单元,以及调用存储在存储器121内的数据,实现所述终端设备100的各种功能。存储器121可以包括外部存储介质,也可以包括内存。此外,存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
所述通信器125可用于与二层转发设备建立NAT连接。
所述终端设备100集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现所述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,所述计算机程序在被处理器执行时,可实现所述各个方法实施例的步骤。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
接下来请参考图11,图11为本申请实施例提供的二层转发设备110的结构图。如图11所示,二层转发设备110包括:处理器111、存储器112及收发器113。存储器112及收发器113和处理器111可以通过总线进行连接。当然,在实际运用中,存储器112及收发器113和处理器111之间可以不是总线结构,而可以是其它结构,例如星型结构,本申请不作具体限定。
可选的,处理器111具体可以是中央处理器、特定应用集成电路(ApplicationSpecific Integrated Circuit,ASIC),一个或多个用于控制程序执行的集成电路,使用现场可编程门阵列(Field Programmable Gate Array,FPGA)开发的硬件电路,基带处理器等。
可选的,处理器111可以包括至少一个处理核心。
可选的,存储器112可以包括只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)和磁盘存储器。存储器112用于存储处理器111运行时所需的数据。存储器112的数量为一个或多个。
可选的,收发器113可以可接收其终端设备发送的数据链路层数据帧或向终端设备发送数据链路层数据帧。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。这些计算机程序代码可以存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中。
本实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在入口设备上运行时,使得入口设备执行上述相关方法步骤实现上述实施例中的远程通信方法。
本实施例还提供了一种计算机程序产品,当该计算机程序产品在入口设备上运行时,使得入口设备执行上述相关步骤,以实现上述实施例中的远程通信方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的远程通信方法。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其他的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块或模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其他的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是一个物理模块或多个物理模块,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
该集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (17)
1.一种远程通信系统,其特征在于,所述远程通信系统包括终端设备和二层转发设备,所述终端设备与所述二层转发设备之间具有网络地址转换NAT连接,所述终端设备包括第一虚拟网卡和第一物理网卡,所述第一虚拟网卡和所述第一物理网卡桥接,所述二层转发设备包括第二虚拟网卡和第二物理网卡,所述第二虚拟网卡和所述第二物理网卡桥接;
所述第一虚拟网卡用于获取数据链路层数据帧,并将所述数据链路层数据帧向所述第一物理网卡发送;
所述第一物理网卡用于接收所述数据链路层数据帧并将所述数据链路层数据帧通过所述NAT连接向所述二层转发设备发送;
所述第二物理网卡用于通过所述NAT连接接收所述第一物理网卡发送的数据链路层数据帧,并将所述数据链路层数据帧向所述第二虚拟网卡发送;
所述第二虚拟网卡用于接收所述第二物理网卡发送的数据链路层数据帧。
2.如权利要求1所述的远程通信系统,其特征在于,所述第一虚拟网卡进一步用于在内核态获取所述数据链路层数据帧,并将所述数据链路层数据帧向所述第一物理网卡发送;
所述第一物理网卡进一步用于在内核态接收所述第一虚拟网卡发送的所述数据链路层数据帧并将所述数据链路层数据帧通过所述NAT连接向所述二层转发设备发送。
3.如权利要求1所述的远程通信系统,其特征在于,所述第一虚拟网卡还用于:
确定所述数据链路层数据帧匹配预设策略,则将所述数据链路层数据帧向所述第一物理网卡发送。
4.如权利要求1所述的远程通信系统,其特征在于,所述终端设备还包括第一网络协议栈,第一虚拟网卡还用于:向所述第一网络协议栈发送所述数据链路层数据帧;
所述网络协议栈用于接收所述数据链路层数据帧,并将所述数据链路层数据帧向所述第一物理网卡发送。
5.如权利要求1所述的远程通信系统,其特征在于,所述二层转发设备还包括第二网络协议栈,所述第二物理网卡还用于接收数据链路层数据帧,并将所述数据链路层数据帧向所述第二网络协议栈发送;
所述第二网络协议栈接收所述数据链路层数据帧,并将所述数据链路层数据帧向所述第二虚拟网卡发送。
6.一种远程通信方法,其特征在于,应用于一终端设备,所述终端设备包括第一虚拟网卡和第一物理网卡,所述第一虚拟网卡和所述第一物理网卡桥接,所述远程通信方法包括:
所述第一虚拟网卡获取数据链路层数据帧,并将所述数据链路层数据帧向所述第一物理网卡发送;
所述第一物理网卡接收所述数据链路层数据帧并将所述数据链路层数据帧通过NAT连接向二层转发设备发送,其中所述终端设备与所述二层转发设备之间具有网络地址转换NAT连接。
7.如权利要求6所述的远程通信方法,其特征在于,所述第一虚拟网卡获取数据链路层数据帧,并将所述数据链路层数据帧向所述第一物理网卡发送;所述第一物理网卡接收所述数据链路层数据帧包括:
所述第一虚拟网卡在内核态获取所述数据链路层数据帧,并将所述数据链路层数据帧向所述第一物理网卡发送;
所述第一物理网卡在内核态接收所述第一虚拟网卡发送的所述数据链路层数据帧。
8.如权利要求6所述的远程通信方法,其特征在于,所述将所述数据链路层数据帧向所述第一物理网卡发送包括:
所述第一虚拟网卡确定所述数据链路层数据帧匹配预设策略,则将所述数据链路层数据帧向所述第一物理网卡发送。
9.如权利要求6所述的远程通信方法,其特征在于,所述终端设备还包括第一网络协议栈,所述将所述数据链路层数据帧向所述第一物理网卡发送包括:
所述第一虚拟网卡向所述第一网络协议栈发送所述数据链路层数据帧;
所述第一网络协议栈接收所述数据链路层数据帧,并将所述数据链路层数据帧向所述第一物理网卡发送。
10.一种远程通信方法,其特征在于,应用于二层转发设备,所述二层转发设备包括第二虚拟网卡和第二物理网卡,所述第二虚拟网卡和所述第二物理网卡桥接;所述远程通信方法包括:
所述第二物理网卡通过NAT连接接收终端设备发送的数据链路层数据帧,并将所述数据链路层数据帧向所述第二虚拟网卡发送,其中,所述终端设备与所述二层转发设备之间具有网络地址转换NAT连接;
所述第二虚拟网卡接收所述第二物理网卡发送的数据链路层数据帧。
11.如权利要求10所述的远程通信方法,其特征在于,所述第二物理网卡通过NAT连接接收终端设备发送的数据链路层数据帧,并将所述数据链路层数据帧向所述第二虚拟网卡发送,所述第二虚拟网卡接收所述第二物理网卡发送的数据链路层数据帧包括:
所述第二物理网卡通过所述NAT连接在内核态接收所述终端设备发送的所述数据链路层数据帧,并将所述数据链路层数据帧向所述第二虚拟网卡发送;
所述第二虚拟网卡在内核态接收所述第二物理网卡发送的所述数据链路层数据帧。
12.如权利要求10所述的远程通信方法,其特征在于,所述远程通信方法还包括:
所述第二虚拟网卡获取数据链路层数据帧;
所述第二虚拟网卡确定所述数据链路层数据帧匹配预设策略,则将所述数据链路层数据帧向所述第二物理网卡发送。
13.如权利要求10所述的远程通信方法,其特征在于,所述二层转发设备还包括第二网络协议栈,所述远程通信方法还包括:
所述第二物理网卡接收数据链路层数据帧,并将所述数据链路层数据帧向所述第二网络协议栈发送;
所述第二网络协议栈接收所述数据链路层数据帧,并将所述数据链路层数据帧向所述第二虚拟网卡发送。
14.一种终端设备,其特征在于,所述终端设备包括:
存储器,用于存储指令;
与所述存储器耦合的处理器,当所述指令被所述处理器执行时,使得所述终端设备实现如权利要求6至9中任一项所述的远程通信方法。
15.一种二层转发设备,其特征在于,所述二层转发设备包括:
存储器,用于存储指令;
与所述存储器耦合的处理器,当所述指令被所述处理器执行时,使得所述二层转发设备实现如权利要求10至13中任一项所述的远程通信方法。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时,实现如权利要求6至13中任一项所述的远程通信方法。
17.一种计算机程序产品,其特征在于,包括程序,当所述程序被处理器执行时,实现如权利要求6至13任意一项所述的远程通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210901648.0A CN117527730A (zh) | 2022-07-28 | 2022-07-28 | 远程通信系统、远程通信方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210901648.0A CN117527730A (zh) | 2022-07-28 | 2022-07-28 | 远程通信系统、远程通信方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117527730A true CN117527730A (zh) | 2024-02-06 |
Family
ID=89744388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210901648.0A Pending CN117527730A (zh) | 2022-07-28 | 2022-07-28 | 远程通信系统、远程通信方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117527730A (zh) |
-
2022
- 2022-07-28 CN CN202210901648.0A patent/CN117527730A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7526569B2 (en) | Router and address identification information management server | |
CN102571587B (zh) | 报文转发方法和设备 | |
CN109218261B (zh) | 一种数据处理方法及数据处理装置 | |
CN109156046B (zh) | 一种家庭网关及其转发业务的方法 | |
TW200306736A (en) | Flexible and scalable integrated access device | |
JP6291834B2 (ja) | 通信装置、通信方法および通信システム | |
WO2020083269A1 (zh) | 一种建立多路径连接的子流的方法、装置和系统 | |
CN111371666B (zh) | 一种处理报文的方法、设备及系统 | |
US10177973B2 (en) | Communication apparatus, communication method, and communication system | |
CN113726915A (zh) | 网络系统及其中的报文传输方法和相关装置 | |
KR20100059939A (ko) | 네트워크 할당 | |
US20030065741A1 (en) | Concurrent bidirectional network communication utilizing send and receive threads | |
CN114697388A (zh) | 数据传输方法及装置 | |
CN117527730A (zh) | 远程通信系统、远程通信方法及装置 | |
US20080215754A1 (en) | Bridging Data Network Communications | |
CN115174310A (zh) | Pdn拨号及配置方法、系统、装置、设备及存储介质 | |
CN113765799A (zh) | 容器报文发送和接收的方法及存储介质、容器通信系统 | |
JP2017098738A (ja) | 制御装置、通信システム、制御方法およびプログラム | |
JP4741401B2 (ja) | 情報転送装置 | |
EP3228048B1 (en) | Method and apparatus for routing data to cellular network | |
CN112751754B (zh) | 双归接入时选择切换为工作状态的端口的方法和设备 | |
JP2008166874A (ja) | Naptルータを介して接続された端末のハンドオフ方法、転送エージェント、端末及びプログラム | |
JP2005020080A (ja) | 加入者端末間通信システム | |
CN115914425A (zh) | 一种网桥透明代理方法、装置、存储介质及设备 | |
CN116155913A (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 |