Network communication processing system
Abstract
[Task] It provides a method capable of performing hop-by-hop flow control and congestion control in communication between computers connected to different networks.
Solution.As shown in (b), in the communication between client A1 and remote server B (communication between 500 and 520), the communication Proxy (agent) (515) of remote server B is set to the local in the LAN to which client A1 belongs. Placed on server A, steal the communication packet (511) to be routed to the remote server and pass it to the transport layer (TCP) (513), TCP communication between client A1 and remote server B (communication between 502 and 522) Is divided into communication between client A1 and the communication Proxy of remote server B (communication between 502 and 513) and communication between communication Proxy of remote server B and remote server B (communication between 517 and 522). As a result, TCP flow control and congestion control algorithms suitable for communication within a LAN and communication via a wide area network can be applied.

Term
Term ended
Projected expiry passed 29 December 2015, 10.7 years ago.
- Priority and filed
- Published
- Projected expiry
- Today
7 claims: 1 independent, 6 dependent
- 1【特許請求の範囲】 【請求項1】 第1のネットワークに接続された第1の計算機と第2のネットワークに接続された第2の計算機が、該両ネットワークに接続された第3の計算機を介して通信を行うネットワーク通信におけるネットワーク通信処理方式であって、 該第3の計算機は、該第2の計算機のネットワーク・アドレスを登録するProxy登録テーブルと該第2の計算機宛の通信パケットを受信する通信Proxyプロセスを有する通信Proxyを備え、 該第3の計算機は、該第3の計算機宛以外の通信パケットを受信したときには、前記Proxy登録テーブルを検索し、 該通信パケットの宛先のネットワーク・アドレスが前記Proxy登録テーブルに登録されている場合には、前記通信Proxyプロセスが前記通信パケットを受信し、さらに該通信パケットを宛先に送信することを特徴とするネットワーク通信処理方式。
- 2【請求項2】 請求項1記載のネットワーク通信処理方式において、 前記第3の計算機は前記通信Proxyを生成する通信Proxy登録待ちデーモンを備え、 前記第2の計算機は前記3の計算機の前記通信Proxy登録待ちデーモンに対して、前記通信Proxyプロセスを生成し、前記Proxy登録テーブルに前記第2の計算機のネットワーク・アドレスを登録することを指示することを特徴とするネットワーク通信処理方式。
- 3【請求項3】 請求項1記載のネットワーク通信処理方式において、 前記第3の計算機上の通信Proxyプロセスは前記第2の計算機から送信された通信パラメタを受信し、該通信パラメタを該第3の計算機上に登録することを特徴とするネットワーク通信処理方式。
- 4【請求項4】 請求項1記載のネットワーク通信処理方式において、 前記通信Proxyプロセスが、前記第1の計算機から前記第2の計算機宛のコネクション開設要求パケットを受信したときには、 前記通信Proxyプロセスは、前記通信Proxyプロセスと前記第1の計算機との間のコネクションを開設し、さらに前記通信Proxyプロセスと前記第2の計算機との間のコネクションを開設することを特徴とするネットワーク通信処理方式。
- 5【請求項5】 請求項1記載のネットワーク通信処理方式において、 前記第3の計算機は、 前記第2の計算機が前記1の計算機との通信に用いる第1の通信ポート識別子を、前記通信Proxyプロセスが該1の計算機との通信に用いる第2の通信ポート識別子に変換するポート番号変換テーブルを備え、 前記第2の計算機宛に送付した通信パケットを受信したとき、前記通信パケットに記されている前記第1の通信ポート識別子を前記第2の通信ポート識別子に変換して、前記通信Proxyプロセスに前記通信パケットを受信させることを特徴とするネットワーク通信処理方式。
- 6【請求項6】 請求項1記載のネットワーク通信処理方式において、 前記通信Proxyプロセスは、前記第2の計算機から該通信Proxyプロセス宛に送付した通信パケットを前記第1の計算機へ送付することを特徴とするネットワーク通信処理方式。
- 7【請求項7】 請求項6記載のネットワーク通信処理方式において、 前記通信Proxyプロセスは、前記第2の計算機が該通信Proxyプロセス宛に送付した前記通信パケットを前記第1の計算機へ送付するときに、通信パケットの送信元ネットワーク・アドレスを前記第2の計算機のネットワーク・アドレスに書き換えることを特徴とするネットワーク通信処理方式。
Independent claims7
110 paragraphs in 1 section, as filed
Description: TECHNICAL FIELD [Detailed description of the invention]
【0001】
[Technical field to which the invention belongs]
The present invention relates to a high-speed communication processing method between a client computer and a server computer via a network, and in particular, a remote server computer connected to a high-speed network such as an ATM network and a client connected to a low-speed network such as Ethernet. It relates to a high-speed network communication processing method with a computer.
【0002】
[Conventional technology]
As a method for a client computer to access a file of a remote server computer via a network, a method in which the client communicates directly with the server using the TCP / IP protocol is known. The TCP / IP protocol is a high-speed communication protocol used on the Internet, etc. (Douglas Comer, translated by Jun Murai and Hiroyuki Kusumoto: Network construction using TCP / IP, Kyoritsu Publishing).
【0003】
The IP protocol is ISO (International Organization for), as shown in Fig. 6 (a). It is located at the network layer (504, 510, 524) of the reference model of the protocol stack of Standardization), and performs hop-by-hop communication between computers existing in the communication path. Gateways (510, 524) and routers located in the communication path look at the destination address of the packet, and if the destination address is yourself (524), pass the packet to the upper transport layer (522), and the destination must be yourself. For example (510) Search the routing table and pass the packet to the network interface driver (data link layer) specified in the table. The TCP protocol is located in the transport layer of the reference model and communicates between end-to-end computers while performing flow control, congestion control, and retransmission control. The communication performance is improved by flow control that changes the sliding window size according to the buffer capacity of the communication partner, and when the round trip time increases, it is judged that congestion is occurring in the network and the transfer speed is suppressed to suppress the network. Reduce congestion. Further, when the time for returning the acknowledgment (ACK) times out, it is determined that the packet has been lost on the communication path and the packet is retransmitted to guarantee highly reliable communication. In this way, in the TCP protocol, the source / receiver computer determines the status of the communication path, and end-to-end flow control and congestion control are performed to realize high-performance data communication via a wide area network. doing.
【0004】
[Problems to be Solved by the Invention]
When focusing on the communication path of client-server communication via the network, a gateway or router is located at the boundary between the LAN and the network, and packets are sent to the communication partner via the network. However, when end-to-end communication is performed with a remote location, the round-trip time from sending a request to receiving a response signal is long, so there is a vacancy in sending packets, so even if a high-speed network is used, its performance can be improved. There is a problem that it cannot be utilized. In addition, since the bottleneck of the performance of communication via the network is caused by congestion and low throughput in the network rather than LAN, slow start control assuming that congestion is occurring in the network in the TCP protocol. Therefore, there is also a problem that the performance cannot be utilized even if a high-speed network is used.
【0005】
On the other hand, in a network that can reserve bandwidth at high speed such as an ATM (Asynchronous Transfer Mode) network, the bandwidth of the network that can be used by each connection is not only as fast as LAN performance, but also the bandwidth of network communication. Can be reserved for each connection, and multimedia data can be sent and received. Therefore, instead of performing end-to-end flow control and congestion control as in the TCP / IP protocol, finely hop-by-hop flow control and congestion control should take advantage of ATM networks. Can be done. However, since the TCP protocol communicates end-to-end, it is not possible to know the degree of congestion in the middle of the communication path or the thickness of the hop-by-hop network link. Therefore, there is a problem that flow control and congestion control according to the network of the intermediate route cannot be performed, and the performance and functions of the network cannot be fully utilized.
【0006】
In order to solve such network problems, there is a mirroring method in which a copy of a remote file is made locally. However, in the mirroring method, if the same file is duplicated in multiple places, an overhead for maintaining the consistency of the file occurs. That is, when a write update to a duplicate file occurs, the changed content must be reflected in another file, and there is a problem that the performance is deteriorated due to the management overhead.
【0007】
An object of the present invention is a server computer that solves the above problems and performs a gateway between a network to which a client is connected (for example, LAN) and another network to which a remote server is connected (for example, a wide area network (WAN)). Rather than simply routing packets at the network layer, depending on the performance and function of the network (link) between the client computer and the remote server computer, and the performance of each server computer, hop instead of end-to-end -The purpose is to provide a method that can perform flow control and congestion control on a bi-hop basis.
【0008】
[Means for solving problems]
In order to achieve the above object, the present invention has a third computer in which a first computer connected to the first network and a second computer connected to the second network are connected to both networks. It is a network communication processing method in network communication that communicates via the above, and the third computer receives a Proxy registration table for registering the network address of the second computer and a communication packet addressed to the second computer. A communication Proxy having a communication Proxy process is provided, and when the third computer receives a communication packet other than the one addressed to the third computer, the third computer searches the Proxy registration table and the network address of the destination of the communication packet. Is registered in the Proxy registration table, the communication Proxy process receives the communication packet and further transmits the communication packet to the destination. Further, the third computer includes a communication Proxy registration waiting daemon that generates the communication Proxy, and the second computer generates the communication Proxy process for the communication Proxy registration waiting daemon of the third computer. , The Proxy registration table is instructed to register the network address of the second computer. Further, the communication Proxy process on the third computer receives the communication parameter transmitted from the second computer and registers the communication parameter on the third computer. Further, when the communication proxy process receives a connection establishment request packet addressed to the second computer from the first computer, the communication proxy process is between the communication proxy process and the first computer. A connection is opened, and a connection between the communication Proxy process and the second computer is opened. Further, in the third computer, the first communication port identifier used by the second computer for communication with the first computer is used by the communication Proxy process for communication with the first computer. Convert to port identifier When a communication packet sent to the second computer is received with a port number conversion table, the first communication port identifier written in the communication packet is converted into the second communication port identifier. , The communication Proxy process is made to receive the communication packet. The communication Proxy process sends a communication packet sent from the second computer to the communication Proxy process to the first computer. When the communication Proxy process sends the communication packet sent to the communication Proxy process to the first computer, the communication Proxy process sets the source network address of the communication packet to the second computer. I am trying to rewrite it to the network address.
【0009】
BEST MODE FOR CARRYING OUT THE INVENTION
When high-speed, bandwidth-reservable networks such as ATM networks are used in networks, gateways and routers have high CPU performance, large-capacity main memory, and high speed, unlike low-priced PCs and WSs. Implement a protocol processing algorithm suitable for the network to perform parallel communication using multiple connections, or secure a sufficiently large communication buffer area to expand the window size so that there is no space for sending packets. Is required to be.
【0010】
In the present invention, as shown in the communication between the client A1 and the remote server B (communication between 500 and 520) in FIG. 6B, the client A1 belongs to the communication Proxy (agent) (515) of the remote server B. Place it on the gateway (local server A) in the LAN to steal the communication packet (511) to be routed to the remote server and pass it to the transport layer (513). In this way, transport layer communication between client A1 and remote server B (communication between 502 and 522) and communication between client A1 and remote server B communication Proxy (between 502 and 513). Communication) and communication between the remote server B's communication proxy and remote server B (communication between 517 and 522). As a result, it is possible to apply transport layer flow control and congestion control algorithms suitable for the former communication within the LAN and the latter communication via the wide area network. In this way, high-performance communication via a wide area network can be realized without changing the communication program on the client computer. When sending a packet from the remote server B to the client A1, the procedure can be reversed.
【0011】
[Example]
First, a general program description example will be described with reference to FIG. 7 when the client and the server perform data communication using the TCP / IP protocol. The program shown in Fig. 7 is similar to the program using socket described in "UNIX network programming" (Prentice Hall) by WD Stevens.
【0012】
701 to 715 indicate programs that run on the server, and 750 to 761 indicate programs that run on the client. After generating the socket (702) and addressing the socket (706), the server waits for a connection opening request from any client (704) by calling listen () (707). After generating the socket (753), the client specifies the server's network address (755) and requests the server to open a connection with the connect () call (758). When the client requests to open a connection with the conduct () call and the server accepts the client's request, the accept () call establishes a connection between the client and server (709). The server assigns the socket descriptor newfd to be used in the newly established connection (709), spawns a child process (710), and data communication takes place between the child process and the client (713). The parent process returns to the wait state to accept requests from other clients (715, 708). When the client also establishes a connection (758), it communicates data with the server (759).
【0013】
FIG. 8 shows a configuration example of the computing system targeted by the present invention. In FIG. 8, 100, 200, and 300 represent offices A, B, and C, respectively. 110 is a client computer, 130, 230, and 330 are server computers to which the present invention is applied, 130 is a local server, and 230 and 330 are remote servers when viewed from the client 110. 132, 232, 332 are files managed by servers 130, 230, 330, respectively, 120, 220, 320 are LAN (Local Area Network), 140, 240, 340 are LAN switches such as ATM (Asynchronous Transfer Mode) switches, 150 , 250 and 350 indicate PBX (Private Branch eXchange), and 400 indicates Wide Area Network (WAN). 852 and 854 on the local server 130 are means for realizing the present invention and indicate proxies for the communication ports of the remote servers 230 and 330, respectively.
【0014】
Client 110 has a network address of net1.C and is connected to LAN 120 through network 112. Servers 130, 230 and 330 are connected to LAN 120, 220 and 320 through networks 122, 222 and 322, respectively, and are connected to LAN switches 140, 240 and 340 through networks 134 to 136, 234 to 236 and 334 to 336, respectively. .. The network address on the LAN side of the local server 130 is net1.S, the network address on the LAN switch side is net2.S, and the network address on the LAN switch side of the remote server 230 is net2.RS. Although multiple networks are shown in the drawing, the connection between the LAN switches 140, 240, 340 and the servers 130, 230, 330 may be a single network.
【0015】
LAN switches 140, 240 and 340 are connected to PBX 150, 250 and 350 through networks 142, 242 and 342, respectively, and PBX 150, 250 and 350 are connected to WAN 400 through networks 152, 252 and 352, respectively. LAN switches 140, 240, 340 are not always required, and servers 130, 230, 330 may be directly connected to the PBX.
【0016】
In FIG. 8, when the client 110 communicates with the remote server 230, the TCP / IP packet is first sent to the local server 130 via LAN 120, then through the communication Proxy process 852 of server B, to the LAN switch 140, PBX150. , WAN400, PBX250, LAN switch 240, and finally reach the remote server 230. If the client 110 receives a packet from the remote server 230, the order is reversed.
【0017】
The initial processing of the local server 130, the communication Proxy852, and the remote server 230, which is one embodiment of the present invention, will be described with reference to FIG. The initial processing is performed between the local server 130 and the remote server 230. The local server 130 has a communication Proxy registration-waiting daemon, creates a socket bound to port number # 1, and waits for a communication Proxy process registration request from a remote server (600). The remote server 230 sends a communication Proxy registration request to port number # 1 of the local server 130 (650). The local server 130 accepts the registration request from the remote server 230 and forks (generates) a new communication Proxy process (602). When the connection between the local server 130 and the remote server 230 is established, the remote server 230 uses the port number # nc-rs (when issuing a connect request) that the remote server 230 is supposed to use to communicate with the client 110. Can be used by multiple clients in common) and sends the port number # ns-rs used for communication between the communication Proxy852 on the local server 130 and the remote server 230 to the local server 130 (652). The port number # nc-rs is used when the client 110 steals TCP / IP packets sent to the remote server 230. Port number # ns-rs is used when sending stealed TCP / IP packets from the local server 130 to the remote server 230.
【0018】
When the local server 130 receives the port number # nc-rs, the communication Proxy852 on the local server 130 communicates with the local server 130 as a communication port for receiving the TCP / IP packet sent from the client 110. Assign a port (#ncs) (604). When the remote server 230 sends the port numbers # nc-rs and # ns-rs, it sends a communication parameter indicating how to communicate with the local server (654). In the communication parameters, for example, by establishing multiple connections by parallel communication, the option to eliminate the performance degradation in long-distance communication due to the small window size of the TCP protocol and the window size of the TCP protocol are set. You can specify options to expand, parameters for guaranteeing QoS corresponding to the ATM network, and options to use a flow control protocol compatible with the ATM network, which is different from the conventional network. (For communication parameters, see "ATM Internet Working" published by Nikkei BP Publishing Center Author: Cisco System, Inc. Anthony Alles Translator: Cisco Systems Japan Shitara Tsunemi, published September 22, 1995 .) In this way, communication parameters are passed to the local server 130 so that communication control that can deal with latency issues due to wide area networks and cell-based high-speed networks such as ATM networks can be realized between servers. .. The local server 130 extracts the communication parameters received from the remote server 230 and information such as the throughput and congestion status of the network connected to the remote server 230, and based on this, performs flow control and congestion control with the remote server 230. Perform processing (606). Based on the above information, the local server 130 initializes the tables necessary for realizing one embodiment of the present invention.
【0019】
If the communication Proxy registration request this time is the first request from the remote server 230 (608a), the Proxy registration table and the port number conversion table are created and the information is registered (610). If this communication Proxy registration request is not the first request (608b), an entry in the port number conversion table is added (612). The details of the table will be described later with reference to FIG. After completing the above preparations, the local server 130 waits for the client 110 to issue a connection establishment request to the remote server 230 (614). On the other hand, in the remote server 230, when the client 110 issues a connection establishment request to the remote server 230, the local server 130 steals the establishment request and the communication Proxy852 on the local server 130 sends the communication Proxy852 to the remote server 230. Wait for the connection opening request to be resent (656).
【0020】
Next, FIG. 2 shows the details of the Proxy registration table and the port number conversion table of one embodiment of the present invention. In FIG. 2, 900 to 950 are the headers of the sequence of each entry in the Proxy registration table. The Proxy registration table is searched using the IP address of the gateway or server to which the packet is sent next, which is obtained by searching the routing table. Convert the destination address with a hash function (900a) and follow the Proxy registration table entry. Each entry in the Proxy registration table is the key of the hash function, the network address 961 of the gateway that sends the next packet, and the communication port number (#nc) of the remote server 230 that the client 110 specifies when communicating with the remote server 230. From -rs), the communication port number (#ncs) of the local server 130 used when the client 110 communicates with the communication Proxy850 on the local server 130, and the communication Proxy850 on the local server 130 with the remote server 230. It consists of a pointer (962) to the port number conversion table to be converted to the communication port number (# ns-rs) of the remote server used for communication, and a pointer 963 to create a list of Proxy registration table entries.
【0021】
Each entry in the port number conversion table consists of the number of communication ports (971) for which the remote server 230 has registered communication using the Proxy to the local server 130, and table entries 972 to 976 for converting the port number. To. In addition, each entry contains a pointer to a communication parameter table that specifies the communication method between the local server 130 and the remote server 230 for each communication connection (per port number). The communication parameter table is used for high-speed long-distance communication. specify the window size expansion option (980) and specify the communication link performance between servers. In the case of high-speed link, the slow speed that is a feature of the TCP protocol. -Link performance specification parameter (981) that indicates that start control is not required, parallel communication option 982 that can obtain the same effect as window size expansion by parallel communication using multiple connections, multimedia. Data communication, etc. QOS (Quality Of) It consists of QOS specification parameter 983 for communication that requires guarantee of Service) and flow control algorithm specification parameter 984 for performing flow control suitable for cell-based networks such as ATM networks. QOS specifications include various QOS parameters specified by ATM networks, such as CBR (Constant Bit Rate), VBR (Variable Bit Rate), ABR (Available Bit Rate), and UBR (Unspecified Bit Rate). These parameters are transmitted to the communication Proxy process 852 and used in communication control between servers.
【0022】
Next, the operation when the client 110 requests the remote server 230 to open a connection will be described with reference to FIGS. 1, 2, and 4. In FIG. 1, 800 indicates a network interface that receives an input packet from LAN 120, and 801 to 802 indicates a network interface that receives an input packet from WAN 400. Reference numerals 810 to 812 indicate buffers (queues) of IP packets that the network interface passes to the IP layer. 820 is the IP process, 832 is the buffer (queue) of TCP packets that the IP process passes to the TCP layer, and 840 is the TCP input process. 850 indicates a copy of the communication processing program on the remote server 230, 852 and 854 indicate the communication proxy process of the remote servers 230 and 330, respectively, and 853 and 855 indicate the source IP address translation routine. 856, 858, and 860 are application programs, 862 is a buffer (queue) of packets output to the TCP layer, 870 is a TCP process, and 872 is a buffer (queue) of TCP packets that the TCP process passes to the IP layer. 880 to 882 indicate a buffer (queue) of IP packets that the IP process passes to network interfaces 890 to 892, and 890 to 892 indicates a network interface that sends output packets to LAN or WAN.
【0023】
In FIGS. 1, 2, and 4, when the client 110 sends a connection opening request to the remote server 230 (630), the connection opening request is sent to the local server 130, and the connection between the client 110 and the local server 130 is established. After it is started, a connection establishment request is sent from the local server 130 to the remote server 230. If the connection between the client 110 and the local server 130 is not started, the connection establishment request is sent to the remote server 230 via the local server 130. In the local server 130, a connection establishment request is input to the local server 130 via the network interface 800. The packet is buffered on queue 810 before being passed to IP process 820.
【0024】
The IP process 820 examines the destination address of the IP header of the connection establishment request packet and determines whether the packet is addressed to itself or another person (822). Since this connection establishment request packet is addressed to the remote server 230 (822a), the routing table of the IP packet is searched, and then the remote server 230 is used as the IP address of the gateway to which this connection establishment request packet should be sent. Find the IP address (824).
【0025】
Using this IP address as a key, a hash function is searched (900a) and the Proxy registration table (900 to 950) is searched (826, 615). Since the communication Proxy of the remote server 230 is registered in the Proxy registration table on the local server 130, searching the Proxy registration table using the IP address of the remote server 230 as a key results in a hit (826b). Therefore, this connection establishment request packet is sent to the TCP layer, and the communication port number # nc-rs used for communication with the remote server 230 is obtained by analyzing the header of the TCP packet.
【0026】
Using the communication port number # nc-rs of the remote server 230 as a key, each entry (972 to 976) in the port number conversion table is searched (616), and if there is a hit, the local server 130 is assigned for communication with the client 110. Convert to the communication port number #ncs (830, 617). Furthermore, the destination address of the packet described in the header of the connection establishment request packet is rewritten from the IP address net2.RS of the remote server 230 to the IP address net1.S of the LAN side of the local server 130 (831, 617). By rewriting the communication port number and the destination IP address, this packet is put in the queue 832 as if it were a connection establishment request packet addressed to itself (to the local server 130). If the communication port number of the remote server 230 is not registered in the port number conversion table (830b), select the destination network interface based on the IP address of the remote server 230 as in the prior art (828). ), Forward the connection establishment request packet to the remote server 230 as it is.
【0027】
The connection establishment request packet put in the queue 832 is multiplexed based on the communication port number written in the packet header by the TCP input process 840, and sent to the communication Proxy process 852 of the server B. As a result, a request to open a connection between the communication Proxy process 852 of the remote server 230 and the client 110 is accepted (618).
【0028】
The communication Proxy process 852 issues a connection establishment request with the remote server 230 using the communication port number # ns-rs (652) sent earlier from the remote server 230 (620). At this time, a connection is established according to the communication parameter (654) previously sent from the remote server 230. When the remote server 230 accepts the connection establishment request, a connection is established between the remote server 230 and the communication Proxy process 852 (622).
【0029】
When the connection establishment request is received from the remote server 230, the communication Proxy process 852 also returns an ACK signal to the client 110 to accept the connection establishment, and as a result, the connection establishment with the client is completed (624). When returning an ACK signal packet, rewrite the source IP address to the IP address of the remote server 230 instead of the IP address of the local server 130 (853, 626), and send the client 110 an ACK signal from the remote server 230. Make it look like it is. As a result of the above, the connection between the client 110 and the remote server 230 is the connection between the client 110 and the communication Proxy852 on the local server 130 and the connection between the communication Proxy852 on the local server 130 and the remote server 230. I was able to establish a connection by dividing it into.
【0030】
Next, processing when data is transmitted / received between the client 110 and the remote server 230 will be described with reference to FIGS. 1, 2, and 5. In FIGS. 1, 2, and 5, when the client 110 sends a TCP / IP packet to the remote server 230 port number # nc-rs (660), the packet is sent to the remote server 230 via the local server 130. Will be done.
【0031】
At the local server 130, packets are input to the local server 130 via the network interface 800. The packet is buffered on queue 810 before being passed to IP process 820.
【0032】
The IP process 820 examines the destination address of the packet's IP header to determine whether it is destined for itself or someone else (822). Since this packet is destined for remote server 230 (822a), it looks up the routing table of the IP packet and then uses the IP address of remote server 230 as the IP address of the gateway to which this connection opening request packet should be sent. Ask (824, 662). Using this IP address as a key, a hash function is searched (900a) and the Proxy registration table is searched (826, 664). Since the communication Proxy of the remote server 230 is registered in the Proxy registration table on the local server 130, searching the Proxy registration table using the IP address of the remote server 230 as a key results in a hit (826b). Therefore, this packet is sent to the TCP layer, and the communication port number # nc-rs used for communication with the remote server 230 is obtained by analyzing the header of the TCP packet.
【0033】
Using the communication port number # nc-rs of the remote server 230 as a key, each entry (972 to 976) in the port number conversion table is searched (664), and if there is a hit, the local server 130 is assigned for communication with the client 110. Convert to the communication port number #ncs (830, 666). Furthermore, the destination address of the packet described in the header of the packet is rewritten from the IP address net2.RS of the remote server 230 to the IP address net1.S of the LAN side of the local server 130 (831, 666). By rewriting the communication port number and the destination IP address, this packet is put in the queue 832 as if it were a packet addressed to itself (to the local server 130). If the communication port number of the remote server 230 is not registered in the port number conversion table (830b), select the destination network interface based on the IP address of the remote server 230 as in the prior art (828). ), Forward the packet to the remote server 230 as it is.
【0034】
The packet put in the queue 832 is multiplexed based on the communication port number written in the packet header by the TCP input process 840, sent to the communication Proxy process 852 of the server B, and the packet is received. (668). Packets that were divided by MTU (maximum transmission unit) size at the TCP layer are also reassembled into the original stream. After that, the communication Proxy process 852 divides the data according to the connection conditions with the remote server 230 (MTU size, whether to perform parallel communication, etc.), and the connection established with the remote server 230. Is used to send a packet to the communication port number # ns-rs of the remote server 230 (670). Since this packet uses a connection between servers, the source address of the IP packet is not translated and is put in the queue 862 as it is. The TCP process 870 extracts the packet from queue 862, assembles the TCP packet, and then puts the packet in the reception queue 872 of IP process 820.
【0035】
IP process 820 searches the routing table using the final destination address as a key to find the IP address of the gateway to which the next packet should be sent to reach the final destination (829). Since this IP address is sent to the remote server 230 over the WAN, select the 891 network interface as the network interface of the local server 130 that sends the IP packet (828), and put it in the reception queue 881 of this network interface. Insert an IP packet. As a result, the packet is sent to the remote server 230, which receives the packet (672). As described above, the packet sent from the client 110 to the remote server 230 was sent to the remote server 230 according to the communication control algorithm between the servers via the communication Proxy852 on the local server 130.
【0036】
Next, a case where the client 110 receives data from the remote server 230 will be described. When the communication Proxy process 852 on the local server 130 receives the packet from the remote server 230, it sends the packet to the client 110. Therefore, the remote server 230 does not send the packet directly to the client 110, but rather to the communication Proxy process 852 on the local server 130 (674). When the packet arrives at the local server 130 (676), it is input to the local server 130 via the network interface 801 connected to the WAN 400. The packet is buffered on queue 811 before being passed to IP process 820.
【0037】
The IP process 820 examines the destination address of the packet's IP header to determine whether it is destined for itself or someone else (822). Since this packet is destined for itself (822b), this packet can be put into queue 832 as it is. The packet put in the queue 832 is multiplexed based on the communication port number written in the packet header by the TCP input process 840, sent to the communication Proxy process 852 of the server B, and the packet is received. (678).
【0038】
Packets that were divided by MTU (maximum transmission unit) size at the TCP layer are also reassembled into the original stream. After that, the communication Proxy process 852 divides the data according to the conditions of the connection with the client 110 and sends the packet to the client 110 (680). When returning this packet, rewrite the source IP address to the IP address of the remote server 230 instead of the IP address of the local server 130 (853, 682) so that the client 110 is a packet from the remote server 230. show. After rewriting the IP address, the packet is queued 862. The TCP process 870 extracts the packet from queue 862, assembles the TCP packet, and then puts the packet in the reception queue 872 of IP process 820.
【0039】
IP process 820 searches the routing table using the final destination address as a key to find the IP address of the gateway to which the next packet should be sent to reach the final destination (829). Since this IP address is sent to the client 110 via LAN, select the 890 network interface as the network interface of the local server 130 that sends the IP packet (828), and IP to the reception queue 880 of this network interface. Insert a packet. As a result, the packet is sent to client 110, which receives the packet (684). As a result of the above, the packet sent from the remote server 230 to the client 110 was sent to the client 110 according to the communication control algorithm between the servers via the communication Proxy852 on the local server 130.
【0040】
As described above, the communication between the client 110 and the remote server 230 is performed at the transport layer between the client 110 and the local server 130 via the local server 130, which is the gateway between the LAN and WAN. It can be divided into communication at the transport layer between the local server 130 and the remote server 230. As a result, between high-performance servers such as between the local server 130 and the remote server 230, a transport layer protocol processing algorithm for flow control and congestion control suitable for high-speed WANs such as high-performance servers and ATM networks. Can be used to realize high-speed remote communication between servers. Furthermore, even in communication between the client and the local server, high-speed communication can be realized by using short-distance communication called LAN and flow control and congestion control that take advantage of the high speed of LAN. In addition, existing software because the local server 130 steals communication packets between the client 110 and the remote server 230, leaving it transparent to the client 110 and splitting it into two communications, one in the LAN and one in the WAN. High-speed performance can be achieved without the need to change.
【0041】
According to the above embodiment, the communication between the remote server B (230) and the client A1 (110) has been described, but the communication between the remote server C (330) and the client A1 (110) is exactly the same. According to the above embodiment, the Proxy of the communication port of the remote server is registered in the Proxy registration table, but in FIGS. 1 and 3, the local server 130 forks the child process from the communication Proxy template (602). Instead, if the remote server 230 sends an object containing the program code and processing method to the local server 130, the user registration program 850 shown in FIG. 1 is registered with the local server 130 by the same procedure as in FIG. be able to. According to the above embodiment, only one gateway or router for routing packets on the communication path between the client 110 and the remote server 230 is the local server 130, but a plurality of gateways or routers on the communication path. Even if there is, if the Proxy registration table and the port number conversion table, which are one embodiment of the present invention, are realized in each gateway or router, hop-by-hop communication processing can be performed by the same procedure. Further, if the Proxy is not registered in the Proxy registration table which is one embodiment of the present invention, it is possible to control every other plurality instead of the hop-by-hop communication process. Further, according to the above embodiment, a high-speed communication method between a public network (WAN) and an office is described, but it is composed of a plurality of networks having different speeds and media such as ATM-LAN and Ethernet-LAN. It can also be applied to the LAN.
【0042】
[Effect of the invention]
As described above, according to the present invention, a server computer that performs a gateway between a network to which a client is connected (for example, LAN) and another network to which a remote server is connected (for example, a wide area network (WAN)) is used. It is possible to provide a method that can perform flow control and congestion control according to the performance and functions of the network (link) between the client computer and the remote server computer, and the performance of the client computer and the remote server computer. High-speed communication can be realized.
[Simple explanation of drawings]
[Figure 1]
It is a block diagram which shows the structure of 1 Example of this invention.
[Figure 2]
It is a figure which shows an example of a communication Proxy registration table and a port number conversion table.
[Fig. 3]
It is a figure which shows the flowchart of the initial processing of a local server and a remote server.
[Fig. 4]
It is a figure which shows the flowchart of the connection opening process between a client and a local server.
[Fig. 5]
It is a figure which shows the flowchart of the data transmission / reception processing between a client, a local server, and a remote server.
[Fig. 6]
It is a figure which shows the protocol stack in the conventional communication method in the communication between a client / server, and the protocol stack in the communication method of 1 Example of this invention.
[Fig. 7]
It is a figure which shows the example of the communication program between a client-server using a TCP / IP protocol.
[Fig. 8]
It is a figure which shows one configuration example of the computing system which is the object of this invention.
[Explanation of symbols]
110 Client A1 120, 220, 320 LAN 130 local server 230, 330 remote server 132, 232, 332 files 140, 240, 340 LAN SW 150, 250, 350 PBX 400 wide area network 852 854 Communication Proxy process
9 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| JP2009534937A | Cited by | Japan | Search report |
| JP2009534937A | Cited by | Japan | Examiner |
4 members in 2 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 35402095 | Japan | A | |
| JP19950354020 | – | – | – |
Members4
| Document | Office | Kind | |
|---|---|---|---|
| JPH09186723AThis record | Japan | A | |
| US2002057698A1 | United States of America | A1 | |
| US6404766B1 | United States of America | B1 | |
| US6950436B2 | United States of America | B2 |
3 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Decision of refusalJAPANESE INTERMEDIATE CODE: A02A02 | A02 | |
| Notification of resignation of power of attorneyJAPANESE INTERMEDIATE CODE: A7424RD04 | RD04 | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 |
Numbers
- Publication
- 9-186723
- Publication, DOCDB
- H09186723
- Publication, EPODOC
- JPH09186723
- Application
- 7354020
- Application, DOCDB
- 35402095
- Application, EPODOC
- JP19950354020
Titles2
- Japanese
- 【発明の名称】ネットワーク通信処理方式
- English
- [Title of Invention] Network communication processing method
Classification
- CPC, 13
- H04W80/06
- H04L12/2856
- H04L12/2874
- H04L12/5691
- H04L12/66
- H04L61/2514
- H04L61/2517
- H04L61/2567
- H04L69/16
- H04L69/163
- H04L61/00
- H04L2101/663
- H04L9/40
- IPC, 4
- H04L12 28
- H04L12 66
- H04L29 06
- H04L29 12