KR102635358B1 - 전자 장치의 sdn 성능 개선 방법 - Google Patents

전자 장치의 sdn 성능 개선 방법 Download PDF

Info

Publication number
KR102635358B1
KR102635358B1 KR1020220006572A KR20220006572A KR102635358B1 KR 102635358 B1 KR102635358 B1 KR 102635358B1 KR 1020220006572 A KR1020220006572 A KR 1020220006572A KR 20220006572 A KR20220006572 A KR 20220006572A KR 102635358 B1 KR102635358 B1 KR 102635358B1
Authority
KR
South Korea
Prior art keywords
policy
performance
routing distance
link utilization
performance indicator
Prior art date
Application number
KR1020220006572A
Other languages
English (en)
Other versions
KR20230110960A (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 KR1020220006572A priority Critical patent/KR102635358B1/ko
Priority to PCT/KR2022/014764 priority patent/WO2023136426A1/ko
Priority to US17/957,174 priority patent/US20230231791A1/en
Publication of KR20230110960A publication Critical patent/KR20230110960A/ko
Application granted granted Critical
Publication of KR102635358B1 publication Critical patent/KR102635358B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/14Routing performance; Theoretical aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0882Utilisation of link capacity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/76Routing in software-defined topologies, e.g. routing between virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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/16Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
    • 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/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • 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/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • H04L41/5025Ensuring fulfilment of SLA by proactively reacting to service quality change, e.g. by reconfiguration after service quality degradation or upgrade
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/08Learning-based routing, e.g. using neural networks or artificial intelligence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/122Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • 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
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Environmental & Geological Engineering (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

SDN의 플로우 테이블(flow table)로부터 적어도 하나의 정책을 확인하고, 적어도 하나의 정책에 관한 정보를 기초로 성능 지표 요소를 확인하고, 성능 지표 요소 및 목표 성능 지표를 기초로 SDN의 성능 개선이 필요한지 여부를 판단하고, 판단 결과 SDN의 성능 개선이 필요한 경우, 성능 지표 요소에 관한 정보를 기초로 소정의 알고리즘을 실행하여 적어도 하나의 정책에 관한 실행 정보를 확인하고, 실행 정보를 기초로 적어도 하나의 정책을 갱신하는 전자 장치 및 그의 동작 방법을 제공한다.

Description

전자 장치의 SDN 성능 개선 방법{SDN PERFORMANCE IMPROVEMENT METHOD OF ELECTRONIC APPARATUS}
본 개시는 전자 장치의 SDN 성능 개선 방법에 관한 것이다.
네트워크의 여러 서비스에서 유통되는 방대한 양의 데이터를 효율적으로 전송하기 위해 데이터를 실은 패킷은 빠르게 목적지에 도착해야 한다. 이를 위해 출발 노드로부터 네트워크의 하드웨어 레벨을 구성하는 스위치들을 통해 도착 노드까지 데이터가 전달되는 라우팅 경로를 최적화해야 한다. 하지만 단순히 라우팅 경로를 최적화하는 것만으로는 특정 스위치들을 연결하는 링크들에 데이터 전송이 집중되어 네트워크의 전체적인 대역폭을 효율적으로 사용하기 어렵다. 따라서 데이터가 전송되는 라우팅 경로를 최적화하여 평균 라우팅 경로 길이를 줄이면서 특정 링크에 데이터 전송이 포화되지 않도록 링크 사용을 분산시켜야 한다.
소프트웨어 정의 네트워킹 (Software-defined networking, 이하 SDN)은 스위치의 제어 평면 (Control plane, 이하 CP)와 데이터 평면 (Data plane, 이하 DP)를 개념적으로 분리시켜 스위치는 DP의 역할을 수행하고 CP의 역할을 수행하는 SDN 컨트롤러를 추가적으로 배치하여 스위치들을 관리하도록 하는 기술이다. SDN은 모든 스위치들을 직접 관리하였던 기존의 네트워크와는 달리 SDN 컨트롤러를 통해 스위치들을 일괄적으로 관리할 수 있기 때문에 네트워크 정책들을 변경하여 스위치에 적용하기 매우 편리하다. 따라서 SDN을 이용하여 패킷 라우팅 정책들을 수정함으로써 라우팅 경로를 조정하고 링크들의 사용률을 편리하게 관리할 수 있다.
하지만 SDN 컨트롤러를 이용하여 네트워크 정책들을 간편하게 변경하여 적용할 수 있음에도 불구하고, 네트워크 정책들을 어떻게 수정해야 전체 네트워크의 성능이 향상될 수 있는지 분석하고 결정하는 것은 매우 어렵다. 이러한 분석 과정은 사람에 의해 수행될 수 있으나 효율성이 낮고 다양한 플랫폼에 적용하기 위한 범용성이 부족하다. 따라서 이러한 분석 과정을 자동화하여 작업의 효율성을 높이고 하부 네트워크의 구조에 독립적으로 작동함으로써 다양한 플랫폼에 쉽게 적용될 수 있도록 범용성을 높이는 문제 해결 방안이 필요하다.
본 발명에 따르면, 전자 장치는 본 발명에서 기술되는 방법을 수행하는 프로세서를 포함하여, 알고리즘을 통해 SDN의 정책을 업데이트하여 SDN의 성능을 개선할 수 있다.
본 발명이 이루고자 하는 기술적 과제는 상기된 바와 같은 과제로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
일 실시예에 따라, 전자 장치의 SDN(Software Defined Networking) 성능 개선 방법에 있어서, SDN의 플로우 테이블(flow table)로부터 적어도 하나의 정책을 확인하는 단계; 상기 적어도 하나의 정책에 관한 정보를 기초로 성능 지표 요소를 확인하는 단계; 상기 성능 지표 요소 및 목표 성능 지표를 기초로 상기 SDN의 성능 개선이 필요한지 여부를 판단하는 단계; 상기 판단 결과 상기 SDN의 성능 개선이 필요한 경우, 상기 성능 지표 요소에 관한 정보를 기초로 소정의 알고리즘을 실행하여 상기 적어도 하나의 정책에 관한 실행 정보를 확인하는 단계; 및 상기 실행 정보를 기초로 상기 적어도 하나의 정책을 갱신하는 단계를 포함할 수 있다.
일 실시예에 따라, SDN(Software Defined Networking) 성능 개선을 위한 전자 장치로서, 적어도 하나의 프로그램이 저장된 메모리; 및 상기 적어도 하나의 프로그램을 실행함으로써, SDN의 플로우 테이블(flow table)로부터 적어도 하나의 정책을 확인하고, 상기 적어도 하나의 정책에 관한 정보를 기초로 성능 지표 요소를 확인하고, 상기 성능 지표 요소 및 목표 성능 지표를 기초로 상기 SDN의 성능 개선이 필요한지 여부를 판단하고, 상기 판단 결과 상기 SDN의 성능 개선이 필요한 경우, 상기 성능 지표 요소에 관한 정보를 기초로 소정의 알고리즘을 실행하여 상기 적어도 하나의 정책에 관한 실행 정보를 확인하고, 상기 실행 정보를 기초로 상기 적어도 하나의 정책을 갱신하는 프로세서를 포함할 수 있다.
일 실시예에 따라, 컴퓨터로 읽을 수 있는 기록매체는 상술한 동작 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 비일시적 기록매체를 포함할 수 있다.
기타 실시예들의 구체적인 사항은 상세한 설명 및 도면들에 포함된다.
본 발명에 의하면, SDN의 네트워크 정책들을 어떻게 수정해야 전체 네트워크의 성능이 향상될 수 있는지 분석하고 결정하는 과정을 자동화하여 작업의 효율성을 높일 수 있다. 또한 해당 기법을 통해 하부 네트워크의 구조에 독립적으로 작동할 수 있으므로 다양한 플랫폼에 쉽게 적용될 수 있도록 범용성을 높일 수 있다.
발명의 효과는 이상에서 언급한 효과만으로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위 기재로부터 당해 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있다.
도 1 은 본 개시에 따른 전자 장치를 나타낸다.
도 2 는 본 개시에 따른 전자 장치 및 SDN의 관계를 나타낸다.
도 3 은 본 개시에 따른 제1 인터페이스의 일 실시예를 나타낸다.
도 4 는 본 개시에 따른 제2 인터페이스의 일 실시예를 나타낸다.
도 5 는 본 개시에 따른 알고리즘의 일 실시예를 나타낸다.
도 6 은 본 개시에 따른 실행 정보의 일 실시예를 나타낸다.
도 7 은 본 개시에 따른 제3 인터페이스의 일 실시예를 나타낸다.
도 8 은 본 개시에 따른 방법의 일 실시예를 나타낸다.
본 개시에 기술된 실시예는 본 개시를 제한하는 것이 아니라 예시하는 것이고, 통상의 기술자는 첨부된 청구범위에 의해 정의된 본 개시의 범주를 벗어나지 않으면서, 다수의 대안적인 실시예를 설계할 수 있다. 실시 예들에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
달리 반대되는 기재가 없는 한, 본 명세서에서 "정책" 또는 "플로우"는 SDN의 플로우 테이블에 수록되는 패킷 전달 규칙을 의미한다. 정책은 패킷 매칭 필드, 우선 순위 필드 또는 처리 명령 필드 등의 하나 이상의 필드를 포함할 수 있다.
달리 반대되는 기재가 없는 한, 본 명세서에서 "성능 지표"는 SDN의 성능을 나타내는 파라미터 등을 의미한다. 성능 지표는 업계에서 잘 알려진 파라미터일 수도 있고, 사용자에 의해 정의된 파라미터일 수도 있다.
달리 반대되는 기재가 없는 한, 본 명세서에서 "목표 성능 지표"는 SDN의 성능 지표에 대응되는 목표 값을 의미한다.
달리 반대되는 기재가 없는 한, 본 명세서에서 "성능 지표 요소"는 성능 지표를 계산하기 위한 기초가 되는 요소를 의미한다. 성능 지표 요소는 플로우 테이블에 저장된 정보를 기초로 계산될 수 있다. 예를 들어, 플로우 테이블에 저장된 각각의 정책에 관한 홉(hop) 수의 평균일 수 있다. 성능 지표 요소에 대한 예시는 아래에서 자세하게 설명한다.
달리 반대되는 기재가 없는 한, 본 명세서에서 "실행 정보"는 플로우 테이블에 저장된 적어도 하나의 정책을 수정하는 방법을 포함하는 정보를 의미한다. 실행 정보에 대한 예시는 아래에서 자세하게 설명한다.
본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 반대되는 기재가 존재하지 않는 한, 단수는 물론 복수를 모두 포함한다.
본 명세서 전체에서 어떤 부분이 어떤 구성요소들 또는 어떤 단계들을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 어떤 부분이 구성요소들 또는 단계들을 반드시 모두 포함해야 하는 것은 아니고, 청구범위 또는 명세서 전체에 열거된 것 이외의 구성요소 또는 단계가 포함되는 것을 배제하는 것도 아니며, 단지 이들을 더 포함할 수 있음을 의미한다.
또한, 본 명세서에서 사용되는 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 서수를 포함하는 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 문맥상 명세서의 일 부분에서 일 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리범위를 벗어나지 않으면서 제1 구성요소는 명세서의 다른 부분에서 제2 구성요소로 명명될 수 있고, 반대로 제2 구성요소도 명세서의 다른 부분에서 제1 구성요소로 명명될 수 있다.
본 명세서에서 "매커니즘", "요소", "수단", "구성"과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
본 명세서(특히 청구범위에서)에서 "상기"의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 포함하는 것으로서(이에 반하는 기재가 없다면), 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 재배열되어 행해질 수 있고, 반드시 상기 단계들의 기재 순서에 한정되는 것은 아니다. 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 기술적 사상을 상세히 설명하기 위한 것으로서 청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 범위가 한정되는 것은 아니다. 통상의 기술자는 본 명세서에 개시된 실시예에 설계 조건 및 팩터에 따라 다양한 수정, 조합 및 변경을 부가하여 특허청구범위 또는 그 균등물의 범주에 속하는 새로운 실시예를 구성할 수 있다.
이하에서는 도면을 참조하여 본 개시의 실시예를 설명한다.
도 1 은 본 개시의 적어도 하나의 실시예를 실행하는데 사용될 수 있는 전자 장치(100)의 예시적이고 단순화된 블록도를 나타낸다. 다양한 실시예에서, 전자 장치(100)는 본 개시에서 서술된 임의의 시스템 또는 방법을 구현하는데 사용될 수 있다. 예를 들어, 전자 장치(100)는 데이터 서버, 웹 서버, 휴대용 컴퓨팅 디바이스, 개인용 컴퓨터, 태블릿 컴퓨터, 워크스테이션, 휴대폰, 스마트 폰(smart phone) 또는 아래에서 서술되는 임의의 다른 디바이스를 포함하는 임의의 전자 장치로서 사용되도록 구성될 수 있다.
전자 장치(100)는 메모리(120) 및 메모리(120)와 통신하도록 구성될 수 있는 하나 이상의 캐시 메모리 및 메모리 제어기를 갖는 하나 이상의 프로세서(110)를 포함할 수 있다. 추가적으로, 전자 장치(100)는 하나 이상의 포트(예컨대, USB(Universal Serial Bus), 헤드폰 잭, 라이트닝(Lightning) 커넥터, 썬더볼트(Thunderbolt) 커넥터 등)를 통해 전자 장치(100)에 연결될 수 있는 다른 디바이스를 포함할 수 있다. 전자 장치(100)에 연결될 수 있는 디바이스는 광섬유 커넥터를 수용하도록 구성되는 복수의 포트를 포함할 수 있다. 도시된 전자 장치(100)의 구성은 디바이스의 바람직한 실시예를 예시할 목적으로 특정 예시로서만 의도된다. 도시된 전자 장치(100)에는 본 실시예들과 관련된 구성요소들만이 도시되어 있다. 따라서, 전자 장치(100)에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음은 당해 기술분야의 통상의 기술자에게 자명하다.
프로세서(110)는 전자 장치(100)가 본 개시에서 서술된 임의의 실시예의 단계 또는 기능을 제공하도록 하기 위해 이용될 수 있다. 예를 들어, 프로세서(110)는 전자 장치(100) 내의 메모리(120)에 저장된 프로그램들을 실행함으로써, 전자 장치(100)를 전반적으로 제어한다. 프로세서(110)는 전자 장치(100) 내에 구비된 CPU(central processing unit), GPU(graphics processing unit), AP(application processor) 등으로 구현될 수 있으나, 이에 제한되지 않는다.
메모리(120)는 전자 장치(100) 내에서 처리되는 각종 데이터들을 저장하는 하드웨어로서, 메모리(120)는 전자 장치(100)에서 프로세서(110)를 통해 처리된 데이터들 및 처리될 데이터들을 저장할 수 있다. 또한, 메모리(120)는 본 개시의 적어도 하나의 실시예의 기능을 제공할 수 있는 기본 프로그래밍 및 데이터 구조를 저장하는 것은 물론, 본 개시의 실시예의 기능을 제공할 수 있는 애플리케이션들(프로그램, 코드 모듈, 명령어), 드라이버들 등을 저장할 수 있다. 메모리(120)는 DRAM(dynamic random access memory), SRAM(static random access memory) 등과 같은 RAM(random access memory), ROM(read-only memory), EEPROM(electrically erasable programmable read-only memory), CD-ROM, 블루레이 또는 다른 광학 디스크 스토리지, HDD(hard disk drive), SSD(solid state drive), 또는 플래시 메모리를 포함할 수 있다.
도 2 는 본 개시에 따른 전자 장치(200) 및 SDN(240)의 일 실시예를 나타낸다. 도 2 에 나타난 전자 장치(200)는 도 1 에 도시된 전자 장치(100)와 서로 배타적이지 않으며, 전자 장치(200)는 전자 장치(100)를 포함하거나, 전자 장치(100)가 전자 장치(200)를 포함할 수 있다. 일 실시예에서, 전자 장치(200)는 SDN(240)의 플로우 테이블(241)로부터 적어도 하나의 정책을 확인하고, 적어도 하나의 정책에 관한 정보를 기초로 성능 지표 요소를 확인하고, 성능 지표 요소 및 목표 성능 지표를 기초로 SDN(240)의 성능 개선이 필요한지 여부를 판단하고, 판단 결과 SDN(240)의 성능 개선이 필요한 경우, 성능 지표 요소에 관한 정보를 기초로 소정의 알고리즘을 실행하여 적어도 하나의 정책에 관한 실행 정보를 확인하고, 실행 정보를 기초로 적어도 하나의 정책을 갱신할 수 있다.
구체적으로, 전자 장치(200)는 SDN(240)의 플로우 테이블(241)로부터 제1 인터페이스(210)를 통해 적어도 하나의 정책을 확인 또는 조회하고, 적어도 하나의 정책에 관한 정보를 기초로 제1 인터페이스(210)를 통해 성능 지표 요소를 확인하고, 성능 지표 요소 및 SDN(240)의 컨트롤러(242)로부터 확인한 목표 성능 지표를 기초로 제2 인터페이스(220)를 통해 SDN(240)의 성능 개선이 필요한지 여부를 판단하고, 판단 결과 SDN(240)의 성능 개선이 필요한 경우, 성능 지표 요소에 관한 정보를 기초로 제2 인터페이스(220)를 통해 소정의 알고리즘을 실행하여 적어도 하나의 정책에 관한 실행 정보를 확인하고, 실행 정보를 기초로 제3 인터페이스(230)를 통해 적어도 하나의 정책을 갱신할 수 있다.
일 실시예에서, 전자 장치(200)의 제1 인터페이스(210), 제2 인터페이스(220) 및 제3 인터페이스(230)는 각각 별도의 전자 장치일 수 있다. 예를 들어, 제1 인터페이스(210)는 제1 프로세서를 포함하고, 제2 인터페이스(220)는 제2 프로세서를 포함하고, 제3 인터페이스(230)는 제3 프로세서를 포함할 수 있다. 이 경우, 제1 인터페이스(210)의 제1 프로세서는 메모리에 저장된 프로그램을 실행하여, 적어도 하나의 정책을 확인 또는 조회하고, 적어도 하나의 정책에 관한 정보를 기초로 성능 지표 요소를 확인할 수 있다. 제2 인터페이스(220)의 제2 프로세서는 메모리에 저장된 프로그램을 실행하여, 성능 지표 요소 및 SDN(240)의 컨트롤러(242)로부터 확인한 목표 성능 지표를 기초로 SDN(240)의 성능 개선이 필요한지 여부를 판단하고, 판단 결과 SDN(240)의 성능 개선이 필요한 경우, 성능 지표 요소에 관한 정보를 기초로 소정의 알고리즘을 실행하여 적어도 하나의 정책에 관한 실행 정보를 확인할 수 있다. 제3 인터페이스(230)의 제3 프로세서는 메모리에 저장된 프로그램을 실행하여, 실행 정보를 기초로 적어도 하나의 정책을 갱신할 수 있다. 이 경우, 제1 인터페이스, 제2 인터페이스 및 제3 인터페이스는 메모리를 공유하여, 제1 인터페이스, 제2 인터페이스 및 제3 인터페이스는 각각의 입력을 공유된 메모리로부터 읽거나 각각의 출력을 공유된 메모리로 쓸(write) 수 있다. 이는 본 개시에 따른 방법을 분산 처리할 수 있는 이점이 있다.
일 실시예에서, 전자 장치(200)의 제1 인터페이스(210), 제2 인터페이스(220) 및 제3 인터페이스(230)는 하나의 전자 장치(200)에서 각각 논리적으로 구별된 모듈일 수 있다. 이 경우, 전자 장치(200)의 프로세서는 메모리에 저장된 프로그램을 실행하여, SDN(240)의 플로우 테이블(241)로부터 적어도 하나의 정책을 확인하고, 적어도 하나의 정책에 관한 정보를 기초로 성능 지표 요소를 확인하고, 성능 지표 요소 및 목표 성능 지표를 기초로 SDN(240)의 성능 개선이 필요한지 여부를 판단하고, 판단 결과 SDN(240)의 성능 개선이 필요한 경우, 성능 지표 요소에 관한 정보를 기초로 소정의 알고리즘을 실행하여 적어도 하나의 정책에 관한 실행 정보를 확인하고, 실행 정보를 기초로 적어도 하나의 정책을 갱신할 수 있다. 이는 제1 인터페이스(210), 제2 인터페이스(220) 및 제3 인터페이스(230)에 대응하는 별도의 프로세서를 구비할 필요가 없는 이점이 있다.
일 실시예에서, 필요에 따라, 제1 인터페이스(210), 제2 인터페이스(220) 및 제3 인터페이스(230) 중 임의의 둘은 하나의 전자 장치에서 각각 논리적으로 구별된 모듈일 수 있고, 나머지 하나는 상기 전자 장치와 구별되는 다른 전자 장치일 수도 있다.
도 3 은 본 개시에 따른 제1 인터페이스(310)의 일 실시예를 나타낸다. 일 실시예에서, 프로세서(110)는 제1 인터페이스(310)를 통해 SDN(340)의 플로우 테이블(341)로부터 적어도 하나의 정책을 확인하고, 적어도 하나의 정책에 관한 정보를 기초로 성능 지표 요소를 확인할 수 있다. 구체적으로, 프로세서(110)는 제1 인터페이스(310)를 통해 SDN(340)의 플로우 테이블(341)로부터 m개의 정책(x0, x1, ... , xm-1)을 확인하여 정책 데이터베이스(311)에 저장하고, 정책 데이터베이스(311)에 저장된 m개의 정책(x0, x1, ... , xm-1)에 관한 정보를 기초로 n개의 성능 지표 요소(y0, y1, ... yn-1)를 확인하고, n개의 성능 지표 요소(y0, y1, ... , yn-1)를 상태 정보 데이터베이스(312)에 저장할 수 있다. 이 때 m 및 n은 서로 다른 수일 수 있다.
성능 지표 요소는 최장 라우팅 거리, 평균 라우팅 거리, 라우팅 거리 분산, 최대 링크 사용률, 평균 링크 사용률 및 링크 사용률 분산 등을 포함할 수 있다. 구체적으로, n개의 성능 지표 요소(y0, y1, ... , yn-1) 각각은, 최장 라우팅 거리, 평균 라우팅 거리, 라우팅 거리 분산, 최대 링크 사용률, 평균 링크 사용률 및 링크 사용률 분산 중 어느 하나일 수 있다.
일 실시예에서, 프로세서(110)는 적어도 하나의 정책 각각의 라우팅 거리를 기초로 최장 라우팅 거리, 평균 라우팅 거리, 및 라우팅 거리 분산을 확인하고, 네트워크 토폴로지(network topology)에 포함되는 적어도 하나의 링크 각각의 링크 사용률(link utilization)을 기초로 최대 링크 사용률, 평균 링크 사용률 및 링크 사용률 분산을 확인할 수 있다.
예를 들어, 라우팅 거리는 라우팅 경로의 홉(hop) 수로 나타낼 수 있으며, m개의 정책 각각의 라우팅 거리 중 가장 긴 라우팅 거리를 뜻하는 최장 라우팅 거리(M[D])는 아래 수학식으로 계산할 수 있다.
위 수학식에서, j는 1 이상 m 이하의 자연수이고, Dj는 j번째 정책의 라우팅 거리를 의미한다.
m개의 정책 각각의 라우팅 거리의 평균을 뜻하는 평균 라우팅 거리(E[D])는 아래 수학식으로 계산할 수 있다.
위 수학식에서, j는 1 이상 m 이하의 자연수이고, Dj는 j번째 정책의 라우팅 거리를 의미한다.
m개의 정책 각각의 라우팅 거리의 분산을 뜻하는 라우팅 거리 분산(Var[D])은 아래 수학식으로 계산할 수 있다.
위 수학식에서, j는 1 이상 m 이하의 자연수이고, Dj 및 E[D]는 각각 j번째 정책의 라우팅 거리 및 평균 라우팅 거리를 의미한다.
예를 들어, l개의 링크 각각의 사용률 중 가장 큰 사용률을 뜻하는 최대 링크사용률(M[U])은 아래 수학식으로 계산할 수 있다.
위 수학식에서, i는 1 이상 l 이하의 자연수이고, Ui는 i번째 링크의 링크 사용률을 의미한다.
l개의 링크 각각의 사용률의 평균을 뜻하는 평균 링크 사용률(E[U])은 아래 수학식으로 계산할 수 있다.
위 수학식에서, i는 1 이상 l 이하의 자연수이고, Ui는 i번째 링크의 링크 사용률을 의미한다.
l개의 링크 각각의 사용률의 분산을 뜻하는 링크 사용률 분산(Var[U])은 아래 수학식으로 계산할 수 있다.
위 수학식에서, i는 1 이상 l 이하의 자연수이고, Ui 및 E[U]는 각각 i번째 링크의 링크 사용률 및 평균 링크 사용률을 의미한다.
도 4 는 본 개시에 따른 제2 인터페이스(420)의 일 실시예를 나타낸다. 일 실시예에서, 프로세서(110)는 제2 인터페이스(420)를 통해 성능 지표 요소 및 SDN(440)의 컨트롤러(442)로부터 확인한 목표 성능 지표를 기초로 SDN(440)의 성능 개선이 필요한지 여부를 판단하고, 판단 결과 SDN(440)의 성능 개선이 필요한 경우, 성능 지표 요소에 관한 정보를 기초로 소정의 알고리즘을 실행하여 적어도 하나의 정책에 관한 실행 정보를 확인할 수 있다. 이 때, 프로세서(110)는 SDN(440)의 컨트롤러(442)로부터 목표 성능 지표를 확인할 수 있다. 선택적으로, 프로세서(110)는 SDN(440)의 컨트롤러(442)로부터 알고리즘 셋(422)에 포함되는 적어도 하나 이상의 알고리즘을 확인할 수 있다. 구체적으로, 프로세서(110)는 제2 인터페이스(420)를 통해 상태 정보 데이터베이스(421)에 저장된 n개의 성능 지표 요소(y0, y1, ... , yn-1) 및 SDN(440)의 컨트롤러(442)로부터 확인한 목표 성능 지표를 기초로 SDN(440)의 성능 개선이 필요한지 여부를 판단하고, 판단 결과 SDN(440)의 성능 개선이 필요한 경우, n개의 성능 지표 요소(y0, y1, ... , yn-1)에 관한 정보를 기초로 h개의 알고리즘(w0, w1, ... , wh-1)을 실행하여 k개의 실행 정보(z0, z1, ... , zk-1)를 확인하고, k개의 실행 정보(z0, z1, ... , zk-1)를 실행 정보 데이터베이스(423)에 저장할 수 있다. 이 때 n, h 및 k는 서로 다른 수일 수 있다.
구체적으로, 프로세서(110)는 성능 지표 요소를 기초로 기 설정된 수식을 이용하여 성능 지표를 확인할 수 있다. 보다 구체적으로, 프로세서(110)는 성능 지표 요소 각각의 역수의 선형 결합을 성능 지표로 확인할 수 있다. 예를 들어, 성능 지표 P는 아래 수학식으로 계산할 수 있다.
위 수학식에서, k1 내지 k4 는 각 항의 계수이고, Var[U], M[U], M[D] 및 E[D]는 각각 링크 사용률 분산, 최대 링크 사용률, 최대 라우팅 거리 및 평균 라우팅 거리를 의미한다. 위 식에 따르면 Var[U], M[U], M[D] 또는 E[D] 값이 커질수록 성능 지표 P의 값은 작아질 것임을 알 수 있다. 다시 말해, 위 식으로 정의된 성능 지표 P의 값이 클수록 SDN의 성능이 좋은 것으로 볼 수 있다.
k1 내지 k4 는 각 성능 지표의 상대적 반영 비율일 수 있다. 예를 들어, k1=1000, k2=k3=k4=250 일 수 있다. 이러한 경우, Var[U]의 분자인 k1이 나머지 k2, k3, k4 등보다 크므로, 링크 사용률 분산이 다른 나머지 성능 지표 요소보다 성능 지표 P에 더 큰 영향을 미칠 수 있다. k1 내지 k4 등의 값은 위에 한정되지 않고, 사용자의 의도에 따라 자유롭게 미리 결정될 수 있다.
일 실시예에서, 성능 지표 P는 위 수식과 다른 방법으로 구해질 수 있다. 성능 지표 P는 최장 라우팅 거리, 평균 라우팅 거리, 라우팅 거리 분산, 최대 링크 사용률, 평균 링크 사용률 및 링크 사용률 분산은 물론, n개의 성능 지표 요소(y0, y1, ... , yn-1) 중 어느 두 개 이상의 값의 역수의 선형 결합 등으로 나타내어질 수도 있다. 또는 성능 지표 P는 선형 결합이 아닌 다른 함수 또는 수식으로도 계산될 수 있다.
일 실시예에서, 프로세서(110)는 성능 지표 및 목표 성능 지표의 차이가 기 설정된 값을 초과하는지 여부를 통해, SDN의 성능 개선이 필요한지 여부를 판단할 수 있다. 목표 성능 지표는 SDN(440)의 컨트롤러(442)로부터 제공받을 수 있다. 예를 들어, 성능 지표 및 목표 성능 지표의 차이가 기 설정된 값을 초과하지 않는다면, 프로세서(110)는 SDN(440)이 목표 성능 지표를 달성한 것으로 판단하고, 프로세서(110)는 더 이상의 성능 개선 작업을 실행하지 않거나, 플로우 테이블의 변동 사항이 없음을 나타내는 실행 정보를 생성할 수 있다. 이와 반대로, 성능 지표 및 목표 성능 지표의 차이가 기 설정된 값을 초과한다면, 프로세서(110)는 SDN(440)이 목표 성능 지표를 달성하지 못한 것으로 판단하고, 성능 지표 요소에 관한 정보를 기초로 소정의 알고리즘을 실행하여 적어도 하나의 정책에 관한 실행 정보를 확인할 수 있다.
알고리즘 셋(algorithm set)(422)은 하나 이상의 알고리즘을 포함할 수 있다. 프로세서(110)는 제2 인터페이스를 통해 성능 지표 요소에 관한 정보를 기초로 알고리즘 셋(422)에 포함되는 각각의 알고리즘을 직렬적 또는 병렬적으로 실행하여 적어도 하나의 정책에 관한 실행 정보를 확인할 수 있다. 각각의 알고리즘은 적어도 하나 이상의 출력을 포함할 수 있고, 상기 각각의 알고리즘의 적어도 하나 이상의 출력은 실행 정보에 대응할 수 있다.
일 실시예에서, 알고리즘은, 사전-학습된(pre-trained) 인공신경망을 포함하고, 프로세서(110)는 성능 지표 요소에 관한 정보가 입력된 인공신경망의 출력을 통해 실행 정보를 확인할 수 있다. 구체적으로, 프로세서(110)는 인공신경망을 실행하여, 최장 라우팅 거리, 평균 라우팅 거리, 라우팅 거리 분산, 성능 지표 및 제1 정책의 제1 라우팅 거리를 기초로 제1 정책의 제1 보정된 라우팅 거리를 확인하고, 최대 링크 사용률, 평균 링크 사용률, 링크 사용률 분산, 성능 지표 및 제1 정책의 제1 링크 사용률을 기초로 제1 정책의 제1 보정된 링크 사용률을 확인할 수 있다. 도 5 는 이러한 알고리즘의 일 실시예를 나타낸다.
구체적으로, 알고리즘(525)은, 사전-학습된(pre-trained) 인공신경망을 포함할 수 있다. 인공신경망은 최장 라우팅 거리, 평균 라우팅 거리, 라우팅 거리 분산, 성능 지표 및 하나의 정책의 라우팅 거리를 입력 받고 처리하여 하나의 정책에 관한 보정된 라우팅 거리를 출력하도록 학습된 제1 MLP 모델(526)을 포함할 수 있다. 예를 들어, 프로세서(110)는 최장 라우팅 거리, 평균 라우팅 거리, 라우팅 거리 분산, 성능 지표 및 i번째 정책의 라우팅 거리를 기초로 사전-학습된 인공신경망 또는 제1 MLP 모델(526)을 실행하여 i번째 정책의 보정된 라우팅 거리를 확인할 수 있다. 바람직하게는, i번째 정책의 보정된 라우팅 거리는 i번째 정책의 라우팅 거리보다 더 짧을 수 있다. 이와 달리 다른 실시예에서, 제1 MLP 모델(526)은 하나의 정책의 라우팅 거리 대신 복수 개의 정책의 라우팅 거리를 입력 받고 처리하여 복수 개의 정책에 관한 복수 개의 보정된 라우팅 거리를 출력하도록 학습될 수도 있다.
인공신경망은 최대 링크 사용률, 평균 링크 사용률, 링크 사용률 분산, 성능 지표 및 하나의 정책의 링크 사용률을 입력 받고 처리하여 하나의 정책에 관한 보정된 링크 사용률을 출력하도록 학습된 제2 MLP 모델(527)을 포함할 수 있다. 예를 들어, 프로세서(110)는 최대 링크 사용률, 평균 링크 사용률, 링크 사용률 분산, 성능 지표 및 i번째 정책의 링크 사용률을 기초로 사전-학습된 인공신경망 또는 제2 MLP 모델(527)을 실행하여 i번째 정책의 보정된 링크 사용률을 확인할 수 있다. 바람직하게는, i번째 정책의 보정된 링크 사용률은 i번째 정책의 링크 사용률보다 더 작을 수 있다. 이와 달리 다른 실시예에서, 제2 MLP 모델(527)은 하나의 정책의 링크 사용률 대신 복수 개의 정책의 링크 사용률을 입력 받고 처리하여 복수 개의 정책에 관한 복수 개의 보정된 링크 사용률을 출력하도록 학습될 수도 있다. 사전-학습된 인공신경망은 제1 MLP 모델(526) 및 제2 MLP 모델(527) 대신, 학습될 수 있는 임의의 다른 인공신경망을 포함할 수 있음은 당업자에게 자명하다.
일 실시예에서, 프로세서(110)는 제1 보정된 라우팅 거리 및 제1 보정된 링크 사용률을 기초로 제1 정책에 관한 제1 실행 정보를 생성할 수 있다. 구체적으로, 프로세서(110)는 제1 보정된 라우팅 거리 및 제1 보정된 링크 사용률을 병합하여 제1 정책의 제1 실행 정보를 생성할 수 있다. 도 5 에 도시된 예를 들어, 프로세서(110)는 i번째 정책의 보정된 라우팅 거리 및 i번째 정책의 보정된 링크 사용률을 병합하여 i번째 정책의 실행 정보(528)를 생성할 수 있다. 이 때, i번째 정책의 실행 정보(528)는 정책의 식별자 필드(flow_id), 정책의 보정된 라우팅 거리 필드(num_routing_hop) 및 정책의 보정된 링크 사용률 필드(link_util)를 포함할 수 있다. 예를 들어, 실행 정보(528)의 "flow_id"가 8이므로, 실행 정보(528)는 식별자가 8인 정책에 관한 것임을 알 수 있다. 실행 정보(528)가 SDN의 플로우 테이블에 반영되면, 식별자가 8인 정책은 라우팅 거리(num_routing_hop)가 5, 링크 사용률(link_util)이 0.3을 만족하도록 새로이 구성될 수 있다.
일 실시예에서, 프로세서(110)는 인공신경망을 실행하여, 최장 라우팅 거리, 평균 라우팅 거리, 라우팅 거리 분산, 성능 지표 및 복수의 정책 각각의 라우팅 거리를 기초로 복수의 정책 각각의 복수의 보정된 라우팅 거리를 확인하고, 최대 링크 사용률, 평균 링크 사용률, 링크 사용률 분산, 성능 지표 및 복수의 정책 각각의 링크 사용률을 기초로 복수의 정책 각각의 복수의 보정된 링크 사용률을 확인하고, 복수의 보정된 라우팅 거리 및 복수의 보정된 링크 사용률을 기초로 복수의 정책 각각에 관한 복수의 부분 실행 정보를 생성하고, 복수의 부분 실행 정보를 병합할 수 있다. 예를 들어, 프로세서(110)는 1번째 정책의 부분 실행 정보, 2번째 정책의 부분 실행 정보, ... m번째 정책의 부분 실행 정보를 모두 병합하여, 복수의 정책에 대한 실행 정보(529)를 생성할 수 있다. 복수의 정책에 대한 실행 정보(529)는 각 i번째 정책의 실행 정보를 나열한 형태를 가질 수 있다. 프로세서(110)는 복수의 정책에 대한 실행 정보(529)를 파싱하여, 복수의 정책에 포함되는 각 정책의 개별 실행 정보를 확인할 수 있다.
도 6 은 본 개시에 따른 실행 정보(628)의 일 실시예를 나타낸다. 일 실시예에서, 실행 정보(628)는, 정책의 식별자 필드(flow_id), 정책의 출발지 ip 필드(src_ip), 도착지 ip 주소 필드(dst_ip), 정책의 처리 명령 필드(action) 중 어느 하나 이상을 포함할 수 있다. 예를 들어, 도 6 에 따르면, 실행 정보(628)의 "flow_id"가 3이므로, 실행 정보(628)는 식별자가 3인 정책에 관한 것임을 알 수 있다. 실행 정보(628)가 SDN의 플로우 테이블에 반영되면, 식별자가 3인 정책은 도착지 ip 주소(dst_ip)가 210으로 시작하는 모든 패킷을 버리는(drop) 행동을 하는 규칙으로서 새로이 구성될 것이다.
도 7 은 본 개시에 따른 제3 인터페이스(730)의 일 실시예를 나타낸다. 일 실시예에서, 프로세서(110)는 실행 정보를 기초로 제3 인터페이스(730)를 통해 적어도 하나의 정책을 갱신할 수 있다. 구체적으로, 프로세서(110)는 제 제3 인터페이스(730)를 통해 실행 정보 데이터베이스(731)에 저장된 k개의 실행 정보(z0, z1, ... , zk-1)를 기초로 정책 데이터베이스(732)에 저장된 m개의 정책(x0, x1, ... , xm-1)을 갱신하고, 갱신된 m개의 정책(x'0, x'1, ... , x'm-1)을 SDN(740)의 플로우 테이블(741)에 저장할 수 있다. 이 때 k 및 m은 서로 다른 수일 수 있다. 이와 다른 실시예에서, SDN(740)이 프로세서(110)로부터 k개의 실행 정보(z0, z1, ... , zk-1)를 수신하고, 이를 기초로 SDN(740)이 플로우 테이블(741)에 저장된 m개의 정책(x0, x1, ... , xm-1)을 갱신하고, 갱신된 m개의 정책(x'0, x'1, ... , x'm-1)을 플로우 테이블(741)에 저장할 수 있다.
일 실시예에서, 상술한 정책 데이터베이스, 상태 정보 데이터베이스, 실행 정보 데이터베이스는 각각 별도의 물리적 메모리일 수 있거나, 논리적으로 서로 구별되는 메모리일 수 있다. 이는 전자 장치 외부에서 각각의 데이터베이스에 접속하여 데이터베이스에 저장된 정보를 확인할 수 있는 이점이 있다.
일 실시예에서, 제1 인터페이스, 제2 인터페이스 및 제3 인터페이스는 서로 정보를 주고 받기 위하여 각각 별도의 통신 모듈을 포함할 수 있다. 이 경우, 제1 인터페이스, 제2 인터페이스 및 제3 인터페이스는 각각 출력을 별도의 데이터베이스에 저장하는 과정 없이, 서로 직접 통신하여 데이터를 송수신할 수 있는 이점이 있다.
도 8 은 일 실시예에 따른 전자 장치(100)의 동작 방법을 나타낸다. 도 8 의 동작 방법의 각 단계는 도 1 의 전자 장치(100)에 의해 수행될 수 있으므로, 도 1 과 중복되는 내용에 대해서는 설명을 생략한다.
단계 S810에서, 전자 장치(100)는 SDN의 플로우 테이블(flow table)로부터 적어도 하나의 정책을 확인할 수 있다.
전자 장치(100)는 적어도 하나의 정책을 정책 데이터베이스에 저장할 수 있다.
단계 S820에서, 전자 장치(100)는 적어도 하나의 정책에 관한 정보를 기초로 성능 지표 요소를 확인할 수 있다.
전자 장치(100)는 적어도 하나의 정책 각각의 라우팅 거리를 기초로 최장 라우팅 거리, 평균 라우팅 거리, 및 라우팅 거리 분산을 확인하고, 네트워크 토폴로지(network topology)에 포함되는 적어도 하나의 링크 각각의 링크 사용률을 기초로 최대 링크 사용률, 평균 링크 사용률 및 링크 사용률 분산을 확인할 수 있다.
전자 장치(100)는 성능 지표 요소를 상태 정보 데이터베이스에 저장할 수 있다.
단계 S830에서, 전자 장치(100)는 성능 지표 요소 및 목표 성능 지표를 기초로 SDN의 성능 개선이 필요한지 여부를 판단할 수 있다.
전자 장치(100)는 성능 지표 요소를 기초로 기 설정된 수식을 이용하여 성능 지표를 확인하고, 성능 지표 및 목표 성능 지표의 차이가 기 설정된 값을 초과하는지 여부를 통해, SDN의 성능 개선이 필요한지 여부를 판단할 수 있다.
전자 장치(100)는 성능 지표 요소 각각의 역수의 선형 결합을 성능 지표로 확인할 수 있다.
전자 장치(100)는 SDN의 컨트롤러로부터 목표 성능 지표를 확인할 수 있다.
단계 S840에서, 전자 장치(100)는 판단 결과 SDN의 성능 개선이 필요한 경우, 성능 지표 요소에 관한 정보를 기초로 소정의 알고리즘을 실행하여 적어도 하나의 정책에 관한 실행 정보를 확인할 수 있다.
알고리즘은, 사전-학습된(pre-trained) 인공신경망을 포함하고, 전자 장치(100)는 성능 지표 요소에 관한 정보가 입력된 인공신경망의 출력을 통해 실행 정보를 확인할 수 있다.
전자 장치(100)는 인공신경망을 실행하여, 최장 라우팅 거리, 평균 라우팅 거리, 라우팅 거리 분산, 성능 지표 및 제1 정책의 제1 라우팅 거리를 기초로 제1 정책의 제1 보정된 라우팅 거리를 확인하고, 최대 링크 사용률, 평균 링크 사용률, 링크 사용률 분산, 성능 지표 및 제1 정책의 제1 링크 사용률을 기초로 제1 정책의 제1 보정된 링크 사용률을 확인하고, 제1 보정된 라우팅 거리 및 제1 보정된 링크 사용률을 기초로 제1 정책에 관한 제1 실행 정보를 생성할 수 있다.
인공신경망은, 최장 라우팅 거리, 평균 라우팅 거리, 라우팅 거리 분산, 성능 지표 및 하나의 정책의 라우팅 거리를 입력 받고 처리하여 하나의 정책에 관한 보정된 라우팅 거리를 출력하도록 학습된 제1 MLP 모델, 및 최대 링크 사용률, 평균 링크 사용률, 링크 사용률 분산, 성능 지표 및 하나의 정책의 링크 사용률을 입력 받고 처리하여 하나의 정책에 관한 보정된 링크 사용률을 출력하도록 학습된 제2 MLP 모델을 포함할 수 있다.
전자 장치(100)는 실행 정보를 실행 정보 데이터베이스에 저장할 수 있다.
단계 S850에서, 전자 장치(100)는 실행 정보를 기초로 플로우 테이블에서 적어도 하나의 정책을 갱신할 수 있다.
전자 장치(100)는 실행 정보를 기초로 정책 데이터베이스에 저장된 정책을 갱신하고, 갱신된 정책을 플로우 테이블에 저장할 수 있다.
이상 설명된 본 개시에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체 또는 비일시적 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체 또는 비일시적 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체 또는 비일시적 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체 또는 비일시적 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치 또는 전자 장치는 본 개시에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어, 소프트웨어, 또는 이들의 조합들로 구현될 수 있다. 예를 들어, 실시 예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시 예는 전자적인 환경 설정, 신호 처리, 데이터 처리 또는 이들의 조합 등을 위하여 종래 기술을 채용할 수 있다.

Claims (10)

  1. 전자 장치의 SDN(Software Defined Networking) 성능 개선 방법에 있어서,
    SDN의 플로우 테이블(flow table)로부터 적어도 하나의 정책을 확인하는 단계;
    상기 적어도 하나의 정책에 관한 정보를 기초로 성능 지표 요소를 확인하는 단계;
    상기 성능 지표 요소 및 목표 성능 지표를 기초로 상기 SDN의 성능 개선이 필요한지 여부를 판단하는 단계;
    상기 판단 결과 상기 SDN의 성능 개선이 필요한 경우, 상기 성능 지표 요소에 관한 정보를 기초로 소정의 알고리즘을 실행하여 상기 적어도 하나의 정책에 관한 실행 정보를 확인하는 단계; 및
    상기 실행 정보를 기초로 상기 적어도 하나의 정책을 갱신하는 단계를 포함하되,
    상기 성능 지표 요소를 확인하는 단계는,
    상기 적어도 하나의 정책 각각의 라우팅 거리를 기초로 최장 라우팅 거리, 평균 라우팅 거리, 및 라우팅 거리 분산을 확인하고, 네트워크 토폴로지(network topology)에 포함되는 적어도 하나의 링크 각각의 링크 사용률을 기초로 최대 링크 사용률, 평균 링크 사용률 및 링크 사용률 분산을 확인하는 단계를 포함하고,
    상기 판단하는 단계는,
    상기 성능 지표 요소를 기초로 기 설정된 수식을 이용하여 성능 지표를 확인하는 단계를 포함하고,
    상기 알고리즘은,
    사전-학습된(pre-trained) 인공신경망을 포함하고,
    상기 실행 정보를 확인하는 단계는,
    상기 성능 지표 요소에 관한 정보가 입력된 상기 인공신경망의 출력을 통해 상기 실행 정보를 확인하는 단계를 포함하고,
    상기 실행 정보를 확인하는 단계는,
    상기 인공신경망을 실행하여, 상기 최장 라우팅 거리, 상기 평균 라우팅 거리, 상기 라우팅 거리 분산, 상기 성능 지표 및 제1 정책의 제1 라우팅 거리를 기초로 상기 제1 정책의 제1 보정된 라우팅 거리를 확인하고, 상기 최대 링크 사용률, 상기 평균 링크 사용률, 상기 링크 사용률 분산, 상기 성능 지표 및 상기 제1 정책의 제1 링크 사용률을 기초로 상기 제1 정책의 제1 보정된 링크 사용률을 확인하는 단계; 및
    상기 제1 보정된 라우팅 거리 및 상기 제1 보정된 링크 사용률을 기초로 상기 제1 정책에 관한 제1 실행 정보를 생성하는 단계를 포함하는, SDN 성능 개선 방법.
  2. 제1항에 있어서,
    상기 판단하는 단계는,
    상기 성능 지표 및 상기 목표 성능 지표의 차이가 기 설정된 값을 초과하는지 여부를 통해, 상기 SDN의 성능 개선이 필요한지 여부를 판단하는 단계를 포함하는, SDN 성능 개선 방법.
  3. 제1항에 있어서,
    상기 성능 지표를 확인하는 단계는,
    상기 성능 지표 요소 각각의 역수의 선형 결합을 상기 성능 지표로 확인하는 단계를 포함하는, SDN 성능 개선 방법.

  4. 삭제
  5. 삭제
  6. 제1항에 있어서,
    상기 인공신경망은,
    최장 라우팅 거리, 평균 라우팅 거리, 라우팅 거리 분산, 성능 지표 및 하나의 정책의 라우팅 거리를 입력 받고 처리하여 상기 하나의 정책에 관한 보정된 라우팅 거리를 출력하도록 학습된 제1 MLP 모델, 및
    최대 링크 사용률, 평균 링크 사용률, 링크 사용률 분산, 성능 지표 및 상기 하나의 정책의 링크 사용률을 입력 받고 처리하여 상기 하나의 정책에 관한 보정된 링크 사용률을 출력하도록 학습된 제2 MLP 모델을 포함하는, SDN 성능 개선 방법.
  7. 제1항에 있어서,
    상기 판단하는 단계는,
    상기 SDN의 컨트롤러로부터 상기 목표 성능 지표를 확인하는 단계를 포함하는, SDN 성능 개선 방법.
  8. 제1항에 있어서,
    상기 적어도 하나의 정책을 확인하는 단계는,
    상기 적어도 하나의 정책을 정책 데이터베이스에 저장하는 단계를 포함하고,
    상기 성능 지표 요소를 확인하는 단계는,
    상기 성능 지표 요소를 상태 정보 데이터베이스에 저장하는 단계를 포함하고,
    상기 실행 정보를 확인하는 단계는,
    상기 실행 정보를 실행 정보 데이터베이스에 저장하는 단계를 포함하고,
    상기 적어도 하나의 정책을 갱신하는 단계는,
    상기 실행 정보를 기초로 상기 정책 데이터베이스에 저장된 상기 정책을 갱신하고, 갱신된 정책을 상기 플로우 테이블에 저장하는 단계를 포함하는, SDN 성능 개선 방법.
  9. 전자 장치로서,
    적어도 하나의 프로그램이 저장된 메모리; 및
    상기 적어도 하나의 프로그램을 실행함으로써,
    SDN의 플로우 테이블(flow table)로부터 적어도 하나의 정책을 확인하고,
    상기 적어도 하나의 정책에 관한 정보를 기초로 성능 지표 요소를 확인하고,
    상기 성능 지표 요소 및 목표 성능 지표를 기초로 상기 SDN의 성능 개선이 필요한지 여부를 판단하고,
    상기 판단 결과 상기 SDN의 성능 개선이 필요한 경우, 상기 성능 지표 요소에 관한 정보를 기초로 소정의 알고리즘을 실행하여 상기 적어도 하나의 정책에 관한 실행 정보를 확인하고,
    상기 실행 정보를 기초로 상기 적어도 하나의 정책을 갱신하는 프로세서를 포함하되,
    상기 성능 지표 요소를 확인하는 단계는,
    상기 적어도 하나의 정책 각각의 라우팅 거리를 기초로 최장 라우팅 거리, 평균 라우팅 거리, 및 라우팅 거리 분산을 확인하고, 네트워크 토폴로지(network topology)에 포함되는 적어도 하나의 링크 각각의 링크 사용률을 기초로 최대 링크 사용률, 평균 링크 사용률 및 링크 사용률 분산을 확인하는 단계를 포함하고,
    상기 판단하는 단계는,
    상기 성능 지표 요소를 기초로 기 설정된 수식을 이용하여 성능 지표를 확인하는 단계를 포함하고,
    상기 알고리즘은,
    사전-학습된(pre-trained) 인공신경망을 포함하고,
    상기 실행 정보를 확인하는 단계는,
    상기 성능 지표 요소에 관한 정보가 입력된 상기 인공신경망의 출력을 통해 상기 실행 정보를 확인하는 단계를 포함하고,
    상기 실행 정보를 확인하는 단계는,
    상기 인공신경망을 실행하여, 상기 최장 라우팅 거리, 상기 평균 라우팅 거리, 상기 라우팅 거리 분산, 상기 성능 지표 및 제1 정책의 제1 라우팅 거리를 기초로 상기 제1 정책의 제1 보정된 라우팅 거리를 확인하고, 상기 최대 링크 사용률, 상기 평균 링크 사용률, 상기 링크 사용률 분산, 상기 성능 지표 및 상기 제1 정책의 제1 링크 사용률을 기초로 상기 제1 정책의 제1 보정된 링크 사용률을 확인하는 단계; 및
    상기 제1 보정된 라우팅 거리 및 상기 제1 보정된 링크 사용률을 기초로 상기 제1 정책에 관한 제1 실행 정보를 생성하는 단계를 포함하는, 전자 장치.
  10. 전자 장치의 SDN(Software Defined Networking) 성능 개선 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비일시적 기록매체로서,
    상기 SDN 성능 개선 방법은,
    SDN의 플로우 테이블(flow table)로부터 적어도 하나의 정책을 확인하는 단계;
    상기 적어도 하나의 정책에 관한 정보를 기초로 성능 지표 요소를 확인하는 단계;
    상기 성능 지표 요소 및 목표 성능 지표를 기초로 상기 SDN의 성능 개선이 필요한지 여부를 판단하는 단계;
    상기 판단 결과 상기 SDN의 성능 개선이 필요한 경우, 상기 성능 지표 요소에 관한 정보를 기초로 소정의 알고리즘을 실행하여 상기 적어도 하나의 정책에 관한 실행 정보를 확인하는 단계; 및
    상기 실행 정보를 기초로 상기 적어도 하나의 정책을 갱신하는 단계를 포함하되,
    상기 성능 지표 요소를 확인하는 단계는,
    상기 적어도 하나의 정책 각각의 라우팅 거리를 기초로 최장 라우팅 거리, 평균 라우팅 거리, 및 라우팅 거리 분산을 확인하고, 네트워크 토폴로지(network topology)에 포함되는 적어도 하나의 링크 각각의 링크 사용률을 기초로 최대 링크 사용률, 평균 링크 사용률 및 링크 사용률 분산을 확인하는 단계를 포함하고,
    상기 판단하는 단계는,
    상기 성능 지표 요소를 기초로 기 설정된 수식을 이용하여 성능 지표를 확인하는 단계를 포함하고,
    상기 알고리즘은,
    사전-학습된(pre-trained) 인공신경망을 포함하고,
    상기 실행 정보를 확인하는 단계는,
    상기 성능 지표 요소에 관한 정보가 입력된 상기 인공신경망의 출력을 통해 상기 실행 정보를 확인하는 단계를 포함하고,
    상기 실행 정보를 확인하는 단계는,
    상기 인공신경망을 실행하여, 상기 최장 라우팅 거리, 상기 평균 라우팅 거리, 상기 라우팅 거리 분산, 상기 성능 지표 및 제1 정책의 제1 라우팅 거리를 기초로 상기 제1 정책의 제1 보정된 라우팅 거리를 확인하고, 상기 최대 링크 사용률, 상기 평균 링크 사용률, 상기 링크 사용률 분산, 상기 성능 지표 및 상기 제1 정책의 제1 링크 사용률을 기초로 상기 제1 정책의 제1 보정된 링크 사용률을 확인하는 단계; 및
    상기 제1 보정된 라우팅 거리 및 상기 제1 보정된 링크 사용률을 기초로 상기 제1 정책에 관한 제1 실행 정보를 생성하는 단계를 포함하는, 비일시적 기록매체.
KR1020220006572A 2022-01-17 2022-01-17 전자 장치의 sdn 성능 개선 방법 KR102635358B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020220006572A KR102635358B1 (ko) 2022-01-17 2022-01-17 전자 장치의 sdn 성능 개선 방법
PCT/KR2022/014764 WO2023136426A1 (ko) 2022-01-17 2022-09-30 전자 장치의 sdn 성능 개선 방법
US17/957,174 US20230231791A1 (en) 2022-01-17 2022-09-30 Method of improving performance of software-defined networking of electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220006572A KR102635358B1 (ko) 2022-01-17 2022-01-17 전자 장치의 sdn 성능 개선 방법

Publications (2)

Publication Number Publication Date
KR20230110960A KR20230110960A (ko) 2023-07-25
KR102635358B1 true KR102635358B1 (ko) 2024-02-08

Family

ID=87161347

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220006572A KR102635358B1 (ko) 2022-01-17 2022-01-17 전자 장치의 sdn 성능 개선 방법

Country Status (3)

Country Link
US (1) US20230231791A1 (ko)
KR (1) KR102635358B1 (ko)
WO (1) WO2023136426A1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9681336B2 (en) * 2007-06-13 2017-06-13 Qualcomm Incorporated Quality of service information configuration
US20090190471A1 (en) * 2008-01-10 2009-07-30 Mahendran Arungundram C Method and Apparatus for Optimized Session Setup with Network-Initiated QoS Policy Control
KR20160041631A (ko) * 2014-10-08 2016-04-18 한국전자통신연구원 서비스 품질 인지 라우팅 제어 장치 및 라우팅 제어 방법
KR102288487B1 (ko) * 2016-11-21 2021-08-10 한국전자통신연구원 Sdn 기반 수동형 광네트워크의 트래픽 폭주 해결 장치 및 방법

Also Published As

Publication number Publication date
US20230231791A1 (en) 2023-07-20
WO2023136426A1 (ko) 2023-07-20
KR20230110960A (ko) 2023-07-25

Similar Documents

Publication Publication Date Title
US10904319B2 (en) Dynamic deployment of an application based on micro-services
CN112887437B (zh) 区块链交易处理方法、区块链节点和区块链系统
US8307170B2 (en) Information processing method and system
US10660069B2 (en) Resource allocation device and resource allocation method
CN108052615A (zh) 访问请求的处理方法、装置、介质及电子设备
US8745265B2 (en) Interconnection fabric connection
Angelelli et al. Congestion avoiding heuristic path generation for the proactive route guidance
KR101823346B1 (ko) 서비스 기능 체이닝 시스템 및 그 방법
CN111614746A (zh) 云主机集群的负载均衡方法、装置及服务器
CN115237580B (zh) 面向智能计算的流水并行训练自适应调整系统、方法
US9436403B1 (en) Memory controller with on-chip linked list memory
US9749219B2 (en) Method of optimizing routing in a cluster comprising static communication links and computer program implementing that method
WO2014114546A1 (en) Provision of adapted information on a topology of a communication network
KR102635358B1 (ko) 전자 장치의 sdn 성능 개선 방법
US20030011846A1 (en) Method and apparatus for network link planning
US9535612B2 (en) Selecting a primary storage device
US20210158192A1 (en) Normalizing weights of weighted tree leaf nodes
WO2017213065A1 (ja) サービス管理システム、サービス管理方法、および、記録媒体
CN112783673A (zh) 一种调用链的确定方法、装置、计算机设备及存储介质
Zhang et al. Netter: Probabilistic, stateful network models
JP7452663B2 (ja) コンピュータシステム
CN115834466B (zh) 算力网络路径分析方法、装置、设备、系统及存储介质
US11709755B2 (en) Method, device, and program product for managing storage pool of storage system
CN117040631A (zh) 光纤网络自动化跳纤方法、系统、计算机设备和存储介质
CN117251380A (zh) 一种面向单调流式图的优先级异步调度方法及系统

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant