KR20140024851A - 경합하는 어플리케이션들 간에 네트워크 대역폭을 배분하기 위한 시스템 - Google Patents

경합하는 어플리케이션들 간에 네트워크 대역폭을 배분하기 위한 시스템 Download PDF

Info

Publication number
KR20140024851A
KR20140024851A KR1020137023133A KR20137023133A KR20140024851A KR 20140024851 A KR20140024851 A KR 20140024851A KR 1020137023133 A KR1020137023133 A KR 1020137023133A KR 20137023133 A KR20137023133 A KR 20137023133A KR 20140024851 A KR20140024851 A KR 20140024851A
Authority
KR
South Korea
Prior art keywords
bandwidth
network
user
users
demand
Prior art date
Application number
KR1020137023133A
Other languages
English (en)
Other versions
KR101947354B1 (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 KR20140024851A publication Critical patent/KR20140024851A/ko
Application granted granted Critical
Publication of KR101947354B1 publication Critical patent/KR101947354B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/801Real time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/783Distributed allocation of resources, e.g. bandwidth brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • 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
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0882Utilisation of link capacity
    • 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
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • 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/11Identifying congestion
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/808User-type aware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/822Collecting or measuring resource availability data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/828Allocation of resources per group of connections, e.g. per group of users
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/83Admission control; Resource allocation based on usage prediction

Landscapes

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

Abstract

본 발명은 글로벌한 거대 스케일의 네트워크(100) 상에서의 대역폭의 할당에 관한 것이다. 시스템들 및 방법들은 대역폭 할당이 네트워크 사용자들(102)의 예상된 대역폭 수요들에 근거하도록 제공된다. 대역폭을 할당함에 있어서, 각각의 사용자(102)는 사용자 가중값을 할당받고, 그 값에 비례하여 대역폭을 할당받는다. 추가적으로, 상기 대역폭 할당은 상기 대역폭 할당 정책들이 유지되도록 강제된다.

Description

경합하는 어플리케이션들 간에 네트워크 대역폭을 배분하기 위한 시스템{SYSTEM TO SHARE NETWORK BANDWIDTH AMONG COMPETING APPLICATIONS}
[관련 출원의 상호 참조]
본 출원은 2011년 2월 1일자로 출원된 미국 특허 출원 제13/018,967호의 계속적 출원이며, 상기 미국 특허 출원은 본 명세서에 그 전체가 참조로서 포함된다.
[배경기술]
거대 스케일 네트워크들은 매우 다양한 어플리케이션들 및 서비스들을 지원한다. 이러한 네트워크들은 상호 연결 네트워크 또는 스위치 패브릭(switch fabric)에서의 링크들에 걸쳐 분산된 복수의 디바이스를 포함할 수 있다. 상기 네트워크의 각각의 노드는 스위치(예컨대, 라우터) 또는 엔드포인트(endpoint)(예컨대, 호스트 디바이스)를 포함할 수 있다. 네트워크 정체가 링크 또는 노드가 서비스의 질에 있어서의 저하를 야기하도록 너무 많은 데이터를 수반할 때 발생할 수 있다. 통상적으로, 네트워크 정체의 영향들은 큐잉 지연, 패킷 손실 또는 새로운 접속들의 차단을 포함한다. 네트워크에 걸친 정체는, 경합하는 접속들에 대해 유사한 대역폭을 유지하는 전송 제어 프로토콜("TCP")과 같은 프로토콜들에 의해 제어될 수 있다. 또한, TCP는 전체 전송 레이트들이 링크 용량보다 적게 해준다.
TCP의 한계들 중 하나는, 상기 TCP가 어떤 소정의 시간에 엔드포인트에 만들어진 접속들의 수에 집중한다는 점이다. 따라서, 네트워크의 사용자는 상기 네트워크에 추가적인 접속들을 간단히 구현함으로써 추가적으로 대역폭에 쉽게 액세스할 수 있다. 이러한 관행은, 사용자의 작업이 많은 머신들에 걸쳐 스프레드된 거대 스케일의 분산형 시스템들에서 점점 만연되고 있다. 예를 들어, 제1 사용자가 100개의 머신들 상에서 작업을 실행하고 제2 사용자가 10개의 머신들 상에서 작업을 실행하면, 상기 제1 사용자는 상기 제2 사용자의 10배의 대역폭으로의 액세스를 가질 수 있다. 이는 대역폭의 불공평한 할당이라 고려되는 것을 생성하기 때문에 여러 네트워크들에 대해 바람직하지 않다.
본 발명은 일반적으로, 네트워크에서의 대역폭의 관리에 관한 것이다. 특히, 본 발명은 네트워크에서 각 사용자에 대한 수요를 예측하는 것 및 바람직한 대역폭 할당 정책에 근거하여 각 사용자에게 대역폭을 할당하는 것에 관한 것이다.
본 발명의 일 양상은 대역폭 할당 정책을 중앙 집행(centrally enforcting)하여서 각각의 사용자가 자신의 수요에 따라 대역폭의 배분 몫(share)을 받고, 사용자들이 자신의 할당된 대역폭을 초과하는 것을 방지하도록 하는 방법을 제공한다. 추가적으로, 특별한 사용자에 의해 사용되지 않는 어떠한 대역폭은 네트워크 상에서 다른 사용자들에게 재분배될 수 있고, 이로 인해 더 많은 대역폭을 필요로 하는 사용자들에게 대역폭을 할당한다.
다른 양상에서, 각 사용자는 특별한 사용자 가중값(weight value)을 할당받고, 각 사용자에게로의 대역폭의 할당이 그 사용자의 가중값에 비례하여 이루어지게 된다. 가중값들은, 사용자의 우선순위, 사용자의 작업의 데이터 강도(intensity) 또는 사용자의 작업의 시간 민감도를 포함하는 어떤 수의 인자(factor)들에 근거할 수 있다. 따라서, 두 명의 사용자가 동일한 가중값을 가지면, 그들은 동일한 QoS(Quality of Service)로 데이터를 동일한 네트워크 소스로부터 동일한 네트워크 목적지에 전송함을 고려해볼 때 동일한 대역폭의 할당들을 받는다.
다른 양상은, 중요한 비즈니스 중대 트래픽이 예상치 못한, 비-중대한(non-critical) 네트워크 전송들에 의한 중단(disruption) 없이 전송될 수 있게한다.
또다른 양상에서, 대역폭의 조절(throttling)은, 네트워크 병목현상들의 검출 및 상기 병목현상의 용량을 검출하도록 하는 공평성 정책들의 적용과 결합하여, 네트워크의 엔드 호스트들에서 자동적 커널-레벨 트래픽 형상화(kernel-level traffic shaping)에 의해 달성된다.
본 발명의 또다른 양상에서, 엔드 호스트들로부터의 네트워크 사용 정보의 수집(collection)이 중앙 콜렉션 계층을 통해 종합된다.
도 1은 예시적인 글로벌 네트워크를 예시한다.
도 2는 본 발명의 양상에 따른 기능적 컴포넌트 계층을 예시한다.
도 3은 본 발명의 양상들에 따른 흐름도이다.
도 4는 유틸리티 값에 관하여 대역폭 할당을 예시하는 그래프이다.
도 5는 유틸리티 값에 관하여 서로 다른 가중값들을 가진 사용자들에 대한 대역폭 할당을 예시하는 그래프이다.
도 6은 유틸리티 값에 관하여 요약된 대역폭 할당을 예시하는 그래프이다.
도 7은 본 발명의 양상들에 따른 흐름도이다.
도 8a 내지 8b는 본 발명에서의 사용을 위한 컴퓨터 시스템들을 예시한다.
본 발명의 양상들, 특징들 및 장점들이 다음의 예시적인 실시예들의 상세한 설명 및 첨부된 도면들을 참조하여 고려될 때 이해될 것이다. 서로 다른 도면들에서 동일한 참조 부호들은 동일하거나 또는 유사한 요소들을 나타낼 수 있다. 더욱이, 다음의 상세한 설명은 제한적이지 않는 바, 본 발명의 범주는 첨부된 특허 청구 범위 및 균등물에 의해 정의된다.
도 1은 본 발명의 양상들에 따른 사용을 위한 예시적인 상호 연결 네트워크(100)을 예시한다. 도시된 바와 같이, 상기 네트워크는, 서버들 또는 클라이언트 디바이스들과 같은 컴퓨터들일 수 있는 다수의 호스트들(102)을 포함한다. 상기 호스트들(102)은 네트워크에서 노드들(104)을 통해 서로와 연결될 수 있다. 상기 호스트(102)는 또한, 외부 네트워크들, 스토리지 시스템들 또는 다른 디바이스들(미도시)에 연결될 수 있다. 각각의 노드(104)는 링크들(106)을 통해 네트워크 상에서 다른 디바이스들과의 로직 인터페이스들을 가진 라우터를 포함할 수 있다. 각각의 로직 인터페이스는 초당 비트로 주어진 용량을 가지는 바를 특징으로 할 수 있다.
상기 호스트들(102)은, 통상적으로 컴퓨팅 자원들을 서로와 공유할 클러스터들로 그룹화될 수 있다. 도 1에 제공된 예에서, 호스트들(102a, 102b 및 102c)은 네트워크 클러스터(108)이다. 복수의 클러스터들은 동일한 사이트 또는 POP(point of presence)에서 동작할 수 있다. 도 1에서, 호스트들(102a 내지 102f)은, 동일한 POP에서 동작하는 두 개의 개별 클러스터들(108)을 나타낸다. 네트워크 경로는 링크들(106)을 통해 네트워크 상에서의 하나의 포인트로부터 다른 포인트로의 로직 인터페이스들의 시퀀스이며, "경로 세트(PathSet)"는 복수의 경로의 세트이다. 경로 세트들은, 한 네트워크 클러스터에서 다른 클러스터로 전송되는 데이터를 위해 이용될 수 있는 모든 경로들을 기술하는 데 사용될 수 있다. 추가적으로, 각각의 경로는 상대적인 가중값(weight)갖는 바, 이는 둘 이상의 개별 경로를 가지는 경로 세트에 따라 전송될 때 네트워크 트래픽이 분할되어야 하는 비(ratio)를 나타낸다.
본 발명의 하나의 예시적인 실시예가 도 2의 구조(200)에 도시된다. 이 실시예에서, 시스템(200)은 다음의 컴포넌트들을 포함하는 바, 이는 글로벌 브로커(global broker)(202), 사이트 브로커들(204), 작업 쉐이퍼(shaper)들(206) 및 호스트 쉐이퍼들(208)이다. 이 컴포넌트들은 도 1에 도시된 바와 같은 거대 스케일의 네트워크의 다양한 호스트들(102)에 통합될 수 있다. 상기 네트워크의 사용자들은 개인들(individuals) 및 클라이언트 디바이스들을 포함할 수 있다. 추가적으로, 구조(200)의 하나 이상의 컴포넌트는 네트워크 상에서 단일 디바이스에 통합될 수 있다. 예를 들어, 사이트 브로커(204), 작업 쉐이퍼(206) 및 호스트 쉐이퍼(208)는, 개별 모듈들 각각과 관련된 기능들을 수행할 수 있는 프로세서를 가진 단일 디바이스 상에 상주된 소프트웨어 모듈들을 포함할 수 있다.
도 2의 구조(200)에 도시된 바와 같이, 글로벌 브로커(202)는 대역폭 강제 계층의 최상단에 위치한다. 상기 글로벌 브로커(202)는 서로 다른 네트워크 클러스터들 사이에 네트워크 상에서 이용가능한 대역폭을 분할하는(dividing up) 책임을 가진다. 상기 글로벌 브로커(202)는 사이트 브로커(204)로부터 대역폭 사용 및 대역폭 수요에 관한 정보를 수신한다. 상기 글로벌 브로커(202)에 제공된 네트워크 전송 정보는 바람직한 입도(granularity)에서 제공될 수 있다. 예를 들어, 네트워크 상에서 각각의 디바이스에 대한 대역폭 사용 및 수요를 제공하는 대신에, 상기 사이트 브로커들(204)은 디바이스 클러스터들(212)에 관한 정보를 상기 글로벌 브로커(202)에 제공할 수 있다. 예를 들어, 상기 글로벌 브로커(202)에게 제공되는 네트워크 데이터 정보는 네트워크 상에서 각각의 소스 클러스터 및 목적지 클러스터의 식별을 포함할 수 있다.
또한, 상기 네트워크 전송 정보는 서로 다른 우선순위들을 가진 각 전송을 지정할 수 있다. 예를 들어, 레이턴시에 관대한(latency tolerant) 전송들은 낮은 우선순위로 지정될 수 있고, 레이턴시에 민감한 전송들은 높은 우선순위로 지정될 수 있다. 추가적으로, 네트워크 전송은 강제형(enforced) 또는 비강제형으로 지정될 수 있다. 강제형 데이터는 대역폭 강제 기법을 겪을 것이고, 비강제형 데이터는 배제(exempt)될 것이다. 네트워크 전송들은, 상기 전송들이 미리 결정된 대역폭 임계(threshold) 미만에 속할 때 비강제형으로서 지정될 수 있다. 또한, 상기 네트워크 전송 정보는 이용될 전송 라우트의 표시를 포함할 수 있다. 예를 들어, 상기 네트워크가 복수의 백본(backbone)을 포함하면, 전송 정보는 상기 전송에서 이용할 백본을 나타낼 수 있다.
네트워크 전송 정보는, 상기에 제공된 전송 지정들 각각을 이용하는 원리 컴포넌트들 또는 고유한 변수들(unique variables)의 형태로 표현될 수 있고 이로 인해, 결정된 변수들에 따라 서로 다른 "원리(principals)"들을 생성한다. 예를 들어, "클러스터 원리"는 다음의 변수들: <소스 클러스터, 목적지 클러스터, 전송 라우트, 우선 순위, 강제형/비강제형>에 의해 표현될 수 있다. 그러므로, 각각의 클러스터 원리는 이 5개의 변수들의 고유한 조합을 포함할 것이다. 하기에 기술된 바와 같이, 다른 네트워크 "원리들"은 서로 다른 컴포넌트 변수들의 조합들을 생성함으로써 생성될 수 있다.
각각의 개별 클러스터 원리에 대해, 사이트 브로커(204)는 대역폭 사용, 및 대역폭 수요를 요약하고 상기 수요가 사용자들(212)에 의해 요청되는 상대적인 가중을 제공하는 유틸리티 함수(function)를 글로벌 브로커(202)에게 전해준다. 그 다음, 상기 글로벌 브로커(202)는 네트워크 관리자들에 의해 선택된 네트워크 배분 정책들을 실시한다. 상기 유틸리티 함수들 및 네트워크 배분 정책들은 하기에 상세히 설명된다.
또한, 상기 글로벌 브로커(202)는 네트워크의 현재 토폴로지를 표시하는 네트워크 모델을 유지하도록 구성될 수 있다. 상기 네트워크 모델뿐만 아니라 사용 및 수요 정보는, 네트워크 내의 정체된 링크들을 검출하도록 상기 글로벌 브로커(202)에 의해 사용될 수 있다. 또한, 상기 글로벌 브로커(202)는 각각의 클러스터 원리에 대한 대역폭 제한들을 연산하고 다양한 클러스터 쌍들 사이에 이용가능한 대역폭을 분할할 수 있다. 바람직하게는, 상기 글로벌 브로커(202)는 주기적으로 사이트 브로커(204)에 상기 대역폭 제한들을 전해준다(214). 일 예에서, 이는 매 10초 정도로 이루어질 수 있다. 다른 예들에서, 이러한 정보의 교환은, 매 1 내지 15초, 매 1 내지 15분과 같은 다른 정기적 또는 미리 설정된 간격들에서 또는 네트워크 트리거 이벤트일 수 있는 미리 결정된 조건에 따라 발생할 수 있다. 이러한 방식으로, 시스템이 현재의 네트워크 수요들에 근거하여 대역폭 할당들을 제공할 수 있다.
사이트 브로커들(204)은 바람직하게는, 각각의 네트워크 사이트 또는 POP(point of presence)에서 실행된다. 상기 사이트 브로커들(204)은 전송(214)을 통해 상기 글로벌 브로커(202)로부터 대역폭 제한들을 수신한다. 또한, 상기 사이트 브로커들(204)은 전송(218)을 통해 작업 쉐이퍼들(206) 간에 각 사용자들에 대한 대역폭 및 작업을 주기적으로 분배한다. 바람직하게는, 이 분배는 매 10초 정도로 발생한다. 다른 예들에서, 이러한 정보의 교환은 매 1 내지 15초, 매 1 내지 15분과 같은 다른 정기적 또는 미리 설정된 간격들에서 또는 네트워크 트리거 이벤트일 수 있는 미리 결정된 조건에 따라 발생할 수 있다.
특히, 상기 사이트 브로커(204)는 전송(214)을 통해 상기 글로벌 브로커(202)로부터 클러스터 원리 대역폭 제한들을 수신하고 사용자 원리에 따라 상기 수신된 대역폭 제한들을 사용자 대역폭 제한들로 분할한다. 상기 사용자 원리는 사용자, 전송의 소스 클러스터, 전송의 목적지 클러스터뿐만 아니라 전송의 DSCP(Differentiated Services Code Point)의 식별을 포함한다. DSCP는 QoS 보증(guarantee)들 및 관련 네트워크 선호도들을 포함한다. 서로 다른 작업들 간에 특별한 사용자의 대역폭을 분할함에 있어서, 사이트 브로커(204)는 통신(216)을 통해 작업 쉐이퍼들(206)에 의해 제공되는 작업 원리를 사용한다. 상기 작업 원리는 사용자 원리와 동일한 변수들을 포함하지만, 또한 바람직하게는 네트워크의 사용자에 의해 실행되는 특별한 작업의 식별을 포함한다. 따라서, 사이트 브로커(204)는 상기 사용자 원리를 생성하도록 작업 원리들 각각을 종합할 것이다. 그 다음, 상기 사이트 브로커(204)는 사용자 원리 정보를 클러스터 원리의 형태로 종합하고 전송(212)을 통해 상기 글로벌 브로커(202)에 상기 클러스터 원리를 제공할 수 있다. 바람직하게는 상기 사이트 브로커(204)는 상기 글로벌 브로커(202)에게 예컨대, 매 10초의 정도로 클러스터 원리 수요들을 포함하는 사용 보고들을 제공할 것이다. 다른 예들에서, 이러한 정보의 교환은 매 1 내지 15초, 매 1 내지 15분과 같은 다른 정기적 또는 미리 설정된 간격들에서 또는 네트워크 트리거 이벤트일 수 있는 미리 결정된 조건에 따라 발생할 수 있다.
작업 쉐이퍼들(206)은 각각의 네트워크 클러스터에서 실행되고, 작업 레벨 대역폭 제한들을 이 작업들과 관련된 태스크들 간에 분할하고 전송(222)을 통해 호스트 쉐이퍼(208)에 이 제한들을 제공하는 데 책임이 있다. 바람직하게는, 상기 작업 쉐이퍼들(206)은 매 5초의 정도로 대역폭 제한들을 분배한다. 다른 예들에서, 이러한 정보의 교환은 매 1 내지 15초, 매 1 내지 15분과 같은 다른 정기적 또는 미리 설정된 간격들에서 또는 네트워크 트리거 이벤트일 수 있는 미리 결정된 조건에 따라 발생할 수 있다. 상기 분배는 바람직하게는, 태스크에 의해 사용되지 않는 어떠한 대역폭이 다른 태스크들에 재분배되어야함에 있어서 작업-절약적(work-conserving)이다. 또한, 상기 작업 쉐이퍼들(206)은 전송(216)을 통해 상기 사이트 브로커들(204)에게 작업 레벨 대역폭 사용을 주기적으로 보고한다. 바람직하게는, 이러한 주기적인 대역폭 보고들은 매 10초의 정도로 발생한다. 다른 예들에서, 이러한 정보의 교환은 매 1 내지 15초, 매 1 내지 15분과 같은 다른 정기적 또는 미리 설정된 간격들에서 또는 네트워크 트리거 이벤트일 수 있는 미리 결정된 조건에 따라 발생할 수 있다. 이러한 기능을 수행함에 있어서, 상기 작업 쉐이퍼들(206)은 호스트 쉐이퍼들(208)로부터 제공된 태스크 원리 대역폭 사용 및 수요를 수신한다. 상기 태스크 원리는 작업 원리와 동일한 변수들을 포함하지만, 바람직하게는 또한, 작업을 위해 실시되는 각 태스크의 식별을 포함한다. 따라서, 태스크 원리들은 다음의 원리 컴포넌트들: <사용자, 작업, 태스크, 소스 클러스터, 목적지 클러스터, DSCP>를 포함하도록 구성될 수 있다.
호스트 쉐이퍼들(208)은, 비록 요구되지 않더라도 네트워크 내의 모든 호스트 상에서 실행될 수 있다. 호스트 디바이스가 상기 네트워크를 통해 데이터를 전송할 때, 전송 패킷들은 호스트가 실행되는 개별 프로세스들 또는 태스크들에 의해 카테고리화될 수 있다. 각각의 태스크의 식별은 호스트 디바이스 상에서 실행되는 리눅스 커널(Linux kernel)과 같은 커널(340)에 의해 수행될 수 있다. 이로 인해 상기 커널(340)은 시스템으로 하여금 대응하는 태스크 및 사용자에게 호스트 디바이스의 TCP 연결과 같은 각각의 네트워크 연결을 매핑하도록 한다. 상기 호스트 쉐이퍼들(208)은 전송(220)을 통해 상기 작업 쉐이퍼들(206)에게 이 태스크 사용 정보를 주기적으로 보고하고, 상기 호스트 쉐이퍼들(208)은 개별 호스트들 상에서 전송(222)을 통해 상기 작업 쉐이퍼들(206)에 의해 제공되는 대역폭 제한들을 강제한다. 주기적인 태스크 사용 보고들은 바람직하게는 매 5초의 정도로 발생한다. 다른 예들에서, 이러한 정보의 교환은 매 1 내지 15초, 매 1 내지 15분과 같은 다른 정기적 또는 미리 설정된 간격들에서 또는 네트워크 트리거 이벤트일 수 있는 미리 결정된 조건에 따라 발생할 수 있다. 네트워크 상에서 전송된 각각의 태스크는 상기 전송이 발생하는 원격 클러스터, 최종 사용자(end user)뿐만 아니라 이 전송의 DSCP의 식별에 근거하여 특별한 호스트에서 분류된다. 각각의 원격 클러스터 및 DSCP 쌍에 대해, 대역폭 사용이 토큰 버킷 알고리즘(token bucket algorithm)을 이용하여 측정 및 조절된다.
각각의 호스트 쉐이퍼(208)는 다수의 기능들을 수행하도록 구성될 수 있다. 예를 들어, 상기 호스트 쉐이퍼(208)는 자신의 인터넷 프로토콜("IP") 서브넷들에 대한 네트워크 클러스터 이름들의 맵을 관리할 수 있다. 또한, 각각의 호스트 쉐이퍼(208)는 네트워크 상에서 새로운 클러스터간 트래픽에 대한 주기적인 체크들을 실행하고, 또한, 새로운 트래픽 제어 클래스들을 생성할 수 있다. 그 다음, 트래픽 제어 클래스들의 트리(tree)가 상기 호스트 쉐이퍼(208)에 의해 분할되고 관리될 수 있다. 상기 트래픽 제어 클래스들의 분할은 다음의 원리 컴포넌트들: <로컬 태스크, 원격 클러스터, DSCP>에 근거하여 이루어질 수 있다. 또한, 상기 호스트 쉐이퍼(208)는, 특별한 클러스터간 네트워크 트래픽에 대한 빠른 경로를 생성하는 것과 같은 다른 트래픽 최적화 기능들을 수행하고 응답의 업스트림 접수통지(acknowledgement)("ACK")들을 우선 순위화하도록 구성될 수 있다.
추가적으로, 상기 호스트 쉐이퍼는 각 호스트에서 처리율 임계 체크(throughput threshold check)들을 수행하고 네트워크 전송들에 대한 토큰 버킷들을 생성할 수 있다. 토큰 버킷은, 추상적 버킷(abstract bucket)에서의 토큰들의 존재에 근거하여, 언제 트래픽이 전송될 수 있을지 결정하는 제어 메커니즘이다. 상기 버킷은 토큰들을 포함하고, 상기 토큰들 각각은 바이트 단위 또는 미리 결정된 사이즈의 단일 패킷을 표시할 수 있다. 네트워크 관리자는 얼마나 많은 토큰들이 특별한 수의 바이트를 전송하는 데 필요로 되는지 특정할 수 있다. 토큰들이 존재할 때, 흐름(flow)이 트래픽을 전송하도록 허용된다. 버킷에 어떠한 토큰들도 없으면, 흐름은 허용되지 않고 패킷들은 전송되지 않는다. 언제 트래픽이 전송되어야 할지 결정하기 위한 다른 알려진 메커니즘들이 대안적으로 사용될 수 있다. 업스트림 작업 쉐이퍼(206)로부터의 입력에 응답하여, 상기 호스트 쉐이퍼(208)는 또한, 상기 토큰 버킷들 상에 제한들을 갱신할 수 있다. 비활성화된 토큰 버킷들은 폐기될 수 있다. 일 예에서, 각각의 토큰 버킷은 B 초의 버스트-사이즈(burst-size)로 평균 비트 레이트 R을 허용하도록 구성될 수 있다. 어떤 소정의 레이트 R 및 버스트 B에서, 비활성의 주기 B는 라인-레이트 또는 R * B 비트의 총 량과 동일한 데이터 전송 속도에서 버스트하는 것이 허용되도록 트래픽을 트리거링할 것이며, 일관된 R의 레이트가 휴지(idleness)의 부재로 달성될 수 있다.
대역폭 조절이 어떤 수의 기존 방식들로 발생할 수 있다. 예를 들어, 인-커널 조절이 리눅스 HTB 패킷 스케줄러 및 패킷 분류기들을 이용하여 구현될 수 있다. TCP의 경우, 전송의 클라이언트 측 상에서 대역폭을 항상 조절하는 것이 가능함이 주목되어야만 한다. 그러나, 이러한 프로세스는 종종, 네트워크 클라이언트가 다량의 데이터를 풀링할 때 상당한 클라이언트 측 버퍼링이 요구될 것이다. 따라서, 데이터를 보내는 네트워크 측 상에서 대역폭을 조절하는 것이 바람직할 수 있다.
또한, 대역폭 강제기 시스템(bandwidth enforcer system)은, 각각의 네트워크 클러스터에서 실행되고 네트워크 상의 일부 또는 모든 다른 클러스터에 대한 추적 라우트(traceroute) 동작들을 수행할 수 있는 네트워크 모델 클러스터 보고기("클러스터 보고기") 모듈(210)을 포함할 수 있다. 상기 클러스터 보고기(210)는 추적 라우트 데이터를 종합하고 전송(224)을 통해 글로벌 브로커(202)에게 이를 보고한다. 이에 답하여, 클러스터 보고기(210)는 전송(226)을 통해 상기 글로벌 브로커(202)로부터 상기 네트워크 상에서 알려진 모든 클러스터들의 리스트를 수신한다. 또한, 상기 클러스터 보고기(210)는 작업 쉐이퍼들(206)에게 추적 라우트 명령들을 주기적으로 보내도록 구성될 수 있다.
시스템(200)은 하기에 기술된 프로세스들을 부분적으로 이용하여 네트워크의 바람직한 대역폭 할당 정책들을 강제하도록 구성된다. 대역폭 할당 정책을 강제하도록 하는 구성들은 다음의 사용자 가중들, 수동 조절들, 영구 할당들, 자동-강제 룰들, 자동-강제 임계들, 네트워크 모델 오버라이드들(network model overrides) 및 클러스터 리스트들과 같은 하나 이상의 컴포넌트를 포함할 수 있다. 사용자 가중은 사용자가 대역폭 강제기(200)로부터 수신할 대역폭의 비율을 결정하는 숫자로 된 값이다. 상기 사용자 가중은 특별한 전송을 위한 QoS에 따라 좌우될 수 있다. 따라서, 각각의 전송에 대해 디폴트 사용자 가중 및 QoS 승수(QoS multiplier)가 사용된다. 상기 QoS 승수는 데이터 전송들의 특별한 타입에 대한 QoS 레벨을 설정하는 값이다. 따라서, 일 예에서, 소정의 전송에 대한 사용자 가중은 상기 QoS 승수로 곱해진 디폴트 사용자 가중인 바, 이는
사용자_가중 = 디폴트_사용자_가중 * QoS_승수이다.
예를 들어, 사용자 A 및 사용자 B 둘 모두가 네트워크(100)의 QoS 승수를 할당했던 네트워크 상에서 데이터 전송을 수행한다고 가정하자. 사용자 A가 1의 디폴트 사용자 가중을 가지고, 사용자 B가 1.5의 디폴트 사용자 가중을 가지면, 사용자 A의 전송은 (1.0 * 100 = ) 100의 실제 사용자 가중을 할당받을 것이고, 사용자 B의 전송은 (1.5 * 100 = ) 150의 실제 사용자 가중을 할당받을 것이다. 사용자 가중 승수 또는 QoS 승수의 값은 특별한 네트워크 사용자의 중요도를 결정함에 관련된 인자들의 어떤 세트에 따라 좌우될 수 있다. 예를 들어, 다량의 데이터를 요하는 중대한 프로젝트들 또는 시간에 민감한 프로젝트 상에서 작업하는 사용자들은, 덜 중요한 프로젝트들 상에서 작업하는 사용자들보다 높은 사용자 가중 승수들 및 높은 QoS 승수들을 제공받을 수 있다. 사용자 가중은 요구되는 경우 특정한 사용자들에 대해 오버라이드될 수 있는 디폴트 설정으로서 역할할 수 있다. 예를 들어, 사용자가 자신이 충분한 대역폭을 수신하지 못했다고 결정하면, 상기 사용자는 추가적인 대역폭에 대한 요청을 제출할 수 있다. 이 요청은 사용자의 네트워크 디바이스를 통해 이루어질 수 있고, 상기 요청은 디바이스의 호스트 쉐이퍼(208)로부터 글로벌 브로커(202)로 보내질 수 있다. 현재의 네트워크 사용 또는 네트워크 관리자들로부터의 입력에 따라, 글로벌 브로커(202)는 그 다음, 디폴트 사용자 가중 설정을 오버라이드할 수 있고, 이로 인해 상기 사용자에게 추가적인 대역폭을 제공한다.
대역폭 강제기 시스템(200)에 의해 사용되는 다른 구성 컴포넌트들은 영구 할당("PA")이다. PA는 중요한 사용자 전달들에 대한 네트워크 상의 대역폭을 보존하는 데 사용될 수 있다. 따라서 PA는 시스템의 할당 정책에서 가장 높은 우선순위를 가질 수 있다. 상기 시스템은 사용자, 소스 클러스터, 목적지 클러스터 및 QoA 값의 원리 컴포넌트들에 근거하여 PA 보존을 지정할 수 있다. 예를 들어, 글로벌 브로커(202)는, 사용자 A가 미리 결정된 임계를 초과하는 QoS를 이용하여 데이터를 클러스터 B로부터 클러스터 C로 보내려고 시도함을 고려해볼 때 2Gbps의 대역폭이 사용자 A를 위해 보존되도록 구성될 수 있다. 사용자 A가 이 보존된 대역폭을 사용하지 않을 때, 이는 임시적으로 타 사용자들에게 할당될 수 있다.
다른 시스템 구성 컴포넌트는, 사용자가 두 개의 네트워크 클러스터 간에 보낼 수 있는 레이트 상의 최대 제한을 특정하는 수동 조절이다. 상기 수동 조절은 작업 레벨("작업 조절")에서 또는 사용자 레벨("사용자 조절")에서 지정될 수 있다. 상기 사용자 조절은 PA와 동일한 원리 컴포넌트들 즉, 사용자, 소스 클러스터, 목적지 클러스터 및 QoS 레벨을 포함한다. 상기 작업 조절은 사용자에 의해 실행되는 작업을 지정하는 제5의 원리 컴포넌트의 추가를 포함하여, 동일한 원리 컴포넌트들을 사용한다.
시스템에 의해 사용되는 또다른 구성 컴포넌트는, 어느 네트워크 전송 흐름들이 강제되어야 하는지, 그리고 어느 것이 강제되지 않은 채로 남아 있어야 하는지 지정하는 자동 강제 룰이다. 각각의 자동 강제 룰은 특정된 전송 경로들과 같이 대역폭 강제로부터 배제되기 위한 어떤 수의 네트워크 파라미터들을 특정할 수 있다. 상기 네트워크 파라미터들은 소스 클러스터들, 목적지 클러스터들, 사용자들, 작업들 등뿐만 아니라 이들의 어떤 조합들의 지정을 포함할 수 있다. 마찬가지로, 상기 자동 강제 룰들은 대역폭 강제기의 할당 정책에서의 자동적 포함을 위한 다른 네트워크 파라미터들을 지정할 수 있다. 추가적으로, 대역폭 강제기는, 전송이 대역폭 강제기의 할당 정책을 겪기 전에 요구되는 대역폭 사용 레이트를 특정하는 자동 강제 임계들을 구현할 수 있다. 이 임계는 작업 원리 레벨 상에서 강제될 수 있다. 예를 들어, 자동 강제 임계는 5Mbps로 설정될 수 있어서, 각각의 작업 원리는 상기 5Mbps 임계를 초과하는 사용 레이트를 가지지 않으면 대역폭 강제기의 할당 정책을 겪지 않을 것이다. 바람직하게는, 상기 대역폭 강제기는 임계를 만족하는 각각의 작업 원리를 자동-강제된 버킷에 위치시킬 것이며, 이는 15분과 같이 미리 결정된 시간의 주기 동안 상기 작업 원리를 상기 자동-강제된 버킷에 유지할 것이다. 다른 예들에서, 상기 주기는 매 분 내지 매 시간과 같이 다른 정기적 또는 미리 설정된 간격들에서 또는 네트워크 트리거 이벤트일 수 있는 미리 결정된 조건에 따라 발생할 수 있다. 이러한 방식으로, 임계를 초과하여 그리고 임계 미만으로 간헐적으로 이동하는 네트워크 전송들이 강제된 상태와 비강제된 상태 사이에서 왔다 갔다 플리핑하지 않을 것이다. 또한 상기 자동 강제 임계들은 전송 라우트에 따라 서로 다른 임계 레벨들에 대해 설정될 수 있다. 예를 들어, 네트워크가 둘 이상의 백본을 포함하면, 대역폭 강제기는 5Mbps에 제1 백본의 임계를 설정할 수 있고, 다른 백본(들)에 대한 임계 레벨은 10Mbps에 설정될 수 있다.
네트워크 모델 오버라이드들은 대역폭 강제기 시스템(200)의 다른 구성 컴포넌트이다. 네트워크 모델 오버라이드들은 소정의 링크 용량 및 보존가능한 임계에 대한 수동 오버라이드들을 허용한다. 상기 오버라이드들은 순서화된 리스트 - 상기 리스트 내의 제1 매칭 룰의 적용과 함께 - 에 포함된 룰들의 세트로서 표현될 수 있다. 개별의 순서화된 리스트들이 링크 용량 오버라이드들 및 보존가능한 임계 오버라이드들을 위해 사용된다. 각각의 링크는 상기 링크의 소스 라우터, 목적지 라우터 및 사용되는 인터페이스의 식별에 의한 룰들의 세트로 특정될 수 있다.
네트워크 상에 존재하는 클러스터들은 클러스터 리스트 상에서 식별될 수 있다. 각각의 클러스터에 대해, 상기 리스트는 상기 클러스터의 이름, 상기 클러스터가 속한 사이트 또는 POP뿐만 아니라 상기 클러스터가 존재하는 서브넷을 포함할 수 있다.
네트워크 상의 두 명의 사용자가 동일한 사용자 가중들을 가지면, 대역폭 강제기 시스템(200)은, 상기 사용자들이 동일한 QoS를 가진 전송들을 동일한 소스 클러스터로부터 동일한 목적지 클러스터로 보냄을 고려해볼 때 동일한 양의 대역폭을 할당할 것이다. 이는 사용자들이 서로 다른 클러스터 쌍들 사이에서 전송들을 보내는 예들에서의 경우일 필요가 없다. 그러나, 대역폭 강제기 시스템(200)은 사용자들이 별개의 소스들과 목적지들 사이에서 전송하는지에 관계없이 네트워크 사용자들 간의 공평성을 제공하도록 구성될 수 있음이 이해되어야만 한다. 추가적으로, 대역폭 강제기(200)는 사용자로 하여금 우선순위 토큰을 통해 다른 사용자 흐름에 자신의 사용자 가중값을 대여(lend)할 수 있도록 구성될 수 있어서 다른 흐름이 원래의 사용자의 우선순위에서 동작할 수 있다.
상술된 바와 같이, 대역폭 강제기 시스템(200)은 네트워크 상의 모든 사용자 디바이스로부터 클러스터간 네트워크 사용 정보를 종합한다. 이 사용 정보는 네트워크 상의 대역폭 수요들을 투영 또는 예측하도록 추정(extrapolate)될 수 있다. 대역폭 강제기는 그 다음, 상기 추정된 사용 정보를 다양한 대역폭 배분 프로세스들에 통합함으로써 사용자 디바이스들 간에 대역폭을 할당할 수 있다.
대역폭 강제기 시스템은 "워터필(waterfill)" 프로세스로서 설명될 수 있는 것을 구현할 수 있는 바, 상기 워터필 프로세스는 경합하는 사용자들, 작업들 및 태스크들 사이에 네트워크의 이용가능한 대역폭을 분할한다. 워터필 프로세스의 목적을 위해, 각각의 작업 원리는 특별한 사용자 원리와 관련될 수 있다. 따라서, 상기 작업 원리는, 관련 페어런트 사용자 원리(parent user principal)의 차일드 원리(child principal)라고 고려될 수 있다. 유사하게, 각각의 태스크 원리는 작업 원리와 관련될 수 있고, 상기 작업 원리의 차일드 원리라고 고려될 수 있다.
워터필 프로세스(300)는 도 3의 흐름도에 예시된다. 상기 워터필 프로세스(300)는 시스템 상에서 어떠한 모듈에 의해 수행될 수 있지만, 바람직하게는, 사이트 브로커(204) 또는 작업 쉐이퍼(206)에 의해 수행된다. 상기 프로세스는 블록(302)에서 시작되고, 원래의 대역폭 워터 레벨은 0에 설정된다. 블록(304)에서, 대역폭 강제기 모듈은 이용가능한 원리들로부터 가장 낮은 대역폭 수요 d를 가진 차일드 원리를 선택한다. 블록(306)에서, 충분한 잔여 대역폭이 모든 잔여 차일드 원리들에 대한 가장 낮은 수요를 만족시키도록 이용가능한지 결정된다. 블록(306)에서 대답이 "yes"이면, 프로세스는 블록(308)으로 진행하며, 여기서 대역폭 워터 레벨은 양 d만큼 증가된다. 그 다음, 블록(310)에서, 모든 칠드런의 대역폭 수요들이 양 d만큼 감소된다. 블록(312)에서, 이용가능한 대역폭은 (d * 잔여 차일드 원리들의 수만큼) 감소된다. 그 다음, 블록(314)에서, 블록(304)에서 앞서 선택된 가장 낮은 수요의 차일드 원리가 향후 고려에서 제거되고, 프로세스는 블록(304)으로 되돌아온다. 블록(306)에서 대답이 "No"이면, 프로세스는 블록(316)으로 진행하고, 여기서 워터 레벨은 잔여 칠드런의 수로 분할된 잔여 대역폭만큼 증가된다. 워터필 프로세스(300)를 완료할 시, 블록(306)을 만족시켰던 모든 원리들에 대한 대역폭 제한은 그 원리에 대한 수요와 동일할 것이다. 다른 모든 원리들에 대해, 상기 제한은 블록(308)의 마지막 반복에 의해 설정된 워터 레벨과 동일할 것이다. 이 방식으로, 워터필 프로세스는 데이터 흐름이 달성하는 최소 데이터 레이트가 최대가 됨을 의미하는 최대-최저의 공평한 방식(max-min fair manner)으로 모든 경합하는 원리들 간에 이용가능한 대역폭을 분할한다.
사이트 브로커들(204)은 유틸리티 함수를 생성함으로써 네트워크 사용자들에 대한 대역폭 수요들을 요약할 수 있다. 특히, 단일 유틸리티 함수는, 네트워크 클러스터들의 동일한 쌍 사이에 데이터를 보내는 복수의 사용자들에 대한 대역폭 수요의 표시로서 역할 수 있다. 또한, 상기 유틸리티 함수는 상술된 바와 같이, 사용자 가중들 및 각 사용자에게 부여된 PA를 고려할 수 있다.
도 4는 두 명의 사용자 즉, 사용자 1 및 사용자 2에 대한 유틸리티 함수들을 예시하는 바, 상기 사용자들 각각은 서로 다른 PA를 가진다. 이 예에서, 사용자 1은 1Gbps의 PA를 할당받고, 사용자 2는 4Gbps의 PA를 할당받았다. 도 4에 제공된 유틸리티 값들의 스케일은, 단지 이들의 상대적인 값들이 결정적(determinative)이기 때문에 임의로 설정될 수 있다. 이 예의 목적을 위해, 유틸리티 함수들은 0 내지 200의 값들 사이에서 런(run)하게 된다. PA가 대역폭 배분 동안 가장 높은 우선순위로 지정됨을 고려해볼 때, 유틸리티 함수는 오로지 PA만을 위한 0 내지 100 사이의 유틸리티 값을 보존한다. 나머지 사용자 수요들이 100 내지 200 사이의 유틸리티 공간에서 요약된다. 도 4에 도시된 바와 같이, PA 둘 모두는 100 이상의 유틸리티에서 완전히 만족된다. 100 미만의 유틸리티 값에 대해, 각각의 사용자는 자신의 PA에 비례하여 대역폭을 부여받는다.
사용자의 부여된 PA를 초과하는 사용자 수요에 대해, 대역폭이 사용자 가중들에 비례하여 할당된다. 도 5는 각각이 2Gbps의 대역폭을 요청하는 두 명의 사용자에 대한 유틸리티 함수들을 도시한다. 이 예에서, 상기 두 명의 사용자는 어떠한 PA도 할당받지 못했고, 그러므로 이들은 100 이하의 유틸리티 값들에 대해 이들에게 부여된 어떠한 대역폭도 가지지 않는다. 그러나, 100 초과의 유틸리티 값들의 대해, 상기 시스템은 사용자 4에게 0.4의 가중을 할당하도록 구성되고, 사용자 3은 0.2의 더 낮은 사용자 가중을 할당받았다. 따라서, 사용자 4의 수요들이 사용자 3의 수요들보다 낮은 유틸리티 값을 부여받는다.
사이트 브로커들(204)은 각각의 사용자 원리의 대역폭 수요에 대한 유틸리티 함수들을 생성할 수 있다. 그 다음, 상기 사이트 브로커는, 동일한 클러스터 쌍에 대한 사용자 원리 수요들을 요약된 유틸리티 함수로 일컬어지는 단일 유틸리티 함수로 요약할 것이다. 도 6은 사용자 1, 사용자 2, 사용자 3 및 사용자 4에 대한 요약된 유틸리티 함수를 예시한다. 도 6에 도시된 바와 같이, 요약된 유틸리티 함수는 단순히, 도 4 및 5에서 제공된 바와 같은 각각의 사용자의 개별 유틸리티 함수들에 대한 대역폭 수요들의 선형적인 부가(addition)이다.
시스템은, 네트워크 사용자들의 유틸리티 함수들을 통합시키는 진행적 필링 프로세스(progressive filling process)를 구현함으로써 어떻게 경합하는 원리들 간에 이용가능한 네트워크 대역폭을 분할할지 결정할 수 있다. 예시적인 진행적 필링 프로세스(700)이 도 7에 예시된다. 블록(702)에서 시작하여, 초기 유틸리티는 0의 값에 설정된다. 블록(704)에서, 상기 유틸리티 값은 kEpsilon의 양만큼 증가된다. 만족되지 못했거나 동결되지 않은 각각의 경합하는 원리의 경우, 상기 원리의 유틸리티 함수는 증가된 유틸리티가 얼마나 많은 대역폭 할당을 생성할지 연산하는 데 사용된다(블록(706)). 그 다음, 프로세스는, 경합하는 원리들에서 식별된 각각의 소스 클러스터와 목적지 클러스터 사이에 복수의 경로가 존재하는지 결정한다(블록(708)). 오직 단일 경로만이 존재하면, 블록(710)에서, 상기 경로의 링크의 향후 대역폭 사용이 블록(706)에서 결정된 대역폭 할당에 근거하여 증가된다. 상기 소스 클러스터와 목적지 클러스터 사이에 복수의 경로가 존재하면, 블록(706)의 증가된 대역폭 할당이 상기 복수의 경로 간에 대역폭 할당을 스프레드함으로써 네트워크 링크들에 추가된다(블록(712)). 각각의 경로가 서로 다른 곱셈 인자들(multiplication factors)에 의해 가중화될 수 있고, 그래서 복수의 경로가 존재하면, 각 경로 간의 할당이 상기 경로의 상대적인 가중에 비례하여 이루어질 것임이 주목되어야만 한다. 블록(714)에서, 프로세스는 블록들(710 및 712)의 대역폭 할당들이 어떤 네트워크 링크들의 용량을 초과하는지 결정한다. 용량을 초과하는 어떤 링크들도 없으면, 상기 프로세스는 블록(704)으로 되돌아간다. 네트워크 링크의 용량이 초과되면, 그 링크는 병목상태(bottleneck)로서 지정되고 상기 병목상태의 링크를 횡단하는 모든 원리들은 동결되는 바, 이는 상기 원리들이 더이상 대역폭을 할당받지 못할 수 있음을 의미한다(블록(716)). 그 다음, 이진 검색이 링크용량이 초과되지 않는 유틸리티 값을 결정하도록 현재의 유틸리티 값("CUV") - kEpsilon (CUV - kEpislon)과 현재의 유틸리티 값(CUV) 사이에서 수행된다(블록(718)). 블록(714)에서 시작하여, 프로세스는 모든 원리들이 동결되거나 또는 자신의 만족된(블록(720)) 대역폭 수요를 가지게 될 때까지 반복된다).
여러 예들에서, 네트워크는 대역폭 강제기 시스템에 의한 관리로부터 배제된 데이터를 전송할 것이다. 경합하는 클러스터 원리들 사이에 대역폭을 할당함에 있어서, 글로벌 브로커(202)는 모든 이러한 관리되지 않은 트래픽에 대한 로직 인터페이스들의 이용가능한 용량들을 조정한다. 예를 들어, 로직 인터페이스가 이용가능한 용량에서 10Gbps를 가지고, 현재의 이용이 8Gbps라고 가정하자. 오직 5Gbps의 이용만이 관리가능하면, 글로벌 브로커는 이용가능한 대역폭으로부터 다른 3Gbps를 감할(subtract) 것이다. 그로 인해, 그 로직 인터페이스에 대한 7Gbps의 실효 용량(effective capacity)이 생성된다.
일단 관리되지 않은 대역폭이 보고되면, 진행형 필링 프로세스는 경합하는 클러스터 원리들 간에 대역폭을 할당하는 데 이용될 수 있다. 이 프로세스를 수행함에 있어서, 사이트 브로커(204)는 글로벌 브로커(202)에 각각의 클러스터 원리에 대한 요약된 수요를 포함하는 유틸리티 함수들을 전해준다. 이 유틸리티 함수들은 사이트 브로커(204)에 의해, 클러스터에서의 각각의 개별 사용자 원리에 대한 유틸리티 함수들로부터 연산된다. 시스템은 일부 사용자 원리들에 대한 수동 조절들을 제공하도록 구성될 수 있다. 이 사용자 원리들에 대해, 사이트 브로커(204)는 조절값에 의해 대역폭 수요를 캡핑(cap)할 수 있는 바, 이는 이 원리들이 구성된 조절값보다 많은 대역폭을 할당받을 수 없음을 의미한다. 대역폭이 진행형 필 프로세스의 실행 이후에 여전히 이용가능하면, 잔여 대역폭은 보너스 대역폭으로서 사용자 원리들 간에 분할될 수 있다. 사용자 원리들 중 일부가 이 할당된 보너스를 사용하지 않을 것을 고려해볼 때, 상기 보너스 대역폭은 구성가능한 스케일링 인자에 의해 오버-서브스크라이브(over-subscribed)될 수 있다. 예를 들어, 각각의 사용자는 1 내지 10 사이의 스케일링 인자를 할당받을 수 있고, 상기 보너스 대역폭은 상기 스케일링 인자에 비례하여 할당될 수 있다.
앞서 기술된 바와 같이, 글로벌 브로커(202)는 사이트 브로커(204)에게 각각의 클러스터 원리에 대한 대역폭 제한을 제공한다. 그 다음, 상기 사이트 브로커(204)는 각각의 클러스터 원리에 대한 요약된 유리틸리 함수를 검색(look up)하고, 할당된 대역폭 제한에 대응하는 유틸리티 값을 결정한다. 이 유틸리티 값은 마스터 레이트(master rate)로서 나타내질 수 있고, 사용자 원리 유틸리티 함수에서 각각의 사용자 원리에 대한 대역폭 제한을 검색하는 데 사용될 수 있다. 글로벌 브로커(202)가 클러스터 원리에게 보너스 대역폭을 할당하면, 이 보너스 대역폭은 사용자 원리들 간에 분할될 수 있다.
사용자 원리에 대한 유틸리티 함수를 구성하기 위해서, 사이트 브로커(204)는 어느 대역폭 수요가 그 사용자 원리에 대한 것인지 결정한다. 이는 마지막 2 분과 같은 최근의 주기 동안의 피크 사용자 원리 대역폭의 사용을 선택함으로써 행해질 수 있다. 충분한 대역폭 할당을 보증하기 위해서, 사이트 브로커는 약간 더 높은 피크 사용자 원리 수요를 생성하도록 1.1과 같이 미리 결정된 인자로 사용자 원리의 피크 사용을 곱할 수 있다. 다른 대안들에서, 피크 사용 스케일링 인자는 1 내지 1.5 사이에서 런(run)할 수 있다. 일부 사용자들에 대해, 대역폭 강제기 시스템(200)은 수동 조절을 제공하도록 구성될 수 있다. 이 사용자들에 대해, 대역폭 수요는 조절값에 의해 캡핑된다. 추가적으로, 이 사용자들은 조절값을 초과하는 보너스 대역폭을 할당받지 않는다. 이러한 방식으로, 이 사용자들에게 할당된 대역폭이 구성된 조절 설정들을 초과하지 않을 것이다.
그 다음, 사이트 브로커(204)는 다양한 작업 원리들 상에서 워터필 프로세스를 구현함으로써, 구성 요소적인 작업 원리들 간에 사용자 원리에 할당된 대역폭 제한을 분할할 수 있다. 어떠한 대역폭이 상기 워터필 프로세스가 수행된 이후에 계속 남아 있으면, 이 대역폭은 보너스 대역폭으로서 상기 작업 원리들 간에 분할될 수 있다. 상기 작업 원리들 중 일부가 이 할당된 보너스를 사용하지 않을 것임을 고려해볼 때, 상기 보너스 대역폭은 구성가능한 스케일링 인자에 의해 오버-서브스크라이브될 수 있다. 예를 들어, 각각의 작업은 1 내지 10 사이의 스케일링 인자를 할당받을 수 있고, 보너스 대역폭은 상기 스케일링 인자에 비례하여 할당될 수 있다. 워터필 프로세스에서 사용되어야 하는 대역폭 수요를 결정함에 있어서, 각각의 작업에 대해, 사이트 브로커(204)는 2분과 같은 최근의 시간의 주기 동안 발생했던 피크 수요를 사용할 수 있다. 다른 예들에서, 피크 수요를 결정하는 주기는, 1 내지 15분과 같은 다른 기간들에 또는 네트워크 트리거 이벤트일 수 있는 미리 결정된 조건에 따라 설정될 수 있다. 서로 다른 작업들이 서로 다른 시간들에서 피크에 달할 것임을 고려해볼 때, 시스템은 사용자 원리에 대한 총 대역폭 제한을 증대시킬(scale up) 수 있다. 스케일링 인자는 피크 작업 원리 수요들의 합계를 피크 사용자 원리 수요로 나눈 것과 동일하다. 일부 작업들에 대해, 시스템은 수동 조절을 가질 수 있다. 이 예에서, 워터필 프로세스에서의 수요는 조절값에 의해 캡핑된다. 유사하게, 이 작업들은 조절값을 초과하는 보너스 대역폭을 할당받지 못한다.
일단 사이트 브로커(204)가 작업 원리들에 대역폭 제한들을 할당하면, 그 다음, 작업 쉐이퍼들(206)은 할당된 작업 원리를 구성요소적인 태스크 원리들 간에 분할할 수 있다. 이 기능은 다양한 태스크 원리들 상에서 워터필 프로세스(300)의 수정된 버젼을 구현함으로써 수행된다. 작업에 대한 태스크들이 버스티(bursty)함을 고려해볼 때, 그리고 서로 다른 태스크들이 서로 다른 시간들에서 버스트할 수 있음을 고려해볼 때, 동일한 대역폭 제한이 각각의 태스크에 할당된다. 이 제한은, 프로세스가 종료될 때의 워터레벨과 동일한다. 워터필 프로세스(300)에서 사용될 대역폭 수요를 결정함에 있어서, 각각의 태스크에 대해, 사이트 브로커(204)는 2 분과 같이 최근의 시간의 주기 동안 발생한 피크 수요를 사용할 수 있다. 서로 다른 태스크들이 서로 다른 시간들에서 피크에 달함을 고려해볼 때, 시스템은 작업 원리에 대한 총 대역폭 제한을 증대시킬 수 있다. 스케일링 인자는 피크 작업 원리 수요들의 합계를 피크 사용자 원리 수요로 나눈 것과 동일하다.
시스템은, 대역폭 강제기(200)에 의해 트리거되는 대역폭 증가(ramp up)의 주기들 동안 트래픽의 갑작스런 버스트를 방지하도록 구성된다. 예를 들어, 증가되는 대역폭 할당의 점직적인 증가는, 어떤 동시적인 버스트들(synchronous bursts)을 방지하도록 서로 다른 태스크들에 대해 구현될 수 있다. 추가적으로, 시스템은, 네트워크 사용자들이 자신의 작업이 시스템에 의해 조절되었는지 알 수 있도록 구성될 수 있다. 따라서, 뷰(view)가 사용자, 소스 클러스터, 목적지 클러스터 및 Qos에 의해 식별된 모든 네트워크 흐름에 대해 이용가능하게 만들어질 수 있다. 이 뷰는 전송의 경로를 따라 링크 레벨에서 만들어질 수 있다. 또한, 이 시스템은, 사용자들로 하여금 중요한 작업들 또는 태스크들에 더 많은 자신의 자원 몫(quota)을 기여하고(dedicate) 덜 중요한 작업들 또는 태스크들을 위해 적은 자원들을 남겨두도록 구성될 수 있다. 이는, 사용자들로 하여금 개별 작업들 및 태스크들에게 가중값들을 할당하도록 함으로써 수행될 수 있다. 또한, 시스템은, 특별한 컴포넌트가 오동작하거나 또는 도달불가능(unreachable)한 경우에도 지속적인 동작을 가능하게 하도록 리던던트 컴포넌트(redundant component)들을 포함할 수 있다. 예를 들어, 시스템은 네트워크의 서로 다른 부분들에서 동작하는 복수의 글로벌 브로커들(202)을 포함할 수 있다. 어떤 소정의 시간에, 오직 하나의 글로벌 브로커(202)만이 "리브(live)"로서 지정될 것이다. 사이트 브로커(204)는 네트워크 내의 모든 글로벌 브로커(204)에게 정보를 보고하고 상기 글로벌 브로커로부터 정보를 수신할 수 있다. 그러나, 사이트 브로커들(204)은 리브 글로벌 브로커(202)에 의해 제공된 대역폭 제한들만을 수락할 것이다. 또한, 리던던시들이 사이트 브로커들(204) 및 잡 쉐이퍼들(206)에 대해 구현될 수 있다.
본 발명의 양상들에 다른 시스템은 다음의 예시적인 컴퓨터 시스템으로 구현될 수 있다. 도 8a는, 단독형으로 또는 네트워킹된 구성으로 사용될 수 있는 다양한 컴퓨팅 디바이스들을 도시하는 컴퓨터 시스템의 개략도를 나타낸다. 예를 들어, 이 도해는 복수의 컴퓨터들(302, 304, 306 및 308)뿐만 아니라 모바일폰(310) 및 PDA(312)와 같은 휴대용 전자 디바이스들과 같은 다른 타입의 디바이스들을 가진 컴퓨터 네트워크(300)를 도시한다. 그러나, 본 발명은 이에 제한되지 않고, 넷북들 및 패드-타입 핸드헬드 컴퓨터들(미도시)을 포함하는 다른 디바이스들 역시 사용될 수 있다. 이러한 디바이스들은 로컬 또는 직접 연결(314)을 통해 상호연결될 수 있고 그리고/또는 LAN, WAN, 인터넷 등과 같은 그리고 유선 또는 무선일 수 있는 통신 네트워크(316)를 통해 연결될 수 있다.
각각의 디바이스는 예컨대, 하나 이상의 프로세싱 디바이스를 포함하고 키보드(318) 및 마우스(320) 및/또는 펜-입력들, 조이스틱들, 버튼들, 터치 스크린들 등과 같은 다양한 다른 타입의 입력 디바이스들과 같은 사용자 입력들뿐만 아니라, 예컨대, CRT, LCD, 플라즈마 스크린 모니터, TV, 프로젝터 등을 포함할 수 있는 디스플레이(322)를 가질 수 있다. 각각의 컴퓨터(302, 304, 306 및 308)는 개인용 컴퓨터, 서버 등일 수 있다. 단지 예로서, 컴퓨터들(302 및 306)은 개인용 컴퓨터들일 수 있고, 컴퓨터(304)는 서버일 수 있으며, 컴퓨터(308)는 랩탑일 수 있다.
도 8b에 도시된 바와 같이, 컴퓨터들(302 및 304)과 같은 각각의 컴퓨터는 프로세서(324), 메모리/스토리지(326) 및 컴퓨터에 통상적으로 존재하는 다른 컴포넌트들을 포함한다. 예를 들어, 메모리/스토리지(326)는, 프로세서(324)에 의해 실행될 수 있는 명령들(328)을 포함하는 상기 프로세서(324)에 의해 액세스가능한 정보 및 상기 프로세서에 의해 검색되거나, 조작되거나 또는 저장될 수 있는 데이터(330)를 저장한다. 서버에서의 상기 명령들(328)은 글로벌 브로커(202) 또는 사이트 브로커(204)와 같이 현재의 시스템 내의 하나 이상의 모듈과 관련된 동작들을 포함할 수 있다. 사용자 시스템에서의 명령들(328)은 잡 쉐이퍼(206) 및 호스트 쉐이퍼(208)와 같은 하나 이상의 모듈과 관련된 동작들을 포함할 수 있다.
메모리/스토리지는 하드-드라이브, ROM, RAM, CD-ROM, 플래시 메모리들, 기입-가능 또는 판독-전용 메모리들과 같이 프로세서에 의해 액세스가능한 정보를 저장할 수 있는 어떤 타입으로 이루어지거나 또는 어떤 디바이스일 수 있다. 상기 프로세서(324)는 Intel Corporation 또는 Advanced Micro Devices로부터의 프로세서들과 같이 어떤 수의 잘 알려진 프로세서들을 포함할 수 있다. 대안적으로는, 상기 프로세서는 ASIC 또는 다른 프로세싱 디바이스와 같이, 동작들을 실행하기 위한 전용 제어기일 수 있다.
명령들(328)은 프로세서(들)에 의해 (머신 코드와 같이) 직접적으로 또는 (스크립트들과 같이) 간접적으로 실행될 명령들의 어떤 세트를 포함할 수 있다. 이 점에서, 본 명세서의 용어들, "명령들", "단계들" 및 "프로그램들"은 상호호환가능하게 사용될 수 있다. 상기 명령들은 객체 코드 또는 소스 코드의 모듈들과 같이 어떠한 컴퓨터 언어 또는 포맷으로 저장될 수 있다. 본 발명에 따른 명령들의 기능들, 방법들 및 루틴들은 하기에 더욱 상세히 설명된다.
데이터(330)가 상기 명령들(328)에 따라 프로세서(324)에 의해 검색, 저장 또는 수정될 수 있다. 상기 데이터는 데이터의 콜렉션으로서 저장될 수 있다. 예를 들어, 비록 본 발명이 어떠한 특별한 데이터 구조에 의해 제한되지 않지만은, 상기 데이터는 컴퓨터 레지스터들에, 복수의 서로 다른 필드들 및 레코드들을 가진 테이블로서 관계형 데이터베이스에, XML 문서들 등으로서 웹 페이지 캐시에 저장될 수 있다.
또한, 상기 데이터는 이들로만 한정되는 것은 아니지만은, 이진 값들, 아스키(ASCII) 또는 유니코드(Unicode)와 같은 어떤 컴퓨터 판독가능한 포맷으로 포매팅될 수 있다. 더욱이, 상기 데이터는 디스크립티브 텍스트, 사유 코드들(proprietary codes), 포인터들, (다른 네트워크 위치들을 포함하여) 다른 메모리들에 저장된 데이터에 대한 레퍼런스들과 같은 관련 정보 또는 상기 관련 데이터를 산정하는(calculate) 기능에 의해 사용되는 정보를 식별하기에 충분한 어떤 정보를 포함할 수 있다. 더욱이, 소정의 아이템이 하나 이상의 파일, 데이터 베이스, 웹 캐시 등에 저장된 데이터 세트를 포함할 수 있다. 상기 데이터의 사이즈와 컨텐트에 따라, 상기 데이터의 부분들이 저장되거나 또는 그렇지 않으면 개별적으로 유지될 수 있다.
비록 프로세서(324) 및 메모리(326)가 도 8b에 동일한 블록 내에 있는 것으로서 기능적으로 예시되어 있지만은, 상기 프로세서 및 메모리는 실제로, 동일한 물리적 하우징 또는 위치 내에 저장될 수 있거나 또는 저장되지 않을 수 있는 복수의 프로세서들 및 메모리들을 포함할 수 있음이 이해될 것이다. 예를 들어, 명령들 및 데이터의 일부 또는 전부는 탈착가능한 CD-ROM, DVD-ROM 또는 플래시 메모리 및 판독-전용 컴퓨터 칩 내의 다른 것들 상에 저장될 수 있다. 상기 명령들 및 데이터의 일부 또는 모두는 상기 프로세서로부터 물리적으로 원격이면서도 상기 프로세서에 의해 여전히 액세스가능한 위치에 저장될 수 있다. 유사하게, 상기 프로세서는 실제로, 병행하여 동작할 수 있거나 또는 동작하지 않을 수 있는 프로세서들의 콜렉션을 포함할 수 있다. 데이터는 하드 드라이브들 등과 같은 복수의 메모리들(326)에 걸쳐 분산되거나 저장될 수 있다.
일 양상에서, 서버(304)는 하나 이상의 클라이언트 컴퓨터(302, 306 및/또는 308)뿐만 아니라 모바일폰(310) 및 PDA(312)와 같은 디바이스들과 통신할 수 있다. 각각의 클라이언트 컴퓨터 또는 다른 클라언트 디바이스는, 프로세서, 메모리 및 명령들을 가진 서버(304)뿐만 아니라, 하나 이상의 사용자 입력 디바이스(318, 320) 및 디스플레이(322)와 같은 사용자 출력 디바이스와 유사하게 구성될 수 있다. 각각의 클라이언트 컴퓨터는, 중앙 처리 유닛("CPU"), 디스플레이, CD-ROM 또는 DVD 드라이브, 하드-드라이브, 마우스, 키보드, 터치-감응형 스크린, 스피커들, 마이크, 모뎀 및/또는 라우터(전화기, 케이블 등등) 및 다른 요소들에 이 요소들을 연결하기 위해 사용되는 모든 컴포넌트들과 같이 개인용 컴퓨터에서 일반적으로 발견되는 모든 컴포넌트들을 가지는, 개인에 의한 사용을 위해 의도된 범용 컴퓨터일 수 있다.
서버(304), 사용자 컴퓨터들 및 다른 디바이스들은 다른 컴퓨터들과의 직접 통신 및 네트워크(316)를 통한 바와 같이, 간접 통신을 할 수 있다. 비록, 오직 몇 개의 컴퓨팅 디바이스들만이 도 8a 내지 8b에 도시되지만은, 전형적인 시스템은 네트워크의 서로 다른 노드에 있는 각각의 서로 다른 컴퓨터와 연결된 다수의 서버들 및 클라이언트들을 포함할 수 있음이 이해되어야만 한다. 네트워크(316) 및 중재 노드들은 인터넷, 인트라넷, 가상 사유 네트워크들, 광역 네트워크들, 로컬 네트워크들, 하나 이상의 기업 소유의 통신 프로토콜들을 이용하는 사유 네트워크들, 이더넷, 와이파이, 블루투스 또는 TCP/IP를 포함하는 다양한 구성들 및 프로토콜들을 포함할 수 있다.
어떠한 중재 노드들을 포함하는 상기 네트워크에 걸친 통신은 (예컨대, 전화식(dial-up) 또는 케이블) 모뎀들, 네트워크 인터페이스들 및 무선 인터페이스들과 같이 다른 컴퓨터들에 그리고 다른 컴퓨터들로부터 데이터를 전송할 수 있는 어떠한 디바이스에 의해 용이하게 이루어질 수 있다. 서버(304)는 웹 서버일 수 있다. 비록, 정보가 상기에 주목된 바와 같이 전송되거나 수신될 때 특정한 장점들이 획득되지만은, 본 발명의 다른 양상들은 어떤 특별한 방식의 정보의 전송에 제한되지 않는다. 예를 들어, 일부 양상들에서, 정보는 디스크, 테이프, CD-ROM과 같은 매체를 통해 또는 전화식 모뎀을 통해 두 개의 컴퓨터 시스템 간에 직접적으로 전해질 수 있다. 다른 양상들에서, 특정한 정보는 비-전자적 포맷으로 전송되고 시스템에 수동으로 입력될 수 있다.
더욱이, 본 명세서에 기술된 시스템들 및 방법들에 따른 컴퓨터들 및 사용자 디바이스들은, 명령들을 프로세싱하고 사람들, 및 로컬 저장 능력이 결여된 네트워크 컴퓨터들, PDA(312)와 같은 모뎀들을 가진 PDA들, 모바일 폰(310)과 같은 인터넷-가능 무선 폰들, 넷북들 그리고 패드-타입 핸드헬드 컴퓨터들을 포함하는 다른 컴퓨터들에 그리고 이들로부터 데이터를 전송할 수 있는 어떤 디바이스를 포함할 수 있다.
비록, 본 명세서 발명이 특별한 실시예들을 참조하여 기술되지만은, 이 실시예들은 단지 본 발명의 원리들 및 어플리케이션들의 예시임이 이해되어야 한다. 그러므로, 첨부된 특허 청구 범위에 의해 정의된 바와 같은 본 발명의 사상 및 범위로부터 벗어남 없이 다수의 수정들이 예시적인 실시예들에 만들어질 수 있으며, 다른 구성들이 창안될 수 있음이 이해되어야만 한다.
상업상의 이용가능성
본 발명은 이들로만 한정되는 것은 아니지만은, 네트워크 디바이스들 사이에 데이터를 전달하기 위한 적응적인 대역폭 할당을 이용하는 컴퓨터 네트워킹을 포함하는 넓은 산업상의 이용가능성을 누린다.

Claims (16)

  1. 네트워크를 통해 대역폭을 할당하는 방법으로서,
    복수의 네트워크 사용자들을 표시하는 대역폭 사용 정보를 수신하는 단계와;
    상기 네트워크 사용자들을 분류하는 단계와, 상기 분류하는 단계는 각각의 네트워크 사용자에게 복수의 가중값(weight value) 중 하나를 할당하는 것을 포함하고, 상기 할당된 가중값들은 네트워크 기준(criteria)의 미리 결정된 세트에 따르며;
    프로세서로 대역폭 할당들을 생성하도록 하는 동작들을 수행하는 단계와, 상기 대역폭 할당들은 상기 대역폭 사용 정보 및 상기 사용자의 가중값들에 근거하며;
    상기 네트워크 사용자들에 대응하는 네트워크 디바이스들에 상기 대역폭 할당들을 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 프로세서로 수행되는 동작들은:
    상기 네트워크의 총 대역폭 수요(demand)를 결정하도록 대역폭 이용 정보를 종합(aggregation)하는 단계와;
    상기 네트워크 내의 정체된 링크(congested link)들을 검출하는 단계와; 그리고
    상기 네트워크 사용자들 사이에 상기 네트워크의 이용가능한 대역폭을 분할하는(dividing) 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 네트워크 사용자들 간에 상기 대역폭 할당들을 분할하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  4. 제2항에 있어서,
    각각의 네트워크 사용자에 대해 수행되는 작업(job)들 간에 각각의 네트워크 사용자의 대역폭 할당들을 분할하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 제3항에 있어서,
    각각의 작업과 관련된 복수의 태스크(task)들 간에 각각의 작업의 대역폭 할당들을 분할하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서, 상기 대역폭 수요 정보는 미리 결정된 시간 주기 동안의 상기 네트워크 사용자들의 피크 대역폭 사용(peak bandwidth usage)에 근거하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    모든 네트워크 대역폭 수요가 충족되는지 결정하는 단계와;
    사용되지 않은 대역폭이 상기 네트워크 상에서 이용가능한지 결정하는 단계와; 그리고
    상기 사용자들의 가중값들에 비례하여 상기 네트워크 사용자들 간에 상기 사용되지 않은 대역폭을 분할하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 제1항에 있어서,
    네트워크 대역폭의 일부는 대역폭 할당들을 생성하도록 하는 상기 동작들로부터 배제된 상태(exempt)로 있는 것을 특징으로 하는 방법.
  9. 제1항에 있어서,
    네트워크 전송들의 일부는 대역폭 할당들을 생성하도록 하는 상기 동작들로부터 배제된 상태로 있는 것을 특징으로 하는 방법.
  10. 네트워크를 통해 대역폭을 할당하는 방법으로서,
    네트워크 사용자들에 대한 사용자 가중값들을 수신하는 단계와;
    상기 네트워크 상에서 실행되는 복수의 작업에 관한 대역폭 사용 정보를 수신하는 단계와, 여기서 각각의 작업은 상기 네트워크 사용자들 중 소정의 한 명과 관련되고 상기 네트워크를 통해 수행될 하나 이상의 태스크를 포함하며;
    각각의 네트워크 사용자에 대한 대역폭 수요를 결정하는 단계와, 여기서 상기 대역폭 수요는 상기 수신된 사용자 가중값에 적어도 부분적으로 근거하며;
    대역폭 할당 모듈에 상기 대역폭 수요를 전송하는 단계와;
    상기 대역폭 할당 모듈로부터 대역폭 할당들을 수신하는 단계와; 그리고
    상기 수신된 대역폭 할당들 및 상기 대역폭 사용 정보에 근거하여 상기 네트워크 사용자들 및 작업들 간에 대역폭을 분할하는 단계를 포함하는 것을 특징으로 하는 방법.
  11. 제9항에 있어서,
    상기 대역폭 수요는 특정한 네트워크 사용자들에 영구적으로 할당되는 대역폭을 포함하는 것을 특징으로 하는 방법.
  12. 제9항에 있어서,
    상기 대역폭 수요를 결정하는 단계는 복수의 사용자의 대역폭 수요를 단일 수요 함수로 종합하는 것을 포함하는 것을 특징으로 하는 방법.
  13. 제9항에 있어서,
    각각의 네트워크 사용자는 네트워크 클러스터와 관련되고, 상기 대역폭 수요를 전송하는 단계는 네트워크 클러스터의 대역폭 수요를 제공하는 것을 포함하는 것을 특징으로 하는 방법.
  14. 제9항에 있어서,
    복수의 태스크 간에 각각의 작업의 대역폭을 분할하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  15. 네트워크를 통해 대역폭을 할당하는 시스템으로서,
    네트워크 사용자들을 분류하기 위한 수단과, 여기서 상기 분류는 각각의 네트워크 사용자에게 복수의 가중값 중 하나를 할당하는 것을 포함하고, 각각의 개별 네트워크 사용자에 대한 상기 할당된 가중값은 적어도 하나의 네트워크 기준에 따라 선택되며;
    각각의 네트워크 사용자에 대한 대역폭 수요를 결정하기 위한 수단과;
    상기 사용자 가중값들 및 결정된 대역폭 수요에 적어도 부분적으로 근거하여 각각의 네트워크 사용자 간에 대역폭을 할당하기 위한 수단과; 그리고
    각각의 네트워크 사용자 간에 상기 할당된 대역폭을 분할하기 위한 수단을 포함하는 것을 특징으로 하는 시스템.
  16. 제15항에 있어서,
    상기 대역폭을 할당하기 위한 수단은:
    상기 네트워크의 총 대역폭 수요를 결정하도록 대역폭 사용 정보를 종합하기 위한 수단; 및
    상기 네트워크 내의 정체된 링크들을 검출하기 위한 수단을 포함하는 것을 특징으로 하는 시스템.
KR1020137023133A 2011-02-01 2012-01-31 경합하는 어플리케이션들 간에 네트워크 대역폭을 배분하기 위한 시스템 KR101947354B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/018,967 2011-02-01
US13/018,967 US9007898B2 (en) 2011-02-01 2011-02-01 System to share network bandwidth among competing applications
PCT/US2012/023288 WO2012106315A2 (en) 2011-02-01 2012-01-31 System to share network bandwidth among competing applications

Publications (2)

Publication Number Publication Date
KR20140024851A true KR20140024851A (ko) 2014-03-03
KR101947354B1 KR101947354B1 (ko) 2019-02-12

Family

ID=46577290

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137023133A KR101947354B1 (ko) 2011-02-01 2012-01-31 경합하는 어플리케이션들 간에 네트워크 대역폭을 배분하기 위한 시스템

Country Status (6)

Country Link
US (2) US9007898B2 (ko)
EP (2) EP2966569B1 (ko)
JP (2) JP6162046B2 (ko)
KR (1) KR101947354B1 (ko)
CN (2) CN103477591B (ko)
WO (1) WO2012106315A2 (ko)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6195622B1 (en) 1998-01-15 2001-02-27 Microsoft Corporation Methods and apparatus for building attribute transition probability models for use in pre-fetching resources
US7889761B2 (en) * 2002-09-17 2011-02-15 Broadcom Corporation Method and system for providing bandwidth allocation and sharing in a hybrid wired/wireless network
AU2012207471B2 (en) * 2011-01-18 2016-07-28 Nomadix, Inc. Systems and methods for group bandwidth management in a communication systems network
US20130086590A1 (en) * 2011-09-30 2013-04-04 John Mark Morris Managing capacity of computing environments and systems that include a database
US9001679B2 (en) 2011-11-07 2015-04-07 Qualcomm Incorporated Supporting voice for flexible bandwidth systems
US9848339B2 (en) * 2011-11-07 2017-12-19 Qualcomm Incorporated Voice service solutions for flexible bandwidth systems
US20130114571A1 (en) 2011-11-07 2013-05-09 Qualcomm Incorporated Coordinated forward link blanking and power boosting for flexible bandwidth systems
US9516531B2 (en) 2011-11-07 2016-12-06 Qualcomm Incorporated Assistance information for flexible bandwidth carrier mobility methods, systems, and devices
US9055496B2 (en) 2011-12-09 2015-06-09 Qualcomm Incorporated Providing for mobility for flexible bandwidth carrier systems
US9100448B2 (en) * 2012-01-20 2015-08-04 Blackberry Limited Communication device for throttling transmitted data
EP2826209A4 (en) * 2012-03-14 2015-10-21 Hewlett Packard Development Co BANDWIDTH ASSIGNMENT IN A NETWORK
US9686164B1 (en) * 2012-04-12 2017-06-20 Sprint Communications Company L.P. Packet allocation schema for 3G and 4G routers
JP5805583B2 (ja) * 2012-05-16 2015-11-04 株式会社日立製作所 通信システム、通信装置および通信制御方法
US11159804B1 (en) * 2012-09-13 2021-10-26 Arris Enterprises Llc QoE feedback based intelligent video transport stream tuning
US8938541B2 (en) * 2012-10-29 2015-01-20 Ericsson Ab Method and system to allocate bandwidth in cloud computing networks
US9553794B1 (en) 2013-01-10 2017-01-24 Google Inc. Traffic engineering for network usage optimization
US8973073B2 (en) * 2013-05-20 2015-03-03 Telefonaktiebolaget L M Ericsson (Publ) Weighted ingest policy management in a content distribution network
CN103312631B (zh) * 2013-05-29 2016-05-18 普联技术有限公司 一种带宽控制方法及路由器
US9363162B1 (en) * 2013-10-21 2016-06-07 Google Inc. Determining WCMP link capacities in multi-stage networks
US9781046B1 (en) 2013-11-19 2017-10-03 Tripwire, Inc. Bandwidth throttling in vulnerability scanning applications
US9467362B1 (en) 2014-02-10 2016-10-11 Google Inc. Flow utilization metrics
US9712408B2 (en) * 2014-03-17 2017-07-18 Telefonaktiebolaget L M Ericsson (Publ) Bandwidth management in a content distribution network
CN104301255B (zh) * 2014-10-13 2018-06-12 北京邮电大学 一种光网络多用户带宽公平分配的方法
US10608955B2 (en) * 2014-11-25 2020-03-31 Vmware, Inc. Reverse breadth-first search method for optimizing network traffic in a distributed system with a point of convergence
CN105898391A (zh) * 2015-11-03 2016-08-24 乐视云计算有限公司 在线媒体服务的带宽分配方法及系统
US20170126583A1 (en) * 2015-11-03 2017-05-04 Le Holdings (Beijing) Co., Ltd. Method and electronic device for bandwidth allocation based on online media services
AU2016371481B2 (en) 2015-12-17 2019-09-19 Ab Initio Technology Llc Processing data using dynamic partitioning
CN106936733B (zh) * 2015-12-31 2020-08-28 北京金山云网络技术有限公司 一种带宽资源分配方法及装置
JP6698177B2 (ja) 2016-05-17 2020-05-27 アビニシオ テクノロジー エルエルシー 再構成可能な分散処理
CN108369531B (zh) * 2016-07-12 2023-06-02 华为云计算技术有限公司 控制io带宽和处理io访问请求的方法、装置及系统
US10623330B2 (en) 2016-09-23 2020-04-14 Google Llc Distributed bandwidth allocation and throttling
CN108537619A (zh) * 2018-03-05 2018-09-14 新智数字科技有限公司 一种基于最大流算法的任务分配方法、装置及设备
CN109412967B (zh) * 2018-09-28 2022-07-08 江苏满运软件科技有限公司 基于令牌的系统流控方法、装置、电子设备、存储介质
CN111224884B (zh) * 2018-11-27 2023-02-24 华为技术有限公司 拥塞控制的处理方法、报文转发装置及报文接收装置
CN113347639B (zh) * 2021-08-05 2021-11-16 南京邮电大学 一种基于协同通信的混合接入频谱的方法
CN113726691B (zh) * 2021-08-20 2024-04-30 北京字节跳动网络技术有限公司 带宽预留方法、装置、设备以及存储介质
CN114039847B (zh) * 2021-11-25 2024-03-12 新华三大数据技术有限公司 一种组网规划方法及装置
CN115473855B (zh) * 2022-08-22 2024-04-09 阿里巴巴(中国)有限公司 网络系统、数据传输方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0793639B2 (ja) * 1989-10-30 1995-10-09 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン ネツトワ−ク・ノ−ドにおける処理及び記録要件を緩和するための方法及びシステム
US20030005074A1 (en) * 2000-04-25 2003-01-02 Herz Frederick S.M. Method of combining shared buffers of continuous digital media data with media delivery scheduling
KR20070103056A (ko) * 2005-03-09 2007-10-22 소니 일렉트로닉스 인코포레이티드 네트워크 링크의 동적 대역폭 추정을 위한 시스템 및 방법
US20070263625A1 (en) * 2004-01-22 2007-11-15 Rolf Engstrand Access Control for Multicast channel Request
US20110087765A1 (en) * 2009-10-08 2011-04-14 Magor Communications Corporation Network bandwidth management system

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69727660T2 (de) 1996-03-18 2004-12-23 General Instrument Corporation Dynamische zuordnung der bandbreite für ein kommunikationsmetz
US7072295B1 (en) * 1999-09-15 2006-07-04 Tellabs Operations, Inc. Allocating network bandwidth
US6882623B1 (en) 2000-02-08 2005-04-19 Native Networks Technologies Ltd. Multi-level scheduling method for multiplexing packets in a communications network
US20020023117A1 (en) * 2000-05-31 2002-02-21 James Bernardin Redundancy-based methods, apparatus and articles-of-manufacture for providing improved quality-of-service in an always-live distributed computing environment
US6993044B2 (en) 2000-05-19 2006-01-31 Scientific-Atlanta, Inc. Computerized method for allocating access across a shared communication medium
US20020091937A1 (en) 2001-01-10 2002-07-11 Ortiz Luis M. Random biometric authentication methods and systems
US20020143952A1 (en) * 2001-03-30 2002-10-03 Sugiarto Basuki Afandi Multimedia download timer system and method
US7327679B2 (en) 2001-08-21 2008-02-05 Broad-Light, Ltd. Method of providing QoS and bandwidth allocation in a point to multi-point network
US7613167B2 (en) * 2001-09-27 2009-11-03 Broadcom Corporation Method and system for upstream priority lookup at physical interface
US7587512B2 (en) * 2002-10-16 2009-09-08 Eric White System and method for dynamic bandwidth provisioning
JP3933597B2 (ja) 2003-03-27 2007-06-20 三洋電機株式会社 送信方法およびそれを利用した無線装置
US20050052992A1 (en) * 2003-08-01 2005-03-10 Cloonan Thomas J. Method and system for dynamically managing cable data bandwidth based on channel congestion state and subscriber usage profile
US7778194B1 (en) 2004-08-13 2010-08-17 Packeteer, Inc. Examination of connection handshake to enhance classification of encrypted network traffic
US7564852B2 (en) * 2005-07-20 2009-07-21 Cortina Systems, Inc. Intelligent bandwidth allocation for ethernet passive optical networks
US20070147247A1 (en) * 2005-12-22 2007-06-28 France Telecom Auto adaptive quality of service architecture and associated method of provisioning customer premises traffic
WO2007071198A1 (en) * 2005-12-23 2007-06-28 Hongkong Applied Science And Technology Research Institute Co., Ltd. A distributed wireless network with dynamic bandwidth allocation
US8059609B2 (en) 2006-03-20 2011-11-15 Qualcomm Incorporated Resource allocation to support single-user and multi-user MIMO transmission
US9703285B2 (en) 2006-04-27 2017-07-11 International Business Machines Corporation Fair share scheduling for mixed clusters with multiple resources
GB2443229B (en) 2006-08-23 2009-10-14 Cramer Systems Ltd Capacity management for data networks
US20080101405A1 (en) * 2006-10-26 2008-05-01 General Instrument Corporation Method and Apparatus for Dynamic Bandwidth Allocation of Video Over a Digital Subscriber Line
JP5236626B2 (ja) 2007-03-01 2013-07-17 株式会社エヌ・ティ・ティ・ドコモ 基地局装置及び通信制御方法
US7738492B2 (en) * 2007-11-19 2010-06-15 Avistar Communications Corporation Network communication bandwidth management
CN101232449B (zh) * 2008-02-27 2010-09-01 福建星网锐捷网络有限公司 一种带宽分配方法及装置
US8593950B2 (en) 2008-06-24 2013-11-26 At&T Intellectual Property I, L.P. Method and apparatus for providing a weighted bandwidth allocation for a network
US8955107B2 (en) 2008-09-12 2015-02-10 Juniper Networks, Inc. Hierarchical application of security services within a computer network
US8284700B2 (en) * 2009-01-07 2012-10-09 Fujitsu Semiconductor Limited System and method for cooperative data transfer
WO2011020516A1 (en) * 2009-08-21 2011-02-24 Telefonaktiebolaget L M Ericsson (Publ) Bandwidth allocation
US8315168B2 (en) 2009-10-28 2012-11-20 Broadcom Corporation Priority-based hierarchical bandwidth sharing
US8589555B2 (en) 2010-01-11 2013-11-19 Nec Laboratories America, Inc. Virtualization and consolidation analysis engine for enterprise data centers
US8503428B2 (en) 2010-03-18 2013-08-06 Juniper Networks, Inc. Customized classification of host bound traffic
US8504689B2 (en) 2010-05-28 2013-08-06 Red Hat, Inc. Methods and systems for cloud deployment analysis featuring relative cloud resource importance
JP7093639B2 (ja) * 2018-02-06 2022-06-30 三菱マテリアル株式会社 銀被覆樹脂粒子

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0793639B2 (ja) * 1989-10-30 1995-10-09 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン ネツトワ−ク・ノ−ドにおける処理及び記録要件を緩和するための方法及びシステム
US20030005074A1 (en) * 2000-04-25 2003-01-02 Herz Frederick S.M. Method of combining shared buffers of continuous digital media data with media delivery scheduling
US20070263625A1 (en) * 2004-01-22 2007-11-15 Rolf Engstrand Access Control for Multicast channel Request
KR20070103056A (ko) * 2005-03-09 2007-10-22 소니 일렉트로닉스 인코포레이티드 네트워크 링크의 동적 대역폭 추정을 위한 시스템 및 방법
US20110087765A1 (en) * 2009-10-08 2011-04-14 Magor Communications Corporation Network bandwidth management system

Also Published As

Publication number Publication date
EP2671354B1 (en) 2015-08-26
EP2671354A4 (en) 2014-07-09
CN105978736B (zh) 2019-05-31
CN103477591B (zh) 2016-08-17
CN103477591A (zh) 2013-12-25
US10135753B2 (en) 2018-11-20
CN105978736A (zh) 2016-09-28
EP2966569B1 (en) 2017-11-29
US9007898B2 (en) 2015-04-14
WO2012106315A2 (en) 2012-08-09
KR101947354B1 (ko) 2019-02-12
JP2017158215A (ja) 2017-09-07
JP2014509129A (ja) 2014-04-10
EP2671354A2 (en) 2013-12-11
WO2012106315A3 (en) 2012-11-15
JP6162046B2 (ja) 2017-07-12
JP6356319B2 (ja) 2018-07-11
US20120195209A1 (en) 2012-08-02
EP2966569A1 (en) 2016-01-13
US20150188844A1 (en) 2015-07-02

Similar Documents

Publication Publication Date Title
US10135753B2 (en) System to share network bandwidth among competing applications
US9559956B2 (en) Sharing bandwidth among multiple users of network applications
US9705783B2 (en) Techniques for end-to-end network bandwidth optimization using software defined networking
US8670310B2 (en) Dynamic balancing priority queue assignments for quality-of-service network flows
US7203169B1 (en) Interface facilitating configuration of network resource utilization
US7243351B2 (en) System and method for task scheduling based upon the classification value and probability
US8149846B2 (en) Data processing system and method
US6829649B1 (en) Method an congestion control system to allocate bandwidth of a link to dataflows
US8537669B2 (en) Priority queue level optimization for a network flow
US8537846B2 (en) Dynamic priority queue level assignment for a network flow
EP3220681B1 (en) Adaptive and dynamic qos/qoe enforcement
US20040153545A1 (en) Software, systems and methods for managing a distributed network
Gvozdiev et al. On low-latency-capable topologies, and their impact on the design of intra-domain routing
Brehm et al. Overload-state downlink resource allocation in LTE MAC layer
KR20170033179A (ko) 소프트웨어 정의 네트워크 기반 가상 네트워크 사용 대역폭 관리 방법 및 가상 네트워크 관리장치
CN111970149A (zh) 一种基于硬件防火墙qos的共享带宽实现方法
CN114095441A (zh) 一种实现ecmp流量负载均衡的方法及电子设备
KR101987346B1 (ko) 데이터 센터 간 광역 통신망에서 통계적 자원 할당 및 서비스 품질 보장 시스템과 이의 방법
Okafor et al. Synthesis VLAN Approach to Congestion Management in DataCenter Ethernet Networks
Mamo Application-Aware Data Center Network Bandwidth Utilization: the case of ethio telecom
Chen et al. Improve the problem of insufficient bandwidth and path congestion in the cloud computing environment by using self-adjustment scheduler
Grøsvik Towards a Methodology to Assess Quality of 5G Slicing
CN117336180A (zh) 包复制策略部署方法、装置、设备及存储介质
Hua et al. Scheduling scheme with fairness and adaptation in the joint allocation of heterogeneous resources
Ravindran et al. Management intelligence for optimal resource allocations in network server systems

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