KR101541168B1 - Route control method for flow of controller in software defined network - Google Patents
Route control method for flow of controller in software defined network Download PDFInfo
- Publication number
- KR101541168B1 KR101541168B1 KR1020150025592A KR20150025592A KR101541168B1 KR 101541168 B1 KR101541168 B1 KR 101541168B1 KR 1020150025592 A KR1020150025592 A KR 1020150025592A KR 20150025592 A KR20150025592 A KR 20150025592A KR 101541168 B1 KR101541168 B1 KR 101541168B1
- Authority
- KR
- South Korea
- Prior art keywords
- path
- edge switch
- flow
- edge
- host
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/125—Shortest path evaluation based on throughput or bandwidth
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
본 발명은 소프트웨어 정의 네트워크 환경에서 컨트롤러의 플로우에 대한 경로 제어방법에 관한 것이다.The present invention relates to a path control method for a flow of a controller in a software defined network environment.
소프트웨어 정의 네트워크(SDN, Software Defined Network)는 네트워크 기능을 논리적으로 중앙 집중화하여 제어하기 위한 기술이다. 기존 네트워크 기술의 제어 기능은 개별 장비에 분산되어 있으며, 각 장비의 데이터 전송 기능을 제어하는 역할을 한다. 반면, 소프트웨어 정의 네트워크에서는 제어 기능을 개별 장비로부터 분리하여 별도의 제어 장비로 집중하며 데이터 전송 기능은 제어 장비를 통해 소프트웨어적으로 제어한다. 즉, 컨트롤 영역은 중앙 집중화되어 네트워크 전체의 경로 결정 및 관리를 주로 담당하고, 데이터 영역은 상대적으로 단순화되어 주로 컨트롤 영역에서 지정한 방식에 따라 플로우를 처리한다. Software Defined Network (SDN) is a technology for logically centralizing and controlling network functions. Control functions of existing network technology are distributed to individual devices and control the data transmission function of each device. On the other hand, in the software defined network, the control functions are separated from the individual devices and concentrated in separate control devices, and the data transmission functions are controlled in software through the control devices. In other words, the control area is centralized and mainly responsible for route determination and management of the entire network, and the data area is relatively simplified, mainly handling the flow according to the method specified in the control area.
소프트웨어 정의 네트워크를 이용하면 네트워크 관리자가 직접 네트워크를 프로그래밍하여 관리하는 것이 가능하며, 보다 향상되고 자동화된 네트워크 컨트롤을 제공할 수 있다.Software-defined networks enable network administrators to program and manage their own networks, providing better and more automated network control.
이러한 소프트웨어 정의 네트워크를 이용하는 방법과 관련하여, 선행기술인 한국등록특허 제 10-1438212호는 소프트웨어 정의 네트워크 심층패킷 분석 방법 및 이를 이용하는 소프트웨어 정의 네트워크 시스템에 대하여 개시하고 있고, 한국등록특허 제 10-1465884호는 소프트웨어 정의 네트워크에서의 확률적 컨트롤러 선택 방법 및 장치에 대하여 개시하고 있다. 또한, 한국공개특허 제 2014-0135000호는 소프트웨어정의네트워킹 기반 통신시스템의 서비스 처리 방법 및 장치에 대하여 개시하고 있다.With respect to the method using this software defined network, Korean Patent No. 10-1438212 discloses a software defined network deep packet analysis method and a software defined network system using the same, and Korean Patent No. 10-1465884 Discloses a stochastic controller selection method and apparatus in a software defined network. Korean Patent Laid-Open Publication No. 2014-0135000 discloses a method and apparatus for processing a service of a software defined networking-based communication system.
다만, 소프트웨어 정의 네트워크에서 네트워크 제어 기능은 컨트롤러에 중앙 집중화되어 있기 때문에, 컨트롤러와 네트워크 장비 간의 컨트롤 메시지 오버헤드가 발생할 수 있다. 즉, 네트워크를 관리할 때 컨트롤 영역과 데이터 영역 간의 통신 지연이 발생할 수 있다. However, in software-defined networks, network control functions are centralized in the controller, which can result in control message overhead between the controller and the network equipment. That is, a communication delay may occur between the control area and the data area when managing the network.
특히, 이러한 오버헤드 및 통신 지연은 스위치에 새로운 플로우 처리 방식을 지정하는 경우에 발생할 수 있다. 이러한 오버헤드 및 통신 지연은 고성능 네트워크에 적합하지 못하며, 처리 방식이 결정될 때까지 플로우의 패킷 처리를 지연시킨다는 문제가 있다.In particular, this overhead and communication delay may occur when a new flow handling scheme is designated for the switch. Such overhead and communication delays are not suitable for high performance networks and there is a problem of delaying packet processing of flows until a processing scheme is determined.
본 발명은 전술한 문제점을 해결하기 위하여, 컨트롤 메시지에 의한 처리 지연을 최소화하면서도 네트워크상의 링크를 효율적으로 사용하도록 제어할 수 있는 컨트롤러 및 플로우에 대한 경로제어방법을 제공하는 데에 그 목적이 있다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a controller and a path control method for a flow that can control a link on a network to be used efficiently while minimizing processing delay caused by a control message.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 더 존재할 수 있다.It is to be understood, however, that the technical scope of the present invention is not limited to the above-described technical problems, and other technical problems may be present.
상기와 같은 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크 환경에서 컨트롤러의 플로우에 대한 경로 제어방법은 네트워크 상에서 가장자리에 배치된 임의의 엣지 스위치에서 타 엣지 스위치로의 적어도 하나의 경로를 저장하되, 네트워크의 토폴로지를 기초로 미리 설정된 각 엣지 스위치 쌍의 경로를 구분하기 위한 식별 정보를 상기 경로마다 할당하여 저장하는 단계; 제 1 호스트에서 제 2 호스트로의 플로우가 생성된 경우 제 1 호스트와 인접하는 제 1 엣지 스위치로부터 플로우의 정보를 수신하여 제 1 엣지 스위치와, 제 2 호스트와 인접하는 제 2 엣지 스위치를 결정하는 단계; 저장된 경로 중 제 1 엣지 스위치와 제 2 엣지 스위치 간의 경로를 검색하여 검색된 경로 중 어느 하나의 경로를 선택하는 단계; 및 플로우가 선택된 경로를 통해 처리되도록 제 1 엣지 스위치로 선택된 경로에 대한 정보를 송신하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method of controlling a flow of a controller in a software defined network environment, the method comprising: receiving at least one edge switch from an edge switch Allocating and storing identification information for identifying a path of each edge switch pair set in advance on the basis of the topology of the network; When the flow from the first host to the second host is generated, information of the flow is received from the first edge switch adjacent to the first host to determine the first edge switch and the second edge switch adjacent to the second host step; Searching for a path between the first edge switch and the second edge switch among the stored paths and selecting any one of the retrieved paths; And transmitting information about the selected path to the first edge switch such that the flow is processed through the selected path.
또한, 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크 환경에서의 컨트롤러는 네트워크 상에서 플로우의 경로를 제어하는 프로그램을 저장하는 메모리; 및 프로그램을 수행하는 프로세서를 포함한다. Further, a controller in a software defined network environment according to an embodiment of the present invention includes a memory for storing a program for controlling a flow path on a network; And a processor for executing the program.
이때, 프로세서는 프로그램의 실행에 따라, 네트워크 상에서 가장자리에 배치된 임의의 엣지 스위치에서 타 엣지 스위치로의 적어도 하나의 경로를 저장하되, 네트워크의 토폴로지를 기초로 미리 설정된 각 엣지 스위치 쌍의 경로를 구분하기 위한 식별 정보를 경로마다 할당하여 저장하는 단계; 제 1 호스트에서 제 2 호스트로의 플로우가 생성된 경우 제 1 호스트와 인접하는 제 1 엣지 스위치로부터 플로우의 정보를 수신하여 제 1 엣지 스위치와, 제 2 호스트와 인접하는 제 2 엣지 스위치를 결정하는 단계; 저장된 경로 중 제 1 엣지 스위치와 제 2 엣지 스위치 간의 경로를 검색하여 검색된 경로 중 어느 하나의 경로를 선택하는 단계; 및 플로우가 선택된 경로를 통해 처리되도록 제 1 엣지 스위치로 선택된 경로에 대한 정보를 송신하는 단계를 수행한다.At this time, according to the execution of the program, the processor stores at least one path from any edge switch disposed at the edge on the network to the other edge switch, and determines the path of each predetermined edge switch pair based on the topology of the network Allocating and storing identification information for each path; When the flow from the first host to the second host is generated, information of the flow is received from the first edge switch adjacent to the first host to determine the first edge switch and the second edge switch adjacent to the second host step; Searching for a path between the first edge switch and the second edge switch among the stored paths and selecting any one of the retrieved paths; And transmitting information about the selected path to the first edge switch such that the flow is processed through the selected path.
본 발명의 일 실시예에 따르면, 각 플로우에 다수의 경로를 할당하고 네트워크 상태에 따라 사용하는 경로를 변경하고, 기본경로를 지정할 수 있다. 또한, 본 발명은 빠른 경로 변경 적용을 위해 가능한 경로를 미리 계산하여 고정적으로 사용함으로써, 플로우 엔트리가 생성되는 동안 패킷을 처리하며, 플로우 생성 시 향상된 플로우의 처리 속도를 제공할 수 있다.According to an embodiment of the present invention, a plurality of paths may be allocated to each flow, a path used may be changed according to a network state, and a basic path may be specified. In addition, the present invention can pre-calculate possible paths for application of fast path change and use it fixedly, thereby processing packets during generation of flow entries, and providing an improved flow processing speed when generating flows.
도 1은 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크 환경에서 컨트롤러의 플로우에 대한 경로 제어방법을 설명하기 위한 순서도이다.
도 2는 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크 환경에서 컨트롤러의 플로우에 대한 경로 제어방법에서 사용되는 스위치와 경로들의 연관관계를 나타낸 토폴로지의 일 예를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크 환경에서 컨트롤러의 플로우에 대한 경로 제어방법에서 사용되는 컨트롤러의 경로 정보 테이블의 일 예를 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크 환경에서 컨트롤러의 플로우에 대한 경로 제어방법에서 사용되는 제1 엣지 스위치(A)의 플로우 테이블 및 식별 정보 테이블의 일 예를 도시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크 환경에서 컨트롤러의 플로우에 대한 경로 제어방법에서 로드 밸런싱을 설명하기 위한 순서도이다.FIG. 1 is a flowchart for explaining a path control method for a flow of a controller in a software defined network environment according to an embodiment of the present invention. Referring to FIG.
2 is a diagram illustrating an example of a topology showing a relationship between switches and paths used in a path control method for a flow of a controller in a software defined network environment according to an embodiment of the present invention.
3 is a diagram illustrating an example of a path information table of a controller used in a path control method for a flow of a controller in a software defined network environment according to an embodiment of the present invention.
4 is a diagram showing an example of a flow table and an identification information table of a first edge switch A used in a path control method for a flow of a controller in a software defined network environment according to an embodiment of the present invention.
5 is a flowchart illustrating load balancing in a path control method for a flow of a controller in a software defined network environment according to an embodiment of the present invention.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, which will be readily apparent to those skilled in the art. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미하며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Throughout the specification, when a part is referred to as being "connected" to another part, it includes not only "directly connected" but also "electrically connected" with another part in between . Also, when an element is referred to as "including" an element, it is to be understood that the element may include other elements as well as other elements, And does not preclude the presence or addition of one or more other features, integers, steps, operations, components, parts, or combinations thereof.
도 1은 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크 환경에서 컨트롤러의 플로우에 대한 경로 제어방법을 설명하기 위한 순서도이다.FIG. 1 is a flowchart for explaining a path control method for a flow of a controller in a software defined network environment according to an embodiment of the present invention. Referring to FIG.
우선, 네트워크 상에서 가장자리에 배치된 임의의 엣지 스위치에서 타 엣지 스위치로의 적어도 하나의 경로를 저장하되, 네트워크의 토폴로지를 기초로 미리 설정된 각 엣지 스위치 쌍의 경로를 구분하기 위한 식별 정보를 경로마다 할당하여 저장한다(S110).At first, at least one path from any edge switch disposed on the edge of the network to the other edge switch is stored, and identification information for distinguishing the path of each edge switch pair set on the basis of the topology of the network is allocated for each path (S110).
이어서, 제 1 호스트에서 제 2 호스트로의 플로우가 생성된 경우 제 1 호스트와 인접하는 제 1 엣지 스위치로부터 플로우의 정보를 수신하여 제 1 엣지 스위치와, 제 2 호스트와 인접하는 제 2 엣지 스위치를 결정한다(S120).Then, when a flow from the first host to the second host is generated, information of the flow is received from the first edge switch adjacent to the first host, and the first edge switch and the second edge switch adjacent to the second host (S120).
이어서, 저장된 경로 중 제 1 엣지 스위치와 제 2 엣지 스위치 간의 경로를 검색하여 검색된 경로 중 어느 하나의 경로를 선택한다(S130).Subsequently, a path between the first edge switch and the second edge switch of the stored path is searched to select one of the searched paths (S130).
다음으로, 플로우가 선택된 경로를 통해 처리되도록 제 1 엣지 스위치로 선택된 경로에 대한 정보를 송신한다(S140).Next, information on the path selected by the first edge switch is transmitted so that the flow is processed through the selected path (S140).
이하에서는, 소프트웨어 정의 네트워크 환경에서 컨트롤러의 플로우에 대한 경로 제어방법에 대해 도 2내지 도 5를 참고하여 상기와 같은 단계들을 좀더 자세히 설명하기로 한다.Hereinafter, the above-described steps will be described in detail with reference to FIGS. 2 to 5 with respect to the path control method for the flow of the controller in the software-defined network environment.
도 2는 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크 환경에서 컨트롤러의 플로우에 대한 경로 제어방법에서 사용되는 스위치와 경로들의 연관관계를 나타낸 토폴로지의 일 예를 도시한 도면이고, 도 3은 컨트롤러의 경로 정보 테이블의 일 예를 도시한 도면이고, 도 4는 제1 엣지 스위치(A)의 플로우 테이블 및 식별 정보 테이블의 일 예를 도시한 도면이다.2 is a diagram illustrating an example of a topology showing a relationship between switches and paths used in a path control method for a flow of a controller in a software defined network environment according to an embodiment of the present invention. FIG. 4 is a diagram showing an example of a flow table and an identification information table of the first edge switch A. FIG.
본 발명에서는 각 링크에 로드를 효율적으로 분배하기 위하여 각 엣지 스위치(A 내지 G) 간에 다수의 경로를 할당하고 네트워크 상태에 따라 사용하는 경로를 변경할 수 있다.In the present invention, in order to efficiently distribute the load to each link, a plurality of paths may be allocated between the edge switches A to G, and the path used may be changed according to the network state.
이때, 도2에 도시된 바와 같이, 네트워크 토폴로지(20) 정보를 이용하여 네트워크상의 각 엣지 스위치 쌍에 대한 다수의 경로를 사전에 결정할 수 있다. 여기서, 각 엣지 스위치(A 내지 G)는 송신지 및 수신지로 사용될 수 있고, 컨트롤러(200)의 플로우에 대한 공통된 경로로 사용될 수 있다. 또한, 각 엣지 스위치는 식별 정보 테이블 및 플로우 테이블을 포함할 수 있다. 또한, 엣지 스위치란 네트워크 토폴로지(20) 상의 다수의 스위치 중 호스트에 인접하여 주로 외곽에 배치되어 있는 스위치를 의미한다. At this time, as shown in FIG. 2, the
덧붙여, 소프트웨어 정의 네트워크 환경에서 컨트롤러와 각각의 스위치는 해당 네트워크의 기설정된 프로토콜을 이용하여 정보를 교환하고, 스위치는 일반적으로 보안 채널을 통해 컨트롤러로부터 제어 정보를 전달받아 플로우 테이블에 할당 및 저장할 수 있다. 플로우 테이블은 룰(Rule), 액션(Action), 스텟(Stats)으로 이루어지는데, 룰은 포트, IP 등 목적지 관리를 위한 패킷 헤더 정보를 체크하는 기능을 하고, 액션은 암호화, 차단, 전송 등의 기능을 수행하며, 스텟은 전송 패킷의 수와 전송 상태 통계를 산출할 수 있다. In addition, in a software defined network environment, the controller and each of the switches exchange information using a predetermined protocol of the network, and the switch can generally receive control information from the controller via the secure channel and allocate and store the control information in the flow table . The flow table consists of rules, actions, and stats. The rules are used to check packet header information for destination management such as port and IP, and actions are used for encryption, blocking, and transmission. Function, and the stat can calculate the number of transmission packets and the transmission status statistics.
도2 및 3을 참조하여, 각 엣지 스위치 쌍(310)에 대한 사전에 경로가 설정되는 방식을 설명하면, 각 엣지 스위치 쌍(310) (x, y)에 대하여 최단 거리 경로를 결정하고, 결정된 경로 상의 링크를 토폴로지(20)에서 제거하고, 다시 최단 거리 경로를 결정할 수 있다. 이러한 과정을 반복하여, 가능한 모든 경로(320)를 결정할 수 있다.Referring to Figs. 2 and 3, a description will be given of a method in which paths are set in advance for each
저장하는 단계(S110)는 네트워크의 토폴로지(20)를 기초로 각 엣지 스위치 쌍(310)에 해당하는 미리 설정된 모든 경로(320)에 대하여, 각 경로(320)의 구분을 위한 식별 정보(330)를 할당하여 저장할 수 있고, 경로(320) 정보를 컨트롤러(200)에서 유지할 수 있다. 또한, 자세한 내용은 후술하겠지만, 각 엣지 스위치 쌍(310)의 경로(320) 중 최단경로를 기본경로로 할당하여 플로우 엔트리가 생성되지 않은 플로우를 처리하기 위해 사용할 수 있다.The step of storing S110 stores the
결정하는 단계(S120)는 제 1 호스트(210)에서 제 2 호스트(220)로 향하는 플로우가 새로 생성될 수 있다. 이러한 경우, 제 1 호스트(210)와 인접하는 제 1 엣지 스위치(230)로부터 플로우의 정보를 수신하여, 제 1 엣지 스위치(230)를 결정할 수 있다. 또한, 제2 호스트(220)와 인접하는 제 2 엣지 스위치(240)로부터 플로우의 정보를 수신하여, 제 2 엣지 스위치(240)를 결정할 수 있다. 여기서, 플로우의 정보는 플로우의 헤더(410) 정보를 포함할 수 있다.In step S120, a flow from the first host 210 to the
선택하는 단계(S130)는 저장된 경로(320) 중 제 1 엣지 스위치(230)와 제 2 엣지 스위치(240) 간의 경로(320)를 검색하여 검색된 경로(320) 중 어느 하나의 경로를 선택할 수 있다. The selecting step S130 may select any one of the retrieved
선택하는 단계(S130)는 검색된 경로(320) 중 최소 링크 사용률(340)을 나타내는 경로(320)를 선택할 수 있다.The selecting step S 130 may select a
각 엣지 스위치 쌍(310)에 대한 경로(320)에 해당하는 각각의 링크 사용률(340)은 엣지 스위치 쌍(310) 중 적어도 어느 하나에 의해 주기적으로 또는 랜덤하게 보고될 수 있다.Each
이러한 단계에서 발생하는 컨트롤 영역과 데이터 영역의 통신 지연을 해결하기 위해, 플로우 셋업 지연을 최소화하는 방식을 이용할 수 있다. 또한, 각 경로(320)의 중간 스위치(B, C, E, F, G)에서는 와일드카드와 식별 정보(330, 430)를 이용하여 라우팅 할 수 있다.In order to solve the communication delay between the control area and the data area generated at this stage, a method of minimizing the flow setup delay can be used. Also, the intermediate switches B, C, E, F, and G of each
경로 선택 과정을 자세히 설명하면, 제 1 엣지 스위치(230)에서는 제 1 엣지 스위치(230)의 식별 정보 테이블(도 4의 b)을 이용하여, 플로우가 사용 중인 경로를 나타낼 수 있다. 플로우 생성 시, 기본경로 A-G-D를 이용하여 우선적으로 패킷을 처리하고, 제 1 엣지 스위치(230)의 플로우 테이블(도 4의 a)만 변경하여 경로(320)를 적용시킬 수 있다. 이때, 복수 개의 경로(320) 중 링크 사용률(340)이 0.3으로 가장 낮은 경로 A-B-C-D를 선택하고, 제 1 엣지 스위치(230)에 해당하는 식별 정보(430) g2를 액션(420)으로 가진 플로우 H1→H2(f1)를 추가할 수 있다. 또한, 플로우의 경로 변경 시, 플로우의 제 1 엣지 스위치(230)에서의 식별 정보 테이블(도4의 b)을 변경하여, 플로우의 경로 변경을 처리할 수 있다.The path selection process will be described in more detail. In the
송신하는 단계(S140)에서는 플로우가 기본적으로 설정된 최단 경로(기본 경로) 대신에 상술한 선택하는 단계(S130)에서 선택된 경로를 통해 처리되도록 제 1 엣지 스위치(230)로 선택된 경로에 대한 정보를 송신할 수 있다.In the transmission step S140, information on the path selected by the
플로우의 라우팅 과정을 자세히 설명하면, H1에서 H2로 향하는 플로우 f1이 생성되었을 경우, 제 1 엣지 스위치(230)는 최단경로인 기본경로A-G-D의 식별 정보(330) g1을 이용하여 플로우 f1의 패킷을 처리하고, f1의 플로우 헤더(410)를 컨트롤러(200)로 전송하여 플로우 f1에 대한 처리 방식을 질의할 수 있다.When a flow f1 from H1 to H2 is generated, the
컨트롤러(200)는 제 1 호스트(210)과 제 2 호스트(220)가 각각 연결된 제 1 엣지 스위치(230) 및 제 2 엣지 스위치(240)를 파악한다. 이후에 컨트롤러(200)는 제 1 및 제 2 엣지 스위치 쌍(A, D) 사이의 경로(320) 중 링크 사용률(340)이 0.3으로 가장 낮은 경로 A-B-C-D에 대응하는 식별 정보(330) g2를 선택하여, 플로우 f1을 처리하기 위한 경로로 선정할 수 있다. 다음으로, 제 1 엣지 스위치(230)의 플로우 테이블(도4의 a)에 플로우 f1을 위한 엔트리가 추가되고, 액션(420)을 통해 경로(320) A-B-C-D에 대응하는 식별 정보(430) g2를 할당함으로써, 제 1 엣지 스위치(230)에 라우팅 정보가 입력될 수 있다.The
여기서, 패킷 처리 과정에 대하여 자세히 설명하면, 패킷이 엣지 스위치에 들어오게 되면, 플로우 테이블의 룰에 의해서 패킷의 헤더 정보를 점검할 수 있다. 이때, 패킷의 헤더 정보가 플로우 헤더(410) 정보와 일치하는 경우, 지정된 액션(420)에 의해서 패킷이 처리될 수 있다. 반면, 패킷 헤더 정보가 플로우 헤더(410) 정보와 일치하지 않는 경우, 엣지 스위치는 컨트롤러(200)에 처리 방식을 요청할 수 있다. 요청받은 컨트롤러(200)는 패킷의 처리를 지정하여, 엣지 스위치 플로우 테이블에 설치하여 패킷을 처리할 수 있다.Here, the packet process will be described in detail. When the packet enters the edge switch, the header information of the packet can be checked by the rules of the flow table. At this time, if the header information of the packet matches the information of the
앞서 상술한 컨트롤러(200)의 플로우에 대한 경로(320) 제어방법은 각 엣지 스위치 쌍(310)에 대한 경로(320)에 해당하는 각각의 링크 사용률(340)을 수신하는 단계를 더 포함할 수 있다. 이때, 앞서 상술한 선택하는 단계(S130)는 검색된 경로에 해당하는 각각의 링크 사용률(340)과 미리 설정된 임계 사용률을 비교한 결과에 기초하여 선택할 수 있다. 즉, 경로를 선택함에 있어서, 컨트롤러(200)는 링크 사용률(340) 뿐만 아니라 스위치에 걸리는 로드의 밸런싱까지 함께 고려하여 경로를 선택할 수 있는데, 이에 대해서는 도 5를 참고하여 설명하기로 한다. The method of controlling
도 5는 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크 환경에서 컨트롤러의 플로우에 대한 경로 제어방법에서 로드 밸런싱을 설명하기 위한 순서도이다.5 is a flowchart illustrating load balancing in a path control method for a flow of a controller in a software defined network environment according to an embodiment of the present invention.
로드 밸런싱은 링크 사용률(340)이 임계 사용률(임계값) 이상의 사용률을 보일 경우 수행할 수 있다.Load balancing can be performed when the
도 5를 참조하여, 로드 밸런싱의 수행과정을 설명하면, 각 엣지 스위치는 주기적으로 컨트롤러(200)에 상태 정보를 전송할 수 있다(S510).Referring to FIG. 5, the process of performing load balancing will be described. In operation S510, each edge switch periodically transmits status information to the
컨트롤러(200)는 각 엣지 스위치 및 플로우의 상태 정보 수집 및 네트워크상에서의 모든 링크 상태 정보를 점검할 수 있다(S520).The
각 엣지 스위치 쌍(310)에 해당하는 링크 사용률(340)이 임계 사용률(임계값) 보다 높을 경우에는 S520단계를 반복하고, 각 엣지 스위치 쌍(310)에 해당하는 링크 사용률(340)이 임계 사용률(임계값) 보다 낮을 경우에는 S540 단계를 수행할 수 있다(S530).If the
컨트롤러(200)는 해당하는 엣지 스위치 쌍(310)에 사용되는 플로우를 파악하고, 경로(320)를 변경할 플로우를 선정할 수 있다(S540). The
여기서, 선정된 플로우(선정 대상)는 최근 특정 기간 내에 전송한 패킷이 있으며, 로드 밸런싱 대상이 되지 않은 플로우 중에서 전송한 패킷 바이트 수가 최대인 플로우 일 수 있다.Here, the selected flow (to be selected) may be a flow in which there is a packet that has been transmitted recently within a specific period, and the number of bytes of the packet transmitted in the flow not subjected to load balancing is the maximum.
각 엣지 스위치 쌍(310)에 해당하는 링크 사용률(340)이 임계 사용률(임계값) 보다 높을 경우에는 S520 단계를 반복하고, 각 엣지 스위치 쌍(310)에 해당하는 링크 사용률(340)이 임계 사용률(임계값) 보다 낮을 경우에는 S540 단계를 수행할 수 있다(S550).If the
예시적으로, 엣지 스위치 쌍(A, D)의 경로(320) A-B-C-D의 링크 사용률(340) 0.3이 미리 설정된 임계 사용률(임계값) 이상일 경우, 제 1 엣지 스위치(230)는 경로(320) A-B-C-D에 대응하는 식별 정보(330) g2에 할당된 플로우 일부를 식별 정보(330) g1 및 g3으로 우회하게 할 수 있다. 이후에도 링크 사용률(340)이 임계 사용률(임계값) 이상인 경우에는 컨트롤러(200)에 경로(320) A-B-C-D의 상태 변화를 알리고, 컨트롤러(200)는 제 1 및 제 2 엣지 스위치 쌍 (A, D)에 이용되는 경로(320)를 파악하여, 해당 경로의 가장 오래된 플로우부터 변경할 수 있다. 이때, 경로가 최근에 로드 밸런싱을 수행한 경우, 컨트롤러(200)는 다음 순위의 플로우를 대상으로 변경 할 수 있다. 경로 변경이 끝나면, 로드 밸런싱 대상 경로 및 대체 경로의 로드 밸런싱 수행 시간이 업데이트 될 수 있다. 이러한 과정은 링크 사용률(340)이 미리 설정된 임계 사용률(임계값) 이하로 떨어질 때까지 반복 될 수 있다.Illustratively, when the
소프트웨어 정의 네트워크 환경에서 컨트롤러의 플로우에 대한 경로 제어방법은 컨트롤러(20)를 포함할 수 있다. 또한, 컨트롤러(20)는 메모리 및 프로세서로 구성될 수 있다.In the software defined network environment, the path control method for the flow of the controller may include the
메모리는 네트워크 상에서 플로우의 경로를 제어하는 프로그램을 저장할 수 있다. 또한, 메모리는 추가적으로 생성되거나 송수신된 정보를 저장할 수 있다.The memory may store a program that controls the path of the flow on the network. In addition, the memory may store additional generated or transmitted and received information.
프로세서는 프로그램을 수행할 수 있다. 우선, 프로세서는 프로그램의 실행에 따라, 네트워크 상에서 가장자리에 배치된 임의의 엣지 스위치에서 타 엣지 스위치로의 적어도 하나의 경로를 저장하되, 네트워크의 토폴로지를 기초로 미리 설정된 각 엣지 스위치 쌍의 경로를 구분하기 위한 식별 정보를 경로마다 할당하여 저장할 수 있다.The processor may execute the program. At first, the processor stores at least one path from any edge switch to the other edge switch disposed at the edge on the network according to the execution of the program, and determines the path of each preset edge switch pair based on the topology of the network The identification information for each path can be allocated and stored.
이어서, 프로세서는 제 1 호스트에서 제 2 호스트로의 플로우가 생성된 경우 제 1 호스트와 인접하는 제 1 엣지 스위치로부터 플로우의 정보를 수신하여 제 1 엣지 스위치와, 제 2 호스트와 인접하는 제 2 엣지 스위치를 결정할 수 있다.Then, when a flow from the first host to the second host is generated, the processor receives the information of the flow from the first edge switch adjacent to the first host and generates a first edge switch and a second edge adjacent to the second host, The switch can be determined.
이어서, 프로세서는 저장된 경로 중 제 1 엣지 스위치와 제 2 엣지 스위치 간의 경로를 검색하여 검색된 경로 중 어느 하나의 경로를 선택할 수 있다. Then, the processor can select one of the paths retrieved by searching the path between the first edge switch and the second edge switch of the stored path.
다음으로, 프로세서는 플로우가 선택된 경로를 통해 처리되도록 제 1 엣지 스위치로 선택된 경로에 대한 정보를 송신할 수 있다.Next, the processor may send information about the selected path to the first edge switch so that the flow is processed through the selected path.
이러한, 소프트웨어 정의 네트워크 환경에서 컨트롤러의 플로우에 대한 경로 제어방법은 사전에 결정된 경로를 이용하여 새로운 플로우 처리 방식을 지정하는 경우에 발생하는 오버헤드 및 통신 지연을 감소시킬 수 있다. 또한, 이러한 오버헤드 및 통신 지연이 감소함에 따라 플로우의 처리 속도를 향상시킬 수 있다.In this software-defined network environment, the path control method for the flow of the controller can reduce the overhead and communication delay that occur when a new flow processing method is specified using a predetermined path. In addition, as the overhead and communication delay are reduced, the processing speed of the flow can be improved.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.It will be understood by those skilled in the art that the foregoing description of the present invention is for illustrative purposes only and that those of ordinary skill in the art can readily understand that various changes and modifications may be made without departing from the spirit or essential characteristics of the present invention. will be. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is defined by the appended claims rather than the detailed description and all changes or modifications derived from the meaning and scope of the claims and their equivalents are to be construed as being included within the scope of the present invention do.
20: 토폴로지 200: 컨트롤러
210: 제 1 호스트 220: 제 2 호스트
230: 제 1 엣지 스위치 240: 제 2 엣지 스위치
310: 스위치 쌍 320: 경로
330, 430: 식별 정보 340: 링크 사용률
410: 플로우 헤더 420: 액션20: Topology 200: Controller
210: first host 220: second host
230: first edge switch 240: second edge switch
310: switch pair 320: path
330, 430: identification information 340: link utilization rate
410: Flow Header 420: Action
Claims (6)
상기 네트워크 상에서 가장자리에 배치된 임의의 엣지 스위치에서 타 엣지 스위치로의 적어도 하나의 경로를 저장하되, 상기 네트워크의 토폴로지를 기초로 미리 설정된 각 엣지 스위치 쌍의 경로를 구분하기 위한 식별 정보를 상기 경로마다 할당하여 저장하는 단계;
제 1 호스트에서 제 2 호스트로의 플로우가 생성된 경우 상기 제 1 호스트와 인접하는 제 1 엣지 스위치로부터 상기 플로우의 정보를 수신하여 상기 제 1 엣지 스위치와, 상기 제 2 호스트와 인접하는 제 2 엣지 스위치를 결정하는 단계;
상기 저장된 경로 중 상기 제 1 엣지 스위치와 상기 제 2 엣지 스위치 간의 경로를 검색하여 상기 검색된 경로 중 최소 링크 사용률을 나타내는 경로를 선택하는 단계; 및
상기 플로우가 상기 선택된 경로를 통해 처리되도록 상기 제 1 엣지 스위치로 상기 선택된 경로에 대한 정보를 송신하는 단계를 포함하되,
기 선택하는 단계는 상기 검색된 경로에 해당하는 각각의 링크 사용률이 미리 설정된 임계 사용률 보다 높을 경우, 로드 밸런싱을 수행하여 선택하되, 상기 경로 선택이 끝나면, 상기 로드 밸런싱 대상 경로 및 대체 경로의 로드 밸런싱 수행 시간이 업데이트 되는 것을 특징으로 하는 컨트롤러의 플로우에 대한 경로 제어방법.CLAIMS 1. A path control method for a flow of a controller in a software defined network environment,
Wherein at least one path from one edge switch to another edge switch disposed on an edge of the network is stored, and identification information for identifying a path of each edge switch pair set in advance on the basis of the topology of the network is stored for each path Allocating and storing the data;
When a flow from a first host to a second host is generated, receiving information of the flow from a first edge switch adjacent to the first host and transmitting the flow information from the first edge switch to a second edge adjacent to the second host Determining a switch;
Selecting a route indicating the minimum link utilization rate among the searched routes by searching a route between the first edge switch and the second edge switch among the stored routes; And
And transmitting information about the selected path to the first edge switch such that the flow is processed through the selected path,
Wherein the step of selecting includes performing load balancing and selecting a load balancing target path and an alternative path load balancing when the path selection is completed when each of the link utilization ratios corresponding to the searched path is higher than a preset threshold utilization ratio, Wherein the time is updated.
상기 각 엣지 스위치 쌍에 대한 경로에 해당하는 각각의 링크 사용률은 상기 엣지 스위치 쌍 중 적어도 어느 하나에 의해 주기적으로 또는 랜덤하게 보고되는 것을 특징으로 하는 컨트롤러의 플로우에 대한 경로 제어방법.The method according to claim 1,
Wherein each link utilization rate corresponding to the path for each edge switch pair is periodically or randomly reported by at least one of the pair of edge switches.
상기 각 엣지 스위치 쌍에 대한 경로에 해당하는 각각의 링크 사용률을 수신하는 단계를 더 포함하는 것을 특징으로 하는 컨트롤러의 플로우에 대한 경로 제어방법.The method according to claim 1,
Further comprising receiving each link utilization rate corresponding to a path for each of the edge switch pairs.
상기 플로우의 정보는 상기 플로우의 헤더 정보를 포함하는 것을 특징으로 하는 컨트롤러의 플로우에 대한 경로 제어방법.The method according to claim 1,
Wherein the information of the flow includes header information of the flow.
상기 네트워크 상에서 플로우의 경로를 제어하는 프로그램을 저장하는 메모리; 및
상기 프로그램을 수행하는 프로세서를 포함하되,
상기 프로세서는 상기 프로그램의 실행에 따라,
상기 네트워크 상에서 가장자리에 배치된 임의의 엣지 스위치에서 타 엣지 스위치로의 적어도 하나의 경로를 저장하되, 상기 네트워크의 토폴로지를 기초로 미리 설정된 각 엣지 스위치 쌍의 경로를 구분하기 위한 식별 정보를 상기 경로마다 할당하여 저장하는 단계;
제 1 호스트에서 제 2 호스트로의 플로우가 생성된 경우 상기 제 1 호스트와 인접하는 제 1 엣지 스위치로부터 상기 플로우의 정보를 수신하여 상기 제 1 엣지 스위치와, 상기 제 2 호스트와 인접하는 제 2 엣지 스위치를 결정하는 단계;
상기 저장된 경로 중 상기 제 1 엣지 스위치와 상기 제 2 엣지 스위치 간의 경로를 검색하여 상기 검색된 경로 중 최소 링크 사용률을 나타내는 경로를 선택하는 단계; 및
상기 플로우가 상기 선택된 경로를 통해 처리되도록 상기 제 1 엣지 스위치로 상기 선택된 경로에 대한 정보를 송신하는 단계를 수행하되, 상기 선택하는 단계는 상기 검색된 경로에 해당하는 각각의 링크 사용률이 미리 설정된 임계 사용률 보다 높을 경우, 로드 밸런싱을 수행하여 선택하되, 상기 경로 선택이 끝나면, 상기 로드 밸런싱 대상 경로 및 대체 경로의 로드 밸런싱 수행 시간이 업데이트 되는 것을 특징으로 하는 컨트롤러.A controller in a software defined network environment,
A memory for storing a program for controlling a path of a flow on the network; And
And a processor for performing the program,
The processor, upon execution of the program,
Wherein at least one path from one edge switch to another edge switch disposed on an edge of the network is stored, and identification information for identifying a path of each edge switch pair set in advance on the basis of the topology of the network is stored for each path Allocating and storing the data;
When a flow from a first host to a second host is generated, receiving information of the flow from a first edge switch adjacent to the first host and transmitting the flow information from the first edge switch to a second edge adjacent to the second host Determining a switch;
Selecting a route indicating the minimum link utilization rate among the searched routes by searching a route between the first edge switch and the second edge switch among the stored routes; And
And transmitting the information about the selected path to the first edge switch so that the flow is processed through the selected path, wherein the step of selecting includes the step of determining whether each link utilization rate corresponding to the retrieved path satisfies a predetermined threshold utilization ratio The load balancing execution time of the load balancing target path and the alternative path is updated when the path selection is completed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150025592A KR101541168B1 (en) | 2015-02-24 | 2015-02-24 | Route control method for flow of controller in software defined network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150025592A KR101541168B1 (en) | 2015-02-24 | 2015-02-24 | Route control method for flow of controller in software defined network |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101541168B1 true KR101541168B1 (en) | 2015-08-03 |
Family
ID=53873150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150025592A KR101541168B1 (en) | 2015-02-24 | 2015-02-24 | Route control method for flow of controller in software defined network |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101541168B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101681516B1 (en) * | 2016-05-31 | 2016-12-01 | 아토리서치(주) | Method, apparatus and computer program for operating dual-ring in software defined networking environment |
CN113630330A (en) * | 2021-08-09 | 2021-11-09 | 北京邮电大学 | Multi-controller load balancing method and system for software defined network |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005086803A (en) * | 2003-09-08 | 2005-03-31 | Fujitsu Ltd | Resource load measurement method, network control apparatus, communication node and storage medium |
-
2015
- 2015-02-24 KR KR1020150025592A patent/KR101541168B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005086803A (en) * | 2003-09-08 | 2005-03-31 | Fujitsu Ltd | Resource load measurement method, network control apparatus, communication node and storage medium |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101681516B1 (en) * | 2016-05-31 | 2016-12-01 | 아토리서치(주) | Method, apparatus and computer program for operating dual-ring in software defined networking environment |
CN113630330A (en) * | 2021-08-09 | 2021-11-09 | 北京邮电大学 | Multi-controller load balancing method and system for software defined network |
CN113630330B (en) * | 2021-08-09 | 2023-07-28 | 北京邮电大学 | Multi-controller load balancing method and system for software defined network |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7417825B2 (en) | slice-based routing | |
CN109787921B (en) | CDN bandwidth scheduling method, acquisition and scheduling server and storage medium | |
EP3641244B1 (en) | Method and apparatus for selecting path | |
CA2963580C (en) | Data forwarding method, device, and system in software-defined networking | |
US8537846B2 (en) | Dynamic priority queue level assignment for a network flow | |
KR101494561B1 (en) | Technique for managing traffic at a router | |
US9246814B2 (en) | Communication system, control apparatus, communication node, and communication method | |
CN106209623B (en) | Method and control device for determining forwarding path | |
CN109818881B (en) | CDN bandwidth scheduling method, acquisition and scheduling server and storage medium | |
Wang et al. | Implementation of multipath network virtualization with SDN and NFV | |
JP7288980B2 (en) | Quality of Service in Virtual Service Networks | |
US11146477B2 (en) | Discovery and admission control of forwarding boxes in a software-defined network | |
US20140098674A1 (en) | Communication system, control device, and processing rule setting method and program | |
JP4771988B2 (en) | Load balancing device and network device | |
EP2905929B1 (en) | Communication system, control apparatus, control method, and program | |
JP6569374B2 (en) | Switch device and control method of switch device | |
US11863322B2 (en) | Communication method and apparatus | |
US20150295654A1 (en) | System architecture for global optimization of flexible grid optical network and global optimization method therefor | |
US10917354B2 (en) | System and method for reactive path selection | |
JP4589847B2 (en) | Network resource control method for dynamic control and network resource control apparatus for dynamic control | |
EP2220568B1 (en) | Methods and systems for providing efficient provisioning of data flows | |
KR101541168B1 (en) | Route control method for flow of controller in software defined network | |
Nepolo et al. | A predictive ECMP routing protocol for fat-tree enabled data centre networks | |
JP5212503B2 (en) | COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND COMMUNICATION CONTROL PROGRAM | |
Nithin et al. | Efficient load balancing for multicast traffic in data center networks using SDN |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20180820 Year of fee payment: 4 |