CN103166824A - 一种互联方法、装置和系统 - Google Patents
一种互联方法、装置和系统 Download PDFInfo
- Publication number
- CN103166824A CN103166824A CN2011104150042A CN201110415004A CN103166824A CN 103166824 A CN103166824 A CN 103166824A CN 2011104150042 A CN2011104150042 A CN 2011104150042A CN 201110415004 A CN201110415004 A CN 201110415004A CN 103166824 A CN103166824 A CN 103166824A
- Authority
- CN
- China
- Prior art keywords
- socket
- address
- function
- structure body
- message structure
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2592—Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例公开了一种互联方法、装置和系统。其中,远程Socket调用客户端组件获取业务客户端调用的第一套接字编程接口Socket API函数的信息;封装所述第一Socket API函数的信息为一个消息结构体;发送所述消息结构体,以使得远程套接字Socekt调用服务器执行所述消息结构体中第一Socket API函数所对应的第二Socket API函数。本发明实施例解决了第一局域网中的业务客户端与第二局域网中的业务服务器在公网上互联的问题。
Description
技术领域
本发明涉及通信领域,尤其涉及一种互联方法、装置和系统。
背景技术
将两台机器通过交换机设备连接起来,实现两台以上机器的相互访问,即构成了局域网络。在局域网中,由于机器数量较少,因此可以很容易配置每台机器的IP地址,而且很少发生冲突。在局域网中,两台机器可以直接根据IP地址相互访问。
公网是基于全球或者跨国、跨省的网络,在公网中,运行着大量的机器,如果每台机器需要占用一个IP地址,则会消耗大量的IP地址资源。
目前通常使用网络地址转换(Network Address Translation,NAT)技术实现在有限的IP资源情况下支持大量的机器接入公网。
对于收发IP包的源端机器和目的端机器来说,其系统层次与TCP/IP协议之间存在一定的对应关系。例如:物理网卡对应处理数据链路层和物理层;操作系统(Operation System)用于处理传输层和网络层;操作系统同时提供套接字编程接口(Socket API)给业务客户端开发具体的应用协议;业务客户端对应的是应用层协议。
Socket API是操作系统提供给应用程序用于开发网络应用的一组函数。
在现有技术下,通常使用虚拟网卡技术实现一个局域网中的业务客户端与另一个局域网中的业务服务器在公网上的互联。虚拟网卡技术在客户机和服务器的操作系统层加载IP包钩子,将特定目的地址的IP包钩取后经隧道发送。虚拟网卡技术在操作系统和物理网卡之间增加一个虚拟网卡层,用于截获操作系统下发给网卡的IP包,并对特定的IP包进行转换,从而实现业务客户端与业务服务器的互联。
使用虚拟网卡技术可以实现一个局域网中的业务客户端与另一个局域网中的业务服务器在公网上的互联,但是该技术存在以下技术缺陷:
1、虚拟网卡是运行在内核的进程,软件冲突性比较大,系统的兼容性、稳定性不佳。
2、发生故障时,会导致机器蓝屏等严重问题。
3、改变了操作系统底层逻辑,容易被杀毒软件识别为病毒。
4、需要开发多种操作系统(Linux、MAC、iOS等)的虚拟网卡技术。
针对现有技术的缺陷,本发明提供了一种基于Socket远程调用的局域网穿越技术方案,实现业务客户端远程调用服务器局域网内的Socket,与服务器如同在同一个局域网内通信。
发明内容
本发明实施例提供了一种互联方法、装置和系统,可以实现一个局域网中的业务客户端与另一个局域网中的业务服务器在公网上的互联。
一方面,本发明实施例提供了一种互联方法,其特征在于,所述方法包括:
获取业务客户端调用的第一套接字编程接口Socket API函数的信息;
封装所述第一Socket API函数的信息为一个消息结构体;
发送所述消息结构体,以使得远程套接字Socekt调用服务器执行所述消息结构体中第一Socket API函数所对应的第二Socket API函数。
另一方面,本发明实施例提供了一种互联装置,其特征在于,所述装置包括:
获取单元,用于获取业务客户端调用的第一套接字编程接口Socket API函数的信息;
封装单元,用于封装所述第一Socket API函数的信息为一个消息结构体;
发送单元,用于发送所述消息结构体,以使得远程套接字Socekt调用服务器执行所述消息结构体中第一Socket API函数所对应的第二Socket API函数。
再一方面,本发明实施例提供了一种互联系统,所述系统包括如权利要求7-11任意一项所述的互联装置,远程Socket调用服务器,业务客户端,业务服务器;所述远程Socket调用服务器执行所述互联装置发送的消息结构体中第一Socket API函数所对应的第二Socket API函数,以使得第一局域网中的拥有所述互联装置的所述业务客户端与第二局域网中的所述业务服务器在公网上互联,所述远程Socket调用服务器在所述第二局域网中,所述第二局域网在所述公网中。
本发明实施例提供了一种互联方法、装置和系统,其中,在远程Socket调用客户端组件与远程Socket调用服务器之间建立HTTP隧道和Socket连接,实现了远程Socket调用客户端组件与远程Socket调用服务器的互联,又由于远程Socket调用客户端组件是业务客户端上的一个组件,远程Socket调用服务器运行在业务服务器网络内,因此便实现了局域网中的业务客户端与与所述远程Socket调用服务器在同一局域网内的所述业务服务器的互联。远程Socket调用客户端和远程Socket调用服务器基于应用层实现远程Socket调用,不改变操作系统,网络特性,而且不需要关注网络协议,实现非常简单。
附图说明
图1为虚拟网卡技术下主机分层结构与网络分层结构的对应关系示意图;
图2为虚拟网卡技术下业务客户端与业务服务器互联的实现原理示意图;
图3为本发明实施例一提供的一种互联的方法流程图;
图4为本发明实施例远程Socket技术下主机分层结构和网络分层结构的对应关系示意图;
图5为本发明实施例二提供的一种互联的实现原理图;
图6为本发明实施例三提供的一种互联的方法流程图;
图7为本发明实施例四提供的一个完整的远程Socket调用的过程示意图;
图8为本发明实施例五提供的一种互联的装置示意图。
具体实施方式
图1为虚拟网卡技术下主机分层结构与网络分层结构的对应关系示意图。如图1所示,虚拟网卡技术是在操作系统中实现的,在操作系统和物理网卡之间增加了一个虚拟网卡。虚拟网卡用于截获操作系统下发给物理网卡的IP包,并对特定的IP包进行转换。
图2为虚拟网卡技术下业务客户端与业务服务器互联的实现原理示意图。如图2所示:
步骤1、业务客户端调用操作系统发送一个RTP(实时传输协议)包时,操作系统将其打包成IP包。
操作系统将该IP包发送到物理网卡时,被虚拟网卡截获。虚拟网卡构造一个新的IP包(在应用层可以是HTTP包),将原来的IP包信息放在HTTP包内。新的IP包的目的地址为虚拟网卡服务器的公网地址(202.204.65.3)。
步骤2、虚拟网卡调用物理网卡将新的IP包发送到网络上。
步骤3、物理网卡将新的IP包经局域网路由到NAT网关上。
步骤4、NAT网关修改新的IP包的源地址和源端口,以便接收虚拟网卡服务器下发的IP包。
步骤5、虚拟网卡服务器收到一个HTTP包时,将HTTP包承载的原始IP包提取出来,并且修改原始IP包的源IP地址和端口,将其修改为自己内网地址和端口(10.10.2.1 1080),然后将该IP包发送到业务服务器上。
业务服务器返回一个IP包时,经过原通道返回。
通过虚拟网卡技术,使用NAT网关时,可以减少业务客户端对NAT端口资源的占用量;也可以解决使用NAT网关实现局域网络与公网互联时,SIP(会话发起协议)无法正确协商的问题;还可以解决防火墙背后的业务客户端连接公网服务器的问题。但是,虚拟网卡方式存在以下技术缺陷:
1、虚拟网卡是运行在内核的进程,软件冲突性比较大,系统的兼容性、稳定性不佳。
2、故障时,导致机器蓝屏等严重问题。
3、改变了操作系统底层逻辑,容易被杀毒软件识别为病毒。
4、需要开发多种操作系统(Linux、MAC、iOS等)的虚拟网卡技术。
针对现有技术的缺陷,本发明实施例提供了一种互联方法、装置和系统,其中,在远程Socket调用客户端组件与远程Socket调用服务器之间建立HTTP隧道和Socket连接,实现了远程Socket调用客户端组件与远程Socket调用服务器的互联,又由于远程Socket调用客户端组件是业务客户端上的一个组件,远程Socket调用服务器运行在业务服务器所在的局域网内,因此便实现了第一局域网中的拥有所述远程Socket调用服务器的所述业务客户端与第二局域网中的所述业务服务器在公网上互联,所述远程Socket调用服务器在所述第二局域网中,所述第二局域网在所述公网中。远程Socket调用客户端和远程Socket调用服务器基于应用层实现远程Socket调用,不改变操作系统,网络特性,而且不需要关注网络协议,实现非常简单。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
图3为本发明实施例一提供的一种互联的方法流程图。如图1所示,本实施例包括以下步骤:
步骤301,远程Socket调用客户端组件获取业务客户端调用的第一Socket API函数的信息。
业务客户端调用远程Socket调用客户端组件中的Socket API函数。
优选地,在业务客户端启动时,业务客户端会初始化远程Socket调用客户端组件。远程Socket调用客户端组件启动时,向事先配置的服务器侧的远程Socket调用服务器设备地址发起一个HTTP隧道建立连接,远程Socket调用客户端组件与远程Socket调用服务器通过该HTTP隧道进行网络数据的传输。
优选地,所述Socket API函数可以为创建Socket连接的函数;或获取远程Socket调用服务器所在局域网的空闲的IP地址和端口的函数;或关联源IP地址、源端口、目的IP地址、目的端口与所述Socket连接的函数,所述源IP地址和所述源端口为所述空闲的IP地址和端口。
需要说明的是,所述目的地址和目的端口可以是业务客户端事先配置的一个IP地址和端口。
优选地,所述Socket API函数还可以为通过所述Socket连接进行网络数据交互的函数;或用于设置或获取所述Socket连接的参数的函数;或关闭所述Socket连接的函数。
步骤302,远程Socket调用客户端组件封装所述第一Socket API函数的信息为一个消息结构体。
优选地,远程Socket调用客户端组件将应用层调用的Socket API函数信息封装为内部的一个消息结构体。所述Socket API函数的所有信息都包含在该消息结构体中。这些信息包括:函数名、源IP地址、源端口、目的IP地址、目的端口、消息的内容。
优选地,在远程Socket调用客户端组件和远程Socket调用服务器之间定义了一套数据结构体,将Socket API的函数名、函数参数封装在这些结构体中,用于传输业务客户端调用Socket API的函数信息。所述数据结构体的结构如下:
ChannelID | Length | Type | Data |
2字节 | 11位 | 5位 | 最大2048字节 |
其中,ChannelID与Socket连接对应,描述远程Socket调用客户端与远程Socket调用服务器之间的Socket连接的标识符。ChannelID最大支持65536个Socket连接,与端口数相当。ChannelID长度为2字节。在业务客户端与业务服务器通过Socket连接进行网络数据交互时,由于Socket连接标识符与源IP地址、源端口、目的IP地址、目的端口已经关联在一起,因此携带Channel ID即相当于携带了源IP地址、源端口、目的IP地址、目的端口。
需要说明的是,进行网络数据交互的Socket API函数可以为:send()函数、sendto()函数、recv()函数、recvfrom()函数、select()函数。
Length表示Socket API函数封装数据的长度,最大可以描述2048个字节。Length长度为11位。
Type表示函数的名称的枚举值。Type长度为5位。Type可以指示32种操作,目前可以使用到18种,如下所示:
Data表示函数封装的数据的内容。Data长度最大为2048字节。
例如:业务客户端调用远程Socket调用客户端组件中的tc_send()函数时,远程Socket调用客户端组件将该函数封装为一个如下的消息结构体:
其中,11012为Socket连接的标识符;3为Data部分的长度,即为“AAA”的长度;9为send()函数的枚举值;AAA为send()函数发送的消息内容。
步骤303,远程Socket调用客户端组件发送所述消息结构体,以使得远程套接字Socekt调用服务器执行所述消息结构体中第一Socket API函数所对应的第二Socket API函数。
需要说明的是,第一Socket API函数是业务客户端的函数,第二SocketAPI函数是业务服务器中的与业务客户端的第一Socket API函数对应的函数。第一Socket API函数和第二Socket API函数所实现的功能相同,参数相同。
优选地,远程Socket调用客户端组件将所述消息结构体打包在第一HTTP数据包中,调用操作系统中的Socket API发送所述第一HTTP数据包;所述Socket API将所述第一HTTP数据包生成为第一IP包;所述操作系统调用物理网卡,将所述第一IP包发送到NAT(网络地址转换)网关;所述NAT网关修改所述第一IP包的源地址和源端口为NAT网关的公网IP地址和一个新的端口,生成第二IP包;所述第二IP包经过公网路由,到达远程Socket调用服务器的公网地址。
优选地,远程Socket调用服务器解开公网上收到的第二IP包,再解开远程Socket客户端组件封装的消息结构体,得到业务客户端原本希望调用的Socket API函数信息。
远程Socket调用服务器调用业务客户端希望调用的Socket API函数,再调用本地的操作系统,生成第三IP包,将所述第三IP包发送到业务服务器。业务服务器将返回值通过远程Socket调用服务器返回给业务客户端。远程Socket调用服务器将要返回的内容封装在一个消息结构体中,通过HTTP隧道返回给业务客户端。
优选地,本发明实施例在业务客户端和操作系统之间增加了一个TC_Socket API层,用于封装Socket API。业务客户端主机分层结构和网络分层结构的对应关系示意图如图4所示:
业务客户端和TC_Socket API层对应的是应用层协议;
操作系统用于处理传输层和网络层,操作系统同时提供Socket API接口,用于给业务客户端开发具体的应用协议;
物理网卡对应处理数据链路层和物理层。
图5为本发明实施例二提供的一种互联的实现原理图。如图5所示,本发明实施例包括以下步骤:
步骤501,业务客户端发送一个UDP包,该UDP包的源地址是10.10.2.2,源端口是5060;目的地址是10.10.2.1,目的端口是5060,数据是“AAA”。
需要说明的是,所述目的地址和目的端口可以是业务客户端事先配置的一个IP地址和端口。
优选地,所述UDP包的源地址不是业务客户端的本机IP地址,而是服务器侧的IP地址,即为远程Socket调用服务器的内网IP地址。
优选地,在业务客户端启动时,业务客户端会初始化远程Socket调用客户端组件。远程Socket调用客户端组件启动时,向事先配置的服务器侧的远程Socket调用服务器设备地址发起一个HTTP隧道建立连接,远程Socket调用客户端组件与远程Socket调用服务器通过该HTTP隧道进行网络数据的传输。
优选地,业务客户端可以调用创建Socket连接的函数创建一个Socket连接;调用获取远程Socket调用服务器所在局域网的空闲的IP地址和端口;将所述空闲的IP地址和端口作为源地址和源端口;并调用关联所述源地址、所述源端口、目的地址、目的端口与所述Socket连接的函数。
步骤502,远程Socket调用客户端组件将应用层调用的Socket API函数进行封装,封装为一个内部的消息结构体,将函数的所有信息包含在该结构体中。这些信息包括源地址10.10.2.2、源端口5060、目的地址10.10.2.1、目的端口5060、消息的内容“AAA”。然后远程Socket调用客户端组件将消息结构体打包在第一HTTP数据包内。
步骤503,远程Socket调用客户端组件调用操作系统中的Socket API,将打包后的第一HTTP数据包生成第一IP包。
Socket API调用操作系统的功能,将第一HTTP数据包生成为第一IP包。第一IP包中包括客户端IP地址和端口,以及服务器端的IP地址和端口。图5中,客户端源地址为192.168.2.1,源端口为1080;服务器端的公网地址为202.204.65.3,目的端口为80。
步骤504,操作系统调用物理网卡,将第一IP包通过局域网发送到NAT网关。
步骤505,NAT网关修改第一IP包的源地址和端口,并将修改后的第二IP包公网路由到远程Socket调用服务器的公网地址上。
NAT网关有两个网络IP地址,一个是外网IP地址,即公网IP地址;另一个是内部IP地址,即局域网IP地址。
NAT网关在接收到上述局域网发送过来的第一IP包后,将局域网IP地址192.168.2.1修改为NAT网关的公网IP地址202.204.65.1,将端口1080修改为一个新的端口11111。
修改后的第二IP包已经完全没有局域网络的信息,可以完全在公网上路由了。NAT网关将第二IP包经公网路由到目的主机。NAT网关在发送第二IP包时,同时在内部记录一条信息,记录202.204.65.1 11111与192.168.2.11080的对应关系。
步骤506,远程Socket调用服务器将公网上收到的第二IP包解开,得到远程Socket调用客户端组件封装的消息结构体,并将该消息结构体解开,得到业务客户端原本希望调用的Socket API函数名(Send)以及参数信息(源地址10.10.2.2,源端口5060,目的地址10.10.2.1,目的端口5060,以及消息的内容“AAA”)。
步骤507,远程Socket调用服务器调用本地操作系统中的Socket API,生成第三IP包,第三IP包括源IP地址10.10.2.2、源端口5060、目的IP地址10.10.2.1、目的端口5060、消息内容“AAA”。将第三IP包发送到目的IP地址10.10.2.1对应的业务服务器。
图6为本发明实施例三提供的一种互联的方法流程图。如图6所示,本实施例包括以下步骤:
步骤601,远程Socket调用客户端组件发起HTTP隧道建立连接,建立HTTP隧道。
业务客户端启动时,首先初始化远程Socket调用客户端组件,在远程Socket调用客户端组件启动时,向事先配置的服务器的远程Socket调用服务器地址发起一个建立HTTP隧道的连接,双方之间建立一个HTTP隧道。
步骤602,业务客户端调用远程Socket调用客户端组件的tc_socket()方法,在远程Socket调用服务器网络中创建一个Socket连接。
业务客户端调用远程Socket调用客户端组件的方法tc_socket(),建立一个Socket连接,所述Socket连接的标识符号关联了源IP地址、源端口、目的IP地址、目的端口等信息。
步骤603,远程Socket调用客户端组件获取业务客户端调用的第一Socket API函数的信息。
业务客户端通过调用远程Socket调用客户端组件的TC_Socket API接口发送数据,要发送的数据内容包含在第一Socket API函数内。
步骤604,远程Socket调用客户端组件封装第一Socket API的函数信息为消息结构体。
远程Socket调用客户端组件将业务客户端要调用的第一Socket API函数的所有信息封装成一个消息结构体中。这些信息包括:源IP地址、源端口、目的IP地址、目的端口、消息的内容。然后将所述消息结构体打包在第一HTTP数据包中。
步骤605,远程Socket调用客户端组件调用Socket API发送第一HTTP数据包,Socket API将HTTP数据包生成为第一IP包。
Socket API调用操作系统的功能,将第一HTTP数据包生成为第一IP包。第一IP包中包括客户端IP地址和端口,以及服务器端的IP地址和端口。
步骤606,操作系统调用物理网卡将第一IP包通过局域网发送到NAT网关。
步骤607,NAT网关修改第一IP包的源IP地址和端口,并发送修改后的第二IP包。
NAT网关在接收到上述局域网发送过来的第一IP包后,将局域网IP地址修改为NAT网关的公网IP地址,将端口修改为公网上的一个空闲端口。这样第二IP包中便没有局域网中的信息了,可以完全在公网中路由。
步骤608,远程Socket调用服务器解封收到的第二IP包中的消息结构体。
远程Socket调用服务器将公网上收到的第二IP包解开,得到远程Socket调用客户端组件封装的消息结构体,并将该消息结构体解开,得到业务客户端原本希望调用的Socket API函数名及参数信息。
步骤609,远程Socket调用服务器调用本地的Socket API函数生成第三IP包,并将其发送到业务服务器。
远程Socket调用服务器调用本地操作系统中的Socket API,生成第三IP包,并根据第三IP包中的目的IP地址和端口信息将IP包发送到对应的业务服务器。
图7为本发明实施例四提供的一个完整的远程Socket调用的过程示意图。如图7所示,本实施例包括以下步骤:
步骤701,启动业务客户端时,业务客户端加载并且初始化远程Socket调用业务端组件。
步骤702,启动远程Socket调用业务端组件。
步骤703,远程Socket调用业务端组件启动时,向事先配置的服务器的远程Socket调用服务器地址发起一个建立HTTP隧道的连接。
步骤701至步骤703为隧道建立过程。
步骤704,业务客户端调用远程Socket调用客户端组件的方法tc_socket(),在远程Socket调用服务器网络内侧建立一个Socket连接。
步骤705,远程Socket调用客户端组件将tc_socket()的函数名和参数封装在一个消息结构体中,并将该消息结构体通过HTTP隧道传输到远程Socket调用服务器。
步骤706,远程Socket调用服务器解开公网上收到的数据包中的消息结构体,将该消息结构体还原为对本地的一个调用,并且获取到一个Socket连接的返回值。
步骤707,远程Socket调用服务器将调用socket()函数的结果封装在一个消息结构体中,并将该消息结构体通过HTTP隧道返回给远程Socket调用客户端组件。
步骤708,远程Socket调用客户端组件解开接收到的消息结构体,通过tc_socket()的返回值将远程Socket调用服务器返回的结果返回给业务客户端。业务客户端得到tc_socket()的返回结果,即得到远程调用socket()的返回结果。
步骤704至步骤708为Socket连接建立过程。
步骤709,业务客户端调用远程Socket调用客户端组件的方法tc_GetIPAddress()。
步骤710,远程Socket调用客户端组件将tc_GetIPAddress()的函数名和参数封装在一个消息结构体中,并将该消息结构体通过HTTP隧道传输到远程Socket调用服务器。
步骤711,远程Socket调用服务器解开公网上收到的数据包中的消息结构体,将该消息结构体还原为对本地的一个函数GetIPAddress()的调用,获得本地空闲的IP地址和端口。
步骤712,远程Socket调用服务器将获取到的空闲的IP地址和端口作为函数GetIPAddress()的返回值封装成一个消息结构体,并通过HTTP隧道返回给远程Socket调用客户端组件。
步骤713,远程Socket调用客户端组件解开接收到的消息结构体,通过tc_GetIPAddress()的返回值将远程Socket调用服务器返回的结果返回给业务客户端。业务客户端得到tc_GetIPAddress()的返回结果,即得到远程Socket调用服务器返回的IP地址和端口。业务客户端将该IP地址作为源IP地址,将该端口作为源端口。
步骤709至步骤713为业务客户端的源IP地址和端口的获取过程。
步骤714,业务客户端调用远程Socket调用客户端组件的函数tc_bind()。将源IP地址、源端口、目的IP地址、目的端口与步骤704至步骤708建立的Socket连接进行绑定。
步骤715,远程Socket调用客户端组件将tc_bind()的函数名和参数封装成一个消息结构体,并将该消息结构体通过HTTP隧道传输到远程Socket调用服务器。
步骤716,远程Socket调用服务器解开公网上收到的数据包中的消息结构体,将该消息结构体还原为对本地的一个函数bind()的调用,将源IP地址、源端口、目的IP地址、目的端口与Socket标识符进行关联。
步骤717,远程Socket调用服务器将bind()函数的返回值封装成一个消息结构体,并通过HTTP隧道返回给远程Socket调用客户端组件。
步骤718,远程Socket调用客户端组件解开接收到的消息结构体,将bind()函数的返回值返回给业务客户端。
步骤714至步骤718为绑定Socekt连接和源IP地址、源端口、目的IP地址和目的端口的过程。
步骤719,业务客户端调用远程Socket调用客户端组件中的tc_send()函数,发送网络数据到业务服务器。
步骤720,远程Socket调用客户端组件将tc_send()函数封装成消息结构体,并将该消息结构体通过HTTP隧道传输给远程Socket调用服务器。
步骤721,远程Socket调用服务器解开公网上收到的数据包中的消息结构体,将该消息结构体还原为对本地的一个函数send()的调用。
步骤722,远程Socket调用服务器将网络数据发送到业务服务器。
业务服务器收到数据后,会向业务客户端返回一个数据发送成功的结果。
步骤719至步骤722为发送网络数据的过程。
步骤723,业务客户端调用远程Socket调用客户端组件中的tc_select()函数。
tc_selcet()函数用来监听socket连接上是否有数据到达。
步骤724,远程Socket调用客户端组件将tc_select()函数封装成消息结构体,并将该消息结构体通过HTTP隧道传输给远程Socket调用服务器。
步骤725,远程Socket调用服务器解开公网上收到的数据包中的消息结构体,将该消息结构体还原为对本地的一个函数select()的调用。
步骤726,业务服务器向业务客户端下发一个网络数据包。
步骤727,远程Socket调用服务器检测到有数据包到达,调用recv()函数接收该数据包。
步骤728,远程Socket调用服务器将接收到的数据包封装成一个消息结构体,并通过HTTP隧道连接将该消息结构体传给远程Socket调用客户端组件。
步骤729,远程Socket调用客户端组件从消息结构体中解析出网络数据包,发现有数据到达,给业务客户端发送数据到达的消息。
步骤730,业务客户端从tc_selcet()函数的返回结果知道有数据包到达,调用远程Socket调用客户端组件的tc_recv()函数,接收该数据包。
步骤731,远程Socket调用客户端组件在tc_recv()函数中将获取到的数据包返回给业务客户端。
步骤723至步骤731为监听并接收业务服务器返回的网络数据包的过程。
图8为本发明实施例五提供的一种互联的装置示意图。如图8所示,本实施例包括以下单元:
获取单元801,用于获取业务客户端调用的第一Socket API函数信息。
优选地,业务客户端调用TC Socket API的接口来发送网络数据,网络数据内容包含在第一Socket API函数内。获取单元801用于获取包含网络数据内容的第一Socket API函数信息。
封装单元802,用于封装所述第一Socket API函数的信息为一个消息结构体。
优选地,封装单元802将业务客户端要调用的第一Socket API函数的所有信息封装成一个消息结构体中。这些信息包括:源IP地址、源端口、目的IP地址、目的端口、消息的内容。然后将所述消息结构体打包在第一HTTP数据包中
发送单元803,用于发送所述消息结构体,以使得远程套接字Socekt调用服务器执行所述消息结构体中第一Socket API函数所对应的第二SocketAPI函数。
优选地,发送单元803具体将所述消息结构体打包在第一HTTP数据包中,调用操作系统中的Socket API发送所述第一HTTP数据包;所述Socket API将所述第一HTTP数据包生成为第一IP包;所述操作系统调用物理网卡,将所述第一IP包发送到NAT(网络地址转换)网关;所述NAT网关修改所述第一IP包的源地址和源端口为所述NAT网关的公网IP地址和一个新端口,生成第二IP包;所述第二IP包经过公网路由,到达远程Socket调用服务器的公网地址。
优选地,远程Socket调用服务器将公网上收到的第二IP包解开,得到远程Socket调用客户端组件封装的消息结构体,并将该消息结构体解开,得到业务客户端原本希望调用的Socket API函数名及参数信息。远程Socket调用服务器调用本地操作系统中的Socket API,生成第三IP包,并根据第三IP包中的目的IP地址和端口信息将IP包发送到对应的业务服务器。业务服务器再通过远程Socket调用服务器将返回的结果通过HTTP隧道返回给远程Socket调用客户端组件。
优选地,所述装置还包括:HTTP隧道建立单元804,用于向所述远程Socket调用服务器发起一个HTTP隧道建立连接,建立一个HTTP隧道。
远程Socket调用客户端组件启动时,会向远程Socket调用服务器发送一个HTTP隧道建立连接,建立一个HTTP隧道。远程Socket调用客户端和远程Socket调用服务器之间通过该HTTP隧道进行通信。
优选地,所述装置还包括:Socket连接创建单元805,用于向所述远程Socket调用服务器发起Socket连接创建请求,创建一个Socket连接。
建立HTTP隧道后,业务客户端调用远程Socket调用客户端组件的函数tc_socket(),在远程Socket调用服务器上建立一个Socket连接,远程Socket调用服务器将所建立的Socket连接标识符作为返回值返回给业务客户端。
优选地,所述装置还包括:源地址信息获取单元806,用于获取远程Socket调用服务器所在局域网的空闲的IP地址和端口,将其作为源IP地址和源端口。
业务客户端获取Socket连接的标识符后,调用远程Socket调用客户端组件的函数tc_GetIPAddress(),获取远程Socket调用服务器内网中的空闲IP地址和端口。远程Socket调用服务器将所述IP地址和端口返回给业务客户端。业务客户端向业务服务器发送网络数据包时,将所述IP地址和端口作为源IP地址和端口。
优选地,所述装置还包括:关联单元807,用于关联所述源IP地址、所述源端口、目的IP地址、目的端口与所述Socket连接。
业务客户端调用远程Socket调用客户端组件的函数tc_bind(),绑定源IP地址、源端口、目的IP地址、目的端口与所建立的Socket连接,即与所建立的Socket连接的标识符进行关联。
本发明实施例提供了一种互联系统,所述系统包括如权利要求7-11任意一项所述的互联装置,远程Socket调用服务器,业务客户端,业务服务器;所述远程Socket调用服务器执行所述互联装置发送的消息结构体中第一Socket API函数所对应的第二Socket API函数,以使得第一局域网中的拥有所述互联装置的所述业务客户端与第二局域网中的所述业务服务器在公网上互联,所述远程Socket调用服务器在所述第二局域网中,所述第二局域网在所述公网中。本发明实施例所提供的互联系统在远程Socket调用客户端组件与远程Socket调用服务器之间建立HTTP隧道和Socket连接,实现了远程Socket调用客户端组件与远程Socket调用服务器的互联,又由于远程Socket调用客户端组件是业务客户端上的一个组件,远程Socket调用服务器运行在业务服务器网络内,因此便实现了业务客户端和业务服务器的互联,即实现了局域网中的业务客户端与与所述远程Socket调用服务器在同一局域网内的所述业务服务器在公网上的互联。远程Socket调用客户端和远程Socket调用服务器基于应用层实现远程Socket调用,不改变操作系统,网络特性,而且不需要关注网络协议,实现非常简单。
本发明实施例提供的互联方法、装置和系统基于应用层实现远程Socket调用,不改变操作系统和网络特性,而且不需要关注网络协议,节省了端口资源,降低了组网复杂程度。另外,本发明作为软件SVN(SSL Virtual PrivateNetwork,加密虚拟专用网)方案,可以替代硬件SVN设备,实现简单,成本低廉。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种互联方法,其特征在于,所述方法包括:
获取业务客户端调用的第一套接字编程接口Socket API函数的信息;
封装所述第一Socket API函数的信息为一个消息结构体;
发送所述消息结构体,以使得接收方执行所述消息结构体中第一SocketAPI函数所对应的第二Socket API函数。
2.如权利要求1所述的互联方法,其特征在于,所述方法还包括:接收所述第二Socket API函数的返回值。
3.如权利要求1所述的互联方法,其特征在于,所述方法还包括:向所述远程Socket调用服务器发起一个超文本传输协议HTTP隧道建立连接,建立一个HTTP隧道;
所述发送消息结构体具体为:通过所述HTTP隧道发送所述消息结构体。
4.如权利要求1所述的互联方法,其特征在于,所述第一Socket API函数可以为创建Socket连接的函数;或获取远程Socket调用服务器所在局域网的空闲的IP地址和端口的函数;或关联源IP地址、源端口、目的IP地址、目的端口与所述Socket连接的函数,所述源IP地址和所述源端口为所述空闲的IP地址和端口。
5.如权利要求4所述的互联方法,其特征在于,所述第一Socket API函数还可以为通过所述Socket连接进行网络数据交互的函数;或用于设置或获取所述Socket连接的参数的函数;或关闭所述Socket连接的函数。
6.如权利要求3所述的互联方法,其特征在于,所述通过所述HTTP隧道发送所述消息结构体具体为:
将所述消息结构体打包在第一HTTP数据包中,调用操作系统中的SocketAPI发送所述第一HTTP数据包;
所述Socket API将所述第一HTTP数据包生成为第一IP包;
所述操作系统调用物理网卡,将所述第一IP包发送到网络地址转换NAT网关;
所述NAT网关修改所述第一IP包的源地址和源端口为公网IP地址和一个新端口,生成第二IP包;
所述第二IP包经过公网路由,到达远程Socket调用服务器的公网地址。
7.一种互联装置,其特征在于,所述装置包括:
获取单元,用于获取业务客户端调用的第一套接字编程接口Socket API函数的信息;
封装单元,用于封装所述第一Socket API函数的信息为一个消息结构体;
发送单元,用于发送所述消息结构体,以使得接收方执行所述消息结构体中第一Socket API函数所对应的第二Socket API函数。
8.如权利要求7所述的互联装置,其特征在于,所述装置还包括:HTTP隧道建立单元,用于向所述远程Socket调用服务器发起一个超文本传输协议HTTP隧道建立连接,建立一个HTTP隧道;
所述发送单元具体用于通过所述HTTP隧道发送所述消息结构体。
9.如权利要求7所述的互联装置,其特征在于,所述装置还包括:Socket连接创建单元,用于向所述远程Socket调用服务器发起Socket连接创建请求,创建一个Socket连接。
10.如权利要求9任意一项所述的互联装置,其特征在于,所述装置还包括:源地址信息获取单元,用于获取远程Socket调用服务器所在局域网的空闲的IP地址和端口,将其作为源IP地址和源端口。
11.如权利要求10任意一项所述的互联装置,其特征在于,所述装置还包括:关联单元,用于关联所述源IP地址、所述源端口、目的IP地址、目的端口与所述Socket连接。
12.一种互联系统,其特征在于,所述系统包括如权利要求8-11任意一项所述的互联装置,以及远程Socket调用服务器,业务客户端,业务服务器;所述远程Socket调用服务器执行所述互联装置发送的消息结构体中第一Socket API函数所对应的第二Socket API函数,以使得第一局域网中的拥有所述互联装置的所述业务客户端与第二局域网中的所述业务服务器在公网上互联,所述远程Socket调用服务器在所述第二局域网中,所述第二局域网在所述公网中。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110415004.2A CN103166824B (zh) | 2011-12-13 | 2011-12-13 | 一种互联方法、装置和系统 |
PCT/CN2012/080439 WO2013086869A1 (zh) | 2011-12-13 | 2012-08-22 | 一种互联方法、装置和系统 |
PCT/CN2012/085060 WO2013086928A1 (zh) | 2011-12-13 | 2012-11-22 | 一种互联方法、装置和系统 |
EP12857411.8A EP2712127A4 (en) | 2011-12-13 | 2012-11-22 | CONNECTION PROCESS, DEVICE AND SYSTEM |
US14/143,433 US9137334B2 (en) | 2011-12-13 | 2013-12-30 | Interconnection method, apparatus, and system based on socket remote invocation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110415004.2A CN103166824B (zh) | 2011-12-13 | 2011-12-13 | 一种互联方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103166824A true CN103166824A (zh) | 2013-06-19 |
CN103166824B CN103166824B (zh) | 2016-09-28 |
Family
ID=48589576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110415004.2A Active CN103166824B (zh) | 2011-12-13 | 2011-12-13 | 一种互联方法、装置和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9137334B2 (zh) |
EP (1) | EP2712127A4 (zh) |
CN (1) | CN103166824B (zh) |
WO (2) | WO2013086869A1 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103442224A (zh) * | 2013-09-09 | 2013-12-11 | 杭州巨峰科技有限公司 | 一种基于nat穿透的视频监控访问策略和实现方法 |
CN105208041A (zh) * | 2015-10-15 | 2015-12-30 | 厦门大学 | 基于hook的云存储应用加密数据包破解方法 |
CN105843738A (zh) * | 2016-03-22 | 2016-08-10 | 汉柏科技有限公司 | 一种进程间通信的统计调试方法及系统 |
CN106027489A (zh) * | 2016-04-28 | 2016-10-12 | 腾讯科技(深圳)有限公司 | 互联网联机的方法、装置及系统 |
CN107426233A (zh) * | 2017-08-08 | 2017-12-01 | 深圳先进技术研究院 | 基于B/S架构的数据通信系统、方法、Web服务器及监控系统 |
CN107544799A (zh) * | 2017-08-21 | 2018-01-05 | 深圳市清显科技有限公司 | 一种对库函数进行封装的方法 |
CN109218203A (zh) * | 2018-09-20 | 2019-01-15 | 上海龙弈信息科技有限公司 | 一种金融管理及风险控制处理系统及其运行方法 |
CN110166479A (zh) * | 2019-05-31 | 2019-08-23 | 深圳市瑞云科技有限公司 | 一种传输系统提升udp发送效率的方法 |
CN114125574A (zh) * | 2021-11-19 | 2022-03-01 | 浩云科技股份有限公司 | 一种单向的流媒体传输方法及系统 |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9292248B2 (en) * | 2011-06-22 | 2016-03-22 | Microsoft Technology Licensing, Llc | Span out load balancing model |
US10749711B2 (en) | 2013-07-10 | 2020-08-18 | Nicira, Inc. | Network-link method useful for a last-mile connectivity in an edge-gateway multipath system |
US10454714B2 (en) | 2013-07-10 | 2019-10-22 | Nicira, Inc. | Method and system of overlay flow control |
US20160072764A1 (en) * | 2014-09-10 | 2016-03-10 | T-Mobile Usa, Inc. | Dynamic double network address translator |
US10135789B2 (en) | 2015-04-13 | 2018-11-20 | Nicira, Inc. | Method and system of establishing a virtual private network in a cloud service for branch networking |
US10498652B2 (en) | 2015-04-13 | 2019-12-03 | Nicira, Inc. | Method and system of application-aware routing with crowdsourcing |
US10425382B2 (en) | 2015-04-13 | 2019-09-24 | Nicira, Inc. | Method and system of a cloud-based multipath routing protocol |
US10608985B2 (en) * | 2015-08-14 | 2020-03-31 | Oracle International Corporation | Multihoming for tunneled encapsulated media |
CN105721473B (zh) * | 2016-02-24 | 2019-07-09 | 锐达互动科技股份有限公司 | 一种web端远程调用优化的方法及系统 |
US9614917B1 (en) | 2016-10-24 | 2017-04-04 | Signiant Inc. | System and method of providing secure data transfer |
US11706127B2 (en) | 2017-01-31 | 2023-07-18 | Vmware, Inc. | High performance software-defined core network |
US20200036624A1 (en) | 2017-01-31 | 2020-01-30 | The Mode Group | High performance software-defined core network |
US20180219765A1 (en) | 2017-01-31 | 2018-08-02 | Waltz Networks | Method and Apparatus for Network Traffic Control Optimization |
US11121962B2 (en) | 2017-01-31 | 2021-09-14 | Vmware, Inc. | High performance software-defined core network |
US11252079B2 (en) | 2017-01-31 | 2022-02-15 | Vmware, Inc. | High performance software-defined core network |
US10992568B2 (en) | 2017-01-31 | 2021-04-27 | Vmware, Inc. | High performance software-defined core network |
US10992558B1 (en) | 2017-11-06 | 2021-04-27 | Vmware, Inc. | Method and apparatus for distributed data network traffic optimization |
US10778528B2 (en) | 2017-02-11 | 2020-09-15 | Nicira, Inc. | Method and system of connecting to a multipath hub in a cluster |
US10523539B2 (en) | 2017-06-22 | 2019-12-31 | Nicira, Inc. | Method and system of resiliency in cloud-delivered SD-WAN |
US10841131B2 (en) | 2017-10-02 | 2020-11-17 | Vmware, Inc. | Distributed WAN security gateway |
US10999165B2 (en) | 2017-10-02 | 2021-05-04 | Vmware, Inc. | Three tiers of SaaS providers for deploying compute and network infrastructure in the public cloud |
US11115480B2 (en) | 2017-10-02 | 2021-09-07 | Vmware, Inc. | Layer four optimization for a virtual network defined over public cloud |
US11089111B2 (en) * | 2017-10-02 | 2021-08-10 | Vmware, Inc. | Layer four optimization for a virtual network defined over public cloud |
US10999100B2 (en) | 2017-10-02 | 2021-05-04 | Vmware, Inc. | Identifying multiple nodes in a virtual network defined over a set of public clouds to connect to an external SAAS provider |
US11223514B2 (en) | 2017-11-09 | 2022-01-11 | Nicira, Inc. | Method and system of a dynamic high-availability mode based on current wide area network connectivity |
CN110519232A (zh) * | 2019-07-30 | 2019-11-29 | 裴小根 | 基于Android OS二维对称加密算法的文件远距离加密传输系统 |
US11258728B2 (en) | 2019-08-27 | 2022-02-22 | Vmware, Inc. | Providing measurements of public cloud connections |
US11044190B2 (en) | 2019-10-28 | 2021-06-22 | Vmware, Inc. | Managing forwarding elements at edge nodes connected to a virtual network |
US11489783B2 (en) | 2019-12-12 | 2022-11-01 | Vmware, Inc. | Performing deep packet inspection in a software defined wide area network |
US11394640B2 (en) | 2019-12-12 | 2022-07-19 | Vmware, Inc. | Collecting and analyzing data regarding flows associated with DPI parameters |
US11438789B2 (en) | 2020-01-24 | 2022-09-06 | Vmware, Inc. | Computing and using different path quality metrics for different service classes |
US11477127B2 (en) | 2020-07-02 | 2022-10-18 | Vmware, Inc. | Methods and apparatus for application aware hub clustering techniques for a hyper scale SD-WAN |
US11709710B2 (en) | 2020-07-30 | 2023-07-25 | Vmware, Inc. | Memory allocator for I/O operations |
US11838375B2 (en) * | 2020-11-12 | 2023-12-05 | Harman International Industries, Incorporated | Universal software communication bus |
US11444865B2 (en) | 2020-11-17 | 2022-09-13 | Vmware, Inc. | Autonomous distributed forwarding plane traceability based anomaly detection in application traffic for hyper-scale SD-WAN |
US11575600B2 (en) | 2020-11-24 | 2023-02-07 | Vmware, Inc. | Tunnel-less SD-WAN |
US11601356B2 (en) | 2020-12-29 | 2023-03-07 | Vmware, Inc. | Emulating packet flows to assess network links for SD-WAN |
US11792127B2 (en) | 2021-01-18 | 2023-10-17 | Vmware, Inc. | Network-aware load balancing |
US12218845B2 (en) | 2021-01-18 | 2025-02-04 | VMware LLC | Network-aware load balancing |
US11979325B2 (en) | 2021-01-28 | 2024-05-07 | VMware LLC | Dynamic SD-WAN hub cluster scaling with machine learning |
US11637768B2 (en) | 2021-05-03 | 2023-04-25 | Vmware, Inc. | On demand routing mesh for routing packets through SD-WAN edge forwarding nodes in an SD-WAN |
US12009987B2 (en) | 2021-05-03 | 2024-06-11 | VMware LLC | Methods to support dynamic transit paths through hub clustering across branches in SD-WAN |
US11729065B2 (en) | 2021-05-06 | 2023-08-15 | Vmware, Inc. | Methods for application defined virtual network service among multiple transport in SD-WAN |
US11489720B1 (en) | 2021-06-18 | 2022-11-01 | Vmware, Inc. | Method and apparatus to evaluate resource elements and public clouds for deploying tenant deployable elements based on harvested performance metrics |
US12015536B2 (en) | 2021-06-18 | 2024-06-18 | VMware LLC | Method and apparatus for deploying tenant deployable elements across public clouds based on harvested performance metrics of types of resource elements in the public clouds |
US12250114B2 (en) | 2021-06-18 | 2025-03-11 | VMware LLC | Method and apparatus for deploying tenant deployable elements across public clouds based on harvested performance metrics of sub-types of resource elements in the public clouds |
US12047282B2 (en) | 2021-07-22 | 2024-07-23 | VMware LLC | Methods for smart bandwidth aggregation based dynamic overlay selection among preferred exits in SD-WAN |
US12267364B2 (en) | 2021-07-24 | 2025-04-01 | VMware LLC | Network management services in a virtual network |
US11375005B1 (en) | 2021-07-24 | 2022-06-28 | Vmware, Inc. | High availability solutions for a secure access service edge application |
US11943146B2 (en) | 2021-10-01 | 2024-03-26 | VMware LLC | Traffic prioritization in SD-WAN |
US12184557B2 (en) | 2022-01-04 | 2024-12-31 | VMware LLC | Explicit congestion notification in a virtual environment |
US11909815B2 (en) | 2022-06-06 | 2024-02-20 | VMware LLC | Routing based on geolocation costs |
US12166661B2 (en) | 2022-07-18 | 2024-12-10 | VMware LLC | DNS-based GSLB-aware SD-WAN for low latency SaaS applications |
US20240031296A1 (en) | 2022-07-20 | 2024-01-25 | Vmware, Inc. | Modifying an sd-wan based on flow metrics |
US12034587B1 (en) | 2023-03-27 | 2024-07-09 | VMware LLC | Identifying and remediating anomalies in a self-healing network |
US12057993B1 (en) | 2023-03-27 | 2024-08-06 | VMware LLC | Identifying and remediating anomalies in a self-healing network |
US12261777B2 (en) | 2023-08-16 | 2025-03-25 | VMware LLC | Forwarding packets in multi-regional large scale deployments with distributed gateways |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050198308A1 (en) * | 2004-02-09 | 2005-09-08 | Sun Microsystems, Inc. | Socket connections over a serial link |
CN101540770A (zh) * | 2008-03-19 | 2009-09-23 | 索尼株式会社 | 信息处理单元及其方法、远程服务器和信息处理系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7117267B2 (en) * | 2001-06-28 | 2006-10-03 | Sun Microsystems, Inc. | System and method for providing tunnel connections between entities in a messaging system |
US6895590B2 (en) * | 2001-09-26 | 2005-05-17 | Intel Corporation | Method and system enabling both legacy and new applications to access an InfiniBand fabric via a socket API |
CN100344122C (zh) * | 2003-04-22 | 2007-10-17 | 华为技术有限公司 | 一种实现从指定端口发送数据报类型报文的方法 |
US8954590B2 (en) * | 2004-04-27 | 2015-02-10 | Sap Ag | Tunneling apparatus and method for client-server communication |
US7457849B2 (en) * | 2004-06-08 | 2008-11-25 | Printronix, Inc. | Controlled firewall penetration for management of discrete devices |
US7738468B2 (en) * | 2005-03-22 | 2010-06-15 | Logitech Europe S.A. | Method and apparatus for packet traversal of a network address translation device |
US20080155103A1 (en) * | 2006-12-21 | 2008-06-26 | Kimberly Tekavec Bailey | AF UNIX Socket Across Systems in the Same Computer on Computer Systems that Support Multiple Operating System Images |
CN101159657A (zh) * | 2007-10-16 | 2008-04-09 | 华为技术有限公司 | 一种实现私网穿越的方法、设备及服务器 |
CN102215243A (zh) * | 2010-04-12 | 2011-10-12 | 华为技术有限公司 | 事件同步的方法、系统、客户端和服务端 |
-
2011
- 2011-12-13 CN CN201110415004.2A patent/CN103166824B/zh active Active
-
2012
- 2012-08-22 WO PCT/CN2012/080439 patent/WO2013086869A1/zh active Application Filing
- 2012-11-22 WO PCT/CN2012/085060 patent/WO2013086928A1/zh active Application Filing
- 2012-11-22 EP EP12857411.8A patent/EP2712127A4/en not_active Withdrawn
-
2013
- 2013-12-30 US US14/143,433 patent/US9137334B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050198308A1 (en) * | 2004-02-09 | 2005-09-08 | Sun Microsystems, Inc. | Socket connections over a serial link |
CN101540770A (zh) * | 2008-03-19 | 2009-09-23 | 索尼株式会社 | 信息处理单元及其方法、远程服务器和信息处理系统 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103442224A (zh) * | 2013-09-09 | 2013-12-11 | 杭州巨峰科技有限公司 | 一种基于nat穿透的视频监控访问策略和实现方法 |
CN105208041A (zh) * | 2015-10-15 | 2015-12-30 | 厦门大学 | 基于hook的云存储应用加密数据包破解方法 |
CN105208041B (zh) * | 2015-10-15 | 2018-09-21 | 厦门大学 | 基于hook的云存储应用加密数据包破解方法 |
CN105843738A (zh) * | 2016-03-22 | 2016-08-10 | 汉柏科技有限公司 | 一种进程间通信的统计调试方法及系统 |
CN106027489A (zh) * | 2016-04-28 | 2016-10-12 | 腾讯科技(深圳)有限公司 | 互联网联机的方法、装置及系统 |
CN106027489B (zh) * | 2016-04-28 | 2019-05-31 | 腾讯科技(深圳)有限公司 | 互联网联机的方法、装置及系统 |
CN107426233A (zh) * | 2017-08-08 | 2017-12-01 | 深圳先进技术研究院 | 基于B/S架构的数据通信系统、方法、Web服务器及监控系统 |
CN107544799A (zh) * | 2017-08-21 | 2018-01-05 | 深圳市清显科技有限公司 | 一种对库函数进行封装的方法 |
CN109218203A (zh) * | 2018-09-20 | 2019-01-15 | 上海龙弈信息科技有限公司 | 一种金融管理及风险控制处理系统及其运行方法 |
CN110166479A (zh) * | 2019-05-31 | 2019-08-23 | 深圳市瑞云科技有限公司 | 一种传输系统提升udp发送效率的方法 |
CN110166479B (zh) * | 2019-05-31 | 2022-02-01 | 深圳市瑞云科技有限公司 | 一种传输系统提升udp发送效率的方法 |
CN114125574A (zh) * | 2021-11-19 | 2022-03-01 | 浩云科技股份有限公司 | 一种单向的流媒体传输方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
EP2712127A4 (en) | 2015-02-18 |
WO2013086869A1 (zh) | 2013-06-20 |
CN103166824B (zh) | 2016-09-28 |
WO2013086928A1 (zh) | 2013-06-20 |
US20140115047A1 (en) | 2014-04-24 |
EP2712127A1 (en) | 2014-03-26 |
US9137334B2 (en) | 2015-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103166824A (zh) | 一种互联方法、装置和系统 | |
CN111885075B (zh) | 容器通信方法、装置、网络设备及存储介质 | |
US9460289B2 (en) | Securing a virtual environment | |
US8725898B1 (en) | Scalable port address translations | |
WO2021073565A1 (zh) | 业务服务提供方法及系统 | |
CN105591820A (zh) | 一种高可扩展的容器网络管理系统和方法 | |
CN102771164B (zh) | 针对旧版本应用和非旧版本应用提供智能无线模块选择的方法和装置 | |
US12238063B2 (en) | Business service providing method and system, and remote acceleration gateway | |
CN113364660B (zh) | Lvs负载均衡中的数据包处理方法及装置 | |
CN114301868B (zh) | 快速生成虚拟容器浮动ip的方法及网络直通的方法和装置 | |
CN105323229A (zh) | 一种基于cpe的数据传输方法、网元、平台及系统 | |
CN103905510A (zh) | 一种数据包的处理方法及后台服务器 | |
CN116132435B (zh) | 一种容器云平台的双栈跨节点通信方法和系统 | |
CN102685243B (zh) | 一种轻量级tcp/ip协议栈的实现方法 | |
WO2019041332A1 (zh) | 一种加速网络传输优化方法以及系统 | |
CN107786536B (zh) | 一种tcp反向端口穿透方法及其系统 | |
CN113067910B (zh) | 一种nat穿越方法、装置、电子设备和存储介质 | |
CN103051542B (zh) | 基于数据链路层以太网mac地址实现连通性检测的方法 | |
CN106506457A (zh) | 一种终端接入网络的方法及系统 | |
CN116488958A (zh) | 网关处理方法、虚拟接入网关、虚拟业务网关及相关设备 | |
EP2858415B1 (en) | Multi-link-based data transmission method and device | |
CN109302447B (zh) | 报文处理方法、装置及系统 | |
US10630610B1 (en) | Mechanisms for preventing IPID overflow in computer networks | |
CN105812498A (zh) | 一种热点数据传输方法及装置 | |
WO2023274146A1 (zh) | 远程接入方法、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |