Title of Invention

EQUIPMENT, SYSTEM AND METHOD FOR COMMUNICATION BETWEEN CLIENT AND SERVER SIDE

Abstract Equipment for communication between a client and a server side, which is applied in a communication system including the client the server side and a forward device between the client and the server side, includes: a transfer component, operable for establishing a dedicated channel between the transfer component and a transfer server through the forward device, establishing a communication connection between the transfer component and the client and establishing, based on the dedicated channel, a logic channel between the client and the server side; and a transfer server, operable for establishing the dedicated channel between the transfer component and the transfer server through the forward device, establishing a communication connection between the transfer server and the server side, and establishing, based on the dedicated channel, the logic channel between the client and the server side. A system and method for communication between the client and the server side are provided.
Full Text

EQUIPMENT, SYSTEM AND METHOD FOR COMMUNICATION BETWEEN CLIENT AND SERVER
SIDE
Field of the Invention
The present invention relates to network information interaction technology, and particularly, to equipment, system and method for communication between a client and n server side.
Background of the Invention
Along with the rapid development of the Internet, varieties of new applications emerge and the Internet business grows rapidly. Accordingly, the IP address resource supply becomes tighter and tighter and the network security is of greater aril greater concerned. Many companies and organizations or Metropolitan Area Networks access the Internet via forward devices so that the problems of tight IP address resort supply and organization network security can be solved. A forward device is typical IN Network Address Translation (NAT) equipment/proxy server/firewall
However, some complicated Internet applications require networks with dew end-to-end connections for communication, such as multimedia communication applications including IP telephone and IP conference. Such complicated Interknit applications require the major application part on a client to interact with a target server o\\ the Internet for end-to-end information exchange, and such complicated Inference applications usually have one or several of the following features:
First, the target server dynamically assigns a communication port to the application part of the client.
Second, the target server negotiates with the major application part of the elect dynamically on the communication ports of both parties;
Third, in a complete communication process, one or more ICP or I'DT communication ports are needed between the target server and the major application pan oil the client.

Fourth, complicated communication protocols are adopted, typically including H.3235 Session Initiation Protocol (SIP) or Media Gateway Control Protocol (MGCP, H.248/MeGaCo). However, a forward device usually does not support such complicated protocols, which may block the end-to-end communication between the major application part and the target server. Furthermore, in the interaction based on some of the complicated communication protocols (e.g. H.323 protocol), a packet from the major application part of the client to the target server contains only the origination/destination IP addresses and ports in the TCP/UDP header, but also the origination IP address and port in the TCP/UDP data part; the target server retrieves the origination IP address and port from the TCP/UDP data part upon receiving the packet and sends a response to the retrieved IP address and port. Such interaction requires direct link between the major application part of the client and the target server for normal communication.
Fifth, relate to communication initiated by a public network to a private network.
Sixth, the network environment of the application is diversified, and the network configuration cannot be modified or is hard to be modified.
Seventh, the target server is comparatively fixed, and is directly on the Internet.
Eighth, the software and the hardware of the target server are hard to be changed.
On the Internet, forward devices are used between many private networks and the public network (i.e. the Internet), and information exchanged between the major application part of the client and the target server can not go through the forward devices according to the existing communication methods. Therefore, normal communications of the end-to-end applications described above are blocked. Why the information can not go through the forward devices is explained as follows.
Firstly, if the forward device between a private network and the Internet is a firewall, the firewall imposes restrictions on communication ports, only several communication ports being opened. However, in a complicated application above, the communication between the major application part of a client and a target server requires dynamic assignment of communication ports, and the communication port needed by the complicated application will shift frequently and thus may be a port closed by the firewall,

therefore resulting in communication failure. Furthermore, the major application part of the client and the target server may negotiate to use multiple communication ports while the firewall opens a small limited number of communication ports, and the packet can not be transferred through simply opening more communication ports because the port configuration of the firewall is hard to be changed. It is really hard or even impossible for common users to change the network configuration, and the communication in the application can hardly go through the firewall.
Secondly, if the forward device between a private network and the Internet is a NAT/proxy server (i.e. a NAT or proxy server), the IP address of the major application part of a client is an IP address of the private network. The major application part of the client adopts a complicated communication protocol described in the fourth feature of the above features (e.g. H.323, SIP, MGCP, H248/MeGaCo) to interact with a target server. A packet from the major application part of the client to the target server reaches the Slat/proxy server first, and the NAT/proxy server replaces the origination IP address and port in the header of the packet by the IP address and the port of the NAT/proxy server before forwarding the packet to the target server. According to a protocol described in the fourth feature of the above features, the target server obtains the origination IP address and port from the data part of the packet and sends a response to the origination IP address and port. However, the origination IP address and port are not the IP address and port on the public network but the IP address and port on the private network of the client. Therefore, the response can not be routed to the correct destination IP address and port, i.e. to the major application part of the client, which results in communication failure.
Furthermore, if the forward device is a proxy server, the end-to-end communication protocol adopted by the major application part does not support a proxy protocol supporting interaction through the proxy server, and the major application part of the client therefore can not communicate with the proxy server, let alone communicate with the target server through the proxy server.
In addition, all of the three types of forward devices block communication initiated by a public network to a private network.

Summary of the Invention
In view of the above, the primary objective of the present invention is to provide equipment and communication system for communication between a client and a server side, which provides normal communication between a client and a server side through a forward device by enabling a communication packet to pass through the forward device.
Another objective of the present invention is to provide a method for communication between a client and a server side, which provides normal communication between a client and a server side through a forward device by enabling a communication packet to pass through the forward device.
To achieve the above objectives, the technical solution in accordance with the present invention is as follows:
The present invention discloses equipment for communication between a client and a server side, applied to a communication system comprising the client, the server side and a forward device between the client and the server side; the equipment includes;
a transfer component, operable for establishing a dedicated channel between the transfer component and a transfer server through the forward device, establishing a communication connection between the transfer component and the client, and establishing, based on the dedicated channel, a logic channel between the client and the server side; and the transfer server, operable for establishing the dedicated channel between the transfer component and the transfer server through the forward device, establishing a communication connection between the transfer server and the server side, and establishing, based on the dedicated channel, the logic channel between the client and the server side*
Preferably, the dedicated channel between the transfer component and the transfer server comprises a communication connection adopting Transfer Control Protocol (TCP) or User Datagram Protocol (UDP), and the dedicated channel adopts an open port of the forward device.
Preferably, the transfer server includes:

a standardized processing module[0], operable for receiving a port request from a major application part, assigning a local port and establishing the logic channel based on the port request and the local port.
Preferably, the standardized processing module[0] includes:
a first module, operable for assigning a unitary Transfer Control Protocol, TCP, port; a second module, operable for assigning a unitary User Datagram Protocol, UDP, port; and a third module, operable for assigning two sequential UDP ports;
any one of the first module, the second module and the third module receives the port request and assign the local port of a corresponding type-Preferably, the equipment further includes:
a conversion module, operable for negotiating an IP address and a port, parsing a negotiation data packet from the client to the server side, and converting the negotiated IP address and port of the client in a data part of the negotiation data packet into an IP address and a port of the transfer server on the logic channel, wherein the conversion module is set in a major application part in the client, or in the transfer component supporting a communication protocol of the major application part, or in the transfer server supporting a communication protocol of the major application part.
A communication system is provided. The communication system includes a client, a server side and a forward device set between the client and the server;
where the client includes a major application part; the server side includes at least one target server; and the system further includes the above equipment including:
the transfer component, operable for establishing a dedicated channel between the transfer component and the transfer server through the forward device, establishing a communication connection between the transfer component and the major application part, and establishing, based on the dedicated channel, a logic channel between the major application part and the target server; and
the transfer server, operable for establishing the dedicated channel between the transfer component and the transfer server through the forward device, establishing a communication connection between the transfer server and the target server, and

establishing, based on the dedicated channel, the logic channel between the major application part and the target server.
A method for communication between a client and a server side is provided, and the method is applied in a communication system including the client, the server side and a forward device between the client and the server side. The method includes:
establishing a dedicated channel between the client and the server side through the forward device;
establishing, if a major application part of the client communicates with a target server of the server side, a logic channel between the major application part and the target server based on the dedicated channel, and performing the communication.
Preferably, the establishing the dedicated channel between the client and the server side through the forward device includes:
setting a transfer component on the client, setting a transfer server on the server side, and establishing, by the transfer component and the transfer server, the dedicated channel;
the establishing the logic channel between the major application part and the target server based on the dedicated channel includes:
establishing, by the transfer component, a communication connection to the major application part, establishing, by the transfer server, a communication connection to the target server, and setting a first corresponding relation between communication ports assigned respectively by the major application part, the transfer component, the transfer server and the target server to form the logic channel.
Preferably, the establishing the logic channel between the major application part and the target server based on the dedicated channel by the transfer component and the transfer server includes:
sending, by the major application part to the transfer component, a port request containing an Internet Protocol, IP, address and a port of the major application part, and an IP address and a port of the target server;
encapsulating, by the transfer component, the port request with an internal protocol, sending the encapsulated port request to the transfer server over the dedicated channel, and assigning a local transfer interface for forwarding data;

assigning, by the transfer server, a local port based on the port request, and setting a second corresponding relation between the logic channel number, the IP address and the port of the transfer server, and the IP address and the port of the target server;
sending, by the transfer server to the transfer component, the second corresponding relation; and
setting, by the transfer component, the first corresponding relation between the logic channel number, the IP address and the port of the major application part, the IP address and the port of the transfer component, the IP address and the port of the transfer server, and the IP address and the port of the target server; and
regarding the first corresponding relation as the logic channel between the major application part and the target server,
Preferably, the establishing the logic channel between the major application part and the target server based on the dedicated channel by the transfer component and the transfer server includes:
sending, by the major application part, a port request containing an IP address and a port of the major application part to the transfer component;
encapsulating, by the transfer component, the port request with an internal protocol, sending the encapsulated port request to the transfer server over the dedicated channel, and assigning a local transfer interface for forwarding data;
assigning, by the transfer server, a local port based on the port request;
sending, by the major application part, an IP address and a port of the target server to the transfer component and the transfer server via communication data or a notification;
setting, by the transfer server, a second corresponding relation between the logic channel number, the IP address and the port of the transfer server, and the IP address and the port of the target server;
sending, by the transfer server, the second corresponding relation to the transfer component; and
setting, by the transfer component, the first corresponding relation between the logic channel number, the IP address and the port of the major application part, the IP address and the port of the transfer component, the IP address and the port of the transfer server and the IP address and the port of the target server; and

regarding the first corresponding relation as the logic channel between the major application part and the target server.
Preferably, the method further includes:
parsing, by the transfer server when the major application part and the target server negotiate a port, a negotiation data packet from the major application part to the target server;
converting a negotiated IP address and a negotiated port of the major application part in a data part of the negotiation data packet into an IP address and a port of the transfer server on the logic channel; and
sending the converted negotiation data packet to the target server.
When the forward device between a private network and the Internet is a firewall, the logic channel corresponding to the dynamically assigned or negotiated ports shall perform the communication through the firewall over the dedicated channel regardless of the number of the assigned or negotiated ports, and the dedicated channel is a unitary TCP or UDP connection using ports opened by the firewall, therefore the packets between the major application part and the target server can go through the firewall successfully.
The communication between the transfer component and the transfer server is a simple communication fitting the features of the forward device and adopting a simple internal protocol as the interaction protocol. Therefore, the communication usually is not blocked by the forward device and can go through the forward device successfully. When the forward device is a NAT/proxy server, the interaction protocol between the transfer component and the transfer server is a simple internal protocol. Unlike complicated protocols such as H.323 and SIP, the simple internal protocol does not return responses to the origination IP address and port in the data part of a data packet, but to the origination IP address and port in the header of the data packet. Because the IP address and port in the header of the data packet has been converted by the NAT/proxy server, the sent response can go through the NAT/proxy server successfully for smooth communication between the major application part and the target server.
When the forward device between the private network and the Internet is the proxy server (e.g. HTTP/SOCKS4/SOCKS5 proxy server), it is easier to apply the function of a

proxy protocol to the transfer component of the client, therefore interaction information can successfully go through the proxy server even when the major application part does not support the proxy protocol.
The present invention does not need to modify the software or hardware of the target server. If the transfer component or the transfer server supports a same protocol as the major application part, the present invention does not need to modify the software or hardware of the major application part, either. Furthermore, the present invention neither needs to upgrade or change the software or hardware of the NAT/proxy server/firewall, nor will the configuration of the NAT/proxy server/firewall be changed in normal circumstances. Therefore, the present invention can keep the existing software and hardware resources as much as possible and thus require very, low cost while enabling the communication to pass through the NAT/proxy server/firewall.
The technical scheme of the present invention is irrelevant to the communication protocol adopted by the major application part and the target server and thus does not need to take the complicacy of the communication protocol into concern. Therefore, it is easy to apply the technical scheme of the present invention.
According to the method of the present invention, before the actual communication between the major application part and the target server begins, the port request has already passed through the forward device for communication and the communication includes both "outgoing" and "incoming" communication. If the public network initiates communication to the private network, the forward device has already recorded "outgoing" communication from the private network to the public network and the logic channel has already been established, therefore the forward device will not block the communication initiated by the public network to the private network over the logic channel.
Brief Description of the Drawings
Figure 1 is a schematic diagram illustrating a structure of equipment in accordance with an embodiment of the present invention.
Figure 2 is a flowchart illustrating a method in accordance with an embodiment of the present invention.

Detailed Description of the Invention
The present invention is further described in detail hereinafter with respect to the accompanying drawings and embodiments.
The core technical scheme of the present invention includes: setting an intermediate device in a client and an intermediate device in a server side respectively, and enabling the two intermediate devices to communicate with each other on a dedicated channel so that the information exchanged between the client and the server side can be sent to each other via the two intermediate devices.
According to an embodiment of the present invention, equipment for communication between the client and the server side is described. Figure 1 is a schematic diagram illustrating a structure of the equipment in accordance with an embodiment of the present invention. As shown in Figure 1, the whole Internet application is divided into two parts; one is a Local Area Network (LAN) side, referred to as the client; and the other includes the entities on the Internet side, referred to as the server side* The client includes: major application part II, operable for performing functions of the client in the Internet application, e.g. the application part of an IP telephone or the application part of a network conference. The server side mainly includes; target server 14, eg. an IP telephones server or a network conference server, which is the actual destination of the communication with the client. The equipment provided by the present invention includes transfer component 12 in the client and transfer server 13 in the server side. The transfer component 12 and the transfer server 13 communicate with each other on a dedicated channel 15 established. The dedicated channel 15 is a unitary TCP/UDP connection using a port opened by the forward device (e.g. the firewall). The transfer component 12 and the transfer server 13 are operable for establishing a logic channel between the major application part and the target server over the dedicated channel between the transfer component 12 and the transfer server 13. The major application part and the target server communicate with each other over the logic channel established by the transfer component 12 and the transfer server 13,
An embodiment of the method provided by the present invention is given as follows.
Figure 2 is a flowchart of a method in accordance with an embodiment of the present invention. As shown in Figure 2, the method includes the following blocks.

Block 201: Establish a dedicated channel between a transfer component of a client and a transfer server when the client starts up.
The dedicated channel can be a unitary TCP/UDP communication connection which is established based on an open port of a forward device (e,g. a firewall). If a first attempt at establishing the dedicated channel fails, a second attempt or even more attempts can be made to detect an open port of the forward device and establish the dedicated channel based on the open port. After the dedicated channel is established, the communication data between the transfer component of the client and the transfer server are transmitted over the dedicated channel. Therefore, the communication between the major application part and the target server can go through the forward device over the unitary dedicated channel instead of the conventional communication going through the forward device with one or more end-to-end TCP/UDP communication ports which are dynamically assigned and negotiated. The security of the network is thus maintained as much as possible and the forward device only needs to open a fixed communication port at most for the whole communication, which makes it quite easy for the communication to go through the firewall
Because the port of the major application part and the port of the target server communicate with each other via the transfer component and the transfer server, a logic channel corresponding to the type and the number of the communication ports should be established in the transfer component and the transfer server if the port of the major application part is about to communicate with the port of the target server. The communication data between the port of the major application part and the port of the target server are transmitted to each other over the logic channel corresponding to the communication ports. The port of the target server may be an open port which is known to the major application part and configured for the major application part. Or the port of the target server may be a port assigned to the major application part by the target server (the information of the assigned port can be sent to the major application part via the open port), or a port determined by dynamic negotiafion between the major application part and the target server.
The process of establishing the logic channel between the transfer component and the transfer server is described in Blocks 202 to 207 as follows.

Block 202: The major application part of the client sends a port request to the transfer component before sending data to the target server.
The port request may be a message (e.g. a TCP/IP socket message or a Windows message), or a request made by invoking a function. The follow-up data transmission is usually implemented in accordance with the port request, i.e, by sending messages or by invoking a function. If the data are transmitted in port messages, the responses should also be port messages. If the data are transmitted by invoking a function, the responses should either be port messages or be sent by a callback function.
In this embodiment, the port request is made by sending a message. The port request contains the type and number of requested ports, and the IP address and port number of the target server with which the major application part communicates. In this embodiment, the port numbers are ports 140 and 14K The type and number of the requested port are in accordance with the type and number of the port via which the major application part communicates. The type of the requested port can be either a TCP port or a UDP port* For example, the ports of the target server with which the communication begins can be two sequential UDP ports, ports 140 and 141. The port request also contains the IP address of the major application part and the information of the port via which the major application part communicates with corresponding port of the target server. In this embodiment, supposing that the ports to be used by the major application part are two sequential UDP ports, ports 110 and 111, the transfer component needs to record the IP address and port numbers of the major application part, as well as the IP address and port numbers of the target server. The port request may not contain the IP address and port numbers of the target server; instead, the data packets in the follow-up data communication contain the IP address and port numbers of the target server.
Block 203: Upon receiving the port request, the transfer component encapsulates the port request with an internal protocol between the transfer component and the transfer server, and sends the encapsulated port request to the transfer server over the dedicated channel. At the same time, the transfer component assigns, according to the port type and number requested in the port request, local ports to the follow-up data packet transmission, i.e. two sequential local UDP ports such as ports 120 and 121. Such local ports are referred to as transfer interfaces of the transfer component.

The internal protocol is a communication protocol supporting simple encapsulation and decapsulation. The internal protocol responds to and processes the IP address and port number in the header of the message but does not process the contents in the data part of the message. Based on the above feature of the internal protocol, a protocol message can successfully go through the forward device (e.g. the NAT) which converts the IP address and port number in the header of the message in both directions. An internal protocol with such function described above can be achieved by those skilled in the art based on the prior art, and thus will not be described further herein.
Block 204: Upon receiving the port request from the transfer component of the client, the transfer server assigns local ports according to the communication port type and number described in the port request, i.e. assigns two sequential UDP ports, ports 130 and 131 in this embodiment. The corresponding relations are set up between the logic channel number, the IP address and port number of the transfer server and the IP address and port number of the target server. As shown in Table 1, it is supposed that the IP address of the transfer server is C and the IP address of the target server is D.

Logic Channel Number Communication Status of the logic channel IP Address/Port Number of the transfer server IP Address/PortNumber of the targetserver
0 Good C/I30 D/140
1 Good C/131 D/141
Table 1
The transfer server should further maintain the subsidiary port information and the communication status in Table 1 in the follow-up process.
If a TCP port is requested, the transfer server further establishes a communication connection between local port 130 and port 140 of the target server and a communication connection between local port 131 and port 141 of the target server to transmit the communication data from the client to the target server and to receive the communication data from the target server to the client.
If the port request does not contain the IP address and port of the target server, the transfer server may assign local ports first; and then set up the corresponding relations

shown in Table I after the transfer server receives a data packet containing the IP address and port number of the target server, or set up the corresponding relations shown in Table 1 after the major application part notifies the transfer server of the IP address and port of the target server via the transfer component in the case that the major application part learns the IP address and port of the target server and has not sent the data.
Block 205: The transfer server sends a response encapsulated by the internal protocol to the transfer component over the dedicated channel 15. The response contains the information on whether the port request succeeds, and further contains the IP address and assigned port information of the transfer server if the port request succeeds, e.g. the assigned local port numbers 130 and 131 of the transfer server in this embodiment.
Block 206: Upon receiving the response, the transfer component establishes corresponding relations between the logic channel number, the IP address and port number of the major application part, the IP address and port number of the transfer component, the IP address and port number of the transfer server, and the IP address and port number of the target server. As shown in Table 2, it is supposed that the IP address of the major application part is A and the IP address of the transfer component is B.

Logic Channel Number Communication Status of the logic channel IPAddress/PortNumber ofthe majorapplicationpart IPAddress/PortNumber ofthe transfercomponent IPAddress/PortNumber ofthe transferserver IPAddress/PortNumber of thetarget server
0 Good A/110 B/120 C/130 D/140
1 Good A/111 B/121 C/131 D/141
Table 2
The transfer component sends the response containing the contents in Table 2 to the major application part.
If the port request does not contain the IP address and port of the target server, the transfer component establishes the corresponding relations shown In Table 2 upon receiving a data packet containing the IP address and port number of the target server or upon receiving a notification from the major application part.

Upon receiving the response, the major application part establishes a local communication connection of the client between local port 110 and port 120 of the transfer component, as well as a local communication connection of the client between local port 111 and port 121 of the transfer component. The major application part may transmit and receive data via ports 110 and 111,
Block 207: Based on the port type and number requested by the major application part, the corresponding relations between the IP address and port number of the major application part, the IP address and port number of the transfer component, the IP address and port number of the transfer server, and the IP address and port number of the target server are regarded as the logic channels for the port-to-port communication. According to the corresponding relations shown in Tables 1 and 2, the logic channels going through the forward device are established with the communication ports of the major application part as the initial ports and passes through the transfer component and the transfer server to the communication ports of the target server. In other words, the logic channel 0 passes through IP addresses and ports including: A/port 110~B/port 120-dedicatedchannel 15 -C/port 130 - D/port 140; the logic channel 1 passes through IP addresses and ports including: A/port 111 -B/port 121 - dedicated channel 15-C/port 131 -D/port 141.The transfer component and the transfer server forward the data packet from the major application part to corresponding ports of the target server over the logic channels in Tables 1 and 2.
If the logic channels over different ports are established, the major application part and the target server may communicate with each other over the logic channels.
Block 208: The major application part sends data via port 110 to the target server over the logic channel 0, and sends data via port 111 to the target server over the logic channel 1. As an example of the data transmission in this embodiment, the data transmission from the major application part to the target server over the logic channel 0 is described as follows.
The major application part 11 sends a data packet from port 110 to local port 120 of the transfer component 12 according to the logic channel information in Table 2. The transfer component 12 searches the relations recorded in Table 2 according to the port number 110, and determines that the data packet is transmitted over the logic channel 0

corresponding to the IP address C and port number 130 of the transfer server. The data to be transmitted are encapsulated with the internal protocol, and the logic channel information corresponding to the data is encapsulated into the data packet. In this embodiment, the logic channel information is the logic channel number 0* The transfer component 12 sends the encapsulated data packet over the dedicated channel 15 to the transfer server 13. The transfer server 13 decapsulates the encapsulated data packet with the internal protocol upon receiving the encapsulated data packet and retrieves the logic channel information, i.e. the logic channel number 0. The transfer server 13 searches Table 1, and obtains the port number 130, and the IP address D and port number 140 of the target server. The transfer server 13 sends to port 140 of the target server 14 the encapsulated data packet via local port 130. In this way, port 140 of the target server 14 receives the data from the client.
Similarly, a data packet from port 111 is transmitted to port 141 of the target server over the logic channel 1.
Block 209: If the target server 14 needs to send a data packet to the major application part 11, the target server 14 sends the data packet via port 140 to port 110 of the major application part 11 over the logic channel 0, and sends the data packet via port 141 to port 111 of the major application part 11 over the logic channel 1. As an example of the data transmission in this embodiment, the data transmission from the target server to the major application part over the logic channel 0 is described as follows.
The target server 14 sends a data packet via port 140 to port 130 of the transfer server 13. The transfer server 13 searches the relations recorded in Table 1, and determines that the logic channel number corresponding to the data is 0. The data packet to be transmitted is encapsulated with the internal protocol; and the logic channel information corresponding to the data packet, i.e. the logic channel number 0 in this embodiment, is encapsulated into the data packet. The transfer server 13 forwards the encapsulated data packet to the transfer component 12 over the dedicated channel 15. The transfer component 12 decapsulates the encapsulated data packet with the internal protocol and retrieves the logic channel information, i.e. the logic channel number. The transfer component 12 searches Table 2 to obtain the local port number 120, and the IP address A and port number 110 of the major application part. The decapsulated data packet is transmitted via local port 120 to port 110

of the major application part 11. In this way, the port of the major application part receives the data sent from the target server.
Similarly, a data packet sent via port 141 (the destination IP address and port number being IP address A and port number II1) is transmitted to port 111 of the major application part over the logic channel I.
In another embodiment of the present invention, the major application part sends the port request to the transfer component by invoking a function, and sends data also by invoking a function. The function invoked for the port request includes: the port type and number requested as well as port parameters to indicate the port number from which the major application part sends data, e.g. port 110 and port 111.
The process of the method in this embodiment is basically the same as that in the above embodiment. However, there are some differences between the two embodiments as follows.
In Block 203, upon receiving the port request, the transfer component encapsulates the port request with an internal protocol between the transfer component and the transfer server, and sends the encapsulated port request to the transfer server over the dedicated channel. At the same time, the transfer component assigns, according to the port type and number in the port request, local ports to the follow-up data packet transmission. For example, two sequential local UDP ports, ports 120 and 121, can be assigned by the transfer component. Or callback function(s) is set up to forward the follow-up data packets. The callback function(s) may include two functions operable for returning the data to port 110 and to port 111 respectively. Or the callback function(s) may include one function, which requires that a port parameter of the callback function(s) indicates the port number 110 or 111 to which the data are sent. The ports assigned by the transfer component or callback function(s) of the transfer component can be called the transfer interface(s) of the transfer component for forwarding data. In this embodiment, the transfer component has two transfer interfaces, transfer interface 0 and transfer interface 1. The transfer interface 0 is port 120, or callback function 0, or a callback function with the port parameter of port number 110. The transfer interface 1 is port 121, or callback function 1, or a callback function with the port parameter of port number 111,

In Block 206, upon receiving the response, the transfer component establishes corresponding relations between the logic channel number, the IP address and port number of the major application part, the IP address and transfer interface number of the transfer component, the IP address and port number of the transfer server, and the IP address and port number of the target server. As shown in Table 3, it is supposed that the IP address of the major application part is A and the IP address of the transfer component is B.

The transfer component sends the response including the contents in Table 3 to the major application part.
In this embodiment, according to the corresponding relations shown in Tables 1 and 3 and based on the port type and number requested by the major application part, the logic channel going through the forward device is established with the communication port of the major application part as the initial port and passes through the transfer component and the transfer server to the communication port of the target server. More specifically, the logic channel 0 passes through IP addresses and ports including: A/port 110 ~ B/transfer interface 0 - dedicated channel 15 - C/port 130 - D/port 140; the logic channel 1 passes through IP addresses and ports including: A/port 111- B/transfer interface 1 - dedicated channel 15 - C/port 131 - D/port 141. The transfer component and the transfer server forward the data packet from the major application part to corresponding ports of the target server over the logic channels in Tables 1 and 3.
In Block 208, the major application part sends data to the transfer component 12 via port 110 by invoking a function, the transfer component 12 sends the data packet to port 140 of the target server 14 over the logic channel 0. Similarly, the data sent via port 111 is sent to port 141 of the target server 14 over the logic channel 1. If the target server sends a

data packet to the major application part, the data packet sent via port 140 is sent over the logic channel 0 to port 110 of the major application part 11, where the transfer component forwards the data packet via port 120, or via callback function 0, or via a callback function with the port parameter of destination port number 110, Similarly, a data packet sent via port 141 is sent to port 111 of the major application part 11 over the logic channel 1.
Generally, three types of ports may typically be requested by the major application part: 1) a unitary TCP port; 2) a unitary UDP port; 3) two sequential UDP ports. Standardized processing modules can be set up on the transfer server to process different types. For example, a first module is dedicated to assigning unitary TCP port, a second module is dedicated to assigning unitary UDP port and a third module is dedicated to assigning two sequential UDP ports. The standardized processing modules can be invoked directly to assign port(s) so as to offer a more integrated and efficient work flow. If the communication between the major application part and the target server needs multiple TCP/UDP communication ports, the Blocks from Block 202 to Block 207 can be repeated for several times and multiple ports can be assigned with the standardized processing modules described above. In this way, multiple logic channels corresponding to different TCP/UDP communication ports will be established for the communication. For example, the whole communication may need three ports including one TCP port and two sequential UDP ports, the Blocks 202 to 207 are performed first to establish a TCP logic channel, and the first module assigns a TCP port; then Blocks 202 to 207 are repeated to establish two UDP logic channels, and the third module assigns two sequential UDP ports. However, various types of ports besides the above three types may be requested in practical applications, different extension may be added into the method of the present invention by setting up different standardized processing modules on the transfer server for assigning different types of ports, which makes the work flow more integrated and efficient.
The major application part of the client may use the received port number assigned by the transfer server to perform the negotiation of communication ports through a corresponding complicated communication protocol of the major application part (e.g. H.323, SIP, MGCP, H.248/MeGaCo, etc.). The negotiation may include two cases.
In the first case, the transfer component and the transfer server do not support the complicated protocol (e.g. H.323, SIP, MGCP, H.248/MeGaCo, etc.) used by the major

application part for transmitting data by parsing data packets. In such case, a conversion module can be set up in the major application part to convert the negotiated IP address and port of the major application part in the data part of a data packet with such complicated protocol into the IP address and port number of corresponding transfer server. For example, if the negotiated port number of the major application part is 110, the IP address and port 110 of the major application part are converted into the IP address and port number 130 of the transfer server. The data packet is sent to the target server over corresponding logic channel 0. The target server obtains the IP address and port number 130 of the transfer server from the data part of the data packet and sends a negotiation response to port 130 of the transfer server and further to the major application part over the logic channel 0, Then the negotiation is completed.
In the second case, the transfer component and the transfer server support the complicated protocol used by the major application part for transmitting data by parsing data packets. In such case, the conversion module is set in the transfer component or the transfer server that supports the complicated protocol. The conversion module is operable for parsing the data part of a negotiation data packet from the major application part, converting the negotiated IP address and port of the major application part into the IP address and port of corresponding transfer server, and sending the converted data packet to the target server. The target server processes the data packet with a communication protocol identical to the communication protocol used by the major application part to obtain the IP address and port of the transfer server from the data part of the data packet. The target server sends a negotiation response to the port of the transfer server and further to the major application part over corresponding logic channel. The negotiation is thus completed.
Finally, when the client is shut down, the client sends a port canceling message to the transfer server, requesting the transfer server to close connections on the logic channel; tears down the dedicated channel 15 to the transfer server and releases all relevant resources. Similarly, if the server side is shut down, the transfer server sends a port canceling message to the client, requesting the client to close connections on the logic channel; tears down the dedicated channel 15 to the transfer component and releases all relevant resources.

According to the technical scheme of the present invention, information exchanged between the major application part and the target server can successfully go through the forward device between the private network and the public network because of the following.
If the forward device is a firewall, the port-to-port logic channel transmits data over the dedicated channel 15. The dedicated channel 15 can go through the firewall because the dedicated channel is a unitary TCP or UDP connection using an open port of the firewall. Therefore, the messages between the major application part and the target server can successfully go through the firewall.
The communication between the transfer component and the transfer server is simple communication fitting the features of the forward device and adopting a simple internal protocol as the interaction protocol. Therefore, the communication would not be blocked by the forward device in general and can go through the forward device successfully.
If the forward device is a NAT/proxy server, the interaction protocol between the transfer component and the transfer server is a simple internal protocol. Unlike complicated protocols such as H323 and SIP, the simple internal protocol does not send a response to the origination IP address and port in the data part of a data packet, but to the origination IP address and port in the header of the data packet. Because the IP address and port in the header of the data packet has been converted by the NAT/proxy server, the response can go through the NAT/proxy server successfully for smooth communication between the major application part and the target server.
If the forward device is a proxy server (e.g. HTTP/SOCKS4/SOCKS5 proxy server), it is easier to apply the function of a proxy protocol to the transfer component of the client. Therefore, the interaction information can successfully go through the proxy server even if the major application part does not support the proxy protocol.
The foregoing is only preferred embodiments of the present invention. The protection scope of this invention, however, is not limited to the above description. Any change or substitution, within the technical scope disclosed by the present invention, easily occurring to those skilled in the art should be covered by the protection scope of the present invention.












What is claimed is:
1. Equipment for communication between a client and a server side, applied to a
communication system comprising the client, the server side and a forward device between
the client and the server side; the equipment comprising:
a transfer component, operable for establishing a dedicated channel between the transfer component and a transfer server through the forward device, establishing a communication connection between the transfer component and the client, and establishing, based on the dedicated channel, a logic channel between the client and the server side; and
the transfer server, operable for establishing the dedicated channel between the transfer component and the transfer server through the forward device, establishing a communication connection between the transfer server and the server side, and establishing, based on the dedicated channel, the logic channel between the client and the server side,
2. The equipment according to Claim 1, wherein the dedicated channel between the transfer component and the transfer server comprises a communication connection adopting Transfer Control Protocol (TCP) or User Datagram Protocol (UDP), and the dedicated channel adopts an open port of the forward device.
3. The equipment according to Claim 1 or 2, wherein the transfer server comprises:
a standardized processing module[0], operable for receiving a port request from a major application part, assigning a local port and establishing the logic channel based on the port request and the local port.
4. The equipment according to Claim 3, wherein the standardized processing
module[0] comprises:
a first module, operable for assigning a unitary Transfer Control Protocol, TCP, port;
a second module, operable for assigning a unitary User Datagram Protocol, UDP, port; and
a third module, operable for assigning two sequential UDP ports;
wherein any of the first module, the second module and the third module receives the port request and assign the local port of a corresponding type.
5. The equipment according to Claim 1, further comprising:

a conversion module, operable for negotiating an IP address and a port, parsing a negotiation data packet from the client to the server side, and converting the negotiated IP address and port of the client in a data part of the negotiation data packet into an IP address and a port of the transfer server on the logic channel, wherein the conversion module is set in a major application part in the client, or in the transfer component supporting a communication protocol of the major application part, or in the transfer server supporting a communication protocol of the major application part.
6. A communication system, comprising a client, a server side and a forward device
set between the client and the server;
wherein the client comprises a major application part; the server side comprises at least one target server; and the system further comprises the equipment according to any of Claims 1 to 5 which comprises:
the transfer component, operable for establishing a dedicated channel between the transfer component and the transfer server through the forward device, establishing a communication connection between the transfer component and the major application part, and establishing, based on the dedicated channel, a logic channel between the major application part and the target server; and
the transfer server, operable for establishing the dedicated channel between the transfer component and the transfer server through the forward device, establishing a communication connection between the transfer server and the target server, and establishing, based on the dedicated channel, the logic channel between the major application part and the target server.
7. A method for communication between a client and a server side, applied in a
communication system comprising the client, the server side and a forward device between
the client and the server side; the method comprising:
establishing a dedicated channel between the client and the server side through the forward device;
establishing, if a major application part of the client communicates with a target server of the server side, a logic channel between the major application part and the target server based on the dedicated channel, and performing the communication.
8. The method according to Claim 7, wherein
the establishing the dedicated channel between the client and the server side through the forward device comprises:

setting a transfer component on the client, setting a transfer server on the server side, and establishing, by the transfer component and the transfer server, the dedicated channel;
the establishing the logic channel between the major application part and the target server based on the dedicated channel comprises:
establishing, by the transfer component, a communication connection to the major application part, establishing, by the transfer server, a communication connection to the target server, and setting a first corresponding relation between communication ports assigned respectively by the major application part, the transfer component, the transfer server and the target server to form the logic channel.
9, The method according to Claim 8, wherein the establishing the logic channel
between the major application part and the target server based on the dedicated channel by
the transfer component and the transfer server comprises:
sending, by the major application part to the transfer component, a port request containing an Internet Protocol, IP, address and a port of the major application part, and an IP address and a port of the target server;
encapsulating, by the transfer component, the port request with an internal protocol, sending the encapsulated port request to the transfer server over the dedicated channel, and assigning a local transfer interface for forwarding data;
assigning, by the transfer server, a local port based on the port request, and setting a second corresponding relation between the logic channel number, the IP address and the port of the transfer server, and the IP address and the port of the target server;
sending, by the transfer server to the transfer component, the second corresponding relation; and
setting, by the transfer component, the first corresponding relation between the logic channel number, the IP address and the port of the major application part, the IP address and the port of the transfer component, the IP address and the port of the transfer server, and the IP address and the port of the target server; and
regarding the first corresponding relation as the logic channel between the major application part and the target server.
10. The method according to Claim 8, wherein the establishing the logic channel
between the major application part and the target server based on the dedicated channel by
the transfer component and the transfer server comprises:

sending, by the major application part, a port request containing an IP address and a port of the major application part to the transfer component;
encapsulating, by the transfer component, the port request with an internal protocol, sending the encapsulated port request to the transfer server over the dedicated channel, and assigning a local transfer interface for forwarding data;
assigning, by the transfer server, a local port based on the port request;
sending, by the major application part, an IP address and a port of the target server to the transfer component and the transfer server via communication data or a notification;
setting, by the transfer server, a second corresponding relation between the logic channel number, the IP address and the port of the transfer server, and the IP address and the port of the target server;
sending, by the transfer server, the second corresponding relation to the transfer component; and
setting, by the transfer component, the first corresponding relation between the logic channel number, the IP address and the port of the major application part, the IP address and the port of the transfer component, the IP address and the port of the transfer server and the IP address and the port of the target server; and
regarding the first corresponding relation as the logic channel between the major application part and the target server.
11. The method according to Claim 9 or 10, wherein the port request contains a type
and a number of a port requested; and
the transfer server assigns a local port corresponding to the type and the number in the port request.
12. The method according to Claim 11, wherein the type and the number of the port
requested comprise at least one of:
a unitary Transfer Control Protocol, TCP, port; a unitary User Datagram Protocol, UDP, port; and two sequential UDP ports.
13. The method according to Claim 9 or 10, wherein the major application part sends
the port request to the transfer component in the form of a request message; and
the local transfer interface assigned by the transfer component is a local port.
14. The method according to Claim 9 or 10, wherein the major application part sends
the port request to the transfer component by invoking a function, and the local transfer

interface assigned by the transfer component is a local port or the local transfer interface of the transfer component is a callback function.
15. The method according to Claim 7, further comprising:
parsing, by the transfer server when the major application part and the target server negotiate a port, a negotiation data packet from the major application part to the target server;
converting a negotiated IP address and a negotiated port of the major application part in a data part of the negotiation data packet into an IP address and a port of the transfer server on the logic channel; and
sending the converted negotiation data packet to the target server. 16. The method according to Claim 7, wherein the forward device is a network address translation device, a proxy server, or a firewall.


Documents:

1446-CHENP-2008 CORRESPONDENCE OTHERS 06-11-2012.pdf

1446-CHENP-2008 FORM-3 19-03-2013.pdf

1446-CHENP-2008 POWER OF ATTORNEY 19-03-2013.pdf

1446-CHENP-2008 AMENDED CLAIMS 19-03-2013.pdf

1446-CHENP-2008 AMENDED CLAIMS 26-09-2013.pdf

1446-CHENP-2008 AMENDED PAGES OF SPECIFICATION 19-03-2013.pdf

1446-CHENP-2008 CORRESPONDENCE OTHERS 26-09-2013.pdf

1446-CHENP-2008 EXAMINATION REPORT REPLY RECEIVED 19-03-2013.pdf

1446-CHENP-2008 FORM-3 26-09-2013.pdf

1446-CHENP-2008 OTHER PATENT DOCUMENT 19-03-2013.pdf

1446-CHENP-2008 PRIORITY DOCUMENT 19-03-2013.pdf

1446-chenp-2008-abstract.pdf

1446-chenp-2008-claims.pdf

1446-chenp-2008-correspondnece-others.pdf

1446-chenp-2008-description(complete).pdf

1446-chenp-2008-drawings.pdf

1446-chenp-2008-form 1.pdf

1446-chenp-2008-form 18.pdf

1446-chenp-2008-form 3.pdf

1446-chenp-2008-form 5.pdf

1446-chenp-2008-pct.pdf


Patent Number 265230
Indian Patent Application Number 1446/CHENP/2008
PG Journal Number 08/2015
Publication Date 20-Feb-2015
Grant Date 13-Feb-2015
Date of Filing 25-Mar-2008
Name of Patentee TENCENT TECHNOLOGY (SHENZHEN) COMPANY LIMITED
Applicant Address 4/F, EAST 2 BLOCK SEG PARK, ZHENXING ROAD FUTIAN DISTRICT SHENZHEN, GUANGDONG 518044
Inventors:
# Inventor's Name Inventor's Address
1 JIANG, TAO 4/F, EAST 2 BLOCK SEG PARK, ZHENXING ROAD FUTIAN DISTRICT SHENZHEN, GUANGDONG 518044
2 CHEN, WEIHUA 4/F, EAST 2 BLOCK SEG PARK, ZHENXING ROAD FUTIAN DISTRICT SHENZHEN, GUANGDONG 518044
PCT International Classification Number H04L12/54
PCT International Application Number PCT/CN06/02574
PCT International Filing date 2006-09-29
PCT Conventions:
# PCT Application Number Date of Convention Priority Country
1 200510108061.0 2005-09-29 China