본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. As the invention allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the written description. However, this is not intended to limit the present invention to specific embodiments, it should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention. In describing the drawings, similar reference numerals are used for similar elements.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. Terms such as first, second, A, and B may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component. The term and / or includes a combination of a plurality of related items or any item of a plurality of related items.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is referred to as being "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that other components may be present in between. Should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that there is no other component in between.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.
이하, 본 발명에서 언급되는 컨트롤러는 통합 SDN 컨트롤러(Unified SDN controller)로, 트래픽의 흐름을 제어하기 위해 관련 구성 요소(예를 들면, 스위치, 라우터 등)를 제어하는 기능 요소(entity)를 의미할 수 있다. Hereinafter, the controller referred to in the present invention is an integrated SDN controller, which may mean a function element for controlling related components (eg, a switch, a router, etc.) to control the flow of traffic. Can be.
또한, 컨트롤러는 물리적인 구현 형태나 구현 위치 등에 의해 한정되지 않는다. 예를 들어, 컨트롤러는 ONF(OpenFlow), IETF(Internet Engineering Task Force), ETSI(European Telecommunication Standards Institute) 및/또는 ITU-T(International Telecommunication Union Telecommunication) 등에서 정의하고 있는 컨트롤러 기능 요소(entity)를 의미할 수 있다. In addition, the controller is not limited to the physical implementation form or implementation location. For example, a controller refers to a controller function entity defined by OpenFlow (ONF), Internet Engineering Task Force (IETF), European Telecommunication Standards Institute (ETSI) and / or International Telecommunication Union Telecommunication (ITU-T). can do.
본 발명에서 언급되는 네트워크 장치는 '스위치(switch)' 또는 '라우터(router)'와 같이 트래픽(또는 패킷)을 실질적으로 포워딩하거나 스위칭 또는 라우팅하는 기능 요소를 의미할 수 있다. 따라서, 본 발명에서 네트워트 장치는 스위치 또는 라우터로 명명될 수 있다. The network device referred to in the present invention may refer to a functional element that substantially forwards, switches, or routes traffic (or packets), such as 'switch' or 'router'. Therefore, in the present invention, the network device may be referred to as a switch or a router.
예를 들어, 네트워크 장치는 ONF, IETF, ETSI 및/또는 ITU-T 등에서 정의하고 있는 스위치, 라우터, 스위치 요소(Switching Element), 라우터 요소(Routing Element), 포워딩 요소(Forwarding Element) 등을 의미할 수 있다.For example, a network device may mean a switch, a router, a switching element, a routing element, a forwarding element, and the like defined in ONF, IETF, ETSI, and / or ITU-T. Can be.
본 발명의 실시예들에서는 오픈플로우 스위치에서 QoS 제어를 위한 동작 과정에서 ONF에서 정의된 파라미터 및/또는 메시지 형태(예를 들면, Flow table entry)를 이용하는 것으로 예를 들어 도시하였으나, 본 발명의 기술적 사상이 ONF에 정의된 내용으로만 한정되는 것은 아니며 컨트롤러와 스위치간 QoS 제어 명령을 전달하는 과정에서 컨트롤러와 스위치를 구분할 수 있는 다양한 파라미터를 이용할 수 있고, QoS 제어를 위한 동작 과정에서 사용되는 메시지들도 후술하는 특정 메시지에 한정되지 않는다.In the embodiments of the present invention, for example, the parameter and / or message type (for example, flow table entry) defined in the ONF is used in the operation for QoS control in the openflow switch. The mapping is not limited to the contents defined in ONF, and various parameters that can distinguish a controller from a switch can be used in transmitting a QoS control command between a controller and a switch, and messages used in an operation process for QoS control. Nor is it limited to the specific message mentioned later.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 실시예에 따라 서비스에 따른 트래픽 처리를 이용한 QoS 제어 방법을 수행하는 컨트롤러와 네트워크 장치의 구성을 설명하기 위한 블록도이다. 1 is a block diagram illustrating a configuration of a controller and a network apparatus for performing a QoS control method using traffic processing according to a service according to an embodiment of the present invention.
도 1을 참조하면, 본 발명의 실시예에 따른 서비스에 따른 트래픽 처리를 이용한 QoS 제어 방법은 컨트롤러와 스위치가 연동하여 수행할 수 있다. Referring to FIG. 1, a QoS control method using traffic processing according to a service according to an embodiment of the present invention may be performed by a controller and a switch.
먼저, 본 발명의 실시예에 따른 컨트롤러(100)는 QoS 정책 관리부(110), 스위치 제어부(120), 플로우 테이블 관리부(130) 및 스위치 연동 처리부(140)를 포함한다. First, the controller 100 according to an exemplary embodiment of the present invention includes a QoS policy management unit 110, a switch control unit 120, a flow table management unit 130, and a switch interworking processing unit 140.
QoS 정책 관리부(110)는 컨트롤러(100)가 관리하는 도메인에 대한 QoS 정책을 관리할 수 있다. The QoS policy manager 110 may manage a QoS policy for a domain managed by the controller 100.
스위치 제어부(120)는 스위치 연동 처리부(140)를 통하여 컨트롤러(100)와 통신하는 스위치(200)를 제어할 수 있다. 예를 들어, 스위치 제어부(120)는 QoS 정책 관리부(110)가 관리하는 QoS 정책에 기반하여 플로우 엔트리(Flow entry)의 추가, 수정 및 삭제 등을 위한 제어 명령을 생성할 수 있고, 제어 명령을 이용하여 스위치(200)를 제어할 수 있다. The switch controller 120 may control the switch 200 to communicate with the controller 100 through the switch interworking processor 140. For example, the switch controller 120 may generate a control command for adding, modifying, and deleting a flow entry based on the QoS policy managed by the QoS policy manager 110, and may generate a control command. The switch 200 can be controlled.
플로우 테이블 관리부(130)는 플로우 테이블(Flow table)을 동기화하기 위한 파라미터와 플로우 테이블을 저장하고 관리할 수 있다.The flow table manager 130 may store and manage a parameter and a flow table for synchronizing the flow table.
스위치 연동 처리부(140)는 스위치(200)와 컨트롤러(100)가 통신할 수 있도록 프로토콜을 처리할 수 있다. The switch interworking processor 140 may process a protocol so that the switch 200 and the controller 100 can communicate.
다음으로, 본 발명의 실시예에 따른 스위치(200)는 Qos 제어부(210), 스위치 제어부(220), 플로우 테이블 관리부(230) 및 컨트롤러 연동 처리부(240)를 포함한다. Next, the switch 200 according to the embodiment of the present invention includes a Qos controller 210, a switch controller 220, a flow table manager 230, and a controller interworking processor 240.
QoS 제어부(210)는 출력 포트로 전달된 패킷에 대해 실제로 QoS 제어를 수행할 수 있다. The QoS controller 210 may actually perform QoS control on the packet delivered to the output port.
스위치 제어부(220)는 출력 포트에 대한 큐 특성 설정 등과 같은 스위치에 대한 제어를 실행할 수 있다. 또한, 스위치 제어부(220)는 컨트롤러(100)로부터 제어 명령을 수신하여 실행할 수 있다.The switch controller 220 may control the switch such as setting a queue characteristic for the output port. In addition, the switch controller 220 may receive and execute a control command from the controller 100.
플로우 테이블 관리부(230)는 컨트롤러(100)로부터 전달받은 플로우 테이블을 관리할 수 있다. 즉, 플로우 테이블 관리부(230)는 스위치에 대한 플로우 테이블을 동기화하기 위한 파라미터와 플로우 테이블을 저장하고 관리할 수 있다.The flow table manager 230 may manage the flow table received from the controller 100. That is, the flow table manager 230 may store and manage the parameters and the flow table for synchronizing the flow table for the switch.
컨트롤러 연동 처리부(240)는 컨트롤러(100)와 스위치(200)가 통신할 수 있도록 프로토콜을 처리한다.The controller interworking processor 240 processes the protocol so that the controller 100 and the switch 200 can communicate.
도 2는 본 발명의 실시예에 따른 Priority 큐와 Weighted Round Robin 큐를 설명하기 위한 개념도이다. 2 is a conceptual diagram illustrating a priority queue and a weighted round robin queue according to an embodiment of the present invention.
도 2를 참조하면, 네트워크 장치의 출력 포트에는 적어도 하나의 큐(Queue)가 설정될 수 있다. Referring to FIG. 2, at least one queue may be set at an output port of a network device.
네트워크 장치의 출력 포트에 4개의 큐가 있는 경우를 예로 들어 보다 상세히 설명하면 다음과 같다. The case where there are four queues at the output port of the network device will be described in more detail as an example.
네트워크 장치의 출력 포트에 4개의 큐가 있는 경우에 하나의 큐는 Priority 큐로 사용하고, 나머지 3개의 큐는 Weighted Round Robin(WRR) 큐로 사용하도록 할당하는 것에 대한 예시이다. If there are four queues at the output port of the network device, one queue is used as a priority queue and the other three queues are assigned as weighted round robin (WRR) queues.
서비스 트래픽은 그 특성에 따라 우선 순위를 Gold, Silver, Bronze, Best effort(BE)로 나눌 수 있다. Service traffic can be classified into gold, silver, bronze, and best effort (BE) according to their characteristics.
Gold 트래픽은 Priority 큐에 할당되며 가장 높은 순위로 처리될 수 있다. 즉, 패킷이 Priority 큐에 있으면 다른 큐에 패킷이 있더라도 항상 먼저 처리될 수 있다. Gold traffic is assigned to the priority queue and can be processed with the highest priority. In other words, if a packet is in a Priority queue, it can always be processed first, even if there is a packet in another queue.
Silver 트래픽은 Gold 트래픽 다음의 우선 순위를 갖는다. 그러나 모든 Silver 트래픽이 다른 Bronze 또는 Best effort 트래픽 보다 항상 먼저 처리되는 것은 아니고, 할당된 가중치(weight)만큼 처리되고 다음으로 Bronze 트래픽이 처리될 수 있다. Silver traffic has priority after Gold traffic. However, not all Silver traffic will always be processed before other Bronze or Best effort traffic, but will be processed by the assigned weight and then Bronze traffic.
Bronze 트래픽도 할당된 가중치(weight)만큼 처리되고 다음으로 Best effort 트래픽이 처리될 수 있다. Bronze traffic may also be processed by the assigned weight, followed by Best effort traffic.
예를 들어, Silver 트래픽은 Gold 트래픽이 사용하고 남은 대역의 50%를 사용할 수 있고, Bronze 트래픽은 Gold 트래픽이 사용하고 남은 대역의 30%를 사용할 수 있으며, Best effort 트래픽은 Gold 트래픽이 사용하고 남은 대역의 20%를 사용하도록 설정될 수 있다. 따라서, Silver 트래픽은 Bronze 트래픽에 비해 우선 순위가 높게 처리되고, Bronze 트래픽은 Best effort 트래픽에 비해 우선 순위가 높게 처리될 수 있다. For example, Silver traffic can use 50% of the remaining bands used by Gold traffic, Bronze traffic can use 30% of the remaining bands used by Gold traffic, and Best effort traffic can use the remaining bands left by Gold traffic. It may be set to use 20% of the band. Therefore, silver traffic may be processed with a higher priority than Bronze traffic, and Bronze traffic may be processed with a higher priority than Best effort traffic.
도 3은 본 발명의 실시예에 따라 서비스 별로 큐를 매핑하여 QoS를 제어하는 방법을 설명하기 위한 순서도이다. 3 is a flowchart illustrating a method of controlling QoS by mapping a queue for each service according to an embodiment of the present invention.
도 3을 참조하면, 스위치는 CLI(Command Line Interface)나 configuration protocol을 이용하여 출력 포트 x에 대한 큐 특성(property)을 설정할 수 있다(S310). Referring to FIG. 3, the switch may set a queue property for the output port x by using a command line interface (CLI) or a configuration protocol (S310).
보다 상세하게는, 스위치는 출력 포트 x에 대해 4개의 큐를 설정하고, 그 중 하나의 큐(Q1)를 Priority 큐로, 나머지 3개의 큐(Q2, Q3, Q4)를 WRR(Weighted Round Robin) 큐로 설정할 수 있다. 다만, 스위치가 출력 포트 x에 대해 큐를 4개 설정하는 것으로 예를 들어 설명하나, 스위치에서 제공 가능한 기능이나 성능에 따라 출력 포트에 설정할 수 있는 큐의 개수는 달라질 수 있고, 그에 따라 WRR 로 설정할 수 있는 큐의 개수도 3개 이상일 수 있다. More specifically, the switch sets four queues for output port x, one queue (Q1) to Priority queue and the other three queues (Q2, Q3, Q4) to WRR (weighted round robin) queues. Can be set. For example, the switch sets four queues for output port x.However, the number of queues that can be set for an output port may vary depending on the functions or capabilities provided by the switch. The number of possible queues may also be three or more.
WRR로 설정된 3개의 큐(Q2, Q3, Q4)에 대해 가중치(weight)가 각각 w1%(Q2), w2%(Q3), w3%(Q4) 로 설정될 수 있다. Weights may be set to w1% (Q2), w2% (Q3), and w3% (Q4) for the three queues Q2, Q3, and Q4 set to WRR, respectively.
예를 들어, Q2에는 높은 가중치를 설정하고, Q3에는 중간 가중치를 설정하며, Q4에는 낮은 가중치를 설정할 수 있다.For example, high weights may be set for Q2, medium weights for Q3, and low weights for Q4.
스위치는 출력 포트 x에 대해 큐 특성을 새로 설정하거나, 기존에 설정된 큐 특성의 파라미터 값이 변경된 경우에는 이를 즉시 큐 상태 메시지를 통해서 컨트롤러에게 알려줄 수 있다(S320). The switch may newly set the queue characteristic for the output port x or, if the parameter value of the previously set queue characteristic is changed, may immediately notify the controller through the queue status message (S320).
큐 상태 메시지는 큐 상태 변경이 발생한 출력 포트 x, 큐 리스트 및 큐 리스트에 포함된 큐에 대한 큐 특성 값들과 같은 큐 특성 정보를 포함할 수 있다. 여기서, 큐 특성 값은 해당 큐가 Priority 큐인지 WRR 큐인지 여부에 대한 정보 및 WRR 큐인 경우 가중치(weight)에 대한 정보를 포함할 수 있다. The queue status message may include queue characteristic information such as output port x where the queue status change occurred, queue list, and queue characteristic values for the queue included in the queue list. Here, the queue characteristic value may include information on whether the corresponding queue is a priority queue or a WRR queue, and information on weight when the queue is a WRR queue.
컨트롤러는 스위치로부터 큐 상태 메시지를 수신하여 큐 특성 정보로부터 각각의 큐에 대한 특징을 알 수 있기 때문에 서비스 특성 별로 플루우(Flow)들을 어떤 큐에 할당할지 정해주기 위한 서비스 별 큐 매핑 테이블을 구성할 수 있다(S330). Since the controller receives the queue status message from the switch and knows the characteristics of each queue from the queue characteristic information, the controller configures a service-specific queue mapping table to determine which queues to assign flows to each service characteristic. It may be (S330).
서비스 별 어떤 큐에 할당할지는 네트워크 운용정책에 따라 서비스 별 중요도와 패킷의 지연이나 손실 등에 대한 민감도를 고려하여 QoS 정책을 수립해서 결정한다. Which queue to allocate for each service is determined by establishing QoS policy considering the importance of each service and sensitivity to delay or loss of packets according to network operation policy.
예를 들어, BcN(Broadband convergence Network) 서비스나 라우팅 프로토콜에 사용되는 매우 중요한 패킷들은 Gold 서비스로 정하여 Q1 큐에 할당하고, VoIP나 IPTV 서비스와 같이 중요한 패킷들은 Silver 서비스로 정하여 Q2 큐에 할당할 수 있다. For example, very important packets used for Broadband convergence Network (BcN) service or routing protocol can be assigned to Q1 queue as Gold service and important packets such as VoIP or IPTV service can be assigned to Q2 queue. have.
또한, VoD나 VPN 서비스와 같은 패킷들은 Bronze 서비스로 정하여 Q3 큐에 할당하고, 일반 인터넷 서비스는 Best effort 서비스로 정하여 Q4 큐에 할당할 수 있다. In addition, packets such as VoD or VPN service may be assigned to the Q3 queue by defining it as a Bronze service, and general Internet service may be assigned to the Q4 queue by setting it as a best effort service.
컨트롤러는 서비스 별 큐 매핑 테이블을 구성하고 나면, 실제 서비스 별 플로우가 해당 큐에 매핑될 수 있도록 플로우 엔트리(Flow entry)를 구성 또는 생성할 수 있다(S340). After configuring the queue mapping table for each service, the controller may configure or generate a flow entry so that the actual service-specific flow may be mapped to the corresponding queue (S340).
플로우 엔트리(Flow entry)는 플로우를 구분하기 위한 Match field와 해당 플로우 패킷에 대해 어떤 action을 수행할 지 나타내는 Action field로 나누질 수 있다. A flow entry may be divided into a match field for distinguishing flows and an action field indicating what action to perform on a corresponding flow packet.
예를 들어, 컨트롤러는 BcN이나 라우팅 프로토콜 패킷에 해당되는 Flow 1 은 Q1으로 보내고, VoIP나 실시간 IPTV 패킷에 해당되는 Flow 2는 Q2로 보내고, VoD나 VPN 패킷에 해당되는 Flow 3는 Q3로 보내며, 일반 인터넷 패킷에 해당되는 Flow 4는 Q4로 보내라는 명령을 스위치로 내려 보내기 위한 플로우 엔트리를 구성할 수 있다.For example, the controller sends Flow 1 for BcN or routing protocol packets to Q1, Flow 2 for VoIP or real-time IPTV packets to Q2, and Flow 3 for VoD or VPN packets to Q3. Flow 4, which is a normal Internet packet, can configure a flow entry to send a command to the switch to send to Q4.
컨트롤러는 플로우 엔트리를 생성한 후에, 이들을 플로우 테이블 변경 메시지에 담아서 스위치로 전송할 수 있다(S350). After the controller generates the flow entries, the controller may include them in a flow table change message and transmit them to the switch (S350).
스위치는 컨트롤러로부터 플로우 테이블 변경 메시지를 수신하여 그 안에 포함된 플로우 엔트리 리스트(Flow entry list)를 이용하여 스위치의 플로우 테이블을 업데이트시킬 수 있다(S360).The switch may receive a flow table change message from the controller and update the flow table of the switch using a flow entry list included therein (S360).
따라서, 해당 플로우에 매칭되는 패킷이 들어오면 action field 에 설정된 action 내용에 따라 해당 출력 포트의 해당 큐로 전송하여 큐 특성에 따른 QoS 제어를 수행할 수 있다. 즉, 스위치는 서비스 별로 플로우들을 서로 다른 큐에 할당(예를 들어, Priority 큐 또는 WRR 큐)하여 QoS 제어를 수행할 수 있다(S370). Therefore, when a packet matching the corresponding flow arrives, QoS control according to queue characteristics may be performed by transmitting to the corresponding queue of the corresponding output port according to the action content set in the action field. That is, the switch may perform QoS control by allocating flows to different queues for each service (for example, a priority queue or a WRR queue) (S370).
도 4는 본 발명의 실시예에 따른 큐 상태 메시지를 설명하기 위한 예시도이다. 4 is an exemplary diagram for explaining a queue status message according to an embodiment of the present invention.
도 4를 참조하여, 스위치가 컨트롤러로 전송하는 큐 상태 메시지를 예를 들어 설명하면 다음과 같다. Referring to FIG. 4, a queue status message transmitted by a switch to a controller will be described as an example.
출력 포트 x에는 4개의 큐가 할당되었으며, 그 중에 Q1은 특성(property)을 Priorty Q로 할당하고 value를 Null로 할당할 수 있다. Four queues are assigned to output port x, of which Q1 can assign a property of Priority Q and a value of Null.
Q2는 특성(property)을 WRR로 할당하고 value를 50 %로 할당할 수 있고, Q3는 특성(property)을 WRR로 할당하고 value를 30 %로 할당할 수 있으며, Q4는 특성(property)을 WRR로 할당하고 value를 20 %로 할당할 수 있다.Q2 can assign property to WRR and assign value to 50%, Q3 can assign property to WRR and assign value to 30%, and Q4 can assign property to WRR. And value to 20%.
또한, WRR 방식에서 각각의 큐에 할당되는 value는 서비스 별로 우선 순위와 트래픽 양을 예측하여 정할 수 있으며, 운용 중에도 트래픽을 주기적으로 수집하여 value를 변경할 수 있다.In addition, in the WRR method, the value allocated to each queue can be determined by predicting the priority and traffic amount for each service, and the value can be changed by periodically collecting traffic during operation.
도 5는 본 발명의 실시예에 따라 큐 상태 변경을 통하여 QoS를 제어하는 방법을 설명하기 위한 순서도이다.5 is a flowchart illustrating a method of controlling QoS by changing a queue state according to an embodiment of the present invention.
도 5를 참조하면, 컨트롤러는 큐 상태 변경 메시지를 스위치에 전송하여 QoS를 제어할 수 있다. Referring to FIG. 5, the controller may control the QoS by transmitting a queue state change message to the switch.
상세하게는, 컨트롤러가 스위치의 출력 포트 x의 큐 상태를 변경(예를 들어, Add/Modify/Delete)하기 위해서는 출력 포트 x에 설정할 수 있는 큐의 최대 개수 또는 지원 가능한 큐 특성과 같은 설정 정보를 알고 있어야 한다. Specifically, in order for the controller to change (e.g., add / modify / delete) the queue state of output switch x of the switch, it is necessary to provide configuration information such as the maximum number of queues that can be set on output port x or the supported queue characteristics. You must know.
컨트롤러는 스위치의 큐 설정 정보를 알기 위해 큐 설정 정보 요청 메시지를 스위치로 전송할 수 있다(S510). 이때 출력 포트 파라미터를 x로 설정하면, 스위치는 출력 포트 x에 대한 큐 설정 정보 메시지를 컨트롤러로 전송할 수 있다(S520). 여기서, 큐 설정 정보 메시지는 출력 포트 x에 설정할 수 있는 큐의 최대 개수 또는 지원 가능한 큐 특성과 같은 설정 정보를 포함할 수 있다. The controller may transmit a queue setting information request message to the switch in order to know the queue setting information of the switch (S510). In this case, if the output port parameter is set to x, the switch may transmit a queue setting information message for the output port x to the controller (S520). Here, the queue setting information message may include setting information such as the maximum number of queues that can be set in the output port x or the queue characteristics that can be supported.
또한, 출력 포트 파라미터를 x 대신에 'ANY'를 설정하면, 스위치가 가지고 있는 모든 출력 포트에 대한 큐 설정 정보를 보내달라는 의미일 수 있다. In addition, if the output port parameter is set to 'ANY' instead of x, it may mean that the queue setting information for all output ports of the switch is sent.
상세하게는, 스위치는 큐 설정 정보 요청 메시지를 수신하여 출력 포트 x에 대해 최대로 설정할 수 있는 큐 개수와 지원 가능한 큐 특성과 같은 설정 정보를 큐 설정 정보 메시지에 포함시켜 컨트롤러로 전송할 수 있다. In detail, the switch may receive the queue configuration information request message and include the configuration information such as the maximum number of queues that can be set for the output port x and the queue characteristics that can be supported in the queue configuration information message and transmit the same to the controller.
마찬가지로, 큐 설정 정보 요청 메시지에 출력 포트 파라미터가 'ANY'로 설정되어 있으면, 스위치는 모든 출력 포트에 대한 최대 큐 개수와 지원 가능한 큐 특성과 같은 설정 정보를 리스트 형태로 구성하여 컨트롤러로 전송할 수 있다. Similarly, if the output port parameter is set to 'ANY' in the queue configuration information request message, the switch can configure the configuration information such as the maximum queue count and the supported queue characteristics of all output ports in a list form and send them to the controller. .
스위치에 따라서는 모든 출력 포트에 대해 설정할 수 있는 최대 큐 개수와 지원 가능한 큐 특성과 같은 설정 정보가 동일할 수도 있다. 이러한 스위치의 경우에는 출력 포트 파라미터에 'ANY'를 사용하고 최대 큐 개수와 지원 가능한 큐 특성과 같은 설정 정보를 하나로 보내줄 수 있다.Depending on the switch, configuration information such as the maximum queue number that can be set for all output ports and the queue characteristics that can be supported may be identical. For these switches, you can use 'ANY' for the output port parameter and send the configuration information such as maximum queue count and supported queue characteristics to one.
컨트롤러는 큐 설정 정보 메시지를 받은 후에 QoS 정책에 따라 해당 큐들을 어떤 서비스에 매핑할지 결정할 수 있다(S530).After receiving the queue configuration information message, the controller may determine to which service to map the corresponding queues according to the QoS policy (S530).
스위치는 출력 포트 x에 대해 4개의 큐를 설정하고, 그 중 하나의 큐(Q1)를 Priority 큐로, 나머지 3개의 큐(Q2, Q3, Q4)를 WRR(Weighted Round Robin) 큐로 설정할 수 있다.The switch may set four queues for output port x, and one of the queues Q1 as a priority queue and the other three queues Q2, Q3, and Q4 as weighted round robin (WRR) queues.
예를 들어, 컨트롤러는 BcN 서비스나 라우팅 프로토콜에 사용되는 매우 중요한 패킷들은 Gold 서비스 매핑하여 Q1 큐에 할당하고, VoIP나 IPTV 서비스와 같이 중요한 패킷들은 Silver 서비스로 매핑하여 WRR 큐 중에서도 높은 가중치(weight)를 갖는 Q2 큐에 할당할 수 있다.For example, the controller maps the very important packets used for BcN service or routing protocol to Q1 queue by mapping Gold service, and important packets such as VoIP or IPTV service are mapped to Silver service, and high weight among WRR queues. Can be assigned to the Q2 queue with.
또한, VoD나 VPN 서비스와 같은 패킷들은 Bronze 서비스로 매핑하여 WRR 큐 중에서 중간 가중치를 갖는 Q3 큐에 할당하고, 일반 인터넷 서비스는 Best effort 서비스로 매핑하여 WRR 큐 중에서 낮은 가중치를 갖는 Q4 큐에 할당할 수 있다. In addition, packets such as VoD or VPN service are mapped to the Bronze service and assigned to the Q3 queue having the middle weight among the WRR queues, and general Internet services are mapped to the best effort service to the Q4 queue having the lowest weight among the WRR queues. Can be.
컨트롤러는 QoS 정책에 따른 서비스 별 큐 매핑을 수행하고 난 후, 이를 스위치에 반영하기 위하여 큐 상태 변경 메시지를 스위치로 전송할 수 있다(S540).After performing the queue mapping for each service according to the QoS policy, the controller may transmit a queue state change message to the switch to reflect this to the switch (S540).
큐 상태 변경 메시지는 출력 포트 파라미터로 출력 포트 x, 명령(command), 큐 리스트 및 각각의 큐에 대한 특성(property) 정보를 포함할 수 있다. 여기서, 명령(command)는 큐를 추가(ADD)하거나, 삭제(DELETE)하거나 변경(MODIFY) 하라는 명령을 나타낼 수 있다. 또한, 큐 특성 정보는 도 4의 도시된 테이블을 참조하여 이해할 수 있다. The queue state change message may include an output port x, a command, a queue list, and property information for each queue as an output port parameter. Here, the command may indicate a command to add, delete, or change the queue. Further, the queue characteristic information can be understood with reference to the table shown in FIG.
스위치는 컨트롤러로부터 큐 상태 변경 메시지를 수신하여 출력 포트 x에 대한 큐 특성을 설정할 수 있다(S550). The switch may set the queue characteristic for the output port x by receiving a queue state change message from the controller (S550).
예를 들어, 스위치는 출력 포트 x에 대해 하나의 큐(Q1)는 Priority Q로 나머지 3개의 큐(Q2, Q3, Q4)는 WRR(Weighted Round Robin) 큐로 설정하고, Q2, Q3, Q4의 가중치(weight)를 각각 w1%, w2%, w3%로 설정할 수 있다. For example, the switch sets one queue (Q1) to Priority Q for output port x, and the other three queues (Q2, Q3, and Q4) to weighted round robin (WRR) queues, and the weights of Q2, Q3, and Q4. (weight) can be set to w1%, w2% and w3%, respectively.
출력 포트 x에 대한 큐 특성에 대한 설정이 끝나면 스위치는 큐 상태 메시지를 컨트롤러로 전송할 수 있다(S560). 여기서, 큐 상태 메시지는 출력 포트 x, 큐 리스트 및 큐 특성 값 등을 포함할 수 있다.When the setting of the queue characteristic for the output port x is finished, the switch may transmit a queue status message to the controller (S560). Here, the queue status message may include an output port x, a queue list, a queue characteristic value, and the like.
컨트롤러는 스위치로부터 큐 상태 메시지를 수신한 후에 QoS 제어를 위한 플로우 엔트리를 생성할 수 있고(S570), 생성된 플로우 엔트리를 플로우 테이블 변경 메시지에 실어서 스위치로 전송할 수 있다(S580). The controller may generate a flow entry for QoS control after receiving the queue status message from the switch (S570), and load the generated flow entry into a flow table change message to the switch (S580).
따라서, 플로우 테이블 변경 메시지를 수신한 스위치는 플로우 테이블(Flow table)을 업데이트하고(S590), 실제 패킷에 대하여 QoS 제어를 실행할 수 있다(S593)Accordingly, the switch receiving the flow table change message may update the flow table (S590), and execute QoS control on the actual packet (S593).
도 6은 본 발명의 실시예에 따라 큐를 추가하는 절차를 설명하기 위한 순서도이다. 6 is a flowchart illustrating a procedure of adding a queue according to an embodiment of the present invention.
도 6을 참조하면, 컨트롤러는 스위치에 'ADD' 명령을 전송을 하여 해당 출력 포트에 큐를 추가할 수 있다.Referring to FIG. 6, the controller may add a queue to a corresponding output port by sending an 'ADD' command to the switch.
스위치의 출력 포트 x에 큐가 Q1 하나만 할당되어 있고, Q1의 특성(property)은 BE(Best Effort)로 할당되어 있는 경우를 예를 들어 설명한다. For example, a case where only one Q1 is assigned to the output port x of the switch and the property of Q1 is assigned to BE (Best Effort) will be described.
이러한 경우, 출력 포트 x로 들어오는 모든 패킷들은 Q1을 통하여 동일하게 처리된다.In this case, all packets coming into output port x are processed equally through Q1.
컨트롤러는 서비스 시스템의 요청이나 QoS 정책의 변경에 따라 스위치에 새로운 큐 특성을 갖는 큐를 추가할 수 있다. The controller can add a queue with new queue characteristics to the switch according to the request of the service system or the change of the QoS policy.
예를 들어, 특정한 목적지로 가는 트래픽은 최소 어느 정도의 대역폭을 보장해 주어야 한다는 요구사항이 서비스 시스템이나 QoS 정책으로부터 요청되면 기존 스위치에 설정된 Q1 하나만으로는 이러한 요구사항을 처리해 줄 수 없기 때문에 새로운 특성을 갖는 큐의 추가가 필요하다. For example, if a requirement that traffic to a specific destination must guarantee at least some bandwidth, then the Q1 set on an existing switch can't handle this requirement if it is requested from a service system or QoS policy. You need to add a queue.
도 6에 따르면, 컨트롤러는 QoS 정책에 따라 출력 포트 x에 Q2를 추가하기로 결정하고, Q2의 특성에 따른 대역폭은 min_rate=a 와 max_rate=b 로 할당할 수 있다(S610).According to FIG. 6, the controller may decide to add Q2 to the output port x according to the QoS policy, and the bandwidth according to the characteristic of Q2 may be allocated as min_rate = a and max_rate = b (S610).
즉, Q2는 트래픽에 대해 최소 대역폭 a bps(kbps, Mbps) (예를 들어, 출력 포트 x가 1Gbps 포트이면, 최소 대역폭은 a × 10Mbps)를 보장하면서, 최대 대역폭은 b bps(kbps, Mbps) (예를 들어, 출력 포트 x가 1Gbps 포트이면, 최대 대역폭은 b × 10Mbps)까지로 제한하는 것을 의미할 수 있다. That is, Q2 guarantees minimum bandwidth a bps (kbps, Mbps) for traffic (e.g., if output port x is a 1 Gbps port, the minimum bandwidth is a × 10 Mbps), while the maximum bandwidth is b bps (kbps, Mbps). For example, if the output port x is a 1 Gbps port, it may mean that the maximum bandwidth is limited to b × 10 Mbps.
컨트롤러는 큐 상태 변경 메시지를 스위치로 전송할 수 있다(S620). 여기서, 큐 상태 변경 메시지는 출력 포트 x, 새로운 큐를 ADD하라는 명령(command), 추가하는 큐의 id 및 추가하는 큐에 대한 특성(property) 정보 등과 같은 파라미터를 포함할 수 있다. 따라서, 새로운 큐를 추가(ADD)하라는 명령을 포함하는 큐 상태 변경 메시지를 이용하여 출력 포트 x에 Q2를 추가하고, Q2의 특성으로 최소 대역폭(min_rate)이 출력 포트 x의 최대 전송속도의 a% 이고, 최대 대역폭(max_rate)이 출력 포트 x의 최대 전송속도의 b% 가 되도록 설정할 수 있다. The controller may transmit a queue state change message to the switch (S620). Here, the queue state change message may include parameters such as an output port x, a command to add a new queue, an id of a queue to be added, and property information on the queue to be added. Therefore, Q2 is added to output port x using a queue state change message that includes a command to add a new queue (ADD), and the minimum bandwidth (min_rate) is a% of the maximum transmission speed of output port x by the characteristic of Q2. The maximum bandwidth (max_rate) can be set to be b% of the maximum transmission rate of the output port x.
보다 상세하게는, 스위치는 컨트롤러로부터 큐 상태 변경 메시지를 수신한 후에 출력 포트 x에 Q2를 추가로 설정할 수 있다(S630). 예를 들어, 출력 포트 x에는 두 개의 큐(Q1, Q2)가 설정될 수 있다. More specifically, the switch may further set Q2 to the output port x after receiving the queue state change message from the controller (S630). For example, two queues Q1 and Q2 may be set at the output port x.
출력 포트 x에 대한 새로운 큐(Q2) 설정이 끝나면, 스위치는 큐 상태 메시지를 컨트롤러로 전송할 수 있다(S640). 여기서, 큐 상태 메시지는 출력 포트 x, 큐 리스트(Q1, Q2) 및 큐 특성(property) 값 등을 포함할 수 있다. After setting a new queue (Q2) for the output port x, the switch can send a queue status message to the controller (S640). Here, the queue status message may include an output port x, queue lists Q1 and Q2, and queue property values.
컨트롤러는 스위치로부터 큐 상태 메시지를 수신한 후에, 이를 참조하여 QoS 제어를 위한 플로우 엔트리(Flow entry)를 생성할 수 있다(S650). After the controller receives the queue status message from the switch, the controller may generate a flow entry for QoS control with reference to this (S650).
예를 들어, 컨트롤러는 목적지(Dest. IP)인 10.1.1.0로 가는 모든 패킷들을 출력 포트 x의 Q2로 보내라는 플로우 엔트리를 생성할 수 있다. For example, the controller could create a flow entry to send all packets destined for the destination (Dest. IP) to Q2 on output port x.
컨트롤러는 새로운 플로우 엔트리를 생성한 후에, 이를 플로우 테이블 변경 메시지에 실어서 스위치로 전송할 수 있다(S660). 여기서, 플로우 테이블 변경 메시지는 새로운 플로우 엔트리와 이를 플로우 테이블에 추가(ADD)하라는 명령(command)과 같은 파라미터를 포함할 수 있다. After the controller generates a new flow entry, the controller may load the flow table change message to the switch (S660). Here, the flow table change message may include a parameter such as a new flow entry and a command to add it to the flow table.
플로우 테이블 변경 메시지를 수신한 스위치는 플로우 테이블에 새로 수신한 플로우 엔트리를 추가할 수 있다(S670). 따라서, 스위치는 스위치로 들어오는 패킷들 중 목적지(Dest. IP)인 10.1.1.0로 가는 모든 패킷들은 출력 포트 x의 Q2로 전달하여 Q2의 특성(property)에 따른 QoS 제어를 수행할 수 있다(S680).The switch receiving the flow table change message may add a newly received flow entry to the flow table (S670). Therefore, the switch may transmit all packets destined for the destination (Dest. IP) to 10.1.1.0 among the packets entering the switch to Q2 of the output port x to perform QoS control according to the properties of Q2 (S680). ).
도 7은 본 발명의 실시예에 따라 큐를 삭제하는 방법을 절차를 설명하기 위한 순서도이다. 7 is a flowchart illustrating a procedure of a method of deleting a queue according to an embodiment of the present invention.
도 7을 참조하면, 컨트롤러는 스위치에 'DELETE' 명령을 전송을 하여 해당 출력 포트에서 큐를 삭제할 수 있다.Referring to FIG. 7, the controller transmits a 'DELETE' command to a switch to delete a queue at a corresponding output port.
스위치의 출력 포트 x에 현재 Q1과 Q2 두 개의 큐가 할당되어 있으며, Q1의 특성(property)은 BE(Best Effort)로 할당되어 있고, Q2의 특성은 최소 대역폭이 출력 포트 x의 최대 전송속도의 a%(min_rate=a)로, 최대 대역폭이 출력 포트 x의 최대 전송속도의 b%(max_rate=b)로 할당되어 있는 경우를 예로 들어 설명한다. The output port x of the switch is currently assigned two queues, Q1 and Q2, and the property of Q1 is assigned to BE (Best Effort), and the property of Q2 is that the minimum bandwidth is equal to the maximum transmission speed of output port x. The case where a maximum bandwidth is allocated by a% (min_rate = a) and b% (max_rate = b) of the maximum transmission rate of the output port x will be described as an example.
컨트롤러는 서비스 시스템의 요청이나 QoS 정책의 변경에 따라 스위치에 설정되어 있는 큐를 삭제할 것을 결정할 수 있다(S710). 예를 들어, 특정한 서버로 가는 트래픽에 대해 최소 어느 정도의 대역폭을 보장해 주다가 서버가 서비스를 중지하면 더 이상 대역폭을 보장해 줄 필요가 없어지게 된다. 또한, 특정 고객 사이트로 가는 트래픽에 대해 최소 어느 정도의 대역폭을 보장해 주다가 고객이 서비스를 해지하거나 변경하면 최소 대역폭 보장이 필요없게 될 수 있다. 이런 경우에는 스위치의 출력 포트 x에 설정된 Q2를 삭제할 필요가 있다.The controller may determine to delete the queue set in the switch according to the request of the service system or the change of the QoS policy (S710). For example, you can guarantee at least some bandwidth for traffic destined for a particular server, but when the server stops service, you no longer need to guarantee bandwidth. In addition, if you guarantee a minimum amount of bandwidth for traffic to a specific customer site, and the customer terminates or changes the service, you may not need the minimum bandwidth guarantee. In this case, it is necessary to delete Q2 set at the output port x of the switch.
컨트롤러는 스위치의 출력 포트 x에서 Q2를 삭제하기로 결정하였으면 큐 상태 변경 메시지를 스위치로 전송할 수 있다(S720). 여기서, 큐 상태 변경 메시지는 출력 포트 x, 큐를 DELETE하라는 명령(command), 삭제하려는 큐 id 등과 같은 파라미터를 포함할 수 있다.If the controller determines to delete Q2 at the output port x of the switch, the controller may transmit a queue state change message to the switch (S720). Here, the queue state change message may include parameters such as an output port x, a command to DELETE the queue, and a queue id to be deleted.
스위치는 컨트롤러로부터 큐 상태 변경 메시지를 수신한 후에 출력 포트 x에서 Q2를 삭제할 수 있다(S730). 따라서 출력 포트 x에는 두 개의 큐(Q1, Q2)에서 Q2가 삭제되고 Q1 만 남을 수 있다. The switch may delete Q2 at the output port x after receiving the queue state change message from the controller (S730). Therefore, output port x can delete Q2 from the two queues Q1 and Q2 and leave only Q1.
Q2에 대한 삭제가 완료되면 스위치는 큐 상태 메시지를 컨트롤러로 전송할 수 있다(S740). 여기서, 큐 상태 메시지는 출력 포트 x, 큐 리스트(Q1), 큐 특성(property) 값 등을 포함할 수 있다.When the deletion for Q2 is completed, the switch may transmit a queue status message to the controller (S740). Here, the queue status message may include an output port x, a queue list Q1, a queue property value, and the like.
또한, 스위치는 플로우 테이블에서 출력 포트 x의 Q2와 관련된 플로우 엔트리를 삭제하고(S750), 플로우 엔트리 삭제 메시지를 컨트롤러로 전송할 수 있다(S760).In addition, the switch may delete the flow entry related to Q2 of the output port x in the flow table (S750) and transmit a flow entry delete message to the controller (S760).
컨트롤러는 스위치로부터 플로우 엔트리 삭제 메시지를 수신한 후에 해당 플로우 엔트리를 삭제할 수 있다(S770). The controller may delete the flow entry after receiving the flow entry deletion message from the switch (S770).
예를 들어, 스위치는 목적지(Dest. IP)인 10.1.1.0로 가는 모든 패킷들을 출력 포트 x의 Q2로 보내라는 플로우 엔트리를 삭제할 수 있다. 따라서, 스위치의 출력 포트 x로 들어오는 모든 패킷들은 Q1으로 전달되어 BE(Best Effort)로 처리될 수 있다(S780). For example, the switch could delete the flow entry to send all packets destined for the destination (Dest. IP) to Q2 on output port x. Therefore, all packets coming into the output port x of the switch may be delivered to Q1 and processed as BE (Best Effort) (S780).
도 8은 본 발명의 실시예에 따라 손실 패킷률에 기반하여 큐 특성을 변경하는 절차를 설명하기 위한 순서도이다. 8 is a flowchart illustrating a procedure of changing a queue characteristic based on a lost packet rate according to an embodiment of the present invention.
도 8을 참조하면, 컨트롤러는 스위치 운용 중에 QoS 정책의 변경뿐 아니라, 전체적인 트래픽 상황을 분석하여 필요에 따라 기존에 설정된 큐 특성(property) 변경할 수 있다. Referring to FIG. 8, the controller may analyze the overall traffic situation as well as change the QoS policy during operation of the switch, and change the previously set queue property as needed.
예를 들어, 출력 포트 x에 WRR 큐가 적용되었다면, 트래픽 상황에 따라 큐의 가중치(weight)를 플렉서블(flexible)하게 변경할 수 있다. For example, if the WRR queue is applied to the output port x, the weight of the queue can be changed flexibly according to traffic conditions.
보다 상세하게는, 컨트롤러는 주기적으로 큐 통계 요청 메시지를 스위치로 전송하여 큐들에 대한 트래픽 통계 데이터를 요청할 수 있다(S810). 여기서, 큐 통계 요청 메시지는 해당 출력 포트, 큐 id 등과 같은 파라미터를 포함할 수 있다.More specifically, the controller may periodically send a queue statistics request message to the switch to request traffic statistics data for the queues (S810). Here, the queue statistics request message may include parameters such as a corresponding output port and a queue id.
스위치는 큐 통계 요청 메시지에 따른 해당 큐에 대한 트래픽 통계 데이터를 포함하는 큐 통계 메시지를 컨트롤러로 전송할 수 있다(S820). 여기서, 큐 통계 메시지는 출력 포트, 큐 id, 전송 패킷수 및 손실 패킷수를 포함할 수 있다. The switch may transmit the queue statistics message including the traffic statistics data for the corresponding queue according to the queue statistics request message to the controller (S820). Here, the queue statistics message may include an output port, a queue id, a number of transmission packets, and a number of lost packets.
컨트롤러는 큐 통계 메시지를 수신하여 해당 큐에 대한 패킷 손실률을 계산할 수 있다(S830). 여기서, 패킷 손실률은 손실 패킷수/(전송 패킷수 + 손실 패킷수)로 계산될 수 있다. The controller may calculate a packet loss rate for the corresponding queue by receiving the queue statistics message (S830). Here, the packet loss rate may be calculated as lost packets / (transmitted packets + lost packets).
컨트롤러는 큐들의 패킷 손실률을 각 큐마다 미리 설정해 놓은 임계치와 비교하여 WRR 큐의 가중치들을 변경할 수 있다(S830). The controller may change the weights of the WRR queues by comparing the packet loss rate of the queues with a threshold preset for each queue (S830).
예를 들어, 만일 Silver 서비스 트래픽이 초기에 예상했던 것보다 많이 증가하여 서비스 품질이 저하되면 Silver 서비스에 할당된 Q2의 가중치를 높여 주어 더 많은 트래픽을 처리할 수 있도록 한다. For example, if silver service traffic increases more than initially anticipated and the quality of service is degraded, the weight of Q2 assigned to the silver service is increased to handle more traffic.
컨트롤러는 큐 특성이 변경되면 변경된 큐 특성에 대한 정보를 큐 상태 변경 메시지에 실어서 스위치로 전송할 수 있다(S840). 여기서, 큐 상태 변경 메시지는 출력 포트 x, 큐 특성을 변경(MODIFY)하라는 명령(command), 변경하려는 큐 id 및 큐 특성에 대한 정보 등과 같은 파라미터를 포함할 수 있다. When the queue characteristic is changed, the controller may transfer information on the changed queue characteristic to a queue state change message and transmit the information to the switch (S840). Here, the queue status change message may include parameters such as an output port x, a command to change the queue characteristics (MODIFY), information about a queue id and queue characteristics to be changed, and the like.
스위치는 큐 상태 변경 메시지에 따라 각각의 큐에 대한 가중치를 변경하고(S850), 그 결과를 큐 상태 메시지에 실어서 컨트롤러로 전송할 수 있다(S860). 예를 들어, 스위치는 WRR 큐인 Q2, Q3, Q4에 적용되었던 가중치 w1%, w2%, w3% 각각을 y1%, y2%, y3%로 변경할 수 있다. The switch may change the weight for each queue according to the queue state change message (S850), and transmit the result to the queue state message to the controller (S860). For example, the switch may change the weights w1%, w2%, and w3% applied to the WRR queues Q2, Q3, and Q4 to y1%, y2%, and y3%, respectively.
도 9는 본 발명의 실시예에 따라 중요 서버로 할당되는 트래픽을 서로 다른 큐에 매핑하는 절차를 설명하기 위한 순서도이다. 9 is a flowchart illustrating a procedure of mapping traffic allocated to a critical server to different queues according to an embodiment of the present invention.
도 9를 참조하면, 컨트롤러는 중요 서버들로 가는 트래픽들을 일반 데이터 트래픽과 차별적으로 처리하도록 큐를 매핑할 수 있다. Referring to FIG. 9, the controller may map a queue to handle traffic destined for important servers differently from general data traffic.
먼저, 스위치는 출력 포트에 큐 및 설정된 큐의 특성을 각각 설정할 수 있다(S910). 컨트롤러는 스위치로부터 큐 상태 메시지를 수신함으로써 스위치에 설정된 큐에 대한 정보를 알 수 있다(S920).First, the switch may set the characteristics of the queue and the set queue to the output port, respectively (S910). The controller can know the information on the queue set in the switch by receiving a queue status message from the switch (S920).
컨트롤러는 QoS 정책에 따라 중요 서버들로 가는 트래픽들을 일반 데이터 트래픽과 차별적으로 처리해 주기 위한 큐 매핑 테이블을 구성할 수 있다(S930).The controller may configure a queue mapping table for processing traffic to important servers differently from general data traffic according to the QoS policy (S930).
예를 들어, 컨트롤러는 SDN Controller로 가는 트래픽은 Silver 서비스로 처리해 주기 위하여 Q2에 매핑하고, SIP Call Server로 가는 트래픽은 Bronze 서비스로 처리해 주기 위하여 Q3에 매핑할 수 있다.For example, the controller can map traffic to the SDN Controller to Q2 for processing as Silver service, and traffic to SIP Call Server to Q3 for processing to Bronze service.
컨트롤러는 중요 서버들에 대한 큐 매핑 테이블을 구성한 후, 실제 플로우(Flow)가 해당 큐에 매핑될 수 있도록 플로우 엔트리를 생성할 수 있다(S940).After configuring the queue mapping table for the important servers, the controller may generate a flow entry so that the actual flow may be mapped to the corresponding queue (S940).
예를 들어, SDN Controller는 IP 주소로 10.1.1.1을 사용하고 스위치와 TCP 연결을 위한 port로 yyyy를 사용한다고 가정하고, SIP Call Server는 IP주소로 20.1.1.1을 사용하고 단말과 TCP 연결을 위한 port로 zzzz를 사용한다고 가정하여 설명한다. For example, suppose the SDN Controller uses 10.1.1.1 as the IP address and yyyy as the port for the TCP connection with the switch. The SIP Call Server uses 20.1.1.1 as the IP address and the TCP connection for the terminal. It is assumed that zzzz is used as the port.
컨트롤러가 생성한 플로우 엔트리는 플로우(Flow)를 구분하기 위한 Match field와 해당 플로우의 패킷에 대해 어떤 action을 수행할지 나타내는 Action field로 나뉘어 구성될 수 있다. The flow entry generated by the controller may be divided into a match field for distinguishing flows and an action field indicating what action to perform on packets of the flow.
예를 들어, SDN Controller로 가는 트래픽의 플로우는 목적(destination) IP와 port만 지정해 주면 되기 때문에 소스(source) IP와 port는 Any를 나타내는 '*'로 표시될 수 있고, SIP Call Server로 가는 트래픽의 플로우도 목적(destination) IP와 port만 지정해 주면 되기 때문에 소스(source) IP와 port는 '*'로 표시될 수 있다. For example, since the flow of traffic to the SDN Controller only needs to specify the destination IP and port, the source IP and port can be represented by '*' indicating Any, and the traffic to the SIP Call Server. The source IP and port may be marked with '*' because the destination IP only needs to specify the destination IP and port.
또한, Action field는 SDN Controller 로 가는 트래픽 플로우는 Q2로 보내고, SIP Call Server로 가는 트래픽 플로우는 Q3로 보내라는 Action을 포함할 수 있다. In addition, the action field may include an action to send the traffic flow to the SDN controller to Q2, and to send the traffic flow to the SIP Call Server to Q3.
컨트롤러는 플로우 엔트리를 생성한 후에, 이를 플로우 테이블 변경 메시지에 실어서 스위치로 전송할 수 있다(S950). After generating the flow entry, the controller may load the flow table change message to the switch (S950).
스위치는 컨트롤러로부터 플로우 테이블 변경 메시지를 수신하고, 플로우 테이블 변경 메시지에 포함된 플로우 엔트리를 이용하여 스위치의 플로우 테이블을 업데이트할 수 있다(S960).The switch may receive the flow table change message from the controller and update the flow table of the switch by using the flow entry included in the flow table change message (S960).
따라서, 스위치는 SDN Controller로 가는 패킷이 들어오면 출력 포트 x의 Q2로 전달하여 WRR 방식의 Silver 트래픽으로 처리하고, SIP Call Server로 가는 패킷이 들어오면 출력 포트 x의 Q3로 전달하여 WRR 방식의 Bronze 트래픽으로 처리할 수 있으며, 이를 통하여 해당 큐 특성(property)에 따른 QoS 제어를 수행할 수 있다(S970).Therefore, when the packet goes to SDN Controller, the switch forwards it to Q2 of the output port x and processes it as WRR-type Silver traffic. When the packet goes to SIP Call Server, the switch forwards it to Q3 of the output port x and Bronze of WRR method. Traffic may be processed, and through this, QoS control according to a corresponding queue property may be performed (S970).
도 10은 본 발명의 실시예에 따라 네트워크 종류 별로 큐를 매핑하여 QoS를 제어하는 방법을 설명하기 위한 순서도이고, 도 11은 본 발명의 실시예에 따라 네트워크 종류 별로 큐를 매핑한 경우를 설명하기 위한 개념도이다.FIG. 10 is a flowchart illustrating a method of controlling QoS by mapping a queue for each network type according to an embodiment of the present invention, and FIG. 11 illustrates a case of mapping a queue for each network type according to an embodiment of the present invention. This is a conceptual diagram.
도 10을 참조하면, 컨트롤러는 스위치와 연동하여 네트워크의 종류 따른 QoS 제어를 수행할 수 있다. Referring to FIG. 10, the controller may perform QoS control according to the type of network in association with a switch.
먼저, 스위치는 출력 포트에 큐 및 설정된 큐의 특성을 각각 설정할 수 있다(S1010). 컨트롤러는 스위치로부터 큐 상태 메시지를 수신함으로써 스위치에 설정된 큐에 대한 정보를 알 수 있다(S1020).First, the switch may set the characteristics of the queue and the set queue to the output port, respectively (S1010). The controller can know the information on the queue set in the switch by receiving a queue status message from the switch (S1020).
컨트롤러는 큐 상태 메시지를 참조하여 네트워크 종류에 따라 QoS 정책을 다르게 설정할 수 있는 큐 매핑 테이블을 구성할 수 있다(S1030).The controller may configure a queue mapping table that may set a QoS policy differently according to the network type by referring to the queue status message (S1030).
예를 들어, 컨트롤러는 3G 또는 4G 무선 액세스망으로부터 들어오는 무선 인터넷 트래픽에 대해서는 Silver 서비스로 처리하도록 Q2에 매핑하고, WIBRO 무선 액세스망으로부터 들어오는 무선 인터넷 트래픽에 대해서는 Bronze 서비스로 처리하도록 Q3에 매핑하며, 유선 액세스 망으로부터 들어오는 유선 인터넷 트래픽에 대해서는 BE(Best Effort) 서비스로 처리하도록 Q4에 매핑할 수 있다.For example, the controller maps Q2 to process Silver Internet for wireless Internet traffic coming from 3G or 4G wireless access networks, and Q3 to process Bronze service for wireless Internet traffic coming from WIBRO wireless access networks. For wired Internet traffic coming from a wired access network, it can be mapped to Q4 to be treated as a Best Effort (BE) service.
일반적으로 동일한 데이터를 처리하기 위해 소요되는 비용은 3G/4G 무선 인터넷이 가장 높고, 그 다음으로 WIBRO 인터넷이 높으며, 유선 인터넷이 가장 낮다. 따라서, 3G/4G 무선 인터넷을 Silver 서비스로 처리하고, WIBRO 무선 인터넷을 Bronze 서비스로 처리하며, 유선 인터넷을 BE(Best Effort) 서비스로 처리하도록 QoS 정책을 세우고, 컨트롤러를 이러한 네트워크 종류 별 QoS 정책에 기반하여 QoS를 제어할 수 있다. In general, the cost to process the same data is highest for the 3G / 4G wireless Internet, followed by the higher WIBRO Internet and the lowest wired Internet. Therefore, the 3G / 4G wireless Internet is treated as a Silver service, the WIBRO wireless Internet is treated as a Bronze service, the QoS policy is set to treat the wired Internet as a BE (Best Effort) service, and the controller is assigned to the QoS policy for each network type. QoS can be controlled based on this.
컨트롤러는 네트워크 종류 별로 트래픽을 차별화할 수 있도록 큐 매핑 테이블을 구성하고 난 후, 실제 플로우가 해당 큐에 매핑될 수 있도록 하는 플로우 엔트리를 생성할 수 있다(S1040). The controller may configure a queue mapping table to differentiate traffic for each network type, and then generate a flow entry for allowing the actual flow to be mapped to the corresponding queue (S1040).
도 10 및 도 11을 참조하면, 3G/4G 무선 인터넷 트래픽은 스위치의 Ingress 1으로 들어오고, WIBRO 무선 인터넷 트래픽은 Ingress 2로 들어오며, 유선 인터넷 트래픽은 Ingress 3로 들어오도록 설정할 수 있다. 10 and 11, 3G / 4G wireless Internet traffic may enter Ingress 1 of the switch, WIBRO wireless Internet traffic may enter Ingress 2, and wired Internet traffic may enter Ingress 3.
예를 들어, 컨트롤러는 Match field의 Ingress 1으로 들어오는 플로우는 출력 포트 x의 Q2로 전달하도록 Action field를 설정하고, Match field의 Ingress 2로 들어오는 플로우는 출력 포트 x의 Q3로 전달하도록 Action field를 설정하며, Match field의 Ingress 3로 들어오는 플로우는 출력 포트 x의 Q4로 전달하도록 Action field를 설정할 수 있다.For example, the controller sets the Action field to forward flows coming into Ingress 1 of the match field to Q2 on output port x, and the Action field sets forwarding flows to Ingress 2 of the match field to Q3 of output port x. In addition, the Action field can be configured to forward the flow into Ingress 3 of the Match field to Q4 of the output port x.
컨트롤러는 플로우 엔트리를 생성한 후, 이를 플로우 테이블 변경 메시지에 실어서 스위치로 전송할 수 있다(S1050). After generating the flow entry, the controller may load it on the flow table change message to the switch (S1050).
스위치는 컨트롤러로부터 플로우 테이블 변경 메시지를 수신하고, 플로우 테이블 변경 메시지에 포함된 플로우 엔트리를 이용하여 스위치의 플로우 테이블을 업데이트할 수 있다.The switch may receive a flow table change message from the controller and update the flow table of the switch using the flow entry included in the flow table change message.
따라서, 스위치는 Ingress 1으로부터 들어오는 3G/4G 무선 인터넷 패킷은 출력 포트 x의 Q2로 전달하여 WRR 방식의 Silver 서비스로 처리하고, Ingress 2로부터 들어오는 WIBRO 무선 인터넷 패킷은 출력 포트 x의 Q3로 전달하여 WRR 방식의 Bronze 서비스로 처리하며, Ingress 3로부터 들어오는 유선 인터넷 패킷은 출력 포트 x의 Q4로 전달하여 WRR 방식의 BE(Best Effort) 서비스로 처리함으로써, 네트워크 종류 별로 QoS 제어를 수행할 수 있다(S1060). Therefore, the switch forwards 3G / 4G wireless Internet packets from Ingress 1 to Q2 on output port x for WRR-based Silver service, and WIBRO wireless Internet packets from Ingress 2 are forwarded to Q3 on output port x to WRR. Processed by the Bronze service of the method, and wired Internet packets from Ingress 3 are delivered to Q4 of the output port x and processed by the BE (Best Effort) service of the WRR method to perform QoS control for each network type (S1060). .
상술한 본 발명의 실시예에 따르면, 오픈 플로우 스위치에서 서비스 별 트래픽 차별 처리를 통하여 QoS를 제어할 수 있다. According to the embodiment of the present invention described above, QoS can be controlled through traffic discrimination processing for each service in the open flow switch.
또한, 본 발명의 실시예에 따르면, WRR(Weighted Round Robin) 방법을 오픈 플로우 스위치에 적용하여 다양한 서비스들을 트래픽 특성에 따라 차별화하여 처리할 수 있다. In addition, according to an embodiment of the present invention, by applying a weighted round robin (WRR) method to an open flow switch, it is possible to differentiate and process various services according to traffic characteristics.
더 나아가, 본 발명의 실시예에 따르면, 스위치에서 큐 상태가 변경된 경우, 변경 내용을 컨트롤러에게 즉시 알려줌으로써, 컨트롤러가 네트워크 운용 정책이나 트래픽 상황에 따라 스위치의 큐 상태를 효과적으로 변경할 수 있으며, 이를 통하여 효과적으로 QoS 제어를 수행할 수 있다. Furthermore, according to an embodiment of the present invention, when the queue state is changed in the switch, the controller immediately informs the controller of the change, so that the controller can effectively change the queue state of the switch according to a network operation policy or traffic condition. QoS control can be effectively performed.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. Although described above with reference to a preferred embodiment of the present invention, those skilled in the art will be variously modified and changed within the scope of the invention without departing from the spirit and scope of the invention described in the claims below I can understand that you can.