WO2013086869A1 - 一种互联方法、装置和系统 - Google Patents

一种互联方法、装置和系统 Download PDF

Info

Publication number
WO2013086869A1
WO2013086869A1 PCT/CN2012/080439 CN2012080439W WO2013086869A1 WO 2013086869 A1 WO2013086869 A1 WO 2013086869A1 CN 2012080439 W CN2012080439 W CN 2012080439W WO 2013086869 A1 WO2013086869 A1 WO 2013086869A1
Authority
WO
WIPO (PCT)
Prior art keywords
socket
address
server
remote
message structure
Prior art date
Application number
PCT/CN2012/080439
Other languages
English (en)
French (fr)
Inventor
周日明
Original Assignee
华为技术有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2013086869A1 publication Critical patent/WO2013086869A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2592Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms

Definitions

  • the present invention relates to the field of communications, and in particular, to an interconnection method, apparatus, and system.
  • the two machines are connected through the switch device to realize mutual access of more than two machines, which constitutes a local area network.
  • the switch device because of the small number of machines, it is easy to configure the IP address of each machine, and there are few conflicts.
  • two machines can access each other directly based on IP addresses.
  • Public network ⁇ Global or multinational, inter-provincial network, in the public network, running a large number of machines, if each machine needs to occupy an IP address, it will consume a large number of IP address resources.
  • NAT Network Addres s Translating
  • the source machine and the destination end machine that send and receive IP packets
  • the system level corresponds to the data link layer and the physical layer
  • the operating system (Operatium Signal) is used to process the transport layer and the network layer
  • the operating system also provides a socket programming interface (Socket API) to develop specific for the business client.
  • Application protocol The business client corresponds to the application layer protocol.
  • the Socket API is a set of functions that the operating system provides to applications for developing web applications.
  • the virtual network card technology is generally used to interconnect the service client in one local area network with the service server in another local area network on the public network.
  • the virtual network card technology loads an IP packet hook at the operating system layer of the client and the server, and hooks the IP packet of the specific destination address and sends it through the tunnel.
  • Virtual NIC technology adds a virtual NIC layer between the operating system and the physical NIC for The IP packet sent by the operating system to the network card is intercepted, and the specific IP packet is converted, thereby interconnecting the service client and the service server.
  • the virtual network card technology can be used to interconnect the service client in one LAN with the service server in another LAN on the public network, but the technology has the following technical defects:
  • the virtual network card is a process running in the kernel.
  • the software conflicts are relatively large, and the system compatibility and stability are not good.
  • the present invention provides a LAN traversal technical solution based on Socket remote call, which realizes that the service client remotely calls the Socket in the server LAN, and communicates with the server as in the same local area network.
  • the embodiments of the present invention provide an interconnection method, device, and system, which can implement interconnection of a service client in one local area network with a service server in another local area network on a public network.
  • an embodiment of the present invention provides an interconnection method, where the method includes:
  • the message structure is sent such that the remote socket Socekt invokes the server to execute a second Socke t API function corresponding to the first Socket API function in the message structure.
  • an embodiment of the present invention provides an interconnection apparatus, where the apparatus includes:
  • An obtaining unit configured to obtain information of a first socket programming interface Socket API function invoked by a business client
  • Encapsulating unit the information used to encapsulate the first Socket API function is a message structure;
  • a sending unit configured to send the message structure, so that the remote socket Socekt invokes the server to execute a second Socket API function corresponding to the first Socket API function in the message structure.
  • an embodiment of the present invention provides an interconnection system, where the system includes the interconnection device according to any one of claims 7-11, a remote socket calling server, a service client, and a service server;
  • the calling server executes a second Socket API function corresponding to the first Socket API function in the message structure sent by the interconnecting device, so that the service client in the first local area network and the second local area network in the second local area network
  • the service servers are interconnected on a public network, the remote Socket calling server is in the second local area network, and the second local area network is in the public network.
  • the embodiment of the invention provides an interconnection method, device and system, wherein an HTTP tunnel and a Socket connection are established between a remote Socket calling client component and a remote Socket calling server, and a remote socket calling client component and a remote socket call are implemented.
  • the remote Socket call client and the remote Socke t call server implement remote Socke t calls based on the application layer, without changing the operating system, network characteristics, and without paying attention to the network protocol, the implementation is very simple.
  • FIG. 2 is a schematic diagram of an implementation principle of interconnecting a service client and a service server in a virtual network card technology
  • FIG. 3 is a flowchart of a method for interconnecting according to Embodiment 1 of the present invention
  • FIG. 4 is a schematic diagram of correspondence between a host hierarchical structure and a network hierarchical structure in a remote Socke t technology according to an embodiment of the present invention
  • FIG. 5 is a schematic diagram of an implementation of an interconnection according to Embodiment 2 of the present invention.
  • FIG. 6 is a flowchart of a method for interconnecting according to Embodiment 3 of the present invention.
  • FIG. 7 is a schematic diagram of a process of a complete remote Socke t call according to Embodiment 4 of the present invention.
  • FIG. 8 is a schematic diagram of an interconnected device according to Embodiment 5 of the present invention.
  • the virtual network card technology is implemented in an operating system, and a virtual network card is added between the operating system and the physical network card.
  • the virtual NIC is used to intercept IP packets sent by the operating system to the physical NIC and convert specific IP packets.
  • Figure 2 is a schematic diagram showing the implementation principle of the interconnection between the service client and the service server in the virtual network card technology. as shown in picture 2:
  • Step 1 When the service client invokes the operating system to send an RTP (Real Time Transport Protocol) packet, the operating system packages it into an IP packet.
  • RTP Real Time Transport Protocol
  • Virtual NIC Construction A new IP packet (which can be an HTTP packet at the application layer) places the original IP packet information in an HTTP packet.
  • the destination address of the new IP packet is the public network address of the virtual NIC server (202.204.65.3).
  • Step 2 The virtual network card calls the physical network card to send the new IP packet to the network.
  • Step 3 The physical NIC routes the new IP packet to the NAT gateway via the LAN.
  • Step 4 The NAT gateway modifies the source address and source port of the new IP packet to receive the IP packet delivered by the virtual NIC server.
  • Step 5 When the virtual network card server receives an HTTP packet, extract the original IP packet carried by the HTTP packet, and modify the source IP address and port of the original IP packet, and modify it to be the internal network. Address and port (10.10.2.1 1080), then send the IP packet to the service server.
  • the virtual network card technology can reduce the occupation of the NAT port resources by the service client when using the NAT gateway. It can also solve the problem that the SIP (Session Initiation Protocol) cannot be correctly negotiated when the LAN gateway is used to interconnect the public network with the public network. It can also solve the problem that the business client behind the firewall connects to the public network server.
  • the virtual NIC approach has the following technical deficiencies:
  • the virtual network card is a process running in the kernel.
  • the software conflicts are relatively large, and the system compatibility and stability are not good.
  • an embodiment of the present invention provides an interconnection method, apparatus, and system, in which an HTTP tunnel and a Socket connection are established between a remote Socket calling client component and a remote Socket calling server, and a remote socket call is implemented.
  • the client component interacts with the remote Socket call server, and since the remote Socket call client component is a component on the business client, the remote Socket call server runs in the local area network where the service server is located, thus implementing the first local area network.
  • the service client having the remote Socket call server and the service server in the second local area network are interconnected on a public network, the remote Socket calling server is in the second local area network, and the second local area network is in the In the public network.
  • the remote Socket calling client and the remote Socket calling server implement remote Socket calling based on the application layer, without changing the operating system, network characteristics, and without paying attention to the network protocol, the implementation is very simple.
  • FIG. 3 is a flowchart of a method for interconnecting according to Embodiment 1 of the present invention. As shown in Figure 1, this embodiment includes the following steps:
  • Step 301 The remote Socket invokes the client component to obtain information about the first Socket API function invoked by the service client.
  • the business client calls the remote socket to call the Socket API function in the client component.
  • the business client when the business client starts, the business client initializes the remote Socket calling client component.
  • the remote Socket call client component starts, an HTTP tunnel is established to the remote Socket calling server device address of the pre-configured server side to establish a connection, and the remote socket calling client component and the remote Socket calling server transmit the network data through the HTTP tunnel.
  • the Socket API function may be a function for creating a Socket connection; or a function of obtaining a free IP address and port of a local area network where the remote socket calls the server; or associating a source IP address, a source port, a destination IP address, a destination port, and The function of the Socket connection, the source IP address and the source port are the idle IP address and port.
  • the destination address and the destination port may be an IP address and a port configured by the service client in advance.
  • the Socket API function may also be a function for performing network data interaction through the Socket connection; or a function for setting or acquiring parameters of the Socket connection; or a function for closing the Socket connection.
  • Step 302 The remote Socket calling client component encapsulates the information of the first Socket API function into a message structure.
  • the remote Socket call client component encapsulates the Socket API function information called by the application layer into an internal message structure. All information about the Socket API function is included in the message structure. This information includes: function name, source IP address, source port, destination IP address, destination port, and the content of the message.
  • a set of data structures is defined between the remote Socket calling client component and the remote Socket calling server, and the function name and function parameters of the Socket API are encapsulated in the structures for transmitting the service client to call the Socket API.
  • Function information The structure of the data structure is as follows: ChannellD corresponds to the Socket connection and describes the identifier of the Socket connection between the remote socket calling client and the remote socket calling server. ChannellD supports a maximum of 65536 socket connections, which is equivalent to the number of ports. ChannellD is 2 bytes in length.
  • the Socket connection identifier is associated with the source IP address, the source port, the destination IP address, and the destination port. Therefore, carrying the Channel ID is equivalent to carrying the source. IP address, source port, destination IP address, destination port.
  • Socket API functions for network data interaction can be: sendO function, sendto() function, recv() function, recvfrom() function, select() function.
  • Length indicates the length of the Socket API function to encapsulate data, which can describe up to 2048 bytes. The length is 11 bits long.
  • Type represents the enumeration value of the name of the function. Type is 5 digits long. Type can indicate 32 operations, and currently 18 can be used, as shown below:
  • Data represents the content of the data encapsulated by the function.
  • the data length is up to 2048 bytes.
  • the remote socket calls the client component to encapsulate the function into a message structure: where 11012 is the identifier of the Socket connection; 3 is the length of the Data part, which is the length of "AAA"; 9 is the enumeration value of the sendO function; AAA is the message content sent by the send() function.
  • Step 303 The remote Socket calling client component sends the message structure, so that the remote socket Socekt invokes the server to execute the second Socket API function corresponding to the first Socket API function in the message structure.
  • first Socket API function is a function of the business client
  • second Socket API function is a function corresponding to the first Socket API function of the business client in the business server.
  • the first Socket API function and the second Socket API function have the same functions and the same parameters.
  • the remote Socket calling client component packages the message structure in the first HTTP data packet, and calls the Socket API in the operating system to send the first HTTP data packet; the Socket API will use the first HTTP packet
  • the data packet is generated as a first IP packet; the operating system calls a physical network card, and sends the first IP packet to a NAT (Network Address Translation) gateway; the NAT gateway ⁇ ⁇ tampering with the first IP packet
  • the source address and the source port are the public IP address of the NAT gateway and a new port, and generate a second IP packet.
  • the second IP packet passes through the public network route and reaches the public network address of the remote Socket calling server.
  • the remote Socket calls the server to unlock the second IP packet received on the public network, and then unpacks the message structure encapsulated by the remote Socket client component, and obtains the service client originally wants to invoke the message structure. Socket API function information.
  • the remote Socket call server calls the Socket API function that the service client wants to call, and then calls the local operating system to generate a third IP packet, and sends the third IP packet to the service server.
  • the business server returns the return value to the business client via the remote Socket call server.
  • the remote Socket call server encapsulates the content to be returned in a message structure and returns it to the service client through the HTTP tunnel.
  • the embodiment of the present invention adds a TC-Socket API layer between the service client and the operating system for encapsulating the Socket API.
  • the corresponding relationship between the business client host hierarchy and the network layer structure is shown in Figure 4:
  • the business client and the TC-Socket API layer correspond to an application layer protocol
  • the operating system is used to process the transport layer and the network layer, and the operating system also provides a Socket API interface for developing a specific application protocol for the service client;
  • the physical NIC corresponds to the data link layer and the physical layer.
  • FIG. 5 is a schematic diagram of an implementation of an interconnection according to Embodiment 2 of the present invention. As shown in FIG. 5, the embodiment of the present invention includes the following steps:
  • Step 501 The service client sends a UDP packet, the source address of the UDP packet is 10.10.2.2, the source port is 5060, the destination address is 10.10.2.1, the destination port is 5060, and the data is "AAA".
  • the destination address and the destination port may be an IP address and a port configured by the service client in advance.
  • the source address of the UDP packet is not the local IP address of the service client, but the IP address of the server side, that is, the intranet IP address of the remote Socket calling server.
  • the business client when the business client starts, the business client initializes the remote Socket calling client component.
  • the remote Socket call client component starts, an HTTP tunnel is established to call the server device address of the remote Socket on the server side configured in advance, and the remote Socket calls the client component and the remote Socket call server to transmit the network data through the HTTP tunnel.
  • the service client can create a Socket connection by calling a function for creating a Socket connection; calling the free IP address and port of the local area network where the remote socket is called to call the server; using the free IP address and port as the source address and the source port; And calling a function that associates the source address, the source port, the destination address, and the destination port with the Socket.
  • Step 502 The remote Socket calling client component encapsulates the Socket API function invoked by the application layer, encapsulates it into an internal message structure, and includes all information of the function in the structure. This information includes the source address 10.10.2.2, the source port 5060, the destination address 10.10.2.1, the destination port 5060, and the content of the message "AAA".
  • the remote Socket calls the client component to package the message structure in the first HTTP packet.
  • Step 503 The remote Socket calls the client component to invoke the SocketAPI in the operating system, and generates the first IP packet by using the packaged first HTTP data packet.
  • SocketAPI calls the function of the operating system to generate the first HTTP packet as the first IP packet.
  • the first IP packet includes the client IP address and port, and the IP address and port of the server.
  • the client source address is 192.168.2.1 and the source port is 1080.
  • the public network address of the server is 202.204.65.3 and the destination port is 80.
  • Step 504 The operating system invokes a physical network card, and sends the first IP packet to the NAT gateway through the local area network.
  • Step 505 The NAT gateway modifies the source address and port of the first IP packet, and routes the modified second IP packet public network to the public address of the remote Socket calling server.
  • the NAT gateway has two network IP addresses, one is the external network IP address, that is, the public network IP address; the other is the internal IP address, that is, the LAN IP address.
  • the NAT gateway After receiving the first IP packet sent by the local area network, the NAT gateway modifies the local area network IP address 192.168.2.1 to the public network IP address 202.204.65.1 of the NAT gateway, and changes the port 1080 to a new port 11111.
  • the modified second IP packet has no information on the local area network at all, and can be completely routed on the public network.
  • the NAT gateway routes the second IP packet to the destination host through the public network.
  • the NAT gateway is sending the second IP At the time of the package, a piece of information is recorded internally, and the correspondence between 202.204.65.1 11111 and 192.168.2.1 1080 is recorded.
  • Step 506 The remote Socket calling server unpacks the second IP packet received on the public network, obtains a message structure encapsulated by the remote Socket calling client component, and unpacks the message structure to obtain a service client originally wants to invoke.
  • Socket API function name (Send) and parameter information source address 10.10.2.2, source port 5060, destination address 10.10.2.1, destination port 5060, and message content "AAA" 0
  • Step 507 the remote Socket calling server calls the SocketAPI in the local operating system to generate a third IP packet, and the third IP includes a source IP address 10.10.2.2, a source port 5060, a destination IP address 10.10.2.1, a destination port 5060, and a message content. AAA".
  • the third IP packet is sent to the corresponding service server of the destination IP address 10.10.2.1.
  • FIG. 6 is a flowchart of a method for interconnecting according to Embodiment 3 of the present invention. As shown in Figure 6, this embodiment includes the following steps:
  • Step 601 The remote Socket calls the client component to initiate an HTTP tunnel to establish a connection, and establishes an HTTP tunnel.
  • Step 602 The service client invokes the remote socket to call the tc_socket() method of the client component, and creates a Socket connection in the remote Socket call server network.
  • the business client calls the remote Socket to call the client component method tc_ socketO, establishes a Socket connection, and the identifier of the Socket connection is associated with the source IP address, the source port, the destination IP address, the destination port and the like.
  • Step 603 The remote Socket calls the client component to obtain information about the first Socket API function invoked by the business client.
  • the business client calls the TC-Socket API interface of the client component by calling the remote socket.
  • Send data the data content to be sent is included in the first Socket API function.
  • Step 604 The remote Socket calls the client component to encapsulate the function information of the first Socket API as a message structure.
  • the remote Socket call client component encapsulates all the information of the first Socket API function to be called by the business client into a message structure.
  • the information includes: source IP address, source port, destination IP address, destination port, and content of the message.
  • the message structure is then packaged in a first HTTP packet.
  • Step 605 The remote Socket calls the client component to call the Socket API to send the first HTTP packet, and the Socket API generates the HTTP packet as the first IP packet.
  • the Socket API calls the function of the operating system to generate the first HTTP packet as the first IP packet.
  • the first IP packet includes the client IP address and port, and the IP address and port of the server.
  • Step 606 The operating system invokes the physical network card to send the first IP packet to the NAT gateway through the local area network.
  • Step 607 The NAT gateway modifies the source IP address and port of the first IP packet, and sends the modified second IP packet.
  • the NAT gateway After receiving the first IP packet sent by the local area network, the NAT gateway modifies the LAN IP address to the public IP address of the NAT gateway, and modifies the port to an idle port on the public network. In this second IP packet, there is no information in the LAN, and it can be completely routed in the public network.
  • Step 608 The remote Socket calls the server to decapsulate the received message structure in the second IP packet.
  • the remote Socket call server unpacks the second IP packet received on the public network, obtains the message structure encapsulated by the remote Socket calling client component, and unpacks the message structure to obtain the Socket API function that the business client originally wants to call. Name and parameter information.
  • Step 609 the remote Socket calling server calls the local Socket API function to generate a third IP packet, and sends it to the service server.
  • the remote Socket calling server calls the Socket API in the local operating system to generate a third IP packet, and sends the IP packet to the corresponding service according to the destination IP address and port information in the third IP packet. Server.
  • FIG. 7 is a schematic diagram of a process of a complete remote Socket call according to Embodiment 4 of the present invention. As shown in FIG. 7, this embodiment includes the following steps:
  • Step 701 When the business client is started, the business client loads and initializes the remote Socket calling business component.
  • Step 702 start a remote Socket call business component.
  • Step 703 When the remote Socket call service component starts, initiate a connection establishing an HTTP tunnel to the remote Socket call server address of the pre-configured server.
  • Step 701 to step 703 are a tunnel establishment process.
  • Step 704 The service client invokes a remote Socket call client component method tc_ socket() to establish a Socket connection inside the remote Socket call server network.
  • Step 705 The remote Socket calls the client component to encapsulate the function name and parameters of the tc_socket() in a message structure, and transmits the message structure to the remote Socket calling server through the HTTP tunnel.
  • Step 706 The remote Socket calls the server to unlock the message structure in the data packet received on the public network, restores the message structure to a local call, and obtains a return value of the Socket connection.
  • Step 707 The remote Socket calling server encapsulates the result of calling the socket() function in a message structure, and returns the message structure to the remote Socket calling client component through an HTTP tunnel.
  • Step 708 The remote Socket calls the client component to unpack the received message structure, and returns the result returned by the remote socket call server to the service client by using the return value of tc_socket().
  • the business client gets the result of tc_ socket(), which is the result of the remote call socket().
  • Steps 704 to 708 are procedures for establishing a Socket connection.
  • Step 709 the method in which the business client invokes the remote Socket to invoke the client component tc_GetIPAddress()
  • Step 710 The remote Socket calling client component encapsulates the function name and parameters of tc_GetIPAddress() in a message structure, and transmits the message structure to the remote Socket calling server through an HTTP tunnel.
  • Step 711 The remote Socket calls the server to unlock the message structure in the data packet received on the public network, and restores the message structure to a local function GetIPAddress() to obtain a local idle IP address and port.
  • Step 712 The remote Socket calling server encapsulates the obtained free IP address and port as a function of the return value of the function GetlPAddressO into a message structure, and returns the client component to the remote Socket through the HTTP tunnel.
  • Step 713 The remote Socket calls the client component to unpack the received message structure, and returns the result returned by the remote socket call server to the service client by using the return value of tc_GetlPAddressO.
  • the service client receives the return result of tc_GetlPAddressO, that is, the IP address and port returned by the remote Socket call server.
  • the service client uses the IP address as the source IP address and uses the port as the source port.
  • Step 709 to step 713 are a process of acquiring a source IP address and a port of the service client.
  • Step 714 the business client calls the remote socket to call the client component function tc_bind().
  • the source IP address, the source port, the destination IP address, and the destination port are bound to the Socket connection established in step 704 to step 708.
  • Step 715 The remote Socket call client component encapsulates the function name and parameters of the tc_bind() into a message structure, and transmits the message structure to the remote Socket calling server through the HTTP tunnel.
  • Step 716 The remote Socket calls the server to unlock the message structure in the data packet received on the public network, and restores the message structure to a local function bindO, and the source IP address, the source port, the destination IP address, The destination port is associated with the Socket identifier.
  • Step 717 The remote Socket call server encapsulates the return value of the bind() function into a message structure, and returns the call to the remote Socket to invoke the client component through the HTTP tunnel.
  • Steps 714 to 718 are procedures for binding the Socekt connection with the source IP address, source port, destination IP address, and destination port.
  • Step 719 the business client invokes the remote socket to call the tc_send() function in the client component, and sends the network data to the service server.
  • Step 720 The remote Socket call client component encapsulates the tc_send() function into a message structure, and transmits the message structure to the remote Socket calling server through an HTTP tunnel.
  • Step 721 The remote Socket invokes the server to unlock the message structure in the data packet received on the public network, and restores the message structure to a call to a local function sendO.
  • Step 722 The remote Socket calls the server to send the network data to the service server.
  • Steps 719 to 722 are processes for transmitting network data.
  • Step 723 the business client calls the remote Socket to call the tc_select() function in the client component.
  • the tc_selcet() function is used to listen for data on the socket connection.
  • Step 724 The remote Socket calling client component encapsulates the tc_select() function into a message structure, and transmits the message structure to the remote Socket calling server through an HTTP tunnel.
  • Step 725 The remote Socket invokes the server to unpack the message structure in the data packet received on the public network, and restores the message structure to a call to a local function selectO.
  • Step 726 The service server sends a network data packet to the service client.
  • Step 727 The remote Socket calling server detects that a data packet arrives, and calls the recv() function to receive the data packet.
  • Step 728 The remote Socket calling server encapsulates the received data packet into a message structure, and transmits the message structure to the remote Socket calling client component through an HTTP tunnel connection.
  • Step 729 The remote Socket invoking the client component parses the network data packet from the message structure, and finds that the data arrives, and sends a message to the service client to arrive at the data.
  • Step 730 the business client knows that a data packet arrives from the return result of the tc-selcet() function, and calls the remote socket to call the tc_recv function of the client component to receive the data packet.
  • Step 731 The remote Socket call client component returns the obtained data packet to the service client in the tc_rec() function.
  • Steps 723 to 731 are processes for monitoring and receiving network packets returned by the service server.
  • FIG. 8 is a schematic diagram of an interconnected device according to Embodiment 5 of the present invention. As shown in Fig. 8, this embodiment includes the following units:
  • the obtaining unit 801 is configured to obtain information about the first Socket API function invoked by the service client.
  • the business client invokes the interface of the TC Socket API to send network data, and the network data content is included in the first Socket API function.
  • the obtaining unit 801 is configured to obtain first Socket API function information including network data content.
  • the encapsulating unit 802 is configured to encapsulate the information of the first Socket API function into a message structure.
  • encapsulation unit 802 encapsulates all information of the first Socket API function to be invoked by the service client into a message structure. This information includes: source IP address, source port, destination IP address, destination port, and the content of the message. The message structure is then packaged in the first HTTP packet
  • the sending unit 803 is configured to send the message structure, so that the remote socket Socekt call server executes the second Socket API function corresponding to the first Socket API function in the message structure.
  • the sending unit 803 specifically packages the message structure in a first HTTP data packet, and sends a first HTTP data packet by calling a Socket API in an operating system; the Socket API will use the first HTTP data packet.
  • Generated as a first IP packet the operating system invokes a physical network card, Transmitting the first IP packet to a NAT (Network Address Translation) gateway; the NAT gateway modifying a source address and a source port of the first IP packet to be a public network IP address and a new port of the NAT gateway, generating a first
  • the second IP packet passes through the public network route and reaches the public network address of the remote Socket calling server.
  • the remote Socket calling server unpacks the second IP packet received on the public network, obtains the message structure encapsulated by the remote Socket calling client component, and unpacks the message structure to obtain the service client originally wants to invoke.
  • Socket API function name and parameter information The remote Socket call server calls the Socket API in the local operating system to generate a third IP packet, and sends the IP packet to the corresponding service server according to the destination IP address and port information in the third IP packet.
  • the business server then calls the server through the remote Socket to return the returned result to the remote Socket calling client component through the HTTP tunnel.
  • the device further includes: an HTTP tunnel establishing unit 804, configured to initiate an HTTP tunnel establishment connection to the remote Socket calling server, and establish an HTTP tunnel.
  • an HTTP tunnel establishing unit 804 configured to initiate an HTTP tunnel establishment connection to the remote Socket calling server, and establish an HTTP tunnel.
  • the remote Socket call client component When the remote Socket call client component starts, it sends an HTTP tunnel to the remote Socket call server to establish a connection and establish an HTTP tunnel.
  • the remote Socket calling client communicates with the remote Socket calling server through the HTTP tunnel.
  • the device further includes: a Socket connection creating unit 805, configured to initiate a Socket connection creation request to the remote Socket calling server, and create a Socket connection.
  • a Socket connection creating unit 805 configured to initiate a Socket connection creation request to the remote Socket calling server, and create a Socket connection.
  • the service client calls the remote socket to call the function tc_socket() of the client component, and establishes a Socket connection on the remote Socket call server.
  • the remote Socket call server returns the established Socket connection identifier as a return value to the service. Client.
  • the device further includes: a source address information obtaining unit 806, configured to acquire an idle IP address and a port of the local area network where the remote Socket calls the server, and use the source IP address and the source port as the source IP address and the source port.
  • a source address information obtaining unit 806, configured to acquire an idle IP address and a port of the local area network where the remote Socket calls the server, and use the source IP address and the source port as the source IP address and the source port.
  • the remote socket is called to call the function tc_GetIPAddress() of the client component to obtain the free IP address and port in the intranet of the remote socket.
  • the remote Socket call server returns the IP address and port to the business client.
  • the service client sends a network packet to the service server, the IP address and port are used as the source IP address and port.
  • the device further includes: an association unit 807, configured to associate the source IP address, the source port, the destination IP address, and the destination port with the Socket connection.
  • an association unit 807 configured to associate the source IP address, the source port, the destination IP address, and the destination port with the Socket connection.
  • the business client calls the remote socket to call the client component function tc_bindO, binds the source IP address, source port, destination IP address, destination port and the established Socket connection, that is, associates with the identifier of the established Socket connection. .
  • An embodiment of the present invention provides an interconnection system, where the system includes the interconnection device according to any one of claims 7-11, a remote Socket calling server, a service client, and a service server; a second Socket API function corresponding to the first Socket API function in the message structure sent by the interconnecting device, so that the service client in the first local area network and the service in the second local area network
  • the server is interconnected on the public network, the remote Socket calling server is in the second local area network, and the second local area network is in the public network.
  • the interconnection system establishes an HTTP tunnel and a Socket connection between the remote socket calling client component and the remote socket calling server, and realizes the interconnection of the remote socket calling client component and the remote socket calling server, and the remote socket.
  • the calling client component is a component on the business client
  • the remote Socket calling server runs in the business server network, thereby realizing the interconnection between the business client and the business server, that is, realizing the business client in the local area network and the described
  • the remote Socket calls the server to interconnect the business servers in the same local area network on the public network.
  • Remote Socket call client and remote Socket call server Implement remote Socket call based on application layer, without changing the operating system, network characteristics, and do not need to pay attention to network protocol, the implementation is very simple.
  • the interconnection method, device and system provided by the embodiments of the present invention implement remote Socket calling based on the application layer, do not change the operating system and network characteristics, and do not need to pay attention to the network protocol, save port resources, and reduce the complexity of networking.
  • the present invention can be used as a software SVN (SSL Virtual Private Network) solution instead of a hardware SVN device. This is cheap.
  • RAM random access memory
  • ROM read only memory
  • electrically programmable ROM electrically erasable programmable ROM
  • registers hard disk, removable disk, CD-ROM, or any other form of storage known in the art. In the medium.

Abstract

本发明实施例公开了一种互联方法、装置和系统。其中,远程Socket调用客户端组件获取业务客户端调用的第一套接字编程接口Socket API函数的信息;封装所述第一Socket API函数的信息为一个消息结构体;发送所述消息结构体,以使得远程套接字Socekt调用服务器执行所述消息结构体中第一Socket API函数所对应的第二Socket API函数。本发明实施例解决了第一局域网中的业务客户端与第二局域网中的业务服务器在公网上互联的问题。

Description

一种互联方法、 装置和系统 本申请要求于 2011 年 12 月 13 日提交中国专利局、 申请号为 201110415004. 2 ,发明名称为"一种互联方法、装置和系统"的中国专利申请的 优先权, 在先申请文件的内容通过引用结合在本申请中。
技术领域
本发明涉及通信领域, 尤其涉及一种互联方法、 装置和系统。
背景技术
将两台机器通过交换机设备连接起来, 实现两台以上机器的相互访问, 即构成了局域网络。 在局域网中, 由于机器数量较少, 因此可以很容易配置 每台机器的 IP地址, 而且很少发生冲突。 在局域网中, 两台机器可以直接根 据 IP地址相互访问。
公网^ ^于全球或者跨国、 跨省的网络, 在公网中, 运行着大量的机器, 如果每台机器需要占用一个 IP地址, 则会消耗大量的 IP地址资源。
目前通常使用网络地址转换 ( Network Addres s Trans lat ion, NAT )技 术实现在有限的 IP资源情况下支持大量的机器接入公网。
对于收发 IP包的源端机器和目的端机器来说, 其系统层次与 TCP/ IP协 议之间存在一定的对应关系。 例如: 物理网卡对应处理数据链路层和物理层; 操作系统(Operat ion Sys tem)用于处理传输层和网络层; 操作系统同时提供 套接字编程接口 (Socket API )给业务客户端开发具体的应用协议; 业务客 户端对应的是应用层协议。
Socket API是操作系统提供给应用程序用于开发网络应用的一组函数。 在现有技术下, 通常使用虚拟网卡技术实现一个局域网中的业务客户端 与另一个局域网中的业务服务器在公网上的互联。 虚拟网卡技术在客户机和 服务器的操作系统层加载 IP包钩子, 将特定目的地址的 IP包钩取后经隧道 发送。 虚拟网卡技术在操作系统和物理网卡之间增加一个虚拟网卡层, 用于 截获操作系统下发给网卡的 IP包, 并对特定的 IP包进行转换, 从而实现业 务客户端与业务服务器的互联。
使用虚拟网卡技术可以实现一个局域网中的业务客户端与另一个局域网 中的业务服务器在公网上的互联, 但是该技术存在以下技术缺陷:
1、 虚拟网卡是运行在内核的进程, 软件冲突性比较大, 系统的兼容性、 稳定性不佳。
1、 发生故障时, 会导致机器蓝屏等严重问题。
3、 改变了操作系统底层逻辑, 容易被杀毒软件识别为病毒。
4、 需要开发多种操作系统 inux、 MAC , iOS等)的虚拟网卡技术。
针对现有技术的缺陷, 本发明提供了一种基于 Socket远程调用的局域网 穿越技术方案, 实现业务客户端远程调用服务器局域网内的 Socket , 与服务 器如同在同一个局域网内通信。
发明内容
本发明实施例提供了一种互联方法、 装置和系统, 可以实现一个局域网 中的业务客户端与另一个局域网中的业务服务器在公网上的互联。
一方面, 本发明实施例提供了一种互联方法, 其特征在于, 所述方法包 括:
获取业务客户端调用的第一套接字编程接口 Socket API函数的信息; 封装所述第一 Socket API函数的信息为一个消息结构体;
发送所述消息结构体, 以使得远程套接字 Socekt调用服务器执行所述消 息结构体中第一 Socket API函数所对应的第二 Socke t 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调用客户端和远程 Socke t调用服务器基于应用层实现远程 Socke t 调用, 不改变操作系统, 网络特性, 而且不需要关注网络协议, 实现非常简 单。
附图说明
为了更清楚地说明本发明实施例的技术方案, 下面将对实施例或现有技 术描述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图 仅仅是本发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造 性劳动的前提下, 还可以根据这些附图获得其他的附图。 图 2为虚拟网卡技术下业务客户端与业务服务器互联的实现原理示意图; 图 3为本发明实施例一提供的一种互联的方法流程图;
图 4为本发明实施例远程 Socke t技术下主机分层结构和网络分层结构的 对应关系示意图;
图 5为本发明实施例二提供的一种互联的实现原理图;
图 6为本发明实施例三提供的一种互联的方法流程图;
图 7 为本发明实施例四提供的一个完整的远程 Socke t 调用的过程示意 图;
图 8为本发明实施例五提供的一种互联的装置示意图。
具体实施方式 如图 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的函数信息。 所述数据结构体的结 构如下: 其中, ChannellD与 Socket连接对应, 描述远程 Socket调用客户端与远 程 Socket调用服务器之间的 Socket连接的标识符。 ChannellD最大支持 65536 个 Socket连接, 与端口数相当。 ChannellD长度为 2字节。 在业务客户端与业 务服务器通过 Socket连接进行网络数据交互时,由于 Socket连接标识符与源 IP地址、 源端口、 目的 IP地址、 目的端口已经关联在一起, 因此携带 Channel ID即相当于携带了源 IP地址、 源端口、 目的 IP地址、 目的端口。
需要说明的是, 进行网络数据交互的 Socket API函数可以为: sendO函 数、 sendto()函数、 recv()函数、 recvfrom()函数、 select()函数。
Length表示 Socket API函数封装数据的长度, 最大可以描述 2048个字 节。 Length长度为 11位。
Type表示函数的名称的枚举值。 Type长度为 5位。 Type可以指示 32种 操作, 目前可以使用到 18种, 如下所示:
enum Type
SOCKET=0,
BIND=1,
LISTEN=2,
ACCEPT=3,
CON ECT=4,
CLOSE=5,
SHUTDOWN=6,
RECV=7,
RECVFROM=8,
SEND=9,
SENDTO=10,
TCPSEND=11,
SETSOCKOPT=12,
GETSOCKOPT=13, GETSOCKNAME=14,
GETPEERNAME=15,
GETHOSTBYNAME=16
IOCTL=17,
GETIPANDPORT=18
Data表示函数封装的数据的内容。 Data长度最大为 2048字节。
例如:业务客户端调用远程 Socket调用客户端组件中的 tc— send()函数时, 远程 Socket调用客户端组件将该函数封装为一个如下的消息结构体: 其中, 11012为 Socket连接的标识符; 3为 Data部分的长度,即为 "AAA" 的长度; 9为 sendO函数的枚举值; AAA为 send()函数发送的消息内容。
步骤 303 , 远程 Socket调用客户端组件发送所述消息结构体, 以使得远 程套接字 Socekt调用服务器执行所述消息结构体中第一 Socket API函数所对 应的第二 Socket API函数。
需要说明的是, 第一 Socket API函数是业务客户端的函数, 第二 Socket API函数是业务服务器中的与业务客户端的第一 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调用客户端组件调用操作系统中的 SocketAPI, 将 打包后的第一 HTTP数据包生成第一 IP包。
SocketAPI调用操作系统的功能,将第一 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.1 1080 的对应关系。
步骤 506, 远程 Socket调用服务器将公网上收到的第二 IP包解开, 得到 远程 Socket调用客户端组件封装的消息结构体, 并将该消息结构体解开, 得 到业务客户端原本希望调用的 Socket API函数名 (Send ) 以及参数信息 (源 地址 10.10.2.2, 源端口 5060, 目的地址 10.10.2.1 , 目的端口 5060, 以及消息 的内容 "AAA" )0
步骤 507, 远程 Socket调用服务器调用本地操作系统中的 SocketAPI, 生 成第三 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— socketO, 建立一 个 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地址和端口作为 函数 GetlPAddressO的返回值封装成一个消息结构体, 并通过 HTTP隧道返回 给远程 Socket调用客户端组件。
步骤 713 , 远程 Socket调用客户端组件解开接收到的消息结构体, 通过 tc— GetlPAddressO的返回值将远程 Socket调用服务器返回的结果返回给业务客 户端。业务客户端得到 tc— GetlPAddressO的返回结果, 即得到远程 Socket调用 月良务器返回的 IP地址和端口。 业务客户端将该 IP地址作为源 IP地址, 将该 端口作为源端口。
步骤 709至步骤 713为业务客户端的源 IP地址和端口的获取过程。
步骤 714, 业务客户端调用远程 Socket调用客户端组件的函数 tc— bind()。 将源 IP地址、 源端口、 目的 IP地址、 目的端口与步骤 704至步骤 708建立的 Socket连接进行绑定。
步骤 715 ,远程 Socket调用客户端组件将 tc— bind()的函数名和参数封装成 一个消息结构体, 并将该消息结构体通过 HTTP隧道传输到远程 Socket调用 服务器。
步骤 716 , 远程 Socket调用服务器解开公网上收到的数据包中的消息结 构体, 将该消息结构体还原为对本地的一个函数 bindO的调用, 将源 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调用服务器解开公网上收到的数据包中的消息结 构体, 将该消息结构体还原为对本地的一个函数 sendO的调用。
步骤 722, 远程 Socket调用服务器将网络数据发送到业务服务器。
业务服务器收到数据后, 会向业务客户端返回一个数据发送成功的结果。 步骤 719至步骤 722为发送网络数据的过程。
步骤 723 , 业务客户端调用远程 Socket调用客户端组件 中的 tc— select() 函数。
tc_selcet()函数用来监听 socket连接上是否有数据到达。
步骤 724, 远程 Socket调用客户端组件将 tc— select()函数封装成消息结构 体, 并将该消息结构体通过 HTTP隧道传输给远程 Socket调用服务器。
步骤 725 , 远程 Socket调用服务器解开公网上收到的数据包中的消息结 构体, 将该消息结构体还原为对本地的一个函数 selectO的调用。
步骤 726, 业务服务器向业务客户端下发一个网络数据包。
步骤 727 , 远程 Socket调用服务器检测到有数据包到达, 调用 recv()函数 接收该数据包。
步骤 728 , 远程 Socket调用服务器将接收到的数据包封装成一个消息结 构体, 并通过 HTTP隧道连接将该消息结构体传给远程 Socket调用客户端组 件。 步骤 729, 远程 Socket调用客户端组件从消息结构体中解析出网络数据 包, 发现有数据到达, 给业务客户端发送数据到达的消息。
步骤 730, 业务客户端从 tc— selcet()函数的返回结果知道有数据包到达, 调用远程 Socket调用客户端组件的 tc— recvO函数, 接收该数据包。
步骤 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 函数所对应的第二 Socket API函数。
优选地, 发送单元 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— bindO, 绑定源 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 Private Network, 加密虚拟专用网)方案, 可以替代硬件 SVN设备, 实现简单, 成 本低廉。
专业人员应该还可以进一步意识到, 结合本文中所公开的实施例描述的 各示例的单元及算法步骤, 能够以电子硬件、 计算机软件或者二者的结合来 实现, 为了清楚地说明硬件和软件的可互换性, 在上述说明中已经按照功能 一般性地描述了各示例的组成及步骤。 这些功能究竟以硬件还是软件方式来 执行, 取决于技术方案的特定应用和设计约束条件。 专业技术人员可以对每 个特定的应用来使用不同方法来实现所描述的功能, 但是这种实现不应认为 超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、 处理 器执行的软件模块, 或者二者的结合来实施。 软件模块可以置于随机存储器
( RAM )、内存、只读存储器( ROM )、电可编程 ROM、电可擦除可编程 ROM、 寄存器、 硬盘、 可移动磁盘、 CD-ROM、 或技术领域内所公知的任意其它形 式的存储介质中。
以上所述的具体实施方式, 对本发明的目的、 技术方案和有益效果进行 了进一步详细说明, 所应理解的是, 以上所述仅为本发明的具体实施方式而 已, 并不用于限定本发明的保护范围, 凡在本发明的精神和原则之内, 所做 的任何修改、 等同替换、 改进等, 均应包含在本发明的保护范围之内。

Claims

权 利 要求 书
1、 一种互联方法, 其特征在于, 所述方法包括:
获取业务客户端调用的第一套接字编程接口 Socket API函数的信息; 封装所述第一 Socket API函数的信息为一个消息结构体; 发送所述消息结构体,以使得接收方执行所述消息结构体中第一 Socket API 函数所对应的第二 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数据包中, 调用操作系统中的 Socket API发送所述第一 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调用服务器, 业务客户端, 业务服务器; 所述远程 Socke t调用服务器执行所述互联装置发送的消息结构体中第一 Socke t API函数所对应的第二 Socket API函数, 以使得第一局域网中的拥有所述互联 装置的所述业务客户端与第二局域网中的所述业务服务器在公网上互联, 所述 远程 Socket调用服务器在所述第二局域网中, 所述第二局域网在所述公网中。
PCT/CN2012/080439 2011-12-13 2012-08-22 一种互联方法、装置和系统 WO2013086869A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201110415004.2A CN103166824B (zh) 2011-12-13 2011-12-13 一种互联方法、装置和系统
CN201110415004.2 2011-12-13

Publications (1)

Publication Number Publication Date
WO2013086869A1 true WO2013086869A1 (zh) 2013-06-20

Family

ID=48589576

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/CN2012/080439 WO2013086869A1 (zh) 2011-12-13 2012-08-22 一种互联方法、装置和系统
PCT/CN2012/085060 WO2013086928A1 (zh) 2011-12-13 2012-11-22 一种互联方法、装置和系统

Family Applications After (1)

Application Number Title Priority Date Filing Date
PCT/CN2012/085060 WO2013086928A1 (zh) 2011-12-13 2012-11-22 一种互联方法、装置和系统

Country Status (4)

Country Link
US (1) US9137334B2 (zh)
EP (1) EP2712127A4 (zh)
CN (1) CN103166824B (zh)
WO (2) WO2013086869A1 (zh)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
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
CN103442224A (zh) * 2013-09-09 2013-12-11 杭州巨峰科技有限公司 一种基于nat穿透的视频监控访问策略和实现方法
US20160072764A1 (en) * 2014-09-10 2016-03-10 T-Mobile Usa, Inc. Dynamic double network address translator
US10425382B2 (en) 2015-04-13 2019-09-24 Nicira, Inc. Method and system of a cloud-based multipath routing protocol
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
US10608985B2 (en) * 2015-08-14 2020-03-31 Oracle International Corporation Multihoming for tunneled encapsulated media
CN105208041B (zh) * 2015-10-15 2018-09-21 厦门大学 基于hook的云存储应用加密数据包破解方法
CN105721473B (zh) * 2016-02-24 2019-07-09 锐达互动科技股份有限公司 一种web端远程调用优化的方法及系统
CN106027489B (zh) * 2016-04-28 2019-05-31 腾讯科技(深圳)有限公司 互联网联机的方法、装置及系统
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
US11252079B2 (en) 2017-01-31 2022-02-15 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
US10992568B2 (en) 2017-01-31 2021-04-27 Vmware, Inc. 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
US20200036624A1 (en) 2017-01-31 2020-01-30 The Mode Group High performance software-defined core network
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
CN107426233A (zh) * 2017-08-08 2017-12-01 深圳先进技术研究院 基于B/S架构的数据通信系统、方法、Web服务器及监控系统
CN107544799A (zh) * 2017-08-21 2018-01-05 深圳市清显科技有限公司 一种对库函数进行封装的方法
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
US11089111B2 (en) * 2017-10-02 2021-08-10 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
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
US11855805B2 (en) 2017-10-02 2023-12-26 Vmware, Inc. Deploying firewall for virtual network defined over public cloud infrastructure
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
CN109218203A (zh) * 2018-09-20 2019-01-15 上海龙弈信息科技有限公司 一种金融管理及风险控制处理系统及其运行方法
CN110166479B (zh) * 2019-05-31 2022-02-01 深圳市瑞云科技有限公司 一种传输系统提升udp发送效率的方法
CN110519232A (zh) * 2019-07-30 2019-11-29 裴小根 基于Android OS二维对称加密算法的文件远距离加密传输系统
US11212238B2 (en) 2019-08-27 2021-12-28 Vmware, Inc. Providing recommendations for implementing virtual networks
US11611507B2 (en) 2019-10-28 2023-03-21 Vmware, Inc. Managing forwarding elements at edge nodes connected to a virtual network
US11394640B2 (en) 2019-12-12 2022-07-19 Vmware, Inc. Collecting and analyzing data regarding flows associated with DPI parameters
US11489783B2 (en) 2019-12-12 2022-11-01 Vmware, Inc. Performing deep packet inspection in a software defined wide area network
US11606712B2 (en) 2020-01-24 2023-03-14 Vmware, Inc. Dynamically assigning service classes for a QOS aware network link
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
US11575591B2 (en) 2020-11-17 2023-02-07 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
US11509571B1 (en) 2021-05-03 2022-11-22 Vmware, Inc. Cost-based routing mesh for facilitating routing through an 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
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
CN114125574A (zh) * 2021-11-19 2022-03-01 浩云科技股份有限公司 一种单向的流媒体传输方法及系统
US11909815B2 (en) 2022-06-06 2024-02-20 VMware LLC Routing based on geolocation costs

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030061402A1 (en) * 2001-09-26 2003-03-27 Satyendra Yadav Method and apparatus enabling both legacy and new applications to access an InfiniBand fabric via a socket API
CN1540932A (zh) * 2003-04-22 2004-10-27 华为技术有限公司 一种实现从指定端口发送数据报类型报文的方法
CN1838636A (zh) * 2005-03-22 2006-09-27 罗技欧洲公司 用于使数据包穿越网络地址转换装置的方法和装置
CN102215243A (zh) * 2010-04-12 2011-10-12 华为技术有限公司 事件同步的方法、系统、客户端和服务端

Family Cites Families (7)

* Cited by examiner, † Cited by third party
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
US7529812B2 (en) * 2004-02-09 2009-05-05 Sun Microsystems, Inc. Socket connections over a serial link
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
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 华为技术有限公司 一种实现私网穿越的方法、设备及服务器
JP2009230269A (ja) * 2008-03-19 2009-10-08 Sony Corp 情報処理装置、情報処理方法、リモートサーバ、情報処理システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030061402A1 (en) * 2001-09-26 2003-03-27 Satyendra Yadav Method and apparatus enabling both legacy and new applications to access an InfiniBand fabric via a socket API
CN1540932A (zh) * 2003-04-22 2004-10-27 华为技术有限公司 一种实现从指定端口发送数据报类型报文的方法
CN1838636A (zh) * 2005-03-22 2006-09-27 罗技欧洲公司 用于使数据包穿越网络地址转换装置的方法和装置
CN102215243A (zh) * 2010-04-12 2011-10-12 华为技术有限公司 事件同步的方法、系统、客户端和服务端

Also Published As

Publication number Publication date
WO2013086928A1 (zh) 2013-06-20
US9137334B2 (en) 2015-09-15
EP2712127A1 (en) 2014-03-26
CN103166824A (zh) 2013-06-19
US20140115047A1 (en) 2014-04-24
CN103166824B (zh) 2016-09-28
EP2712127A4 (en) 2015-02-18

Similar Documents

Publication Publication Date Title
WO2013086869A1 (zh) 一种互联方法、装置和系统
EP2253123B1 (en) Method and apparatus for communication of data packets between local networks
CN104270379B (zh) 基于传输控制协议的https 代理转发方法及装置
WO2021073565A1 (zh) 业务服务提供方法及系统
JP4146886B2 (ja) 通信モジュール及びこの通信モジュールを備えたアプリケーションプログラム
EP1853013A1 (en) A method and systems for securing remote access to private networks
US20050089014A1 (en) System and methods for communicating over the internet with geographically distributed devices of a decentralized network using transparent asymetric return paths
WO2020033489A1 (en) Systems and methods for server cluster network communication across the public internet
WO2015143802A1 (zh) 业务功能链处理方法及装置
WO2007036160A1 (fr) Appareil, systeme et procede assurant la communication entre un client et un serveur
WO2021073555A1 (zh) 业务服务提供方法及系统、远端加速网关
WO2020108578A1 (zh) 一种虚拟内网加速方法及系统、配置方法、存储介质和计算机设备
JP2020010326A (ja) WiFi管理フレームを利用したデータ送信方法、データ受信方法及びデータ通信方法
CN107786536B (zh) 一种tcp反向端口穿透方法及其系统
CN108064441B (zh) 一种加速网络传输优化方法以及系统
CN113067910A (zh) 一种nat穿越方法、装置、电子设备和存储介质
WO2023274146A1 (zh) 远程接入方法、电子设备及存储介质
CN1326347C (zh) 一种网络环境中实现多级安全访问控制的技术方法
CN115834291B (zh) 分布式内网服务数据获取方法、装置、设备及存储介质
CN117176678A (zh) 一种数据处理的方法及装置、电子设备、存储介质
CN117938801A (zh) 一种资源访问方法、装置、电子设备及介质
CN116488958A (zh) 网关处理方法、虚拟接入网关、虚拟业务网关及相关设备
Jensen Design of a Hardware Network Address Translation Unit for a Single Chip High-Speed Ethernet Router

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12858590

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12858590

Country of ref document: EP

Kind code of ref document: A1