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

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

Info

Publication number
WO2023136426A1
WO2023136426A1 PCT/KR2022/014764 KR2022014764W WO2023136426A1 WO 2023136426 A1 WO2023136426 A1 WO 2023136426A1 KR 2022014764 W KR2022014764 W KR 2022014764W WO 2023136426 A1 WO2023136426 A1 WO 2023136426A1
Authority
WO
WIPO (PCT)
Prior art keywords
policy
performance
sdn
execution information
link utilization
Prior art date
Application number
PCT/KR2022/014764
Other languages
English (en)
French (fr)
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 국방과학연구소
Publication of WO2023136426A1 publication Critical patent/WO2023136426A1/ko

Links

Images

Classifications

    • 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
    • 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
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • 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/14Routing performance; Theoretical aspects
    • 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/76Routing in software-defined topologies, e.g. routing between virtual machines

Definitions

  • the present disclosure relates to a method for improving SDN performance of an electronic device.
  • SDN Software-defined networking
  • CP control plane
  • DP data plane
  • the electronic device may improve the performance of the SDN by updating the policy of the SDN through an algorithm, including a processor that performs the method described in the present invention.
  • a method for improving software defined networking (SDN) performance of an electronic device includes checking at least one policy from a flow table of the SDN; identifying a performance indicator element based on information about the at least one policy; determining whether performance improvement of the SDN is required based on the performance index element and the target performance index; checking execution information on the at least one policy by executing a predetermined algorithm based on the information on the performance indicator element, when performance improvement of the SDN is required as a result of the determination; and updating the at least one policy based on the execution information.
  • SDN software defined networking
  • an electronic device for improving Software Defined Networking (SDN) performance comprising: a memory in which at least one program is stored; And by executing the at least one program, at least one policy is identified from a flow table of the SDN, a performance index element is identified based on the information on the at least one policy, the performance index element and It is determined whether performance improvement of the SDN is required based on a target performance indicator, and if the performance improvement of the SDN is required as a result of the determination, a predetermined algorithm is executed based on the information about the performance indicator element to determine the at least one performance indicator. and a processor that checks execution information about a policy and updates the at least one policy based on the execution information.
  • SDN Software Defined Networking
  • the computer-readable recording medium may include a non-transitory recording medium on which a program for executing the above-described operating method is recorded on a computer.
  • work efficiency can be increased by automating a process of analyzing and determining how to modify SDN network policies to improve the performance of the entire network.
  • the technique can operate independently of the structure of the subnetwork, it can increase versatility so that it can be easily applied to various platforms.
  • FIG 1 shows an electronic device according to the present disclosure.
  • FIG. 2 illustrates a relationship between an electronic device and SDN according to the present disclosure.
  • FIG 3 shows an embodiment of a first interface according to the present disclosure.
  • FIG 4 shows an embodiment of a second interface according to the present disclosure.
  • FIG 5 shows one embodiment of an algorithm according to the present disclosure.
  • FIG 6 illustrates an embodiment of execution information according to the present disclosure.
  • FIG 7 shows an embodiment of a third interface according to the present disclosure.
  • FIG 8 shows one embodiment of a method according to the present disclosure.
  • policy or "flow” in this specification means a packet forwarding rule included in a flow table of SDN.
  • a policy may include one or more fields, such as a packet matching field, a priority field, or a process command field.
  • performance index in this specification means a parameter or the like representing the performance of SDN.
  • the performance index may be a parameter well known in the industry or a parameter defined by a user.
  • target performance index in this specification means a target value corresponding to the performance index of SDN.
  • performance index element in this specification means an element that is a basis for calculating a performance index.
  • the performance indicator element may be calculated based on information stored in the flow table. For example, it may be an average of the number of hops for each policy stored in the flow table. Examples of performance indicator elements are described in detail below.
  • execution information in this specification means information including a method of modifying at least one policy stored in a flow table. Examples of execution information are described in detail below.
  • first and second used in this specification may be used to describe various components, but the components should not be limited by terms including the ordinal numbers.
  • the terms are used solely for the purpose of distinguishing one element from another element in one part of the specification in context.
  • a first component may be referred to as a second component in another part of the specification without departing from the scope of the present invention, and conversely, the second component may also be referred to as a first component in another part of the specification. It can be.
  • FIG. 1 shows an exemplary and simplified block diagram of an electronic device 100 that can be used to implement at least one embodiment of the present disclosure.
  • electronic device 100 may be used to implement any system or method described in this disclosure.
  • electronic device 100 may be any device including a data server, web server, portable computing device, personal computer, tablet computer, workstation, mobile phone, smart phone, or any other device described below. It can be configured to be used as an electronic device of.
  • Electronic device 100 may include one or more processors 110 having memory 120 and one or more cache memories and memory controllers that may be configured to communicate with memory 120 . Additionally, the electronic device 100 may be connected to the electronic device 100 through one or more ports (eg, Universal Serial Bus (USB), headphone jack, Lightning connector, Thunderbolt connector, etc.) device may be included. Devices connectable to electronic device 100 may include a plurality of ports configured to receive fiber optic connectors.
  • USB Universal Serial Bus
  • Devices connectable to electronic device 100 may include a plurality of ports configured to receive fiber optic connectors.
  • the configuration of the illustrated electronic device 100 is intended only as a specific example for the purpose of illustrating a preferred embodiment of the device. In the illustrated electronic device 100, only components related to the present embodiments are shown. Accordingly, it is apparent to those skilled in the art that the electronic device 100 may further include other general-purpose components in addition to the illustrated components.
  • Processor 110 may be used to enable electronic device 100 to provide the steps or functions of any of the embodiments described in this disclosure.
  • the processor 110 generally controls the electronic device 100 by executing programs stored in the memory 120 of the electronic device 100 .
  • the processor 110 may be implemented as a central processing unit (CPU), graphics processing unit (GPU), or application processor (AP) included in the electronic device 100, but is not limited thereto.
  • the memory 120 is hardware that stores various data processed in the electronic device 100, and the memory 120 may store data processed through the processor 110 in the electronic device 100 and data to be processed. there is.
  • the memory 120 stores basic programming and data structures capable of providing functions of at least one embodiment of the present disclosure, as well as applications (programs, code modules) capable of providing functions of embodiments of the present disclosure. , commands), drivers, etc.
  • the memory 120 may include random access memory (RAM) such as dynamic random access memory (DRAM) and static random access memory (SRAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), and CD-ROM.
  • RAM random access memory
  • DRAM dynamic random access memory
  • SRAM static random access memory
  • ROM read-only memory
  • EEPROM electrically erasable programmable read-only memory
  • CD-ROM compact disc read-only memory
  • ROM Blu-ray or other optical disk storage
  • HDD hard disk drive
  • SSD solid state drive
  • FIG. 2 shows an embodiment of an electronic device 200 and an SDN 240 according to the present disclosure.
  • the electronic device 200 shown in FIG. 2 is not exclusive to the electronic device 100 shown in FIG. 1, and the electronic device 200 includes the electronic device 100, or the electronic device 100 includes the electronic device ( 200) may be included.
  • the electronic device 200 checks at least one policy from the flow table 241 of the SDN 240, checks a performance indicator element based on information about the at least one policy, and determines the performance index element and determining whether the performance of the SDN 240 needs to be improved based on the target performance index, and if the performance of the SDN 240 needs to be improved as a result of the determination, a predetermined algorithm is executed based on the information about the performance index element to at least Execution information regarding one policy may be checked, and at least one policy may be updated based on the execution information.
  • the electronic device 200 checks or inquires at least one policy from the flow table 241 of the SDN 240 through the first interface 210, and based on the information about the at least one policy, the first The performance index element is checked through the interface 210, and the performance of the SDN 240 is improved through the second interface 220 based on the performance index element and the target performance index checked from the controller 242 of the SDN 240. It is determined whether or not it is necessary, and as a result of the determination, if the performance of the SDN 240 needs to be improved, a predetermined algorithm is executed through the second interface 220 based on the information on the performance index element, and execution information on at least one policy. and at least one policy may be updated through the third interface 230 based on the execution information.
  • the first interface 210 , the second interface 220 , and the third interface 230 of the electronic device 200 may be separate electronic devices.
  • the first interface 210 may include a first processor
  • the second interface 220 may include a second processor
  • the third interface 230 may include a third processor.
  • the first processor of the first interface 210 may execute a program stored in the memory, check or query at least one policy, and check a performance indicator element based on information about the at least one policy.
  • the second processor of the second interface 220 executes a program stored in the memory, and determines whether the performance of the SDN 240 needs to be improved based on the performance index element and the target performance index checked from the controller 242 of the SDN 240.
  • execution information on at least one policy may be checked by executing a predetermined algorithm based on the information on the performance index element.
  • the third processor of the third interface 230 may execute a program stored in the memory and update at least one policy based on execution information.
  • the first interface, the second interface and the third interface share memory, so that the first interface, the second interface and the third interface read respective inputs from the shared memory or send respective outputs to the shared memory. can write This has the advantage of enabling distributed processing of the method according to the present disclosure.
  • the first interface 210 , the second interface 220 , and the third interface 230 of the electronic device 200 may be logically separated modules in one electronic device 200 .
  • the processor of the electronic device 200 executes a program stored in the memory, checks at least one policy from the flow table 241 of the SDN 240, and calculates a performance index based on information about the at least one policy. Elements are checked, and based on the performance indicator element and the target performance indicator, it is determined whether the performance of the SDN 240 needs to be improved, and as a result of the determination, if the performance of the SDN 240 needs to be improved, based on information about the performance indicator element.
  • a predetermined algorithm may be executed to check execution information on at least one policy, and the at least one policy may be updated based on the execution information. This has an advantage of not requiring separate processors corresponding to the first interface 210 , the second interface 220 and the third interface 230 .
  • any two of the first interface 210, the second interface 220, and the third interface 230 may be logically distinct modules in one electronic device, and the remaining One may be another electronic device distinct from the electronic device.
  • the processor 110 checks at least one policy from the flow table 341 of the SDN 340 through the first interface 310, and determines the performance index element based on information about the at least one policy. can be checked. Specifically, the processor 110 checks m policies (x 0 , x 1 , ... , x m-1 ) from the flow table 341 of the SDN 340 through the first interface 310 to determine the policy Based on information about m policies (x 0 , x 1 , ... , x m-1 ) stored in the database 311 and stored in the policy database 311, n performance indicator elements (y 0 , y 1 , ... y n-1 ), and n performance indicator elements (y 0 , y 1 , ... , y n-1 ) may be stored in the state information database 312 . In this case, m and n may be different numbers.
  • the performance index element may include a longest routing distance, an average routing distance, a routing distance distribution, a maximum link utilization rate, an average link utilization rate, and a link utilization rate distribution.
  • each of the n performance indicator elements (y 0 , y 1 , ... , y n-1 ) is the longest routing distance, average routing distance, routing distance variance, maximum link utilization, average link utilization, and link utilization variance can be any one of
  • the processor 110 determines the longest routing distance, average routing distance, and routing distance distribution based on the routing distance of each of the at least one policy, and determines at least one link included in the network topology. Based on each link utilization, a maximum link utilization rate, an average link utilization rate, and a link utilization rate variance can be checked.
  • the routing distance can be represented by the number of hops of the routing path, and the longest routing distance (M[D]), which means the longest routing distance among the routing distances of each of m policies, can be calculated by the following equation .
  • j is a natural number greater than or equal to 1 and less than or equal to m
  • D j denotes the routing distance of the j-th policy.
  • the average routing distance (E[D]), which means the average of the routing distances of each of m policies, can be calculated by the following equation.
  • j is a natural number greater than or equal to 1 and less than or equal to m
  • D j denotes the routing distance of the j-th policy.
  • the routing distance variance (Var[D]), which means the variance of the routing distance of each of m policies, can be calculated by the following equation.
  • j is a natural number greater than or equal to 1 and less than or equal to m
  • D j and E[D] mean the routing distance and average routing distance of the j-th policy, respectively.
  • the maximum link utilization rate (M[U]) which means the highest utilization rate among the utilization rates of each l link, can be calculated by the following equation.
  • i is a natural number greater than or equal to 1 and less than or equal to l
  • U i means the link utilization rate of the ith link.
  • the average link utilization rate (E[U]), which means the average of the utilization rates of each l link, can be calculated by the following equation.
  • i is a natural number greater than or equal to 1 and less than or equal to l
  • U i means the link utilization rate of the ith link.
  • the link utilization rate variance (Var[U]), which means the variance of the utilization rate of each l link, can be calculated by the following equation.
  • i is a natural number greater than or equal to 1 and less than or equal to l
  • U i and E[U] mean the link utilization rate and the average link utilization rate of the i-th link, respectively.
  • the processor 110 determines whether the performance of the SDN 440 needs to be improved based on the performance metric element and the target performance metric checked from the controller 442 of the SDN 440 through the second interface 420. It is determined, and as a result of the determination, if performance improvement of the SDN 440 is required, execution information on at least one policy may be checked by executing a predetermined algorithm based on the information on the performance index element. At this time, the processor 110 may check the target performance index from the controller 442 of the SDN 440 . Optionally, the processor 110 may check at least one or more algorithms included in the algorithm set 422 from the controller 442 of the SDN 440 .
  • the processor 110 transmits n performance index elements (y 0 , y 1 , ... , y n ⁇ 1 ) stored in the state information database 421 through the second interface 420 and the SDN 440 . It is determined whether performance improvement of the SDN 440 is required based on the target performance index confirmed from the controller 442 of the controller 442, and as a result of the determination, if the performance improvement of the SDN 440 is required, n performance index elements (y 0 , y Based on information about 1 , ... , y n-1 , h algorithms (w 0 , w 1 , ... , w h-1 ) are executed to obtain k execution information (z 0 , z 1 , ...
  • n, h, and k may be different numbers.
  • the processor 110 may check the performance indicator using a preset formula based on the performance indicator element. More specifically, the processor 110 may check a linear combination of reciprocal numbers of each performance index element as a performance index.
  • the performance indicator P can be calculated by the equation below.
  • k 1 to k 4 are coefficients of each term
  • Var[U], M[U], M[D], and E[D] are link utilization variance, maximum link utilization, maximum routing distance, and average routing, respectively. means distance.
  • the performance index P may be obtained by a method different from the above formula.
  • the performance metric P is the longest routing distance, average routing distance, routing distance variance, maximum link utilization, average link utilization, and link utilization variance, as well as n performance indicator elements (y 0 , y 1 , ... , y n-1 ) may be represented as a linear combination of reciprocal numbers of any two or more values.
  • the performance indicator P may be calculated by a function or formula other than a linear combination.
  • the processor 110 may determine whether the performance of the SDN needs to be improved through whether the difference between the performance index and the target performance index exceeds a predetermined value.
  • the target performance index may be provided from the controller 442 of the SDN 440 . For example, if the difference between the performance index and the target performance index does not exceed a preset value, the processor 110 determines that the SDN 440 has achieved the target performance index, and the processor 110 further improves performance. It is possible to generate execution information that indicates that the job is not executed or that there is no change in the flow table.
  • the processor 110 determines that the SDN 440 has failed to achieve the target performance index, and determines that the performance index element does not achieve a predetermined value.
  • Execution information on at least one policy may be checked by executing the algorithm of .
  • Algorithm set 422 may include one or more algorithms.
  • the processor 110 serially or parallelly executes each algorithm included in the algorithm set 422 based on the information about the performance indicator element through the second interface to check execution information about at least one policy. there is.
  • Each algorithm may include one or more outputs, and the one or more outputs of each algorithm may correspond to execution information.
  • the algorithm includes a pre-trained artificial neural network
  • the processor 110 may check execution information through the output of the artificial neural network into which information about the performance index element is input.
  • the processor 110 executes the artificial neural network, and the first corrected routing distance of the first policy is based on the longest routing distance, the average routing distance, the routing distance variance, the performance index, and the first routing distance of the first policy.
  • the first corrected link utilization rate of the first policy may be determined based on the maximum link utilization rate, the average link utilization rate, the link utilization rate variance, the performance index, and the first link utilization rate of the first policy. 5 shows one embodiment of such an algorithm.
  • the algorithm 525 may include a pre-trained artificial neural network.
  • the artificial neural network receives and processes the longest routing distance, average routing distance, routing distance variance, performance index, and routing distance of one policy, and outputs a corrected routing distance for one policy.
  • a first MLP model (526) can include
  • the processor 110 executes the pre-trained artificial neural network or the first MLP model 526 based on the longest routing distance, the average routing distance, the routing distance variance, the performance index, and the routing distance of the ith policy.
  • a calibrated routing distance of the i-th policy may be checked.
  • the corrected routing distance of the i-th policy may be shorter than that of the i-th policy.
  • the first MLP model 526 may be trained to output a plurality of corrected routing distances for a plurality of policies by receiving and processing routing distances of a plurality of policies instead of a routing distance of one policy. there is.
  • the artificial neural network receives and processes the maximum link utilization rate, average link utilization rate, link utilization variance, performance index, and link utilization rate of one policy, and outputs the corrected link utilization rate for one policy.
  • a second MLP model (527) can include For example, the processor 110 executes the pre-trained artificial neural network or the second MLP model 527 based on the maximum link utilization rate, the average link utilization rate, the link utilization variance, the performance index, and the link utilization rate of the ith policy. It is possible to check the corrected link usage rate of the ith policy.
  • the corrected link utilization rate of the i-th policy may be smaller than the link utilization rate of the i-th policy.
  • the second MLP model 527 may be trained to output a plurality of corrected link utilization rates for a plurality of policies by receiving and processing link utilization rates of a plurality of policies instead of a link utilization rate of one policy.
  • the pre-trained artificial neural network may include any other artificial neural network that can be trained instead of the first MLP model 526 and the second MLP model 527.
  • the processor 110 may generate first execution information regarding the first policy based on the first corrected routing distance and the first corrected link usage rate. Specifically, the processor 110 may generate first execution information of the first policy by merging the first corrected routing distance and the first corrected link usage rate. For the example shown in FIG. 5 , the processor 110 may generate execution information 528 of the i-th policy by merging the corrected routing distance of the i-th policy and the corrected link usage rate of the i-th policy. In this case, the execution information 528 of the i-th policy may include an identifier field (flow_id) of the policy, a corrected routing distance field (num_routing_hop) of the policy, and a corrected link utilization field (link_util) of the policy.
  • flow_id identifier field
  • a corrected routing distance field number_routing_hop
  • link_util corrected link utilization field
  • a policy with an identifier of 8 may be newly configured such that a routing distance (num_routing_hop) satisfies 5 and a link utilization rate (link_util) satisfies 0.3.
  • the processor 110 executes the artificial neural network to calculate a plurality of calibrated values of each of the plurality of policies based on the longest routing distance, the average routing distance, the routing distance variance, the performance index, and the routing distance of each of the plurality of policies.
  • Check the routing distance check the plurality of corrected link utilization of each of the plurality of policies based on the maximum link utilization rate, average link utilization rate, link utilization rate variance, performance index, and link utilization rate of each of the plurality of policies;
  • a plurality of partial execution information for each of a plurality of policies may be generated based on the routing distance and the plurality of corrected link usage rates, and the plurality of partial execution information may be merged.
  • the processor 110 merges the partial execution information of the first policy, the partial execution information of the second policy, and the partial execution information of the m-th policy to obtain execution information 529 for a plurality of policies.
  • can create Execution information 529 for a plurality of policies may have a form in which execution information of each i-th policy is listed.
  • the processor 110 may parse the execution information 529 for the plurality of policies and check individual execution information of each policy included in the plurality of policies.
  • the execution information 628 includes any one or more of a policy identifier field (flow_id), a policy source ip field (src_ip), a destination ip address field (dst_ip), and a policy processing command field (action).
  • flow_id policy identifier field
  • src_ip policy source ip field
  • dst_ip destination ip address field
  • action policy processing command field
  • action can include For example, according to FIG. 6 , since the “flow_id” of the execution information 628 is 3, it can be known that the execution information 628 relates to a policy having an identifier of 3. If the execution information 628 is reflected in the flow table of the SDN, a policy with an identifier of 3 will be newly configured as a rule that drops all packets whose destination IP address (dst_ip) starts with 210.
  • the processor 110 may update at least one policy through the third interface 730 based on execution information.
  • the processor 110 is a policy database based on k pieces of execution information (z 0 , z 1 , ... , z k-1 ) stored in the execution information database 731 through the third interface 730. (732) m policies (x 0 , x 1 , ... , x m-1 ) are updated, and the updated m policies (x' 0 , x' 1 , ... , x' m -1 ) are updated. 1 ) can be stored in the flow table 741 of the SDN 740.
  • k and m may be different numbers.
  • the SDN 740 receives k pieces of execution information (z 0 , z 1 , ... , z k-1 ) from the processor 110, and based on this, the SDN 740 generates a flow table Update m policies (x 0 , x 1 , ... , x m-1 ) stored in (741), and update m policies (x' 0 , x' 1 , ... , x' m -1 ) 1 ) can be stored in the flow table 741.
  • the aforementioned policy database, state information database, and execution information database may be separate physical memories or may be logically distinct from each other. This has an advantage in that information stored in the database can be checked by accessing each database from the outside of the electronic device.
  • the first interface, the second interface, and the third interface may each include a separate communication module to exchange information with each other.
  • the first interface, the second interface, and the third interface can transmit and receive data by directly communicating with each other without storing outputs in a separate database.
  • FIG. 8 illustrates an operating method of the electronic device 100 according to an exemplary embodiment. Since each step of the operating method of FIG. 8 can be performed by the electronic device 100 of FIG. 1 , descriptions of overlapping contents with those of FIG. 1 will be omitted.
  • step S810 the electronic device 100 may check at least one policy from the flow table of the SDN.
  • the electronic device 100 may store at least one policy in a policy database.
  • step S820 the electronic device 100 may check a performance indicator element based on information about at least one policy.
  • the electronic device 100 checks the longest routing distance, the average routing distance, and the routing distance distribution based on the routing distance of each of the at least one policy, and the link utilization rate of each of the at least one link included in the network topology. Based on , it is possible to check the maximum link utilization rate, average link utilization rate, and link utilization rate variance.
  • the electronic device 100 may store the performance index element in the state information database.
  • step S830 the electronic device 100 may determine whether the performance of the SDN needs to be improved based on the performance index element and the target performance index.
  • the electronic device 100 determines whether the performance of the SDN needs to be improved by checking the performance indicator using a preset formula based on the performance indicator elements and determining whether the difference between the performance indicator and the target performance indicator exceeds a preset value. can judge
  • the electronic device 100 may check a linear combination of reciprocal numbers of each performance index element as a performance index.
  • the electronic device 100 may check the target performance index from the controller of the SDN.
  • step S840 the electronic device 100 may check execution information on at least one policy by executing a predetermined algorithm based on the information on the performance index element, if the performance of the SDN is required to be improved as a result of the determination.
  • the algorithm includes a pre-trained artificial neural network, and the electronic device 100 can check execution information through an output of the artificial neural network into which information about performance index elements is input.
  • the electronic device 100 executes the artificial neural network and determines the first corrected routing distance of the first policy based on the longest routing distance, the average routing distance, the routing distance variance, the performance index, and the first routing distance of the first policy. and determine the first corrected link utilization rate of the first policy based on the maximum link utilization rate, the average link utilization rate, the link utilization rate variance, the performance index, and the first link utilization rate of the first policy, and determine the first corrected routing distance and the first corrected routing distance.
  • First execution information regarding the first policy may be generated based on the corrected link usage rate.
  • the artificial neural network receives and processes the longest routing distance, average routing distance, routing distance variance, performance index, and routing distance of one policy, and outputs a corrected routing distance for one policy.
  • a first MLP model, and A second MLP model learned to receive and process a maximum link utilization rate, an average link utilization rate, a link utilization rate variance, a performance index, and a link utilization rate of one policy and output a corrected link utilization rate for one policy.
  • the electronic device 100 may store execution information in an execution information database.
  • step S850 the electronic device 100 may update at least one policy in the flow table based on the execution information.
  • the electronic device 100 may update the policy stored in the policy database based on the execution information and store the updated policy in the flow table.
  • Embodiments according to the present disclosure described above may be implemented in the form of program instructions that can be executed through various computer components and recorded on a computer-readable recording medium or a non-transitory recording medium.
  • the computer-readable recording medium or non-transitory recording medium may include program instructions, data files, data structures, etc. alone or in combination.
  • Program instructions recorded on the computer-readable recording medium or non-transitory recording medium may be specially designed and configured for the present invention, or may be known and usable to those skilled in the art of computer software.
  • Examples of computer-readable recording media or non-transitory recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and magneto-optical media such as floptical disks.
  • magneto-optical media and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like.
  • program instructions include high-level language codes that can be executed by a computer using an interpreter or the like as well as machine language codes such as those produced by a compiler.
  • the hardware device or electronic device may be configured to act as one or more software modules to perform processing according to the present disclosure, and vice versa.
  • an embodiment is an integrated circuit configuration such as memory, processing, logic, look-up table, etc., which can execute various functions by control of one or more microprocessors or other control devices. can employ them.
  • the present embodiments include data structures, processes, routines, or various algorithms implemented as combinations of other programming constructs, such as C, C++, Java ( It can be implemented in a programming or scripting language such as Java), assembler, or the like.
  • Functional aspects may be implemented in an algorithm running on one or more processors.
  • this embodiment may employ conventional techniques for electronic environment setting, signal processing, data processing, or a combination thereof.

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 성능 개선 방법에 관한 것이다.
네트워크의 여러 서비스에서 유통되는 방대한 양의 데이터를 효율적으로 전송하기 위해 데이터를 실은 패킷은 빠르게 목적지에 도착해야 한다. 이를 위해 출발 노드로부터 네트워크의 하드웨어 레벨을 구성하는 스위치들을 통해 도착 노드까지 데이터가 전달되는 라우팅 경로를 최적화해야 한다. 하지만 단순히 라우팅 경로를 최적화하는 것만으로는 특정 스위치들을 연결하는 링크들에 데이터 전송이 집중되어 네트워크의 전체적인 대역폭을 효율적으로 사용하기 어렵다. 따라서 데이터가 전송되는 라우팅 경로를 최적화하여 평균 라우팅 경로 길이를 줄이면서 특정 링크에 데이터 전송이 포화되지 않도록 링크 사용을 분산시켜야 한다.
소프트웨어 정의 네트워킹 (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])는 아래 수학식으로 계산할 수 있다.
Figure PCTKR2022014764-appb-img-000001
위 수학식에서, j는 1 이상 m 이하의 자연수이고, Dj는 j번째 정책의 라우팅 거리를 의미한다.
m개의 정책 각각의 라우팅 거리의 평균을 뜻하는 평균 라우팅 거리(E[D])는 아래 수학식으로 계산할 수 있다.
Figure PCTKR2022014764-appb-img-000002
위 수학식에서, j는 1 이상 m 이하의 자연수이고, Dj는 j번째 정책의 라우팅 거리를 의미한다.
m개의 정책 각각의 라우팅 거리의 분산을 뜻하는 라우팅 거리 분산(Var[D])은 아래 수학식으로 계산할 수 있다.
Figure PCTKR2022014764-appb-img-000003
위 수학식에서, j는 1 이상 m 이하의 자연수이고, Dj 및 E[D]는 각각 j번째 정책의 라우팅 거리 및 평균 라우팅 거리를 의미한다.
예를 들어, l개의 링크 각각의 사용률 중 가장 큰 사용률을 뜻하는 최대 링크사용률(M[U])은 아래 수학식으로 계산할 수 있다.
Figure PCTKR2022014764-appb-img-000004
위 수학식에서, i는 1 이상 l 이하의 자연수이고, Ui는 i번째 링크의 링크 사용률을 의미한다.
l개의 링크 각각의 사용률의 평균을 뜻하는 평균 링크 사용률(E[U])은 아래 수학식으로 계산할 수 있다.
Figure PCTKR2022014764-appb-img-000005
위 수학식에서, i는 1 이상 l 이하의 자연수이고, Ui는 i번째 링크의 링크 사용률을 의미한다.
l개의 링크 각각의 사용률의 분산을 뜻하는 링크 사용률 분산(Var[U])은 아래 수학식으로 계산할 수 있다.
Figure PCTKR2022014764-appb-img-000006
위 수학식에서, 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는 아래 수학식으로 계산할 수 있다.
Figure PCTKR2022014764-appb-img-000007
위 수학식에서, 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의 성능 개선이 필요한 경우, 상기 성능 지표 요소에 관한 정보를 기초로 소정의 알고리즘을 실행하여 상기 적어도 하나의 정책에 관한 실행 정보를 확인하는 단계; 및
    상기 실행 정보를 기초로 상기 적어도 하나의 정책을 갱신하는 단계를 포함하는, SDN 성능 개선 방법.
  2. 제1항에 있어서,
    상기 판단하는 단계는,
    상기 성능 지표 요소를 기초로 기 설정된 수식을 이용하여 성능 지표를 확인하는 단계; 및
    상기 성능 지표 및 상기 목표 성능 지표의 차이가 기 설정된 값을 초과하는지 여부를 통해, 상기 SDN의 성능 개선이 필요한지 여부를 판단하는 단계를 포함하는, SDN 성능 개선 방법.
  3. 제2항에 있어서,
    상기 성능 지표를 확인하는 단계는,
    상기 성능 지표 요소 각각의 역수의 선형 결합을 상기 성능 지표로 확인하는 단계를 포함하는, SDN 성능 개선 방법.
  4. 제1항에 있어서,
    상기 알고리즘은,
    사전-학습된(pre-trained) 인공신경망을 포함하고,
    상기 실행 정보를 확인하는 단계는,
    상기 성능 지표 요소에 관한 정보가 입력된 상기 인공신경망의 출력을 통해 상기 실행 정보를 확인하는 단계를 포함하는, SDN 성능 개선 방법.
  5. 제4항에 있어서,
    상기 성능 지표 요소를 확인하는 단계는,
    상기 적어도 하나의 정책 각각의 라우팅 거리를 기초로 최장 라우팅 거리, 평균 라우팅 거리, 및 라우팅 거리 분산을 확인하고, 네트워크 토폴로지(network topology)에 포함되는 적어도 하나의 링크 각각의 링크 사용률을 기초로 최대 링크 사용률, 평균 링크 사용률 및 링크 사용률 분산을 확인하는 단계를 포함하고,
    상기 실행 정보를 확인하는 단계는,
    상기 인공신경망을 실행하여, 상기 최장 라우팅 거리, 상기 평균 라우팅 거리, 상기 라우팅 거리 분산, 상기 성능 지표 및 제1 정책의 제1 라우팅 거리를 기초로 상기 제1 정책의 제1 보정된 라우팅 거리를 확인하고, 상기 최대 링크 사용률, 상기 평균 링크 사용률, 상기 링크 사용률 분산, 상기 성능 지표 및 상기 제1 정책의 제1 링크 사용률을 기초로 상기 제1 정책의 제1 보정된 링크 사용률을 확인하는 단계; 및
    상기 제1 보정된 라우팅 거리 및 상기 제1 보정된 링크 사용률을 기초로 상기 제1 정책에 관한 제1 실행 정보를 생성하는 단계를 포함하는, SDN 성능 개선 방법.
  6. 제4항에 있어서,
    상기 인공신경망은,
    최장 라우팅 거리, 평균 라우팅 거리, 라우팅 거리 분산, 성능 지표 및 하나의 정책의 라우팅 거리를 입력 받고 처리하여 상기 하나의 정책에 관한 보정된 라우팅 거리를 출력하도록 학습된 제1 MLP 모델, 및
    최대 링크 사용률, 평균 링크 사용률, 링크 사용률 분산, 성능 지표 및 상기 하나의 정책의 링크 사용률을 입력 받고 처리하여 상기 하나의 정책에 관한 보정된 링크 사용률을 출력하도록 학습된 제2 MLP 모델을 포함하는, SDN 성능 개선 방법.
  7. 제1항에 있어서,
    상기 판단하는 단계는,
    상기 SDN의 컨트롤러로부터 상기 목표 성능 지표를 확인하는 단계를 포함하는, SDN 성능 개선 방법.
  8. 제1항에 있어서,
    상기 적어도 하나의 정책을 확인하는 단계는,
    상기 적어도 하나의 정책을 정책 데이터베이스에 저장하는 단계를 포함하고,
    상기 성능 지표 요소를 확인하는 단계는,
    상기 성능 지표 요소를 상태 정보 데이터베이스에 저장하는 단계를 포함하고,
    상기 실행 정보를 확인하는 단계는,
    상기 실행 정보를 실행 정보 데이터베이스에 저장하는 단계를 포함하고,
    상기 적어도 하나의 정책을 갱신하는 단계는,
    상기 실행 정보를 기초로 상기 정책 데이터베이스에 저장된 상기 정책을 갱신하고, 갱신된 정책을 상기 플로우 테이블에 저장하는 단계를 포함하는, SDN 성능 개선 방법.
  9. 전자 장치로서,
    적어도 하나의 프로그램이 저장된 메모리; 및
    상기 적어도 하나의 프로그램을 실행함으로써,
    SDN의 플로우 테이블(flow table)로부터 적어도 하나의 정책을 확인하고,
    상기 적어도 하나의 정책에 관한 정보를 기초로 성능 지표 요소를 확인하고,
    상기 성능 지표 요소 및 목표 성능 지표를 기초로 상기 SDN의 성능 개선이 필요한지 여부를 판단하고,
    상기 판단 결과 상기 SDN의 성능 개선이 필요한 경우, 상기 성능 지표 요소에 관한 정보를 기초로 소정의 알고리즘을 실행하여 상기 적어도 하나의 정책에 관한 실행 정보를 확인하고,
    상기 실행 정보를 기초로 상기 적어도 하나의 정책을 갱신하는 프로세서를 포함하는, 전자 장치.
  10. 전자 장치의 SDN(Software Defined Networking) 성능 개선 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비일시적 기록매체로서,
    상기 SDN 성능 개선 방법은,
    SDN의 플로우 테이블(flow table)로부터 적어도 하나의 정책을 확인하는 단계;
    상기 적어도 하나의 정책에 관한 정보를 기초로 성능 지표 요소를 확인하는 단계;
    상기 성능 지표 요소 및 목표 성능 지표를 기초로 상기 SDN의 성능 개선이 필요한지 여부를 판단하는 단계;
    상기 판단 결과 상기 SDN의 성능 개선이 필요한 경우, 상기 성능 지표 요소에 관한 정보를 기초로 소정의 알고리즘을 실행하여 상기 적어도 하나의 정책에 관한 실행 정보를 확인하는 단계; 및
    상기 실행 정보를 기초로 상기 적어도 하나의 정책을 갱신하는 단계를 포함하는, 비일시적 기록매체.
PCT/KR2022/014764 2022-01-17 2022-09-30 전자 장치의 sdn 성능 개선 방법 WO2023136426A1 (ko)

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
WO2023136426A1 true WO2023136426A1 (ko) 2023-07-20

Family

ID=87161347

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/014764 WO2023136426A1 (ko) 2022-01-17 2022-09-30 전자 장치의 sdn 성능 개선 방법

Country Status (3)

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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100112158A (ko) * 2008-01-10 2010-10-18 콸콤 인코포레이티드 네트워크-개시되는 qos 및 정책 제어를 통한 최적화된 세션 셋업을 위한 방법 및 장치
KR20140116552A (ko) * 2007-06-13 2014-10-02 퀄컴 인코포레이티드 서비스 품질 정보 구성
KR20160041631A (ko) * 2014-10-08 2016-04-18 한국전자통신연구원 서비스 품질 인지 라우팅 제어 장치 및 라우팅 제어 방법
KR20180057475A (ko) * 2016-11-21 2018-05-30 한국전자통신연구원 Sdn 기반 수동형 광네트워크의 트래픽 폭주 해결 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140116552A (ko) * 2007-06-13 2014-10-02 퀄컴 인코포레이티드 서비스 품질 정보 구성
KR20100112158A (ko) * 2008-01-10 2010-10-18 콸콤 인코포레이티드 네트워크-개시되는 qos 및 정책 제어를 통한 최적화된 세션 셋업을 위한 방법 및 장치
KR20160041631A (ko) * 2014-10-08 2016-04-18 한국전자통신연구원 서비스 품질 인지 라우팅 제어 장치 및 라우팅 제어 방법
KR20180057475A (ko) * 2016-11-21 2018-05-30 한국전자통신연구원 Sdn 기반 수동형 광네트워크의 트래픽 폭주 해결 장치 및 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
VARADHARAJAN VIJAY; KARMAKAR KALLOL; TUPAKULA UDAY; HITCHENS MICHAEL: "A Policy-Based Security Architecture for Software-Defined Networks", IEEE TRANSACTIONS ON INFORMATION FORENSICS AND SECURITY, IEEE, USA, vol. 14, no. 4, 1 April 2019 (2019-04-01), USA, pages 897 - 912, XP011693699, ISSN: 1556-6013, DOI: 10.1109/TIFS.2018.2868220 *
YOON, DAEGUN ET AL.: "Rule Engine Interface Design for Improving Performance of a Tactical Network", 2021 THE KOREA INSTITUTE OF MILITARY SCIENCE AND TECHNOLOGY ANNUAL CONFERENCE, 11 November 2021 (2021-11-11), ISSN: 2636-0659 *

Also Published As

Publication number Publication date
US20230231791A1 (en) 2023-07-20
KR102635358B1 (ko) 2024-02-08
KR20230110960A (ko) 2023-07-25

Similar Documents

Publication Publication Date Title
US11463511B2 (en) Model-based load balancing for network data plane
US8780899B2 (en) Method and system for improving traffic distribution across a communication network
CN104683257A (zh) 对进入流量执行流量负载平衡的方法和装置
US7978719B2 (en) Dynamically assigning endpoint identifiers to network interfaces of communications networks
US20100247094A1 (en) Dynamic load balancing of fibre channel traffic
KR20020027570A (ko) 네트워크 프로세서를 사용하는 네트워크 스위치 및 그의방법
US20220150154A1 (en) Automatically managing a mesh network based on dynamically self-configuring node devices
US20130100957A1 (en) Information processing system, relay device, and information processing method
CN111382114A (zh) 一种用于片上网络的数据传输方法、装置及电子设备
US20050251599A1 (en) Globally unique transaction identifiers
Song et al. Resource-efficient virtual network function placement in operator networks
US7330481B2 (en) Highly channelized port polling in a telecommunications switch
Chowdhary et al. Sdn based network function parallelism in cloud
WO2023136426A1 (ko) 전자 장치의 sdn 성능 개선 방법
WO2012148038A1 (ko) 가상네트워크 환경에서의 자원 할당 방법 및 장치
US10924390B2 (en) Updating entries of a distribution data structure
WO2023207161A1 (zh) 网络数据包的服务质量处理方法、装置、设备和可读介质
CN113014504B (zh) 流量控制方法、装置与电子设备
US20230244626A1 (en) Parallel dataflow routing scheme systems and methods
US11683228B2 (en) Automatically managing a role of a node device in a mesh network
US20060253861A1 (en) API interface to make dispatch tables to match API routines
US20240154906A1 (en) Creation of cyclic dragonfly and megafly cable patterns
WO2023058829A1 (ko) 인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 및 방법
US11960437B2 (en) Systems and methods for multi-branch routing for interconnected chip networks
TWI816593B (zh) 網路處理器的負載平衡方法及電腦程式產品及裝置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22920757

Country of ref document: EP

Kind code of ref document: A1