KR20150143657A - 서버 제어되는 라우팅 시스템 - Google Patents

서버 제어되는 라우팅 시스템 Download PDF

Info

Publication number
KR20150143657A
KR20150143657A KR1020157032306A KR20157032306A KR20150143657A KR 20150143657 A KR20150143657 A KR 20150143657A KR 1020157032306 A KR1020157032306 A KR 1020157032306A KR 20157032306 A KR20157032306 A KR 20157032306A KR 20150143657 A KR20150143657 A KR 20150143657A
Authority
KR
South Korea
Prior art keywords
prefix
traffic
network
autonomous system
opaque label
Prior art date
Application number
KR1020157032306A
Other languages
English (en)
Other versions
KR101698452B1 (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 KR20150143657A publication Critical patent/KR20150143657A/ko
Application granted granted Critical
Publication of KR101698452B1 publication Critical patent/KR101698452B1/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/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • 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/32Flooding
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses

Landscapes

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

Abstract

서버 제어되는 라우팅 메커니즘을 갖는 컨텐츠 분배 시스템을 동작하는 방법이 개시된다. 방법은: 자율 시스템으로부터 프리픽스 엔트리를 수집하는 단계; 프리픽스로 특정 디지털 컨텐츠를 전송하기 위한 컨텐츠 요청을 수신하는 단계; 호스트 서버에서, 프리픽스가 자율 시스템으로부터 수집된 프리픽스 엔트리에 리스트될 때, 디지털 컨텐츠의 인터넷 프로토콜(IP) 패킷을 위해 자율 시스템에 기반한 불투명 라벨을 생성하는 단계; 및 네트워크 장비의 유출 인터페이스로부터 IP 패킷을 포워딩하는 단계를 포함하며, 유출 인터페이스는 불투명 라벨과 연관된다.

Description

서버 제어되는 라우팅 시스템{SERVER CONTROLLED ROUTING SYSTEM}
본 발명은 일반적으로 컨텐츠 분배 시스템에 관한 것으로서 특히 컨텐츠 분배 시스템(contents distribution system)을 위한 네트워크 라우팅 메커니즘에 관한 것이다.
본 출원은 본 명세서에 참조로 전체가 통합되는 2013년 4월 16일자 출원된 미국 특허출원 번호 제13/863,602호에 대한 우선권을 주장한다.
오늘날의 인터넷 서비스는 네트워크 에지에서의 컨텐츠 전달 네트워크(content delivery networks; CDNs)와 관련하여 네트워크의 관점으로부터 더 많은 트래픽 소스를 이용하고 있다. 인터넷 접속 포인트(Internet point of presence; PoP)에서 로컬 네트워크 패브릭(fabric)은 아웃바운드 트래픽을 용이하게 하기 위해 광범위한 네트워크 장치들/장비들을 요구한다. 경계 게이트웨이 프로토콜(border gateway protocol; BGP)과 같은 네트워크 프로토콜은 이러한 컨텐츠 분산 서버들을 다양한 자율 시스템들(autonomous systems; ASs)로 연결한다. 자율 시스템들 사이에서, 프리픽스 또는 다른 도달 정보(reachability information)는 코어 라우팅 결정을 하기 위해 교환된다. 최선의 경로와 같은 단순한 루트 선택 알고리즘을 이용하는 네트워크 프로토콜은 자율 시스템들 중 일부가 그들의 대역폭을 과부하하는 높은 트래픽 시나리오를 수용할 만한 정보를 갖지 않는다.
본 명세서에 개시된 기술은 라우팅 결정이 서비스 네트워크의 에지에서 라우터와 같은 네트워크 장비/장치로부터 서비스 네트워크의 호스트 서버들에 이동(shift)시키는 것을 가능하게 한다. 개시된 기술은 네트워크 장비들이 컨텐츠 분배 시스템으로부터 IP 패킷들을 포워딩하는 방식을 변경시킨다. 종래의 라우팅 기법에서는, 네트워크 장비가 구성가능한 선호도에 기반하여 독립적인 포워딩 결정을 한다. 본 명세서에서, 컨텐츠 분배 시스템은 라우팅 기법을 수정하여 인터넷 프로토콜(IP) 패킷들이 네트워크 장비에서의 루트의 계산에 기반하지 않고 불투명한 라벨에 기반하여 포워딩된다. 목적지 IP 주소/프리픽스에 기반한 라우트의 계산은 네트워크 패브릭의 호스트 서버에서 이뤄진다. 라우팅 결정이 호스트 서버로 이동되기 때문에, 컨텐츠 분배 시스템은 감소된 네트워크 장비 기능 요구사항으로 인해 네트워크 장비에 대한 값진 비용들을 절감한다.
본 명세서에 개시된 기술은 또한, 컨텐츠 분배 시스템이 라우트들에 대한 구성가능한 선호도를 갖는 것에 추가적으로 조건부 라우팅 기능을 가질 수 있게 한다. 조건부 라우팅 정책들은 네트워크 이용에 기반할 수 있다. 네트워크 조건은 실시간으로 모니터링될 수 있다. 예컨대, 컨텐츠 분배 시스템은 호스트 서버에서 불투명 라벨 정책을 변경함으로써 그것의 80%의 용량에서 트래픽을 하나의 링크로부터 2차 링크로 이동시킬 수 있다. 네트워크 이용에 기반하여 하나의 링크로부터 다른 링크로 트래픽을 이동시키는 능력이 없다면, 전체 컨텐츠 분배 네트워크 패브릭은 가장 낮은 용량/대역폭 링크의 최소 공배수만큼 제한될 것이다. 네트워크 이용 데이터에 기반한 개시된 조건들은 컨텐츠 분배 시스템이 반응 수준 및 미세 수준에서 네트워크 트래픽 레벨을 모니터링하고 관리할 수 있게 한다.
일부 실시예는 전술한 것에 추가로 또는 대신하여 다른 태양, 구성요소, 특징 및 단계를 가진다. 이러한 잠재적인 추가 및 대체물은 본 명세서의 나머지 부분에서 기술된다.
본 발명에 따른 실시예는 특히, 예컨대, 방법과 같은 하나의 청구항 카테고리에서 언급된 임의의 특징은 또한 시스템과 같은 다른 청구항 카테고리에서 청구될 수 있는 방법, 저장 매체 및 시스템을 기재하고 있는 첨부되는 청구범위에서 개시된다. 첨부되는 청구항들에 종속하거나 그들을 언급하는 것은 오로지 형식적인 이유로 선택된 것이다. 하지만, (특히, 다중 인용 청구항에서처럼) 임의의 이전의 청구항을 의도적으로 인용하는 것으로부터 발생하는 임의의 발명의 대상도 또한 청구될 수 있으므로 첨부되는 청구항들에서 선택된 인용 여부에 무관하게 청구항들 및 그들의 구성요소들의 임의의 조합이 개시되고 청구될 수 있도록 한다.
본 발명에 따른 일실시예로, 방법은 자율 시스템으로부터 프리픽스 엔트리들을 수집하는 단계; 프리픽스로 특정 디지털 컨텐츠를 전송하기 위해 컨텐츠 요청을 수신하는 단계; 호스트 서버에서, 프리픽스가 자율 시스템으로부터 수집된 프리픽스 엔트리에 리스트 될 때, 디지털 컨텐츠의 IP 패킷을 위해 자율 시스템에 기반하여 불투명 라벨을 생성하는 단계; 및 네트워크 장비의 유출(egress) 인터페이스로부터 IP 패킷을 포워딩하는 단계를 포함하며, 유출 인터페이스는 불투명 라벨에 대응한다.
불투명 라벨은 자율 시스템에 직접 연결된 네트워크 장비의 유출 인터페이스에 대응할 수 있다.
본 발명에 따른 일실시예로, 방법은 네트워크 장비로부터 오프라인으로 프리픽스 엔트리를 저장하는 단계를 더 포함할 수 있다.
네트워크 장비는 불투명 라벨 및 유출 인터페이스 사이에서 맵핑을 저장할 수 있다.
프리픽스 엔트리를 수집하는 단계는 네트워크 장비에 투명한 라우트 수집 서비스를 통해 프리픽스 엔트리를 수집하는 단계를 포함할 수 있다.
프리픽스 엔트리를 수집하는 단계는 프리픽스에 도달하기 위해 디폴트 라우트(default route)로서 자율 시스템을 표시하는 풀 인터넷 라우팅 테이블(full Internet routing table)을 수집하는 단계를 포함할 수 있다.
또한 청구될 수 있는 본 발명에 따른 추가 실시예로, 방법은 네트워크 장비를 통해 프리픽스 엔트리를 수집하는 단계; 유출되는 네트워크 트래픽을 모니터링함으로써 네트워크 조건이 충족되는지 여부를 결정하는 단계; 네트워크 조건에 기반하여 불투명 라벨을 프리픽스 엔트리에서의 목적지 프리픽스와 연관시키는 단계; 및 목적지 프리픽스로 향하는 인터넷 프로토콜(IP) 패킷을 불투명 라벨로 라벨링하는 단계를 포함한다.
유출되는 네트워크 트래픽을 모니터링하는 단계는, 목적지 프리픽스로부터 트래픽을 샘플링하기 위해 호스트 서버에서 트래픽 샘플링 서비스를 제공하는 단계; 및 얼마나 많은 데이터가 호스트 서버로부터 목적지 프리픽스로 전송되는지를 결정하기 위해 프리픽스 엔트리와 샘플링된 트래픽을 페어링(pair)하는 단계를 포함할 수 있다.
불투명 라벨을 목적지 프리픽스와 연관시키는 단계는, 얼마나 많은 데이터가 목적지 프리픽스로 전송되는지에 기반하여 제1 자율 시스템을 통하는 트래픽 흐름을 담당하는 목적지 프리픽스를 선택하는 단계; 및 목적지 프리픽스에 도달할 수 있고 제1 자율 시스템보다 낮은 지연시간을 갖는 제2 자율 시스템에 대응하는 불투명 라벨을 선택하는 단계를 포함할 수 있다.
불투명 라벨을 목적지 프리픽스와 연관시키는 단계는 네트워크 장비에 연결되고 호스트 서버가 트래픽을 목적지 프리픽스로 서빙하는 호스트 서버의 전부보다 적은 일부에 대해 프로그래밍될 수 있다.
유출되는 네트워크 트래픽을 모니터링하는 단계는 네트워크 장비로부터 제1 자율 시스템의 제1 대역폭 이용 퍼센티지 및 제2 자율 시스템의 제2 대역폭 이용 퍼센티지를 추정하는 단계를 포함할 수 있고, 네트워크 조건은 제1 대역폭 이용 퍼센티지가 미리정의된 임계치를 넘어서는지 여부일 수 있다.
불투명 라벨을 연관시키는 단계는 제2 대역폭 이용 퍼센티지가 제1 대역폭 이용 퍼센티지보다 낮고 제2 자율 시스템이 트래픽을 수용하는데 이용가능한 대역폭을 가질 때, 트래픽을 제1 자율 시스템으로부터 제2 자율 시스템으로 이동시키는 단계를 포함할 수 있다.
불투명 라벨을 연관시키는 단계는 목적지 프리픽스와 연관시킬 새로운 불투명 라벨을 선택함으로써 트래픽을 제1 자율 시스템으로부터 제2 자율 시스템으로 이동시키는 단계를 포함할 수 있고, 새로운 불투명 라벨은 제2 자율 시스템에 연결된 네트워크 장비의 유출 인터페이스에 대응한다.
유출되는 네트워크 트래픽을 모니터링하는 단계는 네트워크 장비에 연결된 호스트 서버로부터 오는 트래픽 카테고리를 결정하는 단계를 포함할 수 있고, 불투명 라벨을 연관시키는 단계는 불투명 라벨을 호스트 서버에 대해 고유의 목적지 프리픽스와 연관시키는 단계; 및 트래픽 카테고리에 기반하여 트래픽을 제1 자율 시스템으로부터 제2 자율 시스템으로 이동시키는 단계를 포함할 수 있고, 제2 자율 시스템은 제1 자율 시스템보다 낮은 지연시간을 갖는다.
본 발명의 실시예로, 네트워크 패브릭 시스템은, 네트워크 패브릭 및 하나 이상의 이웃하는 자율 시스템 사이의 네트워크 장비 인터페이싱으로서, 상기 네트워크 장비는 하나 이상의 이웃하는 자율 시스템에 연결된 유출 포트를 갖는 네트워크 장비 인터페이싱; 네트워크 장비에 연결된 호스트 서버; 서비스 모듈을 저장하는 비-일시적 메모리; 서비스 모듈을 실행하기 위한 하나 이상의 프로세서로서, 상기 서비스 모듈은 네트워크 장비에 연결되고, 프리픽스 엔트리를 수집하도록 구성되며, 자율 시스템과 연관된 각각의 프리픽스 엔트리는 네트워크 장비의 유출 포트를 통해 연결되는 하나 이상의 프로세서; 불투명 라벨을 프리픽스 엔트리에서 식별된 프리픽스와 연관시키도록 구성된 트래픽 엔지니어링 모듈을 포함하며, 불투명 라벨은 유출 포트와 연관되고; 호스트 서버는 불투명 라벨과 연관된 프리픽스로부터의 컨텐츠 요청에 기반하여 불투명 라벨을 유출되는 IP 패킷에 할당하며, 네트워크 장비는 불투명 라벨과 연관된 유출 포트를 통해 유출되는 IP 패킷을 포워딩한다.
트래픽 엔지니어링 모듈은 네트워크 패브릭에서의 네트워크 조건의 충족에 기반하여 프리픽스와 연관된 불투명 라벨을 변경시키도록 구성될 수 있다.
본 발명에 따른 일실시예로, 시스템은 프리픽스 저장소를 더 포함할 수 있고, 루트 수집 모듈은 프리픽스 저장소에 프리픽스 엔트리를 저장하며, 프리픽스 엔트리는 로컬 풀 인터넷 라우팅 테이블을 포함한다.
서비스 모듈은 호스트 서버에 연결되고, 프리픽스 엔트리로 전송되는 호스트 서버로부터의 유출되는 트래픽을 샘플링하도록 구성되는 트래픽 샘플링 모듈을 포함할 수 있다.
서비스 모듈은 데이터 통합 모듈을 포함할 수 있으며, 데이터 통합 모듈은 트래픽 샘플링 모듈에 연결되고, 네트워크 조건이 충족되는지 여부를 결정하도록 얼마나 많은 데이터가 각각의 프리픽스로 전송되는지를 결정하기 위해 프리픽스 엔트리의 각각의 프리픽스를 샘플링된 트래픽과 페어링하도록 구성되며; 트래픽 엔지니어링 모듈은 네트워크 조건이 충족되는 때 상이한 불투명 라벨을 프리픽스와 연관시키도록 구성될 수 있다.
서비스 모듈은 얼마나 많은 데이터가 이웃하는 자율 시스템 각각에 전송되는지를 결정하도록 구성된 네트워크 모니터 모듈을 포함할 수 있고, 트래픽 엔지니어링 모듈은 얼마나 많은 데이터가 이웃하는 자율 시스템 각각에 전송되는지에 기반하여 불투명 라벨을 선택하도록 구성될 수 있다.
본 발명의 추가 실시예로, 하나 이상의 컴퓨터-판독가능한 비-일시적 저장 매체는 본 발명 또는 전술한 실시예 중 임의의 실시예에 따른 방법을 수행하도록 실행시 동작하는 소프트웨어를 포함한다.
또한 청구될 수 있는 본 발명의 추가 실시예로, 시스템은, 하나 이상의 프로세서 및 프로세서에 결합된 메모리를 포함하며, 메모리는 프로세서에 의해 실행가능한 명령어를 포함하며, 프로세서는 본 발명 또는 전술한 실시예 중 임의의 실시예에 따른 방법을 수행하는 명령어를 실행시 동작한다.
본 발명의 설명 중에 포함되어 있다.
도 1은 서버-제어되는 라우팅 메커니즘을 갖는 컨텐츠 분배 시스템을 동작하기 위한 시스템 환경의 제어 흐름의 예를 도시한다.
도 2는 서버-제어되는 라우팅 메커니즘을 갖는 컨텐츠 분배 시스템을 동작하기 위한 시스템 환경의 제어 흐름의 다른 예를 도시한다.
도 3a는 컨텐츠 분배 시스템이 클라이언트 A를 트래픽 지원(traffic backing)하지 않고 어떻게 클라이언트 B를 위한 트래픽을 조작할 수 있는지에 대한 예를 도시한다.
도 3b는 컨텐츠 분배시스템이 트래픽 카테고리화에 기반하여 어떻게 트래픽을 조작할 수 있는지에 대한 예를 도시한다.
도 4는 서버-제어되는 라우팅 메커니즘을 갖는 컨텐츠 분배 시스템을 동작하는 방법의 흐름 차트를 도시한다.
도 5는 네트워크 조건에 응답하여 서버-제어되는 라우팅 메커니즘을 갖는 컨텐츠 분배 시스템을 동작하는 방법의 흐름 차트를 도시한다.
도 6은 컴퓨터 시스템의 예시적인 형태를 갖는 기계에 대한 다이어그램 표현이며, 컴퓨터 시스템 내에서 본 명세서에 개시된 임의의 하나 이상의 방법 또는 모듈을 기계가 수행하도록 하는 명령어의 세트가 실행될 수 있다.
도면들은 오로지 예시적인 목적으로 다양한 실시예들을 도시한다. 통상의 기술자는 다음의 설명으로부터 본 명세서에 도시된 구조 및 방법의 대안적 실시예들이 본 명세서에 개시된 원칙으로부터 벗어남이 없이 이용될 수 있음을 용이하게 인식할 것이다.
도 1은 서버-제어되는 라우팅 메커니즘을 갖는 컨텐츠 분배 시스템(102)의 예를 동작하기 위한 시스템 환경(100)의 제어 흐름을 도시한다. 컨텐츠 분배 시스템(102)은 인터넷 접속 포인트(Internet point of presence; PoP)의 일부일 수 있다. 컨텐츠 분배 시스템(102)은 네트워크 노드들이 서로 연결하고 하나 이상의 네트워크 장비(106)를 통해 외부 시스템과 연결하는 네트워크 패브릭(104)으로부터 형성된다. 네트워크 노드는 각각 호스트 서버(108)가 될 수 있다. 호스트 서버(108)는 컴퓨터 서버이다. 컴퓨터 서버는 도 6에 설명되는 컴퓨터 시스템일 수 있다. 네트워크 장비(106)는 컴퓨터 네트워크에서 데이터를 중재하기 위한 컴퓨터 네트워킹 장치다. 예컨대, 네트워크 장비(106)는 라우터, 게이트웨이, 네트워크 브릿지, 스위치, 허브, 반복기, 프록시, 네트워크 인터페이스 제어기, 또는 이들의 임의의 조합을 포함할 수있다.
호스트 서버(108)는 컨텐츠 서비스 애플리케이션(114) 및 컨텐츠 서비스 애플리케이션(114)을 실행하기 위한 프로세서를 저장하는 비-일시적 메모리를 포함한다. 컨텐츠 분배 시스템(102) 외부의 클라이언트 장치(116)는 컨텐츠 분배 시스템(102)으로 디지털 컨텐츠에 대한 요청을 전송할 수 있다. 컨텐츠가 호스트 서버(108)에 의해 접근가능하다면, 호스트 서버(108) 상의 컨텐츠 서비스 애플리케이션(114)은 호스트 서버(108)로부터 클라이언트 장치(116)로 디지털 컨텐츠를 포워딩한다. 디지털 컨텐츠는 하나 이상의 자율 시스템(120)을 포함하는 인터넷 서비스 제공자(118)를 통해 IP 패킷으로서 이동한다. 자율 시스템(120)은 공통의, 명확히 정의된 라우팅 정책을 인터넷에 제시하는 적어도 하나의 네트워크 사업자(network operator)의 제어하에 있는 연결된 IP 라우팅 프리픽스의 집합이다. 클라이언트 장치(116)는 인터넷을 접근할 수 있는 전자 장치이다. 예컨대, 클라이언트 장치(116)는 데스크톱 컴퓨터, 랩톱, 테블릿, TV, 세톱 박스, 비디오 게임 콘솔, 휴대 전화 또는 이들의 임의의 조합일 수 있다.
컨텐츠 분배 시스템(102)은 특정 유출 포트(124)를 통해 IP 패킷을 포워딩하기 위해 네트워크 장비(106)에게 알리는 불투명 라벨을 생성하는 하나 이상의 방법을 포함할 수 있다. 하나 이상의 방법은 본 명세서에 개시되는 모듈 및 스토어에 의해 구현될 수 있다. 모듈은 하드웨어 컴포넌트, 소프트웨어 컴포넌트 또는 이들의 임의의 조합으로서 구현될 수 있다. 예컨대, 설명되는 모듈은 도 6에 설명되는 기계 상에 있는 프로세서 또는 제어기에 의해 실행될 수 있는 비-일시적 저장체 상의 명령어로서 구현되는 스프트웨어 모듈일 수 있다. 스토어는 하나 이상의 저장 장치 상의 포맷된 저장 공간이다. 스토어는 각각의 모듈을 실행하는 프로세서 또는 제어기에 의해 접근될 수 있다.
각각의 모듈은 다른 모듈과는 개별적이고 독립적으로 동작할 수 있다. 모듈들의 일부 또는 전부는 동일한 호스트 서버에서 실행될 수 있다. 모듈들의 일부 또는 전부는 하나의 모듈로 조합될 수 있다. 단일 모듈은 또한, 서브-모듈로 분할될 수 있고, 각각의 서브-모듈은 단일 모듈의 분리된 방법의 단계 또는 방법 단계들을 수행한다. 모듈은 메모리 공간에 대한 액세스를 공유할 수 있다. 하나의 모듈은 다른 모듈에 의해 접근되거나 변형된 데이터를 접근할 수 있다. 모듈들은 그들이 물리적 연결 또는 가상의 연결을 직접 또는 간접적으로 공유한다면 서로 "연결된"것으로 간주될 수 있고, 하나의 모듈로부터 접근되거나 수정된 데이터가 다른 모듈에서 접근될 수 있도록 한다.
컨텐츠 분배 시스템(102)은 다양한 애플리케이션을 위해 추가적인, 더 적은 또는 상이한 모듈을 포함할 수 있다. 네트워크 인터페이스, 보안 기능, 로드 밸런서(load balancers), 장애복구 서버(failover server), 관리 및 네트워크 동작 콘솔 등과 같은 종래의 컴포넌트들은 시스템의 세부사항을 불명확화 하지 않기 위해 도시되지 않는다. 모듈(들)은 컨텐츠를 서빙하는 호스트 서버들 중 하나 또는 모듈(들)의 기능에 전용되는 하나 이상의 호스트 서버 상에서 실행될 수 있다.
컨텐츠 분배 시스템(102)은 루트 수집 서비스 모듈(126)을 포함할 수 있다. 루트 수집 서비스 모듈(126)은 네트워크 장비(106)로부터 또는 그것을 통해 BGP 정보와 같은 루트 정보를 수집하고 루트 정보를 프리픽스 스토어(128)에 저장한다. 자율 시스템(120) 각각은 자율 시스템(120)을 통해 도달될 수 있는 프리픽스 엔트리를 광고한다. 루트 정보는 네트워크 장비(106)에 이웃하는 자율 시스템(120) 각각과 프리픽스를 연관시키는 프리픽스 테이블을 포함한다. 네트워크 프리픽스는 시스템들의 세트의 IP 위치를 의미하는 인터넷 주소다. 네트워크 프리픽스는 서브넷 마스크를 IP 주소와 논리적으로 AND시킴으로써 선택될 수 있는 IP 주소의 일부일 수 있다. 자율 시스템(120) 각각은 네트워크 장비(106)의 특정 유출 포트(124)와 교대로 연관된다. 프리픽스 스토어(128)는 오프라인으로 유지될 수 있다. 프리픽스 스토어(128)는 실시간으로 업데이트될 수 있다.
루트 수집 서비스 모듈(126)은 BGP 스피커로 구현될 수 있다. 일실시예로, BGP 세션은 네트워크 장비(106) 상에 존재할 수 있다. 네트워크 장비(106)는 전송 제어 프로토콜(TCP) 포트(179)로부터 소싱된 어떠한 것들과 함께 특정 패킷을 IPv6 Neighbor Discovery와 같은 오프라인 서버로 떠넘길 수 있다. 루트 수집 서비스 모듈(126)은 이후 네트워크 장비(106)에 이웃하는 자율 시스템(120) 사이에서 BGP 스피커로의 역할을 할 수 있다. 루트 수집 서비스 모듈(126)은 자율 시스템(120) 사이에서 네트워크 장비(106)에 투명할 수 있다.
루트 수집 서비스 모듈(126)은 컨텐츠 분배 시스템(102)이 인터넷 상에서 습득된 모든 프리픽스를 수용하고 네트워크 장비(106)로부터 오프라인인 프리픽스 엔트리를 저장할 수 있게 한다. 저장된 프리픽스 엔트리는 다수의 풀 인터넷 루트 테이블일 수 있으며, 이러한 테이블은 컨텐츠 분배 시스템(102)의 트래픽 엔지니어링 서비스 모듈(130)에 의한 경로 결정을 위해 사용될 수 있다.
트래픽 엔지니어링 서비스 모듈(130)은 특정 프리픽스에 대한 루트를 생성하기 위한 컨텐츠 분배 시스템(102)의 모듈이다. 프리픽스 스토어(128)로부터, 트래픽 엔지니어링 서비스 모듈(130)은 각각의 프리픽스에 대한 디폴트 유출 포트를 결정할 수 있다. 각각의 유출 포트는 대응하는 불투명 라벨을 가진다. 트래픽 엔지니어링 서비스 모듈(130)은 시스템 관리자가 각각의 프리픽스에 대한 디폴트 유출 포트를 수정하게 하는 인터페이스를 제공할 수 있다. 외부의 간섭없이, 트래픽 엔지니어링 서비스 모듈(130)은 네트워크 패브릭(104)의 피어들 (예컨대, 자율 시스템(120))로부터 습득된 모든 루트를 네트워크 패브릭(104) 내의 호스트 서버 (예컨대, PoP)로 프로그램할 수 있다. 트래픽 엔지니어링 모듈(130)이 어떤 유출 포트를 각각의 프리픽스와 연관시킬지를 일단 결정하면, 트래픽 엔지니어링 모듈(130)은 루트 프로그램 모듈(132)을 통해 호스트 서버(108)로 그 정보를 업데이트할 수 있다.
루트 프로그램 모듈(132)은 네트워크 패브릭(104)에서 호스트 서버(108)로 루트의 프로그래밍을 제공하기 위한 컨텐츠 분배 시스템(102)에서의 모듈이다. 루트는 잠재적 목적지 프리픽스와 연관된 불투명 라벨의 형태이다. 루트 프로그램 모듈(132)은 네트워크 패브릭(104) 상의 호스트 서버(108) 중 하나에서 실행되거나 트래픽을 서빙하는 호스트 서버(108) 각각의 일부일 수 있다. 호스트 서버(108)는 특정 목적지 프리픽스와 연관된 불투명 라벨을 호스트 서버(108)로부터 전달된 디지털 컨텐츠의 IP 패킷에 할당하는 명령어를 루트 프로그램 모듈(132)로부터 수신한다. IP 패킷은 특정 유출 포트(124)중 어떤 포트가 IP 패킷을 포워딩할지를 네트워크 장비(106)에게 명령하는 호스트 서버(108)에 의해 할당된 불투명 라벨을 가진다.
네트워크 장비(106)는 그것의 TCAM(ternary content addressable memory)과 같은 메모리에 불투명 라벨의 변환 테이블을 저장한다. 불투명 라벨 각각은 네트워크 장비(106)의 유출 포트(124)에 대응한다. 변환 테이블의 사본이 또한 잠재적 목적지 프리픽스 및 불투명 라벨 사이의 연관을 결정할 때 트래픽 엔지니어링 서비스 모듈(130)에 의해 접근가능할 수 있다.
본 명세서에 개시된 컨텐츠 분배 시스템(102)은 라우팅 결정이 호스트 서버로 이동될 수 있도록 한다. 컨텐츠 분배 시스템(102)은 감소된 네트워크 장비 기능 요구사항 덕분에 네트워크 장비에 대한 값진 비용을 절감시킨다. 종래의 네트워크 장비는 가득찬 인터넷 라우팅 테이블을 가지고 있어야 한다. 하지만, 라우팅 결정이 호스트 서버로 이동되기 때문에, 컨텐츠 분배 시스템(102)에서의 네트워크 장비(106)는 풀 인터넷 라우팅 테이블을 가지고 사용할 추가적인 메모리 및 프로세싱 전력을 필요로 하지 않을 것이다. 네트워크 장비(106)는 불투명 라벨에 기반하여 오로지 IP 패킷을 포워딩하도록 요구된다. 컨텐츠 분배 시스템(102)은 네트워크 패브릭(104)을 건설할 때, CAPEX(capital expenditure) 절약을 가능하게 한다. 네트워크 장비(106)는 스위치, GRE(generic routing encapsulation) 터널 베이스, 또는 POS(Packet over Synchronous Optical Networking) 베이스로 간소화될 수 있다.
도 2는 서버-제어되는 라우팅 메커니즘을 갖는 컨텐츠 분배 시스템(202)의 다른 예를 동작하기 위한 시스템 환경(200)의 제어 흐름을 도시한다. 컨텐츠 분배 시스템(202)은 도 1의 컨텐츠 분배 시스템(102)을 포함할 수 있다. 컨텐츠 분배 시스템(202)은 PoP의 일부일 수 있다. 컨텐츠 분배 시스템(202)은 네트워크 노드가 서로 연결되고 하나 이상의 네트워크 장비(206)를 통해 외부 시스템과 연결되는 네트워크 패브릭(204)으로부터 형성될 수 있다. 네트워크 패브릭(204)은 도 1의 네트워크 패브릭(104)일 수 있다. 네트워크 장비(206)는 도 1의 네트워크 장비(106)일 수 있다. 네트워크 노드는 각각 호스트 서버(208)일 수 있다. 호스트 서버(208)는 도 1의 호스트 서버(108)와 같은 컴퓨터 서버일 수 있다. 컴퓨터 서버는 도 6에 설명되는 것과 같은 컴퓨터일 수 있다.
호스트 서버(108)와 유사하게, 호스트 서버(208)는 컨텐츠 서비스 애플리케이션(114) 및 컨텐츠 서비스 애플리케이션(114)을 실행하기 위한 프로세서를 저장하는 비-일시적 메모리를 포함한다. 컨텐츠 분배 시스템(202)의 외부에 있는 클라이언트 장치(116)는 컨텐츠 분배 시스템(202)으로 디지털 컨텐츠에 대한 요청을 전송할 수 있다. 컨텐츠가 호스트 서버(208)에 의해 접근가능하다면, 호스트 서버(208) 상의 컨텐츠 서비스 애플리케이션(114)은 디지털 컨텐츠를 클라이언트 장치(116)로 포워딩한다. 디지털 컨텐츠는 IP 패킷으로, 하나 이상의 자율 시스템(120)을 포함하는 인터넷 서비스 제공자(118)를 가로질러 이동한다.
컨텐츠 분배 시스템(202)은 IP 패킷을 유출 포트(224)를 통해 포워딩하도록 네트워크 장비(206)에게 알리기 위해 네트워크 조건에 기반하여 불투명 라벨을 생성하는 하나 이상의 방법을 포함할 수 있다. 하나 이상의 방법은 본 명세서에 설명된 모듈 및 스토어에 의해 구현될 수 있다. 모듈은 하드웨어 컴포넌트, 소프트웨어 컴포넌트 또는 이들의 임의의 조합으로서 구현될 수 있다. 예컨대, 설명되는 모듈은 도 6에 설명되는 기계 상의 프로세서 또는 제어기에 의해 실행될 수 있는 비-일시적 메모리 상의 명령어로서 구현되는 소프트웨어 모듈일 수 있다. 스토어는 하나 이상의 저장 장치상의 포맷된 저장 공간이다. 스토어는 모듈들 각각을 실행하는 프로세서 또는 제어기에 의해 접근가능할 수 있다.
각각의 모듈은 다른 모듈과는 개별적이고 독립적으로 동작할 수 있다. 모듈들의 일부 또는 전부는 동일한 호스트 서버에서 실행될 수 있다. 모듈들의 일부 또는 전부는 하나의 모듈로 조합될 수 있다. 단일 모듈은 또한, 서브-모듈로 분할될 수 있고, 각각의 서브-모듈은 단일 모듈의 분리된 방법의 단계 또는 방법의 단계들을 수행한다. 모듈은 메모리 공간에 대한 액세스를 공유할 수 있다. 하나의 모듈은 다른 모듈에 의해 접근되거나 변형된 데이터를 접근할 수 있다. 모듈들은 그들이 물리적 연결 또는 가상의 연결을 직접 또는 간접적으로 공유한다면 서로 "연결된"것으로 간주될 수 있고, 하나의 모듈로부터 접근되거나 수정된 데이터가 다른 모듈에서 접근될 수 있도록 한다.
컨텐츠 분배 시스템(202)은 다양한 애플리케이션을 위해 추가적인, 더 적은 또는 상이한 모듈을 포함할 수 있다. 네트워크 인터페이스, 보안 기능, 로드 밸런서(load balancers), 장애복구 서버(failover server), 관리 및 네트워크 동작 콘솔 등과 같은 종래의 컴포넌트들은 시스템의 세부사항을 불명확하게 하지 않기 위해 도시되지 않는다. 모듈(들)은 컨텐츠를 서빙하는 호스트 서버들 중 하나 또는 모듈(들)의 기능에 대해 전용되는 하나 이상의 호스트 서버 상에서 실행될 수 있다.
컨텐츠 분배 시스템(202)은 도 1에 설명된 루트 수집 서비스 모듈(126) 및 프리픽스 스토어(128)를 포함한다. 컨텐츠 분배 시스템(202)은 또한 트래픽 엔지니어링 서비스 모듈(230)을 포함한다. 트래픽 엔지니어링 서비스 모듈(230)은 네트워크 조건에 기반하여 특정 프리픽스로의 IP 패킷의 루트를 수정하기 위한 컨텐츠 분배 시스템(102)의 모듈이다. 네트워크 조건은 트래픽 엔지니어링서비스 모듈(230) 상에 저장될 수 있고, 네트워크 패브릭(204)의 호스트 서버(208)에 대해 유출되는 IP 패킷을 어디로 포워딩할 지에 대한 최종 결정을 하는 비지니스 논리를 포함한다.
프리픽스 스토어(128)로부터 최초로, 트래픽 엔지니어링 서비스 모듈(230)은 각각의 프리픽스에 대한 디폴트 유출 포트를 결정할 수 있다. 트래픽 엔지니어링 서비스 모듈(230)은 네트워크 패브릭(204)의 피어들(예컨대, 자율 시스템(120))로부터 습득된 모든 루트를 도 1의 루트 프로그램 모듈(123)과 같은 루트 프로그램 모듈(232)을 통해 프리픽스 스토어(128)로부터 네트워크 패브릭(204) 내의 호스트 서버(208) (예컨대, PoP)로 프로그램할 수 있다.
컨텐츠 분배 시스템(202)은 트래픽 샘플링 서비스 모듈(234)을 더 포함한다. 트래픽 샘플링 서비스 모듈(234)은 호스트 서버(208) 각각으로부터 전송된 IP 패킷을 샘플링한다. 유출되는 IP 패킷으로부터의 정보는 IP 소스 주소, 포트 번호, 다음 IP 주소 등을 포함하여 캡쳐된다. 트래픽 샘플링 서비스 모듈(234)이 유출되는 IP 패킷 및 IP 패킷의 크기와 양에 대한 정보를 수집하는 시간 및 주파수에 기반하여, 트래픽 샘플링 서비스 모듈(234)은 BPS(bits per second)를 네트워크 이용 스토어(236)에 저장될 대역폭 이용으로 정규화할 수 있다. 트래픽 샘플링 서비스 모듈(234)은 호스트 서버의 샘플링 속도를 변경시킬 유연성을 가지고 있다. 트래픽 샘플링 서비스 모듈(234)이 네트워크 이용 또는 트래픽 트렌드를 결정할 때, 트래픽 샘플링 서비스 모듈(234)은 더 낮은 샘플링 속도를 가질 수 있다. 트래픽 샘플링 서비스 모듈(234)이 네트워크 문제를 디버깅하는데 사용될 때에는, 트래픽 샘플링 서비스 모듈(234)은 이후 더 많은 가시성 및 보다 정확한 데이터를 얻기 위해 더 높은 샘플링 속도에서 샘플링을 할 수 있다.
대안으로, 트래픽 샘플링 서비스 모듈(234)은 네트워크 패브릭(204)으로 유입되고 유출되는 IP 트래픽을 모니터링하기 위해 네트워크 상의 NetFlow(TM)를 실행할 수 있다. 네트워크 및 호스트 장치를 모니터링하기 위한 기술인 sFlow와 같은 다른 기술이 트래픽을 모니터링하거나 샘플링하는데 사용될 수 있다. 트래픽 샘플링 서비스 모듈(234)은 많은 수의 트래픽 샘플링 및 트래픽 모니터링 서비스를 실행할 수 있고, 최종 대역폭 이용 데이터를 정규화할 수 있다. 대역폭 이용 데이터는 샘플링되는IP 패킷의 5-튜플(tuple)에 의해 조직화될 수 있다. 5-튜플은 소스 IP 주소, 소스 포트 번호, 목적지 IP 주소, 목적지 포트 번호, 및 TCP와 같은 프로토콜 타입을 식별한다.
트래픽 샘플링 서비스 모듈(234)은 유출되는 IP 패킷을 모니터링할 뿐만 아니라 네트워크 패브릭(204) 내의 호스트간 트래픽을 모니터링할 수 있다. 예컨대, 호스트 서버 및 서버 랙(server rack) 사이에서 이동하는 트래픽이 또한 추적될 수 있다.
네트워크 이용 스토어(236)에서의 대역폭 이용 데이터 및 프리픽스 스토어(128)로부터의 프리픽스 엔트리는 데이터 통합 서비스 모듈(238)을 통해 트래픽 맵 스토어(240)로 통합된다. 데이터 통합 서비스 모듈(238)은 네트워크 패브릭(204)이 얼마나 많은 트래픽을 특정 프리픽스로 전송하는지를 결정하기 위해 프리픽스 스토어(128)로부터의 프리픽스 엔트리를 각각의 프리픽스로부터의 대역폭 이용 데이터와 페어링한다. 트래픽 맵 스토어(240)는 네트워크 장비(206)를 통해 상부 N개의 사용된 프리픽스를 결정하는것과 같이 프리픽스마다 네트워크 이용 데이터를 필터링하고 정렬할 수 있게 한다. 대역폭 이용 데이터는 5-튜플에 기반하여 샘플링될 수 있다. 목적지 IP 주소는 네트워크 프리픽스로 통합될 수 있다. 따라서, 프리픽스 엔트리 및 5-튜플의 목적지 IP 주소 사이의 페어링은 대역폭 이용 데이터가 프리픽스에 의해 조직화되도록 한다. 트래픽 맵 스토어(240)는 얼마나 많은 데이터가 프리픽스 스토어(128)에서 알려진 프리픽스 각각으로 어떤 호스트로부터 전송되는지에 관한 정보를 포함할 수 있다.
컨텐츠 분배 시스템(202)은 네트워크 장비(206)에 연결된 네트워크 모니터 서비스 모듈(242)을 포함한다. 네트워크 모니터 서비스 모듈(242)은 네트워크 패브릭(204)의 에지에서 네트워크 장비(206)를 모니터링한다. 예컨대, 네트워크 모니터 서비스 모듈(242)은 얼마나 많은 트래픽이 네트워크 장비(206) 각각에 이웃하는 자율 시스템(120) 각각으로부터 유입되고 유출되는지를 결정하기 위해 네트워크 장비(206)의 유입 인터페이스 및 유출 인터페이스를 모니터링할 수 있다. 얼마나 많은 트래픽이 자율 시스템(120) 각각으로부터 유입되고 유출되는지는 네트워크 인터페이스 트래픽 스토어(244)에 저장된다.
트래픽 엔지니어링 서비스 모듈(230)은 컨텐츠 분배 시스템(202)이 트래픽 맵 스토어(240)에 저장된 목적지 프리픽스에 의해 조직화된 트래픽 맵에 기반하여 유출되는 IP 패킷의 불투명 라벨을 변경할 수 있게 한다. 네트워크 인터페이스 트래픽 스토어(244) 및/또는 트래픽 맵 스토어(240)로부터의 자율 시스템(120)에 관한 추가적인 프로필 정보를 가지고, 트래픽 엔지니어링 서비스 모듈(230)은 자율 시스템(120) 각각에 대한 용량 부하(capacity load)를 결정할 수 있다. 용량 부하가 특정 퍼센티지를 넘어설 때, 트래픽 엔지니어링 서비스 모듈(230)은 트래픽 구제 모드로 설정될 수 있다. 트래픽 구제 모드에서, 트래픽 엔지니어링 서비스 모듈(230)은 상이한 유출 포트를 프리픽스와 연관시키며 자율 시스템(120) 중 하나에서 다른 자율 시스템으로 가는 프리픽스 마다의 트래픽을 이동시킬 수 있다.
트래픽 엔지니어링 서비스 모듈(230)이 어떤 유출 포트를 각각의 프리픽스와 연관시킬지를 일단 결정하면, 트래픽 엔지니어링 서비스 모듈(230)은 그 정보를 루트 프로그램 모듈(232)을 통해 호스트 서버(208)로 업데이트할 수 있다. 루트 프로그램 모듈(232)은 네트워크 패브릭(204)에서 호스트 서버(208)로의 루트의 프로그래밍을 제공하기 위한 컨텐츠 분배 시스템(202)에서의 모듈이다. 상이한 호스트 서버(208)에 대해, 동일한 프리픽스에 대한 루트가 트래픽 엔지니어링 서비스 모듈(230)의 트래픽 조작 정책에 따라 상이할 수 있다. 루트는 잠재적 목적지 프리픽스와 연관된 불투명 라벨의 형태이다. 루트 프로그램 모듈(232)은 네트워크 패브릭(204) 상의 호스트 서버(208) 중 하나에서 실행될 수 있거나 트래픽을 서빙하는 호스트 서버(208) 각각의 일부일 수 있다. 호스트 서버(208)는 루트 프로그램 모듈(232)로부터 특정 목적지 프리픽스 (즉, 디지털 컨텐츠를 요청하는 클라이언트의 목적지)와 연관된 불투명 라벨을 호스트 서버(208)로부터 전달되는 디지털 컨텐츠의 IP 패킷에 할당하는 명령어를 수신한다. IP 패킷은 특정 유출 포트(224) 중 어떤 포트가 IP 패킷을 포워딩할지를 네트워크 장비(206)에게 명령하는 호스트 서버(208)에 의해 할당된 불투명 라벨을 가진다.
네트워크 장비(206)는 네트워크 장비(106)와 유사하게, 그것의 TCAM(ternary content addressable memory)과 같은 메모리에 불투명 라벨의 변환 테이블을 저장한다. 불투명 라벨 각각은 네트워크 장비(206)의 유출 포트(224)에 대응한다. 변환 테이블의 사본이 트래픽 엔지니어링 서비스 모듈(230)에 의해 접근가능할 수 있다.
컨텐츠 분배 시스템(202)은 또한 데이터 센터 라우팅 장비(250)를 포함할 수 있다. 네트워크 패브릭(204)의 호스트 서버(208)는 컨텐츠 전달 네트워크(CDN) 데이터 센터와 같은 데이터 센터(252)로부터 데이터를 가져와야 할 필요가 자주 있다. 루트 수집 서비스 모듈(126)은 네트워크 장비(206)를 위한 기능 요구사항의 감소를 가능하게 한다. 하지만, 네트워크 장비(206)가 감소된 기능을 가질 때, 데이터 센터 라우팅 장비(250)가 호스트 서버(208) 각각에 대한 컨텐츠를 소싱하는데 필요한 데이터 센터(252)를 찾는데 필요할 수 있다. 데이터 센터 라우팅 장비(250)는 그들 스스로가 호스트 서버(208)와 직접 연결되거나 및/또는 네트워크 장비(206)와 연결될 수 있다. 데이터 센터 라우팅 장비(250)는 데이터 페치(fetch) 요청을 데이터 센터(252)로 전달하고 네트워크 장비(206)를 통해 정확히 페치 컨텐츠를 라우팅 할 수 있는 IP 색인을 할 수 있는 인텔리전스(intelligence) 장치로서 기능할 수 있다.
컨텐츠 분배 시스템(102)과 유사하게, 본 명세서에 개시된 컨텐츠 분배 시스템(202)은 라우팅 결정이 호스트 서버로 이동하는 것을 가능하게 한다. 따라서, 유사하게 컨텐츠 분배 시스템(202)은 네트워크 패브릭(204)을 건설할 때, CAPEX(capital expenditure)의 절약을 가능하게 한다. 더욱이, 본 명세서에 개시된 컨텐츠 분배 시스템(202)은 이웃하는 자율 시스템의 용량 초과를 회피하는 효과적인 네트워크 관리를 가능하게 한다. 트래픽의 감소를 회피함으로써, 컨텐츠 분배 시스템(202)은 더 나은 네트워크 성능을 가능하게 하고, 따라서 OPEX(operational expenditure)의 절약을 이룰 수 있다.
본 명세서에서 도 1 및 도 2의 모듈에서 도입된 기술은 프로그래밍된 프로그램가능한 회로부에 의해 구현되거나 소프트웨어 및/또는 펌웨어에 의해 구성되거나, 또는 특수-목적용 "하드웨어 내장된" 회로부 또는 이러한 형태의 조합으로 전체가 구현될 수 있다. 이러한 특수-목적용 회로부 (존재한다면)는 예컨대, 하나 이상의 ASICs(application-specific integrated circuits), 프로그램가능한 논리 장치(programmable logic devices; PLDs), 필드-프로그램가능한 게이트 어레이(field-programmable gate arrays; FPGAs) 등의 형태일 수 있다.
도 3a는 컨텐츠 분배 시스템(202)이 클라이언트 A(304)를 트래픽 지원함이 없이 클라이언트 B(302)에 대한 트래픽을 조작할 수 있는지에 대한 예를 도시한다. 이 예에서, PoP(306)는 네트워크 장비(308)를 통해 자율 시스템 X(310) 및 지율 시스템 Y(312)에 연결된다. PoP(306)는 도 2의 네트워크 패브릭(204)일 수 있고, 네트워크 장비(308)는 도 2의 네트워크 장비(206)일 수 있다.
자율 시스템 X(310)는 10 Gbps(gigabits per second)의 용량을 가질 수 있고, 자율 시스템 Y(312)는 20 Gbps의 용량을 가질수 있다. 도시되는 것처럼, 자율 시스템 X(310)는 그것의 80% 용량에서 실행되고 있다. 컨텐츠 분배 시스템(202)은 네트워크 장비(308)에 연결된 링크들 중 하나가 80% 용량이거나 이를 넘어설 때, 가능하다면, 자율 시스템 X(310)로부터 멀리 트래픽을 이동시키는 트래픽 엔지니어링 서비스 모듈(230)에 저장된 조건을 가질 수 있다.
데이터 통합 서비스 모듈(238)은 얼마나 많은 트래픽이 어떤 호스트로부터 각각의 프리픽스에 어떤 자율 시스템을 통해 전송되는지를 트래픽 엔지니어링 서비스 모듈(230)에 제공한다. 도시되는 것처럼, 클라이언트 B(302)는 현재 자율 시스템 X(310)를 통해 라우팅하는 4Gbps의 트래픽을 가지며, 클라이언트 A(304)는 자율 시스템 Y(312)를 통해 현재 라우팅하는 10Gbps의 트래픽을 가진다. 도 1 및 도 2의 프리픽스 스토어(128)는 자율 시스템 X(310)로부터 떨어진 어떤 대안적 유출 포트가 클라이언트 B(302)에 도달할 수 있는지에 대한 정보를 제공한다. 이 예에서, 자율 시스템 Y(312)는 대안적 유출 포트인 것으로 결정된다. 이것이 알려지면, 트래픽 엔지니어링 서비스 모듈(230)은 클라이언트 B(302)로의 전체 4Gbps 트래픽을 자율 시스템 X(310)로부터 자율 시스템 Y(312)로 이동시킬 수 있다. 대안으로, 자율 시스템 X(310)를 구제함의 결과로써 자율 시스템 Y(312)를 과부하시키지 않기 위해, 트래픽 엔지니어링 서비스 모듈(230)은 트래픽의 2Gbps와 같이 클라이언트 B(302) 트래픽의 일부만을 자율 시스템 X(310)로부터 자율 시스템 Y(312)로 이동시킬 수 있고, 따라서 자율 시스템 X(310) 및 자율 시스템 Y(312)에 대한 부하를 밸런싱할 수 있다. 이는 트래픽의 일부를 서빙하는 호스트 서버가 자율 시스템 Y(312)의 유출 포트를 표시하는 불투명 라벨을 그것의 모든 IP 패킷에 할당하도록 프로그래밍함으로써 이루어질 수 있다.
도 3b는 컨텐츠 분배 시스템(202)이 트래픽 카테고리화에 기반하여 어떻게 트래픽을 조작할 수 있는지의 예를 도시한다. PoP(352)가 이웃하는 자율 시스템과 함께 PoP(352)를 연결하는 네트워크 장비(354)를 포함하는 것으로 도시된다. PoP(352)는 상이한 타입의 트래픽을 서빙할 수 있다. 예컨대, PoP(352)는 웹사이트들의 기본 렌더링인 동적 트래픽 및 오디오 파일, 사진, 또는 비디오와 같은 반복적으로 요청되는 컨텐츠에 대한 트래픽인 CDN 트래픽을 서빙할 수 있다. CDN 트래픽은 전형적으로 지연시간에 덜 민감하기 때문에 (즉, 사람들은 비디오 또는 오디오 스트림이 로딩되는 것을 기다리는데 익숙하므로), 트래픽 엔지니어링 서비스 모듈(230)은 트래픽을 이동시키고 조작하여, CDN 트래픽 대신에 동적 트래픽의 대다수가 더 낮은 지연시간을 갖는 이웃하는 자율 시스템으로 이동되는 우선권을 보정할 수 있다.
이 예에서, PoP(352)는 자율 시스템 C(356) 및 자율 시스템 D(358)를 이웃한다. 자율 시스템 C(356)는 더 낮은 지연시간을 갖는 한편 자율 시스템 D(358)는 더 높은 지연 시간을 갖는다. 트래픽 엔지니어링 서비스 모듈(230)은 PoP(352) 내의 호스트 서버가 특정 클래스의 트래픽에 대한 불투명 라벨을 설정하도록 프로그램할 수 있다. 예컨대, 동적 트래픽 호스트(360)는 클라이언트 장치(362)에 기본 웹사이트 정보를 서빙하는 호스트 서버이며, CDN 트래픽 호스트(364)는 비디오 스트림을 서빙하는 호스트 서버이다. 동적 트래픽 호스트(360)는 그것의 유출되는 IP 패킷을 자율 시스템 C(356)에 대응하는 불투명 라벨로 라벨링하도록 프로그램될 수 있고, CDN 트래픽 호스트(364)는 그것의 유출되는 IP 패킷을 자율 시스템 D(358)에 대응하는 불투명 라벨로 라벨링하도록 프로그램될 수 있다. 대안으로, 트래픽 엔지니어링 서비스 모듈(230)은 네트워크 장비(354)가 직접 탐지된 특정 타입의 트래픽에 대해 불투명 라벨을 설정하도록 프로그램할 수 있다.
자율 시스템의 지연시간은 많은 수의 방식으로 탐지될 수 있다. 예컨대, 지연시간은 클라이언트측으로부터 테스팅될 수 있다. 클라이언트 장치(362)는 클라이언트 장치(362)가 1 킬로바이트 이미지와 같은 디지털 컨텐츠의 작은 조각을 많은 수의 PoP들로부터 요청하도록 트리거링하는 비동기식 JavaScript 및 XML (AJAX) 코드와 같은 클라이언트측 스크립트의 조각을 포함할 수 있다. 클라리언트측 코드는 클라이언트 장치(362)가 가장 낮은 지연시간으로 PoP들을 선택할 수 있도록 한다. 예컨대, PoP(352)가 클라이언트측 코드에 의해 일단 선택되면, PoP(352)에서의 호스트 서버는 PoP(352)에 연결된 자율 시스템의 지연시간 및 성능을 결정하기 위해 클라이언트측 스크립트와 조정(coordinate)할 수 있다. 클라이언트측 코드에 대한 테스트 IP 패킷은 특정 불투명 라벨 (즉, 선택된 자율 시스템에 연결되는 유출 포트를 결정하는 불투명 라벨)을 갖는 테스트 IP 패킷을 포워딩하기 위한 특정 자율 시스템을 특정적으로 선택함으로써 PoP(352)로부터 전송될 수 있다. 클라이언트측 스크립트에 의해 보고된 지연시간은 이후 선택된 자율 시스템과 상관될 수 있다. 왕복 지연시간 데이터 및 유출 지연시간 데이터와 같은 다른 타입의 성능 테스트가 네트워크 장비(354)를 통해 또는 PoP(352)의 호스트 서버로부터 직접 행해질 수 있다. 이러한 지연시간/성능 데이터는 PoP(352)로부터 유출되는 트래픽을 어떻게 조작할지 결정하기 위해 트래픽 엔지니어링 서비스 모듈(230)로 피드(feed)될 수 있다.
도 4는 서버-제어되는 라우팅 메커니즘을 갖는 컨텐츠 분배 시스템(102)과 같은 네트워크 관리되는 컨텐츠 분배 시스템을 동작시키는 방법(400)의 흐름 차트를 도시한다. 방법(400)은 자율 시스템과 연관된 프리픽스 엔트리를 자율 시스템으로부터 네트워크 장비를 통해 수집하는 단계(402)로 시작한다. 수집된 프리픽스 엔트리는 네트워크 장비로부터 오프라인으로 저장될 수 있다. 프리픽스가 자율 시스템으로부터의 수집된 프리픽스 엔트리들 중 하나일 때, 불투명 라벨이 단계(404)에서 디지털 컨텐츠의 IP 패킷을 위해 생성된다. 불투명 라벨은 자율 시스템에 직접 연결된 네트워크 장비의 유출 인터페이스와 연관된다. 불투명 라벨은 컨텐츠 요청의 프리픽스 및 프리픽스 엔트리에서의 프리픽스와 연관된 자율 시스템에 기반하여 생성된다. 불투명 라벨은 네트워크 관리되는 컨텐츠 분배 시스템에서의 호스트 서버 상에 생성될 수 있다.
어느 시점에서, 프리픽스로 특정 디지털 컨텐츠를 전송하기 위한 컨텐츠 요청이 단계(406)에서 수신될 수 있다. 불투명 라벨이 일단 IP 패킷을 위해 생성되면, IP 패킷은 단계(408)에서 불투명 라벨에 기반하여 컨텐츠 분배 시스템의 네트워크 장비로부터 포워딩되며, 불투명 라벨은 자율 시스템으로 직접 인도하는 네트워크 장비의 유출 인터페이스에 대응한다. 네트워크 장비는 불투명 라벨 및 유출 인터페이스 사이의 맵핑을 저장할 수 있다.
도 5는 네트워크 조건에 응답하는 서버 제어되는 라우팅 메커니즘을 갖는 컨텐츠 분배 시스템(202)과 같은 네트워크 관리되는 컨텐츠 분배 시스템을 동작하는 방법(500)의 흐름 차트를 도시한다. 방법(500)은 네트워크 장비를 통해 자율 시스템으로부터 프리픽스 엔트리를 수집하는 단계(502)로 시작한다. 컨텐츠 분배 시스템은 단계(504)에서 유출되는 네트워크 트래픽과 같은 네트워크 트래픽을 모니터링함으로써 네트워크 조건이 충족되는지 여부를 결정할 수 있다. 네트워크 트래픽을 모니터링하는 것은 얼마나 많은 트래픽이 네트워크 장비의 각각의 유출 포트를 통해 지나가는지를 결정하는 것을 포함한다. 네트워크 트래픽을 모니터링하는 것은 얼마나 많은 트래픽이 프리픽스 엔트리의 각각의 프리픽스로 전송되는지를 결정하는 것을 또한 포함한다. 네트워크 조건은 미리-정의된 임계치를 넘어서 자율 시스템 중 하나를 네트워크 이용하는 것일 수 있다.
불투명 라벨은 이후 단계(506)에서 네트워크 조건에 기반하여 프리픽스 엔트리의 목적지 프리픽스와 연관될 수 있다. 불투명 라벨의 목적지 프리픽스와의 연관을 변경함으로써, 네트워크 트래픽은 불투명 라벨을 불투명 라벨이 제2 자율 시스템에 연결된 네트워크 장비의 유출 인터페이스에 대응하는 목적지 프리픽스와 연관시킴으로써 제1 자율 시스템으로부터 제2 자율 시스템으로 이동될 수 있다. 목적지 프리픽스로 향하는 IP 패킷은 이후 단계(508)에서 불투명 라벨로 라벨링된다. 네트워크 장비는 이후 단계(510)에서 불투명 라벨에 기반하여 IP 패킷을 포워딩한다.
단계(504)에서 네트워크 트래픽을 모니터링하는 것은 네트워크 장비에 연결된 호스트 서버로부터 오는 트래픽 카테고리를 결정하는 것을 포함한다. 불투명 라벨은 이후 트래픽 카테고리를 갖는 호스트 서버에 고유한 목적지 프리픽스와 연관될 수 있다. 트래픽 카테고리를 갖는 호스트 서버로부터의 네트워크 트래픽은 이후 목적지 프리픽스와 연관된 불투명 라벨을 제1 자율 시스템과 연관된 불투명 라벨로부터 제1 자율 시스템 보다 낮은 지연시간을 갖는 제2 자율 시스템과 연관된 불투명 라벨로 변경함을 통해 이동될 수 있다.
이제 도 6을 참조하면, 기계가 본 명세서에 논의되는 임의의 하나 이상의 방법이나 모듈을 수행하게 하기 위한 명령어 세트가 실행될 수 있는 컴퓨터 시스템(600)의 예시적인 형태인 기계의 도식적 표현이 도시된다.
도 6의 예에서, 컴퓨터 시스템(600)은 프로세서, 메모리, 비-휘발성 메모리 및 인터페이스 장치를 포함한다. 다양한 공통 컴포넌트(예컨대, 캐시 메모리)는 예시의 간소화를 위해 생략된다. 컴퓨터 시스템(600)은 도 1-3b의 예에 도시된 임의의 컴포넌트(및 본 명세서에 기술된 임의의 다른 컴포넌트)가 구현될 수 있는 하드웨어 장치를 설명하도록 의도된다. 컴퓨터 시스템(600)은 임의의 적용가능한 공지되거나 간편한 타입일 수 있다. 컴퓨터 시스템(600)의 컴포넌트는 버스를 통해 또는 몇몇의 다른 공지되거나 간편한 장치를 통해 함께 연결된다.
본 명세서는 임의의 적절한 물리적 형태를 취하는 컴퓨터 시스템(600)을 고려한다. 예로서 제한 없이, 컴퓨터 시스템(600)은 임베디드 컴퓨터 시스템, 시스템-온-칩(SOC), 단일-보드 컴퓨터 시스템(SBC)(예컨대, 컴퓨터-온-모듈(COM) 또는 시스템-온-모듈(SOM)), 데스크톱 컴퓨터 시스템, 랩톱 또는 노트북 컴퓨터 시스템, 상호작용형 키오스크(kiosk), 메인 프레임, 컴퓨터 시스템 메쉬(mesh), 모바일 전화, 개인 정보 단말기(PDA), 서버 또는 이들의 2 이상의 조합일 수 있다. 적절한 경우, 컴퓨터 시스템(600)은 하나 이상의 컴퓨터 시스템(600)들을 포함할 수 있거나; 일체형 또는 분산형일 수 있거나; 다수의 위치에 걸쳐 있거나; 다수의 기계에 걸쳐 있거나; 하나 이상의 네트워크에 하나 이상의 클라우드 성분을 포함할 수 있는 클라우드에 상주할 수 있다. 적절한 경우, 하나 이상의 컴퓨터 시스템(600)은 본 명세서에 기술되거나 도시되는 하나 이상의 방법의 하나 이상의 단계를 실질적으로 공간적 또는 시간적 제한 없이 실행할 수 있다. 예로서 제한 없이, 하나 이상의 컴퓨터 시스템(600)은 본 명세서에 기술되거나 도시되는 하나 이상의 방법의 하나 이상의 단계를 실시간으로 또는 일괄 모드로 실행할 수 있다. 적절한 경우, 하나 이상의 컴퓨터 시스템(600)은 본 명세서에 기술되거나 도시되는 하나 이상의 방법의 하나 이상의 단계를 다른 시기에 또는 다른 위치에서 실행할 수 있다.
예컨대, 프로세서는 가령 인텔 펜티엄 마이크로프로세서 또는 모토로라 파워 PC 마이크로프로세서와 같은 종래의 마이크로프로세서일 수 있다. 당업자는 "기계-판독가능한 (저장) 매체" 또는 "컴퓨터-판독가능한 (저장) 매체"와 같은 용어들이 프로세서에 의해 접근될 수 있는 임의의 타입의 장치를 포함함을 인식할 것이다.
메모리는 예컨대 버스에 의해 프로세서와 연결된다. 메모리는 예로서 제한 없이 가령 동적 RAM(DRAM) 및 정적 RAM(SRAM)과 같은 랜덤 액세스 메모리(RAM)를 포함할 수 있다. 메모리는 로컬형이거나, 원격형이거나, 분산형일 수 있다.
또한, 버스는 프로세서를 비-휘발성 메모리와 드라이브 유닛과 연결한다. 비-휘발성 메모리는 흔히 자기 플로피 또는 하드 디스크, 자기-광학 디스크, 광학 디스크, 가령 CD-ROM, EPROM 또는 EEPROM과 같은 읽기-전용 메모리(ROM), 자기 또는 광학 카드, 또는 대용량의 데이터용 저장소의 또 다른 형태이다. 이런 데이터의 일부는 흔히 직접형 메모리 접근 프로세스에 의해 컴퓨터(600)에서 소프트웨어의 실행 중 메모리로 기록된다. 비-휘발성 저장소는 로컬형, 원격형 또는 분산형일 수 있다. 시스템들은 메모리에서 이용가능한 모든 적용가능한 데이터와 함께 생성될 수 있기 때문에 비-휘발성 메모리는 선택형이다. 일반적인 컴퓨터 시스템은 적어도 프로세서, 메모리 및 메모리를 프로세서와 연결하는 장치(예컨대, 버스)를 흔히 포함할 것이다.
통상, 소프트웨어는 비-휘발성 메모리 및/또는 드라이브 유닛에 저장된다. 실제로, 대용량 프로그램에 대하여, 메모리에서 전체 프로그램을 저장하는 것도 심지어 가능하지 않을 수 있다. 그럼에도, 실행하는 소프트웨어에 대하여 필요한 경우 처리에 적절한 컴퓨터 판독가능한 위치로 이동되며 예시의 목적상 그 위치가 본 명세서에서 메모리라고 일컬어짐이 이해되어야 한다. 소프트웨어가 실행을 위해 메모리로 이동될 때에도, 프로세서는 통상 소프트웨어와 관련된 값들을 저장하는 하드웨어 레지스터 및 이상적으로 실행 속도를 높이도록 제공하는 로컬 캐시를 이용할 것이다. 본 명세서에서 사용되는 바와 같이, 소프트웨어 프로그램은 소프트웨어 프로그램이 "컴퓨터-판독가능한 매체에서 구현되는" 것으로 언급될 때 (비-휘발성 저장소에서 하드웨어 레지스터로) 임의의 공지되거나 간편한 위치에 저장되는 것으로 추정된다. 프로세서는 프로그램과 관련된 적어도 하나의 값이 프로세서에 의해 판독가능한 레지스터에 저장될 때 "프로그램을 실행하도록 구성"된다고 간주된다.
또한, 버스는 프로세서를 네트워크 인터페이스 장치와 연결한다. 인터페이스는 하나 이상의 모뎀 또는 네트워크 인터페이스를 포함할 수 있다. 모뎀이나 네트워크 인터페이스는 컴퓨터 시스템(600)의 일부로 간주될 수 있다고 이해될 것이다. 인터페이스는 아날로그 모뎀, ISDN 모뎀, 케이블 모뎀, 토큰 링 인터페이스, 위성 전송 인터페이스(예컨대, "다이렉트 PC(direct PC)") 또는 컴퓨터 시스템을 다른 컴퓨터 시스템과 연결하기 위한 다른 인터페이스들을 포함할 수 있다. 인터페이스는 하나 이상의 입력 및/또는 출력 장치를 포함할 수 있다. I/O 장치는 예로서 제한 없이 키보드, 마우스 또는 다른 포인팅 장치, 디스크 드라이브, 프린터, 스캐너 및 디스플레이 장치를 포함하는 다른 입력 및/또는 출력 장치를 포함할 수 있다. 디스플레이 장치는 예로서 제한 없이 CRT(cathode ray tube), LCD(liquid crystal display) 또는 몇몇의 다른 적용가능한 공지되거나 간편한 디스플레이 장치를 포함할 수 있다. 간소화를 위해, 도 6의 예에서 도시되지 않은 임의의 장치들의 컨트롤러들은 인터페이스에 상주한다고 추정된다.
동작시, 컴퓨터 시스템(600)은 가령 디스크 운영 시스템과 같은 파일 관리 시스템을 포함하는 운영 시스템 소프트웨어에 의해 제어될 수 있다. 관련된 파일 관리 시스템 소프트웨어를 가진 운영 시스템 소프트웨어의 한 예는 Redmond의 Microsoft Corporation로부터의 Windows®로 알려진 운영 시스템 및 그들의 관련 파일 관리 시스템의 패밀리이다. 관련된 파일 관리 시스템 소프트웨어를 가진 운영 시스템 소프트웨어의 또 다른 예는 LinuxTM 운영 시스템 및 그의 관련된 파일 관리 시스템이다. 파일 관리 시스템은 통상 비-휘발성 메모리 및/또는 드라이브 유닛에 저장되며, 프로세서가 데이터를 입출력하고 비-휘발성 메모리 및/또는 드라이브 유닛에 저장 파일을 포함하는 메모리에 데이터를 저장하도록 운영 시스템에 의해 요구되는 다양한 행위를 실행하게 할 수 있다.
상세한 설명의 몇몇의 부분들은 컴퓨터 메모리 내 데이터 비트에서 알고리즘 및 동작의 기호적 표현의 관점으로 제시될 수 있다. 이런 알고리즘적 설명이나 표현은 본 기술분야에서 당업자에게 가장 효과적으로 그들의 작업의 실체를 전달하기 위해 데이터 프로세싱 기술분야에서 당업자에 의해 사용되는 수단이다. 알고리즘은 여기서 일반적으로 소정의 결과로 이끄는 일관성 있는 동작들의 시퀀스라고 이해된다. 동작들은 물리량의 물리적 조작을 요구하는 동작들이다. 보통, 반드시 그런 것은 아니지만, 이런 물리량은 저장되고, 전달되며, 결합되고, 비교되며, 그렇지 않으면 조작될 수 있는 전기적 신호 또는 자기적 신호의 형태를 취한다. 원칙상 공통의 사용을 이유로 이런 신호를 비트, 값, 요소, 심볼, 문자, 용어, 숫자 등으로 일컫는 것이 때때로 간편하다고 판명되었다.
그러나, 이런 용어들 및 유사한 용어들 모두는 적절한 물리량과 관련되는 것이고 단지 이런 물리량에 적용되는 편의상의 라벨임을 유의해야 한다. 하기의 논의로부터 명백하게 달리 명시적으로 언급되는 것이 아닌 한, 본 명세서를 통해 가령 "처리하는(processing)" 또는 "연산하는(computing)" 또는 "계산하는(calculating)" 또는 "결정하는(determining)" 또는 "디스플레이하는(displaying)" 또는 "생성하는(generating)" 등과 같은 용어들을 이용하는 설명은 컴퓨터 시스템의 레지스터와 메모리 내 물리적(전자적) 양으로 표현되는 데이터를 컴퓨터 시스템 메모리나 레지스터 내 또는 다른 이런 정보 저장, 전송 또는 디스플레이 장치 내에 물리량으로 유사하게 표현되는 다른 데이터로 조작하고 변형하는 컴퓨터 시스템 또는 유사한 전자식 컴퓨팅 장치의 행위 및 프로세스를 일컫는 것임이 이해된다.
본 명세서에 제시된 알고리즘 및 디스플레이는 본질적으로 임의의 특정한 컴퓨터 또는 다른 장치에 관한 것이 아니다. 다양한 범용 시스템은 본 명세서에 시사된 내용에 따른 프로그램들과 함께 사용될 수 있거나, 일부의 실시예들의 방법을 수행하도록 더 전문화된 장치를 구축하는 것이 편리하다고 판명될 수 있다. 다양한 이런 시스템들에 대해 필요한 구조가 하기의 상세한 설명으로부터 나타날 것이다. 또한, 기술들은 임의의 특정한 프로그래밍 언어를 참조로 기술되지 않으며, 따라서 다양한 실시예들은 다양한 프로그래밍 언어를 사용하여 구현될 수 있다.
대안의 실시예로, 기계는 독립형 장치로 동작하거나 다른 기계들과 연결(예컨대, 네트워크화)될 수 있다. 네트워크형 배치에서, 기계는 클라이언트-서버 네트워크 환경에서 서버 또는 클라이언트 기계의 능력으로 또는 피어-투-피어(또는 분산형) 네트워크 환경의 피어 기계(peer machine)로서 동작할 수 있다.
기계는 서버 컴퓨터, 클라이언트 컴퓨터, 개인용 컴퓨터(PC), 태블릿 PC, 랩톱 컴퓨터, 셋톱 박스(STB), 개인용 정보 단말기(PDA), 셀룰러 전화, 아이폰, 블랙베리, 프로세서, 전화, 웹 기기, 네트워크 라우터, 스위치 또는 브릿지, 또는 그 기계에 의해 행해지는 행위들의 명시하는 한 세트의 (순차적이거나 그렇지 않은) 명령어를 실행할 수 있는 임의의 기계일 수 있다.
기계-판독가능한 매체 또는 기계-판독가능한 저장매체는 예시적인 실시예에서 하나의 매체인 것으로 도시되지만, "기계-판독가능한 매체" 및 "기계-판독가능한 저장매체"라는 용어들은 하나 이상의 명령어 세트를 저장하는 단일의 매체 또는 다수의 매체들(예컨대, 집중형 또는 분산형 데이터베이스 및/또는 관련 캐시 및 서버)을 포함하는 것으로 간주되어야 한다. 또한, "기계-판독가능한 매체" 및 "기계-판독가능한 저장매체"라는 용어들은 기계에 의한 실행을 위해 한 세트의 명령어를 저장하거나 인코딩하거나 운반할 수 있고, 기계가 본 명세서에 개시된 기술 및 혁신의 임의의 하나 이상의 방법론이나 모듈을 실행하게 하는 임의의 매체를 포함하는 것으로 간주되어야 한다.
통상, 본 명세서의 실시예들을 구현하도록 실행되는 루틴들은 운영 시스템이나 특정 애플리케이션, 컴포넌트, 프로그램, 객체, 모듈이나 "컴퓨터 프로그램"이라고 하는 명령어 시퀀스의 일부로 구현될 수 있다. 컴퓨터 프로그램은 일반적으로 컴퓨터의 다양한 메모리와 저장 장치에서 다양한 시기에 설정되며, 컴퓨터 내 하나 이상의 처리 유닛이나 프로세서에 의해 판독되고 실행될 때 컴퓨터가 본 명세서의 다양한 태양을 포함하는 요소들을 실행하는 동작들을 수행하게 하는 하나 이상의 명령어 세트를 포함한다.
게다가, 실시예들은 정상 작동되는 컴퓨터 및 컴퓨터 시스템의 상황에서 기술되었지만, 당업자는 다양한 실시예들이 다양한 형태로 프로그램 제품으로 분산될 수 있으며 본 명세서가 실제로 이런 분산을 위해 사용되는 특정 타입의 기계 또는 컴퓨터-판독가능한 매체에 관계없이 동일하게 적용됨을 이해할 것이다.
기계-판독가능한 저장매체, 기계-판독가능한 매체 또는 컴퓨터-판독가능한 (저장)매체의 추가적인 예들은 가령 휘발성 및 비-휘발성 메모리 장치, 플로피 및 다른 착탈식 디스크, 하드 디스크 드라이브, 광학 디스크(예컨대, CD ROMS(Compact Disk Read-Only Memory), DVDs(Digital Versatile Disks) 등) 등과 같은 기록가능한 타입의 매체 및 가령 디지털과 아날로그 통신 링크와 같은 전송 타입의 매체를 포함하나 이에 국한되지 않는다.
일부의 경우, 가령 이진수 1에서 이진수 0으로의 상태 변화나 그 역과 같은 메모리 장치의 동작은 예컨대 물리적 변환과 같은 변환(transformation)을 포함할 수 있다. 특정 타입의 메모리 장치로, 이런 물리적 변환은 다른 상태나 사물로의 물품의 물리적 변환을 포함할 수 있다. 예컨대, 제한 없이, 몇몇 타입의 메모리 장치에 대하여, 상태 변화는 전하의 축적과 저장 또는 저장된 전하의 방출을 포함할 수 있다. 마찬가지로, 다른 메모리 장치에서, 상태 변화는 자성 방향(magnetic orientation)의 물리적 변화나 변환 또는 가령 결정질에서 비결정질로 또는 그 역으로와 같이 분자 구조의 물리적 변화나 변환을 포함할 수 있다. 상술한 내용은 메모리 장치에서 이진수 1에서 이진수 0으로 또는 그 역으로의 상태 변화가 가령 물리적 변환과 같은 변형을 포함할 수 있는 모든 예들의 완전한 목록임을 의도하지 않는다. 그 대신, 상술한 내용은 설명을 위한 예들로 의도된다.
통상, 저장매체는 비-일시적일 수 있거나 비-일시적 장치를 포함할 수 있다. 이와 관련하여, 비-일시적 저장매체는 장치가 그 물리적 상태를 변화시킬 수 있지만 장치가 구체적인 물리적 형태를 의미하는 유형의 장치를 포함할 수 있다. 따라서, 예컨대, 비-일시적은 그 상태 변화에도 불구하고 유형의 상태를 유지하는 장치를 말한다.
상기 상세한 설명 및 도면은 설명을 위한 것이고 개시되는 정확한 형태로 본 발명을 제한하는 것으로 해석되지 않는다. 당업자는 상술한 명세서의 관점에서 많은 변경 및 변형이 가능함을 이해할 수 있다. 많은 특정한 세부사항이 본 명세서의 완전한 이해를 제공하도록 기술된다. 그러나, 어떤 경우, 널리 알려진 세부사항이나 종래의 세부사항은 본 명세서를 모호하게 하지 않도록 기술되지 않는다.
본 명세서에서 "일실시예(one embodiment)" 또는 "한 실시예(an embodiment)"에 대한 언급은 그 실시예와 함께 기술되는 특정한 특징, 구조 또는 특성이 본 명세서의 적어도 하나의 실시예에 포함됨을 의미한다. 본 명세서의 곳곳에서 "일실시예로"라는 문구의 형태는 반드시 동일한 실시예를 일컫는 모든 것이 아닐뿐 아니라 다른 실시예들과 상호배타적인 별도의 실시예 또는 대안의 실시예인 것도 아니다. 게다가, 일부의 실시예에 의해 나타날 수 있으나 다른 실시예들에 의해서는 그렇지 않을 수 있는 다양한 특징들이 기술된다. 마찬가지로, 일부의 실시예에서는 필요할 수 있으나 다른 실시예에서는 그렇지 않을 수 있는 다양한 요건들이 기술된다.
본 명세서에서 사용되는 바와 같이, 시스템의 모듈들에 적용할 때, "연결되는(connected)", "결합되는(coupled)"이란 용어들이나 이들의 임의의 변형은 2 이상의 구성요소 사이의 직접적이거나 간접적인 임의의 연결이나 결합을 의미한다; 구성요소들 사이의 연결의 결합은 물리적이거나, 논리적이거나, 이들의 조합일 수 있다. 추가로, "본 명세서에서(herein)", "상기(above)", "하기(below)"란 단어들 및 유사한 의미의 단어들은, 본 출원에서 사용될 때, 전체로서의 본 출원을 나타내며 본 출원의 임의의 특정한 부분을 나타내는 것은 아니다. 문맥상 허용되는 경우, 단수 또는 복수를 사용하는 상기 상세한 설명의 단어들은 또한 각각 복수 또는 단수를 포함할 수 있다. 2 이상의 아이템의 리스트와 관련하여 "또는"이란 단어는 그 단어의 다음과 같은 해석들 모두를 포함한다: 리스트 내 아이템의 일부, 리스트 내 모든 아이템 및 리스트 내 아이템들의 임의의 조합.
당업자는 본 발명이 하기에 나타나지 않은 다른 형태들 및 방식들로 구현될 수 있음을 이해할 것이다. 만일 있다면, 가령 1번째, 2번째, 상부 및 하부 등과 같은 관계형 용어들의 사용이 단지 하나의 엔티티나 행위를 다른 것과 구별하기 위해 사용되는 것으로, 이런 엔티티나 행위 사이의 임의의 이런 실제의 관계 또는 순서를 반드시 필요로 하거나 의미하는 것은 아님이 이해된다.
프로세스나 블록이 소정의 순서로 제시되지만, 대안의 실시예는 다른 순서로 단계들을 가진 루틴을 수행하거나 블록을 가진 시스템을 이용할 수 있으며, 몇몇의 프로세스나 블록은 대안의 조합이나 서브 조합을 제공하도록 삭제, 이동, 추가, 세분, 대체, 결합 및/또는 변경될 수 있다. 각각의 이런 프로세스나 블록은 다양한 다른 방식으로 구현될 수 있다. 또한, 프로세스나 블록은 때때로 직렬로 수행되는 것으로 도시되지만, 대신에 이런 프로세스나 블록은 병렬로 수행될 수 있거나, 다른 시기에 수행될 수 있다. 게다가, 본 명세서에 언급된 임의의 특정 숫자는 단지 예들이며; 대안의 구현들은 상이한 값이나 범위를 이용할 수 있다.
본 명세서에서 제공되는 명세서의 내용은 반드시 상술한 시스템에만 적용되는 것이 아니라 다른 시스템들에 적용될 수 있다. 상술한 다양한 실시예들의 구성요소 및 행위는 추가의 실시예들을 제공하도록 결합될 수 있다.
첨부 출원 문서에 리스트될 수 있는 임의의 것들을 포함하는 상기 언급된 임의의 특허와 출원 및 다른 참고문헌들은 참조로 본 명세서에 통합된다. 본 명세서의 태양은 필요한 경우 본 명세서의 또 하나의 실시예들을 제공하도록 상술한 다양한 참고문헌들의 시스템, 기능 및 사상을 이용하도록 변경될 수 있다.
이런 변경 및 다른 변경이 상기 상세한 설명에 비추어 본 명세서에서 이루어질 수 있다. 상기 상세한 설명은 본 명세서의 특정 실시예들을 기술하고 고려되는 최상의 모드를 기술하지만, 상술한 내용을 문자로 아무리 상세히 나타내더라도 그 시사된 내용은 많은 방식으로 실행될 수 있다. 시스템의 세부사항은 그 구현의 세부사항에서 상당히 변할 수 있으면서, 본 명세서에 개시된 내용에 의해 여전히 포함될 수 있다. 상술한 바대로, 본 명세서의 특정한 기능이나 태양을 설명할 때 사용되는 특정 용어는 그 용어가 관련되는 본 명세서의 임의의 특정한 특성, 기능 또는 태양으로 제한되도록 본 명세서에서 그 용어가 재정의됨을 의미하는 것으로 간주되지 않아야 한다. 일반적으로, 하기의 청구항들에서 사용되는 용어들은 상기 상세한 설명 부분이 그런 용어를 명시적으로 정의하지 않으면 명세서에서 개시되는 특정 실시예들로 본 명세서를 제한하는 것으로 해석되지 않아야 한다. 따라서, 본 명세서의 실제 범위는 개시된 실시예들뿐 아니라 청구항들 하에서 본 명세서를 실행하거나 구현하는 모든 균등한 방식들을 포함한다.
본 명세서의 특정한 태양은 특정한 청구항의 형태로 하기에 제시되지만, 발명자들은 임의의 수의 청구항의 형태들로 본 명세서의 다양한 태양들을 고려한다. 미국연방법률(35 U.S.C.§112, 6)하에서 다루어지도록 의도되는 임의의 청구항들은 "~를 위한 수단(means for)"이란 단어들로 시작할 것이다. 따라서, 출원인은 본 명세서의 다른 태양들에 대한 이런 추가적인 청구항 형태를 따르는 출원을 출원한 후 추가 청구항들을 추가할 권리를 유보한다.
일반적으로 본 명세서에서 사용되는 용어들은 본 명세서의 문맥 내에서 그리고 각 용어가 사용되는 특정 문맥에서 해당 기술분야의 일반적인 의미들을 가진다. 본 명세서를 기술하는데 사용되는 특정 용어들은 본 명세서의 상세한 설명에 관한 추가 지침을 실행자에게 제공하도록 앞서 기술되거나 상세한 설명의 다른 곳에서 논의된다. 편의상, 특정 용어는 예컨대 대문자, 이탤릭체 및/또는 인용부호를 사용하여 하이라이팅될 수 있다. 하이라이팅의 사용은 한 용어의 범위 및 의미에 전혀 영향을 주지 않는다; 한 용어의 범위 및 의미는 하이라이팅 여부에 관계없이 동일한 문맥에서 동일하다. 동일한 구성요소는 하나 이상의 방식으로 기술될 수 있음이 이해될 것이다.
결과적으로, 대안의 언어 및 동의어는 본 명세서에서 논의되는 임의의 하나 이상의 용어들에 대해 사용될 수 있으나, 한 용어가 본 명세서에서 설명되거나 논의되는지 여부에 따라 임의의 특별한 의미가 정해지는 것은 아니다. 특정한 용어들에 대한 동의어가 제공된다. 하나 이상의 동의어의 기재가 다른 동의어들의 사용을 배제하지 않는다. 본 명세서에서 논의되는 임의의 용어들의 예들을 포함하는 상세한 설명의 곳곳의 예들의 사용은 단지 설명을 위한 것이며, 본 명세서 또는 임의의 예시적인 용어의 범위 및 의미를 더 제한하려는 의도는 아니다. 마찬가지로, 본 명세서는 상세한 설명에 제공된 다양한 실시예들로 제한되지 않는다.
본 명세서의 범위를 추가로 제한하려는 의도 없이, 본 명세서의 실시예들에 따른 기기, 장치, 방법 및 관련 결과물들의 예가 하기에 제공된다. 본 명세서의 범위를 전혀 제한하지 않아야 하는 제목 또는 부제가 독자(reader)의 편의상 예들에서 사용될 수 있음을 유의하자. 달리 정의되지 않으면, 본 명세서에서 사용되는 모든 기술적이고 과학적인 용어들은 본 명세서에 관한 해당 기술분야의 당업자에 의해 공통으로 이해되는 것과 동일한 의미를 가진다. 모순되는 경우, 정의들을 포함하는 본 명세서의 문서가 조절할 것이다.
본 명세서의 몇몇 부분들은 알고리즘 또는 정보에 대한 동작의 기호적 표현으로 본 발명의 실시예들을 설명한다. 이러한 알고리즘적 설명이나 표현은 본 기술분야에서 통상의 지식을 가진 자들에게 효과적으로 그들의 작업의 실체를 전달하기 위하여 데이터 프로세싱 기술분야에서 통상의 지식을 가진 자에 의하여 공통적으로 사용되는 것이다. 기능적으로, 계산적으로 또는 논리적으로 설명되고 있는 이들 동작은 컴퓨터 프로그램 또는 등가의 전기 회로, 마이크로 코드 등에 의해 구현되는 것으로 이해된다. 또한, 종종 이러한 동작의 배열은 일반성의 손실 없이 모듈로 언급될 수 있는 것으로 확인된다. 기술된 동작 및 그와 관련된 모듈들은 소프트웨어, 펌웨어, 하드웨어 또는 이들의 임의의 결합으로 구현될 수 있을 것이다.
본 명세서에 기술된 임의의 단계들, 동작들 또는 프로세스들은 하나 이상의 하드웨어 또는 소프트웨어 모듈들에 의해 또는 이들과 다른 장치들의 결합에 의해 수행되거나 구현될 수 있다. 일실시예에서, 소프트웨어 모듈은 기술된 단계들, 동작들 또는 프로세스들 일부 또는 전부를 수행하기 위하여 컴퓨터 프로세서에 의해 실행될 수 있는 컴퓨터 프로그램 코드를 포함하는 컴퓨터 판독가능한 매체를 포함하는 컴퓨터 프로그램 제품으로 구현된다.
본 발명에 기술된 실시예들은 또한 본 명세서의 동작들을 수행하기 위한 장치와 관련될 수 있다. 이 장치는 요청된 목적을 위하여 구체적으로 구성될 수 있고/있거나 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 범용 컴퓨팅 장치를 포함할 수 있다. 이런 컴퓨터 프로그램은 비-일시적 유형의 컴퓨터 판독가능한 저장 매체 또는 전자 명령어를 저장하기에 적절한 임의의 타입의 매체에 저장될 수 있고 컴퓨터 시스템 버스에 결합될 수 있다. 게다가, 본 명세서에서 언급된 임의의 컴퓨팅 시스템들은 단일 프로세서를 포함할 수 있거나, 증가한 컴퓨팅 능력을 위해 다중 프로세서 설계를 채용한 구조일 수 있다.
또한, 본 발명의 실시예들은 본 명세서에 기술된 컴퓨팅 프로세스로 제조된 제품에 관한 것일 수 있다. 이런 제품은 컴퓨팅 프로세스의 결과로 생성된 정보를 포함할 수 있는데, 여기서 정보는 비일시적 유형의 컴퓨터 판독가능한 저장 매체에 저장되며, 본 명세서에 기술된 컴퓨터 프로그램 제품 또는 다른 데이터 조합의 임의의 실시예를 포함할 수 있다.
마지막으로, 본 명세서에 사용된 언어는 가독성과 지시의 목적으로 이론적으로 선택된 것으로 발명의 사상을 제한하거나 한정하기 위하여 선택된 것이 아니다. 따라서 본 발명의 범위는 이 상세한 설명에 의해 제한되지 않으며, 이에 근거하여 본 출원을 통하여 등록될 임의의 특허청구범위에 의해 제한된다. 따라서, 본 발명의 실시예들의 개시는 설명을 위한 것이며, 본 발명의 범위를 제한하고자 하는 것이 아니다. 본 발명의 범위는 이하의 청구범위에 개시된다.

Claims (21)

  1. 자율 시스템(autonomous systems)으로부터 프리픽스 엔트리를 수집하는 단계;
    프리픽스로 특정 디지털 컨텐츠를 전송하기 위해 컨텐츠 요청을 수신하는 단계;
    호스트 서버에서, 프리픽스가 자율 시스템으로부터 수집된 프리픽스 엔트리에 리스팅될 때, 디지털 컨텐츠의 인터넷 프로토콜(IP) 패킷을 위해 자율 시스템에 기반하여 불투명 라벨(opaque label)을 생성하는 단계; 및
    네트워크 장비의 유출(egress) 인터페이스로부터 IP 패킷을 포워딩하는 단계를 포함하며,
    상기 유출 인터페이스는 불투명 라벨에 대응하는 방법.
  2. 제 1 항에 있어서,
    불투명 라벨은 자율 시스템에 직접 연결된 네트워크 장비의 유출 인터페이스에 대응하는 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    네트워크 장비로부터 오프라인으로 프리픽스 엔트리를 저장하는 단계를 더 포함하는 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    네트워크 장비는 불투명 라벨 및 유출 인터페이스 사이의 맵핑을 저장하는 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    프리픽스 엔트리를 수집하는 단계는 네트워크 장비에 투명한(transparent) 라우트 수집 서비스를 통해 프리픽스 엔트리를 수집하는 단계를 포함하는 방법.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    프리픽스 엔트리를 수집하는 단계는 프리픽스에 도달하기 위해 디폴트 루트로서 자율시스템을 표시하는 풀 인터넷 라우팅 테이블(full Internet routing table)을 수집하는 단계를 포함하는 방법.
  7. 네트워크 장비를 통해 프리픽스 엔트리를 수집하는 단계;
    유출되는 네트워크 트래픽을 모니터링함으로써 네트워크 조건이 충족되는지 여부를 결정하는 단계;
    네트워크 조건에 기반하여 불투명 라벨을 프리픽스 엔트리에서의 목적지 프리픽스와 연관시키는 단계;
    목적지 프리픽스로 향하는 인터넷 프로토콜(IP) 패킷을 불투명 라벨로 라벨링하는 단계; 및
    불투명 라벨에 기반하여 네트워크 장비에서 IP 패킷을 포워딩하는 단계를 포함하는 방법.
  8. 제 7 항에 있어서,
    유출되는 네트워크 트래픽을 모니터링하는 것은:
    목적지 프리픽스로부터 트래픽을 샘플링하기 위해 호스트 서버에서 트래픽 샘플링 서비스를 제공하는 단계; 및
    얼마나 많은 데이터가 호스트 서버로부터 목적지 프리픽스로 전송되는지를 결정하기 위해 프리픽스 엔트리를 샘플링된 트래픽과 페어링(pair)하는 단계를 포함하는 방법.
  9. 제 8 항에 있어서,
    불투명 라벨을 목적지 프리픽스와 연관시키는 단계는:
    얼마나 많은 데이터가 목적지 프리픽스로 전송되는지에 기반하여 제1 자율 시스템을 통과하는 트래픽 흐름을 담당하는 목적지 프리픽스를 선택하는 단계; 및
    목적지 프리픽스에 도달할 수 있고 제1 자율 시스템보다 낮은 지연시간을 갖는 제2 자율 시스템에 대응하는 불투명 라벨을 선택하는 단계를 포함하는 방법.
  10. 제 9 항에 있어서,
    불투명 라벨을 목적지 프리픽스와 연관시키는 것은 네트워크 장비와 연결된 호스트 서버들의 전부보다 적은 일부에 대해 프로그램되며, 호스트 서버들은 트래픽을 목적지 프리픽스에 서빙하는 방법.
  11. 제 7 항에 있어서,
    유출되는 네트워크 트래픽을 모니터링하는 단계는 네트워크 장비로부터 제1 자율 시스템의 제1 대역폭 이용 퍼센티지(bandwidth utilization percentage) 및 제2 자율 시스템의 제2 대역폭 이용 퍼센티지를 추정하는 단계를 포함하며,
    네트워크 조건은 제1 대역폭 이용 퍼센티지가 미리-정의된 임계치를 넘는지 여부인 방법.
  12. 제 11 항에 있어서,
    불투명 라벨을 연관시키는 단계는 제2 대역폭 이용 퍼센티지가 제1 대역폭 이용 퍼센티지보다 낮고, 제2 자율 시스템이 트래픽을 수용하기 위해 이용가능한 대역폭을 가질 때, 제1 자율 시스템으로부터 제2 자율 시스템으로 트래픽을 이동시키는 단계를 포함하는 방법.
  13. 제 7 항에 있어서,
    불투명 라벨을 연관시키는 단계는 목적지 프리픽스와 연관시키기 위한 새로운 불투명 라벨을 선택함으로써 제1 자율 시스템으로부터 제2 자율 시스템으로 트래픽을 이동시키는 단계를 포함하며,
    새로운 불투명 라벨은 제2 자율 시스템에 연결된 네트워크 장비의 유출 인터페이스에 대응하는 방법.
  14. 제 7 항에 있어서,
    유출되는 네트워크 트래픽을 모니터링하는 단계는 네트워크 장비에 연결된 호스트 서버로부터 유입되는 트래픽 카테고리를 결정하는 단계를 포함하며; 및
    불투명 라벨을 연관시키는 단계는:
    불투명 라벨을 호스트 서버를 위해 특정된 목적지 프리픽스와 연관시키는 단계; 및
    트래픽 카테고리에 기반하여 제1 자율 시스템으로부터 제2 자율 시스템으로 트래픽을 이동시키는 단계를 포함하고,
    상기 제2 자율 시스템은 제1 자율 시스템보다 낮은 지연시간을 갖는 방법.
  15. 네트워크 패브릭(network fabric)과 하나 이상의 이웃하는 자율 시스템 사이의 네트워크 장비 인터페이싱;
    네트워크 장비에 연결된 호스트 서버;
    서비스 모듈을 저장하는 비-일시적 메모리; 및
    서비스 모듈을 실행하기 위한 하나 이상의 프로세서를 포함하고,
    상기 서비스 모듈은:
    네트워크 장비에 연결되고 프리픽스 엔트리를 수집하도록 구성된 루트 수집 모듈; 및
    불투명 라벨을 프리픽스 엔트리에서 식별된 프리픽스에 연관시키도록 구성된 트래픽 엔지니어링 모듈을 포함하며,
    상기 네트워크 장비는 하나 이상의 이웃하는 자율 시스템에 연결된 유출 포트를 가지며,
    자율 시스템과 연관된 각각의 프리픽스 엔트리는 네트워크 장비의 유출 포트를 통해 연결되고,
    불투명 라벨은 유출 포트와 연관되며,
    호스트 서버는 불투명 라벨과 연관된 프리픽스로부터의 컨텐츠 요청에 기반하여 불투명 라벨을 유출되는 IP 패킷에 할당하며,
    네트워크 장비는 불투명 라벨과 연관된 유출 포트를 통해 유출되는 IP 패킷을 포워딩하는 네트워크 패브릭 시스템.
  16. 제 15 항에 있어서,
    트래픽 엔지니어링 모듈은 네트워크 패브릭에서의 네트워크 조건의 충족에 기반하여 프리픽스와 연관된 불투명 라벨을 변경하도록 구성된 네트워크 패브릭 시스템.
  17. 제 15 항 또는 제 16 항에 있어서,
    프리픽스 저장소(storage)를 더 포함하며,
    루트 수집 모듈은 프리픽스 엔트리를 프리픽스 저장소에 저장하고,
    프리픽스 엔트리는 로컬 풀 인터넷 라우팅 테이블(local full Internet routing table)을 포함하는 네트워크 패브릭 시스템.
  18. 제 15 항 내지 제 17 항 중 어느 한 항에 있어서,
    서비스 모듈은 호스트 서버에 연결되고 프리픽스 엔트리로 전송되는 호스트 서버로부터의 유출 트래픽을 샘플링하도록 구성된 트래픽 샘플링 모듈을 포함하는 네트워크 패브릭 시스템.
  19. 제 18 항에 있어서,
    서비스 모듈은 트래픽 샘플링 모듈에 연결되고, 네트워크 조건이 충족되는지 여부를 결정하기 위해 얼마나 많은 데이터가 각각의 프리픽스로 전송되는지를 결정하게끔 프리픽스 엔트리의 각각의 프리픽스를 샘플링된 트래픽과 페어링하도록 구성된 데이터 통합 모듈을 포함하고,
    트래픽 엔지니어링 모듈은 네트워크 조건이 충족될 때 상이한 불투명 라벨을 프리픽스에 연관시키도록 구성된 네트워크 패브릭 시스템.
  20. 제 15 항 내지 제 19항 중 어느 한 항에 있어서,
    서비스 모듈은 얼마나 많은 데이터가 이웃하는 자율 시스템 각각으로 전송되는지를 결정하도록 구성된 네트워크 모니터 모듈을 포함하고;
    트래픽 엔지니어링 모듈은 얼마나 많은 데이터가 이웃하는 자율 시스템 각각으로 전송되는지에 기반하여 불투명 라벨을 선택하도록 구성된 네트워크 패브릭 시스템.
  21. 제 1 항 내지 제 6 항 중 어느 한 항에 따른 방법을 수행하도록 실행시 동작하는 소프트웨어를 포함하는 하나 이상의 컴퓨터-판독가능한 비-일시적 저장 매체.
KR1020157032306A 2013-04-16 2014-04-04 서버 제어되는 라우팅 시스템 KR101698452B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/863,602 US9374309B2 (en) 2013-04-16 2013-04-16 Server controlled routing system
US13/863,602 2013-04-16
PCT/US2014/033073 WO2014172123A1 (en) 2013-04-16 2014-04-04 Server controlled routing system

Publications (2)

Publication Number Publication Date
KR20150143657A true KR20150143657A (ko) 2015-12-23
KR101698452B1 KR101698452B1 (ko) 2017-01-20

Family

ID=51687579

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157032306A KR101698452B1 (ko) 2013-04-16 2014-04-04 서버 제어되는 라우팅 시스템

Country Status (10)

Country Link
US (2) US9374309B2 (ko)
JP (1) JP6148397B2 (ko)
KR (1) KR101698452B1 (ko)
CN (1) CN105144646B (ko)
AU (1) AU2014254282B2 (ko)
BR (1) BR112015026356A8 (ko)
CA (1) CA2908580C (ko)
IL (1) IL241905A (ko)
MX (1) MX355949B (ko)
WO (1) WO2014172123A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8631411B1 (en) 2009-07-21 2014-01-14 The Research Foundation For The State University Of New York Energy aware processing load distribution system and method
US20150029871A1 (en) * 2013-07-24 2015-01-29 Cisco Technology, Inc. Service level agreement validation via service traffic sample-and-replay
US9426215B2 (en) * 2014-04-08 2016-08-23 Aol Inc. Determining load state of remote systems using delay and packet loss rate
WO2016032485A1 (en) * 2014-08-28 2016-03-03 Hewlett Packard Enterprise Development Lp Identify server cluster by applying social group analysis
US10582745B2 (en) 2015-07-03 2020-03-10 Michal Kadar Llc Ring assembly
GB201512022D0 (en) 2015-07-09 2015-08-19 Level 3 Comm Uk Ltd Dynamic packet routing
US9887708B2 (en) * 2016-01-28 2018-02-06 Amazon Technologies, Inc. Antenna switching circuitry of a mesh network device
SE544512C2 (en) 2017-08-25 2022-06-28 Telia Co Ab Methods and apparatuses for routing data packets in a network topology
US10439925B2 (en) * 2017-12-21 2019-10-08 Akamai Technologies, Inc. Sandbox environment for testing integration between a content provider origin and a content delivery network
CN114827014A (zh) * 2018-05-28 2022-07-29 华为技术有限公司 一种报文处理方法和装置
US10805210B1 (en) * 2019-09-20 2020-10-13 Juniper Networks, Inc. GRE tunneling with reduced packet encryption at intermediate routers using loose source routing
US11252090B1 (en) * 2019-12-04 2022-02-15 Juniper Networks, Inc Systems and methods for predicting future traffic loads of outgoing interfaces on network devices
CN113872824B (zh) * 2021-08-19 2023-04-07 网宿科技股份有限公司 Cdn网络质量检测方法、系统、服务器及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6483833B1 (en) * 1998-06-19 2002-11-19 Nortel Networks Limited Method for transmitting label switching control information using the open shortest path first opaque link state advertisement option protocol
US20040017796A1 (en) * 2002-07-24 2004-01-29 Telefonaktiebolaget L M Ericsson Method and system for multi-protocol label switching (MPLS) based data flow aggregation in a third generation (3G) cellular telecommunication system
US20050071469A1 (en) * 2003-09-26 2005-03-31 Mccollom William G. Method and system for controlling egress traffic load balancing between multiple service providers
US20060120288A1 (en) * 2004-12-02 2006-06-08 Jean-Philippe Vasseur Inter-domain TE-LSP selection

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7133403B1 (en) * 2000-05-05 2006-11-07 Fujitsu Limited Transport network and method
CA2327918A1 (en) * 2000-12-08 2002-06-08 Alcatel Canada Inc. System and method of operating a communication network associated with an mpls implementation on an atm platform
US7764602B2 (en) * 2004-05-07 2010-07-27 France Telecom Method and system for protecting a communication network, said communication network including a transport network
US20060165009A1 (en) 2005-01-25 2006-07-27 Zvolve Systems and methods for traffic management between autonomous systems in the Internet
US7483387B2 (en) 2005-05-23 2009-01-27 Cisco Technology, Inc. Hierarchical label distribution for inter-area summarization of edge-device addresses
US20070005734A1 (en) * 2005-06-30 2007-01-04 Microsoft Corporation Generically extensible client application
US7522603B2 (en) 2006-03-14 2009-04-21 Cisco Technology, Inc. Technique for efficiently routing IP traffic on CE-CE paths across a provider network
WO2009076658A1 (en) 2007-12-13 2009-06-18 Highwinds Holdings, Inc. Content delivery network
JP5271876B2 (ja) * 2009-11-12 2013-08-21 株式会社日立製作所 パケット振り分け機能を有する装置及びパケット振り分け方式
EP2608462B1 (en) * 2010-08-20 2019-02-06 Nec Corporation Communication system, control apparatus, communication method and program
US8601142B2 (en) 2011-01-10 2013-12-03 Verizon Patent And Licensing Inc. Adaptive network address translation binding for wireless networks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6483833B1 (en) * 1998-06-19 2002-11-19 Nortel Networks Limited Method for transmitting label switching control information using the open shortest path first opaque link state advertisement option protocol
US20040017796A1 (en) * 2002-07-24 2004-01-29 Telefonaktiebolaget L M Ericsson Method and system for multi-protocol label switching (MPLS) based data flow aggregation in a third generation (3G) cellular telecommunication system
US20050071469A1 (en) * 2003-09-26 2005-03-31 Mccollom William G. Method and system for controlling egress traffic load balancing between multiple service providers
US20060120288A1 (en) * 2004-12-02 2006-06-08 Jean-Philippe Vasseur Inter-domain TE-LSP selection

Also Published As

Publication number Publication date
CN105144646B (zh) 2018-03-30
WO2014172123A1 (en) 2014-10-23
CN105144646A (zh) 2015-12-09
BR112015026356A2 (pt) 2017-07-25
MX2015014573A (es) 2016-06-29
JP6148397B2 (ja) 2017-06-14
US20160218969A1 (en) 2016-07-28
MX355949B (es) 2018-05-07
CA2908580C (en) 2017-04-11
KR101698452B1 (ko) 2017-01-20
IL241905A (en) 2017-09-28
AU2014254282B2 (en) 2016-11-17
US20140310427A1 (en) 2014-10-16
AU2014254282A1 (en) 2015-10-29
US9374309B2 (en) 2016-06-21
BR112015026356A8 (pt) 2019-12-24
CA2908580A1 (en) 2014-10-23
JP2016517240A (ja) 2016-06-09

Similar Documents

Publication Publication Date Title
KR101698452B1 (ko) 서버 제어되는 라우팅 시스템
US12088507B2 (en) Scalable edge computing
US9954901B2 (en) Service delivery controller for learning network security services
US9736263B2 (en) Temporal caching for ICN
US10250494B2 (en) Segment routing label switch paths in network functions virtualization communications networks
CN105684365B (zh) 利用软件定义流映射和虚拟化的网络功能的网络控制
US11516126B2 (en) Techniques for high performant virtual routing capabilities
US20140075048A1 (en) Apparatus, System, and Method for Cloud-Assisted Routing
US20150103838A1 (en) Asymmetric connection with external networks
US20150156277A1 (en) Dynamic network device processing using external components
CN107959625A (zh) 具有动态流卸载能力的虚拟路由器
EP2793437B1 (en) Server controlled routing system
US20200328975A1 (en) Method and system segregating application traffic in a wide area network
US10229459B1 (en) Method and apparatus for routing in transaction management systems
US20240064089A1 (en) Priority based route programing and advertising
WO2023172788A1 (en) Mechanism to manage bidirectional traffic for high availability network devices
JP2017208735A (ja) Sfcシステム、および、sfc制御方法

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant