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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
- H04L12/427—Loop networks with decentralised control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/44—Star 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
본 발명은 다중화된 전송로를 통해 데이터 통신을 행할 때의 데이터 통신 부하 분산 제어 프로그램 및 데이터 부하 분산 제어 방법에 관한 것으로, 특히 트렁킹(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
컴퓨터(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
NIC(913∼916)는 각각 개별의 전송로에서 스위칭 허브(920)에 접속되어 있고, 스위칭 허브(920)와의 사이에서 데이터 통신을 행한다. The
스위칭 허브(920)는 8개의 LAN 포트 중의 4개가 컴퓨터(910)의 NIC(913∼916)에 접속되어 있다. 다른 4개의 LAN 포트는 상대측 컴퓨터(930, 940, 950, 960)에 접속되어 있다. Four of the eight LAN ports of the
또한, 스위칭 허브(920)는 트렁킹 대응부(921)를 갖고 있다. 트렁킹 대응부(921)는 각 LAN 포트로의 접속 상대의 IP 어드레스 등의 정보가 저장된 구성 정보(921a)를 갖고 있다. In addition, the
이러한 구성의 시스템에 있어서 컴퓨터(910)와 스위칭 허브(920) 사이에서 트렁킹이 행해진다. 즉, 컴퓨터(910)는 다중화된 NIC(913∼916)를 사용하여 하나의 논리적인 NIC를 생성한다. 그리고 컴퓨터(910)는 논리적인 NIC를 통해서 데이터의 송수신을 행한다. Trunking is performed between the computer 910 and the
스위칭 허브(920)는 컴퓨터(910)로부터 보내진 데이터를 상대측 컴퓨터(930, 940, 950, 960)로 보낸다. 또한, 스위칭 허브(920)는 상대측 컴퓨터(930, 940, 950, 960)로부터 보내진 데이터를 트렁킹 대응부(921)가, 컴퓨터(910)에 접속된 LAN 포트의 하나로 분류하고, 그 LAN 포트를 통해 컴퓨터(910)에 데이터를 송신한다. The
이에 따라, 컴퓨터(910)와 스위칭 허브(920) 사이의 데이터 통신 대역이 확대된다. As a result, the data communication band between the computer 910 and the
한편, 트렁킹 대응부(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
그러나, 종래 방식으로는 기본적으로 컴퓨터와 스위칭 허브가 모두 트렁킹 기능을 가지고 있지 않으면 접속할 수 없어 적용 조건이 한정된 것으로 되어 있었다. 더구나, 스위칭 허브와 컴퓨터 사이에서 사용하는 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
컴퓨터(1)는 복수의 통신 인터페이스(1a, 1b, 1c, 1d)의 물리 어드레스, 및 통신 상대의 컴퓨터(3)가 컴퓨터(1)처에 송신하는 데이터를 복수의 통신 인터페이스(1a, 1b, 1c, 1d)에 분산시키는 경우의 분산 알고리즘을 포함하는 분산 알고리즘 통지 패킷(4)을 생성한다(단계 S1). 그리고, 컴퓨터(1)는 네트워크를 통해 접속되어 있는 통신 상대 컴퓨터에 대하여 분산 알고리즘 통지 패킷(4)을 송신한다(단계 S2). The
이에 따라, 컴퓨터(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
또한, 상기 과제를 해결하기 위해서, 도 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
컴퓨터(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
이에 따라, 컴퓨터(3)로부터 통신 상대 컴퓨터에 대하여 송신하는 송신 데이터(5)는 분산 알고리즘 통지 패킷(4)에서 지정된 분산 알고리즘으로 복수의 통신 인터페이스(1a, 1b, 1c, 1d) 각각을 통한 전송로로 부하를 분산하여 송신된다. Accordingly, the
또한, 상기 과제를 해결하기 위해서, 복수의 통신 인터페이스를 실장 가능한 컴퓨터에서의 전송로의 통신 부하를 분산시키기 위한 데이터 통신 부하 분산 제어방법에 있어서, 상기 복수의 통신 인터페이스의 물리 어드레스 및 통신 상대 컴퓨터가 상기 컴퓨터처에 송신하는 데이터를 상기 복수의 통신 인터페이스에 분산시키는 경우의 분산 알고리즘을 포함하는 분산 알고리즘 통지 패킷을 생성하고, 네트워크를 통해 접속되어 있는 상기 통신 상대 컴퓨터에 대하여, 상기 분산 알고리즘 통지 패킷을 송신하는 처리를 실행시키는 것을 특징으로 하는 데이터 통신 부하 분산 제어 방법이 제공된다. 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
또한 컴퓨터(1)는 데이터 통신 부하 분산 제어 프로그램을 실행함으로써 데이터 통신 부하 분산 제어부(1e)의 기능이 구축된다. 데이터 통신 부하 분산 제어부(1e)는 전송로의 통신 부하를 분산시키는 기능을 갖고 있다. 구체적으로는 데이터 통신 부하 분산 제어부(1e)는 이하의 처리를 실효한다. In addition, the
데이터 통신 부하 분산 제어부(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
이에 따라, 컴퓨터(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
한편, 컴퓨터(3)는 통신 인터페이스(3a)를 갖고 있고, 이 통신 인터페이스(3a)가 스위칭 허브(2)에 접속되어 있다. 또한, 컴퓨터(3)는 분산 부하 데이터 송신 프로그램을 실행함으로써 컴퓨터(1)까지의 전송로의 통신 부하를 분산시키기 위한 부하 분산 데이터 송신부(3b)의 기능을 실현한다. 구체적으로는 부하 분산 데이터 송신부(3b)는 이하의 처리를 실행한다. On the other hand, the computer 3 has a
부하 분산 데이터 송신부(3b)는 복수의 통신 인터페이스(1a, 1b, 1c, 1d)의 물리 어드레스 및 컴퓨터(1)처에 송신하는 데이터를 복수의 통신 인터페이스(1a, 1b, 1c, 1d)에 분산시키는 경우의 분산 알고리즘을 포함하는 분산 알고리즘 통지 패킷(4)을 수신하면, 복수의 통신 인터페이스(1a, 1b, 1c, 1d)의 물리 어드레스와 분산 알고리즘을 데이터 테이블(3c)에 저장한다. 도 1의 예에서는 물리 어드레스「a, b, c, d」, 분산 알고리즘「라운드 로빈」이 등록되어 있다. The load balancing
다음에, 부하 분산 데이터 송신부(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
이에 따라, 컴퓨터(3)로부터 통신 상대 컴퓨터에 대하여 송신하는 송신 데이터(5)는 분산 알고리즘 통지 패킷(4)에서 지정된 분산 알고리즘으로 복수의 통신 인터페이스(1a, 1b, 1c, 1d) 각각을 통한 전송로로 부하를 분산하여 송신된다. Accordingly, the
이와 같이, 컴퓨터(1)측에서 컴퓨터(3)로, 분산 알고리즘 통지 패킷(4)에 의해 복수의 통신 인터페이스(1a, 1b, 1c, 1d)의 물리 어드레스와 분산 알고리즘을 통지하고, 컴퓨터(3)에 있어서 분산 알고리즘에 따라서 결정된 통신 인터페이스의 물리 어드레스처에 송신 데이터(5)를 송신하도록 하였다. 그 때문에, 스위칭 허브(2)에 트렁킹 기능이 없어도 복수의 전송로를 이용한 트렁킹이 가능해진다. 그 결과, 유연성이 높은 네트워크 시스템을 구축할 수 있다. In this way, the
더구나, 스위칭 허브(2)에 트렁킹 기구가 불필요하기 때문에, 저렴한 스위칭 허브(2)를 사용할 수 있다. 또한, 분산 알고리즘을 컴퓨터(1)측에서 통지하기 때문에, 알고리즘의 변경이나 통신 인터페이스의 증감으로의 대응이 용이하다. Moreover, since the trunking mechanism is not necessary for the
또한, 컴퓨터(1)의 통신 상대가 되는 컴퓨터(3)가 복수 존재한 경우, 각각 개별의 분산 알고리즘을 통지함으로써 통신 상대의 컴퓨터마다 통신에 사용하는 통신 인터페이스를 나눌 수 있다. When there are a plurality of computers 3 as communication partners of the
또한, 컴퓨터(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
서버 컴퓨터(100) 내에는 WWW(World Wide Web) 서버(110), 트렁킹 기구부(120) 및 NIC(131∼134)가 설치되어 있다. The
WWW 서버(110)는 클라이언트 컴퓨터(300, 300a, 300b, 300c) 내의 Web 브라우저(310, 310a, 310b, 310c)로부터의 요구에 응답하여 여러 가지 콘텐츠를 제공한 다. 한편, 서버 컴퓨터(100)의 노드명은「hostA」이다. 또한, 클라이언트 컴퓨터(300)의 노드명은「hostB」, 클라이언트 컴퓨터(300a)의 노드명은「hostC」, 클라이언트 컴퓨터(300b)의 노드명은「hostD」, 클라이언트 컴퓨터(300c)의 노드명은「hostE」이다. The
트렁킹 기구부(120)는 WWW 서버(110)와 NIC(131∼134) 사이에 설치된다. 트렁킹 기구부(120)는 복수의 NIC(131∼134)를 묶어 논리적인 고통신 대역을 확보하고 있다. 그리고, 트렁킹 기구부(120)는 WWW 서버(110)로부터 클라이언트 컴퓨터(300, 300a, 300b, 300c)처에 송신하는 데이터를 포함하는 패킷을 생성하고, 복수의 NIC(131∼134) 중 어느 하나를 선택하여 송신한다. The
한편, 트렁킹 기구부(120)는 분산 알고리즘 테이블(121)을 갖고 있다. 분산 알고리즘 테이블(121)에는 데이터 송신 시의 부하 분산의 알고리즘이 정의되어 있다. 그리고, 트렁킹 기구부(120)는 분산 알고리즘 테이블(121)을 참조하여, NIC(131∼134) 각각을 통한 통신의 부하가 균등해지도록 패킷의 송신에 사용하는 NIC를 선택한다. 즉, 부하 분산이 행해진다. 부하 분산은, 예를 들면, 라운드 로빈 방식에 의해서 행해진다. On the other hand, the
또한, 트렁킹 기구부(120)는 서버 컴퓨터(100)의 기동시에 각 클라이언트 컴퓨터(300, 300a, 300b, 300c)에 대하여 분산 알고리즘 통지 패킷을 송신한다. 분산 알고리즘 통지 패킷은 클라이언트 컴퓨터(300, 300a, 300b, 300c)가 서버 컴퓨터(100)처에 패킷을 송신할 때에 수신처로서 지정해야 할 물리 어드레스(MAC 어드레스)의 선택 알고리즘을 지정하는 정보이다. 어떠한 분산 알고리즘을 통지하는 것인 지는 분산 알고리즘 테이블(121)에 정의되어 있다. 한편, 분산 알고리즘 통지 패킷에는 서버 컴퓨터(100)의 각 NIC(131∼134)의 MAC 어드레스도 포함된다. In addition, the
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
스위칭 허브(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
복수의 클라이언트 컴퓨터(300, 300a, 300b, 300c)는 각각 Web 브라우저(310, 310a, 310b, 310c)를 갖고 있다. Web 브라우저(310, 310a, 310b, 310c)는 사용자로부터의 조작 입력에 응답하여 WWW 서버(110)가 제공하는 콘텐츠의 취득 요구를 출력한다. The plurality of
또한, 클라이언트 컴퓨터(300) 내에는 트렁킹 기구부(320)와 NIC(331)가 설치되어 있다. In addition, a
트렁킹 기구부(320)는 Web 브라우저(310)와 NIC(331) 사이에 설치되어 있다. 트렁킹 기구부(320)는 Web 브라우저(310)로부터 출력된 콘텐츠의 취득 요구를 포함 하는 프레임을 NIC(331) 경유로 송신한다. The
한편, 트렁킹 기구부(320)는 분산 알고리즘 테이블(321)을 갖고 있다. 분산 알고리즘 테이블(321)은 서버 컴퓨터(100)에 대하여 송신하는 데이터를 복수의 NIC(131∼134)에 부하 분산시키기 위한 알고리즘이 정의되어 있다. 분산 알고리즘 테이블(321)은 서버 컴퓨터(100)의 트렁킹 기구부(120)로부터 브로드캐스트로 송신된 분산 알고리즘 통지 패킷에 기초하여 설정된다. On the other hand, the
트렁킹 기구부(320)는 데이터를 송신할 때, 분산 알고리즘 테이블(321)에 기초하여 서버 컴퓨터(100)에 대하여 송신하는 프레임의 수신처 MAC 어드레스를 결정한다. 예를 들면, 라운드 로빈 방식에 의해서 복수의 NIC(131∼134) 각각에 균등하게 프레임 송신이 행해지도록 MAC 어드레스가 결정된다. When transmitting data, the
NIC(331)는 LAN 케이블을 통해 스위칭 허브(200)의 LAN 포트(221)에 접속되어 있고, 스위칭 허브(200)와의 사이에서 프레임의 송수신을 행한다. NIC(331)의 MAC 어드레스는「x」이다. The
다음에, 서버 컴퓨터(100)의 트렁킹 기구부(120)와 클라이언트 컴퓨터(300)의 트렁킹 기구부(320)의 내부 구성에 관해서 설명한다. Next, the internal structure of the
도 3은 트렁킹 기구부의 내부 구성을 도시한 도면이다. 서버 컴퓨터(100)의 트렁킹 기구부(120)는 분산 알고리즘 테이블(121), 분산 알고리즘 통지부(122), 송신 데이터 부하 분산 처리부(123) 및 수신 데이터 교환부(124)을 갖고 있다. 3 is a diagram illustrating an internal configuration of the trunking mechanism part. The
분산 알고리즘 테이블(121)에는 클라이언트 컴퓨터(300)와의 사이의 데이터 통신에 적용하는 부하 분산 알고리즘이 정의되어 있다. The distributed algorithm table 121 defines a load balancing algorithm applied to data communication with the
분산 알고리즘 통지부(122)는 분산 알고리즘 테이블(121)을 참조하여, 클라이언트 컴퓨터(300)에 대하여 클라이언트 컴퓨터(300)로부터 서버 컴퓨터(100)로 송신하는 데이터에 관한 분산 알고리즘을 통지한다. 분산 알고리즘은 분산 알고리즘 통지 패킷(20)에 의해 통지된다. The distributed
송신 데이터 부하 분산 처리부(123)는 송신 데이터(111)를 수취하면, 분산 알고리즘 테이블(121)을 참조하여 송신 상대가 되는 클라이언트 컴퓨터(300)에 따른 분산 알고리즘을 결정한다. 그리고, 송신 데이터 부하 분산 처리부(123)는 결정한 분산 알고리즘에 따라서 송신 데이터(111)를 복수의 NIC(131∼134)에 분류하여 송신한다. When the transmission data load
수신 데이터 교환부(124)는 클라이언트 컴퓨터(300)로부터 수취한 데이터를 WWW 서버(110)에 건네준다. 한편, 수신 데이터 교환부(124)는 수신 데이터가 분산 처리에 의해 분할 전송되고 복수의 NIC(131∼134)로부터 입력된 경우, 분할된 데이터를 연결하여 WWW 서버(110)에 건네준다. The received
클라이언트 컴퓨터(300)의 트렁킹 기구부(320)는 분산 알고리즘 테이블(321), 분산 알고리즘 취득부(322), 송신 데이터 부하 분산 처리부(323) 및 수신 데이터 교환부(324)를 갖고 있다. The
분산 알고리즘 테이블(321)에는 서버 컴퓨터(100)와의 사이의 데이터 통신에 적용하는 부하 분산 알고리즘이 정의되어 있다. In the distributed algorithm table 321, a load balancing algorithm that is applied to data communication with the
분산 알고리즘 취득부(322)는 서버 컴퓨터(100)로부터 보내오는 분산 알고리즘 통지 패킷(20)을 수취하고 분산 알고리즘 테이블(321)의 내용을 갱신한다. The distributed
송신 데이터 부하 분산 처리부(323)는 송신 데이터(311)를 수취하면, 분산 알고리즘 테이블(321)을 참조하여 송신 상대가 되는 서버 컴퓨터(100)에 따른 분산 알고리즘을 결정한다. 그리고, 송신 데이터 부하 분산 처리부(323)는 결정한 분산 알고리즘에 따라서, 송신 데이터(311)를 구성하는 복수의 데이터의 수신처 MAC 어드레스를 복수의 NIC(131∼134)로 분류하여 송신한다. When the transmission data load
수신 데이터 교환부(324)는 서버 컴퓨터(100)로부터 수취한 데이터를 Web 브라우저(310)에 건네준다. 한편, 수신 데이터 교환부(324)는 수신 데이터가 분산 처리에 의해 분할 전송되고, 복수의 NIC(131∼134) 경유로 전송된 경우, 분할된 데이터를 연결하여 Web 브라우저(310)에 건네준다. The received
한편, 도 2, 도 3에서는 클라이언트 컴퓨터(300)의 구성만이 상세하게 도시되고 있지만, 다른 클라이언트 컴퓨터(300a, 300b, 300c)도 동일한 구성이다. In addition, although only the structure of the
이러한 구성의 시스템에 의해, 복수의 클라이언트 컴퓨터(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
이 때, 서버 컴퓨터(100)와 스위칭 허브(200) 사이가 복수의 LAN 케이블로 접속되어 있기 때문에, 하나의 전송로에서 접속한 경우의 4배의 대역폭을 얻을 수 있다. 예컨대, 하나의 전송로가 100Mbps의 대역폭을 갖고 있으면, 서버 컴퓨터(100)와 스위칭 허브(200) 사이에서 400Mbps의 속도로의 통신이 가능해진다. 이에 따라, 복수의 클라이언트 컴퓨터(300, 300a, 300b, 300c)로부터 서버 컴퓨터(100) 로의 동시 액세스에 수반하는 고부하에 견딜 수 있다. At this time, since the
더구나, 서버 컴퓨터(100)로부터 클라이언트 컴퓨터(300, 300a, 300b, 300c)로 송신하는 데이터는, 트렁킹 기구부(120)에 의해 각 NIC(131∼134)에 밸런스 좋게 분류되기 때문에, 하나의 회선에 통신량이 치우치는 일이 없다. 또한, 클라이언트 컴퓨터(300)로부터 서버 컴퓨터(100)로 송신하는 데이터의 수신처는 트렁킹 기구부(320)에 의해서 NIC(131∼134)에 밸런스 좋게 분류되기 때문에, 하나의 회선에 통신량이 치우치는 일이 없다. In addition, since the data transmitted from the
도 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
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
그래픽 처리 장치(104)에는 모니터(11)가 접속되어 있다. 그래픽 처리 장치(104)는 CPU(101)로부터의 명령에 따라서 화상을 모니터(11)의 화면에 표시시킨다. 입력 인터페이스(105)에는 키보드(12)와 마우스(13)가 접속되어 있다. 입력 인터페이스(105)는 키보드(12)나 마우스(13)로부터 보내오는 신호를 버스(107)를 통해 CPU(101)에 송신한다. NIC(131∼134)는 각각 스위칭 허브(200)에 접속되어 있다. The
이상과 같은 하드웨어 구성에 의해서, 제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
다음에, 서버 컴퓨터(100)와 클라이언트 컴퓨터(300) 사이의 통신을 예에 의해, 데이터 통신을 행하기 위한 처리에 관해서 설명한다. Next, the communication for performing data communication between the
도 5는 데이터 통신 처리 순서를 도시하는 흐름도이다. 도 5에는 좌측에 서버 컴퓨터(100)의 처리가 도시되고 있고, 우측에 클라이언트 컴퓨터(300)의 처리가 도시되고 있다. 이하, 도 5에 도시하는 처리를 단계 번호에 따라서 설명한다. 5 is a flowchart showing a data communication processing procedure. 5 shows a process of the
[단계 S11] 클라이언트 컴퓨터(300)는 분산 알고리즘 통지 패킷(20)의 수신을 대기한다. [Step S11] The
[단계 S12] 서버 컴퓨터(100)은 시스템의 기동시 등에 분산 알고리즘 통지 패킷(20)을 브로드캐스트 프레임으로 송신한다. [Step S12] The
[단계 S13] 서버 컴퓨터(100)는 그 후, 클라이언트 컴퓨터(300)부터의 응답을 대기한다. [Step S13] The
[단계 S14] 클라이언트 컴퓨터(300)는 분산 알고리즘 통지 패킷을 수신했는지 여부를 판단한다. 분산 알고리즘 통지 패킷을 수신한 경우, 처리가 단계 S15로 진행된다. 분산 알고리즘 통지 패킷을 수신하지 않은 경우, 처리가 단계 S11로 진행되고, 계속해서 분산 알고리즘 통지 패킷(20)의 수신을 대기한다. [Step S14] The
[단계 S15] 클라이언트 컴퓨터(300)는 서버 컴퓨터(100)로부터 보내진 분산 알고리즘 통지 패킷(20)으로부터 분산 알고리즘에 관한 정보를 추출하여 분산 알고리즘 테이블(321)에 받아들인다. [Step S15] The
[단계 S16] 클라이언트 컴퓨터(300)는 서버 컴퓨터(100)에 대하여 분산 알고리즘 통지 패킷에 관한 응답을 송신한다. [Step S16] The
[단계 S17] 서버 컴퓨터(100)는 일정 시간 내에 응답을 수신했는지 여부를 판단한다. 일정 시간 내에 응답을 수신한 경우, 처리가 단계 S18로 진행된다. 일정 시간 내에 응답을 수신하지 않은 경우, 처리가 단계 S12로 진행되고, 재차, 분산 알고리즘 통지 패킷(20)이 송신된다. [Step S17] The
[단계 S18] 서버 컴퓨터(100)는 응답 내용을 확인하여 통신 상대의 MAC 어드레스를 포함하는 정보를 분산 알고리즘 테이블(121)에 추가한다. [Step S18] The
[단계 S19] 서버 컴퓨터(100)는 클라이언트 컴퓨터(300)와의 통신을 개시한다. [STEP S19] The
[단계 S20] 클라이언트 컴퓨터(300)는 서버 컴퓨터(100)와의 통신을 개시한다. [Step S20] The
[단계 S21] 서버 컴퓨터(100)는 분산 알고리즘에 따라서 데이터를 송신한다. [Step S21] The
[단계 S22] 클라이언트 컴퓨터(300)는 분산 알고리즘에 따른 데이터를 송신한다. [Step S22] The
이와 같이 하여, 서버 컴퓨터(100)로부터 클라이언트 컴퓨터(300)로 분산 알고리즘 통지 패킷이 송신되고 분산 알고리즘이 통지된다. 그 결과, 클라이언트 컴 퓨터(300)측에서도 서버 컴퓨터(100)의 NIC의 구성을 인식하고 이들의 NIC에 부하 분산시킨 데이터 송신이 가능해진다. In this way, the distributed algorithm notification packet is sent from the
도 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
또한, 분산 알고리즘 통지 패킷(20)을 수취한 클라이언트 컴퓨터(300, 300a, 300b, 300c)에서는 응답 패킷이 서버 컴퓨터(100)에 송신된다. In addition, in the
여기서, 분산 알고리즘의 통지 및 응답 등을 행할 때의 프레임 구성에 관해서 설명한다. 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
상대 MAC 어드레스(31)는 프레임의 송신처를 나타내는 MAC 어드레스의 설정영역이다. 분산 알고리즘 통지 패킷(20)의 경우, 브로드캐스트 전송을 나타내는 값「FF-FF-FF-FF-FF-FF」가 설정된다. 클라이언트 컴퓨터(300, 300a, 300b, 300c)의 NIC의 MAC 어드레스가 기지가 된 후에, 분산 알고리즘의 추가 등을 행하는 경우, 상대 MAC 어드레스(31)에는 송신 상대의 NIC의 MAC 어드레스가 설정된다. 복수의 분산 알고리즘 통지 패킷(20)을 송신할 수도 있다. The
자신의 MAC 어드레스(32)에는 서버 컴퓨터(100) 자신의 NIC의 MAC 어드레스가 설정된다. 서버 컴퓨터(100)는 임의의 NIC를 선택하여 분산 알고리즘 통지 패킷(20)을 송신하기 위한, 그 선택된 NIC의 MAC 어드레스가 자신의 MAC 어드레스(32)로 설정된다. The
프로토콜 식별자(33)에는 분산 알고리즘 통지 패킷인 것을 나타내는 식별자가 설정된다. 클라이언트 컴퓨터(300, 300a, 300b, 300c)측에서는, 프로토콜 식별자를 확인함으로써 수신한 패킷이 분산 알고리즘 통지 패킷(20)인 것을 인식한다. The
커맨드부(34)에는 정보 패킷의 종별이 설정된다. 종별에는 광고, 추가, 삭제 및 응답이 있다. The
패킷 종별「광고」는 분산 알고리즘 데이터의 광고(브로드캐스트)인 것을 나타내고 있다. 시스템 운용 개시 시에는 커맨드부(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
패킷 종별「추가」는 분산 알고리즘 데이터의 추가 지시인 것을 나타내고 있다. 커맨드부(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
패킷 종별「삭제」는 분산 알고리즘 데이터의 삭제 지시인 것을 나타내고 있 다. 커맨드부(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
패킷 종별「응답」은 광고, 추가, 삭제 지시에 대한 응답인 것을 나타내고 있다. 커맨드부(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
데이터부(35)에는 분산 알고리즘 데이터의 내용이 설정된다. 구체적으로는, 서버 컴퓨터(100)의 노드명, 클라이언트 컴퓨터(300, 300a, 300b, 300c)의 노드명, 애플리케이션명, 분산 알고리즘, 서버 컴퓨터(100)의 NIC(131∼134)의 MAC 어드레스 등의 정보가 데이터부(35)에 설정된다. 한편, 서버 컴퓨터(100)가 복수의 컴퓨터로 구성되는 클러스터 구성인 경우, NIC(131∼134)의 MAC 어드레스로의 부대 정보로서 그 NIC가 실장되어 있는 컴퓨터의 노드명이 추가된다. In the
한편, 데이터부(35)의 내용은 클라이언트 컴퓨터(300, 300a, 300b, 300c)마다의 리스트 구조가 되어 있고, 각 클라이언트 컴퓨터(300, 300a, 300b, 300c)는 자기에게 대응하는 정보만을 추출하여 분산 알고리즘 테이블에 설정한다. On the other hand, the contents of the
이더넷(등록 상표)의 경우 각각의 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
여기서, 혹시 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
도 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
데이터부(35)에는 자신의 노드명, 상대 노드명, 어플리케이션명, 사용 알고리즘 및 사용 NIC의 MAC 어드레스가 상대 노드명마다에 설정되어 있다. 자신의 노드명은「hostA」이다. 상대 노드명은 「hostB」,「hostC」,「hostD」,「hostE」이다. 애플리케이션명은 「ftp」이다. 사용 알고리즘은「라운드 로빈」이다. MAC 어드레스의 항목에는 NIC(131∼134) 각각의 MAC 어드레스「a」,「b」,「c」,「d」가 설정된다. In the
이러한 분산 알고리즘 통지 패킷(20) 등에 의해 분산 알고리즘이 클라이언트 컴퓨터(300, 300a, 300b, 300c)에 통지되면, 통지된 내용이 분산 알고리즘 테이블 에 추가된다. 그 결과, 서버 컴퓨터(100)와 클라이언트 컴퓨터(300, 300a, 300b, 300c)의 쌍방에 분산 알고리즘 테이블이 구축되어 분산 알고리즘 테이블에 따른 부하 분산이 행해진다. When the distributed algorithm is notified to the
도 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
상대 노드명은 통신하는 상대의 클라이언트 컴퓨터(300, 300a, 300b, 300c)의 노드명(예를 들면, IP 어드레스)이다. The partner node name is a node name (for example, an IP address) of the
애플리케이션명은 분산 대상이 되는 애플리케이션의 명칭(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
상대 NIC는 상대측인 클라이언트 컴퓨터(300, 300a, 300b, 300c)의 NIC의 MAC 어드레스(복수 있는 경우에는 리스트 형식으로 저장)이다. The partner NIC is the MAC address of the NIC of the
플래그는 레코드의 테이블 정보의 유효/무효를 나타내고 있다. 플래그가 유 효한 경우, 분산 알고리즘의 교환이 완료되어 통신 허가 상태인 것을 나타낸다. 플래그가 무효인 경우, 분산 알고리즘의 교환이 미완료되며 통신 불가 상태인 것을 나타낸다. 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
도 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
이 분산 알고리즘 통지 패킷(20a)을 수취한 클라이언트 컴퓨터(300)는 분산 알고리즘 통지 패킷(20a)의 자신의 노드명과 상대 노드명을 교체하고, 자신의 NIC를 상대 NIC로서 분산 알고리즘 테이블(321)에 등록한다. 다음에, 클라이언트 컴퓨터(300)는 등록한 레코드의 자신의 NIC에 자기의 NIC(331)의 MAC 어드레스「x」를 설정하여 플래그를「유효」로 한다. 그리고, 클라이언트 컴퓨터(300)는 자기의 NIC(331)의 MAC 어드레스「x」를 포함하는 응답의 분산 알고리즘 통지 패킷(20b)를 서버 컴퓨터(100)에 송신한다. The
서버 컴퓨터(100)에서는 응답의 분산 알고리즘 통지 패킷(20b)을 수취하면, 분산 알고리즘 통지 패킷(20a)의 내용에 상대 NIC「x」,플래그「유효」를 추가한 레코드를 분산 알고리즘 테이블(121)에 등록한다. When the
이와 같이 하여 구축된 분산 알고리즘 테이블에 기초하여, 서버 컴퓨터(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
도 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
WWW 서버(110)로부터 클라이언트 컴퓨터(300)처의 송신 데이터(111)가 트렁킹 기구부(120)에 전달된다. 여기서, 송신 데이터(111)는 6개의 데이터로 분할하여 송신되는 것으로 한다. 여기서, 분할된 데이터를「D1」,「D2」,「D3」,「D4」,「D5」,「D6」이라고 한다. The
송신 데이터(111)는 트렁킹 기구부(120)에 의해서, 라운드 로빈 방식으로 복수의 NIC(131∼134)로 분류된다. 그 결과,「D1」의 데이터는 NIC(131)를 통해 클라이언트 컴퓨터(300)에 송신된다. The
「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
이와 같이 하여, 서버 컴퓨터(100)로부터 클라이언트 컴퓨터(300)처의 송신 데이터(111)가 전송로의 부하를 분산시켜 스위칭 허브(200)에 전달되고, 그 후, 클라이언트 컴퓨터(300)에 전달된다. In this way, the
도 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
송신 데이터(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
이와 같이 하여, 클라이언트 컴퓨터(300)로부터 서버 컴퓨터(100)처의 송신 데이터(311)가 스위칭 허브(200)를 통하여 복수의 전송로에 부하를 분산시켜 서버 컴퓨터(100)에 전달된다. In this way, the
이상과 같이 하여, 스위칭 허브(200)가 트렁킹 기구를 갖고 있지 않아도 서버 컴퓨터(100)와 스위칭 허브(200) 사이의 복수의 전송로에 부하를 분산시킨 데이터 통신이 가능해진다. 그 때문에, 트렁킹에 의한 시스템을 구축할 때에 트렁킹에 대응하지 않는 임의의 스위칭 허브를 사용할 수 있어 선택지의 폭이 넓어진다. As described above, even if the
또한, 각각의 클라이언트 컴퓨터(300, 300a, 300b, 300c)가 분산 알고리즘 정보를 갖기 때문에, 1대 1의 2대의 장치 사이에서 만의 통신이라도 트렁킹에 의한 송수신 분산을 실현할 수 있고, 트렁킹 대응 스위치 사용시와 완전히 동등한 대역 향상을 실현할 수 있다. In addition, since each
더구나, 클라이언트 컴퓨터(300, 300a, 300b, 300c)에서 부하 분산을 관리하기 때문에, 어플리케이션에 따른 분산 알고리즘을 지정할 수 있다. 즉, 종래와 같이 스위칭 허브(200)에서 트렁킹 처리를 행하게 한 경우에는, 스위칭 허브가 0SI 계층모델의 데이터 링크층으로 기능하기 때문에 어플리케이션의 판별은 할 수 없고, 애플리케이션에 따른 트렁킹을 할 수 없었다. 제1 실시예에서는, 클라이언트 컴퓨터(300)에 의해 애플리케이션에 따른 분산 알로리즘의 지정이 가능하기 때문에 유연성이 높은 트렁킹 기구를 제공할 수 있다. Furthermore, since the load balancing is managed by the
[제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
서버 컴퓨터(100a)는 WWW 서버(110a), 트렁킹 기구부(120a)), NIC(131a, 132 a)를 갖고 있다. 트렁킹 기구부(120a)는 분산 알고리즘 테이블(121a)을 갖고 있다. 마찬가지로, 서버 컴퓨터(100b)는 트렁킹 기구부(120b), NIC(131b, 132b)를 갖고 있다. 트렁킹 기구부(120b)는 분산 알고리즘 테이블(121b)을 갖고 있다. The
이와 같이 각 서버 컴퓨터(100a, 100b)는 각각 2장의 NIC(131a, 132a, 131b, 132b)를 가지고 있지만, 하드웨어의 사양 제한에 의해, 그보다 많은 매수의 NIC는 장착할 수 없는 것으로 한다. As described above, each of the
서버 컴퓨터(100a)와 서버 컴퓨터(100b)의 트렁킹 기구부(120a, 120b)는 시스템간 통신 패스(40)를 통해서 트렁킹을 위한 분산 알고리즘 테이블(121a, 121b) 에 등록되어 있는 제어 정보를 공유하고 있다. The
여기서, 트렁킹 기구부(120a, 120b)는 클라이언트 컴퓨터(300, 300a, 300b, 300c)에 대하여, 각각 NIC(131a, 132a, 131b, 132b)를 사용하여 데이터 송수신을 행하도록 트렁킹의 제어 정보가 등록된 분산 알고리즘 테이블을 갖고 있다. Here, the
도 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
이러한 환경에서 WWW 서버(110a)가 클라이언트 컴퓨터(300, 300a, 300b, 300c)의 4대와 라운드 로빈 방식에 의한 데이터 송수신 분산을 행하고자 하는 경우, 시스템 기동시에 서버 컴퓨터(100a, 100b) 사이에서 이하의 처리가 행해진다. In this environment, when the
도 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
[단계 S32] 트렁킹 기구부(120a)는 서버 컴퓨터(100a)가 다른 서버 컴퓨터와 협동하여 클러스터를 구성하고 있는지 여부를 판단한다. 복수대의 서버 컴퓨터로 구성되는 경우, 처리가 단계 S33으로 진행된다. 1대의 서버 컴퓨터(100a)로 구성하고 있는 경우, 처리가 단계 S36에 진행된다. [Step S32] The
[단계 S33] 트렁킹 기구부(120a)는 전용의 시스템간 통신 패스(40)를 사용하여 분산 알고리즘 테이블(121a)의 내용을 서버 컴퓨터(100b)로 송신한다. [Step S33] The
[단계 S34] 서버 컴퓨터(100b)의 트렁킹 기구부(120b)는 서버 컴퓨터(100a)에서 수신한 분산 알고리즘 테이블(121a)의 내용에 기초하여, 자신의 분산 알고리즘 테이블(121b)을 생성한다. [Step S34] The
[단계 S35] 트렁킹 기구부(120b)는 서버 컴퓨터(100a)에 대하여 응답을 송신한다. [Step S35] The
[단계 S36] 서버 컴퓨터(100a)는 클라이언트 컴퓨터(300, 300a, 300b, 300c)와의 사이의 통신을 개시한다. [Step S36] The
[단계 S37] 마찬가지로 서버 컴퓨터(100b)는 클라이언트 컴퓨터(300, 300a, 300b, 300c)와의 사이의 통신을 개시한다. [Step S37] Similarly, the
이와 같이, 시스템 기동시에 분산 알고리즘 테이블의 공통화가 행해짐으로써 복수의 서버 컴퓨터(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
도 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
[단계 S42] 서버 컴퓨터(100a)의 트렁킹 기구부(120a)는 WWW 서버(110a)로부터의 이벤트 대기 상태를 유지하고 있다. [Step S42] The
[단계 S43] 어떠한 이벤트가 발생하면, 트렁킹 기구부(120a)는 발생한 이벤트가 WWW 서버(110a)로부터의 데이터 송신 의뢰인지 여부를 판단한다. 데이터 송신 의뢰라면, 처리가 단계 S45로 진행된다. 데이터 송신 의뢰 이외의 이벤트라면, 처리가 단계 S44로 진행된다. [Step S43] If any event occurs, the
[단계 S44] 트렁킹 기구부(120a)는 발생한 이벤트에 따른 데이터 송신 이외의 처리를 실행한다. 그 후, 처리가 단계 S42로 진행되고 재차 이벤트 대기가 된다. [Step S44] The
[단계 S45] 트렁킹 기구부(120a)는 분산 알고리즘 테이블(121a)을 검색하여 송신에 사용하는 NIC를 결정한다. 구체적으로는, 트렁킹 기구부(120a)는 분산 알고리즘 테이블(121a)을 참조하여 송신 상대, 애플리케이션명 등으로부터 분산 알고리즘을 결정한다. 그리고, 결정된 분산 알고리즘에 따라서 송신에 사용하는 NIC를 결정한다. [Step S45] The
[단계 S46] 트렁킹 기구부(120a)는 분산 알고리즘 테이블(121a)로부터 송신에 사용하는 NIC가 실장되어 있는 서버 컴퓨터의 장치명을 추출한다. [Step S46] The
[단계 S47] 트렁킹 기구부(120a)는 사용하는 NIC가 서버 컴퓨터(100a) 자신에게 실장된 NIC인지 여부를 판단한다. 서버 컴퓨터(100a)에 실장된 NIC라면, 처리가 단계 S49로 진행된다. 다른 서버 컴퓨터에 실장된 NIC라면, 처리가 단계 S48로 진행된다. [Step S47] The
[단계 S48] 트렁킹 기구부(120a)는 시스템간 통신 패스(40)를 사용하여 WWW 서버(110a)로부터의 데이터를 다른 서버 컴퓨터(100b)로 전송한다. 그 후, 서버 컴퓨터(100a)측의 처리가 종료하여 서버 컴퓨터(100b)측의 트렁킹 기구부(120b)의 단계 S50로 처리가 이행한다. [Step S48] The
[단계 S49] 트렁킹 기구부(120a)는 단계 S45에서 결정된 NIC를 통해 데이터를 클라이언트 컴퓨터에 송신한다. [Step S49] The
[단계 S50] 서버 컴퓨터(100b)의 트렁킹 기구부(120b)는 자신의 분산 알고리즘 테이블(121b) 내를 검색하여 송신에 사용하는 NIC를 결정한다. [Step S50] The
[단계 S51] 트렁킹 기구부(120b)는 단계 S50에서 결정한 NIC를 통해 데이터를 클라이언트 컴퓨터에 송신한다. [Step S51] The
도 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
송신 데이터(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
이 후의 데이터 전송에 관해서는, 다시 NIC(131a)에서 순서대로 사용된다. The subsequent data transfers are used again in the
이와 같이 하여, 서버 컴퓨터(100a, 100b)에서 클라이언트 컴퓨터(300, 300a, 300b, 300c)처의 송신 데이터(111a)가 부하 분산을 시켜 스위칭 허브(200)에 전달되고, 그 후, 클라이언트 컴퓨터(300, 300a, 300b, 300c)에 전달된다. In this way, the
한편, 클라이언트 컴퓨터(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
이와 같이, 분산 알고리즘 테이블의 내용을 통일해 둠으로써 복수의 서버 컴퓨터를 이용하여 트렁킹 처리를 행할 수 있다. 그 결과, 사용하는 서버 컴퓨터(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
[제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
서버 컴퓨터(100c)의 관리자는 장착된 예비의 NIC(135)를 LAN 케이블로 스위칭 허브(200)에 접속한다. 여기서, 스위칭 허브(200)에는 트렁킹의 설정은 되어 있지 않기 때문에 스위칭 허브(200)를 리셋하지 말고, 접속 후에는 즉시 통신에 사용하는 것이 가능하다. 바꾸어 말하면, 트렁킹 대응의 스위칭 허브가 사용되고 있던 경우에는, 설정 변경을 위해 이미 접속되어 있는 NIC의 통신을 일단 정지시킬 필요가 있다. The administrator of the server computer 100c connects the mounted
한편, 서버 컴퓨터(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 추가/분리 제어부(140)는 NIC(135)를 추가하는 경우, 그 내용을 프로그램간 통신을 이용하여 트렁킹 기구부(120c)로 통지한다. 통지를 받은 트렁킹 기구부(120c)는 대상의 NIC를 분산 알고리즘 테이블(121c) 내의 분산 대상으로 추가한다. 이 때, 트렁킹 기구부(120c)는 갱신 내용을 분산 알고리즘 통지 패킷에 의해서 각 클라이언트 컴퓨터(300, 300a, 300b, 300c)에 통지한다. 이후, 트렁킹 기구부(120c)는 데이터 송신시에 NIC(135)를 포함해서 데이터 송신의 부하 분산을 행한다. Specifically, when the NIC addition / detaching
또한, 클라이언트 컴퓨터(300, 300a, 300b, 300c)에는 분산 알고리즘 통지 패킷에 의해서 NIC(135)의 추가가 통지되고, 통지 내용에 따라서 클라이언트 컴퓨터(300, 300a, 300b, 300c) 내의 분산 알고리즘 테이블이 갱신된다. 따라서, 클라이언트 컴퓨터(300, 300a, 300b, 300c)에서 서버 컴퓨터(100c)에 송신하는 데이터에 관해서도, 갱신된 분산 알고리즘 테이블에 따라서 NIC(135)를 포함해서 데이터 송신의 부하 분산이 행해진다. Further, the addition of the
이하에, 서버 컴퓨터(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
도 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
[단계 S62] 서버 컴퓨터(100c)의 NIC 추가/분리 제어부(140)는 이벤트의 발생을 대기한다. [Step S62] The NIC addition / detaching
여기서, NIC(135)가 추가되면 I/O 인터럽트가 발생한다. In this case, when the
[단계 S63] NIC 추가/분리 제어부(140)는 I/O 인터럽트의 내용을 판단한다. NIC 추가이면 처리가 단계 S65로 진행된다. NIC 추가 이외 I/O 인터럽트이면, 처리가 단계 S64로 진행된다. [Step S63] The NIC addition / detaching
[단계 S64] NIC 추가/분리 제어부(140)는 I/0인터럽트에 따른 처리를 실행하고, 그 후, 처리를 종료한다. [Step S64] The NIC addition / detaching
[단계 S65] NIC 추가/분리 제어부(140)는 추가된 NIC(135)의 정보를 I/O 테이블로부터 추출한다. 한편, I/O 테이블은 OS에 의해서 관리되어 있는 I/0인터럽트에 따른 정보가 정의된 데이터 테이블이다. 그리고, NIC 추가/분리 제어부(140)는 NIC의 추가를 트렁킹 기구부(120c)에 지시한다. [Step S65] The NIC addition / detaching
[단계 S66] 트렁킹 기구부(120c)는 패킷의 종별을 추가로 한 분산 알고리즘 통지 패킷을 생성하고 클라이언트 컴퓨터(300)에 대하여 송신한다. 이에 따라, 클라이언트 컴퓨터(300)에 대하여 추가된 NIC(135)의 정보가 통지된다. [Step S66] The
[단계 S67] 트렁킹 기구부(120c)는 응답의 수신 대기 상태가 된다. [Step S67] The
[단계 S68] 클라이언트 컴퓨터(300)의 트렁킹 기구부(320)는 분산 알고리즘 통지 패킷의 수신의 유무를 판단한다. 수신한 경우, 처리가 단계 S69로 진행된다. 수신하지 않은 경우, 처리가 단계 S61에 진행되고, 계속해서 패킷의 수신을 대기한다. [Step S68] The
[단계 S69] 트렁킹 기구부(320)는 분산 알고리즘 통지 패킷이 신규에 실장된 NIC의 추가 지시인지 여부를 판단한다. 이것은, 패킷의 종별이「추가」인지 여부로 판단할 수 있다. NIC의 추가 지시인 경우, 처리가 단계 S71로 진행된다. NIC의 추가 지시 이외의 지시(예를 들면, NIC의 삭제)의 경우에 처리가 단계 S70으로 진행된다. [Step S69] The
[단계 S70] 트렁킹 기구부(320)는 분산 알고리즘 통지 패킷에서 지시된 처리(NIC 추가 이외의 처리)를 실행한다. 그 후, 처리가 단계 S61로 진행된다. [Step S70] The
[단계 S71] 트렁킹 기구부(320)는 분산 알고리즘 통지 패킷에서 지시된 신규의 NIC를 자신의 분산 알고리즘 테이블(321)에 추가한다. [Step S71] The
[단계 S72] 트렁킹 기구부(320)는 서버 컴퓨터(100c)에 대하여 응답의 패킷을 송신한다. [Step S72] The
[단계 S73] 서버 컴퓨터(100c)의 트렁킹 기구부(120c)는 일정 시간 내에 응답이 있었는지 여부를 판단한다. 응답이 있었던 경우, 처리가 단계 S74로 진행된다. 응답이 없는 경우, 처리가 단계 S66으로 진행된다. [Step S73] The
[단계 S74] 트렁킹 기구부(120c)는 응답을 확인 후, 분산 알고리즘 테이블 (121c)에 신규로 추가된 NIC의 정보를 추가한다. [Step S74] After confirming the response, the
[단계 S75] 서버 컴퓨터(100c)의 트렁킹 기구부(120c)와 클라이언트 컴퓨터(300)의 트렁킹 기구부(320)는 신규로 추가된 NIC를 통신 경로에 포함시킨 데이터 통신을 개시한다. [Step S75] The
이상과 같이 하여, 신규의 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
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 분리의 통지를 수취한 NIC 추가/분리 제어부(140)는 내부의 시스템 구성 정보를 갱신하고, 그 내용을 프로그램간 통신을 이용하여 트렁킹 기구부(120c)로 통지한다. 통지를 받은 트렁킹 기구부(120c)는 해당 NIC(135)의 정보를 분산 알고 리즘 테이블(121c)에서 삭제함으로써 트렁킹 대상으로부터 제외된다. 그 후, 서버 컴퓨터(100c)측에서는 NIC(135)를 사용하지 않고 송신 분산이 행해진다. Upon receiving notification of NIC separation, the NIC addition / detaching
또한, 수신에 관해서는 트렁킹 기구부(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
그 후, 스위칭 허브(200)의 해당 LAN 포트로부터 접속 케이블을 벗겨, NIC(135)의 삭제가 완료한다. Thereafter, the connection cable is removed from the LAN port of the
이 동작은 어플리케이션의 통신과는 독립적으로 병렬로 실행되기 때문에, 이제까지 교환되고 있는 다른 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
이와 같이, 서버 컴퓨터(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
한편, 상기한 각 실시예를 실현하기 위해서, 서버 컴퓨터가 가져야 할 기능 의 처리 내용을 기술한 서버 프로그램 및 클라이언트 컴퓨터가 가져야 할 기능의 처리 내용을 기술한 클라이언트 프로그램이 제공된다. 서버 프로그램을 컴퓨터에서 실행함으로써, 상기 실시예에 따른 서버 컴퓨터의 처리 기능이 실현된다. 또한, 클라이언트 프로그램을 컴퓨터로 실행함으로써 상기 실시예에 따른 클라이언트 컴퓨터의 처리 기능이 실현된다. 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)
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)
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 |
-
2003
- 2003-03-31 KR KR1020057018339A patent/KR100650003B1/en not_active IP Right Cessation
Cited By (1)
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 |