KR101924712B1 - Method for transmitting packet and openflow switch - Google Patents

Method for transmitting packet and openflow switch Download PDF

Info

Publication number
KR101924712B1
KR101924712B1 KR1020170011073A KR20170011073A KR101924712B1 KR 101924712 B1 KR101924712 B1 KR 101924712B1 KR 1020170011073 A KR1020170011073 A KR 1020170011073A KR 20170011073 A KR20170011073 A KR 20170011073A KR 101924712 B1 KR101924712 B1 KR 101924712B1
Authority
KR
South Korea
Prior art keywords
packet
flow
network
transmitting
type
Prior art date
Application number
KR1020170011073A
Other languages
Korean (ko)
Other versions
KR20180086964A (en
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 KR1020170011073A priority Critical patent/KR101924712B1/en
Publication of KR20180086964A publication Critical patent/KR20180086964A/en
Application granted granted Critical
Publication of KR101924712B1 publication Critical patent/KR101924712B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • 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
    • 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

Abstract

패킷을 전송하기 위한 방법 및 오픈플로우 스위치가 제공된다. 오픈플로우 스위치는 소프트웨어 정의 네트워크(Software Defined Network: SDN) 내의 장치이고, 수신된 패킷을 다른 장치고 전송한다. 오픈플로우 스위치는 수신된 패킷의 식별 정보에 기초하여 패킷이 전송되는 네트워크의 종류를 결정하고, 결정된 네트워크의 종류에 기초하여 패킷을 전송한다.A method for transmitting packets and an open flow switch are provided. An open flow switch is a device within a Software Defined Network (SDN), which forwards received packets to another device. The open flow switch determines the type of the network to which the packet is transmitted based on the identification information of the received packet, and transmits the packet based on the determined network type.

Description

패킷 전송 방법 및 오픈플로우 스위치{METHOD FOR TRANSMITTING PACKET AND OPENFLOW SWITCH}[0001] METHOD FOR TRANSMITTING PACKET AND OPENFLOW SWITCH [0002]

아래의 실시예는 패킷을 전송하기 위한 방법 패킷을 전송하는 오픈플로우 스위치에 관한 것으로, 보다 상세하게는 소프트웨어 정의 네트워크 내의 오픈플로우 스위치에 관한 것이다.The following embodiment relates to an open flow switch for transmitting a method packet for transmitting a packet, and more particularly to an open flow switch in a software defined network.

네트워크 기술의 발달과 스마트폰의 보급으로 인해 네트워크 트래픽이 증가함에 따라 네트워크의 규모가 점점 거대해지고 복잡해지고 있다. 이에 따라, 유연한 제어와 효과적인 네트워크 관리를 위해 소프트웨어 정의 네트워크(Software Defined Network: SDN) 기술이 개발되었다.As the network traffic increases due to the development of the network technology and the spread of the smart phone, the scale of the network becomes larger and more complicated. As a result, Software Defined Network (SDN) technology has been developed for flexible control and effective network management.

SDN 기술은 기존의 네트워크 장비를 데이터 플레인(data plane)과 컨트롤 플레인(control plane)으로 분리하여 프로그래밍 가능한 네트워크를 구현할 수 있다. 이때, 컨트롤 플레인은 중앙의 컨트롤러가 담당하고, 데이터 플레인은 라우터와 오픈플로우 스위치 등의 네트워크 장비가 담당하여 여러 네트워크를 제어하기 때문에 자원의 가시성(visibility)을 확보할 수 있다. SDN 기술에서, 컨트롤러는 오픈플로우 같은 Southbound API를 이용하여 네트워크 장비들을 제어할 수 있다. 오픈플로우란 데이터 플레인과 컨트롤 플레인 사이에 통신을 가능하게 해주는 표준화된 프로토콜을 말한다.SDN technology can implement a programmable network by separating existing network equipment into a data plane and a control plane. At this time, since the control plane is controlled by the central controller, and the data plane is controlled by the network equipment such as the router and the open flow switch, the visibility of the resources can be ensured. In SDN technology, the controller can control network devices using the Southbound API, such as Open Flow. An open flow is a standardized protocol that enables communication between the data plane and the control plane.

한국공개특허 제10-2015-0135041호(공개일 2015년 12월 02일)에는 오픈플로우 라우팅 장치 및 방법이 공개되어 있다. 공개된 발명은 클라우드 컴퓨팅에 기반한 서비스로서의 보안(SECaaS) 시스템에서의 오픈플로우 라우팅 시, 각각 보안 서비스를 제공하는 복수의 가상 머신과 VPN 게이트웨이 사이의 유효 경로들 및 가상 머신 간의 유효 경로들을 컨트롤러가 검출하고, 컨트롤러가 검출한 유효 경로 별로 링크 비용 및 프로세싱 비용에 기초하여 메트릭 가중치를 산출하고, 컨트롤러가 메트릭 가중치에 기초하여 유효 경로들에 대해 최소 비용 경로를 설정하고, 컨트롤러가 오픈플로우 스위치 및 오픈 브이스위치(Open vSwitch, OVS)에 오픈플로우 프로토콜을 통해 설정한 최소 비용 경로를 플로우 테이블로 저장하되, 플로우 테이블에 기초하여 오픈플로우 스위치 및 오픈 브이스위치 중 적어도 하나가 테넌트의 패킷을 최소 비용 경로에 따라 전달한다.Korean Patent Publication No. 10-2015-0135041 (published on December 02, 2015) discloses an open flow routing apparatus and method. In the open flow routing in a security (SECaaS) system as a service based on cloud computing, the disclosed invention detects valid paths between a plurality of virtual machines providing security services and VPN gateways and effective paths between virtual machines, respectively, Calculating a metric weight based on the link cost and the processing cost for each effective path detected by the controller, setting the minimum cost path for the valid paths based on the metric weight, The method of claim 1, wherein the minimum cost path established through the open flow protocol to the switch (Open vSwitch, OVS) is stored as a flow table, and at least one of the open flow switch and the open V switch, based on the flow table, .

일 실시예는 패킷 전송 방법을 제공할 수 있다.One embodiment may provide a packet transmission method.

일 실시예는 소프트웨어 정의 네트워크 내의 오픈플로우 스위치를 제공할 수 있다.One embodiment may provide an open flow switch in a software defined network.

일 측면에 따른, 소프트웨어 정의 네트워크(Software Defined Network: SDN) 내의 오픈플로우(openflow) 스위치에 의해 수행되는 패킷(packet) 전송 방법은, 패킷을 수신하는 단계; 상기 패킷 내에 포함된 식별 정보에 기초하여 상기 패킷이 전송되는 네트워크의 종류를 결정하는 단계; 및 상기 결정된 네트워크의 종류에 기초하여 상기 패킷을 전송하는 단계를 포함한다.According to an aspect, a packet transmission method performed by an open flow switch in a Software Defined Network (SDN) comprises: receiving a packet; Determining a type of a network to which the packet is transmitted based on the identification information included in the packet; And transmitting the packet based on the determined network type.

상기 네트워크의 종류는, 내부(internal) 네트워크 및 외부(external) 네트워크를 포함할 수 있다.The type of the network may include an internal network and an external network.

상기 패킷이 전송되는 네트워크의 종류를 결정하는 단계는, 상기 패킷 내에 포함된 상기 식별 정보를 추출하는 단계; 및 상기 식별 정보가 나타내는 플로우가 내부 네트워크 인지 또는 외부 네트워크 인지 여부를 판단하는 단계를 포함할 수 있다.Wherein the step of determining the type of the network to which the packet is transmitted comprises: extracting the identification information included in the packet; And determining whether the flow represented by the identification information is an internal network or an external network.

상기 결정된 네트워크의 종류에 기초하여 상기 패킷을 전송하는 단계는, 상기 네트워크의 종류가 상기 내부 네트워크로 결정된 경우, 상기 내부 네트워크에 대해 설정된 제1 플로우 테이블들(flow tables)을 이용하여 상기 패킷을 전송하는 단계; 및 상기 네트워크의 종류가 상기 외부 네트워크로 결정된 경우, 상기 외부 네트워크에 대해 설정된 제2 플로우 테이블들을 이용하여 상기 패킷을 전송하는 단계를 포함할 수 있다.Wherein the step of transmitting the packet based on the determined network type comprises the steps of: when the type of the network is determined as the internal network, transmitting the packet using first flow tables set for the internal network; ; And if the type of the network is determined to be the external network, transmitting the packet using second flow tables set for the external network.

상기 제1 플로우 테이블들 각각은 상기 제1 플로우 테이블의 플로우가 상기 내부 네트워크에 설정됨을 나타내는 제1 식별 값을 가지고, 상기 제2 플로우 테이블들 각각은 상기 제2 플로우 테이블의 플로우가 상기 외부 네트워크에 설정됨을 나타내는 제2 식별 값을 가질 수 있다.Wherein each of the first flow tables has a first identification value indicating that the flow of the first flow table is set in the internal network and each of the second flow tables has a flow of the second flow table And may have a second identification value indicating that it is set.

상기 제1 플로우 테이블들을 이용하여 상기 패킷을 전송하는 단계는, 상기 제1 플로우 테이블들 중 상기 식별 정보에 대응하는 매칭 플로우를 결정하는 단계; 상기 매칭 플로우에 설정된 인스트럭션(instruction)을 실행하는 단계; 및 상기 매칭 플로우에 기초하여 상기 패킷을 전송하는 단계를 포함할 수 있다.Wherein the transmitting the packet using the first flow tables comprises: determining a matching flow corresponding to the identification information of the first flow tables; Executing an instruction set in the matching flow; And transmitting the packet based on the matching flow.

상기 제1 플로우 테이블들을 이용하여 상기 패킷을 전송하는 단계는, 상기 제1 플로우 테이블들 중 상기 식별 정보에 대응하는 매칭 플로우를 결정하지 못한 경우, 상기 SDN의 컨트롤러(controller)로 상기 패킷을 전송하는 단계; 상기 컨트롤러로부터 추가 플로우를 수신하는 단계; 및 상기 추가 플로우를 이용하여 상기 패킷을 전송하는 단계를 포함할 수 있다.The transmitting of the packet using the first flow tables may include transmitting the packet to a controller of the SDN when the matching flow corresponding to the identification information is not determined among the first flow tables step; Receiving an additional flow from the controller; And transmitting the packet using the additional flow.

상기 제1 플로우 테이블들을 이용하여 상기 패킷을 전송하는 단계는, 상기 추가 플로우를 이용하여 상기 제1 플로우 테이블들을 갱신하는 단계를 더 포함할 수 있다.The step of transmitting the packet using the first flow tables may further comprise updating the first flow tables using the additional flow.

상기 제2 플로우 테이블들을 이용하여 상기 패킷을 전송하는 단계는, 상기 제2 플로우 테이블들 중 상기 식별 정보에 대응하는 매칭 플로우를 결정하는 단계; 상기 매칭 플로우에 설정된 인스트럭션을 실행하는 단계; 및 상기 매칭 플로우에 기초하여 상기 패킷을 전송하는 단계를 포함할 수 있다.Wherein the transmitting the packet using the second flow tables comprises: determining a matching flow corresponding to the identification information of the second flow tables; Executing an instruction set in the matching flow; And transmitting the packet based on the matching flow.

다른 일 측면에 따른, 소프트웨어 정의 네트워크(Software Defined Network: SDN) 내의 오픈플로우(openflow) 스위치는, 패킷을 전송하는 프로그램을 저장하는 메모리; 및 상기 프로그램을 실행하는 프로세서를 포함하고, 상기 프로그램은, 패킷을 수신하는 단계; 상기 패킷 내에 포함된 식별 정보에 기초하여 상기 패킷이 전송되는 네트워크의 종류를 결정하는 단계; 및 상기 결정된 네트워크의 종류에 기초하여 상기 패킷을 전송하는 단계를 수행한다.According to another aspect, an open flow switch in a Software Defined Network (SDN) comprises: a memory for storing a program for transmitting a packet; And a processor for executing the program, the program comprising: receiving a packet; Determining a type of a network to which the packet is transmitted based on the identification information included in the packet; And transmitting the packet based on the determined network type.

상기 네트워크의 종류는, 내부(internal) 네트워크 및 외부(external) 네트워크를 포함할 수 있다.The type of the network may include an internal network and an external network.

상기 패킷이 전송되는 네트워크의 종류를 결정하는 단계는, 상기 패킷 내에 포함된 상기 식별 정보를 추출하는 단계; 및 상기 식별 정보가 나타내는 플로우가 내부 네트워크 인지 또는 외부 네트워크인지 여부를 판단하는 단계를 포함할 수 있다.Wherein the step of determining the type of the network to which the packet is transmitted comprises: extracting the identification information included in the packet; And determining whether the flow represented by the identification information is an internal network or an external network.

상기 결정된 네트워크의 종류에 기초하여 상기 패킷을 전송하는 단계는, 상기 네트워크의 종류가 상기 내부 네트워크로 결정된 경우, 상기 내부 네트워크에 대해 설정된 제1 플로우 테이블들(flow tables)을 이용하여 상기 패킷을 전송하는 단계; 및 상기 네트워크의 종류가 상기 외부 네트워크로 결정된 경우, 상기 외부 네트워크에 대해 설정된 제2 플로우 테이블들을 이용하여 상기 패킷을 전송하는 단계를 포함할 수 있다.Wherein the step of transmitting the packet based on the determined network type comprises the steps of: when the type of the network is determined as the internal network, transmitting the packet using first flow tables set for the internal network; ; And if the type of the network is determined to be the external network, transmitting the packet using second flow tables set for the external network.

패킷 전송 방법이 제공된다.A packet transmission method is provided.

소프트웨어 정의 네트워크 내의 오픈플로우 스위치기 제공된다.An open flow switch within the software defined network is provided.

도 1은 일 예에 따른 소프트웨어 정의 네트워크를 도시한다.
도 2는 일 실시예에 따른 오픈플로우 스위치의 구성도이다.
도 3은 일 실시예에 따른 패킷 전송 방법의 흐름도이다.
도 4는 일 예에 따른 패킷이 전송되는 네트워크의 종류를 결정하는 방법의 흐름도이다.
도 5는 일 예에 따른 네트워크 종류에 기초하여 패킷을 전송하는 방법의 흐름도이다.
도 6은 일 예에 따른 제1 플로우 테이블들을 이용하여 패킷을 전송하는 방법의 흐름도이다.
도 7은 일 예에 따른 제2 플로우 테이블들을 이용하여 패킷을 전송하는 방법의 흐름도이다.
도 8은 일 예에 따른 추가 플로우를 이용하여 패킷을 전송하는 방법의 흐름도이다.
도 9는 일 예에 따른 오픈플로우 스위치에 수행되는 패킷 전송 방법이다.
Figure 1 illustrates a software defined network according to an example.
2 is a configuration diagram of an open flow switch according to an embodiment.
3 is a flowchart of a packet transmission method according to an embodiment.
4 is a flow diagram of a method for determining the type of network to which a packet is sent according to an example.
5 is a flow diagram of a method for transmitting a packet based on a network type according to an example.
6 is a flowchart of a method of transmitting a packet using first flow tables according to an example.
7 is a flowchart of a method of transmitting a packet using second flow tables according to an example.
8 is a flow diagram of a method for transmitting a packet using an additional flow according to an example.
9 is a packet transmission method performed on an open flow switch according to an example.

이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.In the following, embodiments will be described in detail with reference to the accompanying drawings. However, the scope of the patent application is not limited or limited by these embodiments. Like reference symbols in the drawings denote like elements.

아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Various modifications may be made to the embodiments described below. It is to be understood that the embodiments described below are not intended to limit the embodiments, but include all modifications, equivalents, and alternatives to them.

실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used only to illustrate specific embodiments and are not intended to limit the embodiments. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises" or "having" and the like refer to the presence of stated features, integers, steps, operations, elements, components, or combinations thereof, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this embodiment belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In the following description of the present invention with reference to the accompanying drawings, the same components are denoted by the same reference numerals regardless of the reference numerals, and redundant explanations thereof will be omitted. In the following description of the embodiments, a detailed description of related arts will be omitted if it is determined that the gist of the embodiments may be unnecessarily blurred.

도 1은 일 예에 따른 소프트웨어 정의 네트워크를 도시한다.Figure 1 illustrates a software defined network according to an example.

오픈플로우(OpenFlow)는 소프트웨어 정의 네트워크(Software Definition Network: SDN)의 인터페이스(interface) 표준 기술 중 하나이다. 오픈플로우는 네트워크 엔지니어들에게 네트워크 장비를 보다 편리하게 조작할 수 있는 인터페이스를 제공하며, 컨트롤러(controller)의 프로그램을 통하여 다양한 기능 모듈을 보다 유연하게 만들어 낼 수 있다. 예를 들어, 기존의 네트워크 장비들은 네트워크에 새로운 기능을 추가하기 위해 네트워크와 관련된 기존 장비들을 모두 업그레이드 하거나 부가적인 장비를 물리적으로 부가해야 한다. 오픈플로우를 이용하는 경우에는 비교적 쉽게 컨트롤러를 통해 새로운 기능이 추가될 수 있다.OpenFlow is one of the interface standard technologies of Software Definition Network (SDN). Openflow provides network engineers with an interface to more easily manipulate network equipment, and allows the flexibility of the various functional modules through the controller's program. For example, existing network equipment must either upgrade all existing equipment associated with the network or physically add additional equipment to add new functions to the network. When using open flows, it is relatively easy to add new functions through the controller.

이하에서, 네트워크는 단말 및 서버와 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크의 일 예로 3GPP(3rd generation partnership project) 네트워크, LTE(long term evolution) 네트워크, WIMAX(world interoperability for microwave access) 네트워크, 인터넷(internet), LAN(local area network), Wireless LAN, WAN(wide area network), PAN(personal area network), 블루투스(Bluetooth) 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(digital multimedia broadcasting) 네트워크 등이 포함되며, 기재된 실시예로 한정되지는 않는다.Hereinafter, the network refers to a connection structure in which information can be exchanged between each node such as a terminal and a server. As an example of such a network, a 3rd generation partnership project (3GPP) network, a long term evolution (LTE) network, a WIMAX a wireless LAN, a wide area network (WAN), a personal area network (PAN), a Bluetooth network, a satellite broadcast network, an analog broadcast network , A digital multimedia broadcasting (DMB) network, and the like, and is not limited to the described embodiments.

오픈플로우를 적용한 SDN(100)은 오픈플로우 컨트롤러(controller)(110) 및 오픈플로우 스위치(switch)들(112 내지 120)을 포함하며, 오픈플로우 스위치(switch)들(112 내지 120)에는 단말들(130, 132, 134)이 연결될 수 있다. 오픈플로우 컨트롤러(110)는 컴퓨터 또는 서버에 소프트웨어로 구현될 수 있다. 오픈플로우 컨트롤러(110)는 오픈플로우 스위치들(112 내지 120)과 오픈플로우 프로토콜(protocol)을 이용하여 내부 통신을 수행한다.The SDN 100 to which the open flow is applied includes an open flow controller 110 and open flow switches 112 to 120. Open flow switches 112 to 120 are connected to terminals (130, 132, 134) may be connected. The open flow controller 110 may be implemented in software in a computer or a server. The open flow controller 110 performs internal communication with the open flow switches 112 to 120 using an open flow protocol.

오픈플로우 컨트롤러(110)는 패킷에 대한 라우팅 경로(routing path)를 설정하고, 설정된 라우팅 경로에 대한 정보를 플로우 테이블로 생성할 수 있다. 플로우 테이블은 ONF(Open Networking Foundation) 권고안에 따라 복수 개의 테이블로 구성될 수 있다. 오픈플로우 테이블은 각 플로우 별로, 룰 필드(rule field), 실행 필드(Action) 및 통계 필드(Statistics) 중 적어도 하나를 포함할 수 있다. 룰 필드는 식별 정보를 포함할 수 있고, 실행 필드는 패킷의 처리 방법(예들 들어, 출력 포트 등)을 포함할 수 있고, 통계 필드는 패킷 처리에 대한 결과인 통계 정보를 포함할 수 있다. 오픈플로우 컨트롤러(110)는 생성한 플로우 테이블들을 각각의 스위치들(112 내지 120)로 전송할 수 있다. 이하에서, 라우팅 경로 및 플로우는 서로 동일한 의미로 이해될 수 있다.The open flow controller 110 may set a routing path for the packet and generate information about the set routing path as a flow table. The flow table can be composed of a plurality of tables according to ONF (Open Networking Foundation) recommendation. The open flow table may include at least one of a rule field, an action field, and a statistics field for each flow. The rule field may include identification information, the execution field may include a method of processing the packet (e.g., output port, etc.), and the statistics field may include statistical information that is a result of packet processing. The open flow controller 110 can transmit the generated flow tables to the respective switches 112 to 120. [ Hereinafter, the routing path and the flow can be understood to have the same meaning as each other.

오픈플로우 스위치들(112 내지 120)은 플로우 테이블들을 이용하여 패킷을 포워딩(forwarding)할 수 있다. 예를 들어, 패킷이 내부(internal) 네트워크를 통해 내부의 단말로 전송될 수 있다. 내부의 단말은 SDN(100)에 연결된 단말들(130, 132, 134)일 수 있다. 내부 네트워크는 외부의 네트워크(예를 들어, 인터넷)와 연결되지 않은 네트워크이다. 다른 예로, 패킷이 인터넷을 통해 외부의 단말로 전송되는 경우, SDN(100) 내에 설정되는 라우팅 경로는 외부(external) 네트워크일 수 있다.The open flow switches 112-120 can forward packets using flow tables. For example, a packet may be transmitted to an internal terminal via an internal network. The terminals in the SDN 100 may be terminals 130, 132, and 134 connected to the SDN 100. The internal network is a network that is not connected to an external network (e.g., the Internet). As another example, when a packet is transmitted over the Internet to an external terminal, the routing path set in the SDN 100 may be an external network.

동일한 네트워크 장치들을 이용하는 경우에도 외부 네트워크 및 내부 네트워크를 분리할 수 있다면, 효율적인 네트워크 운용이 가능하고, 중앙 집중화를 통해 보안을 강화할 수 있다.Even if the same network devices are used, if the external network and the internal network can be separated, efficient network operation is possible, and security can be enhanced through centralization.

아래에서, 도 2 내지 도 9를 참조하여 오픈플로우를 이용하여 패킷을 전송하는 방법 및 오픈플로우 스위치에 대해 상세히 설명된다. 패킷이 전송되는 라우팅 경로에 따라 전송되는 네트워크가 달라질 수 있다.Hereinafter, a method of transmitting a packet using an open flow and an open flow switch will be described in detail with reference to FIGS. 2 to 9. FIG. The network to be transmitted may be different depending on the routing path through which the packet is transmitted.

도 2는 일 실시예에 따른 오픈플로우 스위치의 구성도이다.2 is a configuration diagram of an open flow switch according to an embodiment.

오픈플로우 스위치(200)는 통신부(210), 프로세서(220) 및 메모리(230)를 포함한다. 오픈플로우 스위치(200)는 도 1을 참조하여 전술된 오픈플로우 스위치들(112 내지 120)들 중 어느 하나일 수 있다. 예를 들어, 오픈플로우 스위치(200)는 시스템 온 칩(System-On-Chip: SOC)으로 구현될 수 있으나, 기재된 실시예로 한정되는 것은 아니다.The open flow switch 200 includes a communication unit 210, a processor 220, and a memory 230. The open flow switch 200 may be any one of the open flow switches 112 to 120 described above with reference to Fig. For example, the open flow switch 200 may be implemented as a system-on-chip (SOC), but is not limited thereto.

통신부(210)는 프로세서(220) 및 메모리(230)와 연결되어 데이터를 송수신한다. 통신부(210)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다.The communication unit 210 is connected to the processor 220 and the memory 230 to transmit and receive data. The communication unit 210 may be connected to another external device to transmit / receive data.

통신부(210)는 오픈플로우 스위치(200) 내의 회로망(circuitry)으로 구현될 수 있다. 예를 들어, 통신부(210)는 내부 버스(internal bus) 및 외부 버스(internal bus)를 포함할 수 있다. 다른 예로, 통신부(210)는 오픈플로우 스위치(200)와 외부의 장치를 연결하는 요소일 수 있다. 통신부(210)는 인터페이스(interface)일 수 있다. 통신부(210)는 외부의 장치로부터 데이터를 수신하여, 프로세서(220) 및 메모리(230)에 데이터를 전송할 수 있다.The communication unit 210 may be implemented as a circuitry in the open flow switch 200. For example, the communication unit 210 may include an internal bus and an internal bus. As another example, the communication unit 210 may be an element that connects the open flow switch 200 to an external device. The communication unit 210 may be an interface. The communication unit 210 can receive data from an external device and transmit data to the processor 220 and the memory 230. [

프로세서(220)는 통신부(210)가 수신한 데이터 및 메모리(230)에 저장된 데이터를 처리한다. "프로세서"는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다. 예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.The processor 220 processes the data received by the communication unit 210 and the data stored in the memory 230. "Processor" may be a data processing device embodied in hardware having circuitry having a physical structure for performing desired operations. For example, the desired actions may include code or instructions included in the program. For example, a data processing apparatus embodied in hardware may be a microprocessor, a central processing unit, a processor core, a multi-core processor, a multiprocessor, , An application-specific integrated circuit (ASIC), and a field programmable gate array (FPGA).

프로세서(220)는 메모리(예를 들어, 메모리(230))에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(220)에 의해 유발된 인스트럭션들을 실행한다.The processor 220 executes computer readable code (e.g., software) stored in a memory (e.g., memory 230) and instructions triggered by the processor 220.

메모리(230)는 통신부(210)가 수신한 데이터 및 프로세서(220)가 처리한 데이터를 저장한다. 예를 들어, 메모리(230)는 프로그램을 저장할 수 있다. 저장되는 프로그램은 패킷을 전송할 수 있도록 코딩되어 프로세서(220)에 의해 실행 가능한 신텍스(syntax)들의 집합일 수 있다.The memory 230 stores data received by the communication unit 210 and data processed by the processor 220. [ For example, the memory 230 may store a program. The stored program may be a set of syntaxes executable by the processor 220 that are coded to allow transmission of the packet.

일 측면에 따르면, 메모리(230)는 하나 이상의 휘발성 메모리, 비휘발성 메모리 및 RAM(Random Access Memory), 플래시 메모리, 하드 디스크 드라이브 및 광학 디스크 드라이브를 포함할 수 있다.According to an aspect, the memory 230 may include one or more volatile memory, non-volatile memory and random access memory (RAM), flash memory, hard disk drive, and optical disk drive.

메모리(230)는 오픈플로우 스위치(200)를 동작 시키는 명령어 세트(예를 들어, 소프트웨어)를 저장한다. 오픈플로우 스위치(200)를 동작 시키는 명령어 세트는 프로세서(220)에 의해 실행된다.The memory 230 stores a set of instructions (e.g., software) that operate the open flow switch 200. The instruction set that operates the open flow switch 200 is executed by the processor 220.

통신부(210), 프로세서(220) 및 메모리(230)에 대해, 아래에서 도 3 내지 도 9를 참조하여 상세히 설명된다.The communication unit 210, the processor 220, and the memory 230 will be described in detail with reference to Figs. 3 to 9 below.

도 3은 일 실시예에 따른 패킷 전송 방법의 흐름도이다.3 is a flowchart of a packet transmission method according to an embodiment.

아래의 단계들(310 내지 330)은 도 2를 참조하여 전술된 오픈플로우 스위치(200)에 의해 수행된다.The following steps 310 to 330 are performed by the open flow switch 200 described above with reference to Fig.

단계(310)에서, 통신부(210)는 패킷을 수신한다. 예를 들어, 통신부(210)는 스위치(200)와 연결된 다른 오픈플로우 스위치로부터 패킷을 수신할 수 있다. 다른 예로, 통신부(210)는 스위치(200)와 연결된 사용자 단말로부터 패킷을 수신할 수 있다. 사용자 단말은 도 1을 참조하여 전술된 단말들(130, 132, 134)일 수 있다. 패킷은 헤드(head) 및 페이로드(payload)를 포함한다. 헤드에는 패킷에 관한 정보들이 포함될 수 있다. 페이로드는 패킷을 생성한 단말이 다른 단말로 전송하고자 하는 데이터를 포함할 수 있다.In step 310, the communication unit 210 receives the packet. For example, the communication unit 210 may receive a packet from another open flow switch connected to the switch 200. [ As another example, the communication unit 210 may receive a packet from a user terminal connected to the switch 200. [ The user terminal may be the terminals 130, 132, 134 described above with reference to FIG. A packet includes a head and a payload. The head may contain information about the packet. The payload may include data that the terminal generating the packet wants to transmit to another terminal.

단계(320)에서, 프로세서(320)는 패킷이 전송되는 네트워크의 종류를 결정한다. 패킷의 최종 목적지가 SDN 내의 단말인 경우, 패킷을 전송하는 네트워크는 내부 네트워크일 수 있다. 패킷의 최종 목적지가 외부의 네트워크에 연결된 단말인 경우, 패킷을 전송하는 네트워크는 외부 네트워크일 수 있다. 패킷을 전송하는 네트워크의 종류에 따라, 패킷의 라우팅 경로에 대한 시스템 설정이 달라질 수 있다. 예를 들어, 패킷의 전송에 대한 보안의 정도가 달라질 수 있다. 패킷이 전송되는 네트워크의 종류를 결정하는 방법에 대해, 아래에서 도 4를 참조하여 상세히 설명된다.At step 320, the processor 320 determines the type of network to which the packet is to be transmitted. If the final destination of the packet is a terminal in the SDN, the network transmitting the packet may be an internal network. If the final destination of the packet is a terminal connected to an external network, the network transmitting the packet may be an external network. Depending on the type of network that is transmitting the packets, the system settings for the routing path of the packets may vary. For example, the degree of security for the transmission of a packet may vary. A method for determining the type of network to which a packet is to be transmitted is described in detail below with reference to FIG.

단계(330)에서, 프로세서(330)는 결정된 네트워크 종류에 기초하여 패킷을 전송한다. 결정된 네트워크 종류에 기초하여 패킷을 전송하는 방법에 대해, 아래에서 도 5 내지 도 8을 참조하여 상세히 설명된다.At step 330, the processor 330 transmits the packet based on the determined network type. A method of transmitting a packet based on the determined network type will be described in detail below with reference to Figs. 5 to 8.

도 4는 일 예에 따른 패킷이 전송되는 네트워크의 종류를 결정하는 방법의 흐름도이다.4 is a flow diagram of a method for determining the type of network to which a packet is sent according to an example.

도 3을 참조하여 전술된 단계(320)는 아래의 단계들(410 및 420)을 포함한다.Step 320 described above with reference to FIG. 3 includes the following steps 410 and 420.

단계(410)에서, 프로세서(220)는 패킷 내에 포함된 식별 정보를 추출한다. 식별 정보는 패킷의 헤드에 포함될 수 있다. 예를 들어, 식별 정보는 패킷의 출발지, 목적지, 지나온 스위치들에 대한 정보, 플로우 및 이용되는 네트워크의 종류에 대한 정보를 적어도 하나 포함할 수 있다. 다른 예로, 식별 정보는 IP 주소(Internet Protocol address) 및 MAC 주소(Media Access Control address) 중 적어도 하나를 포함할 수 있으며, 동일한 식별 정보를 갖는 패킷들은 동일한 플로우로 전송될 수 있다. 플로우는 패킷이 전송되는 라우팅 경로를 의미한다.At step 410, the processor 220 extracts the identification information contained in the packet. The identification information may be included in the head of the packet. For example, the identification information may include at least one of a source, a destination, information on the switches, a flow, and information on a kind of a network to be used. As another example, the identification information may include at least one of an IP address (Internet Protocol address) and a MAC address (Media Access Control address), and packets having the same identification information may be transmitted in the same flow. A flow refers to a routing path through which a packet is transmitted.

단계(420)에서, 프로세서(220)는 식별 정보가 나타내는 플로우가 내부 네트워크 인지 또는 외부 네트워크 인지 여부를 판단한다. 예를 들어, 프로세서(220)는 메모리(230)에 저장된 전-식별 테이블(pre-identify table)을 이용하여 패킷이 어떠한 네트워크를 이용하는지를 판단할 수 있다. 전-식별 테이블의 플로우 엔트리(flow entry) 구성요소에는 전-식별자(pre-identifier)를 위한 필드가 추가될 수 있다. 전-식별자를 통해 패킷이 어떠한 네트워크를 이용하는지가 판단될 수 있다.At step 420, the processor 220 determines whether the flow represented by the identification information is an internal network or an external network. For example, the processor 220 may use the pre-identify table stored in the memory 230 to determine which network the packet uses. A field for the pre-identifier may be added to the flow entry component of the pre-identification table. It can be determined via the pre-identifier which network the packet uses.

도 5는 일 예에 따른 네트워크 종류에 기초하여 패킷을 전송하는 방법의 흐름도이다.5 is a flow diagram of a method for transmitting a packet based on a network type according to an example.

도 3을 참조하여 전술된 단계(330)는 아래의 단계들(510 내지 530)을 더 포함할 수 있다.The above-described step 330 with reference to FIG. 3 may further include the following steps 510 to 530.

단계(510)에서, 프로세서(220)는 패킷이 이용하는 네트워크가 내부 네트워크로 결정되었는지 여부를 판단한다. 단계(510)에서 패킷이 이용하는 네트워크가 내부 네트워크로 결정되었는지 여부를 판단하는 것으로 기재되었으나, 반대로, 프로세서(220)는 패킷이 이용하는 네트워크가 외부 네트워크로 결정되었는지 여부를 판단할 수도 있다.At step 510, the processor 220 determines whether the network used by the packet has been determined to be the internal network. Although it is described in step 510 that the network used by the packet is determined to be the internal network, conversely, the processor 220 may determine whether the network used by the packet is determined to be the external network.

단계(520)에서, 내부 네트워크로 결정된 경우, 프로세서(220)는 제1 플로우 테이블들을 이용하여 패킷을 전송한다. 제1 플로우 테이블들은 내부 네트워크를 이용하는 플로우에 대한 플로우 테이블들일 수 있다. 예를 들어, 제1 플로우 테이블들 각각은 제1 플로우 테이블의 플로우가 내부 네트워크에 설정됨을 나타내는 제1 식별 값을 가질 수 있다. 제1 식별 값은 전-식별 테이블에 포함될 수 있다. 제1 플로우 테이블들을 이용하여 패킷을 전송하는 방법에 대해, 아래에서 도 6을 참조하여 상세히 설명된다.In step 520, if it is determined to be an internal network, the processor 220 transmits the packet using the first flow tables. The first flow tables may be flow tables for flows using an internal network. For example, each of the first flow tables may have a first identification value indicating that the flow of the first flow table is set in the internal network. The first identification value may be included in the pre-identification table. A method of transmitting a packet using the first flow tables will be described in detail below with reference to FIG.

단계(530)에서, 외부 네트워크로 결정된 경우, 프로세서(220)는 제2 플로우 테이블들을 이용하여 패킷을 전송한다. 제2 플로우 테이블들은 외부 네트워크를 이용하는 플로우에 대한 플로우 테이블들일 수 있다. 예를 들어, 제2 플로우 테이블들 각각은 제2 플로우 테이블의 플로우가 외부 네트워크에 설정됨을 나타내는 제2 식별 값을 가질 수 있다. 제2 식별 값은 전-식별 테이블에 포함될 수 있다. 제2 플로우 테이블들을 이용하여 패킷을 전송하는 방법에 대해, 아래에서 도 7을 참조하여 상세히 설명된다.At step 530, if determined to be an external network, the processor 220 transmits the packet using the second flow tables. The second flow tables may be flow tables for flows using an external network. For example, each of the second flow tables may have a second identification value indicating that the flow of the second flow table is set in the external network. The second identification value may be included in the pre-identification table. A method of transmitting a packet using the second flow tables will be described in detail below with reference to FIG.

도 6은 일 예에 따른 제1 플로우 테이블들을 이용하여 패킷을 전송하는 방법의 흐름도이다.6 is a flowchart of a method of transmitting a packet using first flow tables according to an example.

도 5를 참조하여 전술된 단계(520)는 아래의 단계들(610 내지 630)을 포함한다.The above-described step 520 with reference to FIG. 5 includes the following steps 610 to 630.

단계(610)에서, 프로세서(220)는 제1 플로우 테이블들 중 식별 정보에 대응하는 매칭 플로우를 결정할 수 있다. 예를 들어, 제1 플로우 테이블들이 넘버링(numbering)된 경우, 가장 작은 숫자를 가진 테이블부터 차례로 식별 정보와 비교될 수 있다. 예를 들어, 제1 플로우 테이블들이 0부터 n까지 넘버링된 경우, 테이블 0부터 테이블 n까지 차례대로 식별 정보와 비교될 수 있다. 플로우 테이블의 룰 필드에 등록된 식별 정보와 패킷의 식별 정보가 비교될 수 있다. 비교되는 중간에 식별 정보와 대응하는 플로우 테이블이 결정되는 경우, 비교는 중단되고 다음 단계가 수행될 수 있다. 식별 정보와 대응하는 것으로 결정된 플로우 테이블은 매칭 테이블로 명명된다.At step 610, the processor 220 may determine a matching flow corresponding to the identification information in the first flow tables. For example, if the first flow tables are numbered, the table with the smallest number can be compared with the identification information in turn. For example, if the first flow tables are numbered from 0 to n, they can be compared with the identification information sequentially from table 0 to table n. The identification information registered in the rule field of the flow table and the identification information of the packet can be compared. If the flow table corresponding to the identification information is determined in the middle of the comparison, the comparison is interrupted and the next step can be performed. The flow table determined to correspond to the identification information is named a matching table.

단계(620)에서, 프로세서(220)는 매칭 테이블에 설정된 인스트럭션을 실행한다. 예를 들어, 프로세서(220)는 매칭 테이블의 실행 필드(action)에 따라 패킷을 처리할 수 있다. 인스트럭션은 실행 필드의 세트를 갱신하고, 패킷을 갱신하고, 매치 세트 필드(match set fields)를 갱신하고, 메타데이터(metadata)를 갱신할 수 있다.At step 620, the processor 220 executes the instructions set in the matching table. For example, the processor 220 may process the packet according to an action field of a matching table. The instruction may update the set of execution fields, update the packet, update the match set fields, and update the metadata.

단계(630)에서, 통신부(210)는 매칭 테이블의 매칭 플로우에 기초하여 패킷을 전송한다. 예를 들어, 매칭 플로우에 따라 오픈플로우 스위치(200)의 다음 스위치로 패킷을 포워딩할 수 있다.In step 630, the communication unit 210 transmits the packet based on the matching flow of the matching table. For example, the packet can be forwarded to the next switch of the open flow switch 200 according to the matching flow.

패킷을 전송하기 위해서 내부 네트워크에 대한 제1 플로우 테이블들만이 고려됨으로써, 외부 네트워크와 망이 분리되는 효과가 발생한다.Only the first flow tables for the internal network are considered in order to transmit the packet, so that the effect of separating the external network and the network occurs.

도 7은 일 예에 따른 제2 플로우 테이블들을 이용하여 패킷을 전송하는 방법의 흐름도이다.7 is a flowchart of a method of transmitting a packet using second flow tables according to an example.

도 5를 참조하여 전술된 단계(530)는 아래의 단계들(710 내지 730)을 포함한다.Step 530 described above with reference to Figure 5 includes the following steps 710-730.

단계(710)에서, 프로세서(220)는 제2 플로우 테이블들 중 식별 정보에 대응하는 매칭 플로우를 결정할 수 있다. 예를 들어, 제2 플로우 테이블들이 넘버링된 경우, 가장 작은 숫자를 가진 플로우 테이블부터 차례로 식별 정보와 비교될 수 있다. 예를 들어, 제2 플로우 테이블들이 500부터 k까지 넘버링된 경우, 테이블 500부터 테이블 k까지 차례대로 식별 정보와 비교될 수 있다. 500은 도 6을 참조하여 전술된 n보다 큰 수일 수 있다. 테이블의 룰 필드에 등록된 식별 정보와 패킷의 식별 정보가 비교될 수 있다. 비교되는 중간에 식별 정보와 대응하는 플로우 테이블이 결정되는 경우, 비교는 중단되고 다음 단계가 수행될 수 있다.At step 710, the processor 220 may determine a matching flow corresponding to the identification information in the second flow tables. For example, if the second flow tables are numbered, they can be compared with the identification information in turn from the flow table with the smallest number. For example, when the second flow tables are numbered from 500 to k, the table 500 to the table k can be sequentially compared with the identification information. 500 may be a number greater than n described above with reference to FIG. The identification information registered in the rule field of the table and the identification information of the packet can be compared. If the flow table corresponding to the identification information is determined in the middle of the comparison, the comparison is interrupted and the next step can be performed.

단계(720)에서, 프로세서(220)는 매칭 테이블에 설정된 인스트럭션을 실행한다. 예를 들어, 프로세서(220)는 매칭 테이블의 실행 필드에 따라 패킷을 처리할 수 있다. 인스트럭션은 실행 필드의 세트를 갱신하고, 패킷을 갱신하고, 매치 세트 필드를 갱신하고, 메타데이터를 갱신할 수 있다.At step 720, the processor 220 executes the instructions set in the matching table. For example, the processor 220 may process the packet according to the execution field of the matching table. The instruction may update the set of execution fields, update the packet, update the match set field, and update the metadata.

단계(730)에서, 통신부(210)는 매칭 테이블의 매칭 플로우에 기초하여 패킷을 전송한다. 예를 들어, 매칭 플로우에 따라 오픈플로우 스위치(200)의 다음 스위치로 패킷을 포워딩할 수 있다.In step 730, the communication unit 210 transmits the packet based on the matching flow of the matching table. For example, the packet can be forwarded to the next switch of the open flow switch 200 according to the matching flow.

패킷을 전송하기 위해서 외부 네트워크에 대한 제2 플로우 테이블들만이 고려됨으로써, 내부 네트워크와 망이 분리되는 효과가 발생한다.Only the second flow tables for the external network are considered to transmit the packet, so that the internal network and the network are separated from each other.

도 8은 일 예에 따른 추가 플로우를 이용하여 패킷을 전송하는 방법의 흐름도이다.8 is a flow diagram of a method for transmitting a packet using an additional flow according to an example.

도 5 및 6을 참조하여 전술된 단계(520)는 아래의 단계들(810 내지 850)을 더 포함할 수 있다. 단계(810)는 단계(610)가 수행된 후, 수행될 수 있다.Steps 520 described above with reference to Figures 5 and 6 may further include the following steps 810-850. Step 810 may be performed after step 610 is performed.

단계(810)에서, 프로세서(220)는 패킷의 식별 정보와 대응하는 매칭 테이블이 결정되었는지 여부를 판단한다. 매칭 테이블이 결정된 경우, 전술된 단계(620)가 수행될 수 있다. 매칭 테이블이 결정되지 않은 경우, 단계(820)가 수행될 수 있다.At step 810, the processor 220 determines whether a matching table corresponding to the identification information of the packet has been determined. If the matching table is determined, the above-described step 620 may be performed. If the matching table is not determined, step 820 may be performed.

단계(820)에서, 통신부(210)는 SDN의 컨트롤러로 패킷을 전송한다. 예를 들어, 프로세서(220)는 SDN의 컨트톨러와의 채널을 통해 패킷을 전송할 수 있다. 채널이 오픈플로우 프로토콜을 이용하여 운용될 수 있다.In step 820, the communication unit 210 transmits the packet to the controller of the SDN. For example, the processor 220 may transmit a packet over a channel with a controller of the SDN. The channel may be operated using an open flow protocol.

패킷을 수신한 컨트롤러는 패킷의 라우팅 경로를 결정할 수 있다. 컨트롤러는 라우팅 경로를 추가 플로우로써 오픈플로우 스위치(200)로 전송할 수 있다.The controller that received the packet can determine the routing path of the packet. The controller can send the routing path to the open flow switch 200 as an additional flow.

단계(830)에서, 통신부(210)는 컨트롤러로부터 패킷에 대한 추가 플로우를 수신한다. 추가 플로우는 플로우 테이블의 형태이고, 플로우 테이블은 넘버링될 수 있다.In step 830, the communication unit 210 receives an additional flow for the packet from the controller. The additional flow is in the form of a flow table, and the flow table can be numbered.

단계(840)에서, 프로세서(220)는 추가 플로우를 이용하여 제1 플로우 테이블들을 갱신한다. 예를 들어, 프로세서(220)는 추가 플로우의 플로우 테이블을 제1 플로우 테이블들에 추가할 수 있다.At step 840, the processor 220 updates the first flow tables using an additional flow. For example, the processor 220 may add a flow table of additional flows to the first flow tables.

단계(850)에서, 통신부(210)는 추가 플로우를 이용하여 패킷을 전송한다.In step 850, the communication unit 210 transmits the packet using the additional flow.

단계(520)가 단계(810 내지 850)를 더 포함하는 것으로 설명되었으나, 단계(810 내지 850)와 유사한 단계들이 단계(530)에 더 포함될 수 있다. 예를 들어, 내부 네트워크에 대한 설명이 외부 네트워크에 대한 설명으로 동일하게 적용될 수 있으며, 프로세서(220)는 추가 플로우를 이용하여 제2 플로우 테이블들을 갱신할 수 있다. 중복되는 설명은 이하에서 생략한다.Although step 520 has been described as further including steps 810 through 850, steps similar to steps 810 through 850 may be further included in step 530. [ For example, the description of the internal network may be equally applied to the description of the external network, and the processor 220 may update the second flow tables using the additional flow. Duplicate descriptions will be omitted below.

도 9는 일 예에 따른 오픈플로우 스위치에 수행되는 패킷 전송 방법이다.9 is a packet transmission method performed on an open flow switch according to an example.

오픈플로우 스위치(900)는 도 2 내지 도 8을 참조하여 전술된 오픈플로우 스위치(200)에 대응할 수 있다.The open flow switch 900 may correspond to the open flow switch 200 described above with reference to Figs.

오픈플로우 스위치(900)는 패킷을 수신하고, 패킷의 식별 정보 및 오픈플로우 스위치(900)에 저장된 전-식별 테이블에 기초하여 패킷을 전송하기 위해 이용되는 네트워크의 종류를 결정한다. 네트워크의 종류에 따라 각각의 동작 파이프 라인이 수행된다.The open flow switch 900 receives the packet and determines the type of network used to transmit the packet based on the identification information of the packet and the pre-identification table stored in the open flow switch 900. Each operation pipeline is performed according to the type of network.

예를 들어, 내부 네트워크로 결정된 경우, 식별 정보가 테이블 0 내지 테이블 n을 포함하는 제1 플로우 테이블들과 비교되고, 결정된 매칭 테이블에 대한 액션 세트가 실행될 수 있다. 액션 세트가 실행된 후, 패킷이 매칭 플로우에 따라 전송될 수 있다.For example, if it is determined to be an internal network, the identification information may be compared to the first flow tables including Table 0 through Table n, and an action set for the determined matching table may be executed. After the action set is executed, the packet may be transmitted in accordance with the matching flow.

다른 예로, 외부 네트워크로 결정된 경우, 식별 정보가 테이블 1000 내지 테이블 k를 포함하는 제2 플로우 테이블들과 비교되고, 결정된 매칭 테이블에 대한 액션 세트가 실행될 수 있다. 액션 세트가 실행된 후, 패킷이 매칭 플로우에 따라 전송될 수 있다.  As another example, if determined to be an external network, the identification information may be compared to the second flow tables including table 1000 through table k, and an action set for the determined matching table may be executed. After the action set is executed, the packet may be transmitted in accordance with the matching flow.

전-식별 테이블에 기초하여 패킷을 전송하기 위해 이용되는 네트워크의 종류를 미리 결정하는 경우, 패킷을 전송하기 위해 이용될 수 있는 네트워크들을 분리하는 효과가 나타난다. 즉, 결정된 네트워크에 대한 동작 파이프 라인이 수행됨으로써 다른 네트워크와는 분리될 수 있다.If the type of network used to transmit the packet is determined in advance based on the pre-identification table, the effect of separating the networks that may be used for transmitting the packet appears. That is, the operation pipeline for the determined network can be performed so that it can be separated from other networks.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described with reference to the drawings, various technical modifications and variations may be applied to those skilled in the art. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

200: 오픈플로우 스위치
210: 통신부
220: 프로세서
230: 메모리
200: Open flow switch
210:
220: Processor
230: Memory

Claims (14)

소프트웨어 정의 네트워크(Software Defined Network: SDN) 내의 오픈플로우(openflow) 스위치에 의해 수행되는, 패킷(packet) 전송 방법에 있어서,
패킷을 수신하는 단계;
상기 패킷 내에 포함된 식별 정보에 기초하여 상기 패킷이 전송되는 네트워크의 종류를 결정하는 단계; 및
상기 결정된 네트워크의 종류에 대해 설정된 플로우 테이블들(flow tables)을 이용하여 상기 패킷을 전송하는 단계
를 포함하고,
상기 플로우 테이블들을 이용하여 상기 패킷을 전송하는 단계는,
상기 플로우 테이블들 중 상기 식별 정보에 대응하는 매칭 플로우를 결정하지 못한 경우, 상기 SDN의 컨트롤러(controller)로 상기 패킷을 전송하는 단계;
상기 컨트롤러로부터 추가 플로우를 수신하는 단계 - 상기 추가 플로우는 상기 컨트롤러에 의해 결정된 상기 패킷에 대한 라우팅 경로임 -; 및
상기 추가 플로우를 이용하여 상기 패킷을 전송하는 단계
를 포함하는,
패킷 전송 방법.
A method of packet transmission, performed by an openflow switch in a Software Defined Network (SDN)
Receiving a packet;
Determining a type of a network to which the packet is transmitted based on the identification information included in the packet; And
Transmitting the packet using flow tables set for the determined network type;
Lt; / RTI >
Wherein the step of transmitting the packet using the flow tables comprises:
Transmitting the packet to a controller of the SDN if it can not determine a matching flow corresponding to the identification information among the flow tables;
Receiving an additional flow from the controller, the additional flow being a routing path for the packet determined by the controller; And
Transmitting the packet using the additional flow < RTI ID = 0.0 >
/ RTI >
Packet transmission method.
제1항에 있어서,
상기 네트워크의 종류는,
내부(internal) 네트워크 및 외부(external) 네트워크를 포함하는,
패킷 전송 방법.
The method according to claim 1,
The type of the network includes,
Including an internal network and an external network,
Packet transmission method.
제2항에 있어서,
상기 패킷이 전송되는 네트워크의 종류를 결정하는 단계는,
상기 패킷 내에 포함된 상기 식별 정보를 추출하는 단계; 및
상기 식별 정보가 나타내는 플로우가 내부 네트워크 인지 또는 외부 네트워크 인지 여부를 판단하는 단계
를 포함하는,
패킷 전송 방법.
3. The method of claim 2,
Wherein the step of determining the type of the network to which the packet is transmitted comprises:
Extracting the identification information included in the packet; And
Determining whether the flow represented by the identification information is an internal network or an external network
/ RTI >
Packet transmission method.
제2항에 있어서,
상기 결정된 네트워크의 종류에 대해 설정된 플로우 테이블을 이용하여 상기 패킷을 전송하는 단계는,
상기 네트워크의 종류가 상기 내부 네트워크로 결정된 경우, 상기 내부 네트워크에 대해 설정된 제1 플로우 테이블들을 이용하여 상기 패킷을 전송하는 단계; 및
상기 네트워크의 종류가 상기 외부 네트워크로 결정된 경우, 상기 외부 네트워크에 대해 설정된 제2 플로우 테이블들을 이용하여 상기 패킷을 전송하는 단계
를 포함하는,
패킷 전송 방법.
3. The method of claim 2,
Wherein the step of transmitting the packet using the flow table set for the determined network type comprises:
If the type of the network is determined as the internal network, transmitting the packet using first flow tables set for the internal network; And
If the type of the network is determined to be the external network, transmitting the packet using second flow tables set for the external network
/ RTI >
Packet transmission method.
제4항에 있어서,
상기 제1 플로우 테이블들 각각은 상기 제1 플로우 테이블의 플로우가 상기 내부 네트워크에 설정됨을 나타내는 제1 식별 값을 가지고,
상기 제2 플로우 테이블들 각각은 상기 제2 플로우 테이블의 플로우가 상기 외부 네트워크에 설정됨을 나타내는 제2 식별 값을 가지는,
패킷 전송 방법.
5. The method of claim 4,
Each of the first flow tables having a first identification value indicating that the flow of the first flow table is set in the internal network,
Each of the second flow tables having a second identification value indicating that the flow of the second flow table is set in the external network,
Packet transmission method.
제4항에 있어서,
상기 제1 플로우 테이블들을 이용하여 상기 패킷을 전송하는 단계는,
상기 제1 플로우 테이블들 중 상기 식별 정보에 대응하는 매칭 플로우를 결정하는 단계;
상기 매칭 플로우에 설정된 인스트럭션(instruction)을 실행하는 단계; 및
상기 매칭 플로우에 기초하여 상기 패킷을 전송하는 단계
를 포함하는,
패킷 전송 방법.
5. The method of claim 4,
Wherein the transmitting the packet using the first flow tables comprises:
Determining a matching flow corresponding to the identification information among the first flow tables;
Executing an instruction set in the matching flow; And
Transmitting the packet based on the matching flow
/ RTI >
Packet transmission method.
삭제delete 제1항에 있어서,
상기 플로우 테이블들을 이용하여 상기 패킷을 전송하는 단계는,
상기 추가 플로우를 이용하여 상기 플로우 테이블들을 갱신하는 단계
를 더 포함하는,
패킷 전송 방법.
The method according to claim 1,
Wherein the step of transmitting the packet using the flow tables comprises:
Updating said flow tables using said additional flow
≪ / RTI >
Packet transmission method.
제4항에 있어서,
상기 제2 플로우 테이블들을 이용하여 상기 패킷을 전송하는 단계는,
상기 제2 플로우 테이블들 중 상기 식별 정보에 대응하는 매칭 플로우를 결정하는 단계;
상기 매칭 플로우에 설정된 인스트럭션을 실행하는 단계; 및
상기 매칭 플로우에 기초하여 상기 패킷을 전송하는 단계
를 포함하는,
패킷 전송 방법.
5. The method of claim 4,
Wherein the transmitting the packet using the second flow tables comprises:
Determining a matching flow corresponding to the identification information among the second flow tables;
Executing an instruction set in the matching flow; And
Transmitting the packet based on the matching flow
/ RTI >
Packet transmission method.
제1항 내지 제6항, 제8항 및 제9항 중 어느 한 항의 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
A computer-readable recording medium storing a program for carrying out the method according to any one of claims 1 to 6, 8 and 9.
소프트웨어 정의 네트워크(Software Defined Network: SDN) 내의 오픈플로우(openflow) 스위치는,
패킷을 전송하는 프로그램을 저장하는 메모리; 및
상기 프로그램을 실행하는 프로세서
를 포함하고,
상기 프로그램은,
패킷을 수신하는 단계;
상기 패킷 내에 포함된 식별 정보에 기초하여 상기 패킷이 전송되는 네트워크의 종류를 결정하는 단계; 및
상기 결정된 네트워크의 종류에 대해 설정된 플로우 테이블들(flow tables)을 이용하여 상기 패킷을 전송하는 단계
를 수행하고,
상기 플로우 테이블들을 이용하여 상기 패킷을 전송하는 단계는,
상기 플로우 테이블들 중 상기 식별 정보에 대응하는 매칭 플로우를 결정하지 못한 경우, 상기 SDN의 컨트롤러(controller)로 상기 패킷을 전송하는 단계;
상기 컨트롤러로부터 추가 플로우를 수신하는 단계 - 상기 추가 플로우는 상기 컨트롤러에 의해 결정된 상기 패킷에 대한 라우팅 경로임 -; 및
상기 추가 플로우를 이용하여 상기 패킷을 전송하는 단계
를 포함하는,
오픈플로우 스위치.
An openflow switch in a Software Defined Network (SDN)
A memory for storing a program for transmitting a packet; And
The processor executing the program
Lt; / RTI >
The program includes:
Receiving a packet;
Determining a type of a network to which the packet is transmitted based on the identification information included in the packet; And
Transmitting the packet using flow tables set for the determined network type;
Lt; / RTI >
Wherein the step of transmitting the packet using the flow tables comprises:
Transmitting the packet to a controller of the SDN if it can not determine a matching flow corresponding to the identification information among the flow tables;
Receiving an additional flow from the controller, the additional flow being a routing path for the packet determined by the controller; And
Transmitting the packet using the additional flow < RTI ID = 0.0 >
/ RTI >
Open flow switch.
제11항에 있어서,
상기 네트워크의 종류는,
내부(internal) 네트워크 및 외부(external) 네트워크를 포함하는,
오픈플로우 스위치.
12. The method of claim 11,
The type of the network includes,
Including an internal network and an external network,
Open flow switch.
제12항에 있어서,
상기 패킷이 전송되는 네트워크의 종류를 결정하는 단계는,
상기 패킷 내에 포함된 상기 식별 정보를 추출하는 단계; 및
상기 식별 정보가 나타내는 플로우가 내부 네트워크 인지 또는 외부 네트워크인지 여부를 판단하는 단계
를 포함하는,
오픈플로우 스위치.
13. The method of claim 12,
Wherein the step of determining the type of the network to which the packet is transmitted comprises:
Extracting the identification information included in the packet; And
Determining whether the flow represented by the identification information is an internal network or an external network
/ RTI >
Open flow switch.
제12항에 있어서,
상기 결정된 네트워크의 종류에 대해 설정된 플로우 테이블을 이용하여 상기 패킷을 전송하는 단계는,
상기 네트워크의 종류가 상기 내부 네트워크로 결정된 경우, 상기 내부 네트워크에 대해 설정된 제1 플로우 테이블들을 이용하여 상기 패킷을 전송하는 단계; 및
상기 네트워크의 종류가 상기 외부 네트워크로 결정된 경우, 상기 외부 네트워크에 대해 설정된 제2 플로우 테이블들을 이용하여 상기 패킷을 전송하는 단계
를 포함하는,
오픈플로우 스위치.
13. The method of claim 12,
Wherein the step of transmitting the packet using the flow table set for the determined network type comprises:
If the type of the network is determined as the internal network, transmitting the packet using first flow tables set for the internal network; And
If the type of the network is determined to be the external network, transmitting the packet using second flow tables set for the external network
/ RTI >
Open flow switch.
KR1020170011073A 2017-01-24 2017-01-24 Method for transmitting packet and openflow switch KR101924712B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170011073A KR101924712B1 (en) 2017-01-24 2017-01-24 Method for transmitting packet and openflow switch

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170011073A KR101924712B1 (en) 2017-01-24 2017-01-24 Method for transmitting packet and openflow switch

Publications (2)

Publication Number Publication Date
KR20180086964A KR20180086964A (en) 2018-08-01
KR101924712B1 true KR101924712B1 (en) 2018-12-03

Family

ID=63227759

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170011073A KR101924712B1 (en) 2017-01-24 2017-01-24 Method for transmitting packet and openflow switch

Country Status (1)

Country Link
KR (1) KR101924712B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102116460B1 (en) * 2018-10-29 2020-05-28 성균관대학교산학협력단 Sdn controller for managing flow mobility by service and method for managing flow mobility by service using the same
US11652801B2 (en) 2019-09-24 2023-05-16 Pribit Technology, Inc. Network access control system and method therefor
KR102119257B1 (en) * 2019-09-24 2020-06-26 프라이빗테크놀로지 주식회사 System for controlling network access of terminal based on tunnel and method thereof

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101420650B1 (en) * 2013-04-01 2014-07-18 주식회사 앤솔루션 Network separation system and method for network-based using virtual private network
US20140341030A1 (en) * 2013-05-17 2014-11-20 Accton Technology Corporation Packet switch device and method of the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101420650B1 (en) * 2013-04-01 2014-07-18 주식회사 앤솔루션 Network separation system and method for network-based using virtual private network
US20140341030A1 (en) * 2013-05-17 2014-11-20 Accton Technology Corporation Packet switch device and method of the same

Also Published As

Publication number Publication date
KR20180086964A (en) 2018-08-01

Similar Documents

Publication Publication Date Title
US20200145334A1 (en) Communication system, communication device, controller, and method and program for controlling forwarding path of packet flow
US10237177B2 (en) Transfer device and transfer system
US20220368654A1 (en) Managing network traffic in virtual switches based on logical port identifiers
EP3231140B1 (en) Multilayered distributed router architecture
US10397126B2 (en) VXLAN packet transmission
US10374972B2 (en) Virtual flow network in a cloud environment
US20140241349A1 (en) Openflow switch and packet processing method thereof
KR101477012B1 (en) Method, apparatus, system and computer-readable recording medium for sdn switching
WO2018001522A1 (en) Splitting of user plane in mobile networks
US10003503B2 (en) Tunnel type selection method and apparatus
US20160149795A1 (en) Overlay network-based original packet flow mapping apparatus and method therefor
KR101924712B1 (en) Method for transmitting packet and openflow switch
KR20160072002A (en) System and method for optimal path computation on software defined networking
KR20160122226A (en) Communication system, control device, communication control method and program
US10587519B2 (en) Clos network load balancing method and apparatus
US7978728B2 (en) Network clustering for improving connection management and re-routing capabilities
US10177935B2 (en) Data transfer system, data transfer server, data transfer method, and program recording medium
WO2014126094A1 (en) Communication system, communication method, control device, and control device control method and program
WO2017024818A1 (en) Method and device for processing data message
US20160269325A1 (en) Method, apparatus, and system for controlling forwarding of service data in virtual network
JP2017050708A (en) Communication system, control unit, switch, communication method, and program
US20190089674A1 (en) Communication system, flow control apparatus, flow processing apparatus, and control method
US9998376B2 (en) Control device, communication system, control method, and non-transitory recording medium
US9894017B2 (en) Communication system, physical machine, virtual network management apparatus, and network control method
CN111147369B (en) Routing system, routing method and server

Legal Events

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