KR20130085918A - 계층적 적응형 동적 출력 포트 및 큐 버퍼 관리를 위한 시스템 및 방법 - Google Patents

계층적 적응형 동적 출력 포트 및 큐 버퍼 관리를 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20130085918A
KR20130085918A KR1020120105012A KR20120105012A KR20130085918A KR 20130085918 A KR20130085918 A KR 20130085918A KR 1020120105012 A KR1020120105012 A KR 1020120105012A KR 20120105012 A KR20120105012 A KR 20120105012A KR 20130085918 A KR20130085918 A KR 20130085918A
Authority
KR
South Korea
Prior art keywords
port
limit
virtual machine
switch
queue
Prior art date
Application number
KR1020120105012A
Other languages
English (en)
Other versions
KR101413001B1 (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 KR20130085918A publication Critical patent/KR20130085918A/ko
Application granted granted Critical
Publication of KR101413001B1 publication Critical patent/KR101413001B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9005Buffering arrangements using dynamic buffer space allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6215Individual queue per QOS, rate or priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9036Common buffer combined with individual queues

Landscapes

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

Abstract

계측적 적응형 동적 출력 포트 및 큐 버퍼 관리를 위한 시스템 및 방법. 물품 공유된 메모리 버퍼 스위치에서 버퍼링 자원들의 효과적인 이용은 패킷 손실을 최소화하기 위한 핵심이다. 버퍼링 자원들의 효과적인 이용은 적응적 포트 제한으로부터 유도된 적응적 큐 제한들을 통해 가능하게 된다.

Description

계층적 적응형 동적 출력 포트 및 큐 버퍼 관리를 위한 시스템 및 방법{SYSTEM AND METHOD FOR HIERARCHICAL ADAPTIVE DYNAMIC EGRESS PORT AND QUEUE BUFFER MANAGEMENT}
본 출원은 2011년 12월 20일 출원된 가출원 특허 출원 번호 제61/577,702호의 우선권을 주장하며, 이는 전체 목적들을 위해, 그 전체 내에서, 본 명세서 안의 참조로서 통합된다.
본 발명은 대략적으로 네트워크 스위치들에 관한 것으로서, 보다 구체적으로는 계층적 적응형 동적 출력 포트 및 큐 버퍼 관리를 위한 시스템 및 방법에 관한 것이다.
데이터 통신 기반 시설에 대한 수요 증가가 계속되고 있다. 물품 공유 메모리 온-칩 버퍼 설계들에서, 버퍼링 자원들의 효율적인 이용이 프레임 손실을 최소화하는 데 주요한 요인이다. 스위치에서의 패킷 버퍼의 용량이 초과될 때, 상기 패킷 버퍼는 백업할 수 있고, 패킷 손실이 발생할 수 있다. 이해되어지는 바와 같이, 그러한 패킷 손실은 전체 애플리케이션 동작에 중요하게 영향을 줄 수 있다.
오늘날 네트워크 장치들에서의 경향은 포트(port)당 큐(queue)들의 수가 증가하는 것이다. 예를 들면, 이것은 네트워크 기반 시설에서 가상화의 증가하는 사용에 의해 초래될 수 있다. 증가하는 포트 위치당 큐들의 수에서의 이러한 상승은 패킷 손실들의 잠재력을 결정할 수 있는 트래픽 관리 성능들을 요구한다.
어떤 트래픽의 클래스들(classes)에 대해, 네트워크 서비스들 및 애플리케이션들에 영향을 주지 않기 위해 패킷 손실은 거의 발생할 수 없다. 그러나, 데이터-중심 애플리케이션들에서, 패킷 손실은 받아들여질 수 없다. 그러므로, 계층적 적응형 동적 출력 포트 및 큐 버퍼 관리를 할 수 있는 메커니즘이 요구되는 것이다.
그러므로, 본 발명의 목적은 동적 큐 문턱값의 제한들을 가능하게 하는 스위치를 제공하는 것이다.
또한, 본 발명의 또 다른 목적은, 동적 큐 문턱값의 제한을 가능하게 하는 계층적 적응형 동적 출력 포트 및 큐 버퍼 관리를 위한 시스템 및 방법을 제공하는 것이다.
일 측면에 따라, 동적 큐 문턱값(dynamic queue threshold) 제한들을 가능하게 하는 스위치가 제공되며, 상기 스위치는
공유된 메모리 버퍼;
복수의 포트들로서, 상기 복수의 포트들 중 제1 포트는 복수의 가상 머신들을 갖는 네트워크 장치와 연결되고, 상기 복수의 가상 머신들 각각은 복수의 트래픽 클래스들과 관련된 복수의 큐(queue)들을 갖는, 상기 복수의 포트들; 및
상기 복수의 가상 머신들 각각에 대한 제한을 결정하는 제어 모듈로서, 상기 복수의 가상 머신들 중 제1 가상 머신에 대해 가상 머신 제한이 상기 제1 포트를 위한 포트 제한의 일 부분(fraction)으로서 결정되며, 상기 제1 포트를 위한 상기 포트 제한은 상기 공유된 메모리 버퍼의 비사용된 나머지를 상기 제1 포트에 할당된 버스트 흡수 인자(burst absorption factor)로 곱함으로써 결정되며, 상기 제어 모듈은 상기 제1 가상 머신과 관련된 복수의 큐들 각각을 위한 큐 제한들을 더 결정하고, 상기 제1 가상 머신과 관련된 상기 복수의 큐들 각각을 위한 상기 큐 제한들은 상기 제1 가상 머신을 위한 상기 가상 머신 제한의 일 부분을 나타내는, 상기 제어 모듈을 포함한다.
바람직하게는, 상기 제1 가상 머신에서의 상기 복수의 큐들은 상기 포트 제한의 할당된 퍼센티지를 공유한다.
바람직하게는, 상기 제1 가상 머신에서의 상기 복수의 큐들의 각각은 상기 가상 머신 제한의 상기 할당된 퍼센티지의 일 부분이 할당된다.
바람직하게는, 상기 버스트 흡수 인자는 1보다 더 작다.
일 측면에 따라서, 동적 큐 문턱값 제한 방법은,
스위치상의 포트에 버스트 흡수 인자를 할당하는 단계로서, 상기 포트는 네트워크 통신 케이블을 통해 네트워크 장치에 연결되는, 상기 할당하는 단계;
상기 스위치에서 공유된 메모리 버퍼의 비사용된 부분의 양을 확인하는(identify) 단계;
상기 포트에 할당된 상기 버스트 흡수 인자를 상기 공유된 메모리 버퍼의 상기 비사용된 부분의 상기 확인된 양에 의해 곱함으로써 상기 포트에 대한 포트 제한을 결정하는 단계;
상기 네트워크 장치상에서 가상 머신을 위한 가상 머신 제한을 결정하는 단계로서, 상기 가상 머신 제한은 상기 결정된 포트 제한의 일부를 나타내는, 상기 결정하는 단계; 및
상기 네트워크 장치상에서 상기 가상 머신과 관련된 복수의 큐들의 각각에 대해 큐 제한을 결정하는 단계로서, 상기 할당된 큐 제한들의 각각은 상기 결정된 가상 머신 제한의 부분들인, 상기 결정하는 단계를 포함한다.
바람직하게는, 상기 할당하는 단계는 1보다 작은 버스트 흡수 인자를 할당하는 단계를 포함한다.
일 측면에 따라서, 동적 큐 문턱값 제한들을 가능하게 하는 시스템은,
공유된 메모리 버퍼;
복수의 포트들로서, 상기 복수의 포트들 중 제1 포트는 복수의 가상 머신들을 갖는 네트워크 장치와 연결되고, 상기 복수의 가상 머신들 각각은 복수의 트래픽 클래스들과 관련된 복수의 큐(queue)들을 갖는, 상기 복수의 포트들; 및
상기 복수의 가상 머신들에서 상기 복수의 큐들 각각에 대해 큐 제한을 결정하는 제어 모듈로서, 상기 큐 제한들은 상기 제1 포트를 위한 포트 제한의 부분들(practional parts)로서 결정되며, 상기 포트 제한은 상기 공유된 메모리 버퍼의 비사용된 나머지를 상기 제1 포트에 할당된 버스트 흡수 인자(burst absorption factor)로 곱함으로써 결정되며, 상기 버스트 흡수 인자는 1보다 더 작은, 상기 제어 모듈을 포함한다.
바람직하게는, 상기 제1 포트상에서의 상기 복수의 가상 머신들 각각은 상기 포트 제한의 각각 할당된 퍼센티지를 갖는다.
바람직하게는, 가상 머신과 관련된 큐들의 세트는 상기 가상 머신을 위한 결정된 제한의 할당된 퍼센티지를 공유한다.
본 발명에 따르면, 물품 공유된 메모리 버퍼 스위치에서 버퍼링 자원들을 효과적으로 이용함으로써 패킷 손실을 최소화할 수 있는 효과가 있다.
또한, 본 발명에 따르면 적응적 포트 제한으로부터 유도된 적응적 큐 제한들을 통해 버퍼링 자원들을 효과적으로 이용할 수 있는 효과가 있다.
본 발명의 상기 인용된 및 다른 장점들 및 특징들이 얻어질 수 있는 방법을 설명하기 위하여, 간략하게 상기 설명된 본 발명의 더 많은 구체적인 설명이 상기 첨부된 도면들에서 도시된 그 특정 실시예들을 참조함으로써 제시될 것이다. 이러한 도면들은 본 발명의 단지 전형적인 실시예들을 묘사하여, 그러므로 그 범위의 제한을 고려되지 않는 것으로 이해하며, 본 발명은 첨부된 도면들의 사용을 통해 추가적인 특징 및 상세와 함께 개시되고 설명될 것이다.
도 1은 일반적인 스위치의 예시적인 실시예를 나타낸다.
도 2는 블레이드 스위치 상품에서 공유된 메모리 스위치의 예시적인 설정을 나타낸다.
도 3은 본 발명의 과정의 흐름도를 나타낸다.
본 발명의 다양한 실시예들이 아래에 상세하게 설명된다. 특정 구현들이 설명되는 반면, 이는 단지 설명 목적들을 위해 행해지는 것으로 이해되어져야 한다. 다른 구성 요소들 및 구성들이 본 발명의 사상 및 범위로부터 벗어나지 않고 사용될 수 있음을 당업자가 인식할 것이다.
언급한 바와 같이, 오늘날의 많은 스위치들은 기준이상(oversubscribed) 상태로 진입하기 위한 잠재력을 갖는 구성들을 설계해왔다. 이는 조합으로 상기 스위치의 패킷 처리 능력을 초과할 수 있는 고 대역 I/O 포트들(예컨대, 10 GbE)의 결과이다.
도 1은 스위치의 예시적인 실시예를 나타낸다. 도시된 바와 같이, 스위치(100)는 복수의 입력 포트들(ingress ports)(110-1 내지 110-4)을 포함하며, 각각은 다른 네트워크 장치들과 연결을 제공할 수 있다. 일 예에서와 같이, 입력 포트들(110-1 내지 110-4)의 각각은 데이터 센터에서 다른 스위치들과 10 GbE 연결을 제공할 수 있다. 마찬가지로, 스위치(100)는 복수의 입력 포트들(140-1 내지 140-4)을 포함하며, 각각은 다른 네트워크 장치들(예컨대, 서버들)과 연결을 제공할 수 있다.
도시된 바와 같이, 입력 포트들(110-1 내지 110-M) 및 출력 포트들(egress ports)(140-1 내지 140-N)은 스위치(100)의 I/O 부분의 일부로서 포함된다. 스위치(100)의 I/O 부분은 스위치(100)의 프로세싱 코어(processing core)와 논리적으로 구분되는 것으로 보여진다. 도시된 바와 같이, 스위치(100)의 프로세싱 코어는 패킷 프로세싱 유닛들(120-1, 120-2) 및 메모리 관리자(130)를 포함한다. 일 실시예에서, 패킷 프로세싱 유닛들(120-1, 120-2)은 프레이밍/파싱(framing/parsing), 분류(classification), 트래픽 감시 활동 및 성형(traffic policing and shaping), 변형(modification), 압축/암호화(compression/encryption), 큐잉(queueing), 등과 같은 패킷들에서의 실시간 동작들을 실행한다. 번역(translation), 라우트 계산(route calculation), 라우팅 테이블 업데이트들(routing table updates), 등과 같은 제어 동작들은 또한 패킷 프로세싱 유닛들(120-1, 120-2)에 의해 수행될 수 있다. 이해될 수 있는 바와 같이, 상기 스위치의 프로세싱 코어의 특정 구성은 구현에 의존한다.
일 실시예에서, 스위치(100)는 공유된 메모리 버퍼 스위치로서 구현될 수 있다. 한 응용으로서, 상기 스위치는 블레이드 스위치 제품(blade switch product)에 포함될 수 있으며, 상기 스위치는 탑-오브-랙(top-of-rack; TOR) 역할로 동작한다. 이러한 구성에서, 상기 스위치는 리던던트 스패닝 트리 프로토콜(spanning tree protocol; STP) 토폴로지를 제공하여 2 개의 40G 링크들을 통해 네트워크에 연결할 수 있다. 상기 블레이드 스위치 제품은 또한 10G 링크들을 통해 상기 TOR 스위치에 연결할 수 있는 복수의 서버들을 포함할 수 있다. 한 구성으로서, 상기 공유된 메모리 TOR 스위치는 스왈로우 메모리 버퍼(shallow memory buffer)(예컨대, 2 내지 12 MB)를 공유한다.
도 2는 그러한 블레이드 스위치 구성의 예를 나타낸다. 도시된 바와 같이, 공유된 메모리 버퍼 스위치(200)는 리던던트 STP 구성을 제공하는 외부의 40G 포트들(210-1, 210-2)을 통해 네트워크에 연결된다. 스위치(200)는 또한 블레이드 스위치 제품에서 복수의 서버들에 스위치(200)의 커플링을 하도록 할 수 있는 복수의 내부 포트들(220-1 내지 220-N)을 포함한다. 단순화를 위해, 도 2는 서버(240)로의 내부 포트(220-1)의 단일 연결만을 나타낸다.
언급한 바와 같이, 오늘날의 네트워크 환경의 필요를 만족시키는 스위치의 시도들 중 하나는 포트당 큐의 수를 증가시키는 것이다. 전형적으로, 하나의 포트에서 복수의 큐들은 서비스의 대응하는 복수의 트래픽 클래스들을 지원하도록 정의될 수 있다. 일 예에 따라, 단일 서버는 8개의 다른 트래픽 클래스들을 지원하는 8개의 다른 큐들을 가질 수 있다.
네트워크 기반 시설에서 가상화의 사용 증가로, 포트당 큐의 수에서 중요한 증가가 발생했다. 도시된 바와 같이, 도 2에서, 서버(240)는 복수의 가상 머신들(virtual machines; VMs)을 지원하도록 설계될 수 있다. 이러한 VM들의 각각은 큐들 중 그 자신의 세트를 지원할 수 있다. 그러므로, 예를 들면, 서버(240)가 8개의 다른 큐들을 지원하는 각각의 VM으로, 10개의 VM들을 갖는다면, 포트(220-1)에서의 큐들의 전체 수는 10VMs * 8queues/VM =80 total queues가 될 수 있다. 증가하는 단일 포트 위치들에서 큐들의 이러한 개수를 지원하는 것은 스위치(200)의 트래픽 관리 성능들에 의존한다. 포트들(220-1 내지 220-N)에서 트래픽을 적절히 관리함에 대한 스위치(200)의 실패는 패킷 손실의 중요한 경우들을 초래할 수 있다.
스왈로우 메모리 버퍼를 갖는 물품 스위치에 대해, 공유된 메모리 버퍼의 적절한 할당은 적절한 트래픽 관리에서의 핵심 요소이다. 일반적으로, 공유된 메모리 스위치는 모든 스위치 포트들에 유용한 공통 패킷 버퍼들을 논리적으로 사용할 수 있다. 포트에 도달하는 패킷들은 모든 상기 스위치 포트들에 의해 공유된 고속, 다중 포트 메모리에서 저장된다. 상기 공유된 메모리 버퍼로부터의 메모리는 필요한 만큼 많은 메모리를 각 포트에 주기 위해 시도하는 스케쥴링 프로세스를 사용하여 메모리 관리자에 의해 패킷에 동적으로 할당된다. 임의의 하나의 스위치 포트에 할당된 메모리의 최대 양의 동적인 조절을 통해 불공정함이 메모리 관리자에 의해 방지될 수 있다. 패킷이 출력 포트에 대해 큐잉(queuing)되지만, 상기 출력 포트가 그 최대 매모리 할당에 이른다면, 패킷은 드롭(drop)될 것이다.
본 발명에서, 포트당 큐들의 수가 제한될 때 적응적 큐 제한들이 합리적으로 잘 동작할 수 있는 반면, 포트당 큐들의 수만큼 그의 효율성 감소들이 증가한다는 것이 인식된다. 보다 구체적으로, 포트당 큐들의 수가 증가함에 따라, 정적인(static) 포트 제한들은 시스템에서 큰 영향을 가져오기 시작한다. 상기 적응적 큐 제한들의 영향은 그런 다음 비교적 줄어들 것이다. 마지막 결과는 포트당 많은 큐들을 따라 포트 독립을 지원하는 것이 상기 스위치에 의해 드롭되는 패킷들을 초래할 수 있다는 것이다.
또한 큐마다 동적인 문턱값(dynamic threshold) 제한들을 지원하는 동안 스위치 장치가 포트마다 분리(isolation)를 할 수 있는 구성이 제공될 수 있음이 본 발명의 특징이다. 본 발명의 동적 문턱값 메커니즘은 공유된 메모리 버퍼에서 이용할 수 있는 버퍼 공간의 양에 기반한다. 도 2의 예에서 나타나는 바와 같이, 공유된 메모리 버퍼(230)는 사용된 부분 및 비사용된 부분을 포함한다. 상기 공유된 메모리 버퍼의 비사용된 부분은 출력 포트들에서의 다양한 큐들로 할당을 위해 가능한 메모리 공간을 나타낸다.
전형적으로, 정적인 포트 제한들은 다양한 포트들 사이의 분리의 측정을 제공하도록 사용되어왔다. 상기 언급한 바와 같이, 이러한 정적인 포트 제한들은 포트상에서의 큐들의 수가 증가함에 따라 영향이 두드러지게 증가하게 된다. 그와 같이, 정적인 포트 제한들은 상기 포트에서 큐들에 의해 구현될 수 있는 적응적 제한들의 영향을 감소시키기 시작한다.
본 발명에서, 적응적 포트 제한들은 상기 포트들에 대해 제공된다. 이러한 적응적 포트 제한들은 상기 공유된 메모리 버퍼의 비사용된 부분에 기반한다. 한가지 실시예에서, 출력 포트의 포트 제한(port limit; PL)은 PL=BAF*R로서 결정되며, BAF는 정의된 버스트 흡수 인자이며, R은 상기 공유된 메모리 버퍼의 비사용된 나머지이다. 일 예에서, BAF는 1이하이다. 이해될 수 있는 바와 같이, 그러한 예는 제한하는 것으로 의도되지 않는다. 대략적으로, 상기 버스트 흡수 인자는 버스트 흡수의 다른 레벨들을 가능하게 하는 공유된 메모리 버퍼의 비사용된 나머지에 관해 조절될 수 있는 적응적 포트 제한을 결정하도록 사용될 수 있다.
적응적 포트 제한(PL=BAF*R)이 또한 적응적 큐 제한들을 할 수 있도록 사용될 수 있는 것이 본 발명의 특징이다. 일 실시예에서, 포트의 적응적 큐 제한들은 특정 포트를 위한 결정된 적응적 포트 제한에 기반하여 결정된다. 보다 구체적으로, 포트 M상에서의 큐들에 대한 큐 제한들은 QLii*PLM으로서 정의될 수 있으며, α는 각 큐에 대해 특정될 수 있는 변수(<1)이다. 일 실시예에서, 부분 변수(fractional variable) α는 또한 큐들의 그룹에 대해 특정될 수 있다. 또한 다른 실시예에서, 부분 변수 α는 개별 가상 머신에 대해 특정될 수 있다. 이러한 실시예에서, 가상 머신 제한(virtual machine limit; VML)은 가상 머신 N에서의 큐들을 위한 큐 제한이 QLii*VMLN인 것로서 정의될 수 있으며, β는 각 큐에 대해 특정될 수 있는 변수(<1)이다. 다시 이러한 실시예에서, 상기 부분 변수 β는 또한 그 특정 가상 머신상에서의 큐들의 그룹에 대해 특정될 수 있다.
설명되는 바와 같이, 또한 하나의 포트에 대한 큐들의 각각을 위해 가용한 버퍼에 공정한 접속을 제공하는 반면 적응적 버스트 흡수를 갖는 포트 분리가 달성될 수 있다. 이러한 방법으로, 정적인 포트 제한들이 제거되지 않기 때문에 하나의 포트 상에서의 증가된 큐들의 수에 적응될 수 있는 적응형 동적 문턱값이 효과적으로 감소되지 않을 것이다.
적응적 큐당 동적 문턱값 제한들로 포트 분리를 가능하게 하기 위한 메커니즘을 설명한 후, 이제 본 발명의 과정의 개요를 나타내는 도 3에서 참조가 이루어진다. 도시된 바와 같이, 상기 과정은 버스트 흡수 인자가 출력 포트에 할당되는 단계(302)에서 시작한다. 상기 버스트 흡수 인자는 포트 제한을 결정하기 위해 사용되며, 상기 버스트 흡수 인자는 원하는 포트 분리의 유형에 따라 출력 포트들의 전체를 가로질러 정적 또는 동적일 수 있다.
다음으로, 단계(304)에서, 상기 스위치에서의 공유된 메모리 버퍼의 비사용된 부분이 식별된다. 위에서 설명한 바와 같이, 상기 공유된 메모리 버퍼의 비사용된 부분의 이러한 식별은 상기 포트 제한들의 결정에 적응형 동적 메커니즘을 제공한다. 이것은 포트상에서의 큐들의 수가 실질적으로 증가할 때, 적응적 큐 제한들의 영향을 두드러지게 하기 위해 알려진 전형적인 정적 포트 제한들에 대조가 된다.
단계(306)에서, 특정 포트를 위한 포트 제한은 상기 할당된 버스트 흡수 인자 및 상기 공유된 메모리 버퍼의 비사용된 나머지를 사용하여 결정된다. 여기서, 적응적 포트 제한의 결정은 PL=BAF*R의 예시적인 계산을 사용하여 수행될 수 있다. 일단 적응적 포트 제한이 설정되면, 그런 다음 상기 출력 포트에서의 큐들을 위한 적응적 큐 제한들이 상기 적응적 포트 제한을 사용하여 결정될 수 있다.
상기에서 언급한 바와 같이, 다양한 메커니즘이 적응적 큐 제한들을 결정하기 위해 사용될 수 있다. 다양한 실시예들에서, 상기 적응적 큐 제한들은 개별-할당 변수들, 그룹-할당 변수, 가상 머신 특정 변수들 등에 기반하여 결정될 수 있다.
여기서, 적응적 큐 제한들이 적응적으로 동적이도록 자체적으로 설계된 포트 제한으로부터 유도된다는 것은 중요하다. 그러한 유도의 결과는 정적 포트 제한들에 의해 제한되지 않는 적응적 큐 제한들이다.
본 발명의 또 다른 실시예는 기계 및/또는 컴퓨터에 의해 실행될 수 있는 적어도 하나의 코드 섹션을 갖는 기계 코드 및/또는 컴퓨터 프로그램을 그 위에 저장하는 기계 및/또는 컴퓨터 판독 가능한 스토리지를 제공할 수 있으며, 그에 의해 상기 기계 및/또는 컴퓨터가 여기에 설명되는 바와 같은 단계들을 수행하도록 야기할 수 있다.
본 발명의 이러한 및 다른 측면들은 이전의 상세한 설명의 검토에 의해 당업자에게 명백해질 것이다. 비록 본 발명의 많은 두드러진 특징들이 위에 개시되었지만, 본 발명의 다른 실시예들이 상기 개시된 발명을 읽은 후 당업자에게 명백해질 다양한 방법들에서 실행되고 수행될 수 있으며, 그러므로 상기 설명은 이러한 다른 실시예들을 배제하도록 고려되지 않아야 한다. 또한, 여기에 구현된 어법 및 용어는 설명의 목적을 위해서이며, 제한으로서 간주되지 않아야 함이 이해되어진다.

Claims (9)

  1. 공유된 메모리 버퍼;
    복수의 포트들로서, 상기 복수의 포트들 중 제1 포트는 복수의 가상 머신들을 갖는 네트워크 장치와 연결되고, 상기 복수의 가상 머신들 각각은 복수의 트래픽 클래스들과 관련된 복수의 큐(queue)들을 갖는, 상기 복수의 포트들; 및
    상기 복수의 가상 머신들 각각에 대해 제한을 결정하는 제어 모듈로서, 상기 복수의 가상 머신들 중 제1 가상 머신에 대한 가상 머신 제한(virtual machine limit)이 상기 제1 포트를 위한 포트 제한의 일 부분(fraction)으로서 결정되며, 상기 제1 포트를 위한 상기 포트 제한은 상기 공유된 메모리 버퍼의 비사용된 나머지를 상기 제1 포트에 할당된 버스트 흡수 인자(burst absorption factor)로 곱함으로써 결정되며, 상기 제어 모듈은 상기 제1 가상 머신과 관련된 복수의 큐들 각각을 위한 큐 제한들을 더 결정하고, 상기 제1 가상 머신과 관련된 상기 복수의 큐들 각각을 위한 상기 큐 제한들은 상기 제1 가상 머신을 위한 상기 가상 머신 제한의 일 부분을 나타내는, 상기 제어 모듈을 포함하는, 동적인 큐 문턱값 제한들을 가능하게 하는 스위치.
  2. 청구항 1에 있어서, 상기 제1 가상 머신에서의 상기 복수의 큐들은 상기 포트 제한의 할당된 퍼센티지를 공유하는, 스위치.
  3. 청구항 2에 있어서, 상기 제1 가상 머신에서의 상기 복수의 큐들의 각각은 상기 가상 머신 제한의 상기 할당된 퍼센티지의 일 부분이 할당되는, 스위치.
  4. 청구항 1에 있어서, 상기 버스트 흡수 인자는 1보다 더 작은, 스위치.
  5. 스위치상의 포트에 버스트 흡수 인자를 할당하는 단계로서, 상기 포트는 네트워크 통신 케이블을 통해 네트워크 장치에 연결되는, 상기 할당하는 단계;
    상기 스위치에서 공유된 메모리 버퍼의 비사용된 부분의 양을 확인하는(identify) 단계;
    상기 포트에 할당된 상기 버스트 흡수 인자를 상기 공유된 메모리 버퍼의 상기 비사용된 부분의 상기 확인된 양에 의해 곱함으로써 상기 포트에 대한 포트 제한을 결정하는 단계;
    상기 네트워크 장치상에서 가상 머신을 위한 가상 머신 제한을 결정하는 단계로서, 상기 가상 머신 제한은 상기 결정된 포트 제한의 일 부분을 나타내는, 상기 결정하는 단계; 및
    상기 네트워크 장치상에서 상기 가상 머신과 관련된 복수의 큐들의 각각에 대해 큐 제한을 결정하는 단계로서, 상기 할당된 큐 제한들의 각각은 상기 결정된 가상 머신 제한의 부분들인, 상기 결정하는 단계를 포함하는, 동적 큐 문턱값 제한 방법.
  6. 청구항 5에 있어서, 상기 할당하는 단계는 1보다 작은 버스트 흡수 인자를 할당하는 단계를 포함하는, 방법.
  7. 공유된 메모리 버퍼;
    복수의 포트들로서, 상기 복수의 포트들 중 제1 포트는 복수의 가상 머신들을 갖는 네트워크 장치와 연결되고, 상기 복수의 가상 머신들 각각은 복수의 트래픽 클래스들과 관련된 복수의 큐(queue)들을 갖는, 상기 복수의 포트들; 및
    상기 복수의 가상 머신들에서 상기 복수의 큐들 각각에 대해 큐 제한을 결정하는 제어 모듈로서, 상기 큐 제한들은 상기 제1 포트를 위한 포트 제한의 부분들(practional parts)로서 결정되며, 상기 포트 제한은 상기 공유된 메모리 버퍼의 비사용된 나머지를 상기 제1 포트에 할당된 버스트 흡수 인자(burst absorption factor)로 곱함으로써 결정되며, 상기 버스트 흡수 인자는 1보다 더 작은, 상기 제어 모듈을 포함하는, 동적 큐 문턱값 제한들을 가능하게 하는 시스템.
  8. 청구항 7에 있어서, 상기 제1 포트상에서의 상기 복수의 가상 머신들 각각은 상기 포트 제한의 각각 할당된 퍼센티지를 갖는, 시스템.
  9. 청구항 7에 있어서, 가상 머신과 관련된 큐들의 세트는 상기 가상 머신을 위한 결정된 제한의 할당된 퍼센티지를 공유하는, 시스템.
KR1020120105012A 2011-12-20 2012-09-21 계층적 적응형 동적 출력 포트 및 큐 버퍼 관리를 위한 시스템 및 방법 KR101413001B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201161577702P 2011-12-20 2011-12-20
US61/577,702 2011-12-20
US13/523,994 US8665725B2 (en) 2011-12-20 2012-06-15 System and method for hierarchical adaptive dynamic egress port and queue buffer management
US13/523,994 2012-06-15

Publications (2)

Publication Number Publication Date
KR20130085918A true KR20130085918A (ko) 2013-07-30
KR101413001B1 KR101413001B1 (ko) 2014-06-27

Family

ID=46799952

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120105012A KR101413001B1 (ko) 2011-12-20 2012-09-21 계층적 적응형 동적 출력 포트 및 큐 버퍼 관리를 위한 시스템 및 방법

Country Status (6)

Country Link
US (1) US8665725B2 (ko)
EP (1) EP2608467B1 (ko)
KR (1) KR101413001B1 (ko)
CN (1) CN103179049B (ko)
HK (1) HK1183990A1 (ko)
TW (1) TWI550411B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016105414A1 (en) * 2014-12-24 2016-06-30 Intel Corporation Apparatus and method for buffering data in a switch
WO2018057165A1 (en) * 2016-09-23 2018-03-29 Intel Corporation Technologies for dynamically transitioning network traffic host buffer queues

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PL2586137T3 (pl) 2010-06-23 2017-09-29 Telefonaktiebolaget Lm Ericsson (Publ) Zarządzanie interferencjami sygnałów referencyjnych w sieciach heterogenicznych
US20140105218A1 (en) * 2012-10-12 2014-04-17 Prashant H. Anand Queue monitoring to filter the trend for enhanced buffer management and dynamic queue threshold in 4g ip network/equipment for better traffic performance
US9788210B2 (en) * 2013-06-11 2017-10-10 Sonus Networks, Inc. Methods and systems for adaptive buffer allocations in systems with adaptive resource allocation
US20150055456A1 (en) * 2013-08-26 2015-02-26 Vmware, Inc. Traffic and load aware dynamic queue management
US9912787B2 (en) 2014-08-12 2018-03-06 Red Hat Israel, Ltd. Zero-copy multiplexing using copy-on-write
US9367343B2 (en) 2014-08-29 2016-06-14 Red Hat Israel, Ltd. Dynamic batch management of shared buffers for virtual machines
WO2016183155A1 (en) * 2015-05-13 2016-11-17 Cisco Technology, Inc. Dynamic protection of shared memory used by output queues in a network device
US9961022B1 (en) * 2015-12-28 2018-05-01 Amazon Technologies, Inc. Burst absorption for processing network packets
CN109660468B (zh) * 2017-10-12 2022-08-16 深圳市中兴微电子技术有限公司 一种端口拥塞管理方法、装置和设备
CN109729018B (zh) * 2017-10-30 2022-12-13 北京华为数字技术有限公司 基于流量整形的突发尺寸确定方法及相关设备
US11403137B2 (en) * 2018-10-10 2022-08-02 Intel Corporation Method and apparatus for secure data center bridging in a multi-tenant system
CN113507423A (zh) * 2021-04-25 2021-10-15 清华大学 流量感知的交换机共享缓存调度方法及装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6034945A (en) 1996-05-15 2000-03-07 Cisco Technology, Inc. Method and apparatus for per traffic flow buffer management
KR0169904B1 (ko) * 1996-08-17 1999-02-01 양승택 고속 비동기식 전송모드 스위치
CA2273291A1 (en) 1999-05-27 2000-11-27 Newbridge Networks Corporation Buffering system employing per traffic flow accounting congestion control
US6657955B1 (en) * 1999-05-27 2003-12-02 Alcatel Canada Inc. Buffering system employing per traffic flow accounting congestion control
US7007071B1 (en) * 2000-07-24 2006-02-28 Mosaid Technologies, Inc. Method and apparatus for reducing pool starvation in a shared memory switch
US20050147095A1 (en) * 2003-12-30 2005-07-07 Intel Corporation IP multicast packet burst absorption and multithreaded replication architecture
US7948880B2 (en) 2004-10-29 2011-05-24 Broadcom Corporation Adaptive dynamic thresholding mechanism for link level flow control scheme
KR100645537B1 (ko) 2005-02-07 2006-11-14 삼성전자주식회사 안정적인 패킷 포워딩을 위한 동적인 큐 관리방법 및 이를위한 네트워크 프로세서의 구성요소
US8392565B2 (en) 2006-07-20 2013-03-05 Oracle America, Inc. Network memory pools for packet destinations and virtual machines
US8149710B2 (en) 2007-07-05 2012-04-03 Cisco Technology, Inc. Flexible and hierarchical dynamic buffer allocation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016105414A1 (en) * 2014-12-24 2016-06-30 Intel Corporation Apparatus and method for buffering data in a switch
WO2018057165A1 (en) * 2016-09-23 2018-03-29 Intel Corporation Technologies for dynamically transitioning network traffic host buffer queues

Also Published As

Publication number Publication date
CN103179049A (zh) 2013-06-26
CN103179049B (zh) 2016-08-24
KR101413001B1 (ko) 2014-06-27
TW201329741A (zh) 2013-07-16
HK1183990A1 (zh) 2014-01-10
TWI550411B (zh) 2016-09-21
EP2608467B1 (en) 2014-06-11
US20130155859A1 (en) 2013-06-20
EP2608467A1 (en) 2013-06-26
US8665725B2 (en) 2014-03-04

Similar Documents

Publication Publication Date Title
KR101413001B1 (ko) 계층적 적응형 동적 출력 포트 및 큐 버퍼 관리를 위한 시스템 및 방법
US11677851B2 (en) Accelerated network packet processing
US8855116B2 (en) Virtual local area network state processing in a layer 2 ethernet switch
US9042383B2 (en) Universal network interface controller
US8446822B2 (en) Pinning and protection on link aggregation groups
EP2880828B1 (en) System and method for virtual ethernet interface binding
US9548920B2 (en) System and method for efficient use of flow table space in a network environment
US6922408B2 (en) Packet communication buffering with dynamic flow control
US8929253B2 (en) Virtual switching ports on high-bandwidth links
US8284654B2 (en) Bandwidth admission control on link aggregation groups
EP2928134A2 (en) High-performance, scalable and drop-free data center switch fabric
EP2928136A2 (en) Host network accelerator for data center overlay network
EP2928135A2 (en) PCIe-based host network accelerators (HNAS) for data center overlay network
US20100150164A1 (en) Flow-based queuing of network traffic
EP2928132A2 (en) Flow-control within a high-performance, scalable and drop-free data center switch fabric
US20070268825A1 (en) Fine-grain fairness in a hierarchical switched system
US20230028837A1 (en) Scaling for split-networking datapath
US20230028922A1 (en) Edge node with datapath split between pods
CN112272933B (zh) 队列控制方法、装置及存储介质
KR102091152B1 (ko) 계층적 네트워크에서 다중코어를 이용한 패킷 처리 방법 및 그 장치
CN115550292A (zh) 一种队列缓存控制方法及装置

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
LAPS Lapse due to unpaid annual fee