KR20210016802A - Method for optimizing flow table for network service based on server-client in software defined networking environment and sdn switch thereofor - Google Patents

Method for optimizing flow table for network service based on server-client in software defined networking environment and sdn switch thereofor Download PDF

Info

Publication number
KR20210016802A
KR20210016802A KR1020190095031A KR20190095031A KR20210016802A KR 20210016802 A KR20210016802 A KR 20210016802A KR 1020190095031 A KR1020190095031 A KR 1020190095031A KR 20190095031 A KR20190095031 A KR 20190095031A KR 20210016802 A KR20210016802 A KR 20210016802A
Authority
KR
South Korea
Prior art keywords
flow
policy
flow policy
sdn
sdn switch
Prior art date
Application number
KR1020190095031A
Other languages
Korean (ko)
Inventor
강효성
Original Assignee
주식회사 케이티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 케이티 filed Critical 주식회사 케이티
Priority to KR1020190095031A priority Critical patent/KR20210016802A/en
Publication of KR20210016802A publication Critical patent/KR20210016802A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/036Updating the topology between route computation elements, e.g. between OpenFlow controllers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • H04L41/0826Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for reduction of network costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/252Store and forward routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Disclosed are a method for optimizing a flow policy for performing a duplicating operation generated in a flow table of a software defined networking (SDN) switch connected to a destination communication terminal as one policy when a plurality of communication terminals connected to the same SDN switch communicate with a common destination terminal connected to another SDN switch, and an SDN switch therefor. According to an embodiment of the present invention, the method for optimizing a flow table in an SDN switch, comprises the steps of: requesting an SDN controller for a flow policy, and receiving the flow policy from the SDN controller in response thereto; identifying the flow policy for performing the same operation as the received flow policy in a flow table; and maintaining a value of a matching field item matching among matching field items of the identified flow policy and the received flow policy, replacing a value of a matching field item which does not match, with a null value to redefine the same as a single flow policy, and registering the same in the flow table.

Description

소프트웨어 정의 네트워킹 환경에서 서버-클라이언트 기반의 네트워크 서비스를 위한 플로우 테이블을 최적화하는 방법 및 이를 위한 SDN 스위치{METHOD FOR OPTIMIZING FLOW TABLE FOR NETWORK SERVICE BASED ON SERVER-CLIENT IN SOFTWARE DEFINED NETWORKING ENVIRONMENT AND SDN SWITCH THEREOFOR}How to optimize flow table for server-client based network service in software-defined networking environment, and SDN switch for it {METHOD FOR OPTIMIZING FLOW TABLE FOR NETWORK SERVICE BASED ON SERVER-CLIENT IN SOFTWARE DEFINED NETWORKING ENVIRONMENT AND SDN SWITCH THEREOFOR}

본 발명은 소프트웨어 정의 네트워킹(SDN : Software Defined Networking) 기술에 관한 것으로서, 보다 구체적으로 SDN 환경에서 SDN 스위치의 플로우 테이블을 최적화하는 방법 및 이를 위한 SDN 스위치에 관한 것이다.The present invention relates to a software defined networking (SDN) technology, and more specifically, to a method for optimizing a flow table of an SDN switch in an SDN environment and an SDN switch for the same.

소프트웨어 정의 네트워킹(SDN : Software Defined Networking)은 종래의 네트워크 장비를 구성하는 제어 평면(Control Plane)과 데이터 평면(Data Plane)을 서로 분리하여 제어 평면(Control Plane)이 네트워크에 대한 관리, 모니터링, 제어에 관련 전반적인 처리를 담당하는 중앙 집중식 구조의 네트워킹을 말한다. 이때 제어 평면을 'SDN 제어기'라고 칭하며, SND 제어기는 OpenFlow, NetConf와 같이 표준화된 제어 평면 인터페이스를 통해 데이터 평면에 해당하는 네트워크 장비들을 제어할 수 있다. 또한 SDN 제어기는 연결된 네트워크 장비로부터 일괄 취합된 추상화된 네트워크 자원 정보를 사용자에게 제공하며, 이런 추상화된 네트워크 자원 정보를 기반으로 기존의 네트워크보다 성능 최적화된 유연한 네트워크 운용을 가능케 한다. 예를 들어, 대량의 패킷이 SDN 스위치로 유입될 때 SDN 제어기는 이를 감지하고 로드 밸런싱(Load balancing)을 수행하거나, 악성코드가 포함된 패킷이 SDN 스위치를 통해 내부에 유입되는 경우에도 이를 분석하고 사전 차단이 가능하다. 또한, 네트워크 장비들의 연결 정보 자원을 활용해 토폴로지 맵(Topology Map)을 작성하여 네트워크 관리자에게 빠른 장애 탐지, 효율적인 자원 관리 및 정책 적용 등, 네트워크 전체에 대한 높은 가시성을 제공한다. SDN 제어기의 경우 다양한 벤더 솔루션, 오픈소스가 존재하며, 대부분의 SDN 제어기는 ONF(Open Networking Foundation)에서 정의한 OpenFlow 프로토콜 기반으로 네트워크 장비와 통신을 수행한다. Software Defined Networking (SDN) separates the control plane and data plane constituting the conventional network equipment, and the control plane manages, monitors, and controls the network. Networking in a centralized structure that is responsible for the overall processing related to At this time, the control plane is called'SDN controller', and the SND controller can control network equipment corresponding to the data plane through standardized control plane interfaces such as OpenFlow and NetConf. In addition, the SDN controller provides the user with the abstracted network resource information collectively collected from the connected network equipment, and based on this abstracted network resource information, it enables flexible network operation that is more optimized for performance than the existing network. For example, when a large number of packets flow into the SDN switch, the SDN controller detects it and performs load balancing, or analyzes it even if a packet containing malicious code flows into the SDN switch. Pre-blocking is possible. In addition, by creating a topology map using the connection information resources of network equipment, it provides network administrators with high visibility of the entire network, such as fast fault detection, efficient resource management and policy application. In the case of SDN controllers, various vendor solutions and open sources exist, and most SDN controllers communicate with network equipment based on the OpenFlow protocol defined by ONF (Open Networking Foundation).

OpenFlow 표준에서 SDN 제어기는 SDN 스위치와 별도의 제어 채널을 성립하고, SDN 스위치로 유입되는 데이터 패킷 처리를 위한 플로우(Flow) 정책들을 SDN 스위치의 플로우 테이블(Flow Table)에 등록시켜 SDN 스위치의 트래픽을 제어한다. 이때 SDN 제어기의 동작 모드에 따라 두 가지 방식으로 플로우 테이블(Flow Table)에 플로우 정책들을 정의한다. 하나는 Re-Active 방식이고, 다른 하나는 Pro-Active 방식이다. 두 방식은 패킷의 이동 경로를 결정하는 주체가 다르다. Re-Active 방식은 SDN 스위치로부터 특정 패킷 경로에 대한 문의가 오면 SDN 제어기가 토폴로지 맵을 바탕으로 직접 최적 경로를 계산한 뒤, 해당 경로 상에 존재하는 SDN 스위치의 플로우 테이블에 플로우 정책을 등록한다. Pro-Active 방식은 네트워크 관리자 혹은 외부 어플리케이션을 통해 SDN 스위치로 유입되는 패킷에 대한 플로우 정책을 미리 SDN 제어기를 통해 SDN 스위치의 플로우 테이블에 등록한다.In the OpenFlow standard, the SDN controller establishes a separate control channel with the SDN switch and registers the flow policies for processing data packets flowing into the SDN switch in the flow table of the SDN switch to register the traffic of the SDN switch. Control. At this time, flow policies are defined in the flow table in two ways according to the operation mode of the SDN controller. One is Re-Active method and the other is Pro-Active method. The two methods differ in the subject that determines the path of the packet. In the Re-Active method, when an inquiry about a specific packet path comes from the SDN switch, the SDN controller directly calculates the optimal path based on the topology map, and then registers the flow policy in the flow table of the SDN switch existing on the path. In the Pro-Active method, the flow policy for packets flowing into the SDN switch through the network manager or an external application is registered in the flow table of the SDN switch through the SDN controller in advance.

위 두 가지 방식 중 Re-Active 방식으로 SDN 스위치에 플로우 정책을 등록할 때, 어느 한 SDN 스위치에 연결된 N개(N≥2)의 출발지 통신 단말이 다른 SDN 스위치에 연결된 하나의 목적지 통신 단말과 통신을 하는 경우, 목적지 통신 단말과 연결된 SDN 스위치에는 중복된 동작을 수행하는 플로우 정책이 등록된다. 여기서 플로우 정책의 중복이란 동일한 플로우 정책이 중복으로 등록되는 것이 아닌 동일한 동작을 수행하는 플로우 정책이 중복으로 등록되는 것을 의미한다. 도 1 및 도 2를 참조하여 설명하면 다음과 같다.When registering a flow policy on an SDN switch through the Re-Active method among the above two methods, N (N≥2) source communication terminals connected to one SDN switch communicate with one destination communication terminal connected to another SDN switch. In the case of, a flow policy for performing a redundant operation is registered in the SDN switch connected to the destination communication terminal. Here, the overlapping of the flow policy means that the same flow policy is not registered as a duplicate, but that a flow policy that performs the same operation is registered as a duplicate. It will be described with reference to FIGS. 1 and 2 as follows.

도 1은 SDN 기반 네트워크 환경을 나타낸 도면이고, 도 2는 도 1의 제 2 SDN 스위치에 등록되는 플로우 정책을 나타낸 도면이다. 도 1을 참조하면, SDN 제어기(110)에 두 개의 SDN 스위치(120, 130)가 제어 채널을 성립하여 연결되어 있고, 제 1 SDN 스위치(120)에는 두 개의 통신 단말(121, 122)이 연결되어 있으며, 제 2 SDN 스위치(130)에는 하나의 통신 단말(131)이 연결되어 있다. 상기 두 개의 통신 단말(121, 122)이 상기 하나의 통신 단말(131), 즉 목적지 통신 단말(131)과 통신을 하는 경우, 제 2 SDN 스위치(130)의 플로우 테이블에는 도 2에 도시된 바와 같은 플로우 정책이 등록된다.FIG. 1 is a diagram illustrating an SDN-based network environment, and FIG. 2 is a diagram illustrating a flow policy registered in a second SDN switch of FIG. 1. Referring to FIG. 1, two SDN switches 120 and 130 are connected to the SDN controller 110 by establishing a control channel, and two communication terminals 121 and 122 are connected to the first SDN switch 120. And one communication terminal 131 is connected to the second SDN switch 130. When the two communication terminals 121 and 122 communicate with the one communication terminal 131, that is, the destination communication terminal 131, the flow table of the second SDN switch 130 is shown in FIG. The same flow policy is registered.

도 2를 참조하면, 플로우 ID bb01과 플로우 ID bb03은 제 2 SDN 스위치(130)의 1번 포트로 들어온 패킷을 2번 포트로 보내는 동작을 수행하는 플로우 정책으로, 그 두 개의 플로우 정책은 출발지 MAC 주소와 출발지 IP 주소만 다를 뿐, 제 2 SDN 스위치(130)가 수행하는 동작은 동일하다. 플로우 ID bb02와 플로우 ID bbo4는 제 2 SDN 스위치(130)의 2번 포트로 들어온 패킷을 1번 포트로 보내는 동작을 수행하는 플로우 정책으로, 그 두 개의 플로우 정책은 목적지 MAC 주소와 목적지 IP 주소만 다를 뿐, 제 2 SDN 스위치(130)가 수행하는 동작은 동일하다. SDN 제어기(110) 입장에서는 동작은 동일하게 수행하더라도 일부 매칭 조건(Match)이 다르기 때문에 다른 플로우 정책으로 인식하고 고유 플로우 ID를 할당하여 플로우 정책을 관리한다. 그런데, 동일 SDN 스위치에 연결되어 공통의 목적지 통신 단말과 통신을 하고자 하는 통신 단말의 수가 많으면 많을수록, 그리고 목적지 통신 단말에 연결되는 SDN 스위치의 수가 많으면 많을수록, 이에 비례하여 목적지 통신 단말에 연결된 SDN 스위치의 플로우 테이블에는 중복되는 동작을 수행하는 플로우 정책들이 많이 증가할 수밖에 없다. 이와 같이 플로우 정책들이 증가할수록 SDN 스위치의 패킷 처리에도 시간이 많이 소요될 뿐만 아니라 스위치 자체 성능 저하의 원인이 된다. 특히 온라인 게임, 채팅, 클라우드, 음악/영상 스트리밍 서비스와 같은 많은 수의 클라이언트가 외부망을 통해 동일 서버에 접속하게 되는 서버-클라이언트 형태의 네트워크 서비스에서 이 문제점이 주로 발생할 수 있다. Referring to FIG. 2, flow ID bb01 and flow ID bb03 are flow policies that perform an operation of sending a packet from port 1 of the second SDN switch 130 to port 2, and the two flow policies are source MAC Only the address and the source IP address are different, and the operation performed by the second SDN switch 130 is the same. Flow ID bb02 and flow ID bbo4 are flow policies that perform an operation of sending a packet from port 2 of the second SDN switch 130 to port 1, and the two flow policies are only the destination MAC address and the destination IP address. Only different, the operation performed by the second SDN switch 130 is the same. From the perspective of the SDN controller 110, even though the operation is performed identically, some matching conditions are different, so it is recognized as a different flow policy and a unique flow ID is assigned to manage the flow policy. However, the greater the number of communication terminals connected to the same SDN switch to communicate with the common destination communication terminal, and the greater the number of SDN switches connected to the destination communication terminal, the proportionally the SDN switch connected to the destination communication terminal. In the flow table, flow policies that perform redundant operations are bound to increase. As the flow policies increase in this way, it takes a lot of time to process packets of the SDN switch, and it causes the performance of the switch itself to deteriorate. In particular, this problem may mainly occur in a server-client type network service in which a large number of clients such as online games, chat, cloud, and music/video streaming services connect to the same server through an external network.

본 발명은 상기와 같은 문제점을 해결하기 위해 제안된 것으로서, 동일한 SDN 스위치에 연결된 복수의 통신 단말이 다른 SDN 스위치에 연결된 공통의 목적지 단말로 통신할 때, 목적지 통신 단말과 연결된 SDN 스위치의 플로우 테이블에 생성되는 중복된 동작을 수행하는 플로우 정책을 하나의 정책으로 최적화하는 방법 및 이를 위한 SDN 스위치를 제공하는데 그 목적이 있다. The present invention has been proposed to solve the above problems, and when a plurality of communication terminals connected to the same SDN switch communicate to a common destination terminal connected to another SDN switch, the flow table of the SDN switch connected to the destination communication terminal An object of the present invention is to provide a method for optimizing a generated flow policy that performs a duplicated operation into one policy and an SDN switch for the same.

일 실시예에 따른 SDN(Software Defined Networking) 스위치에서 플로우 테이블을 최적화하는 방법은, SDN 제어기로 플로우 정책을 요청하고 이에 대한 응답으로 상기 SDN 제어기로부터 플로우 정책을 수신하는 단계; 상기 플로우 테이블에서 상기 수신된 플로우 정책과 동일한 동작을 수행하는 플로우 정책을 식별하는 단계; 및 상기 식별된 플로우 정책과 상기 수신된 플로우 정책의 매칭 필드 항목들 중 상호 일치하는 매칭 필드 항목의 값은 유지하고 일치하지 않은 매칭 필드 항목의 값은 널 값으로 대체하여 하나의 플로우 정책으로 재정의하여 상기 플로우 테이블에 등록하는 단계;를 포함한다.A method for optimizing a flow table in a Software Defined Networking (SDN) switch according to an embodiment includes: requesting a flow policy from an SDN controller and receiving a flow policy from the SDN controller in response thereto; Identifying a flow policy that performs the same operation as the received flow policy in the flow table; And a value of a matching field item that matches each other among the matching field items of the identified flow policy and the received flow policy is maintained, and the value of the matching field item that does not match is replaced with a null value to redefine one flow policy. And registering in the flow table.

상기 식별하는 단계는, 상기 플로우 테이블에서 상기 수신된 플로우 정책에 정의된 입/출력 포트 번호와 동일한 입/출력 포트 번호를 갖는 플로우 정책을 상기 동일한 동작을 수행하는 플로우 정책으로 식별할 수 있다.In the identifying step, a flow policy having the same input/output port number as the input/output port number defined in the received flow policy in the flow table may be identified as a flow policy that performs the same operation.

상기 등록하는 단계는, 상기 수신된 플로우 정책과 상기 식별된 플로우 정책을 포함하는 가상 플로우 테이블을 생성하는 단계; 상기 가상 플로우 테이블에서 상기 수신된 플로우 정책과 상기 식별된 플로우 정책을 하나의 플로우 정책으로 재정의하는 단계; 상기 플로우 테이블에서 상기 식별된 플로우 정책을 삭제하고 상기 재정의한 하나의 플로우 정책을 등록하는 단계; 및 상기 가상 플로우 테이블을 삭제하는 단계를 포함할 수 있다.The registering may include creating a virtual flow table including the received flow policy and the identified flow policy; Redefining the received flow policy and the identified flow policy as one flow policy in the virtual flow table; Deleting the identified flow policy from the flow table and registering the redefined one flow policy; And deleting the virtual flow table.

상기 재정의하는 단계는, 상기 수신된 플로우 정책 및 상기 식별된 플로우 정책의 매칭 필드 항목들 중 일치하는 매칭 필드 항목의 값은 유지하고 일치하지 않는 매칭 필드 항목의 값은 널 값으로 대체하여 하나의 플로우 정책을 생성할 수 있다. The redefining may include maintaining a value of a matching field item among matching field items of the received flow policy and the identified flow policy, and replacing a value of a matching field item that does not match with a null value, You can create policies.

일 실시예에 따른 플로우 테이블을 최적화하는 SDN(Software Defined Networking) 스위치는, 프로세서; 및 상기 프로세서에 의해 실행 가능한 명령어 및 상기 플로우 테이블을 저장하는 메모리;를 포함하고, 상기 프로세서는, SDN 제어기로 플로우 정책을 요청하고 이에 대한 응답으로 상기 SDN 제어기로부터 플로우 정책을 수신하고; 상기 플로우 테이블에서 상기 수신된 플로우 정책과 동일한 동작을 수행하는 플로우 정책을 식별하며; 상기 식별된 플로우 정책과 상기 수신된 플로우 정책의 매칭 필드 항목들 중 상호 일치하는 매칭 필드 항목의 값은 유지하고 일치하지 않은 매칭 필드 항목의 값은 널 값으로 대체하여 하나의 플로우 정책으로 재정의하여 상기 플로우 테이블에 등록할 수 있다.A Software Defined Networking (SDN) switch for optimizing a flow table according to an embodiment includes: a processor; And a memory for storing instructions executable by the processor and the flow table, wherein the processor requests a flow policy from the SDN controller and receives a flow policy from the SDN controller in response thereto; Identifying a flow policy that performs the same operation as the received flow policy in the flow table; Among the matching field items of the identified flow policy and the received flow policy, the value of the matching field item that matches each other is maintained, and the value of the matching field item that does not match is replaced with a null value to redefine it to one flow policy. It can be registered in the flow table.

상기 프로세서는, 상기 플로우 테이블에서 상기 수신된 플로우 정책에 정의된 입/출력 포트 번호와 동일한 입/출력 포트 번호를 갖는 플로우 정책을 상기 동일한 동작을 수행하는 플로우 정책으로 식별할 수 있다.The processor may identify a flow policy having the same input/output port number as the input/output port number defined in the received flow policy in the flow table as a flow policy that performs the same operation.

상기 프로세서는, 상기 수신된 플로우 정책과 상기 식별된 플로우 정책을 포함하는 가상 플로우 테이블을 생성하고, 상기 가상 플로우 테이블에서 상기 수신된 플로우 정책과 상기 식별된 플로우 정책을 하나의 플로우 정책으로 재정의하며, 상기 플로우 테이블에서 상기 식별된 플로우 정책을 삭제하고 상기 재정의한 하나의 플로우 정책을 등록하고, 상기 가상 플로우 테이블을 삭제할 수 있다.The processor generates a virtual flow table including the received flow policy and the identified flow policy, redefines the received flow policy and the identified flow policy as one flow policy in the virtual flow table, The identified flow policy may be deleted from the flow table, the redefined one flow policy may be registered, and the virtual flow table may be deleted.

상기 프로세서는, 상기 가상 플로우 테이블에서 상기 수신된 플로우 정책 및 상기 식별된 플로우 정책의 매칭 필드 항목들 중 일치하는 매칭 필드 항목의 값은 유지하고 일치하지 않는 매칭 필드 항목의 값은 널 값으로 대체하여 하나의 플로우 정책을 생성할 수 있다.The processor maintains a value of a matching field item among matching field items of the received flow policy and the identified flow policy in the virtual flow table, and replaces a value of a non-matching field item with a null value. One flow policy can be created.

일 측면에 따르면, SDN 기반 기술이 적용된, 예를 들어, 온라인게임, 채팅, 클라우드, 음악 및 동영상 스트리밍 서비스를 제공하는 서버-클라이언트 환경에서 효율적인 플로우 테이블 최적화 방법을 통해 네트워크 서비스에 대한 높은 QoS 품질 확보가 가능하다.According to one aspect, secure high QoS quality for network services through an efficient flow table optimization method in a server-client environment where SDN-based technology is applied, for example, providing online games, chat, cloud, music and video streaming services. Is possible.

일 실시예에 따르면 플로우 테이블의 최적화를 위한 별도의 장치는 필요하지 않고 가상 플로우 테이블을 활용하기 위한 일부 메모리 영역만 동적으로 할당하여 이용하기 때문에 초기 구축 및 관련 유지 비용의 소모가 적다.According to an embodiment, since a separate device for optimizing a flow table is not required, and only some memory areas for utilizing a virtual flow table are dynamically allocated and used, initial construction and related maintenance costs are less consumed.

하드웨어 칩셋 및 메모리 장치에 종속성을 가지는 SDN 스위치 특성상 플로우 테이블의 최대 사이즈를 초과하는 대규모 네트워크 환경에서 더 많은 SDN 스위치 장비가 필요하지만, 본 발명에 따르면, 플로우 테이블을 최적화함으로써 네트워크당 수용 가능한 장비 수가 작아지게 된다. 따라서 초기 네트워크 구축 비용의 감소로도 이어진다. Due to the nature of SDN switches that have dependencies on hardware chipsets and memory devices, more SDN switch equipment is required in a large-scale network environment that exceeds the maximum size of the flow table. You lose. Therefore, it leads to a reduction in the initial network construction cost.

도 1은 SDN 기반 네트워크 환경을 나타낸 도면이다.
도 2는 도 1의 제 2 SDN 스위치에 등록되는 플로우 정책을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 SDN 기반 네트워크 환경을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 두 개의 SDN 스위치와 세 개의 통신 단말의 연결 상태를 나타낸 도면이다.
도 5는 도 4의 제 1 SDN 스위치의 플로우 테이블에 등록되는 플로우 정책을 나타낸 예이다.
도 6은 도 4의 제 2 SDN 스위치의 플로우 테이블에 등록되는 플로우 정책을 나타낸 예이다.
도 7은 도 4의 제 1 SDN 스위치의 플로우 테이블을 나타낸 도면이다.
도 8은 도 4의 제 2 SDN 스위치의 플로우 테이블을 나타낸 도면이다.
도 9는 본 발명의 일 실시예에 따른 가상 플로우 테이블을 나타낸 도면이다.
도 10은 도 9의 각 가상 플로우 테이블의 플로우 정책을 최적화하는 과정을 설명하는 도면이다.
도 11은 도 10에서 최적화된 가상 플로우 테이블의 플로우 정책을 제 2 SDN 스위치에 등록하는 과정을 설명하는 도면이다.
도 12는 본 발명의 일 실시예에 따른 제 2 SDN 스위치의 최종 갱신된 플로우 테이블을 나타낸 도면이다.
도 13 내지 도 16은 본 발명의 일 실시예에 따른 최적화된 플로우 테이블을 기초로 한 제 1 통신 단말과 제 3 통신 단말 간의 통신 과정을 설명하는 도면이다.
도 17 내지 도 20은 본 발명의 일 실시예에 따른 최적화된 플로우 테이블을 기초로 한 제 2 통신 단말과 제 3 통신 단말 간의 통신 과정을 설명하는 도면이다.
도 21은 본 발명의 일 실시예에 따른 SDN 스위치에서 플로우 테이블을 최적화하는 방법을 설명하는 흐름도
1 is a diagram showing an SDN-based network environment.
FIG. 2 is a diagram illustrating a flow policy registered in the second SDN switch of FIG. 1.
3 is a diagram illustrating an SDN-based network environment according to an embodiment of the present invention.
4 is a diagram showing a connection state between two SDN switches and three communication terminals according to an embodiment of the present invention.
5 is an example of a flow policy registered in the flow table of the first SDN switch of FIG. 4.
6 is an example of a flow policy registered in the flow table of the second SDN switch of FIG. 4.
7 is a diagram illustrating a flow table of the first SDN switch of FIG. 4.
8 is a diagram showing a flow table of the second SDN switch of FIG. 4.
9 is a diagram showing a virtual flow table according to an embodiment of the present invention.
10 is a diagram illustrating a process of optimizing a flow policy of each virtual flow table of FIG. 9.
11 is a diagram illustrating a process of registering a flow policy of a virtual flow table optimized in FIG. 10 to a second SDN switch.
12 is a diagram illustrating a finally updated flow table of a second SDN switch according to an embodiment of the present invention.
13 to 16 are diagrams illustrating a communication process between a first communication terminal and a third communication terminal based on an optimized flow table according to an embodiment of the present invention.
17 to 20 are diagrams illustrating a communication process between a second communication terminal and a third communication terminal based on an optimized flow table according to an embodiment of the present invention.
21 is a flowchart illustrating a method of optimizing a flow table in an SDN switch according to an embodiment of the present invention

상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하기로 한다.The above-described objects, features, and advantages will become more apparent through the following detailed description in connection with the accompanying drawings, whereby those of ordinary skill in the technical field to which the present invention pertains can easily implement the technical idea of the present invention. There will be. In addition, in describing the present invention, when it is determined that a detailed description of a known technology related to the present invention may unnecessarily obscure the subject matter of the present invention, a detailed description thereof will be omitted. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 3은 본 발명의 일 실시예에 따른 SDN 기반 네트워크 환경을 나타낸 도면이다. 도 3을 참조하면, SDN 기반의 네트워크는, SDN 제어기(310), 복수의 SDN 스위치(320) 및 복수의 통신 단말(330)을 포함한다. 본 실시예에서 SDN 스위치(320)는 네트워크를 구성하는 개체(Entity)로서, 이동통신기지국, 기지국 제어기, 게이트웨이, 라우터 등을 포함하지만 특별히 종류를 제한하지 않고, 패킷을 수신하여 라우팅 처리를 수행하는 네트워크 장비를 포괄한다.3 is a diagram illustrating an SDN-based network environment according to an embodiment of the present invention. Referring to FIG. 3, the SDN-based network includes an SDN controller 310, a plurality of SDN switches 320, and a plurality of communication terminals 330. In this embodiment, the SDN switch 320 is an entity constituting a network, and includes a mobile communication base station, a base station controller, a gateway, a router, etc., but is not particularly limited in type, and receives packets and performs routing processing. Covers network equipment.

SDN 제어기(310)는 네트워크 내의 SND 스위치들(320)을 관리하는 기능을 수행하는 것으로 복수의 SDN 스위치(32)를 중앙 집중형으로 관리 및 제어한다. SDN 제어기(310)는 토폴로지 관리, 패킷 처리와 관련된 경로 관리, 링크 디스커버리, 패킷 흐름인 플로우 관리 등의 기능을 수행하는 소프트웨어가 탑재된 형태로 구현될 수 있다. SDN 제어기(310)는 SDN 스위치(320)와 오픈플로우(OpenFlow) 프로토콜에 따라 정보를 송수신할 수 있다. SDN 제어기(310)는 SDN 스위치(320)로부터 패킷-인(Packet-In) 메시지를 수신하면 패킷의 경로를 추출한 후 이를 패킷-아웃(Packet-Out) 메시지를 통해 SDN 스위치(320)로 전송하여 SDN 스위치(320)의 플로우 테이블의 플로우 정책을 등록한다.The SDN controller 310 performs a function of managing the SND switches 320 in the network, and centrally manages and controls the plurality of SDN switches 32. The SDN controller 310 may be implemented with software that performs functions such as topology management, path management related to packet processing, link discovery, and packet flow management. The SDN controller 310 may transmit and receive information according to the SDN switch 320 and the OpenFlow protocol. When the SDN controller 310 receives a packet-in message from the SDN switch 320, it extracts the path of the packet and transmits it to the SDN switch 320 through a packet-out message. The flow policy of the flow table of the SDN switch 320 is registered.

SDN 스위치(320)는, 상기 SDN 제어기(310)의 제어에 따라 패킷을 처리하는 기능을 수행한다. 앞서 설명한 바와 같이, SDN 스위치(320)는, 이동통신기지국, 기지국 제어기, 게이트웨이, 라우터 등을 포함하는 것으로서 특별히 종류를 제한하지 않고, SDN 기반의 네트워크 환경에서 패킷을 처리하는 장비는 모두 포함한다. 본 실시예에서는 설명의 편의를 위해 SDN 스위치(320)는 오픈플로우 스위치인 경우를 중심으로 설명한다. SDN 스위치(320)는 연결된 통신 단말(330)로부터 패킷을 수신하면 그 수신된 패킷의 처리를 위한 플로우 정책이 있는지 확인하고 플로우 정책이 없으면 해당 패킷을 어디로 보내야 하는지를 문의하기 위해 해당 패킷을 우선 버퍼에 저장하고 해당 패킷의 헤더를 포함한 일부 데이터를 패킷-인 메시지를 통해 SDN 제어기(310)에 전송하고 SDN 제어기(310)로부터 패킷-아웃 메시지를 통해 플로우 정책을 수신하여 플로우 테이블에 등록하고 버퍼에 저장된 패킷을 처리한다.The SDN switch 320 performs a function of processing a packet under the control of the SDN controller 310. As described above, the SDN switch 320 includes a mobile communication base station, a base station controller, a gateway, a router, etc., and includes all equipment processing packets in an SDN-based network environment. In the present embodiment, for convenience of explanation, the SDN switch 320 is mainly described in the case of an open flow switch. When receiving a packet from the connected communication terminal 330, the SDN switch 320 checks whether there is a flow policy for processing the received packet, and if there is no flow policy, the SDN switch 320 sends the packet to the buffer first in order to inquire where to send the packet. It stores and transmits some data including the header of the packet to the SDN controller 310 through a packet-in message, receives a flow policy from the SDN controller 310 through a packet-out message, registers it in the flow table, and stores it in the buffer. Process the packet.

SDN 스위치(320)는, 메모리, 메모리 제어기, 하나 이상의 프로세서(CPU), 주변 인터페이스, 입출력(I/O) 서브시스템, 입력 장치 및 통신 회로를 포함할 수 있다. 메모리는 고속 랜덤 액세스 메모리를 포함할 수 있고, 또한 하나 이상의 자기 디스크 저장 장치, 플래시 메모리 장치와 같은 불휘발성 메모리, 또는 다른 불휘발성 반도체 메모리 장치를 포함할 수 있다. 메모리는 프로세서에 의해 실행 가능한 명령어들을 저장하고, 또한 상기 플로우 테이블을 저장할 수 있다. 프로세서 및 주변 인터페이스와 같은 다른 구성요소에 의한 메모리로의 액세스는 메모리 제어기에 의하여 제어될 수 있다. 메모리는 각종 정보와 프로그램 명령어를 저장할 수 있고, 프로그램은 프로세서에 의해 실행된다. 주변 인터페이스는 입출력 주변 장치를 프로세서 및 메모리와 연결한다. 하나 이상의 프로세서는 다양한 소프트웨어 프로그램 및/또는 메모리에 저장되어 있는 명령어 세트를 실행하여 시스템을 위한 여러 기능을 수행하고 데이터를 처리한다. I/O 서브시스템은 디스플레이 장치, 입력 장치와 같은 입출력 주변장치와 주변 인터페이스 사이에 인터페이스를 제공한다. 통신 회로는 외부 포트를 통한 통신 또는 RF 신호에 의한 통신을 수행한다. 통신 회로는 전기 신호를 RF 신호로 또는 그 반대로 변환하며 이 RF 신호를 통하여 통신 네트워크, 다른 이동형 게이트웨이 장치 및 통신 장치와 통신할 수 있다. SDN 스위치(320)의 프로세서는 메모리에 저장된 명령어들에 따라 이하에서 설명하는 방법 및 동작을 수행할 수 있다.The SDN switch 320 may include a memory, a memory controller, one or more processors (CPUs), a peripheral interface, an input/output (I/O) subsystem, an input device, and a communication circuit. The memory may include high-speed random access memory, and may also include one or more magnetic disk storage devices, nonvolatile memory such as flash memory devices, or other nonvolatile semiconductor memory devices. The memory may store instructions executable by the processor and may also store the flow table. Access to memory by other components such as the processor and peripheral interfaces can be controlled by the memory controller. The memory can store various types of information and program instructions, and programs are executed by the processor. The peripheral interface connects the input/output peripheral devices with the processor and memory. One or more processors execute various software programs and/or sets of instructions stored in memory to perform various functions for the system and process data. The I/O subsystem provides an interface between input and output peripherals, such as display devices and input devices, and peripheral interfaces. The communication circuit performs communication through an external port or by an RF signal. The communication circuit converts the electrical signal to an RF signal or vice versa, through which it can communicate with a communication network, other mobile gateway devices and communication devices. The processor of the SDN switch 320 may perform the methods and operations described below according to instructions stored in the memory.

통신 단말(330)은 SDN 기반의 네트워크 환경에서 통신 서비스를 이용하는 기기로서, 예를 들어, 퍼스널 컴퓨터, 스마트폰, 태블릿 PC 등의 사용자 단말 그리고 게임 서비스, 채팅, 클라우드, 음악/영상 스트리밍 서비스 등을 제공하는 서버를 포함한다. 본 실시예에서 하나의 SDN 스위치에 적어도 두 개 이상의 통신 단말이 연결되어 다른 SDN 스위치에 연결된 목적지 통신 단말로 통신을 수행한다. 이하에서는 동일한 SDN 스위치에 연결된 복수의 통신 단말이 다른 SDN 스위치에 연결된 공통의 목적지 단말로 통신할 때, 목적지 통신 단말과 연결된 SDN 스위치의 플로우 테이블에 생성되는 중복된 동작을 수행하는 플로우 정책을 하나의 정책으로 최적화하는 방법을 도면을 참조하여 구체적으로 설명한다.The communication terminal 330 is a device that uses a communication service in an SDN-based network environment, for example, a user terminal such as a personal computer, a smartphone, and a tablet PC, and a game service, chat, cloud, music/video streaming service, etc. Includes the serving server. In this embodiment, at least two or more communication terminals are connected to one SDN switch to perform communication to a destination communication terminal connected to another SDN switch. Hereinafter, when a plurality of communication terminals connected to the same SDN switch communicate to a common destination terminal connected to another SDN switch, a flow policy for performing a redundant operation generated in the flow table of the SDN switch connected to the destination communication terminal is described as one flow policy. A method of optimizing by policy will be described in detail with reference to the drawings.

도 4는 본 발명의 일 실시예에 따른 두 개의 SDN 스위치와 세 개의 통신 단말의 연결 상태를 나타낸 도면이다. 도 4를 참조하면, SDN 제어기(410)에 두 개의 SDN 스위치(421, 422)가 제어 채널을 성립하여 연결되고, 제 1 SDN 스위치(421)에는 두 개의 통신 단말(431, 432)가 연결되며, 제 2 SDN 스위치(422)에 하나의 통신 단말(433)이 연결되어 있다. 4 is a diagram showing a connection state between two SDN switches and three communication terminals according to an embodiment of the present invention. 4, two SDN switches 421 and 422 are connected to the SDN controller 410 by establishing a control channel, and two communication terminals 431 and 432 are connected to the first SDN switch 421, and , One communication terminal 433 is connected to the second SDN switch 422.

제 1 통신 단말(431)이 제 3 통신 단말(433)에 IP 패킷을 보내려 한다. 이를 위해 제 1 통신 단말(431)은 제 3 통신 단말(433)의 MAC 주소를 알아내기 위하여 ARP 요청메시지를 제 1 SDN 스위치(421)로 전송한다. 제 1 SDN 스위치(421)은 1번 포트를 통해 들어온 ARP 요청 메시지를 어디로 보내야 할지 모르기 때문에 SDN 제어기(410)에 ARP 요청 메시지의 일부 헤더 파일을 포함한 패킷-인(Packet-in) 메시지로 SDN 제어기(410)에 전송하여 처리를 문의한다.The first communication terminal 431 attempts to send an IP packet to the third communication terminal 433. To this end, the first communication terminal 431 transmits an ARP request message to the first SDN switch 421 in order to find out the MAC address of the third communication terminal 433. Since the first SDN switch 421 does not know where to send the ARP request message received through port 1, the SDN controller sends a packet-in message including some header files of the ARP request message to the SDN controller 410. Send it to 410 to inquire about processing.

패킷-인 메시지를 수신한 SDN 제어기(410)는 이미 각 SDN 스위치(421, 422)와 제어 채널을 성립할 때 스위치 포트별로 연결된 통신 단말(431, 432, 433)의 정보를 가져오기 때문에 제 3 통신 단말(433)의 위치 정보를 알고 있다. SDN 제어기(410)는 해당 ARP 요청 메시지가 제 3 통신 단말(433)로 전달되도록 제 1 SDN 스위치(421)로 플로우 정책을 포함하는 플로우 수정(Flow Modiy) 메시지를 전송하고, 제 1 SDN 스위치(421)는 해당 메시지 내용을 기초로 플로우 정책을 등록한다. 이때 등록된 플로우 정책은 다른 플로우 정책과 중복되지 않는 플로우 ID를 갖는다. When receiving the packet-in message, the SDN controller 410 already obtains the information of the communication terminals 431, 432, 433 connected to each switch port when establishing a control channel with each SDN switch (421, 422). The location information of the communication terminal 433 is known. The SDN controller 410 transmits a flow modification message including a flow policy to the first SDN switch 421 so that the corresponding ARP request message is transmitted to the third communication terminal 433, and the first SDN switch ( 421) registers a flow policy based on the content of the message. At this time, the registered flow policy has a flow ID that does not overlap with other flow policies.

도 5는 제 1 SDN 스위치(421)의 플로우 테이블에 등록되는 플로우 정책을 나타낸 예로서, 플로우 테이블은 플로우 ID(Flow ID) 필드, 매칭(Match) 필드, 액션(Action) 필드, 타임아웃(Timeout) 필드를 포함하고, 도 5에 도시된 바와 같이, 등록된 플로우 정책은 플로우 ID로서 "a001"을 갖는다. 매칭 필드의 항목들에 따르면, 해당 플로우 정책은 "1번 포트(In Port)로 들어온 패킷의 헤더에 출발지 MAC 주소(Src MAC)가 'a'이고 출발지 IP 주소(Src IP)는 '10.0.0.1', 목적지 IP 주소(Dst IP)는 '10.0.0.3', 이더넷 타입(Ether Type)은 '0x0806(=ARP 패킷 타입)'인 경우 3번 포트(Out Port)를 통해 패킷을 내보내라”는 것을 의미한다. 참고로 플로우 테이블의 타임아웃(Timeout) 필드에서 정의된 아이들 타임(Idle Time)은 ONF에서 정의한 OpenFlow 공식 표준 스펙에 따르면 해당 플로우 정책이 유지되는 시간이다. 아이들 타임 동안 해당 플로우 정책과 일치하는 패킷이 없는 경우 아이들 타임이 갱신되지 못해 자동으로 플로우 정책이 삭제된다. 도 5를 참조한 예에서, 30초 이내에 해당 플로우 정책과 일치되는 패킷이 없는 경우 해당 플로우 정책은 모두 삭제된다.5 is an example showing a flow policy registered in the flow table of the first SDN switch 421. The flow table includes a flow ID field, a match field, an action field, and a timeout. ) Field, and as shown in Fig. 5, the registered flow policy has "a001" as the flow ID. According to the items in the matching field, the corresponding flow policy is "The source MAC address (Src MAC) is'a' and the source IP address (Src IP) is '10.0.0.1 in the header of the packet that has entered port 1 (In Port). In the case of', destination IP address (Dst IP) is '10.0.0.3' and Ethernet type is '0x0806 (=ARP packet type)', send out a packet through port 3 (Out Port)” For reference, the idle time defined in the timeout field of the flow table is the time that the flow policy is maintained according to the official OpenFlow standard specification defined by ONF. If there is no packet, the flow policy is automatically deleted because the idle time cannot be updated In the example shown in Fig. 5, if there is no packet matching the flow policy within 30 seconds, all the flow policies are deleted.

제 1 SDN 스위치(421)은 최초 등록된 플로우 ID '001'의 플로우 정책대로 1번 포트(In Port)로 들어온 패킷의 헤더에 출발지 MAC 주소(Src MAC)가 제 1 통신 단말(431)의 MAC 주소 'a'이고 이더넷 타입(Ether Type)이 0x0806(=ARP 패킷 타입)인 ARP 요청 메시지를 3번 포트(Out Port)를 통해 제 2 SDN 스위치(422)로 전달한다. 제 2 SDN 스위치(422)는 1번 포트를 통해 들어온 ARP 요청 메시지를 어디로 보내야 할지 모르기 때문에 SDN 제어기(410)에 ARP 요청 메시지의 일부 헤더 파일을 포함한 패킷-인 메시지를 SDN 제어기(410)에 전달하여 처리를 문의한다.According to the flow policy of the first registered flow ID '001', the first SDN switch 421 has a source MAC address (Src MAC) of the first communication terminal 431 in the header of the packet that has entered the port 1 (In Port). An ARP request message having an address'a' and an Ethernet type of 0x0806 (= ARP packet type) is transmitted to the second SDN switch 422 through a port 3 (Out Port). Since the second SDN switch 422 does not know where to send the ARP request message received through port 1, it forwards the packet-in message including some header files of the ARP request message to the SDN controller 410 to the SDN controller 410 To inquire about processing.

제 2 SDN 스위치(422)로부터 패킷-인 메시지를 수신한 SDN 제어기(410)는 해당 ARP 요청 메시지가 제 3 통신 단말(433)로 전달되도록 제 2 SDN 스위치(422)로 플로우 수정(Flow Modify) 메시지를 전송하고, 제 2 SDN 스위치(422)는 해당 메시지 내용을 기초로 가지고 플로우 정책을 등록한다 .등록한다. 이때 등록된 플로우 정책은 다른 플로우 정책과 중복되지 않는 플로우 ID를 갖는다.Upon receiving the packet-in message from the second SDN switch 422, the SDN controller 410 modifies the flow to the second SDN switch 422 so that the corresponding ARP request message is transmitted to the third communication terminal 433. After transmitting the message, the second SDN switch 422 registers and registers a flow policy based on the content of the message. At this time, the registered flow policy has a flow ID that does not overlap with other flow policies.

도 6은 제 2 SDN 스위치(422)의 플로우 테이블에 등록되는 플로우 정책을 나타낸 예로서, 도 6에 도시된 바와 같이, 등록된 플로우 정책은 플로우 ID로서 'b001'을 갖는다. 매칭 필드의 항목들에 따르면, 해당 플로우 정책은 "1번 포트(In Port)로 들어온 패킷의 헤더에 출발지 MAC 주소(Src MAC)가 'a'이고 출발지 IP 주소(Src IP)는 '10.0.0.1', 목적지 IP 주소(Dst IP)는 '10.0.0.3', 이더넷 타입(Ether Type)은 0x0806(=ARP 패킷 타입)인 경우 2번 포트(Out Port)를 통해 패킷을 내보내라”는 것을 의미한다. 최종적으로 제 1 SDN 제어기(421)로부터 수신된 ARP 요청 메시지는 도 6에 도시된 플로우 정책에 일치하여 제 2 SDN 스위치(422)의 2번 포트를 통해 제 3 통신 단말(433)로 전달된다. 6 is an example of a flow policy registered in the flow table of the second SDN switch 422. As shown in FIG. 6, the registered flow policy has'b001' as a flow ID. According to the items in the matching field, the corresponding flow policy is "The source MAC address (Src MAC) is'a' and the source IP address (Src IP) is '10.0.0.1 in the header of the packet that has entered port 1 (In Port). ', Destination IP address (Dst IP) is '10.0.0.3', and Ethernet type is 0x0806 (=ARP packet type), it means to send a packet through port 2 (Out Port)." Finally, the ARP request message received from the first SDN controller 421 is delivered to the third communication terminal 433 through the second port of the second SDN switch 422 in accordance with the flow policy shown in FIG. .

제 1 통신 단말(431)로부터 ARP 요청 메시지를 수신한 제 3 통신 단말(433)는 앞서 설명한 과정과 동일한 과정을 통해 ARP 응답 메시지를 제 1 통신 단말(431)로 전송한다. 따라서, 제 1 SDN 스위치(421)에는 플로우 ID 'a002'의 플로우 정책이 새로 등록되고, 제 2 SDN 스위치(422)에는 플로우 ID 'b002'의 플로우 정책이 새로 등록된다. 제 1 통신 단말(431)은 ARP 응답 메시지를 통해 제 3 통신 단말(433)의 MAC 주소를 알게 된다. 이제 제 1 통신 단말(431)은 해당 MAC 주소를 가지고 제 3 통신 단말(433)과 ICMP 패킷을 주고받을 수 있다. 이를 위해 우선 제 1 통신 단말(431)은 ICMP 요청 메시지를 제 3 통신 단말(433)로 전송하고, 제 3 통신 단말(433)로부터 ICMP 응답 메시지를 받는다. 이 과정도 앞서 설명한 과정과 동일한 과정을 통해 ICMP 패킷 처리를 위한 플로우 정책이 제 1, 2 SDN 스위치(421, 422)에 등록된다. 즉, 제 1 SDN 스위치(421)에는 플로우 ID 'a003', 'a004'의 플로우 정책이 새로 등록되고, 제 2 SDN 스위치(422)에는 플로우 ID 'b003', 'b004'의 플로우 정책이 새로 등록된다. 제 1 통신 단말(431)과 제 3 통신 단말(433)이 ARP 테이블을 갱신하지 않는 동안은 IP 타입의 패킷만 송수신하기 때문에 이더넷 타입(Ether Type)이 0x0806(=ARP 패킷 타입)인 플로우 정책은 아이들 타임(Idle Time)이 만료되어 모두 삭제된다. 최종적으로는 제 1 SDN 스위치(421)의 플로우 테이블에는 플로우 ID가 'a003', 'a004'만 남게 되고, 제 2 SDN 스위치(422)의 플로우 테이블에는 플로우 ID가 'b003', 'b004'만 남게 되고 나머지는 제거된다. The third communication terminal 433 receiving the ARP request message from the first communication terminal 431 transmits the ARP response message to the first communication terminal 431 through the same process as described above. Accordingly, a flow policy of flow ID'a002' is newly registered to the first SDN switch 421, and a flow policy of flow ID'b002' is newly registered to the second SDN switch 422. The first communication terminal 431 knows the MAC address of the third communication terminal 433 through the ARP response message. Now, the first communication terminal 431 can exchange ICMP packets with the third communication terminal 433 with the corresponding MAC address. To this end, the first communication terminal 431 first transmits an ICMP request message to the third communication terminal 433 and receives an ICMP response message from the third communication terminal 433. In this process, a flow policy for processing an ICMP packet is registered in the first and second SDN switches 421 and 422 through the same process as described above. That is, a flow policy of flow ID'a003' and'a004' is newly registered to the first SDN switch 421, and a flow policy of flow ID'b003' and'b004' is newly registered to the second SDN switch 422. do. Since the first communication terminal 431 and the third communication terminal 433 transmit and receive only IP-type packets while the ARP table is not updated, the flow policy in which the Ethernet type is 0x0806 (= ARP packet type) is Idle Time has expired and all are deleted. Finally, only flow IDs'a003' and'a004' remain in the flow table of the first SDN switch 421, and only flow IDs'b003' and'b004' remain in the flow table of the second SDN switch 422. Remains and the rest is removed.

제 2 통신 단말(432)도 제 3 통신 단말(433)과 통신을 하고자 하면, 앞서 설명한 과정과 동일한 과정을 통해 ARP 패킷을 처리하고 그 다음 ICMP 패킷을 처리한다. 제 2 통신 단말(432)과 제 3 통신 단말(433)이 ARP 테이블을 갱신하지 않는 동안은 IP 타입의 패킷만 송수신하기 때문에 이더넷 타입(Ether Type)이 0x0806(=ARP 패킷 타입)인 플로우 정책은 아이들 타임(Idle Time)이 만료되어 모두 삭제된다. 최종적으로는 제 1 SDN 스위치(421)의 플로우 테이블에는 제 2 통신 단말(432)과 제 3 통신 단말(433) 간의 통신을 위한 플로우 정책으로서 플로우 ID가 'a007', 'a008'만 남게 되고, 제 2 SDN 스위치(422)의 플로우 테이블에는 플로우 ID가 'b007', 'b008'만 남게 되고 나머지는 제거된다. If the second communication terminal 432 also wants to communicate with the third communication terminal 433, the ARP packet is processed through the same process as the above-described process, and then the ICMP packet is processed. Since the second communication terminal 432 and the third communication terminal 433 transmit and receive only IP-type packets while not updating the ARP table, the flow policy in which the Ethernet type is 0x0806 (= ARP packet type) is Idle Time has expired and all are deleted. Finally, only flow IDs'a007' and'a008' remain in the flow table of the first SDN switch 421 as a flow policy for communication between the second communication terminal 432 and the third communication terminal 433, In the flow table of the second SDN switch 422, only the flow IDs'b007' and'b008' remain, and the rest are removed.

도 7은 도 4의 제 1 SDN 스위치의 플로우 테이블을 나타낸 도면이고, 도 8은 도 4의 제 2 SDN 스위치의 플로우 테이블을 나타낸 도면이다. 제 1, 2 통신 단말(431, 432)과 제 3 통신 단말(433) 간의 통신을 위한 플로우 정책으로서, 도 7에 도시된 바와 같이, 제 1 SDN 스위치(421)의 플로우 테이블에는 플로우 ID 'a003', 'a004', 'a007', 'a008'의 플로우 정책이 등록되어 있고, 도 8에 도시된 바와 같이, 제 2 SDN 스위치(422)의 플로우 테이블에는 플로우 ID 'b003', 'b004', 'b007', 'b008'의 플로우 정책이 등록되어 있다. 7 is a diagram illustrating a flow table of the first SDN switch of FIG. 4, and FIG. 8 is a diagram illustrating a flow table of the second SDN switch of FIG. 4. As a flow policy for communication between the first and second communication terminals 431 and 432 and the third communication terminal 433, as shown in FIG. 7, the flow ID'a003' in the flow table of the first SDN switch 421 Flow policies of','a004','a007', and'a008' are registered, and as shown in FIG. 8, flow IDs'b003','b004', and the flow table of the second SDN switch 422 are registered. Flow policies of'b007' and'b008' are registered.

그런데, 도 8을 참조하면, 플로우 ID b003과 플로우 ID b007은 제 2 SDN 스위치(422)의 1번 포트로 들어온 패킷을 2번 포트로 보내는 동작을 수행하는 플로우 정책으로, 그 두 개의 플로우 정책은 출발지 MAC 주소와 출발지 IP 주소만 다를 뿐, 제 2 SDN 스위치(422)가 수행하는 동작은 동일하다. 플로우 ID b004와 플로우 ID b008은 제 2 SDN 스위치(422)의 2번 포트로 들어온 패킷을 1번 포트로 보내는 동작을 수행하는 플로우 정책으로, 그 두 개의 플로우 정책은 목적지 MAC 주소와 목적지 IP 주소만 다를 뿐, 제 2 SDN 스위치(422)가 수행하는 동작은 동일하다. SDN 제어기(410) 입장에서는 동작은 동일하게 수행하더라도 일부 매칭 조건(Match)이 다르기 때문에 다른 플로우 정책으로 인식하고 고유 플로우 ID를 할당하여 플로우 정책을 관리한다. 그런데, 동일 SDN 스위치에 연결되어 공통의 목적지 통신 단말과 통신을 하고자 하는 통신 단말의 수가 많으면 많을수록, 그리고 목적지 통신 단말에 연결되는 SDN 스위치의 수가 많으면 많을수록, 이에 비례하여 목적지 통신 단말에 연결된 SDN 스위치의 플로우 테이블에는 중복되는 동작을 수행하는 플로우 정책들이 많이 증가할 수밖에 없다. 이와 같이 플로우 정책들이 증가할수록 SDN 스위치의 패킷 처리에도 시간이 많이 소요될 뿐만 아니라 스위치 자체 성능 저하의 원인이 된다. 이하에서 제 2 SDN 스위치(422)에서 플로우 정책을 최적화하는 방법을 구체적으로 설명한다.However, referring to FIG. 8, flow ID b003 and flow ID b007 are flow policies that perform an operation of sending a packet from port 1 of the second SDN switch 422 to port 2, and the two flow policies are Only the source MAC address and the source IP address are different, and the operation performed by the second SDN switch 422 is the same. Flow ID b004 and flow ID b008 are flow policies that perform an operation of sending a packet from port 2 of the second SDN switch 422 to port 1, and the two flow policies are only the destination MAC address and the destination IP address. However, the operation performed by the second SDN switch 422 is the same. The SDN controller 410 manages the flow policy by recognizing it as a different flow policy and assigning a unique flow ID because some matching conditions are different even though the operation is performed identically. However, the greater the number of communication terminals connected to the same SDN switch to communicate with the common destination communication terminal, and the greater the number of SDN switches connected to the destination communication terminal, the proportionally the SDN switch connected to the destination communication terminal. In the flow table, flow policies that perform redundant operations are bound to increase. As the flow policies increase in this way, it takes a lot of time to process packets of the SDN switch, and it causes the performance of the switch itself to deteriorate. Hereinafter, a method of optimizing a flow policy in the second SDN switch 422 will be described in detail.

도 8의 제 2 SDN 스위치(422)에 등록된 플로우 정책 중에서 1번 포트로 들어온 패킷을 2번 포트로 보내는 동일한 동작을 수행하는 플로우 ID가 'b003', 'b007'인 두 플로우 정책은 서로 중복되고, 또한 2번 포트로 들어온 패킷을 1번 포트로 보내는 동일한 동작을 수행하는 플로우 ID가 'b004', 'b008'인 두 플로우 정책도 중복된다. 제 2 SDN 스위치(422)는 입력 포트와 출력 포트가 동일한 플로우 정책을 가지고 가상 플로우 테이블을 생성한다. Among the flow policies registered in the second SDN switch 422 of FIG. 8, two flow policies with flow IDs'b003' and'b007' performing the same operation of sending a packet from port 1 to port 2 overlap each other. Also, two flow policies with flow IDs'b004' and'b008' that perform the same operation of sending a packet from port 2 to port 1 are also duplicated. The second SDN switch 422 generates a virtual flow table in which the input port and the output port have the same flow policy.

도 9는 본 발명의 일 실시예에 따른 가상 플로우 테이블을 나타낸 도면으로, 도 9의 (a)는 입력 포트 번호가 1번이고 출력 포트 번호가 2번인 플로우 정책들이 있는 제 1 가상 플로우 테이블이고, 도 9의 (b)는 입력 포트 번호가 2번이고 출력 포트 번호가 1번인 플로우 정책들이 있는 제 2 가상 플로우 테이블이다. 제 2 SDN 스위치(422)는 생성된 가상 플로우 테이블에서 중복되는 매칭 필드 항목은 유지하고 일치하지 않는 항목은 널(NULL) 값('-')으로 대체하여 하나의 플로우 정책으로 재정의한다. FIG. 9 is a diagram showing a virtual flow table according to an embodiment of the present invention, and FIG. 9A is a first virtual flow table with flow policies having an input port number of 1 and an output port number of 2, 9B is a second virtual flow table with flow policies having an input port number of 2 and an output port number of 1; The second SDN switch 422 maintains duplicate matching field items in the generated virtual flow table and replaces non-matching items with a null value ('-') to redefine one flow policy.

도 10은 도 9의 각 가상 플로우 테이블의 플로우 정책을 최적화하는 과정을 설명하는 도면이다. 도 10의 (a)는 제 1 가상 플로우 테이블에서 출발지 MAC 주소(Src MAC)와 출발지 IP 주소(Scr IP)는 두 플로우 정책에서 일치하지 않는 항목이므로 널 값으로 대체하고 나머지 항목은 유지하여 하나의 플로우 정책으로 재정의한 것을 나타낸다. 도 10의 (b)는 제 2 가상 플로우 테이블에서 목적지 MAC 주소(Dst MAC)와 목적지 IP 주소(Dst IP)는 두 플로우 정책에서 일치하지 않는 항목이므로 널 값으로 대체하고 나머지 항목은 유지하여 하나의 플로우 정책으로 재정의한 것을 나타낸다. 10 is a diagram illustrating a process of optimizing a flow policy of each virtual flow table of FIG. 9. 10A shows that in the first virtual flow table, the source MAC address (Src MAC) and the source IP address (Scr IP) do not match in the two flow policies, so they are replaced with a null value and the remaining items are maintained. It represents the redefined flow policy. 10(b) shows that the destination MAC address (Dst MAC) and the destination IP address (Dst IP) in the second virtual flow table are not matched items in the two flow policies, so they are replaced with a null value and the remaining items are kept. It represents the redefined flow policy.

도 11은 도 10에서 최적화된 가상 플로우 테이블의 플로우 정책을 제 2 SDN 스위치에 등록하는 과정을 설명하는 도면이고, 도 12는 제 2 SDN 스위치의 최종 갱신된 플로우 테이블을 나타낸 도면이다. 도 11에 도시된 바와 같이, 도 10의 (a)에서 최적화된 제 1 가상 플로우 테이블의 플로우 정책과 도 10의 (b)에서 최적화된 제 2 가상 플로우 테이블의 플로우 정책이 제 2 SDN 스위치(422)에 등록된다. 따라서, 도 12에 도시된 바와 같이, 4개의 플로우 정책이 2개의 플로우 정책으로 감소한다. 도 12에 도시된 바와 같이, 기존에 존재하던 플로우 ID가 'b007', b008'인 플로우 정책은 삭제되고 기존에 존재하던 플로우 ID가 'b003', b004'인 플로우 정책은 일부 매칭 필드 항목이 널 값으로 대체된다.FIG. 11 is a diagram illustrating a process of registering a flow policy of a virtual flow table optimized in FIG. 10 to a second SDN switch, and FIG. 12 is a diagram illustrating a last updated flow table of a second SDN switch. As shown in FIG. 11, the flow policy of the first virtual flow table optimized in FIG. 10(a) and the flow policy of the second virtual flow table optimized in FIG. 10(b) are the 2nd SDN switch 422 ) To be registered. Accordingly, as shown in FIG. 12, four flow policies are reduced to two flow policies. As shown in FIG. 12, flow policies with existing flow IDs'b007' and b008' are deleted, and flow policies with existing flow IDs'b003' and b004' have some matching field items Replaced by value.

이하에서는 도 12와 같이 최적화된 플로우 테이블을 이용하여 제 1, 2 통신 단말(431, 432)이 제 3 통신 단말(433)과 통신이 가능한지 검증한다. In the following, it is verified whether the first and second communication terminals 431 and 432 can communicate with the third communication terminal 433 using the optimized flow table as shown in FIG. 12.

먼저, 제 1 통신 단말(431)이 제 3 통신 단말(433)과 통신이 가능한지 검증하면 다음과 같다. 도 13 내지 도 16은 본 발명의 일 실시예에 따른 제 1 통신 단말과 제 3 통신 단말 간의 통신 과정을 설명하는 도면이다. 도 13을 참조하면, 제 1 SDN 스위치(421)와 연결된 제 1 통신 단말(431)이 제 3 통신 단말(433)과 IP 통신을 목적으로 제 3 통신 단말(433)의 MAC 주소를 알아내기 위해 ARP 요청 메시지를 제 1 SDN 스위치(421)로 전송한다. 전송된 메시지는 제 1 SDN 스위치(421)의 1번 포트로 유입되고, 제 1 SDN 스위치(421)는 해당 메시지의 처리를 위해 플로우 테이블을 룩업(Look-up)한다. 해당 메시지의 헤더 파일 정보가 플로우 ID 'a003'인 플로우 정책에 일치하므로 해당 플로우 정책의 액션 필드에서 정의한 3번 포트를 통해 제 2 SDN 스위치(422)로 메시지를 포워딩한다. 도 14를 참조하면, 제 2 SDN 스위치(422)는 1번 포트를 통해 유입된 ARP 요청 메시지의 처리를 위해 플로우 테이블을 룩업한다. 해당 메시지의 헤더 파일 정보가 플로우 ID 'b003'인 플로우 정책과 일치하므로 해당 플로우 정책의 액션 필드에서 정의한 2번 포트로 요청 메시지를 포워딩하여 최종적으로 제 3 통신 단말(433)로 전송한다. 도 15를 참조하면, ARP 요청 메시지를 수신한 제 3 통신 단말(433)은 자신의 MAC 주소를 제 1 통신 단말(431)로 전송하기 위하여 ARP 응답 메시지를 생성해 제 2 SDN 스위치(422)로 전달한다. 제 2 SDN 스위치(422)는 2번 포트를 통해 유입된 ARP 응답 메시지의 처리를 위해 플로우 테이블을 룩업한다. 해당 응답 메시지의 헤더 파일 정보가 플로우 ID 'b004'인 플로우 정책에 일치하므로 해당 플로우 정책의 액션 필드에서 정의한 1번 포트를 통해 응답 메시지를 포워딩한다. 도 16을 참조하면, 제 1 SDN 스위치(421)는 3번 포트를 통해 유입된 ARP 응답 메시지의 처리를 위해 플로우 테이블을 룩업한다. 해당 응답 메시지의 헤더 파일 정보가 플로우 ID 'a004'인 플로우 정책과 일치하므로 해당 플로우 정책의 액션 필드에서 정의한 1번 포트로 응답 메시지를 포워딩하여 최종적으로 제 1 통신 단말(431)로 전송한다. 제 1 통신 단말(431)은 수신한 ARP 응답 메시지에 포함된 제 3 통신 단말(433)의 MAC 주소를 가지고 제 3 통신 단말(433)과 ICMP 요청/응답메시지를 송수신할 수 있는데, 해당 과정은 앞의 ARP 메시지의 송수신 과정과 동일하다.First, verifying whether the first communication terminal 431 can communicate with the third communication terminal 433 is as follows. 13 to 16 are diagrams illustrating a communication process between a first communication terminal and a third communication terminal according to an embodiment of the present invention. 13, the first communication terminal 431 connected to the first SDN switch 421 to find out the MAC address of the third communication terminal 433 for the purpose of IP communication with the third communication terminal 433 The ARP request message is transmitted to the first SDN switch 421. The transmitted message flows into port 1 of the first SDN switch 421, and the first SDN switch 421 looks up the flow table for processing the message. Since the header file information of the message matches the flow policy with the flow ID'a003', the message is forwarded to the second SDN switch 422 through the port 3 defined in the action field of the flow policy. Referring to FIG. 14, the second SDN switch 422 looks up a flow table for processing an ARP request message introduced through port 1. Since the header file information of the corresponding message matches the flow policy with the flow ID'b003', the request message is forwarded to the port 2 defined in the action field of the flow policy and finally transmitted to the third communication terminal 433. 15, the third communication terminal 433 receiving the ARP request message generates an ARP response message to transmit its MAC address to the first communication terminal 431 to the second SDN switch 422. Deliver. The second SDN switch 422 looks up the flow table to process the ARP response message introduced through the second port. Since the header file information of the response message matches the flow policy with flow ID'b004', the response message is forwarded through port 1 defined in the action field of the flow policy. Referring to FIG. 16, a first SDN switch 421 looks up a flow table for processing an ARP response message introduced through port 3. Since the header file information of the corresponding response message matches the flow policy with the flow ID'a004', the response message is forwarded to the port 1 defined in the action field of the corresponding flow policy and finally transmitted to the first communication terminal 431. The first communication terminal 431 can transmit and receive an ICMP request/response message with the third communication terminal 433 with the MAC address of the third communication terminal 433 included in the received ARP response message. It is the same as the previous ARP message transmission/reception process.

다음으로, 제 2 통신 단말(432)이 제 3 통신 단말(433)과 통신이 가능한지 검증하면 다음과 같다. 도 17 내지 도 20은 본 발명의 일 실시예에 따른 제 2 통신 단말과 제 3 통신 단말 간의 통신 과정을 설명하는 도면이다. 도 17을 참조하면, 제 1 SDN 스위치(421)와 연결된 제 2 통신 단말(432)이 제 3 통신 단말(433)과 IP 통신을 목적으로 제 3 통신 단말(433)의 MAC 주소를 알아내기 위해 ARP 요청 메시지를 제 1 SDN 스위치(421)로 전송한다. 전송된 메시지는 제 1 SDN 스위치(421)의 2번 포트로 유입되고, 제 1 SDN 스위치(421)는 해당 메시지의 처리를 위해 플로우 테이블을 룩업(Look-up)한다. 해당 메시지의 헤더 파일 정보가 플로우 ID 'a003'인 플로우 정책에 일치하므로 해당 플로우 정책의 액션 필드에서 정의한 3번 포트를 통해 제 2 SDN 스위치(422)로 메시지를 포워딩한다. 도 18을 참조하면, 제 2 SDN 스위치(422)는 1번 포트를 통해 유입된 ARP 요청 메시지의 처리를 위해 플로우 테이블을 룩업한다. 해당 메시지의 헤더 파일 정보가 플로우 ID 'b003'인 플로우 정책과 일치하므로 해당 플로우 정책의 액션 필드에서 정의한 2번 포트로 요청 메시지를 포워딩하여 최종적으로 제 3 통신 단말(433)로 전송한다. 도 19를 참조하면, ARP 요청 메시지를 수신한 제 3 통신 단말(433)은 자신의 MAC 주소를 제 2 통신 단말(431)로 전송하기 위하여 ARP 응답 메시지를 생성해 제 2 SDN 스위치(422)로 전달한다. 제 2 SDN 스위치(422)는 2번 포트를 통해 유입된 ARP 응답 메시지의 처리를 위해 플로우 테이블을 룩업한다. 해당 응답 메시지의 헤더 파일 정보가 플로우 ID 'b004'인 플로우 정책에 일치하므로 해당 플로우 정책의 액션 필드에서 정의한 1번 포트를 통해 응답 메시지를 포워딩한다. 도 20을 참조하면, 제 1 SDN 스위치(421)는 3번 포트를 통해 유입된 ARP 응답 메시지의 처리를 위해 플로우 테이블을 룩업한다. 해당 응답 메시지의 헤더 파일 정보가 플로우 ID 'a004'인 플로우 정책과 일치하므로 해당 플로우 정책의 액션 필드에서 정의한 2번 포트로 응답 메시지를 포워딩하여 최종적으로 제 2 통신 단말(432)로 전송한다. 제 2 통신 단말(431)은 수신한 ARP 응답 메시지에 포함된 제 3 통신 단말(433)의 MAC 주소를 가지고 제 3 통신 단말(433)과 ICMP 요청/응답메시지를 송수신할 수 있는데, 해당 과정은 앞의 ARP 메시지의 송수신 과정과 동일하다.Next, verifying whether the second communication terminal 432 can communicate with the third communication terminal 433 is as follows. 17 to 20 are diagrams illustrating a communication process between a second communication terminal and a third communication terminal according to an embodiment of the present invention. 17, the second communication terminal 432 connected to the first SDN switch 421 to find out the MAC address of the third communication terminal 433 for the purpose of IP communication with the third communication terminal 433 The ARP request message is transmitted to the first SDN switch 421. The transmitted message flows into port 2 of the first SDN switch 421, and the first SDN switch 421 looks up the flow table for processing the message. Since the header file information of the message matches the flow policy with the flow ID'a003', the message is forwarded to the second SDN switch 422 through the port 3 defined in the action field of the flow policy. Referring to FIG. 18, the second SDN switch 422 looks up a flow table to process an ARP request message introduced through port 1. Since the header file information of the corresponding message matches the flow policy with the flow ID'b003', the request message is forwarded to the port 2 defined in the action field of the flow policy and finally transmitted to the third communication terminal 433. Referring to FIG. 19, a third communication terminal 433 receiving an ARP request message generates an ARP response message to transmit its MAC address to the second communication terminal 431 to the second SDN switch 422. Deliver. The second SDN switch 422 looks up the flow table to process the ARP response message introduced through the second port. Since the header file information of the response message matches the flow policy with flow ID'b004', the response message is forwarded through port 1 defined in the action field of the flow policy. Referring to FIG. 20, a first SDN switch 421 looks up a flow table for processing an ARP response message introduced through port 3. Since the header file information of the response message matches the flow policy with the flow ID'a004', the response message is forwarded to the port 2 defined in the action field of the corresponding flow policy and finally transmitted to the second communication terminal 432. The second communication terminal 431 can transmit and receive an ICMP request/response message with the third communication terminal 433 with the MAC address of the third communication terminal 433 included in the received ARP response message. It is the same as the previous ARP message transmission/reception process.

이상에서 설명한 바와 같이, 제 2 SDN 스위치(422)의 플로우 테이블이 최적화되더라도 제 1 SDN 스위치(421)에 연결된 두 통신 단말(431, 432)이 제 2 SDN 스위치(422)에 연결된 제 3 통신 단말(433)을 목적지로 하여 통신이 가능하다. As described above, even if the flow table of the second SDN switch 422 is optimized, the two communication terminals 431 and 432 connected to the first SDN switch 421 are a third communication terminal connected to the second SDN switch 422. Communication is possible with (433) as the destination.

도 21은 본 발명의 일 실시예에 따른 SDN 스위치에서 플로우 테이블을 최적화하는 방법을 설명하는 흐름도로서, SDN 제어기(410)의 개입 없이 SDN 스위치(422) 레벨에서 동작한다. 우선 SDN 제어기(410)가 Re-active 모드로 동작할 때, 미지의 패킷이 SDN 스위치(422)로 수신되면 SDN 스위치(422)는 해당 패킷의 일부 정보가 포함된 헤더 파일을 이용하여 SDN 제어기(410)로 패킷-인 메시지를 전송한다. 해당 패킷-인 메시지를 통해 SDN 제어기(410)는 SDN 스위치(422)가 해당 패킷을 목적지로 전달하도록 플로우 수정(Flow Modify) 메시지를 생성하여 SDN 스위치(422)로 전송한다. SDN 스위치(422)는 수신한 플로우 수정메시지에 포함된 정보를 이용하여 플로우 정책을 자신의 플로우 테이블에 등록한다. 이와 같이 플로우 수정 메시지가 SDN 제어기(410)에서 SDN 스위치(422)로 전달되는 이벤트가 발생할 때, 해당 이벤트가 트리거가 되어 도 21을 참조한 방법이 동작하게 된다.21 is a flowchart illustrating a method of optimizing a flow table in an SDN switch according to an embodiment of the present invention, and operates at the SDN switch 422 level without the intervention of the SDN controller 410. First, when the SDN controller 410 operates in the Re-active mode, when an unknown packet is received by the SDN switch 422, the SDN switch 422 uses a header file including some information of the corresponding packet to the SDN controller ( 410) and transmits a packet-in message. Through the packet-in message, the SDN controller 410 generates a flow modification message so that the SDN switch 422 transmits the packet to the destination and transmits it to the SDN switch 422. The SDN switch 422 registers a flow policy in its own flow table by using the information included in the received flow modification message. As described above, when an event in which the flow modification message is transmitted from the SDN controller 410 to the SDN switch 422 occurs, the event is triggered and the method of FIG. 21 is operated.

도 21을 참조하면, 단계 S2101에서, SDN 스위치(422)는 SDN 제어기(410)로부터 플로우 수정(Flow Modify) 메시지가 수신되는지 확인한다. 플로우 수정 메시지가 수신되면, 단계 S2102에서, SDN 스위치(422)는 수신된 상기 플로우 수정 메시지에서 패킷의 플로우를 정의해주기 위한 요소인 입/출력 포트 번호를 추출한다. 해당 입/출력 포트 번호는 SDN 스위치(422)의 어떤 입력 포트로 들어온 패킷을 어떤 출력 포트로 내보낼지에 대한 플로우 정책 정의에 활용된다.Referring to FIG. 21, in step S2101, the SDN switch 422 checks whether a flow modification message is received from the SDN controller 410. When the flow modification message is received, in step S2102, the SDN switch 422 extracts an input/output port number, which is an element for defining the flow of the packet, from the received flow modification message. The corresponding input/output port number is used to define a flow policy on which packets of the SDN switch 422 are sent, to which output ports.

SDN 스위치(422)는 기존 자신의 플로우 테이블에 기 등록되어 있는 N개의 플로우 정책 중에서 상기 추출한 입/출력 포트 번호와 일치하는 입/출력 포트 번호를 가지고 있는 플로우 정책을 추출하는 과정을 수행한다. 구체적으로, 단계 S2103에서, SDN 스위치(422)는 자신의 플로우 테이블의 i(1<i≤N)번째 플로우 정책의 입/출력 포트 번호를 추출하고, 단계 S2104에서 그 i번째 플로우 정책의 입력 포트 번호와 상기 단계 S2102에서 플로우 수정 메시지로부터 추출한 입력 포트 번호가 일치하는지 확인한다. 일치할 경우, 단계 S2105에서, SDN 스위치(422)는 상기 i번째 플로우 정책의 출력 포트 번호와 상기 단계 S2102에서 플로우 수정 메시지로부터 추출한 출력 포트 번호가 일치하는지 확인한다. 출력 포트 번호도 일치할 경우, SDN 스위치(422)는 상기 i번째 플로우 정책과 상기 플로우 수정 메시지에 포함된 플로우 정책을 이용하여 가상 플로우 테이블을 생성한다. SDN 스위치(422)는 자신의 플로우 테이블에 기 등록되어 있는 N개의 모든 플로우 정책들에 대해 상기 단계 S2103 내지 단계 S2106을 반복 수행한다. 따라서, 최종적으로 상기 플로우 수정 메시지에 포함된 플로우 정책, 그리고 SDN 스위치(422)의 플로우 테이블에 등록되어 있는 N개의 플로우 정책들 중에서 상기 플로우 수정 메시지에 포함된 플로우 정책과 입/출력 포트 번호가 동일한 모든 플로우 정책이 하나의 가상 플로우 테이블에 등록된다. 가상 플로우 테이블은 SDN 스위치(422)로 유입되는 패킷들의 처리를 위한 플로우 정책이 등록 및 관리되는 실제 플로우 테이블의 형태와 유사하나 실제 패킷 처리를 위한 플로우 정책들이 등록되는 것은 아니다. 가상 플로우 테이블은 중복되는 동작을 수행하는 플로우 정책들을 처리하기 위한 가상의 임시 테이블이기 때문에 해당 가상 테이블에 등록된 플로우 정책에는 플로우 ID가 할당되지는 않으며 중복된 플로우 정책들의 최적화가 완료되면 제거되는 생성 주기를 가진다. 참고로 생성된 가상 테이블은 일정 생성 주기를 가지기 때문에 SDN 스위치(422) 내부에 따로 고정된 메모리 영역을 할당할 필요없이 버퍼 메모리영역의 사이즈만큼 필요시 동적 할당을 통해 메모리 영역을 확보하기 때문에 SDN 스위치(422)에 큰 부하를 주지는 않으면서 활용이 가능하다.The SDN switch 422 performs a process of extracting a flow policy having an input/output port number matching the extracted input/output port number from among N flow policies previously registered in its own flow table. Specifically, in step S2103, the SDN switch 422 extracts the input/output port number of the i (1<i≤N) th flow policy of its own flow table, and in step S2104, the input port of the i th flow policy It is checked whether the number matches the input port number extracted from the flow modification message in step S2102. If they match, in step S2105, the SDN switch 422 checks whether the output port number of the i-th flow policy and the output port number extracted from the flow modification message in step S2102 match. If the output port number also matches, the SDN switch 422 generates a virtual flow table using the i-th flow policy and the flow policy included in the flow modification message. The SDN switch 422 repeats steps S2103 to S2106 for all of the N flow policies previously registered in its own flow table. Therefore, the flow policy included in the flow modification message and the flow policy included in the flow modification message among the N flow policies registered in the flow table of the SDN switch 422 are the same. All flow policies are registered in one virtual flow table. The virtual flow table is similar to a form of an actual flow table in which a flow policy for processing packets flowing to the SDN switch 422 is registered and managed, but flow policies for processing an actual packet are not registered. Since the virtual flow table is a virtual temporary table for processing flow policies that perform overlapping operations, flow IDs are not assigned to flow policies registered in the virtual table, and are created that are removed when the optimization of the duplicate flow policies is completed. Have a cycle. For reference, since the created virtual table has a certain generation period, it is not necessary to allocate a fixed memory area inside the SDN switch 422, and the memory area is secured through dynamic allocation when necessary as much as the size of the buffer memory area. It can be utilized without giving a large load to (422).

이와 같이 가상 플로우 테이블의 생성이 완료되면, 단계 S2107에서, SDN 스위치(422)는, 상기 가상 플로우 테이블에 등록된 플로우 정책들의 매칭 필드 항목 중에서 상호 일치하는 항목을 제외하고 일치하지 않은 항목은 널 값으로 대체하여 하나의 플로우 정책으로 재정의한다. 널 값으로 대체한다는 의미는 매칭되는 조건 항목을 제거함을 의미한다. 단계 S2108에서, SDN 스위치(422)는, 이렇게 하나의 정책으로 최적화되어 정의된 플로우 정책을 고유 플로우 정책으로서 실제 플로우 테이블에 등록한다. 이 과정에서 SDN 스위치(422)는 기존에 등록되어 있던 중복되는 플로우 정책들을 삭제하고 상기 최적화되어 정의된 플로우 정책에 새로운 플로우 ID를 부여하여 등록할 수 있고, 또는 기존 중복되는 플로우 정책들 중 하나만 남겨두고 나머지는 삭제하면서 남긴 플로우 정책을 상기 최적화되어 정의된 플로우 정책에 맞게 수정할 수 있다. When the generation of the virtual flow table is completed in this way, in step S2107, the SDN switch 422, except for the matching field items of the flow policies registered in the virtual flow table, non-matching items are null values. And redefine one flow policy. Substituting a null value means removing the matching condition item. In step S2108, the SDN switch 422 registers the flow policy optimized and defined as a single policy in the actual flow table as a unique flow policy. In this process, the SDN switch 422 deletes the existing overlapping flow policies and assigns a new flow ID to the optimized and defined flow policy to register, or leaves only one of the existing overlapping flow policies. The remaining flow policy can be modified according to the optimized and defined flow policy, while the remaining flow policy is deleted.

한편, 실제 플로우 테이블에 상기 수신된 플로우 수정 메시지에 포함된 플로우 정책의 입/출력 포트 번호와 일치하는 플로우 정책이 없는 경우, 단계 S2110에서, SDN 스위치(422)는 상기 수신된 플로우 수정 메시지에 포함된 플로우 정책에 따라 실제 플로우 테이블에 새로운 플로우 정책을 등록한다. Meanwhile, when there is no flow policy in the actual flow table that matches the input/output port number of the flow policy included in the received flow modification message, in step S2110, the SDN switch 422 is included in the received flow modification message. A new flow policy is registered in the actual flow table according to the established flow policy.

실제 플로우 테이블에 새로운 플로우 정책이 등록되거나, 상기 최적화된 플로우 정책이 갱신되어 등록될 경우, 단계 S2109에서, SDN 스위치(422)는, 최종 등록된 플로우 정책 정보를 SDN 제어기(410)에 전송한다 .When a new flow policy is registered in the actual flow table or the optimized flow policy is updated and registered, in step S2109, the SDN switch 422 transmits the finally registered flow policy information to the SDN controller 410.

본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.While this specification includes many features, such features should not be construed as limiting the scope or claims of the invention. In addition, features described in separate embodiments herein may be combined and implemented in a single embodiment. Conversely, various features described in a single embodiment herein may be individually implemented in various embodiments, or may be properly combined and implemented.

도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로, 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.Although the operations have been described in a specific order in the drawings, it should not be understood that such operations are performed in a specific order as shown, or as a series of consecutive sequences, or that all described operations are performed to obtain a desired result. . Multitasking and parallel processing can be advantageous in certain environments. In addition, it should be understood that classification of various system components in the above-described embodiments does not require such classification in all embodiments. The above-described program components and systems may generally be implemented as a package in a single software product or multiple software products.

상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.The method of the present invention as described above may be implemented as a program and stored in a recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.) in a computer-readable form. This process can be easily carried out by a person of ordinary skill in the art to which the present invention pertains, and thus will not be described in detail.

이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.The present invention described above is capable of various substitutions, modifications, and changes without departing from the technical spirit of the present invention for those of ordinary skill in the technical field to which the present invention belongs. It is not limited by the drawings.

110, 310, 410 : SDN 제어기
120, 130, 320, 421, 422 : SDN 스위치
121, 122, 131, 330, 431, 432, 433 : 통신 단말
110, 310, 410: SDN controller
120, 130, 320, 421, 422: SDN switch
121, 122, 131, 330, 431, 432, 433: communication terminal

Claims (9)

SDN(Software Defined Networking) 스위치에서 플로우 테이블을 최적화하는 방법에 있어서,
SDN 제어기로 플로우 정책을 요청하고 이에 대한 응답으로 상기 SDN 제어기로부터 플로우 정책을 수신하는 단계;
상기 플로우 테이블에서 상기 수신된 플로우 정책과 동일한 동작을 수행하는 플로우 정책을 식별하는 단계; 및
상기 식별된 플로우 정책과 상기 수신된 플로우 정책의 매칭 필드 항목들 중 상호 일치하는 매칭 필드 항목의 값은 유지하고 일치하지 않은 매칭 필드 항목의 값은 널 값으로 대체하여 하나의 플로우 정책으로 재정의하여 상기 플로우 테이블에 등록하는 단계;를 포함하는 방법.
In a method for optimizing a flow table in a Software Defined Networking (SDN) switch,
Requesting a flow policy from an SDN controller and receiving a flow policy from the SDN controller in response thereto;
Identifying a flow policy that performs the same operation as the received flow policy in the flow table; And
Among the matching field items of the identified flow policy and the received flow policy, the value of the matching field item that matches each other is maintained, and the value of the matching field item that does not match is replaced with a null value to redefine it to one flow policy. The method comprising; registering in the flow table.
제 1 항에 있어서,
상기 식별하는 단계는,
상기 플로우 테이블에서 상기 수신된 플로우 정책에 정의된 입/출력 포트 번호와 동일한 입/출력 포트 번호를 갖는 플로우 정책을 상기 동일한 동작을 수행하는 플로우 정책으로 식별하는 것을 특징으로 하는 방법.
The method of claim 1,
The identifying step,
And identifying a flow policy having the same input/output port number as the input/output port number defined in the received flow policy in the flow table as a flow policy performing the same operation.
제 1 항에 있어서,
상기 등록하는 단계는,
상기 수신된 플로우 정책과 상기 식별된 플로우 정책을 포함하는 가상 플로우 테이블을 생성하는 단계;
상기 가상 플로우 테이블에서 상기 수신된 플로우 정책과 상기 식별된 플로우 정책을 하나의 플로우 정책으로 재정의하는 단계;
상기 플로우 테이블에서 상기 식별된 플로우 정책을 삭제하고 상기 재정의한 하나의 플로우 정책을 등록하는 단계; 및
상기 가상 플로우 테이블을 삭제하는 단계를 포함하는 것을 특징으로 하는 방법.
The method of claim 1,
The registering step,
Generating a virtual flow table including the received flow policy and the identified flow policy;
Redefining the received flow policy and the identified flow policy as one flow policy in the virtual flow table;
Deleting the identified flow policy from the flow table and registering the redefined one flow policy; And
And deleting the virtual flow table.
제 3 항에 있어서,
상기 재정의하는 단계는,
상기 수신된 플로우 정책 및 상기 식별된 플로우 정책의 매칭 필드 항목들 중 일치하는 매칭 필드 항목의 값은 유지하고 일치하지 않는 매칭 필드 항목의 값은 널 값으로 대체하여 하나의 플로우 정책을 생성하는 것을 특징으로 하는 방법.
The method of claim 3,
The redefining step,
A flow policy is generated by maintaining a value of a matching field item among matching field items of the received flow policy and the identified flow policy and replacing a value of a matching field item that does not match with a null value. How to do it.
플로우 테이블을 최적화하는 SDN(Software Defined Networking) 스위치에 있어서,
프로세서; 및
상기 프로세서에 의해 실행 가능한 명령어 및 상기 플로우 테이블을 저장하는 메모리;를 포함하고,
상기 프로세서는,
SDN 제어기로 플로우 정책을 요청하고 이에 대한 응답으로 상기 SDN 제어기로부터 플로우 정책을 수신하고;
상기 플로우 테이블에서 상기 수신된 플로우 정책과 동일한 동작을 수행하는 플로우 정책을 식별하며;
상기 식별된 플로우 정책과 상기 수신된 플로우 정책의 매칭 필드 항목들 중 상호 일치하는 매칭 필드 항목의 값은 유지하고 일치하지 않은 매칭 필드 항목의 값은 널 값으로 대체하여 하나의 플로우 정책으로 재정의하여 상기 플로우 테이블에 등록하는 것을 특징으로 하는 SDN 스위치.
In the SDN (Software Defined Networking) switch that optimizes the flow table,
Processor; And
Including; a memory for storing the flow table and instructions executable by the processor,
The processor,
Requesting a flow policy from the SDN controller and receiving a flow policy from the SDN controller in response thereto;
Identifying a flow policy that performs the same operation as the received flow policy in the flow table;
Among the matching field items of the identified flow policy and the received flow policy, the value of the matching field item that matches each other is maintained, and the value of the matching field item that does not match is replaced with a null value to redefine it to one flow policy. SDN switch, characterized in that to register in the flow table.
제 5 항에 있어서,
상기 프로세서는,
상기 플로우 테이블에서 상기 수신된 플로우 정책에 정의된 입/출력 포트 번호와 동일한 입/출력 포트 번호를 갖는 플로우 정책을 상기 동일한 동작을 수행하는 플로우 정책으로 식별하는 것을 특징으로 하는 SDN 스위치.
The method of claim 5,
The processor,
And a flow policy having the same input/output port number as the input/output port number defined in the received flow policy in the flow table as a flow policy performing the same operation.
제 5 항에 있어서,
상기 프로세서는,
상기 수신된 플로우 정책과 상기 식별된 플로우 정책을 포함하는 가상 플로우 테이블을 생성하고, 상기 가상 플로우 테이블에서 상기 수신된 플로우 정책과 상기 식별된 플로우 정책을 하나의 플로우 정책으로 재정의하며, 상기 플로우 테이블에서 상기 식별된 플로우 정책을 삭제하고 상기 재정의한 하나의 플로우 정책을 등록하고, 상기 가상 플로우 테이블을 삭제하는 것을 특징으로 하는 SDN 스위치.
The method of claim 5,
The processor,
Generate a virtual flow table including the received flow policy and the identified flow policy, redefine the received flow policy and the identified flow policy as one flow policy in the virtual flow table, and And deleting the identified flow policy, registering the redefined one flow policy, and deleting the virtual flow table.
제 7 항에 있어서,
상기 프로세서는,
상기 가상 플로우 테이블에서 상기 수신된 플로우 정책 및 상기 식별된 플로우 정책의 매칭 필드 항목들 중 일치하는 매칭 필드 항목의 값은 유지하고 일치하지 않는 매칭 필드 항목의 값은 널 값으로 대체하여 하나의 플로우 정책을 생성하는 것을 특징으로 하는 SDN 스위치.
The method of claim 7,
The processor,
In the virtual flow table, one flow policy by maintaining the value of the matched field item among the matching field items of the received flow policy and the identified flow policy, and replacing the value of the matching field item that does not match with a null value. SDN switch, characterized in that to generate a.
제 1 항 내지 제 4 항 중 어느 한 항에 따른 방법을 컴퓨터 시스템을 통해 실행하는 컴퓨터 프로그램으로서 기록매체에 기록된 컴퓨터 프로그램.A computer program recorded on a recording medium as a computer program for executing the method according to any one of claims 1 to 4 through a computer system.
KR1020190095031A 2019-08-05 2019-08-05 Method for optimizing flow table for network service based on server-client in software defined networking environment and sdn switch thereofor KR20210016802A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190095031A KR20210016802A (en) 2019-08-05 2019-08-05 Method for optimizing flow table for network service based on server-client in software defined networking environment and sdn switch thereofor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190095031A KR20210016802A (en) 2019-08-05 2019-08-05 Method for optimizing flow table for network service based on server-client in software defined networking environment and sdn switch thereofor

Publications (1)

Publication Number Publication Date
KR20210016802A true KR20210016802A (en) 2021-02-17

Family

ID=74732013

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190095031A KR20210016802A (en) 2019-08-05 2019-08-05 Method for optimizing flow table for network service based on server-client in software defined networking environment and sdn switch thereofor

Country Status (1)

Country Link
KR (1) KR20210016802A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230104129A1 (en) * 2021-10-04 2023-04-06 Juniper Networks, Inc. Network policy generation for continuous deployment
US11700237B2 (en) 2018-09-28 2023-07-11 Juniper Networks, Inc. Intent-based policy generation for virtual networks
US12101227B2 (en) 2022-12-30 2024-09-24 Juniper Networks, Inc. Network policy validation

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11700237B2 (en) 2018-09-28 2023-07-11 Juniper Networks, Inc. Intent-based policy generation for virtual networks
US20230104129A1 (en) * 2021-10-04 2023-04-06 Juniper Networks, Inc. Network policy generation for continuous deployment
US11870642B2 (en) * 2021-10-04 2024-01-09 Juniper Networks, Inc. Network policy generation for continuous deployment
US12101227B2 (en) 2022-12-30 2024-09-24 Juniper Networks, Inc. Network policy validation

Similar Documents

Publication Publication Date Title
US9948553B2 (en) System and method for virtual network-based distributed multi-domain routing control
JP5621778B2 (en) Content-based switch system and content-based switch method
KR101703088B1 (en) Aggregated routing method based on sdn and system thereof
RU2562438C2 (en) Network system and network management method
CN103026660B (en) Network policy configuration method, management equipment and network management centre device
JP2019500822A (en) Virtual machine packet control
KR102155262B1 (en) Elastic honeynet system and method for managing the same
JP2015503274A (en) System and method for mitigating congestion in a fat tree topology using dynamic allocation of virtual lanes
WO2021098425A1 (en) Qos policy method, device, and computing device for service configuration
CN103997414A (en) Configuration information generation method and network control unit
CN104394080A (en) Method and device for achieving function of security group
KR20210016802A (en) Method for optimizing flow table for network service based on server-client in software defined networking environment and sdn switch thereofor
WO2021120633A1 (en) Load balancing method and related device
US20130275620A1 (en) Communication system, control apparatus, communication method, and program
KR101746105B1 (en) Openflow switch capable of service chaining
KR20220029142A (en) Sdn controller server and method for analysing sdn based network traffic usage thereof
KR101729944B1 (en) Method for supplying ip address by multi tunant network system based on sdn
KR101934908B1 (en) Method for controlling of pc power by aggregated routing based on sdn
KR101729945B1 (en) Method for supporting multi tunant by network system based on sdn
KR101729939B1 (en) Multi tunant network system based on sdn
CN115460213A (en) Service processing method and device, electronic equipment and computer readable medium
KR101363338B1 (en) Method, appratus, system and computer-readable recording medium for assisting communication between terminal by using openflow
JP2017184195A (en) Communication management device, communication management method and program
KR101806376B1 (en) Multi tunant network system based on sdn capable of supplying ip address
KR101739097B1 (en) Service chaining method in openflow switch