KR100650003B1 - Data communication load distribution control program and load distribution control method - Google Patents

Data communication load distribution control program and load distribution control method Download PDF

Info

Publication number
KR100650003B1
KR100650003B1 KR1020057018339A KR20057018339A KR100650003B1 KR 100650003 B1 KR100650003 B1 KR 100650003B1 KR 1020057018339 A KR1020057018339 A KR 1020057018339A KR 20057018339 A KR20057018339 A KR 20057018339A KR 100650003 B1 KR100650003 B1 KR 100650003B1
Authority
KR
South Korea
Prior art keywords
communication
computer
data
distributed algorithm
notification packet
Prior art date
Application number
KR1020057018339A
Other languages
Korean (ko)
Other versions
KR20050118700A (en
Inventor
마사히로 치바
Original Assignee
후지쯔 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후지쯔 가부시끼가이샤 filed Critical 후지쯔 가부시끼가이샤
Priority to KR1020057018339A priority Critical patent/KR100650003B1/en
Publication of KR20050118700A publication Critical patent/KR20050118700A/en
Application granted granted Critical
Publication of KR100650003B1 publication Critical patent/KR100650003B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/427Loop networks with decentralised control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/44Star or tree networks

Abstract

트렁킹 기능을 갖지 않는 스위칭 허브와의 사이에서 유연성이 높은 트렁킹을 행할 수 있도록 한다. 컴퓨터(1)는 복수의 통신 인터페이스(1a), (1b), (1c), (1d)의 물리 어드레스 및 통신 상대 컴퓨터가 컴퓨터(1)처에 송신하는 데이터를 복수의 통신 인터페이스에 분산시키는 경우의 분산 알고리즘을 포함하는 분산 알고리즘 통지 패킷(4)을 생성하고(단계 S1), 컴퓨터(3)에 송신한다(단계 S2). 컴퓨터(3)는 컴퓨터(1)에 대하여 송신하는 송신 데이터(5)의 수신처로 해야 할 통신 인터페이스를 통지된 분산 알고리즘에 따라서 결정하고, 그 통신 인터페이스의 물리 어드레스를 수신처로서 지정하여 송신 데이터(5)를 송신한다. Flexible trunking can be performed between switching hubs that do not have a trunking function. When the computer 1 distributes the physical addresses of the plurality of communication interfaces 1a, 1b, 1c, and 1d, and the data that the communication partner computer transmits to the computer 1 to the plurality of communication interfaces. A distributed algorithm notification packet 4 containing a distributed algorithm of is generated (step S1) and transmitted to the computer 3 (step S2). The computer 3 determines the communication interface to be the destination of the transmission data 5 to be transmitted to the computer 1 in accordance with the notified distribution algorithm, designates the physical address of the communication interface as the destination, and sends the transmission data 5 ).

Description

데이터 통신 부하 분산 제어 프로그램 및 데이터 부하 분산 제어 방법{DATA COMMUNICATION LOAD DISTRIBUTION CONTROL PROGRAM AND LOAD DISTRIBUTION CONTROL METHOD}DATA COMMUNICATION LOAD DISTRIBUTION CONTROL PROGRAM AND LOAD DISTRIBUTION CONTROL METHOD}

본 발명은 다중화된 전송로를 통해 데이터 통신을 행할 때의 데이터 통신 부하 분산 제어 프로그램 및 데이터 부하 분산 제어 방법에 관한 것으로, 특히 트렁킹(trunking)을 이용한 데이터 통신 부하 분산 제어 프로그램 및 데이터 부하 분산 제어 방법에 관한 것이다. The present invention relates to a data communication load balancing control program and a data load balancing control method when performing data communication through a multiplexed transmission path, and in particular, a data communication load balancing control program and a data load balancing control method using trunking. It is about.

복수의 장치 사이의 통신의 고대역화를 꾀하는 방법의 하나에 트렁킹이 있다. 트렁킹은 장치 사이를 복수의 전송로로 접속한다. 그리고, 각 장치에서는 복수의 전송로 각각에 접속된 네크워크 인터페이스 카드(NIC)를 논리적으로 하나의 LAN 포트로서 취급한다. 이에 따라, 장치 사이의 전송 대역을 향상시킬 수 있다. Trunking is one of the methods for high bandwidth communication between a plurality of devices. Trunking connects between devices in multiple transmission paths. Each device logically treats a network interface card (NIC) connected to each of a plurality of transmission paths as one LAN port. Accordingly, the transmission band between the devices can be improved.

도 21은 종래의 트렁킹 시스템의 구성예를 도시하는 도면이다. 종래의 트렁킹 시스템은 컴퓨터(910), 스위칭 허브(920) 및 상대측 컴퓨터(930, 940, 950, 960)로 구성된다. 21 is a diagram illustrating a configuration example of a conventional trunking system. Conventional trunking systems consist of a computer 910, a switching hub 920, and a counterpart computer 930, 940, 950, 960.

컴퓨터(910)는 애플리케이션(911), 트렁킹 기구부(912), NIC(913∼916)를 갖고 있다. 애플리케이션(911)은 상대측 컴퓨터(930, 940, 950, 960)와 통신을 행하 고, 여러 가지 데이터 처리를 행하는 처리 기능이다. 트렁킹 기구부(912)는 복수의 NIC(913∼916)를 하나의 LAN 포트라고 간주하여 스위칭 허브(920)와의 사이의 통신을 행한다. 한편, 트렁킹 기구부(912)는, 복수의 NIC(913∼916)의 MAC(Media Access Control) 어드레스나 각 NIC(913∼916)에서 공유하는 IP(Internet Protocol) 어드레스 등이 설정된 기구 정보(912a)를 가지고 있다.The computer 910 has an application 911, a trunking mechanism 912, and NICs 913 to 916. The application 911 is a processing function that communicates with the counterpart computers 930, 940, 950, and 960 and performs various data processing. The trunking mechanism unit 912 regards the plurality of NICs 913 to 916 as one LAN port, and performs communication with the switching hub 920. On the other hand, the trunking mechanism unit 912 is a mechanism information 912a in which MAC (Media Access Control) addresses of the plurality of NICs 913 to 916 and IP (Internet Protocol) addresses shared by the NICs 913 to 916 are set. Have

NIC(913∼916)는 각각 개별의 전송로에서 스위칭 허브(920)에 접속되어 있고, 스위칭 허브(920)와의 사이에서 데이터 통신을 행한다. The NICs 913 to 916 are connected to the switching hub 920 in separate transmission paths, respectively, and perform data communication with the switching hub 920.

스위칭 허브(920)는 8개의 LAN 포트 중의 4개가 컴퓨터(910)의 NIC(913∼916)에 접속되어 있다. 다른 4개의 LAN 포트는 상대측 컴퓨터(930, 940, 950, 960)에 접속되어 있다. Four of the eight LAN ports of the switching hub 920 are connected to the NICs 913 to 916 of the computer 910. The other four LAN ports are connected to the partner computers 930, 940, 950, and 960.

또한, 스위칭 허브(920)는 트렁킹 대응부(921)를 갖고 있다. 트렁킹 대응부(921)는 각 LAN 포트로의 접속 상대의 IP 어드레스 등의 정보가 저장된 구성 정보(921a)를 갖고 있다. In addition, the switching hub 920 has a trunking counterpart 921. The trunking counter 921 has configuration information 921a in which information such as an IP address of a connection partner to each LAN port is stored.

이러한 구성의 시스템에 있어서 컴퓨터(910)와 스위칭 허브(920) 사이에서 트렁킹이 행해진다. 즉, 컴퓨터(910)는 다중화된 NIC(913∼916)를 사용하여 하나의 논리적인 NIC를 생성한다. 그리고 컴퓨터(910)는 논리적인 NIC를 통해서 데이터의 송수신을 행한다. Trunking is performed between the computer 910 and the switching hub 920 in this configuration system. In other words, the computer 910 creates one logical NIC using the multiplexed NICs 913 to 916. The computer 910 transmits and receives data through a logical NIC.

스위칭 허브(920)는 컴퓨터(910)로부터 보내진 데이터를 상대측 컴퓨터(930, 940, 950, 960)로 보낸다. 또한, 스위칭 허브(920)는 상대측 컴퓨터(930, 940, 950, 960)로부터 보내진 데이터를 트렁킹 대응부(921)가, 컴퓨터(910)에 접속된 LAN 포트의 하나로 분류하고, 그 LAN 포트를 통해 컴퓨터(910)에 데이터를 송신한다. The switching hub 920 sends data sent from the computer 910 to the other computer 930, 940, 950, 960. In addition, the switching hub 920 classifies the data sent from the counterpart computer 930, 940, 950, and 960 into one of the LAN ports connected by the trunking counterpart 921 to the computer 910, and through the LAN port. Send data to the computer 910.

이에 따라, 컴퓨터(910)와 스위칭 허브(920) 사이의 데이터 통신 대역이 확대된다. As a result, the data communication band between the computer 910 and the switching hub 920 is expanded.

한편, 트렁킹 대응부(921)를 갖는 스위칭 허브(920)를 통하지 않고 복수의 LAN 포트의 부하 분산 제어를 행할 수도 있다. 예컨대, 복수의 LAN(Local Area Network) 어댑터를 갖는 호스트 컴퓨터가, 통신 상대에 대하여 임의의 LAN 어댑터의 물리 어드레스를 통지한다. 통신 상대는 통지된 물리 어드레스를 지정하여 데이터를 호스트 컴퓨터에 송신한다. 이에 따라, 복수의 통신 상대로부터 보내지는 데이터를 복수의 LAN 어댑터에 부하 분산하여 수신할 수 있다(예컨대, 일본 특허 공개 공보 평7-245619호(도 1) 참조). On the other hand, it is also possible to perform load balancing control of a plurality of LAN ports without going through the switching hub 920 having the trunking counterpart 921. For example, a host computer having a plurality of local area network (LAN) adapters notifies the communication partner of the physical address of any LAN adapter. The communication partner designates the notified physical address and transmits the data to the host computer. Thereby, the data sent from the plurality of communication partners can be load-balanced and received by the plurality of LAN adapters (see, for example, Japanese Patent Laid-Open No. 7-245619 (Fig. 1)).

그러나, 종래 방식으로는 기본적으로 컴퓨터와 스위칭 허브가 모두 트렁킹 기능을 가지고 있지 않으면 접속할 수 없어 적용 조건이 한정된 것으로 되어 있었다. 더구나, 스위칭 허브와 컴퓨터 사이에서 사용하는 NIC수, 포트수나, 분산 알고리즘을 일치시켜 설정해야 하고, 트렁킹을 실행하기 위한 전용 MAC 어드레스도 정의해야 하기 때문에 설정이 번잡하고 사용자가 실수를 야기하기 쉬운 것으로 되어 있었다. In the conventional system, however, the computer and the switching hub cannot connect unless both computers have a trunking function. Therefore, the application conditions are limited. In addition, the number of NICs, ports, and distributed algorithms used between the switching hub and the computer must be matched, and a dedicated MAC address for trunking must be defined. It was.

또한, 사용하는 NIC 수를 증감시키고자 하는 경우에는 상기 설정 정보를 변경하기 위해서, 일단 통신을 중단하지 않으면 스위칭 허브측의 설정을 할 수 없다. 그 때문에 설정 변경이 시스템의 가동율을 저하시키는 요인이 되고 있었다. In the case where the number of NICs to be used is to be increased or decreased, in order to change the setting information, the setting on the switching hub side cannot be made unless the communication is interrupted once. Therefore, the change of setting has become a factor which reduces the operation rate of a system.

또한, 트렁킹 기능을 갖지 않는 스위칭 허브만을 사용하여 트렁킹 기능을 실현하는 경우, 컴퓨터 사이에서 IP 어드레스나 MAC 어드레스의 정보를 교환하는 등의 수단에 의해, 사용하는 NIC를 결정할 수 있지만, 어드레스 정보만의 교환으로는 분산 알고리즘이 한정된다. 예컨대, 통신 상대 장치가 1대인 경우에는, 특정한 NIC밖에 사용되지 않아 분산할 수 없다는 문제가 있었다. In addition, when the trunking function is implemented using only a switching hub having no trunking function, the NIC to be used can be determined by means such as exchanging information of an IP address or a MAC address between computers, but only the address information is used. In exchange, a distributed algorithm is limited. For example, when there is only one communication partner device, there is a problem that only a specific NIC is used and cannot be distributed.

본 발명은 이러한 점을 감안하여 이루어진 것으로, 트렁킹 기능을 갖지 않는 스위칭 허브와의 사이에서 유연성이 높은 트렁킹을 행할 수 있는 컴퓨터를 제공하는 것을 목적으로 한다. This invention is made | formed in view of such a point, and an object of this invention is to provide the computer which can carry out highly flexible trunking with the switching hub which does not have a trunking function.

본 발명에서는 상기 과제를 해결하기 위해서, 도 1에 도시한 바와 같은 데이터 통신 부하 분산 제어 프로그램이 제공된다. 본 발명에 따른 데이터 통신 부하 분산 제어 프로그램은, 복수의 통신 인터페이스(1a, 1b, 1c, 1d)를 실장 가능한 컴퓨터에서의 전송로의 통신 부하를 분산시키기 위한 데이터 통신 부하 분산 제어부(1e)의 기능을 실현하는 것이다. 이 데이터 통신 부하 분산 제어 프로그램에 기초하여 컴퓨터(1)가 이하의 처리를 실행한다. In this invention, in order to solve the said subject, the data communication load balancing control program as shown in FIG. 1 is provided. The data communication load balancing control program according to the present invention has a function of the data communication load balancing control unit 1e for distributing communication loads on a transmission path in a computer that can mount a plurality of communication interfaces 1a, 1b, 1c, and 1d. To realize that. The computer 1 executes the following processing based on this data communication load balancing control program.

컴퓨터(1)는 복수의 통신 인터페이스(1a, 1b, 1c, 1d)의 물리 어드레스, 및 통신 상대의 컴퓨터(3)가 컴퓨터(1)처에 송신하는 데이터를 복수의 통신 인터페이스(1a, 1b, 1c, 1d)에 분산시키는 경우의 분산 알고리즘을 포함하는 분산 알고리즘 통지 패킷(4)을 생성한다(단계 S1). 그리고, 컴퓨터(1)는 네트워크를 통해 접속되어 있는 통신 상대 컴퓨터에 대하여 분산 알고리즘 통지 패킷(4)을 송신한다(단계 S2). The computer 1 transmits the physical addresses of the plurality of communication interfaces 1a, 1b, 1c, and 1d, and the data that the computer 3 of the communication partner transmits to the computer 1 to the plurality of communication interfaces 1a, 1b, A distribution algorithm notification packet 4 including a distribution algorithm in the case of distribution to 1c and 1d is generated (step S1). Then, the computer 1 transmits a distributed algorithm notification packet 4 to the communication counterpart computer connected via the network (step S2).

이에 따라, 컴퓨터(1)에 실장되어 있는 복수의 통신 인터페이스(1a, 1b, 1c, 1d)의 물리 어드레스를 다른 컴퓨터(3)에 통지하여 부하 분산 알고리즘을 지정할 수 있다. As a result, the load balancing algorithm can be specified by notifying other computers 3 of the physical addresses of the plurality of communication interfaces 1a, 1b, 1c, and 1d mounted on the computer 1.

또한, 상기 과제를 해결하기 위해서, 도 1에 도시한 바와 같은 부하 분산 데이터 송신 프로그램이 제공된다. 본 발명에 따른 부하 분산 데이터 송신 프로그램은, 복수의 통신 인터페이스(1a, 1b, 1c, 1d)를 실장 가능한 통신 상대의 컴퓨터(1)까지의 전송로의 통신 부하를 분산시키기 위한 부하 분산 데이터 송신부(3b)의 기능을 실현하는 것이다. 이 부하 분산 데이터 송신 프로그램에 기초하여, 컴퓨터(3)는 이하의 처리를 실행한다. Moreover, in order to solve the said subject, the load balancing data transmission program as shown in FIG. 1 is provided. The load-balancing data transmission program according to the present invention includes a load-balancing data transmission unit for distributing communication loads on a transmission path to a computer 1 of a communication counterpart capable of mounting a plurality of communication interfaces 1a, 1b, 1c, and 1d ( It is to realize the function of 3b). Based on this load balancing data transmission program, the computer 3 executes the following processing.

컴퓨터(3)는 복수의 통신 인터페이스(1a, 1b, 1c, 1d)의 물리 어드레스 및 컴퓨터(1)처에 송신하는 데이터를 복수의 통신 인터페이스(1a, 1b, 1c, 1d)에 분산시키는 경우의 분산 알고리즘을 포함하는 분산 알고리즘 통지 패킷(4)을 수신하면, 복수의 통신 인터페이스(1a, 1b, 1c, 1d)의 물리 어드레스와 분산 알고리즘을 데이터 테이블(3c)에 저장한다. 다음에 컴퓨터(3)는 통신 상대 컴퓨터(1)에 대하여 송신하는 송신 데이터(5)의 수신처가 되는 통신 인터페이스를 분산 알고리즘에 따라서 결정한다. 또한, 컴퓨터(3)는 수신처에 결정된 통신 인터페이스의 물리 어드레스를 수신처로서 지정하여 송신 데이터(5)를 송신한다. When the computer 3 distributes the physical addresses of the plurality of communication interfaces 1a, 1b, 1c, and 1d and the data transmitted to the computer 1 to the plurality of communication interfaces 1a, 1b, 1c, and 1d, Upon receiving the distributed algorithm notification packet 4 including the distributed algorithm, the physical addresses and distributed algorithms of the plurality of communication interfaces 1a, 1b, 1c, and 1d are stored in the data table 3c. Next, the computer 3 determines the communication interface that is the destination of the transmission data 5 transmitted to the communication counterpart computer 1 according to a distribution algorithm. The computer 3 also transmits the transmission data 5 by designating the physical address of the communication interface determined as the destination as the destination.

이에 따라, 컴퓨터(3)로부터 통신 상대 컴퓨터에 대하여 송신하는 송신 데이터(5)는 분산 알고리즘 통지 패킷(4)에서 지정된 분산 알고리즘으로 복수의 통신 인터페이스(1a, 1b, 1c, 1d) 각각을 통한 전송로로 부하를 분산하여 송신된다. Accordingly, the transmission data 5 transmitted from the computer 3 to the counterpart computer is transmitted through each of the plurality of communication interfaces 1a, 1b, 1c, and 1d by the distributed algorithm specified in the distributed algorithm notification packet 4. The load is distributed to the furnace and transmitted.

또한, 상기 과제를 해결하기 위해서, 복수의 통신 인터페이스를 실장 가능한 컴퓨터에서의 전송로의 통신 부하를 분산시키기 위한 데이터 통신 부하 분산 제어방법에 있어서, 상기 복수의 통신 인터페이스의 물리 어드레스 및 통신 상대 컴퓨터가 상기 컴퓨터처에 송신하는 데이터를 상기 복수의 통신 인터페이스에 분산시키는 경우의 분산 알고리즘을 포함하는 분산 알고리즘 통지 패킷을 생성하고, 네트워크를 통해 접속되어 있는 상기 통신 상대 컴퓨터에 대하여, 상기 분산 알고리즘 통지 패킷을 송신하는 처리를 실행시키는 것을 특징으로 하는 데이터 통신 부하 분산 제어 방법이 제공된다. Moreover, in order to solve the said subject, in the data communication load distribution control method for distributing the communication load of the transmission path in the computer which can mount a some communication interface, the physical address of the said some communication interface, and a communication partner computer are Generate a distributed algorithm notification packet including a distribution algorithm in the case of distributing data transmitted to the computer to the plurality of communication interfaces, and send the distributed algorithm notification packet to the communication counterpart computer connected through a network. A data communication load balancing control method is provided which executes a transmitting process.

이러한 데이터 통신 부하 분산 제어 방법에 따르면, 컴퓨터에 실장되어 있는 복수의 통신 인터페이스의 물리 어드레스를 다른 컴퓨터에 통지하여 부하 분산 알고리즘을 지정할 수 있다. According to this data communication load balancing control method, a load balancing algorithm can be specified by notifying other computers of the physical addresses of the plurality of communication interfaces mounted in the computer.

본 발명의 상기 및 다른 목적, 특징 및 이점은 본 발명의 예로서 바람직한 실시예를 나타내는 첨부의 도면과 관련된 이하의 설명에 의해 밝혀질 것이다. The above and other objects, features and advantages of the present invention will become apparent from the following description taken in conjunction with the accompanying drawings which illustrate preferred embodiments as examples of the present invention.

도 1은 실시예에 적용되는 발명의 개념도. 1 is a conceptual diagram of the invention applied to the embodiment.

도 2는 본 발명을 적용한 시스템의 구성예를 도시하는 도면. Fig. 2 is a diagram showing a configuration example of a system to which the present invention is applied.

도 3은 트렁킹 기구부의 내부 구성을 도시하는 도면. 3 is a diagram illustrating an internal configuration of a trunking mechanism.

도 4는 서버 컴퓨터의 하드웨어 구성예를 도시하는 도면. 4 is a diagram illustrating a hardware configuration example of a server computer.

도 5는 데이터 통신 처리 순서를 도시하는 흐름도. 5 is a flowchart showing a data communication processing sequence;

도 6은 분산 알고리즘 통지 처리를 도시하는 개념도. 6 is a conceptual diagram illustrating distributed algorithm notification processing.

도 7은 분산 알고리즘 통지 패킷을 위한 프레임 구성을 도시하는 도면. 7 illustrates a frame configuration for a distributed algorithm notification packet.

도 8은 분산 알고리즘 통지 패킷의 데이터부의 내용예를 도시하는 도면. 8 is a diagram showing an example of the contents of a data portion of a distributed algorithm notification packet;

도 9는 서버 컴퓨터측의 분산 알고리즘 테이블의 데이터 구조예를 도시하는 도면. Fig. 9 is a diagram showing an example of the data structure of a distributed algorithm table on the server computer side.

도 10은 분산 알고리즘 통지 패킷에 따른 분산 알고리즘 테이블의 등록예를 도시하는 도면. 10 is a diagram showing an example of registration of a distribution algorithm table according to a distribution algorithm notification packet.

도 11은 서버 컴퓨터로부터 송신하는 데이터의 부하 분산 처리 상황을 도시하는 도면. 11 is a diagram illustrating a load balancing processing situation of data transmitted from a server computer.

도 12는 클라이언트 컴퓨터로부터 송신하는 데이터의 부하 분산 처리 상황을 도시한 도면. 12 is a diagram illustrating a load balancing processing situation of data transmitted from a client computer.

도 13은 제2 실시예의 시스템 구성예를 도시하는 도면. 13 is a diagram showing a system configuration example of the second embodiment.

도 14는 제2 실시예에 따른 분산 알고리즘 테이블의 데이터 구조예를 도시하는 도면. Fig. 14 is a diagram showing an example of the data structure of a distribution algorithm table according to the second embodiment.

도 15는 제2 실시예에서의 시스템 기동시의 처리 순서를 도시하는 흐름도. Fig. 15 is a flowchart showing a processing sequence at system startup in the second embodiment.

도 16은 복수의 서버 컴퓨터를 이용했을 때의 데이터 송신 순서를 도시한 도면. Fig. 16 is a diagram showing a data transmission procedure when using a plurality of server computers.

도 17은 복수의 서버 컴퓨터를 이용한 경우의 데이터 송신 상황을 도시한 도면. Fig. 17 is a diagram showing a data transmission situation in the case of using a plurality of server computers.

도 18은 NIC을 1장 증설하는 경우의 원리 설명도. 18 is a principle explanatory diagram in the case where one NIC is expanded.

도 19는 NIC 추가시의 분산 알고리즘 테이블 갱신 순서를 도시하는 흐름도. Fig. 19 is a flowchart showing a distribution algorithm table update procedure when adding a NIC.

도 20은 NIC를 1장 삭제하는 경우의 원리 설명도. 20 is a principle explanatory diagram in the case where one NIC is deleted.

도 21은 종래의 트렁킹 시스템의 구성예를 도시하는 도면. 21 is a diagram showing a configuration example of a conventional trunking system.

이하, 본 발명의 실시예를 도면을 참조하여 설명한다. Hereinafter, embodiments of the present invention will be described with reference to the drawings.

우선, 실시예에 적용되는 발명의 개요에 관해서 설명하고, 그 후, 실시예의 구체적인 내용을 설명한다. First, the outline | summary of invention applied to an Example is demonstrated, and the specific content of an Example is then demonstrated.

도 1은 실시예에 적용되는 발명의 개념도이다. 본 발명은 컴퓨터(1)와 컴퓨터(3) 사이의 데이터 통신에 적용된다. 컴퓨터(1)는 복수의 통신 인터페이스(1a, 1b, 1c, 1d)를 갖고 있다. 각 통신 인터페이스(1a, 1b, 1c, 1d)의 물리 어드레스는 각각「a」,「b」,「c」,「d」이다. 통신 인터페이스(1a, 1b, 1c, 1d)는 각각 개별의 전송로에서 스위칭 허브(2)에 접속되고 있다. 1 is a conceptual diagram of the invention applied to the embodiment. The present invention is applied to data communication between the computer 1 and the computer 3. The computer 1 has a plurality of communication interfaces 1a, 1b, 1c, and 1d. The physical addresses of the communication interfaces 1a, 1b, 1c, and 1d are "a", "b", "c", and "d", respectively. The communication interfaces 1a, 1b, 1c and 1d are connected to the switching hub 2 in separate transmission paths, respectively.

또한 컴퓨터(1)는 데이터 통신 부하 분산 제어 프로그램을 실행함으로써 데이터 통신 부하 분산 제어부(1e)의 기능이 구축된다. 데이터 통신 부하 분산 제어부(1e)는 전송로의 통신 부하를 분산시키는 기능을 갖고 있다. 구체적으로는 데이터 통신 부하 분산 제어부(1e)는 이하의 처리를 실효한다. In addition, the computer 1 executes the data communication load balancing control program to establish a function of the data communication load balancing control unit 1e. The data communication load balancing control unit 1e has a function of distributing the communication load on the transmission path. Specifically, the data communication load balancing control unit 1e performs the following processing.

데이터 통신 부하 분산 제어부(1e)는 복수의 통신 인터페이스(1a, 1b, 1c, 1d)의 물리 어드레스 및 통신 상대의 컴퓨터(3)가 컴퓨터(1)에 송신하는 데이터를 복수의 통신 인터페이스(1a, 1b, 1c, 1d)에 분산시키는 경우의 분산 알고리즘을 포함하는 분산 알고리즘 통지 패킷(4)을 생성한다(단계 S1). 그리고, 데이터 통신 부 하 분산 제어부(1e)는 네트워크를 통해 접속되어 있는 통신 상대의 컴퓨터(3)에 대하여 분산 알고리즘 통지 패킷(4)을 송신한다(단계 S2). The data communication load balancing control section 1e transmits the physical addresses of the plurality of communication interfaces 1a, 1b, 1c, and 1d and the data transmitted by the computer 3 of the communication partner to the computer 1. A distribution algorithm notification packet 4 including a distribution algorithm in the case of distributing to 1b, 1c, and 1d is generated (step S1). Then, the data communication load distribution control unit 1e transmits a distributed algorithm notification packet 4 to the computer 3 of the communication partner connected via the network (step S2).

이에 따라, 컴퓨터(1)에 실장되어 있는 복수의 통신 인터페이스(1a, 1b, 1c, 1d)의 물리 어드레스를 다른 컴퓨터(3)에 통지하여 부하 분산 알고리즘을 지정할 수 있다. As a result, the load balancing algorithm can be specified by notifying other computers 3 of the physical addresses of the plurality of communication interfaces 1a, 1b, 1c, and 1d mounted on the computer 1.

한편, 컴퓨터(3)는 통신 인터페이스(3a)를 갖고 있고, 이 통신 인터페이스(3a)가 스위칭 허브(2)에 접속되어 있다. 또한, 컴퓨터(3)는 분산 부하 데이터 송신 프로그램을 실행함으로써 컴퓨터(1)까지의 전송로의 통신 부하를 분산시키기 위한 부하 분산 데이터 송신부(3b)의 기능을 실현한다. 구체적으로는 부하 분산 데이터 송신부(3b)는 이하의 처리를 실행한다. On the other hand, the computer 3 has a communication interface 3a, which is connected to the switching hub 2. In addition, the computer 3 realizes the function of the load balancing data transmitter 3b for distributing the communication load on the transmission path to the computer 1 by executing the distributed load data transmission program. Specifically, the load balancing data transmitter 3b executes the following processing.

부하 분산 데이터 송신부(3b)는 복수의 통신 인터페이스(1a, 1b, 1c, 1d)의 물리 어드레스 및 컴퓨터(1)처에 송신하는 데이터를 복수의 통신 인터페이스(1a, 1b, 1c, 1d)에 분산시키는 경우의 분산 알고리즘을 포함하는 분산 알고리즘 통지 패킷(4)을 수신하면, 복수의 통신 인터페이스(1a, 1b, 1c, 1d)의 물리 어드레스와 분산 알고리즘을 데이터 테이블(3c)에 저장한다. 도 1의 예에서는 물리 어드레스「a, b, c, d」, 분산 알고리즘「라운드 로빈」이 등록되어 있다. The load balancing data transmitter 3b distributes the physical addresses of the plurality of communication interfaces 1a, 1b, 1c, and 1d and the data transmitted to the computer 1 to the plurality of communication interfaces 1a, 1b, 1c, and 1d. Upon receipt of the distributed algorithm notification packet 4 including the distributed algorithm in the case of making a request, the physical addresses and distributed algorithms of the plurality of communication interfaces 1a, 1b, 1c, and 1d are stored in the data table 3c. In the example of FIG. 1, physical addresses "a, b, c, d" and distributed algorithm "round robin" are registered.

다음에, 부하 분산 데이터 송신부(3b)는 통신 상대 컴퓨터에 대하여 송신하는 송신 데이터(5)의 수신처가 되는 통신 인터페이스를 분산 알고리즘에 따라서 결정한다. 또한, 컴퓨터(3)는 결정된 통신 인터페이스의 물리 어드레스를 수신처로서 지정하여 송신 데이터(5)를 송신한다. 예를 들면, 송신 데이터(5)가 4개로 분할되 고, 최초의 데이터(5a)는 수신처로서 물리 어드레스「a」가 지정되어 송신된다. 이에 따라, 데이터(5a)는 스위칭 허브(2)에 있어서 통신 인터페이스(1a)에 전송된다. 2번째 데이터(5b)는 수신처로서 물리 어드레스「b」가 지정되어 송신된다. 이에 따라, 데이터(5b)는 스위칭 허브(2)에 있어서 통신 인터페이스(1b)에 전송된다. 3번째 데이터(5c)는 수신처로서 물리 어드레스「c」가 지정되어 송신된다. 이에 따라, 데이터(5c)는 스위칭 허브(2)에 있어서 통신 인터페이스(1c)에 전송된다. 4번째 데이터(5d)는 수신처로서 물리 어드레스「d」가 지정되어 송신된다. 이에 따라, 데이터(5d)는 스위칭 허브(2)에 있어서 통신 인터페이스(1d)에 전송된다. Next, the load balancing data transmitter 3b determines, according to the distribution algorithm, the communication interface that is the destination of the transmission data 5 transmitted to the communication counterpart computer. The computer 3 also transmits the transmission data 5 by designating the determined physical address of the communication interface as a destination. For example, the transmission data 5 is divided into four, and the first data 5a is transmitted with the physical address "a" designated as the destination. Accordingly, the data 5a is transmitted to the communication interface 1a at the switching hub 2. The second data 5b is transmitted with the physical address " b " specified as the destination. Accordingly, the data 5b is transmitted to the communication interface 1b in the switching hub 2. The third data 5c is transmitted with the physical address " c " specified as the destination. Accordingly, the data 5c is transmitted to the communication interface 1c in the switching hub 2. The fourth data 5d is transmitted with the physical address "d" designated as the destination. Accordingly, the data 5d is transmitted to the communication interface 1d in the switching hub 2.

이에 따라, 컴퓨터(3)로부터 통신 상대 컴퓨터에 대하여 송신하는 송신 데이터(5)는 분산 알고리즘 통지 패킷(4)에서 지정된 분산 알고리즘으로 복수의 통신 인터페이스(1a, 1b, 1c, 1d) 각각을 통한 전송로로 부하를 분산하여 송신된다. Accordingly, the transmission data 5 transmitted from the computer 3 to the counterpart computer is transmitted through each of the plurality of communication interfaces 1a, 1b, 1c, and 1d by the distributed algorithm specified in the distributed algorithm notification packet 4. The load is distributed to the furnace and transmitted.

이와 같이, 컴퓨터(1)측에서 컴퓨터(3)로, 분산 알고리즘 통지 패킷(4)에 의해 복수의 통신 인터페이스(1a, 1b, 1c, 1d)의 물리 어드레스와 분산 알고리즘을 통지하고, 컴퓨터(3)에 있어서 분산 알고리즘에 따라서 결정된 통신 인터페이스의 물리 어드레스처에 송신 데이터(5)를 송신하도록 하였다. 그 때문에, 스위칭 허브(2)에 트렁킹 기능이 없어도 복수의 전송로를 이용한 트렁킹이 가능해진다. 그 결과, 유연성이 높은 네트워크 시스템을 구축할 수 있다. In this way, the computer 1 side informs the computer 3 of the physical addresses and distributed algorithms of the plurality of communication interfaces 1a, 1b, 1c, and 1d by the distributed algorithm notification packet 4, and the computer 3 In this case, the transmission data 5 is transmitted to the physical address destination of the communication interface determined according to the distribution algorithm. Therefore, even if the switching hub 2 does not have a trunking function, trunking using a plurality of transmission paths becomes possible. As a result, a highly flexible network system can be constructed.

더구나, 스위칭 허브(2)에 트렁킹 기구가 불필요하기 때문에, 저렴한 스위칭 허브(2)를 사용할 수 있다. 또한, 분산 알고리즘을 컴퓨터(1)측에서 통지하기 때문에, 알고리즘의 변경이나 통신 인터페이스의 증감으로의 대응이 용이하다. Moreover, since the trunking mechanism is not necessary for the switching hub 2, an inexpensive switching hub 2 can be used. In addition, since the distributed algorithm is notified by the computer 1 side, it is easy to respond to changes in the algorithm and increase or decrease of the communication interface.

또한, 컴퓨터(1)의 통신 상대가 되는 컴퓨터(3)가 복수 존재한 경우, 각각 개별의 분산 알고리즘을 통지함으로써 통신 상대의 컴퓨터마다 통신에 사용하는 통신 인터페이스를 나눌 수 있다. When there are a plurality of computers 3 as communication partners of the computer 1, the respective distributed algorithms are notified to each other so as to divide the communication interface used for communication for each computer of the communication partner.

또한, 컴퓨터(3)에 있어서 송신 상대의 통신 인터페이스를 결정하기 위해서 OSI 계층 모델에서의 네트워크층이나 더욱 상위의 프로토콜을 참조하여 송신 상대의 통신 인터페이스를 결정하는 것도 가능하다. 예를 들면, 통신에 사용되는 애플리케이션의 종별에 따라서 송신 상대의 통신 인터페이스를 결정할 수도 있다. In addition, in order to determine the communication interface of the transmission destination in the computer 3, it is also possible to determine the communication interface of the transmission destination with reference to the network layer or higher protocol in the OSI layer model. For example, the communication interface of the transmission partner may be determined according to the type of the application used for communication.

이하, 도 1에 도시한 구성을 서버 클라이언트 시스템에 적용한 경우의 실시예에 관해서 구체적으로 설명한다. Hereinafter, an embodiment in the case where the configuration shown in FIG. 1 is applied to a server client system will be described in detail.

[제1 실시예][First Embodiment]

우선, 본 발명의 제1 실시예에 관해서 설명한다. 한편, 이하의 설명에 있어서, 데이터 링크층에서의 데이터 송신을 설명할 때에는 신호의 단위를 특히 프레임이라 부르는 것으로 한다. First, the first embodiment of the present invention will be described. In the following description, when the data transmission in the data link layer is described, the unit of the signal is called a frame in particular.

도 2는 본 발명을 적용한 시스템의 구성예를 도시하는 도면이다. 서버 컴퓨터(100)에는 스위칭 허브(200)를 통해 복수의 클라이언트 컴퓨터(300, 300a, 300b, 300c)가 접속되어 있다. 2 is a diagram illustrating a configuration example of a system to which the present invention is applied. The server computer 100 is connected to a plurality of client computers 300, 300a, 300b, and 300c through the switching hub 200.

서버 컴퓨터(100) 내에는 WWW(World Wide Web) 서버(110), 트렁킹 기구부(120) 및 NIC(131∼134)가 설치되어 있다. The server computer 100 is provided with a World Wide Web (WWW) server 110, a trunking mechanism 120, and NICs 131 to 134.

WWW 서버(110)는 클라이언트 컴퓨터(300, 300a, 300b, 300c) 내의 Web 브라우저(310, 310a, 310b, 310c)로부터의 요구에 응답하여 여러 가지 콘텐츠를 제공한 다. 한편, 서버 컴퓨터(100)의 노드명은「hostA」이다. 또한, 클라이언트 컴퓨터(300)의 노드명은「hostB」, 클라이언트 컴퓨터(300a)의 노드명은「hostC」, 클라이언트 컴퓨터(300b)의 노드명은「hostD」, 클라이언트 컴퓨터(300c)의 노드명은「hostE」이다. The WWW server 110 provides various contents in response to requests from the web browsers 310, 310a, 310b, 310c in the client computers 300, 300a, 300b, 300c. On the other hand, the node name of the server computer 100 is "hostA". The node name of the client computer 300 is "hostB", the node name of the client computer 300a is "hostC", the node name of the client computer 300b is "hostD", and the node name of the client computer 300c is "hostE". .

트렁킹 기구부(120)는 WWW 서버(110)와 NIC(131∼134) 사이에 설치된다. 트렁킹 기구부(120)는 복수의 NIC(131∼134)를 묶어 논리적인 고통신 대역을 확보하고 있다. 그리고, 트렁킹 기구부(120)는 WWW 서버(110)로부터 클라이언트 컴퓨터(300, 300a, 300b, 300c)처에 송신하는 데이터를 포함하는 패킷을 생성하고, 복수의 NIC(131∼134) 중 어느 하나를 선택하여 송신한다. The trunking mechanism 120 is installed between the WWW server 110 and the NICs 131 to 134. The trunking mechanism 120 bundles a plurality of NICs 131 to 134 to secure a logical high communication band. The trunking mechanism unit 120 generates a packet including data transmitted from the WWW server 110 to the client computers 300, 300a, 300b, and 300c, and selects one of the plurality of NICs 131 to 134. Select and send.

한편, 트렁킹 기구부(120)는 분산 알고리즘 테이블(121)을 갖고 있다. 분산 알고리즘 테이블(121)에는 데이터 송신 시의 부하 분산의 알고리즘이 정의되어 있다. 그리고, 트렁킹 기구부(120)는 분산 알고리즘 테이블(121)을 참조하여, NIC(131∼134) 각각을 통한 통신의 부하가 균등해지도록 패킷의 송신에 사용하는 NIC를 선택한다. 즉, 부하 분산이 행해진다. 부하 분산은, 예를 들면, 라운드 로빈 방식에 의해서 행해진다. On the other hand, the trunking mechanism 120 has a distributed algorithm table 121. In the distributed algorithm table 121, an algorithm for load balancing at the time of data transmission is defined. And the trunking mechanism part 120 references the distributed algorithm table 121, and selects the NIC used for packet transmission so that the load of communication through each NIC 131-134 may be equalized. That is, load balancing is performed. Load balancing is performed by a round robin system, for example.

또한, 트렁킹 기구부(120)는 서버 컴퓨터(100)의 기동시에 각 클라이언트 컴퓨터(300, 300a, 300b, 300c)에 대하여 분산 알고리즘 통지 패킷을 송신한다. 분산 알고리즘 통지 패킷은 클라이언트 컴퓨터(300, 300a, 300b, 300c)가 서버 컴퓨터(100)처에 패킷을 송신할 때에 수신처로서 지정해야 할 물리 어드레스(MAC 어드레스)의 선택 알고리즘을 지정하는 정보이다. 어떠한 분산 알고리즘을 통지하는 것인 지는 분산 알고리즘 테이블(121)에 정의되어 있다. 한편, 분산 알고리즘 통지 패킷에는 서버 컴퓨터(100)의 각 NIC(131∼134)의 MAC 어드레스도 포함된다. In addition, the trunking mechanism unit 120 transmits a distributed algorithm notification packet to each of the client computers 300, 300a, 300b, and 300c when the server computer 100 starts up. The distributed algorithm notification packet is information specifying a selection algorithm of a physical address (MAC address) to be specified as a destination when the client computer 300, 300a, 300b, 300c transmits the packet to the server computer 100. Which distributed algorithm to notify is defined in the distributed algorithm table 121. The distributed algorithm notification packet also includes the MAC addresses of the NICs 131 to 134 of the server computer 100.

NIC(131∼134)는 LAN 케이블 등에 의해 스위칭 허브(200)에 접속되어 있다. NIC(131∼134)는 스위칭 허브(200)와의 사이에서의 프레임의 송수신을 행한다. 또한, 각 NIC(131∼134)에는 개별의 MAC 어드레스가 설정되어 있다. 도 2의 예에서는, NIC(131)의 MAC 어드레스는「a」이고, NIC(132)의 MAC 어드레스는「b」이며, NIC(133)의 MAC 어드레스는「c」이고, NIC(134)의 MAC 어드레스는「d」이다. The NICs 131 to 134 are connected to the switching hub 200 by a LAN cable or the like. The NICs 131 to 134 transmit and receive frames with the switching hub 200. In addition, an individual MAC address is set in each of the NICs 131 to 134. In the example of FIG. 2, the MAC address of the NIC 131 is " a ", the MAC address of the NIC 132 is " b ", the MAC address of the NIC 133 is " c " The MAC address is "d".

스위칭 허브(200)는 복수의 LAN 포트(211∼214, 221∼224)를 갖고 있고, LAN 포트로부터 입력된 프레임을 그 프레임의 수신처의 MAC 어드레스에 대응하는 NIC가 접속된 LAN 포트로 전송한다. LAN 포트(211∼214)는 각각 LAN 케이블을 통해 서버 컴퓨터(100)의 NIC(131∼134)에 접속되어 있다. 또한, LAN 포트(221∼224)는 각각 LAN 케이블을 통해 클라이언트 컴퓨터(300, 300a, 300b, 300c)에 접속되어 있다. The switching hub 200 has a plurality of LAN ports 211 to 214 and 221 to 224, and transmits a frame input from the LAN port to a LAN port to which a NIC corresponding to the MAC address of the destination of the frame is connected. LAN ports 211 to 214 are connected to NICs 131 to 134 of server computer 100, respectively, via LAN cables. In addition, the LAN ports 221 to 224 are connected to the client computers 300, 300a, 300b, and 300c via LAN cables, respectively.

복수의 클라이언트 컴퓨터(300, 300a, 300b, 300c)는 각각 Web 브라우저(310, 310a, 310b, 310c)를 갖고 있다. Web 브라우저(310, 310a, 310b, 310c)는 사용자로부터의 조작 입력에 응답하여 WWW 서버(110)가 제공하는 콘텐츠의 취득 요구를 출력한다. The plurality of client computers 300, 300a, 300b, and 300c have Web browsers 310, 310a, 310b, and 310c, respectively. The web browsers 310, 310a, 310b, and 310c output a request for acquiring the content provided by the WWW server 110 in response to an operation input from the user.

또한, 클라이언트 컴퓨터(300) 내에는 트렁킹 기구부(320)와 NIC(331)가 설치되어 있다. In addition, a trunking mechanism 320 and a NIC 331 are provided in the client computer 300.

트렁킹 기구부(320)는 Web 브라우저(310)와 NIC(331) 사이에 설치되어 있다. 트렁킹 기구부(320)는 Web 브라우저(310)로부터 출력된 콘텐츠의 취득 요구를 포함 하는 프레임을 NIC(331) 경유로 송신한다. The trunking mechanism 320 is provided between the web browser 310 and the NIC 331. The trunking mechanism unit 320 transmits the frame including the content acquisition request output from the web browser 310 via the NIC 331.

한편, 트렁킹 기구부(320)는 분산 알고리즘 테이블(321)을 갖고 있다. 분산 알고리즘 테이블(321)은 서버 컴퓨터(100)에 대하여 송신하는 데이터를 복수의 NIC(131∼134)에 부하 분산시키기 위한 알고리즘이 정의되어 있다. 분산 알고리즘 테이블(321)은 서버 컴퓨터(100)의 트렁킹 기구부(120)로부터 브로드캐스트로 송신된 분산 알고리즘 통지 패킷에 기초하여 설정된다. On the other hand, the trunking mechanism 320 has a distributed algorithm table 321. In the distributed algorithm table 321, an algorithm for load balancing data transmitted to the server computer 100 to the plurality of NICs 131 to 134 is defined. The distributed algorithm table 321 is set based on the distributed algorithm notification packet transmitted from the trunking mechanism unit 120 of the server computer 100 by broadcast.

트렁킹 기구부(320)는 데이터를 송신할 때, 분산 알고리즘 테이블(321)에 기초하여 서버 컴퓨터(100)에 대하여 송신하는 프레임의 수신처 MAC 어드레스를 결정한다. 예를 들면, 라운드 로빈 방식에 의해서 복수의 NIC(131∼134) 각각에 균등하게 프레임 송신이 행해지도록 MAC 어드레스가 결정된다. When transmitting data, the trunking mechanism unit 320 determines a destination MAC address of a frame transmitted to the server computer 100 based on the distributed algorithm table 321. For example, the MAC address is determined so that frame transmission is performed equally to each of the plurality of NICs 131 to 134 by the round robin method.

NIC(331)는 LAN 케이블을 통해 스위칭 허브(200)의 LAN 포트(221)에 접속되어 있고, 스위칭 허브(200)와의 사이에서 프레임의 송수신을 행한다. NIC(331)의 MAC 어드레스는「x」이다. The NIC 331 is connected to the LAN port 221 of the switching hub 200 via a LAN cable, and transmits and receives a frame with the switching hub 200. The MAC address of the NIC 331 is "x".

다음에, 서버 컴퓨터(100)의 트렁킹 기구부(120)와 클라이언트 컴퓨터(300)의 트렁킹 기구부(320)의 내부 구성에 관해서 설명한다. Next, the internal structure of the trunking mechanism part 120 of the server computer 100 and the trunking mechanism part 320 of the client computer 300 is demonstrated.

도 3은 트렁킹 기구부의 내부 구성을 도시한 도면이다. 서버 컴퓨터(100)의 트렁킹 기구부(120)는 분산 알고리즘 테이블(121), 분산 알고리즘 통지부(122), 송신 데이터 부하 분산 처리부(123) 및 수신 데이터 교환부(124)을 갖고 있다. 3 is a diagram illustrating an internal configuration of the trunking mechanism part. The trunking mechanism unit 120 of the server computer 100 includes a distributed algorithm table 121, a distributed algorithm notification unit 122, a transmission data load distribution processing unit 123, and a reception data exchange unit 124.

분산 알고리즘 테이블(121)에는 클라이언트 컴퓨터(300)와의 사이의 데이터 통신에 적용하는 부하 분산 알고리즘이 정의되어 있다. The distributed algorithm table 121 defines a load balancing algorithm applied to data communication with the client computer 300.

분산 알고리즘 통지부(122)는 분산 알고리즘 테이블(121)을 참조하여, 클라이언트 컴퓨터(300)에 대하여 클라이언트 컴퓨터(300)로부터 서버 컴퓨터(100)로 송신하는 데이터에 관한 분산 알고리즘을 통지한다. 분산 알고리즘은 분산 알고리즘 통지 패킷(20)에 의해 통지된다. The distributed algorithm notification unit 122 refers to the distributed algorithm table 121 and notifies the client computer 300 of the distributed algorithm regarding the data transmitted from the client computer 300 to the server computer 100. The distributed algorithm is notified by the distributed algorithm notification packet 20.

송신 데이터 부하 분산 처리부(123)는 송신 데이터(111)를 수취하면, 분산 알고리즘 테이블(121)을 참조하여 송신 상대가 되는 클라이언트 컴퓨터(300)에 따른 분산 알고리즘을 결정한다. 그리고, 송신 데이터 부하 분산 처리부(123)는 결정한 분산 알고리즘에 따라서 송신 데이터(111)를 복수의 NIC(131∼134)에 분류하여 송신한다. When the transmission data load balancing processing unit 123 receives the transmission data 111, the transmission data load balancing processing unit 123 refers to the distribution algorithm table 121 and determines a distribution algorithm according to the client computer 300 to be the transmission partner. Then, the transmission data load balancing processing unit 123 classifies the transmission data 111 into the plurality of NICs 131 to 134 according to the determined distribution algorithm, and transmits them.

수신 데이터 교환부(124)는 클라이언트 컴퓨터(300)로부터 수취한 데이터를 WWW 서버(110)에 건네준다. 한편, 수신 데이터 교환부(124)는 수신 데이터가 분산 처리에 의해 분할 전송되고 복수의 NIC(131∼134)로부터 입력된 경우, 분할된 데이터를 연결하여 WWW 서버(110)에 건네준다. The received data exchanger 124 passes the data received from the client computer 300 to the WWW server 110. On the other hand, the received data exchanger 124 connects the divided data and passes it to the WWW server 110 when the received data is divided and transmitted by distributed processing and input from the plurality of NICs 131 to 134.

클라이언트 컴퓨터(300)의 트렁킹 기구부(320)는 분산 알고리즘 테이블(321), 분산 알고리즘 취득부(322), 송신 데이터 부하 분산 처리부(323) 및 수신 데이터 교환부(324)를 갖고 있다. The trunking mechanism 320 of the client computer 300 includes a distributed algorithm table 321, a distributed algorithm acquisition unit 322, a transmission data load balancing processing unit 323, and a reception data exchange unit 324.

분산 알고리즘 테이블(321)에는 서버 컴퓨터(100)와의 사이의 데이터 통신에 적용하는 부하 분산 알고리즘이 정의되어 있다. In the distributed algorithm table 321, a load balancing algorithm that is applied to data communication with the server computer 100 is defined.

분산 알고리즘 취득부(322)는 서버 컴퓨터(100)로부터 보내오는 분산 알고리즘 통지 패킷(20)을 수취하고 분산 알고리즘 테이블(321)의 내용을 갱신한다. The distributed algorithm obtaining unit 322 receives the distributed algorithm notification packet 20 sent from the server computer 100 and updates the contents of the distributed algorithm table 321.

송신 데이터 부하 분산 처리부(323)는 송신 데이터(311)를 수취하면, 분산 알고리즘 테이블(321)을 참조하여 송신 상대가 되는 서버 컴퓨터(100)에 따른 분산 알고리즘을 결정한다. 그리고, 송신 데이터 부하 분산 처리부(323)는 결정한 분산 알고리즘에 따라서, 송신 데이터(311)를 구성하는 복수의 데이터의 수신처 MAC 어드레스를 복수의 NIC(131∼134)로 분류하여 송신한다. When the transmission data load balancing processing unit 323 receives the transmission data 311, the transmission data load balancing processing unit 323 refers to the distribution algorithm table 321 to determine a distribution algorithm according to the server computer 100 as a transmission partner. The transmission data load balancing processing unit 323 classifies and transmits the destination MAC addresses of the plurality of data constituting the transmission data 311 to the plurality of NICs 131 to 134 according to the determined distribution algorithm.

수신 데이터 교환부(324)는 서버 컴퓨터(100)로부터 수취한 데이터를 Web 브라우저(310)에 건네준다. 한편, 수신 데이터 교환부(324)는 수신 데이터가 분산 처리에 의해 분할 전송되고, 복수의 NIC(131∼134) 경유로 전송된 경우, 분할된 데이터를 연결하여 Web 브라우저(310)에 건네준다. The received data exchanger 324 passes the data received from the server computer 100 to the web browser 310. On the other hand, the received data exchanger 324 transmits the divided data to the Web browser 310 when the received data is dividedly transmitted by the distributed processing and transmitted via the plurality of NICs 131 to 134.

한편, 도 2, 도 3에서는 클라이언트 컴퓨터(300)의 구성만이 상세하게 도시되고 있지만, 다른 클라이언트 컴퓨터(300a, 300b, 300c)도 동일한 구성이다. In addition, although only the structure of the client computer 300 is shown in detail in FIGS. 2 and 3, the other client computers 300a, 300b, and 300c are the same structure.

이러한 구성의 시스템에 의해, 복수의 클라이언트 컴퓨터(300, 300a, 300b, 300c)의 Web 브라우저(310, 310a, 310b, 310c)로부터의 콘텐츠 취득 요구가 스위칭 허브(200) 경유로 서버 컴퓨터(100)에 보내진다. 그러면, 서버 컴퓨터(100) 내의 WWW 서버(110)에 의해 요구된 콘텐츠가 송신된다. By the system having such a configuration, the content acquisition request from the web browsers 310, 310a, 310b, 310c of the plurality of client computers 300, 300a, 300b, 300c is transmitted via the switching hub 200 to the server computer 100. Is sent to. Then, the content requested by the WWW server 110 in the server computer 100 is transmitted.

이 때, 서버 컴퓨터(100)와 스위칭 허브(200) 사이가 복수의 LAN 케이블로 접속되어 있기 때문에, 하나의 전송로에서 접속한 경우의 4배의 대역폭을 얻을 수 있다. 예컨대, 하나의 전송로가 100Mbps의 대역폭을 갖고 있으면, 서버 컴퓨터(100)와 스위칭 허브(200) 사이에서 400Mbps의 속도로의 통신이 가능해진다. 이에 따라, 복수의 클라이언트 컴퓨터(300, 300a, 300b, 300c)로부터 서버 컴퓨터(100) 로의 동시 액세스에 수반하는 고부하에 견딜 수 있다. At this time, since the server computer 100 and the switching hub 200 are connected by a plurality of LAN cables, a bandwidth four times as large as when connected in one transmission path can be obtained. For example, if one transmission path has a bandwidth of 100 Mbps, communication at a speed of 400 Mbps is possible between the server computer 100 and the switching hub 200. This can withstand the high load associated with simultaneous access from the plurality of client computers 300, 300a, 300b, 300c to the server computer 100.

더구나, 서버 컴퓨터(100)로부터 클라이언트 컴퓨터(300, 300a, 300b, 300c)로 송신하는 데이터는, 트렁킹 기구부(120)에 의해 각 NIC(131∼134)에 밸런스 좋게 분류되기 때문에, 하나의 회선에 통신량이 치우치는 일이 없다. 또한, 클라이언트 컴퓨터(300)로부터 서버 컴퓨터(100)로 송신하는 데이터의 수신처는 트렁킹 기구부(320)에 의해서 NIC(131∼134)에 밸런스 좋게 분류되기 때문에, 하나의 회선에 통신량이 치우치는 일이 없다. In addition, since the data transmitted from the server computer 100 to the client computers 300, 300a, 300b, and 300c are classified by the trunking mechanism unit 120 to each NIC 131 to 134 in a balanced manner, the data is transferred to one line. The traffic is not biased. In addition, since the destinations of the data transmitted from the client computer 300 to the server computer 100 are classified in the NICs 131 to 134 by the trunking mechanism 320 in a balanced manner, there is no bias in the amount of communication on one line. .

도 4는 서버 컴퓨터의 하드웨어 구성예를 도시하는 도면이다. 서버 컴퓨터(100)는 CPU(Central Processing Unit : 101)에 의해서 장치 전체가 제어되고 있다. CPU(101)에는 버스(107)를 통해 RAM(Random Access Memory : 102), 하드 디스크 드라이브(HDD : Hard Disk Drive : 103), 그래픽 처리 장치(104), 입력 인터페이스(105) 및 복수의 NIC(131∼134)가 접속되어 있다. 4 is a diagram illustrating a hardware configuration example of a server computer. In the server computer 100, the entire apparatus is controlled by a central processing unit (CPU) 101. The CPU 101 includes a random access memory (RAM) 102, a hard disk drive (HDD) 103, a graphics processing unit 104, an input interface 105, and a plurality of NICs (via a bus 107). 131 to 134 are connected.

RAM(102)에는 CPU(101)에 실행시키는 OS(Operating System)의 프로그램이나 애플리케이션 프로그램의 적어도 일부가 일시적으로 저장된다. 또한, RAM(102)에는 CPU(101)에 의한 처리에 필요한 각종 데이터가 저장된다. HDD(103)에는 OS나 어플리케리션 프로그램이 저장된다. At least a part of an OS (Operating System) program or an application program to be executed by the CPU 101 is temporarily stored in the RAM 102. The RAM 102 also stores various data necessary for processing by the CPU 101. The HDD 103 stores an OS and an application program.

그래픽 처리 장치(104)에는 모니터(11)가 접속되어 있다. 그래픽 처리 장치(104)는 CPU(101)로부터의 명령에 따라서 화상을 모니터(11)의 화면에 표시시킨다. 입력 인터페이스(105)에는 키보드(12)와 마우스(13)가 접속되어 있다. 입력 인터페이스(105)는 키보드(12)나 마우스(13)로부터 보내오는 신호를 버스(107)를 통해 CPU(101)에 송신한다. NIC(131∼134)는 각각 스위칭 허브(200)에 접속되어 있다. The monitor 11 is connected to the graphics processing unit 104. The graphics processing unit 104 displays an image on the screen of the monitor 11 in accordance with a command from the CPU 101. The keyboard 12 and the mouse 13 are connected to the input interface 105. The input interface 105 transmits a signal from the keyboard 12 or the mouse 13 to the CPU 101 via the bus 107. The NICs 131 to 134 are connected to the switching hub 200, respectively.

이상과 같은 하드웨어 구성에 의해서, 제1 실시예의 처리 기능을 실현할 수 있다. 한편, 도 4에는 서버 컴퓨터(100)의 하드웨어 구성을 도시하였지만, 클라이언트 컴퓨터(300, 300a, 300b, 300c)도 동일한 하드웨어 구성으로 실현된다. 단, 클라이언트 컴퓨터(300, 300a, 300b, 300c)에는 NIC는 하나이면 좋다. By the hardware configuration as described above, the processing function of the first embodiment can be realized. 4 illustrates the hardware configuration of the server computer 100, the client computers 300, 300a, 300b, and 300c are also realized with the same hardware configuration. However, only one NIC is required for the client computers 300, 300a, 300b, and 300c.

다음에, 서버 컴퓨터(100)와 클라이언트 컴퓨터(300) 사이의 통신을 예에 의해, 데이터 통신을 행하기 위한 처리에 관해서 설명한다. Next, the communication for performing data communication between the server computer 100 and the client computer 300 by way of example will be described.

도 5는 데이터 통신 처리 순서를 도시하는 흐름도이다. 도 5에는 좌측에 서버 컴퓨터(100)의 처리가 도시되고 있고, 우측에 클라이언트 컴퓨터(300)의 처리가 도시되고 있다. 이하, 도 5에 도시하는 처리를 단계 번호에 따라서 설명한다. 5 is a flowchart showing a data communication processing procedure. 5 shows a process of the server computer 100 on the left side, and a process of the client computer 300 on the right side. Hereinafter, the process shown in FIG. 5 is demonstrated according to a step number.

[단계 S11] 클라이언트 컴퓨터(300)는 분산 알고리즘 통지 패킷(20)의 수신을 대기한다. [Step S11] The client computer 300 waits for the reception of the distributed algorithm notification packet 20.

[단계 S12] 서버 컴퓨터(100)은 시스템의 기동시 등에 분산 알고리즘 통지 패킷(20)을 브로드캐스트 프레임으로 송신한다. [Step S12] The server computer 100 transmits a distributed algorithm notification packet 20 in a broadcast frame at the time of system startup.

[단계 S13] 서버 컴퓨터(100)는 그 후, 클라이언트 컴퓨터(300)부터의 응답을 대기한다. [Step S13] The server computer 100 then waits for a response from the client computer 300.

[단계 S14] 클라이언트 컴퓨터(300)는 분산 알고리즘 통지 패킷을 수신했는지 여부를 판단한다. 분산 알고리즘 통지 패킷을 수신한 경우, 처리가 단계 S15로 진행된다. 분산 알고리즘 통지 패킷을 수신하지 않은 경우, 처리가 단계 S11로 진행되고, 계속해서 분산 알고리즘 통지 패킷(20)의 수신을 대기한다. [Step S14] The client computer 300 determines whether or not the distributed algorithm notification packet has been received. When the distributed algorithm notification packet is received, the process proceeds to step S15. If the distributed algorithm notification packet is not received, the process proceeds to step S11 to continue waiting for the reception of the distributed algorithm notification packet 20.

[단계 S15] 클라이언트 컴퓨터(300)는 서버 컴퓨터(100)로부터 보내진 분산 알고리즘 통지 패킷(20)으로부터 분산 알고리즘에 관한 정보를 추출하여 분산 알고리즘 테이블(321)에 받아들인다. [Step S15] The client computer 300 extracts the information about the distributed algorithm from the distributed algorithm notification packet 20 sent from the server computer 100 and accepts it into the distributed algorithm table 321.

[단계 S16] 클라이언트 컴퓨터(300)는 서버 컴퓨터(100)에 대하여 분산 알고리즘 통지 패킷에 관한 응답을 송신한다. [Step S16] The client computer 300 transmits a response to the distributed algorithm notification packet to the server computer 100.

[단계 S17] 서버 컴퓨터(100)는 일정 시간 내에 응답을 수신했는지 여부를 판단한다. 일정 시간 내에 응답을 수신한 경우, 처리가 단계 S18로 진행된다. 일정 시간 내에 응답을 수신하지 않은 경우, 처리가 단계 S12로 진행되고, 재차, 분산 알고리즘 통지 패킷(20)이 송신된다. [Step S17] The server computer 100 determines whether a response has been received within a predetermined time. If a response is received within a certain time, the process proceeds to step S18. If no response is received within a certain time, the process proceeds to step S12 and again, the distributed algorithm notification packet 20 is transmitted.

[단계 S18] 서버 컴퓨터(100)는 응답 내용을 확인하여 통신 상대의 MAC 어드레스를 포함하는 정보를 분산 알고리즘 테이블(121)에 추가한다. [Step S18] The server computer 100 checks the response contents and adds the information including the MAC address of the communication partner to the distribution algorithm table 121.

[단계 S19] 서버 컴퓨터(100)는 클라이언트 컴퓨터(300)와의 통신을 개시한다. [STEP S19] The server computer 100 starts communication with the client computer 300.

[단계 S20] 클라이언트 컴퓨터(300)는 서버 컴퓨터(100)와의 통신을 개시한다. [Step S20] The client computer 300 starts communication with the server computer 100.

[단계 S21] 서버 컴퓨터(100)는 분산 알고리즘에 따라서 데이터를 송신한다. [Step S21] The server computer 100 transmits data in accordance with a distribution algorithm.

[단계 S22] 클라이언트 컴퓨터(300)는 분산 알고리즘에 따른 데이터를 송신한다. [Step S22] The client computer 300 transmits data according to the distribution algorithm.

이와 같이 하여, 서버 컴퓨터(100)로부터 클라이언트 컴퓨터(300)로 분산 알고리즘 통지 패킷이 송신되고 분산 알고리즘이 통지된다. 그 결과, 클라이언트 컴 퓨터(300)측에서도 서버 컴퓨터(100)의 NIC의 구성을 인식하고 이들의 NIC에 부하 분산시킨 데이터 송신이 가능해진다. In this way, the distributed algorithm notification packet is sent from the server computer 100 to the client computer 300 and the distributed algorithm is notified. As a result, the client computer 300 side can also recognize the configuration of the NIC of the server computer 100 and load-balance the data to these NICs.

도 6은 분산 알고리즘 통지 처리를 도시하는 개념도이다. 트렁킹 기구부(120) 내의 분산 알고리즘 통지부(122)는 클라이언트 컴퓨터(300, 300a, 300b, 300c)와의 통신에 앞서, 분산 알고리즘 통지 패킷(20)을 생성하고, 임의의 NIC를 통해 이더넷(등록 상표)의 프레임에 실어 브로드캐스트로 송신한다. 이에 따라, 분산 알고리즘 통지 패킷(20)이 각 클라이언트 컴퓨터(300, 300a, 300b, 300c)에 전달된다. 예컨대, 라운드 로빈 방식에 의한 수신 분산을 행하고자 하는 경우, 자기앞의 데이터는 NIC(131∼134)를 라운드 로빈 방식을 사용하여 송신하도록 분산 알고리즘 통지 패킷(20)을 송신한다. 6 is a conceptual diagram illustrating distributed algorithm notification processing. The distributed algorithm notification unit 122 in the trunking mechanism unit 120 generates the distributed algorithm notification packet 20 prior to communication with the client computers 300, 300a, 300b, and 300c, and executes an Ethernet (registered trademark) through any NIC. Frame is sent by broadcast. Accordingly, the distributed algorithm notification packet 20 is delivered to each client computer 300, 300a, 300b, 300c. For example, when it is desired to perform reception distribution by the round robin method, the data in front of the self sends the distributed algorithm notification packet 20 to transmit the NICs 131 to 134 using the round robin method.

또한, 분산 알고리즘 통지 패킷(20)을 수취한 클라이언트 컴퓨터(300, 300a, 300b, 300c)에서는 응답 패킷이 서버 컴퓨터(100)에 송신된다. In addition, in the client computers 300, 300a, 300b, and 300c receiving the distributed algorithm notification packet 20, the response packet is transmitted to the server computer 100. FIG.

여기서, 분산 알고리즘의 통지 및 응답 등을 행할 때의 프레임 구성에 관해서 설명한다. Here, a description will be given of the frame structure at the time of notification and response of the distributed algorithm.

도 7은 분산 알고리즘 통지 패킷을 위한 프레임 구성을 도시하는 도면이다. 프레임(30)은 상대 MAC 어드레스(31), 자신의 MAC 어드레스(32), 프로토콜 식별자(33), 커맨드부(34) 및 데이터부(35)로 구성된다. 7 is a diagram illustrating a frame configuration for a distributed algorithm notification packet. The frame 30 is composed of a partner MAC address 31, its MAC address 32, a protocol identifier 33, a command unit 34 and a data unit 35.

상대 MAC 어드레스(31)는 프레임의 송신처를 나타내는 MAC 어드레스의 설정영역이다. 분산 알고리즘 통지 패킷(20)의 경우, 브로드캐스트 전송을 나타내는 값「FF-FF-FF-FF-FF-FF」가 설정된다. 클라이언트 컴퓨터(300, 300a, 300b, 300c)의 NIC의 MAC 어드레스가 기지가 된 후에, 분산 알고리즘의 추가 등을 행하는 경우, 상대 MAC 어드레스(31)에는 송신 상대의 NIC의 MAC 어드레스가 설정된다. 복수의 분산 알고리즘 통지 패킷(20)을 송신할 수도 있다. The relative MAC address 31 is a setting area of the MAC address indicating the transmission destination of the frame. In the case of the distributed algorithm notification packet 20, the value "FF-FF-FF-FF-FF-FF" indicating broadcast transmission is set. After the MAC address of the NICs of the client computers 300, 300a, 300b, and 300c is known, when the distributed algorithm is added, the MAC address of the transmission partner NIC is set in the partner MAC address 31. A plurality of distributed algorithm notification packets 20 may be transmitted.

자신의 MAC 어드레스(32)에는 서버 컴퓨터(100) 자신의 NIC의 MAC 어드레스가 설정된다. 서버 컴퓨터(100)는 임의의 NIC를 선택하여 분산 알고리즘 통지 패킷(20)을 송신하기 위한, 그 선택된 NIC의 MAC 어드레스가 자신의 MAC 어드레스(32)로 설정된다. The MAC address 32 of its own NIC is set to its own NIC address. The server computer 100 sets the MAC address of its selected NIC to its MAC address 32 for selecting any NIC and sending the distributed algorithm notification packet 20.

프로토콜 식별자(33)에는 분산 알고리즘 통지 패킷인 것을 나타내는 식별자가 설정된다. 클라이언트 컴퓨터(300, 300a, 300b, 300c)측에서는, 프로토콜 식별자를 확인함으로써 수신한 패킷이 분산 알고리즘 통지 패킷(20)인 것을 인식한다. The protocol identifier 33 is set with an identifier indicating that it is a distributed algorithm notification packet. The client computers 300, 300a, 300b, and 300c recognize that the received packet is the distributed algorithm notification packet 20 by checking the protocol identifier.

커맨드부(34)에는 정보 패킷의 종별이 설정된다. 종별에는 광고, 추가, 삭제 및 응답이 있다. The command section 34 sets the type of information packet. The categories include advertisements, additions, deletions, and responses.

패킷 종별「광고」는 분산 알고리즘 데이터의 광고(브로드캐스트)인 것을 나타내고 있다. 시스템 운용 개시 시에는 커맨드부(24)에「광고」를 설정한 분산 알고리즘 통지 패킷(20)이 송신된다. 커맨드부(34)에「광고」라고 설정된 프레임은 서버 컴퓨터(100)로부터 클라이언트 컴퓨터(300, 300a, 300b, 300c)에 송신된다. The packet type " advertisement " indicates that this is an advertisement (broadcast) of distributed algorithm data. At the start of system operation, the distributed algorithm notification packet 20 in which "advertisement" is set is sent to the command unit 24. The frame set to "advertisement" in the command unit 34 is transmitted from the server computer 100 to the client computers 300, 300a, 300b, and 300c.

패킷 종별「추가」는 분산 알고리즘 데이터의 추가 지시인 것을 나타내고 있다. 커맨드부(34)에「추가」라고 설정된 프레임은 서버 컴퓨터(100)로부터 클라이언트 컴퓨터(300, 300a, 300b, 300c)에 송신된다. The packet type " addition " indicates that this is an addition instruction of distributed algorithm data. The frame set to "addition" to the command unit 34 is transmitted from the server computer 100 to the client computers 300, 300a, 300b, and 300c.

패킷 종별「삭제」는 분산 알고리즘 데이터의 삭제 지시인 것을 나타내고 있 다. 커맨드부(34)에「삭제」라고 설정된 프레임은 서버 컴퓨터(100)로부터 클라이언트 컴퓨터(300, 300a, 300b, 300c)에 송신된다. The packet type "delete" indicates that the instruction to delete distributed algorithm data. The frame set to "delete" in the command unit 34 is transmitted from the server computer 100 to the client computers 300, 300a, 300b, and 300c.

패킷 종별「응답」은 광고, 추가, 삭제 지시에 대한 응답인 것을 나타내고 있다. 커맨드부(34)에「응답」이라고 설정된 프레임은 클라이언트 컴퓨터(300, 300a, 300b, 300c)에서 서버 컴퓨터(100)에 송신된다. The packet type " response " indicates that the packet type is a response to an advertisement, addition or deletion instruction. The frame set as "response" in the command unit 34 is transmitted from the client computers 300, 300a, 300b, and 300c to the server computer 100.

데이터부(35)에는 분산 알고리즘 데이터의 내용이 설정된다. 구체적으로는, 서버 컴퓨터(100)의 노드명, 클라이언트 컴퓨터(300, 300a, 300b, 300c)의 노드명, 애플리케이션명, 분산 알고리즘, 서버 컴퓨터(100)의 NIC(131∼134)의 MAC 어드레스 등의 정보가 데이터부(35)에 설정된다. 한편, 서버 컴퓨터(100)가 복수의 컴퓨터로 구성되는 클러스터 구성인 경우, NIC(131∼134)의 MAC 어드레스로의 부대 정보로서 그 NIC가 실장되어 있는 컴퓨터의 노드명이 추가된다. In the data section 35, contents of distributed algorithm data are set. Specifically, the node name of the server computer 100, the node name of the client computers 300, 300a, 300b, and 300c, the application name, the distributed algorithm, the MAC address of the NICs 131 to 134 of the server computer 100, and the like. Information is set in the data unit 35. On the other hand, in the case where the server computer 100 is a cluster configuration composed of a plurality of computers, the node name of the computer on which the NIC is mounted is added as incidental information to the MAC addresses of the NICs 131 to 134.

한편, 데이터부(35)의 내용은 클라이언트 컴퓨터(300, 300a, 300b, 300c)마다의 리스트 구조가 되어 있고, 각 클라이언트 컴퓨터(300, 300a, 300b, 300c)는 자기에게 대응하는 정보만을 추출하여 분산 알고리즘 테이블에 설정한다. On the other hand, the contents of the data unit 35 have a list structure for each of the client computers 300, 300a, 300b, and 300c, and each client computer 300, 300a, 300b, and 300c extracts only information corresponding to itself. Set in the distribution algorithm table.

이더넷(등록 상표)의 경우 각각의 NIC(131∼134)는 MAC 어드레스라고 불리는 일의의 네트워크 어드레스를 가지고 있다. 그 때문에, 각 클라이언트 컴퓨터(300, 300a, 300b, 300c)는 서버 컴퓨터(100)로부터 통지된 4장의 NIC(131∼134)의 MAC 어드레스처에 이더넷 프레임을 라운드 로빈 방식으로 송신함으로써, 스위칭 허브(200)가 트렁킹 기능을 가지고 있지 않더라도 스위칭 허브(200)에 의한 트렁킹 기능과 동등한 분산 처리가 가능해진다. In the case of Ethernet (registered trademark), each of the NICs 131 to 134 has a unique network address called a MAC address. Therefore, each client computer 300, 300a, 300b, 300c transmits the Ethernet frame in a round robin manner to the MAC address of the four NICs 131 to 134 notified from the server computer 100, thereby providing a switching hub ( Even if the 200 does not have a trunking function, distributed processing equivalent to the trunking function by the switching hub 200 is possible.

여기서, 혹시 ARP(Address Resolution Protocol) 등의 인터넷 프로토콜을 사용하여 클라이언트 컴퓨터(300, 300a, 300b, 300c)로 어드레스 정보를 통지한 경우, 통지할 수 있는 MAC 어드레스는 하나뿐이다. 또한, ARP에서는 분산 알고리즘 정보는 통지할 수 없다. 그 때문에, 클라이언트 컴퓨터(300, 300a, 300b, 300c) 각각으로부터 서버 컴퓨터(100)로 송신하는 데이터에 있어서 사용 가능한 NIC는 1장만이 된다. 예컨대, 1대의 클라이언트 컴퓨터(300)로부터 대량의 데이터가 서버 컴퓨터(100)에 송신되는 경우, 수신 데이터는 4장 중 특정한 1장밖에 사용되지 않고 트렁킹은 실행되지 않는다. 제1 실시예에서는 이러한 경우라도 트렁킹에 의한 부하 분산이 가능하다. Here, when the address information is notified to the client computers 300, 300a, 300b, and 300c by using an Internet protocol such as ARP (Address Resolution Protocol), only one MAC address can be notified. In addition, ARP cannot notify distributed algorithm information. Therefore, only one NIC can be used for data transmitted from the client computers 300, 300a, 300b, and 300c to the server computer 100, respectively. For example, when a large amount of data from one client computer 300 is transmitted to the server computer 100, only one particular of the received data is used, and trunking is not executed. In the first embodiment, even in such a case, load balancing by trunking is possible.

도 8은 분산 알고리즘 통지 패킷의 데이터부의 내용예를 도시하는 도면이다. 도 8은 ftp(File Transfer Protocol)에 의한 파일 전송을 라운드 로빈에 의해서 부하 분산하는 경우의 데이터부(35)의 예이다. 8 is a diagram illustrating an example of the contents of a data portion of a distributed algorithm notification packet. Fig. 8 is an example of the data portion 35 in the case of load balancing file transfer by ftp (File Transfer Protocol) by round robin.

데이터부(35)에는 자신의 노드명, 상대 노드명, 어플리케이션명, 사용 알고리즘 및 사용 NIC의 MAC 어드레스가 상대 노드명마다에 설정되어 있다. 자신의 노드명은「hostA」이다. 상대 노드명은 「hostB」,「hostC」,「hostD」,「hostE」이다. 애플리케이션명은 「ftp」이다. 사용 알고리즘은「라운드 로빈」이다. MAC 어드레스의 항목에는 NIC(131∼134) 각각의 MAC 어드레스「a」,「b」,「c」,「d」가 설정된다. In the data unit 35, its own node name, partner node name, application name, algorithm used, and MAC address of the NIC used are set for each partner node name. Its node name is "hostA". The partner node names are "hostB", "hostC", "hostD", and "hostE". The application name is "ftp". The algorithm used is "round robin". MAC addresses "a", "b", "c", and "d" of each of the NICs 131 to 134 are set in the items of the MAC address.

이러한 분산 알고리즘 통지 패킷(20) 등에 의해 분산 알고리즘이 클라이언트 컴퓨터(300, 300a, 300b, 300c)에 통지되면, 통지된 내용이 분산 알고리즘 테이블 에 추가된다. 그 결과, 서버 컴퓨터(100)와 클라이언트 컴퓨터(300, 300a, 300b, 300c)의 쌍방에 분산 알고리즘 테이블이 구축되어 분산 알고리즘 테이블에 따른 부하 분산이 행해진다. When the distributed algorithm is notified to the client computers 300, 300a, 300b, and 300c by the distributed algorithm notification packet 20 or the like, the notified contents are added to the distributed algorithm table. As a result, a distributed algorithm table is constructed in both the server computer 100 and the client computers 300, 300a, 300b, and 300c, and load balancing according to the distributed algorithm table is performed.

도 9는 서버 컴퓨터측의 분산 알고리즘 테이블의 데이터 구조예를 도시하는 도면이다. 분산 알고리즘 테이블(121)에는 자신의 노드명, 상대 노드명, 애플리케이션명, 알고리즘, 자신의 NIC, 상대 NIC 및 플래그의 란이 설치된다. 각 란의 가로 방향으로 나열된 정보끼리가 상호 관련되어 레코드를 구성하고 있다. 9 is a diagram showing an example of the data structure of a distributed algorithm table on the server computer side. The distributed algorithm table 121 is provided with its own node name, counterpart node name, application name, algorithm, own NIC, counterpart NIC, and flags. The information listed in the horizontal direction of each column is related to each other to form a record.

자신의 노드명은 서버 컴퓨터(100)의 노드명(예를 들면 IP 어드레스)이다. Its node name is the node name (for example, IP address) of the server computer 100.

상대 노드명은 통신하는 상대의 클라이언트 컴퓨터(300, 300a, 300b, 300c)의 노드명(예를 들면, IP 어드레스)이다. The partner node name is a node name (for example, an IP address) of the client computer 300, 300a, 300b, 300c of the partner with whom communication is performed.

애플리케이션명은 분산 대상이 되는 애플리케이션의 명칭(telnet, ftp) 등이다. The application name is the name of the application to be distributed (telnet, ftp) or the like.

알고리즘은 애플리케이션명으로 지정한 애플리케이션의 데이터 송수신을 행할 때에 사용하는 분산 알고리즘(예를 들면, 라운드 로빈, 고정 NIC, TCP 커넥션수 균등 분산 등)이다. The algorithm is a distributed algorithm (e.g., round robin, fixed NIC, TCP connection number equally distributed, etc.) used to transmit and receive data of the application specified by the application name.

자신의 NIC는 서버 컴퓨터(100)의 NIC(131∼134)의 MAC 어드레스이다. 자신의 NIC가 복수 존재하는 경우에는 콤마로 구획지어 리스트 형식으로 나타낸다. Its NIC is the MAC address of the NICs 131 to 134 of the server computer 100. If multiple NICs exist, they are separated by commas.

상대 NIC는 상대측인 클라이언트 컴퓨터(300, 300a, 300b, 300c)의 NIC의 MAC 어드레스(복수 있는 경우에는 리스트 형식으로 저장)이다. The partner NIC is the MAC address of the NIC of the client computer 300, 300a, 300b, 300c on the other side (stored in a list format in the case of a plurality).

플래그는 레코드의 테이블 정보의 유효/무효를 나타내고 있다. 플래그가 유 효한 경우, 분산 알고리즘의 교환이 완료되어 통신 허가 상태인 것을 나타낸다. 플래그가 무효인 경우, 분산 알고리즘의 교환이 미완료되며 통신 불가 상태인 것을 나타낸다. The flag indicates whether the record table information is valid or invalid. If the flag is valid, it indicates that the exchange of the distributed algorithms is completed and the communication permission state. If the flag is invalid, it indicates that the exchange of distributed algorithms is incomplete and not in communication.

이러한 테이블 구조에 의해 상대 노드마다의 분산 알고리즘, 혹은 사용하는 NIC의 지정이 가능해진다. 또한, 애플리케이션마다의 분산 알고리즘, 혹은 사용하는 NIC의 지정이 가능해진다. This table structure makes it possible to specify a distributed algorithm for each partner node or a NIC to be used. In addition, the distributed algorithm for each application or the NIC to be used can be specified.

한편, 도 9에는 서버 컴퓨터(100)측의 분산 알고리즘 테이블(121)을 도시하였지만, 클라이언트 컴퓨터(300)측의 분산 알고리즘 테이블(321)도 동일한 데이터 구조이다. 클라이언트 컴퓨터(300)는 NIC(331)가 하나뿐이므로, 자신의 NIC에는 하나의 MAC 어드레스가 설정되고, 상대 NIC에는 서버 컴퓨터(100) 내의 NIC(131∼134)의 MAC 어드레스가 설정된다. 9 shows the distributed algorithm table 121 on the server computer 100 side, the distributed algorithm table 321 on the client computer 300 side also has the same data structure. Since the client computer 300 has only one NIC 331, one MAC address is set for its NIC, and the MAC addresses of the NICs 131 to 134 in the server computer 100 are set for the counterpart NIC.

도 10은 분산 알고리즘 통지 패킷에 따른 분산 알고리즘 테이블의 등록예를 도시하는 도면이다. 도 10에 도시한 바와 같이, 우선, 서버 컴퓨터(100)로부터 클라이언트 컴퓨터(300)로, 광고의 분산 알고리즘 통지 패킷(20a)이 송신된다. 도 10의 예에서는 자신의 노드명「hostA」, 상대 노드명「hostB」, 애플리케이션명 「ftp」, 알고리즘「라운드 로빈」, 자신의 NIC「a, b, c, d」이다. 10 is a diagram illustrating an example of registration of a distributed algorithm table according to a distributed algorithm notification packet. As shown in FIG. 10, first, the distributed algorithm notification packet 20a of an advertisement is transmitted from the server computer 100 to the client computer 300. As shown in FIG. In the example shown in Fig. 10, the node name "hostA", the partner node name "hostB", the application name "ftp", the algorithm "round robin", and its NICs "a, b, c, d".

이 분산 알고리즘 통지 패킷(20a)을 수취한 클라이언트 컴퓨터(300)는 분산 알고리즘 통지 패킷(20a)의 자신의 노드명과 상대 노드명을 교체하고, 자신의 NIC를 상대 NIC로서 분산 알고리즘 테이블(321)에 등록한다. 다음에, 클라이언트 컴퓨터(300)는 등록한 레코드의 자신의 NIC에 자기의 NIC(331)의 MAC 어드레스「x」를 설정하여 플래그를「유효」로 한다. 그리고, 클라이언트 컴퓨터(300)는 자기의 NIC(331)의 MAC 어드레스「x」를 포함하는 응답의 분산 알고리즘 통지 패킷(20b)를 서버 컴퓨터(100)에 송신한다. The client computer 300 that has received the distributed algorithm notification packet 20a exchanges its own node name and the counterpart node name of the distributed algorithm notification packet 20a, and uses its NIC as the counterpart NIC in the distributed algorithm table 321. Register. Next, the client computer 300 sets the MAC address " x " of its NIC 331 to its NIC of the registered record, and makes the flag " valid ". The client computer 300 then sends the distributed algorithm notification packet 20b of the response including the MAC address " x " of its NIC 331 to the server computer 100.

서버 컴퓨터(100)에서는 응답의 분산 알고리즘 통지 패킷(20b)을 수취하면, 분산 알고리즘 통지 패킷(20a)의 내용에 상대 NIC「x」,플래그「유효」를 추가한 레코드를 분산 알고리즘 테이블(121)에 등록한다. When the server computer 100 receives the distributed algorithm notification packet 20b of the response, the distributed algorithm table 121 adds a record in which the corresponding NIC "x" and the flag "valid" are added to the contents of the distributed algorithm notification packet 20a. Register at

이와 같이 하여 구축된 분산 알고리즘 테이블에 기초하여, 서버 컴퓨터(100)와 클라이언트 컴퓨터(300) 사이에서 부하를 분산시킨 데이터 통신이 행해진다. On the basis of the distributed algorithm table constructed in this way, data communication is performed in which load is distributed between the server computer 100 and the client computer 300.

도 11은 서버 컴퓨터로부터 송신하는 데이터의 부하 분산 처리 상황을 도시한 도면이다. 이 예에서는, 라운드 로빈의 분산 알고리즘에 따라서 부하 분산이 행해지고 있다. 라운드 로빈 방식의 경우, 복수의 NIC(131∼134)에 대하여 소정의 순서로 데이터가 할당된다. 예를 들면, NIC(131), NIC(132), NIC(133), NIC(134)의 순서이다. NIC(134)의 다음은 NIC(131)에 데이터가 할당된다. 11 is a diagram showing a load balancing processing situation of data transmitted from a server computer. In this example, load balancing is performed according to the round robin distribution algorithm. In the round robin system, data is allocated to the plurality of NICs 131 to 134 in a predetermined order. For example, the order is the NIC 131, the NIC 132, the NIC 133, and the NIC 134. Next to the NIC 134 is data assigned to the NIC 131.

WWW 서버(110)로부터 클라이언트 컴퓨터(300)처의 송신 데이터(111)가 트렁킹 기구부(120)에 전달된다. 여기서, 송신 데이터(111)는 6개의 데이터로 분할하여 송신되는 것으로 한다. 여기서, 분할된 데이터를「D1」,「D2」,「D3」,「D4」,「D5」,「D6」이라고 한다. The transmission data 111 of the client computer 300 is transmitted from the WWW server 110 to the trunking mechanism unit 120. Here, it is assumed that the transmission data 111 is divided into six pieces of data and transmitted. The divided data is referred to as "D1", "D2", "D3", "D4", "D5", and "D6".

송신 데이터(111)는 트렁킹 기구부(120)에 의해서, 라운드 로빈 방식으로 복수의 NIC(131∼134)로 분류된다. 그 결과,「D1」의 데이터는 NIC(131)를 통해 클라이언트 컴퓨터(300)에 송신된다. The transmission data 111 is classified into a plurality of NICs 131 to 134 in a round robin manner by the trunking mechanism 120. As a result, the data of "D1" is transmitted to the client computer 300 via the NIC 131.

「D2」의 데이터는 NIC(132)를 통해 클라이언트 컴퓨터(300)에 송신된다. 「D3」의 데이터는 NIC(133)를 통해 클라이언트 컴퓨터(300)에 송신된다. 「D4」의 데이터는 NIC(134)를 통해 클라이언트 컴퓨터(300)에 송신된다. 「D5」의 데이터는 NIC(131)를 통해 클라이언트 컴퓨터(300)에 송신된다. 「D6」의 데이터는 NIC(136)를 통해 클라이언트 컴퓨터(300)에 송신된다. Data of "D2" is transmitted to the client computer 300 via the NIC 132. Data of "D3" is transmitted to the client computer 300 via the NIC 133. Data of "D4" is transmitted to the client computer 300 via the NIC 134. Data of "D5" is transmitted to the client computer 300 via the NIC 131. Data of "D6" is transmitted to the client computer 300 via the NIC 136.

이와 같이 하여, 서버 컴퓨터(100)로부터 클라이언트 컴퓨터(300)처의 송신 데이터(111)가 전송로의 부하를 분산시켜 스위칭 허브(200)에 전달되고, 그 후, 클라이언트 컴퓨터(300)에 전달된다. In this way, the transmission data 111 from the server computer 100 to the client computer 300 is transferred to the switching hub 200 by distributing the load on the transmission path, and then to the client computer 300. .

도 12는 클라이언트 컴퓨터로부터 송신하는 데이터의 부하 분산 처리 상황을 도시한 도면이다. 이 예에서는 라운드 로빈의 분산 알고리즘에 따라서 부하 분산이 행해지고 있다. 12 is a diagram illustrating a load balancing processing situation of data transmitted from a client computer. In this example, load balancing is performed according to the round robin distribution algorithm.

클라이언트 컴퓨터(300)로부터 WWW 서버(110)처의 송신 데이터(311)가 트렁킹 기구부(320)에 전달된다. 여기서, 송신 데이터(311)는 4개의 데이터로 분할하여 송신되는 것으로 한다. 여기서, 분할된 데이터를「D11」,「Dl2」,「D13」,「D14」라고 한다. From the client computer 300, transmission data 311 located at the WWW server 110 is transferred to the trunking mechanism 320. Here, it is assumed that the transmission data 311 is divided into four data and transmitted. The divided data is referred to as "D11", "Dl2", "D13", and "D14".

송신 데이터(311)는 트렁킹 기구부(320)에 의해서 라운드 로빈 방식으로 복수의 NIC(131∼134)로 분류된다. 분류된 각 데이터는 그 데이터를 송신하는 프레임의 수신처 MAC 어드레스에 분류 대상인 NIC의 MAC 어드레스가 설정된다. 스위칭 허브(200)는 수신처 MAC 어드레스를 참조하여 송출하는 LAN 포트를 결정하기 때문에, 각 데이터는 분류된 NIC에 대하여 송신된다. 도 12의 예에서는「D11」의 데이터는 서버 컴퓨터(100)의 NIC(131)에 송신된다. 「D12」의 데이터는 서버 컴퓨터(100)의 NIC(132)에 송신된다. 「D13」의 데이터는 서버 컴퓨터(100)의 NIC(133)에 송신된다. 「D14」의 데이터는 서버 컴퓨터(100)의 NIC(134)에 송신된다. The transmission data 311 is classified into a plurality of NICs 131 to 134 in a round robin manner by the trunking mechanism 320. In each classified data, the MAC address of the NIC to be classified is set in the destination MAC address of the frame transmitting the data. Since the switching hub 200 determines the LAN port to transmit with reference to the destination MAC address, each data is transmitted for the classified NIC. In the example of FIG. 12, data of "D11" is transmitted to the NIC 131 of the server computer 100. The data of "D12" is transmitted to the NIC 132 of the server computer 100. The data of "D13" is transmitted to the NIC 133 of the server computer 100. The data of "D14" is transmitted to the NIC 134 of the server computer 100.

이와 같이 하여, 클라이언트 컴퓨터(300)로부터 서버 컴퓨터(100)처의 송신 데이터(311)가 스위칭 허브(200)를 통하여 복수의 전송로에 부하를 분산시켜 서버 컴퓨터(100)에 전달된다. In this way, the transmission data 311 from the client computer 300 to the server computer 100 is transferred to the server computer 100 by distributing the load to a plurality of transmission paths through the switching hub 200.

이상과 같이 하여, 스위칭 허브(200)가 트렁킹 기구를 갖고 있지 않아도 서버 컴퓨터(100)와 스위칭 허브(200) 사이의 복수의 전송로에 부하를 분산시킨 데이터 통신이 가능해진다. 그 때문에, 트렁킹에 의한 시스템을 구축할 때에 트렁킹에 대응하지 않는 임의의 스위칭 허브를 사용할 수 있어 선택지의 폭이 넓어진다. As described above, even if the switching hub 200 does not have a trunking mechanism, data communication in which loads are distributed among the plurality of transmission paths between the server computer 100 and the switching hub 200 is possible. Therefore, when constructing a trunking system, an arbitrary switching hub that does not support trunking can be used, thereby increasing the range of options.

또한, 각각의 클라이언트 컴퓨터(300, 300a, 300b, 300c)가 분산 알고리즘 정보를 갖기 때문에, 1대 1의 2대의 장치 사이에서 만의 통신이라도 트렁킹에 의한 송수신 분산을 실현할 수 있고, 트렁킹 대응 스위치 사용시와 완전히 동등한 대역 향상을 실현할 수 있다. In addition, since each client computer 300, 300a, 300b, 300c has distributed algorithm information, even transmission of transmission and reception by trunking can be realized even when only communication between two devices of one-to-one is achieved. Fully equivalent bandwidth enhancement can be realized.

더구나, 클라이언트 컴퓨터(300, 300a, 300b, 300c)에서 부하 분산을 관리하기 때문에, 어플리케이션에 따른 분산 알고리즘을 지정할 수 있다. 즉, 종래와 같이 스위칭 허브(200)에서 트렁킹 처리를 행하게 한 경우에는, 스위칭 허브가 0SI 계층모델의 데이터 링크층으로 기능하기 때문에 어플리케이션의 판별은 할 수 없고, 애플리케이션에 따른 트렁킹을 할 수 없었다. 제1 실시예에서는, 클라이언트 컴퓨터(300)에 의해 애플리케이션에 따른 분산 알로리즘의 지정이 가능하기 때문에 유연성이 높은 트렁킹 기구를 제공할 수 있다. Furthermore, since the load balancing is managed by the client computers 300, 300a, 300b, and 300c, a distribution algorithm according to the application can be specified. That is, when the trunking process is performed in the switching hub 200 as in the related art, since the switching hub functions as a data link layer of the 0SI layer model, the application cannot be discriminated and trunking according to the application cannot be performed. In the first embodiment, since the distributed algorithm according to the application can be specified by the client computer 300, a highly flexible trunking mechanism can be provided.

[제2 실시예]Second Embodiment

다음에, 본 발명의 제2 실시예에 관해서 설명한다. 제2 실시예는 복수의 서버 컴퓨터가 협동하여 동작함으로써 클러스터를 구성하고 있는 경우에, 그 시스템에 본 발명을 적용한 예이다. Next, a second embodiment of the present invention will be described. The second embodiment is an example in which the present invention is applied to a system when a plurality of server computers are configured to work together in a cluster.

도 13은 제2 실시예의 시스템 구성예를 도시하는 도면이다. 제2 실시예에서는 2대의 서버 컴퓨터(100a, 100b)가 시스템간 통신 패스(40)로 서로 접속되어 있다. 시스템간 통신 패스(40)는 LAN에 비교해서 고속의 통신이 가능한 통신 인터페이스이다. 한편, 서버 컴퓨터(100a, 100b) 이외의 구성 요소는 제1 실시예와 마찬가지이기 때문에 도 2에 도시한 제1 실시예와 동일한 부호를 붙여 설명을 생략한다. 13 is a diagram illustrating an example of the system configuration of the second embodiment. In the second embodiment, two server computers 100a and 100b are connected to each other via a communication path 40 between systems. The inter-system communication path 40 is a communication interface capable of high speed communication compared to a LAN. In addition, since components other than server computer 100a, 100b are the same as that of 1st Embodiment, the same code | symbol as 1st Embodiment shown in FIG. 2 is attached | subjected, and description is abbreviate | omitted.

서버 컴퓨터(100a)는 WWW 서버(110a), 트렁킹 기구부(120a)), NIC(131a, 132 a)를 갖고 있다. 트렁킹 기구부(120a)는 분산 알고리즘 테이블(121a)을 갖고 있다. 마찬가지로, 서버 컴퓨터(100b)는 트렁킹 기구부(120b), NIC(131b, 132b)를 갖고 있다. 트렁킹 기구부(120b)는 분산 알고리즘 테이블(121b)을 갖고 있다. The server computer 100a has a WWW server 110a, a trunking mechanism 120a, and NICs 131a and 132a. The trunking mechanism portion 120a has a distributed algorithm table 121a. Similarly, server computer 100b includes trunking mechanism 120b and NICs 131b and 132b. The trunking mechanism portion 120b has a distributed algorithm table 121b.

이와 같이 각 서버 컴퓨터(100a, 100b)는 각각 2장의 NIC(131a, 132a, 131b, 132b)를 가지고 있지만, 하드웨어의 사양 제한에 의해, 그보다 많은 매수의 NIC는 장착할 수 없는 것으로 한다. As described above, each of the server computers 100a and 100b has two NICs 131a, 132a, 131b, and 132b, respectively, but it is assumed that a larger number of NICs cannot be mounted due to hardware specification limitations.

서버 컴퓨터(100a)와 서버 컴퓨터(100b)의 트렁킹 기구부(120a, 120b)는 시스템간 통신 패스(40)를 통해서 트렁킹을 위한 분산 알고리즘 테이블(121a, 121b) 에 등록되어 있는 제어 정보를 공유하고 있다. The trunking mechanisms 120a and 120b of the server computer 100a and the server computer 100b share control information registered in the distributed algorithm tables 121a and 121b for trunking through the communication path 40 between the systems. .

여기서, 트렁킹 기구부(120a, 120b)는 클라이언트 컴퓨터(300, 300a, 300b, 300c)에 대하여, 각각 NIC(131a, 132a, 131b, 132b)를 사용하여 데이터 송수신을 행하도록 트렁킹의 제어 정보가 등록된 분산 알고리즘 테이블을 갖고 있다. Here, the trunking mechanisms 120a and 120b register the trunking control information so that the client computers 300, 300a, 300b, and 300c transmit and receive data using the NICs 131a, 132a, 131b, and 132b, respectively. It has a distributed algorithm table.

도 14는 제2 실시예에 따른 분산 알고리즘 테이블의 데이터 구조예를 도시하는 도면이다. 분산 알고리즘 테이블(121a)의 데이터 구조는 자신의 NIC를 제외하고, 도 9에 도시한 제1 실시예의 분산 알고리즘 테이블(121)과 동일하다. 14 is a diagram showing an example of the data structure of the distributed algorithm table according to the second embodiment. The data structure of the distributed algorithm table 121a is the same as the distributed algorithm table 121 of the first embodiment shown in FIG. 9 except for its NIC.

자신의 NIC에는 복수의 서버 컴퓨터(100a, 100b) 쌍방에 실장되어 있는 NIC(131a, 132a, 131b, 132b) 중 대응하는 애플리케이션의 데이터 전송에 사용하는 NIC의 MAC 어드레스가 설정되어 있다. 또한, 자신의 NIC에서는 괄호 내에 실장 계산기명이 설정되어 있다. 실장 계산기명은 각 NIC을 실장하고 있는 서버 컴퓨터의 명칭(식별명)이다. The own NIC is set with a MAC address of a NIC used for data transmission of a corresponding application among the NICs 131a, 132a, 131b, and 132b mounted on both server computers 100a and 100b. In addition, the mounting calculator name is set in parenthesis in its NIC. The implementation calculator name is the name (identification name) of the server computer that implements each NIC.

이러한 환경에서 WWW 서버(110a)가 클라이언트 컴퓨터(300, 300a, 300b, 300c)의 4대와 라운드 로빈 방식에 의한 데이터 송수신 분산을 행하고자 하는 경우, 시스템 기동시에 서버 컴퓨터(100a, 100b) 사이에서 이하의 처리가 행해진다. In this environment, when the WWW server 110a wishes to perform data transmission / reception distribution by four of the client computers 300, 300a, 300b, and 300c by the round robin method, between the server computers 100a and 100b at system startup. The following processing is performed.

도 15는 제2 실시예에서의 시스템 기동시의 처리 순서를 도시하는 흐름도이다. 이하, 도 15에 도시하는 처리를 단계 번호에 따라서 설명한다. Fig. 15 is a flowchart showing the processing procedure at system startup in the second embodiment. Hereinafter, the process shown in FIG. 15 is demonstrated according to a step number.

[단계 S31] 서버 컴퓨터(100a)의 트렁킹 기구부(120a)는 제1 실시예와 마찬가지로 분산 알고리즘 테이블(121a)을 생성한다. 한편, 분산 알고리즘 테이블(121a) 스스로에는 트렁킹 기구부(120a)는 분산 알고리즘 통지 패킷(20)을 브로드 캐스트로 송신하지만, 이 때의 분산 알고리즘 통지 패킷(20)의 자신의 NIC에는 서버 컴퓨터(100a)와 서버 컴퓨터(100b)의 NIC(131a, 132a, 131b, 132b)의 MAC 어드레스가 포함된다. 또한, 그 MAC 어드레스에는 NIC(131a, 132a, 131b, 132b)가 실장되어 있는 서버 컴퓨터의 노드명이 부여된다. [Step S31] The trunking mechanism part 120a of the server computer 100a generates the distributed algorithm table 121a as in the first embodiment. On the other hand, the trunking mechanism unit 120a transmits the distributed algorithm notification packet 20 to the distributed algorithm table 121a by itself, but the server computer 100a is included in its own NIC of the distributed algorithm notification packet 20 at this time. And MAC addresses of NICs 131a, 132a, 131b, and 132b of the server computer 100b. The MAC address is given a node name of a server computer on which NICs 131a, 132a, 131b, and 132b are mounted.

[단계 S32] 트렁킹 기구부(120a)는 서버 컴퓨터(100a)가 다른 서버 컴퓨터와 협동하여 클러스터를 구성하고 있는지 여부를 판단한다. 복수대의 서버 컴퓨터로 구성되는 경우, 처리가 단계 S33으로 진행된다. 1대의 서버 컴퓨터(100a)로 구성하고 있는 경우, 처리가 단계 S36에 진행된다. [Step S32] The trunking mechanism unit 120a determines whether the server computer 100a cooperates with other server computers to form a cluster. If it is composed of a plurality of server computers, the process proceeds to step S33. When it consists of one server computer 100a, a process progresses to step S36.

[단계 S33] 트렁킹 기구부(120a)는 전용의 시스템간 통신 패스(40)를 사용하여 분산 알고리즘 테이블(121a)의 내용을 서버 컴퓨터(100b)로 송신한다. [Step S33] The trunking mechanism unit 120a transmits the contents of the distributed algorithm table 121a to the server computer 100b using the dedicated intersystem communication path 40.

[단계 S34] 서버 컴퓨터(100b)의 트렁킹 기구부(120b)는 서버 컴퓨터(100a)에서 수신한 분산 알고리즘 테이블(121a)의 내용에 기초하여, 자신의 분산 알고리즘 테이블(121b)을 생성한다. [Step S34] The trunking mechanism 120b of the server computer 100b generates its own distributed algorithm table 121b based on the contents of the distributed algorithm table 121a received from the server computer 100a.

[단계 S35] 트렁킹 기구부(120b)는 서버 컴퓨터(100a)에 대하여 응답을 송신한다. [Step S35] The trunking mechanism unit 120b transmits a response to the server computer 100a.

[단계 S36] 서버 컴퓨터(100a)는 클라이언트 컴퓨터(300, 300a, 300b, 300c)와의 사이의 통신을 개시한다. [Step S36] The server computer 100a starts communication with the client computers 300, 300a, 300b, and 300c.

[단계 S37] 마찬가지로 서버 컴퓨터(100b)는 클라이언트 컴퓨터(300, 300a, 300b, 300c)와의 사이의 통신을 개시한다. [Step S37] Similarly, the server computer 100b initiates communication with the client computers 300, 300a, 300b, and 300c.

이와 같이, 시스템 기동시에 분산 알고리즘 테이블의 공통화가 행해짐으로써 복수의 서버 컴퓨터(100a, 100b)를 이용한 클래스터 시스템에 의한 트렁킹이 가능해진다. 트렁킹에 의한 부하 분산에 의해 이하와 같은 데이터 전송이 행해진다. In this manner, commonization of the distributed algorithm table is performed at system startup, so that trunking by a classer system using a plurality of server computers 100a and 100b is possible. The following data transfer is performed by load balancing by trunking.

도 16은 복수의 서버 컴퓨터를 이용했을 때의 데이터 송신 순서를 도시한 도면이다. 이하, 도 16에 도시하는 처리를 단계 번호에 따라서 설명한다. 16 is a diagram showing a data transmission procedure when using a plurality of server computers. Hereinafter, the process shown in FIG. 16 is demonstrated according to a step number.

[단계 S41] 서버 컴퓨터(100b)의 트렁킹 기구부(120b)는 서버 컴퓨터(100a)로부터의 이벤트 대기 상태를 유지하고 있다. [Step S41] The trunking mechanism part 120b of the server computer 100b maintains an event waiting state from the server computer 100a.

[단계 S42] 서버 컴퓨터(100a)의 트렁킹 기구부(120a)는 WWW 서버(110a)로부터의 이벤트 대기 상태를 유지하고 있다. [Step S42] The trunking mechanism portion 120a of the server computer 100a maintains an event waiting state from the WWW server 110a.

[단계 S43] 어떠한 이벤트가 발생하면, 트렁킹 기구부(120a)는 발생한 이벤트가 WWW 서버(110a)로부터의 데이터 송신 의뢰인지 여부를 판단한다. 데이터 송신 의뢰라면, 처리가 단계 S45로 진행된다. 데이터 송신 의뢰 이외의 이벤트라면, 처리가 단계 S44로 진행된다. [Step S43] If any event occurs, the trunking mechanism unit 120a determines whether or not the generated event is a request for data transmission from the WWW server 110a. If a data transmission request is made, the process proceeds to step S45. If the event is other than the data transmission request, the process proceeds to step S44.

[단계 S44] 트렁킹 기구부(120a)는 발생한 이벤트에 따른 데이터 송신 이외의 처리를 실행한다. 그 후, 처리가 단계 S42로 진행되고 재차 이벤트 대기가 된다. [Step S44] The trunking mechanism unit 120a executes a process other than data transmission in accordance with the generated event. Thereafter, the process proceeds to step S42, and the event waits again.

[단계 S45] 트렁킹 기구부(120a)는 분산 알고리즘 테이블(121a)을 검색하여 송신에 사용하는 NIC를 결정한다. 구체적으로는, 트렁킹 기구부(120a)는 분산 알고리즘 테이블(121a)을 참조하여 송신 상대, 애플리케이션명 등으로부터 분산 알고리즘을 결정한다. 그리고, 결정된 분산 알고리즘에 따라서 송신에 사용하는 NIC를 결정한다. [Step S45] The trunking mechanism unit 120a searches the distributed algorithm table 121a to determine the NIC to be used for transmission. Specifically, the trunking mechanism unit 120a refers to the distributed algorithm table 121a to determine the distributed algorithm from the transmission partner, the application name, and the like. Then, the NIC to be used for transmission is determined according to the determined distribution algorithm.

[단계 S46] 트렁킹 기구부(120a)는 분산 알고리즘 테이블(121a)로부터 송신에 사용하는 NIC가 실장되어 있는 서버 컴퓨터의 장치명을 추출한다. [Step S46] The trunking mechanism unit 120a extracts, from the distributed algorithm table 121a, the device name of the server computer on which the NIC used for transmission is mounted.

[단계 S47] 트렁킹 기구부(120a)는 사용하는 NIC가 서버 컴퓨터(100a) 자신에게 실장된 NIC인지 여부를 판단한다. 서버 컴퓨터(100a)에 실장된 NIC라면, 처리가 단계 S49로 진행된다. 다른 서버 컴퓨터에 실장된 NIC라면, 처리가 단계 S48로 진행된다. [Step S47] The trunking mechanism unit 120a determines whether the NIC to be used is a NIC mounted on the server computer 100a itself. If it is a NIC mounted in the server computer 100a, the process proceeds to step S49. If it is a NIC mounted in another server computer, the process proceeds to step S48.

[단계 S48] 트렁킹 기구부(120a)는 시스템간 통신 패스(40)를 사용하여 WWW 서버(110a)로부터의 데이터를 다른 서버 컴퓨터(100b)로 전송한다. 그 후, 서버 컴퓨터(100a)측의 처리가 종료하여 서버 컴퓨터(100b)측의 트렁킹 기구부(120b)의 단계 S50로 처리가 이행한다. [Step S48] The trunking mechanism unit 120a transfers data from the WWW server 110a to another server computer 100b using the intersystem communication path 40. Thereafter, the processing on the server computer 100a side ends, and the processing shifts to step S50 of the trunking mechanism portion 120b on the server computer 100b side.

[단계 S49] 트렁킹 기구부(120a)는 단계 S45에서 결정된 NIC를 통해 데이터를 클라이언트 컴퓨터에 송신한다. [Step S49] The trunking mechanism unit 120a transmits data to the client computer via the NIC determined in step S45.

[단계 S50] 서버 컴퓨터(100b)의 트렁킹 기구부(120b)는 자신의 분산 알고리즘 테이블(121b) 내를 검색하여 송신에 사용하는 NIC를 결정한다. [Step S50] The trunking mechanism 120b of the server computer 100b searches the distributed algorithm table 121b of its own to determine the NIC to be used for transmission.

[단계 S51] 트렁킹 기구부(120b)는 단계 S50에서 결정한 NIC를 통해 데이터를 클라이언트 컴퓨터에 송신한다. [Step S51] The trunking mechanism unit 120b transmits data to the client computer via the NIC determined in step S50.

도 17은 복수의 서버 컴퓨터를 이용한 경우의 데이터 송신 상황을 도시한 도면이다. 서버 컴퓨터(100a)의 웹애플리케이션(110a)이 송신 데이터(111a)를 트렁킹 기구부(120a)에 건네주면, 트렁킹 기구부(120a)가 송신 데이터(111a)를 복수의 데이터로 분할하여 복수의 NIC(131a, 132a, 131b, 132b)로 분류한다. 도 17의 예에서 는, 송신 데이터(111a)가 4개의 데이터로 분할되는 것으로 하여 각각의 데이터를「D21」,「D22」,「D23」,「D24」라고 한다. 17 is a diagram showing a data transmission situation in the case of using a plurality of server computers. When the web application 110a of the server computer 100a passes the transmission data 111a to the trunking mechanism unit 120a, the trunking mechanism unit 120a divides the transmission data 111a into a plurality of data and the plurality of NICs 131a. , 132a, 131b, and 132b. In the example of FIG. 17, suppose that the transmission data 111a is divided into four data, and each data is called "D21", "D22", "D23", and "D24".

송신 데이터(111)는 트렁킹 기구부(120)에 의해서, 라운드 로빈 방식으로 복수의 NIC(131a, 132a, 131b, 132b)로 분류된다. 그 결과,「D11」의 데이터는 NIC(131a)를 통해 클라이언트 컴퓨터(300)에 송신된다. 「D22」의 데이터는 NIC(132a)를 통해 클라이언트 컴퓨터(300)에 송신된다. 「D23」의 데이터는 시스템간 통신 패스(40)를 통해 서버 컴퓨터(100b)의 트렁킹 기구부(120b)로 보내진 후, 트렁킹 기구부(120b)에서 분류되어 NIC(131b)를 통해 클라이언트 컴퓨터(300)에 송신된다. 「D24」의 데이터는 시스템간 통신 패스(40)를 통해 서버 컴퓨터(100b)의 트렁킹 기구부(120b)로 보내진 후, 트렁킹 기구부(120b)에서 분류되어 NIC(132b)를 통해 클라이언트 컴퓨터(300)에 송신된다. The transmission data 111 is classified into a plurality of NICs 131a, 132a, 131b, and 132b in a round robin manner by the trunking mechanism 120. As a result, the data of "D11" is transmitted to the client computer 300 via the NIC 131a. Data of "D22" is transmitted to the client computer 300 via the NIC 132a. The data of " D23 " is sent to the trunking mechanism portion 120b of the server computer 100b via the inter-system communication path 40, and then sorted by the trunking mechanism portion 120b to the client computer 300 through the NIC 131b. Is sent. The data of "D24" is sent to the trunking mechanism part 120b of the server computer 100b via the system-to-system communication path 40, and then sorted by the trunking mechanism part 120b and sent to the client computer 300 via the NIC 132b. Is sent.

이 후의 데이터 전송에 관해서는, 다시 NIC(131a)에서 순서대로 사용된다. The subsequent data transfers are used again in the NIC 131a in order.

이와 같이 하여, 서버 컴퓨터(100a, 100b)에서 클라이언트 컴퓨터(300, 300a, 300b, 300c)처의 송신 데이터(111a)가 부하 분산을 시켜 스위칭 허브(200)에 전달되고, 그 후, 클라이언트 컴퓨터(300, 300a, 300b, 300c)에 전달된다. In this way, the transmission data 111a of the client computers 300, 300a, 300b, and 300c from the server computers 100a and 100b are distributed to the switching hub 200 by load balancing, and then the client computer ( 300, 300a, 300b, 300c.

한편, 클라이언트 컴퓨터(300, 300a, 300b, 300c)에서 서버 컴퓨터(100a)로송신하는 데이터의 분산 처리를 행하는 경우, 클라이언트 컴퓨터(300, 300a, 300b, 300c)는 통신에 앞서 서버 컴퓨터(100a)에서 송신된 분산 알고리즘 통지 패킷에 기초하여 분산 방식을 판단한다. 이에 따라 클라이언트 컴퓨터(300, 300a, 300b, 300c)에서 서버 컴퓨터(100a)로 보내지는 데이터가, 각 NIC(131a, 132a, 131b, 132b)에 분산되어 송신된다. 이 때 NIC(131b, 132b)에 대하여 송신된 데이터는, 트렁킹 기구부(120b)에 의해서 시스템간 통신 패스(40)를 경유하여 WWW 서버(110a)에 전달된다. On the other hand, in the case of performing distributed processing of data transmitted from the client computers 300, 300a, 300b, and 300c to the server computer 100a, the client computers 300, 300a, 300b, and 300c perform the server computer 100a prior to communication. The distribution method is determined based on the distributed algorithm notification packet transmitted from the. As a result, data sent from the client computers 300, 300a, 300b, and 300c to the server computer 100a is distributed and transmitted to the respective NICs 131a, 132a, 131b, and 132b. At this time, the data transmitted to the NICs 131b and 132b is transmitted to the WWW server 110a by the trunking mechanism 120b via the intersystem communication path 40.

이와 같이, 분산 알고리즘 테이블의 내용을 통일해 둠으로써 복수의 서버 컴퓨터를 이용하여 트렁킹 처리를 행할 수 있다. 그 결과, 사용하는 서버 컴퓨터(100a)의 하드 사양(NIC 실장의 상한값)에 의존하지 않고 사용 NIC 매수를 늘려 트렁킹을 실현할 수 있다. In this way, the contents of the distributed algorithm table are unified so that trunking processing can be performed using a plurality of server computers. As a result, trunking can be realized by increasing the number of NICs used without depending on the hard specification (the upper limit of NIC mounting) of the server computer 100a to be used.

[제3 실시예]Third Embodiment

다음에, 제3 실시예에 관해서 설명한다. 제3 실시예는 시스템의 운용을 정지시키지 않고 NIC의 추가 삭제를 가능하게 한 것이다. Next, a third embodiment will be described. The third embodiment enables the further deletion of the NIC without stopping the operation of the system.

도 18은 NIC을 1장 증설하는 경우의 원리 설명도이다. 서버 컴퓨터(100c)는 WWW 서버(110c), 트렁킹 기구부(120c), NIC(131c, 132c, 133c, 134c, 135) 및 NIC 추가/분리 제어부(140)를 갖고 있다. 트렁킹 기구부(210c)는 분산 알고리즘 테이블(121c)이 설치되어 있다. 한편, NIC(135)는 새롭게 추가 실장된 것이다. 18 is an explanatory view of the principle in the case where one NIC is expanded. The server computer 100c has a WWW server 110c, a trunking mechanism 120c, NICs 131c, 132c, 133c, 134c, 135, and a NIC addition / detaching control section 140. The trunking mechanism portion 210c is provided with a distributed algorithm table 121c. Meanwhile, the NIC 135 is newly added.

서버 컴퓨터(100c)의 관리자는 장착된 예비의 NIC(135)를 LAN 케이블로 스위칭 허브(200)에 접속한다. 여기서, 스위칭 허브(200)에는 트렁킹의 설정은 되어 있지 않기 때문에 스위칭 허브(200)를 리셋하지 말고, 접속 후에는 즉시 통신에 사용하는 것이 가능하다. 바꾸어 말하면, 트렁킹 대응의 스위칭 허브가 사용되고 있던 경우에는, 설정 변경을 위해 이미 접속되어 있는 NIC의 통신을 일단 정지시킬 필요가 있다. The administrator of the server computer 100c connects the mounted spare NIC 135 to the switching hub 200 with a LAN cable. Since the trunking is not set in the switching hub 200, the switching hub 200 can be used for communication immediately after the connection without resetting. In other words, when a trunking-compatible switching hub is used, it is necessary to stop the communication of the NIC already connected to change the setting.

한편, 서버 컴퓨터(100c)는 새롭게 추가한 NIC(135)를 트렁킹 대상으로 추가해야 한다. 여기서, 서버 컴퓨터(100c)의 NIC 추가/분리 제어부(140)는 NIC(135)의 추가를 자동 인식하며, NIC(135)의 추가에 따른 정보를 분산 알고리즘 테이블(121c)에 등록한다. 한편, NIC(135)의 추가의 자동 인식을 대기하지 않고 애플리케이션이나 오퍼레이터로부터의 지시에 따라서 분산 알고리즘 테이블(121c)을 갱신할 수도 있다. On the other hand, the server computer 100c must add the newly added NIC 135 as the trunking target. Here, the NIC addition / detaching control unit 140 of the server computer 100c automatically recognizes the addition of the NIC 135 and registers the information according to the addition of the NIC 135 in the distributed algorithm table 121c. On the other hand, the distributed algorithm table 121c may be updated in accordance with an instruction from an application or an operator without waiting for further automatic recognition of the NIC 135.

구체적으로는, NIC 추가/분리 제어부(140)는 NIC(135)를 추가하는 경우, 그 내용을 프로그램간 통신을 이용하여 트렁킹 기구부(120c)로 통지한다. 통지를 받은 트렁킹 기구부(120c)는 대상의 NIC를 분산 알고리즘 테이블(121c) 내의 분산 대상으로 추가한다. 이 때, 트렁킹 기구부(120c)는 갱신 내용을 분산 알고리즘 통지 패킷에 의해서 각 클라이언트 컴퓨터(300, 300a, 300b, 300c)에 통지한다. 이후, 트렁킹 기구부(120c)는 데이터 송신시에 NIC(135)를 포함해서 데이터 송신의 부하 분산을 행한다. Specifically, when the NIC addition / detaching control unit 140 adds the NIC 135, it notifies the trunking mechanism unit 120c of the content using interprogram communication. The trunking mechanism part 120c which received the notification adds the target NIC to the distribution object in the distribution algorithm table 121c. At this time, the trunking mechanism unit 120c notifies the client computers 300, 300a, 300b, and 300c of the update contents by the distributed algorithm notification packet. Then, the trunking mechanism part 120c includes the NIC 135 at the time of data transmission, and load-balances data transmission.

또한, 클라이언트 컴퓨터(300, 300a, 300b, 300c)에는 분산 알고리즘 통지 패킷에 의해서 NIC(135)의 추가가 통지되고, 통지 내용에 따라서 클라이언트 컴퓨터(300, 300a, 300b, 300c) 내의 분산 알고리즘 테이블이 갱신된다. 따라서, 클라이언트 컴퓨터(300, 300a, 300b, 300c)에서 서버 컴퓨터(100c)에 송신하는 데이터에 관해서도, 갱신된 분산 알고리즘 테이블에 따라서 NIC(135)를 포함해서 데이터 송신의 부하 분산이 행해진다. Further, the addition of the NIC 135 is notified to the client computers 300, 300a, 300b, and 300c by the distributed algorithm notification packet, and the distributed algorithm table in the client computers 300, 300a, 300b, and 300c is according to the contents of the notification. Is updated. Therefore, also regarding the data transmitted from the client computers 300, 300a, 300b, and 300c to the server computer 100c, load balancing of data transmission is performed including the NIC 135 in accordance with the updated distributed algorithm table.

이하에, 서버 컴퓨터(100c)와 클라이언트 컴퓨터(300) 사이의 처리를 예로 들어 NIC 추가시의 분산 알고리즘 테이블 갱신 순서에 관해서 설명한다. The following describes the procedure for updating the distributed algorithm table when adding a NIC, taking the processing between the server computer 100c and the client computer 300 as an example.

도 19는, NIC 추가시의 분산 알고리즘 테이블 갱신 순서를 도시하는 흐름도이다. 이하, 도 19에 도시하는 처리를 단계 번호에 따라서 설명한다. 19 is a flowchart showing a distributed algorithm table update procedure when adding a NIC. Hereinafter, the process shown in FIG. 19 is demonstrated according to a step number.

[단계 S61] 클라이언트 컴퓨터(300)의 트렁킹 기구부(320)는 분산 알고리즘 통지 패킷의 수신을 대기한다. [Step S61] The trunking mechanism unit 320 of the client computer 300 waits to receive the distributed algorithm notification packet.

[단계 S62] 서버 컴퓨터(100c)의 NIC 추가/분리 제어부(140)는 이벤트의 발생을 대기한다. [Step S62] The NIC addition / detaching control unit 140 of the server computer 100c waits for occurrence of the event.

여기서, NIC(135)가 추가되면 I/O 인터럽트가 발생한다. In this case, when the NIC 135 is added, an I / O interrupt occurs.

[단계 S63] NIC 추가/분리 제어부(140)는 I/O 인터럽트의 내용을 판단한다. NIC 추가이면 처리가 단계 S65로 진행된다. NIC 추가 이외 I/O 인터럽트이면, 처리가 단계 S64로 진행된다. [Step S63] The NIC addition / detaching control unit 140 determines the contents of the I / O interrupt. If the NIC is added, the process proceeds to step S65. If it is an I / O interrupt other than NIC addition, the process proceeds to step S64.

[단계 S64] NIC 추가/분리 제어부(140)는 I/0인터럽트에 따른 처리를 실행하고, 그 후, 처리를 종료한다. [Step S64] The NIC addition / detaching control unit 140 executes the processing according to the I / 0 interrupt, and then ends the processing.

[단계 S65] NIC 추가/분리 제어부(140)는 추가된 NIC(135)의 정보를 I/O 테이블로부터 추출한다. 한편, I/O 테이블은 OS에 의해서 관리되어 있는 I/0인터럽트에 따른 정보가 정의된 데이터 테이블이다. 그리고, NIC 추가/분리 제어부(140)는 NIC의 추가를 트렁킹 기구부(120c)에 지시한다. [Step S65] The NIC addition / detaching control unit 140 extracts the information of the added NIC 135 from the I / O table. The I / O table is a data table in which information according to I / 0 interrupts managed by the OS is defined. The NIC addition / detaching control unit 140 instructs the trunking mechanism unit 120c to add the NIC.

[단계 S66] 트렁킹 기구부(120c)는 패킷의 종별을 추가로 한 분산 알고리즘 통지 패킷을 생성하고 클라이언트 컴퓨터(300)에 대하여 송신한다. 이에 따라, 클라이언트 컴퓨터(300)에 대하여 추가된 NIC(135)의 정보가 통지된다. [Step S66] The trunking mechanism unit 120c generates a distributed algorithm notification packet, which adds the packet type, and transmits it to the client computer 300. Accordingly, the information of the NIC 135 added to the client computer 300 is notified.

[단계 S67] 트렁킹 기구부(120c)는 응답의 수신 대기 상태가 된다. [Step S67] The trunking mechanism unit 120c enters a standby state for receiving a response.

[단계 S68] 클라이언트 컴퓨터(300)의 트렁킹 기구부(320)는 분산 알고리즘 통지 패킷의 수신의 유무를 판단한다. 수신한 경우, 처리가 단계 S69로 진행된다. 수신하지 않은 경우, 처리가 단계 S61에 진행되고, 계속해서 패킷의 수신을 대기한다. [Step S68] The trunking mechanism unit 320 of the client computer 300 determines whether or not the distribution algorithm notification packet has been received. If so, the process proceeds to step S69. If not, processing proceeds to step S61 to continue waiting for the reception of the packet.

[단계 S69] 트렁킹 기구부(320)는 분산 알고리즘 통지 패킷이 신규에 실장된 NIC의 추가 지시인지 여부를 판단한다. 이것은, 패킷의 종별이「추가」인지 여부로 판단할 수 있다. NIC의 추가 지시인 경우, 처리가 단계 S71로 진행된다. NIC의 추가 지시 이외의 지시(예를 들면, NIC의 삭제)의 경우에 처리가 단계 S70으로 진행된다. [Step S69] The trunking mechanism unit 320 determines whether the distributed algorithm notification packet is an additional instruction of the newly mounted NIC. This can be determined by whether the type of the packet is "addition" or not. In the case of further instruction of the NIC, the process proceeds to step S71. In the case of an instruction other than the additional instruction of the NIC (for example, deletion of the NIC), the processing proceeds to step S70.

[단계 S70] 트렁킹 기구부(320)는 분산 알고리즘 통지 패킷에서 지시된 처리(NIC 추가 이외의 처리)를 실행한다. 그 후, 처리가 단계 S61로 진행된다. [Step S70] The trunking mechanism unit 320 executes processing (processes other than NIC addition) indicated in the distributed algorithm notification packet. Thereafter, the process proceeds to step S61.

[단계 S71] 트렁킹 기구부(320)는 분산 알고리즘 통지 패킷에서 지시된 신규의 NIC를 자신의 분산 알고리즘 테이블(321)에 추가한다. [Step S71] The trunking mechanism unit 320 adds the new NIC indicated in the distributed algorithm notification packet to its distributed algorithm table 321.

[단계 S72] 트렁킹 기구부(320)는 서버 컴퓨터(100c)에 대하여 응답의 패킷을 송신한다. [Step S72] The trunking mechanism unit 320 transmits a packet of a response to the server computer 100c.

[단계 S73] 서버 컴퓨터(100c)의 트렁킹 기구부(120c)는 일정 시간 내에 응답이 있었는지 여부를 판단한다. 응답이 있었던 경우, 처리가 단계 S74로 진행된다. 응답이 없는 경우, 처리가 단계 S66으로 진행된다. [Step S73] The trunking mechanism 120c of the server computer 100c determines whether there is a response within a predetermined time. If there is a response, the process proceeds to step S74. If there is no response, the process proceeds to step S66.

[단계 S74] 트렁킹 기구부(120c)는 응답을 확인 후, 분산 알고리즘 테이블 (121c)에 신규로 추가된 NIC의 정보를 추가한다. [Step S74] After confirming the response, the trunking mechanism unit 120c adds the information of the newly added NIC to the distributed algorithm table 121c.

[단계 S75] 서버 컴퓨터(100c)의 트렁킹 기구부(120c)와 클라이언트 컴퓨터(300)의 트렁킹 기구부(320)는 신규로 추가된 NIC를 통신 경로에 포함시킨 데이터 통신을 개시한다. [Step S75] The trunking mechanism part 120c of the server computer 100c and the trunking mechanism part 320 of the client computer 300 start data communication including the newly added NIC in the communication path.

이상과 같이 하여, 신규의 NIC를 추가할 수 있다. 이 동작은 WWW 서버(110c) 등의 애플리케이션의 통신과는 독립적으로 병렬로 실행되기 때문에, 이제까지 교환되어 있는 다른 NIC(131c, 132c, 133c, 134c) 상의 통신 데이터에는 영향이 없다. 더구나, 스위칭 허브측도 일단 설정을 리셋하여 재기동할 필요도 없다. 그 때문에, 통신을 계속시킨 채로의 상태에서 데이터 전송 대역을 동적으로 확장하는 것이 가능해진다. In this way, a new NIC can be added. Since this operation is executed in parallel independently of the communication of an application such as the WWW server 110c, the communication data on the other NICs 131c, 132c, 133c, and 134c exchanged so far are not affected. Moreover, the switching hub side also does not need to be reset and restarted once. Therefore, the data transmission band can be dynamically expanded while the communication is continued.

NIC를 추가하는 경우와 마찬가지로, 운용 중에 NIC를 제거하는 것도 가능하다. As with adding a NIC, it is possible to remove the NIC during operation.

도 20은 NIC을 1장 삭제하는 경우의 원리 설명도이다. 서버 컴퓨터(100c)에서 NIC(135)를 제거하면, NIC 추가/분리 제어부(140)에 대하여 I/O 인터럽트에 의해 NIC의 분리가 통지된다. 한편, 서버 컴퓨터(100c) 등의 애플리케이션이나 오퍼레이터로부터의 조작 입력에 의해 NIC 분리의 지시를 NIC 추가/분리 제어부(140)에 통지할 수도 있다. 20 is a principle explanatory diagram in the case where one NIC is deleted. When the NIC 135 is removed from the server computer 100c, the NIC addition / detaching control unit 140 is notified of the NIC separation by the I / O interrupt. On the other hand, the NIC addition / detaching control unit 140 can be notified of the instruction for NIC detachment by an operation input from an application or an operator such as the server computer 100c.

NIC 분리의 통지를 수취한 NIC 추가/분리 제어부(140)는 내부의 시스템 구성 정보를 갱신하고, 그 내용을 프로그램간 통신을 이용하여 트렁킹 기구부(120c)로 통지한다. 통지를 받은 트렁킹 기구부(120c)는 해당 NIC(135)의 정보를 분산 알고 리즘 테이블(121c)에서 삭제함으로써 트렁킹 대상으로부터 제외된다. 그 후, 서버 컴퓨터(100c)측에서는 NIC(135)를 사용하지 않고 송신 분산이 행해진다. Upon receiving notification of NIC separation, the NIC addition / detaching control unit 140 updates the internal system configuration information, and notifies the trunking mechanism unit 120c of its contents using inter-program communication. The notified trunking mechanism 120c is removed from the trunking target by deleting the information of the NIC 135 from the distributed algorithm table 121c. Subsequently, transmission distribution is performed on the server computer 100c side without using the NIC 135.

또한, 수신에 관해서는 트렁킹 기구부(120c)에서 클라이언트 컴퓨터(300, 300a, 300b, 300c)로, NIC(135)를 대상으로부터 제거하도록 갱신한 분산 알고리즘 통지 패킷(패킷의 종별이 삭제)을 송신한다. 이에 따라, 각 클라이언트 컴퓨터(300, 300a, 300b, 300c)의 트렁킹 기구부가 내부의 분산 알고리즘 테이블로부터 NIC(135)의 정보를 삭제한다. 이후, 클라이언트 컴퓨터(300, 300a, 300b, 300c)에서 서버 컴퓨터(100c)에 송신되는 데이터는 NIC(135) 이외의 NIC(131c, 132c, 133c, 134c)가 사용된다. In addition, the reception of the distributed algorithm notification packet (the type of packet is deleted) is updated from the trunking mechanism unit 120c to the client computers 300, 300a, 300b, and 300c so as to remove the NIC 135 from the target. . Accordingly, the trunking mechanism of each client computer 300, 300a, 300b, 300c deletes the information of the NIC 135 from the internal distributed algorithm table. After that, NICs 131c, 132c, 133c, and 134c other than the NIC 135 are used for data transmitted from the client computers 300, 300a, 300b, and 300c to the server computer 100c.

그 후, 스위칭 허브(200)의 해당 LAN 포트로부터 접속 케이블을 벗겨, NIC(135)의 삭제가 완료한다. Thereafter, the connection cable is removed from the LAN port of the switching hub 200, and the deletion of the NIC 135 is completed.

이 동작은 어플리케이션의 통신과는 독립적으로 병렬로 실행되기 때문에, 이제까지 교환되고 있는 다른 NIC 상의 통신 데이터에는 영향이 없다. 또한, 스위칭 허브(200)측도 일단 설정을 리셋하여 재기동하는 등의 필요가 없기 때문에, 통신을 계속시킨 채로의 상태에서 데이터 전송 대역을 동적으로 축소하는 것이 가능하다. Since this operation is performed in parallel independently of the communication of the application, there is no effect on the communication data on other NICs being exchanged. In addition, since the switching hub 200 side does not need to reset and restart the setting once, it is possible to dynamically reduce the data transmission band while the communication is continued.

이와 같이, 서버 컴퓨터(100c)의 운용을 정지시키지 않고서 NIC의 추가 실장이나 제거가 가능해지기 때문에, 서버 컴퓨터(100c)와 스위칭 허브(200) 사이의 대역폭의 조정이 용이해진다. 즉, 데이터 통신량이 과대해져 대역폭이 부족하게 된 경우, NIC를 추가하여 운용을 계속한 채로 대역폭의 확대가 가능해진다. In this way, since the NIC can be additionally mounted or removed without stopping the operation of the server computer 100c, the bandwidth between the server computer 100c and the switching hub 200 can be easily adjusted. In other words, when the data communication volume becomes excessive and the bandwidth becomes insufficient, the bandwidth can be expanded while the operation is continued by adding a NIC.

한편, 상기한 각 실시예를 실현하기 위해서, 서버 컴퓨터가 가져야 할 기능 의 처리 내용을 기술한 서버 프로그램 및 클라이언트 컴퓨터가 가져야 할 기능의 처리 내용을 기술한 클라이언트 프로그램이 제공된다. 서버 프로그램을 컴퓨터에서 실행함으로써, 상기 실시예에 따른 서버 컴퓨터의 처리 기능이 실현된다. 또한, 클라이언트 프로그램을 컴퓨터로 실행함으로써 상기 실시예에 따른 클라이언트 컴퓨터의 처리 기능이 실현된다. On the other hand, in order to realize each of the above-described embodiments, a server program describing the processing contents of a function to be possessed by a server computer and a client program describing the processing contents of a function to be possessed by the client computer are provided. By executing the server program on the computer, the processing function of the server computer according to the above embodiment is realized. Further, by executing the client program on a computer, the processing function of the client computer according to the above embodiment is realized.

처리 내용을 기술한 서버 프로그램이나 클라이언트 프로그램은, 컴퓨터로 판독 가능한 기록 매체에 기록해 둘 수 있다. 컴퓨터로 판독 가능한 기록 매체로서는, 자기 기록 장치, 광 디스크, 광자기 기록 매체, 반도체 메모리 등이 있다. 자기 기록 장치에는 하드디스크 장치(HDD), 플렉시블 디스크(FD), 자기 테이프 등이 있다. 광 디스크에는 DVD(Digital Versatile Disc), DVD-RAM(Random Access Memory), CD-ROM(Compact Disc Read Only Memory), CD-R(Recordable) /RW(ReWritable) 등이 있다. 광자기 기록 매체에는 MO(Magneto-Optical disc) 등이 있다. The server program or client program describing the processing contents can be recorded in a computer-readable recording medium. Examples of computer-readable recording media include magnetic recording apparatuses, optical disks, magneto-optical recording media, semiconductor memories, and the like. Magnetic recording apparatuses include a hard disk device (HDD), a flexible disk (FD), a magnetic tape, and the like. Optical discs include DVD (Digital Versatile Disc), DVD-RAM (Random Access Memory), CD-ROM (Compact Disc Read Only Memory), CD-R (Recordable) / RW (ReWritable), and the like. The magneto-optical recording medium includes a magneto-optical disc (MO).

서버 프로그램이나 클라이언트 프로그램을 유통시키는 경우에는, 예컨대, 각 프로그램이 기록된 DVD, CD-ROM 등의 가반형 기록 매체가 판매된다. 또한, 클라이언트 프로그램을 서버 컴퓨터의 기억 장치에 저장해 두고, 네트워크를 통해 서버 컴퓨터로부터 클라이언트 컴퓨터에 클라이언트 프로그램을 전송할 수도 있다. In the case of distributing a server program or a client program, for example, a portable recording medium such as a DVD or a CD-ROM on which each program is recorded is sold. It is also possible to store the client program in a storage device of the server computer and to transmit the client program from the server computer to the client computer via a network.

서버 프로그램을 실행하는 서버 컴퓨터는, 예를 들면, 가반형 기록 매체에 기록된 서버 프로그램을 자기의 기억 장치에 저장한다. 그리고, 서버 컴퓨터는 자기의 기억 장치로부터 서버 프로그램을 판독하고, 서버 프로그램에 따른 처리를 실 행한다. 한편, 서버 컴퓨터는 가반형 기록 매체로부터 직접 서버 프로그램을 판독하여 그 서버 프로그램에 따른 처리를 실행할 수도 있다. A server computer that executes a server program stores, for example, a server program recorded on a portable recording medium in its storage device. Then, the server computer reads out the server program from its storage device and executes the processing according to the server program. On the other hand, the server computer may read the server program directly from the portable recording medium and execute a process according to the server program.

클라이언트 프로그램을 실행하는 클라이언트 컴퓨터는, 예를 들면, 가반형 기록 매체에 기록된 클라이언트 프로그램 혹은 서버 컴퓨터로부터 전송된 클라이언트 프로그램을 자기의 기억 장치에 저장한다. 그리고, 클라이언트 컴퓨터는 자기의 기억 장치로부터 클라이언트 프로그램을 판독하고, 클라이언트 프로그램에 따른 처리를 실행한다. 한편, 클라이언트 컴퓨터는 가반형 기록 매체로부터 직접 클라이언트 프로그램을 판독하고, 그 클라이언트 프로그램에 따른 처리를 실행할 수도 있다. 또한, 클라이언트 컴퓨터는 서버 컴퓨터로부터 클라이언트 프로그램이 전송될 때마다, 순차로 수취한 클라이언트 프로그램에 따른 처리를 실행할 수도 있다. A client computer that executes a client program stores, for example, a client program recorded on a portable recording medium or a client program transmitted from a server computer in its storage device. Then, the client computer reads the client program from its storage device and executes a process according to the client program. On the other hand, the client computer can read the client program directly from the portable recording medium and execute a process according to the client program. In addition, each time the client program is transmitted from the server computer, the client computer may execute processing in accordance with the client program sequentially received.

이상 설명한 바와 같이 본 발명에서는 분산 알고리즘 통지 패킷에 의해 복수의 통신 인터페이스의 물리 어드레스와 분산 알고리즘을 통신 상대 컴퓨터에 통지하고, 상대의 컴퓨터에 있어서 분산 알고리즘에 따라서 결정된 통신 인터페이스의 물리 어드레스처에 송신 데이터를 송신하도록 하였다. 이에 따라, 패킷을 중계하는 장치에 트렁킹 기능이 없어도 복수의 전송로를 이용한 트렁킹이 가능해진다. As described above, in the present invention, the distributed algorithm notification packet notifies the communication partner computer of the physical addresses and distributed algorithms of the plurality of communication interfaces, and transmits the data to the physical address destination of the communication interface determined according to the distributed algorithm in the partner computer. To transmit. Accordingly, trunking using a plurality of transmission paths is possible even if the apparatus for relaying packets does not have a trunking function.

상기에 대해서는 단순히 본 발명의 원리를 나타내는 것이다. 또한, 다수의 변형, 변경이 당업자에 있어서 가능하고, 본 발명은 상기에 도시, 설명한 정확한 구성 및 응용예에 한정되는 것이 아니고, 대응하는 모든 변형예 및 균등물은 첨부의 청구항 및 그 균등물에 의한 본 발명의 범위로 간주된다. The above merely illustrates the principles of the present invention. In addition, many modifications and variations are possible to those skilled in the art, and the present invention is not limited to the exact construction and application shown and described above, and all corresponding modifications and equivalents are described in the appended claims and their equivalents. By the scope of the present invention.

Claims (18)

복수의 통신 인터페이스를 실장 가능한 컴퓨터에서의 전송로의 통신 부하를 분산시키기 위한 데이터 통신 부하 분산 제어 프로그램을 포함하는 컴퓨터로 판독가능한 기록 매체에 있어서, A computer-readable recording medium comprising a data communication load balancing control program for distributing a communication load on a transmission path in a computer on which a plurality of communication interfaces can be mounted. 상기 컴퓨터로 하여금, Let the computer: 상기 복수의 통신 인터페이스의 물리 어드레스 및 통신 상대 컴퓨터가 상기 컴퓨터처에 송신하는 데이터를 상기 복수의 통신 인터페이스에 분산시키는 경우의 분산 알고리즘을 포함하는 분산 알고리즘 통지 패킷을 생성하는 처리와, A process of generating a distributed algorithm notification packet including a distributed algorithm in the case of distributing physical addresses of the plurality of communication interfaces and data transmitted from a communication partner computer to the computer destination to the plurality of communication interfaces; 네트워크를 통해 접속되어 있는 상기 통신 상대 컴퓨터에 대하여 상기 분산 알고리즘 통지 패킷을 송신하는 처리를 실행하게 하는 것을 특징으로 하는 데이터 통신 부하 분산 제어 프로그램을 포함하는 컴퓨터로 판독가능한 기록 매체. And a data communication load balancing control program characterized by causing a process of transmitting said distributed algorithm notification packet to said communication counterpart computer connected via a network. 제1항에 있어서, 상기 분산 알고리즘 통지 패킷은 시스템 기동시에 브로드캐스트로 송신하는 것을 특징으로 하는 데이터 통신 부하 분산 제어 프로그램을 포함하는 컴퓨터로 판독가능한 기록 매체. The computer-readable recording medium of claim 1, wherein the distributed algorithm notification packet is transmitted by broadcast at system startup. 제1항에 있어서, 데이터 통신의 어플리케이션마다 상기 분산 알고리즘을 지정한 상기 분산 알고리즘 통지 패킷을 생성하는 것을 특징으로 하는 데이터 통신 부하 분산 제어 프로그램을 포함하는 컴퓨터로 판독가능한 기록 매체. 2. The computer-readable recording medium of claim 1, wherein the distributed algorithm notification packet specifying the distributed algorithm is generated for each application of data communication. 제1항에 있어서, 상기 통신 상대 컴퓨터마다 상기 분산 알고리즘을 지정한 상기 분산 알고리즘 통지 패킷을 생성하는 것을 특징으로 하는 데이터 통신 부하 분산 제어 프로그램을 포함하는 컴퓨터로 판독가능한 기록 매체. The computer-readable recording medium containing a data communication load balancing control program according to claim 1, wherein said distributed algorithm notification packet for designating said distributed algorithm is generated for each said counterpart computer. 제1항에 있어서, 데이터 통신의 애플리케이션마다 통신에 사용 가능한 상기 통신 인터페이스를 지정한 상기 분산 알고리즘 통지 패킷을 생성하는 것을 특징으로 하는 데이터 통신 부하 분산 제어 프로그램을 포함하는 컴퓨터로 판독가능한 기록 매체. A computer-readable recording medium comprising a data communication load balancing control program according to claim 1, wherein said distributed algorithm notification packet is generated for each application of data communication specifying said communication interface usable for communication. 제1항에 있어서, 상기 통신 상대 컴퓨터마다 통신에 사용 가능한 상기 통신 인터페이스를 지정한 상기 분산 알고리즘 통지 패킷을 생성하는 것을 특징으로 하는 데이터 통신 부하 분산 제어 프로그램을 포함하는 컴퓨터로 판독가능한 기록 매체. A computer-readable recording medium comprising a data communication load balancing control program according to claim 1, wherein said distributed algorithm notification packet is specified for each said communication partner computer specifying said communication interface usable for communication. 제1항에 있어서, 상기 통신 상대 컴퓨터로의 송신 데이터를 상기 복수의 통신 인터페이스에 대하여 분산시켜 송신하는 것을 특징으로 하는 데이터 통신 부하 분산 제어 프로그램을 포함하는 컴퓨터로 판독가능한 기록 매체. A computer-readable recording medium comprising a data communication load balancing control program according to claim 1, wherein the transmission data to said communication partner computer are distributed and transmitted over said plurality of communication interfaces. 제1항에 있어서, 상기 컴퓨터에 대하여 상기 컴퓨터와 협동하여 처리를 실행하는 협동 컴퓨터가 접속되어 있는 경우, 상기 협동 컴퓨터에 실장되어 있는 협동통신 인터페이스의 물리 어드레스를 포함한 상기 분산 알고리즘 통지 패킷을 생성하는 것을 특징으로 하는 데이터 통신 부하 분산 제어 프로그램을 포함하는 컴퓨터로 판독가능한 기록 매체. The distributed algorithm notification packet according to claim 1, further comprising: generating a distributed algorithm notification packet including a physical address of a cooperative communication interface mounted on the cooperative computer when a cooperative computer that executes processing in cooperation with the computer is connected to the computer. And a data communication load balancing control program. 제8항에 있어서, 상기 통신 상대 컴퓨터로의 송신 데이터를 상기 통신 인터페이스와 상기 협동 통신 인터페이스로 분산시켜 송신하는 것을 특징으로 하는 데이터 통신 부하 분산 제어 프로그램을 포함하는 컴퓨터로 판독가능한 기록 매체. The computer-readable recording medium of claim 8, further comprising: a data communication load balancing control program characterized by distributing transmission data to the communication counterpart computer to the communication interface and the cooperative communication interface. 제1항에 있어서, 상기 컴퓨터에 대하여 새로운 통신 인터페이스가 추가되면, 추가된 상기 통신 인터페이스의 물리 어드레스를 포함하여 상기 통신 인터페이스를 분산 처리의 사용 대상에 포함시키는 것을 통지하는 상기 분산 알고리즘 통지 패킷을 생성하고, The distributed algorithm notification packet according to claim 1, wherein when a new communication interface is added to the computer, the distributed algorithm notification packet is notified to include the communication interface in use of distributed processing, including the added physical address of the communication interface. and, 생성한 상기 분산 알고리즘 통지 패킷을 상기 통신 상대 컴퓨터에 송신하는 것을 특징으로 하는 데이터 통신 부하 분산 제어 프로그램을 포함하는 컴퓨터로 판독가능한 기록 매체. And a data communication load balancing control program, wherein said generated distributed algorithm notification packet is sent to said communication partner computer. 제1항에 있어서, 상기 컴퓨터로부터 통신 인터페이스가 제거되면, 제거된 상기 통신 인터페이스를 분산 처리의 사용 대상으로부터 제외하는 것을 통지하는 상기 분산 알고리즘 통지 패킷을 생성하고, The distributed algorithm notification packet according to claim 1, wherein when the communication interface is removed from the computer, the distributed algorithm notification packet is generated that notifies the removal of the removed communication interface from use of distributed processing, 생성된 상기 분산 알고리즘 통지 패킷을 상기 통신 상대 컴퓨터에 송신하는 것을 특징으로 하는 데이터 통신 부하 분산 제어 프로그램을 포함하는 컴퓨터로 판독가능한 기록 매체. And a data communication load balancing control program characterized by transmitting the generated distributed algorithm notification packet to the communication counterpart computer. 복수의 통신 인터페이스를 실장 가능한 통신 상대 컴퓨터까지의 전송로의 통신 부하를 분산시키기 위한 부하 분산 데이터 송신 프로그램을 포함하는 컴퓨터로 판독가능한 기록 매체에 있어서, A computer-readable recording medium comprising a load balancing data transmission program for distributing a communication load on a transmission path to a communication counterpart computer that can mount a plurality of communication interfaces. 컴퓨터로 하여금, Let the computer 상기 복수의 통신 인터페이스의 물리 어드레스 및 상기 통신 상대 컴퓨터처에 송신하는 데이터를 상기 복수의 통신 인터페이스에 분산시키는 경우의 분산 알고리즘을 포함하는 분산 알고리즘 통지 패킷을 수신하면, 상기 복수의 통신 인터페이스의 물리 어드레스와 상기 분산 알고리즘을 데이터 테이블에 저장하는 처리와, When receiving a distributed algorithm notification packet including a distributed algorithm in the case of distributing physical addresses of the plurality of communication interfaces and data transmitted to the communication destination computer to the plurality of communication interfaces, the physical addresses of the plurality of communication interfaces. Storing the distribution algorithm in a data table; 상기 통신 상대 컴퓨터에 대하여 송신하는 송신 데이터의 수신처가 되는 상기 통신 인터페이스를 상기 분산 알고리즘에 따라서 결정하는 처리와, A process of determining, according to the distribution algorithm, the communication interface as a destination of transmission data to be transmitted to the communication counterpart computer; 수신처로 결정된 상기 통신 인터페이스의 상기 물리 어드레스를 수신처로서 지정하여 상기 송신 데이터를 송신하는 처리를 실행하게 하는 것을 특징으로 하는 부하 분산 데이터 송신 프로그램을 포함하는 컴퓨터로 판독가능한 기록 매체. And a load-balancing data transmission program comprising: specifying the physical address of the communication interface determined as a destination as a destination to execute a process of transmitting the transmission data. 복수의 통신 인터페이스를 실장 가능한 컴퓨터에서의 전송로의 통신 부하를 분산시키기 위한 데이터 통신 부하 분산 제어 방법에 있어서, A data communication load balancing control method for distributing communication loads on a transmission path in a computer that can mount a plurality of communication interfaces, 상기 복수의 통신 인터페이스의 물리 어드레스 및 통신 상대 컴퓨터가 상기 컴퓨터처에 송신하는 데이터를 상기 복수의 통신 인터페이스에 분산시키는 경우의 분산 알고리즘을 포함하는 분산 알고리즘 통지 패킷을 생성하는 단계와, Generating a distributed algorithm notification packet including a distributed algorithm in the case where the physical addresses of the plurality of communication interfaces and data transmitted from a communication partner computer to the computer destination are distributed to the plurality of communication interfaces; 네트워크를 통해 접속되어 있는 상기 통신 상대 컴퓨터에 대하여, 상기 분산 알고리즘 통지 패킷을 송신하는 단계를 포함하는 것을 특징으로 하는 데이터 통신 부하 분산 제어 방법. And transmitting the distributed algorithm notification packet to the counterpart computer connected via a network. 복수의 통신 인터페이스를 실장 가능한 통신 상대 컴퓨터까지의 전송로의 통 신 부하를 분산시키기 위한 데이터 통신 부하 분산 방법에 있어서, A data communication load balancing method for distributing a communication load on a transmission path to a communication counterpart computer that can mount a plurality of communication interfaces, 상기 복수의 통신 인터페이스의 물리 어드레스 및 상기 통신 상대 컴퓨터처에 송신하는 데이터를 상기 복수의 통신 인터페이스에 분산시키는 경우의 분산 알고리즘을 포함하는 분산 알고리즘 통지 패킷을 수신하면, 상기 복수의 통신 인터페이스의 물리 어드레스와 상기 분산 알고리즘을 데이터 테이블에 저장하는 단계와, When receiving a distributed algorithm notification packet including a distributed algorithm in the case of distributing physical addresses of the plurality of communication interfaces and data transmitted to the communication destination computer to the plurality of communication interfaces, the physical addresses of the plurality of communication interfaces. Storing the distribution algorithm in a data table; 상기 통신 상대 컴퓨터에 대하여 송신하는 송신 데이터의 수신처가 되는 상기 통신 인터페이스를 상기 분산 알고리즘에 따라서 결정하는 단계와, Determining, according to the distribution algorithm, the communication interface as a destination of transmission data to be transmitted to the communication counterpart computer; 수신처에 결정된 상기 통신 인터페이스의 상기 물리 어드레스를 수신처로서 지정하고 상기 송신 데이터를 상기 통신 상대 컴퓨터에 대하여 송신하는 단계를 포함하는 것을 특징으로 하는 데이터 통신 부하 분산 방법. And specifying the physical address of the communication interface determined at a destination as a destination and transmitting the transmission data to the communication counterpart computer. 실장된 복수의 통신 인터페이스 경유의 통신 부하를 분산시키는 데이터 통신 부하 분산 제어 장치에 있어서, A data communication load balancing control apparatus for distributing communication loads through a plurality of mounted communication interfaces, 상기 복수의 통신 인터페이스의 물리 어드레스 및 통신 상대 컴퓨터로부터 보내지는 데이터를 상기 복수의 통신 인터페이스에 분산시키는 경우의 분산 알고리즘을 포함하는 분산 알고리즘 통지 패킷을 생성하는 패킷 생성 수단과, Packet generation means for generating distributed algorithm notification packets including a distributed algorithm in the case of distributing physical addresses of the plurality of communication interfaces and data sent from a communication partner computer to the plurality of communication interfaces; 네트워크를 통해 접속되어 있는 상기 통신 상대 컴퓨터에 대하여 상기 패킷 생성 수단으로 생성된 상기 분산 알고리즘 통지 패킷을 송신하는 패킷 송신 수단을 갖는 것을 특징으로 하는 데이터 통신 부하 분산 제어장치. And a packet transmission means for transmitting said distributed algorithm notification packet generated by said packet generation means to said communication counterpart computer connected via a network. 복수의 통신 인터페이스를 실장 가능한 통신 상대 컴퓨터까지의 전송로의 통신 부하를 분산시키는 부하 분산 데이터 송신 장치에 있어서, A load balancing data transmission device for distributing a communication load on a transmission path to a communication counterpart computer that can mount a plurality of communication interfaces, 상기 복수의 통신 인터페이스의 물리 어드레스 및 상기 통신 상대 컴퓨터처에 송신하는 데이터를 상기 복수의 통신 인터페이스에 분산시키는 경우의 분산 알고리즘을 포함하는 분산 알고리즘 통지 패킷을 수신하면, 상기 복수의 통신 인터페이스의 물리 어드레스와 상기 분산 알고리즘을 데이터 테이블에 저장하는 저장 수단과, When receiving a distributed algorithm notification packet including a distributed algorithm in the case of distributing physical addresses of the plurality of communication interfaces and data transmitted to the communication destination computer to the plurality of communication interfaces, the physical addresses of the plurality of communication interfaces. And storage means for storing the distribution algorithm in a data table; 상기 통신 상대 컴퓨터에 대하여 송신하는 송신 데이터의 수신처가 되는 상기 통신 인터페이스를, 상기 분산 알고리즘에 따라서 결정하는 결정 수단과, Determination means for determining, according to the distribution algorithm, the communication interface as a destination of transmission data to be transmitted to the communication counterpart computer; 수신처로 결정된 상기 통신 인터페이스의 상기 물리 어드레스를 수신처로서 지정하여 상기 송신 데이터를 송신하는 송신 수단을 갖는 것을 특징으로 하는 부하 분산 데이터 송신 장치. And transmission means for transmitting the transmission data by designating the physical address of the communication interface determined as a destination as a destination. 삭제delete 삭제delete
KR1020057018339A 2005-09-28 2003-03-31 Data communication load distribution control program and load distribution control method KR100650003B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020057018339A KR100650003B1 (en) 2005-09-28 2003-03-31 Data communication load distribution control program and load distribution control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020057018339A KR100650003B1 (en) 2005-09-28 2003-03-31 Data communication load distribution control program and load distribution control method

Publications (2)

Publication Number Publication Date
KR20050118700A KR20050118700A (en) 2005-12-19
KR100650003B1 true KR100650003B1 (en) 2006-11-28

Family

ID=37291660

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057018339A KR100650003B1 (en) 2005-09-28 2003-03-31 Data communication load distribution control program and load distribution control method

Country Status (1)

Country Link
KR (1) KR100650003B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11973823B1 (en) * 2023-01-11 2024-04-30 Dell Products L.P. Offloading namespace redirection to backup clients in a scale out cluster

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11973823B1 (en) * 2023-01-11 2024-04-30 Dell Products L.P. Offloading namespace redirection to backup clients in a scale out cluster

Also Published As

Publication number Publication date
KR20050118700A (en) 2005-12-19

Similar Documents

Publication Publication Date Title
US6963917B1 (en) Methods, systems and computer program products for policy based distribution of workload to subsets of potential servers
US6876656B2 (en) Switch assisted frame aliasing for storage virtualization
US6871347B2 (en) Method and apparatus for facilitating load balancing across name servers
US6324177B1 (en) Method and apparatus for managing connections based on a client IP address
US8578053B2 (en) NAS load balancing system
US20150052252A1 (en) Method and system for optimizing a network by independently scaling control segments and data flow
US8068498B2 (en) Computer readable record medium on which data communication load distribution control program is recorded and data load distribution control method
US20180123964A1 (en) Systems and methods for management of cloud exchanges
JP2015534769A (en) Load balancing in data networks
US20230179517A1 (en) Wide area networking service using provider network backbone network
KR100834361B1 (en) Effiviently supporting multiple native network protocol implementations in a single system
US11824773B2 (en) Dynamic routing for peered virtual routers
US20080307045A1 (en) Method, system and apparatus for managing directory information
JP4251148B2 (en) In-group communication method, system, and recording medium
KR100650003B1 (en) Data communication load distribution control program and load distribution control method
JP7332869B2 (en) Communication program, communication method and communication device
Cisco Designing APPN Internetworks
Cisco Designing APPN Internetworks
JP2013105227A (en) P2p type web proxy network system
JP3708444B2 (en) Multiprocessor information processing device
WO2022003881A1 (en) Path setting system, control device, program, and path setting method
US20220321471A1 (en) Multi-tenant offloaded protocol processing for virtual routers
JP2001005827A (en) Distribution retrieving device and distribution retrieving program storage medium
JP2638513B2 (en) Network system
JP4351721B2 (en) Data distribution method and terminal

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121114

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131031

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141103

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151016

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20161019

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20171018

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee