WO2006126403A1 - 通信機器間における切替えシステム、切替え方法、および切替えプログラム - Google Patents

通信機器間における切替えシステム、切替え方法、および切替えプログラム Download PDF

Info

Publication number
WO2006126403A1
WO2006126403A1 PCT/JP2006/309503 JP2006309503W WO2006126403A1 WO 2006126403 A1 WO2006126403 A1 WO 2006126403A1 JP 2006309503 W JP2006309503 W JP 2006309503W WO 2006126403 A1 WO2006126403 A1 WO 2006126403A1
Authority
WO
WIPO (PCT)
Prior art keywords
address
session
packet
communication device
server
Prior art date
Application number
PCT/JP2006/309503
Other languages
English (en)
French (fr)
Inventor
Masahiko Takahashi
Original Assignee
Nec Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nec Corporation filed Critical Nec Corporation
Priority to US11/915,086 priority Critical patent/US8396062B2/en
Priority to JP2007517770A priority patent/JP5257649B2/ja
Publication of WO2006126403A1 publication Critical patent/WO2006126403A1/ja
Priority to US13/762,728 priority patent/US9137271B2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1083In-session procedures
    • H04L65/1086In-session procedures session scope modification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1083In-session procedures
    • H04L65/1094Inter-user-equipment sessions transfer or sharing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/256Routing or path finding in ATM switching fabrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2546Arrangements for avoiding unnecessary translation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1027Persistence of sessions during load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/663Transport layer addresses, e.g. aspects of transmission control protocol [TCP] or user datagram protocol [UDP] ports

Definitions

  • the present invention relates to a switching system, switching method, and switching program between communication devices, and in particular, the logic between communication devices such as a client and a server with simple address conversion table management and less packet rewriting processing.
  • the present invention relates to a switching system, a switching method, and a switching program that perform typical session switching.
  • the communication device establishes a session for the address of the communication partner device and communicates by sending and receiving packets through the session.
  • An address of a communication device does not necessarily need to be only one specific layer address.
  • the address in the layer immediately above it can be mapped to the address in the lower layer.
  • a network layer IP address can be mapped to one data link layer MAC address.
  • multiple port numbers in the transport layer can be mapped to one IP address.
  • a communication device can transmit and receive a packet by using an address in any of the assigned layers or a mapping thereof.
  • a communication device issues an ARP request for the IP address of the partner communication device to be connected.
  • the communication device with the IP address returns the MAC address in response to the request.
  • the communication device that receives the MAC address sends a packet to the returned MAC address.
  • an address is an IP address. It is not limited to IP addresses.
  • TCP Transmission Control Protocol
  • the communication device establishes a bidirectional communication session by sending a new connection request to the communication device that is the communication partner. Thereafter, data is transmitted and received between the communication devices through the session.
  • a new connection request in TCP starts by sending a SYN packet.
  • the session is then established through a so-called 3 way knowshake.
  • the initial value of the sequence number is notified to each other.
  • the communication device transmits the packet with a sequence number obtained by adding a value corresponding to the data amount of the packet transmitted so far to the initial value. On the receiving side, by confirming the sequence number of the received packet, it is possible to confirm whether the packet has been received without loss.
  • FIG. 18 is a block diagram showing a connection configuration of a communication system including the switching device described in this technical document 1.
  • This communication system includes a switching device 121 and a plurality of servers 130-1 to 130-n, a plurality of clients 100-1 to: L00-m, a local network 120 and a client 100—l to 100 connected in a local network 120. Consists of network 110 of packet switching network connecting —m.
  • the server switching operation by the conventional switching device 121 will be described with reference to the connection configuration diagram of FIG. 18 and a sequence diagram showing the server switching operation by the conventional switching device.
  • Client in the following description using client 100-1; in Fig. 19, the address of ⁇ 70. 70. 70. 70) ⁇ , multiple sano 130-1 to 130- ⁇ A session is established with the switching device 121 having the system address (80.80.80.80 in FIG. 19) as a representative destination (1901 in FIG. 19).
  • the switching device 121 in the local network 120 distributes server requests to the sano 130-1 to 130-n to distribute the server load.
  • the switching device 121 receives a session establishment request from the client 100-1
  • the switching device 121 establishes a session between the client 100-1 and the switching device 121 by the procedure of a three-way node shake (1901, 1902 in FIG. 19).
  • an ACK packet (not shown) sent from the client 100-1 to the switching device 121 between 1902 and 1903).
  • a request to the server is sent from the client 100-1 to the switching device 121 (1903 in FIG. 19).
  • the switching device 121 selects a server from a plurality of servers according to some selection criteria, and distributes requests from the client 100-1.
  • a selection criterion at this time a method of selecting a server based on information used for communication control such as a source address described in a packet header portion may be used, or an application level included in a payload portion of a packet may be used. Information based on information is acceptable. If application level information or the like is also used, it can be distributed more flexibly in session units, but the processing load on the switching device 121 increases accordingly.
  • servers may be selected in a round-robin manner that distributes to different servers in the order of arrival of requests.
  • the switching apparatus 121 selects the server 130-1 as the server to which the request from the client 100-1 is distributed.
  • the switching device 121 establishes a session from the switching device 121 to the server 130-1 by a three-way node shake (1904, 1905, and 1905 and 1906 in FIG. 19). 130—not shown! (ACK packet sent to 1). Then, a request to the server is sent from the switching device 121 to the server 130-1 (1906 in FIG. 19).
  • the header portion of the packet has header information such as a destination address, a destination port number, a transmission source address, a transmission source port number, a communication protocol type, a sequence number, and the number of bytes (size) of the packet.
  • the port number and communication protocol type are not shown in the description of the operation, and are therefore omitted.
  • the received packet Although an ACK packet notifying a single sequence number is also sent and received, it is omitted from the description because the figure becomes complicated.
  • the switching device 121 transmits a packet arriving from the client 100-1 after 1904, the destination address in the header of the packet (abbreviated as Dst in the drawings and in the following). Yes), the source address (may be abbreviated as Src in the drawings and below), and the sequence number are rewritten, and the packet is sent to the server 130-1.
  • the switching device 121 sets the Src of the header part of the packet to 70. 70. 70. 70 (address of the client ⁇ 100—1) force is also 192. 168. 1. 99 ( Rewrite to the address assigned to the switching device 121 in the local network 120).
  • [Dst is rewritten to 80.80.80.80 (system address representing Sano 130-1 to 130-n) Force et al. 192. 168. 1.100 (address of selected Sano 130-1).
  • the sequence number is determined by the transmission direction of each packet for each session.
  • Sequence number of SYN packet (1901 in Fig. 19) (10000 in Fig. 19) or SYN-ACK packet (1902 in Fig. 19) corresponding to it (30000 in Fig. 19) when establishing a session ) Is determined as the initial value in each direction, and a value obtained by adding the size of the transmitted packet is added as a sequence number to the packet in each direction.
  • TCP / IP specifies that a sequence number is added to a packet including SYN and a FIN packet indicating the end of a session even if the size is O !.
  • the initial value of the sequence number in the transmission direction from switching device 121 to server 130-1 is the sequence number 19 04 in FIG. Further, the initial value of the sequence number in the transmission direction from the server 130-1 to the switching device 121 is determined as 50000 and the sequence number 80000 of 1905 in FIG.
  • the switching device 121 includes an initial value in the transmission direction from the switching device 121 to the server 130-1 and an initial value of a sequence number in the transmission direction from the client 100-1 to the switching device 121.
  • the difference is stored.
  • 50000 force also stores 4000 0 which is the difference between the values of 10000.
  • switching device 121 stores the difference between the initial value of the sequence number in the transmission direction from switching device 121 to client 100-1 and the initial value in the transmission direction from server 130-1 to switching device 121. Keep it.
  • 50000 which is the difference between 30000 forces and 80000 values, is stored.
  • the switching device 121 Upon receiving the response packet (1907, 1909 in Fig. 19), the switching device 121 receives the response packet from the selected server 130-1 and rewrites the header information of the Src, Dst, and sequence number to the packet. Sent to client ⁇ 100-1 (1908 and 1910 in Fig. 19). After sending all the response packets, send the packet to disconnect the session with the end flag (FIN) (191 1 in Fig. 19). In response, the switching device 121 also sends a FIN packet to the server 130-1 (1912 in FIG. 19).
  • FIN end flag
  • the switching device 121 transmits a FIN packet to the client 100-1 (1913 in FIG. 19).
  • the client 100-1 that receives the FIN packet also sends the FIN packet (1914 in Fig. 19). In this way, the session between the client 100-1 and the switching device 121 and the session between the switching device 121 and the server 130-1 are disconnected.
  • NAT network address translation
  • the client address and client port number are information necessary for the switching device to identify the session between the client and the switching device.
  • the switching device port number identifies the session between the switching device and the server. It is necessary information to do.
  • the first problem in the above prior art is that the management of the NAT table for address translation is complicated.
  • addresses are fixedly assigned to servers, so when switching servers, it is necessary to change the addresses and send packets. Therefore, it was necessary to update the NAT table entry address each time the server was switched. In addition, in order to rewrite the sequence number that manages the packet transmission order, it was necessary to store and manage information used for rewriting in the NAT table.
  • a second problem is that the rewrite processing load of the packet header is high. This is because a conventional switching device rewrites a packet's source address, destination address, sequence number and many other values to send out the packet.
  • an object of the present invention is to simplify the management of a NAT table required for switching communication devices such as servers.
  • Another object of the present invention is to reduce packet rewrite processing, and to realize more efficient server switching.
  • switching is performed in which an address is selected for each session from the client, and the destination address of the packet from the client is changed to the address and transmitted.
  • Establish a session between the device and the client select a server to process the request from that client, transfer the established session to that server, take over the session transferred by the dispatcher, and request from the client
  • a switching system configured with a server that processes is provided.
  • the present invention includes many switching devices, dispatchers, servers, switching methods, and switching programs, as described in the claims described later. It has an aspect.
  • the first effect of the present invention achieved by each of these aspects is that it is not necessary to update the NAT table included in the switching device when switching servers. Rather than sending a packet to a fixed address fixed to the server, the packet is sent to the address selected for each session. Sessions can be switched along with their addresses, so the address to which packets are sent does not change even when the destination server from the client is switched! /. As a result, the first effect is realized.
  • a second effect of the present invention is that it is possible to reduce a packet rewriting load that does not require rewriting session information including a sequence number in the switching device. This is because the session establishment is realized between the client and the dispatcher, and the switching device does not need to manage the session state.
  • FIG. 1 is a block diagram showing a configuration of a server switching system in a first embodiment.
  • FIG. 2 is a block diagram showing an address management method in the first embodiment.
  • FIG. 3 is a diagram showing an address conversion table (NAT table) in the first embodiment.
  • FIG. 4 is a flowchart showing an address conversion operation performed when the switching device in the first embodiment sends a packet received from a client to the network.
  • FIG. 5 A flow chart showing an operation in which the switching device in the first embodiment performs address conversion when sending a packet received from a Sano ⁇ or dispatcher to a client.
  • FIG. 6 is a flowchart showing an operation in which the dispatcher in the first embodiment transfers a session to a server.
  • FIG. 7 is a flowchart showing an operation when a server power session is received by a dispatcher power in the first embodiment.
  • FIG. 8 is a flowchart showing a flow until the client in the first embodiment issues a request for a new connection and disconnects the power session.
  • FIG. 9 is a sequence diagram showing a packet flow in a specific example related to the first embodiment.
  • FIG. 10 is a transition diagram showing the transition of the state of the NAT table 225 in the specific example of the first embodiment.
  • FIG. 11 is a diagram showing a NAT table in the second embodiment.
  • FIG. 12 is a flowchart showing a flow of processing a packet received from a client by an address translation unit in the second embodiment. 13] A flowchart showing the operation of the switching device in the second embodiment for rewriting a packet transmitted from the dispatcher or server to the client.
  • FIG. 14 is a flowchart showing the server switching operation in the second embodiment.
  • ⁇ 15 A flowchart showing the operation flow in which the client in the third embodiment sends a plurality of requests and receives a response. It is.
  • FIG. 16 is a block diagram showing a configuration of a server switching system according to a fourth embodiment.
  • ⁇ 17 This is a flowchart showing a flow until a server responds to a request when a client transmits a plurality of requests in the fourth embodiment.
  • FIG. 18 is a block diagram showing a connection configuration of a communication system including a conventional switching device.
  • FIG. 19 is a sequence diagram showing server switching operation by a conventional switching device.
  • FIG. 20 shows a conventional NAT table.
  • FIG. 21 is a block diagram showing a configuration of a server switching system according to a fifth embodiment.
  • ⁇ 22] is a flowchart showing the address translation operation of the packet received from the client in the fifth embodiment.
  • ⁇ 23] is a flowchart showing an address translation operation when a packet is transmitted to the client in the fifth embodiment.
  • FIG. 24 is a flowchart showing a process from when a client issues a request until the session is disconnected in the fifth embodiment.
  • FIG. 25 is a sequence diagram of a specific operation example in the fifth embodiment.
  • FIG. 29 is a flowchart showing an address conversion operation when a packet is transmitted to the client in the seventh embodiment.
  • FIG. 1 is a block diagram showing a configuration of a switching system according to the first embodiment of the present invention.
  • the switching system 200 first establishes a session between the switching device 210 and the client, and transfers the established session to the server. And a network 230 that interconnects one or more servers 250-1 to 250-n, a switching device 210, a dispatcher 240, and servers 250-l to 250-n. Further, although only one dispatcher 240 is shown in FIG. 1, a plurality of dispatchers may exist. The dispatcher 240 may be integrated with the force switching device 210 that is assumed to be outside the switching device 210. Note that there is a client (not shown) ahead of the network 260.
  • addresses in the local network 201 are handled by being divided into two types, fixed addresses and additional addresses.
  • a fixed address is assigned to each switching device, dispatcher, and server, and is set in the communication section of each device.
  • This additional address is assigned to either the dispatcher or each server and is set in the communication section of each device. Therefore, depending on the situation, the dispatcher or each server may be assigned one fixed address and several additional addresses.
  • the switching device 210 includes at least a client side communication unit 211, a server side communication unit 212, an address conversion unit 220, and a NAT table 225.
  • the client side communication unit 211 is an arbitrary communication means connected to the network 260 in order to be used for communication with the client.
  • a unique fixed address in the network 260 is assigned to the client side communication unit 211. This fixed address will be referred to as the system address below.
  • the server side communication unit 212 is an arbitrary communication means connected to the network 230, and is used for communication with the dispatcher 240 and the servers 250-1 to 250-n.
  • a fixed address in the local network 201 is assigned to the server side communication unit 212. This fixed address is unique in the local network 201.
  • the address conversion unit 220 is a part that converts a system address and an address in the local network 201 to each other.
  • the client rewrites the destination address in the header of the packet sent to either dispatcher 240 or servo 250-l to 250-n, and either dispatcher 240 or server 250-l to 250-n.
  • the source address described in the header of the packet sent to the client 100 is rewritten. Unlike the conventional switching device, there is no need to rewrite the sequence number.
  • the NAT table 225 is a table for holding the correspondence between the address of the client and the address in the local network 201 and the state thereof for each session for mutual address translation performed by the address translation unit 220! It is. At least the NAT table 225 has a client address (client address), a client port number (client port number), and an address to be rewritten when sending a packet to the network 230, as shown in line 301 of the table in FIG. It is necessary to have (translation address) as a field.
  • the FIN attribute (up) which is a field indicating the maintenance or termination of the session in the direction from the client to the server, and the maintenance or termination of the session in the direction from Sano to the client It has the FIN attribute (down) which is a field indicating.
  • the FIN attribute (up) and FIN attribute (down) are attributes that indicate the end of the session. In bidirectional communication, it is possible to declare the end of the session one way at a time. Therefore, the FIN attribute has two attributes, upstream and downstream, so that the session state between the client and server can be managed.
  • the client attribute also sets the FIN attribute (upstream) to 1 when session termination is declared, and the local network side also sets the FIN attribute (downstream) to 1 when session termination is declared. In either case, the initial value is 0. When both are set to 1, the entry is deleted by the address conversion unit 220.
  • the difference between the switching device port number (switching device port number) between the switching device and the server, and the sequence number value to be added when the client packet is relayed to the server ( Server direction addition value), and the difference in sequence number (client direction addition value) to be added when a packet from Sano is relayed to the client is not required.
  • FIG. 4 is a flowchart showing an address conversion operation performed when the switching device 210 sends a packet received from a client to the network 230.
  • the operation of the address conversion unit 220 will be described with reference to FIG. Note that the switching device 210 of the first embodiment is not conscious of which server the request is distributed to, and as described in this power, it simply rewrites the address and sends the packet to the network. Therefore, as described in the conventional switching device, the expression “send packet to network” is used instead of the expression “send to server”.
  • a new connection request packet for client to establish a session for the first time (corresponding to 1901 (SYN packet) in Fig. 19 of the conventional example) force Address when system address is sent
  • the operation of the conversion unit 220 will be described.
  • the switching device 210 that receives the packet from the client side communication unit 21 1 determines whether the packet is a packet for a new connection request, and if it is a new connection request packet (Yes in step S400), it can be used as an additional address.
  • One unused address that is not used in the NAT table entry that is, an additional address that is not in communication
  • any conventional algorithm can be used.
  • any conventional algorithm can be used.
  • FIG. 2 there is a method of managing unused addresses in a list format. From client Suppose that the range of addresses that can be assigned to a Taest is as shown in the 20001 table. Then, the addresses used as server addresses in the NAT table 225 entries are managed as a list such as 20002 as used addresses, and addresses in the range shown in 20001 that are not in use addresses are It is managed as an unused address list such as In step S401, one address is selected from the unused address list 20003, extracted from the unused address list, and added to the used address list 20002. Then, a new entry is created in the NAT table 225 using the address as a translation address (step S402). At this time, the client address and port number are also written as field values of the entry. Also, both the FIN attribute (up) and the FIN attribute (down) are initialized to 0.
  • the destination address of the packet is rewritten to the selected unused address (hereinafter, translated address) (step S403), and the rewritten packet is transmitted from the server side communication unit 212 to the network 230 (step S404).
  • step S400 it is determined whether or not the packet has a new connection requesting power (No in step S400). Furthermore, it is determined whether the end flag (FIN) is included in the packet (No in step S405).
  • step S406 the client address and client port number of each entry in the NAT table 225 are searched for whether there is a match with the source address and source port number of the packet (step S406). If there is no entry in the NAT table (No in step S406), it is determined as an error and processing such as discarding the packet is performed. If it exists in the NAT table entry (Yes in step S406), the destination address of the packet is rewritten to the translated address (step S407). Then, the packet is transmitted in the local network (step S404).
  • the client and dispatcher 240 or server 250 are identical to the client and dispatcher 240 or server 250.
  • step S400 it is determined whether or not the packet has a request for new connection. Further, it is determined whether the end flag is included in the packet (Yes in step S405). Next, it is searched whether the client address and client port number of each entry in the NAT table 225 match the source address and source port number of the packet (step S408). If there is no entry in the NAT table 225 (No in step S408), an error occurs and the packet is discarded. If it exists in the NAT table entry (Yes in step S408), the FIN attribute (upstream) of the entry is changed from 0 to 1.
  • step S410 the value of the FIN attribute (down) of the entry is checked (step S410). If it is 1 (Yes in step S410), the entry is deleted (step S411). The conversion address of the entry is temporarily stored in a storage area (not shown). After deleting the entry (step S411), or if the value of the FIN attribute (downstream) of the entry is 0 (No in step S410), the destination address of the packet is changed to the translated address (or Is rewritten to the address stored in the temporarily stored storage area (step S407). Then, the packet is transmitted to the local network 201.
  • FIG. 5 is a flowchart showing an operation of performing address conversion when the server or dispatcher power is sent to the client via the switching device 210.
  • the switching device 210 When the switching device 210 receives a packet from the network 230, it first searches for a client address and client port number in each entry of the NAT table 225 that matches the destination address and destination port number of the packet. (Step S430). At this time, it is possible to perform a search from the viewpoint of whether the translated address of each entry in the NAT table 225 matches the source address of the packet.
  • step S430 If the entry does not exist in the NAT table 225 (No in step S430), an error occurs and processing such as discarding the packet is performed. If it exists in the entry of the NAT table 225 (Yes in step S430), it is checked whether the end flag is included in the packet. If the end flag is not included (No in step S431), the source address of the packet is rewritten with the system address (step S432), and the packet is This is transmitted to the network 260 (step S433).
  • step S434 If the packet includes an end flag (Yes in step S431), the FIN attribute (downstream) of the entry is changed from 0 to 1 (step S434). Next, the value of the FIN attribute (upstream) of the entry is checked, and if it is 1 (Yes in step S435), the entry is deleted (step S436). After deleting the entry, or if the FIN attribute (upstream) value of the entry is 0 (No in step S435), rewrite the source address of the packet to the system address (step S432) Is transmitted to the network 260 (step S433).
  • the dispatcher 240 includes at least a communication unit 241, a session information storage unit 245, a session establishment unit 244, an analysis unit 242 and a session transfer unit 243, and operates under program control.
  • the dispatcher 240 establishes a session with the client, and transfers the established session to the server selected by the analysis unit 242 to realize session transfer to the server.
  • the communication unit 241 is an arbitrary communication unit connected to the local network, and is the same as the communication units 211 and 212 of the switching device 210 described above. However, since the communication is established if the switching device 210 and the servers 250-1 to 250-n have the same communication protocol, the physical medium is not necessarily the same.
  • the communication unit 241 is assigned a fixed address unique within the local network! /.
  • the session information storage unit 245 is a storage unit that holds session information (session information) established between the client and the dispatcher 240. When a session is established, information is created for each session and deleted if the session is disconnected or transferred.
  • Session establishment unit 244 establishes a session with the client.
  • An additional address can be set in the communication unit 241.
  • the packet destined for the address held by the communication unit 241 is received by the dispatcher 240. Therefore, in the case of a new connection request packet, the dispatcher 240 receives the packet sent in step S404 in FIG. 4, and the session establishment unit 244 communicates with the client. A session will be established. Unlike the conventional server switchover, in the first embodiment, there is no need to establish a session between the switchover device 210 and the client.
  • an additional address managed as an unused address may be set in the communication unit 241 of the dispatcher 240.
  • the analysis unit 242 analyzes the content of the request received through the session established with the client. Based on the analysis result, an appropriate server is selected. Any conventional method can be used for the analysis method and the method for selecting an appropriate server. An example of this request is a request using HTTP (HyperText Transfer Protocol).
  • Session transfer unit 243 transfers the session to the server selected by analysis unit 242.
  • server 250-1 is selected.
  • Session information is acquired from the session information storage unit 245 and transferred to the session transfer unit 253-1 of the server 250-1 via the communication unit 241 of the dispatcher and the communication unit 251-1 of the server 250-1 To do.
  • the session becomes invalid if an instruction to reject the packet is returned or the session is invalidated.
  • a method of determining whether or not to accept a packet there is a method of checking whether or not session information corresponding to the source address of the received packet is registered in the session information storage unit. Therefore, if session information exists in the session information storage unit, the session can be continued.
  • the session information of the session is correctly transferred from the dispatcher to the server to switch between the dispatcher and the server while continuing the session. This is expressed as "transfer the session (and dispatcher power to the server)".
  • the session information includes addresses of a transmission source and a transmission destination in packet communication.
  • a fixed address that is set in the communication unit of the server as the source address of the session information is used, so that the session cannot be transferred. This is because the fixed address of the server must be transferred in order to transfer the session.
  • the session can be transferred freely.
  • the session transfer unit 243 of the dispatcher 240 receives the session information regarding the session from the session information storage unit 245, and the server 250-1 Session transfer section 253—Send to 1.
  • Session transfer unit 253-1 of server 250-1 sets the received session information in session information storage unit 255-1. Furthermore, the additional address included in the session information is set in the communication unit 251-1.
  • the session transfer unit 243 of the dispatcher 240 deletes the additional address of the transferred session from the communication unit 241. Therefore, after the transfer of the session is completed, not the dispatcher 240 but the server 250-1 sends and receives the packet of the session. That is Since the session transfer destination server 250-1 takes over communication with the client, the session is maintained without being disconnected.
  • FIG. 6 is a flowchart showing an operation in which the dispatcher transfers the session to the server. The session transfer operation will be described in more detail with reference to FIG.
  • session transfer unit 243 acquires the session information of the session in session information storage unit 245 (step S 460).
  • the session information includes an additional address selected by the switching device when the session is established.
  • the selected additional address is deleted from the communication unit 241 (step S461). This prevents dispatcher 240 from receiving packets for that address.
  • the session information is transferred to the session transfer unit 253-1 of the server 250-1 via the communication unit 241 and the network 230 (step S462), and the session information is also deleted from the session information storage unit 2443 (step S463).
  • the session information used at the time of session transfer includes at least the sequence number of the packet received from the client until the session transfer, the sequence number of the packet transmitted to the client, the additional address, and the client address. And Other information needed to maintain a session with the protocol used
  • the server 250-1 is described below, but the same applies to other servers.
  • the server 250-1 includes a communication unit 251-1, an application server 252-1, a session information storage unit 255-1, and a session transfer unit 253-1.
  • the communication unit 251-1 is an arbitrary communication unit connected to the network 230 and is similar to the communication unit 241 of the dispatcher 240 described above. However, communication is established if the communication protocol is the same as that of the switching device 210, dispatcher 240, and other servers, so the physical medium is not necessarily the same. A different fixed address is assigned to each communication unit of each server.
  • the application server 252-1 interprets the client request and sends an appropriate response to the requested request. Depending on the request, the requested file In some cases, the contents of the aisle are transferred, so the server is equipped with a storage device, and the application server 252-1 must also read and send the appropriate file with the storage device power not shown. There is also.
  • the session information storage unit 255-1 is a part that holds information on the established session, similar to the session information storage unit 245 of the dispatcher 240.
  • Session transfer unit 253-1 receives session information when transferring a session from dispatcher 240 to the server, and sets session information and an additional address as described later.
  • FIG. 7 is a flow chart showing the operation of the server when receiving a session dispatcher power. The operation when receiving a session will be described with reference to FIG.
  • the session transfer unit 253-1 on the server 250-1 receives the session information (step S470), and sets this session information in the session information storage unit 255-1 (step S471). Further, the additional address written in the session information is set in the communication unit 251-1 (step S472).
  • Figure 8 is a flowchart showing this flow.
  • the client transmits a packet including a new connection request to the system address in order to establish a session (step S480).
  • the packet is received by the switching device 210 via the network 260.
  • switching device 210 selects the intermediate unused address of the additional address as the translation address, rewrites the destination address of the packet to the translation address, and transmits it to the local network (step S481).
  • a new entry is created in the NAT table. Since the address is previously assigned and set as an additional address to the communication unit of the dispatcher 240, the session establishing unit 244 of the dispatcher receives the packet.
  • a session is established between the client and the dispatcher (step S482).
  • the client transmits a packet including the request to the system address.
  • Step S483 In the switching device 210, the destination is determined according to the NAT table entry. The address is rewritten to the translated address and transmitted (step S484), and the analysis unit 242 on the dispatcher 240 receives the request. The analysis unit 242 analyzes the contents of the request and selects an appropriate server (here, server 250-1) (step S485). Next, the analysis unit 242 instructs the session transfer unit 243 to transfer the session information to the session transfer unit 253-1 on the selected server 250-1 (step S486). That is, the additional address and session information are deleted from the dispatcher 240, and the transferred session information and additional address are set in the selected server 250-1.
  • sequence number in the session information is inherited as it is even if the session is transferred, it is not necessary to manage and rewrite the sequence number in the switching device 210 as in the conventional case.
  • the packet is transmitted / received between the selected server 250-1 and the client through the session (step S487).
  • the packet from the client to the server reaches the server 250-1, with the switching device 210 rewriting the destination address to the translated address.
  • the server 250-1 causes the application server 252-1 to create a response according to the content of the request and send it to the client.
  • the packet transmitted from the server 250-1 to the client is referred to the NAT table 225 again on the switching device 210, the packet source address is rewritten to the system address, and reaches the client.
  • the method of transmitting the request contents to the server is arbitrary, but for example, a method of including it in the session information to be transferred can be used.
  • server 250-1 After sending all the necessary responses, server 250-1 sends a packet with a termination flag (FIN) to terminate the session.
  • FIN termination flag
  • the FIN attribute (down) is set to 1 for the entry in the NAT table of the switching device.
  • a packet including an end flag is also sent from the client.
  • the FIN attribute (up) is set to 1 in the corresponding entry in the NAT table of the switching device, and the entry is deleted (step S488). Is it the client sending a packet containing an end flag to end the session? It is sometimes done.
  • the additional address used in the session is returned from the server 250-1 to the dispatcher 240.
  • the server 250-1 uses the session from the communication unit 250-1 to delete the additional address setting and instructs the dispatcher 240 to set the additional address in the communication unit 241 again.
  • the additional address is set in the communication unit 241 of the dispatcher 240.
  • FIG. 9 A specific operation example relating to the first embodiment configured as described above will be described in detail with reference to FIGS. 9 and 10, and FIG. 1 showing the system configuration.
  • TCP / IP is used as the communication protocol.
  • FIG. 9 is a sequence diagram showing a packet flow in the first embodiment. In this figure, all the descriptions of ACK packets are omitted.
  • the system address of the switching device 210 is 90.90.90.90
  • the fixed address is 192.168.2.1.
  • the fixed address of dispatcher 240 is 192.168.2.2.
  • the client address is 60.60.60.60.
  • the description as the header information of the packet in FIG. 9 is omitted.
  • FIG. 10 shows the state of the NAT table 225 on the switching device 210.
  • the client issues a SYN packet ((A) in Fig. 9).
  • the source address (src) is 60.60.60.60
  • the destination address (dst) is 90.90.90.90.
  • the initial value of the sequence number is 2000.
  • the switching device 210 receives the SYN packet sent by the client and adds an unused additional address 192.168.2.103. Select as translation address. Then, the destination address is rewritten to this translated address 192.168.2.103 and transmitted to the network 230.
  • the switching device 210 creates a new entry in the NAT table 225 by associating the client address, the client port number, and the selected additional address (translation address). Therefore, the NAT table is in the state shown in Fig. 10 (B). Since this additional address is held by the dispatcher 240 (set in the communication unit 241 of the dispatcher 240), the dispatcher 240 receives the SYN packet in which the destination address is rewritten and establishes a session. The dispatcher 240 determines that the initial value of the sequence number is 6000, and transmits a SYN-ACK packet (FIG. 9B) with the sequence number to the client.
  • the switching device 210 confirms the information in the NAT table 255, rewrites it with the system address, and transmits it to the network 260. Specifically, the switching device 210 finds the entry 60.60.6 0.60 in the NAT table 225, rewrites the transmission source address to 90.90.90.90, and transmits it to the client.
  • the client transmits a packet ((C) in FIG. 9) containing the request.
  • the sequence number is 2001 and the request length is 100 bytes.
  • the switching device 210 extracts an entry in which the source address and source port number of this request packet match the client address and client port number of the NAT table 225, and sets the destination address of the packet of this request to the corresponding entry.
  • Rewrite to the translated address here 192.168.2.10 3) and transfer to the dispatcher.
  • the analysis unit 242 of the dispatcher 240 analyzes the request and selects an appropriate sano (the server 250-1 having an address of 192.168.2.3).
  • the session transfer unit 243 transfers the session to the selected server 250-1.
  • the switching device 210 may send an ARP request when sending a packet to the translated address (192.168.2.103). At this time, since the additional address is already set in the server 250-1, the server 250-1 returns the MAC address. Then, the switching device 210 transmits a packet to the replied MAC address.
  • the device external force instruction is issued to invalidate the cache or update the contents. It is also possible. In this case, communication can be continued without issuing an ARP request after the session is transferred.
  • the application server 252-1 running on the server 250-1 creates a response to the request and sends it to the client ((D) in FIG. 9). Assume that the initial response length is 1000 bytes. This packet is also sent to the client with the source address rewritten to the system address in the same way as the packet in Fig. 9B. After sending all responses ⁇ times (Fig. 9 ( ⁇ )), the server sends a FIN packet (Fig. 9 (F)) indicating termination. Upon receiving this packet, the switching device 210 detects the FIN flag and sets the FIN attribute (downstream) of the entry whose bucket destination address and destination port number match the client address and client port number to 1. Therefore, the NAT table is as shown in Fig. 10 (C). Then, the source address of the packet is rewritten to 90.9 0.90.90 as in FIG. 9B, and transmitted to the client.
  • a FIN packet ((G) in Fig. 9) is also transmitted from the client.
  • the switching device 210 detects the FIN flag, and sets the FIN attribute (upstream) of the entry that matches the packet source address and source port number S client address and client port number to 1. To do. Therefore, the NAT table is as shown in Fig. 10 (D). Then, after rewriting the destination address of the packet to 192.168.2.103 and transmitting it to the network 230, the entry is deleted. The NAT table after deletion returns to the state shown in Fig. 10 (A).
  • the dispatcher and the server use the additional address selected for each session as the source address of the packet transmitted to the client. Then, in the switching device 210, the source address of those packets is changed to the system. Rewrite it with a new address.
  • the source address of the packet is made the system address when the dispatcher and each server transmit.
  • the source address of the packet is made the system address when the dispatcher and each server transmit.
  • a protocol in which a flag explicitly indicating the start and end of a session is present in the packet specifically TCP
  • TCP a protocol in which a flag explicitly indicating the start and end of a session is present in the packet
  • UDP a protocol that does not explicitly indicate the start and end of a session is used.
  • the configuration of the switching system in the second embodiment is the same as that in the first embodiment shown in FIG.
  • the structure of entries in the NAT table 225 is different from that in the first embodiment.
  • the flow of address conversion processing in the switching device also changes. The difference will be described below.
  • FIG. 11 is an example of entries in the NAT table 225 in the second embodiment.
  • the entry consists only of the client address and port number, and the translation address.
  • an identifier that identifies the transmission source of a session may be used as long as it is not necessarily a combination of a client address and a port number. In the following, the case of using a combination of client address and port number will be described as an example.
  • FIG. 12 is a flowchart showing a flow of processing a packet received from a client in address translation unit 220.
  • the source address and source port number of the packet are first addressed. Search for an entry on the NAT table 225 that matches the port number. (Step S600). If there is a matching entry (Yes in step S600), the destination address of the packet is rewritten to the translated address of the entry (step S601) and transmitted from the server side communication unit 212 (step S602).
  • step S603 If there is no matching entry (No in step S600), an unused address is selected (step S603). In this case, any conventional algorithm can be used. Next, a new entry is created in the NAT table 225 (step S604). In this entry, the unused address is used as the translation address, the source address of the packet is the client address, and the source port is the client port. Then, the destination address of the packet is rewritten to the translated address and transmitted from the server side communication unit 212 (step S605).
  • FIG. 13 is a flowchart showing the rewriting operation in the switching device 210 for packets transmitted from the dispatcher or the server to the client.
  • the address translation unit 220 upon receiving a packet from the network 230, the address translation unit 220 first searches the NAT table 225 to check whether there is an entry whose client address matches the packet destination address (Ste S620). At this time, it is also possible to search from the viewpoint of whether there is an entry whose translated address matches the packet source address.
  • step S620 If there is a matching entry (Yes in step S620), the source address is rewritten with the system address (step S621), and the packet is transmitted from the client side communication unit 211 (step S622).
  • step S620 If there is no matching entry (No in step S620), an error occurs and processing such as discarding the packet is performed.
  • session termination is not explicitly performed. If another representation is used, session termination is not explicitly managed. There is no real opportunity. Therefore, it was difficult to communicate for a certain period of time. The entry is deleted by a monitoring unit (not shown).
  • FIG. 14 is a flowchart showing the server switching operation.
  • the client first transmits a packet including a request to the system address (step S640).
  • the switching device 210 receives the packet via the network 260 and the client side communication unit 211.
  • the switching device 210 selects one additional address as the translation address of the unused address, rewrites the destination address of the packet to the translation address, and transmits it to the network 230 (step S641).
  • a new entry is created in the NAT table. Since the selected additional address is assigned to the communication unit 241 of the dispatcher 240, the session establishing unit 244 of the dispatcher 240 receives the packet.
  • the session establishment unit 244 creates session information necessary for establishing a session with the client, and stores it in the session information storage unit 245.
  • the analysis unit 242 of the dispatcher 240 analyzes the received request and selects an appropriate server (step S642). Then, the analysis unit instructs the session transfer unit 243 to transfer the session information to the session transfer unit 253-1 of the selected server (here, server 250-1 is selected) (step S643).
  • the selected additional address setting and session are deleted from the communication unit 241 of the dispatcher 240, and the selected server 250-1 sets the transferred session information and transmits the additional address to the communication unit 2 51—1. Set up.
  • the application server 252-1 of the selected server 250-1 creates a response according to the content of the request and sends it to the client (step S644).
  • Server 250 — 1 or The switching device 210 refers to the NAT table 225 again, rewrites the packet source address to the system address, and transmits the packet to the client.
  • step S645 After all necessary responses have been transmitted, communication for the session does not occur, and the entry on the NAT table 225 is deleted after a certain period of time (step S645). At this time, the additional address (translation address) used in the session is erased from the server 250-1 and returned to the dispatcher 240 (step S646). The dispatcher 240 sets the additional address in the communication unit 241 again.
  • a sequence number may not be used.
  • the sequence number is not included in the session information when transferring the session.
  • the session information to be transferred includes the additional address and information necessary for the protocol.
  • the modification to the second embodiment is the same as the modification to the first embodiment.
  • step S621 force is omitted.
  • step S620 in FIG. 13 when searching for the presence of an entry in the NAT table, the method of checking the match between the inner address of each entry and the source address of the packet cannot be used. This is because in this modification, all the packet source addresses are system addresses, and no such entry exists.
  • the configuration of the switching system in the third embodiment is the same as the configuration in the first embodiment shown in FIG.
  • the address rewriting in the switching device 210 is the same as that in the first embodiment.
  • the session is transferred from Sano to the dispatcher when the second and subsequent requests are processed.
  • the procedure for transferring a session by the server is the same as in FIG.
  • the procedure for receiving the transferred session by the dispatcher is the same as in Figure 7. In other words, the procedure itself has not changed, only the positions of the dispatcher and server in the first embodiment have been changed.
  • FIG. 15 shows a flow in which the client sends multiple requests and receives a response.
  • FIG. 15 is described from step S668 different from FIG. 8 in the first embodiment.
  • step S667 After the server has responded to the request (step S667), the server checks to see if there is a next request (step S668). If there is a next request (No in step S668), the client The next request is transmitted (step S669). Switching device 2 10 has the ability to rewrite and send the destination address of the packet of the request according to the NAT table entry. At this point, the server still holds the additional address (in this case, server 250— Therefore, the server 250-1 receives the packet (step S670).
  • the application server 252-1 running on the server 250-1 does not read the request and transfers the session to the dispatcher 240 (step S67 Do)
  • the power required to include the sequence number, additional address, and information necessary for the protocol In the third embodiment, a request packet that is not read by the application server is also included. Therefore, the session is transferred to the dispatcher 240 in the state that was read correctly.
  • the analysis unit 242 of the dispatcher 240 reads the request, analyzes it, and selects an appropriate server again (step S665). Thereafter, a session is transferred from the dispatcher 240 to the selected server (S666), and a response is returned from the Sano to the client (S667).
  • Step S668 If there is no next request in Step S668 (Yes in Step S668), the session is disconnected (Step S672), and the additional address is returned to the dispatcher 240 (Step S668).
  • the session is transferred to the dispatcher.
  • each server reads the next request and transfers the session to an appropriate server. If the local server is optimal, it is possible to continue sending a response to the next request while maintaining the session without transferring the session to another server.
  • FIG. 16 is a block diagram showing the configuration of the switching system in the fourth embodiment.
  • the fourth embodiment is provided with an analysis unit (254-l to 254-n) in the application server as compared with the first embodiment. Is a feature.
  • an application server on the server reads the request, and the session is transferred from the server to another server or a dispatcher.
  • the address rewriting process in the switching device 210 is the same as that in the first embodiment (FIGS. 4 and 5).
  • the procedure for transferring a session by the server is the same as in FIG.
  • the procedure for receiving the transferred session is the same as in Figure 7.
  • the procedure is the same as in the first embodiment, and the source and destination of the session to be transferred only become a server.
  • FIG. 17 is a flowchart showing a flow until a response is made from the server when a client transmits a plurality of requests.
  • the processing operation when a client sends multiple requests will be explained using this figure.
  • processing operations after step S488 different from FIG. 8 showing the flowchart of the processing operations in the first embodiment will be described.
  • step S489 After the response to the request is completed (S487), if there is a next request (No in step S488), the client transmits the next request (step S489).
  • Switching device 210 has the ability to rewrite and send the destination address of the packet of the request according to the entry in NAT table 225.
  • the server still holds the additional address (here, server 250— Therefore, the server 250-1 receives the packet (step S490).
  • the application server 252-1 running on the server 250-1 reads the request, and the analysis unit 254-1 selects an appropriate server (step S491). If the selected server is its own server 250-1 (No in step S492), the application server 250-1 creates and sends a response (step S487).
  • step S492 If the selected server is another server, for example server 250—n (Yes in step S492), the session is transferred to the selected server 250—n (step S493), and the selected server 2250—n.
  • Application server 252—n creates a response and sends it (step S487
  • the session information in this case includes the read request packet in addition to the sequence number, additional address and information necessary for the protocol.
  • the application server of the selected server reads the request and creates a response.
  • Step S494 If there is no next request in Step S488 (Yes in Step S488), the session is disconnected (Step S494), and the additional address is returned to the dispatcher 240 (Step S488). S495). The entry related to the session is deleted from the NAT table 225 (step S496).
  • the source address of the packet is set to the system address when the dispatcher and each server transmit. Deformation is possible.
  • the address translation unit 220 of the switching device 210 selects an additional address and creates an entry in the NAT table 225.
  • the switching device 710 does not determine whether the packet is a new connection request power.
  • Switching device 710 forwards the packet to the default address when a packet not registered in NAT table 225 arrives.
  • a server or dispatcher holding the default address establishes a session with the client. After the session is established, the server or dispatcher that has established a session with the client transmits an entry creation instruction to the NAT table 225 of the switching device 710.
  • a default address a fixed address of a server or dispatcher that manages additional addresses! /, Can be used.
  • the dispatcher's fixed address is used as the default address. Note that if a fixed server address is used as the default address, Sano also has a session establishment unit.
  • the fifth embodiment differs from the first embodiment in the processing until the entry of the NAT table 225, the processing in the switching device 710, and the processing in the dispatcher 740.
  • FIG. 21 shows a configuration of a switching system 700 according to the fifth embodiment of the present invention.
  • a session information rewriting unit 746 is added to the dispatcher 740, and a table entry setting unit 727 is further added to the switching device 710. .
  • Session information rewriting unit 746 of dispatcher 740 manages unused addresses (additional addresses not in communication), and unused addresses when session establishment unit 244 establishes a session with the client. Choose the middle power.
  • the session information rewriting unit 746 rewrites the established session address in the session information storage unit 245 with the selected unused address, and further holds the correspondence between the selected unused address and the client address.
  • An instruction to create an entry in the NAT table 225 is issued to the table entry setting unit 727 of the switching device 710 via the communication unit 24 1.
  • the table entry setting unit 727 receives an instruction from the session information rewriting unit 746 and creates an entry of the NAT table 225 that holds the correspondence between the additional address and the client address.
  • the entry structure of the NAT table 225 in the fifth embodiment is the same as FIG.
  • the address conversion unit 220 stores a default address.
  • FIG. 22 is a flowchart showing an address conversion operation performed when the switching device 710 sends a packet received from a client to the network 230.
  • switching device 710 that has received the packet from the client searches NAT table 225 by the client address and the client port number (step S800). At this time, it is also possible to search from the viewpoint of whether there is a translation address of each entry in the NAT table 225 that matches the source address of the packet. If there is no matching entry (No in step S800), the destination address of the packet is rewritten to the default address (in this case, the fixed address of the device patcher) (step S802). If there is a matching entry in the NAT table 225 (Yes in step S800), the destination address of the packet is rewritten to the translated address of the corresponding entry (step S802).
  • step S803 it is determined whether the end flag (FIN or RESET) is included in the packet (step S803). If not included (No in step S803), the rewritten packet is sent to the network 230 (step S807).
  • step S803 If the end flag is included (Yes in step S803), the FIN attribute (upstream) of the entry is changed from 0 to 1 (step S804).
  • step S805 the value of the FIN attribute (downstream) of the entry is checked (step S805). If the value of the FIN attribute (downlink) is 0 (No in step S805), the packet is transmitted to the local network 230 (step S807). If it is the FIN attribute (downstream) force (Yes in step S805), after deleting the entry (step S806), the packet is transmitted to the local network 230 (step S807).
  • FIG. 23 is a flowchart showing an operation of performing address conversion when a packet is sent from the server 250-1 to n or the dispatcher 740 to the client via the switching device 710.
  • the switching device 710 that has received a packet from the server 250—l to n or the dispatcher 740 first sets the destination of the packet to the client address and client port number of each entry in the NAT table 225.
  • a search is made for a match with the address and destination port number (step S810). At this time, whether the translation address of each entry in the NAT table 225 matches the source address of the packet.
  • step S810 If there is no matching entry in the NAT table 225 (No in step S810), whether or not the source address of the packet is the default address is compared (step S811). If the default address fails, an error occurs and processing such as discarding the packet is performed. If it is the default address (Yes in step S811), or if there is a match with an entry in NAT table 225 (Yes in step S810), the source address of the packet is rewritten to the system address (step S832). ).
  • step S813 it is determined whether the end flag (FIN or RESET) is included in the packet (step S813). If not included (No in step S813), the rewritten packet is sent to the client (step S817).
  • step S813 If the end flag is included (Yes in step S813), the FIN attribute (downstream) of the entry is changed from 0 to 1 (step S814). Next, the value of the FIN attribute (upstream) of the entry is checked (step S815). If the value of the FIN attribute (upstream) is 0 (No in step S815), the packet is transmitted to the client (step S817). FIN attribute (up) is 1 If (Yes in step S815), after deleting the entry (step S816), the packet is transmitted to the client (step S817).
  • FIG. 24 is a flowchart showing the flow from when a request is issued by the client until the session is disconnected after the processing between the client and the server or dispatcher is completed.
  • steps S880 to S883 which are different from the flow chart (FIG. 8) in the first embodiment in FIG. 24 will be described.
  • the switching device 710 When the client sends a new connection request packet to the system address (step S880), the switching device 710 that has received this packet has the ability to search the NAT table 225 for a matching entry as described above. Since there is no matching entry (No in step S800), the destination address of the packet is rewritten to the default address (here, the fixed address of the dispatcher) (step S881) and sent to the network 230.
  • the dispatcher 740 Upon receiving the new connection request packet, the dispatcher 740 establishes a session with the client.
  • the dispatcher 740 transmits a request confirmation packet (corresponding to (B) SYN-ACK in FIG. 25 described later) to the client.
  • the switching device 710 that has received the request confirmation packet searches for the NAT table 225.
  • the NAT table 225 does not yet have an entry for the session (No in step S810). Since the source address is the default address (fixed address of the dispatcher) (Yes in step S811), the source address is rewritten to the system address (step S812) and the end flag processing (steps S813 to S816) is performed. Then, send it to the client (step S817).
  • the confirmation packet (the ACK packet transmitted from the client to the dispatcher between the forces (B) and (C) not shown in FIG. 25) is transmitted from the client. This packet is sent to the switching device 710. There is no entry even when it arrives, so it is forwarded to the default address.
  • this session is established (step S888).
  • session information including a client address and a fixed address of the dispatcher 740 is created in the session information storage unit 245. Then session The information rewriting unit 746 selects one address from the unused addresses, and rewrites the fixed address of the dispatcher 740 in the established session information with the selected unused address (step S883).
  • session information rewriting section 746 transmits an instruction to create an entry in NAT table 225 that associates the client address of the established session with the selected additional address to table entry setting section 727 of switching device 710. (Step S884).
  • step S885 the client sends a request packet (step S885), but switching device 710 that received this packet has a NAT table entry for the client address and additional address (translation address) of the session. Therefore, the packet from the client is sent with the destination address rewritten using this translated address.
  • the subsequent operation (after step S886) is the same as in the first embodiment (after S484 in the flowchart of FIG. 8).
  • FIG. 25 is a sequence diagram showing a specific operation example of the fifth embodiment configured as described above.
  • FIG. 25 differs from the packet flow in the first embodiment (FIG. 9) in that the following two addresses are both fixed dispatcher addresses.
  • the first is the destination address to the switching device 710 force dispatcher 740 in the SYN packet (2501) in FIG.
  • the second is the source address from the dispatcher 740 to the switching device 710 in the SYN-A CK packet (2502) in FIG.
  • the process after (C) in FIG. 25 is the same as the packet flow in the first embodiment (from (C) in FIG. 9).
  • the configuration of the switching system in the sixth embodiment is the same as that in FIG. 21 except that the session information rewriting unit 746 of the dispatcher 740 is deleted.
  • the address translation unit 220 of the switching device 710 deletes the entry in the NAT table 225.
  • the dispatcher 740 or the servers 250-l to n gives an instruction to delete the entry to the switching device 710 at the end of the session.
  • the structure of the NAT table 225 in the sixth embodiment is the same as FIG.
  • the structure of the NAT table 225 in the sixth embodiment is that the FIN attributes (upstream) and (downstream) are deleted. Yes. This is because the end flag is not detected in the address conversion unit 220 in the sixth embodiment.
  • FIG. 26 is a flowchart showing an address conversion operation performed when the switching apparatus 710 sends a packet received from the client to the network 230.
  • switching device 710 that received the packet from client-side communication unit 211 determines whether the packet is a new connection request packet (Yes in step S820) and can be used as an additional address. Of the valid addresses, one unusable address that is used in the entry of the NAT table 225 (that is, an additional address that is not in communication) is selected (step S821). At this time, any selection algorithm that has conventional power can be used. Then, a new entry is created in the NAT table 225 using the address as the translated address (step S822). At this time, the client address and port number are also written as the field value of the entry. Next, the destination address of the packet is rewritten to the selected unused address (hereinafter, translated address) (step S823), and the rewritten packet is transmitted from the server side communication unit 212 to the network 230 (step S824).
  • translated address selected unused address
  • step S820 it is determined whether or not the packet requires a new connection.
  • step S820 it is determined whether or not the client address and client port number of each entry in NAT table 225 match the source address and source port number of the packet. Is searched (step S825). If there is no entry in the NAT table 225 (No in step S825), it is determined as an error and processing such as discarding the packet is performed. If it exists in the entry of the NAT table 225 (Yes in step S825), the destination address of the packet is rewritten to the translated address (step S826). Then, the packet is transmitted to the local network 230 (step S824).
  • FIG. 27 is a flowchart showing an operation of performing address conversion when a packet is sent from the server 250-l to n or the dispatcher 740 to the client via the switching device 710.
  • the switching device 710 that has received a packet from the server 250—l to n or the dispatcher 740 has the destination address of the packet and the client port number of each entry in the NAT table 225. Search for a match with the destination port number (step S830). At this time, it is also possible to perform a search from the viewpoint of whether the translated address of each entry in the NAT table 225 matches the source address of the packet.
  • step S830 If there is no matching entry in the NAT table 225 (No in step S830), an error occurs and processing such as discarding the packet is performed. If there is a match with an entry in the NAT table 225 (Yes in step S830), the source address of the packet is rewritten with the system address (step S832) and sent to the client (step S833) ).
  • the flow of the processing operation in the sixth embodiment is the same as that in the first embodiment (Fig. 8). However, in the first embodiment, two FIN attributes are set in step S490.
  • the address transfer unit 220 deletes the entry corresponding to the session in the NAT table 225 when it becomes 1.
  • the session transfer unit 253 of the server 25 0-1 to n When the session transfer unit 243 of 1 to n or dispatcher 740 disconnects a session, it instructs to delete the entry that holds the correspondence between the client address used in the session and the additional address (translation address). Switching The processing is different in that it is output to the table entry setting unit 727 of the device 710.
  • the configuration of the switching system in the seventh embodiment is the same as that in FIG.
  • the switching device has the ability to create and delete a NAT table entry by detecting a new connection request flag and an end flag. This embodiment does not detect any of these flags, and creates and deletes NAT table entries according to instructions from the dispatcher or Sano. That is, the seventh embodiment is equivalent to a combination of the fifth embodiment and the sixth embodiment.
  • FIG. 28 is a flowchart showing an address conversion operation performed when the switching device 710 sends a packet received from a client to the network 230.
  • switching device 710 that received the packet from the client searches NAT table 225 by the client address (step S860), and if there is no corresponding entry (No in step S860), it is the default.
  • the destination address of the packet is rewritten to the address (the dispatcher address in this case) (step S861), and the packet is sent to the network 230 (step S863). If there is an entry including the client address in the NAT table 225 (Yes in step S860), the destination address of the packet is rewritten using the translated address of the corresponding entry (step S862) and sent to the network 230 (step S863).
  • FIG. 122 is a flowchart showing an operation of performing address conversion when a packet is sent from the server 250 -l to n or the dispatcher 740 to the client via the switching device 710.
  • the switching device 710 that receives a packet from the server 250—l to n or the dispatcher 740 first sets the destination of the packet to the client address and client port number of each entry in the NAT table 225.
  • a search is made for a match with the address and destination port number (step S870). At this time, whether the translation address of each entry in the NAT table 225 matches the source address of the packet. It is also possible to search from the viewpoint of V.
  • step S 871 If there is no matching entry in the NAT table 225 (No in step S870), whether or not the source address of the packet is the default address is compared (step S 871). If the default address fails, an error occurs and processing such as discarding the packet is performed. If it is the default address (Yes in step S871), or if there is a match with an entry in NAT table 225 (Yes in step S870), the source address of the packet is rewritten to the system address (step S872), and transmits to the client (step S873).
  • the flow of processing in the seventh embodiment is the same as that in the fifth embodiment (Fig. 24). However, in the fifth embodiment, two FIN attributes are set to 1 in step S892.
  • the server 250-l to n or the session transfer unit 243 of the dispatcher 740 disconnects the session because the address conversion unit 220 deleted the entry when the event occurred.
  • the processing differs in that an instruction to delete the entry holding the correspondence between the client address used in the session and the additional address (translation address) is issued to the table entry setting unit 727 of the switching device 710. .
  • Both the client and the server are good as general communication devices.
  • both the server and the client are IP phones, and from the client IP phone ("client" in the above embodiment) to a plurality of operators in the call center.
  • client IP phone
  • the above embodiment can also be applied to a system in which inquiries from clients are distributed to other IP telephones (the “server” in the above embodiment).
  • the dispatcher is an independent device from the switching device or the server, the dispatcher can be an integrated device with the switching device or an integrated device with the server.
  • the present invention can be used for efficient communication by switching a connection partner device of a communication device using a method of transferring a session in packet communication between communication devices.
  • a connection partner device of a communication device using a method of transferring a session in packet communication between communication devices.

Abstract

セッション毎に一意の追加アドレスを使用し、サーバ等の通信機器を切替える際には、セッション情報を書き換えることなく、セッション情報をそのまま転送するようにした切替えシステム、切替え方法、および切替えプログラムである。本発明の切替えシステムは、第一の通信機器からのセッション毎にアドレスを選択し、第一の通信機器からのパケットの宛先アドレスをそのアドレスに付け替えて送信する切替え装置(710)と、第一の通信機器とのセッションを確立し、第一の通信機器からのリクエストを処理するサーバを選択し、確立したセッションを第二の通信機器に転送するディスパッチャ(740)と、ディスパッチャが転送したセッションを引き継ぎ、第一の通信機器からのリクエストを処理するサーバ(250-1、…250-n)とで構成される。

Description

明 細 書
通信機器間における切替えシステム、切替え方法、および切替えプログラ ム 技術分野
[0001] 本発明は通信機器間における切替えシステム、切替え方法、および切替えプロダラ ムに関し、特に、簡便なアドレス変換テーブルの管理と少ないパケット書き換え処理 で、クライアントとサーバのような通信機器の間の論理的なセッションの切替えを行な う、切替えシステム、切替え方法および切替えプログラムに関する。
背景技術
[0002] 通常、ネットワークにつながれたサーバやクライアント等の通信機器はネットワーク アドレス(以下、アドレス)を持つ。通信機器は、通信相手の機器のアドレスに対して セッションを確立し、そのセッションを通じてパケットを送受信することで通信を行なう
[0003] 通信機器の持つアドレスとは、必ずしも 1つの特定レイヤのアドレスだけである必要 はない。例えば、下位レイヤのアドレスに対し、その直上のレイヤでのアドレスをマツ ビングすることも出来る。例えば、 1つのデータリンク層の MACアドレスに対してネット ワーク層の IPアドレスをマッピングすることが出来る。
また、 1つの IPアドレスに対してトランスポート層の複数のポート番号をマッピングする ことなども出来る。通信機器は、その割り当てられたいずれかのレイヤでのアドレス、 またはそのマッピングを用いてパケットを送受信することが可能である。
[0004] 例えば、同一ドメイン (サブネット)内の通信においては、通信機器は、接続しようと して 、る相手通信機器が持つ IPアドレスの ARPリクエストを出す。当該 IPアドレスを 持つ通信機器はリクエストに対して MACアドレスを返す。
MACアドレスを受け取った通信機器は、返された MACアドレスに対してパケットを 送信する。このように 2つのレイヤのアドレスに対するマッピングを利用することで、通 信機器間でのパケットの送受信が実現できる。
[0005] なお、以下においては、説明の都合上、特に断らない限り、アドレスとは IPアドレス であるとする力 IPアドレスのみに制限されるものではない。また、通信機器間では、 TCP (Transmission
Control Protocol)の通信プロトコルを用いて通信がされているものとして説明するが 、通信機器間でのプロトコルを限定して 、る訳ではな 、。
[0006] 次いで、 TCPにおける通信機器間におけるセッション確立動作の概要について説 明する。
[0007] 通信機器は通信の相手となる通信機器に対して新規接続要求を送って双方向の 通信セッションを確立する。その後、そのセッションを通じて通信機器間でデータの 送受信が行われる。 TCPにおいての新規接続要求は、 SYNパケットの送出により始 まる。そして、いわゆる 3Wayノヽンドシェイクといわれる動作を通じて、セッションが確 立される。このセッションの確立時にシーケンス番号の初期値がお互いに通知される 。通信機器は、この初期値にそれまでに送出したパケットのデータ量に応じた値を加 算したシーケンス番号をパケットに付して送信する。受信側では、受信したパケットの シーケンス番号を確認することで、パケットを損失無く受信したかを確認することがで きる。
[0008] 次に、従来の切替え装置について説明する。
[0009] 従来のこの種の切替え装置を備える通信システムが技術文献 1 (F5 Networks Japa n、 "BIG -IP Load Balancer 520" [online]、インターネットく URL
http: //www.lSnetworks. co.jp/ja/ producuts/load— index. Html > )に ti載されて 、る。
[0010] 図 18は、この技術文献 1に記載された切替え装置を備える通信システムの接続構 成を示すブロック図である。この通信システムは、ローカルネットワーク 120内で接続 された切替え装置 121と複数のサーバ 130— 1〜130— n、複数のクライアント 100 - 1〜: L00— m、ローカルネットワーク 120とクライアント 100— l〜100—mを接続す るパケット交換網のネットワーク 110で構成される。
[0011] この従来の切替え装置 121によるサーバの切替え動作の説明を、図 18の接続構 成図と、さらに従来の切替え装置によるサーバ切替えの動作を示すシーケンス図で ある図 19を参照しながら行なう。クライアント(以下ではクライアント 100— 1を用いて 説明、図 19で ίま 70. 70. 70. 70のアドレス) ίま、複数のサーノ 130— 1〜130— ηを 代表する宛先であるシステムアドレス(図 19では 80. 80. 80. 80)を有する切替え装 置 121と、セッションの確立を行なう(図 19の 1901)。
[0012] ローカルネットワーク 120にある切替え装置 121は、サーノ 130— 1〜130— nにリ タエストを振り分けることで、サーバ負荷の分散を行なう。切替え装置 121は、クライア ント 100— 1からセッション確立の要求を受けると、クライアント 100— 1と切替え装置 1 21の間で 3Wayノヽンドシェイクの手順により、セッション確立を行なう(図 19の 1901、 1902、および 1902と 1903の間でクライアント 100— 1から切替え装置 121に送られ る図示しない ACKパケット)。そして、サーバへのリクエストがクライアント 100— 1から 切替え装置 121に送られる(図 19の 1903)。
[0013] 切替え装置 121は、複数のサーバの中から何らかの選択基準によりサーバを選択 し、クライアント 100— 1からのリクエストを振り分ける。この際の選択基準としては、パ ケットのヘッダ部に記載された送信元アドレス等の通信制御に用いられる情報を基準 にサーバを選択する方法でも良いし、パケットのペイロード部に含まれるアプリケーシ ヨンレベルの情報等を基準としたものでも良 ヽ。アプリケーションレベルの情報等も用 いると、セッション単位で、より柔軟に分散することも可能であるが、その分切替え装 置 121における処理負荷も大きくなる。また、リクエストの到着順に、異なるサーバに 振り分けて行くラウンドロビンでサーバを選択しても良い。
[0014] 切替え装置 121は、クライアント 100— 1からのリクエストの振り分け先のサーバとし て、サーバ 130— 1を選択したとする。
[0015] 切替え装置 121は、サーバ 130— 1に対して切替え装置 121からのセッションを 3 Wayノヽンドシェイクにより確立する(図 19の 1904、 1905、および 1905と 1906の間 で切替え装置 121からサーバ 130— 1に送られる図示しな!ヽ ACKパケット)。そして、 サーバへのリクエストが切替え装置 121からサーバ 130— 1に送られる(図 19の 190 6)。
[0016] パケットのヘッダ部は、宛先アドレス、宛先ポート番号、送信元アドレス、送信元ポ ート番号、通信プロトコル種別、シーケンス番号、パケットのバイト数 (サイズ)のような ヘッダ情報を有する。なお、図 19においては、ポート番号や通信プロトコル種別は動 作の説明において不要なため、記載を省略している。また、受け取ったパケットのシ 一ケンス番号を通知する ACKパケットも送受されて 、るが、図が煩雑になることから 記載からは省略している。
[0017] 図 19において、切替え装置 121が、クライアント 100— 1から到着するパケットを 19 04以降で送信する際、パケットのヘッダ部にある宛先アドレス(図面および以下にお いては Dstと略記することあり。)、送信元アドレス(図面および以下においては Srcと 略記することあり。)、およびシーケンス番号を書き換えて、パケットをサーバ 130—1 に送信する。
[0018] 図 19を用いて具体的に説明すると、切替え装置 121はパケットのヘッダ部の Srcを 70. 70. 70. 70 (クライアン卜 100— 1のアドレス)力も 192. 168. 1. 99 (ローカルネ ットワーク 120内で切替え装置 121に割り当てられているアドレス)に書き換える。さら 【こ、 Dstを 80. 80. 80. 80 (サーノ 130— 1〜130— nを代表するシステムアドレス) 力ら 192. 168. 1. 100 (選択したサーノ 130— 1のアドレス)に書き換える。
[0019] 以下に、切替え装置 121におけるシーケンス番号の書き換え動作に関して説明す る。
[0020] シーケンス番号とは、セッション毎に、各パケットの送信方向別に決まるものである。
セッションを確立する際の SYNパケット(図 19での 1901)のシーケンス番号(図 19で は 10000)、またはそれに対する SYN— ACKのパケット(図 19での 1902)のシーケ ンス番号(図 19では 30000)を各方向の初期値として決定し、以降、送信済みのパ ケットのサイズを加算した値が各方向のパケットにシーケンス番号として付加される。 なお、 SYNを含むパケット、セッションの終了を示す FINパケットは、サイズ力 Oでも、 シーケンス番号は 1つ加算されることが TCP/IPにお!/、て規定されて!、る。
[0021] 同様に、切替え装置 121とサーバ 130— 1の間のセッションに関しても、切替え装 置 121からサーバ 130—1への送信方向でのシーケンス番号の初期値が図 19の 19 04のシーケンス番号 50000として、また、サーバ 130— 1から切替え装置 121への 送信方向でのシーケンス番号の初期値が図 19の 1905のシーケンス番号 80000とし て決定される。
[0022] 切替え装置 121は、切替え装置 121からサーバ 130— 1への送信方向の初期値と クライアント 100—1から切替え装置 121への送信方向のシーケンス番号の初期値と の差分を記憶しておく。図 19の例では、 50000力も 10000の値の差分である 4000 0を記憶しておく。そして、クライアント 100— 1から到着する 1903以降のパケットを中 継してサーバ 130— 1に送信する際は、クライアント 100— 1からのパケットに付加さ れたシーケンス番号を、そのシーケンス番号に差分を加算した値に書き換える。
[0023] 同様に、切替え装置 121は、切替え装置 121からクライアント 100— 1への送信方 向のシーケンス番号の初期値とサーバ 130— 1から切替え装置 121への送信方向の 初期値の差分を記憶しておく。図 19の例では、 30000力ら 80000の値の差分であ る— 50000を記憶しておく。そして、サーバ 130— 1から到着する 1907以降のバケツ トを中継してクライアント 100— 1に送信する際は、クライアント 100— 1からのパケット に付加されたシーケンス番号を、そのシーケンス番号に差分を加算した値に書き換 える。
[0024] 選択したサーバ 130— 1からの応答パケット(図 19の 1907、 1909)を受け取った切 替え装置 121は、そのパケットを、 Src、 Dst、シーケンス番号のヘッダ情報を書き換 えな力 Sらクライアン卜 100— 1に送信する(図 19の 1908、 1910)。サーノ 130— 1 ίま、 全ての応答パケットを送信し終わった後にセッションを切断するためのパケットに終了 フラグ (FIN)をつけて送信する(図 19の 191 1)。それに応じて、切替え装置 121から もサーバ 130— 1に対して FINのパケットを送信する(図 19の 1912)。
[0025] 更に切替え装置 121はクライアント 100— 1にも FINのパケットを送信する(図 19の 1913)。 FINのパケットを受けたクライアント 100— 1からも、 FINのパケットが送信さ れる(図 19の 1914)。このようにして、クライアント 100— 1と切替え装置 121の間のセ ッシヨン、切替え装置 121とサーバ 130— 1の間のセッションは切断される。
[0026] 上述のように、従来の切替え装置にお!、ては、クライアントと切替え装置の間と、切 替え装置とサーバの間の、それぞれが独立して確立された別々のセッションを、へッ ダ情報を書き換えてパケットを中継することにより、論理的に 1つのセッションのように 見せ、クライアントとサーバを通信させることを実現している。このようなヘッダ情報の 書き換えによる論理的なセッションの確立手法については、例えば、技術文献 2 (Dav id
Maltz et al. , i CP Splicing for Application Layer Proxy Performance IBM Research Report, RC21139)に示されている。
[0027] 上記のヘッダ情報の書き換えを行なうには、ネットワークアドレス変換 (Network Add ress Translator以下、単に NATと称す。)と呼ばれる図 20に示されるような情報をテ 一ブルとして管理する必要がある。具体的には、サーバ 130— 1〜130— nを代表す るシステムアドレス、および切替え装置に割り当てられたローカルネットワークのァドレ スが 1つずつしか存在しないとした場合で、少なくとも、図 20のテーブルにおける 200 1の行に示されるように、クライアントのアドレス(クライアントアドレス)、クライアントのポ ート番号 (クライアントポート番号)、切替え装置とサーバとの間における切替え装置 側のポート番号 (切替え装置ポート番号)、振り分け先のサーバのアドレス、クライアン トのパケットをサーバに中継するときに加算するシーケンス番号値の差分 (サーバ方 向加算値)、サーバからのパケットをクライアントに中継するときに加算するシーケンス 番号の差分 (クライアント方向加算値)、をフィールドとして持つ必要がある。例えば、 図 19で示した動作を行なう際には、図 20に示されるテーブルの 2002の行に記述さ れているような値が各フィールド値として記憶されることになる。クライアントアドレスと 、クライアントポート番号は、切替え装置がクライアントと切替え装置間のセッションを 識別するのに必要な情報であり、切替え装置ポート番号は、切替え装置が、切替え 装置とサーバの間のセッションを識別するのに必要な情報である。
[0028] 新たなリクエストがクライアントから発せられると、再度サーバを選択し、図 20のテー ブルにエントリを追加し、セッションを切断する際には図 20のテーブルでの該当する エントリを削除する動作が行われる。
[0029] 上記従来技術における第一の問題点は、アドレス変換のための NATテーブルの 管理が煩雑であることである。
[0030] 従来のサーバ切替えにおいては、サーバに固定的にアドレスが割り当てられている ために、サーバを切り替えるときには、アドレスを付け替えてパケットを送出する必要 があった。そのため、サーバを切り替える毎に NATテーブルのエントリのアドレスを更 新する必要があった。また、パケットの送出順を管理するシーケンス番号の書き換え を行なうために、書き換えを行なう際に用いる情報を NATテーブルに記憶して管理 する必要があった。 [0031] 第二の問題点は、パケットのヘッダの書き換え処理負荷が高いということである。従 来の切替え装置では、パケットの送信元アドレス、送信先アドレス、シーケンス番号と 多数の値を書き換えてパケットの送出が行われているからである。
[0032] 従って、本発明の課題は、サーバ等の通信機器の切替えを行なうために必要とさ れる NATテーブルの管理を簡略ィ匕することである。
[0033] また、本発明のもう 1つの課題は、パケットの書き換え処理を軽減することであり、より 効率の良いサーバ切替えを実現することにある。
発明の開示
[0034] 上記課題を解決するために、本発明の第 1の態様によれば、クライアントからのセッシ ヨン毎にアドレスを選択し、クライアントからのパケットの宛先アドレスをそのアドレスに 付け替えて送信する切替え装置と、クライアントとのセッションを確立し、そのクライァ ントからのリクエストを処理するサーバを選択し、確立したセッションをそのサーバに 転送するディスパッチャと、ディスパッチャが転送したセッションを引き継ぎ、クライア ントからのリクエストを処理するサーバとで構成される切替えシステムが提供される。
[0035] 本発明は、上記第 1の態様に記載した切替えシステムのほかに、後述する請求の 範囲に記載されているように、切替え装置、ディスパッチャ、サーバ、切替え方法、切 替えプログラムに関する多くの態様を有する。
[0036] これらの各態様によって達成される本発明の第一の効果は、サーバを切り替える際 に、切替え装置が持つ NAT^—ブルを更新する必要がないことである。サーバに固 定された固定アドレスに向けてパケットを送出するのではなぐセッション毎に選択さ れたアドレスに向けてパケットは送出される。セッションはアドレスとともに切り替えられ るので、クライアントからの接続先サーバを切り替えてもパケットの送出先となるアドレ スが変わらな!/、。これにより第一の効果が実現されて 、る。
[0037] 本発明の第二の効果は、切替え装置でシーケンス番号を含めたセッション情報を 書き換える必要がなぐパケットの書き換え負荷を軽減できることである。セッションの 確立は、クライアントとディスパッチャの間で実現されるので、切替え装置では、セッシ ヨンの状態を管理する必要がなくなるからである。
[0038] 前記ならびに他の多くの本発明の課題、態様、そして利点は、本発明の原理に合 致する好適な具体例が実施の形態として示されている以下の詳細な記述および添 付の図面に関連して説明されることにより、当該技術の熟達者であれば明らかに理 解されるであろう。
図面の簡単な説明
[図 1]第一の実施の形態におけるサーバ切替えシステムの構成を示すブロック図であ る。
[図 2]第一の実施の形態におけるアドレス管理方法を示すブロック図である。
[図 3]第一の実施の形態におけるアドレス変換テーブル (NATテーブル)を示す図で ある。
[図 4]第一の実施の形態における切替え装置が、クライアントから受信したパケットを ネットワークに送出する際に行なうアドレス変換の動作を示したフローチャートである
[図 5]第一の実施の形態における切替え装置が、サーノ《もしくはディスパッチャから 受信したパケットをクライアントに送る際のアドレス変換を行なう動作を示したフローチ ヤートである。
[図 6]第一の実施の形態におけるディスパッチャがセッションをサーバに転送する動 作を示したフローチャートである。
[図 7]第一の実施の形態におけるサーバ力 セッションをディスパッチャ力 受け取る 際の動作を示したフローチャートである。
[図 8]第一の実施の形態におけるクライアントが、新規接続要求のリクエストを発して 力 セッションを切断するまでの流れを示すフローチャートである。
[図 9]第一の実施の形態に関する具体例におけるパケットの流れを示すシーケンス図 である。
[図 10]第一の実施の形態に関する具体例における NATテーブル 225の状態の推移 を表す推移図である。
[図 11]第二の実施の形態における NATテーブルを示す図である。
[図 12]第二の実施の形態におけるアドレス変換部がクライアントから受信したパケット を処理する流れを表したフローチャートである。 圆 13]第二の実施の形態における切替え装置が、ディスパッチャもしくはサーバから クライアントに対して送信されたパケットを書き換える動作を示すフローチャートである
[図 14]第二の実施の形態におけるサーバ切替えの動作を示すフローチャートである 圆 15]第三の実施の形態におけるクライアントが、複数リクエストを送信し、返答を受 け取る動作の流れを示すフローチャートである。
[図 16]第四の実施の形態におけるサーバ切替えシステムの構成を示すブロック図で ある。
圆 17]第四の実施の形態におけるクライアントが複数リクエストを送信した場合にそれ に対しての返答がサーバからされるまでの流れを示すフローチャートである。
[図 18]従来の切替え装置を備える通信システムの接続構成を示すブロック図である。
[図 19]従来の切替え装置によるサーバ切替えの動作を示すシーケンス図である。
[図 20]従来の NATテーブルを示す図である。
[図 21]第五の実施の形態におけるサーバ切替えシステムの構成を示すブロック図で ある。
圆 22]第五の実施の形態におけるクライアントから受信したパケットのアドレス変換動 作を示すフローチャートである。
圆 23]第五の実施の形態におけるクライアントにパケットを送信する際のアドレス変換 動作を示すフローチャートである。
[図 24]第五の実施の形態におけるクライアントがリクエストを発して力もセッションが切 断されるまでを示すフローチャートである。
圆 25]第五の実施の形態における具体的な動作例のシーケンス図である。
圆 26]第六の実施の形態におけるクライアントから受信したパケットのアドレス変換動 作を示すフローチャートである。
圆 27]第六の実施の形態におけるクライアントにパケットを送信する際のアドレス変換 動作を示すフローチャートである。
圆 28]第七の実施の形態におけるクライアントから受信したパケットのアドレス変換動 作を示すフローチャートである。
[図 29]第七の実施の形態におけるクライアントにパケットを送信する際のアドレス変換 動作を示すフローチャートである。
発明を実施するための最良の形態
[0040] 以下、本発明の好ましい幾つかの実施の形態を添付の図面を参照して詳細に説 明する。
[0041] (第一の実施の形態)
次に、本発明による第一の実施の形態を、図 1から図 10までを参照して詳細に説 明する。
[0042] 図 1は、本発明による第一の実施の形態における切替えシステムの構成を示すプロ ック図である。
図 1を参照すると、本発明による第一の実施の形態に係わる切替えシステム 200は、 切替え装置 210と、クライアントとの間で最初にセッションを確立しその確立したセッ シヨンをサーバに転送するディスパッチャ 240と、 1台以上のサーバ 250—1〜250— nと、切替え装置 210、ディスパッチャ 240およびサーバ 250— l〜250—nを相互に 接続するネットワーク 230によって構成される。また、図 1にはディスパッチャ 240が 1 台しか記載していないが、複数のディスパッチャが存在してもよい。またディスパッチ ャ 240は、切替え装置 210の外にあるとしている力 切替え装置 210と一体となって いても良い。なお、ネットワーク 260の先には、図示しないクライアントが存在する。
[0043] 本発明では、ローカルネットワーク 201内のアドレスを、固定アドレスと追加アドレス の 2種類に分けて扱う。固定アドレスは、切替え装置、ディスパッチャ及び各サーバに 1つずつ割り当てられ、各装置の通信部に設定される。追加アドレスはローカルネット ワーク環境が許す範囲の個数があり、クライアントからセッションの新規接続要求が来 る毎に、後述する未使用アドレスとして管理されるアドレスの中カゝら追加アドレスが選 択される力 この追加アドレスは、ディスパッチャか各サーバのいずれかに割り当てら れ、各装置の通信部に設定される。したがって、状況によっては、ディスパッチャもし くは各サーバは、 1つの固定アドレスと複数の追加アドレスを割り当てられてられる可 能性がある。 [0044] 切替え装置 210は少なくとも、クライアント側通信部 211とサーバ側通信部 212とァ ドレス変換部 220と NATテーブル 225とを含んで構成される。
[0045] クライアント側通信部 211はクライアントとの通信に使用されるためにネットワーク 26 0につながれる任意の通信手段である。クライアント側通信部 211には、ネットワーク 2 60で一意の固定アドレスが割り当てられている。この固定アドレスを以下では、システ ムアドレスと呼ぶことにする。
[0046] サーバ側通信部 212はネットワーク 230につながる任意の通信手段であり、デイス パッチャ 240及びサーバ 250— 1〜250— nとの通信にお!/、て使用される。サーバ側 通信部 212にはローカルネットワーク 201内で固定のアドレスが割り当てられている。 この固定アドレスは、ローカルネットワーク 201では一意のものである。
[0047] アドレス変換部 220は、システムアドレスとローカルネットワーク 201内のアドレスを 相互に変換する部分である。つまり、クライアントからディスパッチャ 240もしくはサー ノ 250— l〜250—nのいずれかに送信されたパケットのヘッダにある宛先アドレスを 書き換えることと、ディスパッチャ 240もしくはサーバ 250— l〜250—nのいずれかか らクライアント 100に送信されたパケットのヘッダに記述されている送信元アドレスを 書き換えることを行なう。なお、従来の切替え装置とは異なり、シーケンス番号の書き 換えを行なう必要はない。
[0048] NATテーブル 225はアドレス変換部 220にお!/、て行なわれる相互アドレス変換の ための、クライアントのアドレスとローカルネットワーク 201内のアドレスの対応、及び、 その状態をセッション毎に保持するテーブルである。少なくとも NATテーブル 225は 、図 3のテーブルの 301の行に示されるように、クライアントのアドレス(クライアントアド レス)、クライアントのポート番号 (クライアントポート番号)、ネットワーク 230にパケットを 送出する際に書き換えるアドレス (変換アドレス)をフィールドとして持つ必要がある。
[0049] また、セッション毎の状態として、クライアントからサーバに向力 方向のセッションの 維持、または終了を示すフィールドである FIN属性 (上り)と、サーノ からクライアント に向かう方向のセッションの維持、または終了を示すフィールドである FIN属性(下り )を持っている。 FIN属性 (上り)及び FIN属性(下り)はセッションの終了を示す属性 である。双方向通信においては、片方向ずつセッションの終了を宣言することも可能 なため、 FIN属性は上り側と下り側の 2つの属性を持つことで、クライアントとサーバと の間のセッションの状態を管理することができる。クライアント側力もセッション終了が 宣言されたら FIN属性(上り)を 1にし、ローカルネットワーク側力もセッション終了が宣 言されたら FIN属性(下り)を 1にする。いずれも初期値は 0である。また、両者が 1に なったとき、当該エントリはアドレス変換部 220により消去される。
[0050] 従来の切替え装置とは異なり、切替え装置とサーバとの間の切替え装置側のポート 番号 (切替え装置ポート番号)、クライアントのパケットをサーバに中継するときに加算 するシーケンス番号値の差分 (サーバ方向加算値)、サーノくからのパケットをクライア ントに中継するときに加算するシーケンス番号の差分 (クライアント方向加算値)は不 要である。
[0051] 次に、第一の実施の形態におけるアドレス変換の動作について説明する。
[0052] 図 4は、切替え装置 210がクライアントから受信したパケットをネットワーク 230に送 出する際に行なうアドレス変換の動作を示したフローチャートである。以下、図 4を参 照しながら、アドレス変換部 220の動作を説明する。なお、第一の実施の形態の切替 え装置 210は、どのサーバにリクエストを振り分けるかについては意識しておらず、こ れ力 説明するように、アドレスを書き換えてパケットをネットワークに送出するだけで あるため、従来の切替え装置においての説明のように、「サーバに送出する」とする表 現ではなぐ「パケットをネットワークに送出する」 t 、う表現を用いて 、る。
[0053] まず、クライアントが最初にセッションを確立するための新規接続要求のパケット (従 来例の図 19における 1901 (SYNのパケット)に相当)力 システムアドレスを宛先とし て送信された場合のアドレス変換部 220の動作を説明する。クライアント側通信部 21 1からパケットを受け取った切替え装置 210は、当該パケットが新規接続要求のパケ ットかどうかを判断し、新規接続要求パケットなら (ステップ S400で Yes)、追加ァドレ スとして使用可能なアドレスのうち、 NATテーブルのエントリの中で使用されていない 未使用アドレス(つまり、通信中でない追加アドレス)を 1つ選択する (ステップ S401)
[0054] このときの選択アルゴリズムは従来力もある任意のものが使える。例えば、図 2に示 されるように、未使用アドレスをリスト形式で管理する方法がある。クライアントからのリ タエストに対して割り当てることが可能なアドレスの範囲が 20001のテーブルに示さ れるようであるとする。そして、 NATテーブル 225のエントリにおいてサーバアドレスと して用いられているアドレスを、使用アドレスとして、 20002のようなリストとして管理し 、 20001に示される範囲のアドレスで、使用アドレスにないアドレスを、 20003のよう な未使用アドレスリストとして管理する。ステップ S401では、この未使用アドレスリスト 20003の中から 1つアドレスを選択し、未使用アドレスリストから抜き出し、使用アドレ スリスト 20002に追カロする。そして、そのアドレスを変換アドレスとして NATテーブル 225にエントリを新たに作成する(ステップ S402)。このとき、クライアントのアドレス、 ポート番号もエントリのフィールド値として書き込む。また、 FIN属性(上り)、 FIN属性 (下り)ともに 0に初期化する。
[0055] パケットの宛先アドレスを、選択した未使用アドレス (以下、変換アドレス)に書き換 えて (ステップ S403)、書き換えたパケットをサーバ側通信部 212からネットワーク 23 0に送信する(ステップ S404)。
[0056] 次に、セッションが確立された後に、クライアントから送信されたパケットを切替え装 置 210が受信し、宛先アドレスを変換アドレスに書き換えてネットワーク 230に送出す る際の動作を説明する。まずは、終了フラグが含まれていない通信について説明す る。
[0057] まず、パケットが新規接続要求力どうかを判断する (ステップ S400で No)。更に、パ ケットに終了フラグ (FIN)が含まれているかを判断する(ステップ S405で No)。次に 、 NATテーブル 225の各エントリのクライアントアドレスおよびクライアントポート番号 に、当該パケットの送信元アドレスおよび送信元ポート番号と一致するものがあるかど うかを検索する(ステップ S406)。 NATテーブルのエントリ中に無かった場合 (ステツ プ S406で No)、エラーと判断し、当該パケットを破棄するなどの処理を行なう。 NAT テーブルのエントリ中に存在した場合 (ステップ S406で Yes)、パケットの宛先アドレ スを変換アドレスに書き換える(ステップ S407)。そして、パケットをローカルネットヮ ーク内に送信する(ステップ S404)。
[0058] 更に図 4を参照しながら、次に、クライアントとディスパッチャ 240もしくはサーバ 250
1との間での、データ通信が終了してセッションを終了させる場合に切替え装置 21 0で行なわれるアドレス変換の流れを説明する。
[0059] まず、パケットが新規接続要求力どうかを判断する (ステップ S400で No)。更に、パ ケットに終了フラグが含まれているかを判断する(ステップ S405で Yes)。次に、 NAT テーブル 225の各エントリのクライアントアドレスおよびクライアントポート番号に、当 該パケットの送信元アドレスおよび送信元ポート番号と一致するものがあるかどうかを 検索する(ステップ S408)。 NATテーブル 225のエントリ中に無かった場合 (ステツ プ S408で No)、エラーとなり当該パケットを破棄するなどの処理を行なう。 NATテー ブルのエントリ中に存在した場合 (ステップ S408で Yes)、当該エントリの FIN属性( 上り)を 0から 1にする。
[0060] 次に、当該エントリの FIN属性(下り)の値を調べ (ステップ S410)、 1であれば (ステ ップ S410で Yes)、当該エントリを削除する(ステップ S411)が、このとき、当該ェント リの変換アドレスを図示しない記憶領域に一時的に記憶しておく。当該エントリを削 除した後 (ステップ S411)、もしくは、当該エントリの FIN属性(下り)の値が 0であれば (ステップ S410で No)、パケットの宛先アドレスを、当該エントリの変換アドレス (もしく は一時的に記憶した記憶領域に保持されているアドレス)に書き換える (ステップ S40 7)。そして、パケットをローカルネットワーク 201に送信する。
[0061] 図 5は、サーバもしくはディスパッチャ力も切替え装置 210を経由してクライアントに パケットを送る際のアドレス変換を行なう動作を示したフローチャートである。
[0062] 切替え装置 210はネットワーク 230からパケットを受け取ると、まず、 NATテーブル 225の各エントリのクライアントアドレスおよびクライアントポート番号に、当該パケット の宛先アドレスおよび宛先ポート番号と一致するものがあるかを探す (ステップ S430 )。このとき、 NATテーブル 225の各エントリの変換アドレスに、当該パケットの送信 元アドレスと一致するものがあるかという観点で検索することも可能である。
[0063] NATテーブル 225のエントリに存在しなかった場合 (ステップ S430で No)はエラ 一となり、当該パケットを破棄するなどの処理を行なう。 NATテーブル 225のエントリ に存在した場合 (ステップ S430で Yes)、当該パケットに終了フラグが含まれているか を調べる。終了フラグが含まれていな力つた場合は (ステップ S431で No)、当該パケ ットの送信元アドレスをシステムアドレスに書き換えて (ステップ S432)、パケットをネッ トワーク 260に送信する(ステップ S433)。
[0064] また、パケットが終了フラグを含む場合 (ステップ S431で Yes)は、当該エントリの FI N属性(下り)を 0から 1にする (ステップ S434)。次に当該エントリの FIN属性 (上り) の値を調べ、 1であった場合 (ステップ S435で Yes)、当該エントリを消去する (ステツ プ S436)。当該エントリを消去した後、もしくは当該エントリの FIN属性 (上り)の値が 0であった場合 (ステップ S435で No)、当該パケットの送信元アドレスをシステムアド レスに書き換えて (ステップ S432)、パケットをネットワーク 260に送信する(ステップ S 433)。
[0065] 次に、ディスパッチャの機能と動作を説明する。
[0066] ディスパッチャ 240は少なくとも通信部 241とセッション情報蓄積部 245とセッション 確立部 244と解析部 242とセッション転送部 243とを備え、プログラム制御により動作 する。ディスパッチャ 240は、クライアントとの間でセッションを確立し、その確立したセ ッシヨンを、解析部 242により選択したサーバに転送することで、サーバへのセッショ ン転送を実現する。
[0067] 通信部 241はローカルネットワークにつながれる任意の通信手段であり、前述した 切替え装置 210の通信部 211、 212と同様のものである。ただし、切替え装置 210及 びサーバ 250— 1〜250— nと通信プロトコルが同じであれば通信は成立するので、 物理的な媒体が同じである必要は必ずしもない。通信部 241には、ローカルネットヮ ーク内で一意の固定アドレスが割り当てられて!/、る。
[0068] セッション情報蓄積部 245はクライアントとディスパッチャ 240の間で確立したセッシ ヨンの情報 (セッション情報)を保持する記憶部である。セッションが確立されると、セッ シヨン毎に情報が作成され、セッションが切断された場合またはセッションが転送され た場合に削除される。
[0069] セッション確立部 244ではクライアントとのセッションを確立する。
[0070] 通信部 241には追加アドレスが設定できる。切替え装置が選んだ未使用のアドレス のうち、通信部 241が保持しているアドレス宛のパケットはディスパッチャ 240が受け 取る。したがって新規接続要求のパケットの場合、図 4のステップ S404で送出された パケットをディスパッチャ 240が受信し、セッション確立部 244がクライアントとの間の セッションの確立を行なうことになる。従来のサーバ切替えとは異なり、第一の実施の 形態では、切替え装置 210とクライアントの間でのセッション確立を行なう必要はない
[0071] なお、切替え装置 210で、未使用アドレスとして管理されている追加アドレスを、初 期状態においてディスパッチャに割り当てておくことが一般的である力 定期的に利 用されていない追加アドレスを、未使用アドレスとして、ディスパッチャ 240の通信部 2 41に設定するなどとすることもできる。
[0072] 解析部 242では、クライアントと確立したセッションを通じて受信したリクエストの内 容を解析する。この解析結果によって、適切なサーバを選択する。なお、解析の方法 及び適切なサーバを選択する方法は従来の任意の方法が使える。このリクエストの 例としては HTTP (HyperText Transfer Protocol)を用いたリクエストが挙げら れる。
[0073] セッション転送部 243は、解析部 242で選んだサーバにセッションを転送する。以 下では、サーバ 250— 1が選択されたとして説明する。セッション情報をセッション情 報蓄積部 245から取得し、ディスパッチャの通信部 241と当該サーバ 250— 1の通信 部 251— 1を経由してサーバ 250— 1のセッション転送部 253— 1にセッション情報を 転送する。
[0074] パケット通信においては、データ通信がパケット単位で行われ、セッションの開始及 び終了が明示的に通知される。したがって、明示的なセッション終了が通信相手に 通知されていない限り、パケットによる通信が行われていなくても、セッションは継続し ていると言える。
[0075] パケットの送信先において当該パケットが受理されな力 た場合、パケットを拒否す る指示が返されたりして当該セッションは無効になる力 受理されればセッションは «I 続出来る。例えば、パケットを受理するかどうかを判断する方法として、受信したパケ ットの送信元アドレスに該当するセッション情報がセッション情報蓄積部に登録されて いるかどうかを見るということがある。したがって、セッション情報蓄積部にセッション情 報が存在すればセッションを継続できることになる。
[0076] したがって、あるセッションのパケットを受信するサーバが変わったとしても、当該セ ッシヨンのセッション情報がセッション情報蓄積部に正しく引き継がれていれば、パケ ットを受理する判断基準に合致しているので、セッションを継続出来る。このようなセッ シヨンの転送については、例えば技術文献 3 (V. Pai
et al. , 'Locality Aware Request Distribution in Cluster-based Network servers , Architectural Support for Programming Languages and Operating Systems, 1998)【こ 記載されている。
[0077] 第一の実施の形態にぉ 、ては、当該セッションのセッション情報をディスパッチャか らサーバに正しく引き継ぐことによってセッションを継続したままディスパッチャとサー ノ とを切り替えることを行なう。このことを「セッションを (ディスパッチャ力もサーバに) 転送する」と表現することとする。
[0078] セッション情報にはパケット通信における送信元と送信先のアドレスが含まれている 。従来例では、セッションを確立する際、セッション情報の送信元アドレスとしてサー バの通信部に設定して 、る固定アドレスを用 、て 、るため、セッションの転送は無理 であった。セッションを転送させるためにはサーバの固定アドレスも転送させなければ ならなくなるからである。
[0079] 第一の実施の形態においては、転送されるセッションのセッション情報に含まれる アドレスは固定アドレスではなく追加アドレスであるため、セッションの転送が自由に 行える。
[0080] ディスパッチャ 240とクライアントとの間で確立されたセッションをサーバに転送する 際には、ディスパッチャ 240のセッション転送部 243がセッション情報蓄積部 245から 当該セッションに関するセッション情報を受け取り、サーバ 250— 1のセッション転送 部 253— 1に送信する。
[0081] サーバ 250— 1のセッション転送部 253— 1は受信したセッション情報をセッション 情報蓄積部 255— 1に設定する。更に、セッション情報に含まれている追加アドレス を通信部 251— 1に設定する。
[0082] ディスパッチャ 240のセッション転送部 243では、転送したセッションの追加アドレス を通信部 241から削除する。したがってセッションの転送完了後は、ディスパッチャ 2 40ではなく、サーバ 250— 1がそのセッションのパケットを送受するようになる。つまり 、セッションの転送先のサーバ 250— 1により、クライアントとの通信が引き継がれるの で、当該セッションは切断されずに維持される。
[0083] 図 6はセッションをディスパッチャがサーバに転送する動作を示したフローチャート である。この図 6を参照しながら、セッションの転送の動作をより詳細に説明する。
[0084] 解析部 242からの指示によってセッション転送部 243が、セッション情報蓄積部 24 5にある当該セッションのセッション情報を取得する(ステップ S460)。このとき、セッシ ヨン情報には、当該セッションの確立時に切替え装置で選択した追加アドレスが含ま れている。当該選択した追加アドレスを通信部 241から消去する(ステップ S461)。こ れにより、当該アドレスへのパケットをディスパッチャ 240は受け取らなくなる。そして、 通信部 241とネットワーク 230を介して、サーバ 250— 1のセッション転送部 253— 1 にセッション情報を転送し (ステップ S462)、セッション情報をセッション情報蓄積部 2 43力も消去する(ステップ S463)。
[0085] 上述したセッションの転送時に用いるセッション情報には、少なくとも、セッションの 転送までにクライアントから受信したパケットのシーケンス番号と、クライアントに送信 したパケットのシーケンス番号、追加アドレスとクライアントのアドレスが含まれて 、る。 他にも、使用して 、るプロトコルでセッションを維持するために必要となる情報を含む
[0086] 次に、図 1を参照して、サーバの構成を説明する。以下ではサーバ 250— 1の説明 をするが、他のサーバでも同様である。
[0087] サーバ 250—1は、通信部 251— 1、アプリケーションサーバ 252— 1、セッション情 報蓄積部 255— 1、セッション転送部 253— 1から構成される。
[0088] 通信部 251— 1はネットワーク 230につながれた任意の通信手段であり、前述した ディスパッチャ 240の通信部 241と同様のものである。ただし、切替え装置 210、ディ スパッチャ 240及び他の各サーバと通信プロトコルが同じであれば通信は成立する ので、物理的な媒体が同じである必要は必ずしもない。各サーバの通信部には、各 々異なる固定アドレスが割り当てられている。
[0089] アプリケーションサーバ 252— 1は、クライアントのリクエストを解釈し、要求されてい るリクエストに対して適切に返答を送信する。なお、リクエストによっては要求されたフ アイルの内容を転送するものもあるため、そのような場合、サーバには記憶装置が備 えられており、アプリケーションサーバ 252— 1が図示しない記憶装置力も適切なファ ィルを読み出して送信することもある。
[0090] セッション情報蓄積部 255— 1はディスパッチャ 240のセッション情報蓄積部 245と 同様に、確立したセッションの情報を保持する部分である。
[0091] セッション転送部 253— 1では、セッションをディスパッチャ 240からサーバに転送 する際にセッション情報を受け取り、後述するようにセッション情報と追加アドレスの設 定を行なう。
[0092] 図 7はセッションをディスパッチャ力 受け取る際のサーバの動作を示したフローチ ヤートである。図 7を参照しながら、セッションを受け取る際の動作を説明する。
[0093] サーバ 250— 1上のセッション転送部 253— 1はセッション情報を受け取り(ステップ S470)、このセッション情報をセッション情報蓄積部 255— 1に設定する (ステップ S4 71)。更に、セッション情報に書かれている追加アドレスを通信部 251— 1に設定する (ステップ S472)。
[0094] 次に、クライアントがリクエストを発してから、クライアントとサーバの間での処理が完 了して、セッションが切断されるまでの流れを、通して説明する。図 8はこの流れを示 すフローチャートである。
[0095] 図 8を参照すると、まず、クライアントはセッションを確立するためにシステムアドレス に対して新規接続要求を含んだパケットを送信する (ステップ S480)。パケットはネッ トワーク 260を経由して切替え装置 210が受信する。切替え装置 210は、前述のよう に追加アドレスの中力 未使用のアドレスを変換アドレスとして選び、当該パケットの 宛先アドレスを当該変換アドレスに書き換えてローカルネットワークに送信する (ステ ップ S481)。このとき、 NATテーブルに新規のエントリが作成される。当該アドレスは ディスパッチャ 240の通信部に追加アドレスとして予め割り当てられ、設定されている ため、ディスパッチャのセッション確立部 244が当該パケットを受信する。クライアント とディスパッチャの間でセッションが確立される(ステップ S482)。
[0096] 次に、クライアントがリクエストを含んだパケットをシステムアドレスに対して送信する
(ステップ S483)。切替え装置 210では、 NATテーブルのエントリにしたがって宛先 アドレスを変換アドレスに書き換えて送信し (ステップ S484)、ディスパッチャ 240上 の解析部 242がリクエストを受信する。解析部 242はリクエストの中身を解析して、適 切なサーバ(ここではサーバ 250— 1とする)を選択する (ステップ S485)。次に解析 部 242はセッション転送部 243に指示して、選択したサーバ 250— 1上のセッション 転送部 253— 1にセッション情報を転送する(ステップ S486)。つまり、ディスパッチャ 240からは追加アドレスとセッション情報が消去され、選択されたサーバ 250— 1では 転送されたセッション情報の設定と追加アドレスの設定が行なわれる。
[0097] このとき、セッションを転送することで、クライアントからのパケットを受け取るものが、 ディスパッチャ 240からサーバ 250— 1に切り替わるが、 NATテーブルのエントリを書 き換える必要はない。
[0098] さらに、セッションを転送してもセッション情報の中のシーケンス番号はそのまま引き 継がれるため、従来のように切替え装置 210でシーケンス番号を管理して、書き換え をする必要が無い。
[0099] 以降、選択されたサーバ 250— 1とクライアントの間で、上記のセッションによりパケ ットが送受される (ステップ S487)。クライアントからサーバへのパケットは、切替え装 置 210において、宛先アドレスが変換アドレスに書き換えられて、サーバ 250—1に 到達する。サーバ 250—1は、アプリケーションサーバ 252—1にリクエストの内容に 応じた返答を作成させて、クライアントに送信する。サーバ 250— 1からクライアントに 対して送信されたパケットは、切替え装置 210上で再び NATテーブル 225を参照し てパケットの送信元アドレスがシステムアドレスに書き換えられて、クライアントに到達 する。リクエストの内容をサーバに伝える方法は任意であるが、例えば、転送するセッ シヨン情報に含める方法が使える。
[0100] サーバ 250— 1は、必要な返答を全て送信し終わった後、セッションを終了するた めに終了フラグ (FIN)を含めたパケットを送信する。これによつて切替え装置の NAT テーブルの当該エントリでは FIN属性(下り)が 1になる。次に、クライアントからも終了 フラグを含めたパケットが送信される。これによつて切替え装置の NATテーブルの当 該エントリでは FIN属性(上り)が 1になり、エントリが消去される(ステップ S488)。な お、セッションを終了するための、終了フラグを含んだパケットの送信はクライアントか ら行われることちある。
[0101] セッション切断後、当該セッションで使用していた追加アドレスはサーバ 250— 1か らディスパッチャ 240に返される。つまり、サーバ 250—1は、通信部 250—1から当 該セッションで使用して 、た追加アドレスの設定を削除し、追加アドレスを通信部 24 1に再度設定するようにディスパッチャ 240に指示を出す。ディスパッチャ 240の通信 部 241にはこれを受けて、当該追加アドレスが設定される。
[0102] このように、サーバ切替えの際にはセッションをそのままの状態でディスパッチャか らサーバへ引き継ぐため、切替え装置ではパケットのアドレス部分のみを書き換え、 シーケンス番号の計算や書き換えを行なう必要がない。また、ディスパッチャからサー バへセッションを転送する際も、同一の追加アドレスを用いているため、 NATテープ ル上の書き換えも必要ない。したがって従来に比べて、書き換えの負荷や、テーブル として管理すべき情報量を削減することが可能である。
[0103] 上記のように構成される第一の実施の形態に関する具体的な動作例を図 9と図 10 、およびシステムの構成を示す図 1を参照しながら詳細に説明する。第一の実施例で は、通信プロトコルとしては、 TCP/IPが用いられているとする。
[0104] 図 9は、第一の実施の形態におけるパケットの流れを示すシーケンス図である。な お、この図では、 ACKパケットの記載については全て省略している。第一の実施の 形態では、この図 9に示されるように、切替え装置 210のシステムアドレスのアドレス は 90.90.90.90であり、固定アドレスは 192.168.2.1とする。ディスパッチャ 240の 固定アドレスは 192.168.2.2とする。また、クライアントのアドレスは 60.60.60.60と する。なお、第一の実施の形態においては、ポート番号を書き換えないので図 9のパ ケットのヘッダ情報としての表記は省略する。
[0105] 図 10は、切替え装置 210上の NATテーブル 225の状態を表したものである。クラ イアントから新規接続要求が到着する前の段階では、 NATテーブル 225は、図 10 ( A)の状態であるとする。まず、クライアントが SYNパケット(図 9の (A) )を出す。このと きの送信元アドレス(src)は 60.60.60.60であり、宛先アドレス(dst)は 90.90.90.90 である。また、シーケンス番号の初期値は 2000であるとする。クライアントが送出した SYNパケットを切替え装置 210が受信し、未使用の追加アドレス 192.168.2.103を 変換アドレスとして選ぶ。そして、宛先アドレスをこの変換アドレス 192.168.2.103に 書き換えてネットワーク 230に送信する。切替え装置 210は、クライアントアドレス、ク ライアントのポート番号、選択した追加アドレス (変換アドレス)を対応付けて NATテ 一ブル 225に新規のエントリを作成する。したがって NATテーブルは図 10 (B)の状 態になる。この追加アドレスは、ディスパッチャ 240が保持して(ディスパッチャ 240の 通信部 241に設定されて)いるので、ディスパッチャ 240力 この宛先アドレスの書き 換えがされた SYNパケットを受け付けてセッションを確立する。そして、ディスパッチ ャ 240はシーケンス番号の初期値を 6000と決定した上で、そのシーケンス番号を付 した SYN—ACKパケット(図 9 (B) )をクライアントに送信する。切替え装置 210では 、 NATテーブル 255の情報を確認してシステムアドレスに書き換え、ネットワーク 260 に送信する。具体的には、切替え装置 210は、 NATテーブル 225の中から 60.60.6 0.60のエントリを見付け、送信元アドレスを 90.90.90.90に書き換えてクライアントに 送信する。
[0106] 次に、クライアントはリクエストの入ったパケット(図 9の(C) )を送信する。このときの シーケンス番号は 2001で、リクエスト長は 100バイトとする。切替え装置 210では、こ のリクエストパケットの送信元アドレスと送信元ポート番号が、 NATテーブル 225のク ライアントアドレス、クライアントポート番号と一致するエントリを取り出し、このリクエスト のパケットの宛先アドレスを該当するエントリの変換アドレス(ここでは 192.168.2.10 3)に書き換え、ディスパッチャに転送する。ディスパッチャ 240の解析部 242は、リク エストを解析して適切なサーノ (アドレスは 192.168.2.3のサーバ 250— 1)を選択 する。セッション転送部 243は、セッションを選択されたサーバ 250— 1に転送する。
[0107] セッションの転送後、切替え装置 210は変換アドレス(192.168.2.103)に対して パケットを送信する時に、 ARPリクエストを送信する場合がある。このとき追加アドレス は既にサーバ 250—1に設定されているので、サーバ 250—1が MACアドレスを回 答する。そして、切替え装置 210は回答された MACアドレスに対してパケットを送信 する。
[0108] また、通信の効率ィ匕のために ARPリクエストに対する回答をキャッシュして利用する 装置の場合、装置外部力 指示を出してキャッシュを無効化もしくは内容を更新する ことも可能である。この場合、セッション転送後に ARPリクエストを出すことなく通信が 継続できるので、通信が効率的になる。
[0109] サーバ 250— 1上で動作するアプリケーションサーバ 252— 1はリクエストに対する 応答を作成し、クライアントに対して送信する(図 9の(D) )。最初の返答の長さは 100 0バイトであったとする。このパケットも図 9の(B)のパケット同様に送信元アドレスをシ ステムアドレスに書き換えられてクライアントに送信される。全ての応答を α回の送信 で送り終えたのち(図 9の(Ε) )、サーバは終了を意味する FINパケット(図 9の(F) )を 送信する。このパケットを受け取った切替え装置 210は、 FINフラグを検出し、バケツ トの宛先アドレスおよび宛先ポート番号がクライアントアドレスおよびクライアントポート 番号と一致するエントリの FIN属性(下り)を 1にする。したがって、 NATテーブルは 図 10 (C)の状態になる。そして、パケットの送信元アドレスを図 9の(B)と同様に 90.9 0.90.90に書き換えてクライアントに送信する。
[0110] その後、クライアントからも FINパケット(図 9の(G) )が送信される。このパケットを受 け取った切替え装置 210は、 FINフラグを検出し、パケットの送信元アドレスおよび送 信元ポート番号力 Sクライアントアドレスおよびクライアントポート番号と一致するエントリ の FIN属性(上り)を 1にする。したがって NATテーブルは図 10 (D)の状態になる。 そして、パケットの宛先アドレスを 192.168.2.103に書き換えてネットワーク 230に送 信した後、当該エントリを削除する。削除後の NATテーブルは、再び図 10 (A)の状 態に戻る。
[0111] なお、上記においては、クライアントのアドレスとポート番号の糸且合せにより、サーバ の切替えを行なうセッションを特定した力 クライアントのアドレスのみに基づいて、上 記切替えを行なうようにすることも可能である。また、アドレスやポート番号でなくても、 セッションの送信元を特定する識別子を用いる限り、ほぼ同様の切替えをおこなうこと が可能である。
[0112] (第一の実施の形態の変形例)
第一の実施の形態においては、ディスパッチャ及びサーバは、クライアントに送信 するパケットの送信元アドレスとして、セッション毎に選択された追加アドレスを使用し ていた。そして切替え装置 210において、それらのパケットの送信元アドレスをシステ ムアドレスに書き換えて 、た。
[0113] そこで、ディスパッチャ及び各サーバが送信する時点でパケットの送信元アドレスを システムアドレスにすることが考えられる。本変形例では、切替え装置 210でパケット の送信元アドレスを書き換える必要が無くなり、図 5のステップ S432を省略することが できる。
[0114] ただしこの場合、第一の実施の形態における図 5のステップ S430の説明で、 NAT テーブルにエントリがあるかどうかを検索する際に、各エントリの変換アドレスとバケツ トの送信元アドレスの一致を調べるやり方は使えない。これは、本変形ではパケットの 送信元アドレスが全てシステムアドレスになっているため、そのようなエントリが存在し ないためである。
[0115] (第二の実施の形態)
第一の実施の形態では、セッションの開始と終了を明示的に示すフラグがパケット の中に存在するプロトコル、具体例としては TCPを使用していた。第二の実施の形態 では、セッションの開始と終了を明示しないプロトコルを用いた場合について説明す る。このようなプロトコルの例としては UDPがある。
[0116] 第二の実施の形態における切替えシステムの構成は、図 1に示される第一の実施 の形態におけるものと同様である。第二の実施の形態においては、第一の実施の形 態と比較して NATテーブル 225のエントリの構造が異なる。また、それにともなって、 切替え装置におけるアドレス変換処理の流れも変わる。以下、その差異を説明する。
[0117] 図 11は、第二の実施の形態における NATテーブル 225のエントリの例である。図 1 1を参照すると、エントリはクライアントのアドレスおよびポート番号、そして変換アドレ スのみで構成される。なお、第一の実施の形態においても触れたように、クライアント のアドレスとポート番号の組合せでは必ずしもなくても良ぐアドレスだけでも良ぐ要 はセッションの送信元を特定する識別子を用いれば良い。以下では、クライアントの アドレスとポート番号の組合せを用いる場合を例にとり説明していく。
[0118] 図 12は、アドレス変換部 220においてクライアントから受信したパケットを処理する 流れを表したフローチャートである。図 12を参照すると、パケットを受信するとまず、 そのパケットの送信元アドレスと送信元ポート番号力 クライアントアドレス、クライアン トポート番号と一致する NATテーブル 225上のエントリを検索する。(ステップ S600) 。一致するエントリがあった場合 (ステップ S600で Yes)、当該パケットの宛先アドレス を当該エントリの変換アドレスに書き換えて (ステップ S601)、サーバ側通信部 212か ら送信する (ステップ S602)。
[0119] 一致するエントリが無かった場合 (ステップ S600で No)、未使用アドレスを選ぶ (ス テツプ S603)。このときの選択アルゴリズムは従来の任意のアルゴリズムが使用でき る。次に、 NATテーブル 225に新規のエントリを作成する(ステップ S604)。このェン トリでは、当該未使用アドレスを変換アドレスにし、パケットの送信元アドレスをクライア ントアドレス、送信元ポートをクライアントポートにする。そして、パケットの宛先アドレス を当該変換アドレスに書き換えてサーバ側通信部 212から送信する (ステップ S605)
[0120] 次に、ディスパッチャもしくはサーノくからクライアントに対して送信されたパケットの 切替え装置 210における書き換えを説明する。図 13は、ディスパッチャもしくはサー ノくからクライアントに対して送信されたパケットの切替え装置 210における書き換えの 動作を示すフローチャートである。
[0121] 図 13を参照すると、ネットワーク 230からパケットを受信したアドレス変換部 220は、 まず、 NATテーブル 225を検索し、クライアントアドレスがパケットの宛先アドレスと一 致するエントリがないかどうかを調べる (ステップ S620)。なお、このとき、変換アドレス がパケットの送信元アドレスと一致するエントリがないかという観点で検索することも可 能である。
[0122] 一致するエントリが存在した場合 (ステップ S620で Yes)、送信元アドレスをシステ ムアドレスで書き換えて (ステップ S621)、パケットをクライアント側通信部 211から送 出する (ステップ S622)。
[0123] 一致するエントリが存在しな力つた場合 (ステップ S620で No)はエラーとなり、当該 パケットを破棄するなどの処理が行なわれる。
[0124] なお、第二の実施の形態ではセッションの終了が明示的に行なわれない、別の表 現をすれば、セッションの終了を明示的に管理しないため、 NATテーブルのエントリ を消去する明示的な機会が存在しない。そこで、一定時間通信が行なわれな力 た エントリを、図示しない監視部が消去するようにする。
[0125] サーバにおいても一定時間通信が行なわれないセッションの追加アドレスを消去し 、ディスパッチャ 240に通知して、当該追加アドレスをディスパッチャ 240は、通信部 2 41に設定する。
[0126] 次に、第二の実施の形態によるサーバ切替えの処理を説明する。図 14はサーバ切 替えの動作を示すフローチャートである。
[0127] 図 14を参照すると、クライアントはまず、システムアドレスに対してリクエストを含むパ ケットを送信する (ステップ S640)。パケットはネットワーク 260、クライアント側通信部 211を経由して切替え装置 210が受信する。切替え装置 210は、未使用アドレスの 中力も変換アドレスとして 1つの追加アドレスを選択し、当該パケットの宛先アドレスを 当該変換アドレスに書き換えてネットワーク 230に送信する (ステップ S641)。このと き、 NATテーブルに新規のエントリが作成される。選択した追加アドレスはディスパッ チヤ 240の通信部 241に割り当てられているため、ディスパッチャ 240のセッション確 立部 244が当該パケットを受信する。セッション確立部 244は、クライアントとの間で のセッションを確立するのに必要なセッション情報を作成し、セッション情報蓄積部 2 45に記憶する。
[0128] 次に、受信したリクエストをディスパッチャ 240の解析部 242が解析して、適切なサ ーバを選択する (ステップ S642)。そして解析部はセッション転送部 243に指示して 、選択したサーバ(ここではサーバ 250— 1が選択されたとする。)のセッション転送部 253— 1にセッション情報を転送する(ステップ S643)。ディスパッチャ 240の通信部 241からは当該選択された追加アドレスの設定とセッションが消去され、選択された サーバ 250— 1では転送されたセッション情報の設定と当該追加アドレスの通信部 2 51— 1への設定を行なう。
[0129] このように、セッションを転送することでリクエストを処理するもの力 ディスパッチャ 2 40力らサーノ 250—1に切り替わる力 NATテーブル 225のエントリを書き換える必 要はない。
[0130] 選択されたサーバ 250— 1のアプリケーションサーバ 252—1は、リクエストの内容 に応じて、返答を作成し、クライアントに送信する (ステップ S644)。サーバ 250— 1か らクライアントに対して送信されたパケットは、切替え装置 210が再び NATテーブル 225を参照し、パケットの送信元アドレスをシステムアドレスに書き換えて、クライアン トに向けてパケットを送信する。
[0131] 必要な返答を全て送信し終わった後、当該セッションに対する通信が発生しなくな り、一定時間経過後、 NATテーブル 225上の当該エントリが消去される(ステップ S6 45)。このとき、当該セッションで使用していた追加アドレス(変換アドレス)はサーバ 2 50— 1から消去されてディスパッチャ 240に返される(ステップ S646)。ディスパッチ ャ 240は当該追加アドレスを通信部 241に再度設定する。
[0132] 第二の実施の形態で想定するプロトコルではシーケンス番号が使われな 、こともあ る。このような場合、セッションを転送する際のセッション情報にはシーケンス番号は 含まれない。転送するセッション情報には、追加アドレスとプロトコルに必要な情報と が含まれる。
[0133] 以上述べたように、第二の実施の形態では、サーバを切り替えても NATテーブル のエントリを変更する必要がな 、。
(第二の実施の形態の変形例)
第一の実施の形態に対する変形と同じぐ第二の実施の形態に対しての変形例は
、ディスパッチャ及び各サーバが送信する時点でパケットの送信元アドレスをシステム アドレスにすることである。
[0134] このため、切替え装置でパケットの送信元アドレスを書き換える必要が無くなるため
、図 13のステップ S621力省略される。
[0135] ただしこの場合、図 13のステップ S620の説明で、 NATテーブルにエントリがある 力どうかを検索する際に、各エントリの内側アドレスとパケットの送信元アドレスの一致 を調べるやり方は使えない。これは、本変形例ではパケットの送信元アドレスが全て システムアドレスになっているため、そのようなエントリが存在しないためである。
[0136] 更に最適化して、 NATテーブルのエントリが存在した力つたときのエラー処理を行 なわなくてもよいならば、図 13の全ての処理を省略して、切替え装置は単に受信した パケットをそのまま送出することも可能である。
[0137] (第三の実施の形態) 第一の実施の形態においては、 1セッションでクライアントからの 1リクエストとそれに 対するサーノくからの返答が行われる状況を想定していた。リクエストによっては、 1セ ッシヨンでクライアントが複数リクエストを順次送信し、それぞれの返答を順次受け取 ることも可能である。第三の実施の形態においては、 1セッションでクライアントからの 複数リクエストとそれらに対するサーバからの返答が行われる状況を説明する。
[0138] 第三の実施の形態における切替えシステムの構成は、図 1に示される第一の実施 の形態における構成と同じである。また、切替え装置 210におけるアドレス書き換えも 第一の実施の形態と同じである。第三の実施の形態では、 2回目以降のリクエストを 処理する際に、サーノ からディスパッチャにセッションが転送される。
[0139] サーバがセッションを転送する際の手順は図 6と同じである。一方、ディスパッチャ が転送されたセッションを受け取る手順は図 7と同じである。つまり、第一の実施の形 態におけるディスパッチャとサーバの立場が入れ替わっただけで、手順そのものは変 わっていない。
[0140] 図 15に、クライアントが複数リクエストを送信し、返答を受け取る流れを示す。図 15 が第一の実施の形態における図 8と異なるステップ S668から説明する。
[0141] サーバによるリクエストに対する返答が終了後(ステップ S667)、サーバは次のリク ェストがあるかどうかを検査し (ステップ S668)、次のリクエストがある場合 (ステップ S 668で No)、クライアントは次のリクエストを送信する(ステップ S669)。切替え装置 2 10では、 NATテーブルのエントリにしたがって、当該リクエストのパケットの宛先アド レスを書き換えて送信する力 まだこの時点では、追加アドレスを保持しているのはサ ーバ(ここではサーバ 250— 1とする。)であるので、パケットはサーバ 250— 1が受信 する(ステップ S 670)。
[0142] ただしこのとき、サーバ 250— 1上で動いているアプリケーションサーバ 252— 1はリ タエストを読み込まず、当該セッションをディスパッチャ 240に転送する(ステップ S67 D oこのときのセッション情報には、第一の実施の形態と同様に、シーケンス番号、追 加アドレスとプロトコルに必要な情報が含まれている力 第三の実施の形態では更に 、アプリケーションサーバが読み込んでいないリクエストのパケットも含まれる。したが つて、読み込んで ヽな 、状態のままでセッションがディスパッチャ 240に転送される。 ディスパッチャ 240の解析部 242はリクエストを読み込んで、解析し、適切なサーバを 再度選択する (ステップ S665)。その後、選択したサーバにディスパッチャ 240からセ ッシヨンが転送され (S666)、当該サーノ から応答がクライアントに返される (S667)。
[0143] ステップ S668で、次のリクエストが無かった場合 (ステップ S668で Yes)、当該セッ シヨンを切断し (ステップ S672)、追加アドレスをディスパッチャ 240に返す (ステップ
5673)。 NATテーブルからは当該セッションに関するエントリが消去される(ステップ
5674)。
[0144] このように、複数リクエストに対する応答の場合に、ディスパッチャ力 サーバへ、も しくはサーノからディスパッチャへサーバへと!、う切替えが発生する力 この場合に おいても、切替え装置 210上での NATテーブル 225の変更は必要ない。また、切替 え装置 210でのシーケンス番号の計算及び書き換え処理も必要ない。
[0145] なお、第三の実施の形態においても、第一、第二の実施の形態と同様、ディスパッ チヤ及び各サーバが送信する時点でパケットの送信元アドレスをシステムアドレスに する変形を行なうことが可能である。
[0146] (第四の実施の形態)
第三の実施の形態では、複数リクエスト処理の場合、リクエストが到着する毎にディ スパッチヤにー且、セッションを転送していた。第四の実施の形態においては、各サ ーバが次のリクエストを読み込み、適切なサーバにセッションを転送する。もし、 自サ ーバが最適であったならば、他のサーバにセッションを転送せず、セッションを維持し たまま次のリクエストに対する返答を続けて送信することも可能である。
[0147] 図 16は第四の実施の形態における切替えシステムの構成を示すブロック図である 。図 1、および図 16を参照すると、第四の実施の形態は、第一の実施の形態と比較し て、アプリケーションサーバの中に解析部(254— l〜254—n)が備わっていることが 特徴である。第四の実施の形態では、リクエストの処理の際にサーバ上のアプリケー シヨンサーバがリクエストを読み込んで、サーバから他のサーバ、またはディスパッチ ャにセッションが転送される。
[0148] 切替え装置 210におけるアドレス書き換え処理は第一の実施の形態と同じである( 図 4及び図 5)。サーバがセッションを転送する際の手順は図 6と同じである。一方、他 のサーバが転送されたセッションを受け取る手順は図 7と同じである。つまり、 2回目 以降のリクエスト処理の場合のセッション転送にぉ 、ては、第一の実施の形態と手順 は変わらず、転送するセッションの送信元も送信先もサーバになるだけである。
[0149] 図 17は、クライアントが複数リクエストを送信した場合に、それに対しての返答がサ ーバからなされるまでの流れを示すフローチャートである。この図を用いて、クライア ントが複数リクエストを送信した場合の処理動作について説明する。以下、第一の実 施の形態における処理動作のフローチャートを示す図 8とは異なるステップ S488以 降の処理動作を説明する。
[0150] リクエストに対する返答が終了後(S487)、次のリクエストがある場合 (ステップ S48 8で No)、クライアントは次のリクエストを送信する(ステップ S489)。切替え装置 210 では、 NATテーブル 225のエントリにしたがって、当該リクエストのパケットの宛先アド レスを書き換えて送信する力 まだこの時点では、追加アドレスを保持しているのはサ ーバ(ここではサーバ 250— 1とする。)であるので、パケットはサーバ 250— 1が受信 する(ステップ S490)。次に、サーバ 250—1で動いているアプリケーションサーバ 25 2— 1がリクエストを読み込み、解析部 254— 1が適切なサーバを選択する (ステップ S 491)。選択されたサーバが自サーバ 250—1の場合 (ステップ S492で No)、アプリ ケーシヨンサーバ 250— 1は返答を作成して送信する (ステップ S487)。選択された サーバが他のサーバ、例えばサーバ 250— nの場合 (ステップ S492で Yes)、当該セ ッシヨンを選択されたサーバ 250— nに転送し (ステップ S493)、選択されたサーバ 2 50— nのアプリケーションサーバ 252— nは返答を作成して送信する(ステップ S487
) o
[0151] このとき、ー且読み込んだリクエストを再度、セッション情報に含めて転送することも 可能である。したがって、この場合のセッション情報には、シーケンス番号、追加アド レスとプロトコルに必要な情報に加えて更に、読み込んだリクエストのパケットが含ま れる。選択されたサーバのアプリケーションサーバはリクエストを読み込んで、返答を 作成する。
[0152] ステップ S488で、次のリクエストが無かった場合 (ステップ S488で Yes)、当該セッ シヨンを切断し (ステップ S494)、追加アドレスをディスパッチャ 240に返す (ステップ S495)。 NATテーブル 225から当該セッションに関するエントリが消去される(ステツ プ S496)。
[0153] このように、複数リクエストに対する応答の場合に、ディスパッチャ力 サーバへ、も しくはサーノくから他のサーバへサーバが切り替わったときにも、切替え装置上での N ATテーブルの変更は必要な 、。切替え装置でのシーケンス番号の差分の計算及び 書き換え処理もまた必要な 、。
[0154] なお、第四の実施の形態においても、第一、第二、第三の実施の形態と同様、ディ スパッチャ及び各サーバが送信する時点でパケットの送信元アドレスをシステムアド レスにする変形を行なうことが可能である。
[0155] (第五の実施の形態)
第一の実施の形態では、新規接続要求のパケットが到着した際に切替え装置 210 のアドレス変換部 220が追加アドレスを選び、 NATテーブル 225のエントリを作成し ていた。第五の実施の形態では、切替え装置 710はパケットが新規接続要求力どう かの判断を行わない。切替え装置 710は、 NATテーブル 225に登録されていない パケットが到着したときにはデフォルトアドレスにパケットを転送する。そして、デフォ ルトアドレスを保持するサーバまたはディスパッチャがクライアントとの間でセッション を確立する。このセッションの確立後に、当該クライアントとの間でセッションを確立し たサーバまたはディスパッチャは、切替え装置 710の NATテーブル 225にエントリの 作成指示を送信する。
[0156] ここで、デフォルトアドレスとしては、追加アドレスを管理して!/、るサーバ、またはディ スパッチヤの固定アドレスを用いることができる。第五の実施の形態を説明する以下 の文中では、デフォルトアドレスとしてディスパッチャの固定アドレスを用いるものとし て説明する。なお、サーバの固定アドレスをデフォルトアドレスとして用いる場合は、 サーノ にもセッション確立部があるものとする。
[0157] 第五の実施の形態は、 NATテーブル 225のエントリが作成されるまでの処理と切 替え装置 710での処理とディスパッチャ 740での処理が第一の実施の形態と異なる
[0158] 図 21は本発明による第五の実施の形態における切替えシステム 700の構成を示 すブロック図である。第一の実施の形態と比べると、第五の実施の形態は、ディスパ ッチヤ 740にセッション情報書き換え部 746が追加され、更に、切替え装置 710にテ 一ブルエントリ設定部 727が追加されて 、る。
[0159] ディスパッチャ 740のセッション情報書き換え部 746は、未使用アドレス(通信中で ない追加アドレス)の管理を行なっており、セッション確立部 244がクライアントとの間 でセッションを確立した時点で未使用アドレスの中力 選ぶ。そしてセッション情報書 き換え部 746は、セッション情報蓄積部 245にある確立したセッションのアドレスをこ の選んだ未使用アドレスで書き換え、更に、選んだ未使用アドレスとクライアントのァ ドレスの対応を保持する NATテーブル 225のエントリを作成する指示を、通信部 24 1を介して切替え装置 710のテーブルエントリ設定部 727に対して出す。
[0160] テーブルエントリ設定部 727は、セッション情報書き換え部 746からの指示を受け 取り、追加アドレスとクライアントのアドレスの対応を保持する NATテーブル 225のェ ントリを作成する。第五の実施の形態における NATテーブル 225のエントリ構造は図 3と同じである。また、アドレス変換部 220はデフォルトアドレスを記憶している。
[0161] 次に、図 22及び図 23を用いて、切替え装置 710におけるアドレス変換処理の流れ を説明する。図 22は切替え装置 710がクライアントから受信したパケットをネットヮー ク 230に送出する際に行なうアドレス変換の動作を示したフローチャートである。図 2 2を参照すると、クライアントからのパケットを受け取った切替え装置 710はクライアン トアドレスおよびクライアントポート番号で NATテーブル 225を検索する(ステップ S8 00)。このとき、 NATテーブル 225の各エントリの変換アドレスに当該パケットの送信 元アドレスと一致するものがあるかと!/、う観点で検索することも可能である。一致する エントリが無かった場合 (ステップ S800で No)、デフォルトアドレス(今回の場合はデ イスパッチャの固定アドレス)にパケットの宛先アドレスを書き換える(ステップ S802)。 NATテーブル 225に一致するエントリがあった場合 (ステップ S800で Yes)、該当す るエントリの変換アドレスにパケットの宛先アドレスを書き換える(ステップ S802)。
[0162] 次に、当該パケットに終了フラグ (FINもしくは RESET)が含まれているかを判断す る(ステップ S803)。含まれていない場合 (ステップ S803で No)、書き換えたパケット をネットワーク 230に送出する(ステップ S807)。 [0163] 終了フラグが含まれている場合 (ステップ S803で Yes)、当該エントリの FIN属性( 上り)を 0から 1にする (ステップ S804)。次に、当該エントリの FIN属性(下り)の値を 調べる(ステップ S805)。 FIN属性(下り)の値が 0であった場合 (ステップ S805で No )、パケットをローカルネットワーク 230に送信する(ステップ S807)。 FIN属性(下り) 力 であれば (ステップ S805で Yes)、当該エントリを削除した後に (ステップ S806)、 パケットをローカルネットワーク 230に送信する(ステップ S807)。
[0164] 図 23は、サーバ 250— l〜nもしくはディスパッチャ 740から切替え装置 710を経由 してクライアントにパケットを送る際のアドレス変換を行なう動作を示したフローチヤ一 トである。
[0165] 図 23を参照すると、サーバ 250— l〜nもしくはディスパッチャ 740からのパケットを 受け取った切替え装置 710は、まず、 NATテーブル 225の各エントリのクライアント アドレスおよびクライアントポート番号に、当該パケットの宛先アドレス及び宛先ポート 番号と一致するものがあるかを探す (ステップ S810)。このとき、 NATテーブル 225 の各エントリの変換アドレスに当該パケットの送信元アドレスと一致するものがあるかと
V、う観点で検索することも可能である。
[0166] NATテーブル 225のエントリに一致するものが無かった場合 (ステップ S810で No )、当該パケットの送信元アドレスがデフォルトアドレスかどうかを比較する(ステップ S 811)。デフォルトアドレスでな力つた場合はエラーとなり、パケットを廃棄するなどの 処理を行なう。デフォルトアドレスであった場合 (ステップ S811で Yes)、もしくは、 NA Tテーブル 225のエントリに一致するものがあった場合 (ステップ S810で Yes)、当該 パケットの送信元アドレスをシステムアドレスに書き換える(ステップ S832)。
[0167] 次に、当該パケットに終了フラグ (FINもしくは RESET)が含まれているかを判断す る(ステップ S813)。含まれていない場合 (ステップ S813で No)、書き換えたパケット をクライアントに対して送出する (ステップ S817)。
[0168] 終了フラグが含まれている場合 (ステップ S813で Yes)、当該エントリの FIN属性( 下り)を 0から 1にする (ステップ S814)。次に、当該エントリの FIN属性 (上り)の値を 調べる(ステップ S815)。 FIN属性(上り)の値が 0であった場合 (ステップ S815で No )、クライアントに対してパケットを送信する (ステップ S817)。 FIN属性 (上り)が 1であ れば (ステップ S815で Yes)、当該エントリを削除した後に (ステップ S816)、パケット をクライアントに対して送信する (ステップ S817)。
[0169] 図 24は、クライアントがリクエストを発してから、クライアントとサーバもしくはディスパ ッチヤの間での処理が完了してセッションが切断されるまでの流れを示すフローチヤ ートである。ここでは、図 24の中で第一の実施の形態における流れのフローチャート (図 8)と異なる箇所であるステップ S880〜S883を説明する。
[0170] クライアントがシステムアドレスに対して新規接続要求のパケットを送信すると (ステ ップ S880)、このパケットを受け取った切替え装置 710は前述のように NATテープ ル 225から一致するエントリを検索する力 一致するエントリが無いため(ステップ S8 00で No)、パケットの宛先アドレスをデフォルトアドレス(ここではディスパッチャの固 定アドレス)に書き換えて (ステップ S881)、ネットワーク 230に送出する。新規接続 要求のパケットを受信したディスパッチャ 740は、クライアントとセッションを確立する 処理を行なう。
[0171] 例えば、 TCP/IPのプロトコルを使用した場合、ディスパッチャ 740はクライアントに 対して要求確認パケット(後述する図 25の(B) SYN— ACKに相当)を送信する。要 求確認パケットを受信した切替え装置 710は、 NATテーブル 225を検索する力 こ の時点では NATテーブル 225には当該セッションに関するエントリはまだ存在しな い(ステップ S810で No)。し力し、送信元アドレスがデフォルトアドレス(ディスパッチ ャの固定アドレス)なので(ステップ S811で Yes)、送信元アドレスをシステムアドレス に書き換えて(ステップ S812)、終了フラグの処理 (ステップ S813〜S816)を行なつ た後に、クライアントに対して送信する (ステップ S817)。クライアントからは確認パケ ット(図 25では省略されている力 (B)と(C)の間にクライアントからディスパッチャに 対して送信される ACKパケット)が送信される力 このパケットが切替え装置 710に到 着した時点でもエントリは存在しな 、のでデフォルトアドレスに転送される。ディスパッ チヤが確認パケットを受信すると、このセッションが確立されることになる (ステップ S8 82)。
[0172] セッションが確立されると、クライアントアドレスとディスパッチャ 740の固定アドレス を含むセッション情報がセッション情報蓄積部 245に作成される。その後、セッション 情報書き換え部 746は未使用アドレスの中から 1つアドレスを選び、確立したセッショ ン情報のディスパッチャ 740の固定アドレスをこの選択した未使用アドレスに書き換え る(ステップ S883)。
[0173] 更に、セッション情報書き換え部 746は、確立したセッションのクライアントアドレスと 選択した追加アドレスを対応付ける NATテーブル 225のエントリを作成する指示を、 切替え装置 710のテーブルエントリ設定部 727に対して送信する (ステップ S884)。
[0174] その後、クライアントはリクエストのパケットを送信するが (ステップ S885)、このパケ ットを受け取った切替え装置 710には当該セッションのクライアントアドレスと追加アド レス(変換アドレス)の NATテーブルエントリが存在するため、クライアントからのパケ ットはこの変換アドレスを用いて宛先アドレスを書き換えられて送出される。そして、そ れ以降の動作 (ステップ S886以降)については、第一の実施形態と同様(図 8のフロ 一チャートにおける S484以降)と同様である。
[0175] 図 25は上記のように構成される第五の実施の形態の具体的な動作例を示すシー ケンス図である。図 25が、第一の実施の形態におけるパケットの流れ(図 9)と異なる のは、次の 2箇所のアドレスがいずれもディスパッチャの固定アドレスとなっている点 である。 1つ目は、図 25の(A)の SYNのパケット(2501)においての切替え装置 710 力 ディスパッチャ 740への宛先アドレスである。 2つ目は、図 25の(B)の SYN— A CKのパケット(2502)にお!/、てのディスパッチャ 740から切替え装置 710への送信 元アドレスである。図 25の(C)以降は第一の実施の形態におけるパケットの流れ(図 9の(C)以降)と同様である。
[0176] (第六の実施の形態)
第六の実施の形態における切替えシステムの構成は、図 21に示される切替えシス テム力もディスパッチャ 740のセッション情報書き換え部 746を削除したものと同じで ある。
[0177] 第一の実施の形態では、終了フラグ (FINもしくは RESET)を含むパケットが到着 した際に切替え装置 710のアドレス変換部 220が NATテーブル 225のエントリを削 除していた。第六の実施の形態では、ディスパッチャ 740もしくはサーバ 250— l〜n がセッションの終了時に切替え装置 710にエントリを削除する指示を出す。 [0178] 第六の実施の形態における NATテーブル 225の構造については図 11と同じであ る。
[0179] 第一の実施の形態における NATテーブル 225の構造である図 3と比較すると、第 六の実施の形態における NATテーブル 225の構造は FIN属性の(上り)及び(下り) が削除されている。これは、第六の実施の形態ではアドレス変換部 220において終 了フラグを検知しな 、からである。
[0180] 次に、図 26及び図 27を用いて、切替え装置 710におけるアドレス変換処理の流れ を説明する。図 26は切替え装置 710がクライアントから受信したパケットをネットヮー ク 230に送出する際に行なうアドレス変換の動作を示したフローチャートである。
[0181] まず、クライアントが最初にセッションを確立するための新規接続要求のパケットが、 システムアドレスを宛先として送信された場合のアドレス変換部 220の動作を説明す る。
[0182] 図 26を参照すると、クライアント側通信部 211からパケットを受け取った切替え装置 710は、当該パケットが新規接続要求のパケットかどうかを判断し (ステップ S820で Y es)、追加アドレスとして使用可能なアドレスのうち、 NATテーブル 225のエントリの 中で使用されて ヽな ヽ未使用アドレス(つまり、通信中でな 、追加アドレス)を 1つ選 択する (ステップ S821)。このときの選択アルゴリズムは従来力もある任意のものが使 える。そして、そのアドレスを変換アドレスとして NATテーブル 225にエントリを新たに 作成する(ステップ S822)。このとき、クライアントのアドレス、ポート番号もエントリのフ ィールド値として書き込む。次に、パケットの宛先アドレスを、選択した未使用アドレス (以下、変換アドレス)に書き換えて (ステップ S823)、書き換えたパケットをサーバ側 通信部 212からネットワーク 230に送信する(ステップ S824)。
[0183] 次に、セッションが確立された後に、クライアントから送信されたパケットを切替え装 置 710が受信し、宛先アドレスを変換アドレスに書き換えてネットワーク 230に送出す る際の動作を説明する。
[0184] まず、パケットが新規接続要求力どうかを判断する (ステップ S820で No)。次に、 N ATテーブル 225の各エントリのクライアントアドレスおよびクライアントポート番号に、 当該パケットの送信元アドレスおよび送信元ポート番号と一致するものがあるかどうか を検索する(ステップ S825)。 NATテーブル 225のエントリ中に無かった場合 (ステツ プ S825で No)、エラーと判断し、当該パケットを破棄するなどの処理を行なう。 NAT テーブル 225のエントリ中に存在した場合 (ステップ S825で Yes)、パケットの宛先ァ ドレスを変換アドレスに書き換える(ステップ S826)。そして、パケットをローカルネット ワーク 230に送信する(ステップ S824)。
[0185] 図 27は、サーバ 250— l〜nもしくはディスパッチャ 740から切替え装置 710を経由 してクライアントにパケットを送る際のアドレス変換を行なう動作を示したフローチヤ一 トである。
[0186] 図 27を参照すると、サーバ 250— l〜nもしくはディスパッチャ 740からのパケットを 受け取った切替え装置 710は、 NATテーブル 225の各エントリのクライアントアドレス およびクライアントポート番号に、当該パケットの宛先アドレス及び宛先ポート番号と 一致するものがあるかを探す (ステップ S830)。このとき、 NATテーブル 225の各ェ ントリの変換アドレスに当該パケットの送信元アドレスと一致するものがあるかという観 点で検索することも可能である。
[0187] NATテーブル 225のエントリに一致するものが無かった場合 (ステップ S830で No )、エラーとなり、パケットを廃棄するなどの処理を行なう。 NATテーブル 225のェント リに一致するものがあった場合 (ステップ S830で Yes)、当該パケットの送信元ァドレ スをシステムアドレスに書き換え (ステップ S832)、クライアントに対して送信する (ステ ップ S 833)。
[0188] 次に、クライアントがリクエストを発してから、クライアントとサーバの間での処理が完 了してセッションが切断されるまでの流れを説明する。
[0189] 第六の実施の形態における処理動作の流れは第一の実施の形態における流れ( 図 8)と同じであるが、第一の実施の形態ではステップ S490において、 2つの FIN属 性が 1になったことを契機に NATテーブル 225の当該セッションに対応するエントリ をアドレス変換部 220が削除していた力 第六の実施の形態においては、サーバ 25 0— 1〜nのセッション転送部 253— 1〜nもしくはディスパッチャ 740のセッション転送 部 243がセッションを切断する際に、当該セッションで使用していたクライアントァドレ スと追加アドレス (変換アドレス)の対応を保持するエントリを削除する指示を、切替え 装置 710のテーブルエントリ設定部 727に対して出す点で処理が異なる。
[0190] (第七の実施の形態)
第七の実施の形態における切替えシステムの構成は、図 21のものと同じである。
[0191] 第七の実施の形態における切替え装置は、第一の実施の形態では新規接続要求 のフラグ及び、終了フラグを検知することにより NATテーブルエントリの作成及び削 除を行っていた力 第七の実施の形態はそのいずれのフラグも検知せず、ディスパッ チヤもしくはサーノくからの指示により NATテーブルエントリの作成及び削除を行なう 。つまり、第七の実施の形態は、第五の実施の形態及び第六の実施の形態を組み 合わせた形態に等しい。
[0192] 次に、図 28及び図 29を用いて、切替え装置 710におけるアドレス変換処理の流れ を説明する。図 28は切替え装置 710がクライアントから受信したパケットをネットヮー ク 230に送出する際に行なうアドレス変換の動作を示したフローチャートである。図 2 8を参照すると、クライアントからのパケットを受け取った切替え装置 710はクライアン トアドレスで NATテーブル 225を検索し (ステップ S860)、該当するエントリが無かつ た場合 (ステップ S860で No)にはデフォルトアドレス(今回の場合はディスパッチャの アドレス)にパケットの宛先アドレスを書き換えて(ステップ S861)、ネットワーク 230に 送出する(ステップ S863)。 NATテーブル 225にクライアントアドレスを含むエントリ があった場合 (ステップ S860で Yes)、該当するエントリの変換アドレスを用いてパケ ットの宛先アドレスを書き換えて (ステップ S862)、ネットワーク 230に送出する(ステツ プ S863)。
[0193] 図 122は、サーバ 250— l〜nもしくはディスパッチャ 740から切替え装置 710を経 由してクライアントにパケットを送る際のアドレス変換を行なう動作を示したフローチヤ ートである。
[0194] 図 29を参照すると、サーバ 250— l〜nもしくはディスパッチャ 740からのパケットを 受け取った切替え装置 710は、まず、 NATテーブル 225の各エントリのクライアント アドレスおよびクライアントポート番号に、当該パケットの宛先アドレス及び宛先ポート 番号と一致するものがあるかを探す (ステップ S870)。このとき、 NATテーブル 225 の各エントリの変換アドレスに当該パケットの送信元アドレスと一致するものがあるかと V、う観点で検索することも可能である。
[0195] NATテーブル 225のエントリに一致するものが無かった場合 (ステップ S870で No )、当該パケットの送信元アドレスがデフォルトアドレスかどうかを比較する(ステップ S 871)。デフォルトアドレスでな力つた場合はエラーとなり、パケットを廃棄するなどの 処理を行なう。デフォルトアドレスであった場合 (ステップ S871で Yes)、もしくは、 NA Tテーブル 225のエントリに一致するものがあった場合 (ステップ S870で Yes)、当該 パケットの送信元アドレスをシステムアドレスに書き換えて (ステップ S872)、クライア ントに対して送信する (ステップ S873)。
[0196] 次に、クライアントがリクエストを発してから、クライアントとサーバの間での処理が完 了してセッションが切断されるまでの流れを説明する。
[0197] 第七の実施の形態における処理の流れは第五の実施の形態における流れ(図 24) と同じであるが、第五の実施の形態ではステップ S892において、 2つの FIN属性が 1 になったことを契機にアドレス変換部 220がエントリを削除していたことが、第七の実 施の形態においては、サーバ 250— l〜nもしくはディスパッチャ 740のセッション転 送部 243がセッションを切断する際に当該セッションで使用していたクライアントアド レスと追加アドレス (変換アドレス)の対応を保持するエントリを削除する指示を、切替 え装置 710のテーブルエントリ設定部 727に対して出す点で処理が異なる。
[0198] なお、上記の全ての実施の形態においては、クライアントとサーバの間のセッション を転送する際の動作を説明したが、クライアント、サーバの役割は固定的なものでは ない。
[0199] クライアント、サーバとも一般的な通信機器として良ぐ例えば、サーバ、クライアント とも IP電話であり、クライアントの IP電話 (上記の実施の形態の「クライアント」)から、コ ールセンタにある複数のオペレータの IP電話(上記の実施の形態の「サーバ」)に、ク ライアントからの問い合わせを振り分けるようなシステムにおいても上記の実施の形態 は適用可能である。
[0200] また、ディスパッチャは切替え装置やサーバと独立の機器として 、るが、切替え装 置と一体の機器とすること、サーバと一体の機器とすることも可能である。
[0201] 以上の説明は本発明の好適な実施の形態の単なる例証であり、本発明の範囲はこ れに限定されない。本発明に関する更に多くの変形例や改造例が本発明の範囲を 逸脱することなく当該技術の熟達者によって容易に想到され得るであろう。
産業上の利用可能性
本発明によれば、通信機器間のパケット通信にぉ 、てセッションを転送する方法を 用いて通信機器の接続相手の機器を切り替えることによる効率的な通信に利用でき る。特に、データセンターにおいて、複数のサーバを切替え装置により切り替えること で、適切にかつ効率的に稼働させることなどが出来る。

Claims

請求の範囲
[1] 未使用のアドレスを選択し、第一の通信機器力ものパケットの宛先アドレスを前記選 択したアドレスに書き換えて送出するアドレス変換部と、前記選択されたアドレスを宛 先とするパケットを受信して第一の通信機器との間でセッションを確立するセッション 確立部と、前記確立したセッションを第二の通信機器に転送するセッション転送部か らなる切替えシステム。
[2] 未使用のアドレスを選択し、第一の通信機器力ものパケットの宛先アドレスを前記選 択したアドレスに書き換えて送出するアドレス変換部と、前記選択されたアドレスを含 む未使用のアドレスが割り当てられ、前記選択されたアドレスを宛先とするパケットを 受信して第一の通信機器との間でセッションを確立するセッション確立部と、前記確 立したセッションを前記選択したアドレスとともに第二の通信機器に転送するセッショ ン転送部からなり、前記確立したセッションが転送されると、前記セッション確立部は 、前記選択されたアドレスを割り当てアドレス力 削除することを特徴とする切替えシ ステム。
[3] 複数の第一の通信装置を代表するシステムアドレスを持ち、第二の通信装置が当該 システムアドレスをパケットの宛先として要求した接続を前記複数の第一の通信装置 の!、ずれかに接続する切換えシステムであって、
任意に使用可能な追加アドレスを選択し、前記第二の通信装置力 受信したパケ ットの宛先アドレスを前記選択した追加アドレスに書き換えて送出するアドレス変換部 と、
前記追加アドレスが割り当てられ、前記選択された追加アドレスを宛先とするバケツ トを受信して前記第二の通信装置との間でセッションを確立するセッション確立部と、 前記確立したセッションの、前記選択された追加アドレスを含むセッション情報を、 選択した前記第一の通信装置に転送するセッション転送部を備え、
前記セッション情報が転送されると、前記選択された追加アドレスは前記セッション 確立部の割り当てから削除されることを特徴とする切替えシステム。
[4] 固定アドレスを有する複数のサーバ装置を代表するシステムアドレスを持ち、クライア ント装置が当該システムアドレスをパケットの宛先として要求した接続を前記複数のサ ーバ装置のいずれかに接続する切換えシステムであって、
前記固定アドレスとは異なる任意に使用可能な追加アドレスの未使用の追加ァドレ スを選択し、前記クライアント装置力 受信したパケットの宛先アドレスを前記選択し た追加アドレスに書き換えて送出するアドレス変換部と、
前記未使用の追加アドレスを有し、前記選択された追加アドレスを宛先とするパケ ットを受信して前記クライアント装置との間でセッションを確立するセッション確立部と 前記確立したセッションの、前記選択された追加アドレスを含むセッション情報を、 選択した前記サーバ装置に転送するセッション転送部を備え、
前記セッション確立部は、前記セッション情報が転送されると、前記選択された追加 アドレスを削除して使用状態とすることを特徴とする切替えシステム。
[5] 固定アドレスを有する複数のサーバ装置を含むローカルネットワークに設置され、当 該複数のサーバ装置を代表するシステムアドレスを有し、当該ローカルネットワーク 外のクライアント装置が当該システムアドレスをパケットの宛先として要求した接続を 前記複数のサーバ装置の 、ずれかに接続する切替えシステムにお 、て、
前記固定アドレスとは別に任意に使用可能な追加アドレスを管理し、未使用の追加 アドレスを選択し、前記クライアント装置力 受信したパケットの宛先アドレスを前記選 択した追加アドレスに書き換えて送出するアドレス変換部と、
前記未使用の追加アドレスが割り当てられ、前記選択された追加アドレスを宛先と するパケットを受信して前記クライアント装置との間でセッションを確立するセッション 確立部と、
前記確立したセッションの、前記選択された追加アドレスを含むセッション情報を、 選択した前記サーバ装置に転送するセッション転送部を備え、
前記セッション情報が前記サーバ装置に転送されると、前記セッション確立部に割 り当てられた追加アドレス力 前記選択された追加アドレスを削除して使用状態とす ることを特徴とする切替えシステム。
[6] 特定のアドレス宛てのパケットを第一の通信機器力 受信すると、未使用のアドレスを 選択し、前記第一の通信機器力 前記特定アドレス向けのパケットの宛先アドレスを 前記選択したアドレスに書き換えネットワークに送出するアドレス変換部を有する切 替え装置。
[7] 複数の通信機器を代表するシステムアドレスを有するネットワークシステムにお 、て、 前記アドレス変換部は、前記第一の通信機器からの前記システムアドレスを宛先とす るパケットの宛先を、前記選択したアドレスに書き換え、前記第一の通信機器を宛先 とするパケットの送信元アドレスを前記システムアドレスに書き換えることを特徴とする 請求項 6に記載の切替え装置。
[8] 複数の通信機器を代表するシステムアドレスを有するネットワークシステムにお 、て、 前記アドレス変換部は、前記第一の通信機器からの前記システムアドレスを宛先とす るパケットの宛先を、前記選択したアドレスに書き換え、前記選択したアドレスを送信 元とするパケットの送信元アドレスを前記システムアドレスに書き換えることを特徴とす る請求項 7に記載の切替え装置。
[9] 一時的に割り当てられたアドレス宛てのパケットを新規接続要求として受信すると、パ ケットの送出元の第一の通信機器とセッションを確立するセッション確立部と、前記確 立したセッションを第二の通信機器に転送するセッション転送部を有するディスパッ チヤ。
[10] 前記セッション確立部が前記第一のクライアントとの間で確立したセッションを転送す る第二の通信機器を複数の通信機器の中から選択する解析部をさらに有することを 特徴とする請求項 9に記載のディスパッチャ。
[11] 複数のサーバを代表するシステムアドレスを有するネットワークシステムにおいて、第 一の通信機器とセッション確立部との間で確立されたセッションの前記セッション確立 部が有するセッション情報の転送を受け取ることにより、前記第一の通信機器とのセ ッシヨンをセッション確立部から引き継ぐセッション転送部と、第一の通信機器に対し て送信するパケットの送信元アドレスを前記システムアドレスに書き換える機能を有す るサーバ。
[12] アドレス変換部とセッション確立部とセッション転送部を有する切替えシステムにおけ る切替え方法であって、
アドレス変換部が未使用のアドレスを選択し、第一の通信機器力ものパケットの宛先 アドレスを前記選択したアドレスに書き換えネットワークに送出する第一のステップと、 前記選択されたアドレスを宛先とするパケットをネットワーク力 受信して第一の通信 機器との間でセッションをセッション確立部で確立する第二のステップと、前記確立し たセッションをセッション転送部により第二の通信機器に転送する第三のステップを 有する切替え方法。
[13] 複数の第一の通信装置を代表するシステムアドレスを持つ切替え手段における、第 二の通信装置が当該システムアドレスをパケットの宛先として要求した接続を前記複 数の第一の通信装置のいずれかに接続する切換え方法であって、
任意に使用可能な追加アドレスを選択し、前記第二の通信装置力 受信したパケ ットの宛先アドレスを前記選択した追加アドレスに書き換えて送出するアドレス変換ス テツプと、
前記追加アドレスが割り当てられたセッション確立手段にぉ ヽて、前記選択された 追加アドレスを宛先とするパケットを受信して前記第二の通信装置との間でセッション を確立するセッション確立ステップと、
前記確立したセッションの、前記選択された追加アドレスを含むセッション情報を、 選択した前記第一の通信装置に転送するセッション転送ステップを有し、
前記セッション情報が転送されると、前記選択された追加アドレスは前記セッション 確立手段の割り当て力 削除されることを特徴とする切替え方法。
[14] 固定アドレスを有する複数のサーバ装置を代表するシステムアドレスを持つ切替え手 段における、クライアント装置が当該システムアドレスをパケットの宛先として要求した 接続を前記複数のサーバ装置のいずれかに接続する切換え方法であって、 前記固定アドレスとは異なる任意に使用可能な追加アドレスの未使用の追加ァドレ スを選択し、前記クライアント装置力 受信したパケットの宛先アドレスを前記選択し た追加アドレスに書き換えて送出するアドレス変換ステップと、
前記未使用の追加アドレスを有するセッション確立手段にぉ 、て、前記選択された 追加アドレスを宛先とするパケットを受信し、前記クライアント装置との間でセッション を確立するセッション確立ステップと、
前記確立したセッションの、前記選択された追加アドレスを含むセッション情報を、 選択した前記サーバ装置に転送するセッション転送ステップを有し、 前記セッション情報が転送されると、前記セッション確立手段が有する前記選択さ れた追加アドレスを削除して使用状態とすることを特徴とする切替え方法。
[15] 固定アドレスを有する複数のサーバ装置を含むローカルネットワークに設置され、当 該複数のサーバ装置を代表するシステムアドレスを有し、当該ローカルネットワーク 外のクライアント装置が当該システムアドレスをパケットの宛先として要求した接続を 前記複数のサーバ装置の 、ずれかに接続する切替え方法にぉ 、て、
前記固定アドレスとは別に任意に使用可能な追加アドレスを管理し、未使用の追加 アドレスを選択し、前記クライアント装置力 受信したパケットの宛先アドレスを前記選 択した追加アドレスに書き換えて送出するアドレス変換ステップと、
前記未使用の追加アドレスが割り当てられたセッション確立手段において、前記選 択された追加アドレスを宛先とするパケットを受信して前記クライアント装置との間で セッションを確立するセッション確立ステップと、
前記確立したセッションの、前記選択された追加アドレスを含むセッション情報を、 選択した前記サーバ装置に転送するセッション転送ステップを有し、
前記セッション情報が前記サーバ装置に転送されると、前記セッション確立手段に 割り当てられた追加アドレス力 前記選択された追加アドレスを削除して使用状態と することを特徴とする切替え方法。
[16] アドレス変換部に、特定のアドレス宛てのパケットを第一の通信機器力も受信すると 未使用のアドレスを選択させるステップと、前記第一の通信機器から前記特定アドレ ス向けのパケットの宛先アドレスを前記選択したアドレスに書き換えてネットワークに 送出させるステップを実行させる切替えプログラム。
[17] セッション確立部に、一時的に割り当てられたアドレス宛てのパケットを新規接続要求 として受信すると、パケットの送出元である第一の通信機器とセッションを確立させる ステップと、前記確立したセッションを第二の通信機器に転送させるステップを実行さ せる切替えプログラム。
[18] 第一の通信機器力 の特定のアドレス宛てパケットの送信元アドレス力 前記変換テ 一ブルに登録されていないときは所定のデフォルトアドレスにパケットの宛先アドレス を書き換えてネットワーク送出し、前記変換テーブルに登録されているときは前記変 換テーブルにしたがってパケットの宛先アドレスを書き換えてネットワークに送出する アドレス変換部と、前記デフォルトアドレスを宛先とするパケットを受信して第一の通 信機器との間でセッションを確立するセッション確立部と、前記確立したセッションに 割り当てるアドレスを未使用のアドレス力 選択して前記変換テーブルに設定するセ ッシヨン情報書き換え部と、前記確立したセッションを第二の通信機器に転送するセ ッシヨン転送部からなる切替えシステム。
[19] アドレス変換のための変換テーブルを有する切り替え装置であって、前記変換テー ブルに登録されて 、な 、通信機器力 の特定のアドレス宛てのパケットを受信すると 所定のデフォルトアドレスにパケットの宛先アドレスを書き換えてネットワーク送出し、 前記変換テーブルに登録されている通信機器力 の特定のアドレス宛てのパケットを 受信すると前記変換テーブルにしたがってパケットの宛先アドレスを書き換えてネット ワークに送出するアドレス変換部を有する切替え装置。
[20] 所定のアドレス宛てのパケットを新規接続要求として受信すると、パケットの送出元で ある第一の通信機器とセッションを確立するセッション確立部と、前記確立したセッシ ヨンに割り当てるアドレスを未使用のアドレス力 選択して前記変換テーブルに設定 するセッション情報書き換え部と、前記確立したセッションを第二の通信機器に転送 するセッション転送部を有するディスパッチャ。
[21] 前記セッション転送部は、前記サーバと前記第一の通信機器との間のセッションを切 断するときに前記セッションに対応するエントリを削除する指示を出すことを特徴とす る請求項 20に記載のディスパッチャ。
[22] 前記セッション転送部は、セッションを切断するときにネットワークシステム内の切替え 装置におけるアドレスの変換テーブルから、前記サーバと前記第一の通信機器との 間のセッションを切断するときに前記セッションに対応するエントリを削除する指示を 出すことを特徴とする請求項 11に記載のサーバ。
[23] 第一の通信機器と第二の通信機器で確立したセッションを第一の通信機器と第三の 通信機器のセッションに切り替えるセッション切替え方法であって、
前記切替え装置が、第一の通信機器力 の特定のアドレス宛てパケットの送信元ァ ドレスを、切替え装置内の変換テーブルに登録されていないときは所定のデフォルト アドレスにパケットの宛先アドレスを書き換えてネットワーク送出し、前記変換テープ ルに登録されているときは前記変換テーブルにしたがってパケットの宛先アドレスを 書き換えてネットワークに送出するステップと、
前記第二の通信機器が、前記デフォルトアドレスを宛先とするパケットを受信して第 一の通信機器との間でセッションを確立するステップと、
前記第二の通信機器が、前記確立したセッションに割り当てるアドレスを未使用のァ ドレス力 選択して前記変換テーブルに設定するステップと、
前記第二の通信機器が前記確立したセッションを第三の通信機器に転送するステツ プと力 なるセッション切替え方法。
[24] 第一の通信機器力 の所定のデフォルトアドレスを宛先とするパケットを受信して前 記第一の通信機器との間でセッションを確立するステップと、
前記確立したセッションに未使用のアドレス力 選択したアドレスを割り当てるステツ プと、
前記確立したセッションを前記第一の通信機器と第二の通信機器との間のセッション として前記第二の通信機器に転送するステップとからなる通信機器におけるセッショ ン転送方法。
[25] 第一の通信機器力 の所定のデフォルトアドレスを宛先とするパケットを受信して前 記第一の通信機器との間でセッションを確立させるステップと、
前記確立したセッションに未使用のアドレス力 選択したアドレスを割り当てるステツ プと、
前記確立したセッションを前記第一の通信機器と第二の通信機器との間のセッション として前記第二の通信機器に転送するステップを通信機器に実行させるプログラム。
PCT/JP2006/309503 2005-05-24 2006-05-11 通信機器間における切替えシステム、切替え方法、および切替えプログラム WO2006126403A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US11/915,086 US8396062B2 (en) 2005-05-24 2006-05-11 System for switching between communication devices, switching method, and switching program
JP2007517770A JP5257649B2 (ja) 2005-05-24 2006-05-11 通信機器間における切替えシステム、切替え方法、および切替えプログラム
US13/762,728 US9137271B2 (en) 2005-05-24 2013-02-08 System for switching between communication devices, switching method, and switching program

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2005150903 2005-05-24
JP2005-150903 2005-05-24
JP2005-341993 2005-11-28
JP2005341993 2005-11-28

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US11/915,086 A-371-Of-International US8396062B2 (en) 2005-05-24 2006-05-11 System for switching between communication devices, switching method, and switching program
US13/762,728 Division US9137271B2 (en) 2005-05-24 2013-02-08 System for switching between communication devices, switching method, and switching program

Publications (1)

Publication Number Publication Date
WO2006126403A1 true WO2006126403A1 (ja) 2006-11-30

Family

ID=37451829

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/309503 WO2006126403A1 (ja) 2005-05-24 2006-05-11 通信機器間における切替えシステム、切替え方法、および切替えプログラム

Country Status (3)

Country Link
US (2) US8396062B2 (ja)
JP (1) JP5257649B2 (ja)
WO (1) WO2006126403A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10084862B2 (en) 2015-09-02 2018-09-25 Fujitsu Limited Session control method and computer-readable storage medium storing computer program

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8396062B2 (en) * 2005-05-24 2013-03-12 Nec Corporation System for switching between communication devices, switching method, and switching program
US20080235382A1 (en) * 2007-01-22 2008-09-25 The Regents Of The University Of Colorado Fault tolerant tcp splice systems and methods
US8289975B2 (en) * 2009-06-22 2012-10-16 Citrix Systems, Inc. Systems and methods for handling a multi-connection protocol between a client and server traversing a multi-core system
JP5360114B2 (ja) * 2011-03-31 2013-12-04 ブラザー工業株式会社 通信装置
SG11201407743YA (en) * 2012-06-29 2015-01-29 Allied Telesis Holdings Kk Switch, transmission method, program, and recording medium
FR3022093A1 (fr) 2014-06-10 2015-12-11 Orange Procede d'etablissement d'une session webrtc
US10680998B2 (en) 2015-11-10 2020-06-09 International Business Machines Corporation Method, system, and computer program product for a network device in switchless networks
US20220200952A1 (en) * 2020-12-21 2022-06-23 Oracle International Corporation Network address translation between networks

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11355302A (ja) * 1998-06-11 1999-12-24 Nec Corp Ipアドレス変換装置及びその変換方法
JP2002185464A (ja) * 2000-12-12 2002-06-28 Nec Corp クライアント・サーバシステムおよびそのアドレス変更方法
US20020188730A1 (en) * 2001-06-12 2002-12-12 Wenting Tang Method and system for a modular transmission control protocol (TCP) frequent-handoff design in a streams based transmission control protocol internet protocol (TCP/IP) implementation

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920701A (en) * 1995-01-19 1999-07-06 Starburst Communications Corporation Scheduling data transmission
US5774660A (en) * 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network
CA2283964C (en) * 1997-03-12 2008-05-06 Nomadix, Llc Nomadic translator or router
US7310671B1 (en) * 2000-02-10 2007-12-18 Paradyne Corporation System and method for a trouble shooting portal to allow temporary management access to a communication device
US20030009561A1 (en) * 2001-06-14 2003-01-09 Sollee Patrick N. Providing telephony services to terminals behind a firewall and /or network address translator
EP1307026A1 (de) * 2001-10-29 2003-05-02 Siemens Aktiengesellschaft Effiziente Änderung von Adressinformationen mit Hilfe von NAT und NAPT Routern bei getrennter Übertragung von Nutzdaten und Signalisierungsinformationen
US7042879B2 (en) * 2001-11-02 2006-05-09 General Instrument Corporation Method and apparatus for transferring a communication session
JP2004004167A (ja) 2002-05-30 2004-01-08 Ricoh Co Ltd 光偏向デバイス及び画像表示装置
US7359380B1 (en) * 2003-06-24 2008-04-15 Nvidia Corporation Network protocol processing for routing and bridging
JP3773508B2 (ja) * 2003-08-04 2006-05-10 日本電信電話株式会社 冗長化システムの切り替え方法
JP2005339201A (ja) 2004-05-27 2005-12-08 Nec Corp 分散処理装置及び分散先設定方法並びにプログラム
US8385937B2 (en) * 2004-07-07 2013-02-26 Toshiba America Research Inc. Load equalizing antennas
US8396062B2 (en) * 2005-05-24 2013-03-12 Nec Corporation System for switching between communication devices, switching method, and switching program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11355302A (ja) * 1998-06-11 1999-12-24 Nec Corp Ipアドレス変換装置及びその変換方法
JP2002185464A (ja) * 2000-12-12 2002-06-28 Nec Corp クライアント・サーバシステムおよびそのアドレス変更方法
US20020188730A1 (en) * 2001-06-12 2002-12-12 Wenting Tang Method and system for a modular transmission control protocol (TCP) frequent-handoff design in a streams based transmission control protocol internet protocol (TCP/IP) implementation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TAKAHASHI M. ET AL.: "Data Center Kankyo ni Tekishita TCP Musetsudan Process Migration no Jitsugen", INFORMATION PROCESSING SOCIETY OF JAPAN KENKYU HOKOKU, 17 June 2004 (2004-06-17), pages 29 - 36, XP003007111 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10084862B2 (en) 2015-09-02 2018-09-25 Fujitsu Limited Session control method and computer-readable storage medium storing computer program

Also Published As

Publication number Publication date
US8396062B2 (en) 2013-03-12
US20130208723A1 (en) 2013-08-15
US20090103537A1 (en) 2009-04-23
JPWO2006126403A1 (ja) 2008-12-25
US9137271B2 (en) 2015-09-15
JP5257649B2 (ja) 2013-08-07

Similar Documents

Publication Publication Date Title
JP5257649B2 (ja) 通信機器間における切替えシステム、切替え方法、および切替えプログラム
US11265238B2 (en) Bypassing routing stacks using mobile internet protocol
EP1126682B1 (en) Position identifier management apparatus and method, and position identifier processing method
US8909743B2 (en) Dynamic session maintenance for mobile computing devices
US7457626B2 (en) Virtual private network structure reuse for mobile computing devices
JP3875574B2 (ja) パーシステントコネクションの接続
CN101136926B (zh) 非对称路由情况下的报文转发方法及网络地址转换网关
CN105407164A (zh) 资源请求及资源的路由代理
JP2011039725A (ja) ゲートウェイシステム及び制御方法
WO2013069161A1 (ja) ルーティング方法およびネットワーク伝送装置
JP3688149B2 (ja) パケット中継装置及びパケット中継方法
JP2002532013A (ja) ネットワーク管理システム
JP2003163689A (ja) ネットワーク連携情報処理システムおよびその複数負荷分散機間のアクセス移動方法
CN1863202B (zh) 提高负载均衡设备和服务器处理性能的方法
JP4925130B2 (ja) 通信制御方法およびシステム
CN101227471A (zh) 同网段地址解析协议代理方法及内部处理板间通信方法
JPWO2006098043A1 (ja) ネットワークシステム及びネットワーク接続機器
JP4263915B2 (ja) データ通信システム
JP2003143236A (ja) ゲートウェイ装置
CN105915455A (zh) 位置标识分离协议多归属实现方法及装置
JP2017120962A (ja) 通信装置および通信方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2007517770

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 11915086

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: RU

122 Ep: pct application non-entry in european phase

Ref document number: 06746300

Country of ref document: EP

Kind code of ref document: A1