KR100890015B1 - 로드 밸런서 작동 가속 방법, 패킷 그룹과 각 종착지 서버 사이를 상호 연관시키는 리스트 내의 엔트리 생성 방법 및 로드 밸런스 가속기 - Google Patents

로드 밸런서 작동 가속 방법, 패킷 그룹과 각 종착지 서버 사이를 상호 연관시키는 리스트 내의 엔트리 생성 방법 및 로드 밸런스 가속기 Download PDF

Info

Publication number
KR100890015B1
KR100890015B1 KR1020010072186A KR20010072186A KR100890015B1 KR 100890015 B1 KR100890015 B1 KR 100890015B1 KR 1020010072186 A KR1020010072186 A KR 1020010072186A KR 20010072186 A KR20010072186 A KR 20010072186A KR 100890015 B1 KR100890015 B1 KR 100890015B1
Authority
KR
South Korea
Prior art keywords
packet
load balancer
entry
accelerator
packets
Prior art date
Application number
KR1020010072186A
Other languages
English (en)
Other versions
KR20020039615A (ko
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 아바야 커뮤니케이션 이스라엘 리미티드
Publication of KR20020039615A publication Critical patent/KR20020039615A/ko
Application granted granted Critical
Publication of KR100890015B1 publication Critical patent/KR100890015B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/122Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering

Abstract

가속기 스위치에 의해 로드 밸런서의 작동을 가속하는 방법이 개시된다. 이 방법은 로드 밸런서에 제공되는 패킷을 가속기 스위치로 수신하고, 적어도 몇 개의 수신 패킷에 대해, 5개 이하의 패킷의 파라미터와 리스트의 엔트리의 각 필드를 비교하여, 그 패킷이 패킷 그룹의 리스트의 엔트리와 일치하는지를 판정하며, 이 판정에 응답하여, 가속기 스위치로 적어도 몇 개의 수신 패킷을 종착지에 곧바로 전송하는 것을 포함한다.

Description

로드 밸런서 작동 가속 방법, 패킷 그룹과 각 종착지 서버 사이를 상호 연관시키는 리스트 내의 엔트리 생성 방법 및 로드 밸런스 가속기{DYNAMIC LOAD BALANCER}
도 1은 본 발명의 실시예에 따른, 서버 팜의 개략적인 블록도,
도 2는 본 발명의 실시예에 따른, 가속기의 로드 밸런싱 테이블도,
도 3은 본 발명의 실시예에 따라, 패킷의 수신시에 가속기에 의해 실행되는 동작을 나타낸 흐름도,
도 4는 본 발명의 실시예에 따라, 반 NAT 로드 밸런서와 함께 사용하는 가속기의 로드 밸런싱 테이블도,
도 5는 본 발명의 다른 실시예에 따라, 패킷 수신시에 가속기에 의해 실행되는 동작을 나타내는 흐름도,
도 6은 본 발명의 실시예에 따른, 가속기의 로드 밸런싱 테이블도,
도 7은 본 발명의 또 다른 실시예에 따라, 패킷 수신시에 가속기에 의해 실행되는 동작을 나타낸 흐름도,
도 8은 본 발명의 실시예에 따라, 다수의 로드 밸런서와 함께 작동하는 서버 팜의 개략적인 블록도.
본 발명은 통신 네트워크에 관한 것으로, 구체적으로 이러한 네트워크 내의 서버 부하 균형(server load balancing)에 관한 것이다.
활발한 웹 사이트들은 종종 다수의 서버 팜(server farm)에 의해 주관되며, 각 서버 팜들은 일부 클라이언트들과의 접속을 처리한다. 일반적으로, 이러한 팜은 팜의 웹 사이트에 제공되는 (프레임(frame)이라고도 지칭되는) 패킷(packet)을 수신하는 로드 밸런서(load balancer)를 포함한다. 로드 밸런서는 사이트를 주관하는 다수의 서버들에게 패킷들을 분배하되, 단일 클라이언트 세션(single client session)의 패킷들 모두가 단일 서버에 전달되도록 분배한다. 서버 로드 밸런서는 프록시 캐시(proxy cache)에 패킷을 재전송하는 것과 같은 다른 목적에도 사용된다.
로드 밸런서 상의 로드가 매우 커서, 추가적인 및/또는 보다 새로운 로드 밸런서가 요구되는 경우도 있다. 그러나, 로드 밸런서의 대체 및/또는 추가는 새로운 밸런서가 기존의 로드 밸런스의 작동 방식에 따라 작동하거나, 추가적인 로드 밸런서와 기존의 로드 밸런서가 적당하게 상조하도록 하는 집약적인 프로그래밍(intensive programming)을 필요로 한다.
본 명세서에서 가속형 로드 밸런서라고 지칭하는 로드-밸런스 가속기는 기존의 로드 밸런서의 동작에 기초하여 웹 사이트에 제공되는(즉, 웹 사이트의 종착지 IP 어드레스를 가지는) 패킷들을 분배하는 법을 습득하여 이 문제를 해결하였다. 클라이언트에서 웹 사이트로 제공되는 패킷은 패킷에 주위를 기울이고(listening), 가속 테이블에 각 패킷 그룹에 대한 엔트리(entry)를 생성하는 가속기를 통해 로드 밸런서에 라우팅(routing)된다. 패킷 그룹은 일반적으로 통신 세션들을 정의하는 다섯 개의 파라미터, 즉, 소스 및 종착지 IP 어드레스, 프로토콜, 소스 및 종착지 포트에 기초하여 정의된다. 또한, 로드 밸런서에서 서버로 제공되는 패킷은 가속기를 통과하는데, 이 가속기는 패킷에 주위를 기울이고 일치하는 엔트리(matching entry)들을 탐색한다. 가속기는 로드 밸런서에 의해 전송되는, 테이블 내의 엔트리와 일치하는 패킷으로부터 패킷의 종착지 서버를 추출하여, 그것을 각 엔트리에 부가한다. 서버 식별을 포함하는 테이블의 엔트리와 일치하는 것으로, 가속기를 통해 클라이언트에서 로드 밸런스로 제공되는 후속하는 패킷은 가속기에 의해 서버에 곧바로 전송된다.
본 명세서에서 삼각망 로드 밸런서(triangulation load balancer)라고 지칭하는 몇몇 로드 밸런서들은 로드 밸런스 결정에 따라 그들이 전송하는 패킷의 종착지 MAC 어드레스 및 VLAN을 변경하나, 패킷의 IP 헤더에 있는 정보는 변경하지 않는다. 다른 로드 밸런서는 반 NAT(half Network Address Translation) 전송이라고 하는 기법을 통해 그들이 서버에 전송하는 패킷의 종착지 어드레스 및/또는 포트를 변경한다. 이러한 반 NAT 로드 밸런스는 서버에서 클라이언트로 제공되는 패킷을 인터셉트해야만 하는데, 이는 패킷들의 소스 어드레스를 서버의 어드레스에서 팜의 어드레스, 즉, 인터넷 사이트의 어드레스로 변경하기 위해서이다. 다른 로드 밸런서는 그들이 서버에 전송하는 패킷의 소스 및 종착지 IP 어드레스를 변경한다. 이러한 로드 밸런서를 전(full) NAT 밸런서라 한다.
상술한 가속기는 삼각망 로드 밸런서와 함께 사용하기에 적합하다. 그러나, 이러한 가속기를 반 NAT 및 전 NAT 로드 밸런서와 함께 사용하는 것은 적합하지 않는데, 이는 로드 밸런서가 IP 어드레스를 변경함으로써 가속기가 서버로 전송되는 패킷과 일치하는 테이블 내의 엔트리를 발견할 수 없도록 하기 때문이다.
본 발명의 몇몇 실시예의 일 측면은 반 NAT 및/또는 전 NAT 전송을 실행하는 로드 밸런서에 대한 로드 밸런스 가속기에 관한 것이다.
본 발명의 몇몇 실시예의 일 측면은 통상적으로 통신 세션들을 식별하는데 이용되는 다섯개의 파라미터, 즉, 소스 및 종착지 IP 어드레스와, 프로토콜과, 소스 및 종착지 포트를 포함하는 세트와는 다른 파라미터 세트에 기초하여, 동일한 서버로 전송되어야 하는 패킷 그룹을 식별하는 로드 밸런스 가속기에 관한 것이다. 본 발명의 몇몇 실시예에서, 상술한 다섯 개의 파라미터보다 적은 수의 파라미터 세트가 동일한 서버에 제공되는 패킷 그룹을 식별하는데 이용된다.
종래기술은 일반적으로 로드 밸런서가 단일 세션에 속하는 패킷에 동일한 방법을 관련시키는 일반적인 실시에 기초하여, 상이한 그룹들을 구별할 때 통신 세션을 식별하는 다섯개의 파라미터 세트를 이용한다. 그러나 많은 로드 밸런서는 보다 적은 파라미터를 포함하는 파라미터 세트에 의해 정의되는 보다 큰 그룹에 동일한 방법을 관련시킨다. 패킷을 그룹화하는 데 이러한 보다 적은 파라미터 세트를 이용함으로써, 가속형 로드 밸런서의 로드 밸런싱 방식을 위반하지 않고도 가속기의 작동을 단순화시킨다(예를 들어, 가속기의 로드 밸런스 테이블이 작아진 상태로 유지됨). 또한, 일부 경우에 세트 내의 몇몇 파라미터가 특정 콘텍스트(specific context)에 불필요할 경우에는 상이한 파라미터 세트에 기초하여 통신 세션을 식별할 수도 있다. 보다 적은 파라미터를 사용함으로써, 로드 밸런스 가속기의 작동이 단순화되고 필요한 저장 공간이 줄어든다.
본 발명의 몇몇 실시예에서, 패킷 그룹은 반 NAT 로드 밸런서에 의해 변경되지 않은 파라미터, 예를 들어, IP 소스 어드레스와 IP 소스 포트 및 프로토콜에 기초하여 식별된다. 반 NAT 로드 밸런스에 의해 변경되지 않은 파라미터만을 기초하여 패킷의 그룹을 식별함으로써, 반 NAT 로드 밸런서의 가속을 용이하게 실행할 수 있게 된다. 패킷 기반 네트워크를 통해 흐르는 일반적인 패킷들과 다르게, 공통 IP 소스 어드레스와 공통 소스 포트를 운송하는 인터넷 사이트로 제공되는 패킷들은 동일한 IP 종착지 어드레스 및 종착지 포트를 운송하므로 로드 밸런서에 의해 동일한 서버에 제공된다는 것에 유의해야 한다.
단일 클라이언트에서 동일한 서버로 모든 패킷을 제공하는 로드 밸런서가 가속화되는 본 발명의 몇몇 실시예에서, 가속기는 소스 IP 어드레스만을 기초하여 패킷 그룹을 식별한다. 패킷을 그룹화할 때 단일 파라미터만을 이용하여 가속기를 보다 단순화시킨다.
본 발명의 몇몇 실시예의 일 측면은 가속기에 의해 로드 밸런서로 제공된 패킷들과 가속기에 의해 로드 밸런서로부터 수신된 패킷들을 일치시키는 로드 밸런스 가속기에 관한 것이다. 전 NAT 모드로 작동하는 로드 밸런서에 의해 변경되지 않으며, 두 개의 상이한 패킷이 동일하게 될 가능성이 낮은 일부 패킷들에 기초하여 일치가 실행된다. 가속기는 두 개의 일치하는 패킷들로부터 추출된 정보에 기초하여 로드 밸런스 테이블의 엔트리를 생성한다.
본 발명의 몇몇 실시예의 일 측면은 수신 패킷이 속하는 패킷 그룹이 어느 것인지를 판정할 때 상이한 수신 패킷에 대해 상이한 파라미터 세트의 값을 사용하는 로드 밸런스 가속기에 관한 것이다. 예를 들어, 상이한 프로토콜에 속하는 패킷들은 상이한 처리를 수신할 수 있다. 이러한 가속기는 제 1 파라미터 세트에 기초하여 제 1 프로토콜의 패킷들이 어느 그룹에 속하는지를 판정하고, 제 2 파라미터 세트를 이용하여 제 2 프로토콜의 패킷들이 어느 그룹에 속하는지를 판정한다.
본 발명의 몇몇 실시예의 일 측면은 동일한 서버에 제공되는 패킷 그룹을 정의하는데 이용되는 파라미터를 사용자가 구현할 수 있게 하는 로드 밸런스 가속기에 관한 것이다. 본 발명의 몇몇 실시예에서, 가속형 로드 밸런서가 동일한 클라이언트로 부터의 모든 패킷을 동일한 서버로 전송하면, 사용자는 가속기를 구현하여, 소스 IP 어드레스에 기초해서 그룹을 정의한다. 그러나, 가속형 로드 밸런서가 패킷을 동일 클라이언트에서 상이한 서버(예를 들어, 동일 클라언트의 상이한 포트로 부터)로 전송하면, 사용자는 가속기를 구현하여, 소스 IP 어드레스 및 소스 포트에 기초해서 그룹을 정의한다.
본 발명의 몇몇 실시예의 일 측면은 가속중인 로드 밸런서의 작동 모드를 자동으로 결정하는 로드 밸런스 가속기에 관한 것이다. 본 발명의 몇몇 실시예에서, 가속기는 로드 밸런서가 전 NAT, 반 NAT 또는 삼각망 모드로 작동하는지를 판정한다. 대안적으로 또는 추가적으로, 가속기는 최소의 파라미터 세트를 판정하는데, 이 값들은 패킷이 로드 밸런서에 의해 전송되는 서버를 고유하게 정의한다. 예를 들어, 몇몇 실시예에서, 가속기는 로드 밸런서가 단일 클라이언트에서 상이한 두개의 서버로 패킷을 전송하는지에 대해 판정한다.
본 발명의 몇몇 실시예에서, 가속기는 로드 밸런서로 전송된 패킷(본 명세서에서는 모니터링된 패킷(monitered packet)이라함)의 파라미터와 로드 밸런서로부터 수신한 동일 패킷의 파라미터를 일치시킨다. 로드 밸런서로 전송된 동일한 패킷의 상태와 로드 밸런서로부터 수신된 동일한 패킷의 상태 사이의 차이에 따라서, 가속기는 로드 밸런서의 작동 모드를 판정한다.
본 발명의 몇몇 실시예에서, 모니터링된 패킷은 클라이언트에서 서버로 제공되는 도중에 수신되는 패킷들을 포함하며, 그 패킷들은 그들의 정상 처리의 일부로서 로드 밸런서에 전송된다. 대안적으로 또는 추가적으로, 모니터링된 패킷은 서버에서 클라이언트로 제공되는 도중에 수신되는 패킷을 포함하며, 그 패킷들은 그들의 정상 처리의 일부로서 로드 밸런서에 전송된다. 또한 대안적으로 또는 추가적으로, 모니터링된 패킷은 로드 밸런서의 작동 모드를 판정하기 위해 특정하게 생성되는 패킷을 포함한다.
가속기는 로드 밸런서에 전송되는 모니터링된 패킷들의 많은 식별 정보를 저장함으로써, 패킷들이 로드 밸런서에 의해 처리되고 난 후에 로드 밸런서로 부터 수신한 패킷들과 그들이 일치될 수 있게 한다. 식별 정보는 예를 들어, 패킷의 페이로드(payload)의 선단부 또는 TCP와 같은 전송 프로토콜의 식별 번호를 포함한다. 대안적으로 또는 추가적으로, 식별 정보는 가속기에 의해 패킷에 삽입된 고유한 태그(unique tag)를 포함한다. 대안적으로 또는 추가적으로, 로드 밸런서의 테스트 주기 동안에, 가속기는 제한된 수의 패킷을 로드 밸런서에 전송하지만, 로드 밸런서로부터 각 패킷을 수신할 때까지는 추가적인 전송을 하지 않는다.
따라서, 본 발명의 실시예에 따르면, 가속기 스위치로 로드 밸런서의 작동을 가속화하는 방법이 제공되는데, 그 방법은 가속기 스위치에 의해 로드 밸런서로 제공된 패킷을 수신하고, 적어도 일부의 수신 패킷들에 대해, 다섯 개 미만의 패킷 파라미터와 패킷 그룹 리스트의 엔트리의 각 필드를 비교하여, 패킷들이 패킷 그룹 리스트의 엔트리와 일치하는지를 판정하며, 이 판정에 응답하여, 가속기 스위치가 적어도 일부의 수신 패킷들을 그들의 종착지에 곧바로 전송하는 것을 포함한다.
선택적으로, 패킷들이 리스트의 엔트리와 일치하는지를 판정하는 것은, 리스트의 각 필드를 3개 이하의 패킷 파라미터와 비교하는 것을 포함한다. 대안적으로 또는 추가적으로, 패킷들이 리스트의 각 엔트리와 일치하는지를 판정하는 것은 두 개 또는 단일 패킷 파라미터를 리스트의 각 필드와 비교하는 것을 포함한다. 선택적으로, 패킷들이 리스트의 각 엔트리와 일치하는지를 판정하는 것은 단일 패킷 파라미터와 리스트의 각 필드를 비교하는 것을 포함한다.
가능하다면, 로드 밸런서에 제공되는 패킷을 수신하는 것은 클라이언트에서 로드 밸런서와 관련된 웹 사이트로 전송되는 패킷을 수신하는 것을 포함하고, 적어도 일부의 수신 패킷들을 그들의 종착지에 곧바로 전송하는 것은 로드 밸런서를 통해 전달하지 않고 클라이언트로부터 웹사이트의 서버 중의 하나로 패킷을 전송하는 것을 포함한다. 선택적으로, 패킷이 리스트의 엔트리와 일치하는지를 판정하는 것은 패킷들의 소스 IP 어드레스 및 소스 포트와 리스트의 각 필드를 비교하는 것을 포함한다. 본 발명의 몇몇 실시예에서, 비교되는 파라미터는 종착지 어드레스를 포함하지 않는다.
대안적으로 또는 추가적으로, 로드 밸런서에 제공되는 패킷을 수신하는 것은 서버에서 클라이언트로 제공되는 패킷을 수신하는 것을 포함하고, 적어도 일부의 수신 패킷들을 그들의 종착지에 곧바로 전송하는 것은 로드 밸런서를 통해 전달하지 않고 서버에서 클라이언트로 패킷을 전송하는 것을 포함한다. 선택적으로, 패킷이 리스트의 엔트리와 일치하는지를 판정하는 것은 패킷의 종착지 IP 어드레스 및 종착지 포트와 리스트의 각 필드를 비교하는 것을 포함한다. 본 발명의 몇몇 실시예에서, 비교된 파라미터는 소스 어드레스를 포함하지 않는다.
본 발명의 몇몇 실시예에서, 적어도 일부의 수신 패킷들을 전송하는 것은 일치하는 엔트리가 발견되었던 패킷을 전송하는 것을 포함한다. 선택적으로, 로드 밸런서는 반 NAT 또는 전 NAT 모드로 작동한다.
본 발명의 실시예에 따르면, 패킷 그룹과 각 종착지 서버 사이를 상호 연관시키는 리스트 내의 엔트리 생성 방법이 제공되며, 이 방법은 적어도 가속기에 의해 서버로 전송하는 패킷의 종착지 IP 어드레스를 변경하는 로드 밸런스로 또는 로드 밸런스로부터 제공되는 패킷을 수신하고, 이 수신된 패킷에 응답하여, 가속기가 종착지 서버의 리스트에 엔트리를 생성하는 것을 포함한다.
선택적으로, 엔트리 생성은 웹 사이트의 종착지 어드레스를 포함하지 않은 엔트리를 생성하는 것을 포함한다. 가능하다면, 패킷은 반 NAT 모드 또는 전 NAT 모드로 작동하는 로드 밸런서로 또는 로드 밸런스로부터 제공될 수도 있다.
선택적으로, 패킷 수신은 로드 밸런서로부터 서버로, 또는 서버로부터 로드 밸런서로 제공되는 패킷을 수신하는 것을 포함한다. 본 발명의 몇몇 실시예에서, 엔트리 생성은 패킷이 수신되었을 경우, 실질적으로 수신 패킷내의 정보만을 이용하여 엔트리를 생성하는 것을 포함한다. 대안적으로 또는 추가적으로, 엔트리 생성은 패킷이 수신되었을 경우에는, 수신된 패킷에 포함되지 않은 정보를 이용하여 엔트리를 생성하는 것을 포함한다. 본 발명의 몇몇 실시예에서, 엔트리 생성은 이전에 가속기에 의해 수신된 수신 패킷의 사본으로부터의 정보를 이용하여 엔트리를 생성하는 것을 포함한다.
선택적으로, 패킷 수신은 로드 밸런서로부터 패킷을 수신하는 것을 포함하고, 엔트리 생성은 수신 패킷으로부터의 정보 및 로드 밸런서로 전송된 수신 패킷의 사본으로부터의 정보를 이용하여 엔트리를 생성하는 것을 포함한다.
본 발명의 몇몇 실시예에서, 이 방법은 로드 밸런서에 의해 처리되는 웹 사이트로 제공된 패킷을 가속기에 의해 수신하고, 웹 사이트로 제공된 패킷의 식별 정보 및 하나 이상의 파라미터 값을 임시 저장부에 저장하며, 로드 밸런서로부터 수신된 패킷과 일치하는 엔트리를 임시 저장부에서 탐색하는 것을 포함하되, 패킷 그룹의 종착지 서버의 리스트 내에 엔트리를 생성하는 것은 일치가 존재하는 경우에만 수행된다.
선택적으로, 식별 정보를 저장하는 것은 가속기에 의해 패킷에 태깅(tagging)된 고유 식별 번호를 저장하는 것을 포함한다. 대안적으로 또는 추가적으로, 식별 정보를 저장하는 것은 TCP 패킷의 적어도 하나의 시퀀스 및 인식 필드를 저장하는 것을 포함한다. 또한, 대안적으로 또는 추가적으로, 식별 정보를 저장하는 것은 패킷 페이로드의 선단 세그먼트(leading segment)를 저장하는 것을 포함한다.
본 발명의 실시예에 따르면, 로드 밸런서로 제공되는 패킷을 수신하는 입력 인터페이스와, 패킷 그룹과 그들 각각의 종착지 서버가 기입된 것으로 다수의 상이한 필드 세트를 수용할 수 있는 엔트리들을 가진 테이블과, 로드 밸런서로 제공된 적어도 하나의 패킷과 테이블의 적어도 하나의 엔트리를 비교하는 비교기와, 일치하는 엔트리의 콘텐츠에 응답하여, 비교기에 의해 일치가 발견되었던 적어도 하나의 패킷을 서버로 곧바로 전송하는 전송 유닛 및 다수의 상이한 필드 세트로부터의 필드 중 어느 필드가 테이블의 각 엔트리에 포함되는지를 판정하는 제어기를 포함하는 로드 밸런스 가속기를 제공한다.
선택적으로, 제어기는 테이블의 엔트리의 필드 세트를 구현하는 사용자 인터페이스를 포함한다. 대안적으로 또는 추가적으로, 제어기는 엔트리에 포함된 필드를 자동으로 판정한다. 본 발명의 몇몇 실시예에서, 제어기는 하나 이상의 패킷을 로드 밸런서에 전달하고 로드 밸런서의 응답을 검사하여, 엔트리 내에 포함된 필드를 판정한다.
가능하게, 제어기는 테이블의 필드를 판정하여, 단일 시간에 테이블의 모든 엔트리가 동일 필드를 가지도록 할 수 있다. 대안적으로, 제어기는 테이블의 필드를 판정하여 적어도 소정의 작동주기 동안에 테이블이 상이한 필드를 가진 적어도 두 개의 엔트리를 포함하도록 한다. 선택적으로, 테이블의 적어도 하나의 엔트리는 상이한 필드 세트를 가지도록 구현될 수 있다. 대안적으로 또는 추가적으로, 테이블은 상이한 필드 세트를 가진 다수의 서브 테이블을 포함한다.
본 발명의 실시예에 따르면, 로드 밸런서에 제공되는 패킷을 수신하는 입력 인터페이스와, 패킷 그룹과 그들의 각 종착지 서버가 기입된 테이블과, 로드 밸런서에 제공된 적어도 일부의 패킷과 테이블의 적어도 일부의 엔트리들을 비교하는 비교기와, 일치하는 엔트리의 콘텐츠에 응답하여, 비교기에 의해 일치가 발견되었던 적어도 일부의 패킷을 서버에 곧바로 전송하고, 다수의 작동 모드로 작동할 수 있으며, 다수의 작동 모드 중 적어도 일부는 전송된 패킷의 적어도 하나의 필드를 변경하는 것을 포함하는 전송 유닛과, 전송 유닛이 작동하는 모드가 어느 모드인지를 판정하는 제어기를 포함하는 로드 밸런스 가속기가 제공된다. 선택적으로, 전송 유닛은 스플라이싱(splicing)을 수행할 수 있다. 본 발명의 몇몇 실시예에서, 제어기는 사용자 구현에 기초하여 전송 유닛의 작동 모드를 판정한다. 대안적으로 또는 추가적으로, 제어기는 로드 밸런서로 또는 로드 밸런스로부터 전송된 패킷의 콘텐츠에 기초하여 전송 유닛의 작동 모드를 판정한다. 제어기는 로드 밸런서로부터의 패킷 콘텐츠와 로드 밸런서에 제공된 패킷을 비교하여 전송 유닛의 작동 모드를 판정한다.
본 발명의 실시예는 도면과 함께 후속하는 실시예에 대한 설명을 참조하여 설명될 것이며, 이들로 제한되지는 않는다. 하나 이상의 도면에 도시된 동일한 구조, 소자 또는 부품에는 모든 도면에서 동일하거나 유사한 참조 번호가 부여된다.
도 1은 본 발명의 실시예에 따른 서버 팜(server farm)(20)의 개략적인 블럭도이다. 서버 팜(20)은 인터넷 웹 사이트를 주관하는 다수의 서버(22)(참조번호 22A, 22B, 22C, 22D)를 포함한다. 웹 사이트에 제공된, 즉, 웹 사이트의 IP 어드레스를 가진 패킷은 로드 밸런서(24)에 라우팅되며, 로드 밸런서(24)는 패킷이 전송되어야 하는 서버(22)가 어느 서버인지를 판정한다. 선택적으로, 로드 밸런서(24)는 반 NAT 기법에 따라 작동하는데, 즉, 로드 밸런서는 서버에 전송되는 패킷의 적어도 하나의 IP 종착지 어드레스 및/또는 TCP/UDP 종착지 포트 필드를 교체한다. 대안적으로, 로드 밸런서(24)는 삼각망 모드로 작동한다. 또한, 대안적으로, 로드 밸런서(24)는 이하에 설명되는 바와 같이 전 NAT 기법에 따라 작동한다.
가속기(26)는 로드 밸런서(24)와 클라이언트 사이 및 로드 밸런서(24)와 서버(22) 사이에 패킷을 전달하는 스위치로서 작동한다. 가속기(26)는 적어도 일부의 패킷 그룹에 대해, 가속기가 전송하는 적어도 일부의 패킷들로부터 그 그룹의 패킷들이 어느 서버(22)로 전송되는지를 판정한다. 따라서, 가속기(26)는 판정된 그룹의 패킷을 각 서버(22)에 곧바로 전송한다. 로드 밸런서(24)가 반 NAT 모드로 작동하는 본 발명의 몇몇 실시예에서, 가속기(26)는 자신이 서버(22)에 곧바로 전송하는 패킷의 IP 종착지 어드레스를 교체한다. 선택적으로, 가속기(26)는 서버(22)에서 클라이언트로 전송된 패킷의 소스 어드레스도 변경한다.
도 2는 본 발명의 실시예에 따라, 로드 밸런서(24)가 삼각망 모드로 작동할 때 이용하는 가속기(26)의 로드 밸런스 테이블(30)이다. 테이블(30)은 항상 동일한 서버(22)에 전송되는 패킷 그룹을 식별하는 하나 이상의 파라미터의 키 필드(key field)(32)를 포함한다. 테이블(30)과 종래 기술 간의 차이점 중의 하나는 키 필드(32)의 번호 및/또는 ID(identity)이다. 본 발명의 몇몇 실시예에서, 키 필드는 5개 미만의 필드를 포함한다. 본 발명의 몇몇 실시예에서, 키 필드(32)는 클라이언트에서 팜으로 제공되는 패킷의 종착지(예를 들어, 종착지 어드레스 또는 포트)와 관련된 필드를 포함하지 않는다. 본 발명의 예시적인 실시예에서, 키 필드(32)는 클라이언트 어드레스 필드(34)와 클라이언트 포트 필드(36) 및 프로토콜 필드(38)를 포함한다. 대안적으로, 키 필드(32)는 예를 들어, 로드 밸런서(24)가 TCP 패킷을 처리하는 경우에는 프로토콜 필드(38)를 포함하지 않는다. 또한, 대안적으로, 키 필드(32)는 클라이언트 어드레스 필드(34)와 패킷이 관련된 웹 사이트를 식별하는 필드를 포함한다. 이러한 대안은 테이블(30)에 필요한 엔트리 개수가 클라이언트 포트가 키 필드에 포함되는 경우보다 더 적어서, 로드 밸런서(24)가 단일 웹 사이트에 대한 단일 클라이언트의 모든 패킷을 동일한 서버에 제공하는 경우에 특히 적합하다.
키 필드(32)에 추가하여, 테이블(30)은 특정 엔트리의 키 필드(32)와 일치하는 패킷을 처리하는 것과 관련되는 결과 필드(40)를 포함한다. 본 발명의 몇몇 실시예에서, 결과 필드(40)는 예를 들어, 서버의 MAC 어드레스 및 선택적으로 VLAN를 지정함으로써, 그룹의 패킷이 전송되어야 하는 서버(22)를 식별하는 종착지 필드를 포함한다.
도 3은 본 발명의 실시예에 따라, 패킷 수신시에 가속기(26)에 의해 실행되는 동작을 나타내는 흐름도이다. 도 3의 방법에서, 가속기(26)는 로드 밸런서(24)가 삼각망 모드로 작동할 때, 로드 밸런서(24)와 상호 작용한다. 단계(50)에서 수신된 패킷이 클라이언트에서 서버 팜(20)으로 제공되면(단계 52), 가속기(26)는 패킷이 테이블(30) 내에 일치하는 엔트리를 가지고 있는지 판정한다(단계 54). 일치하는 엔트리가 있으면(단계 54), 패킷은 수신 패킷과 일치하는 엔트리의 결과 필드(40)에 따라 서버(22) 중 하나에 곧바로 전송된다(단계 56). 그러나, 일치하는 엔트리가 없으면(단계 54), 패킷은 로드 밸런서(24)에 전송된다(단계 57). 전형적으로, 패킷의 필드와 엔트리의 키 필드(32)를 비교하여 일치를 수행한다. 예를 들어, 패킷의 IP 소스 어드레스와 소스 포트 및 프로토콜이 엔트리에 기입된 클라이언트 어드레스(34)와 클라이언트 포트(36) 및 프로토콜(38)과 일치하면, 일치가 발견된다.
단계 52에서 수신된 패킷이 로드 밸런서(24)에서 서버(22) 중 하나로 제공되면, 패킷을 서버로 전송하는 단계 62에 부가하여, 가속기(26)는 일치하는 엔트리가 테이블(30)에 있는지를 (실질적으로 판정 단계 54에서 설명한 바와 같이) 판정한다(단계 58). 일치하는 엔트리가 존재하지 않으면(단계 58), 가속기(26)는 패킷으로부터 소스 어드레스, 소스 포트, 프로토콜 및 종착지 서버 정보를 추출하고, 테이블(30)에 각 엔트리를 생성한다(단계 60). 엔트리 생성(단계 60)은 일반적으로 패킷의 소스 어드레스 및 포트를 필드(34,36)에 배치하고, 필드(38)에 패킷의 프로토콜을 배치하며, 필드(40)에 패킷의 종착지 MAC 어드레스 및 선택적으로 VLAN을 배치하여 실행된다. 선택적으로, 가속기(26)는 패킷의 그룹 중 일부에 대한 엔트리들만을 생성한다. 예를 들어, 본 발명의 몇몇 실시예에서, 가속기(26)는 제한된 크기의 테이블을 가지며, 테이블이 추가 엔트리(additional entry)로 가득 채워져 있는 경우에는 생성되지 않는다. 대안적으로 또는 추가적으로, 가속기(26)는 특정 프로토콜, 예를 들어 HTTP 및/또는 FTP의 패킷, 및/또는 다량의 트래픽을 가지고 있는 것으로 예측되는 세션에 속하는 패킷에 대한 엔트리만을 생성한다. 예를 들어, 가속기(26)는 매우 적은 패킷을 포함하는 것으로 예상되는 그룹에 속하는 패킷에 대한 엔트리는 생성하지 않는다.
본 발명의 몇몇 실시예에서, 패킷들이 로드 밸런서(24)에 전송되지 않고 각 서버에 곧바로 전송될 때, 일치하는 엔트리가 존재하면, 로드 밸런서(24)에서 서버(22)로 제공되는 패킷은 수신하지 않는다. 상술한 바와 같이, 그러한 패킷이 어떻게든지 수신되면, 이 패킷들은 패킷 내에 참조로서 실린 서버에 곧바로 전송된다. 본 발명의 몇몇 실시예에서, 엔트리 내의 정보가 패킷 내의 정보와 다르면, 가속기(26)는 패킷의 콘텐츠를 이용하여 각 엔트리를 갱신한다. 선택적으로, 본 발명의 몇몇 실시예에서, 가속기는 클라이언트에서 팜으로 제공되는 패킷을 로드 밸런서(24)에 주기적으로 전송함으로써, 그 패킷들이 그들의 각 엔트리를 리프레시(refresh)하는데 이용되도록 한다. 대안적으로 또는 추가적으로, 이하에 설명되는 바와 같이, 가속기(26)는 테이블(30)로부터 엔트리들을 주기적으로 삭제함으로써 리프레시되도록 한다.
단계 52에서, 수신 패킷이 클라이언트에 제공되거나 상술한 방향과 다른 방향으로 제공되면, 가속기(26)는 임의의 특정 처리없이 그의 콘텐츠에 따라 패킷을 전송한다(단계 72). 다른 방향으로 제공된 패킷은 예를 들어, 팜(20)에 대한 액세스(access)와 관련없는 패킷, 예를 들어, 로드 밸런서(24) 자체 또는 특정 서버(22)에 제공된 패킷을 포함한다. 대안적으로 또는 추가적으로, 가속기(26)는 그러한 패킷을 이웃하는 라우터에 전송하며, 라우터는 패킷들이 전송될 곳이 어디인지를 판정한다.
본 발명의 몇몇 실시예에서, 가속기(26)는 패킷을 수신하면, 그 패킷의 IP 및/또는 MAC 소스 및/또는 종착지 어드레스에 기초하여, 패킷의 방향을 판정한다. 대안적으로 또는 추가적으로, 임의의 다른 방향 판정 방법이 이용되는데, 이에 대해서는 도 5 및/또는 도 7을 참조하여 이하에서 설명한다. 로드 밸런서(24)가 삼각망 모드로 작동하는 본 발명의 예시적인 실시예에서, 패킷의 방향은 패킷의 소스 및 종착지 MAC 어드레스와 그들의 종착지 IP 어드레스에 기초하여 판정된다. 로드 밸런서(24)의 소스 MAC 어드레스와 로드 밸런서(24)에 의해 처리되는 웹 사이트의 종착지 IP 어드레스를 가지는 패킷은 로드 밸런서(24)에서 서버로 제공된다. 클라이언트로부터 로드 밸런서(24)로 제공되는 패킷은 로드 밸런서(24)에 의해 처리되는 웹 사이트의 종착지 IP 어드레스와 로드 밸런서(24)의 종착지 MAC 어드레스를 가진다. 상술한 설명을 수행하지 않은 다른 모든 패킷은 가속기(26)에 의한 임의의 특정 조치없이 전송된다.
도 4는 본 발명의 실시예에 따라, 로드 밸런서(24)가 반 NAT 모드로 작동하는 경우에 사용하는 가속기(26)의 로드 밸런스 테이블(31)이다. 테이블(31)은 테이블(30)과 유사하나, 본 발명의 실시예에서 테이블(31)의 결과 필드(40)는 그들의 IP 어드레스에 기초하여 서버(22)를 식별한다. 본 발명의 몇몇 실시예에서, 결과 필드(40)는 일치하는 클라이언트 패킷(즉, 클라이언트로부터의 패킷)이 전송되는 서버(22)의 IP 어드레스를 지정(state)한 서버 IP 어드레스 필드(42)를 포함한다. 선택적으로, 결과 필드(40)는 일치하는 클라이언트 패킷의 종착지 포트가 변경되어야 하는 값을 지정한 서버 포트 필드(44)를 포함한다. 본 발명의 몇몇 실시예에서, 서버 포트 필드(44)의 특정 값은 패킷의 원래 포트가 이용되어야 함을 나타낸다.
본 발명의 몇몇 실시예에서, 테이블(31)은 서버(22)에서 클라이언트로 전달되는 일치하는 패킷에 삽입될 팜 어드레스를 식별하는 팜 필드(45)도 포함한다. 선택적으로, 팜 필드(45)는 팜 IP 어드레스 필드(43)와 팜 포트 필드(47)를 포함한다. 대안적으로, 가속기(26)는 단일 팜 어드레스만을 제공하는 로드 밸런서(24)와 함께 작동하고, 각 엔트리마다 개별적인 팜 필드(45)를 포함하는 테이블(31)에 대해서가 아니라, 테이블(31)의 모든 엔트리에 대해서 단일의 팜 값 세트가 저장된다. 선택적으로, 단일의 값 세트에 저장된 팜의 IP 어드레스 및/또는 포트 값은 시스템 관리자에 의해 가속기(26) 내에 구현된다. 대안적으로, 가속기(26)는 클라이언트에서 팜으로 전달된 패킷 또는 로드 밸런서(24)에서 클라이언트로 전송된 패킷으로부터 팜(20)의 IP 어드레스 및/또는 포트값을 습득한다.
도 5는 본 발명의 실시예에 따라, 패킷을 수신하는 경우에 가속기에 의해 수행되는 동작을 나타내는 흐름도이다. 도 5의 방법은 로드 밸런서(24)가 반 NAT 모드로 작동하는 도 3의 방법의 변형이다. 따라서, 이하에서는 도 3과 관련하여 설명했던 것과는 다른 부분에 대해서만 설명한다. 도 5 에 도시된 바와 같이, 일치하는 엔트리에 따라 클라이언트에서 서버 팜(20)으로 제공된 패킷을 전송(단계 56)하기 전에, 가속기(26)는 패킷의 종착지 IP 어드레스를 일치하는 엔트리의 결과 필드(40)에 기입된 서버의 어드레스로 변경한다(단계 55). 선택적으로, 가속기는 패킷의 종착지 포트를 일치하는 엔트리 내의 서버 포트 필드(44)의 값으로 변경한다.
선택적으로, 가속기(26)가 서버(22)로 전송된 패킷(단계 56)의 종착지 IP 어드레스를 변경하면(단계 55), 가속기(26)는 단계 68에서 클라이언트에 전송된 패킷의 소스 필드를 변경하는데 이용하기 위해 팜 필드(45)의 교체된 IP 어드레스 및/또는 교체된 종착지 포트를 저장한다. 대안적으로, 가속기(26)는 엔트리를 이용하여, 클라이언트로부터 수신하여 가속기에 의해 서버로 전송되는 엔트리와 일치하는 첫 번째 패킷에만 기초하여 팜 필드(45)에 값을 저장한다. 선택적으로, 일치하는 엔트리의 팜 필드(45)가 채워지기 전에 클라이언트로 복귀될 패킷은 처리를 위한 로드 밸런서(24)로 제공된다. 가속기(26)는 로드 밸런서(24)에서 클라이언트로 제공되는 패킷으로부터 엔트리의 팜 필드(45)의 콘텐츠를 습득할 수도 있다.
대안적으로, 예를 들어, 로드 밸런서(24)가 단일 팜에 대해서만 작동하면, 엔트리를 생성시에(단계 60) 팜 필드(45)의 콘텐츠가 사전 구현된 값으로부터 획득되거나 팜(20)에 제공된 패킷들 중 하나로부터 탐지될 수 있다. 또한, 대안적으로, 특히 로드 밸런서(24)가 다수의 팜을 나타내는 경우에는, 클라이언트에서 팜으로 제공되는 일치하는 엔트리를 가지고 있지 않은 패킷을 전송하기 전에(단계 57), 패킷을 위해 부분 엔트리가 마련된다. 부분 엔트리는 도 3 을 참조하여 설명한 바와 같이 패킷으로부터 획득한 키 필드와 패킷의 종착지 필드(어드레스 및 포트)로부터 획득한 값을 가진 팜 필드(45)를 포함한다. 로드 밸런서(24)에서 서버(22)로 제공되는 패킷에 기초하여 엔트리를 생성하는데 있어서(단계 60), 가속기(26)는 패킷과 일치하는 부분 엔트리를 발견하여, 패킷의 종착지 필드로부터 서버 어드레스(42) 및 서버 포트(44)를 기입한다.
대안적으로 또는 추가적으로, 부분 엔트리 생성, 엔트리 기입 및/또는 전체 엔트리의 생성은 클라이언트로 제공되는 패킷에 기초하여 실행된다. 키 필드(32)의 값은 클라이언트로 제공되는 패킷의 종착지 필드로부터 획득된다. 팜 필드(45)는 로드 밸런서(24)에서 클라이언트로 제공되는 패킷의 소스 필드로부터 획득되거나, 로드 밸런서(24)가 단일 팜을 나타내는 경우에는 사용자에 의해 사전 구현된다. 결과 필드(40)의 값은 서버(22)에서 클라이언트로 제공되는 패킷의 소스 필드로부터 획득된다.
수신 패킷이 서버(22)에서 클라이언트로 제공되면(단계 52), 가속기(26)는 패킷이 테이블(31) 내에 일치하는 엔트리를 가지고 있는지를 판정한다(단계 64). 패킷의 종착지 필드와 키 필드(32)를 비교하여 일치하는 엔트리를 찾아낸다. 각 엔트리가 존재하면, 가속기(26)는 소스 어드레스 필드 및 선택적으로 소스 포트 필드를 팜 필드(45) 내의 IP 어드레스 및 포트값으로 변경한다(단계 66). 그 다음, 변경된 패킷이 클라이언트로 전송된다(단계 68). 일치하는 엔트리가 존재하지 않은 것으로 판정되면(단계 64), 패킷은 처리를 위해 로드 밸런서(24)로 전송된다(단계 70). 대안적으로, 소스 포트 및 어드레스는 팜(20)의 대표 값 또는 임의의 다른 디폴트값(default value)으로 변경되고, 패킷은 클라이언트에 곧바로 전송된다(단계 68).
다른 방향, 예를 들어, 로드 밸런서(24)에서 클라이언트로 제공되는 패킷은 콘텐츠에 따라 종착지로 전송된다(단계 72).
본 발명의 몇몇 실시예에서, 가속기(26)는 패킷의 소스 및 종착지 IP 어드레스에 기초하여 수신 패킷의 방향을 판정한다(단계 52). 예를 들어, 로드 밸런서(24)가 반 NAT 모드로 작동할 경우에, 클라이어트에서 팜(20)으로 제공되는 패킷은 팜의 종착지 IP 어드레스를 가지며, 로드 밸런서(24)에서 서버(22)로 제공되는 패킷은 서버의 종착지 IP 어드레스를 가진다. 서버(22)에서 클라이언트로 제공되는 패킷은 서버의 소스 IP 어드레스를 가지며, 로드 밸런서(24)로 부터 클라이언트로 제공되는 패킷은 팜의 어드레스를 소스 IP 어드레스로서 가진다.
추가적으로 또는 대안적으로, 가속기(26)는 패킷의 소스 및 종착지 포트에 기초하여 수신된 패킷의 방향을 판정한다(단계 52). 예를 들어, HTTP(또는 다른 서버 프로토콜) 포트로 제공되는 패킷은 클라이언트로부터 팜(20)에 제공되거나, 로드 밸런서(24)로부터 서버(22)로 제공된다. HTTP 포트 번호를 소스 포트로서 가진 패킷은 서버(22) 또는 로드 밸런서(24)로부터 클라이언트로 제공된다. 다른 포트 번호를 가진 패킷은 선택적으로 팜(20)과 무관한 것으로 고려되며, 단순히 그들의 종착지를 향해 전송된다(단계 59). 대안적으로 또는 추가적으로, 팜(20)으로 제공된 패킷은 서버로 제공된 패킷과는 다른 포트 번호를 가진다.
대안적으로 또는 추가적으로, 다른 방향으로부터의 패킷은 VLAN 상의 및/또는 상이한 MAC 어드레스를 가지고 가속기(26)에 전송된다. 예를 들어, 클라이언트는 제 1 VLAN 상의 팜(20)과 통신하고, 서버(22)는 제 2 VLAN 상의 로드 밸런서(24)와 통신한다. 본 기술 분야에 알려진 방법을 통해 VLAN 할당이 수행된다. 본 발명의 몇몇 실시예에서, 상이한 VLAN을 사용하는 대신에 또는 상이한 VLAN의 사용에 추가하여, 가속기(26)는 상이한 패킷에 사용되는 상이한 MAC 어드레스를 가진다. 예를 들어, 클라이언트로부터의 패킷은 제 1 종착지 MAC 어드레스와 함께 수신되고, 서버로부터의 패킷은 제 2 종착지 어드레스와 함께 수신된다. 대안적으로 또는 추가적으로, 서버(22)는 제 1 IP 및/또는 MAC 어드레스를 가진 팜(20)과 관련된 메시지와 제 1 IP 및/또는 MAC 어드레스를 가진 팜과 관련되지 않은 메시지를 가속기(26)에 전달한다.
본 발명의 몇몇 실시예에서, 패킷의 MAC 어드레스는 패킷의 방향을 판정하는데 추가적으로 또는 대안적으로 사용된다. 로드 밸런서(24)의 소스 MAC 어드레스를 운송하는 패킷은 로드 밸런서로 부터 제공되고, 서버(22) 중 하나의 소스 MAC 어드레스를 운송하는 패킷은 그 서버로부터 제공된다.
대안적으로 또는 추가적으로, 두 개 이상의 상이한 IP 어드레스가 각 서버에 할당된다. 제 1 IP 어드레스는 사설 트래픽에 대한 서버를 식별하는데 이용되고, 팜의 일부로서 수신한 패킷은 제 2 IP 어드레스를 이용한다. 선택적으로, 서버는 그들이 주관하는 각 웹 사이트에 대해 개별적인 IP 어드레스를 가진다. 대안적으로 또는 추가적으로, 각 서버에는 2개 이상의 상이한 MAC 어드레스가 할당된다.
대안적으로, 클라이언트로 또는 클라이언트로부터의 트래픽을 가속시키기 위해, 클라이언트 방향으로 흐르는 인터넷 트래픽 비율이 높을 경우에, 가속기(26)는 클라이언트 방향으로만 로드 밸런서(24)의 작동을 가속시킨다. 이러한 대안에 있어서, 클라이언트에서 팜으로 제공되는 패킷은 패킷이 일치하는 엔트리를 가지고 있는지의 여부에 관계없이 로드 밸런서(24)에 전송된다(단계 57).
도 6은 본 발명의 실시예에 따라, 도 7을 참조하여 후술하는 방법에 이용되는 가속기(26)의 로드 밸런스 테이블(130)이다. 로드 밸런스 테이블(130)은 도 4를 참조하여 설명한 테이블(31)과 유사하지만, 전 NAT 모드로 작동하는 로드 밸런서와 함께 작동하는데 도움을 주는 추가적인 필드를 가진다. 그러나, 테이블(30)이 다른 모드로 작동하는 로드 밸런서와 함께 이용될 수 있음을 알아야 한다. 테이블(31)과 유사하게, 테이블(130)은 클라이언트에 의해 할당되는 원래의 소스 값으로 지칭되는 클라이언트 어드레스 필드(34) 및 클라이언트 포트 필드(36)와, 프로토콜 필드(38)와, 팜 필드(45) 및 아래의 설명에 대한 이해를 돕기 위해 서버 필드(40)로서 지칭된 결과 필드(예를 들어, 서버 어드레스 필드(42) 및 서버 포트 필드(44))를 포함한다. 추가적으로, 테이블은 의사 클라이언트 필드, 예를 들어, 의사 클라이언트 어드레스 필드(46)와 의사 클라이언트 포트 필드(48)를 포함한다.
본 발명의 몇몇 실시예에서, 키 필드로 이용된 필드(즉, 패킷이 엔트리와 일치하는지를 판정하는데 있어서 대응하는 패킷 필드와 비교되는 필드)는 일치가 발견된 패킷의 흐름 방향에 의존한다. 클라이언트에서 팜(20)으로 제공되는 패킷은 클라이언트에 의해 생성된 패킷과 일치하는 필드를 포함하는 클라이언트 키 필드에 기초하여 테이블(13)과 비교된다. 예시적인 실시예에서, 클라이언트 키 필드는 클라이언트 어드레스 필드(34)와 클라이언트 포트 필드(36) 및 선택적으로 프로토콜 필드(38)를 포함한다. 로드 밸런서(24)에서 서버(22) 중 하나로 제공되는 패킷 및/또는 서버(22) 중 하나에서 클라이언트로 제공되는 패킷은 패킷의 필드들이 로드 밸런서(24)에 의해 변경된 후에, 패킷과 일치하는 필드를 포함하는 서버 키 필드에 기초하여 테이블과 비교된다. 본 발명의 몇몇 실시예에서, 서버 키 필드는 의사 클라이언트 필드(49)와, 선택적으로 프로토콜 필드(38) 및/또는 하나 이상의 서버 필드(40)를 포함한다.
본 발명의 몇몇 실시예에서, 테이블(30,31 및/또는 130)의 엔트리들은 그들의 생성 후 사전결정된 시간이 지나면 삭제된다. 대안적으로 또는 추가적으로, 엔트리들은 사전결정된 시간 동안 이용되지 않으면 삭제된다. 본 발명의 몇몇 실시예에서, 테이블(30,31 및/또는 130)은 엔트리가 존재하는 시간 및/또는 엔트리가 사용 중이 아닌 시간에 이어서 이용되는 에이징 필드(aging field)를 포함한다. 선택적으로, 가속기(26)는 클라이언트를 가진 세션이 종료됨에 따라 테이블(30, 31 및/또는 130)로부터 엔트리를 삭제하는 시점을 판정한다. 예를 들어, 가속기(26)는 엔트리와 일치하는 (접속의 종료를 나타내는) FIN 비트 세트를 가진 패킷이 수신된 후 사전결정된 시간이 지나면 엔트리를 삭제한다.
도 7은 본 발명의 실시예에 따라, 패킷 수신시에 가속기(26)에 의해 실행되는 동작을 나타내는 흐름도이다. 도 7의 방법은 로드 밸런서(24)가 전 NAT 모드로 작동하는 도 5의 방법의 변형이다. 도 7의 방법에서, 가속기(26)는 로드 가속기에 제공된 패킷과, 이 패킷이 로드 밸런서에 의해 처리되고 난 후의 동일한 패킷과 상호 연관시킨다. 테이블(130) 내의 엔트리는 상관된 패킷의 파라미터에 기초하여 생성된다. 본 발명의 몇몇 실시예에서, 엔트리들은 상관을 수행하기 위해, 로드 밸런서(24)에 제공된 패킷의 일부 또는 전부를 위한 임시 저장부에서 생성된다.
수신 패킷(단계 50)이 클라이언트에서 서버 팜(20)으로 제공되면(단계 52), 가속기(26)는 클라이언트 키 필드에 기초하여 패킷이 테이블(130) 내에 일치하는 엔트리를 가지고 있는지를 판정한다(단계 54). 예를 들어, 패킷의 소스 어드레스 및 포트는 각각 필드(34,36)와 비교되고, 패킷의 프로토콜 필드는 필드(38)와 비교된다. 일치하는 엔트리가 발견되면(단계 54), 가속기(26)는 소스 및 종착지 IP 어드레스와 포트와 일치하는 엔트리의 필드(42, 44, 46 및 48, 도 6 참조)내의 값을 교체한다(단계 75). 변경된 패킷은 변경된 IP 종착지 필드에 의해 식별되는 서버(22)로 곧바로 전송된다(단계 56). 선택적으로, 교체된 종착지 IP 어드레스 및/또는 포트는 응답 패킷이 클라이언트로 되돌아갈 때 사용하기 위해, 팜 어드레스 필드(43) 및 팜 포트 필드(47)에 각각 저장된다.
일치하는 엔트리가 발견되지 않으면(단계 54), 패킷은 로드 밸런서(24)로 전송된다(단계 57). 패킷을 로드 밸런서(24)로 전송하는 것에 추가하여, 가속기(26)는 임시 저장부에 패킷에 대한 엔트리를 생성한다(단계 77). 본 발명의 몇몇 실시예에서, 이하에 설명되는 바와 같이, 임시 저장부 내의 엔트리는 클라이언트 패킷 정보, 예를 들어 패킷의 소스 IP 어드레스 및 소스 포트와, 패킷을 식별하는데 필요한 정보를 포함한다. 선택적으로, 임시 저장부에 저장된 클라이언트 패킷 정보는 패킷의 종착지 어드레스 및/또는 종착지 포트를 포함한다. 대안적으로 또는 추가적으로, 클라이언트 패킷 정보는 패킷의 종착지 필드로 부터 획득한 팜 정보도 포함한다.
삭제
선택적으로, 임시 저장부 내에 수신된 패킷에 대한 엔트리를 생성하기 전에, 가속기(26)는 임시 저장부의 다른 엔트리가 수신된 패킷으로서 동일한 클라이언트 패킷 정보(예를 들어, 소스 IP 어드레스 및 소스 포트)를 가지고 있는지를 체크한다. 임시 저장부 내에 그러한 엔트리가 발견되면, 패킷 그룹에 대한 엔트리를 테이블에 생성하는 데 단일 패킷 엔트리만 필요하기 때문에, 임시 저장부 내에 수신된 패킷에 대한 엔트리를 생성하지 않는다. 대안적으로, 보다 오래된 엔트리가 사전설정된 시간이 지나도 임시 저장부에 있으면, 소스 그룹의 보다 오래된 엔트리를 교체하기 위해 엔트리가 생성된다. 또한, 대안적으로, 예를 들어, 패킷이 분실될 경우, 테이블(130)을 보다 빨리 구성하기 위해, 동일한 소스 그룹의 패킷에 대해 임시 저장부 내에 사전결정된 수의 엔트리가 허용된다. 본 발명의 몇몇 실시예에서, 동일한 소스 그룹에 대한 임시 저장부 내에 허용된 사전결정된 수의 엔트리는 임시 메모리 내의 빈 공간 및 로드 밸런서(24)상의 로드량에 기초하여 동적으로 조정된다.
본 발명의 몇몇 실시예에서, 가속기(26)는 엔트리들이 생성되어 사전결정된 시간이 지난 후에 임시 저장부로부터 엔트리들을 삭제하고/하거나 임시 저장부 내의 모든 엔트리들을 주기적으로 삭제한다. 대안적으로 또는 추가적으로, 임시 저장부가 충만(full) 상태이고 새로운 엔트리가 생성되어야 하는 경우, 가장 오래된 엔트리를 덮어쓰기 한다. 일치가 발견되고 엔트리가 테이블(130) 내에 생성되면, 임시 저장부 내의 각 엔트리가 삭제된다.
수신된 패킷이 로드 밸런서(24)에서 서버(22) 중 하나에 제공되면(단계 52), 패킷을 서버에 전송하는 것에 부가하여, 가속기(26)는 일치하는 엔트리가 테이블(130) 내에 존재하는지를 판정한다(단계 58). 일치하는 엔트리가 존재하지 않으면(단계 58), 가속기(26)는 저장된 식별 정보에 기초하여, 임시 저장부를 통해 패킷과 일치하는 엔트리를 검색한다. 임시 저장부 내에 일치하는 엔트리가 있으면(단계 82), 가속기(26)는 수신된 패킷의 파라미터 및 임시 저장부 내의 일치하는 엔트리로부터의 클라이언트 패킷 정보에 기초하여, 테이블(130) 내에 엔트리를 생성한다(단계 84). 본 발명의 몇몇 실시예에서, 클라이언트 어드레스 필드(34) 및 클라이언트 포트 필드(36)의 값은 임시 저장부 내의 클라이언트 패킷 정보의 소스 필드 각각으로부터 얻을 수 있다. 프로토콜 필드(38)의 값은 패킷의 프로토콜 필드로부터 획득된다. 서버 필드(40)의 값은 패킷의 종착지 필드로부터 획득되고, 의사 클라이언트 필드(49)의 값은 패킷의 각 소스 필드로부터 획득된다. 선택적으로, 팜 필드(45)의 값은 임시 저장부 내의 팜 필드로부터 획득된다.
수신된 패킷이 서버(22)에서 클라이언트로 제공되면(단계 52), 가속기(26)는 상술한 바와 같이, 서버 키 필드에 기초하여 패킷이 테이블(130) 내에 각 엔트리를 가지고 있는지를 판정한다(단계 64). 각 엔트리가 존재하면, 가속기(26)는 패킷의 소스 IP 어드레스 및 소스 포트를 팜(20)의 소스 IP 어드레스 및 소스 포트로 변경한다(단계 86). 추가적으로, 가속기(26)는 패킷의 종착지 IP 어드레스 및 종착지 포트를 일치하는 엔트리의 클라이언트 필드(34,36)의 값으로 변경한다(단계 88). 변경된 패킷은 클라이언트로 전송된다(단계 68). 일치하는 엔트리가 존재하지 않은 것으로 판정되면, 패킷은 처리를 위해 로드 밸런서(24)로 전송된다(단계 70).
다른 방향, 예를 들어, 로드 밸런서(24)에서 클라이언트로 제공되는 패킷은 콘텐츠에 따라 종착지를 향해 전송된다(단계 72).
본 발명의 몇몇 실시예에서, 가속기(26)는 도 5를 참조하여 상술한 임의의 방법을 이용하여 수신한 패킷의 방향을 판정한다. 본 발명의 예시적인 실시예에서, 클라이언트에서 웹 사이트로 제공되는 패킷은 팜(20)에 의해 처리되는 웹 사이트의 어드레스인 종착지 IP 어드레스에 기초하여 식별된다. 로드 밸런서(24)에서 서버로 제공되는 패킷은 로드 밸런서(24)로부터의 소스 MAC 어드레스와 로드 밸런서(24)에 의해 사용되는 의사 클라이언트 어드레스인 그들의 소스 IP 어드레스에 기초하여 식별된다. 서버(22)에서 로드 밸런서(24)로 제공되는 패킷은 의사 클라이언트 어드레스인 그들의 종착지 IP 어드레스와, 선택적으로 로드 밸런서(24)의 어드레스인 그들의 종착지 MAC 어드레스에 기초하여 식별된다. 로드 밸런서(24)에서 클라이언트로 제공되는 패킷은 팜에 의해 처리되는 웹 사이트의 어드레스인 그들의 소스 IP 어드레스에 기초하여 식별된다. 이상의 카테고리에 적합하지 않은 패킷은 팜(20)과 무관하게 전송된다.
본 발명의 몇몇 실시예에서, 로드 밸런서(24)로 제공되는 수신된 패킷이 임시 저장부 내의 엔트리와 일치하면, 임시 저장부 내의 엔트리가 삭제되고 수신 패킷에 대해 더 이상 엔트리를 생성하지 않는다. 따라서, 동일한 식별 정보를 가지는 추가 패킷이 네트워크를 통과하는 중이라서 일치가 에러인 경우에, 가속기(26)는 (로드 밸런서(24)로부터 및/또는 로드 밸런서(24)로의) 일치하는 패킷에 기초하여 테이블(30)에 엔트리를 생성하지 않는다.
대안적으로 또는 추가적으로, 임시 메모리 및/또는 테이블(130) 내에 엔트리를 생성하기 전에, 가속기(26)는 패킷의 식별 정보의 신뢰성을 평가한다. 정보가 충분히 신뢰할 정도가 아니면, 즉, 우연히 동일한 식별 정보를 가진 상이한 패킷이 가속기(26)에 의해 수신되면, 엔트리가 생성되지 않는다. 신뢰성이 없는 식별 정보는 매우 짧은 패킷 또는 매우 일반적인 정보를 실어나르는 패킷에 기인한 것이다.
본 발명의 몇몇 실시예에서, 임시 저장부 내의 엔트리는 패킷이 분실되고 엔트리가 삭제되었다고 여겨지고 난 후 사전결정된 시간 동안에 저장된다. 대안적으로, 임시 저장부가 충만되면, 가장 오래된 엔트리가 덮어쓰기 된다. 일치가 발견되어 테이블(130) 내의 엔트리가 생성되면(단계 84), 엔트리는 임시 저장부로부터 삭제된다.
본 발명의 몇몇 실시예에서, 임시 저장부 내의 패킷을 식별하는데 사용되는 정보는 패킷의 하나 이상의 특정 필드의 값을 포함하는데, 이때, 특정 필드는 두 개의 상이한 프레임에서 우연히 반복될 가능성이 상대적으로 낮은 필드이다. 본 발명의 몇몇 실시예에서, 특정 필드는 프레임의 여러 헤드로부터 획득된다. 본 발명의 몇몇 실시예에서, 식별 정보는 로드 밸런서(24)에 의해 변경되는 필드, 예를 들어, 패킷의 VLAN 및/또는 IP와 MAC 어드레스를 포함하지 않는다. 선택적으로, 식별정보는 대량의 프레임에 대해 동일한 값을 가지는 필드, 예를 들어, IP 헤더 길이 및/또는 버전을 포함하지 않는다. 본 발명의 예시적인 실시예에서, 특정 필드는 TCP 패킷에 대해 하나 이상의 시퀀스, TCP 헤더의 인식 필드 및 패킷의 길이를 포함한다. 본 발명의 예시적인 실시예에서, 특정 필드는 HTTP 패킷에 대해 URL 필드 및/또는 쿠키 필드(cookie field)를 포함한다.
대안적으로 또는 추가적으로, 식별 정보는 비교가 용이하고, 가속기(26)를 통과하여 랜덤하게 선택된 임의의 두 개의 패킷들 간에 상관 관계가 낮거나 아예 없는 랜덤 필드들을 포함한다. 예시적인 실시예에서, 랜덤 필드는 사전결정된 수, 예를 들어 50 내지 100의 선단부, 중간부 및/또는 말단부의 바이트를 포함한다. 선단부 바이트는 선택적으로 IP 헤더의 뒤쪽, 트랜스포트의 뒤쪽, 또는 임의의 다른 헤더의 뒤쪽부터 카운트되므로, 로드 밸런서(24)에 의해 변경되는 필드를 포함하지 않게 된다. 본 발명의 몇몇 실시예에서, 하나 이상의 특정 필드와 하나 이상의 랜덤 필드들의 조합이 이용된다.
또한, 대안적으로 또는 추가적으로, 식별 정보는 로드 밸런서(24)에 의해 변경되는 이러한 필드를 배제한 전체 패킷을 포함한다.
도 7의 방법은 여러 유형의 전 NAT 로드 밸런스 모드를 위해 이용된다. 하나의 전 NAT 모드에 있어서, 로드 밸런서(24)는 서버로부터/로 전송되는 패킷들의 소스 및 종착지 IP 어드레스를 교체한다. 선택적으로, 이러한 전 NAT 모드에 있어서, 로드 밸런서(24)는 전송하는 패킷의 소스 및 종착지 포트 필드를 교체한다. (슬라이싱이라고 하는) 다른 전 NAT 모드에 있어서, 로드 밸런서(24)는 가능하면 IP 어드레스 및/또는 프로토콜 포트에 추가하여, 전송하는 패킷의 (인식 번호를 포함하는) TCP 시퀀스 번호를 변경한다. 이러한 모드에 있어서, 테이블(130)은 TCP 시퀀스 번호를 변경하는데 사용하기 위해 하나 이상의 추가 필드를 포함하는 것이 바람직하다. 본 발명의 예시적인 실시예에서, 로드 밸런서(24)에 의해 전달되는 패킷의 시퀀스 번호는 클라이언트 패킷 정보와 함께 임시 저장부에 저장된다. 로드 밸런서(24)에서 서버(22)로 제공되는 일치하는 패킷이 수신되면, 수신 패킷 및 임시 저장부 내의 시퀀스 번호들과 그들 자체의 시퀀스 번호들 간의 차이가 생성된 엔트리에 저장된다. 본 명세서에서 프록시 변환이라고 하는 또 다른 전 NAT 모드에 있어서, 로드 밸런서(24)는 가능하면 다른 모드의 다른 변경에 추가하여 프록시 포맷에 전송하는 HTTP 요청의 콘텐츠를 변경한다.
본 발명의 몇몇 실시예에서, 로드 밸런서(24)로 전송되는 패킷과 로드 밸런서(24)로부터 수신된 패킷의 일치에 사용되는 필드는 로드 밸런서(24)가 작동중인 특정 모드에 따라 선택된다. 대안적으로, 일치에 사용되는 필드는 모든 모드에서 변경하지 않은 필드이다. 프록시 변환 모드에 있어서, 가속기(26)는 패킷을 일치시킬 때 프록시 변환으로 실행되는 변경을 고려한다.
본 발명의 몇몇 실시예에서, 가속기(26)는 로드 밸런서(24)로 전송하는 팜(20)에 제공된 패킷에 고유 식별 번호를 태깅(tagging)한다. 이러한 고유 식별 번호는 식별 정보로서 이용된다. 본 발명의 몇몇 실시예에서, 고유 식별 번호를 포함하는 추가 필드, 예를 들어, 추가 헤더 또는 테일(tail)은 로드 밸런서(24)로 전달되는 프레임에 부가된다. 대안적으로 또는 추가적으로, 고유 식별 번호를 포함하는 IP 선택 필드 및/또는 TCP 선택 필드는 프레임에 부가된다. 선택적으로, 추가 필드는 프레임이 그 길이를 넘어서면 분할되어야만 하는 최대 길이의 패킷에는 부가되지 않는다.
본 발명의 몇몇 실시예에서, 고유 식별 번호가 프레임의 기존 필드 내에 배치된다. 선택적으로, 고유 식별 번호는 사용 중도 아니고 로드 밸런서(24)에 의해 변경되지도 않은 예약 필드, 즉, 분할을 포함하지 않은 프레임 내의 IP 헤더의 분할 필드 및/또는 IP 헤더의 서비스 유형(TOS:type of service) 필드 내의 예약 비트에 배치된다. 선택적으로, 분할 필드가 고유 식별 번호를 저장하는데 이용되면, 가속기(26)는 분할되었던 프레임을 변경하지도 않고 그 프레임으로부터 습득하지도 않는다.
대안적으로 또는 추가적으로, 가속기(26)는 사용 중인 하나 이상의 프레임 필드, 예를 들어, IP 헤더의 분할 필드의 값을 교체하며, 프레임이 그들의 길로 되돌아 갈때 원래의 값을 되돌려준다. 본 발명의 몇몇 실시예에서, 가속기(26)는 교체된 필드의 현재 값이 필요한지를 식별하고, 그 값이 필요한 경우, 예를 들어, 프레임이 실질적으로 분할된 경우에만 원래의 값을 저장한다.
본 발명의 몇몇 실시예에서, 가속기(26)를 통해 로드 밸런서(24)로 제공되는 모든 프레임이 가속기(26)를 통해 되돌아가야만 함을 가속기(26)가 인지하게 되는 경우에만 고유 식별 번호가 수신 패킷에 부가된다. 이것은, 예를 들어, 로드 밸런서(24)가 가속기(26)의 하나 이상의 포트를 통해서만 연결될 경우에 이루어진다. 본 발명의 몇몇 실시예에서, 프레임이 로드 밸런서(24)로 되돌아가면 가속기(26)는 고유 식별 번호를 제거한다. 본 발명의 몇몇 실시예에서, 시스템 관리자는 로드 밸런서(24)가 가속기(26)를 통해서만 연결되는지에 대해 통지하는 가속기(26)를 구성한다. 대안적으로 또는 추가적으로, 가속기(26)는 로드 밸런서(24)로부터 수신한 프레임의 IP 종착지 어드레스의 정보를 알아내어, 이전에 로드 밸런서(24)로부터 프레임이 수신되었던 IP 종착지 어드레스를 가진 프레임에게만 고유 식별 번호를 태깅한다.
대안적으로, 고유 식별 번호는 고유 식별 번호의 의미를 알지 못하는 라우터(router) 및/또는 서버에 번거로움을 주는 방식으로 프레임을 변경하지 않으며, 프레임에 남겨진다.
본 발명의 몇몇 실시예에서, 가속기(26)는 테이블(30)을 참조하여 본 명세서에서 설명한 바와 같이, 패킷의 일부 그룹에 대해 테이블(130) 내에 엔트리를 생성하지 않는다. 선택적으로, 가속기(26)는 가속기(26)의 방식에 따라 테이블(130) 내에 엔트리가 생성되지 않은 패킷에 대해 임시 저장부 내에 엔트리를 생성하지 않는다.
본 발명의 몇몇 실시예에서, 가속기(26)는 상이한 작동 모드에 따라 작동하는 로드 밸런서(24)와 함께 작동한다. 선택적으로, 시스템 관리자는 로드 밸런서(24)의 작동 모드에 따라 가속기(26)를 구현한다.
대안적으로 또는 추가적으로, 가속기(26)는 로드 밸런서(24)가 삼각망 모드, 반 NAT 모드, 전 NAT 모드 또는 임의의 다른 모드로 작동하는지에 대해 자동으로 판정한다. 본 발명의 몇몇 실시예에서, 가속기(26)가 작동을 시작하거나 또는/및 주기적으로 작동하는 경우, 로드 밸런서(24)의 작동 모드를 체크한다. 예를 들어, 로드 밸런서(24)가 가속기(26)의 작동 중에 교체되거나 재 구성되는 실시예에서는 작동 모드의 주기적인 체킹이 바람직하다. 본 발명의 몇몇 실시예에서, 로드 밸런서에 식별 가능 패킷을 전달하고, 로드 밸런서에 의해 식별 가능 패킷이 처리되는 방법을 판정함으로써, 자동 판정이 실행된다. 본 발명의 몇몇 실시예에서, 가속기(26)에 의해 식별 가능 패킷이 생성되어 로드 밸런서(24)를 테스트한다. 대안적으로, 식별 가능 패킷은 가속기(26)가 식별을 위해 습득한 클라이언트로부터 수신된 패킷을 포함한다. 본 발명의 몇몇 실시예에서, 식별 가능 패킷은 식별을 허용하기 위해 가속기(26)에 의해 마킹(marking)된다. 대안적으로 또는 추가적으로, 가속기(26)는 패킷의 식별을 허용하는 식별 가능 패킷의 하나 이상의 단일 필드(또는 드물게 반복하는 필드)를 저장한다. 식별 가능 패킷의 이용에 대한 대안 또는 추가에 있어서, 가속기(26)가 로드 밸런서(24)를 테스트하는 경우, 가속기(26)는 단지 제한된 수의 패킷들, 예를 들어, 단일 패킷만을 로드 밸런서(24)에 동시에 전송한다.
본 발명의 몇몇 실시예에서, 가속기(26)는 단일 클라이언트 IP 어드레스로부터 단일 서버(22)로 모든 패킷을 제공하는 로드 밸런서(24)와 함께 작동한다. 그러한 로드 밸런서(24)는 단지 단일의 웹 사이트를 나타냄이 바람직하다. 본 발명의 몇몇 실시예에서, 가속기(26)는 시스템 관리자에 의해 구현되므로 키 필드(32)가 단지 소스 어드레스 필드(34)만을 포함하게 된다. 따라서, 테이블(30)에 필요한 엔트리의 개수는 감소하고, 가속기(26)의 작동이 가속된다. 대안적으로 또는 추가적으로, 가속기(26)는 로드 밸런서(24)를 자동으로 테스트하여, 동일한 클라이언트 IP 어드레스에서 상이한 서버(22)로 패킷을 전송하는지의 여부를 판정한다. 몇몇 실시예에서, 가속기(26)는 동일한 클라이언트 어드레스 및 상이한 소스 포트 및/또는 프로토콜을 가진 다수의 테스트 패킷을 포함하는 사전결정된 테스트 시퀀스(test sequence)를 이용한다. 가속기(26)는 로드 밸런서가 어느 작동 모드로 작동하는지를 로드 밸런서(24)에 의한 테스트 패킷의 처리로부터 판정한다.
본 발명의 몇몇 실시예에서, 테스트 시퀀스는 상이한 소스 어드레스 및/또는 다수의 소스 어드레스의 각각마다 프로토콜을 가진 다수의 패킷을 포함한다. 본 발명의 몇몇 실시예에서, 로드 밸런서(24)가 작동하는 모드에 응답하여 테스트 시퀀스가 선택된다.
본 발명의 몇몇 실시예에서, 가속기(26)는 로드 밸런서(24)의 작동 모드를 판정하는 데 사용되는 테스트 시퀀스의 갱신을 통신 네트워크를 통해 수신할 수 있. 따라서, 새로운 작동 모드를 가진 로드 밸런서가 도입되면, 이러한 새로운 작동 모드를 판별하는 테스트 시퀀스가 가속기(26)에 다운 로드되고, 가속기에 필요한 하드웨어는 변경되지 않는다.
본 발명의 몇몇 실시예에서, 가속기(26)는 상이한 유형의 및/또는 로드 밸런서의 상이한 작동을 위해 사용되는 상이한 키 필드를 가진 다수의 로드 밸런스 서브-테이블을 포함한다.
도 8은 본 발명의 실시예에 따른, 다수의 로드 밸런서(24)와 함께 작동하는 서버 팜(120)의 개략적인 블럭도이다. 서버 팜(120)은 다수의 서버(22)를 포함하며, 각 서버는 하나 이상의 웹 사이트를 주관한다. 각 로드 밸런서(24)는 팜(120)의 하나 이상의 웹 사이트의 팜을 처리한다. 선택적으로, 각 웹 사이트의 패킷은 특정한 하나의 로드 밸런서(24)에 의해 처리된다. 대안적으로 또는 추가적으로, 하나 이상의 로드 밸런서(24)는 복수의 웹 사이트를 공급한다. 각 로드 밸런서(24)는 상술한 작동 모드에 따라 작동하며, 특히, 상이한 로드 밸런서(24)는 상이한 모드로 동시에 작동한다. 또한, 동일한 로드 밸런서(24)는 상이한 시간에 상이한 모드로 작동한다.
가속기(26)는 로드 밸런서(24)의 작동을 가속화시킨다. 본 발명의 몇몇 실시예에서, 시스템 관리자는 팜(120)의 웹 사이트의 IP 어드레스 및 각 사이트의 각 로드 밸런서(24)를 가진 가속기(26)를 구현한다. 팜(120)의 각 웹 사이트에 대해, 가속기(26)는 개별적인 로드 밸런스 서브 테이블을 관리한다. 대안적으로, 사이트들의 각 로드 밸런서에 의해 단일 모드로 처리되는 사이트의 일부 또는 전부에 단일 로드 밸런스 서브 테이블이 할당된다. 또한, 대안적으로, 단일 서브 테이블이 각 로드 밸런서(24)에 할당된다.
클라이언트에서 웹 사이트로 제공되는 패킷이 수신되면, 가속기(26)는 패킷의 종착지 IP 어드레스(즉, 웹 사이트의 어드레스)에 기초하여 패킷을 처리하는 데 사용되는 서브 테이블이 어느 서브 테이블인지를 판정한다. 종착지 IP 어드레스는 패킷이 전송될 로드 밸런서를 정의한다. 대안적으로 또는 추가적으로, 가속기(26)는 패킷 및/또는 그 패킷이 전송되어야 하는 로드 밸런서(24)를 처리하는데 사용되는 서브 테이블이 어느 서브 테이블인지를 판정하는데, 필요할 경우, 패킷의 종착지 MAC 어드레스 및/또는 VLAN에 기초하여 판정을 행한다.
로드 밸런서(24) 중의 하나에서 서버(22)로 제공되는 패킷에 있어서, 가속기(26)는 패킷의 웹 사이트 및 선택적으로 패킷의 VLAN을 처리하는 로드 밸런서의 MAC 어드레스인 패킷의 소스 MAC 어드레스에 기초하여, 패킷의 각 서브 테이블을 선택한다. 대안적으로 또는 추가적으로, 로드 밸런서(24)가 전 NAT 모드로 작동할 경우, 패킷의 IP 소스 어드레스가 이용된다. 또한, 대안적으로 또는 추가적으로, 패킷의 종착지 MAC 어드레스(또는 전 NAT 모드의 IP 어드레스)를 서버(22)의 MAC 어드레스와 비교하고, 그에 따라 서브 테이블이 선택된다. 이러한 대안에 있어서, 각 서버는 단일 로드 밸런서의 웹 사이트만을 처리한다.
서버 중 하나(22)에서 클라이언트로 제공되는 패킷에 대하여, 가속기(26)는 패킷의 소스 MAC 어드레스와 서버(22)의 MAC 어드레스의 비교 결과에 기초하여, 패킷의 각 서브 테이블을 선택한다. 이와 달리, 반 NAT 모드의 소스 IP 어드레스와 전 NAT 모드의 종착지 IP 어드레스가 이용된다. 또한, 대안적으로 또는 추가적으로, 패킷을 가속기(26)의 모든 테이블과 비교하여, 패킷의 각 엔트리를 발견한다.
본 발명의 몇몇 실시예에서는, 상술한 임의의 특정 실시예에서 적절한 작동을 위해 가속기(26)에 의해 요청된 정보는 시스템 관리자에 의해 가속기(26) 내에 구현된다. 요청된 정보는, 예를 들어, 로드 밸런서(24) 및/또는 서버의 하나 이상의 MAC 및/또는 IP 어드레스를 포함하며, 웹 사이트의 IP 어드레스는 패킷을 상이한 방향으로부터 수신하는 팜(20) 및/또는 VLAN에 의해 제공된다. 요청된 정보를 구현하는 것에 대한 대안 또는 추가에 있어서, 적어도 몇 개의 요청 정보가 가속기에 의해 자동적으로 판정된다. 선택적으로, 가속기(26)는 예를 들어, 어드레스 결정 프로토콜(ARP:Address Resolution Protocol) 질의를 이용하는 당해 분야에 알려진 임의의 방법을 통해, 구현된 IP 어드레스에 기초하여 로드 밸런서(24) 및 /또는 서버(22)의 MAC 어드레스를 판정한다. 선택적으로 또는 대안적으로 가속기는 예를 들어, 이웃하는 서버 및/또는 로드 밸런서를 식별하고/하거나 이웃하는 서버 및/또는 로드 밸런서로부터 정보를 수신하기 위해 고안된 폴링(poling) 프로토콜을 이용하여, 요청된 정보를 자동으로 판정한다.
본 발명의 몇몇 실시예에서, 각 서브 테이블은 서브 테이블이 작동하는 웹사이트를 나타내는 IP 어드레스 및 선택적으로 포트와 연관된다. 대안적으로, 서브 테이블은 각 엔트리에 대해, 엔트리가 관련되는 웹 사이트의 대표적인 IP 어드레스 및 선택적으로 포트를 기입한 하나 이상의 추가 필드를 포함한다.
본 발명의 몇몇 실시예에서, 가속기(26)는 웹 사이트 및/또는 로드 밸런서(24)에 동적으로 할당되는 다수의 물리적 서브 테이블을 포함한다. 선택적으로, 서브 테이블의 필드는 서브 테이블이 할당되었던 로드 밸런서(24)에 따라, 즉, 로드 밸런서의 작동 모드(예를 들어, 전 NAT, 반 NAT)에 따라 동적으로 조정된다. 대안적으로 또는 추가적으로, 가속기(26)는 로드 밸런서(24)들의 작동 모드(예를 들어, 삼각망, 반 NAT, 전 NAT)에 따라 로드 밸런서(24)에 할당된 상이한 유형의 물리적 서브 테이블(예를 들어, 상술한 테이블(30, 31, 130))을 포함한다.
대안적으로 또는 추가적으로, 가속기(26)는 하나 이상의 구조적 테이블을 포함하며, 그의 엔트리는 각 웹 사이트 및/또는 로드 밸런서의 상이한 서브 테이블에 동적으로 할당된다. 구조 테이블의 인덱스는 각 엔트리가 속하는 서브 테이블이 어느 서브 테이블인지를 나타낸다. 따라서, 상이한 서브 테이블에 대한 엔트리들의 분할이 동적으로 수행되고, 다른 서브 테이블이 완전히 채워져 있지 않을 때에는, 서브 테이블들 중 하나의 서브 테이블의 엔트리가 모두 채워지는 기회가 실질적으로 줄어든다.
본 발명의 몇몇 실시예에서, 가속기(26)는 동일한 웹 사이트를 제공하는 다수의 로드 밸런서와 함께 작동한다. 선택적으로, 본 실시예들의 서브 테이블들은 예를 들어, MAC 어드레스에 기초하여, 엔트리의 패킷을 처리했던 로드 밸런서(24)를 식별하는 추가 필드를 포함한다. 대안적으로, 로드 밸런서(24)가 테이블을 사용하지 않고 작동하는 경우에는 그러한 필드가 필요치 않다.
본 발명의 몇몇 실시예에서, 로드 밸런서(24)는 가속기(26)와 함께 작동하는 경우에 최적화된다. 예를 들어, 로드 밸런서(24)는 테이블을 사용하게 되면, 가속기(26)의 사용에 기인하여 테이블 내에 소량의 엔트리만을 필요로 한다.
상술한 설명이 서버 팜과 함께 작동하는 로드 밸런서와 함께 작동하는 가속기에 관한 것이지만, 본 발명은 다른 구성으로 작동하는 로드 밸런서, 예를 들어, 캐시 재전송을 실행하는 로드 밸런스와 함께 이용될 수 있다. 따라서, 본 응용에 있어서, 용어 서버는 프록시 서버를 포함하는 것으로 해석된다.
본 발명은 가속기(26)의 작업을 실행하는 단일 유닛을 사용하는 것으로 제한되지 않음을 알아야 한다. 특히, 가속기(26)의 작업을 실행하는데 있어서 2개 이상의 유닛이 연계될 수 있다. 예를 들어, 제 1 유닛은 클라이언트에서 로드 밸런서(24)로 제공되는 패킷을 차단(intercept)하고, 제 2 유닛은 로드 밸런서(24)에서 서버(22)로 제공되는 패킷을 차단한다.
본 발명은 TCP/IP 프로토콜 스위트(suite)에 관련하여 설명되었지만, 본 발명의 몇몇 측면은 예를 들어, IPX, DECNET 및 ISO 프로토콜과 같은 다른 패킷 기반 전송 프로토콜과 관련하여 구현될 수 있음을 알아야 한다. 또한, 상술한 실시예가 이더넷 링크 층(Ethernet link layer)에 관한 것이지만, 본 발명은 프레임 릴레이, 점 대 점 모뎀(point to point modem), ISDN, ASDL 및 ATM을 포함하는 임의의 계층-2 프로토콜과 함께 이용될 수 있지만, 이들로 한정되지는 않는다.
상술한 방법이 단계의 순서 변경 및 이용된 정밀 구현의 변경을 포함하는 다양한 방법으로 변경될 수 있음을 알 수 있을 것이다. 또한, 상술한 방법 및 장치에 대한 설명은 방법을 실행하는 장치 및 이러한 장치를 이용하는 방법을 포함하는 것으로 해석되어야 한다.
본 발명은 예시적으로 설명되고 본 발명의 사상을 제한하지 않은 실시예에 대한 비 제한적인 상세한 설명으로 기술되었다. 하나의 실시예에 대해 설명한 특징 및/또는 단계가 다른 실시예와 함께 이용되며, 본 발명의 모든 실시예가 특정의 도면으로 도시되거나 실시예 중의 하나에 대해 설명된 특징 및/또는 단계 모두를 가지는 것은 아님을 알아야 한다. 당업자라면 설명된 실시예를 변형시킬 수 있을 것이다.
상술한 실시예 중 일부는 발명자에 의해 고려된 최적의 모드에 대한 것이며, 따라서 발명에 필수적인 것은 아니지만 예시적으로 설명된 구조, 동작 또는 구조 및 동작의 세부적인 사항을 포함함을 알 수 있을 것이다. 본 명세서에서 설명된 구조 및 동작은, 당해 기술 분야에서 알려진 동일한 기능을 수행하는 등가물에 의해 대체될 수 있으며, 심지어 구조 및 동작이 상이한 경우에도 그러하다. 따라서, 본 발명의 범주는 특허 청구 범위에서 이용된 소자 및 제한에 의해서만 제한된다. 특허 청구 범위에서 이용된 용어 "구비하다"와, "포함하다"와, "가지다" 및 그들의 켤레(conjugate)는 "포함하지만 그것으로 제한되는 것은 아님"을 의미한다.
본 발명에 따르면, 로드 밸런서 작동 가속 방법, 패킷 그룹과 각 종착지 서버 사이를 상호 연관시키는 리스트 내의 엔트리 생성 방법 및 로드 밸런스 가속기를 제공할 수 있다.
삭제
삭제
삭제
삭제
삭제

Claims (18)

  1. 가속기 스위치(accelerator switch)에 의해 로드 밸런서(load balancer)의 작동을 가속하는 방법-상기 로드 밸런서와 상기 가속 스위치는 서로 분리되어 있음-에 있어서,
    상기 가속기 스위치가 상기 로드 밸런서로 제공되는 패킷을 수신하는 단계-상기 로드 밸런서는 제 1 모드 및 제 2 모드로 작동하도록 구성되며, 상기 제 1 모드로 작동하는 상기 로드 밸런서는 전송하는 하나 이상의 패킷의 종착지 IP 어드레스와 종착지 포트 중 적어도 하나를 변경하며, 상기 제 2 모드로 작동하는 상기 로드 밸런서는 전송하는 하나 이상의 패킷의 적어도 소스 IP 어드레스 및 종착지 IP 어드레스를 변경함-와,
    상기 로드 밸런서에 의해 변경되지 않은 5개 미만의 패킷 파라미터와 패킷 그룹 리스트의 엔트리 내의 각 필드를 비교함으로써, 적어도 하나의 수신된 패킷에 대해 그 패킷이 상기 패킷 그룹 리스트의 엔트리와 일치하는지를 판정하는 단계와,
    상기 판정에 응답하여, 상기 가속기 스위치가 적어도 하나의 수신된 패킷을 종착지로 곧바로 전송하는 단계를 포함하는
    로드 밸런서 작동 가속 방법.
  2. 제 1 항에 있어서,
    상기 로드 밸런서로 제공되는 패킷을 수신하는 단계는, 클라이언트로부터 상기 로드 밸런서와 관련된 웹 사이트로 전달되는 패킷을 수신하는 단계를 포함하고,
    상기 적어도 하나의 수신된 패킷을 종착지로 곧바로 전송하는 단계는, 패킷을 상기 로드 밸런서를 통해 전달하지 않고, 상기 클라이언트로부터 상기 웹 사이트의 하나 이상의 서버로 전송하는 단계를 포함하는
    로드 밸런서 작동 가속 방법.
  3. 제 2 항에 있어서,
    패킷이 상기 패킷 그룹 리스트의 엔트리와 일치하는지를 판정하는 단계는, 상기 로드 밸런서가 제 1 모드로 작동하는 경우, 패킷의 소스 IP 어드레스와 소스 포트를 상기 리스트의 각 필드와 비교하는 단계를 포함하는
    로드 밸런서 작동 가속 방법.
  4. 청구항 4은(는) 설정등록료 납부시 포기되었습니다.
    제 2 항에 있어서,
    상기 비교된 파라미터는 종착지 어드레스를 포함하지 않는
    로드 밸런서 작동 가속 방법.
  5. 제 1 항에 있어서,
    상기 로드 밸런서로 제공되는 패킷을 수신하는 단계는, 서버로부터 클라이언트로 제공되는 패킷을 수신하는 단계를 포함하고,
    상기 적어도 하나의 수신된 패킷을 종착지로 곧바로 전송하는 단계는, 상기 패킷을 상기 로드 밸런서를 통해 전달하지 않고, 상기 서버로부터 상기 클라이언트로 전송하는 단계를 포함하는
    로드 밸런서 작동 가속 방법.
  6. 제 5 항에 있어서,
    패킷이 상기 패킷 그룹 리스트의 엔트리와 일치하는지를 판정하는 단계는, 상기 패킷의 종착지 포트를 상기 리스트의 필드와 비교하는 단계를 포함하는
    로드 밸런서 작동 가속 방법.
  7. 청구항 7은(는) 설정등록료 납부시 포기되었습니다.
    제 1 항에 있어서,
    상기 로드 밸런서는 반 NAT 모드(half Network Address Translation(NAT) mode) 또는 전 NAT 모드(full NAT mode)로 작동하는
    로드 밸런서 작동 가속 방법.
  8. 패킷 그룹과 각 종착지 서버 사이를 상호 연관시키는 리스트의 엔트리 생성 방법에 있어서,
    로드 밸런서로 제공되거나 또는 로드 밸런서로부터 제공되는 패킷을 가속기로 수신하는 단계- 상기 로드 밸런서는 상기 가속기와 분리되어 있으며, 제 1 모드 및 제 2 모드로 작동하도록 구성되고, 제 1 모드로 작동하는 상기 로드 밸런서는 전송하는 하나 이상의 패킷의 종착지 IP 어드레스와 종착지 포트 중 적어도 하나를 변경하며, 제 2 모드로 작동하는 상기 로드 밸런서는 전송하는 하나 이상의 패킷의 적어도 소스 IP 어드레스 및 종착지 IP 어드레스를 변경함-와,
    상기 수신된 패킷에 응답하여, 상기 로드 밸런서에 의해 변경되지 않은 파라메터를 포함하는 엔트리를 상기 종착지 서버의 리스트에 가속기에 의해 생성하는 단계를 포함하는
    리스트 내의 엔트리 생성 방법.
  9. 제 8 항에 있어서,
    패킷은 반 NAT(half Network Address Translation) 모드로 작동하는 로드 밸런서로 제공되거나 또는 로드 밸런서로부터 제공되는
    리스트 내의 엔트리 생성 방법.
  10. 청구항 10은(는) 설정등록료 납부시 포기되었습니다.
    제 8 항에 있어서,
    패킷은 전 NAT(full Network Address Translation 모드)로 작동하는 로드 밸런서로 제공되거나 또는 로드 밸런서로부터 제공되는
    리스트 내의 엔트리 생성 방법.
  11. 청구항 11은(는) 설정등록료 납부시 포기되었습니다.
    제 8 항에 있어서,
    상기 엔트리를 생성하는 단계는, 수신되었던 상기 수신 패킷 내의 정보만을 이용하여 상기 엔트리를 생성하는 단계를 포함하는
    리스트 내의 엔트리 생성 방법.
  12. 청구항 12은(는) 설정등록료 납부시 포기되었습니다.
    제 8 항에 있어서,
    상기 엔트리를 생성하는 단계는, 수신되었던 상기 수신 패킷에 포함되지 않은 정보를 이용하여 상기 엔트리를 생성하는 단계를 포함하는
    리스트 내의 엔트리 생성 방법.
  13. 제 12 항에 있어서,
    상기 엔트리를 생성하는 단계는, 이전에 가속기에 의해 수신된 상기 수신 패킷의 사본으로부터의 정보를 이용하여 상기 엔트리를 생성하는 단계를 포함하는
    리스트 내의 엔트리 생성 방법.
  14. 제 8 항에 있어서,
    상기 로드 밸런서에 의해 처리되는 웹 사이트에 제공되는 패킷을 상기 가속기에 의해 수신하는 단계와,
    상기 웹 사이트에 제공되는 패킷의 식별 정보 및 하나 이상의 파라미터 값을 임시 저장부에 저장하는 단계와,
    상기 로드 밸런서로부터의 제공된 패킷과 일치하는 엔트리를 상기 임시 저장부로부터 검색하는 단계를 더 포함하되,
    상기 패킷 그룹의 종착지 서버의 리스트 내에 엔트리를 생성하는 단계는 일치가 발견된 경우에만 실행되는
    리스트 내의 엔트리 생성 방법.
  15. 청구항 15은(는) 설정등록료 납부시 포기되었습니다.
    로드 밸런스 가속기로,
    상기 로드 밸런스 가속기와는 서로 분리되어 있는 로드 밸런서로 제공되는 패킷을 수신하는 입력 인터페이스와,
    패킷 그룹과 이들의 각 종착지 서버가 기입된 테이블과,
    상기 로드 밸런서에 제공되는 패킷 중 적어도 하나와 상기 테이블의 엔트리 중 적어도 하나를 비교하는 비교기와,
    일치하는 엔트리의 콘텐츠에 응답하여, 상기 비교기에 의해 일치가 발견되었던 패킷 중 적어도 하나를 서버로 곧바로 전송하는 전송 유닛 -상기 전송 유닛은 다수의 작동 모드로 작동할 수 있고, 상기 작동 모드 중 적어도 하나는 상기 전송된 패킷의 필드 중 적어도 하나를 변경하는 것을 포함함 과,
    상기 전송 유닛이 작동하는 모드가 어느 모드인지를 결정하는 제어기를 포함하는
    로드 밸런스 가속기.
  16. 청구항 16은(는) 설정등록료 납부시 포기되었습니다.
    제 15 항에 있어서,
    상기 전송 유닛은 슬라이싱(slicing)을 실행할 수 있는
    로드 밸런스 가속기.
  17. 청구항 17은(는) 설정등록료 납부시 포기되었습니다.
    제 15 항에 있어서,
    상기 제어기는 상기 로드 밸런서로 제공되거나 또는 상기 로드 밸런서로부터 제공되는 패킷의 콘텐츠에 기초하여 상기 전송 유닛의 작동 모드를 결정하는
    로드 밸런스 가속기.
  18. 청구항 18은(는) 설정등록료 납부시 포기되었습니다.
    제 15 항에 있어서,
    상기 테이블은 데이터 엔트리의 저장을 위해 상이한 필드 세트를 수용할 수 있는 물리적 엔트리를 가지는
    로드 밸런스 가속기.
KR1020010072186A 2000-11-21 2001-11-20 로드 밸런서 작동 가속 방법, 패킷 그룹과 각 종착지 서버 사이를 상호 연관시키는 리스트 내의 엔트리 생성 방법 및 로드 밸런스 가속기 KR100890015B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/718,143 2000-11-21
US09/718,143 US7739398B1 (en) 2000-11-21 2000-11-21 Dynamic load balancer

Publications (2)

Publication Number Publication Date
KR20020039615A KR20020039615A (ko) 2002-05-27
KR100890015B1 true KR100890015B1 (ko) 2009-03-25

Family

ID=24884984

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010072186A KR100890015B1 (ko) 2000-11-21 2001-11-20 로드 밸런서 작동 가속 방법, 패킷 그룹과 각 종착지 서버 사이를 상호 연관시키는 리스트 내의 엔트리 생성 방법 및 로드 밸런스 가속기

Country Status (9)

Country Link
US (1) US7739398B1 (ko)
EP (1) EP1209876B1 (ko)
JP (1) JP3717836B2 (ko)
KR (1) KR100890015B1 (ko)
CN (1) CN1354578A (ko)
BR (1) BR0105234A (ko)
CA (1) CA2359855A1 (ko)
IL (1) IL146599A0 (ko)
MX (1) MXPA01011889A (ko)

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020116397A1 (en) 2000-12-21 2002-08-22 Berg Mitchell T. Method and system for communicating an information packet through multiple router devices
US7287090B1 (en) * 2000-12-21 2007-10-23 Noatak Software, Llc Method and system for identifying a computing device in response to a request packet
US7418522B2 (en) * 2000-12-21 2008-08-26 Noatak Software Llc Method and system for communicating an information packet through multiple networks
US7430170B2 (en) * 2002-12-26 2008-09-30 Nokia Siemens Networks Oy System and method for implementing protocol stack across multiple chassis
JP4053967B2 (ja) * 2003-11-20 2008-02-27 株式会社日立コミュニケーションテクノロジー Vlanサーバ
US7370100B1 (en) * 2003-12-10 2008-05-06 Foundry Networks, Inc. Method and apparatus for load balancing based on packet header content
KR100983133B1 (ko) * 2004-02-04 2010-09-20 엘지에릭슨 주식회사 소프트스위치에서 응용 서버의 부하 밸런싱 방법
US7953114B2 (en) 2004-08-06 2011-05-31 Ipeak Networks Incorporated System and method for achieving accelerated throughput
US8437370B2 (en) 2011-02-04 2013-05-07 LiveQoS Inc. Methods for achieving target loss ratio
US8009696B2 (en) * 2004-08-06 2011-08-30 Ipeak Networks Incorporated System and method for achieving accelerated throughput
US9189307B2 (en) 2004-08-06 2015-11-17 LiveQoS Inc. Method of improving the performance of an access network for coupling user devices to an application server
US9647952B2 (en) 2004-08-06 2017-05-09 LiveQoS Inc. Network quality as a service
US20060248194A1 (en) * 2005-03-18 2006-11-02 Riverbed Technology, Inc. Connection forwarding
EP1793564A1 (en) * 2005-11-30 2007-06-06 Thomson Telecom Belgium Device and method to detect applications running on a local network for automatically performing the network address translation
US7675854B2 (en) 2006-02-21 2010-03-09 A10 Networks, Inc. System and method for an adaptive TCP SYN cookie with time validation
US8312507B2 (en) 2006-10-17 2012-11-13 A10 Networks, Inc. System and method to apply network traffic policy to an application session
US8584199B1 (en) 2006-10-17 2013-11-12 A10 Networks, Inc. System and method to apply a packet routing policy to an application session
US8868775B2 (en) * 2008-02-10 2014-10-21 Cisco Technology, Inc. Load balancing manipulation of packet flows within a transport conduit
US8996683B2 (en) * 2008-06-09 2015-03-31 Microsoft Technology Licensing, Llc Data center without structural bottlenecks
US8447881B2 (en) 2008-09-02 2013-05-21 Microsoft Corporation Load balancing for services
US8782160B2 (en) 2008-12-03 2014-07-15 Nec Corporation Cluster control system, cluster control method, and program
US8427938B2 (en) * 2009-05-14 2013-04-23 Avaya Inc. Virtual local area network server redundancy and failover to enable seamless mobility in the mobility domain
US8762460B2 (en) * 2009-07-13 2014-06-24 Qualcomm Incorporated Group communication sessions between session participants communicating via two or more different contact protocols within a wireless communications system
CN101997768B (zh) * 2009-08-21 2012-10-17 华为技术有限公司 一种上送地址解析协议报文的方法和装置
US9960967B2 (en) 2009-10-21 2018-05-01 A10 Networks, Inc. Determining an application delivery server based on geo-location information
US8219675B2 (en) * 2009-12-11 2012-07-10 Tektronix, Inc. System and method for correlating IP flows across network address translation firewalls
US8769156B2 (en) * 2009-12-23 2014-07-01 Citrix Systems, Inc. Systems and methods for maintaining transparent end to end cache redirection
US8549146B2 (en) * 2010-01-28 2013-10-01 Telefonaktiebolaget L M Ericsson (Publ) Stateless forwarding of load balanced packets
US9215275B2 (en) 2010-09-30 2015-12-15 A10 Networks, Inc. System and method to balance servers based on server load status
EP2442228A1 (en) * 2010-10-13 2012-04-18 Thomas Lippert A computer cluster arrangement for processing a computaton task and method for operation thereof
US8533285B2 (en) * 2010-12-01 2013-09-10 Cisco Technology, Inc. Directing data flows in data centers with clustering services
US9609052B2 (en) 2010-12-02 2017-03-28 A10 Networks, Inc. Distributing application traffic to servers based on dynamic service response time
US10951743B2 (en) 2011-02-04 2021-03-16 Adaptiv Networks Inc. Methods for achieving target loss ratio
US8717900B2 (en) 2011-02-07 2014-05-06 LivQoS Inc. Mechanisms to improve the transmission control protocol performance in wireless networks
US9590913B2 (en) 2011-02-07 2017-03-07 LiveQoS Inc. System and method for reducing bandwidth usage of a network
US8897154B2 (en) 2011-10-24 2014-11-25 A10 Networks, Inc. Combining stateless and stateful server load balancing
US9386088B2 (en) 2011-11-29 2016-07-05 A10 Networks, Inc. Accelerating service processing using fast path TCP
US9094364B2 (en) 2011-12-23 2015-07-28 A10 Networks, Inc. Methods to manage services over a service gateway
US10044582B2 (en) 2012-01-28 2018-08-07 A10 Networks, Inc. Generating secure name records
US9787585B2 (en) 2012-03-30 2017-10-10 Nec Corporation Distributed storage system, control apparatus, client terminal, load balancing method and program
US8782221B2 (en) 2012-07-05 2014-07-15 A10 Networks, Inc. Method to allocate buffer for TCP proxy session based on dynamic network conditions
US9843484B2 (en) 2012-09-25 2017-12-12 A10 Networks, Inc. Graceful scaling in software driven networks
US10021174B2 (en) 2012-09-25 2018-07-10 A10 Networks, Inc. Distributing service sessions
US10002141B2 (en) 2012-09-25 2018-06-19 A10 Networks, Inc. Distributed database in software driven networks
US9106561B2 (en) 2012-12-06 2015-08-11 A10 Networks, Inc. Configuration of a virtual service network
CN108027805B (zh) 2012-09-25 2021-12-21 A10网络股份有限公司 数据网络中的负载分发
US9338225B2 (en) 2012-12-06 2016-05-10 A10 Networks, Inc. Forwarding policies on a virtual service network
US9531846B2 (en) 2013-01-23 2016-12-27 A10 Networks, Inc. Reducing buffer usage for TCP proxy session based on delayed acknowledgement
US9900252B2 (en) 2013-03-08 2018-02-20 A10 Networks, Inc. Application delivery controller and global server load balancer
US9992107B2 (en) 2013-03-15 2018-06-05 A10 Networks, Inc. Processing data packets using a policy based network path
US10027761B2 (en) 2013-05-03 2018-07-17 A10 Networks, Inc. Facilitating a secure 3 party network session by a network device
US10038693B2 (en) 2013-05-03 2018-07-31 A10 Networks, Inc. Facilitating secure network traffic by an application delivery controller
US9419851B1 (en) * 2013-08-13 2016-08-16 Ca, Inc. Application transaction tracking across network boundaries
US10230770B2 (en) 2013-12-02 2019-03-12 A10 Networks, Inc. Network proxy layer for policy-based application proxies
US9942152B2 (en) 2014-03-25 2018-04-10 A10 Networks, Inc. Forwarding data packets using a service-based forwarding policy
US10020979B1 (en) 2014-03-25 2018-07-10 A10 Networks, Inc. Allocating resources in multi-core computing environments
US9942162B2 (en) 2014-03-31 2018-04-10 A10 Networks, Inc. Active application response delay time
US9806943B2 (en) 2014-04-24 2017-10-31 A10 Networks, Inc. Enabling planned upgrade/downgrade of network devices without impacting network sessions
US9906422B2 (en) 2014-05-16 2018-02-27 A10 Networks, Inc. Distributed system to determine a server's health
US9992229B2 (en) 2014-06-03 2018-06-05 A10 Networks, Inc. Programming a data network device using user defined scripts with licenses
US9986061B2 (en) 2014-06-03 2018-05-29 A10 Networks, Inc. Programming a data network device using user defined scripts
US10129122B2 (en) 2014-06-03 2018-11-13 A10 Networks, Inc. User defined objects for network devices
US10516608B2 (en) * 2014-09-11 2019-12-24 Oath Inc. Systems and methods for directly responding to distributed network traffic
US10581976B2 (en) 2015-08-12 2020-03-03 A10 Networks, Inc. Transmission control of protocol state exchange for dynamic stateful service insertion
US10243791B2 (en) 2015-08-13 2019-03-26 A10 Networks, Inc. Automated adjustment of subscriber policies
US10318288B2 (en) 2016-01-13 2019-06-11 A10 Networks, Inc. System and method to process a chain of network applications
US10389835B2 (en) 2017-01-10 2019-08-20 A10 Networks, Inc. Application aware systems and methods to process user loadable network applications
US10425472B2 (en) * 2017-01-17 2019-09-24 Microsoft Technology Licensing, Llc Hardware implemented load balancing
CN109412976B (zh) * 2017-08-17 2022-04-01 中国移动通信集团甘肃有限公司 数据传输方法、装置、系统、服务器、电子设备及介质
WO2019179634A1 (en) * 2018-03-23 2019-09-26 Nokia Solutions And Networks Oy Method and apparatus for dynamic network address translation
US11210216B2 (en) * 2019-06-25 2021-12-28 Intel Corporation Techniques to facilitate a hardware based table lookup
CN113438301B (zh) 2021-06-22 2023-06-06 北京百度网讯科技有限公司 网络负载均衡器、请求消息分配方法、程序产品及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0980167A1 (en) 1998-08-11 2000-02-16 Lucent Technologies Inc. Apparatus and methods for routerless layer 3 forwarding in a network

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5774660A (en) * 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network
US6157644A (en) * 1997-10-07 2000-12-05 Northern Telecom Limited Method and apparatus for accelerating OSI layer 3 routers
US6098093A (en) * 1998-03-19 2000-08-01 International Business Machines Corp. Maintaining sessions in a clustered server environment
US6327622B1 (en) * 1998-09-03 2001-12-04 Sun Microsystems, Inc. Load balancing in a network environment
US6389462B1 (en) * 1998-12-16 2002-05-14 Lucent Technologies Inc. Method and apparatus for transparently directing requests for web objects to proxy caches
EP1049307A1 (en) * 1999-04-29 2000-11-02 International Business Machines Corporation Method and system for dispatching client sessions within a cluster of servers connected to the World Wide Web
US6374300B2 (en) * 1999-07-15 2002-04-16 F5 Networks, Inc. Method and system for storing load balancing information with an HTTP cookie
US6980549B1 (en) * 2000-09-01 2005-12-27 Avaya Technology Corp. Policy enforcing switch

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0980167A1 (en) 1998-08-11 2000-02-16 Lucent Technologies Inc. Apparatus and methods for routerless layer 3 forwarding in a network

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DAMANI O P ET AL."ONE-IP: techniques for hosting a service on a cluster of machines" COMPUTER NETWORKS AND ISDN SYSTEMS, NORTH HOLLAND PUBLISHING. AMSTERDAM, NL, vol. 29, no.8-13, 1997-09-01
EGEVANG K. ET AL."The IP Network Address Translator(NAT)" RFC 1631, 1994-05

Also Published As

Publication number Publication date
JP2002232446A (ja) 2002-08-16
BR0105234A (pt) 2002-06-25
CN1354578A (zh) 2002-06-19
US7739398B1 (en) 2010-06-15
EP1209876A2 (en) 2002-05-29
MXPA01011889A (es) 2003-08-20
IL146599A0 (en) 2002-07-25
KR20020039615A (ko) 2002-05-27
CA2359855A1 (en) 2002-05-21
EP1209876B1 (en) 2012-11-21
EP1209876A3 (en) 2004-03-17
JP3717836B2 (ja) 2005-11-16

Similar Documents

Publication Publication Date Title
KR100890015B1 (ko) 로드 밸런서 작동 가속 방법, 패킷 그룹과 각 종착지 서버 사이를 상호 연관시키는 리스트 내의 엔트리 생성 방법 및 로드 밸런스 가속기
US10587492B2 (en) Method and apparatus for tracing paths in service function chains
US11277341B2 (en) Resilient segment routing service hunting with TCP session stickiness
EP3346661B1 (en) Path detection method and device
US20190007316A1 (en) Controller for software defined network
US20210036953A1 (en) Flow modification including shared context
US8817792B2 (en) Data forwarding method, data processing method, system and relevant devices
WO2017209932A1 (en) Link status monitoring based on packet loss detection
US10091099B2 (en) Session continuity in the presence of network address translation
WO2017209923A1 (en) Detecting source network address translation in a communication system
US10009282B2 (en) Self-protecting computer network router with queue resource manager
WO2017209943A1 (en) Reverse forwarding information base enforcement
WO2013134363A1 (en) Spoofing technique for transparent proxy caching
US10952264B2 (en) Persistent distribution of connectionless traffic supporting virtual connection migration
CN108429682A (zh) 一种网络传输链路的优化方法及系统
US20220210036A1 (en) Network Measurement System And Method, Device, And Storage Medium
CN107896182B (zh) 报文转发方法及装置
JP2002077257A (ja) ストリーム配信ネットワークサービス方法およびシステム
KR100920327B1 (ko) 서비스 처리 시스템
Sumadi et al. Hybrid NDP Proxy in OpenFlow Network
JP2004187208A (ja) ファイアウォール多重装置およびパケット振分け方法

Legal Events

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

Payment date: 20130221

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140221

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150226

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160222

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170309

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180308

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20200305

Year of fee payment: 12