KR101039695B1 - Method for network bandwidth resource allocation and computing device using the same - Google Patents

Method for network bandwidth resource allocation and computing device using the same Download PDF

Info

Publication number
KR101039695B1
KR101039695B1 KR1020090032373A KR20090032373A KR101039695B1 KR 101039695 B1 KR101039695 B1 KR 101039695B1 KR 1020090032373 A KR1020090032373 A KR 1020090032373A KR 20090032373 A KR20090032373 A KR 20090032373A KR 101039695 B1 KR101039695 B1 KR 101039695B1
Authority
KR
South Korea
Prior art keywords
bucket
tokens
token
buckets
bandwidth
Prior art date
Application number
KR1020090032373A
Other languages
Korean (ko)
Other versions
KR20100113851A (en
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 한국전자통신연구원
Priority to KR1020090032373A priority Critical patent/KR101039695B1/en
Publication of KR20100113851A publication Critical patent/KR20100113851A/en
Application granted granted Critical
Publication of KR101039695B1 publication Critical patent/KR101039695B1/en

Links

Images

Classifications

    • 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/215Flow control; Congestion control using token-bucket
    • 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
    • H04L47/527Quantum based scheduling, e.g. credit or deficit based scheduling or token bank
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/58Changing or combining different scheduling modes, e.g. multimode scheduling
    • 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

Landscapes

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

Abstract

본 발명에서는 네트워크 대역폭의 최소 대역폭과 최대 대역폭을 지원하기 위해서 토큰을 제공하는 시점에서의 버킷의 토큰 상태에 근거하여, 해당 버킷에 대한 토큰 공급 방식이 결정된다. 이러한 토큰 공급 방식을 적용하면, 사용 가능한 대역폭을 활용하지 못하는 대역폭 낭비를 방지하고, 복잡한 계산을 하지 않고도 효과적으로 네트워크 대역폭을 사용자의 요구에 따라 다양하게 나누어 줄 수 있다.In the present invention, the token supply method for the bucket is determined based on the token status of the bucket at the time of providing the token to support the minimum bandwidth and the maximum bandwidth of the network bandwidth. By applying this token supply method, it is possible to prevent bandwidth waste that does not utilize the available bandwidth and effectively divide network bandwidth according to user's needs without complicated calculations.

Description

네트워크 자원 공유 방법 및 이를 이용한 컴퓨팅 장치{METHOD FOR NETWORK BANDWIDTH RESOURCE ALLOCATION AND COMPUTING DEVICE USING THE SAME}METHOOD FOR NETWORK BANDWIDTH RESOURCE ALLOCATION AND COMPUTING DEVICE USING THE SAME}

본 발명은 네트워크 대역폭 자원을 사용자의 의도에 따라 서비스 혹은 가상화 네트워크 어댑터에 대해서 다양하게 할당할 수 있는 방법을 제공해 네트워크 대역폭 자원의 낭비 없이 각 서비스에 대해 효율적으로 분배하는 것이 목적이다. 이를 통해서 네트워크 서비스 품질을 보장할 수 있다.An object of the present invention is to provide a method for variously allocating network bandwidth resources to a service or a virtualized network adapter according to a user's intention, and to efficiently distribute the network bandwidth resources to each service without wasting network bandwidth resources. This ensures network quality of service.

본 발명은 지식경제부 및 정보통신연구진흥원 IT성장동력핵심기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다. [과제관리번호: 2008-F-026-01, 과제명: 공개 SW 플랫폼 고도화를 위한 리눅스 커널 기술개발]The present invention is derived from research conducted as part of the IT growth engine core technology development project of the Ministry of Knowledge Economy and the Ministry of Information and Communication Research. [Task Management Number: 2008-F-026-01, Title: Development of Linux Kernel Technology for Upgrading Open SW Platform]

일반적으로 네트워크 관리기술 분야는 크게 네트워크 트래픽이 중첩되는 경우의 성능 저하를 방지하기 위한 트래픽 제어 기술분야와, 관리자의 의도에 따라서 네트워크 대역폭을 각 서비스에 할당해 주는 자원 할당 기술 분야로 나눌 수 있다.In general, the network management technology field can be divided into a traffic control technology field for preventing performance degradation in the case of overlapping network traffic and a resource allocation technology for allocating network bandwidth to each service according to an administrator's intention.

트래픽 제어 기술은 광범위한 통신 분야에서 일반적으로 사용되는 기술이다. 이러한 트래픽 제어 기술이 유선 네트워크 환경 분야에서 사용되는 경우, 게이트웨이나 라우터 분야에서 사용되고 있다. 게이트웨이나 라우터는 다수의 물리적 네트워크가 연결된 곳을 제어하는 장비로서, 트래픽 제어 기술에 따라서 네트워크의 성능이 좌우될 수 있다.Traffic control technology is a commonly used technology in a wide range of communication fields. When the traffic control technology is used in the wired network environment field, it is used in the gateway or router field. Gateways and routers are devices that control where multiple physical networks are connected. The performance of a network can depend on traffic control technology.

네트워크 자원 할당 기술 분야에서는 토큰을 이용한 토큰 버킷 기법이 널리 사용되고 있다.In the field of network resource allocation technology, a token bucket technique using tokens is widely used.

토큰 버킷 기법은 네트워크 대역폭을 제한하려는 주체에 대해서 토큰 버킷을 할당하고, 각 토큰 버킷에 일정량의 토큰을 공급한다. 여기서, 토큰(token)은 특정 노드가 채널을 전용하는 일종의 자격증에 해당한다.The token bucket technique allocates token buckets to subjects who want to limit network bandwidth and supplies a certain amount of tokens to each token bucket. Here, the token corresponds to a kind of certificate in which a specific node is dedicated to the channel.

토큰 버킷 기법에서 처리되는 패킷은 토큰 버킷에 채워진 토큰만큼의 입력 데이터만을 처리하기 위하여 불규칙적으로 들어오는 처리 요청을 단위 시간당 일정한 비율로 처리함으로써, 네트워크 처리 속도가 일정하게 유지될 수 있다.Packets processed in the token bucket technique can maintain a constant network processing speed by processing irregularly incoming processing requests at a constant rate per unit time to process only input data of tokens filled in the token bucket.

도 1은 토큰 버킷 기법을 설명하기 위한 개념도이다. 1 is a conceptual diagram illustrating a token bucket technique.

도 1에서는 토큰 버킷 기법의 이해를 돕기 위하여 토큰 버킷은 그릇 형상으로 도시되고, 토큰은 물방울 형상으로 도시된다. In FIG. 1, the token bucket is shown in a bowl shape and the token is shown in a drop shape to help understand the token bucket technique.

도 1을 참조하면, 토큰 버킷(101)은 토큰(102)을 충전한다. 통상적으로 트래픽의 특성을 규정하는 모델로서 '토큰 버킷'이란 개념이 사용된다. 이 토큰 버킷(101)에는 두 가지 주요한 파라미터로서, '토큰 발생률'과 '토큰 버킷의 크기'가 있다. 토큰 발생률은 비교적 긴 시간 동안의 평균 데이터 전송률을 규정한다. 토큰 버킷(101)의 크기는 짧은 시간 동안 토큰 발생률을 초과할 수 있는 데이터의 전송 률을 규정한다. 토큰 버킷(101)의 크기를 초과하는 토큰(102)은 토큰 버킷(101)에 담기지 않고 버려진다.Referring to FIG. 1, the token bucket 101 charges the token 102. Typically, the concept of a 'token bucket' is used as a model for defining the characteristics of traffic. The token bucket 101 has two main parameters, 'token occurrence rate' and 'token bucket size'. The token generation rate defines the average data transfer rate over a relatively long time. The size of the token bucket 101 defines the transfer rate of data that may exceed the token generation rate for a short time. Tokens 102 exceeding the size of the token bucket 101 are discarded without being contained in the token bucket 101.

토큰(102)은 사용자가 지정한 양(단위 시간당)만큼 상기 토큰 버킷(101)에 채워진다.Token 102 is filled in the token bucket 101 by a user specified amount (per unit time).

버퍼(103)는 트래픽 클래스별 입력 데이터(또는 입력 패킷)를 상기 트래픽 클래스별로 각각 버퍼링하고, 기설정된 토큰 발생률로 발생하는 토큰(102)에 따라 비교기(104)에 입력하게 된다. 버퍼(104)에서 버퍼링 된 입력 패킷의 처리 여부는 비교기(104)에서 결정된다. The buffer 103 buffers the input data (or input packet) for each traffic class for each traffic class and inputs them to the comparator 104 according to the token 102 generated at a predetermined token generation rate. The comparator 104 determines whether the input packet buffered in the buffer 104 is processed.

비교기(104)는 버퍼(103)에 의해 버퍼링 된 입력 데이터의 양과 토큰(102)의 양을 비교하고, 입력 데이터의 양보다 토큰 버킷(101)에 존재하는 토큰(102)의 양이 충분한 경우, 상기 버퍼(103)에 의해 버퍼링 된 입력 데이터를 처리한다. 버퍼(104)에서 입력 데이터를 처리하면, 토큰 버킷(101)에서는 버퍼(104)에서 처리된 입력 데이터의 양만큼의 토큰(102)이 소모된다.Comparator 104 compares the amount of input data buffered by buffer 103 with the amount of tokens 102, and if the amount of tokens 102 present in token bucket 101 is greater than the amount of input data, The input data buffered by the buffer 103 is processed. When the input data is processed in the buffer 104, the token bucket 101 consumes the token 102 by the amount of input data processed in the buffer 104.

이러한 토큰 버킷 기법은 특정 서비스가 네트워크 대역폭을 할당받고, 상기 특정 서비스가 상기 할당받은 네트워크 대역폭을 사용하지 않는 경우, 임의의 다른 서비스가 상기 특정 서비스가 사용하지 않는 네트워크 대역폭을 사용할 수 없다. 예컨대, 서비스 A와 서비스 B가 각각 대역폭 10 Mbps를 할당받은 경우, 서비스 A가 5 Mbps만 사용하는 경우에도 서비스 B는 서비스 A가 할당받은 10 Mbps 중 사용하지 않는 여유분의 5 Mbps를 사용하지 못하고, 10Mbps 만 사용하게 된다. 이와 같이, 토큰 버킷 기법에서는 네트워크 대역폭의 낭비가 초래된다.This token bucket technique is that if a particular service is allocated a network bandwidth and the particular service does not use the allocated network bandwidth, no other service can use the network bandwidth that the particular service does not use. For example, if service A and service B are each allocated 10 Mbps of bandwidth, even if service A uses only 5 Mbps, service B cannot use 5 Mbps of unused free space among the 10 Mbps allocated by service A, Only 10Mbps will be used. As such, the token bucket technique results in a waste of network bandwidth.

상술한 바와 같은 토큰 버킷 기법은 특정 서비스가 지정된 네트워크 속도를 초과하지 않도록 네트워크 자원 할당 기술 분야에서 사용되는 유용한 기법이지만, 다른 서비스가 상기 특정 서비스가 사용하지 않는 유휴 네트워크 대역폭(available network bandwidth)을 활용하는 작업 보장성(work-conserving) 모드를 지원하지 못한다.The token bucket technique as described above is a useful technique used in the field of network resource allocation technology so that a specific service does not exceed a specified network speed, but other services utilize an available network bandwidth that the specific service does not use. Does not support work-conserving mode.

또한, 상술한 바와 같은 토큰 버킷 기법은 작업 보장성 모드에서 최대로 활용할 수 있는 네트워크 대역폭의 양을 설정할 수도 없다.In addition, the token bucket technique as described above may not set the amount of network bandwidth that can be maximized in the operation guarantee mode.

따라서, 본 발명의 목적은 작업 보장성(work-conserving) 모드를 지원하고, 네트워크 대역폭 자원을 사용자 의도에 따라 다양하게 할당하는 계층적 네트워크 자원 공유 방법을 제공하는 데 있다.Accordingly, an object of the present invention is to provide a hierarchical network resource sharing method that supports a work-conserving mode and variously allocates network bandwidth resources according to user intention.

상기와 같은 목적을 달성하기 위한 본 발명의 일면에 따른 네트워크 자원 공유 방법은, 네트워크 스케줄러에서 서비스별로 상기 네트워크 대역폭의 최소 대역폭과 최대 대역폭을 지원하기 위해, 상기 토큰 버킷을 상위 버킷과 상기 상위 버킷으로부터 상기 토큰을 공급받는 다수의 하위 버킷으로 구성하는 단계와, 상기 각 하위 버킷들이 수용할 수 있는 상기 최소 대역폭에 대응하는 최소 토큰 개수와 상기 각 하위 버킷들이 수용할 수 있는 상기 최대 대역폭에 대응하는 최대 토큰 개수를 설정하는 단계, 및 상기 설정된 최소 토큰 개수 및 상기 최대 토큰 개수에 근거하여 상기 상위 버킷으로부터 상기 각 하위 버킷으로 토큰을 공급하는 단계를 포함한다. Network resource sharing method according to an aspect of the present invention for achieving the above object, in order to support the minimum bandwidth and the maximum bandwidth of the network bandwidth for each service in the network scheduler, the token bucket from the upper bucket and the upper bucket Configuring the tokens into a plurality of sub-buckets, receiving a minimum number of tokens corresponding to the minimum bandwidth that each sub-bucket can accommodate and a maximum corresponding to the maximum bandwidth that each sub-bucket can accommodate Setting a number of tokens, and supplying tokens from the upper bucket to each lower bucket based on the set minimum token number and the maximum token number.

본 발명의 다른 일면에 따른 컴퓨팅 장치는, 상위 버킷과, 최소 토큰 개수와 최대 토큰 개수가 각각 설정된 다수의 하위 버킷을 포함하고, 상기 상위 버킷과 상기 다수의 하위 버킷이 계층적으로 구성되어, 상기 최소 토큰 개수와 최대 토큰 개수에 따라 상기 상위 버킷이 상기 다수의 하위 버킷으로 토큰을 공급하는 토큰 버 킷 및 상기 하위 버킷으로 공급된 토큰에 따라 상기 최소 토큰 개수에 대응하는 최소 대역폭과 상기 최대 토큰 개수에 대응하는 최대 대역폭을 각 서비스별로 지원하는 네트워크 스케쥴러를 포함한다. According to another aspect of the present invention, a computing device includes an upper bucket, a plurality of lower buckets each having a minimum number of tokens and a maximum number of tokens set, and the upper buckets and the plurality of lower buckets are hierarchically configured. A token bucket for supplying tokens to the plurality of lower buckets according to a minimum token number and a maximum token number and a minimum bandwidth and the maximum token number corresponding to the minimum token number according to the tokens supplied to the lower buckets It includes a network scheduler that supports the maximum bandwidth corresponding to each service.

본 발명에 의하면, 네트워크 대역폭 자원이 사용자의 의도에 따라 서비스(또는 가상화 네트워크 어댑터)에 대해서 다양하게 할당된다. 그 결과, 네트워크 대역폭 자원의 낭비 없이 각 서비스에 대해 네트워크 자원을 효율적으로 분배함으로써, 네트워크 서비스 품질(Quality of Services: QoS)을 보장할 수 있다.According to the present invention, network bandwidth resources are variously allocated for a service (or a virtualized network adapter) according to a user's intention. As a result, network quality of service (QoS) can be guaranteed by efficiently distributing network resources for each service without wasting network bandwidth resources.

본 발명에서는 정적인 네트워크 대역폭을 제한하는데 일반적으로 가장 많이 사용되는 토큰 버킷 기법을 기반으로 각 서비스에 대해서 네트워크 대역폭을 정적 혹은 동적으로 설정할 수 있는 방법이 제안된다. In the present invention, a method for statically or dynamically setting a network bandwidth for each service is proposed based on a token bucket technique which is generally used to limit static network bandwidth.

구체적으로, 본 발명에서는 정적으로 지정된 네트워크 대역폭의 경우, 일정시간마다 지정된 네트워크 대역폭에 해당 토큰을 분배함으로써 해당 네트워크 대역폭을 보장한다. Specifically, in the present invention, in the case of a statically designated network bandwidth, the corresponding network bandwidth is guaranteed by distributing the corresponding token to the designated network bandwidth every predetermined time.

반면, 정적으로 지정되지 않은 네트워크 대역폭의 경우, 최소 보장 대역폭(이하, 최소 대역폭)과 최대 사용 대역폭(이하, 최대 대역폭)을 지정할 수 있으며, 이를 본 발명에서 제안하는 새로운 토큰 분배 정책을 통해 구현한다. 본 발명에서 는 네트워크 대역폭의 최소 대역폭과 최대 대역폭을 제공하기 위해, 토큰 분배 시점의 토큰 버킷에 존재하는 토큰 상태에 근거하여 해당 토큰 버킷이 최소 대역폭보다 더 많은 토큰을 필요로 할 것인지 아닌지를 판단한다.On the other hand, for a network bandwidth that is not statically specified, the minimum guaranteed bandwidth (hereinafter, referred to as the minimum bandwidth) and the maximum used bandwidth (hereinafter, referred to as the maximum bandwidth) can be designated and implemented through the new token distribution policy proposed by the present invention. . In the present invention, in order to provide the minimum bandwidth and the maximum bandwidth of the network bandwidth, it is determined whether or not the corresponding token bucket needs more tokens than the minimum bandwidth based on the status of tokens present in the token bucket at the time of token distribution. .

본 발명에서 제안하는 토큰 분배 정책에 의하면, 임의의 서비스가 사용하지 않는 유휴 네트워크 대역폭을 임의의 다른 서비스가 활용함으로써, 네트워크 대역폭의 낭비를 방지하며, 복잡한 계산 없이 효과적으로 네트워크 대역폭을 사용자의 요구에 따라서 다양하게 나누어 줄 수 있다. According to the token distribution policy proposed by the present invention, any other service utilizes an idle network bandwidth that is not used by any service, thereby preventing waste of network bandwidth and effectively adjusting network bandwidth according to a user's request without complicated calculation. You can give a variety.

한편, 본 명세서 전반에 걸쳐 기재된 '서비스'란 용어는 네트워크 대역폭을 요구하는 네트워크 스케줄러의 스케줄링 대상을 의미한다. 단일 하드웨어 위에서 여러 개의 가상 머신을 운영하는 가상화 환경에서는, '서비스'란 용어는 상기 가상 머신 상에 위치하는 '가상 네트워크 어댑터'로 일컬어질 수 있다.On the other hand, the term 'service' described throughout this specification means a scheduling target of a network scheduler that requires network bandwidth. In a virtualized environment in which several virtual machines are run on a single piece of hardware, the term 'service' may be referred to as a 'virtual network adapter' located on the virtual machine.

이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명의 바람직한 실시예에 따른 네트워크 자원 공유 방법에 적용되는 계층적 토큰 버킷 구조를 보여주는 개념도이다.2 is a conceptual diagram illustrating a hierarchical token bucket structure applied to a network resource sharing method according to an exemplary embodiment of the present invention.

도 2를 참조하면, 본 발명의 일실시예에 따른 네트워크 자원 공유방법은 계층적인 자원관리 구조와 선별적인 작업 보장성(work-conserving) 모드 지원을 위한 계층적 토큰 버킷 구조가 적용된다.2, in the network resource sharing method according to an embodiment of the present invention, a hierarchical resource management structure and a hierarchical token bucket structure for supporting a selective work-conserving mode are applied.

계층적 토큰 버킷 구조는 루트 버킷(root bucket), 브랜치 버킷(branch bucket) 및 리프 버킷(leaf bucket)을 포함한다. The hierarchical token bucket structure includes a root bucket, a branch bucket and a leaf bucket.

루트 버킷(201)은 전체 네트워크 대역폭만큼의 토큰을 일정한 주기(또는 일정 시간 간격)로 공급받고, 공급받은 토큰을 자신(201)의 하부에 위치한 하위 버킷에 분배하는 역할을 한다. 루트 버킷(201)의 하위 버킷은 브랜치 버킷(202)과 리프 버킷(203)을 포함한다.The root bucket 201 receives tokens corresponding to the total network bandwidth at regular intervals (or at regular time intervals), and distributes the supplied tokens to lower buckets located below them. The lower bucket of the root bucket 201 includes a branch bucket 202 and a leaf bucket 203.

브랜치 버킷(202)은 실제 서비스가 연결되어 있지 않고, 통로 역할을 하는 버킷이다. 즉, 브랜치 버킷(202)은 실제로 데이터를 처리하는데 토큰을 사용하지 않고, 단지 자신(202)의 하부에 위치한 하위 버킷에 토큰을 나누어 주는 역할만을 한다.The branch bucket 202 is a bucket that does not have an actual service connected to it and serves as an aisle. That is, the branch bucket 202 does not actually use the token to process the data, but merely distributes the token to a lower bucket located under the 202 itself.

리프 버킷(leaf bucket)은 실제로 서비스가 연결되어, 루트 버킷(201)으로부터 제공된 자신의 토큰을 데이터를 처리하는데 사용하는 버킷으로서, 자신의 토큰을 나누어줄 수 있는 하위 버킷을 갖지 않는다. 따라서, 도 2에서는 3개의 리프 버킷(203, 204, 205)이 나타난다. 이하, 3개의 리프 버킷(203, 204, 205)은 각각 제1 리프 버킷(203), 제2 리프 버킷(204) 및 제3 리프 버킷(205)으로 칭한다.A leaf bucket is actually a bucket that a service is connected to and uses its token provided from the root bucket 201 to process data, and does not have a lower bucket to distribute its token. Accordingly, three leaf buckets 203, 204, and 205 are shown in FIG. 2. Hereinafter, the three leaf buckets 203, 204, and 205 are referred to as a first leaf bucket 203, a second leaf bucket 204, and a third leaf bucket 205, respectively.

이와 같이, 사용자는 자신이 구성하고자 하는 네트워크 자원 관리 정책을 도 2에 도시된 바와 같이, 계층적 네트워크 버킷 구조로 구성함으로써, 원하는 네트워크 자원을 할당할 수 있다.As such, the user may allocate a desired network resource by configuring a network resource management policy to be configured in a hierarchical network bucket structure as shown in FIG. 2.

이하, 도 2에 도시된 계층적인 토큰 버킷 구조의 동작 과정을 설명한다.Hereinafter, an operation process of the hierarchical token bucket structure shown in FIG. 2 will be described.

루트 버킷(201)에는 지정된 시간 간격으로 토큰이 공급된다. 이때 토큰은 전체 네트워크의 최대 속도(대역폭)만큼의 양이 루트 버킷(201)에 공급된다. Tokens are supplied to the root bucket 201 at designated time intervals. At this time, the token is supplied to the root bucket 201 in an amount equal to the maximum speed (bandwidth) of the entire network.

루트 버킷(201)에 공급된 토큰은 자신의 하위 버킷인 브랜치 버킷(202)과 제 1 리프 버킷(203)에 공평하게 나누어진다. 이때 공평하게 나누어진 토큰이 해당 버킷(202 또는 203)의 버킷 크기를 초과하면, 루트 버킷(201)으로부터 해당 버킷(202 또는 203)으로의 토큰 공급은 중단된다.The token supplied to the root bucket 201 is equally divided between the branch bucket 202 and the first leaf bucket 203 which are its sub-buckets. If the equally divided token exceeds the bucket size of the bucket 202 or 203, the token supply from the root bucket 201 to the bucket 202 or 203 is stopped.

만약 제1 리프 버킷(203)에만 이전에 사용하고 남은 토큰이 있다면, 브랜치 버킷(202)보다 먼저 제1 리프 버킷(203)에 공급되는 토큰이 넘치게 될 것이다. 이 경우, 제1 리프 버킷(203)에 공급되는 토큰이 넘치는 시점에서, 루트 버킷(201)은 제1 리프 버킷(203)으로의 토큰의 공급을 중단하고, 브랜치 버킷(202)에만 토큰을 공급한다.If only the first leaf bucket 203 has a token left in use before, the token supplied to the first leaf bucket 203 will overflow before the branch bucket 202. In this case, when the token supplied to the first leaf bucket 203 overflows, the root bucket 201 stops supplying the token to the first leaf bucket 203 and supplies the token only to the branch bucket 202. do.

만약 브랜치 버킷(202)에서도 토큰이 넘치면, 루트 버킷(201)으로부터 공급되는 토큰은 더 이상 전달될 해당 버킷(202, 203)이 없으므로, 버려진다. If the token overflows in the branch bucket 202, the token supplied from the root bucket 201 is discarded since there are no more buckets 202 and 203 to be delivered.

이후, 제1 리프 버킷(203)에 충전된 토큰은 데이터를 처리하는데 사용되고, 브랜치 버킷(202)에 충전된 토큰은 자신(202)의 하위 버킷인 제2 리프 버킷(204)과 제3 리프 버킷(205)에 공급된다. 이 경우에도 브랜치 버킷(202)은 토큰이 넘칠 때까지 자신(202)의 하위 버킷들로 공평하게 토큰을 나누어 준다. Thereafter, the tokens charged in the first leaf bucket 203 are used to process the data, and the tokens charged in the branch bucket 202 are the second leaf bucket 204 and the third leaf bucket which are sub-buckets of the own 202. 205 is supplied. In this case, the branch bucket 202 distributes the tokens evenly among the lower buckets of the self 202 until the token overflows.

이렇게 공급된 토큰을 사용하여, 제1 및 제2 리프 버킷(204, 205) 각각은 도 1을 참조하여 설명한 토큰 버킷 기법에 근거하여 데이터를 목적지(target)로 전송하게 된다.Using the token supplied in this way, each of the first and second leaf buckets 204 and 205 transmits data to a target based on the token bucket technique described with reference to FIG. 1.

한편, 버킷의 크기는 지원하려는 최대 대역폭에 따라 결정된다. 즉 어떤 서비스가 최소 5 Mbps, 최대 10 Mbps의 대역폭을 지원하고자 한다면, 버킷의 크기는 10 Mbps에 해당하는 크기가 될 것이다. 여기서, 버킷의 크기가 10 Mbit라고 언급하 지 않는 것은 버킷의 크기는 버킷이 충전되는 단위 시간에 따라서 결정되기 때문이다. 예컨대, 버킷이 재충전되는 단위 시간이 0.5초이면 위에서 예를 든 버킷은 5Mbit의 크기를 가지게 되며, 단위 시간이 0.1 초라면 1Mbit의 크기를 가지게 된다. Meanwhile, the size of the bucket is determined by the maximum bandwidth to be supported. In other words, if a service wants to support a bandwidth of at least 5 Mbps and a maximum of 10 Mbps, then the bucket size will be 10 Mbps. It is not mentioned here that the size of the bucket is 10 Mbit because the size of the bucket depends on the unit time the bucket is charged. For example, if the unit time for refilling the bucket is 0.5 seconds, the bucket in the above example has a size of 5 Mbit, and if the unit time is 0.1 second, the bucket has a size of 1 Mbit.

이와 같은 원리로 서비스가 작업 보장성(work-conserving) 모드를 지원하는 경우, 버킷의 크기는 무한대의 크기를 가진다고 볼 수 있다. 물론 충전이 되는 토큰은 최상위의 루트 버킷의 크기를 넘지는 못할 것이다. In this way, if the service supports work-conserving mode, the bucket size can be regarded as infinite size. Of course, the charging token will not exceed the size of the root bucket at the top.

일반적인 버킷 경우, 버킷의 크기가 무한하면, 데이터를 전송하는데 토큰을 사용하지 않을 경우, 토큰이 무한히 쌓일 수 있다. 그러나 본 발명에서 제안하는 기법은 이러한 현상이 발생하지 않으므로, 버킷 크기가 무한히 커짐으로써 발생하는 문제점은 없다.In a typical bucket, if the size of the bucket is infinite, the tokens may be infinitely accumulated if the token is not used to transmit data. However, the technique proposed in the present invention does not occur such a phenomenon, there is no problem caused by the infinitely large bucket size.

토큰의 공급은 최상위의 루트 버킷(201)부터 순차적으로 이루어진다. 본 발명의 토큰 공급 방식은 모든 계층에 동일하게 적용할 수 있으므로, 하나의 상위 버킷에서 다수의 하위 버킷으로 토큰을 공급하는 방법만을 이해하면 나머지 모든 계층의 토큰 공급 방식을 이해할 수 있다.Token supply is sequentially performed from the root bucket 201 at the top. Since the token supply method of the present invention can be equally applied to all layers, only a method of supplying tokens from one upper bucket to a plurality of lower buckets can understand the token supply method of all the other layers.

상술한 바와 같이, 상위 버킷은 하위 버킷의 크기와 하위 버킷에 잔존하는 토큰의 양에 따라 토큰을 해당 하위 버킷에 공급한다. As described above, the upper bucket supplies the token to the lower bucket according to the size of the lower bucket and the amount of tokens remaining in the lower bucket.

상위 버킷이 해당 하위 버킷에 남아 있는 토큰의 양(또는 토큰의 수(number))에 따라 토큰을 공급하는 경우는 해당 버킷에 잔존하는 토큰이 없는 경우와 해당 버킷에 잔존하는 토큰이 있는 경우로 나뉜다. When a parent bucket supplies tokens according to the amount of tokens remaining in the child bucket (or the number of tokens), there are two cases in which there are no tokens remaining in the bucket and there are tokens remaining in the bucket. .

먼저, 해당 버킷에 잔존하는 토큰이 없는 경우, 해당 버킷에 트래픽이 넘친다고 판단하고, 향후 여유분의 토큰이 있는 경우에 이를 나누어 줄 것이다. 이때 해당 버킷의 크기에 제한이 있다면, 여유분의 토큰을 나누어 줄 때 이 버킷의 크기에 한정될 것이다. 즉 해당 버킷의 크기가 해당 서비스에 보장하는 최소 대역폭의 크기와 같다면, 상기 해당 버킷은 여유분의 토큰이 있는 경우에도 이를 공급받지 못하게 되며, 결과적으로 최소 대역폭만을 보장받게 된다. 즉 이 서비스는 작업 보장성(work-conserving) 모드를 지원하지 않는 것을 의미한다. First, if there is no token remaining in the bucket, it will be determined that the bucket is overflowing, and if there is a spare token in the future, it will be divided. If there is a limit on the size of the bucket, it will be limited to the size of this bucket when giving extra tokens. That is, if the size of the bucket is equal to the minimum bandwidth guaranteed for the service, the bucket is not supplied even if there is a spare token, and as a result, only the minimum bandwidth is guaranteed. This means that this service does not support work-conserving mode.

반면, 버킷의 크기가 최소 대역폭보다 크거나 크기에 제한이 없는 경우가 있을 것이다. 이때 버킷의 크기가 무한대가 아닌 크기에 제한이 있는 경우에는 이 크기가 해당 서비스가 받을 수 있는 최대 대역폭을 의미할 것이며, 해당 서비스는 최대 대역폭 크기만큼의 토큰만을 받을 수 있다. 물론 버킷의 크기가 제한이 없는 경우에는 여유분의 토큰을 모두 받을 수 있다.On the other hand, there may be cases where the size of the bucket is larger than the minimum bandwidth or there is no limit on the size. In this case, if the size of the bucket is limited to not infinite, this size will mean the maximum bandwidth that the service can receive, and the service can only receive tokens with the maximum bandwidth size. Of course, if the size of the bucket is not limited, you can receive all of the extra tokens.

해당 버킷에 잔존하는 토큰이 있는 경우는 크게 두 가지 경우로 나눌 수 있다.There are two main cases of remaining tokens in the bucket.

먼저, 해당 버킷에 잔존하는 토큰이 최소 대역폭보다 많거나 같은 경우이다. 이 경우, 최소로 보장해야 하는 대역폭 이상으로 토큰이 남아 있는 경우 해당 서비스의 트래픽이 많이 발생하지 않아 현재 남아있는 토큰의 양에 해당하는 대역폭으로 충분하다고 판단하고 토큰을 추가로 공급하지 않고 건너뛰게 된다. 이렇게 건너뛴 버킷은 버킷에 여유 공간이 남아 있더라도 여유분의 토큰에 대한 공급 대상에서 제외된다. First, the token remaining in the bucket is equal to or greater than the minimum bandwidth. In this case, if the token remains above the minimum guaranteed bandwidth, the traffic of the service does not generate much, so the bandwidth corresponding to the amount of token remaining is sufficient and the token is skipped without additional supply. . These skipped buckets are excluded from the supply of spare tokens even if there is free space in the bucket.

다음은 해당 버킷에 잔존하는 토큰이 최소 대역폭만큼의 토큰보다 부족한 경우이다. 이 경우, 해당 서비스의 트래픽은 있으나 최소 대역폭만으로 충분하다고 판단하여 최소 대역폭을 채우는 만큼만 토큰이 충전된다.The following is a case where the remaining tokens in the bucket are shorter than the tokens with the minimum bandwidth. In this case, it is determined that there is traffic of the corresponding service but the minimum bandwidth is sufficient, and only the token is charged as much as the minimum bandwidth is filled.

상위 버킷은 우선 위에서 설명한 방식대로 자신의 토큰을 각 하위 버킷에게 순서대로 나누어 준다. 그러면 어떤 버킷에는 토큰이 충전되고, 또 어떤 버킷에는 토큰이 충전되지 않을 것이다. 이렇게 한 번의 충전 과정이 이루어지면 남는 토큰이 있거나 없을 것이다. The parent bucket first distributes its tokens to each child bucket in the order described above. Then some buckets will be charged with tokens, and some buckets will not be charged with tokens. After this one-time charging process, there will be no tokens left.

남는 토큰이 없다면, 해당 레벨에서의 토큰 공급은 종료되고, 토큰을 공급받은 하위 버킷은 자신들의 하위에 있는 토큰 버킷에 다시 동일한 방식으로 토큰을 공급하게 된다. If there are no remaining tokens, the token supply at that level is terminated, and the child buckets that receive the tokens supply tokens in the same way back to their own token buckets.

남은 토큰이 있다면, 상위 버킷은 여유 토큰을 받을 수 있는 조건이 되는 토큰 버킷에 한해 공평하게 나누어 준다. 이 경우에도 크기에 제한이 있는 버킷에 토큰이 가득 차게 되면 해당 버킷은 더 이상 토큰을 받지 못하고, 나머지 버킷에 대해서만 토큰을 공급하게 된다. 이러한 과정이 맨 상위의 루트 버킷(201)부터 하위 버킷으로 순서대로 수행되면, 최종적으로 브랜치 버킷(202)에는 토큰이 잔존하지 않고, 오직 리프 버킷에만 토큰이 쌓이게 될 것이다.If there are remaining tokens, the parent bucket will be equally divided among the token buckets, which are the conditions for receiving free tokens. In this case, if a token is filled with a limited size bucket, the bucket no longer receives the token, and the token is supplied only to the remaining buckets. If this process is performed in order from the root bucket 201 at the top to the lower bucket, tokens will not be left in the branch bucket 202, and tokens will be accumulated only in the leaf bucket.

위의 과정들을 거치게 된 결과로 모든 리프 버킷 중 하나라도 작업 보장성(work-conserving) 모드를 지원하면 리프 버킷(203, 204, 205)에 쌓인 토큰은 루트 버킷(201)이 공급받는 최대 대역폭의 토큰 보다 많은 경우가 발생할 가능성이 크다. 왜냐하면, 매번 공급되는 토큰은 전체 대역폭 만큼이고, 각 리프 버킷에는 남아 있는 토큰도 있을 것이므로 모든 리프 버킷(203, 204, 205)의 크기의 합이 루트 버킷(201)이 공급받는 토큰의 양과 동일하지 않다면 모든 버킷에 있는 전체 토큰의 합은 매 일정시간 루트 버킷에 공급되는 토큰의 양보다 많을 것이다. 이렇게 되면 각 서비스에 지정된 대역폭에 대해서 오차가 발생할 수 있다. As a result of the above steps, if any of the leaf buckets support work-conserving mode, the tokens accumulated in the leaf buckets 203, 204, and 205 are the maximum bandwidth tokens supplied by the root bucket 201. More cases are likely to occur. Because the token supplied every time is the total bandwidth, and each leaf bucket will have a remaining token, so the sum of the sizes of all the leaf buckets 203, 204, and 205 is not equal to the amount of tokens supplied by the root bucket 201. Otherwise, the sum of all tokens in all buckets will be greater than the amount of tokens supplied to the root bucket every time. This can cause errors for the bandwidth specified for each service.

하지만, 사용가능한 대역폭이 실제 남아 있음에도 잘못된 예측으로 토큰이 부족해 대역폭을 사용하지 못하는 경우를 방지할 수 있고, 매 충전시마다 이전에 공급받은 토큰을 모두 사용하지 않은 버킷에 대해서는 최소 대역폭 이상의 토큰을 공급하지 않기 때문에 버킷의 크기가 무한하더라도 버킷에 쌓일 수 있는 토큰의 양이 제한적이므로 버킷에 축적된 토큰의 양이 과다함으로 인해서 일시적으로 대역폭이 폭주하는 현상이 발생할 가능성은 없다. 따라서 전체 대역폭을 제어하는데 있어서, 정확성을 높일 수 있는 장점이 있다.However, even if there is still available bandwidth, it is possible to prevent a case where the token is not used due to a misprediction due to a misprediction, and a token that does not use all of the previously supplied tokens on every charge will not be given more than the minimum bandwidth. Therefore, even if the size of the bucket is infinite, the amount of tokens that can be stored in the bucket is limited, so there is no possibility of temporary bandwidth congestion due to the excessive amount of tokens accumulated in the bucket. Therefore, in controlling the overall bandwidth, there is an advantage that can increase the accuracy.

도 3 내지 6은 본 발명의 일실시예에 따른 상위 버킷으로부터 다수의 하위 버킷으로 공급되는 토큰 공급 방식을 설명하기 위한 도면들로서, 도 3은 본 발명의 일실시예에 따른 각 하위 버킷들이 상위 버킷으로부터 토큰을 공급받기 위하여 가상으로 설정된 설정환경을 보여주는 도면이고, 도 4 내지 6은 도 3에 도시된 설정 환경에 따라 본 발명에서 제안하는 토큰 분배 과정의 실시예들을 보여주기 위한 도면들이다.3 to 6 are diagrams for explaining a token supply method supplied to a plurality of lower buckets from an upper bucket according to an embodiment of the present invention, Figure 3 is a lower bucket of each of the lower buckets according to an embodiment of the present invention 4 is a diagram illustrating a setting environment virtually set to receive tokens from the drawings, and FIGS. 4 to 6 are views illustrating embodiments of the token distribution process proposed by the present invention according to the setting environment illustrated in FIG. 3.

본 발명의 일실시예에 따른 토큰 공급 방식을 설명하기 위하여 각 하위 버킷들은 도 3에 도시된 바와 같이, 설정된 것으로 가정하여 설명하기로 한다.In order to explain the token supply method according to an embodiment of the present invention, each lower bucket will be described on the assumption that it is set as shown in FIG. 3.

도 3을 참조하면, 먼저 상위 버킷(301)은 매 일정 시간 단위로 50개의 토큰 을 공급받는 것으로 설정된다. Referring to FIG. 3, first, the upper bucket 301 is set to receive 50 tokens every predetermined time unit.

상위 버킷(301)의 하위에는 3개의 하위 버킷들(302, 303, 304)이 존재하는 것으로 가정하고, 3개의 하위 버킷들(302, 303, 304)은 버킷A(302), 버킷B(303), 버킷C(304)로 각각 지칭한다.Assume that there are three lower buckets 302, 303, 304 below the upper bucket 301, and the three lower buckets 302, 303, 304 are bucket A 302, bucket B 303. And bucket C 304.

버킷A(302)는 최소 20개(min20), 최대 30개(max30)의 토큰을 상위 버킷으로부터 공급받을 수 있는 것으로 설정된다. 버킷B(303)는 최소 15개(min15)의 토큰을 상위 버킷(301)으로부터 공급받을 수 있으며, 버킷B(303)가 상위 버킷(310)으로부터 공급받을 수 있는 토큰의 최대 개수는 제한이 없는 것으로 설정된다. 버킷C(304)는 상위 버킷으로부터 공급받을 수 있는 토큰의 최대 개수와 토큰의 최소 개수가 각각 15개씩 동일한 개수로 설정되고, 이 경우, 버킷C(304)는 여분의 토큰이 남더라도 여분의 토큰을 공급받지 않겠다는 것을 의미한다. Bucket A 302 is set to be able to receive a minimum of 20 (min20), a maximum of 30 (max30) tokens from the upper bucket. Bucket B 303 can receive at least 15 tokens (min15) from the parent bucket 301, the maximum number of tokens that bucket B 303 can be supplied from the parent bucket 310 is unlimited. Is set to. Bucket C 304 is set to the same number of the maximum number of tokens that can be supplied from the upper bucket and the minimum number of tokens, each 15 pieces, in this case, bucket C 304 is an extra token even if the remaining tokens remain It means no supply.

이하, 도 4 내지 도 6을 참조하여, 도 3에 도시된 각 하위 버킷에 설정된 설정환경에 따라 본 발명에서 제안하는 토큰 공급 방식이 기술된다.Hereinafter, referring to FIGS. 4 to 6, a token supply scheme proposed by the present invention will be described according to a setting environment set in each lower bucket shown in FIG. 3.

도 4는 도 3에 도시된 하위 버킷들의 설정환경에서, 모든 하위 버킷들(302, 303, 304)이 이전에 충전된 토큰을 모두 사용하여, 현재 잔존하는 토큰이 없는 경우(S401)에서의 토큰 공급 방식을 설명하기 위한 도면이다.FIG. 4 is a token in the case where there are no remaining tokens in the setting environment of the lower buckets shown in FIG. 3, when all of the lower buckets 302, 303, and 304 use all previously charged tokens. It is a figure for demonstrating a supply system.

도 4에 도시된 바와 같이, 모든 하위 버킷들(302, 303, 304)에 잔존하는 토큰이 없는 경우, 각 하위 버킷들(302, 303, 304)은 각자 설정된 토큰의 최소 개수에 따라 상위 버킷(301)으로부터 토큰을 공급받는다(S402). 이후 상위 버킷에 잔존하는 토큰이 없기 때문에 한 사이클의 토큰 배분이 종료된다.As shown in FIG. 4, when there are no tokens remaining in all the lower buckets 302, 303, and 304, each of the lower buckets 302, 303, and 304 has a higher bucket ( The token is supplied from 301 (S402). Since there is no remaining token in the parent bucket, the token distribution in one cycle ends.

도 5는 도 3에 도시된 하위 버킷들의 설정환경에서, 버킷 C에만 10개의 토큰이 잔존해 있는 경우에서의 토큰 공급 방식을 설명하기 위한 도면이다. FIG. 5 is a diagram for describing a token supply method in a case where 10 tokens remain only in bucket C in a setting environment of lower buckets illustrated in FIG. 3.

도 5를 참조하면, 버킷C(304)에만 10개의 토큰이 잔존해 있는 경우(S501), 버킷A(302) 상태와 버킷B(303)의 상태는 모두 토큰이 부족한 상태이다. Referring to FIG. 5, when 10 tokens remain only in the bucket C 304 (S501), the state of the bucket A 302 and the bucket B 303 are both short of tokens.

이후, 상위 버킷(301)은 각 하위 버킷에 미리 설정된 토큰의 최소 개수에 따라 각 하위 버킷에 토큰을 배분한다(S502). 즉, 버킷A(302)에는 20개의 토큰이 배분되고, 버킷B(303)에는 15개의 토큰이 배분된다. 이때, 버킷C(304)에는 10개의 토큰이 잔존해 있는 상태이므로, 5개의 토큰만이 배분된다. 따라서, 상위 버킷(301)에는 10개의 토큰이 잔존한다(S502). Thereafter, the upper bucket 301 distributes the token to each lower bucket according to the minimum number of tokens preset in each lower bucket (S502). That is, 20 tokens are distributed to bucket A 302 and 15 tokens are distributed to bucket B 303. At this time, since 10 tokens remain in the bucket C 304, only 5 tokens are distributed. Therefore, 10 tokens remain in the upper bucket 301 (S502).

이후, 상위 버킷(301)에는 10개의 토큰이 잔존해 있으므로(S502), 상위 버킷(301)에 잔존해 있는 10개의 토큰은 버킷 A(302)와 버킷 B(302)에 5개씩 나누어 준다(S503). 따라서, 버킷 A(302)는 25개의 토큰을, 버킷 B(303)는 20개의 토큰을, 버킷 C(304)는 15개의 토큰을 갖게 된다. After that, since 10 tokens remain in the upper bucket 301 (S502), the 10 tokens remaining in the upper bucket 301 are divided into five bucket A (302) and bucket B (302) (S503). ). Thus, bucket A 302 will have 25 tokens, bucket B 303 will have 20 tokens, and bucket C 304 will have 15 tokens.

각 버킷들(302, 303, 304)이 최종적으로 가지고 있는 토큰의 수를 모두 합하면, 60개이다. 이 60개의 토큰은 상위 버킷(301)이 공급받은 50개보다 많다. 이에 따른 장단점은 앞서 언급하였다.The total number of tokens that each bucket 302, 303, 304 finally has is 60. These 60 tokens are more than 50 supplied by the parent bucket 301. The advantages and disadvantages of this are mentioned above.

이와 같이, 도 5는 두 개 이상의 버킷이 여분의 토큰을 공급받는 경우를 보여준다.As such, FIG. 5 shows a case where two or more buckets are supplied with an extra token.

도 6은 도 3에 도시된 하위 버킷들의 설정환경에서, 버킷A와 버킷C에는 잔존하는 토큰이 없고, 버킷B에만 20개의 토큰이 잔존해 있는 경우에서의 토큰 공급 방 식을 설명하기 위한 도면이다. FIG. 6 is a diagram illustrating a token supply method in a case where there are no tokens remaining in bucket A and bucket C and only 20 tokens remain in bucket B in the setting environment of the lower buckets shown in FIG. .

도 6을 참조하면, 버킷A(302)와 버킷C(304)는 토큰이 부족하므로(S601), 버킷A(302) 및 버킷C(304)는 각자 미리 설정된 토큰의 최소 개수에 따라 상위 버킷(301)으로부터 토큰을 우선적으로 공급받는다(S602). 이때 버킷B(303)에는 미리 설정된 토큰의 최소 개수인 15개보다 큰 20개의 토큰이 잔존해 있으므로, 토큰의 공급 대상에서 제외되고, 버킷A(302)와 버킷C(304)에게만 토큰이 공급된다. 이와 같이, 첫 번째 토큰 공급 과정(S602)이 끝나면, 상위 버킷(301)에는 15개의 토큰이 잔존한다. Referring to FIG. 6, since bucket A 302 and bucket C 304 lack tokens (S601), bucket A 302 and bucket C 304 each have an upper bucket ( The token is preferentially supplied from 301 (S602). At this time, since there are 20 tokens larger than 15, which is the minimum number of tokens, the bucket B 303 is excluded from the supply of tokens and the tokens are supplied only to the bucket A 302 and the bucket C 304. . As such, when the first token supply process S602 is completed, 15 tokens remain in the upper bucket 301.

버킷B(303)에는 이전 과정에서 처리되고 남은 20개의 토큰이 잔존해 있으므로, 즉, 최초 토큰의 수가 '0'이 아니므로, 추가적인 토큰 공급 대상에서 제외된다. In the bucket B 303, since 20 remaining tokens processed in the previous process remain, that is, the number of initial tokens is not '0', it is excluded from the additional token supply target.

상기 첫 번째 토큰 공급 과정(S602)에서, 상위 버킷(301)이 해당 버킷(302, 304)에 토큰을 공급하고, 남은 나머지 토큰은 버킷A(302)와 버킷C(304)에 나누어 줄 수 있다(S603). 이때 버킷C(304)의 크기가 토큰을 15개까지만 토큰을 수용하도록 설정되어 있으므로, 나머지 토큰은 모두 버킷A(302)에게 전달된다. 하지만, 이 경우에도 버킷A(302)의 크기가 최대 30개의 토큰을 수용하도록 설정되어 있으므로, 버킷A(302)는 상위 버킷(301)에 잔존하는 15개의 토큰을 모두 공급받지 못하고 10개만을 공급받는다. 따라서, 버킷A(302)는 기 설정된 최대치인 30개의 토큰만을 보유하게 된다. In the first token supply process (S602), the upper bucket 301 supplies tokens to the buckets 302 and 304, and the remaining tokens may be divided into bucket A 302 and bucket C 304. (S603). At this time, since the size of the bucket C 304 is set to accommodate only 15 tokens, all remaining tokens are delivered to the bucket A 302. However, even in this case, since the size of the bucket A 302 is set to accommodate up to 30 tokens, the bucket A 302 does not receive all 15 tokens remaining in the upper bucket 301 and only supplies 10 tokens. Receive. Accordingly, bucket A 302 will only hold 30 tokens, which is a preset maximum.

이후, 도 6에서는 버킷A, 버킷B 및 버킷C에 하부에 토큰을 공급받을 수 있는 또 다른 하위 버킷이 없으므로, 상위 버킷(301)은 남은 5개의 토큰을 버리게 된다.Thereafter, in FIG. 6, the bucket A, bucket B, and bucket C do not have another lower bucket capable of receiving tokens at the bottom, and the upper bucket 301 discards the remaining five tokens.

이상의 도 4, 도 5 및 도 6의 실시예를 설명한 과정을 통해 본 발명의 토큰 공급 방식을 쉽게 이해할 수 있을 것이다.It will be easy to understand the token supply method of the present invention through the process described in the embodiments of Figures 4, 5 and 6 above.

본 발명은 지금까지 설명한 토큰 공급 방식을 기반으로 한 네트워크 스케줄링 기법을 이용해 각 서비스들에게 최소 대역폭 및 최대 대역폭을 지정하고, 이를 지원할 수 있다.The present invention can assign and support a minimum bandwidth and a maximum bandwidth to each service by using a network scheduling scheme based on the token supply scheme described so far.

본 발명의 네트워크 자원 공유 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 이에 대한 구체적인 설명은 생략하기로 한다. The network resource sharing method of the present invention may be implemented as a program and stored in a recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.) in a computer-readable form. This process can be easily carried out by those of ordinary skill in the art to which the detailed description thereof will be omitted.

본 발명은 일반적인 컴퓨팅 환경이나 네트워크 환경에서 네트워크 서비스의 서비스 품질(QoS)을 보장하기 위한 단일 네트워크 연결이나 다수 네트워크 연결로 이루어진 서비스의 네트워크 대역폭 자원 관리에 적용될 수 있다.The present invention can be applied to network bandwidth resource management of a service consisting of a single network connection or multiple network connections to guarantee the quality of service (QoS) of network services in a general computing environment or a network environment.

또한, 본 발명은 가상화 환경에서는 다수의 가상화 서버에 위치한 가상 네트워크 어댑터의 네트워크 대역폭 자원 관리에 적용될 수 있으며, 네트워크 트래픽을 제어하는 라우터, 게이트웨이, 스위치 등에도 그 적용이 가능하다.In addition, the present invention can be applied to network bandwidth resource management of a virtual network adapter located in a plurality of virtualization servers in a virtualization environment, and can be applied to routers, gateways, switches, and the like that control network traffic.

본 발명은 도면에 도시된 실시예들을 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기 술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.Although the present invention has been described with reference to the embodiments illustrated in the drawings, this is merely exemplary, and it will be understood by those skilled in the art that various modifications and equivalent other embodiments are possible. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

도 1은 토큰 버킷 기법을 설명하기 위한 개념도이다.1 is a conceptual diagram illustrating a token bucket technique.

도 2는 본 발명의 바람직한 실시예에 따른 네트워크 자원 공유 방법에 적용되는 계층적 토큰 버킷 구조를 보여주는 개념도이다.2 is a conceptual diagram illustrating a hierarchical token bucket structure applied to a network resource sharing method according to an exemplary embodiment of the present invention.

도 3은 본 발명의 일 실시예에 따라 상위 버킷으로부터 토큰을 공급받기 위하여 각 하위 버킷에 가상으로 설정된 설정환경을 보여주는 도면이다.3 is a diagram illustrating a setting environment virtually set in each lower bucket to receive a token from an upper bucket according to an embodiment of the present invention.

도 4 내지 도 6은 도 3에 도시된 설정 환경에 따라 본 발명에서 제안하는 토큰 분배 과정의 실시예들을 보여주기 위한 도면들이다.4 to 6 are diagrams for showing embodiments of the token distribution process proposed by the present invention according to the setting environment shown in FIG.

Claims (10)

네트워크 스케줄러에서 각각의 해당 서비스 별로 최소 대역폭과 최대 대역폭을 지원하기 위해, 상위 버킷과 상기 상위 버킷으로부터 토큰을 공급받는 다수의 하위 버킷을 포함하는 계층적 토큰 버킷을 구성하는 단계;Configuring a hierarchical token bucket including a higher bucket and a plurality of lower buckets receiving tokens from the upper bucket to support a minimum bandwidth and a maximum bandwidth for each corresponding service in a network scheduler; 상기 각 하위 버킷들이 수용할 수 있는 최소 대역폭의 최소 토큰 개수와 상기 최대 대역폭의 최대 토큰 개수를 설정하는 단계; 및Setting the minimum number of tokens of the minimum bandwidth and the maximum number of tokens of the maximum bandwidth that each of the lower buckets can accommodate; And 상기 설정된 최소 토큰 개수 및 상기 최대 토큰 개수에 따라 상기 상위 버킷으로부터 해당 하위 버킷으로 토큰을 공급하는 단계를 포함하고,Supplying tokens from the upper bucket to the lower bucket according to the set minimum token number and the maximum token number, 상기 토큰을 공급하는 단계에서,In the step of supplying the token, 토큰을 공급하는 기준은 토큰 공급 시점에서 해당 하위 버킷에 남아 있는 토큰 양과 해당 하위 버킷의 크기에 따라 결정되는 것을 특징으로 하는 네트워크 자원 공유 방법.The criteria for supplying tokens are determined according to the amount of tokens remaining in the sub-bucket at the time of token supply and the size of the sub-bucket. 삭제delete 제1항에 있어서, 상기 토큰을 공급하는 단계에서,The method of claim 1, wherein in the step of supplying the token, 토큰을 공급하는 시점에서, 상기 해당 하위 버킷에 남아 있는 토큰이 없는 경우, 상기 해당 하위 버킷으로 상기 최소 토큰 개수 이상의 토큰을 공급하고,At the time of supplying the tokens, if there are no tokens remaining in the corresponding sub-buckets, the tokens more than the minimum number of tokens are supplied to the corresponding sub-buckets, 상기 네트워크 스케쥴러는 상기 해당 하위 버킷에 대응하는 해당 서비스가 상기 최소 대역폭 이상의 토큰을 요구하는 것으로 판단하는 것을 특징으로 하는 네트워크 자원 공유 방법.And the network scheduler determines that a corresponding service corresponding to the corresponding lower bucket requires a token equal to or greater than the minimum bandwidth. 제1항에 있어서, 상기 토큰을 공급하는 단계에서,The method of claim 1, wherein in the step of supplying the token, 상기 토큰을 공급하는 시점에서, 상기 해당 하위 버킷에 남아있는 토큰이 있는 경우, 상기 네트워크 스케줄러에서, 상기 해당 하위 버킷에 대응하는 서비스가 상기 최소 대역폭 이상의 토큰 개수를 요구하지 않는 것으로 판단하는 것을 특징으로 하는 네트워크 자원 공유 방법.At the time of supplying the token, when there is a token remaining in the lower bucket, the network scheduler determines that the service corresponding to the lower bucket does not require the number of tokens equal to or greater than the minimum bandwidth. How to share network resources. 제1항에 있어서, 상기 해당 하위 버킷으로 토큰을 공급하는 단계는,The method of claim 1, wherein the supplying a token to the corresponding lower bucket comprises: 상기 해당 하위 버킷에 설정된 최소 토큰 개수와 최대 토큰 개수가 동일한 경우, 상기 해당 하위 버킷에는 오직 최소 토큰 개수만큼의 토큰이 공급되는 것을 특징으로 하는 네트워크 자원 공유 방법.And when the minimum number of tokens and the maximum number of tokens set in the corresponding lower bucket are the same, only the minimum number of tokens is supplied to the corresponding lower bucket. 제1항에 있어서, 상기 각 하위 버킷들 중 해당 하위 버킷에 설정된 최대 토큰 개수가 최소 토큰 개수가 동일한 경우, 상기 네트워크 스케쥴러에서, The network scheduler of claim 1, wherein when the maximum number of tokens set in the lower bucket among the lower buckets is the same as the minimum token number, the network scheduler includes: 상기 해당 하위 버킷에 대응하는 상기 서비스는 유휴 네트워크 대역폭(available network bandwidth)을 요구하지 않는 것으로 판단하는 단계를 포함하는 것을 특징으로 하는 네트워크 자원 공유 방법.And determining that the service corresponding to the corresponding lower bucket does not require an available network bandwidth. 제1항에 있어서, 상기 최대 대역폭에 대응하는 최대 토큰 개수를 설정하는 단계는,The method of claim 1, wherein the setting of the maximum number of tokens corresponding to the maximum bandwidth comprises: 상기 해당 서비스가 지원하는 최대 대역폭에 제한이 없는 경우, 상기 해당 서비스에 대응하는 해당 하위 버킷의 최대 토큰 개수는 무한대로 설정하는 단계인 것을 특징으로 하는 네트워크 자원 공유 방법.If the maximum bandwidth supported by the service is not limited, the network resource sharing method, characterized in that the maximum number of tokens of the lower bucket corresponding to the service is set to infinite. 제7항에 있어서, 상기 토큰을 공급하는 단계에서는, The method of claim 7, wherein in the step of supplying the token, 상기 최대 토큰의 개수가 무한대로 설정된 상기 해당 하위 버킷이 공급받는 토큰의 개수는 상기 상위 버킷이 공급받는 토큰의 개수를 넘을 수 없는 것을 특징으로 하는 네트워크 자원 공유 방법.And the number of tokens supplied by the corresponding lower bucket having the maximum number of tokens set to infinity may not exceed the number of tokens supplied by the upper bucket. 제1항에 있어서, 상기 토큰을 공급하는 단계는,The method of claim 1, wherein supplying the token comprises: 상기 상위 버킷은 상기 각 하위 버킷에 설정된 최소 토큰 개수의 토큰을 상기 각 하위 버킷으로 우선적으로 공급하는 단계;The upper bucket preferentially supplying each of the lower buckets a token having a minimum number of tokens set in the lower buckets; 상기 최소 토큰 개수의 토큰을 상기 각 하위 버킷에 우선적으로 공급한 이후, 상기 상위 버킷에 남은 토큰이 존재하는 경우, 각 하위 버킷에 설정된 최대 토큰 개수를 초과하지 않을 때까지 상기 상위 버킷에 남은 토큰을 상기 각 하위 버킷에 재분배하는 단계; 및After supplying the minimum number of tokens to each of the lower buckets preferentially, if there are remaining tokens in the upper bucket, remaining tokens in the upper bucket are not exceeded until the maximum number of tokens set in each lower bucket is not exceeded. Redistributing to each of the lower buckets; And 상기 토큰을 상기 각 하위 버킷에 배분한 이후, 상기 상위 버킷에 남은 토큰이 여전히 존재하는 경우, 상기 남은 토큰을 상기 각 하위 버킷에 분배하지 않고, 소모시키는 단계After distributing the token to each of the lower buckets, if the remaining tokens in the upper bucket still exist, distributing the remaining tokens to each of the lower buckets instead of consuming them. 를 포함하는 것을 특징으로 하는 네트워크 자원 공유 방법.Network resource sharing method comprising a. 상위 버킷과, 최소 토큰 개수와 최대 토큰 개수가 각각 설정된 다수의 하위 버킷을 포함하고, 상기 상위 버킷과 상기 다수의 하위 버킷이 계층적으로 구성되어, 상기 최소 토큰 개수와 최대 토큰 개수에 따라 상기 상위 버킷이 상기 다수의 하위 버킷으로 토큰을 공급하는 토큰 버킷; 및An upper bucket, a plurality of lower buckets each having a minimum number of tokens and a maximum number of tokens set, and the upper buckets and the plurality of lower buckets are hierarchically configured to provide the upper buckets according to the minimum number of tokens and the maximum number of tokens. A token bucket, the bucket supplying tokens to the plurality of sub-buckets; And 상기 하위 버킷으로 공급된 토큰에 따라 상기 최소 토큰 개수에 대응하는 최소 대역폭과 상기 최대 토큰 개수에 대응하는 최대 대역폭을 각 서비스 별로 지원하는 네트워크 스케쥴러를 포함하고, A network scheduler that supports a minimum bandwidth corresponding to the minimum number of tokens and a maximum bandwidth corresponding to the maximum number of tokens for each service according to a token supplied to the lower bucket, 상기 상위 버킷이 상기 다수의 하위 버킷으로 토큰을 공급하는 기준은,The criteria for supplying the token to the plurality of lower buckets by the upper bucket is 토큰 공급 시점에서 해당 하위 버킷에 남아 있는 토큰 양과 해당 하위 버킷의 크기에 따라 결정되는 것을 특징으로 하는 컴퓨팅 장치.Computing device, characterized in that determined by the amount of tokens remaining in the sub-bucket at the time of token supply and the size of the sub-bucket.
KR1020090032373A 2009-04-14 2009-04-14 Method for network bandwidth resource allocation and computing device using the same KR101039695B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090032373A KR101039695B1 (en) 2009-04-14 2009-04-14 Method for network bandwidth resource allocation and computing device using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090032373A KR101039695B1 (en) 2009-04-14 2009-04-14 Method for network bandwidth resource allocation and computing device using the same

Publications (2)

Publication Number Publication Date
KR20100113851A KR20100113851A (en) 2010-10-22
KR101039695B1 true KR101039695B1 (en) 2011-06-08

Family

ID=43133238

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090032373A KR101039695B1 (en) 2009-04-14 2009-04-14 Method for network bandwidth resource allocation and computing device using the same

Country Status (1)

Country Link
KR (1) KR101039695B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109547356B (en) * 2018-11-26 2022-02-11 国网冀北电力有限公司唐山供电公司 Data transmission method, system and equipment for electric energy metering and computer storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050120102A1 (en) * 2003-06-27 2005-06-02 Cisco Technology, Inc. Methods and devices for flexible bandwidth allocation
KR20060032741A (en) * 2004-10-13 2006-04-18 한국전자통신연구원 A method for allocating effective bandwidth according to qos requirement of each traffic, and a system therefore
KR100726809B1 (en) 2005-12-08 2007-06-11 한국전자통신연구원 Dynamic bandwidth allocation apparatus and method
US20070153697A1 (en) * 2006-01-04 2007-07-05 Broadcom Corporation Hierarchical queue shaping

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050120102A1 (en) * 2003-06-27 2005-06-02 Cisco Technology, Inc. Methods and devices for flexible bandwidth allocation
KR20060032741A (en) * 2004-10-13 2006-04-18 한국전자통신연구원 A method for allocating effective bandwidth according to qos requirement of each traffic, and a system therefore
KR100726809B1 (en) 2005-12-08 2007-06-11 한국전자통신연구원 Dynamic bandwidth allocation apparatus and method
US20070153697A1 (en) * 2006-01-04 2007-07-05 Broadcom Corporation Hierarchical queue shaping

Also Published As

Publication number Publication date
KR20100113851A (en) 2010-10-22

Similar Documents

Publication Publication Date Title
Zhani et al. Vdc planner: Dynamic migration-aware virtual data center embedding for clouds
Son et al. Priority-aware VM allocation and network bandwidth provisioning in software-defined networking (SDN)-enabled clouds
Qiu et al. Cost-minimizing dynamic migration of content distribution services into hybrid clouds
EP2577459B1 (en) Applying policies to schedule network bandwidth among virtual machines
US8510745B2 (en) Dynamic application placement under service and memory constraints
Bhatia et al. Htv dynamic load balancing algorithm for virtual machine instances in cloud
CN105159775A (en) Load balancer based management system and management method for cloud computing data center
Nan et al. Queueing model based resource optimization for multimedia cloud
US20160094413A1 (en) Network Resource Governance in Multi-Tenant Datacenters
US20070248007A1 (en) Broadband access network capacity management
JP2003124976A (en) Method of allotting computer resources
Wang et al. Bandwidth guaranteed virtual network function placement and scaling in datacenter networks
EP2979409A1 (en) A method and system to allocate bandwidth for heterogeneous bandwidth request in cloud computing networks
Alkmim et al. Mapping virtual networks onto substrate networks
CN113064712A (en) Micro-service optimization deployment control method, system and cluster based on cloud edge environment
Saha et al. Exploring the fairness and resource distribution in an apache mesos environment
JP2004336549A (en) Method and device for band control
WO2013082742A1 (en) Resource scheduling method, device and system
KR101039695B1 (en) Method for network bandwidth resource allocation and computing device using the same
JP5575953B1 (en) Information system service providing apparatus, information system service providing method, and information system service providing program
Freund et al. Competitive on-line switching policies
Yu et al. Towards predictable performance via two-layer bandwidth allocation in cloud datacenter
Michel et al. Artificial bee colonies solution for load sharing in a cloud RAN
US20160344597A1 (en) Effectively operating and adjusting an infrastructure for supporting distributed applications
He et al. QoS-Aware and Resource-Efficient Dynamic Slicing Mechanism for Internet of Things.

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140529

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150527

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160527

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170529

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee