등록특허 10-0613318 본 프로세스는 클라이언트로부터 인입되는 연결 요구를 기다리는 단계(단계 400)로부터 시작된다. 요구가 수신된 후, 커 널에서 로컬 포트(LP), 로컬 포트 IP(LIP) 주소 및 외래 IP(FIP) 주소가 일치하는 소켓이 선택된다(단계 402). 본 예에서, 각각 하나의 외래 포트 서브세트에 할당되는 다수의 소켓이 존재한다. 단계(402)에서 이 소켓들 중 하나를 선택하여 처리 한다. 이어서, 상기 요구의 외래 포트 세트가 상기 소켓에 할당된 외래 포트 세트의 일부인지에 대한 판단이 행해진다(단계 404). 만일 상기 요구의 외래 포트가 상기 선택된 소켓에 대한 세트 내에 있지 않으면, 소켓 목록의 종단부에 도달했는지에 대한 판단이 행해진다(단계 406). 이 단계는 모든 소켓이 처리되었는지를 판단하는 데에 사용된다. 만일 모든 소켓이 처리되지 않았으면, 단계(402)로 복귀하여 또 다른 소켓을 선택한다. 만일 모든 소켓이 처리되었으면, 상기 연결을 거부하고(단계 408), 그 후 프로세스는 종결된다. 단계(404)에서, 만일 상기 요구의 외래 포트가 상기 소켓에 할당된 외래 포트 세트 내에서 발견되면, 상기 연결은 소켓으로 전달되고(단계 408), 그 후 프로세스는 종결된다. 본 예에서, 서버 프로세스 중 하나가 연결 요구를 처리한다. 도 5에서, 본 발명의 일 실시예에 따라 서버 프로세스를 생성하고 제거하는 프로세스의 흐름도가 도시된다. 도 5에서 도시 된 프로세스는 도 3의 서버(304)와 같은 어플리케이션으로 구현될 수 있다. 이 서버는, 예를 들어 웹 서버, 데이터베이스 서버 또는 FTP 서버일 수 있다. 본 프로세스는 네트워크 부하(network load)를 재계산하는 단계(단계 500)로부터 시작된다. 네트워크 부하는 다양한 공 지된 프로세스를 통하여 계산될 수 있다. 네트워크 부하가 재계산된 후, 상기 부하가 제1 임계값(threshold)을 초과하여 증가했는지에 대한 판단이 행해진다(단계 502). 만일 부하가 이 임계값을 초과하여 증가하지 않았으면, 부하가 제2 임계값 미만으로 감소했는지에 대한 판단이 행해진다(단계 504). 임계값을 설정하는 데에 사용될 수 있는 파라미터 중 하나는 인 입되는 연결의 비율이다. 분당 y개의 연결이 인입되는 비율로 상한 임계값을 설정하고, 분당 x개의 연결이 인입되는 비율 로 하한 임계값을 설정할 수 있다. 이러한 임계값의 실제 값은 특정 구현에 의존한다. 만일 부하가 제2 임계값 미만으로 감소하지 않았으면, 네트워크 부하의 다음 번 재계산을 위한 타임아웃(timeout)이 설정 된다(단계 506). 이어서, 본 프로세스는 타이머가 만료되는 것을 기다린다(단계 508). 타이머가 만료될 때, 단계(500)로 복귀하여 네트워크 부하를 재계산한다. 단계(504)에서, 만일 부하가 제2 임계값 미만으로 감소하였으면, 서버의 수가 감소되고 포트 분배가 변경된다(단계 510). 본 예에서, 남은 각각의 서버에 대하여 유일한 외래 포트 서브세트를 설정하도록 외래 포트에 대한 포트 분배가 변경된다. 단계(502)에서, 만일 부하가 제1 임계값을 초과하여 증가하였으면, 서버의 수가 증가되고 포트 분배가 변경된다(단계 512). 이 경우, 상기 포트 분배는, 신규로 생성된 서버를 포함한 모든 서버에게 외래 포트를 분배하도록 변경된다. 추가되 거나 제거되는 서버의 수는 특정 구현에 의존한다. 또한, 추가되거나 제거되는 서버의 수는 네트워크 부하가 임계값보다 얼마나 증가 또는 감소하였는가에 의존할 수 있다. 단계(502)의 제1 임계값 및 단계(504)의 제2 임계값은 특정 구현에 따 라 같은 값 또는 다른 값일 수 있다. 발명의 효과 이처럼, 본 발명은 외래 포트 분배에 기초하여 서버 부하를 분배하는 방법, 장치 및 컴퓨터 명령을 제공한다. 본 발명의 메 커니즘은 외래 포트 범위를 서브세트로 분할하고 이러한 서브세트를 서로 다른 서버에 할당함으로써, 현존하는 병목을 회 피한다. 예시된 예에서, 각 서브세트는 다른 서브세트들에 대하여 유일하며, 실질적으로 같은 수의 포트를 가진다. 물론, 특정 구현에 따라, 서브세트들은 중첩되는 외래 포트 번호를 포함할 수 있으며 일부 서브세트는 다른 서브세트보다 많은 외래 포트를 포함할 수 있다. 다수의 서버가, 외래 포트 서브세트가 할당된 서로 다른 소켓에 주의하며(listen for), 하나 이 상의 서버 또는 프로세스가 클라이언트로부터의 연결에 대한 요구에 주의하여 이를 처리할 수 있다. 본 발명은 완전히 기능하는 데이터 처리 시스템에 의하여 설명되었지만, 본 발명의 프로세스는 명령을 포함하는 컴퓨터 판 독 가능 기록 매체의 형태 및 다양한 형태로서 배포될 수 있으며, 본 발명이 상기 배포를 운반하는 데에 실제로 사용되는 신호 포함 매체의 특정 유형에 관계없이 적용될 수 있다는 점을 당업자가 이해할 수 있다는 점에 주의해야 한다. 컴퓨터 판 독 가능 기록 매체는, 플로피 디스크, 하드 디스크 드라이브, RAM, CD-ROM, DVD-ROM과 같은 기록 가능형 매체와, 예 - 6 -