등록특허 10-0613318 로세스)에 의하여 최초의 패킷에 대한 응답을 생성하는 데에 사용된다. 상기 번호를 사용함으로써, 응답 패킷이 요구 패킷 을 송신한 클라이언트 프로세스에 도달하는 것이 보장된다. 본 발명에 따르면, 각 서버에는 하나의 외래 포트 서브세트(a subset of foreign ports)가 할당된다. 도시된 예에서, 하나의 외래 포트가 둘 이상의 서버에 의하여 커버되지 않도록, 서브 세트들은 서로에 대하여 유일하게 설정된다. 물론, 구현에 따라서, 서버들에게 중첩 할당이 될 수도 있다. 이러한 할당에 있어서, 각 서버는 소켓상의 인입 연결에 주의한다. 이러한 소켓은 모든 포트 번호로부터의 연결을 수용하는 대신, 하나의 외래 포트 번호 세트에 연관된다. 이러한 메커니즘은 연결에 대한 요구를 생성하는 클라이언트에 대해서는 어떠한 변경도 요하지 않는다. 그러나, 인입되는 연결 요구를 적절한 소켓으로 지정하는 데에 사용되는 TCP/IP 스택에 대해서는 변경이 요구된다. 현재, TCP/IP 스택에서 는, 모든 외래 포트 번호가 수용될 수 있다는 것을 의미하는 와일드 카드 포트 번호나, 하나의 외래 포트 번호만이 명시될 수 있다. 본 변경은 외래 포트 번호 세트를 명시할 수 있는 기능을 요한다. 즉, 외래 포트들을 상이한 서버 또는 소켓에 할당 할 수 있도록 하는 추가적인 기능이 본 발명의 프로세스를 실행하는 서버 컴퓨터의 운영 시스템의 TCP/IP 스택 내에 구현 된다. 도시된 예에서, 상기 변경은 TCP/IP 스택의 전송 계층에 대하여 행해진다. 도 3에서, 본 발명의 바람직한 실시예에 따라 요구를 처리하는 데이터 흐름도가 도시된다. 서버 컴퓨터(300)는 도 2의 데 이터 처리 시스템(200)과 같은 데이터 처리 시스템으로 구현될 수 있다. 본 발명의 바람직한 실시예에 따르면, 하나의 서버와 연관되는 소켓은 모든 외래 포트 대신 하나의 외래 포트 세트에 연관 될 수 있다. 일반적으로, 요구는 로컬 포트 주소, 외래 포트 주소, 로컬 포트 번호 및 외래 포트 번호를 포함한다. 운영 시스 템 커널(operating system kernel; 302)에 의하여 서버 컴퓨터(300)와의 연결이 설정된다. 본 예에서, 만일 로컬 포트 번 호가 일치하고 로컬 IP 주소가 서버 컴퓨터(300)에 할당된 것이면, 운영 시스템 커널(302)은 연결을 수용하여 처리한다. 본 발명의 바람직한 실시예에 따르면, 서버(304, 306, 308)는 상이한 클라이언트로부터 발생한 요구(310)에 대한 연결을 처리하는 데에 사용될 수 있다. 연결은 운영 시스템 커널(302)에 의하여 서버로 송신된다. 특히, 이러한 연결은 운영 시스 템 커널(302) 내의 TCP/IP 스택에 의하여 서버로 라우팅된다. 이러한 요구의 라우팅은 요구(310)의 외래 포트 번호에 기 초하여 수행된다. 예를 들어, 외래 포트 범위가 1025 내지 4000이면, 상기 포트 번호는 서버(304, 306 및 308)에 분배될 수 있다. 본 예에 서, 외래 포트 번호는 각 서버가 유일한 외래 포트 범위 세트를 갖도록 분배된다. 즉, 각 서브세트간에 외래 포트의 중첩은 발생하지 않는다. 일반적으로 외래 포트는 요구를 생성하는 클라이언트에 의하여 무작위로 할당되기 때문에, 이러한 메커 니즘은 원활하게 동작한다. 외래 포트 범위가 1025 내지 4000일 때, 서버(304)가 외래 포트 번호(1025, 1028, 1031, ..., 3098)를 처리하고, 서버(306)가 외래 포트 번호(1026, 1029, 1032, ..., 3099)를 처리하며, 서버(308)가 외래 포트 번호 (1027, 1030, 1033, ..., 4000)를 처리하도록 외래 포트 번호가 할당될 수도 있다. 이러한 방식으로, 각 서버는 소켓상의 인입 연결에 주의한다. 그러나, 이러한 소켓은 모든 포트 번호를 수용하는 대신, 상 술한 바와 같이 하나의 외래 포트 번호 세트에 연관된다. 본 예에서, 서버(304)는 마스터 서버 프로세스이고 서버(306, 308)는 서버(304)에 의하여 생성(spawning)된 슬레이브 서 버 프로세스이다. 선택적으로, 이러한 프로세스는 서버 컴퓨터(300)에서의 부하에 따라 슬레이브 서버 프로세스를 생성할 수 있는 마스터 서버 프로세스로서 동작할 수도 있다. 본 예에서, 요구의 처리는 슬레이브 스레드(slave thread; 312, 314, 316)와 같은 슬레이브 스레드에게 넘겨질 수 있다. 이러한 슬레이브 스레드는 서버(304, 306, 308)에 의하여 생성될 수 있 다. 본 예에서, 슬레이브 스레드(312)는 서버(304)에 의하여 생성되고, 슬레이브 스레드(314)는 서버(306)에 의하여 생성 되며, 슬레이브 스레드(316)는 서버(308)에 의하여 생성된다. 본 메커니즘은, 종래의 메커니즘에 비하여, 단일 서버가 모든 연결을 처리하도록 하는 대신 요구가 서로 다른 서버들에게 분배됨으로써 서버 부하의 균형을 맞출 수 있다는 장점을 갖는다. 본 발명의 메커니즘은 네트워크 디스패쳐(network dispatcher)와는 상이하다. 이는, 네트워크 디스패쳐는 상이한 시스템간의 연결을 분할하지만, 이러한 네트워크 디스패쳐 는 모든 외래 포트 번호에 주의하는 단일 소켓 번호를 사용하므로 여전히 병목이 존재하기 때문이다. 또한, 본 발명의 메커 니즘은 요구를 생성하는 클라이언트에 대하여 변경을 요하지 않는다. 외래 포트를 서로 다른 소켓들에 할당할 수 있도록 하기 위하여 TCP/IP 스택에 대한 변경을 필요로 할 뿐이다. 도 4에서, 본 발명의 바람직한 실시예에 따라 연결 요구를 처리하는 프로세스의 흐름도가 도시된다. 도 4에서 도시된 프로 세스는 도 3의 운영 시스템 커널(302)과 같은 운영 시스템으로 구현될 수 있다. 본 예에서, 본 메커니즘은 TCP/IP 스택으 로 구현된다. - 5 -