KR102545202B1 - Operating method for electronic apparatus for processing flow packet and electronic apparatus supporting thereof - Google Patents
Operating method for electronic apparatus for processing flow packet and electronic apparatus supporting thereof Download PDFInfo
- Publication number
- KR102545202B1 KR102545202B1 KR1020210065456A KR20210065456A KR102545202B1 KR 102545202 B1 KR102545202 B1 KR 102545202B1 KR 1020210065456 A KR1020210065456 A KR 1020210065456A KR 20210065456 A KR20210065456 A KR 20210065456A KR 102545202 B1 KR102545202 B1 KR 102545202B1
- Authority
- KR
- South Korea
- Prior art keywords
- flow
- bandwidth
- group table
- table entry
- packets
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 55
- 238000011017 operating method Methods 0.000 title description 4
- 238000000034 method Methods 0.000 claims abstract description 46
- 230000005540 biological transmission Effects 0.000 claims abstract description 19
- 230000008569 process Effects 0.000 claims description 16
- 230000015654 memory Effects 0.000 claims description 15
- 238000003672 processing method Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 52
- 230000006870 function Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 10
- 230000009471 action Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000000275 quality assurance Methods 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/52—Queue scheduling by attributing bandwidth to queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/026—Capturing of monitoring data using flow identification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0882—Utilisation of link capacity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/41—Flow control; Congestion control by acting on aggregated flows or links
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/805—QOS or priority aware
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 개시에 따르면, 전자 장치가 플로우 패킷(flow packet)을 처리하는 방법에 있어서, 데이터 전송을 위한 플로우 패킷을 확인하는 단계; 복수의 그룹 테이블 엔트리 중 상기 플로우 패킷에 대응하는 그룹 테이블 엔트리를 결정하는 단계; 상기 그룹 테이블 엔트리에 기반하여 상기 플로우 패킷을 위한 대역폭을 판단하는 단계; 및 상기 대역폭에 기반하여 상기 플로우 패킷을 전송하는 단계를 포함하고, 상기 그룹 테이블 엔트리는, 상기 복수의 그룹 테이블 엔트리 중에서 상기 플로우 패킷이 포함된 하나 이상의 플로우 패킷들의 링크(link) 사용량 및 상기 플로우 패킷의 우선순위에 기반하여 결정될 수 있다.According to the present disclosure, in a method for processing a flow packet by an electronic device, the method comprising: checking a flow packet for data transmission; determining a group table entry corresponding to the flow packet from among a plurality of group table entries; determining a bandwidth for the flow packet based on the group table entry; and transmitting the flow packet based on the bandwidth, wherein the group table entry includes link usage of one or more flow packets including the flow packet among the plurality of group table entries and the flow packet It can be determined based on the priority of
Description
본 발명은 플로우 패킷을 처리하는 방법 및 장치에 관한 것으로서, 더욱 상세하게는 SDN (Software-Defined Networking)에 기반하여 링크 단위에서 QoS (Quality of Service)를 제공하고 링크 사용률을 제고하기 위한 플로우 패킷의 처리 방법 및 이의 전자 장치에 관한 것이다.The present invention relates to a method and apparatus for processing flow packets, and more particularly, to a flow packet for providing QoS (Quality of Service) in a link unit based on SDN (Software-Defined Networking) and improving link utilization. It relates to a processing method and an electronic device thereof.
인터넷의 발달과 더불어 다양한 서비스들이 등장하였고, 이에 따라 트래픽이 급격히 증가하고 있다. 따라서 인터넷 서비스의 품질 보장이 더욱 중요시되고 있다. 이를 위해 라우터 등과 같은 네트워크 장치는 단일 프로세서 가 아닌 다수의 프로세서들을 사용한다. 네트워크 장치는 입력되는 패킷을 다수의 프로세서들에 할당하되, 패킷 헤더의 속성에 따라서 패킷을 플로우(flow) 별로 분류하고, 동일한 플로우로 분류된 패킷은 같은 프로세서에 할당한다. 따라서 패킷 처리 시간이 단축되는 것은 물론, 플로우 별로 품질 보장(QoS)이 가능하다. With the development of the Internet, various services have appeared, and accordingly, traffic is rapidly increasing. Therefore, quality assurance of Internet services is becoming more important. To this end, network devices such as routers use multiple processors rather than a single processor. The network device allocates incoming packets to a plurality of processors, classifies packets according to flows according to the properties of packet headers, and allocates packets classified into the same flow to the same processor. Accordingly, not only the packet processing time is reduced, but also quality guarantee (QoS) is possible for each flow.
관련하여 KR20110059300A1 건 등의 선행문헌들을 참조할 수 있다.In this regard, reference may be made to prior literature such as KR20110059300A1.
본 발명의 방법에 따르면, 플로우 패킷의 우선순위를 고려한 대역폭 할당에 기반하여 플로우 패킷을 처리할 수 있다.According to the method of the present invention, a flow packet may be processed based on bandwidth allocation considering the priority of the flow packet.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical problems to be achieved in the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the description below. You will be able to.
다양한 실시예들은, 플로우 패킷의 처리를 위한 전자 장치의 동작 방법 및 이를 지원하는 전자 장치를 제공할 수 있다.Various embodiments may provide an operating method of an electronic device for processing a flow packet and an electronic device supporting the same.
다양한 실시예들에 따른 전자 장치가 플로우 패킷(flow packet)을 처리하는 방법에 있어서, 데이터 전송을 위한 플로우 패킷을 확인하는 단계; 복수의 그룹 테이블 엔트리 중 상기 플로우 패킷에 대응하는 그룹 테이블 엔트리를 결정하는 단계; 상기 그룹 테이블 엔트리에 기반하여 상기 플로우 패킷을 위한 대역폭을 판단하는 단계; 및 상기 대역폭에 기반하여 상기 플로우 패킷을 전송하는 단계를 포함하고, 상기 그룹 테이블 엔트리는, 상기 복수의 그룹 테이블 엔트리 중에서 상기 플로우 패킷이 포함된 하나 이상의 플로우 패킷들의 링크(link) 사용량 및 상기 플로우 패킷의 우선순위에 기반하여 결정될 수 있다. A method of processing a flow packet by an electronic device according to various embodiments of the present disclosure, comprising: checking a flow packet for data transmission; determining a group table entry corresponding to the flow packet from among a plurality of group table entries; determining a bandwidth for the flow packet based on the group table entry; and transmitting the flow packet based on the bandwidth, wherein the group table entry includes link usage of one or more flow packets including the flow packet among the plurality of group table entries and the flow packet It can be determined based on the priority of
예시적 실시예에서, 상기 복수의 그룹 테이블 엔트리는, 상기 하나 이상의 플로우 패킷들을 위해 할당된 전체 대역폭 중 사용 가능한 임계 대역폭을 상기 하나 이상의 플로우 패킷들에 대하여 동일하게 할당하기 위한 제1 그룹 테이블 엔트리, 상기 하나 이상의 플로우 패킷들 중 우선순위가 높은 제1 플로우 패킷들에 대하여 제1 대역폭을 할당하기 위한 제2 그룹 테이블 엔트리, 및 상기 하나 이상의 플로우 패킷들 중 우선순위가 낮은 제2 플로우 패킷들에 대하여 제2 대역폭을 할당하기 위한 제3 그룹 테이블 엔트리를 포함할 수 있다.In an exemplary embodiment, the plurality of group table entries include: a first group table entry for equally allocating, to the one or more flow packets, an available threshold bandwidth among total bandwidths allocated for the one or more flow packets; A second group table entry for allocating a first bandwidth to first flow packets having a higher priority among the one or more flow packets, and a second flow packet having a lower priority among the one or more flow packets and a third group table entry for allocating the second bandwidth.
예시적 실시예에서, 상기 링크 사용량이 상기 사용 가능한 임계 대역폭 보다 작은 경우, 상기 그룹 테이블 엔트리는 상기 제1 그룹 테이블 엔트리로 결정되고, 상기 사용 가능한 임계 대역폭이 상기 대역폭으로 판단될 수 있다. In an exemplary embodiment, when the link usage is less than the available threshold bandwidth, the group table entry may be determined as the first group table entry, and the available threshold bandwidth may be determined as the bandwidth.
예시적 실시예에서, 상기 링크 사용량이 상기 사용 가능한 임계 대역폭 보다 크고 상기 플로우 패킷이 상기 제1 플로우 패킷들에 포함되는 경우, 상기 그룹 테이블 엔트리는 상기 제2 그룹 테이블 엔트리로 결정되고, 상기 제1 대역폭이 상기 대역폭으로 판단될 수 있다.In an exemplary embodiment, when the link usage is greater than the usable threshold bandwidth and the flow packet is included in the first flow packets, the group table entry is determined as the second group table entry, and the first A bandwidth may be determined as the bandwidth.
예시적 실시예에서, 상기 링크 사용량이 상기 사용 가능한 임계 대역폭 보다 크고 상기 플로우 패킷이 상기 제2 플로우 패킷들에 포함되는 경우, 상기 그룹 테이블 엔트리는 상기 제3 그룹 테이블 엔트리로 결정되고, 상기 제2 대역폭이 상기 대역폭으로 판단될 수 있다.In an exemplary embodiment, when the link usage is greater than the usable threshold bandwidth and the flow packet is included in the second flow packets, the group table entry is determined as the third group table entry, and the second A bandwidth may be determined as the bandwidth.
예시적 실시예에서, 상기 제1 대역폭 및 상기 제2 대역폭은 상기 사용 가능한 임계 대역폭에 포함되고, 상기 제2 대역폭은 상기 사용 가능한 임계 대역폭 중 상기 제1 대역폭을 제외하고 남은 대역폭이며, 상기 제1 대역폭은 상기 제2 대역폭 보다 크고, 상기 제2 플로우 패킷은 상기 하나 이상의 플로우 패킷들 중 상기 제1 플로우 패킷을 제외하고 남은 패킷일 수 있다.In an exemplary embodiment, the first bandwidth and the second bandwidth are included in the available threshold bandwidth, the second bandwidth is a bandwidth remaining after excluding the first bandwidth from the available threshold bandwidth, and the first The bandwidth may be greater than the second bandwidth, and the second flow packet may be packets remaining except for the first flow packet among the one or more flow packets.
예시적 실시예에서, 상기 방법은, 복수의 플로우 테이블 엔트리 중 상기 플로우 패킷에 대응하는 플로우 테이블 엔트리를 결정하는 단계를 더 포함하고, 상기 플로우 테이블 엔트리는 상기 그룹 테이블 엔트리에 대한 정보를 포함할 수 있다.In an exemplary embodiment, the method further includes determining a flow table entry corresponding to the flow packet from among a plurality of flow table entries, wherein the flow table entry may include information about the group table entry. there is.
예시적 실시예에서, 상기 방법은, 상기 하나 이상의 플로우 패킷들의 업데이트 된 링크 사용량에 대한 정보를 확인하는 단계; 상기 업데이트 된 링크 사용량이 상기 하나 이상의 플로우 패킷들을 위해 할당된 전체 대역폭 중 사용 가능한 임계 대역폭을 초과하는지 여부를 판단하는 단계; 및 상기 업데이트 된 링크 사용량이 상기 사용 가능한 임계 대역폭을 초과하는지 여부 및 상기 플로우 패킷의 우선순위에 기반하여, 상기 그룹 테이블 엔트리 및 상기 대역폭을 업데이트 하는 단계를 더 포함할 수 있다.In an exemplary embodiment, the method may include checking information about updated link usage of the one or more flow packets; determining whether the updated link usage exceeds an available threshold bandwidth among all bandwidths allocated for the one or more flow packets; and updating the group table entry and the bandwidth based on whether the updated link usage exceeds the usable threshold bandwidth and the priority of the flow packet.
다양한 실시예들에 따른 비일시적 컴퓨터 판독 가능 저장 매체에 있어서, 프로세서 (processor); 및 컴퓨터 판독 가능 명령어들을 저장하도록 구성되는 매체를 포함하고, 상기 컴퓨터 판독 가능 명령어들은 상기 프로세서에 의해 실행되는 경우, 상기 프로세서가: 데이터 전송을 위한 플로우 패킷을 확인하는 단계; 복수의 그룹 테이블 엔트리 중 상기 플로우 패킷에 대응하는 그룹 테이블 엔트리를 결정하는 단계; 상기 그룹 테이블 엔트리에 기반하여 상기 플로우 패킷을 위한 대역폭을 판단하는 단계; 및 상기 대역폭에 기반하여 상기 플로우 패킷을 전송하는 단계를 수행하도록 상기 프로세서를 제어하고, 상기 그룹 테이블 엔트리는, 상기 복수의 그룹 테이블 엔트리 중에서 상기 플로우 패킷이 포함된 하나 이상의 플로우 패킷들의 링크(link) 사용량 및 상기 플로우 패킷의 우선순위에 기반하여 결정되는 것을 특징으로 할 수 있다.In a non-transitory computer readable storage medium according to various embodiments, a processor; and a medium configured to store computer readable instructions, wherein, when the computer readable instructions are executed by the processor, the processor performs: verifying a flow packet for data transmission; determining a group table entry corresponding to the flow packet from among a plurality of group table entries; determining a bandwidth for the flow packet based on the group table entry; and controlling the processor to transmit the flow packet based on the bandwidth, wherein the group table entry is a link of one or more flow packets including the flow packet among the plurality of group table entries. It may be characterized in that it is determined based on the amount of usage and the priority of the flow packet.
다양한 실시예들에 따른 플로우 패킷(flow packet)을 처리하는 전자 장치에 있어서, 프로세서 (processor); 및 하나 이상의 인스트럭션 (instruction)을 저장하는 하나 이상의 메모리 (memory)를 포함하고, 상기 하나 이상의 인스트럭션은, 실행 시에, 상기 프로세서가: 데이터 전송을 위한 플로우 패킷을 확인하는 단계; 복수의 그룹 테이블 엔트리 중 상기 플로우 패킷에 대응하는 그룹 테이블 엔트리를 결정하는 단계; 상기 그룹 테이블 엔트리에 기반하여 상기 플로우 패킷을 위한 대역폭을 판단하는 단계; 및 상기 대역폭에 기반하여 상기 플로우 패킷을 전송하는 단계를 수행하도록 상기 프로세서를 제어하고, 상기 그룹 테이블 엔트리는, 상기 복수의 그룹 테이블 엔트리 중에서 상기 플로우 패킷이 포함된 하나 이상의 플로우 패킷들의 링크(link) 사용량 및 상기 플로우 패킷의 우선순위에 기반하여 결정되는 것을 특징으로 할 수 있다.An electronic device for processing a flow packet according to various embodiments includes: a processor; and one or more memories storing one or more instructions, wherein the one or more instructions, when executed, cause the processor to perform: identifying a flow packet for data transmission; determining a group table entry corresponding to the flow packet from among a plurality of group table entries; determining a bandwidth for the flow packet based on the group table entry; and controlling the processor to transmit the flow packet based on the bandwidth, wherein the group table entry is a link of one or more flow packets including the flow packet among the plurality of group table entries. It may be characterized in that it is determined based on the amount of usage and the priority of the flow packet.
상술한 본 개시의 다양한 실시예들은 본 개시의 바람직한 실시예들 중 일부에 불과하며, 본 개시의 다양한 실시예들의 기술적 특징들이 반영된 여러 가지 실시예들이 당해 기술분야의 통상적인 지식을 가진 자에 의해 이하 상술할 상세한 설명을 기반으로 도출되고 이해될 수 있다.The various embodiments of the present disclosure described above are only some of the preferred embodiments of the present disclosure, and various embodiments reflecting the technical features of the various embodiments of the present disclosure can be made by those skilled in the art. It can be derived and understood based on the detailed description to be described below.
본 발명은 플로우 패킷의 우선순위에 따라 우선적인 대역폭을 할당하여 플로우 패킷을 처리하는 방법을 제시하여, 플로우 패킷을 통한 서비스를 위한 링크 사용의 효율성을 높일 수 있는 측면에서 기술적인 효과를 갖는다.The present invention provides a method of processing a flow packet by allocating a preferential bandwidth according to the priority of the flow packet, and has a technical effect in terms of increasing the efficiency of link use for a service through a flow packet.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtainable in the present invention are not limited to the effects mentioned above, and other effects not mentioned can be clearly understood by those skilled in the art from the description below. will be.
도 1은 다양한 실시예들에 따른 플로우 패킷의 처리를 위한 전자 장치의 동작 방법이 구현될 수 있는 플로우 패킷 처리 시스템을 설명하기 위한 도면이다.
도 2는 다양한 실시예들에 따른 통신 노드의 구성을 도시한 도면이다.
도 3은 본 발명에서 제안하는 플로우 패킷 처리 시스템을 수행하기 위한 전자 장치의 구성을 도시한 도면이다.
도 4는 다양한 실시예들에 따른 플로우 패킷의 처리를 위한 전자 장치의 동작 방법을 도시한 도면이다.
도 5는 본 발명의 다양한 실시예들을 수행하기 위한 전자 장치 내 트래픽 전송기의 플로우 패킷 처리 과정을 나타내는 도면이다.1 is a diagram for explaining a flow packet processing system in which a method of operating an electronic device for processing flow packets according to various embodiments may be implemented.
2 is a diagram illustrating a configuration of a communication node according to various embodiments.
3 is a diagram showing the configuration of an electronic device for performing the flow packet processing system proposed in the present invention.
4 is a diagram illustrating an operating method of an electronic device for processing a flow packet according to various embodiments.
5 is a diagram illustrating a flow packet processing process of a traffic transmitter in an electronic device for performing various embodiments of the present invention.
이하의 실시예들은 다양한 실시예들의 구성요소들과 특징들을 소정 형태로 결합한 것들이다. 각 구성요소 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려될 수 있다. 각 구성요소 또는 특징은 다른 구성요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성요소들 및 특징들을 결합하여 다양한 실시예들을 구성할 수도 있다. 다양한 실시예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시예의 일부 구성이나 특징은 다른 실시예에 포함될 수 있고, 또는 다른 실시예의 대응하는 구성 또는 특징과 교체될 수 있다.The following embodiments combine elements and features of various embodiments in a predetermined form. Each component or feature may be considered optional unless explicitly stated otherwise. Each component or feature may be implemented in a form not combined with other components or features. In addition, various embodiments may be configured by combining some components and features. The order of operations described in various embodiments may be changed. Some components or features of one embodiment may be included in another embodiment, or may be replaced with corresponding components or features of another embodiment.
도면에 대한 설명에서, 다양한 실시예들의 요지를 흐릴 수 있는 절차 또는 단계 등은 기술하지 않았으며, 당해 기술분야에서 통상의 지식을 가진 자의 수준에서 이해할 수 있을 정도의 절차 또는 단계는 또한 기술하지 아니하였다.In the description of the drawings, procedures or steps that may obscure the gist of various embodiments are not described, and procedures or steps that can be understood by those skilled in the art are not described. did
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함(comprising 또는 including)"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부", "...기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, "일(a 또는 an)", "하나(one)", "그(the)" 및 유사 관련어는 다양한 실시예들을 기술하는 문맥에 있어서(특히, 이하의 청구항의 문맥에서) 본 명세서에 달리 지시되거나 문맥에 의해 분명하게 반박되지 않는 한, 단수 및 복수 모두를 포함하는 의미로 사용될 수 있다.Throughout the specification, when a part is said to "comprising" or "including" a certain element, it means that it may further include other elements, not excluding other elements, unless otherwise stated. do. In addition, terms such as “… unit”, “… unit”, and “module” described in the specification mean a unit that processes at least one function or operation, which is hardware or software or a combination of hardware and software. can be implemented as Also, “a or an”, “one”, “the” and like terms are used herein in the context of describing various embodiments (particularly in the context of the claims below). Unless otherwise indicated or clearly contradicted by context, both the singular and the plural can be used.
이하, 다양한 실시예들에 따른 바람직한 실시 형태를 첨부된 도면을 참조하여 상세하게 설명한다. 첨부된 도면과 함께 이하에 개시될 상세한 설명은 다양한 실시예들의 예시적인 실시형태를 설명하고자 하는 것이며, 유일한 실시형태를 나타내고자 하는 것이 아니다.Hereinafter, preferred embodiments according to various embodiments will be described in detail with reference to the accompanying drawings. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The detailed description set forth below in conjunction with the accompanying drawings is intended to describe exemplary embodiments of various embodiments, and is not intended to represent a single embodiment.
또한, 다양한 실시예들에서 사용되는 특정(特定) 용어들은 다양한 실시예들의 이해를 돕기 위해서 제공된 것이며, 이러한 특정 용어의 사용은 다양한 실시예들의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경될 수 있다.In addition, specific terms used in various embodiments are provided to help understanding of various embodiments, and the use of these specific terms may be changed into other forms without departing from the technical spirit of various embodiments. .
도 1은 다양한 실시예들에 따른 플로우 패킷의 처리를 위한 전자 장치의 동작 방법이 구현될 수 있는 플로우 패킷 처리 시스템을 설명하기 위한 도면이다.1 is a diagram for explaining a flow packet processing system in which a method of operating an electronic device for processing flow packets according to various embodiments may be implemented.
도 1을 참조하면, 다양한 실시예들에 따른 플로우 패킷 처리 시스템은 다양한 종류의 전자 장치들에 구현될 수 있다. 예를 들어, 플로우 패킷 처리 시스템은 셀(100)로 대표되는 통신 노드 또는 사용자 장치(200)로 대표되는 통신 노드에 구현될 수 있다. 구체적으로, 셀(100)로 대표되는 통신 노드 또는 사용자 장치(200)로 대표되는 통신 노드에 포함된 트래픽 처리 장치 또는 트래픽 제어 장치가 플로우 패킷 처리 시스템을 위해 활용될 수 있다. 여기서 셀(100) 또는 사용자 장치(200)로 대표되는 통신 노드는, 단말(User Equipment), 기지국(Base Station), 송수신 포인트(Transmission and Reception Point; TRP), 또는 네트워크 노드(Network Node) 등 통신 서비스를 제공하거나 사용할 수 있는 임의의 형태의 통신 노드 중 하나 또는 일부를 의미할 수 있다. 즉, 도 1의 플로우 패킷 처리 시스템은 각종 통신 노드에 의해 구현될 수 있으며, 이하의 본 개시에서 플로우 패킷 처리 시스템의 주체로서 기술하는 통신 노드는 통신 서비스를 제공하거나 사용할 수 있는 임의의 형태의 통신 노드를 포함하는 개념일 수 있다.Referring to FIG. 1 , a flow packet processing system according to various embodiments may be implemented in various types of electronic devices. For example, the flow packet processing system may be implemented in a communication node represented by the
도 1에 따르면, 본 발명의 플로우 패킷 처리 시스템은 셀(100)로 대표되는 복수의 통신 노드들 사이에 구현되거나, 셀(100)로 대표되는 통신 노드와 사용자 장치(200)로 대표되는 통신 노드 사이에 구현되거나, 또는 사용자 장치(200)로 대표되는 복수의 통신 노드들 사이에 구현될 수 있다. 달리 말해, 셀(100) 또는 사용자 장치(200)로 대표되는 통신 노드는 각각의 장치에 구현된 플로우 패킷 처리 시스템을 기반으로, 본 개시의 다양한 실시예들에 따른 동작을 수행할 수 있다. 한편, 다양한 실시예들에 따른 플로우 패킷 처리 시스템은, 상기 도 1에 도시된 바에 국한되지 않고, 더 다양한 전자 장치와 서버들에 구현될 수도 있을 것이다.According to FIG. 1, the flow packet processing system of the present invention is implemented between a plurality of communication nodes represented by a
다양한 실시예들에 따른 셀(100)로 대표되는 통신 노드는, 복수 개의 셀(100) 또는 사용자 장치(200)로 대표되는 통신 노드와 무선 및 유선 통신을 수행하며, 대단위의 저장 용량을 갖는 스토리지를 포함하는 장치일 수 있다. 이외에도 유사한 기능을 수행하는 다른 전자 장치들이 셀(100)로 대표되는 통신 노드로 이용될 수 있다.A communication node represented by a
다양한 실시예들에 따른 사용자 장치(200)로 대표되는 통신 노드는, 복수 개의 셀(100) 또는 사용자 장치(200)로 대표되는 통신 노드와 무선 및 유선 통신을 수행하며, 일정한 저장 용량을 갖는 스토리지를 포함하는 장치일 수 있다. 또한 사용자 장치(200)로 대표되는 통신 노드는 데스크탑 피시, 태블릿 피시, 모바일 단말 등의 개인 사용자에 의해 이용될 수 있는 장치일 수 있다. 이외에도 유사한 기능을 수행하는 다른 전자 장치들이 사용자 장치(200)로 대표되는 통신 노드로 이용될 수 있다.A communication node represented by the
다양한 실시예들에 따른 플로우 패킷 처리 시스템은 그 동작을 위한 다양한 모듈들을 포함할 수 있다. 플로우 패킷 처리 시스템에 포함된 모듈들은 플로우 패킷 처리 시스템이 구현되는(또는, 물리적 장치에 포함되는) 물리적 장치(예: 셀(100) 또는 사용자 장치(200)를 포함한 통신 노드)가 지정된 동작을 수행할 수 있도록 구현된 컴퓨터 코드 내지는 하나 이상의 인스트럭션 (instruction) 일 수 있다. 다시 말해, 플로우 패킷 처리 시스템이 구현되는 물리적 장치는 복수 개의 모듈들을 컴퓨터 코드 형태로 메모리에 저장하고, 메모리에 저장된 복수 개의 모듈들이 실행되는 경우 복수 개의 모듈들은 물리적 장치가 복수 개의 모듈들에 대응하는 지정된 동작들을 수행하도록 할 수 있다.A flow packet processing system according to various embodiments may include various modules for its operation. The modules included in the flow packet processing system perform a designated operation by a physical device (eg, a
또는 다양한 실시예들에 따른 플로우 패킷 처리 시스템은 그 동작을 위한 비일시적 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 플로우 패킷 처리 시스템에 포함된 비일시적 컴퓨터 판독 가능 저장 매체는 플로우 패킷 처리 시스템이 구현되는(또는, 물리적 장치에 포함되는) 컴퓨터 판독 가능 명령어들을 저장하도록 구성되는 매체 및 상기 컴퓨터 판독 가능한 명령어들을 실행하는 프로세서를 포함할 수 있다. 다시 말해, 플로우 패킷 처리 시스템이 구현되는 컴퓨터 판독 가능 명령어들이 매체에 저장되고, 매체에 저장되는 컴퓨터 판독 가능 명령어들이 프로세서에 의해 실행되는 경우 컴퓨터 판독 가능 명령어들은 지정된 동작들을 수행하도록 프로세서를 제어할 수 있다.Alternatively, a flow packet processing system according to various embodiments may include a non-transitory computer readable storage medium for its operation. The non-transitory computer readable storage medium included in the flow packet processing system includes a medium configured to store computer readable instructions on which the flow packet processing system is implemented (or included in a physical device) and a computer readable instructions for executing the instructions. may include a processor. In other words, when the computer readable instructions in which the flow packet processing system is implemented are stored in a medium, and the computer readable instructions stored in the medium are executed by a processor, the computer readable instructions can control the processor to perform designated operations. there is.
도 2는 다양한 실시예들에 따른 통신 노드의 구성을 도시한 도면이다.2 is a diagram illustrating a configuration of a communication node according to various embodiments.
도 2를 참조하면, 셀(100) 또는 사용자 장치(200)로 대표되는 통신 노드는 입/출력부(210), 통신부(220), 스토리지(230) 및 프로세서(240)를 포함할 수 있다. Referring to FIG. 2 , a communication node represented by a
입/출력부(210)는 사용자 입력을 받거나 또는 사용자에게 정보를 출력하는 각종 인터페이스나 연결 포트 등일 수 있다. 입/출력부(210)는 입력 모듈과 출력 모듈을 포함할 수 있는데, 입력 모듈은 사용자로부터 사용자 입력을 수신한다. 사용자 입력은 키 입력, 터치 입력, 음성 입력을 비롯한 다양한 형태로 이루어질 수 있다. 이러한 사용자 입력을 받을 수 있는 입력 모듈의 예로는 전통적인 형태의 키패드나 키보드, 마우스는 물론, 사용자의 터치를 감지하는 터치 센서, 음성 신호를 입력받는 마이크, 영상 인식을 통해 제스처 등을 인식하는 카메라, 사용자 접근을 감지하는 조도 센서나 적외선 센서 중 적어도 하나를 포함하는 근접 센서, 가속도 센서나 자이로 센서 등을 통해 사용자 동작을 인식하는 모션 센서 및 그 외의 다양한 형태의 사용자 입력을 감지하거나 입력받는 다양한 형태의 입력 수단이 있으며, 본 개시의 실시예에 따른 입력 모듈은 위에 나열한 장치 중 적어도 하나를 포함할 수 있다. 여기서, 터치 센서는 디스플레이 패널에 부착되는 터치 패널이나 터치 필름을 통해 터치를 감지하는 압전식 또는 정전식 터치 센서, 광학적인 방식에 의해 터치를 감지하는 광학식 터치 센서 등으로 구현될 수 있다. 이외에도 입력 모듈은 자체적으로 사용자 입력을 감지하는 장치 대신 사용자 입력을 입력 받는 외부의 입력 장치를 연결시키는 입력 인터페이스(USB 포트, PS/2 포트 등)의 형태로 구현될 수도 있다. 또 출력 모듈은 각종 정보를 출력할 수 있다. 출력 모듈은 영상을 출력하는 디스플레이, 소리를 출력하는 스피커, 진동을 발생시키는 햅틱 장치 및 그 외의 다양한 형태의 출력 수단 중 적어도 하나를 포함할 수 있다. 이외에도 출력 모듈은 상술한 개별 출력 수단을 연결시키는 포트 타입의 출력 인터페이스의 형태로 구현될 수도 있다.The input/
일 예로, 디스플레이 형태의 출력 모듈은 텍스트, 정지 영상, 동영상을 디스플레이 할 수 있다. 디스플레이는 액정 디스플레이(LCD: Liquid Crystal Display), 발광 다이오드(LED: light emitting diode) 디스플레이, 유기 발광 다이오드(OLED: Organic Light Emitting Diode) 디스플레이, 평판 디스플레이(FPD: Flat Panel Display), 투명 디스플레이(transparent display), 곡면 디스플레이(Curved Display), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display), 홀로그래픽 디스플레이(holographic display), 프로젝터 및 그 외의 영상 출력 기능을 수행할 수 있는 다양한 형태의 장치 중 적어도 하나를 포함할 수 있다. 이러한 디스플레이는 입력 모듈의 터치 센서와 일체로 구성된 터치 디스플레이의 형태일 수도 있다.For example, an output module in the form of a display may display text, still images, and moving images. Displays include liquid crystal displays (LCDs), light emitting diodes (LEDs) displays, organic light emitting diodes (OLEDs) displays, flat panel displays (FPDs), and transparent displays. display), curved display, flexible display, 3D display, holographic display, projector, and other various types of devices capable of performing image output functions. may contain at least one. Such a display may be in the form of a touch display integrally formed with the touch sensor of the input module.
통신부(220)는 다른 장치와 통신할 수 있다. 따라서, 통신 노드(100 또는 200)는 통신부를 통해 다른 장치와 정보를 송수신할 수 있다. 예를 들어, 통신 노드(100 또는 200)는 통신부를 이용해 상호 간 통신을 수행하거나, 기타 다른 장치와 통신을 수행할 수 있다.The
여기서, 통신, 즉 데이터의 송수신은 유선 또는 무선으로 이루어질 수 있다. 이를 위해 통신부는 LAN(Local Area Network)를 통해 인터넷 등에 접속하는 유선 통신 모듈, 이동 통신 기지국을 거쳐 이동 통신 네트워크에 접속하여 데이터를 송수신하는 이동 통신 모듈, 와이파이(Wi-Fi) 같은 WLAN(Wireless Local Area Network) 계열의 통신 방식이나 블루투스(Bluetooth), 직비(Zigbee)와 같은 WPAN(Wireless Personal Area Network) 계열의 통신 방식을 이용하는 근거리 통신 모듈, GPS(Global Positioning System)과 같은 GNSS(Global Navigation Satellite System)을 이용하는 위성 통신 모듈 또는 이들의 조합으로 구성될 수 있다.Here, communication, that is, transmission and reception of data may be performed by wire or wireless. To this end, the communication unit includes a wired communication module that accesses the Internet through a LAN (Local Area Network), a mobile communication module that accesses a mobile communication network through a mobile communication base station to transmit and receive data, and a wireless local area network (WLAN) such as Wi-Fi. Area Network)-based communication method or WPAN (Wireless Personal Area Network)-based communication method such as Bluetooth or Zigbee, a short-distance communication module, or GNSS (Global Navigation Satellite System) such as GPS (Global Positioning System) ), or a combination thereof.
스토리지(230)는 각종 정보를 저장할 수 있다. 스토리지는 데이터를 임시적으로 또는 반영구적으로 저장할 수 있다. 예를 들어, 통신 노드(100 또는 200)의 스토리지에는 통신 노드(100 또는 200)를 구동하기 위한 운용 프로그램(OS: Operating System), 웹 사이트를 호스팅하기 위한 데이터나 점자 생성을 위한 프로그램 내지는 어플리케이션(예를 들어, 웹 어플리케이션)에 관한 데이터 등이 저장될 수 있다. 또, 스토리지는 상술한 바와 같이 모듈들을 컴퓨터 코드 형태로 저장할 수 있다. The
스토리지(230)의 예로는 하드 디스크(HDD: Hard Disk Drive), SSD(Solid State Drive), 플래쉬 메모리(flash memory), 롬(ROM: Read-Only Memory), 램(RAM: Random Access Memory) 등이 있을 수 있다. 이러한 스토리지는 내장 타입 또는 탈부착 가능한 타입으로 제공될 수 있다.Examples of the
프로세서(240)는 통신 노드(100 또는 200)의 전반적인 동작을 제어한다. 이를 위해 프로세서(240)는 각종 정보의 연산 및 처리를 수행하고 통신 노드(100 또는 200)의 구성요소들의 동작을 제어할 수 있다. 예를 들어, 프로세서(240)는 플로우 패킷의 처리를 위한 프로그램 내지 어플리케이션을 실행시킬 수 있을 것이다. 프로세서(240)는 하드웨어, 소프트웨어 또는 이들의 조합에 따라 컴퓨터나 이와 유사한 장치로 구현될 수 있다. 하드웨어적으로 프로세서(240)는 전기적인 신호를 처리하여 제어 기능을 수행하는 전자 회로 형태로 구현될 수 있으며, 소프트웨어적으로는 하드웨어적인 프로세서(240)를 구동시키는 프로그램 형태로 구현될 수 있다. 한편, 이하의 설명에서 특별한 언급이 없는 경우에는 통신 노드(100 또는 200)의 동작은 프로세서(240)의 제어에 의해 수행되는 것으로 해석될 수 있다. 즉, 상술한 플로우 패킷 처리 시스템에 구현되는 모듈들이 실행되는 경우, 모듈들은 프로세서(240)가 통신 노드(100 또는 200)를 이하의 동작들을 수행하도록 제어하는 것으로 해석될 수 있다.The
요약하면, 다양한 실시예들은 다양한 수단을 통해 구현될 수 있다. 예를 들어, 다양한 실시예들은 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다.In summary, various embodiments may be implemented through various means. For example, various embodiments may be implemented by hardware, firmware, software, or a combination thereof.
하드웨어에 의한 구현의 경우, 다양한 실시예들에 따른 방법은 하나 또는 그 이상의 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.In the case of hardware implementation, the method according to various embodiments includes one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), and FPGAs. (field programmable gate arrays), processors, controllers, microcontrollers, microprocessors, etc.
펌웨어나 소프트웨어에 의한 구현의 경우, 다양한 실시예들에 따른 방법은 이하에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등의 형태로 구현될 수 있다. 예를 들어, 소프트웨어 코드는 메모리에 저장되어 프로세서에 의해 구동될 수 있다. 상기 메모리는 상기 프로세서 내부 또는 외부에 위치할 수 있으며, 이미 공지된 다양한 수단에 의해 상기 프로세서와 데이터를 주고 받을 수 있다.In the case of implementation by firmware or software, the method according to various embodiments may be implemented in the form of a module, procedure, or function that performs functions or operations described below. For example, software codes can be stored in memory and run by a processor. The memory may be located inside or outside the processor, and may exchange data with the processor by various means known in the art.
이하에서는, 상기와 같은 기술적 사상에 기반하여 다양한 실시예들에 대해 보다 상세히 설명한다. 이하에서 설명되는 다양한 실시예들에 대해서는 앞서 설명한 내용들이 적용될 수 있다. 예를 들어, 이하에서 설명되는 다양한 실시예들에서 정의되지 않은 동작, 기능, 용어 등은 앞서 설명한 내용들에 기반하여 수행되고 설명될 수 있다.Hereinafter, various embodiments will be described in more detail based on the above technical idea. The above-described contents may be applied to various embodiments described below. For example, operations, functions, and terms that are not defined in various embodiments described below may be performed and described based on the contents described above.
네트워크 QoS (Quality of Service)란, 네트워크 트래픽을 구성하는 패킷의 우선순위를 정해 특정 트래픽에 대한 처리 속도, 지연 속도, 패킷 손실률 등의 조절을 통해 차별화된 서비스를 지원하는 데이터 전송 기술을 의미한다. QoS는 컴퓨터 네트워크 분야에서 오랜 기간 동안 논의되어 온 중요 기술 요소로서, SDN (Software-Defined Networking) 패러다임의 등장으로 플로우 단위의 트래픽 제어 및 품질 모니터링이 가능하게 됨에 따라 어플리케이션 수준의 QoS를 실질적으로 지원할 수 있는 환경이 되었다. 여기서, SDN 패러다임은 네트워크 장비 단위로 결합된 데이터 전송 기능과 제어 기능을 분리시켜 궁극적으로 네트워크의 관리를 용이하게 하고 자원 사용의 효용성을 높이는 패러다임을 의미한다.Network QoS (Quality of Service) refers to a data transmission technology that supports differentiated services by prioritizing packets constituting network traffic and adjusting processing speed, delay speed, and packet loss rate for specific traffic. QoS is an important technical element that has been discussed for a long time in the field of computer networks. With the advent of the SDN (Software-Defined Networking) paradigm, flow-level traffic control and quality monitoring become possible, enabling application-level QoS to be practically supported. It has become an environment in which Here, the SDN paradigm means a paradigm that separates a data transmission function and a control function combined in units of network equipment to ultimately facilitate network management and increase the efficiency of resource use.
전통적인 네트워크 QoS 지원 방식 모델은, 기본적으로 SDN에 기반하지 않는 IntServ (Integrated Service) 모델과 DiffServ (Differentiated Service) 모델이 존재한다. IntServ 모델은 네트워크 경로 상 라우터에 미리 대역폭을 예약하여 라우터 종단 간 QoS를 보장하는 네트워크 QoS 지원 모델이고, DiffServ 모델은 패킷 마킹을 통해 라우터 단위로 서비스 클래스를 구분하여 미리 정해둔 서비스 별 우선순위에 따라 트래픽에 차별화된 서비스를 제공하는 네트워크 QoS 지원 모델이다. SDN에 기반하지 않은 전통의 네트워크 QoS 지원 모델은 기본적으로 플로우 단위의 정밀한 트래픽 모니터링이 어려워 동적인 품질 제어가 어려운 문제가 있다. 또한, IntServ 모델은 대역폭 자원 선점에 의해 추가 자원 할당이 어려울 때 서비스가 불가하다는 단점이 있으며, DiffServ 모델은 트래픽 혼잡 시 동일한 클래스의 플로우들 간에 제한된 자원을 경쟁하게 되어 종단 간 QoS 요구 수준을 보장할 수 없다는 단점을 가진다.As for the traditional network QoS support model, there are basically an IntServ (Integrated Service) model and a DiffServ (Differentiated Service) model that are not based on SDN. The IntServ model is a network QoS support model that guarantees end-to-end QoS by reserving bandwidth in routers along the network path in advance. It is a network QoS support model that provides differentiated services to traffic. Traditional network QoS support models that are not based on SDN basically have difficulties in dynamic quality control because it is difficult to precisely monitor traffic in flow units. In addition, the IntServ model has a disadvantage that service is not available when it is difficult to allocate additional resources due to bandwidth resource preemption, and the DiffServ model has a disadvantage in that flows of the same class compete for limited resources during traffic congestion, thereby guaranteeing the end-to-end QoS required level. has the disadvantage of not being able to
SDN 기술의 도입으로, 플로우 단위의 트래픽 제어 및 품질 모니터링과 가능해짐과 함께 논리적으로 중앙 집중화된 제어가 가능해지면서 QoS의 지원의 방식도 확대될 수 있었으며, 네트워크 전체 뷰를 통해 플로우의 요구 대역폭을 수용할 수 있는 유휴 링크의 동적인 탐색 및 라우팅 경로의 최적화가 가능하게 되어 라우팅에 기반한 QoS 기술의 확장이 이루어질 수 있었다.With the introduction of SDN technology, logically centralized control became possible along with traffic control and quality monitoring in flow units, and the method of QoS support could be expanded, and the required bandwidth of the flow could be accommodated through the entire network view. Dynamic discovery of possible idle links and optimization of routing paths have been made possible, so the QoS technology based on routing can be expanded.
그러나 네트워크 경로의 다양성을 확보할 수 없는 일반적인 네트워크 환경에서는 QoS 기술의 적용이 한계가 있고, 단일 링크 내에서의 QoS 기능은 여전히 기존의 Queue에 기반한 방식에 머물러 있다. 또한, Queue의 생성, 삭제 및 변경은 OpenFlow 프로토콜을 사용한 동적인 제어가 불가능하고 OpenFlow에서 제공되는 Meter Table은 플로우 별 최대 전송량 제어만 가능하여, SDN 환경에서 링크 단위에서의 QoS 기술 적용은 기존 방식에 비해 우월성을 찾기 어려운 문제가 존재한다.However, in a general network environment where diversity of network paths cannot be secured, there is a limit to the application of QoS technology, and the QoS function within a single link remains in the existing queue-based method. In addition, the creation, deletion, and change of queues cannot be dynamically controlled using the OpenFlow protocol, and the Meter Table provided by OpenFlow can only control the maximum transmission per flow, so the application of QoS technology in link units in the SDN environment is different from the existing method. There are problems in which it is difficult to find superiority.
본 발명에서는 SDN의 기능을 활용하여 링크 단위에서 자원 할당의 동적인 제어가 가능한 동시에 링크 사용률을 제고할 수 있는 개선된 QoS를 제공할 수 있는 플로우 패킷 처리 시스템 및 장치를 제안한다. 이 때 본 발명에서 제안하는 플로우 패킷 처리 시스템 및 장치와 관련하여, QoS를 구성하는 요소를 네트워크 링크의 대역폭에 제한하여 설명하나 본 발명의 기술적 사상이 이로 한정되는 것은 아니다. 본 발명에서는 OpenFlow 스위치의 그룹 테이블에 대한 선택(select) 기능을 활용하여 플로우 별 우선순위와 대역폭 요구량이 주어질 때, 순위가 높은 플로우에 대한 대역폭 요구량을 우선적으로 충족시키면서도 플로우 별 유휴 사용량을 재분배하여 링크 전체의 사용률을 제고할 수 있도록 한다. 본 발명에서 제안하는 플로우 패킷 처리 시스템 및 장치는 OpenFlow 프로토콜을 사용하여 동적인 제어가 가능하고, 라우팅 기반 QoS 기능을 수행함과 동시에 QoS 기술의 적용이 가능할 수 있다.The present invention proposes a flow packet processing system and apparatus capable of providing improved QoS capable of improving link utilization while enabling dynamic control of resource allocation in a link unit by utilizing the function of SDN. At this time, in relation to the flow packet processing system and apparatus proposed in the present invention, the elements constituting QoS will be described by limiting the bandwidth of the network link, but the technical idea of the present invention is not limited thereto. In the present invention, when the priority and bandwidth demand for each flow are given by utilizing the select function for the group table of the OpenFlow switch, the bandwidth requirement for the flow with the highest priority is first met while the idle usage per flow is redistributed to reduce the link To increase the overall utilization rate. The flow packet processing system and device proposed in the present invention can be dynamically controlled using the OpenFlow protocol, perform a routing-based QoS function, and can apply QoS technology at the same time.
도 3은 본 발명에서 제안하는 플로우 패킷 처리 시스템을 수행하기 위한 전자 장치의 구성을 도시한 도면이다.3 is a diagram showing the configuration of an electronic device for performing the flow packet processing system proposed in the present invention.
도 3에 따른 전자 장치는, 통신을 위한 데이터의 전송에 사용될 플로우 패킷을 처리하기 위한 트래픽 제어기, 트래픽 전송기 및 입/출력 인터페이스를 포함할 수 있다. 트래픽 제어기는 SDN 컨트롤러에 해당하는 장치로서, 트래픽 전송기가 처리해야 할 트래픽 또는 플로우 패킷에 대한 제어 명령을 송신하는 장치이다. 본 발명에서 제안하는 플로우 패킷 처리 시스템을 수행하기 트래픽 제어 방법은 트래픽 전송기의 플로우 테이블 엔트리 및 그룹 테이블 엔트리를 구성 및 수정하여 이루어질 수 있으며, 이 때 트래픽 제어를 위한 제어 명령은 OpenFlow 프로토콜을 사용하여 전송될 수 있다. 또한 플로우 테이블 엔트리 및 그룹 테이블 엔트리는 표준화 된 OpenFlow 스위치 스펙에 정의된 요소일 수 있다.The electronic device according to FIG. 3 may include a traffic controller for processing flow packets to be used for transmission of data for communication, a traffic transmitter, and an input/output interface. The traffic controller is a device corresponding to the SDN controller and transmits a control command for traffic or flow packets to be processed by the traffic transmitter. The traffic control method for performing the flow packet processing system proposed in the present invention can be achieved by configuring and modifying the flow table entry and group table entry of the traffic transmitter, and at this time, the control command for traffic control is transmitted using the OpenFlow protocol It can be. Also, the flow table entry and group table entry may be elements defined in the standardized OpenFlow switch specification.
트래픽 전송기는 트래픽 제어기로부터 제어 명령을 전송 받고, 플로우 테이블 엔트리 및 그룹 테이블 엔트리에 지시된 제어 명령에 따라 트래픽 또는 플로우 패킷을 출력 인터페이스로 전송하는 장치이다. 트래픽 전송기는 입력 인터페이스로부터 수신되는 각 플로우에 대해 플로우 테이블 엔트리를 검색하여 각 플로우에 매칭 되는 플로우 테이블 엔트리가 가리키는 그룹 테이블 엔트리를 찾고, 해당 그룹 테이블 엔트리가 가리키는 출력 인터페이스로 트래픽 또는 플로우 패킷을 전송할 수 있다. 즉, 각 플로우를 위한 플로우 테이블 엔트리는 그룹 테이블 엔트리에 대한 정보를 포함하고, 그룹 테이블 엔트리는 출력 인터페이스에 대한 정보를 포함할 수 있으며, 이러한 정보에 따라 트래픽 또는 플로우 패킷이 출력 인터페이스로 전송될 수 있다.The traffic transmitter is a device that receives control commands from the traffic controller and transmits traffic or flow packets to an output interface according to control commands indicated in flow table entries and group table entries. The traffic transmitter searches the flow table entry for each flow received from the input interface, finds the group table entry pointed to by the flow table entry matching each flow, and transmits traffic or flow packets to the output interface indicated by the corresponding group table entry. there is. That is, the flow table entry for each flow may include information about the group table entry, and the group table entry may include information about the output interface, and traffic or flow packets may be transmitted to the output interface according to this information. there is.
또한, 입력 인터페이스는 트래픽 전송기에서 트래픽 또는 플로우 패킷이 들어오는 트래픽 입력 장치에 해당하고 출력 인터페이스는 트래픽 또는 플로우 패킷을 다음 인접 네트워크 장치로 내보내는 트래픽 출력 장치에 해당한다.In addition, the input interface corresponds to a traffic input device through which traffic or flow packets are received from the traffic transmitter, and the output interface corresponds to a traffic output device through which traffic or flow packets are transmitted to the next adjacent network device.
본 발명에서 언급되는 트래픽 제어기, 트래픽 전송기 및 입/출력 인터페이스는 일반적인 SDN 네트워크 환경에서의 컨트롤러, 스위치, 전송 인터페이스에 해당할 수 있다. 또한 하나의 트래픽 제어기는 다수의 트래픽 전송기를 제어할 수 있으며, 하나의 트래픽 전송기는 다수의 입/출력 인터페이스를 포함할 수 있다.The traffic controller, traffic transmitter, and I/O interface mentioned in the present invention may correspond to a controller, switch, and transmission interface in a general SDN network environment. In addition, one traffic controller can control multiple traffic transmitters, and one traffic transmitter can include multiple input/output interfaces.
이하의 본 개시에서는, 도 3의 장치를 포함한 전자 장치가 트래픽 처리와 관련하여 데이터 전송을 위한 플로우 패킷을 처리하는 방법을 제안한다. 이하의 설명에서는 전자 장치가 플로우 패킷에 대한 처리 동작을 수행함을 전제로 다양한 실시예들에 대하여 설명하며, 이하의 설명에서 서술하는 플로우 패킷은 트래픽 또는 플로우에 대응되는 의미를 가지는 용어로서 이해될 수 있다.In the following disclosure, a method of processing a flow packet for data transmission in relation to traffic processing by an electronic device including the device of FIG. 3 is proposed. In the following description, various embodiments will be described on the premise that an electronic device performs a processing operation on a flow packet, and a flow packet described in the following description can be understood as a term having a meaning corresponding to traffic or flow. there is.
도 4는 다양한 실시예들에 따른 플로우 패킷의 처리를 위한 전자 장치의 동작 방법을 도시한 도면이다.4 is a diagram illustrating an operating method of an electronic device for processing a flow packet according to various embodiments.
다양한 실시예들에 따르면, 동작 401에서, 전자 장치는 데이터 전송을 위한 플로우 패킷을 확인할 수 있다.According to various embodiments, in
예를 들어, 동작 401에 따라 전자 장치에 의해 확인되는 데이터 전송을 위한 플로우 패킷은, 우선순위에 따라 QoS 플로우 패킷 및 일반(best-effort) 플로우 패킷으로 구분될 수 있다. 전자 장치가 처리하는 모든 플로우 패킷에 대하여 사전에 우선순위 및 요구 대역폭이 설정될 수 있으며, 각 플로우 패킷은 우선순위 및 출력 인터페이스의 링크 사용률에 기반하여 트래픽 제어기에 의해 동적으로 QoS 플로우 패킷 또는 일반 플로우 패킷으로 구분 및 지정될 수 있다. QoS 플로우 패킷 또는 일반 플로우 패킷으로 구분 및 지정된 플로우 패킷은, 트래픽 전송기의 수정된 플로우 테이블 엔트리 및 그룹 테이블 엔트리를 거쳐 요구 대역폭을 할당 받을 수 있다.For example, flow packets for data transmission identified by the electronic device according to
예를 들어, 동작 401에 따라 전자 장치에 의해 확인되는 데이터 전송을 위한 플로우 패킷을 QoS 플로우 패킷 및 일반(best-effort) 플로우 패킷으로 구분하는 점과 관련하여, 트래픽 전송기의 출력 인터페이스에 대해 정의될 수 있는 가상 인터페이스에 대한 파티셔닝(partitioning)을 고려할 수 있다. 구체적으로, 트래픽 전송기의 모든 물리적 출력 인터페이스에 정적으로 다수의 가상 인터페이스 또는 다수의 가상 인터페이스를 포함하는 가상 인터페이스 집합이 정의될 수 있다. 일 예로, OpenFlow 스위치의 구현 예시 중 하나인 Open vSwitch의 경우 물리 인터페이스 및 가상 인터페이스 사이의 패치가 정의되고, 패치를 정의하기 위한 추가적인 빌드 과정이 요구될 수 있다. 물리 인터페이스의 대역폭은 가상 인터페이스의 수만큼 유닛화 하여 나뉘어질 수 있으며, 정의된 가상 인터페이스들을 포함하는 가상 인터페이스 집합이 QoS 플로우 패킷 및 일반 플로우 패킷 용도로 구분될 수 있다.For example, with respect to dividing flow packets for data transmission confirmed by the electronic device according to
다양한 실시예들에 따르면, 동작 403에서, 전자 장치는 복수의 그룹 테이블 엔트리 중 플로우 패킷에 대응하는 그룹 테이블 엔트리를 결정할 수 있다.According to various embodiments, in
예를 들어, 동작 403에 따라 전자 장치가 결정하는 플로우 패킷에 대응하는 그룹 테이블 엔트리는, 전자 장치가 플로우 테이블 및 그룹 테이블을 하기와 같이 확인 및 구성한 점에 기반하여 결정되는 것일 수 있다. For example, the group table entry corresponding to the flow packet determined by the electronic device according to
구체적으로, 플로우 패킷 별 경로 제어 및 추가적인 처리를 위해 트래픽 전송기는 플로우 테이블 엔트리 및 그룹 테이블 엔트리를 구성 및 지정할 수 있으며, 플로우 테이블은 플로우 엔트리 집합으로서 구성되고 그룹 테이블은 그룹 엔트리 집합으로서 구성될 수 있다.Specifically, for path control and additional processing for each flow packet, the traffic transmitter may configure and designate flow table entries and group table entries, and the flow table may be configured as a set of flow entries and the group table may be configured as a set of group entries. .
플로우 테이블 엔트리는 입력 인터페이스로 들어오는 플로우를 매칭할 매칭 필드와, 플로우를 처리할 제어 명령 필드(action 필드)를 포함할 수 있으며, 출력 인터페이스 지정을 위한 정보를 포함할 수 있다. 이 때, 플로우 테이블 엔트리에는 그룹 테이블 엔트리에 대한 정보가 포함되어 플로우 테이블 엔트리를 통해 그룹 테이블 엔트리가 지정될 수 있으며, 그룹 테이블 엔트리가 지정되어 매칭 되는 플로우 패킷이 QoS 플로우 패킷 또는 일반 플로우 패킷으로 구분되도록 설정될 수 있다.The flow table entry may include a matching field to match a flow entering an input interface, a control command field ( action field) to process the flow, and may include information for specifying an output interface. At this time, the flow table entry includes information on the group table entry so that the group table entry can be designated through the flow table entry, and the group table entry is designated and matched flow packets are classified as QoS flow packets or general flow packets can be set so that
또한 플로우 테이블을 구성하는 플로우 테이블 엔트리는 매칭되어 처리되는 플로우 패킷의 총 바이트 수에 대한 카운터(counter) 필드를 포함할 수 있다. 전자 장치 내에서 트래픽 제어기는 트래픽 전송기로부터 각 플로우 패킷 별 카운터 바이트 필드를 주기적으로 전송 받아 각 플로우 패킷의 처리 속도를 측정할 수 있으며, 트래픽 전송기에 포함된 각 인터페이스 별 대역폭 및 전송된 플로우 패킷의 바이트 통계 정보 역시 주기적으로 전송 받아 인터페이스 별 링크 사용률을 측정할 수도 있다.Also, a flow table entry constituting the flow table may include a counter field for the total number of bytes of flow packets matched and processed. Within the electronic device, the traffic controller may periodically receive a counter byte field for each flow packet from the traffic transmitter to measure the processing speed of each flow packet, and determine the bandwidth of each interface included in the traffic transmitter and the bytes of the transmitted flow packet. Statistical information may also be periodically transmitted and the link utilization rate for each interface may be measured.
그룹 테이블 엔트리는 경로 복구, 로드 밸런싱(Load Balancing) 등 플로우 별로 추가적인 작업을 가능하게 하는 OpenFlow 프로토콜로 제어 가능한 그룹 엔트리로 구성된 테이블이며, 플로우 테이블 엔트리를 통해 그룹 테이블 엔트리가 지정될 수 있다. 표준 OpenFlow 1.3 이상 스위치 스펙 상의 그룹 테이블 엔트리는 all, select, indirect, fast failover의 4가지 형식이 존재하여, 본 발명에서는 select 형식을 통해 그룹 테이블 엔트리에 지정된 플로우 패킷이 엔트리 버킷에 포함된 가상 인터페이스 집합에서 로드 밸런싱 되도록 설정할 수 있다. The group table entry is a table composed of group entries controllable by the OpenFlow protocol that enables additional operations for each flow, such as path recovery and load balancing, and the group table entry can be specified through the flow table entry. There are four types of group table entries on the standard OpenFlow 1.3 or higher switch specifications: all , select , indirect , and fast failover . You can set it up to be load balanced in .
동작 403에 따라 그룹 테이블 엔트리를 결정하는 전자 장치는, 그룹 테이블의 결정과 관련된 전술한 바와 같은 플로우 테이블 엔트리를 구성하여 결정하는 동작을 수행할 수 있다. 즉, 트래픽 전송기 내에서 각 플로우 패킷을 위한 그룹 테이블 엔트리를 결정하는 과정에서, 그룹 테이블 엔트리를 지정하기 위한 플로우 테이블 엔트리가 각 플로우 패킷에 대하여 지정될 수 있다. 지정된 플로우 테이블 엔트리는 각 플로우 패킷이 지정될 그룹 테이블 엔트리에 대한 정보를 포함할 수 있다.The electronic device that determines the group table entry in accordance with
예를 들어, 동작 403에 따라 전자 장치가 결정하는 그룹 테이블 엔트리는 전자 장치가 구성한 그룹 테이블 내 복수의 그룹 테이블 엔트리 중에서, 전자 장치가 처리할 하나 이상의 플로우 패킷들의 링크(link) 사용량 및 각 플로우 패킷의 우선순위에 기반하여 결정되는 것일 수 있다.For example, the group table entry determined by the electronic device in
여기서, 전자 장치가 처리할 하나 이상의 플로우 패킷들의 링크 사용량은 출력 인터페이스에 할당되어 해당 출력 인터페이스의 제한된 물리 대역폭 또는 해당 출력 인터페이스에 대한 전체 대역폭에 대하여 경쟁하는 상기 하나 이상의 플로우 패킷들의 처리를 위해 필요한 링크 사용량을 의미할 수 있으며, 각 플로우 패킷의 우선순위는 각 플로우 패킷이 QoS 플로우 패킷 또는 일반 플로우 패킷에 해당하는지 여부를 의미할 수 있다.Here, the link usage of one or more flow packets to be processed by the electronic device is assigned to an output interface, and a link necessary for processing the one or more flow packets competing for the limited physical bandwidth of the corresponding output interface or the entire bandwidth of the corresponding output interface It may mean usage amount, and the priority of each flow packet may mean whether each flow packet corresponds to a QoS flow packet or a general flow packet.
즉, 전자 장치 내 트래픽 전송기의 특정의 출력 인터페이스 에 할당되어 해당 출력 인터페이스의 제한된 물리 대역폭 또는 해당 출력 인터페이스을 기준으로 한 전체 대역폭에 대해 경쟁하는 플로우 패킷들의 집합에 대한 QoS 제어를 고려하여 각 플로우 패킷을 위한 그룹 테이블 엔트리가 결정될 수 있다.That is, a specific output interface of a traffic transmitter in an electronic device. flow packets allocated to and contending for the limited physical bandwidth of the corresponding output interface or the total bandwidth based on the corresponding output interface A group table entry for each flow packet may be determined in consideration of QoS control for a set of .
구체적으로, 물리 출력 인터페이스 에 정의된 가상 인터페이스의 집합을 라 정의하고, QoS 플로우 패킷들을 위해 할당할 대역폭 비율을 이라 할 때, 링크 단위의 QoS 적용을 위해 전자 장치 내 트래픽 제어기는 다음과 같이 플로우 테이블 엔트리 및 그룹 테이블 엔트리를 구성할 수 있다.Specifically, the physical output interface set of virtual interfaces defined in , and the bandwidth ratio to be allocated for QoS flow packets , the traffic controller in the electronic device may configure a flow table entry and a group table entry as follows for QoS application in a link unit.
먼저 그룹 테이블에는 플로우 를 의 가상 인터페이스 로 전송하는 그룹 테이블 엔트리 를 처리하는 함수를 구성하고, 플로우 테이블 엔트리에는 를 처리하는 함수를 구성할 수 있다. 이는 플로우 를 출력 인터페이스 로 전송하는 기존의 플로우 테이블 엔트리 를 처리하는 함수에서 중간에 그룹 테이블 엔트리를 지정하기 위해 수정된 것일 수 있다.First, the group table has a flow cast virtual interface of Group table entry sent to , and the flow table entry contains You can compose a function that handles this is the flow the output interface Existing flow table entries to send to may be modified to specify an intermediate group table entry in the function that handles .
이 때 그룹 테이블 엔트리 는 하나 이상의 플로우 패킷들을 위한 제한된 물리 대역폭 또는 하나 이상의 플로우 패킷들에 대응되는 출력 인터페이스에 할당되는 전체 대역폭 중 사용 가능한 임계 대역폭을 동일하게 할당하기 위한 그룹 테이블 엔트리와, 하나 이상의 플로우 패킷들 중 우선순위가 높은 플로우 패킷들에 대한 특정의 대역폭을 할당하기 위한 그룹 테이블 엔트리, 및 하나 이상의 플로우 패킷들 중 우선순위가 낮은 플로우 패킷들에 대한 나머지 대역폭을 할당하기 위한 그룹 테이블 엔트리로서 구성될 수 있다.At this time, the group table entry Is a group table entry for equally allocating a limited physical bandwidth for one or more flow packets or an available critical bandwidth among the total bandwidth allocated to an output interface corresponding to one or more flow packets, and a priority among one or more flow packets It may be configured as a group table entry for allocating a specific bandwidth to flow packets having a high priority, and a group table entry for allocating the remaining bandwidth to flow packets having a low priority among one or more flow packets.
정리하면, 대역폭을 , 가상 인터페이스의 수를 k라 할 때 복수의 그룹 테이블 엔트리 에 대하여 다음과 같은 그룹 테이블 엔트리가 구성될 수 있다.In summary, the bandwidth , where k is the number of virtual interfaces, multiple group table entries For , the following group table entries can be configured.
: 대역폭 전체를 사용하도록 k개의 모든 가상 인터페이스를 출력 버킷으로 갖는 select 형식의 그룹 테이블 엔트리 : Bandwidth Group table entry of type select with all k virtual interfaces as output buckets for full use
: QoS 플로우 패킷을 위한 용도로 대역폭 를 사용하도록 개의 가상 인터페이스를 출력 버킷으로 갖는 select 형식의 그룹 테이블 엔트리 : Bandwidth for QoS flow packets to use group table entry of type select with virtual interfaces as output buckets
: 일반 플로우 패킷을 위한 용도로 대역폭 를 사용하도록 개의 가상 인터페이스를 출력 버킷으로 갖는 select 형식의 그룹 테이블 엔트리 : Bandwidth for normal flow packets to use group table entry of type select with virtual interfaces as output buckets
다양한 실시예들에 따르면, 동작 405에서, 전자 장치는 결정된 그룹 테이블 엔트리에 기반하여 플로우 패킷을 위한 대역폭을 판단할 수 있다. According to various embodiments, in
예를 들어, 플로우 패킷을 위한 대역폭은 동작 403에 따라 결정된 그룹 테이블 엔트리에 대응하는 대역폭으로 결정될 수 있다.For example, a bandwidth for a flow packet may be determined as a bandwidth corresponding to a group table entry determined according to
구체적으로, 물리 출력 인터페이스 에 대응되는 가상 인터페이스를 통해 처리되는 하나 이상의 플로우 패킷에 대하여, 해당 하나 이상의 플로우 패킷들을 위해 할당된 전체 물리 대역폭 중 사용 가능한 임계 대역폭 보다 하나 이상의 플로우 패킷들의 링크 사용량이 작은 경우, 전자 장치는 해당 하나 이상의 플로우 패킷들에 사용 가능한 임계 대역폭을 동일하게 할당하기 위한 그룹 테이블 엔트리를 결정할 수 있다. 이에 따라 전자 장치가 동작 405에 의해 처리하는 플로우 패킷 역시 물리 출력 인터페이스 의 사용 가능한 임계 대역폭에 대하여 동일하게 할당 받게 되며, 그 결과로 상기 사용 가능한 임계 대역폭이 동작 405에 따라 판단되는 대역폭일 수 있다. Specifically, the physical output interface For one or more flow packets processed through a virtual interface corresponding to , if the link usage of one or more flow packets is smaller than the available threshold bandwidth among the total physical bandwidth allocated for the corresponding one or more flow packets, the electronic device A group table entry for equally allocating usable threshold bandwidth to the above flow packets may be determined. Accordingly, the flow packet processed by the electronic device in
또는 구체적으로, 물리 출력 인터페이스 에 대응되는 가상 인터페이스를 통해 처리되는 하나 이상의 플로우 패킷에 대하여, 해당 하나 이상의 플로우 패킷들을 위해 할당된 전체 물리 대역폭 중 사용 가능한 임계 대역폭 보다 하나 이상의 플로우 패킷들의 링크 사용량이 큰 경우, 전자 장치가 동작 405에 의해 처리할 플로우 패킷의 우선순위에 따라 그룹 테이블이 달리 결정될 수 있으며, 그에 따른 대역폭 역시 달리 판단될 수 있다.Or specifically, the physical output interface For one or more flow packets processed through the virtual interface corresponding to , if the link usage of one or more flow packets is greater than the usable threshold bandwidth among the total physical bandwidth allocated for the corresponding one or more flow packets, the electronic device operates 405 The group table may be determined differently according to the priority of the flow packet to be processed by the , and the corresponding bandwidth may also be determined differently.
일 예로, 상기 하나 이상의 플로우 패킷들을 위해 할당된 전체 물리 대역폭 중 사용 가능한 임계 대역폭 보다 하나 이상의 플로우 패킷들의 링크 사용량이 큰 경우에 있어, 전자 장치가 동작 405에 의해 처리할 플로우 패킷이 상기 하나 이상의 플로우 패킷들 중 우선순위가 높은 플로우 패킷들에 포함된다면, 전자 장치는 사용 가능한 임계 대역폭 중에서 우선순위가 높은 플로우 패킷들에 우선적으로 제1 대역폭을 할당하기 위한 그룹 테이블 엔트리를 결정할 수 있다. 이에 따라 동작 405에 의해 처리하는 플로우 패킷은 상기 제1 대역폭을 할당 받게 되며, 그 결과로 상기 제1 대역폭이 동작 405에 따라 판단되는 대역폭일 수 있다.For example, in the case where the link usage of one or more flow packets is greater than the available threshold bandwidth among the total physical bandwidths allocated for the one or more flow packets, the flow packet to be processed by the electronic device in
또는 다른 일 예로, 상기 하나 이상의 플로우 패킷들을 위해 할당된 전체 물리 대역폭 중 사용 가능한 임계 대역폭 보다 하나 이상의 플로우 패킷들의 링크 사용량이 큰 경우에 있어, 전자 장치가 동작 405에 의해 처리할 플로우 패킷이 상기 하나 이상의 플로우 패킷들 중 우선순위가 낮은 플로우 패킷들에 포함된다면, 전자 장치는 사용 가능한 임계 대역폭 중에서 우선순위가 낮은 플로우 패킷들에 제2 대역폭을 할당하기 위한 그룹 테이블 엔트리를 결정할 수 있다. 이에 따라 동작 405에 의해 처리하는 플로우 패킷은 상기 제2 대역폭을 할당 받게 되며, 그 결과로 상기 제2 대역폭이 동작 405에 따라 판단되는 대역폭일 수 있다.Or, as another example, in the case where the link usage of one or more flow packets is greater than the available threshold bandwidth among all physical bandwidths allocated for the one or more flow packets, the flow packet to be processed by the electronic device in
이 때 상기 제1 대역폭 및 상기 제2 대역폭은 모두 상기 사용 가능한 임계 대역폭에 포함되는 대역폭으로서, 상기 제1 대역폭은 우선순위가 높은 플로우 패킷들을 위해 우선적으로 할당되는 대역폭을 의미하고 상기 제2 대역폭은 우선순위가 낮은 플로우 패킷들을 위해 할당되는 것으로서 상기 제1 대역폭을 제외하고 남은 대역폭을 의미할 수 있으며, 우선순위가 높은 플로우 패킷들을 위해 할당되는 상기 제1 대역폭은 우선순위가 낮은 플로우 패킷들을 위해 할당되는 상기 제2 대역폭 보다 큰 대역폭에 해당할 수 있다. 또한, 우선순위가 높은 플로우 패킷들과 우선순위가 낮은 플로우 패킷들은 모두 물리 출력 인터페이스 에 대응되는 가상 인터페이스를 통해 처리되는 하나 이상의 플로우 패킷에 포함되는 플로우 패킷으로서, 상기 하나 이상의 플로우 패킷 중 상기 우선순위가 높은 플로우 패킷들을 제외한 나머지 플로우 패킷들이 상기 우선순위가 낮은 플로우 패킷들이 될 수 있다. 즉, 물리 출력 인터페이스 에 대응되는 가상 인터페이스를 통해 처리되는 하나 이상의 플로우 패킷은 우선순위가 높거나 낮은 2개의 플로우 패킷 그룹으로 구분되어 구성될 수 있다.In this case, both the first bandwidth and the second bandwidth are bandwidths included in the available threshold bandwidth, and the first bandwidth means a bandwidth that is preferentially allocated for flow packets having a high priority, and the second bandwidth is It is allocated for flow packets with low priority, and may mean a remaining bandwidth excluding the first bandwidth. The first bandwidth allocated for flow packets with high priority is allocated for flow packets with low priority may correspond to a bandwidth greater than the second bandwidth. In addition, flow packets with high priority and flow packets with low priority are both connected to the physical output interface. As a flow packet included in one or more flow packets processed through a virtual interface corresponding to , among the one or more flow packets, flow packets other than flow packets with high priority may be flow packets with low priority. . That is, the physical output interface One or more flow packets processed through the virtual interface corresponding to may be configured by being divided into two flow packet groups having a high priority or a low priority.
전자 장치는 전자 장치가 처리하는 플로우 패킷들의 링크 사용량의 변경 상황에 따라 전술한 403 내지 405의 동작과 유사한 방식으로 플로우 테이블 엔트리, 그룹 테이블 엔트리 및 대역폭을 업데이트 할 수도 있다. 즉, 전자 장치는 전자 장치가 처리하는 플로우 패킷들의 업데이트 된 링크 사용량에 대한 정보를 확인할 수 있으며, 확인된 업데이트 된 링크 사용량이 하나 이상의 플로우 패킷들을 위해 할당된 전체 물리 대역폭 중 사용 가능한 임계 대역폭을 초과하는지 여부를 판단하여, 각 패킷들의 우선순위를 고려해 그룹 테이블 엔트리 및 대역폭을 업데이트 할 수 있다.The electronic device may update the flow table entry, the group table entry, and the bandwidth in a manner similar to
구체적으로, 전자 장치 내 트래픽 제어기는 주기 T 마다 트래픽 전송기로부터 링크 사용량을 위한 통계 정보를 수신할 수 있으며, 이를 바탕으로 물리 출력 인터페이스 의 링크 사용률, 를 통해 전송되는 개의 플로우 의 현재 링크 사용량을 측정할 수 있다. 플로우 의 우선순위를 , 요구 대역폭을 , 링크 사용량을 라 할 때, 트래픽 제어기는 트래픽 전송기의 플로우 테이블 엔트리 및 그룹 테이블 엔트리를 다음과 같이 업데이트 할 수 있다.Specifically, the traffic controller in the electronic device may receive statistical information for link usage from the traffic transmitter every period T, and based on this, the physical output interface of link utilization, transmitted through dog flow can measure the current link usage of flow the priority of , the required bandwidth , link usage , the traffic controller may update the flow table entry and the group table entry of the traffic transmitter as follows.
물리 출력 인터페이스 의 대역폭 를 QoS 플로우 패킷 용도로 만큼, 일반 플로우 패킷 용도로 만큼 분리 사용할 수 있도록 하는 의 사용률 임계치를 라 할 때, 전자 장치는physical output interface bandwidth of for QoS flow packets As much as for normal flow packet use so that it can be used separately the utilization threshold of When , the electronic device is
1) 의 링크 사용률이 보다 낮을 경우, 즉 인 경우, 각 플로우 를 매칭하는 플로우 테이블 엔트리의 action 필드를 그룹 테이블 엔트리 으로 설정하고(for ),One) link utilization of If lower than If , each flow the action field of the flow table entry that matches the group table entry set to (for ),
2) 의 링크 사용률이 보다 높을 경우, 즉 인 경우, 가 되도록 우선순위가 높은 개의 플로우 를 매칭하는 각 플로우 테이블 엔트리의 action 필드를 그룹 테이블 엔트리 로 설정하며(for ), 우선순위가 낮은 개의 플로우 를 매칭하는 각 플로우 테이블 엔트리의 action 필드를 그룹 테이블 엔트리 로 설정할 수 있다(for ).2) link utilization of higher than that, i.e. If have a high priority so that dog flow the action field of each flow table entry that matches the group table entry set to (for ), with low priority dog flow the action field of each flow table entry that matches the group table entry can be set as (for ).
전자 장치는 위와 같은 방식으로 각 플로우를 위한 플로우 테이블 엔트리 및 그룹 테이블 엔트리를 업데이트 할 수 있으며, 그에 따른 대역폭 할당 역시 업데이트 할 수 있다.The electronic device may update the flow table entry and the group table entry for each flow in the above manner, and may also update bandwidth allocation accordingly.
다양한 실시예들에 따르면, 동작 407에서, 전자 장치는 판단된 대역폭에 기반하여 플로우 패킷을 전송할 수 있다. According to various embodiments, in
예를 들어, 전자 장치는 동작 401 내지 405의 실시예에 따라 판단된 대역폭에 기반하여 플로우 패킷을 전송하는 것일 수 있다.For example, the electronic device may transmit a flow packet based on the bandwidth determined according to the embodiments of
예를 들어, 전자 장치는 판단된 대역폭에 기반하여 다음 인접 네트워크 장치로 플로우 패킷을 전송하는 것일 수 있다.For example, the electronic device may transmit a flow packet to the next adjacent network device based on the determined bandwidth.
표 1은 50MBps의 제한된 출력 링크에 대해 전체 가상 인터페이스의 수 k를 5개로, QoS 플로우 대역폭의 비율 및 링크 사용률 임계치 를 각각 0.8로 설정한 경우에 있어서, 요구 대역폭 및 클라이언트의 설정 속도가 10MBps로 동일한 10개의 플로우에 대한 대역폭 할당의 예시를 나타낸 것이다. 표 1의 1 단계에서는 4개의 플로우만 생성되고, 2 단계에서는 10개의 모든 플로우가 생성되며, 3 단계에서는 플로우가 종료되고(유휴), 4 단계에서는 추가적으로 플로우가 종료된다.Table 1 shows that the total number of virtual interfaces, k , is 5 for a limited output link of 50 MBps, and the percentage of QoS flow bandwidth and link utilization threshold In the case where is set to 0.8, respectively, an example of bandwidth allocation for 10 flows with the same requested bandwidth and client set speed of 10 MBps is shown. In step 1 of Table 1, Only 4 flows are created, and in step 2 All 10 flows are created, and in step 3 The flow ends (idle), and step 4 additionally flow ends.
1 단계에서는, 또는 와 달리 과 플로우가 동일한 가상 인터페이스에 할당되어 처리 속도의 저하가 나타났음을 확인할 수 있다. 2 단계에서는 플로우의 총 사용량이 링크 사용율 임계치를 초과하여, 플로우의 우선순위에 따라 QoS 플로우()와 일반 플로우()로 대역폭이 분배되었음을 확인할 수 있다. 또한 3 단계에서는 플로우가 유휴 플로우가 되어 플로우가 QoS 플로우로 설정되었으며, 4 단계에서는 유휴가 아닌 플로우의 총 사용량이 다시 링크 사용률 임계치 미만이 되어, 그룹 테이블 엔트리에 의해 전체 대역폭을 할당받게 된다.In step 1, or unlike class It can be confirmed that the flow is assigned to the same virtual interface and the processing speed is reduced. In step 2, the total usage of the flow exceeds the link utilization threshold, so the QoS flow ( ) and normal flow ( ), it can be confirmed that the bandwidth is distributed. Also in step 3 The flow becomes an idle flow Flow is set as QoS flow, step 4 is non-idle The flow's total usage is again below the link utilization threshold, The entire bandwidth is allocated by the group table entry.
도 5는 본 발명의 다양한 실시예들을 수행하기 위한 전자 장치 내 트래픽 전송기의 플로우 패킷 처리 과정을 나타내는 도면이다.5 is a diagram illustrating a flow packet processing process of a traffic transmitter in an electronic device for performing various embodiments of the present invention.
도 5에서, 트래픽 전송기의 입력 인터페이스로 입력된 플로우 패킷은, 플로우 테이블 엔트리에 포함된 플로우 테이블 엔트리 및 그룹 테이블 엔트리에 포함된 그룹 테이블 엔트리를 지정 받는 과정을 거쳐 대역폭을 할당 받을 수 있으며, 할당된 대역폭에 기반하여 출력 인터페이스로 출력될 수 있다. 일 예로, 플로우 테이블 엔트리에는 플로우 패킷의 매칭을 위한 매칭 필드, 플로우 패킷의 바이트 수를 위한 카운터 필드 및 그룹 테이블 엔트리 지정을 위한 행동(action) 필드가 포함될 수 있으며, 그룹 테이블 엔트리는 select 형식으로 구성되어 가상 인터페이스 집합과 관련된 엔트리 버킷을 위한 버킷 리스트 필드가 포함될 수 있다. 도 5에 따라 플로우 패킷이 플로우 테이블 엔트리 및 그룹 테이블 엔트리를 지정 받는 과정은 도 4에 기반한 전자 장치의 다양한 실시예들에 따라 수행될 수 있다.In FIG. 5, flow packets input through the input interface of the traffic transmitter can be allocated bandwidth through a process of designating flow table entries included in flow table entries and group table entries included in group table entries, and It can be output to the output interface based on the bandwidth. For example, a flow table entry may include a matching field for matching flow packets, a counter field for the number of bytes in flow packets, and an action field for designating a group table entry. The group table entry is configured in a select format and may include bucket list fields for entry buckets associated with the set of virtual interfaces. The process of designating a flow table entry and a group table entry for a flow packet according to FIG. 5 may be performed according to various embodiments of the electronic device based on FIG. 4 .
이상에서 전술한 본 발명의 실시예들에 따르면, SDN 환경에서 높은 우선순위의 플로우에 대해 더 많은 링크 대역폭을 할당하여 주요 서비스의 품질을 보호하면서도, 우선순위가 낮은 플로우에 대해 최소한의 서비스를 유지할 수 있다. 또한, 플로우의 요구 대역폭이 아닌 실제 사용량에 기반한 대역폭 할당을 수행함으로써 플로우의 유휴 사용량을 동적으로 다른 플로우에 재분배하여 전반적인 링크의 사용률을 제고할 수 있다. 일 예로, 우선순위가 높은 플로우의 사용량이 줄면 낮은 우선순위의 플로우가 QoS 플로우 집합에 포함되어 QoS 플로우를 위한 대역폭을 사용할 수 있으며, 반대로 높은 우선순위의 플로우 사용량이 커지면 낮은 우선순위의 플로우에 할당될 대역폭이 QoS 용 대역폭이 높은 우선순위의 플로우를 위해 사용될 수 있다. 본 발명에서는, 전술한 가상 인터페이스의 수, QoS 대역폭 비율, QoS 플로우 및 일반 플로우 용 대역폭을 분리하여 사용할 링크의 사용률 임계값 등의 파라미터를 실제 통신 및 데이터 처리 환경에 맞춰 조절 또는 적용하여 통신 및 데이터 처리에 대한 효용을 높일 수 있다.According to the embodiments of the present invention described above, in an SDN environment, more link bandwidth is allocated to high-priority flows to protect the quality of main services, while maintaining minimum service for low-priority flows. can In addition, by performing bandwidth allocation based on the actual usage rather than the requested bandwidth of the flow, the idle usage of the flow can be dynamically redistributed to other flows to improve overall link usage. For example, when the usage of high-priority flows decreases, low-priority flows are included in the QoS flow set to use bandwidth for QoS flows. The bandwidth to be used may be used for high-priority flows with bandwidth for QoS. In the present invention, parameters such as the number of virtual interfaces, QoS bandwidth ratio, bandwidth for QoS flow and general flow are separated and used, and the parameters such as the utilization threshold of the link are adjusted or applied according to the actual communication and data processing environment to achieve communication and data efficiency of treatment can be increased.
본 명세서와 도면에 개시된 본 발명의 실시예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 즉 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명의 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한 상기 각각의 실시 예는 필요에 따라 서로 조합되어 운용할 수 있다. 예컨대, 본 발명의 모든 실시 예는 일부분들이 서로 조합되어 시스템에 의해 구현될 수 있다.Embodiments of the present invention disclosed in this specification and drawings are only presented as specific examples to easily explain the technical content of the present invention and help understanding of the present invention, and are not intended to limit the scope of the present invention. That is, it is obvious to those skilled in the art that other modified examples based on the technical idea of the present invention can be implemented. In addition, each of the above embodiments can be operated in combination with each other as needed. For example, all embodiments of the present invention may be implemented by a system in which parts are combined with each other.
또한, 본 발명에 따른 시스템 등에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다.In addition, the method according to the system according to the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium.
이와 같이, 본 발명의 다양한 실시예들은 특정 관점에서 컴퓨터 리드 가능 기록 매체(computer readable recording medium)에서 컴퓨터 리드 가능 코드(computer readable code)로서 구현될 수 있다. 컴퓨터 리드 가능 기록 매체는 컴퓨터 시스템에 의해 리드될 수 있는 데이터를 저장할 수 있는 임의의 데이터 저장 디바이스이다. 컴퓨터 리드 가능 기록 매체의 예들은 읽기 전용 메모리(read only memory: ROM)와, 랜덤-접속 메모리(random access memory: RAM)와, 컴팩트 디스크- 리드 온니 메모리(compact disk-read only memory: CD-ROM)들과, 마그네틱 테이프(magnetic tape)들과, 플로피 디스크(floppy disk)들과, 광 데이터 저장 디바이스들, 및 캐리어 웨이브(carrier wave)들(인터넷을 통한 데이터 송신 등)을 포함할 수 있다. 컴퓨터 리드 가능 기록 매체는 또한 네트워크 연결된 컴퓨터 시스템들을 통해 분산될 수 있고, 따라서 컴퓨터 리드 가능 코드는 분산 방식으로 저장 및 실행된다. 또한, 본 발명의 다양한 실시예들을 성취하기 위한 기능적 프로그램들, 코드, 및 코드 세그먼트(segment)들은 본 발명이 적용되는 분야에서 숙련된 프로그래머들에 의해 쉽게 해석될 수 있다.As such, various embodiments of the present invention may be implemented as computer readable codes in a computer readable recording medium from a specific point of view. A computer readable recording medium is any data storage device capable of storing data readable by a computer system. Examples of computer readable recording media include read only memory (ROM), random access memory (RAM), and compact disk-read only memory (CD-ROM). ), magnetic tapes, floppy disks, optical data storage devices, and carrier waves (such as data transmission over the Internet). The computer readable recording medium may also be distributed across networked computer systems, so that computer readable code is stored and executed in a distributed manner. In addition, functional programs, code, and code segments for achieving various embodiments of the present invention can be easily interpreted by programmers skilled in the field to which the present invention is applied.
또한 본 발명의 다양한 실시예들에 따른 장치 및 방법은 하드웨어, 소프트웨어 또는 하드웨어 및 소프트웨어의 조합의 형태로 실현 가능하다는 것을 알 수 있을 것이다. 이러한 소프트웨어는 예를 들어, 삭제 가능 또는 재 기록 가능 여부와 상관없이, ROM 등의 저장 장치와 같은 휘발성 또는 비 휘발성 저장 장치, 또는 예를 들어, RAM, 메모리 칩, 장치 또는 집적 회로와 같은 메모리, 또는 예를 들어 콤팩트 디스크(compact disk: CD), DVD, 자기 디스크 또는 자기 테이프 등과 같은 광학 또는 자기적으로 기록 가능함과 동시에 기계(예를 들어, 컴퓨터)로 읽을 수 있는 저장 매체에 저장될 수 있다. 본 발명의 다양한 실시예들에 따른 방법은 제어부 및 메모리를 포함하는 컴퓨터 또는 이와 같은 메모리 또는 컴퓨터를 포함한 차량 등에 의해 구현될 수 있고, 이러한 메모리는 본 발명의 실시예들을 구현하는 명령들을 포함하는 프로그램 또는 프로그램들을 저장하기에 적합한 기계로 읽을 수 있는 저장 매체의 한 예임을 알 수 있을 것이다. It will also be appreciated that the apparatus and method according to various embodiments of the present invention can be realized in the form of hardware, software, or a combination of hardware and software. Such software may include, for example, volatile or non-volatile storage devices such as ROM, whether erased or rewritable, or memory, such as RAM, memory chips, devices or integrated circuits, Or, for example, a compact disk (CD), DVD, magnetic disk or magnetic tape, such as optically or magnetically recordable and at the same time machine (eg, computer) readable storage medium may be stored. . Methods according to various embodiments of the present invention may be implemented by a computer including a control unit and a memory, or a vehicle including such a memory or computer, and the memory may include a program including instructions for implementing the embodiments of the present invention. or an example of a machine-readable storage medium suitable for storing programs.
따라서, 본 발명은 본 명세서의 청구항에 기재된 장치 또는 방법을 구현하기 위한 코드를 포함하는 프로그램 및 이러한 프로그램을 저장하는 기계(컴퓨터 등)로 읽을 수 있는 저장 매체를 포함한다. 또한, 이러한 프로그램은 유선 또는 무선 연결을 통해 전달되는 통신 신호와 같은 임의의 매체를 통해 전자적으로 이송될 수 있고, 본 발명은 이와 균등한 것을 적절하게 포함한다.Accordingly, the present invention includes a program including code for implementing the device or method described in the claims of this specification and a storage medium readable by a machine (such as a computer) storing such a program. In addition, such a program may be transmitted electronically through any medium, such as a communication signal transmitted through a wired or wireless connection, and the present invention appropriately includes equivalents thereto.
상기에서는 본 발명의 실시예들을 참조하여 설명하였지만, 본 명세서와 도면에 개시된 본 발명의 실시예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며 본 발명의 범위를 한정하고자 하는 것은 아니다. 또한 앞서 설명된 본 발명에 따른 실시예들은 예시적인 것에 불과하며, 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 범위의 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 다음의 특허청구범위에 의해서 정해져야 할 것이다.Although the above has been described with reference to the embodiments of the present invention, the embodiments of the present invention disclosed in this specification and drawings are only presented as specific examples to easily explain the technical content of the present invention and help understanding of the present invention. It is not intended to limit the scope of In addition, the embodiments according to the present invention described above are merely illustrative, and those skilled in the art will understand that various modifications and embodiments of equivalent scope are possible therefrom. Therefore, the true technical protection scope of the present invention should be defined by the following claims.
Claims (10)
데이터 전송을 위한 플로우 패킷을 확인하는 단계;
복수의 그룹 테이블 엔트리 중 상기 플로우 패킷에 대응하는 그룹 테이블 엔트리를 결정하는 단계;
상기 그룹 테이블 엔트리에 기반하여 상기 플로우 패킷을 위한 대역폭을 판단하는 단계; 및
상기 대역폭에 기반하여 상기 플로우 패킷을 전송하는 단계를 포함하고,
상기 복수의 그룹 테이블 엔트리는, 상기 플로우 패킷이 포함된 하나 이상의 플로우 패킷들을 위해 할당된 전체 대역폭 중 사용 가능한 임계 대역폭을 상기 하나 이상의 플로우 패킷들에 대하여 동일하게 할당하기 위한 제1 그룹 테이블 엔트리, 상기 하나 이상의 플로우 패킷들 중 우선순위가 높은 제1 플로우 패킷들에 대하여 제1 대역폭을 할당하기 위한 제2 그룹 테이블 엔트리, 및 상기 하나 이상의 플로우 패킷들 중 우선순위가 낮은 제2 플로우 패킷들에 대하여 제2 대역폭을 할당하기 위한 제3 그룹 테이블 엔트리를 포함하며,
상기 그룹 테이블 엔트리는, 상기 하나 이상의 플로우 패킷들의 링크(link) 사용량과 상기 사용 가능한 임계 대역폭의 비교 결과, 및 상기 하나 이상의 플로우 패킷들에 포함된 개별 플로우 패킷에 설정되는 우선순위에 기반하여 상기 복수의 그룹 테이블 엔트리 중에서 상기 플로우 패킷에 대응해 결정되는,
플로우 패킷 처리 방법.A method for processing a flow packet by an electronic device,
Checking a flow packet for data transmission;
determining a group table entry corresponding to the flow packet from among a plurality of group table entries;
determining a bandwidth for the flow packet based on the group table entry; and
Transmitting the flow packet based on the bandwidth;
The plurality of group table entries include a first group table entry for equally allocating, to the one or more flow packets, an available threshold bandwidth among total bandwidths allocated for one or more flow packets including the flow packet; A second group table entry for allocating a first bandwidth to first flow packets having a higher priority among one or more flow packets, and a second group table entry for second flow packets having a lower priority among the one or more flow packets 2 a third group table entry for allocating bandwidth;
The group table entry is based on a result of comparing link usage of the one or more flow packets with the usable threshold bandwidth, and priorities set for individual flow packets included in the one or more flow packets. Determined in correspondence with the flow packet among the group table entries of
How to process flow packets.
상기 링크 사용량이 상기 사용 가능한 임계 대역폭 보다 작은 경우, 상기 그룹 테이블 엔트리는 상기 제1 그룹 테이블 엔트리로 결정되고,
상기 사용 가능한 임계 대역폭이 상기 대역폭으로 판단되는,
플로우 패킷 처리 방법.According to claim 1,
When the link usage is less than the usable threshold bandwidth, the group table entry is determined as the first group table entry;
The usable threshold bandwidth is determined as the bandwidth,
How to process flow packets.
상기 링크 사용량이 상기 사용 가능한 임계 대역폭 보다 크고 상기 플로우 패킷이 상기 제1 플로우 패킷들에 포함되는 경우, 상기 그룹 테이블 엔트리는 상기 제2 그룹 테이블 엔트리로 결정되고,
상기 제1 대역폭이 상기 대역폭으로 판단되는,
플로우 패킷 처리 방법.According to claim 1,
When the link usage is greater than the usable threshold bandwidth and the flow packet is included in the first flow packets, the group table entry is determined as the second group table entry;
The first bandwidth is determined as the bandwidth,
How to process flow packets.
상기 링크 사용량이 상기 사용 가능한 임계 대역폭 보다 크고 상기 플로우 패킷이 상기 제2 플로우 패킷들에 포함되는 경우, 상기 그룹 테이블 엔트리는 상기 제3 그룹 테이블 엔트리로 결정되고,
상기 제2 대역폭이 상기 대역폭으로 판단되는,
플로우 패킷 처리 방법.According to claim 1,
When the link usage is greater than the usable threshold bandwidth and the flow packet is included in the second flow packets, the group table entry is determined as the third group table entry;
The second bandwidth is determined to be the bandwidth,
How to process flow packets.
상기 제1 대역폭 및 상기 제2 대역폭은 상기 사용 가능한 임계 대역폭에 포함되고,
상기 제2 대역폭은 상기 사용 가능한 임계 대역폭 중 상기 제1 대역폭을 제외하고 남은 대역폭이며,
상기 제1 대역폭은 상기 제2 대역폭 보다 크고,
상기 제2 플로우 패킷은 상기 하나 이상의 플로우 패킷들 중 상기 제1 플로우 패킷을 제외하고 남은 패킷인,
플로우 패킷 처리 방법.According to claim 1,
The first bandwidth and the second bandwidth are included in the usable threshold bandwidth,
The second bandwidth is a bandwidth remaining after excluding the first bandwidth from among the usable threshold bandwidth;
The first bandwidth is greater than the second bandwidth,
The second flow packet is a packet remaining except for the first flow packet among the one or more flow packets.
How to process flow packets.
상기 방법은,
복수의 플로우 테이블 엔트리 중 상기 플로우 패킷에 대응하는 플로우 테이블 엔트리를 결정하는 단계를 더 포함하고,
상기 플로우 테이블 엔트리는 상기 그룹 테이블 엔트리에 대한 정보를 포함하는,
플로우 패킷 처리 방법.According to claim 1,
The method,
Further comprising determining a flow table entry corresponding to the flow packet from among a plurality of flow table entries;
The flow table entry includes information about the group table entry,
How to process flow packets.
상기 방법은,
상기 하나 이상의 플로우 패킷들의 업데이트 된 링크 사용량에 대한 정보를 확인하는 단계;
상기 업데이트 된 링크 사용량이 상기 하나 이상의 플로우 패킷들을 위해 할당된 전체 대역폭 중 사용 가능한 임계 대역폭을 초과하는지 여부를 판단하는 단계; 및
상기 업데이트 된 링크 사용량이 상기 사용 가능한 임계 대역폭을 초과하는지 여부 및 상기 플로우 패킷의 우선순위에 기반하여, 상기 그룹 테이블 엔트리 및 상기 대역폭을 업데이트 하는 단계를 더 포함하는,
플로우 패킷 처리 방법.According to claim 1,
The method,
checking information on updated link usage of the one or more flow packets;
determining whether the updated link usage exceeds an available threshold bandwidth among all bandwidths allocated for the one or more flow packets; and
Further comprising updating the group table entry and the bandwidth based on whether the updated link usage exceeds the available threshold bandwidth and the priority of the flow packet.
How to process flow packets.
상기 플로우 패킷 처리 방법은:
데이터 전송을 위한 플로우 패킷을 확인하는 단계;
복수의 그룹 테이블 엔트리 중 상기 플로우 패킷에 대응하는 그룹 테이블 엔트리를 결정하는 단계;
상기 그룹 테이블 엔트리에 기반하여 상기 플로우 패킷을 위한 대역폭을 판단하는 단계; 및
상기 대역폭에 기반하여 상기 플로우 패킷을 전송하는 단계를 포함하고,
상기 복수의 그룹 테이블 엔트리는, 상기 플로우 패킷이 포함된 하나 이상의 플로우 패킷들을 위해 할당된 전체 대역폭 중 사용 가능한 임계 대역폭을 상기 하나 이상의 플로우 패킷들에 대하여 동일하게 할당하기 위한 제1 그룹 테이블 엔트리, 상기 하나 이상의 플로우 패킷들 중 우선순위가 높은 제1 플로우 패킷들에 대하여 제1 대역폭을 할당하기 위한 제2 그룹 테이블 엔트리, 및 상기 하나 이상의 플로우 패킷들 중 우선순위가 낮은 제2 플로우 패킷들에 대하여 제2 대역폭을 할당하기 위한 제3 그룹 테이블 엔트리를 포함하며,
상기 그룹 테이블 엔트리는, 상기 하나 이상의 플로우 패킷들의 링크(link) 사용량과 상기 사용 가능한 임계 대역폭의 비교 결과, 및 상기 하나 이상의 플로우 패킷들에 포함된 개별 플로우 패킷에 설정되는 우선순위에 기반하여 상기 복수의 그룹 테이블 엔트리 중에서 상기 플로우 패킷에 대응해 결정되는 것을 특징으로 하는,
비일시적 컴퓨터 판독 가능 저장 매체.In a non-transitory computer-readable storage medium recording a program for executing a flow packet processing method,
The flow packet processing method:
Checking a flow packet for data transmission;
determining a group table entry corresponding to the flow packet from among a plurality of group table entries;
determining a bandwidth for the flow packet based on the group table entry; and
Transmitting the flow packet based on the bandwidth;
The plurality of group table entries include a first group table entry for equally allocating, to the one or more flow packets, an available threshold bandwidth among total bandwidths allocated for one or more flow packets including the flow packet; A second group table entry for allocating a first bandwidth to first flow packets having a higher priority among one or more flow packets, and a second group table entry for second flow packets having a lower priority among the one or more flow packets 2 a third group table entry for allocating bandwidth;
The group table entry is based on a result of comparing link usage of the one or more flow packets with the usable threshold bandwidth, and priorities set for individual flow packets included in the one or more flow packets. Characterized in that it is determined corresponding to the flow packet among the group table entries of
A non-transitory computer-readable storage medium.
프로세서 (processor); 및
하나 이상의 인스트럭션 (instruction)을 저장하는 하나 이상의 메모리 (memory)를 포함하고,
상기 하나 이상의 인스트럭션은, 실행 시에, 상기 프로세서가:
데이터 전송을 위한 플로우 패킷을 확인하는 단계;
복수의 그룹 테이블 엔트리 중 상기 플로우 패킷에 대응하는 그룹 테이블 엔트리를 결정하는 단계;
상기 그룹 테이블 엔트리에 기반하여 상기 플로우 패킷을 위한 대역폭을 판단하는 단계; 및
상기 대역폭에 기반하여 상기 플로우 패킷을 전송하는 단계를 수행하도록 상기 프로세서를 제어하고,
상기 복수의 그룹 테이블 엔트리는, 상기 플로우 패킷이 포함된 하나 이상의 플로우 패킷들을 위해 할당된 전체 대역폭 중 사용 가능한 임계 대역폭을 상기 하나 이상의 플로우 패킷들에 대하여 동일하게 할당하기 위한 제1 그룹 테이블 엔트리, 상기 하나 이상의 플로우 패킷들 중 우선순위가 높은 제1 플로우 패킷들에 대하여 제1 대역폭을 할당하기 위한 제2 그룹 테이블 엔트리, 및 상기 하나 이상의 플로우 패킷들 중 우선순위가 낮은 제2 플로우 패킷들에 대하여 제2 대역폭을 할당하기 위한 제3 그룹 테이블 엔트리를 포함하며,
상기 그룹 테이블 엔트리는, 상기 하나 이상의 플로우 패킷들의 링크(link) 사용량과 상기 사용 가능한 임계 대역폭의 비교 결과, 및 상기 하나 이상의 플로우 패킷들에 포함된 개별 플로우 패킷에 설정되는 우선순위에 기반하여 상기 복수의 그룹 테이블 엔트리 중에서 상기 플로우 패킷에 대응해 결정되는 것을 특징으로 하는,
전자 장치.In an electronic device that processes a flow packet,
processor; and
including one or more memories that store one or more instructions;
The one or more instructions, when executed, cause the processor to:
Checking a flow packet for data transmission;
determining a group table entry corresponding to the flow packet from among a plurality of group table entries;
determining a bandwidth for the flow packet based on the group table entry; and
Controlling the processor to transmit the flow packet based on the bandwidth;
The plurality of group table entries include a first group table entry for equally allocating, to the one or more flow packets, an available threshold bandwidth among total bandwidths allocated for one or more flow packets including the flow packet; A second group table entry for allocating a first bandwidth to first flow packets having a higher priority among one or more flow packets, and a second group table entry for second flow packets having a lower priority among the one or more flow packets 2 a third group table entry for allocating bandwidth;
The group table entry is based on a result of comparing link usage of the one or more flow packets with the usable threshold bandwidth, and priorities set for individual flow packets included in the one or more flow packets. Characterized in that it is determined corresponding to the flow packet among the group table entries of
electronic device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210065456A KR102545202B1 (en) | 2021-05-21 | 2021-05-21 | Operating method for electronic apparatus for processing flow packet and electronic apparatus supporting thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210065456A KR102545202B1 (en) | 2021-05-21 | 2021-05-21 | Operating method for electronic apparatus for processing flow packet and electronic apparatus supporting thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220157664A KR20220157664A (en) | 2022-11-29 |
KR102545202B1 true KR102545202B1 (en) | 2023-06-20 |
Family
ID=84235079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210065456A KR102545202B1 (en) | 2021-05-21 | 2021-05-21 | Operating method for electronic apparatus for processing flow packet and electronic apparatus supporting thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102545202B1 (en) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100775427B1 (en) * | 2005-12-12 | 2007-11-12 | 삼성전자주식회사 | System and Method for Bandwidth Allocation In GPON |
KR102098371B1 (en) * | 2014-08-27 | 2020-04-07 | 한국전자통신연구원 | Network device and Method for processing a packet in the same device |
KR20170033179A (en) * | 2015-09-16 | 2017-03-24 | 한국전자통신연구원 | Method and apparatus for managing bandwidth of virtual networks on SDN |
KR20200008462A (en) * | 2018-07-16 | 2020-01-28 | 주식회사 케이티 | Method for controlling dynamic traffic control of Virtual Network Function and host server using the same |
-
2021
- 2021-05-21 KR KR1020210065456A patent/KR102545202B1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20220157664A (en) | 2022-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107113290B (en) | Method and system for bandwidth management | |
US20210014177A1 (en) | Deterministic packet scheduling and dma for time sensitive networking | |
CN110691370B (en) | Data transmission method, device and system | |
CN108471629B (en) | Method, equipment and system for controlling service quality in transmission network | |
US20200195528A1 (en) | Time sensitive networking in a microservice environment | |
US10860374B2 (en) | Real-time local and global datacenter network optimizations based on platform telemetry data | |
US10034222B2 (en) | System and method for mapping a service-level topology to a service-specific data plane logical topology | |
KR101826725B1 (en) | Technologies for network device flow lookup management | |
US20240134680A1 (en) | Technologies for scheduling time sensitive cyclical network traffic in real-time | |
CN107231662A (en) | The method and apparatus of multiple stream transmission in a kind of SDN | |
CN105706044A (en) | Work conserving scheduler based on ranking | |
TW201338470A (en) | System and method for performing packet queuing on a client device using packet service classifications | |
WO2019061169A1 (en) | Route selection method and device based on hybrid resources, and server | |
JP2015527755A (en) | QoS control system, QoS control method and program | |
US20120042054A1 (en) | System and Method for Virtual Switch Architecture to Enable Heterogeneous Network Interface Cards within a Server Domain | |
US9641390B2 (en) | Automatic configuration of switch port settings based on the device attached to the switch port | |
CN108476175B (en) | Transfer SDN traffic engineering method and system using dual variables | |
CN105247873B (en) | For transmitting the method, system and computer-readable program medium of content file | |
CN113994321A (en) | Mapping NVME packets on a fabric using virtual output queues | |
US10735891B1 (en) | Cognitively controlling data delivery | |
JP2016010138A (en) | Communication device, communication system, and communication method | |
TWI643478B (en) | Software defined network (sdn) controller and network service allocating system and method | |
WO2019105469A1 (en) | Path selection method and device | |
KR102545202B1 (en) | Operating method for electronic apparatus for processing flow packet and electronic apparatus supporting thereof | |
US20220374259A1 (en) | Application-centric design for 5g and edge computing applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |