KR101177203B1 - 애니캐스트를 통한 맵리스 글로벌 트래픽 로드 밸런싱 - Google Patents

애니캐스트를 통한 맵리스 글로벌 트래픽 로드 밸런싱 Download PDF

Info

Publication number
KR101177203B1
KR101177203B1 KR1020107016801A KR20107016801A KR101177203B1 KR 101177203 B1 KR101177203 B1 KR 101177203B1 KR 1020107016801 A KR1020107016801 A KR 1020107016801A KR 20107016801 A KR20107016801 A KR 20107016801A KR 101177203 B1 KR101177203 B1 KR 101177203B1
Authority
KR
South Korea
Prior art keywords
load balancing
resolver
delete delete
servers
server
Prior art date
Application number
KR1020107016801A
Other languages
English (en)
Other versions
KR20100106540A (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 KR20100106540A publication Critical patent/KR20100106540A/ko
Application granted granted Critical
Publication of KR101177203B1 publication Critical patent/KR101177203B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/121Shortest path evaluation by minimising delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/122Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/125Shortest path evaluation based on throughput or bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4552Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
    • 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
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • 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/101Server selection for load balancing based on network conditions
    • 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/1021Server selection for load balancing based on client or server locations
    • 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/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer

Landscapes

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

Abstract

클라이언트들과 가장 가까운 웹 서버 사이의 연결들을 다이렉팅하는 기법들이 설명된다. 네트워크의 권한 있는 DNS 리졸버들이 네트워크의 에지들에 배치된다. 애니캐스트를 이용하여, 권한 있는 DNS 리졸버들은 그들의 대상 넷블록의 루트들을 인터넷에 통지한다. 네트워크에 접속하기 위한 클라이언트로부터의 요청이, BGP 테이블들에 기초하여, 가장 가까운 특정한 권한 있는 DNS 리졸버로 라우팅된다. 일단 요청이 수신되면, 가장 가까운 웹 서버의 IP 주소로 클라이언트에 응답이 송신된다. 가장 가까운 웹 서버는 네트워크 내 건강 검사 측정들을 통하여 결정되고, 권한 있는 DNS 리졸버들은 그들 자신에 가장 가까운 IP 주소들을 동적으로 선택한다. 패킷을 가장 가까운 권한 있는 DNS 리졸버로 다이렉팅한 라우팅 프로토콜들은 또한 네트워크에의 차후의 트래픽의 루트를 기술한다. 따라서, 권한 있는 DNS 리졸버에 의해 선택된 가장 가까운 웹 서버는 또한 클라이언트에의 가장 가까운 웹 서버이다.

Description

애니캐스트를 통한 맵리스 글로벌 트래픽 로드 밸런싱{MAPLESS GLOBAL TRAFFIC LOAD BALANCING VIA ANYCAST}
본 발명은 네트워크에서의 글로벌 트래픽 관리에 관한 것으로, 구체적으로는, 특정한 기준에 기초하여 특정한 서버로 클라이언트를 다이렉팅하는 것에 관한 것이다.
이 섹션에서 설명된 접근 방법들은 추구될 수 있는 접근 방법들이지만, 반드시 이전에 상상되거나 추구되었던 접근 방법들은 아니다. 그러므로, 다르게 지시되지 않는 한, 이 섹션에서 설명된 접근 방법들 중 어떤 것이라도 단지 그것들이 이 섹션에 포함되어 있다는 것만으로 종래 기술로서 자격이 있는 것으로 추정되어서는 안 된다.
글로벌 로드 밸런싱(global load balancing) 또는 "GLB"는 분포된 서버들의 세트에 걸쳐서 서버들에 클라이언트 액세스를 분배한다. 클라이언트 액세스가 분배되는 서버들의 세트는, 예를 들면, 인터넷과 같은 광역 네트워크 상의 서버들일 수 있다. 설명을 위하여, 인터넷 상의 서버들에 걸쳐서 클라이언트 액세스를 분배하기 위해 GLB가 이용되는 예들이 주어질 것이다. 클라이언트 액세스를 위한 서버들의 유형들은 매우 다양할 수 있고, HTTP 웹 서버들, FTP 서버들, SMTP(메일) 서버들, 다른 표준의 인터넷 프로토콜 서버들, 또는 독점 프로토콜들(proprietary protocols)을 갖는 서버들을 포함하지만, 이들에 제한되지 않는다. 여기에서 사용될 때, 용어 "서버"는 앞에 열거된 임의의 유형의 서버를 의미할 것이다.
많은 GLB들은 다양한 능동 및 수동 모니터링 기법들을 이용하여 인터넷의 복잡한 맵(complex map)을 생성한다. 이 맵에 기초하여, GLB는 클라이언트를 "가장 가까운" 서버에 연결하기 위한 트래픽 라우팅 결정들을 행한다. 여기에서 사용될 때, "가까운"(close)은 반드시 그 결정을 지리적 근접에만 기초하게 하는 것을 의미하는 것은 아니다. 여기에서 사용될 때, "가까운" 서버는 클라이언트에의 가장 빠른 연결로 귀착하는 서버이다. 따라서, 만약 100 마일 떨어져 위치한 서버가 심한 네트워크 혼잡(heavy network congestion) 때문에 200 마일 떨어져 위치한 서버보다 클라이언트가 도달하기에 더 느리다면, GLB는 클라이언트를 200 마일 떨어진 서버로 라우팅할 것이다.
글로벌 로드 밸런싱의 가장 일반적인 형태는 도 1에 도시되어 있는 도메인 이름 서비스("DNS")에 기초한다. 도 1에 도시된 시스템에서는, 지리적으로 전혀 다른 영역들에 위치할 수 있는, 2개 이상의 데이터 센터들이 웹 애플리케이션들을 호스팅할 수 있는 다수의 서버들을 포함한다. 클라이언트(105)는 2개의 데이터 센서들 각각에 의해 호스팅되는 웹 애플리케이션에 연결하기를 원한다. 예를 들면, 웹 애플리케이션을 호스팅하는 하나의 데이터 센터는 뉴욕(103)에 위치할 수 있고 웹 애플리케이션을 호스팅하는 다른 데이터 센터는 샌프란시스코(101)에 위치할 수 있다.
인터넷 서비스 공급자들("ISP들")은, ISP의 네트워크 내에 존재하고 ISP의 사용자들의 DNS 요청들을 서비스하기 위해 ISP의 사용자들과 통신하는, 재귀 DNS 리졸버(recursive DNS resolver)로도 불리는, 중앙 집중된 로컬 이름 리졸버(centralized local name resolver)를 이용할 수 있다. 클라이언트는 로컬 이름 리졸버와 통신하고, 그 후 로컬 이름 리졸버는 사용자가 요청한 정보를 어디에서 찾을 것인지를 결정한다. 도메인의 권한 있는 DNS 리졸버(authoritative DNS resolver)는 로컬 이름 리졸버로부터 그 요청을 수신하고 도메인의 IP 주소를 로컬 이름 리졸버에 송신한다. 도메인의 권한 있는 DNS 리졸버는 도메인의 네트워크 내에 존재하고 그 네트워크에 대한 데이터를 유지하는 서버이다. GLB는 권한 있는 DNS 리졸버의 일부일 수 있고 또는 권한 있는 DNS 리졸버와 별개일 수 있다. 여기에서 사용될 때, 용어 "리졸버"(resolver)는, GLB가 그의 일부일 수 있고 또는 그의 일부가 아닐 수 있는, 권한 있는 DNS 리졸버를 지시할 것이다.
예를 들면, 도 1에서, 클라이언트(105)는 "www.sampledomain.com"과 같은 도메인 이름을 포함하는 요청(111)을 로컬 이름 리졸버(107)에 송신한다. 로컬 이름 리졸버(107)는 "www.sampledomain.com"의 소유자인 권한 있는 DNS 리졸버(109)에게 "www.sampledomain.com"의 IP 주소에 대하여 요청한다(115). "www.sampledomain.com"에 대한 권위 있는 DNS 리졸버(및 GLB)(109)는 GLB에 의해 생성된 맵 내의 정보에 기초하여 데이터 센터의 IP 주소로 로컬 이름 리졸버(107)에 응답한다. 만약 GLB가 샌프란시스코(101)의 데이터 센터로의 높은 트래픽을 검출한다면, GLB는, 비록 지리적으로는, 뉴욕(103)의 데이터 센터가 클라이언트(105)로부터 훨씬 더 멀리 떨어져 있더라도, 뉴욕(103)의 "더 가까운" 데이터 센터로의 연결을 송신할 수 있다. 로컬 이름 리졸버(107)는 뉴욕(103)의 데이터 센터의 IP 주소를 클라이언트(105)에 송신한다. 그때, 및 그때만, 클라이언트(105)는 뉴욕(103)의 데이터 센터에 연결하고(119) 샌프란시스코(101)에 위치하는 데이터 센터에 연결하지 않는다(117).
섬유 절단(fiber cuts), 장비 문제, 용량 문제, 넷블록 이동(netblock migration), 또는 사람의 간섭과 같은, 네트워크 토폴로지 또는 연결에 변화가 생기면, 인터넷 맵은, 종종 처음부터 다시, 재작성될 필요가 있다. 맵을 생성하거나 업데이트하기 위해 이용되는 프로토콜들 및 알고리즘들에 따라서, 이 프로세스는 상당한 양의 시간이 걸릴 수 있다. 인터넷 토폴로지의 동적인 성질 때문에, GLB는 인터넷의 완전한 정확한 모델을 유지하는 데 곤란을 겪을 수 있다. 결과적인 맵의 부정확성은 부정확한 라우팅 결정들을 초래할 수 있고, 이것은 클라이언트 대 서버 성능에 대한 심한 관련을 가질 수 있다. 그 결과, DNS 기반 GLB에 의해 인터넷의 생성하고 유지하는 것에 기초하지 않는 서버에의 "가장 가까운" 연결을 제공하는 기법들에 대한 요구가 존재한다.
본 발명은 첨부 도면들에서 제한으로서가 아니라 예로서 도시되고, 첨부 도면들에서 같은 참조 번호들은 유사한 구성 요소들을 나타낸다.
도 1은 DNS에 기초한 글로벌 로드 밸런싱의 다이어그램이다.
도 2는 본 발명의 실시예에 따른, 가장 가까운 GLB/권한 있는 DNS 서버에 라우팅되는 이름 분석 요청 IP 패킷의 다이어그램이다.
도 3a는 본 발명의 실시예에 따른, 웹 서버에 연결하는 클라이언트의 다이어그램이다.
도 3b는 본 발명의 실시예에 따른, 장애 조치(failover)가 일어난 웹 서버에 연결하는 클라이언트의 다이어그램이다.
도 4는 본 발명의 실시예들이 구현될 수 있는 컴퓨터 시스템의 블록 다이어그램이다.
서버가 속하는 네트워크(예를 들면, 인터넷)의 맵을 생성하는 것에 의지하지 않는 기법들을 이용하여 클라이언트를 서버에 연결하는 기법들이 설명된다. 다음의 설명에서는, 설명의 목적으로, 본 발명의 철저한 이해를 제공하기 위해 다수의 특정한 상세들이 제시된다. 그러나, 본 발명은 이러한 특정한 상세들 없이 실시될 수 있다는 것은 명백할 것이다. 다른 경우들에서, 잘 알려진 구조들 및 장치들은 본 발명을 불필요하게 불명료하게 하는 것을 피하기 위하여 블록 다이어그램으로 도시된다.
[일반 개관]
실시예에서는, 복수의 권한 있는 DNS 리졸버들이 공급자의 네트워크의 에지들 상의 상이한 위치들에 배치된다. 여기에서 사용될 때, 네트워크의 "에지"(edge)는 다른 네트워크로의 네트워크의 연결점(connection point) 또는 진입점(entry point)인 네트워크의 부분이다. 다른 네트워크는 다른 개인 네트워크 또는 인터넷을 포함할 수 있지만, 이들에 제한되지 않는다. 공급자의 네트워크는 또한 클라이언트가 공급자의 네트워크에 연결할 수 있는 서버들을 포함한다. 공급자의 네트워크 내의 서버들의 유형들은 매우 다양할 수 있고, HTTP 웹 서버들, FTP 서버들, SMTP(메일) 서버들, 다른 표준의 인터넷 프로토콜 서버들, 또는 독점 프로토콜들을 갖는 서버들을 포함하지만, 이들에 제한되지 않는다. 복수의 권한 있는 DNS 리졸버들은 IP 패킷들이 "가장 가까운" 권한 있는 DNS 리졸버들에 라우팅되게 하는 대상 IP 주소(destination IP address)를 통지한다. 공급자의 네트워크에 연결하는 요청이 클라이언트로부터 권한 있는 DNS 리졸버에 의해 수신되면, 권한 있는 DNS 리졸버는 클라이언트가 연결할 수 있는 웹 서버의 IP 주소로 응답한다.
실시예에서는, 글로벌 로드 밸런싱이, 권한 있는 DNS 리졸버들을 이용하여, 응답하는 권한 있는 DNS 리졸버에의 웹 서버들의 "근접성"(closeness)에 기초하여 웹 서버들에의 IP 주소들을 동적으로 선택한다. 패킷을 특정한 권한 있는 DNS 리졸버로 다이렉팅한 라우팅 프로토콜들은 또한 공급자의 네트워크에의 차후의 트래픽 흐름들의 루트를 기술한다. 따라서, 권한 있는 DNS 리졸버에 의해 선택된 가장 가까운 웹 서버는 또한 클라이언트에의 가장 가까운 웹 서버이다. 클라이언트는 그 후 권한 있는 DNS 리졸버에 의해 지정된 웹 서버와 직접 연결한다.
이 방법들은 인터넷의 맵을 작성하거나 유지할 필요 없이 실시간으로 동적으로 클라이언트를 "가장 가까운" 이용 가능한 서버로 다이렉팅하는 능력을 제공한다. 기초의 프로토콜들은 동적이고 고장들(faults) 또는 토폴로지 변화들에 대하여 자가 정정(self-correcting)하도록 설계되기 때문에, 맵을 업데이트하는 데 필요한 수 주의 시간과는 대조적으로, 수 초의 변화에 대한 반응 시간으로 정확한 트래픽 라우팅 결정들이 행해질 수 있다. 글로벌 로드 밸런싱 결정들을 행하기 위해 인터넷 패킷 흐름들을 제어하는 동일한 기초의 프로토콜들을 이용하여, 본 기법들은 개선된 웹사이트 성능으로 귀착할 수 있는 보다 정확하고 시기적절한 트래픽 라우팅을 제공한다.
[애니캐스트]
실시예에서는, 클라이언트를 "가장 가까운" 권한 있는 DNS 리졸버로 라우팅하기 위해 네트워크의 에지들 상의 상이한 위치들에 배치된 권한 있는 DNS 리졸버들과 함께 애니캐스트(anycast)가 이용된다. 애니캐스트는 각각이 동일한 IP 주소를 갖는 복수의 이용 가능한 서버 위치들 중 하나로 인터넷 트래픽을 라우팅하는 방법이다. 실시예에서는, 네트워크의 에지들 상에 배치된 권한 있는 DNS 리졸버들 중 2개 이상의 권한 있는 DNS 리졸버들에 동일한 IP 주소가 주어져서, 클라이언트 IP 패킷이 가장 가까운 권한 있는 DNS 리졸버에 라우팅될 수 있도록 한다. 애니캐스트는 용어 유니캐스트 및 멀티캐스트와 유사하다. 유니캐스트에서는, 소스 네트워크 주소와 대상 네트워크 종점(destination network endpoint) 사이에 일대일 연결(one-to-one association)이 존재한다. 멀티캐스트에서는, 소스 네트워크 주소들과 대상 네트워크 종점들 사이에 일대다 연결(one-to-many association)이 존재한다. 각 대상 주소는 모든 정보가 복제되는 수신자 종점들의 세트를 식별한다. 대조적으로, 애니캐스트는 소스 네트워크 주소들과 잠재적인 대상 네트워크 종점들 사이의 일대임의 연결(one-to-any association)이다. 각 대상 주소는 수신자 종점들의 세트를 식별하지만, 그들 중 하나만이 임의의 주어진 시간에 임의의 주어진 발신자로부터 정보를 수신하도록 선택된다.
애니캐스트는 그것이 모든 인터넷 프로토콜들에 대하여 이용되지 못하게 하는 불리점들을 갖는다. 예를 들면, 애니캐스트는 일관된 지점 간 통신(consistent point-to-point communications)을 보장할 수 없고 TCP 스트림 내의 모든 패킷들이 동일한 대상에 도달해야 하는 TCP 스트림들에 의지하는 웹 트래픽 애플리케이션들을 위하여 이용될 수 없다. 애니캐스트는 또한 연결의 상태를 유지할 수 없다. 그러나, 애니캐스트는 DNS 이름 분석(DNS name resolution)과 같은 단일 패킷 요청 및 응답을 이용하는 애플리케이션들에서 유용하다.
애니캐스트는 보더 게이트웨어 프로토콜(border gateway protocol)("BGP")을 이용하여 구현될 수 있다. BGP는 인터넷의 코어 라우팅 프로토콜(core routing protocol)이다. BGP는 네트워크에 도달하는 능력을 지정하는 "프리픽스들"(prefixes) 또는 IP 네트워크들의 라우팅 테이블들을 유지하는 것에 의해 작동한다. 라우팅 테이블 내의 정보는 대상 네트워크의 IP 주소, 패킷들이 그를 통해 송신되어야 하는 경로의 비용, 및 "다음 홉"(next hop)으로도 불리는, 패킷이 대상에 가능 도중에 송신되어야 하는 다음 스테이션의 주소를 포함할 수 있지만, 이들에 제한되지 않는다. BGP는 그 후 이용 가능한 경로들 및 네트워크 정책들에 기초하여 라우팅 결정들을 행한다. 예를 들면, 만약 동일한 대상으로의 이용 가능한 2개의 경로가 있고 제1 경로가 제2 경로보다 비용이 적게 든다면, 비용이 주요한 문제라면 제1 경로 라우팅이 선택될 수 있다. 다른 예에서, 만약 동일한 대상으로의 이용 가능한 2개의 경로가 있다면, 어느 경로가 패킷이 대상에 더 빨리 도달하게 하는가에 의해 라우팅이 결정될 수 있다. 이것은 "가장 가까운" 경로를 반환한다. 경로들을 선택하기 위한 기준들은 구현마다 변할 수 있다.
애니캐스트는 DNS와 함께 광범위하게 사용되었다. 예를 들면, DNS에서는, 클라이언트가 이름 분석을 위한 단일 패킷 요청을 복수의 권한 있는 DNS 리졸버들 중 어느 하나가 응답하는 큰 네트워크에 송신할 수 있다. 이 요청을 만족시키기 위해 어떤 연결의 상태 또는 TCP 스트림도 요구되지 않기 때문에, DNS는 애니캐스트를 위한 이상적인 애플리케이션이다. 애니캐스트에서는, 동일한 프리픽스, 또는 IP 주소들의 블록이 인터넷 상의 다수의 상이한 위치들로부터 동시에 통지된다. 특정한 프리픽스에 어드레싱되는 IP 패킷들은 그 후 주어진 프리픽스를 통지한 인터넷 상의 "가장 가까운" 위치로 라우팅될 수 있다.
실시예에서는, DNS 관리자들이 네트워크의 에지들 상에서 단일 IP 주소의 뒤에 마스킹된 다수의 위치들에 걸쳐서 다수의 서버들을 배치한다. BGP를 이용하여, 권한 있는 DNS 리졸버들, 또는 권한 있는 서버들의 앞의 라우터들이 그들의 대상 IP 블록으로의 루트들을 네트워크의 에지들로부터 전체로서의 인터넷까지 통지한다. 여기에서 사용될 때, 권한 있는 DNS 리졸버들은 권한 있는 DNS 리졸버들 자신, 권한 있는 DNS 리졸버의 앞의 라우터들, 또는 권한 있는 DNS 리졸버의 IP 블록으로의 루트들을 통지하는 경우, 권한 있는 DNS 리졸버의 일부일 수 있는 GLB 서버들을 지시할 수 있다.
클라이언트가 네트워크에 연결하기를 원하는 경우, 클라이언트는 이름 분석 IP 패킷을 네트워크에 송신한다. 착신되는 IP 패킷은, BGP 테이블들에 기초하여, 클라이언트로부터 가장 짧은 경로에 의해 공급자의 네트워크 내의 "가장 가까운" 권한 있는 DNS 리졸버로 라우팅된다.
이 기법의 예가 도 2에 도시되어 있다. 도 2에서는, 클라이언트(201)가 네트워크(221)에 연결하기를 원한다. 네트워크의 예는 도메인 "www.sampledomain.com"에 대한 네트워크일 수 있다. 네트워크(219)의 에지들 상의 상이한 위치들에, 또는 진입점들에 (글로벌 로드 밸런싱을 갖는) 권한 있는 DNS 리졸버들이 배치되어 있다. 진입점(215)은 DNS 리졸버(203)를 포함하고, 진입점(217)은 DNS 리졸버(205)를 포함하고, 진입점(219)은 DNS 리졸버(207)을 포함한다. 네트워크는 또한 클라이언트에 연결할 수 있는 웹 서버들(209, 211, 및 213)을 포함한다.
애니캐스트를 이용하여, 권한 있는 DNS 리졸버들, 또는 권한 있는 DNS 리졸버들의 앞의 라우터들 중 2개 이상이 "www.sampledomain.com"에 대한, 동일한 IP 대상 주소, 또는 프리픽스를 이웃 네트워크들에, 및 이 이웃 네트워크들을 통하여, 전체로서의 인터넷에 통지한다. 그 통지에 적어도 부분적으로 기초하여, BGP는 라우터들(223, 225, 227 및 229)에 저장된 라우팅 테이블들을 생성한다. 클라이언트(201)가 "www.sampledomain.com" 네트워크에 연결하기를 원하는 경우, 클라이언트(201)는 이름 분석 IP 패킷을 송출한다. 그 IP 패킷은 네트워크로의 임의의 경로를 따를 수 있다. 만약 IP 패킷이 경로(251)를 따른다면, IP 패킷은 라우터(223)에 도달한다. 라우터(223)는 경로(253)를 통하여 권한 있는 DNS 리졸버(203)로의 연결을 나타내는 라우팅 테이블을 포함한다. 라우터(223)로부터의 경로(257)는 라우터(225)에 연결한다. 만약 IP 패킷이 경로(255)를 따른다면, IP 패킷은 라우터(225)에 도달한다. 라우터(225)에서, 경로(259)는 라우터(227)에 이른다. 라우터(227)로부터, 경로(261)는 네트워크 및 DNS 리졸버(205)로 진행될 수 있다. 경로(263)는 라우터(229)에 이른다. 라우터(229)는 경로(265)를 통해 DNS 리졸버(207)에 연결할 수 있다. 따라서, 클라이언트(201)는 하나의 라우터(라우터(223)) 홉을 통해 DNS 리졸버(203)에, 2개의 라우터 홉들(라우터들(225, 227))을 통해 DNS 리졸버(205)에, 및 3개의 라우터 홉들(라우터들(225, 227, 229))을 통해 DNS 리졸버(207)에 연결할 수 있다.
BGP에 기초하여, IP 패킷은 가장 짧은 경로를 이용하여 네트워크(221)로 라우팅된다. 일부 경우에, 권한 있는 DNS 리졸버(203)로의 경로(251) 및 경로(253)를 취하는 것이 지리적으로 및 속도에 의해 가장 가까울 수 있다. 다른 경우에, 경로(255-259-261)와 같은 지리적으로 가장 긴 경로가 속도에 의해 "더 가까울" 수 있고 IP 패킷은 그 경로에서 라우팅된다.
[가장 가까운 웹 서버의 선택]
실시예에서는, 글로벌 로드 밸런싱("GLB")이 권한 있는 DNS 리졸버들이 착신되는 이름 분석 요청에 대한 동적인 응답들을 제공하게 한다. 일단 이름 분석 요청이 애니캐스트를 이용하여 "가장 가까운" 권한 있는 DNS 리졸버에 의해 수신되면, 그 권한 있는 리졸버에 "가장 가까운" 이용 가능한 웹 서버의 IP 주소로 응답이 행해진다. 여기에서 사용될 때, "가까운" 웹 서버들은 웹 서버의 지리적 근접, 트래픽 로드, 운용성(operability), 및 건강 상태를 포함하지만, 이들에 제한되지 않는 다수의 요인들에 의해 결정될 수 있다.
IP 패킷을 클라이언트로부터 특정한 권한 있는 DNS 리졸버로 다이렉팅한 기초의 라우팅 프로토콜들은 또한 공급자의 네트워크에의 차후의 연결 트래픽의 루트를 기술하기 때문에, 권한 있는 DNS 리졸버에의 "가장 가까운" 웹 서버는 또한 그 클라이언트에의 "가장 가까운" 웹 서버이다.
실시예에서는, 어느 웹 서버가 권한 있는 DNS 리졸버에 "가장 가까운지"지를 결정하는 것이 정기적인 건강 검사들(regular health checks) 동안에 수행될 수 있다. 웹 서버들의 건강 검사에서는, 권한 있는 DNS 리졸버가 구성된 웹 서버들 모두를 폴링한다. 권한 있는 DNS 리졸버는 어느 서버들이 이용 가능하고 어느 서버들이 가장 가까운지에 관한 정보를 수집한다. 이용 가능성은 웹 서버들의 건강을 검사하는 것에 의해 결정될 수 있고 근접성은 웹 서버로부터 권한 있는 DNS 리졸버로의 응답의 대기 시간(latency)에 의해 결정될 수 있다. 일단 이 정보가 수집되고 처리되면, 권한 있는 DNS 리졸버는 가장 가까운 이용 가능한 웹 서버의 IP 주소로 이름 분석 요청에 응답한다. 차후의 TCP 트래픽 흐름은 웹 서버에 도달하기 위해 네트워크의 에지 상의 권한 있는 DNS 리졸버에 의해 통과하기 때문에, 웹 서버는 또한 클라이언트에의 가장 가까운 이용 가능한 웹 서버이다.
본 발명의 실시예에 따른, 서버에 연결하는 클라이언트의 예가 도 3a에 도시되어 있다. 클라이언트(319)는 네트워크(300)에 연결하기를 원한다. 네트워크의 에지들, 또는 진입점들에는 "1.1.1.1"의 대상 IP 주소를 통지하는 (권한 있는 DNS 리졸버들을 갖는) GLB들(301, 303, 및 305)이 있다. 진입점(313)은 DNS 리졸버(301)를 포함하고, 진입점(315)은 DNS 리졸버(303)를 포함하고, 진입점(317)은 DNS 리졸버(305)를 포함한다.
네트워크는 또한 클라이언트와 TCP 연결할 수 있는 웹 서버들을 포함한다. 이 예에서, 웹 서버(307)는 "2.2.2.2"의 IP 주소를 갖는다. 웹 서버(309)는 "3.3.3.3"의 IP 주소를 갖고 웹 서버(311)는 "4.4.4.4"의 IP 주소를 갖는다.
클라이언트(319)가 네트워크(300)에 연결하기를 원하는 경우, 클라이언트(319)는 이름 분석 IP 패킷을 네트워크(300)에 송신한다. 그 IP 패킷은 BGP를 통해 "가장 가까운" 권한 있는 DNS 리졸버(301)로 라우팅된다. 애니캐스트 및 BGP 프로세스는 이 특정한 도면에서 도시되어 있지 않다. 이 예에서, 클라이언트(319)는 경로(323)를 통해 "가장 가까운" 권한 있는 DNS 리졸버로 라우팅되는 IP 패킷을 송신하고, 이 경우 "가장 가까운" 권한 있는 DNS 리졸버는 권한 있는 DNS 리졸버(301)이다. 권한 있는 DNS 리졸버(301)는 이용 가능한 웹 서버들 각각의 건강 검사들을 이미 수행하였다. 권한 있는 DNS 리졸버(301)는 경로(329)를 통하여 웹 서버(307)를 폴링하고, 경로(327)를 통하여 웹 서버(309)를 폴링하고, 경로(325)를 통하여 웹 서버(311)를 폴링한다. 이 예에서, 권한 있는 DNS 리졸버(301)는 웹 서버(307)가 "가장 가까운" 것을 결정한다. 권한 있는 DNS 리졸버(301)는 그 후 웹 서버(307)의 IP 주소("2.2.2.2")를 클라이언트(319)에 송신한다. 클라이언트는 그 후 동일한 기초의 프로토콜들을 이용하여 권한 있는 DNS 리졸버(301)가 위치하는 네트워크의 에지에 연결하고 웹 서버(307)에 연결한다. 따라서, 클라이언트(319)는 인터넷의 맵들을 생성하지 않고 가장 가까운 웹 서버(307)에 연결할 수 있다.
[서버 장애 조치]
실시예에서는, 선택된 권한 있는 DNS 서버의 가까이에 웹 서버가 없는 경우, 또는 웹 서버가 실패한 경우에, 클라이언트로부터 웹 서버로의 연결은 여전히 선택된 권한 있는 DNS 리졸버와 동일한 네트워크 진입점을 통과한다. 이것은 장애 조치(failover) 또는 과부하 피드백(overload feedback)에서 일어날 수 있다. 여기에서 사용될 때, 서버의 장애 조치는 이전에 활성인 서버의 실패 또는 비정상 종료 시에 여분의 또는 대기 서버로 자동으로 전환하는 능력을 지시한다. 과부하 피드백은, 여기에서 사용될 때, 작업 또는 네트워크 트래픽의 양이 지정된 임계치를 초과한다는 것과 연결 요청들이 상이한 서버에 행해져야 한다는 것을 나타내는 서버들 또는 네트워크로부터의 정보를 지시한다. 이것은 도 3b에 나타내어져 있다.
도 3b에서는, 웹 서버(307)가 실패했다. 이것은 운영 실패 또는 트래픽 과부하로 인한 것일 수 있다. 실패는 통상의 건강 검사 하에서 권한 있는 DNS 리졸버(301)에 의해 검출된다. 클라이언트는 도 3a에 도시된 것과 동일한 "가까운" 권한 있는 DNS 리졸버(301)로 라우팅된다. 이러한 상황에서는, 클라이언트는 여전히 동일한 네트워크 진입점(313)을 통과한다. 권한 있는 DNS 리졸버(301)는 실패한 웹 서버(307)가 아니라, 웹 서버(309)가 "가장 가까운" 웹 서버라고 결정한다. 권한 있는 DNS 리졸버(301)는 클라이언트(319)에 웹 서버(309)의 IP 주소("3.3.3.3")를 송신한다. 클라이언트(319)는 그 후 진입점(313)을 통하여 연결하고 경로(331)를 취하여 웹 서버(309)에 연결한다.
실시예에서는, 클라이언트가 웹 서버에 연결될 때 웹 서버가 실패하는 경우, 클라이언트는 네트워크에 다시 연결하기 위해 네트워크에 이름 분석 IP 패킷을 재송신한다. 그 IP 패킷은 최초 연결이 행해진 때와 동일한 권한 있는 DNS 리졸버로 라우팅될 수 있다. 권한 있는 DNS 리졸버는 폴링된 이용 가능성 및 근접성에 기초하여 웹 서버를 선택한다. 실패한 웹 서버는 더 이상 이용 가능하지 않아야 한다. 새로이 선택된 웹 서버의 IP 주소가 클라이언트에 송신되고 클라이언트로부터 새로이 선택된 웹 서버의 사이에 연결이 확립된다.
[하드웨어 개관]
도 4는 본 발명의 실시예가 구현될 수 있는 컴퓨터 시스템(400)을 도시하는 블록 다이어그램이다. 컴퓨터 시스템(400)은 정보를 통신하기 위한 버스(402) 또는 다른 통신 매체, 및 정보를 처리하기 위해 버스(402)와 연결된 프로세서(404)를 포함한다. 컴퓨터 시스템(400)은 또한 프로세서(404)에 의해 실행될 명령들 및 정보를 저장하기 위해 버스(402)에 연결된, RAM(random access memory) 또는 다른 동적(dynamic) 저장 장치와 같은, 주 메모리(406)를 포함한다. 주 메모리(406)는 또한 프로세서(404)에 의해 실행될 명령들의 실행 중에 임시 변수들 또는 다른 중간 정보를 저장하기 위해 이용될 수 있다. 컴퓨터 시스템(400)은 프로세서(404)에 대한 정적(static) 정보 및 명령들을 저장하기 위해 버스(402)에 연결된 ROM(read only memory)(408) 또는 다른 정적 저장 장치를 더 포함할 수 있다. 정보 및 명령들을 저장하기 위해 자기 디스크 또는 광 디스크와 같은 저장 장치(410)가 제공되고 버스(402)에 연결된다.
컴퓨터 시스템(400)은 정보를 컴퓨터 사용자에게 디스플레이하기 위한, 음극선관(CRT)과 같은 디스플레이(412)에 버스(402)를 통해 연결될 수 있다. 정보 및 명령 선택들을 프로세서(404)에 전달하기 위해 영숫자 및 다른 키들을 포함하는, 입력 장치(414)가 버스(402)에 연결된다. 다른 유형의 사용자 입력 장치는 방향 정보 및 명령 선택들을 프로세서(404)에 전달하기 위한 및 디스플레이(412) 상의 커서 움직임을 제어하기 위한 마우스, 트랙볼, 또는 커서 방향 키들과 같은 커서 컨트롤(416)이다. 이 입력 장치는 통상적으로 그 장치가 평면 내의 위치들을 지정하게 하는 2개의 축, 즉 제1 축(예를 들면, x) 및 제2 축(예를 들면, y)에서의 2개의 자유도를 갖는다.
본 발명은 여기에서 설명된 기법들을 구현하기 위한 컴퓨터 시스템(400)의 이용과 관련되어 있다. 본 발명의 하나의 실시예에 따르면, 그 기법들은 프로세서(404)가 주 메모리(406)에 포함된 하나 이상의 명령들의 하나 이상의 시퀀스들을 실행하는 것에 응답하여 컴퓨터 시스템(400)에 의해 수행된다. 그러한 명령들은 저장 장치(410)와 같은 다른 기계 판독 가능한 매체로부터 주 메모리(406) 내로 판독된다. 주 메모리(406)에 포함된 명령들의 시퀀스들의 실행은 프로세서(404)로 하여금 여기에서 설명된 프로세스 단계들을 수행하게 한다. 대안 실시예들에서는, 본 발명을 구현하기 위해 배선에 의한 회로(hard-wired circuitry)가 소프트웨어 대신에 또는 소프트웨어와 조합하여 이용될 수 있다. 따라서, 본 발명의 실시예들은 하드웨어 회로와 소프트웨어의 임의의 특정한 조합에 제한되지 않는다.
여기에서 사용된 용어 "기계 판독 가능한 매체"(machine-readable medium)는 기계로 하여금 특정한 방식으로 동작하게 하는 데이터를 제공하는 데에 관여하는 임의의 매체를 지시한다. 컴퓨터 시스템(400)을 이용하여 구현된 실시예에서는, 다양한 기계 판독 가능한 매체가, 예를 들면, 실행을 위해 프로세서(404)에 명령들을 제공하는 데에 관련된다. 그러한 매체는 저장 매체 및 전송 매체를 포함하지만 이들에 제한되지 않는 많은 형태들을 취할 수 있다. 저장 매체는 비휘발성 매체 및 휘발성 매체 양쪽 모두를 포함한다. 비휘발성 매체는, 예를 들면, 저장 장치(410)와 같은, 광 또는 자기 디스크를 포함한다. 휘발성 매체는 주 메모리(406)와 같은 동적 메모리를 포함한다. 전송 매체는, 버스(402)를 포함하는 와이어들을 포함하여, 동축 케이블(coaxial cable), 구리 와이어 및 광섬유를 포함한다. 전송 매체는 또한 전자파(radio-wave) 및 적외선 데이터 통신 동안에 생성되는 것들과 같은 음파 또는 광파의 형태를 취할 수 있다. 모든 그러한 매체는 그 매체에 의해 운반되는 명령들이 그 명령들을 기계 안으로 판독하는 물리적 메커니즘에 의해 검출될 수 있게 하기 위해 실체적이어야 한다.
기계 판독 가능한 매체의 통상적인 형태들은, 예를 들면, 플로피 디스크, 플렉시블 디스크, 하드 디스크, 자기 테이프, 또는 임의의 다른 자기 매체, CD-ROM, 임의의 다른 광 매체, 펀치카드, 페이퍼테이프, 구멍들의 패턴들을 갖는 임의의 다른 물리적 매체, RAM, RROM, 및 EPROM, FLASH-EPROM, 임의의 다른 메모리 칩 또는 카트리지, 아래에 설명되는 반송파(carrier wave), 또는 그로부터 컴퓨터가 판독할 수 있는 임의의 다른 매체를 포함한다.
기계 판독 가능한 매체의 다양한 형태들이 실행을 위해 하나 이상의 명령들의 하나 이상의 시퀀스들을 프로세서(404)에 운반하는 데 관련될 수 있다. 예를 들면, 명령들은 처음에 원격 컴퓨터의 자기 디스크 상에서 운반될 수 있다. 원격 컴퓨터는 그 명령들을 그것의 동적 메모리 내에 로딩하고 그 명령들을 모뎀을 이용하는 전화선을 통하여 송신할 수 있다. 컴퓨터 시스템(400)에 로컬인 모뎀은 전화선 상의 데이터를 수신하고 적외선 송신기를 이용하여 그 데이터를 적외선 신호로 변환할 수 있다. 적외선 검출기가 적외선 신호에서 운반되는 데이터를 수신하고 적당한 회로가 그 데이터를 버스(402)에 실을 수 있다. 버스(402)는 그 데이터를 주 메모리(406)에 운반하고, 주 메모리(406)로부터 프로세서(404)가 명령들을 검색하여 실행한다. 주 메모리(406)에 의해 수신된 명령들은 옵션으로 프로세서(404)에 의한 실행의 전에 또는 후에 저장 장치(410)에 저장될 수 있다.
컴퓨터 시스템(400)은 또한 버스(402)에 연결된 통신 인터페이스(418)를 포함한다. 통신 인터페이스(418)는 로컬 네트워크(422)에 연결되어 있는 네트워크 링크(420)에 결합하는 양방향(two-way) 데이터 통신을 제공한다. 예를 들면, 통신 인터페이스(418)는 대응하는 유형의 전화선에의 데이터 통신 연결을 제공하는 모뎀 또는 ISDN(integrated services digital network) 카드일 수 있다. 다른 예로서, 통신 인터페이스(418)는 호환되는 LAN에의 데이터 통신 연결을 제공하는 LAN(local area network) 카드일 수 있다. 무선 링크들이 구현될 수도 있다. 임의의 그러한 구현에서, 통신 인터페이스(418)는 다양한 유형의 정보를 나타내는 디지털 데이터 스트림들을 운반하는 전기, 전자기 또는 광 신호들을 송수신한다.
네트워크 링크(420)는 일반적으로 하나 이상의 네트워크를 통하여 다른 데이터 장치들에 데이터 통신을 제공한다. 예를 들면, 네트워크 링크(420)는 로컬 네트워크(422)를 통하여 호스트 컴퓨터(424)에 또는 ISP(Internet Service Provider)(426)에 의해 운영되는 데이터 장비에 연결을 제공할 수 있다. ISP(426)는 지금은 일반적으로 "인터넷"(428)으로 불리는 월드 와이드 패킷 데이터 통신 네트워크(world wide packet data communication network)를 통하여 데이터 통신 서비스들을 제공한다. 로컬 네트워크(422) 및 인터넷(428)은 양쪽 모두 디지털 데이터 스트림들을 운반하는 전기, 전자기 또는 광 신호들을 이용한다. 컴퓨터 시스템(400)으로 및 컴퓨터 시스템(400)으로부터 디지털 데이터를 운반하는, 다양한 네트워크들을 통한 신호들 및 네트워크 링크(420) 상의 및 통신 인터페이스(418)를 통한 신호들은 정보를 운송하는 반송파들의 예시적인 형태들이다.
컴퓨터 시스템(400)은, 네트워크(들), 네트워크 링크(420) 및 통신 인터페이스(418)를 통하여, 메시지들을 송신하고, 프로그램 코드를 포함하는, 데이터를 수신할 수 있다. 인터넷 예에서는, 서버(430)가 인터넷(428), ISP(426), 로컬 네트워크(422) 및 통신 인터페이스(418)를 통하여 애플리케이션 프로그램에 대한 요청된 코드를 송신할 수 있다.
수신된 코드는 그것이 수신되고, 및/또는 나중의 실행을 위해 저장 장치(410), 또는 다른 비휘발성 저장 장치에 저장되기 때문에 프로세서(404)에 의해 실행될 수 있다. 이런 식으로, 컴퓨터 시스템(400)은 반송파의 형태로 애플리케이션 코드를 획득할 수 있다.
상술한 명세서에서는, 구현마다 변화할 수 있는 다수의 특정한 상세들에 관련하여 본 발명의 실시예들이 설명되었다. 따라서, 본 발명이고, 본 출원인들에 의해 본 발명인 것으로 의도되는 것의 단 하나의 배타적인 지시자는 이 출원으로부터 발행되는 청구항들의 세트이고, 임의의 차후의 보정을 포함하여, 그러한 청구항들이 발행되는 특정한 형태의 것이다. 그러한 청구항들에 포함된 용어들에 대하여 여기에서 명백히 진술된 임의의 정의들은 청구항들에서 사용되는 그러한 용어들의 의미를 지배할 것이다. 따라서, 청구항에서 명백히 기재되지 않은 어떤 제한, 구성 요소, 속성, 특징, 이점 또는 특성도 그러한 청구항을 어떤 식으로도 제한하지 않아야 한다. 따라서, 본 명세서 및 도면들은 제한적인 것보다는 설명적인 점에서 간주되어야 한다.

Claims (34)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 도메인 이름에 매핑되는 서버들의 리스트를 로드 밸런싱 리졸버(load balancing resolver)에서 유지하는 단계 ? 상기 서버들의 리스트 내의 복수의 서버들 중 각 서버는 상기 복수의 서버들 내의 각 다른 서버와 상이한 주소를 가지고, 각 서버는 그 서버의 상기 로드 밸런싱 리졸버에의 가까움을 측정하는 서로 다른 가까움의 측정값(a separate closeness measure)을 가짐 ?;
    상기 로드 밸런싱 리졸버에서, 상기 도메인 이름에 대응하는 주소를 식별하라는 요청을 클라이언트로부터 수신하는 단계;
    상기 복수의 서버들 내의 서버들의 가까움의 측정값들의 비교를 수행하는 단계;
    적어도 상기 가까움의 측정값들의 비교에 기초하여 상기 도메인 이름에 매핑되는 상기 서버들의 리스트로부터 특정한 서버를 선택하는 단계 - 상기 비교가, 상기 특정한 서버가 상기 로드 밸런싱 리졸버에 가장 가깝다는 것을 나타내기 때문에 상기 특정한 서버가 선택됨 - ;
    를 포함하고,
    상기 특정한 서버는 특정한 주소를 가지고,
    상기 도메인 이름에 대응하는 주소를 식별하라는 요청에 응답하여, 상기 선택에 기초하여, 상기 로드 밸런싱 리졸버가 상기 특정한 서버의 특정한 주소에 대응하는 도메인 이름을 지정하는 메시지로 상기 클라이언트에 응답하는 방법.
  22. 제21항에 있어서,
    상기 요청은 애니캐스트 주소(Anycast address)로 다이렉팅되는 애니캐스트 메시지이고,
    상기 로드 밸런싱 리졸버는 상기 애니캐스트 주소를 공유하는 복수의 로드 밸런싱 리졸버들 중 하나인 방법.
  23. 제21항에 있어서,
    상기 로드 밸런싱 리졸버는 상기 클라이언트와 상기 특정한 서버 사이의 가까움의 측정을 나타내는 매핑 정보를 유지하지 않는 방법.
  24. 제21항에 있어서,
    상기 로드 밸런싱 리졸버는 상기 클라이언트와 상기 로드 밸런싱 리졸버 사이의 가까움의 측정을 나타내는 매핑 정보를 유지하지 않는 방법.
  25. 제21항에 있어서,
    상기 로드 밸런싱 리졸버는 권한 있는 이름 서버(authoritative nameserver)인 방법.
  26. 제21항에 있어서,
    상기 로드 밸런싱 리졸버 및 상기 서버들의 리스트 내의 상기 서버들 양쪽 모두는 제1 논리 네트워크에 있고, 상기 클라이언트는 제2 논리 네트워크에 있는 방법.
  27. 제21항에 있어서,
    상기 서버들의 리스트 내의 상기 서버들은 제1 논리 네트워크에 있고, 상기 로드 밸런싱 리졸버는 상기 제1 논리 네트워크의 에지(edge)에 있고, 상기 클라이언트는 제2 논리 네트워크에 있는 방법.
  28. 제21항에 있어서,
    상기 가까움의 측정값들은, 지리적 근접의 측정; 상기 로드 밸런싱 리졸버와 상기 특정한 서버 사이의 연결 속도의 측정; 상기 로드 밸런싱 리졸버와 상기 특정한 서버 사이의 트래픽 로드(traffic load)의 측정; 및 상기 로드 밸런싱 리졸버와 상기 특정한 서버 사이의 응답 대기 시간(response latency)의 측정 중 하나 이상에 기초하는 방법.
  29. 제21항에 있어서,
    상기 특정한 서버는 상기 특정한 서버가 상기 서버들의 리스트 내의 임의의 다른 활성 서버보다 상기 로드 밸런싱 리졸버에 더 가깝기 때문에 선택되는 방법.
  30. 제21항에 있어서,
    상기 로드 밸런싱 리졸버가 상기 서버들의 리스트 내의 각 서버에의 연결들을 모니터하는 단계를 더 포함하고, 상기 선택하는 단계는 상기 모니터하는 단계에 적어도 기초하는 방법.
  31. 시스템으로서,
    복수의 컴퓨팅 장치들에 의해 구현되는 복수의 로드 밸런싱 리졸버들을 포함하고;
    상기 복수의 로드 밸런싱 리졸버들 내의 각 로드 밸런싱 리졸버는 동일한 애니캐스트 주소를 갖도록 구성되고;
    상기 복수의 로드 밸런싱 리졸버들 내의 각 로드 밸런싱 리졸버는 상기 애니캐스트 주소로 다이렉팅되는 메시지들을 수신하도록 더 구성되고;
    상기 복수의 로드 밸런싱 리졸버들 내의 각 로드 밸런싱 리졸버는 제21항 내지 제30항 중 어느 한 항에 기재된 방법을 수행함으로써 클라이언트들로부터의 요청들에 응답하도록 더 구성되는 시스템.
  32. 제21항 내지 제30항 중 어느 한 항에 기재된 방법을 수행하는 수단을 포함하는 장치.
  33. 하나 이상의 프로세서들에 의해 실행될 때, 제21항 내지 제30항 중 어느 한 항에 기재된 방법을 수행하게 하는 명령들을 저장하는 하나 이상의 컴퓨터 판독 가능한 매체.
  34. 제21항 내지 제30항 중 어느 한 항에 기재된 방법을 수행하는 컴퓨터 시스템 디바이스.
KR1020107016801A 2007-12-28 2008-12-23 애니캐스트를 통한 맵리스 글로벌 트래픽 로드 밸런싱 KR101177203B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/966,989 2007-12-28
US11/966,989 US20090172192A1 (en) 2007-12-28 2007-12-28 Mapless Global Traffic Load Balancing Via Anycast
PCT/US2008/088158 WO2009086373A2 (en) 2007-12-28 2008-12-23 Mapless global traffic load balancing via anycast

Publications (2)

Publication Number Publication Date
KR20100106540A KR20100106540A (ko) 2010-10-01
KR101177203B1 true KR101177203B1 (ko) 2012-08-24

Family

ID=40799949

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107016801A KR101177203B1 (ko) 2007-12-28 2008-12-23 애니캐스트를 통한 맵리스 글로벌 트래픽 로드 밸런싱

Country Status (8)

Country Link
US (2) US20090172192A1 (ko)
EP (1) EP2235885B1 (ko)
JP (1) JP5255653B2 (ko)
KR (1) KR101177203B1 (ko)
CN (1) CN101911600B (ko)
AU (1) AU2008345200B2 (ko)
TW (1) TWI398149B (ko)
WO (1) WO2009086373A2 (ko)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8493858B2 (en) 2006-08-22 2013-07-23 Citrix Systems, Inc Systems and methods for providing dynamic connection spillover among virtual servers
US8312120B2 (en) * 2006-08-22 2012-11-13 Citrix Systems, Inc. Systems and methods for providing dynamic spillover of virtual servers based on bandwidth
US8180896B2 (en) * 2008-08-06 2012-05-15 Edgecast Networks, Inc. Global load balancing on a content delivery network
US8706878B1 (en) * 2008-08-21 2014-04-22 United Services Automobile Association Preferential loading in data centers
US20110035497A1 (en) * 2009-08-05 2011-02-10 Dynamic Network Services, Inc. System and method for providing global server load balancing
US9882809B2 (en) * 2009-11-24 2018-01-30 Verizon Patent And Licensing Inc. Just-in time forwarding information base
US8230054B2 (en) * 2009-12-23 2012-07-24 Citrix Systems, Inc. Systems and methods for managing dynamic proximity in multi-core GSLB appliance
US8856281B2 (en) * 2010-03-22 2014-10-07 At&T Intellectual Property I, L.P. Internet protocol version 6 content routing
US8745128B2 (en) 2010-09-01 2014-06-03 Edgecast Networks, Inc. Optimized content distribution based on metrics derived from the end user
US8639748B2 (en) 2010-09-01 2014-01-28 Edgecast Networks, Inc. Optimized content distribution based on metrics derived from the end user
US8949410B2 (en) * 2010-09-10 2015-02-03 Cisco Technology, Inc. Server load balancer scaling for virtual servers
US8468222B2 (en) 2010-11-16 2013-06-18 Edgecast Networks, Inc. Discrete mapping for targeted caching
US9407539B1 (en) 2011-06-24 2016-08-02 Amazon Technologies, Inc. Techniques for utilizing network destination identifiers simultaneously announced from multiple locations
CN102223381A (zh) * 2011-07-07 2011-10-19 莫雅静 一种消息推送方法、服务器、客户端及系统
US9154549B2 (en) 2011-10-27 2015-10-06 Cisco Technology, Inc. Dynamic server farms
US8738766B1 (en) 2011-11-01 2014-05-27 Edgecast Networks, Inc. End-to-end monitoring and optimization of a content delivery network using anycast routing
US8745177B1 (en) 2011-11-01 2014-06-03 Edgecast Networks, Inc. End-to-end monitoring and optimization of a content delivery network using anycast routing
US8924581B1 (en) * 2012-03-14 2014-12-30 Amazon Technologies, Inc. Managing data transfer using streaming protocols
CN104412550A (zh) * 2012-05-11 2015-03-11 惠普发展公司,有限责任合伙企业 服务器选择
JP2014112768A (ja) * 2012-12-05 2014-06-19 Hitachi Ltd 自動障害対応キャッシュシステム及びキャッシュサーバの障害対応処理方法並びにキャッシュマネージャ
US9686158B1 (en) * 2013-03-13 2017-06-20 United Services Automobile Association (Usaa) Point to node in a multi-tiered middleware environment
US9197487B2 (en) * 2013-03-15 2015-11-24 Verisign, Inc. High performance DNS traffic management
CN104144227B (zh) * 2013-05-10 2017-11-21 中国电信股份有限公司 Ip地址查询方法、系统与全网资源控制器
US10097503B2 (en) 2013-09-27 2018-10-09 Fastly, Inc. Content node network address selection for content delivery
CN104519146A (zh) * 2013-09-29 2015-04-15 中国电信股份有限公司 基于用户位置进行域名解析服务的方法与系统
US9467506B2 (en) 2014-01-27 2016-10-11 Google Inc. Anycast based, wide area distributed mapping and load balancing system
US9887914B2 (en) 2014-02-04 2018-02-06 Fastly, Inc. Communication path selection for content delivery
US10044609B2 (en) * 2014-02-04 2018-08-07 Fastly, Inc. Communication path selection for content delivery
US9900281B2 (en) 2014-04-14 2018-02-20 Verisign, Inc. Computer-implemented method, apparatus, and computer-readable medium for processing named entity queries using a cached functionality in a domain name system
US9560124B2 (en) * 2014-05-13 2017-01-31 Google Inc. Method and system for load balancing anycast data traffic
US9923959B2 (en) 2014-06-05 2018-03-20 Microsoft Technology Licensing, Llc Load balancing with layered edge servers
CN104144222B (zh) * 2014-08-20 2015-08-19 北京阅联信息技术有限公司 Dns授权系统中基于别名记录的负载均衡方法及系统
US10015077B2 (en) * 2015-05-22 2018-07-03 Microsoft Technology Licensing, Llc Forwarding current request based on, at least in part, previous request(s)
CN105592181A (zh) * 2015-10-15 2016-05-18 杭州华三通信技术有限公司 一种链路负载均衡方法及装置
US10505894B2 (en) * 2016-10-13 2019-12-10 Microsoft Technology Licensing, Llc Active and passive method to perform IP to name resolution in organizational environments
US10298543B2 (en) * 2016-12-12 2019-05-21 Verisign, Inc. Real-time association of a policy-based firewall with a dynamic DNS hostname
US11032127B2 (en) 2017-06-26 2021-06-08 Verisign, Inc. Resilient domain name service (DNS) resolution when an authoritative name server is unavailable
CN108600051B (zh) * 2018-04-28 2020-02-18 网宿科技股份有限公司 BGP Anycast集群服务质量探测方法和探测设备
CN108833609B (zh) * 2018-06-25 2021-07-13 哈尔滨工业大学 一种基于历史拓扑测量数据的局部网络目的ip地址选择方法
CN109005253B (zh) 2018-09-06 2021-08-17 中电科航空电子有限公司 网络负载均衡的系统
WO2020087002A1 (en) * 2018-10-26 2020-04-30 Akamai Technologies, Inc. Dns everywhere
US11005929B1 (en) 2019-01-30 2021-05-11 Cisco Technology, Inc. Dynamic data center load balancing using border gateway protocol
CN110457631A (zh) * 2019-07-30 2019-11-15 维沃移动通信有限公司 跳转异常信息确定方法及装置
CN110933128B (zh) * 2019-10-08 2021-04-16 网宿科技股份有限公司 节点流量调度方法、装置、电子设备及存储介质
CN111953802A (zh) * 2020-07-06 2020-11-17 网宿科技股份有限公司 一种域名的解析方法、系统、设备及存储介质
US20220321479A1 (en) * 2021-04-02 2022-10-06 Microsoft Technology Licensing, Llc Anycast routing technique for a content delivery network
US20230239215A1 (en) * 2022-01-21 2023-07-27 Qualcomm Incorporated Server availability checking for edge computing services

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030079027A1 (en) * 2001-10-18 2003-04-24 Michael Slocombe Content request routing and load balancing for content distribution networks
US20030105865A1 (en) 1999-09-03 2003-06-05 Fastforward Networks, Inc. Proximity-based redirection system for robust and scalable service-node location in an internetwork
US20050010653A1 (en) 1999-09-03 2005-01-13 Fastforward Networks, Inc. Content distribution system for operation over an internetwork including content peering arrangements
US20060193252A1 (en) * 2005-02-25 2006-08-31 Cisco Technology, Inc. Active-active data center using RHI, BGP, and IGP anycast for disaster recovery and load distribution

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6665702B1 (en) * 1998-07-15 2003-12-16 Radware Ltd. Load balancing
US6249801B1 (en) * 1998-07-15 2001-06-19 Radware Ltd. Load balancing
US6405252B1 (en) * 1999-11-22 2002-06-11 Speedera Networks, Inc. Integrated point of presence server network
EP1236329A1 (en) 1999-11-23 2002-09-04 Infolibria, Inc. Optimal request routing by exploiting packet routers topology information
US6820133B1 (en) * 2000-02-07 2004-11-16 Netli, Inc. System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination
FI108592B (fi) * 2000-03-14 2002-02-15 Sonera Oyj Laskutus langatonta sovellusprotokollaa käyttävässä matkapuhelinjärjestelmässä
US6976090B2 (en) * 2000-04-20 2005-12-13 Actona Technologies Ltd. Differentiated content and application delivery via internet
US7020698B2 (en) * 2000-05-31 2006-03-28 Lucent Technologies Inc. System and method for locating a closest server in response to a client domain name request
US7165116B2 (en) * 2000-07-10 2007-01-16 Netli, Inc. Method for network discovery using name servers
US7725602B2 (en) * 2000-07-19 2010-05-25 Akamai Technologies, Inc. Domain name resolution using a distributed DNS network
TWI223942B (en) * 2001-02-20 2004-11-11 Li Jian Min Contents transmission network system and creating method thereof
WO2002071780A2 (en) * 2001-03-06 2002-09-12 At & T Wireless Services, Inc. Method and system for real-time network analysis and performance management of a mobile communications network
US7007089B2 (en) * 2001-06-06 2006-02-28 Akarnai Technologies, Inc. Content delivery network map generation using passive measurement data
US20030055979A1 (en) * 2001-09-19 2003-03-20 Cooley William Ray Internet domain name resolver
KR100428767B1 (ko) * 2002-01-11 2004-04-28 삼성전자주식회사 트래픽 정보를 이용한 가입자 라우팅 설정 방법 및 이를위한 기록매체
CN100403293C (zh) * 2002-01-28 2008-07-16 特瑞帝德国际公司 用于阶层式服务和内容分布的网络系统方法和协定
US7512702B1 (en) * 2002-03-19 2009-03-31 Cisco Technology, Inc. Method and apparatus providing highly scalable server load balancing
US7139840B1 (en) * 2002-06-14 2006-11-21 Cisco Technology, Inc. Methods and apparatus for providing multiple server address translation
WO2004073269A1 (ja) * 2003-02-13 2004-08-26 Fujitsu Limited 伝送システム,配信経路制御装置,負荷情報収集装置および配信経路制御方法
US7159034B1 (en) * 2003-03-03 2007-01-02 Novell, Inc. System broadcasting ARP request from a server using a different IP address to balance incoming traffic load from clients via different network interface cards
US8037203B2 (en) * 2004-02-19 2011-10-11 International Business Machines Corporation User defined preferred DNS reference
US7584435B2 (en) * 2004-03-03 2009-09-01 Omniture, Inc. Web usage overlays for third-party web plug-in content
US7548945B2 (en) * 2005-04-13 2009-06-16 Nokia Corporation System, network device, method, and computer program product for active load balancing using clustered nodes as authoritative domain name servers
US20070036146A1 (en) * 2005-08-10 2007-02-15 Bellsouth Intellectual Property Corporation Analyzing and resolving internet service problems
US8743703B2 (en) * 2006-08-22 2014-06-03 Centurylink Intellectual Property Llc System and method for tracking application resource usage
US9479341B2 (en) * 2006-08-22 2016-10-25 Centurylink Intellectual Property Llc System and method for initiating diagnostics on a packet network node
US8015294B2 (en) * 2006-08-22 2011-09-06 Embarq Holdings Company, LP Pin-hole firewall for communicating data packets on a packet network
US8307065B2 (en) * 2006-08-22 2012-11-06 Centurylink Intellectual Property Llc System and method for remotely controlling network operators
US20080167886A1 (en) * 2007-01-05 2008-07-10 Carl De Marcken Detecting errors in a travel planning system
US20090100128A1 (en) * 2007-10-15 2009-04-16 General Electric Company Accelerating peer-to-peer content distribution
US7962631B2 (en) * 2007-12-21 2011-06-14 Yahoo! Inc. Method for determining network proximity for global traffic load balancing using passive TCP performance instrumentation
US20090245114A1 (en) * 2008-04-01 2009-10-01 Jayanth Vijayaraghavan Methods for collecting and analyzing network performance data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030105865A1 (en) 1999-09-03 2003-06-05 Fastforward Networks, Inc. Proximity-based redirection system for robust and scalable service-node location in an internetwork
US20050010653A1 (en) 1999-09-03 2005-01-13 Fastforward Networks, Inc. Content distribution system for operation over an internetwork including content peering arrangements
US20030079027A1 (en) * 2001-10-18 2003-04-24 Michael Slocombe Content request routing and load balancing for content distribution networks
US20060193252A1 (en) * 2005-02-25 2006-08-31 Cisco Technology, Inc. Active-active data center using RHI, BGP, and IGP anycast for disaster recovery and load distribution

Also Published As

Publication number Publication date
WO2009086373A2 (en) 2009-07-09
WO2009086373A3 (en) 2009-09-11
CN101911600B (zh) 2016-06-29
AU2008345200B2 (en) 2012-04-05
EP2235885A4 (en) 2013-05-29
EP2235885B1 (en) 2018-02-07
CN101911600A (zh) 2010-12-08
US8073953B2 (en) 2011-12-06
TWI398149B (zh) 2013-06-01
EP2235885A2 (en) 2010-10-06
TW200941988A (en) 2009-10-01
US20100235441A1 (en) 2010-09-16
AU2008345200A1 (en) 2009-07-09
JP2011509029A (ja) 2011-03-17
KR20100106540A (ko) 2010-10-01
JP5255653B2 (ja) 2013-08-07
US20090172192A1 (en) 2009-07-02

Similar Documents

Publication Publication Date Title
KR101177203B1 (ko) 애니캐스트를 통한 맵리스 글로벌 트래픽 로드 밸런싱
US7962631B2 (en) Method for determining network proximity for global traffic load balancing using passive TCP performance instrumentation
KR101154799B1 (ko) 전역 트래픽 부하 균형화를 위하여 클라이언트 위치 및 리졸버 부하를 결정하는 dns 와일드카드 비컨화
EP2451125B1 (en) Method and system for realizing network topology discovery
CN105262615A (zh) 针对虚拟网络分组流的物理路径确定
CN111771359B (zh) 用于连接通信网络的方法和系统
CN111182022A (zh) 数据发送方法和装置、存储介质及电子装置
Saucez et al. A first measurement look at the deployment and evolution of thelocator/id separation protocol
CN112866116A (zh) 网络访问探测方法、装置、设备及存储介质
US20230421481A1 (en) Service border routing based on location in multisite fabric networks
US20030225910A1 (en) Host resolution for IP networks with NAT
Martínez et al. An approach to a fault tolerance LISP architecture
Martínez Manzanilla et al. An Approach to a Fault Tolerance LISP Architecture

Legal Events

Date Code Title Description
A201 Request for examination
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: 20150716

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160721

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170719

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180718

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190718

Year of fee payment: 8