[go: up one dir, main page]

KR20190028059A - Apparatus and method for controlling traffic in openflow network - Google Patents

Apparatus and method for controlling traffic in openflow network Download PDF

Info

Publication number
KR20190028059A
KR20190028059A KR1020170115036A KR20170115036A KR20190028059A KR 20190028059 A KR20190028059 A KR 20190028059A KR 1020170115036 A KR1020170115036 A KR 1020170115036A KR 20170115036 A KR20170115036 A KR 20170115036A KR 20190028059 A KR20190028059 A KR 20190028059A
Authority
KR
South Korea
Prior art keywords
traffic
information
application program
bandwidth
firewall
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
KR1020170115036A
Other languages
Korean (ko)
Inventor
홍원기
정세연
이도영
Original Assignee
포항공과대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 포항공과대학교 산학협력단 filed Critical 포항공과대학교 산학협력단
Priority to KR1020170115036A priority Critical patent/KR20190028059A/en
Publication of KR20190028059A publication Critical patent/KR20190028059A/en
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2475Traffic characterised by specific attributes, e.g. priority or QoS for supporting traffic characterised by the type of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/645Splitting route computation layer and forwarding layer, e.g. routing according to path computational element [PCE] or based on OpenFlow functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

오픈플로우(openflow) 컨트롤러로부터 트래픽(traffic)의 포트 번호를 포함하는 첫 번째 패킷을 수신하는 단계, 첫 번째 패킷을 기초로 트래픽의 포트 번호 또는 심층 패킷 분석(Deep Packet Inspecton, DPI)을 이용하여 트래픽을 발생시킨 응용프로그램의 정보를 인지하는 단계 및 응용프로그램의 정보 및 방화벽 정책 테이블을 기초로 트래픽에 대한 방화벽 정보를 포함하는 플로우 룰(rule)을 생성하는 단계를 포함하는 트래픽 제어 방법이 개시된다. 본 발명은 방화벽 정보가 드랍이 아닌 경우, 트래픽에 대한 대역폭 제한 정보 및 우선 순위 큐 정보를 상기 플로우 룰에 추가하는 단계를 더 포함할 수 있으므로, 관리자의 의도에 따라 특정 응용프로그램의 트래픽을 제어할 수 있다.Receiving a first packet including a port number of a traffic from an open flow controller, receiving a traffic packet using a port number of the traffic or a Deep Packet Inspection (DPI) based on the first packet, And generating a flow rule including firewall information on the traffic based on the information of the application program and the firewall policy table. The present invention can further include adding bandwidth limiting information and priority queue information for traffic to the flow rule when the firewall information is not dropping, so that traffic of a specific application program is controlled according to the intention of the administrator .

Figure P1020170115036
Figure P1020170115036

Description

오픈플로우 네트워크에서 트래픽을 제어하는 장치 및 방법{APPARATUS AND METHOD FOR CONTROLLING TRAFFIC IN OPENFLOW NETWORK}[0001] APPARATUS AND METHOD FOR CONTROLLING TRAFFIC IN OPENFLOW NETWORK [0002]

본 발명은 오픈플로우(OpenFlow) 네트워크에서 트래픽을 제어하는 장치 및 방법에 관한 것으로, 더욱 상세하게는 오픈플로우 네트워크에서 심층 패킷 분석(Deep Packet Inspection, DPI)을 기반으로 방화벽, 대역폭 제한 및 우선 순위 큐를 설정하여 차등화 서비스를 수행하는 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for controlling traffic in an OpenFlow network, and more particularly to an apparatus and method for controlling traffic in an OpenFlow network. More particularly, the present invention relates to an apparatus and method for controlling traffic in an open flow network, To a device and a method for performing a grading service.

최근 네트워크의 규모가 증가함에 따라 트래픽 량도 함께 증가하고 있다. 또한, 각 네트워크 서비스들은 일정 수준의 QoS(Quality of Service)를 보장하기 위해 많은 네트워크 대역폭을 요구하고 있으므로, 많은 네트워크에서 트래픽을 효과적으로 관리하기 위한 방법이 요구되고 있다. 하지만, 기존 네트워크 환경에서는 트래픽 제어를 위한 네트워크 관리 환경이 폐쇄적이며, 제한된 인터페이스만을 제공하고 있으므로, 비용 및 운영 측면에서 어려움을 겪고 있다. 따라서, 이러한 문제를 해결하기 위해 통신사업자 망이나 인터넷 데이터센터(Internet Data Center, IDC) 등에 SDN(Software Defined Networks) 환경을 구축하여 트래픽을 제어하기 위한 노력이 지속되고 있다. SDN은 차세대 네트워크 기술의 하나로 네트워크를 제어 평면(control plane)과 데이터 평면(data plane)으로 분리하여 유연하고 효율적인 네트워크 관리 기능을 제공하는 기술이다. 오픈플로우(OpenFlow)는 SDN에서 사용되는 사실상의 표준 통신 프로토콜이며, L4 네트워크 계층을 지원하기 때문에, 응용프로그램을 식별할 수 있는 TCP/UDP 포트 번호를 플로우 룰에 삽입함으로써 특정 응용프로그램의 트래픽을 관리 할 수 있다.Recently, as the size of network increases, traffic volume also increases. In addition, since each network service requires a large amount of network bandwidth to guarantee a certain quality of service (QoS), a method for effectively managing traffic in many networks is required. However, in the existing network environment, since the network management environment for traffic control is closed and only a limited interface is provided, it is difficult in terms of cost and operation. Therefore, in order to solve such a problem, an attempt has been made to control traffic by establishing SDN (Software Defined Networks) environment in a service provider network or an Internet data center (IDC). SDN is a next-generation network technology that divides a network into a control plane and a data plane to provide a flexible and efficient network management function. OpenFlow is a de facto standard communication protocol used in SDN. It supports L4 network layer, so it inserts TCP / UDP port number that can identify application into flow rule to manage traffic of specific application can do.

여기서, 특정 응용프로그램의 트래픽 관리는 트래픽을 발생시킨 응용프로그램(application) 또는 네트워크 프로토콜(protocol)을 식별한 후, 해당 트래픽에 대하여 관리를 수행하게 되나, 약속된 TCP/UDP 포트번호를 사용하지 않고 임의의 TCP/UDP 포트번호를 사용하는 응용프로그램은 식별하기 어려우며, 트래픽 관리도 어려운 문제점이 있다.Here, the traffic management of a specific application program identifies an application or a network protocol that has generated the traffic, and then manages the traffic. However, it does not use the promised TCP / UDP port number An application program using an arbitrary TCP / UDP port number is difficult to identify, and traffic management is also difficult.

상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 오픈플로우에서 응용프로그램이 약속된 TCP/UDP 포트번호를 사용하지 않을 경우 심층 패킷 분석을 이용하여 트래픽을 제어하는 방법을 제공하는 데 있다.In order to solve the above problems, an object of the present invention is to provide a method of controlling traffic using deep packet analysis when an application program does not use the promised TCP / UDP port number in an open flow.

상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은 오픈플로우에서 응용프로그램이 약속된 TCP/UDP 포트번호를 사용하지 않을 경우 심층 패킷 분석을 이용하여 트래픽을 제어하는 장치를 제공하는 데 있다.Another object of the present invention is to provide an apparatus for controlling traffic using deep packet analysis when an application program does not use the promised TCP / UDP port number in an open flow.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 트래픽 제어 방법은, 오픈플로우(openflow) 컨트롤러로부터 트래픽(traffic)의 포트 번호를 포함하는 첫 번째 패킷을 수신하는 단계, 첫 번째 패킷을 기초로 트래픽의 포트 번호 또는 심층 패킷 분석(Deep Packet Inspecton, DPI)을 이용하여 트래픽을 발생시킨 응용프로그램의 정보를 인지하는 단계, 및 응용프로그램의 정보 및 방화벽 정책 테이블을 기초로 트래픽을 포워딩(forwarding)할 것인지 또는 드랍(drop)할 것인지에 대하여 결정하는 트래픽에 대한 방화벽 정보를 포함하는 플로우 룰(rule)을 생성하는 단계를 포함할 수 있다.According to an aspect of the present invention, there is provided a traffic control method comprising: receiving a first packet including a port number of traffic from an open flow controller; Recognizing information of an application program that has generated traffic using a port number of traffic or a deep packet inspection (DPI), and forwarding traffic based on information of an application program and a firewall policy table And generating a flow rule including firewall information for the traffic that determines whether to drop or drop the packet.

여기서, 트래픽을 발생시킨 응용프로그램의 정보를 인지하는 단계는, 트래픽의 포트 번호를 기초로 응용프로그램의 정보가 인지되는지에 따라 트래픽을 분류하는 단계를 포함할 수 있다.Herein, recognizing the information of the application program that has generated the traffic may include classifying the traffic according to whether the information of the application program is recognized based on the port number of the traffic.

여기서, 트래픽을 발생시킨 응용프로그램의 정보를 인지하는 단계는, 트래픽의 포트 번호를 기초로 응용프로그램의 정보가 인지되는 트래픽은 응용프로그램의 정보를 인지하고, 트래픽의 포트 번호를 기초로 응용프로그램의 정보가 인지되지 않는 트래픽은 외부에 심층 패킷 분석을 요청하여 응용프로그램의 정보를 인지하는 단계를 더 포함할 수 있다.Herein, the step of recognizing the information of the application program that has generated the traffic includes recognizing the information of the application program based on the port number of the traffic and recognizing the information of the application program, The traffic for which the information is not recognized may further include a step of requesting the deep packet analysis to the outside to recognize the information of the application program.

여기서, 트래픽에 대한 방화벽 정보를 포함하는 플로우 룰을 생성하는 단계는, 방화벽 정책 테이블에서 응용프로그램의 정보를 기초로 방화벽 정책을 검색하는 단계, 및 검색 결과에 따른 방화벽 정보를 포함하는 플로우 룰을 생성하는 단계를 포함할 수 있다.Here, the step of generating a flow rule including firewall information on the traffic includes: searching a firewall policy based on information of an application program in the firewall policy table; and generating a flow rule including firewall information according to the search result .

여기서, 방화벽 정책이 드랍이 아닌 경우, 응용프로그램의 정보 및 대역폭 정책 테이블을 기초로 트래픽에 대한 대역폭 제한 정보를 플로우 룰에 추가하는 단계를 더 포함할 수 있다.Here, if the firewall policy is not a drop, it may further include adding bandwidth limitation information on the traffic to the flow rule based on the information of the application program and the bandwidth policy table.

여기서, 트래픽에 대한 대역폭 제한 정보를 플로우 룰에 추가하는 단계는, 대역폭 정책 테이블에서 응용프로그램의 정보를 기초로 대역폭 정책을 검색하는 단계, 및 검색 결과에 따른 대역폭 제한 정보를 플로우 룰에 추가하는 단계를 포함할 수 있다.Here, the step of adding the bandwidth limitation information on the traffic to the flow rule may include a step of searching a bandwidth policy based on the information of the application program in the bandwidth policy table, and a step of adding bandwidth limitation information according to the search result to the flow rule . ≪ / RTI >

여기서, 오픈플로우 컨트롤러로부터 플로우 통계를 수신하고, 수신한 플로우 통계를 기초로 대역폭 제한 정보의 대역폭 제한 값을 조절하는 단계를 더 포함할 수 있다.Here, the method may further include receiving flow statistics from the open flow controller and adjusting a bandwidth limitation value of the bandwidth limitation information based on the received flow statistics.

여기서, 응용프로그램의 정보 및 우선 순위 큐 정책 테이블을 기초로 트래픽에 대한 우선 순위 큐 정보를 플로우 룰에 추가하는 단계를 더 포함할 수 있다.Here, the method may further include adding priority queue information for the traffic to the flow rule based on the information of the application program and the priority queue policy table.

여기서, 트래픽에 대한 우선 순위 큐 정보를 플로우 룰에 추가하는 단계는, 우선 순위 큐 정책 테이블에서 응용프로그램의 정보를 기초로 우선 순위 큐 정책을 검색하는 단계, 및 검색 결과에 따른 우선 순위 큐 정보를 플로우 룰에 추가하는 단계를 포함할 수 있다.The step of adding the priority queue information to the flow rule includes searching the priority queue policy based on the information of the application program in the priority queue policy table, To the flow rule.

여기서, 우선 순위 큐 정보는, 큐 사용량 정보를 기초로 최소 사용량을 가지는 큐를 선택하고, 상기 선택한 큐로 패킷이 전달되기 위한 정보를 포함할 수 있다.Here, the priority queue information may include a queue having a minimum usage amount based on the queue usage information, and information for transferring the packet to the selected queue.

상기 다른 목적을 달성하기 위한 본 발명의 일 실시예에 따른 트래픽 제어 장치는, 오픈플로우(openflow) 컨트롤러로부터 트래픽(traffic)의 포트 번호를 포함하는 첫 번째 패킷을 수신하고, 첫 번째 패킷을 기초로 트래픽의 포트 번호 또는 심층 패킷 분석(Deep Packet Inspecton, DPI)을 이용하여 트래픽을 발생시킨 응용프로그램의 정보를 인지하는 트래픽 분류부, 및 응용프로그램의 정보 및 방화벽 정책 테이블을 기초로 트래픽을 포워딩(forwarding)할 것인지 또는 드랍(drop)할 것인지에 대하여 결정하는 트래픽에 대한 방화벽 정보를 포함하는 플로우 룰(rule)을 생성하는 방화벽 관리부 포함할 수 있다.According to another aspect of the present invention, there is provided a traffic control apparatus for receiving a first packet including a port number of traffic from an open flow controller, A traffic classifier for recognizing information of an application program generating traffic using a port number of a traffic or a deep packet inspection (DPI), and a forwarding module for forwarding traffic based on an application program information and a firewall policy table And a firewall management unit for generating a flow rule including firewall information for traffic that determines whether to drop or drop the packet.

여기서, 트래픽 분류부는, 트래픽의 포트 번호를 기초로 응용프로그램의 정보가 인지되는지에 따라 트래픽을 분류할 수 있다.Here, the traffic classifier may classify the traffic according to whether application program information is recognized based on the port number of the traffic.

여기서, 트래픽 분류부는, 트래픽의 포트 번호를 기초로 응용프로그램의 정보가 인지되는 트래픽은 응용프로그램의 정보를 인지하고, 트래픽의 포트 번호를 기초로 응용프로그램의 정보가 인지되지 않는 트래픽은 외부에 심층 패킷 분석을 요청하여 응용프로그램의 정보를 인지할 수 있다.Here, the traffic classifier recognizes the information of the application program based on the port number of the traffic based on the port number of the traffic, recognizes the information of the application program, and the traffic whose application program information is not recognized based on the port number of the traffic, It can request the packet analysis and recognize the information of the application program.

여기서, 방화벽 관리부는, 방화벽 정책 테이블에서 응용프로그램의 정보를 기초로 방화벽 정책을 검색하고, 검색 결과에 따른 방화벽 정보를 포함하는 플로우 룰을 생성할 수 있다.Here, the firewall manager may search the firewall policy based on the information of the application program in the firewall policy table, and may generate the flow rule including the firewall information according to the search result.

여기서, 방화벽 정책이 드랍이 아닌 경우, 응용프로그램의 정보 및 대역폭 정책 테이블을 기초로 트래픽에 대한 대역폭 제한 정보를 플로우 룰에 추가하는 대역폭 관리부를 더 포함할 수 있다.Here, if the firewall policy is not drop, the bandwidth management unit may further include a bandwidth management unit for adding bandwidth limitation information on the traffic to the flow rule based on the information of the application program and the bandwidth policy table.

여기서, 대역폭 관리부는, 대역폭 정책 테이블에서 응용프로그램의 정보를 기초로 대역폭 정책을 검색하고, 검색 결과에 따른 대역폭 제한 정보를 플로우 룰에 추가할 수 있다.Here, the bandwidth manager may search the bandwidth policy based on the information of the application program in the bandwidth policy table, and add the bandwidth limitation information according to the search result to the flow rule.

여기서, 대역폭 관리부는, 오픈플로우 컨트롤러로부터 플로우 통계를 수신하고, 수신한 플로우 통계를 기초로 대역폭 제한 정보의 대역폭 제한 값을 조절할 수 있다.Here, the bandwidth management unit can receive the flow statistics from the open flow controller, and adjust the bandwidth limitation value of the bandwidth limitation information based on the received flow statistics.

여기서, 응용프로그램의 정보 및 우선 순위 큐 정책 테이블을 기초로 트래픽에 대한 우선 순위 큐 정보를 플로우 룰에 추가하는 트래픽 스케줄러를 더 포함할 수 있다.Here, the information processing apparatus may further include a traffic scheduler that adds priority queue information for the traffic to the flow rule based on the information of the application program and the priority queue policy table.

여기서, 트래픽 스케줄러는, 우선 순위 큐 정책 테이블에서 응용프로그램의 정보를 기초로 우선 순위 큐 정책을 검색하고, 검색 결과에 따른 우선 순위 큐 정보를 플로우 룰에 추가할 수 있다.Here, the traffic scheduler searches the priority queue policy based on the information of the application program in the priority queue policy table, and adds the priority queue information according to the search result to the flow rule.

여기서, 스위치 큐 통계 정보를 수신하고, 상기 수신한 스위치 큐 통계 정보를 기초로 큐 사용량 정보를 산출하는 네트워크 모니터를 더 포함하고, 우선 순위 큐 정보는, 큐 사용량 정보를 기초로 최소 사용량을 가지는 큐를 선택하고, 선택한 큐로 패킷이 전달되기 위한 정보를 포함할 수 있다.The network monitor further includes a network monitor that receives the switch queue statistical information and calculates queue usage information based on the received switch queue statistical information. The priority queue information includes a queue having a minimum usage amount based on the queue usage information And may include information for the packet to be delivered to the selected queue.

본 발명에 따르면, TCP/UDP 포트 번호가 동적으로 변경된 경우에도 심층 패킷 분석을 통해 트래픽을 발생시킨 응용프로그램을 식별할 수 있다.According to the present invention, even when the TCP / UDP port number is changed dynamically, it is possible to identify an application program that has generated traffic through deep packet analysis.

본 발명에 따르면, 네트워크 관리자에게 다양한 응용프로그램의 종류에 따라 트래픽 단위로 접근을 제어할 수 있는 기능을 제공할 수 있다.According to the present invention, it is possible to provide a network administrator with a function of controlling access in units of traffic according to various application programs.

본 발명에 따르면, 대역폭 제한 기능을 통해 네트워크 관리자에게 효과적인 네트워크 제어를 제공할 수 있다.According to the present invention, it is possible to provide effective network control to the network administrator through the bandwidth limitation function.

도 1은 본 발명의 일 실시예에 따른 트래픽 제어 장치의 블록 구성도이다.
도 2는 본 발명의 일 실시예에 따른 트래픽 제어 장치의 동작을 설명하는 개념도이다.
도 3은 본 발명의 일 실시예에 따른 트래픽 제어 방법을 설명하는 순서도이다.
도 4는 본 발명의 일 실시예에 따른 방화벽 정보를 포함하는 플로우 룰의 생성 방법을 설명하는 순서도이다.
도 5는 본 발명의 일 실시예에 따른 방화벽 정책을 나타낸 표이다.
도 6은 본 발명의 일 실시예에 따른 대역폭 제한 정보를 플로우 룰에 추가하는 방법을 설명하는 순서도이다.
도 7은 본 발명의 일 실시예에 따른 대역폭 정책을 나타낸 표이다.
도 8은 본 발명의 일 실시예에 따른 우선 순위 큐 정보를 플로우 룰에 추가하는 방법을 설명하는 순서도이다.
도 9는 본 발명의 일 실시예에 따른 운석 순위 큐 정책을 나타낸 표이다.
도 10은 본 발명의 일 실시예에 따른 트래픽 제어 방법을 시뮬레이션한 결과를 나타낸 도면이다.
도 11은 본 발명의 일 실시예에 따른 스위치 큐 기반의 차등화 서비스를 시뮬레이션한 결과를 나타낸 도면이다.
1 is a block diagram of a traffic control apparatus according to an embodiment of the present invention.
2 is a conceptual diagram illustrating an operation of a traffic control apparatus according to an embodiment of the present invention.
3 is a flowchart illustrating a traffic control method according to an embodiment of the present invention.
4 is a flowchart illustrating a method of generating a flow rule including firewall information according to an embodiment of the present invention.
FIG. 5 is a table illustrating a firewall policy according to an exemplary embodiment of the present invention. Referring to FIG.
6 is a flowchart illustrating a method of adding bandwidth limitation information to a flow rule according to an embodiment of the present invention.
7 is a table illustrating a bandwidth policy according to an embodiment of the present invention.
8 is a flowchart illustrating a method of adding priority queue information to a flow rule according to an embodiment of the present invention.
9 is a table showing a meteorological rank queue policy according to an embodiment of the present invention.
10 is a diagram illustrating a result of a simulation of a traffic control method according to an embodiment of the present invention.
11 is a diagram illustrating a simulation result of a switch queue-based differentiation service according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. "및/또는"이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. The terms first, second, A, B, etc. 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 a second component, and similarly, the second component may also be referred to as a first component. The term "and / or" includes any combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations 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 to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.

본 발명의 명세서에서 패킷(packet)은 데이터의 전송을 위해서 적당한 크기로 나누어진 데이터를 의미할 수 있고, 트래픽(traffic)은 특정 전송 상에서 일정 시간 내에 흐르는 데이터의 양을 의미할 수 있다. 또한, 토폴로지(topology)는 근거리 통신망(Local Area Network, LAN)에 장기간 접속한 형태를 의미할 수 있고, 프로토콜(protocol)은 컴퓨터 간에 정보를 원활하게 교환하기 위한 통신 규칙 및 약속을 의미할 수 있다.In the specification of the present invention, a packet may mean data divided into a proper size for transmission of data, and traffic may mean the amount of data flowing within a certain time on a specific transmission. In addition, the topology may refer to a form of long-term connection to a local area network (LAN), and a protocol may mean a communication rule and an appointment for smoothly exchanging information between computers .

TCP(Transmission Control Protocol)는 통신의 송신측과 수신측의 연결이 이루어진 것을 확인한 다음에 데이터를 전송하여 신뢰성이 요구되는 응용프로그램에서 사용될 수 있고, UDP(User Datagram Protocol)은 송신측과 수신측의 연결을 확인하지 않고 일방적으로 데이터를 전송하여 빠른 속도를 요구하는 응용프로그램에서 사용될 수 있다. 포트 번호는 TCP 또는 UDP에서 응용프로그램이 상호 통신을 위해 사용하는 가상의 논리적 통신 연결단을 의미할 수 있다. 인터넷 상에서의 통신은 포트 번호를 이용하여 수행될 수 있으며, 포트 번호는 IP 주소와 함께 해당하는 프로토콜에 의해 사용될 수 있고, 그 범위는 0부터 65535까지 일 수 있다.TCP (Transmission Control Protocol) can be used in applications requiring reliability by transmitting data after confirming that the connection between the transmitter and the receiver is established. UDP (User Datagram Protocol) It can be used in applications that require high speed by unilaterally transmitting data without checking the connection. The port number can refer to the virtual logical communication connection that the application uses for communication with TCP or UDP. Communication over the Internet can be performed using a port number, and the port number can be used by the corresponding protocol together with the IP address, and the range can be from 0 to 65535.

소프트웨어 정의 네트워크(Software Defined Networks, SDN)는 소프트웨어 프로그래밍을 통해 네트워크 경로 설정과 제어 및 복잡한 운용 관리를 편하게 처리할 수 있는 차세대 네트워킹 기술로서 사용자가 소프트웨어로 네트워크를 제어하는 기술을 의미할 수 있다. SDN은 네트워크 제어 기능이 물리적 네트워크와 분리되어 있는 구조로, 물리적인 인프라스트럭처 레이어(infrastructure layer), 제어할 수 있는 컨트롤 레이어(control layer) 및 애플리케이션 레이어(application layer)로 나누어질 수 있다. 다시 말해, 네트워크 제어 기능이 기존의 스위치(switch)나 라우터(router) 등의 하드웨어와 별도로 분리될 수 있고, 또한, 데이터 전달 기능과도 분리될 수 있다.Software Defined Networks (SDN) is a next-generation networking technology that can easily handle network routing and control and complex operation management through software programming. The SDN is a structure in which the network control function is separated from the physical network, and can be divided into a physical infrastructure layer, a control layer that can be controlled, and an application layer. In other words, the network control function can be separated from the existing hardware such as a switch or a router, and can be separated from the data transfer function.

오픈플로우(OpenFlow)는 SDN을 구성하는 하나의 요소로, 제어 기능을 가진 장비와 네트워킹 스위치 간의 통신을 담당하는 개방형 표준 인터페이스(interface)를 의미할 수 있다. 오픈플로우는 일종의 SDN을 지원하는 프로그래밍 가능한 애플리케이션(application)으로, 컨트롤러로 대두되는 외부에 있는 소프트웨어와 스위치 및 라우터 등의 네트워크 장비에 직접 접속하여 조작할 수 있도록 도와줄 수 있다. 컨트롤러(controller)는 SDN의 컨트롤 레이어에 위치하며, 스위치 및 라우터 등에 플로우 테이블(flow table)을 전송하여 네트워크 상의 트래픽을 제어할 수 있다. 여기서, 플로우 테이블은 어떠한 패킷을 처리할 지를 정의하는 영역인 룰(rule), 룰에 의해 정의된 패킷을 어떻게 처리할 지를 정의하는 영역인 액션(action) 및 해당 플로우 테이블에 얼마나 많은 패킷이 매칭되었고 얼마나 큰 바이트(byte)가 전송되었는 지를 보여주는 영역인 스탯(stats)을 포함할 수 있다. 본 발명의 명세서에서는 플로우 테이블을 플로우 룰(flow rule)이라는 용어를 사용하여 설명할 수 있다. 또한, 플로우 테이블을 스위치 및 라우터 등이 가지고 있는 정보를 의미하는 경우, 오픈플로우 컨트롤러는 플로우 룰을 스위치 및 라우터 등에 설치하여, 플로우 룰이 플로우 테이블에 적용되도록 할 수 있다.OpenFlow is a component of the SDN, which can refer to an open standard interface that is responsible for communicating between a controlling device and a networking switch. Openflow is a programmable application that supports a kind of SDN, and can help you connect directly to external networked software such as controllers and network devices such as switches and routers. The controller is located in the control layer of SDN and can control traffic on the network by sending flow tables to switches and routers. Here, the flow table includes a rule, which is an area defining a packet to be processed, an action, which is an area defining how to process a packet defined by the rule, and how many packets are matched to the flow table And stats, which is an area showing how large a byte has been transmitted. In the specification of the present invention, a flow table can be described using the term flow rule. When the flow table refers to information held by a switch, a router or the like, the open flow controller can be provided with a flow rule, such as a switch and a router, so that the flow rule can be applied to the flow table.

심층 패킷 분석은 IP(Internet Protocol) 네트워크를 통해 전달되거나 교환되는 패킷의 프로토콜 및 응용프로그램을 실시간 분석하고 인증하는데 사용되는 기술로서 패킷 헤더(header)뿐만 아니라 패킷의 페이로드(payload)까지 검사하여 트래픽의 데이터 정보를 확인할 수 있는 기술을 의미할 수 있다. 심층 패킷 분석은 하드웨어(hardware) 형태로 네트워크 링크에 직접적으로 연결되어 수행될 수 있고, 소프트웨어(software) 형태로 응용프로그램으로서 수행될 수도 있다.In-depth packet analysis is a technology used to analyze and authenticate protocols and applications of packets transmitted or exchanged over IP (Internet Protocol) networks. It examines packet payload as well as packet header, Quot; data " Deep packet analysis may be performed in hardware form directly connected to the network link and may be performed as an application program in the form of software.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In order to facilitate the understanding of the present invention, the same reference numerals are used for the same constituent elements in the drawings and redundant explanations for the same constituent elements are omitted.

도 1은 본 발명의 일 실시예에 따른 트래픽 제어 장치의 블록 구성도이다.1 is a block diagram of a traffic control apparatus according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 트래픽 제어 장치(100)는 트래픽 분류부(110) 및 방화벽 관리부(120)를 포함할 수 있고, 대역폭 관리부(130), 트래픽 스케줄러(140) 및 네트워크 모니터링부(150) 중 적어도 하나를 더 포함할 수 있다. 여기서, 트래픽 제어 장치(100)의 구성은 명칭에 한정되지 않으며, 기능에 의해 정의될 수 있다. 또한, 복수의 기능을 하나의 구성이 수행할 수 있으며, 하나의 기능을 복수의 구성이 수행할 수 있다.Referring to FIG. 1, a traffic control apparatus 100 according to an exemplary embodiment of the present invention may include a traffic classifying unit 110 and a firewall managing unit 120, and may include a bandwidth managing unit 130, a traffic scheduler 140, And a network monitoring unit 150. [0031] Here, the configuration of the traffic control device 100 is not limited to a name, but may be defined by a function. In addition, a plurality of functions can be performed by one configuration, and a plurality of configurations can perform one function.

트래픽 분류부(110)는 오픈플로우(openflow) 컨트롤러로부터 트래픽의 포트 번호를 포함하는 첫 번째 패킷(packet)을 수신할 수 있으며, 수신한 첫 번째 패킷을 기초로 트래픽을 발생시킨 응용프로그램의 정보를 인지할 수 있다. 여기서, 응용프로그램의 정보는 응용프로그램의 이름을 의미할 수 있다. The traffic classifying unit 110 may receive the first packet including the port number of the traffic from the open flow controller and may receive the information of the application program that generated the traffic based on the first packet received It can be recognized. Here, the information of the application program may mean the name of the application program.

여기서, 트래픽 분류부(110)는 수신한 첫 번째 패킷을 기초로 트래픽을 발생시킨 응용프로그램의 정보를 인지하기 위해 트래픽의 포트 번호 검색 또는 심층 패킷 분석(Deep Packet Inspection, DPI)을 수행할 수 있다. 더욱 구체적으로는, 트래픽 분류부(110)는 트래픽의 포트 번호를 기초로 응용프로그램의 정보가 인지되는지에 따라 트래픽을 분류할 수 있고, 트래픽의 포트 번호를 기초로 응용프로그램의 정보가 인지되는 트래픽은 응용프로그램의 정보를 인지하고, 트래픽의 포트 번호를 기초로 응용프로그램의 정보가 인지되지 않는 트래픽은 심층 패킷 분석을 수행하여 응용프로그램의 정보를 인지할 수 있다. 여기서, 심층 패킷 분석은 트래픽 제어 장치(100)의 외부 장치에 의해 수행되어, 트래픽 제어 장치(100)와 외부 장치가 심층 패킷 분석을 요청하고, 결과 응답을 수신하는 방법으로 수행될 수 있으나, 심층 패킷 분석 프로그램을 트래픽 제어 장치(100) 내에 설치하여 트래픽 제어 장치(100) 내에서 수행될 수도 있다. 다만, 이에 한정되지는 않는다.Here, the traffic classifying unit 110 may perform a port number search or deep packet inspection (DPI) of traffic to recognize information of an application program that has generated traffic based on the first packet received . More specifically, the traffic classifying unit 110 classifies traffic according to whether application program information is recognized based on the port number of the traffic, and classifies traffic based on the port number of the traffic, Recognizes the information of the application program, and recognizes the information of the application program by performing deep packet analysis on the traffic whose application program information is not recognized based on the port number of the traffic. Here, the in-depth packet analysis may be performed by an external device of the traffic control apparatus 100 so that the traffic control apparatus 100 and the external apparatus request deep packet analysis and receive the result response. However, A packet analysis program may be installed in the traffic control apparatus 100 and executed in the traffic control apparatus 100. [ However, the present invention is not limited thereto.

방화벽 관리부(120)는 트래픽 분류부(110)가 인지한 응용프로그램의 정보를 기초로 방화벽 정책 테이블을 이용하여 트래픽에 대한 방화벽 정보를 포함하는 플로우 룰(flow rule)을 생성할 수 있다. 구체적으로, 방화벽 관리부(120)는 플로우 룰을 생성하기 위해 방화벽 정책 테이블에서 응용프로그램의 정보를 기초로 방화벽 정책을 검색하고, 검색 결과에 따른 방화벽 정보를 포함하는 플로우 룰을 생성할 수 있다. 여기서, 방화벽 정책 테이블은 관리자에 의해 응용프로그램별로 정의 또는 수정될 수 있다. 또한, 방화벽 관리부(120)는 생성한 플로우 룰을 오픈플로우 컨트롤러로 송신할 수 있으며, 오픈플로우 컨트롤러는 수신한 플로우 룰을 오픈플로우 네트워크의 트래픽 경로 상의 스위치에 설치하여 해당 트래픽을 제어할 수 있다.The firewall manager 120 may generate a flow rule including firewall information for the traffic using the firewall policy table based on the information of the application program recognized by the traffic classifier 110. [ Specifically, the firewall manager 120 searches the firewall policy based on the information of the application program in the firewall policy table to generate a flow rule, and generates a flow rule including firewall information according to the search result. Here, the firewall policy table can be defined or modified for each application program by the administrator. In addition, the firewall manager 120 can transmit the generated flow rule to the open flow controller, and the open flow controller can control the traffic by installing the received flow rule in the switch on the traffic path of the open flow network.

대역폭 관리부(130)는 검색 결과에 따른 방화벽 정보가 드랍(drop)이 아닌 경우, 응용프로그램의 정보 및 대역폭 정책 테이블을 기초로 트래픽에 대한 대역폭 제한 정보를 플로우 룰에 추가할 수 있다. 구체적으로, 대역폭 관리부(130)는 대역폭 관련 플로우 룰을 생성하기 위해 대역폭 정책 테이블에서 응용프로그램의 정보를 기초로 대역폭 정책을 검색하고, 검색 결과에 따른 대역폭 제한 정보를 방화벽 관리부(120)가 생성한 플로우 룰에 추가할 수 있다. 여기서, 대역폭 정책 테이블은 관리자에 의해 응용프로그램 별로 정의 또는 수정될 수 있다. 또한, 대역폭 관리부(130)는 수신한 트래픽의 정보 또는 통계를 기초로 대역폭 제한 값을 조절하여 플로우 룰에 추가할 수 있다.If the firewall information according to the search result is not a drop, the bandwidth management unit 130 may add bandwidth limitation information on the traffic to the flow rule based on the information of the application program and the bandwidth policy table. Specifically, the bandwidth manager 130 searches the bandwidth policy based on the information of the application program in the bandwidth policy table to generate a bandwidth-related flow rule, and transmits the bandwidth limit information according to the search result to the firewall manager 120 Can be added to the flow rule. Here, the bandwidth policy table can be defined or modified for each application program by the administrator. Also, the bandwidth management unit 130 may add the bandwidth limitation value to the flow rule based on the received traffic information or statistics.

트래픽 스케줄러(140)는 대여폭 제한 정보가 추가된 플로우 룰에 있어서, 응용프로그램의 정보 및 우선 순위 큐 정책 테이블을 기초로 우선 순위 큐 정보를 플로우 룰에 추가할 수 있다. 구체적으로, 트래픽 스케줄러(140)는 우선 순위 큐 관련 플로우 룰을 생성하기 위해 우선 순위 큐 정책 테이블에서 응용프로그램의 정보를 기초로 우선 순위 큐 정책을 검색하고, 검색 결과에 따른 우선 순위 큐 정보를 플로우 룰에 추가할 수 있다. 여기서, 우선 순위 큐 정책 테이블은 관리자에 의해 응용프로그램 별로 정의 또는 수정될 수 있다. 여기서, 우선 순위 큐 정보는 트래픽의 목적지까지의 경로 정보를 포함할 수 있으며, 경로가 복수 개인 경우, 트래픽 스케줄러(140)는 후술하는 네트워크 모니터(150)로부터 수신한 큐 사용량 정보를 기초로 최소 사용량을 가지는 큐를 선택할 수 있고, 우선 순위 큐 정보는 트래픽 스케줄러(140)가 선택한 큐가 위치하는 스위치의 포트로 패킷이 전송되도록 하는 정보를 포함할 수 있다. 트래픽 스케줄러(140)는 우선 순위 큐 정보를 추가한 플로우 룰을 오픈플로우 컨트롤러로 송신할 수 있다.The traffic scheduler 140 may add the priority queue information to the flow rule based on the application program information and the priority queue policy table in the flow rule to which the lending limitation information is added. Specifically, the traffic scheduler 140 searches the priority queue policy on the basis of the information of the application program in the priority queue policy table to generate a flow of the priority queue related flow, Can be added to the rule. Here, the priority queue policy table may be defined or modified for each application program by the administrator. In this case, the priority queue information may include route information to the destination of the traffic. If there are a plurality of routes, the traffic scheduler 140 calculates the minimum usage amount And the priority queue information may include information that causes the traffic scheduler 140 to transmit the packet to the port of the switch where the queue selected by the traffic scheduler 140 is located. The traffic scheduler 140 may transmit the flow rule to which the priority queue information is added to the open flow controller.

네트워크 모니터링부(150)는 우선 순위를 가지는 큐의 현재 사용량을 주기적으로 산출할 수 있으며, 산출한 큐의 현재 사용량을 트래픽 스케줄러(140)로 송신할 수 있다. 또한, 네트워크 모니터링부(150)는 큐의 현재 사용량을 산출하기 위해 스위치 큐 통계 정보를 활용할 수 있다.The network monitoring unit 150 may periodically calculate the current usage amount of the queue having the priority order and transmit the current usage amount of the calculated queue to the traffic scheduler 140. [ Also, the network monitoring unit 150 may utilize the switch queue statistical information to calculate the current usage amount of the queue.

오픈플로우 컨트롤러는 방화벽 관리부(120) 또는 트래픽 스케줄러(140)로부터 플로우 룰을 수신할 수 있으며, 수신한 플로우 룰을 트래픽 경로 상의 스위치에 설치하여 해당 트래픽을 제어할 수 있다. 오픈플로우 컨트롤러는 본 발명의 트래픽 제어 장치(100)에 의해 플로우 룰이 트래픽의 경로 상의 스위치에 설치된 후, 플로우 룰에 따라 전달되는 트래픽의 정보 또는 통계를 스위치로부터 수신할 수 있고, 수신한 트래픽의 정보 또는 통계를 본 발명의 트래픽 제어 장치(100)의 대역폭 관리부(130)로 송신할 수 있다. 따라서, 트래픽 제어 장치(100)는 대역폭 관리부(130)를 통해 트래픽의 정보 또는 통계를 기반으로 동적으로 트래픽의 대역폭 제한 값을 변경할 수 있으므로, 동적으로 트래픽을 제어할 수 있다.The open flow controller can receive the flow rule from the firewall manager 120 or the traffic scheduler 140 and can install the flow rule in the switch on the traffic path to control the traffic. The open flow controller can receive information or statistics of traffic transmitted according to a flow rule from the switch after the flow rule is installed in the switch on the path of the traffic by the traffic control apparatus 100 of the present invention, Information or statistics to the bandwidth management unit 130 of the traffic control apparatus 100 of the present invention. Accordingly, the traffic control apparatus 100 can dynamically control the traffic through the bandwidth management unit 130 because it can dynamically change the bandwidth limitation value of the traffic based on the traffic information or statistics.

다시 말해, 트래픽 제어 장치(100)는 관리자가 방화벽 정책 테이블, 대역폭 정책 테이블 및 우선 순위 큐 정책 테이블 중 적어도 하나를 응용프로그램별로 정의 또는 수정하여, 관리자의 의도에 따라 특정 응용프로그램의 트래픽을 제어할 수 있다. In other words, the traffic control apparatus 100 may be configured such that the administrator defines or modifies at least one of the firewall policy table, the bandwidth policy table, and the priority queue policy table for each application program, and controls the traffic of a specific application program according to the intention of the administrator .

본 발명의 일 실시예에 따른 트래픽 제어 장치(100)는 적어도 하나의 프로세서 및 프로세서를 통해 상술한 동작이 실행되는 적어도 하나의 명령을 저장하고 있는 메모리를 포함할 수 있다. 여기서, 프로세서는 메모리에 저장된 프로그램 명령(program command)을 실행할 수 있고, 중앙 처리 장치(Central Processing Unit, CPU), 그래픽 처리 장치(Graphics Processing Unit, GPU) 또는 본 발명에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 메모리는 휘발성 저장 매체 및/또는 비휘발성 저장 매체로 구성될 수 있고, 읽기 전용 메모리(Read Only Memory, ROM) 및/또는 랜덤 액세스 메모리(Random Access Memory, RAM)로 구성될 수 있다.The traffic control apparatus 100 according to an embodiment of the present invention may include at least one processor and a memory storing at least one instruction through which the above-described operation is performed. Herein, the processor may execute a program command stored in a memory, and may be a central processing unit (CPU), a graphics processing unit (GPU), or a dedicated Processor. ≪ / RTI > The memory may be constituted by a volatile storage medium and / or a non-volatile storage medium, and may be constituted by a read only memory (ROM) and / or a random access memory (RAM).

도 2는 본 발명의 일 실시예에 따른 트래픽 제어 장치의 동작을 설명하는 개념도이다.2 is a conceptual diagram illustrating an operation of a traffic control apparatus according to an embodiment of the present invention.

도 2를 참조하면, 발신지(210)에서 응용프로그램에 의해 발생한 트래픽의 패킷은 오픈플로우 네트워크를 통해 목적지(230)로 이동할 수 있다. 오픈플로우 네트워크는 복수의 스위치 또는 라우터를 포함할 수 있으며, 패킷은 복수의 스위치 또는 라우터에 의해 생성된 특정한 경로를 따라 발신지(210)로부터 목적지(230)까지 이동할 수 있다. 오픈플로우 네트워크에서 발신지(210)로부터의 제1 스위치(220-1)는 트래픽의 첫 번째 패킷을 수신할 수 있으며, 해당 패킷에 대한 플로우 룰(flow rule)이 제1 스위치(220-1)에 없는 경우, 해당 패킷을 오픈플로우 컨트롤러(200)로 송신할 수 있고, 오픈플로우 컨트롤러(200)는 수신한 해당 패킷을 트래픽 제어 장치(100)로 송신할 수 있다. 본 발명의 일 실시예에 따른 트래픽 제어 장치(100)는 오픈플로우 컨트롤러(200)로부터 트래픽의 첫 번째 패킷을 수신하여 트래픽을 발생시킨 응용프로그램을 인지할 수 있고, 응용프로그램에 따라 방화벽 및/또는 대역폭 제한 값에 관련된 플로우 룰을 생성하여, 오픈플로우 컨트롤러(200)에게 송신할 수 있다. 오픈플로우 컨트롤러(200)는 수신한 플로우 룰을 복수의 스위치에 설치할 수 있다. 플로우 룰이 설치된 복수의 스위치는 플로우 룰을 기초로 해당 패킷을 이동시킬 수 있다.Referring to FIG. 2, a packet of traffic generated by an application program at a source 210 may move to a destination 230 via an open flow network. The open-flow network may include a plurality of switches or routers, and the packets may travel from the source 210 to the destination 230 along a specific path generated by a plurality of switches or routers. In the open flow network, the first switch 220-1 from the source 210 can receive the first packet of traffic, and a flow rule for the packet is transmitted to the first switch 220-1 The open flow controller 200 can transmit the packet to the open flow controller 200 and the open flow controller 200 can transmit the received packet to the traffic control device 100. [ The traffic control apparatus 100 according to an exemplary embodiment of the present invention may recognize an application program that has generated traffic by receiving the first packet of traffic from the open flow controller 200, It is possible to generate a flow rule related to the bandwidth limitation value and transmit it to the open flow controller 200. The open flow controller 200 can install the received flow rules in a plurality of switches. The plurality of switches provided with the flow rule can move the packet based on the flow rule.

더욱 구체적으로 설명하면, 응용프로그램으로부터 발생한 트래픽은 일반적으로 발신지 IP 주소, 목적지 IP 주소, 발신지 포트 번호, 목적지 포트 번호 및 프로토콜을 포함하는 5가지의 명세 요소를 포함할 수 있고, 5가지 명세 요소로 구성된 네트워크 플로우로 정의 될 수 있으며, 네트워크의 인그레스(Ingress) 스위치에 도달한다. 여기서, 인그레스 스위치는 진입 지점의 스위치를 의미할 수 있으며, 제1 스위치(220-1)를 의미할 수도 있다. 제1 스위치(220-1)는 발신지(210)로부터 수신한 트래픽을 네트워크 플로우(network flow) 형태로 인식하여 자체적으로 보유하고 있는 플로우 룰과 매칭을 시도할 수 있다. 여기서, 네트워크 플로우는 각 간선에 용량이라는 추가 속성이 존재하는 그래프를 의미할 수 있다. More specifically, traffic originating from an application can typically include five specification elements, including source IP address, destination IP address, source port number, destination port number, and protocol, It can be defined as a configured network flow and reaches the network's ingress switch. Herein, the ingress switch may mean a switch at the entry point, and may mean the first switch 220-1. The first switch 220-1 recognizes the traffic received from the source 210 in the form of a network flow and may attempt matching with a flow rule that it has in itself. Here, the network flow may refer to a graph in which there is an additional attribute called capacity in each trunk.

제1 스위치(220-1)가 트래픽에 대한 플로우 룰을 보유하고 있지 않은 경우, 제1 스위치(220-1)는 수신한 네트워크 플로우에서 첫 번째로 수신한 패킷의 정보를 오픈플로우 컨트롤러(200)로 송신할 수 있다. 구체적으로는, 패킷 헤더 내용을 오픈플로우 프로토콜(protocol)의 Packet-In 메시지에 포함시켜 연결된 오픈플로우 컨트롤러(200)로 송신할 수 있다. 여기서, Packet-In 메시지는 스위치가 오픈플로우 컨트롤러에게 패킷을 전송하여 패킷에 대한 제어를 받기 위해 사용되는 메시지일 수 있다. 상술한 바와 같이 동작하는 오픈플로우 네트워크는 반응형 모드(reactive mode)로 동작하는 오픈플로우 네트워크로 지칭될 수 있다.When the first switch 220-1 does not have a flow rule for the traffic, the first switch 220-1 transmits the information of the first packet received in the received network flow to the open flow controller 200, As shown in FIG. Specifically, the contents of the packet header can be included in a Packet-In message of an open flow protocol and transmitted to the connected open flow controller 200. Here, the Packet-In message may be a message used by the switch to send a packet to the open flow controller to receive control of the packet. An open-flow network operating as described above may be referred to as an open-flow network operating in a reactive mode.

트래픽 제어 장치(100)는 오픈플로우 컨트롤러(200)에 따라 네트워크를 제어 및 관리하는 응용프로그램에 의해 동작될 수 있다. 트래픽 제어 장치(100)는 오픈플로우 컨트롤러(200)로부터 수신한 Packet-In 메시지를 파싱(parsing)하여 트래픽의 5가지 명세 요소를 확인하고, 트래픽의 첫 번째 패킷의 제1 계층 내지 제4 계층의 네트워크 계층 정보를 인식하여 트래픽을 발생시킨 응용프로그램의 인지를 수행할 수 있다.The traffic control apparatus 100 may be operated by an application program that controls and manages the network according to the open flow controller 200. [ The traffic control apparatus 100 parses the Packet-In message received from the open flow controller 200 to identify five specification elements of the traffic and transmits the packet to the first to fourth hierarchical layers It is possible to recognize the application program that generated the traffic by recognizing the network layer information.

여기서, 제1 계층 내지 제4 계층의 네트워크 계층은 제1 계층인 물리 계층(physical layer), 제2 계층인 데이터 링크 계층(data-link layer), 제3 계층인 네트워크 계층(network layer) 및 제4 계층인 전송 계층(transport layer)를 의미할 수 있다. 물리 계층은 시스템 간에 물리적 링크를 작동시키거나 유지하며 전기, 기계, 절차 및 기능적 측면의 문제들을 정의할 수 있고, 데이터 링크 계층은 물리적 링크를 통한 신뢰성 있는 데이터 전송을 제공하기 위해 물리적 어드레싱(addressing), 네트워크 토폴로지(network topology), 회선 사용 규칙, 오류 검출, 프레임 전달 및 흐름 제어 등에 관계할 수 있다. 또한, 네트워크 계층은 다른 장소에 위치한 두 시스템 간에 연결성과 경로 선택을 제공하기 위해 라우팅 프로토콜이 서로 연결된 네트워크를 통한 최적 경로를 선택하여 네트워크 계층의 프로토콜을 선택된 경로를 따라 정보를 보낼 수 있고, 전송 계층은 데이터 전송 서비스를 제공할 수 있다.Here, the network layers of the first to fourth layers include a physical layer as a first layer, a data-link layer as a second layer, a network layer as a third layer, It may mean a transport layer having four layers. The physical layer may operate or maintain a physical link between the systems and may define electrical, mechanical, procedural and functional aspects, and the data link layer may be physically addressed to provide reliable data transmission over the physical link, , Network topology, line usage rules, error detection, frame forwarding, and flow control. In addition, the network layer can send information along a selected path to a network layer protocol by selecting an optimal path through a network to which routing protocols are connected to provide connectivity and path selection between two systems located at different locations, May provide a data transfer service.

본 발명의 일 실시예에 따른 트래픽 제어 장치(100)는 트래픽을 발생시킨 응용프로그램의 인지를 수행하기 위해 두 가지 방법을 사용할 수 있다.The traffic control apparatus 100 according to an exemplary embodiment of the present invention can use two methods to recognize an application program that generates traffic.

첫 번째 방법은 트래픽의 포트 번호를 이용하여 응용프로그램을 인지하는 방법이다. 트래픽 제어 장치(100)는 미리 잘 알려진(well-known) 포트 번호를 포함하는 Packet-In 메시지(또는 패킷 정보)를 수신하는 경우 별도의 동작없이 트래픽 제어 장치(100) 내에서 포트 번호 테이블 정보를 이용하여 포트 번호에 해당하는 응용프로그램을 판별할 수 있다. 여기서, 포트 번호 테이블은 TCP/UDP 포트 번호와 그 번호를 사용하는 응용프로그램의 이름 또는 종류를 기록하고 있을 수 있으며, 관련 국제 기관인 IANA(Internet Assigned Numbers Authority)에서 공표한 정보를 사용할 수 있다. 판별 결과, 트래픽의 발신지/목적지 포트 번호와 일치하는 테이블 엔트리가 포트 번호 테이블에 존재한다면, 해당 엔트리로부터 응용프로그램을 인지하여 응용프로그램의 이름을 획득할 수 있다. 다만, 기존의 응용프로그램의 포트 번호가 변경되거나 새로운 응용프로그램에 의해 발생되어 포트 번호가 알려지지 않은 경우(unknown), 첫 번째 방법은 응용프로그램을 인지할 수 없는 문제점이 있을 수 있다.The first method is to recognize the application program using the port number of the traffic. When the traffic control apparatus 100 receives a Packet-In message (or packet information) including a well-known port number, the traffic control apparatus 100 transmits port number table information in the traffic control apparatus 100 The application program corresponding to the port number can be determined. Here, the port number table may record the TCP / UDP port number and the name or kind of an application program using the number, and may use information published by the Internet Assigned Numbers Authority (IANA), which is an international organization concerned. As a result of the determination, if a table entry matching the source / destination port number of the traffic exists in the port number table, the name of the application program can be obtained by recognizing the application program from the entry. However, if the port number of an existing application is changed or the port number is unknown due to a new application program, the first method may have a problem that the application program can not be recognized.

두 번째 방법은 심층 패킷 분석(Deep Packet Inspection, DPI)을 이용하여 응용프로그램을 인지하는 방법이다. 트래픽 제어 장치(100)는 수신한 첫 번째 패킷에 대하여 포트 번호를 이용하여 응용프로그램을 인지하지 못한 경우, 첫 번째 패킷을 트래픽 제어 장치(100) 외부의 심층 패킷 분석 장치(300)로 송신하여 심층 패킷 분석을 요청할 수 있다. 심층 패킷 분석 장치(300)는 제1 스위치(220-1)로부터 해당 트래픽의 패킷을 수신하여 심층 패킷 분석을 수행할 수 있고, 심층 패킷 분석 결과를 트래픽 제어 장치(100)로 송신할 수 있다. 심층 패킷 분석은 해킷의 헤더(header)뿐만 아니라 패킷의 페이로드(payload)까지 검사하는 방식으로 트래픽의 정보를 확인할 수 있다. 트래픽 제어 장치(100)는 심층 패킷 분석 장치(300)로부터 결과를 수신하여 트래픽의 데이터 정보를 확인할 수 있고, 수신한 트래픽의 데이터 정보를 기초로 트래픽을 발생시킨 응용프로그램을 인지할 수 있다. 다시 말해, 심층 패킷 분석은 오프 플랫폼(off platform)으로 구축된 심층 패킷 분석 프로그램을 통해 수행될 수 있고, 트래픽 제어 장치(100)가 REST API 기반의 통신을 이용하여 심층 패킷 분석 장치(300)로 패킷 분석을 요청하고 분석 결과를 수신할 수 있다. 다만, 심층 패킷 분석은 응용프로그램으로써 트래픽 제어 장치(100)에 설치되어, 트래픽 제어 장치(100) 내에서 수행될 수도 있으며, 심층 패킷 분석을 수행하는 주체 및 수행 방법은 이에 한정되지 않는다.The second method is to recognize applications using Deep Packet Inspection (DPI). If the application program is not recognized using the port number for the first packet received, the traffic control apparatus 100 transmits the first packet to the in-depth packet analyzing apparatus 300 outside the traffic control apparatus 100, You can request packet analysis. The in-depth packet analyzing apparatus 300 can receive a packet of the corresponding traffic from the first switch 220-1, perform deep packet analysis, and transmit the deep packet analysis result to the traffic control apparatus 100. [ In-depth packet analysis can check traffic information by checking not only the header of the hacket but also the payload of the packet. The traffic control apparatus 100 can receive the result from the in-depth packet analyzing apparatus 300 and can confirm the data information of the traffic and recognize the application program that generated the traffic based on the data information of the received traffic. In other words, the in-depth packet analysis can be performed through an in-depth packet analysis program constructed as an off-platform, and the traffic control apparatus 100 can communicate with the in-depth packet analysis apparatus 300 using the REST API- Request packet analysis and receive analysis results. However, the deep packet analysis may be installed in the traffic control apparatus 100 as an application program, and may be performed in the traffic control apparatus 100, and the subject and method of performing the deep packet analysis are not limited thereto.

본 발명의 일 실시예에 따른 트래픽 제어 장치(100)는 트래픽을 발생시킨 응용프로그램을 인지하기 위해 상술한 두 가지 방법 중 첫 번째 방법을 우선 수행하고, 응용프로그램을 인지하지 못한 경우 두 번째 방법을 수행할 수 있고, 두 번째 방법을 우선적으로 수행할 수도 있으며, 상술한 두 가지 방법을 병렬적으로 사용하여 응용프로그램 인지의 정확성을 향상시킬 수도 있다.The traffic control apparatus 100 according to an exemplary embodiment of the present invention performs the first of the two methods in order to recognize the application program that generated the traffic, and if the application program is not recognized, The second method may be performed first, or the accuracy of the application program may be improved by using the above two methods in parallel.

본 발명의 일 실시예에 따른 트래픽 제어 장치(100)는 방화벽(firewall) 정책, 대역폭(bandwidth) 정책 및 우선 순위 큐 정책 중 적어도 하나를 테이블 엔트리(table entry) 형태로 저장 및 관리할 수 있으므로, 인지한 응용프로그램의 정보를 기초로 트래픽에 대한 방화벽 정책, 대역폭 정책 및 우선 순위 큐 정책 중 적어도 하나를 검색할 수 있다. 여기서, 정책은 관련 정책의 종류별로 고유의 명세 사항이 존재할 수 있으며, 네트워크 관리자는 명세 사항에 따라 트래픽에 적용 가능한 네트워크 정책을 검색할 수 있고, 방화벽 정책, 대역폭 정책 및 우선 순위 큐 정책을 응용프로그램별로 정의 및 수정할 수 있다.The traffic control apparatus 100 according to an exemplary embodiment of the present invention can store and manage at least one of a firewall policy, a bandwidth policy, and a priority queue policy in the form of a table entry, And can search for at least one of a firewall policy, a bandwidth policy, and a priority queue policy for the traffic based on the information of the recognized application program. In this case, the policy may have its own specification according to the type of the related policy, and the network administrator can search the network policy applicable to the traffic according to the specification, and can apply the firewall policy, the bandwidth policy, You can define and modify them separately.

트래픽 제어 장치(100)는 방화벽 정책, 대역폭 정책 및 우선 순위 큐 정책 중 적어도 하나를 반영하는 플로우 룰(flow rule)을 생성할 수 있으며, 생성한 플로우 룰을 오픈플로우 컨트롤러(200)로 송신할 수 있다. 오픈플로우 컨트롤러(200)는 트래픽의 경로 상의 복수의 스위치에 수신한 플로우 룰을 설치할 수 있다. 이후, 복수의 스위치는 오픈플로우 컨트롤러와 추가적인 통신없이 패킷을 발신지(210)로부터 목적지(230)까지 전달할 수 있다. 즉, 네트워크 관리자는 특정 응용프로그램에서 발생한 트래픽을 방화벽, 대역폭 및 우선 순위 큐 관점에서 의도한 정책대로 제어 및 관리할 수 있다. 트래픽 제어 장치(100)가 방화벽 정책, 대역폭 정책 및 우선 순위 큐 정책 중 적어도 하나를 반영하는 플로우 룰을 생성하는 구체적인 과정은 후술하겠다. The traffic control apparatus 100 may generate a flow rule reflecting at least one of a firewall policy, a bandwidth policy, and a priority queue policy, and may transmit the generated flow rule to the open flow controller 200 have. The open flow controller 200 can install the flow rules received by the plurality of switches on the path of the traffic. The plurality of switches may then forward the packet from the source 210 to the destination 230 without further communication with the open flow controller. In other words, network administrators can control and manage traffic originating from specific applications according to policies intended from a firewall, bandwidth and priority queue perspective. A concrete procedure for generating the flow rule reflecting at least one of the firewall policy, the bandwidth policy, and the priority queue policy will be described later.

도 3은 본 발명의 일 실시예에 따른 트래픽 제어 방법을 설명하는 순서도이다.3 is a flowchart illustrating a traffic control method according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 일 실시예에 따른 트래픽 제어 방법은 우선, 트래픽 제어 장치(100)가 오픈플로우 컨트롤러(200)로부터 트래픽의 포트 번호를 포함하는 첫 번째 패킷을 수신할 수 있다(S310). 트래픽 제어 장치(100)는 수신한 포트 번호를 기초로 트래픽의 응용프로그램의 이름을 인지할 수 있는지 판단할 수 있고(S320), 응용프로그램의 이름을 인지할 수 없는 경우, 심층 패킷 분석 장치(300)로 첫 번째 패킷을 송신하여 심층 패킷 분석을 요청할 수 있다(S330). 심층 패킷 분석 장치(300)는 제1 스위치(220-1)로부터 패킷의 정보를 수신하여 심층 패킷 분석을 수행할 수 있다. 트래픽 제어 장치(100)는 심층 패킷 분석 장치(300)로부터 분석 결과를 수신할 수 있고(S340), 수신한 분석 결과를 기초로 트래픽을 발생시킨 응용프로그램의 이름을 인지할 수 있다(S350).3, a traffic control method according to an exemplary embodiment of the present invention may first receive a first packet including a port number of a traffic from the open flow controller 200 ( S310). The traffic control apparatus 100 can determine whether the name of the application program of the traffic can be recognized based on the received port number in step S320 and if the name of the application program can not be recognized, ) To request a deep packet analysis (S330). The in-depth packet analyzing apparatus 300 can receive the packet information from the first switch 220-1 and perform deep packet analysis. The traffic control apparatus 100 can receive the analysis result from the in-depth packet analyzing apparatus 300 (S340) and recognize the name of the application program that generated the traffic based on the received analysis result (S350).

트래픽 제어 장치(100)는 트래픽을 발생시킨 응용프로그램의 이름을 인지한 후, 트래픽에 적용할 방화벽 정보를 포함하는 플로우 룰을 생성할 수 있다(S360). 플로우 룰에 포함된 방화벽 정보는 트래픽 제어 장치(100)에 저장 및 관리되는 방화벽 정책 테이블로부터 응용프로그램의 이름을 이용하여 검색한 방화벽 정책을 반영할 수 있으며, 구체적인 과정은 도 4와 함께 후술하겠다.The traffic control apparatus 100 recognizes the name of the application program that generated the traffic, and generates a flow rule including firewall information to be applied to the traffic (S360). The firewall information included in the flow rule may reflect the firewall policy retrieved using the name of the application program from the firewall policy table stored and managed in the traffic control device 100. A concrete procedure will be described later with reference to FIG.

트래픽 제어 장치(100)는 생성한 플로우 룰에 반영된 방화벽 정책이 드랍(drop)인지 판단할 수 있고(S370), 방화벽 관련 정책이 드랍(drop)가 아닌 경우, 트래픽에 적용할 대역폭 제한 정보를 플로우 룰에 추가할 수 있다(S380). 플로우 룰에 추가된 대역폭 제한 정보는 트래픽 제어 장치(100)에 저장 및 관리되는 대역폭 정책 테이블로부터 응용프로그램의 이름을 이용하여 검색한 대역폭 정책을 반영할 수 있으며, 구체적인 과정은 도 6과 함께 후술하겠다.The traffic control apparatus 100 can determine whether the firewall policy reflected in the generated flow rule is a drop (S370), and if the firewall related policy is not a drop, May be added to the rule (S380). The bandwidth limitation information added to the flow rule may reflect the bandwidth policy retrieved using the name of the application program from the bandwidth policy table stored and managed in the traffic control device 100. A concrete procedure will be described later with reference to FIG. .

트래픽 제어 장치(100)는 대역폭 제한 정보가 추가된 플로우 룰에 우선 순위 큐 정보를 추가할 수 있다(S390). 플로우 룰에 추가된 우선 순위 큐 정보는 트래픽 제어 장치(100)에 저장 및 관리되는 우선 순위 큐 정책 테이블로부터 응용프로그램의 이름을 이용하여 검색한 우선 순위 큐 정책을 반영할 수 있으며, 구체적인 과정은 도 8과 함께 후술하겠다. The traffic control apparatus 100 may add the priority queue information to the flow rule to which the bandwidth limitation information is added (S390). The priority queue information added to the flow rule may reflect the priority queue policy retrieved using the name of the application program from the priority queue policy table stored and managed in the traffic control device 100, 8 will be described later.

트래픽 제어 장치(100)는 방화벽 정책이 차단인 경우, 생성한 방화벽 정보를 포함하는 플로우 룰을 오픈플로우 컨트롤러(200)에 송신할 수 있으며, 방화벽 정책이 차단이 아닌 경우, 방화벽 정보, 대역폭 제한 정보 및 우선 순위 큐 정보를 포함하는 플로우 룰을 오픈플로우 컨트롤러(200)에 송신할 수 있다. 오픈플로우 컨트롤러(200)는 복수의 스위치에 수신한 플로우 룰을 설치할 수 있으며, 패킷은 플로우 룰이 설치된 복수의 스위치에 따라 발신지(210)로부터 목적지(230)까지 전달될 수 있다.When the firewall policy is blocked, the traffic control apparatus 100 can transmit a flow rule including the generated firewall information to the open flow controller 200. If the firewall policy is not blocked, the traffic control apparatus 100 transmits firewall information, And the flow rule including the priority queue information to the open flow controller 200. The open flow controller 200 can set up flow rules received at a plurality of switches, and the packets can be transmitted from the source 210 to the destination 230 according to a plurality of switches provided with flow rules.

도 4는 본 발명의 일 실시예에 따른 방화벽 정보를 포함하는 플로우 룰의 생성 방법을 설명하는 순서도이다.4 is a flowchart illustrating a method of generating a flow rule including firewall information according to an embodiment of the present invention.

도 4를 참조하면, 본 발명의 일 실시예에 따른 방화벽 정보를 포함하는 플로우 룰을 생성하는 방법은 우선, 트래픽 제어 장치(100)가 트래픽을 발생시킨 응용프로그램을 인지하여 응용프로그램의 이름을 획득할 수 있으며(S410), 획득한 응용프로그램의 이름 및 트래픽의 명세 요소를 트래픽 제어 장치(100) 내의 방화벽 정책 테이블에서 검색할 수 있다(S420). 여기서, 트래픽의 명세 요소는 발신지 IP, 목적지 IP, 발신지 포트 번호 및 목적지 포트 번호를 포함할 수 있다. 트래픽 제어 장치(100)는 검색 결과로서 해당 트래픽에 적용 가능한 방화벽 정책이 존재하는지 판단할 수 있으며(S430), 해당 트래픽에 적용 가능한 방화벽 정책에 존재하지 않는다면 방화벽 정책을 드랍(drop)으로 설정할 수 있다(S440). 이후, 방화벽 정책을 반영하여 방화벽 정보를 포함하는 플로우 룰을 생성할 수 있다(S450). 여기서, 해당 트래픽에 적용 가능한 방화벽 정책은 포워딩(forwarding) 또는 드랍(drop)일 수 있으나, 이에 한정되지 않는다.Referring to FIG. 4, a method for generating a flow rule including firewall information according to an embodiment of the present invention includes: recognizing an application program that the traffic control apparatus 100 generates traffic, (S410), and the name of the acquired application program and the specification element of the traffic can be retrieved from the firewall policy table in the traffic control device 100 (S420). Here, the specification element of the traffic may include a source IP, a destination IP, a source port number, and a destination port number. The traffic control apparatus 100 may determine whether there is a firewall policy applicable to the traffic as a result of the search (S430). If the firewall policy does not exist in the firewall policy applicable to the traffic, the traffic control apparatus 100 may set the firewall policy to drop (S440). Thereafter, the flow rule including the firewall information may be generated by reflecting the firewall policy (S450). Here, the firewall policy applicable to the traffic may be forwarding or dropping, but is not limited thereto.

도 5는 본 발명의 일 실시예에 따른 방화벽 정책을 나타낸 표이다.FIG. 5 is a table illustrating a firewall policy according to an exemplary embodiment of the present invention. Referring to FIG.

본 발명의 일 실시예에 따른 트래픽 제어 장치(100)는 네트워크 관리자에 의해 정의될 수 있는 다양한 방화벽 정책을 테이블 엔트리 형태로 저장하고 있을 수 있다. 도 5와 같이, 방화벽 정책은 발신지 IP, 목적지 IP, 발신지 포트 번호, 목적지 포트 번호, 응용프로그램 이름 및 정책을 포함하는 6가지 명세 요소를 포함할 수 있다. 트래픽 제어 장치(100)는 트래픽의 5가지 명세 요소 및 응용프로그램 인지 결과를 입력 인자로 하여 일치하는 방화벽 정책을 검색할 수 있다. 방화벽 정책의 명세 요소 중 일부는 에스터리스크(asterisk, *) 형태로 정의할 수 있으며, 에스터리스크 형태로 정의한 요소는 해당 요소에 대하여 일치 여부를 따지지 않음(Don't care)을 의미할 수 있다.The traffic control apparatus 100 according to an exemplary embodiment of the present invention may store various firewall policies that can be defined by a network administrator in the form of a table entry. As shown in FIG. 5, the firewall policy may include six specification elements including a source IP, a destination IP, a source port number, a destination port number, an application program name, and a policy. The traffic control apparatus 100 can search for a matching firewall policy using the five specification elements of the traffic and the application program result as input factors. Some of the specification elements of a firewall policy can be defined in the form of an asterisk (*), and the elements defined in the form of an asterisk can mean that they do not care about the element.

트래픽 제어 장치(100)는 검색된 방화벽 정책에 따라 트래픽에 대하여 포워딩(forwarding) 또는 드랍(drop) 등을 수행하는 플로우 룰을 생성할 수 있으며, 방화벽 정책이 드랍인 경우 드랍을 반영한 플루우 룰을 생성하여 오픈플로우 컨트롤러를 통해 오픈플로우 스위치(220-1, ..., n)에 송신되어 설치될 수 있고, 방화벽 정책이 드랍이 아닌 경우 트래픽의 대역폭 제한 정보를 플로우 룰에 추가하기 위해 다음 단계를 수행할 수 있다.The traffic control apparatus 100 may generate a flow rule for forwarding or dropping traffic according to the detected firewall policy and may generate a flow rule reflecting the drop when the firewall policy is dropped .., N through the open flow controller, and if the firewall policy is not dropped, the next step is to add the bandwidth limitation information of the traffic to the flow rule Can be performed.

도 6은 본 발명의 일 실시예에 따른 대역폭 제한 정보를 플로우 룰에 추가하는 방법을 설명하는 순서도이다.6 is a flowchart illustrating a method of adding bandwidth limitation information to a flow rule according to an embodiment of the present invention.

도 6을 참조하면, 본 발명의 일 실시예에 따른 대역폭 제한 정보를 플로우 룰에 추가하는 방법은 우선, 트래픽 제어 장치(100)가 트래픽을 발생시킨 응용프로그램을 인지하여 응용프로그램의 이름을 획득할 수 있으며(S610), 획득한 응용프로그램의 이름 및 트래픽의 명세 요소를 트래픽 제어 장치(100) 내의 대역폭 정책 테이블에서 검색할 수 있다(S620). 여기서, 트래픽의 명세 요소는 발신지 IP, 목적지 IP, 발신지 포트 번호 및 목적지 포트 번호를 포함할 수 있다. 트래픽 제어 장치(100)는 검색 결과로서 해당 트래픽에 적용 가능한 대역폭 정책이 존재하는지 판단할 수 있으며(S630), 해당 트래픽에 적용 가능한 대역폭 정책이 존재하는 경우, 트래픽의 최대 대역폭을 제한하는 미터(meter) 요소를 생성하여 대역폭 정책을 반영한 대역폭 제한 정보를 플로우 룰에 추가할 수 있다(S640). 다만, 해당 트래픽에 적용 가능한 대역폭 정책이 존재하지 않는 경우, 대역폭 제한 정보를 플로우 룰에 추가하지 않을 수 있다.Referring to FIG. 6, a method of adding bandwidth limiting information to a flow rule according to an embodiment of the present invention includes first obtaining a name of an application program by recognizing an application program that the traffic control apparatus 100 generates traffic (S610), and the name of the acquired application program and the specification element of the traffic can be retrieved from the bandwidth policy table in the traffic control device 100 (S620). Here, the specification element of the traffic may include a source IP, a destination IP, a source port number, and a destination port number. As a result of the search, the traffic control apparatus 100 may determine whether there is a bandwidth policy applicable to the traffic (S630). If there is a bandwidth policy applicable to the traffic, the traffic control apparatus 100 may further include a meter ) Element to add bandwidth limitation information reflecting the bandwidth policy to the flow rule (S640). However, if there is no bandwidth policy applicable to the traffic, the bandwidth limitation information may not be added to the flow rule.

도 7은 본 발명의 일 실시예에 따른 대역폭 정책을 나타낸 표이다.7 is a table illustrating a bandwidth policy according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 트래픽 제어 장치(100)는 네트워크 관리자에 의해 정의될 수 있는 다양한 대역폭 정책을 테이블 엔트리 형태로 저장하고 있을 수 있다. 도 7과 같이, 대역폭 정책은 발신지 IP, 목적지 IP, 발신지 포트 번호, 목적지 포트 번호, 응용프로그램 이름, 대역폭 제한 값 및 정책을 포함하는 7가지 명세 요소를 포함할 수 있다. 트래픽 제어 장치(100)는 트래픽의 5가지 명세 요소 및 응용프로그램 인지 결과를 입력 인자로 하여 일치하는 대역폭 정책을 검색할 수 있다. 대역폭 정책의 명세 요소 중 일부는 에스터리스크(asterisk, *) 형태로 정의할 수 있으며, 에스터리스크 형태로 정의한 요소는 해당 요소에 대하여 일치 여부를 따지지 않음(Don't care)을 의미할 수 있다. 여기서, 대역폭 제한 값은 bps(bit per second) 단위로 지정될 수 있으며, 도 7의 1 Mbps에서 Mbps는 mega bit per second로 1초당 1백만 비트를 보낼 수 있는 전송 속도를 의미할 수 있다. 정책은 대역폭 제한 값을 초과하는 트래픽에 대하여 드랍(drop) 또는 차등 서비스(Differentiated Service Code Point, DSCP) 등을 수행하는 방안을 나타낼 수 있다. 여기서, 차등 서비스는 트래픽의 드랍 확률을 조절하는 것을 의미할 수 있다. 트래픽 제어 장치(100)는 검색된 대역폭 정책을 반영한 대역폭 제한 정보를 플로우 룰에 추가할 수 있다.The traffic control apparatus 100 according to an embodiment of the present invention may store various bandwidth policies that can be defined by a network administrator in the form of a table entry. As shown in FIG. 7, the bandwidth policy may include seven specification elements including source IP, destination IP, source port number, destination port number, application name, bandwidth limit value, and policy. The traffic control device 100 can search for a matching bandwidth policy using the five specification elements of the traffic and the application program result as input factors. Some of the specification elements of a bandwidth policy can be defined in the form of an asterisk (*), and the elements defined in the form of an asterisk can mean that they do not care about the element. Here, the bandwidth limit value may be specified in units of bps (bits per second), and 1 Mbps in FIG. 7 may mean a transmission rate at which 1 million bits per second can be transmitted in mega bits per second. Policy may indicate a method of performing a drop or differential service code point (DSCP) on traffic exceeding the bandwidth limit value. Here, the differential service may mean adjusting the drop probability of the traffic. The traffic control apparatus 100 may add bandwidth limiting information reflecting the retrieved bandwidth policy to the flow rule.

도 8은 본 발명의 일 실시예에 따른 우선 순위 큐 정보를 플로우 룰에 추가하는 방법을 설명하는 순서도이다.8 is a flowchart illustrating a method of adding priority queue information to a flow rule according to an embodiment of the present invention.

도 8을 참조하면, 본 발명의 일 실시예에 따른 우선 순위 큐 정보를 플로우 룰에 추가하는 방법은 우선, 트래픽 제어 장치(100)가 트래픽을 발생시킨 응용프로그램을 인지하여 응용프로그램의 이름을 획득할 수 있으며(S810), 획득한 응용프로그램의 이름 및 트래픽의 명세 요소를 트래픽 제어 장치(100) 내의 우선 순위 큐 정책 테이블에서 검색할 수 있다(S820). 여기서, 트래픽의 명세 요소는 발신지 IP, 목적지 IP, 발신지 포트 번호 및 목적지 포트 번호를 포함할 수 있다. 트래픽 제어 장치(100)는 검색 결과로서 해당 트래픽에 적용 가능한 우선 순위 큐 정책이 존재하는지 판단할 수 있으며(S830), 해당 트래픽에 적용 가능한 우선 순위 큐 정책이 존재하지 않는다면, 가장 낮은 우선 순위의 큐를 사용하도록 정책을 설정할 수 있다(S840). 트래픽 제어 장치(100)는 설정된 정책에 따라 우선 순위를 가진 큐의 현재 사용량을 산출할 수 있으며(S850), 여기서, 현재 사용량 산출은 주기적으로 수행될 수 있으며, 산출을 위해 스위치 큐 통계 정보를 활용할 수 있다. 트래픽 제어 장치(100)는 산출된 큐 사용량 정보 중 최소 사용량을 가지는 큐를 선택할 수 있고, 선택한 큐로 트래픽이 전달되기 위한 정보를 플로우 룰에 추가할 수 있다(S860). 보다 상세하게는, 트래픽 제어 장치(100)는 네트워크에서 트래픽이 목적지까지 전달되는 경로를 결정할 수 있으며, 경로가 복수인 경우, 큐 사용량 정보 중에서 경로 상에 위치한 큐 사용량 정보 중 최소 사용량을 가지는 큐를 선택할 수 있으며, 선택한 큐가 위치하는 스위치의 포트로 트래픽을 전송할 수 있다. 트래픽 제어 장치(100)는 선택한 큐로 트래픽이 전달되기 위한 정보를 플로우 룰에 추가할 수 있으며, 플로우 룰은 오픈플로우 컨트롤러를 통해 오픈플로우 스위치(220-1, ..., n)에 송신되어 설치될 수 있다.Referring to FIG. 8, a method of adding priority queue information according to an embodiment of the present invention to a flow rule includes: first, recognizing an application program that the traffic control apparatus 100 generates traffic, (S810), and the name of the acquired application program and the specification element of the traffic can be retrieved from the priority queue policy table in the traffic control device 100 (S820). Here, the specification element of the traffic may include a source IP, a destination IP, a source port number, and a destination port number. The traffic control apparatus 100 can determine whether there is a priority queue policy applicable to the traffic as a result of the search (S830). If there is no applicable priority queue policy for the traffic, (S840). ≪ / RTI > The traffic control apparatus 100 may calculate the current usage amount of the queue having the priority according to the set policy (S850). Here, the current usage amount calculation may be periodically performed, and the switch queue statistics information may be utilized for the calculation . The traffic control apparatus 100 may select a queue having the smallest usage amount among the calculated queue usage information, and may add information for transferring traffic to the selected queue to the flow rule (S860). More specifically, the traffic control apparatus 100 can determine a route through which traffic is delivered to a destination in the network. If there are a plurality of routes, the traffic control apparatus 100 selects a queue having the smallest usage amount among the queue usage information located on the route And can send traffic to the port of the switch where the selected queue is located. The traffic control apparatus 100 can add information for delivering traffic to the selected queue to the flow rules, and the flow rules are transmitted to the open flow switches 220-1, ..., n through the open flow controller, .

도 9는 본 발명의 일 실시예에 따른 운석 순위 큐 정책을 나타낸 표이다.9 is a table showing a meteorological rank queue policy according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 트래픽 제어 장치(100)는 네트워크 관리자에 의해 정의될 수 있는 다양한 우선 순위 큐 정책을 테이블 엔트리 형태로 저장하고 있을 수 있다. 도 9와 같이, 우선 순위 큐 정책은 발신지 IP, 목적지 IP, 발신지 포트 번호, 목적지 포트 번호, 응용프로그램 이름 및 큐 우선 순위를 포함하는 6가지 명세 요소를 포함할 수 있다. 트래픽 제어 장치(100)는 트래픽의 5가지 명세 요소 중 발신지 IP, 목적지 IP, 발신지 포트 번호 및 목적지 포트 번호와 응용프로그램 인지 결과를 입력 인자로 하여 해당 트래픽이 경유하게 될 큐의 우선 순위 정책을 검색할 수 있다. 우선 순위 큐 정책의 명세 요소 중 일부는 에스터리스크(asterisk, *) 형태로 정의할 수 있으며, 에스터리스크 형태로 정의한 요소는 해당 요소에 대하여 일치 여부를 따지지 않음(Don't care)을 의미할 수 있다.The traffic control apparatus 100 according to an exemplary embodiment of the present invention may store various priority queue policies that can be defined by a network manager in the form of a table entry. As shown in FIG. 9, the priority queue policy may include six specification elements including a source IP, a destination IP, a source port number, a destination port number, an application program name, and a queue priority. The traffic control apparatus 100 searches for a priority policy of a queue to be passed through the corresponding traffic by using the source IP, the destination IP, the source port number, the destination port number, and the application program result as input factors among the five specification elements of the traffic can do. Some of the specification elements of the priority queue policy can be defined in the form of an asterisk (*), and the elements defined in the form of an asterisk can mean that they do not care about the element have.

트래픽 제어 장치(100)는 검색된 우선 순위 큐 정책에 따라 트래픽이 경유하게 될 큐의 우선 순위를 지정하는 정보를 플로우 룰에 추가할 수 있으며, 각 우선 순위 큐 별로 처리 가능한 대역폭에 가중치가 할당될 수 있다. 예를 들어, 3개의 우선 순위 큐가 존재하고 전체 대역폭이 100 Mbps인 경우, 우선 순위가 1인 큐는 0.6의 가중치를 할당 받아 60 Mbps의 트래픽을 처리할 수 있고, 우선 순위가 2인 큐는 0.3의 가중치를 할당 받아 30 Mbps를 처리할 수 있다. 또한, 우선 순위가 3인 큐는 0.1의 가중치를 할당 받아 10 Mbps의 트래픽을 처리할 수 있다. 보다 높은 우선 순위의 큐에 트래픽이 없는 경우, 높은 우선 순위의 큐에 할당된 가중치가 활용될 수 있다. 예를 들어, 우선 순위 1 및 우선 순위 2인 큐에 트래픽이 없는 경우, 우선 순위 3인 큐에서 1의 가중치를 할당 받아 100 Mbps의 트래픽을 처리할 수 있다.The traffic control apparatus 100 may add information to the flow rule that specifies the priority of the queue to which the traffic is to be passed according to the retrieved priority queue policy and a weight may be assigned to the bandwidth that can be processed for each priority queue have. For example, if there are three priority queues and the total bandwidth is 100 Mbps, queues with a priority of 1 can be assigned a weight of 0.6 to handle 60 Mbps of traffic, and a queue with a priority of 2 It can process 30 Mbps by assigning a weight of 0.3. In addition, a queue having a priority of 3 can be assigned a weight of 0.1 and can handle 10 Mbps of traffic. If there is no traffic in the higher priority queue, the weight assigned to the higher priority queue may be exploited. For example, if there is no traffic in the priority 1 and priority 2 queues, a queue of priority 3 can be assigned a weight of 1 to handle 100 Mbps of traffic.

도 10은 본 발명의 일 실시예에 따른 트래픽 제어 방법을 시뮬레이션한 결과를 나타낸 도면이다.10 is a diagram illustrating a result of a simulation of a traffic control method according to an embodiment of the present invention.

도 10은 본 발명을 SDN 네트워크 시뮬레이터인 미니넷(mininet) 상에서 실제로 구현한 후, 파일 전송을 위한 FTP(File Transfer Protocol) 트래픽을 대상으로 대역폭 관리를 수행한 결과를 나타낸 도면이다. 미니넷으로 구현한 오픈플로우 스위치는 FTP로 연결되는 발신지와 목적지 사이에 구성될 수 있으며, 오픈네트워크운영체제(Open Network Operating System, ONOS) 컨트롤러가 스위치에 연결되어 방화벽 정책 및 대역폭 정책를 반영한 플로우 룰을 스위치에 설치할 수 있다. FIG. 10 is a diagram illustrating a result of performing bandwidth management on File Transfer Protocol (FTP) traffic for file transmission after actually implementing the present invention on a mininet, which is an SDN network simulator. An open-flow switch implemented as a mininet can be configured between the source and destination connected via FTP. An Open Network Operating System (ONOS) controller is connected to the switch to switch the flow rules reflecting the firewall policy and bandwidth policy .

본 발명의 효과를 검증하기 위한 실험에 사용되는 FTP 트래픽은 포트 번호 21을 이용해 FTP 세션 구성을 위한 제어 패킷들을 전송할 수 있고, 포트 번호 20을 이용하여 실제 데이터 패킷들을 전송할 수 있다. 실험에서는 포트 번호 기반의 분석을 통해 제어 패킷 전송을 위한 포트 번호 21의 FTP 제어 패킷을 식별할 수 있고, 다른 포트 번호를 가진 패킷들은 심층 패킷 분석을 통해 FTP의 트래픽으로 식별될 수 있다. 또한, ONOS 컨트롤러를 통해 플로우 룰을 스위치에 설치할 수 있다.The FTP traffic used in the experiment to verify the effect of the present invention can transmit control packets for the FTP session configuration using the port number 21 and can transmit the actual data packets using the port number 20. In the experiment, it is possible to identify FTP control packet with port number 21 for control packet transmission through analysis based on port number, and packets having different port numbers can be identified as FTP traffic through deep packet analysis. Flow rules can also be placed on the switch via the ONOS controller.

도 10을 참조하면, 본 실험에서는 최초 데이터 패킷을 식별하였을 경우, 대역폭의 제한 값이 없는 대역폭 정책을 적용하여 해당 데이터 패킷들을 전송하였다. 그 결과, 패킷들은 약 1.2Mbps의 전송률을 가질 수 있었다. 데이터 패킷의 전송 시작 10초 후, 0.5Mbps로 대역폭을 제한하는 대역폭 정책으로 변경하였다. 그 결과, 대역폭 정책을 변경한 후 2초 동안 대역폭 정책에 따라 데이터 전송률은 점차 감소하여 데이터 패킷들은 0.5Mbps의 전송률을 가질 수 있었다. 또한, 데이터 패킷의 전송 시작 20초 후, 0.2Mbps로 대역폭을 제한하는 대역폭 정책으로 다시 변경하였다. 그 결과, 대역폭 정책을 다시 변경한 후 약 2초 동안 대역폭 정책에 따라 데이터 전송률은 점차 감소하여 데이터 패킷들은 0.2Mbps의 전송률을 가질 수 있었다. 상술한 실험 결과에 따르면, 네트워크 관리자는 대역폭 정책을 변경함으로써 데이터 패킷의 전송률(또는 트래픽)을 제어할 수 있었다.Referring to FIG. 10, in the present experiment, when the first data packet is identified, the corresponding data packets are transmitted by applying a bandwidth policy without a bandwidth limit value. As a result, the packets could have a transmission rate of about 1.2 Mbps. After 10 seconds from the start of data packet transmission, the bandwidth policy was changed to 0.5 Mbps bandwidth. As a result, after changing the bandwidth policy, the data rate gradually decreased according to the bandwidth policy for 2 seconds, and the data packets could have a transmission rate of 0.5 Mbps. In addition, after 20 seconds from the start of transmission of the data packet, the bandwidth policy was changed to a bandwidth policy of 0.2 Mbps. As a result, after changing the bandwidth policy again, the data rate gradually decreased according to the bandwidth policy for about 2 seconds, so that the data packets could have a transmission rate of 0.2 Mbps. According to the above-described experimental results, the network manager was able to control the data rate (or traffic) of the data packet by changing the bandwidth policy.

도 11은 본 발명의 일 실시예에 따른 스위치 큐 기반의 차등화 서비스를 시뮬레이션한 결과를 나타낸 도면이다.11 is a diagram illustrating a simulation result of a switch queue-based differentiation service according to an embodiment of the present invention.

도 11은 본 발명을 SDN 네트워크 시뮬레이터인 미니넷 상에서 실제로 구현한 후, 리눅스 기반 운영체제에서의 트래픽 생성기인 아이퍼프(Iperf)를 통해 생성된 트래픽과 유튜브(YouTube) 트래픽을 대상으로 스위치 큐 기반 차등화 서비스를 수행한 결과를 나타낸 도면이다. 미니넷으로 구현한 오픈플로우 스위치는 아이퍼프 및 유튜브 트래픽의 발신지와 목적지 사이에 구성될 수 있으며, ONOS 컨트롤러가 스위치에 연결되어 우선 순위 큐 정책을 반영한 플로우 룰을 스위치에 설치할 수 있다. FIG. 11 is a block diagram illustrating a switch queue-based differentiation service (hereinafter referred to as " switch-based ") service targeting traffic generated by Iperf, a traffic generator in a Linux- Fig. An open-flow switch implemented as a mininet can be configured between the source and destination of the IPP and YouTube traffic, and the ONOS controller can be connected to the switch to establish a flow rule in the switch that reflects the priority queue policy.

본 발명의 효과를 검증하기 위한 실험에 사용되는 아이퍼프 트래픽은 발신지와 목적지 사이 세션 설정에서 사용된 고정 포트 번호를 이용해 식별할 수 있고, 유튜브 트래픽은 심층 패킷 분석을 통해 식별할 수 있다. 각 트래픽의 발신지와 목적지 사이에는 2개 이상의 경로를 두었으며, 경로를 구성하는 링크(link)의 최대 대역폭은 100 Mbps로 설정하였다. 또한, 우선 순위 정책에 있어서, 아이퍼프 트래픽은 우선 순위 2로 설정하였고, 유튜브 트래픽은 우선 순위 1로 설정하였다. The IPP traffic used in the experiment to verify the effect of the present invention can be identified using the fixed port number used in the session establishment between the source and destination, and the YouTube traffic can be identified through in-depth packet analysis. There are two or more paths between the source and destination of each traffic, and the maximum bandwidth of the link constituting the path is set to 100 Mbps. Also, in the priority policy, the IPP traffic is set to priority 2, and the YouTube traffic is set to priority 1.

도 11을 참조하면, 베이스라인(Baseline) 방식은 우선 순위 큐 정책을 사용하지 않고 오직 하나의 경로만 사용했을 때의 실험을 의미할 수 있으며, 해당 실험에서 첫번째 아이퍼프 트래픽은 57 Mbps의 전송률을 가질 수 있으며, 두번째 아이퍼프 트래픽은 40 Mbps의 전송률을 가질 수 있고, 유튜브 트래픽이 3 Mbps의 전송률을 가질 수 있었다.Referring to FIG. 11, the baseline method may be an experiment in which only one path is used without using the priority queue policy. In this experiment, the first iPuff traffic has a transmission rate of 57 Mbps The second ipup traffic could have a data rate of 40 Mbps, and the YouTube traffic could have a data rate of 3 Mbps.

멀티패스(MultiPath) 방식은 우선 순위 큐 정책을 사용하지 않고 2개 이상의 경로를 사용했을 때의 실험을 의미할 수 있으며, 해당 실험에서 첫번째 아이퍼프 트래픽은 90 Mbps의 전송률을 가질 수 있으며, 두번째 아이퍼프 트래픽은 80 Mbps의 전송률을 가질 수 있고, 유튜브 트래픽이 7 Mbps의 전송률을 가질 수 있었다.The MultiPath scheme may be an experiment using two or more paths without using a priority queue policy. In this experiment, the first ipf traffic may have a transmission rate of 90 Mbps, and the second child Puff traffic could have a data rate of 80 Mbps, and YouTube traffic could have a data rate of 7 Mbps.

멀티패스 및 멀티큐(MultiQueue) 방식은 우선 순위 큐 정책과 2개 이상의 경로를 동시에 사용했을 때의 실험을 의미할 수 있으며, 해당 실험에서 첫번째 아이퍼프 트래픽은 86 Mbps의 전송률을 가질 수 있으며, 두번째 아이퍼프 트래픽은 76 Mbps의 전송률을 가질 수 있고, 유튜브 트래픽이 15 Mbps의 전송률을 가질 수 있었다.Multipath and MultiQueue schemes can be used for experiments with simultaneous use of a priority queue policy and two or more paths. In this experiment, the first ipfp traffic can have a data rate of 86 Mbps, and the second IPuff traffic could have a transfer rate of 76 Mbps, and YouTube traffic could have a transfer rate of 15 Mbps.

상술한 실험 결과에 따르면, 네트워크 관리자는 트래픽 제어 장치(100)의 트래픽 스케쥴러(140) 및 네트워크 모니터링부(150)를 통해 다중 경로를 사용함으로써 데이터 패킷의 전송률(또는 트래픽)을 높일 수 있었고, 우선 순위 큐 정책을 사용함으로써 제한된 대역폭 내에서 우선 순위가 낮은 트래픽의 대역폭을 감소시켜 우선 순위가 높은 트래픽의 대역폭을 증가시키는 유형의 차등화 서비스를 실현할 수 있었다.According to the experimental results, the network administrator can increase the data rate (or traffic) by using multipath through the traffic scheduler 140 and the network monitoring unit 150 of the traffic control apparatus 100, By using the rank queue policy, it is possible to realize a differentiated service of the type that increases the bandwidth of the high priority traffic by reducing the bandwidth of the low priority traffic within the limited bandwidth.

본 발명의 실시예에 따른 트래픽 제어 방법의 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산 방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다. The operation of the traffic control method according to the embodiment of the present invention can be implemented as a computer-readable program or code on a computer-readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. The computer-readable recording medium may also be distributed and distributed in a networked computer system so that a computer-readable program or code can be stored and executed in a distributed manner.

또한, 컴퓨터가 읽을 수 있는 기록매체는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 프로그램 명령은 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.Also, the computer-readable recording medium may include a hardware device specially configured to store and execute program instructions, such as a ROM, a RAM, a flash memory, and the like. Program instructions may include machine language code such as those produced by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like.

방법 단계들의 몇몇 또는 전부는 예를 들어, 마이크로프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 이용하여) 수행될 수 있다. 몇몇의 실시예에서, 가장 중요한 방법 단계들의 하나 이상은 이와 같은 장치에 의해 수행될 수 있다. Some or all of the method steps may be performed (e.g., by a microprocessor, a programmable computer or a hardware device such as an electronic circuit). In some embodiments, one or more of the most important method steps may be performed by such an apparatus.

실시예들에서, 프로그램 가능한 로직 장치(예를 들어, 필드 프로그머블 게이트 어레이)가 여기서 설명된 방법들의 기능의 일부 또는 전부를 수행하기 위해 사용될 수 있다. 실시예들에서, 필드 프로그머블 게이트 어레이는 여기서 설명된 방법들 중 하나를 수행하기 위한 마이크로프로세서와 함께 작동할 수 있다. 일반적으로, 방법들은 어떤 하드웨어 장치에 의해 수행되는 것이 바람직하다.In embodiments, a programmable logic device (e.g., a field programmable gate array) may be used to perform some or all of the functions of the methods described herein. In embodiments, the field programmable gate array may operate in conjunction with a microprocessor to perform one of the methods described herein. Generally, the methods are preferably performed by some hardware device.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the present invention as defined by the following claims It can be understood that

100: 트래픽 제어 장치 110: 트래픽 분류부
120: 방화벽 관리부 130: 대역폭 관리부
140: 트래픽 스케줄러 150: 네트워크 모니터링부
200: 오픈플로우 컨트롤러 210: 발신지
220-1, 2, ..., n: 제1, 2, ..., n 스위치
230: 목적지 ` 300: 심층 패킷 분석 장치
100: traffic control device 110: traffic classification unit
120: firewall management unit 130: bandwidth management unit
140: traffic scheduler 150: network monitoring unit
200: open flow controller 210: source
220-1, 2, ..., n: first, second, ..., n switches
230: Destination `300: Deep packet analyzer

Claims (20)

오픈플로우(openflow) 컨트롤러로부터 트래픽(traffic)의 포트 번호를 포함하는 첫 번째 패킷을 수신하는 단계;
상기 첫 번째 패킷을 기초로 상기 트래픽의 포트 번호 또는 심층 패킷 분석(Deep Packet Inspecton, DPI)을 이용하여 상기 트래픽을 발생시킨 응용프로그램의 정보를 인지하는 단계; 및
상기 응용프로그램의 정보 및 방화벽 정책 테이블을 기초로 상기 트래픽을 포워딩(forwarding)할 것인지 또는 드랍(drop)할 것인지에 대하여 결정하는 상기 트래픽에 대한 방화벽 정보를 포함하는 플로우 룰(rule)을 생성하는 단계를 포함하는, 트래픽 제어 방법.
Receiving a first packet including a port number of traffic from an open flow controller;
Recognizing information of an application program that has generated the traffic using a port number of the traffic or a deep packet inspection (DPI) based on the first packet; And
Generating a flow rule including firewall information on the traffic that determines whether to forward or drop the traffic based on the information of the application program and the firewall policy table; Comprising a traffic control method.
청구항 1에 있어서,
상기 트래픽을 발생시킨 응용프로그램의 정보를 인지하는 단계는,
상기 트래픽의 포트 번호를 기초로 상기 응용프로그램의 정보가 인지되는지에 따라 트래픽을 분류하는 단계를 포함하는, 트래픽 제어 방법.
The method according to claim 1,
The step of recognizing information of an application program that has generated the traffic includes:
And classifying traffic according to whether information of the application program is recognized based on the port number of the traffic.
청구항 2에 있어서,
상기 트래픽을 발생시킨 응용프로그램의 정보를 인지하는 단계는,
상기 트래픽의 포트 번호를 기초로 상기 응용프로그램의 정보가 인지되는 트래픽은 상기 응용프로그램의 정보를 인지하고, 상기 트래픽의 포트 번호를 기초로 상기 응용프로그램의 정보가 인지되지 않는 트래픽은 외부에 심층 패킷 분석을 요청하여 상기 응용프로그램의 정보를 인지하는 단계를 더 포함하는, 트래픽 제어 방법.
The method of claim 2,
The step of recognizing information of an application program that has generated the traffic includes:
The traffic for which the information of the application program is recognized based on the port number of the traffic recognizes the information of the application program and the traffic for which the information of the application program is not recognized based on the port number of the traffic, And requesting analysis to recognize the information of the application program.
청구항 1에 있어서,
상기 트래픽에 대한 방화벽 정보를 포함하는 플로우 룰을 생성하는 단계는,
상기 방화벽 정책 테이블에서 상기 응용프로그램의 정보를 기초로 방화벽 정책을 검색하는 단계; 및
상기 검색 결과에 따른 상기 방화벽 정보를 포함하는 플로우 룰을 생성하는 단계를 포함하는, 트래픽 제어 방법.
The method according to claim 1,
Wherein the step of generating a flow rule including firewall information for the traffic comprises:
Retrieving a firewall policy based on the information of the application program in the firewall policy table; And
And generating a flow rule including the firewall information according to the search result.
청구항 1에 있어서,
상기 방화벽 정책이 드랍이 아닌 경우, 상기 응용프로그램의 정보 및 대역폭 정책 테이블을 기초로 상기 트래픽에 대한 대역폭 제한 정보를 상기 플로우 룰에 추가하는 단계를 더 포함하는, 트래픽 제어 방법.
The method according to claim 1,
Further comprising adding bandwidth restriction information for the traffic to the flow rule based on the information of the application program and the bandwidth policy table when the firewall policy is not dropping.
청구항 5에 있어서,
상기 트래픽에 대한 대역폭 제한 정보를 상기 플로우 룰에 추가하는 단계는,
상기 대역폭 정책 테이블에서 상기 응용프로그램의 정보를 기초로 대역폭 정책을 검색하는 단계; 및
상기 검색 결과에 따른 상기 대역폭 제한 정보를 상기 플로우 룰에 추가하는 단계를 포함하는, 트래픽 제어 방법.
The method of claim 5,
Wherein adding the bandwidth limitation information for the traffic to the flow rule comprises:
Retrieving a bandwidth policy based on information of the application program in the bandwidth policy table; And
And adding the bandwidth limitation information according to the search result to the flow rule.
청구항 5에 있어서,
오픈플로우 컨트롤러로부터 플로우 통계를 수신하고, 수신한 플로우 통계를 기초로 상기 대역폭 제한 정보의 대역폭 제한 값을 조절하는 단계를 더 포함하는, 트래픽 제어 방법.
The method of claim 5,
Receiving flow statistics from the open flow controller and adjusting the bandwidth limit value of the bandwidth limit information based on the received flow statistics.
청구항 5에 있어서,
상기 응용프로그램의 정보 및 우선 순위 큐 정책 테이블을 기초로 상기 트래픽에 대한 우선 순위 큐 정보를 상기 플로우 룰에 추가하는 단계를 더 포함하는, 트래픽 제어 방법.
The method of claim 5,
Further comprising adding to the flow rule priority queue information for the traffic based on the information of the application program and a priority queue policy table.
청구항 8에 있어서,
상기 트래픽에 대한 우선 순위 큐 정보를 상기 플로우 룰에 추가하는 단계는,
상기 우선 순위 큐 정책 테이블에서 상기 응용프로그램의 정보를 기초로 우선 순위 큐 정책을 검색하는 단계; 및
상기 검색 결과에 따른 상기 우선 순위 큐 정보를 상기 플로우 룰에 추가하는 단계를 포함하는, 트래픽 제어 방법.
The method of claim 8,
Wherein adding the priority queue information for the traffic to the flow rule comprises:
Retrieving a priority queue policy based on information of the application program in the priority queue policy table; And
And adding the priority queue information according to the search result to the flow rule.
청구항 8에 있어서,
상기 우선 순위 큐 정보는,
큐 사용량 정보를 기초로 최소 사용량을 가지는 큐를 선택하고, 상기 선택한 큐로 패킷이 전달되기 위한 정보를 포함하는, 트래픽 제어 방법.
The method of claim 8,
Wherein the priority queue information comprises:
And selecting a queue having a minimum usage amount based on the queue usage information, and including information for transferring the packet to the selected queue.
오픈플로우(openflow) 컨트롤러로부터 트래픽(traffic)의 포트 번호를 포함하는 첫 번째 패킷을 수신하고, 상기 첫 번째 패킷을 기초로 상기 트래픽의 포트 번호 또는 심층 패킷 분석(Deep Packet Inspecton, DPI)을 이용하여 상기 트래픽을 발생시킨 응용프로그램의 정보를 인지하는 트래픽 분류부; 및
상기 응용프로그램의 정보 및 방화벽 정책 테이블을 기초로 상기 트래픽을 포워딩(forwarding)할 것인지 또는 드랍(drop)할 것인지에 대하여 결정하는 상기 트래픽에 대한 방화벽 정보를 포함하는 플로우 룰(rule)을 생성하는 방화벽 관리부 포함하는, 트래픽 제어 장치.
Receiving a first packet including a port number of traffic from an open flow controller and using a port number of the traffic or a deep packet inspection (DPI) based on the first packet, A traffic classifying unit for recognizing information of an application program that has generated the traffic; And
A firewall management unit that generates a flow rule including firewall information for the traffic that determines whether to forward or drop the traffic based on the information of the application program and the firewall policy table, The traffic control device.
청구항 11에 있어서,
상기 트래픽 분류부는,
상기 트래픽의 포트 번호를 기초로 상기 응용프로그램의 정보가 인지되는지에 따라 트래픽을 분류하는, 트래픽 제어 장치.
The method of claim 11,
Wherein the traffic classifier comprises:
And classifies traffic according to whether information of the application program is recognized based on a port number of the traffic.
청구항 12에 있어서,
상기 트래픽 분류부는,
상기 트래픽의 포트 번호를 기초로 상기 응용프로그램의 정보가 인지되는 트래픽은 상기 응용프로그램의 정보를 인지하고, 상기 트래픽의 포트 번호를 기초로 상기 응용프로그램의 정보가 인지되지 않는 트래픽은 외부에 심층 패킷 분석을 요청하여 상기 응용프로그램의 정보를 인지하는, 트래픽 제어 장치.
The method of claim 12,
Wherein the traffic classifier comprises:
The traffic for which the information of the application program is recognized based on the port number of the traffic recognizes the information of the application program and the traffic for which the information of the application program is not recognized based on the port number of the traffic, And requests the analysis to recognize the information of the application program.
청구항 11에 있어서,
상기 방화벽 관리부는,
상기 방화벽 정책 테이블에서 상기 응용프로그램의 정보를 기초로 방화벽 정책을 검색하고,
상기 검색 결과에 따른 상기 방화벽 정보를 포함하는 플로우 룰을 생성하는, 트래픽 제어 장치.
The method of claim 11,
The firewall management unit,
Retrieving a firewall policy based on the information of the application program in the firewall policy table,
And generates a flow rule including the firewall information according to the search result.
청구항 11에 있어서,
상기 방화벽 정책이 드랍이 아닌 경우, 상기 응용프로그램의 정보 및 대역폭 정책 테이블을 기초로 상기 트래픽에 대한 대역폭 제한 정보를 상기 플로우 룰에 추가하는 대역폭 관리부를 더 포함하는, 트래픽 제어 장치.
The method of claim 11,
Further comprising a bandwidth management unit for, when the firewall policy is not dropped, adding bandwidth restriction information on the traffic to the flow rule based on the information of the application program and the bandwidth policy table.
청구항 15에 있어서,
상기 대역폭 관리부는,
상기 대역폭 정책 테이블에서 상기 응용프로그램의 정보를 기초로 대역폭 정책을 검색하고,
상기 검색 결과에 따른 상기 대역폭 제한 정보를 상기 플로우 룰에 추가하는, 트래픽 제어 장치.
16. The method of claim 15,
The bandwidth management unit,
Retrieving a bandwidth policy based on the information of the application program in the bandwidth policy table,
And adds the bandwidth limitation information according to the search result to the flow rule.
청구항 15에 있어서,
상기 대역폭 관리부는,
오픈플로우 컨트롤러로부터 플로우 통계를 수신하고, 수신한 플로우 통계를 기초로 상기 대역폭 제한 정보의 대역폭 제한 값을 조절하는, 트래픽 제어 장치.
16. The method of claim 15,
The bandwidth management unit,
Receives the flow statistics from the open flow controller, and adjusts the bandwidth limitation value of the bandwidth limitation information based on the received flow statistics.
청구항 15에 있어서,
상기 응용프로그램의 정보 및 우선 순위 큐 정책 테이블을 기초로 상기 트래픽에 대한 우선 순위 큐 정보를 상기 플로우 룰에 추가하는 트래픽 스케줄러를 더 포함하는, 트래픽 제어 장치.
16. The method of claim 15,
Further comprising: a traffic scheduler that adds priority queue information for the traffic to the flow rule based on information of the application program and a priority queue policy table.
청구항 18에 있어서,
상기 트래픽 스케줄러는,
상기 우선 순위 큐 정책 테이블에서 상기 응용프로그램의 정보를 기초로 우선 순위 큐 정책을 검색하고,
상기 검색 결과에 따른 상기 우선 순위 큐 정보를 상기 플로우 룰에 추가하는, 트래픽 제어 장치.
19. The method of claim 18,
The traffic scheduler,
Retrieving a priority queue policy based on the information of the application program in the priority queue policy table,
And adds the priority queue information according to the search result to the flow rule.
청구항 18에 있어서,
스위치 큐 통계 정보를 수신하고, 상기 수신한 스위치 큐 통계 정보를 기초로 큐 사용량 정보를 산출하는 네트워크 모니터를 더 포함하고,
상기 우선 순위 큐 정보는,
상기 큐 사용량 정보를 기초로 최소 사용량을 가지는 큐를 선택하고, 상기 선택한 큐로 패킷이 전달되기 위한 정보를 포함하는, 트래픽 제어 장치.
19. The method of claim 18,
Further comprising a network monitor for receiving the switch queue statistical information and calculating queue usage information based on the received switch queue statistical information,
Wherein the priority queue information comprises:
And selects a queue having a minimum usage amount based on the queue usage information, and includes information for transferring a packet to the selected queue.
KR1020170115036A 2017-09-08 2017-09-08 Apparatus and method for controlling traffic in openflow network Ceased KR20190028059A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170115036A KR20190028059A (en) 2017-09-08 2017-09-08 Apparatus and method for controlling traffic in openflow network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170115036A KR20190028059A (en) 2017-09-08 2017-09-08 Apparatus and method for controlling traffic in openflow network

Publications (1)

Publication Number Publication Date
KR20190028059A true KR20190028059A (en) 2019-03-18

Family

ID=65948936

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170115036A Ceased KR20190028059A (en) 2017-09-08 2017-09-08 Apparatus and method for controlling traffic in openflow network

Country Status (1)

Country Link
KR (1) KR20190028059A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210133830A (en) * 2020-04-28 2021-11-08 주식회사 코스콤 Method for visualizing firewall policy and apparatus therefor
CN115801538A (en) * 2022-11-10 2023-03-14 云南电网有限责任公司 Site server application asset deep identification method, system and equipment
CN120389988A (en) * 2025-06-30 2025-07-29 武汉博易讯信息科技有限公司 Policy flow control method and device based on P4 language and deep packet inspection

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210133830A (en) * 2020-04-28 2021-11-08 주식회사 코스콤 Method for visualizing firewall policy and apparatus therefor
CN115801538A (en) * 2022-11-10 2023-03-14 云南电网有限责任公司 Site server application asset deep identification method, system and equipment
CN120389988A (en) * 2025-06-30 2025-07-29 武汉博易讯信息科技有限公司 Policy flow control method and device based on P4 language and deep packet inspection

Similar Documents

Publication Publication Date Title
CN111193666B (en) Applying quality of experience metrics using adaptive machine learning sounding prediction
US10868752B2 (en) Intelligent adaptive transport layer to enhance performance using multiple channels
CN104702522B (en) Computer implemented method, device, the controller of software defined network routing data
Xu et al. Quality of Service Guaranteed Resource Management Dynamically in Software Defined Network.
CN105393508B (en) Service quality control method and device for software-defined network
EP3756317B1 (en) Method, device and computer program product for interfacing communication networks
BRPI1104782A2 (en) methods and apparatus for creating multiple packet traffic profiling models and profiling packet traffic flows
US11240140B2 (en) Method and system for interfacing communication networks
KR20160042441A (en) Application-aware network management
WO2015044719A1 (en) Apparatus for optimising a configuration of a communications network device
KR20190028059A (en) Apparatus and method for controlling traffic in openflow network
Suguna et al. LARIC: latency-aware QoS routing for interactive communication in software defined multimedia
KR20180129376A (en) Smart gateway supporting iot and realtime traffic shaping method for the same
Oliveira et al. SDN‐based architecture for providing quality of service to high‐performance distributed applications
US20240430205A1 (en) Systems and methods for application layer protocol quality of service marking
Messaoudi et al. Gnn-based sdn admission control in beyond 5g networks
Zaw Delay-aware elephant flow rerouting in software-defined networking (sdn)
Grežo et al. Network traffic measurement and management in software defined networks
US12363040B2 (en) Method and system for dynamic load balancing
Tansupasiri et al. Using active networks technology for dynamic QoS
Gomez et al. Improving flow fairness in non-programmable networks using P4-programmable Data Planes
Messaoudi Deterministic network design and optimization to support low-latency communications in 6G
Hsieh Improving Quality of Service in Software Defined Network via Prediction Methodology
Mebarkia Quality of Service Ensurance for Service Function Chaining supporting Network Slicing
Liu et al. DINT-Based DWRR: Decentralised INT-Based Packet Scheduling Method for Multipath Communication

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20170908

PA0201 Request for examination
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20190109

Patent event code: PE09021S01D

PG1501 Laying open of application
E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20190401

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20190109

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I