KR101924712B1 - Method for transmitting packet and openflow switch - Google Patents
Method for transmitting packet and openflow switch Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header 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
아래의 실시예는 패킷을 전송하기 위한 방법 패킷을 전송하는 오픈플로우 스위치에 관한 것으로, 보다 상세하게는 소프트웨어 정의 네트워크 내의 오픈플로우 스위치에 관한 것이다.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
오픈플로우 컨트롤러(110)는 패킷에 대한 라우팅 경로(routing path)를 설정하고, 설정된 라우팅 경로에 대한 정보를 플로우 테이블로 생성할 수 있다. 플로우 테이블은 ONF(Open Networking Foundation) 권고안에 따라 복수 개의 테이블로 구성될 수 있다. 오픈플로우 테이블은 각 플로우 별로, 룰 필드(rule field), 실행 필드(Action) 및 통계 필드(Statistics) 중 적어도 하나를 포함할 수 있다. 룰 필드는 식별 정보를 포함할 수 있고, 실행 필드는 패킷의 처리 방법(예들 들어, 출력 포트 등)을 포함할 수 있고, 통계 필드는 패킷 처리에 대한 결과인 통계 정보를 포함할 수 있다. 오픈플로우 컨트롤러(110)는 생성한 플로우 테이블들을 각각의 스위치들(112 내지 120)로 전송할 수 있다. 이하에서, 라우팅 경로 및 플로우는 서로 동일한 의미로 이해될 수 있다.The
오픈플로우 스위치들(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
동일한 네트워크 장치들을 이용하는 경우에도 외부 네트워크 및 내부 네트워크를 분리할 수 있다면, 효율적인 네트워크 운용이 가능하고, 중앙 집중화를 통해 보안을 강화할 수 있다.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
통신부(210)는 프로세서(220) 및 메모리(230)와 연결되어 데이터를 송수신한다. 통신부(210)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다.The
통신부(210)는 오픈플로우 스위치(200) 내의 회로망(circuitry)으로 구현될 수 있다. 예를 들어, 통신부(210)는 내부 버스(internal bus) 및 외부 버스(internal bus)를 포함할 수 있다. 다른 예로, 통신부(210)는 오픈플로우 스위치(200)와 외부의 장치를 연결하는 요소일 수 있다. 통신부(210)는 인터페이스(interface)일 수 있다. 통신부(210)는 외부의 장치로부터 데이터를 수신하여, 프로세서(220) 및 메모리(230)에 데이터를 전송할 수 있다.The
프로세서(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
프로세서(220)는 메모리(예를 들어, 메모리(230))에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(220)에 의해 유발된 인스트럭션들을 실행한다.The
메모리(230)는 통신부(210)가 수신한 데이터 및 프로세서(220)가 처리한 데이터를 저장한다. 예를 들어, 메모리(230)는 프로그램을 저장할 수 있다. 저장되는 프로그램은 패킷을 전송할 수 있도록 코딩되어 프로세서(220)에 의해 실행 가능한 신텍스(syntax)들의 집합일 수 있다.The
일 측면에 따르면, 메모리(230)는 하나 이상의 휘발성 메모리, 비휘발성 메모리 및 RAM(Random Access Memory), 플래시 메모리, 하드 디스크 드라이브 및 광학 디스크 드라이브를 포함할 수 있다.According to an aspect, the
메모리(230)는 오픈플로우 스위치(200)를 동작 시키는 명령어 세트(예를 들어, 소프트웨어)를 저장한다. 오픈플로우 스위치(200)를 동작 시키는 명령어 세트는 프로세서(220)에 의해 실행된다.The
통신부(210), 프로세서(220) 및 메모리(230)에 대해, 아래에서 도 3 내지 도 9를 참조하여 상세히 설명된다.The
도 3은 일 실시예에 따른 패킷 전송 방법의 흐름도이다.3 is a flowchart of a packet transmission method according to an embodiment.
아래의 단계들(310 내지 330)은 도 2를 참조하여 전술된 오픈플로우 스위치(200)에 의해 수행된다.The following
단계(310)에서, 통신부(210)는 패킷을 수신한다. 예를 들어, 통신부(210)는 스위치(200)와 연결된 다른 오픈플로우 스위치로부터 패킷을 수신할 수 있다. 다른 예로, 통신부(210)는 스위치(200)와 연결된 사용자 단말로부터 패킷을 수신할 수 있다. 사용자 단말은 도 1을 참조하여 전술된 단말들(130, 132, 134)일 수 있다. 패킷은 헤드(head) 및 페이로드(payload)를 포함한다. 헤드에는 패킷에 관한 정보들이 포함될 수 있다. 페이로드는 패킷을 생성한 단말이 다른 단말로 전송하고자 하는 데이터를 포함할 수 있다.In
단계(320)에서, 프로세서(320)는 패킷이 전송되는 네트워크의 종류를 결정한다. 패킷의 최종 목적지가 SDN 내의 단말인 경우, 패킷을 전송하는 네트워크는 내부 네트워크일 수 있다. 패킷의 최종 목적지가 외부의 네트워크에 연결된 단말인 경우, 패킷을 전송하는 네트워크는 외부 네트워크일 수 있다. 패킷을 전송하는 네트워크의 종류에 따라, 패킷의 라우팅 경로에 대한 시스템 설정이 달라질 수 있다. 예를 들어, 패킷의 전송에 대한 보안의 정도가 달라질 수 있다. 패킷이 전송되는 네트워크의 종류를 결정하는 방법에 대해, 아래에서 도 4를 참조하여 상세히 설명된다.At
단계(330)에서, 프로세서(330)는 결정된 네트워크 종류에 기초하여 패킷을 전송한다. 결정된 네트워크 종류에 기초하여 패킷을 전송하는 방법에 대해, 아래에서 도 5 내지 도 8을 참조하여 상세히 설명된다.At
도 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
단계(410)에서, 프로세서(220)는 패킷 내에 포함된 식별 정보를 추출한다. 식별 정보는 패킷의 헤드에 포함될 수 있다. 예를 들어, 식별 정보는 패킷의 출발지, 목적지, 지나온 스위치들에 대한 정보, 플로우 및 이용되는 네트워크의 종류에 대한 정보를 적어도 하나 포함할 수 있다. 다른 예로, 식별 정보는 IP 주소(Internet Protocol address) 및 MAC 주소(Media Access Control address) 중 적어도 하나를 포함할 수 있으며, 동일한 식별 정보를 갖는 패킷들은 동일한 플로우로 전송될 수 있다. 플로우는 패킷이 전송되는 라우팅 경로를 의미한다.At
단계(420)에서, 프로세서(220)는 식별 정보가 나타내는 플로우가 내부 네트워크 인지 또는 외부 네트워크 인지 여부를 판단한다. 예를 들어, 프로세서(220)는 메모리(230)에 저장된 전-식별 테이블(pre-identify table)을 이용하여 패킷이 어떠한 네트워크를 이용하는지를 판단할 수 있다. 전-식별 테이블의 플로우 엔트리(flow entry) 구성요소에는 전-식별자(pre-identifier)를 위한 필드가 추가될 수 있다. 전-식별자를 통해 패킷이 어떠한 네트워크를 이용하는지가 판단될 수 있다.At
도 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
단계(510)에서, 프로세서(220)는 패킷이 이용하는 네트워크가 내부 네트워크로 결정되었는지 여부를 판단한다. 단계(510)에서 패킷이 이용하는 네트워크가 내부 네트워크로 결정되었는지 여부를 판단하는 것으로 기재되었으나, 반대로, 프로세서(220)는 패킷이 이용하는 네트워크가 외부 네트워크로 결정되었는지 여부를 판단할 수도 있다.At
단계(520)에서, 내부 네트워크로 결정된 경우, 프로세서(220)는 제1 플로우 테이블들을 이용하여 패킷을 전송한다. 제1 플로우 테이블들은 내부 네트워크를 이용하는 플로우에 대한 플로우 테이블들일 수 있다. 예를 들어, 제1 플로우 테이블들 각각은 제1 플로우 테이블의 플로우가 내부 네트워크에 설정됨을 나타내는 제1 식별 값을 가질 수 있다. 제1 식별 값은 전-식별 테이블에 포함될 수 있다. 제1 플로우 테이블들을 이용하여 패킷을 전송하는 방법에 대해, 아래에서 도 6을 참조하여 상세히 설명된다.In
단계(530)에서, 외부 네트워크로 결정된 경우, 프로세서(220)는 제2 플로우 테이블들을 이용하여 패킷을 전송한다. 제2 플로우 테이블들은 외부 네트워크를 이용하는 플로우에 대한 플로우 테이블들일 수 있다. 예를 들어, 제2 플로우 테이블들 각각은 제2 플로우 테이블의 플로우가 외부 네트워크에 설정됨을 나타내는 제2 식별 값을 가질 수 있다. 제2 식별 값은 전-식별 테이블에 포함될 수 있다. 제2 플로우 테이블들을 이용하여 패킷을 전송하는 방법에 대해, 아래에서 도 7을 참조하여 상세히 설명된다.At
도 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
단계(610)에서, 프로세서(220)는 제1 플로우 테이블들 중 식별 정보에 대응하는 매칭 플로우를 결정할 수 있다. 예를 들어, 제1 플로우 테이블들이 넘버링(numbering)된 경우, 가장 작은 숫자를 가진 테이블부터 차례로 식별 정보와 비교될 수 있다. 예를 들어, 제1 플로우 테이블들이 0부터 n까지 넘버링된 경우, 테이블 0부터 테이블 n까지 차례대로 식별 정보와 비교될 수 있다. 플로우 테이블의 룰 필드에 등록된 식별 정보와 패킷의 식별 정보가 비교될 수 있다. 비교되는 중간에 식별 정보와 대응하는 플로우 테이블이 결정되는 경우, 비교는 중단되고 다음 단계가 수행될 수 있다. 식별 정보와 대응하는 것으로 결정된 플로우 테이블은 매칭 테이블로 명명된다.At
단계(620)에서, 프로세서(220)는 매칭 테이블에 설정된 인스트럭션을 실행한다. 예를 들어, 프로세서(220)는 매칭 테이블의 실행 필드(action)에 따라 패킷을 처리할 수 있다. 인스트럭션은 실행 필드의 세트를 갱신하고, 패킷을 갱신하고, 매치 세트 필드(match set fields)를 갱신하고, 메타데이터(metadata)를 갱신할 수 있다.At
단계(630)에서, 통신부(210)는 매칭 테이블의 매칭 플로우에 기초하여 패킷을 전송한다. 예를 들어, 매칭 플로우에 따라 오픈플로우 스위치(200)의 다음 스위치로 패킷을 포워딩할 수 있다.In
패킷을 전송하기 위해서 내부 네트워크에 대한 제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
단계(720)에서, 프로세서(220)는 매칭 테이블에 설정된 인스트럭션을 실행한다. 예를 들어, 프로세서(220)는 매칭 테이블의 실행 필드에 따라 패킷을 처리할 수 있다. 인스트럭션은 실행 필드의 세트를 갱신하고, 패킷을 갱신하고, 매치 세트 필드를 갱신하고, 메타데이터를 갱신할 수 있다.At
단계(730)에서, 통신부(210)는 매칭 테이블의 매칭 플로우에 기초하여 패킷을 전송한다. 예를 들어, 매칭 플로우에 따라 오픈플로우 스위치(200)의 다음 스위치로 패킷을 포워딩할 수 있다.In
패킷을 전송하기 위해서 외부 네트워크에 대한 제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)가 수행된 후, 수행될 수 있다.
단계(810)에서, 프로세서(220)는 패킷의 식별 정보와 대응하는 매칭 테이블이 결정되었는지 여부를 판단한다. 매칭 테이블이 결정된 경우, 전술된 단계(620)가 수행될 수 있다. 매칭 테이블이 결정되지 않은 경우, 단계(820)가 수행될 수 있다.At
단계(820)에서, 통신부(210)는 SDN의 컨트롤러로 패킷을 전송한다. 예를 들어, 프로세서(220)는 SDN의 컨트톨러와의 채널을 통해 패킷을 전송할 수 있다. 채널이 오픈플로우 프로토콜을 이용하여 운용될 수 있다.In
패킷을 수신한 컨트롤러는 패킷의 라우팅 경로를 결정할 수 있다. 컨트롤러는 라우팅 경로를 추가 플로우로써 오픈플로우 스위치(200)로 전송할 수 있다.The controller that received the packet can determine the routing path of the packet. The controller can send the routing path to the
단계(830)에서, 통신부(210)는 컨트롤러로부터 패킷에 대한 추가 플로우를 수신한다. 추가 플로우는 플로우 테이블의 형태이고, 플로우 테이블은 넘버링될 수 있다.In
단계(840)에서, 프로세서(220)는 추가 플로우를 이용하여 제1 플로우 테이블들을 갱신한다. 예를 들어, 프로세서(220)는 추가 플로우의 플로우 테이블을 제1 플로우 테이블들에 추가할 수 있다.At
단계(850)에서, 통신부(210)는 추가 플로우를 이용하여 패킷을 전송한다.In
단계(520)가 단계(810 내지 850)를 더 포함하는 것으로 설명되었으나, 단계(810 내지 850)와 유사한 단계들이 단계(530)에 더 포함될 수 있다. 예를 들어, 내부 네트워크에 대한 설명이 외부 네트워크에 대한 설명으로 동일하게 적용될 수 있으며, 프로세서(220)는 추가 플로우를 이용하여 제2 플로우 테이블들을 갱신할 수 있다. 중복되는 설명은 이하에서 생략한다.Although
도 9는 일 예에 따른 오픈플로우 스위치에 수행되는 패킷 전송 방법이다.9 is a packet transmission method performed on an open flow switch according to an example.
오픈플로우 스위치(900)는 도 2 내지 도 8을 참조하여 전술된 오픈플로우 스위치(200)에 대응할 수 있다.The
오픈플로우 스위치(900)는 패킷을 수신하고, 패킷의 식별 정보 및 오픈플로우 스위치(900)에 저장된 전-식별 테이블에 기초하여 패킷을 전송하기 위해 이용되는 네트워크의 종류를 결정한다. 네트워크의 종류에 따라 각각의 동작 파이프 라인이 수행된다.The
예를 들어, 내부 네트워크로 결정된 경우, 식별 정보가 테이블 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)
패킷을 수신하는 단계;
상기 패킷 내에 포함된 식별 정보에 기초하여 상기 패킷이 전송되는 네트워크의 종류를 결정하는 단계; 및
상기 결정된 네트워크의 종류에 대해 설정된 플로우 테이블들(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.
상기 네트워크의 종류는,
내부(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.
상기 패킷이 전송되는 네트워크의 종류를 결정하는 단계는,
상기 패킷 내에 포함된 상기 식별 정보를 추출하는 단계; 및
상기 식별 정보가 나타내는 플로우가 내부 네트워크 인지 또는 외부 네트워크 인지 여부를 판단하는 단계
를 포함하는,
패킷 전송 방법.
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.
상기 결정된 네트워크의 종류에 대해 설정된 플로우 테이블을 이용하여 상기 패킷을 전송하는 단계는,
상기 네트워크의 종류가 상기 내부 네트워크로 결정된 경우, 상기 내부 네트워크에 대해 설정된 제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.
상기 제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.
상기 제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.
상기 플로우 테이블들을 이용하여 상기 패킷을 전송하는 단계는,
상기 추가 플로우를 이용하여 상기 플로우 테이블들을 갱신하는 단계
를 더 포함하는,
패킷 전송 방법.
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.
상기 제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.
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.
패킷을 전송하는 프로그램을 저장하는 메모리; 및
상기 프로그램을 실행하는 프로세서
를 포함하고,
상기 프로그램은,
패킷을 수신하는 단계;
상기 패킷 내에 포함된 식별 정보에 기초하여 상기 패킷이 전송되는 네트워크의 종류를 결정하는 단계; 및
상기 결정된 네트워크의 종류에 대해 설정된 플로우 테이블들(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.
상기 네트워크의 종류는,
내부(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.
상기 패킷이 전송되는 네트워크의 종류를 결정하는 단계는,
상기 패킷 내에 포함된 상기 식별 정보를 추출하는 단계; 및
상기 식별 정보가 나타내는 플로우가 내부 네트워크 인지 또는 외부 네트워크인지 여부를 판단하는 단계
를 포함하는,
오픈플로우 스위치.
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.
상기 결정된 네트워크의 종류에 대해 설정된 플로우 테이블을 이용하여 상기 패킷을 전송하는 단계는,
상기 네트워크의 종류가 상기 내부 네트워크로 결정된 경우, 상기 내부 네트워크에 대해 설정된 제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.
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)
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)
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 |
-
2017
- 2017-01-24 KR KR1020170011073A patent/KR101924712B1/en active IP Right Grant
Patent Citations (2)
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 |