KR20110119534A - 서버 오버로드에 따른 모듈 분산 및 tcp 플로우 리다이렉션을 통한 로드 밸런싱 - Google Patents

서버 오버로드에 따른 모듈 분산 및 tcp 플로우 리다이렉션을 통한 로드 밸런싱 Download PDF

Info

Publication number
KR20110119534A
KR20110119534A KR1020110029280A KR20110029280A KR20110119534A KR 20110119534 A KR20110119534 A KR 20110119534A KR 1020110029280 A KR1020110029280 A KR 1020110029280A KR 20110029280 A KR20110029280 A KR 20110029280A KR 20110119534 A KR20110119534 A KR 20110119534A
Authority
KR
South Korea
Prior art keywords
servers
ethernet switch
server
load balancing
packet
Prior art date
Application number
KR1020110029280A
Other languages
English (en)
Inventor
츠베텔리나 보이아노바 바테스틸리
개리 알. 쉬피
테리 리 넴즈2세
스티븐 웨이드 헌터
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 KR20110119534A publication Critical patent/KR20110119534A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1025Dynamic adaptation of the criteria on which the server selection is based

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

방법, 시스템 및/또는 컴퓨터 프로그램 제품이 IP 패킷 플로우들을 라우트한다. 이더넷 스위치가 로드 밸런싱 제어 엔진에 연결되는데, 이는 상기 이더넷 스위치로부터 논리적으로 분리된 로드 밸런싱 로직을 포함한다. 상기 이더넷 스위치(서버들로의 IP 패킷 플로우들을 라우트하는)는 IP 패킷 플로우를 수신한다. 상기 로드 밸런싱 제어 엔진은 상기 서버들이 그들의 워크로드들에 대해 밸런스되었는지를 결정한다. 상기 로드 밸런싱 제어 엔진이 상기 서버들이 밸런스라고 결정하는 것에 응답하여, 상기 이더넷 스위치가 상기 서버들의 워크로드들에 대해 그들로부터 피드백을 직접적으로 수신함이 없이, 상기 이더넷 스위치가 상기 서버들로 상기 IP 패킷 플로우를 라우트한다. 상기 로드 밸런싱 제어 엔진이 상기 서버들이 언밸런스라고 결정하는 것에 응답하여, 상기 로드 밸런싱 제어 엔진은 다른 서버들보다 상대적으로 덜 비지한 서버로 상기 IP 패킷 플로우를 다이렉트하도록 상기 이더넷 스위치를 지시한다.

Description

서버 오버로드에 따른 모듈 분산 및 TCP 플로우 리다이렉션을 통한 로드 밸런싱{LOAD-BALANCING VIA MODULUS DISTRIBUTION AND TCP FLOW REDIRECTION DUE TO SERVER OVERLOAD}
본 발명은 컴퓨터 분야에 관련된 것으로서, 특히 컴퓨터들사이에서 통신되는 IP 패킷 플로우에 관련된 것이다. 더욱 자세하게는, 본 발명은 IP 패킷 플로우의 방향의 동적 로드 밸런싱에 관련된 것이다.
방법, 시스템 및/또는 컴퓨터 프로그램 제품이 IP 패킷 플로우들(IP packet flows)을 라우트한다(route). 이더넷 스위치가 로드 밸런싱 제어 엔진에 연결되어 있고, 이는 상기 이더넷 스위치로부터 은폐된 IP 패킷 플로우 리다이렉션 로직을 포함한다. 상기 이더넷 스위치(서버들로 IP 패킷 플로우들을 라우트하는)가 IP 패킷 플로우를 수신한다. 상기 로드 밸런싱 제어 엔진이 상기 서버가 그들의 워크로드들에 대해 밸런스되어 있는지를 결정한다. 상기 로드 밸런싱 제어 엔진이 상기 서버들이 밸런스되어 있다고 결정하는 것에 응답하여, 서버들의 워크로드에 대해서 그들로부터 피드백을 수신함이 없이, 상기 이더넷 스위치가 어느 서버가 IP 패킷 플로우를 수신하는지를 결정하기 위해 자신의 로직을 이용한다. 상기 로드 밸런싱 제어 엔진이 서버들이 언밸런스되어 있다고 결정하는 것에 응답하여, 다른 서버들보다 상대적으로 덜 비지(busy)한 서버로 상기 IP 패킷 플로우를 리다이렉트하도록, 상기 로드 밸런싱 제어 엔진가 상기 이더넷 스위치를 지시한다.
도 1은 본 발명을 구현하는데 사용될 수 있는 바람직한 컴퓨터를 도시한다;
도 2는 본 발명의 일 실시예에 따라 서로다른 서버들로 다이렉트 되는 IP 패킷 플로우를 도시한다;
도 3은 본 발명의 일 실시예에 따라, 이더넷 스위치, 로드 밸런싱 제어 엔진 및 다수의 서버들간의 바람직한 관계를 도시한다;
도 4는 도 2-3에 도시된 이더넷 스위치와 로드 밸런싱 제어 엔진간의 바람직한 시그널링을 도시한다;
도 5는 IP 패킷 플로우들의 로드 밸런스를 위해 취해진 바람직한 단계들의 고레벨 흐름도이다; 그리고
도 6은 도 2-3에 도시된 이더넷 스위치와 로드 밸런싱 제어 엔진에 의해 수행되는 단계들의 흐름도이다.
본 기술분야에서 통상의 기술을 가진 자에 의해서 인식될 수 있는 바와 같이, 본 실시예들의 일부 또는 전부는 시스템, 방법 또는 컴퓨터 프로그램 제품으로 구현될 수 있다. 따라서, 본 실시예는 전체적으로 하드웨어 구현, 전체적으로 소프트웨어 구현(펌웨어, 상주 소프트웨어, 마이크로-코드 등), 또는 보통 "회로", "모듈" 또는 "시스템"으로 여기서 전체적으로 호칭될 수 있는 소프트웨어 및 하드웨어 형태를 조합하는 구현의 형태를 취할 수 있다. 또한, 본 실시예에 기술된 특징들 전부나 일부분은 내장된 컴퓨터-판독가능 프로그램 코드를 가지는 하나 또는 그 이상의 컴퓨터-판독가능 매체(들)에 포함된 컴퓨터 프로그램 제품의 형태를 취할 수 있다.
하나 또는 그 이상의 컴퓨터-판독가능 매체(들)의 조합들이 활용될 수 있다. 컴퓨터-판독가능 매체는 컴퓨터-판독가능 시그널 매체나 컴퓨터-판독가능 저장 매체일 수 있다. 컴퓨터-판독가능 저장 매체는 예를 들어(한정은 아님) 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 장치 또는 디바이스이거나 또는 이들의 적절한 조합일 수 있다. 상기 컴퓨터-판독가능 저장 매체의 더욱 자세한 예들로는(불완전 리스트임) 이하를 포함할 수 있다: 하나 또는 그 이상의 배선들을 가지는 전자 커넥션, 휴대용 컴퓨터 디스켓, 하드 디스크, 램(RAM), 롬(ROM), EPROM(erasable programmable read-only memory)이나 플래시 메모리, 광섬유, 휴대용 CD-ROM(compact disc read-only memory), 광 저장 디바이스, 자기 저장 디바이스, 또는 이들의 적절한 조합. 본 상세한 설명의 구문에서, 컴퓨터-판독가능 저장 매체는 명령 실행 시스템, 장지 또는 디바이스에 의해 또는 이와 연결하여 사용을 위한 프로그램을 포함 또는 저장할 수 있는 유형 매체일 수 있다.
컴퓨터-판독가능 시그널 매체는 예를 들어, 베이스밴드내 또는 전송파의 일부로서, 내장된 컴퓨터-판독가능 프로그램 코드를 가진 전파 데이터 시그널을 포함할 수 있다. 이러한 전파 신호는 전자기, 광학, 또는 이들의 적절한 조합을 포함하는(그러나 한정은 아님) 다양한 형태들을 취할 수 있다. 컴퓨터-판독가능 신호 매체는 컴퓨터-판독가능 저장 매체는 아니나, 명령 실행 시스템, 장치 또는 디바이스에 의해 또는 이와 연결하여 사용을 위해 프로그램을 통신,전파 또는 전송할 수 있는 컴퓨터-판독가능 매체일 수 있다.
컴퓨터-판독가능 매체상에 포함된 프로그램 코드는 무선, 유선, 광섬유 케이블, RF 등이나 이들의 적절한 조합을 포함하는(그러나 이에 한정은 아님) 적절한 매체를 이용해서 전송될 수 있다.
도면들을(특히 도 1) 참조로 하면, 본 실시예에 의해 활용될 수 있는, 바람직한 컴퓨터(102)의 블럭도가 도시되어 있다. 컴퓨터(102)는 시스템 버스(106)에 연결된 프로세서 유닛(104)을 포함한다. 프로세서 유닛(104)은 하나 또는 그 이상의 프로세서들을 활용할 수 있는데, 이들 각각은 하나 또는 그 이상의 코어들을 가진다. 또한 디스플레이(110)를 운용/지원하는 비디오 아답터(108)도 시스템 버스(106)에 연결되어 있다. 시스템 버스(106)는 버스 브릿지(112)를 통해 입력/출력(I/0) 버스(114)에 연결되어 있다. I/O 인터페이스(116)은 I/O 버스(114)에 연결된다. I/O 인터페이스(116)는 키보드(118), 마우스(120), 미디어 트레이(122)(예를 들어 CD-ROM 디바이스들, 멀티-미디어 인터페이스 등과 같은 저장 디바이스들을 포함할 수 있는) 및 프린터(124)를 포함하는 다양한 I/O 디바이스들에 통신을 제공한다(afford). I/O 인터페이스(116)에 연결된 포트들의 포맷이 컴퓨터 아키텍쳐의 분야에서 통상의 기술을 가진 자들에게 널리알려져 있으나, 바람직한 실시예에서 이러한 포트들 일부나 전부는 USB(universal serial bus) 포트들이다.
도시된 바와 같이, 일 실시예에서, 선택적으로 컴퓨터(102)는 네트워크 인터페이스(130)를 이용해서 네트워크를 통해(128) 통신을 할 수 있다. 네트워크(128)는 예를 들어 인터넷과 같은 외부 네트워크 또는 예를 들어 이더넷이나 가상 사설 네트워크(VPN)과 같은 내부 네트워크일 수 있다.
또한 하드 드라이브 인터페이스(132)는 시스템 버스(106)에 연결될 수 있다. 하드 드라이브 인터페이스(132)는 하드 드라이브(134)와 인터페이스한다. 바람직한 실시예에서, 하드 드라이브(134)는 시스템 메모리(136)를 상주시키는데(populates), 상기 메모리 또한 시스템 버스(106)에 연결되어 있다. 시스템 메모리는 컴퓨터(102)에서 휘발성 메모리의 가장 낮은 레벨로서 정의된다. 이러한 휘발성 메모리는 추가적으로 캐쉬 메모리, 레지스터 및 버퍼들을 포함하는(그러나 이에 한정은 아님) 휘발성 메모리(미도시)의 더 높은 레벨들을 포함한다. 시스템 메모리(136)에 상주하는 데이터는 컴퓨터(102)의 운영 시스템(OS, 138) 및 애플리케이션 프로그램(144)을 포함한다.
OS(138)는 리소스들(예를 들어 애플리케이션 프로그램들(144))에 명료한(transparent) 유저 엑세스를 제공하기 위한 쉘(140)을 포함한다. 일반적으로, 쉘(140)은 유저와 운영 시스템간에 인터프리터 및 인터페이스를 제공하는 프로그램이다. 더욱 상세하게는, 쉘(140)은 명령 라인 유저 인터페이스나 파일로부터 입력되는 명령들을 실행한다. 따라서 쉘(140)(또한 명령 프로세서로도 호칭)은 일반적으로 운영 시스템 소프트웨어 계층도에서 가장 높은 레벨이고, 명령 인터프리터로서 제공된다. 상기 쉘은 시스템 프롬프트를 제공하고, 키보드, 마우스나 다른 유저 입력 매체에 의해 입력되는 명령들을 인터프리터하고, 그리고 처리를 위해서 상기 인터프리터된 명령(들)을 운영시스템의 적절한 낮은 레벨들(예를 들어 커널(142))로 전송한다. 쉘(140)이 텍스트-기반, 라인-지향 유저 인터페이스이나, 본 실시예는 예를 들어 그래픽, 음성, 제스쳐 등의 다른 유저 인터페이스 모드들도 동일하게 잘 지원할 수 있다는 점에 유념해야 한다.
도시된 바와 같이, OS(138)는 또한 커널(142)도 포함하는데, 이는 메모리 관리, 프로세스 및 작업 관리, 디스크 관리 및 마우스와 키보드 관리를 포함하는, OS(138)의 다른 영역들 및 애플리케이션 프로그램들(144)에 의해 요청되는 필수 서비스들을 제공하는 것을 포함하는, OS(138)에 대한 저레벨 기능들을 포함한다.
애플리케이션 프로그램들(144)은 일 예로서 브라우저(146)로 표시된 렌더러(renderer)를 포함한다. 브라우저(146)는 월드 와이드 웹(WWW) 클라이언트(즉, 컴퓨터(102))가 HTTP(hypertext transfer protocol) 메시징을 이용해서 인터넷으로 네트워크 메시지들을 송수신하는 것을 가능케하는, 프로그램 모듈들 및 명령들을 포함하는데, 이에 따라 소프트웨어 배치 서버(150) 및 다른 기술된 컴퓨터 시스템들과의 통신을 가능케 한다.
또한 애플리케이션 프로그램들(144)은 IP 패킷 플로우 로드 밸런싱 프로그램(PFLBP, 148)을 포함하는데, 이는 실행될 때, 도 2-6에 기술된 프로세스들의 일부나 전부를 수행한다. 일 실시예에서, PFLBP(148)는 요구 기반으로 소프트웨어 배치 서버(150)로부터 다운로드 가능한데, 그리하여 코드의 유닛들이 오직 필요할 때만 다운로드 된다. 다른 실시예에서, PFLBP(148)에 의해 실행되는 프로세스들의 일부나 전부는 소프트웨어 배치 서버(150) 그 자체에 의해 수행되고, 이에 따라 컴퓨터(102)안에서 리소스들의 사용을 최소화한다.
컴퓨터(102)에 도시된 하드웨어 요소들은 한정하려는 의도는 아니며, 그보다는 본 실시예에 의해 필요한 필수 컴포넌트들을 강조하기 위해 도시한 것이다. 예를 들어, 컴퓨터(102)는 예를 들어 자기 카세트, DVD(digital versatile disk)들, 베르누이(Bernoulli) 카드리지 등과 같은 다른 메모리 저장 디바이스들을 포함할 수 있다. 이들 및 다른 변형들은 본 발명의 사상 및 권리범위안에 포함된다.
도 2를 참조하면, 본 발명의 일 실시예에 따른, IP 패킷 플로우(202)의 바람직한 로드 밸런싱이 도시된다. IP 패킷 플로우(202)는 공통 속성(property)을 공유하는 관련된 패킷들(미도시)의 시리즈들이다. 그러한 속성의 일 중요점은 상기 플로우들의 종점(endpoint)들이다. 일 실시예에서, 플로우는 동일한 5-튜플(tuple, 미도시)을 포함하는 해더를 가지는 모든 패킷들로서 정의된다. 상기 5-튜플은 소스 인터넷 프로토콜(IP) 주소, 소스 포트 번호, 목적지 IP 주소, 목적지 포트 번호 및 상기 패킷을 지시하고 제어하는데 어떤 프로토콜(즉, TCP(transmission control protocol), UDP(user datagram protocol) 등)이 사용되었는지를 나타내는 프로토콜 번호를 포함한다. 상기 패킷 해더내 5-튜플은 패킷들의 시리즈들이 동일한 IP 패킷 흐름(202)의 일부분이라는 것을 나타낸다. 예를 들어, IP 패킷 흐름(202)내 제1 패킷의 해더는, 새로운 TCP 연결을 개시하고 있는 것을 나타내는 "SYN" 필드를 포함할 수 있고, 동일한 5-튜플을 가진 이후의 패킷들은 동일한 TCP 연결 및 IP 패킷 흐름의 일부분이다.
대부분의 기본 동작에서, 이더넷 스위치(204)는 이더넷 프레임으로부터 목적지 맥 주소를 분석할(parse) 것이고, 그리고나서 예를 들어 TCAM(ternary content addressable memorym, 206)과 같은 로컬 메모리내 룩업 테이블을 체크하는데, 이는 IP 패킷 플로우 전송 로직(205)의 이용을 통해 상기 프레임을 라우트하도록 이들의 포트들 중 하나를 결정하기 위해서이다. IP 패킷 플로우 다이렉트 로직(205)은 하드웨어나 소프트웨어로 구현될 수 있다는 점에 유념해야 한다. 후술하는 바와 같이, 일 실시예에서, 상기 IP 패킷 플로우(202)는 서버들의 규정된 시퀀스로 전송될 것인데, 여기서 서버들의 규정된 시퀀스내 각 서버는 다수의 서버 그룹에서의 서로다른 서버 그룹으로부터 비롯된다(comes from). 따라서, 상기 IP 패킷 플로우(202)로부터의 패킷들은 이러한 패킷들이 적절하게 재전송되도록, 상기 IP 패킷 플로우 전송 로직(205)내의 재전송 로직(미도시)을 이용하여 서버들의 규정된 시퀀스로 라우트된다.
만약 이더넷 스위치(204)가 복수의 서버들간의 로드-분산을 위해 사용되면, 상기 스위치는 상기 패킷들의 IP 해더로부터 m-튜플(여기서 m은 상기 해더의 다른 필드들의 수보다 작거나 같은 상수)을 분석하고 이를 이들의 TCAM 규칙들과 비교한다. 스위치 용어들에서, 서버들 208a-n(여기서 "n"은 정수이다)에 직접적으로 부착되는 이더넷 스위치(204)의 포트들은 링크 집성 그룹(Link Aggregation Group: LAG)로 그룹핑된다. 만약 상기 TCAM 규칙들이 상기 패킷이 LAG로 전송도리 것이라고 규정하면, 이더넷 스위치(204)는 어느 출력포트가 상기 패킷을 라우트할지를 결정하기 위해, 자신의 빌트인 로드-분산 기능을 이용한다. 이에 따라 IP 패킷 플로우(202)에서의 각 패킷은, 상기 IP 패킷 전송 로직(205)을 이용해서 서버들(208a-n)로부터 선택된 적절한 서버로 다이렉트 된다. 상기 "적절한 서버"는 이더넷 스위치(204)의 로드-분산 기능에 의해 선택된 서버이다. 일 실시예에서, 이러한 정적 로드-분산 기능은 상기 다수의 서버들(208a-n)상의 해싱 함수, CRC(cyclic redundancy check) 및 모듈들을 활용할 수 있다.
상기 서버들(208a-n)로부터 이더넷 스위치(204)로의 직접적인 로드 상태 피드백은 없다는 점에 유념해라. 이더넷 스위치(204)는 패킷이 어느 포트로 라우트하는 지를 결정하기 위해 자신의 빌트-인 로드-분산 기능을 사용한다. 만약 이더넷 스위치(204)가 피드백을 수신하고, TCAM(206)내 각 플로우에 대한 전송 규칙들을 유지함으로써 상기 서버들로의 로드-밸런스를 한다면, 이는 비효율적인 대형 TCAM(206)을 필요로 할 것이고 성능을 지연시킨다. 따라서, 새로운 본 발명에 따라서, 상기 서버들(208a-n)은 로드 상태(210)를 로드 밸런싱 제어 엔진(212)에 보낸다(바람직하게는 연속해서 실시간으로). 이러한 로드 상태(210)는 얼마나 많은양의 리소스들(즉, 프로세싱 파워, 버스들, 네트워크 연결들 등)이 상기 서버들(208a-n) 각각에 사용될지(또는 사용가능하게 남아있는지)를 실시간으로 기술한다. 상기 로드 밸런싱 제어 엔진(212)은 상기 서버들(208a-n) 중 일부가 과도하게 사용되는지를 결정하기 위해서, 상기 로드 상태(210)를 프로세스한다. 만약 그렇다면, 상기 로브 밸런싱 제어 엔진(212)은 이더넷 스위치(204)에 상기 서버들(208a-n) 중 어느 것이 과사용되는지를 통지하고, 그리고 이더넷 스위치(204)는 이러한 과사용된 서버들로의 포트들의 상태를 "비지(busy)"로 표시한다. 다음으로, 만약 이더넷 스위치(204)가 이러한 "비지" 포트들 중 하나로 발송되려는 새로운 플로우를 수신하면(로드-분산 기능에 기초하여), 로드-밸런싱 결정을 위해 이를 상기 로드-밸런싱 제어 엔진(212)으로 대신해서 발송한다. 상기 로드-밸런싱 제어 엔진(212)은 이러한 플로우에 대해 새로운 서버를 선택하기 위해서, 상기 로드 상태(210) 정보를 이용한다. 그리고나서 상기 로드-밸런싱 제어 엔진(212)은 이러한 새로 선택된 서버로 이러한 플로우의 다음 패킷들을(미도시) 리다이렉트하도록, 이더넷 스위치(204)에 통지한다(이더넷 스위치 204의 TCAM내 5-튜플에 기초하여 규정된 규칙을 삽입함으로써). 이러한 플로우의 새로운 패킷들이 이더넷 스위치(204)에 도달할 때, TCAM(206)내 상기 리다이렉트 규칙이 이들을 상기 서버로 리다이렉트하도록 사용된다. 상기 5-튜플에 기초한 이러한 규정된 TCAM 규칙들은 상기 IP 패킷 플로우(202)가 이더넷 스위치(204)의 로드-분산 기능에 기초하여 어드레스된 서버로 발송되는 노멀 스위치 동작동안에는 유지되지 않는다는 점에 유념해라. 따라서, 모든 플로우의 상태가 아니고 동적으로 리다이렉트 되는 IP 패킷 플로우 상태를 저장하는데만 사용되기 때문에, 상기 TCAM(206)의 크기는 작게 유지된다. 또한 로드 밸런싱 제어 엔진(212)이 상기 IP 패킷 플로우(202)를 리다이렉트 하는데 로드 밸런싱 로직(213)을 활용한다는 점에 유념해라. 로드 밸런싱 로직(213)은 소프트웨어 및/또는 하드웨어 로직이고, 도 1에서 상술된 PFLBP(148)의 일부일 수 있다. 로드 밸런싱 로직(213)은 상기 이더넷 스위치(204)로부터 논리적으로 분리될 수 있다는 점에 유념해라. 더욱 상세하게는, 이더넷 스위치(204)가 상기 로드-밸런싱 제어 엔진(212)이 자신의 TCAM을 업데이트하도록 허용하는 스위치 스택 프로토콜을 사용하므로, 상기 로드-밸런싱 결정은 상기 이더넷 스위치(204)상에서 바로 수행되는 것이 아니라, 상기 로드 밸런싱 제어 엔진(212)내 로드 밸런싱 로직(213)에 떠넘겨진다(offloaded). 따라서, 이더넷 스위치(204)는, 상기 IP 패킷 플로우(202)를 리다이렉트하는데 사용되는 리다이렉트 알고리즘들의 사용 및/또는 존재를 포함하여, 어떻게 로드-밸런싱 결정이 이루어지는지 알지 못한다.
도 3을 참조로, 도 2에 도시된 것과 유사한 다른 프로세스/시스템의 추가적인 상세한 설명이 도시된다. 비-보안 네트워크(302)가 도 2에 도시된 이더넷 스위치(204)와 유사한 이더넷 스위치(304)로 IP 패킷 플로우를 전송한다. 상기 IP 패킷 플로우는 서버들(306a-h)(도 2에 도시된 서버들(208a-n)과 유사)의 세트내 하나 또는 그 이상의 서버들로 다이렉트된다. 서버들(306a-h)은 그룹1(308), 그룹2(310) 및 그룹3(312)인 3개의 그룹들로 분리된다. 일 실시예에서, 상기 서버들상의 애플리케이션들은 시퀀스로 배치되는데, 이에 따라 IP 패킷 플로우 트래픽이 방화벽(그룹1 -308) 그리고나서 침입 탐지 시스템(intrusion detection system, 그룹2-310)을 통해서, 그리고나서 안티 바이러스 애플리케이션(그룹3 -312)를 통해서 안내된다. 이에 따라, 그룹내 서버들을 가로지른 트래픽을 로드-밸런스하는 것에 더해서, 상기 이더넷 스위치(304)는 애플리케이션들의 규정된 시퀀스를 통해서 상기 트래픽을 안내해야 한다. 예를 들어, 상기 IP 패킷 플로우 트래픽은 그룹1, 그룹2 및 그리고나서 그룹3을 통해서 이동할 필요할 있을 수 있거나, 또는 오직 그룹1 및 그룹2 등을 통해서 이동할 필요가 있을 수도 있다. 그리고나서 상기 IP 패킷 플로우 트래픽은, 상기 서버들(306a-h)이 밸런스되었는지 또는 아닌지 여부에 따라, 상기 로드 밸런싱 제어 엔진(318)(도 2에 도시된 로드 밸런싱 제어 엔진(210)과 유사)을 이용하거나 또는 이용하지 않고, 보안 네트워크(316)로 내부 이더넷 스위치(314)를 통해서 다이렉트된다.
일 실시예에서, 이더넷 스위치(304)는 이하의 성능들/기능들을 가진다:
1. 서비스(서버들의 그룹, 즉 포트들의 그룹)로 또는 규정된 서버(포트)로 트래픽을 조정하는(steer) 규칙들을 지원하는 로직.
2. 다수의 서버들(링크 집성 그룹(LAG)과 같은 그룹(즉, 포트들의 그룹)으로서 스위치안에서 정의됨)로 이루어진 서비스.
3. 상기 패킷이 전송될, 정의된 서비스 LAG내 규정된 서버 포트를 선택하기 위해서, 트래픽 로드-분산의 몇몇 종류(예를 들어 해쉬/CRC/모듈들)를 지원하는 로직.
4. 각각의 포트 기반으로 설정가능한 플래그 "비지"를 지원하는 로직.
5. 다른 포트로 리다이렉트할 "비지" 포트행인 TCP SYN 패킷들의 재인식(recognition)을 지원하는 로직.
6. 스위칭 시스템내의 스위치 모듈들간의 스위치 프로토콜(예를 들어, 스택/스택된 스위치 프로토콜), 이는 또한 서비스/서버로 확장될 수 있다. 본 발명의 기술을 위해, 이러한 프로토콜은 스택 스위치 프로토콜로서 호칭될 것이다. 상기 프로토콜 성능들은 바람직하게는 이하를 포함한다:
a. 스위치 모듈로 직접적으로 또는 스위치 시스템 제어 포인트와 통신에 의해서, 스위치(스위치 시스템) 변경을 수행하기 위한 기능. 변경들은 포트마다 TCAM 규칙들을 설정/재설정 및 "비지" 플래그를 설정을 포함하도록 지원됨.
b. 규정된 스위치 출력 포트로(서버로) 다이렉트된 상기 스위칭 시스템으로 패킷들을 전송하기 위한 기능.
c. 상기 패킷에 대한 목표 스위치 출력 포트를 포함하는 보조 정보와 선택적으로 상기 패킷의 마지막 스위치 입력 포트(예를 들어 규칙에서)와 같은 다른 정보를 가지고 스위치 시스템과 서버사이에서 패킷을 발송하기 위한 기능.
7. 5-튜플 및 (일반적으로) 스위치 입력 포트들에 기초하여 패킷들을 리다이렉트하는 리다이렉션 테이블. 상기 리다이렉션 테이블내 엔트리들은 상기 스택 스위치 프로토콜상에서 생성될(및 삭제) 수 있다. 주의: 상기 리다이렉션 테이블은 상기 스위치 규칙들 TACM에서 구현될 수 있는데, 이러한 리다이렉션 규칙들은 상기 TCAM의 선행 부분에 더 높은 순위로 넣을 수 있다.
도 4를 참조로, 바람직한 로드 밸런싱 제어 엔진(418)(도 2 및 3에서 상술된 로드 밸런싱 제어 엔진(318) 및 로드 밸런싱 제어 엔진(212)과 유사)은 스택 스위치 프로토콜을 이용해서 스위칭 시스템(404)(도 2 및 3에서 상술된 이더넷 스위치(204) 및 이더넷 스위치(304)와 유사)에 연결된다.
이러한 링크는 이하를 가능하게 한다:
1. 로드 밸런싱 제어 엔진(418)이 스위치 포트의 플래그를 "비지"로서 설정/미설정하는 것을(서버들은 로드 밸런싱 제어 엔진(418)에 의해 모니터링 됨);
2. 상기 패킷이 "비지" 플래그 설정을 가진 포트로 다이렉트 될 때, 스위칭 시스템(404)이 SYN 플래그 설정과 함께 TCP 패킷을 상기 로드 밸런싱 제어 엔진(418)으로 발송하는 것을;
3. 할당된(assigned) 대체 서버(서비스 그룹안에서)로 플로우의 패킷들을 리다이렉트하기 위해, 로드 밸런싱 제어 엔진(418)이 스위치 시스템의 TCAM내 규칙을 설정하는 것을; 그리고
4. 로드 밸런싱 제어 엔진(418)이 새로 할당된 "비지가 아닌" 서버 포트로 조정하면서, 스위칭 시스템(404)으로 TCP SYN 패킷을 라우트하는 것을.
도 5를 참조하면, 로드 밸런스 IP 패킷 플로우들을 취하는 바람직한 단계들의 고레벨 흐름도가 도시된다. 개시자 블럭(502)이 로드 밸런싱 제어 엔진으로의 이더넷 스위치의 연결에 응답한다. 일 실시예에서, 상기 로드 밸런싱 제어 엔진내의 IP 패킷 플로우 리다이렉션 로직은 이더넷 스위치로부터 은폐되고, 이에 따라 상기 이더넷 스위치는 로드 밸런싱이 수행 여부 및 방법을 결정하는 부담을 지지 않는다. 상기 용어 "은폐(hiddem)"는 상기 이더넷 스위치가 상기 IP 패킷 플로우 리다이렉션 로직에 직접 엑세스할 수 없다는 것 또는 심지어 논리적으로 알 수 없다는 것을 의미한다. 따라서, 여기서 기술된 상기 이더넷 스위치 및 TCAM은 작고 관리가능하게 남아있는다. 블럭 504에 도시된 바와 같이, 서버들 및/또는 다른 프로세싱/라우팅 디바이스들로 IP 패킷 플로우들을 라우트하는 상기 이더넷 스위치가, IP 패킷 플로우를 수신한다. 상기 로드 밸런싱 제어 엔진이, 상기 서버가 그들의 워크로드에 대해 밸런스되었는지를 결정한다. 만약 상기 서버들이 밸런스되었다면(쿼리 블록 506), 상기 스위치는 이들의 TCAM 규칙들 및 로드-분산 기능에 기초하여 서버들로 상기 IP 패킷 플로우를 라우트하고(블록 508), 상기 프로세스는 종료된다(종료 블록 510). 그러나, 만약 상기 로드 밸런싱 제어 엔진이 상기 서버들이 언밸런스라고 결정하면, 상기 로드 밸런싱 제어 엔진내의 IP 패킷 플로우 로드-밸런싱 로직은, 상기 IP 패킷 플로우를 상기 IP 패킷 플로우가 원래 어드레스된 서버보다 상대적으로 덜 붐비는(busy) 서버로 리다이렉트하도록, 상기 스위치에 지시한다(블록 512).
여기서 기술된 바와 같이, 일 실시예에서, 상기 IP 패킷 플로우가 다이렉트된 곳의 기록은, 오직 서버들이 그들의 워크로드에 대해 언밸런스됨에 따라 리다이렉트된 IP 패킷 플로우들에 대해서만 저장된다. 일 실시예에서, IP 패킷 플로우들을 다이렉팅 및 리다이렉하는 것에 관한 규칙들은, 스위치내 메모리에 저장되는데, 이 스위치는 이더넷 스위치일 수 있다. 도 3에 상술된 바와 같이, 상기 서버들은 다수의 서버 그룹들로 이루어져 있을 수 있고, 또한 이 경우 상기 방법은 규정된 서버들의 시퀀스로 상기 IP 패킷 플로우를 리다이렉팅하는 단계를 포함할 수 있는데, 여기서 상기 서버들의 규정된 시퀀스내 각 서버는 상기 다수의 서버 그룹의 서로다른 서버 그룹으로부터 나올 수 있다. 도 3의 일 실시예에서 기술한 바와 같이, 상기 다수의 서버 그룹들은 방화벽 서버 그룹, 침입 탐지 시스템(intrusion detection system: IDS) 서버 그룹 및 안티 바이러스 애플리케이션 서버 그룹으로 이루어지고, 상기 IP 패킷 플로우는 방화벽 서버 그룹, IDS 서버 그룹 및 안티 바이러스 애플리케이션 서버 그룹 각각으로부터 선택된 서버를 순차적으로 지나가도록, 리다이렉트된다.
도 6을 참조로, 스위치(602)(도 2 및 3에서 상술된 이더넷 스위치(204) 및 이더넷 스위치(304)와 유사) 및 로드-밸런싱 제어기(604)(도 2 및 도 3에서 상술된 로드 밸런싱 제어 엔진(212)와 로드 밸런싱 제어 엔진(318)과 유사)에 의해 수행되는 바람직한 기능들의 추가적인 설명이 도시된다. 도 6에 도시된 바와 같이, 스위치(602)가 패킷을 수신한다(블록 606). 쿼리가 선택적으로 상기 패킷이 IP 단편화 패킷인지 여부에 대해 이루어진다(쿼리 블럭 608). 즉, IP 버젼 4에서, 만약 원래의 패킷 크기보다 더 작은 최대 전송 단위(MTU)를 가진 링크를 지나가는 일이 생기면, 패킷은 자신의 경로를 따른 중계 라우터들에 의해서 다수의 단편들(fragments)로 분리될 수 있다. 만약 그렇다면, 오직 상기 제1/리드 단편의 해더만이 패킷 및 단편들에 라우트하는 전체 5-튜플을 포함하고, 단편들이 무질서하게(out of order) 도착할 수 있는데, 이에 따라 적절하게 처리될 필요가 있다(블럭 610). 그렇지 않다면, 상기 패킷의 해더의 5-튜플이 분석된다(블럭 612). 만약 이러한 5-튜플에 대한 규정된 출력 포트에 대해 TCAM에 엔트리가 있다면(쿼리 블럭 614), 상기 패킷은 목표 스위치 블럭으로 라우트된다(블럭 616). 또는, 상기 패킷이 다이렉트 될 서비스/LAG(링크 집성 그룹)을 선택하기 위해, 상기 스위치(620)가 규칙 조정(또는 OSI 7-레이어 모델의 2/3 레이어)을 수행한다. 상기 규칙들은 입력 포트들 및 다양한 해더 요소들상에 매치한다(match on). 일 실시예에서, 상기 스위치(602)는 규정된 포트를 선택하기 위해 다양한 해더 요소들을 해시하고, 선택적으로 해더 해쉬의 결과에 CRC를 적용하고, 그리고 결과 값에 모듈을 적용함으로써, 트래픽 로드-분산 기능을 수행한다(블럭 618). 만약 상기 선택된 출력 포트가 "비지" 플래그 세트를 가지고(쿼리 블럭 620) 상기 패킷이 TCP SYN(또는 SYN ACK)이면(쿼리 블럭 622에서 쿼리된 바와 같이), 상기 패킷은 스택 스위치 프로토콜을 통해서 로드 밸런싱 제어기(604)에 부착된 스위치 포트로 리다이렉트된다(블럭 624). 즉, 스택 스위치 프로토콜의 이용해서, 상기 스위치(602)가 패킷, 목표된 "비지" 출력 포트 식별자 및 패킷의 유력한 스위치 입력 포트를 로드 밸런싱 제어기(604)로 발송한다. 그렇지 않고, 만약 SYN 플래그가 설정되지 않으면, 상기 패킷은 포트의 상태에 관계없이 로드-분산 결과 포트로 전송된다(블럭 626). 이는 진행중인 플로우들이 리다이렉트 될 수 없도록 한다. 리다이렉션은 오직 새로운 TCP 플로우의 시작에서만(즉 SYN 패킷의 감지) 가능하다.
IP 패킷 플로우를 리다이렉트하는 기능을 수행하기 위해, 상기 로드 밸런싱 제어기(604)는 이하의 스위치(602) 구성 요소들에 관한 정보를 이용한다:
- 규칙 정의(Rules Definitions) : 로드 밸런싱 제어기(604)가 로드 밸런싱을 위해 스위치(602)로 라우트된 패킷에 대한 규칙 정의를 이용함으로써 상기 스위치(602)에 대해서 패킷 분류를 수행한다. 패킷 분류는 "비지" 서버로 상기 패킷을 라우트하는 규칙을 결정하는데 사용된다. 상기 스위치(602)의 규칙 정의는 로드 밸런싱 제어기(604)에서 그들의 사용을 최적화하는 그러한 방식으로 컴파일될 수 있다.
- 서비스 그룹에 대한 LAG 정의: 서비스 그룹들의 상기 스위치(602)의 LAG 정의는 로드 밸런싱 제어기(604)내 서비스 그룹 정의(들)과 동기화된다. 로드 밸런싱 제어기(604)는 각 서비스 그룹내 어느 서버들이 각각의 서비스 그룹에 있는지 그리고 어느 스위치(시스템)(602) 포트가 어느 서버에 연결되어 있는지에 관한 정의를 가진다. 스위치(602)의 LAG 정의들 및 서버들에 연결된 스위치 포트는, 로드 밸런싱 제어기(604)내 그들의 사용을 최적화하기 위해서 그러한 식으로, 서비스 그룹 정의 테이블로 입력될 수 있다.
도 6의 플로우 로직에 도시된 바와 같이, 상기 로드 밸런싱 제어기(604)는 상기 스택 스위치 프로토콜을 통해서 스위치(602)로부터 TCP SYN/SYN ACK 패킷을 수신하고, 그리고 (스택 스위치 프로토콜을 통해서) 출력 포트가 할당된 패킷으로부터 상기 목표 서비스를 결정한다(블럭 628). 만약 상기 수신된 패킷이 SYN ACK이고(쿼리 블럭 630) 리버스 플로우가 이러한 목표 서비스에 대한 리다이렉션 테이블에 이미 설정되어 있다면(쿼리 블럭 632), 상기 리다이렉션 테이블에서 식별된 대체 서버가 사용되고, 그리고 상기 목표 LAG 정의에서의 서버 포트가 식별된다. 상기 로드 밸런싱 제어기(604)내 리다이렉션 테이블은 모든 5-튜플 리다이렉션 규칙들을 포함한다는 것을 유념해라. 각 규칙은 이하의 3가지 필드들[5-튜플, 출력 포트, 입력 포트(들)]을 가져야 한다. 리버스 플로우 체크는 오직 비연결 종료 서비스(terminating service)에만 적용되는데, 이는 상기 서비스를 통해서 리버스 플로우를 식별하기 때문이다.
만약 상기 수신된 패킷이 SYN ACK이고(쿼리 블럭 630), 리다이렉션 테이블에 리버스 플로우가 없다면(쿼리 블럭 632), 상기 패킷은 원래 할당된 출력 포트로 다이렉트되는 패킷과 함께 스택 스위치 프로토콜을 통해서 스위치(602)로 발송된다(블럭 636).
만약 패킷이 SYN이면(쿼리 블럭 630), 로드 밸런싱 알고리즘이 패킷 플로우를 다이렉트하기 위해, 목표 LAG(서비스)안에서 대체 서버 및 출력 포트를 결정하는데 사용된다(블럭 638). 상기 서비스안에서 대체 서버를 선택하는데 사용되는 로드 밸런싱 알고리즘은 그 무엇이라도 무방하며, 서비스에 따라(동일한 시스템안에서) 변경될 수 있다는 점에 유념해라.
상기 패킷의 입력 포트에 관한 정보를 이용하여, 스위치(602)의 TCAM내 어느 규칙이, 상기 패킷이 상기 할당된 출력 포트로 조정될지를 유발하는지에 관한 결정이 이루어진다(블럭 640). 블럭 642에 도시된 바와 같이, 리다이렉션 규칙은 패킷의 5-튜플과 선택된 대체 서버의 새로운 출력 포트를 매치하면서, 위에서 식별된 규칙으로부터 입력 포트들에 기초하여 생성된다. 블럭 644에 도시된 바와 같이, 상기 새로운 리다이렉트 규칙이, 선택적으로 프로시져의 더 높은 순서에 기초하여 스위치(602)의 시스템 TCAM으로 삽입된다. 그리고나서 상기 패킷은 상기 스택 스위치 프로토콜을 통해 스위치(602)안에서 새롭게 선택된 스위치 출력 포트로 다이렉트된다(블럭 646).
다른 실시예에서, 만약 오직 하나의 서비스만 있다면(즉, 애플리케이션이 순서화될 필요가 없다면), 더 간단한 스키마가 사용될 수 있다. 이러한 실시예에서, 상기 리다이렉트 규칙은, 상기 선택된 서버로의 포트로 목표된 모든 스위치 입력 포트들을 가진 패킷 5-튜플을 사용함으로써, 수신된 패킷으로부터 바로 생성될 수 있다.
로드 밸런싱 제어기내 비동기 프로세스가, 스택 스위치 프로토콜을 이용해서 스위치 시스템의 스위치 포트들상에 '비지' 플래그들의 설정 및 재설정 하는것을 관리한다. 하나 또는 그 이상의 이러한 메트릭들의 한계치에 기초하여 "비지" 플래그의 설정을 트리거하는 서비스안에서 서버들에 관련된 성능 메트릭들의 몇몇 세트를 모니터링함으로써, 상기 로드 밸런싱이 완료된다. 추가적으로, 로드가 "비지" 플래그들의 적절한 조작에 의해 증가됨에 따라, 다수의 한계치의 사용이 서비스에 걸쳐 성능을 최적화하는데 사용될 수 있다. 예를 들어, 모든 서버들이 제1 성능 한계치 레벨에 도달하면, 모든 "비지" 플래그들이 재설정될 것이고 그리고나서 서버가 다음 성능 한계치 레벨에 도달할 때만 재설정될 것이다. 그러나, 다수의 한계치 레벨들의 사용은 더 많은 리다이렉션 규칙들과 이에 따른 상기 스위치 규칙 공간내(TCAM) 더 많은 공간을 필요로한다.
본 발명은 새로운 TCP 커넥션의 시작을 식별하기 위해 SYN 패킷들을 이용해서 기술되었다는 점에 유념해야 한다. 이에 따라, SYN 공격(즉, 각각 SYN 컴포넌트를 가지는 과도한 패킷들의 식별)과 관련된 메커니즘들이 활용되어야만 한다.
미사용된 5-튜플 리다이렉션 규칙들은, 더 이상 필요치 않을 때(즉, IP 패킷 플로우가 완전히 수신되었고 리다이렉트 되었을 때 등), 로드 밸런싱 제어기 및 스위치 TACM상의 리다이렉션 테이블로부터 삭제된다. 스위치 통계표(statistics)가 일정 시간이상 리다이렉션 규칙의 사용이 부족한지를 결정하는데 사용될 수 있다.
여기서 기술된 바와 같이, 본 발명은 스위칭 시스템이 적절한 TCAM 크기를 유지하면서 높은 데이터률에서 정확하고, 매끄러운 로드-밸런싱 성능을 제공하는 것을 허용하고, 여전히 애플리케이션 그룹들의 시퀀스를 통해서 트래픽을 다이렉트한다. 본 발명은 대부분의 트래픽이 정적 규칙들을 이용하여 스위치 하드웨어를 통해 분산된 로드가 되는 것을 허용하는 반면, 상기 로드 밸런싱 제어기 서비스는 덜 비지한 서버들로 규정된 새로운 플로우들을 리다이렉트하도록 상기 스위치가 특수 규칙을 사용하도록 유발하는 것에 기초해 예외시에 사용된다.
따라서, 여기서 기술된것은 동적, 정확한 로드-밸런싱과 조합하여 스위치에서 제공되는 트래픽 로드-분산 기능(예를 들어 해시/CRC/모듈들)을 이용하는 방법이다. 상기 로드-밸런싱은, 스위치의 로드-분산 기능 때문에 로드 외곡(load skew)이 서버들을 거쳐서 발생할 때, 새로운 TCP 플로우들의 리다이렉션을 통해 획득된다. 로드 밸런싱 제어 엔진은, 다른 더 적은 비지 서버로 정적 스위치 로드-분산 기능에 의해 상기 스위치가 비지 서버로 목표된 새로운 TCP 플로우들을 우회시키도록(divert) 함으로써, 로드-밸런싱을 수행한다. 비지 서버는 특정 성능 메트릭을 충족하지 않는 서버이다. 선택된 로드-밸런스된 플로우들에 대해, 상기 스위치가 서버 포트들에 직적적으로 패킷들을 라우트하도록 설정되고, 이에 따라 상기 스위치 로드-분산 기능을 우회한다. 상기 로드 밸런싱 제어 엔진이 서버들을 모니터링하고, 서버가 성능 한계치를 초과할 때, 다른, 덜 비지한 서버로 선택된 플로우들(해더 5-튜플)을 리다이렉트하도록 스위치의 TCAM내 규칙들을 설정한다. 이는 상기 패킷이 상기 스위치내 다른 규칙들에 의해서 다이렉트 되는 다른 서비스들의 시퀀스에 영향을 주지 않고 이뤄진다. 따라서, 상기 스위치 로드-분산 기능은 데이터 평면 트래픽(data plane traffic)의 대부분을 다이렉트한다. 서버가 비지될 때에만, 로드-밸런싱 플로우 리다이렌션이 TCAM내 규정된 5-튜플을 통해 일어난다. 이는 TCAM의 크기를 적절하게 유지하면서 매끄럽고, 정확한 로드-밸런싱을 제공한다. 로드 밸런싱 제어 엔진은 플레인 트래픽과 오직 비지 서버들로 향하는 TCP SYN 패킷들을 다룬다.
여기서 사용된 용어는 단지 특정 실시예들을 기술하여는 목적이고 본 내용을 제한하려는 의도는 아니다. 여기서 사용된 바와 같이, 단수 형태 "한", "하나" 및 "상기"는 구문에서 명확하게 따로 지시하지 않는한, 복수의 형태들로 포함하려는 의도이다. 용어들 "포함하는" 및/또는 "포함"은 본 상세한 설명에서 사용될 때, 나열된 특징, 숫자, 단계, 동작, 요소들 및/또는 컴포넌트들의 존재를 규정하려는 의도이고, 하나 또는 그 이상의 특징, 숫자, 단계, 동작, 요소들, 컴포넌트들 및/또는 이들의 그룹들의 존재나 추가를 제한하려는 의도는 아니다.
이하의 청구항들의 모든 수단들이나 기능형 단계 요소들에 대응하는 구조들, 재료들, 동작들 및 균등물들은 특별히 청구된 바와 같이, 다른 청구된 요소들과 조합된 기능을 수행하기 위한 구조, 재료 또는 동작을 포함하려는 의도이다. 본 발명의 다양한 실시예들의 기술은 도시 및 기술을 위한 목적으로 개시되어 있고, 개시된 형태로 본 발명을 한정하거나 제한하려는 의도는 아니다. 많은 수정이나 변형들이 본 발명의 사상이나 기술범위에서 벗어남이 없이도 본 기술분야에서 통상의 기술을 가진 자들에게 용이할 것이다. 본 실시예는 본 발명의 사상 및 응용을 가장 잘 설명하기 위해서, 그리고 본 기술분야에서 통상의 기술을 가진 자들이 특정 사용 방법에 적절하도록 다양한 변형을 한 다양한 실시예들에 대해서 본 발명을 이해하도록 하기 위해서, 선택되고 기술되었다.
따라서 본 명세서의 발명의 기술된 실시예들이 상세하게 그리고 도시된 실시예들을 참조로 기술되었으며, 수정 및 변형들이 첨부된 청구항들에 정의된 발명의 권리범위를 벗어남이 없이도 가능하다는 점이 명백하다.

Claims (15)

  1. IP 패킷 플로우들(IP packet flows)을 라우팅(routing)하는 방법에 있어서,
    이더넷 스위치를 로드 밸런싱 제어 엔진에 연결하는 단계;
    상기 로드 밸런싱 제어 엔진내에 로드 밸런싱 로직을, 상기 이더넷 스위치로부터 은폐되도록 구성하는 단계;
    상기 이더넷 스위치가 IP 패킷 플로우를 수신하는 단계 -상기 이더넷 스위치는 서버들로 IP 패킷 플로우의 패킷들을 라우트함-;
    상기 로드 밸런싱 제어 엔진이 상기 서버들이 그들의 활용에 대해 밸런스되었는지를 결정하는 단계;
    상기 로드 밸런싱 제어 엔진이 상기 서버들이 밸런스되었다고 결정하는 것에 응답하여, 상기 이더넷 스위치가 서버들의 활용에 관하여 그들로부터 피드백을 직접적으로 수신함이 없이, 상기 이더넷 스위치가 서버들로 상기 IP 패킷 플로우를 라우팅하는 단계; 및
    상기 로드 밸런싱 제어 엔진이 상기 서버들이 언밸런스되었다고 결정하는 것에 응답하여, 상기 로드 밸런싱 제어 엔진이 다른 서버들보다 상대적으로 덜 비지(busy)한 서버로 상기 IP 패킷 플로우를 리다이렉트(redirect)하도록 상기 이더넷 스위치를 지시하는 단계;를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 IP 패킷 플로우가 다이렉트되는 위치의 기록은, 오직 상기 서버들이 그들의 워크로드들이 언밸러스 되어 있다는 것에 응답하여 리다이렉트 된 IP 패킷 플로우들에 대해서만 상기 이더넷 스위치내 메모리에 저장되는
    방법.
  3. 제1항에 있어서,
    IP 패킷 플로우들을 다이렉트 및 리다이렉트 하는 규칙들은 상기 이더넷 스위치내 메모리에 저장되는
    방법.
  4. 제1항에 있어서,
    상기 서버들은 다수의 서버 그룹들을 포함하고,
    상기 방법은
    서버들의 규정된 시퀀스로 상기 IP 패킷 플로우를 리다이렉팅하는 단계를 더 포함하되,
    상기 서버들의 규정된 시퀀스내 각 서버는 상기 다수의 서버 그룹들에서의 서로다른 서버 그룹으로부터 나오는
    방법.
  5. 제4항에 있어서,
    상기 다수의 서버 그룹들은
    방화벽 서버 그룹, 침입 탐지 시스템(intrusion detection system: IDS) 서버 그룹, 및 안티 바이러스 애플리케이션 서버 그룹을 포함하고,
    상기 IP 패킷 플로우는
    상기 방화벽 서버 그룹, 상기 IDS 서버 그룹 및 상기 안티 바이러스 애플리케이션 서버 그룹 각각으로부터 선택된 서버를 순차적으로 거쳐가도록 리다이렉트 되는
    방법.
  6. 로드 밸런싱 제어 엔진에 연결된 이더넷 스위치에 있어서,
    상기 로드 밸런싱 제어 엔진내의 로드 밸런싱 로직은 상기 이더넷 스위치로부터 논리적으로 격리되어 있으며,
    상기 이더넷 스위치는
    인터넷 프로토콜(IP) 패킷 플로우를 수신하기 위한 부분;
    서버들로 IP 패킷 플로우들을 라우팅하기 위한 명령들을 저장하기 위한 메모리; 및
    상기 로드 밸런싱 제어 엔진이 상기 서버들이 밸런스되어 있다고 결정하는 것에 응답하여, 상기 서버들의 워크로드들에 관해 그들로부터 직접적인 피드백의 수신없이 상기 서버들로 상기 IP 패킷 플로우를 라우팅하고, 그리고 상기 로드 밸런싱 제어 엔진이 상기 서버들이 언밸랜스되어 있다고 결정하는 것에 응답하여, 다른 서버들보다 상대적으로 덜 비지(busy)한 서버로 상기 IP 패킷 플로우를 재라우팅하기 위한 IP 패킷 플로우 다이렉팅 로직(IP packet flow directing logic)를 포함하는
    이더넷 스위치.
  7. 제6항에 있어서,
    상기 IP 패킷 플로우가 다이렉트되는 위치의 기록은
    오직 상기 서버들이 그들의 워크로드에 대해 언밸런스되었다는 것에 응답하여 리다이렉트 된 IP 패킷 플로우들에 대해서만 저장되는
    이더넷 스위치.
  8. 제6항에 있어서,
    IP 패킷 플로우들을 다이렉트 및 리다이렉트를 위한 규칙들은
    상기 이더넷 스위치내 메모리에 저장되는
    이더넷 스위치.
  9. 제6항에 있어서,
    상기 서버들은 다수의 서버 그룹들을 포함하고,
    상기 IP 패킷 플로우 다이렉팅 로직은
    서버들의 규정된 시퀀스로 상기 IP 패킷 플로우를 리다이렉트 하기 위한 리다이렉트 로직을 더 포함하되,
    상기 서버들의 규정된 시퀀스내 각 서버는 상기 다수의 서버 그룹들에서의 서로다른 서버 그룹으로부터 나오는
    이더넷 스위치.
  10. 제9항에 있어서,
    상기 다수의 서버 그룹들은
    방화벽 서버 그룹, 침입 탐지 시스템(intrusion detection system: IDS) 서버 그룹, 및 안티 바이러스 애플리케이션 서버 그룹을 포함하고,
    상기 IP 패킷 플로우는
    상기 방화벽 서버 그룹, 상기 IDS 서버 그룹 및 상기 안티 바이러스 애플리케이션 서버 그룹 각각으로부터 선택된 서버를 순차적으로 거쳐가도록 리다이렉트 되는
    이더넷 스위치.
  11. 인터넷 프로토콜(IP) 패킷 플로우들을 라우팅하기 위한 컴퓨터 프로그램 제품에 있어서,
    상기 컴퓨터 프로그램 제품은
    컴퓨터 판독가능 저장 매체;
    이더넷 스위치를 로드 밸런싱 제어 엔진으로 논리적으로 연결하기 위한 제1 프로그램 명령들 -여기서 상기 로드 밸런싱 제어 엔진내의 로드 밸런싱 로직은 상기 이더넷 스위치로부터 은폐됨-;
    상기 이더넷 스위치에 의해 IP 패킷 플로우를 수신하기 위한 제2 프로그램 명령들 - 상기 이더넷 스위치는 서버들로 IP 패킷 플로우들을 라우트함-;
    상기 서버들이 그들의 워크로드들에 대해 밸런스되어 있는지를 결정하기 위한 제3 프로그램 명령들;
    상기 로드 밸런싱 제어 엔진이 상기 서버들이 밸런스되어 있다고 결정한 것에 응답하여, 상기 이더넷 스위치가 상기 서버들의 워크로드들에 관해 그들로부터 피드백을 직접적으로 수신함이 없이, 상기 서버들로 상기 IP 패킷 플로우를 라우트하기 위한 제4 프로그램 명령들; 및
    상기 로드 밸런싱 제어 엔진이 상기 서버들이 언밸런스 되었다고 결정한 것에 응답하여, 다른 서버들보다 상대적으로 덜 비지(busy)한 서버로 상기 IP 패킷 플로우를 리다이렉트하도록 상기 이더넷 스위치를 지시하기 위한 제5 프로그램 명령들을 포함하되,
    상기 제1, 제2, 제3, 제4 및 제5 프로그램 명령들은 컴퓨터 판독가능 저장 매체상에 저장되는
    컴퓨터 프로그램 제품.
  12. 제11항에 있어서,
    상기 IP 패킷 플로우가 다이렉트되는 위치의 기록은
    오직 상기 서버들이 그들의 워크로드에 대해 언밸런스라는 것에 응답하여 리다이렉트 된 IP 패킷 플로우들에 대해서만 저장되는
    컴퓨터 프로그램 제품.
  13. 제11항에 있어서,
    IP 패킷 플로우들을 다이렉트 및 리다이렉트하기 위한 규칙들은
    상기 이더넷 스위치내 메모리에 저장되는
    컴퓨터 프로그램 제품.
  14. 제11항에 있어서,
    상기 서버들은 다수의 서버 그룹들을 포함하고,
    상기 컴퓨터 프로그램 제품은
    서버들의 규정된 시퀀스로 상기 IP 패킷 플로우를 리다이렉트하기 위한 제6 프로그램 명령들-상기 서버들의 규정된 시퀀스내 각 서버는 상기 다수의 서버 그룹들에서의 서로다른 서버 그룹으로부터 나옴-;을 더 포함하되,
    상기 제6 프로그램 명령들은 상기 컴퓨터 판독가능 저장 매체상세 저장되는
    컴퓨터 프로그램 제품.
  15. 제14항에 있어서,
    상기 다수의 서버 그룹들은
    방화벽 서버 그룹, 침입 탐지 시스템(intrusion detection system: IDS) 서버 그룹, 및 안티 바이러스 애플리케이션 서버 그룹을 포함하고,
    상기 IP 패킷 플로우는
    상기 방화벽 서버 그룹, 상기 IDS 서버 그룹 및 상기 안티 바이러스 애플리케이션 서버 그룹 각각으로부터 선택된 서버를 순차적으로 거쳐가도록 리다이렉트 되는
    컴퓨터 프로그램 제품.
KR1020110029280A 2010-04-26 2011-03-31 서버 오버로드에 따른 모듈 분산 및 tcp 플로우 리다이렉션을 통한 로드 밸런싱 KR20110119534A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/767,256 2010-04-26
US12/767,256 US8243598B2 (en) 2010-04-26 2010-04-26 Load-balancing via modulus distribution and TCP flow redirection due to server overload

Publications (1)

Publication Number Publication Date
KR20110119534A true KR20110119534A (ko) 2011-11-02

Family

ID=44815752

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110029280A KR20110119534A (ko) 2010-04-26 2011-03-31 서버 오버로드에 따른 모듈 분산 및 tcp 플로우 리다이렉션을 통한 로드 밸런싱

Country Status (3)

Country Link
US (2) US8243598B2 (ko)
KR (1) KR20110119534A (ko)
CN (1) CN102238081B (ko)

Families Citing this family (127)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8576712B2 (en) 2006-05-31 2013-11-05 At&T Intellectual Property Ii, L.P. Method and apparatus for providing a reliable voice extensible markup language service
US8660132B2 (en) * 2010-06-28 2014-02-25 Avaya Inc. Control plane packet processing and latency control
US9047128B1 (en) 2010-09-30 2015-06-02 Emc Corporation Backup server interface load management based on available network interfaces
US9678804B1 (en) * 2010-09-30 2017-06-13 EMC IP Holding Company LLC Dynamic load balancing of backup server interfaces based on timeout response, job counter, and speed of a plurality of interfaces
US8589538B2 (en) * 2010-10-22 2013-11-19 International Business Machines Corporation Storage workload balancing
US8819245B2 (en) * 2010-11-22 2014-08-26 Ixia Processor allocation for multi-core architectures
US8619568B2 (en) * 2011-02-04 2013-12-31 Cisco Technology, Inc. Reassignment of distributed packet flows
US8776207B2 (en) * 2011-02-16 2014-07-08 Fortinet, Inc. Load balancing in a network with session information
US9065831B2 (en) * 2011-03-01 2015-06-23 Cisco Technology, Inc. Active load distribution for control plane traffic using a messaging and presence protocol
US9235447B2 (en) 2011-03-03 2016-01-12 Cisco Technology, Inc. Extensible attribute summarization
US8879397B2 (en) * 2011-05-13 2014-11-04 Polytechnic Institute Of New York University Balancing load in a network, such as a data center network, using flow based routing
US9736065B2 (en) 2011-06-24 2017-08-15 Cisco Technology, Inc. Level of hierarchy in MST for traffic localization and load balancing
US8705551B2 (en) * 2011-07-27 2014-04-22 Fujitsu Limited Method and system for management of flood traffic over multiple 0:N link aggregation groups
US8908698B2 (en) 2012-01-13 2014-12-09 Cisco Technology, Inc. System and method for managing site-to-site VPNs of a cloud managed network
GB2499981B (en) * 2012-02-09 2014-09-24 Riverbed Technology Inc Controlling the operation of a traffic manager
JP5884892B2 (ja) * 2012-03-08 2016-03-15 日本電気株式会社 ネットワークシステム、コントローラ、及び負荷分散方法
US10237341B1 (en) * 2012-03-29 2019-03-19 Emc Corporation Method and system for load balancing using server dormant mode
US9007910B2 (en) * 2012-03-30 2015-04-14 Fujitsu Limited Load balancing across a link aggregation group
US9515934B2 (en) 2012-09-14 2016-12-06 Trend Micro Incorporated Determining a load distribution for data units at a packet inspection device
US9843484B2 (en) * 2012-09-25 2017-12-12 A10 Networks, Inc. Graceful scaling in software driven networks
TWI474673B (zh) * 2012-12-06 2015-02-21 Inst Information Industry 工作負載分配裝置及其工作負載分配方法
US9043439B2 (en) 2013-03-14 2015-05-26 Cisco Technology, Inc. Method for streaming packet captures from network access devices to a cloud server over HTTP
US9477500B2 (en) 2013-03-15 2016-10-25 Avi Networks Managing and controlling a distributed network service platform
US9225638B2 (en) 2013-05-09 2015-12-29 Vmware, Inc. Method and system for service switching using service tags
US9118571B2 (en) * 2013-07-08 2015-08-25 Telefonaktiebolaget L M Ericsson (Publ) Methods of operating load balancing switches and controllers using matching patterns with unrestricted characters
US9407692B2 (en) * 2013-11-27 2016-08-02 Avi Networks Method and system for distributed load balancing
KR101534974B1 (ko) * 2013-12-19 2015-07-08 현대자동차주식회사 다중 마이크로 코어 감시 장치 및 방법
US9444735B2 (en) 2014-02-27 2016-09-13 Cisco Technology, Inc. Contextual summarization tag and type match using network subnetting
NZ768365A (en) * 2014-04-01 2022-04-29 Endace Tech Limited Hash tag load balancing
US9426215B2 (en) * 2014-04-08 2016-08-23 Aol Inc. Determining load state of remote systems using delay and packet loss rate
US10680957B2 (en) 2014-05-28 2020-06-09 Cavium International Method and apparatus for analytics in a network switch
US9548927B2 (en) * 2014-06-17 2017-01-17 Comcast Cable Communications, Llc Flow-based load balancing
US10897506B2 (en) 2014-07-02 2021-01-19 Hewlett Packard Enterprise Development Lp Managing port connections
US10122605B2 (en) 2014-07-09 2018-11-06 Cisco Technology, Inc Annotation of network activity through different phases of execution
US9608938B2 (en) * 2014-08-12 2017-03-28 Arista Networks, Inc. Method and system for tracking and managing network flows
US9825878B2 (en) 2014-09-26 2017-11-21 Cisco Technology, Inc. Distributed application framework for prioritizing network traffic using application priority awareness
US9755898B2 (en) 2014-09-30 2017-09-05 Nicira, Inc. Elastically managing a service node group
US10516568B2 (en) 2014-09-30 2019-12-24 Nicira, Inc. Controller driven reconfiguration of a multi-layered application or service model
US9774537B2 (en) 2014-09-30 2017-09-26 Nicira, Inc. Dynamically adjusting load balancing
US9871733B2 (en) * 2014-11-13 2018-01-16 Cavium, Inc. Policer architecture
US10050862B2 (en) 2015-02-09 2018-08-14 Cisco Technology, Inc. Distributed application framework that uses network and application awareness for placing data
US10708342B2 (en) 2015-02-27 2020-07-07 Cisco Technology, Inc. Dynamic troubleshooting workspaces for cloud and network management systems
US9935834B1 (en) 2015-03-13 2018-04-03 Cisco Technology, Inc. Automated configuration of virtual port channels
US9954783B1 (en) 2015-03-31 2018-04-24 Cisco Technology, Inc. System and method for minimizing disruption from failed service nodes
US10110668B1 (en) 2015-03-31 2018-10-23 Cisco Technology, Inc. System and method for monitoring service nodes
US10305816B1 (en) 2015-03-31 2019-05-28 Cisco Technology, Inc. Adjustable bit mask for high-speed native load balancing on a switch
US10079725B1 (en) 2015-04-01 2018-09-18 Cisco Technology, Inc. Route map policies for network switches
US10103995B1 (en) 2015-04-01 2018-10-16 Cisco Technology, Inc. System and method for automated policy-based routing
US9985894B1 (en) 2015-04-01 2018-05-29 Cisco Technology, Inc. Exclude filter for load balancing switch
US10594743B2 (en) 2015-04-03 2020-03-17 Nicira, Inc. Method, apparatus, and system for implementing a content switch
US10382534B1 (en) 2015-04-04 2019-08-13 Cisco Technology, Inc. Selective load balancing of network traffic
US10469389B1 (en) 2015-04-23 2019-11-05 Cisco Technology, Inc. TCAM-based load balancing on a switch
US10033631B1 (en) 2015-04-23 2018-07-24 Cisco Technology, Inc. Route distribution for service appliances
US10075377B1 (en) 2015-04-23 2018-09-11 Cisco Technology, Inc. Statistical collection in a network switch natively configured as a load balancer
US9935882B2 (en) * 2015-05-13 2018-04-03 Cisco Technology, Inc. Configuration of network elements for automated policy-based routing
US10476982B2 (en) 2015-05-15 2019-11-12 Cisco Technology, Inc. Multi-datacenter message queue
US10034201B2 (en) 2015-07-09 2018-07-24 Cisco Technology, Inc. Stateless load-balancing across multiple tunnels
US9917794B2 (en) * 2015-08-11 2018-03-13 Luxar Tech, Inc Redirection IP packet through switch fabric
KR20170035605A (ko) * 2015-09-23 2017-03-31 삼성전자주식회사 비디오처리장치, 비디오처리장치의 구동방법, 비디오중계장치, 비디오중계장치의 구동방법 및 컴퓨터 판독가능 기록매체
US10193809B1 (en) * 2015-09-30 2019-01-29 Cisco Technology, Inc. Load balancing methods based on transport layer port numbers for a network switch
US11005682B2 (en) 2015-10-06 2021-05-11 Cisco Technology, Inc. Policy-driven switch overlay bypass in a hybrid cloud network environment
US10462136B2 (en) 2015-10-13 2019-10-29 Cisco Technology, Inc. Hybrid cloud security groups
US10523657B2 (en) 2015-11-16 2019-12-31 Cisco Technology, Inc. Endpoint privacy preservation with cloud conferencing
US10205677B2 (en) 2015-11-24 2019-02-12 Cisco Technology, Inc. Cloud resource placement optimization and migration execution in federated clouds
US10084703B2 (en) 2015-12-04 2018-09-25 Cisco Technology, Inc. Infrastructure-exclusive service forwarding
US10367914B2 (en) 2016-01-12 2019-07-30 Cisco Technology, Inc. Attaching service level agreements to application containers and enabling service assurance
EP3246842B1 (en) * 2016-05-20 2020-07-08 AO Kaspersky Lab System and method of distributing files between virtual machines forming a distributed system for performing antivirus scans
RU2628923C1 (ru) * 2016-05-20 2017-08-22 Акционерное общество "Лаборатория Касперского" Система и способ распределения файлов между виртуальными машинами, входящими в распределённую систему виртуальных машин, для выполнения антивирусной проверки
US10129177B2 (en) 2016-05-23 2018-11-13 Cisco Technology, Inc. Inter-cloud broker for hybrid cloud networks
US10659283B2 (en) 2016-07-08 2020-05-19 Cisco Technology, Inc. Reducing ARP/ND flooding in cloud environment
US10432532B2 (en) 2016-07-12 2019-10-01 Cisco Technology, Inc. Dynamically pinning micro-service to uplink port
US10382597B2 (en) 2016-07-20 2019-08-13 Cisco Technology, Inc. System and method for transport-layer level identification and isolation of container traffic
US10263898B2 (en) 2016-07-20 2019-04-16 Cisco Technology, Inc. System and method for implementing universal cloud classification (UCC) as a service (UCCaaS)
US10567344B2 (en) 2016-08-23 2020-02-18 Cisco Technology, Inc. Automatic firewall configuration based on aggregated cloud managed information
US10523592B2 (en) 2016-10-10 2019-12-31 Cisco Technology, Inc. Orchestration system for migrating user data and services based on user information
US11044162B2 (en) 2016-12-06 2021-06-22 Cisco Technology, Inc. Orchestration of cloud and fog interactions
US10848432B2 (en) 2016-12-18 2020-11-24 Cisco Technology, Inc. Switch fabric based load balancing
US10326817B2 (en) 2016-12-20 2019-06-18 Cisco Technology, Inc. System and method for quality-aware recording in large scale collaborate clouds
CN108243150B (zh) * 2016-12-23 2022-03-18 中科星图股份有限公司 一种双功能处理器
US11252227B2 (en) * 2016-12-27 2022-02-15 Cisco Technology, Inc. System and method of managing flow state in stateful applications
US10334029B2 (en) 2017-01-10 2019-06-25 Cisco Technology, Inc. Forming neighborhood groups from disperse cloud providers
US10552191B2 (en) 2017-01-26 2020-02-04 Cisco Technology, Inc. Distributed hybrid cloud orchestration model
US10320683B2 (en) 2017-01-30 2019-06-11 Cisco Technology, Inc. Reliable load-balancer using segment routing and real-time application monitoring
US10671571B2 (en) 2017-01-31 2020-06-02 Cisco Technology, Inc. Fast network performance in containerized environments for network function virtualization
CN107026907B (zh) * 2017-03-30 2020-08-14 广东红餐科技有限公司 一种负载均衡方法、负载均衡器及负载均衡系统
US11005731B2 (en) 2017-04-05 2021-05-11 Cisco Technology, Inc. Estimating model parameters for automatic deployment of scalable micro services
US10439877B2 (en) 2017-06-26 2019-10-08 Cisco Technology, Inc. Systems and methods for enabling wide area multicast domain name system
US10382274B2 (en) 2017-06-26 2019-08-13 Cisco Technology, Inc. System and method for wide area zero-configuration network auto configuration
US10608957B2 (en) * 2017-06-29 2020-03-31 Cisco Technology, Inc. Method and apparatus to optimize multi-destination traffic over etherchannel in stackwise virtual topology
US10892940B2 (en) 2017-07-21 2021-01-12 Cisco Technology, Inc. Scalable statistics and analytics mechanisms in cloud networking
US10425288B2 (en) 2017-07-21 2019-09-24 Cisco Technology, Inc. Container telemetry in data center environments with blade servers and switches
US10601693B2 (en) 2017-07-24 2020-03-24 Cisco Technology, Inc. System and method for providing scalable flow monitoring in a data center fabric
US10541866B2 (en) 2017-07-25 2020-01-21 Cisco Technology, Inc. Detecting and resolving multicast traffic performance issues
US11082312B2 (en) 2017-10-04 2021-08-03 Cisco Technology, Inc. Service chaining segmentation analytics
US10965598B1 (en) 2017-10-04 2021-03-30 Cisco Technology, Inc. Load balancing in a service chain
US10965596B2 (en) 2017-10-04 2021-03-30 Cisco Technology, Inc. Hybrid services insertion
US10805181B2 (en) 2017-10-29 2020-10-13 Nicira, Inc. Service operation chaining
US11481362B2 (en) 2017-11-13 2022-10-25 Cisco Technology, Inc. Using persistent memory to enable restartability of bulk load transactions in cloud databases
US11012420B2 (en) 2017-11-15 2021-05-18 Nicira, Inc. Third-party service chaining using packet encapsulation in a flow-based forwarding element
US10705882B2 (en) 2017-12-21 2020-07-07 Cisco Technology, Inc. System and method for resource placement across clouds for data intensive workloads
US11595474B2 (en) 2017-12-28 2023-02-28 Cisco Technology, Inc. Accelerating data replication using multicast and non-volatile memory enabled nodes
US10797910B2 (en) 2018-01-26 2020-10-06 Nicira, Inc. Specifying and utilizing paths through a network
US10659252B2 (en) 2018-01-26 2020-05-19 Nicira, Inc Specifying and utilizing paths through a network
US10805192B2 (en) 2018-03-27 2020-10-13 Nicira, Inc. Detecting failure of layer 2 service using broadcast messages
US10728174B2 (en) 2018-03-27 2020-07-28 Nicira, Inc. Incorporating layer 2 service between two interfaces of gateway device
US10511534B2 (en) 2018-04-06 2019-12-17 Cisco Technology, Inc. Stateless distributed load-balancing
US10728361B2 (en) 2018-05-29 2020-07-28 Cisco Technology, Inc. System for association of customer information across subscribers
US10904322B2 (en) 2018-06-15 2021-01-26 Cisco Technology, Inc. Systems and methods for scaling down cloud-based servers handling secure connections
US10764266B2 (en) 2018-06-19 2020-09-01 Cisco Technology, Inc. Distributed authentication and authorization for rapid scaling of containerized services
US11019083B2 (en) 2018-06-20 2021-05-25 Cisco Technology, Inc. System for coordinating distributed website analysis
US11258760B1 (en) 2018-06-22 2022-02-22 Vmware, Inc. Stateful distributed web application firewall
US10819571B2 (en) 2018-06-29 2020-10-27 Cisco Technology, Inc. Network traffic optimization using in-situ notification system
US10904342B2 (en) 2018-07-30 2021-01-26 Cisco Technology, Inc. Container networking using communication tunnels
US11595250B2 (en) 2018-09-02 2023-02-28 Vmware, Inc. Service insertion at logical network gateway
US10944673B2 (en) 2018-09-02 2021-03-09 Vmware, Inc. Redirection of data messages at logical network gateway
US10771318B1 (en) 2018-10-24 2020-09-08 Vmware, Inc High availability on a distributed networking platform
US10733131B1 (en) 2019-02-01 2020-08-04 Hewlett Packard Enterprise Development Lp Target port set selection for a connection path based on comparison of respective loads
US11301281B2 (en) 2019-02-22 2022-04-12 Vmware, Inc. Service control plane messaging in service data plane
US11178107B2 (en) * 2019-09-30 2021-11-16 Michael Schloss System and method for detecting surreptitious packet rerouting
US11140218B2 (en) 2019-10-30 2021-10-05 Vmware, Inc. Distributed service chain across multiple clouds
US11283717B2 (en) 2019-10-30 2022-03-22 Vmware, Inc. Distributed fault tolerant service chain
US11223494B2 (en) 2020-01-13 2022-01-11 Vmware, Inc. Service insertion for multicast traffic at boundary
US11659061B2 (en) 2020-01-20 2023-05-23 Vmware, Inc. Method of adjusting service function chains to improve network performance
US11153406B2 (en) 2020-01-20 2021-10-19 Vmware, Inc. Method of network performance visualization of service function chains
US11438257B2 (en) 2020-04-06 2022-09-06 Vmware, Inc. Generating forward and reverse direction connection-tracking records for service paths at a network edge
US11734043B2 (en) 2020-12-15 2023-08-22 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11611625B2 (en) 2020-12-15 2023-03-21 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6473424B1 (en) 1998-12-02 2002-10-29 Cisco Technology, Inc. Port aggregation load balancing
US6888797B1 (en) * 1999-05-05 2005-05-03 Lucent Technologies Inc. Hashing-based network load balancing
US8204082B2 (en) 2000-06-23 2012-06-19 Cloudshield Technologies, Inc. Transparent provisioning of services over a network
US7062571B1 (en) 2000-06-30 2006-06-13 Cisco Technology, Inc. Efficient IP load-balancing traffic distribution using ternary CAMs
US7454500B1 (en) 2000-09-26 2008-11-18 Foundry Networks, Inc. Global server load balancing
US6985956B2 (en) 2000-11-02 2006-01-10 Sun Microsystems, Inc. Switching system
US7131140B1 (en) * 2000-12-29 2006-10-31 Cisco Technology, Inc. Method for protecting a firewall load balancer from a denial of service attack
US6944678B2 (en) 2001-06-18 2005-09-13 Transtech Networks Usa, Inc. Content-aware application switch and methods thereof
CN1209714C (zh) * 2002-03-12 2005-07-06 中国科学院计算技术研究所 基于网络存储和可扩展体系结构的服务器系统及方法
US7512702B1 (en) 2002-03-19 2009-03-31 Cisco Technology, Inc. Method and apparatus providing highly scalable server load balancing
US6856991B1 (en) 2002-03-19 2005-02-15 Cisco Technology, Inc. Method and apparatus for routing data to a load balanced server using MPLS packet labels
US7328237B1 (en) * 2002-07-25 2008-02-05 Cisco Technology, Inc. Technique for improving load balancing of traffic in a data network using source-side related information
US7606929B2 (en) * 2003-06-30 2009-10-20 Microsoft Corporation Network load balancing with connection manipulation
US8285881B2 (en) 2003-09-10 2012-10-09 Broadcom Corporation System and method for load balancing and fail over
US8145908B1 (en) * 2004-10-29 2012-03-27 Akamai Technologies, Inc. Web content defacement protection system
US20060155862A1 (en) 2005-01-06 2006-07-13 Hari Kathi Data traffic load balancing based on application layer messages
FR2908575B1 (fr) 2006-11-09 2009-03-20 At & T Corp Methode et appareil pour fournir un equilibrage de charge base sur le flux
US20100036903A1 (en) * 2008-08-11 2010-02-11 Microsoft Corporation Distributed load balancer
US8611356B2 (en) * 2009-11-13 2013-12-17 Exalt Communications Incorporated Apparatus for ethernet traffic aggregation of radio links

Also Published As

Publication number Publication date
US8488456B2 (en) 2013-07-16
US20120224486A1 (en) 2012-09-06
CN102238081B (zh) 2014-01-22
CN102238081A (zh) 2011-11-09
US8243598B2 (en) 2012-08-14
US20110261811A1 (en) 2011-10-27

Similar Documents

Publication Publication Date Title
KR20110119534A (ko) 서버 오버로드에 따른 모듈 분산 및 tcp 플로우 리다이렉션을 통한 로드 밸런싱
US11665242B2 (en) Bypassing a load balancer in a return path of network traffic
JP6670109B2 (ja) ネットワーク内のスケーラブルなフロー及び輻輳制御
US10623309B1 (en) Rule processing of packets
US11422839B2 (en) Network policy implementation with multiple interfaces
US9729441B2 (en) Service function bundling for service function chains
US8553537B2 (en) Session-less load balancing of client traffic across servers in a server group
US8867341B2 (en) Traffic management of client traffic at ingress location of a data center
US10666617B2 (en) Intercepting network traffic routed by virtual switches for selective security processing
US20190149639A1 (en) Dynamic port type detection
US10225194B2 (en) Transparent network-services elastic scale-out
WO2020151030A1 (zh) 一种处理数据报文的方法和装置
US20150180769A1 (en) Scale-up of sdn control plane using virtual switch based overlay
US10511514B1 (en) Node-specific probes in a native load balancer
WO2016108140A1 (en) Ccn fragmentation gateway
US8630296B2 (en) Shared and separate network stack instances
US10181031B2 (en) Control device, control system, control method, and control program
US20200351286A1 (en) Configuring an island virtual switch for provisioning of network security services
US11122115B1 (en) Workload distribution in a data network
US9641441B2 (en) Learning information associated with shaping resources and virtual machines of a cloud computing environment
US10230642B1 (en) Intelligent data paths for a native load balancer
US11128695B1 (en) Traffic load balancing between a plurality of points of presence of a cloud computing infrastructure
Abujoda et al. Invariant Preserving Middlebox Traversal

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application