KR20140052848A - Method for forwarding packet and apparatus therefor - Google Patents

Method for forwarding packet and apparatus therefor Download PDF

Info

Publication number
KR20140052848A
KR20140052848A KR1020130125078A KR20130125078A KR20140052848A KR 20140052848 A KR20140052848 A KR 20140052848A KR 1020130125078 A KR1020130125078 A KR 1020130125078A KR 20130125078 A KR20130125078 A KR 20130125078A KR 20140052848 A KR20140052848 A KR 20140052848A
Authority
KR
South Korea
Prior art keywords
packet
network device
forwarding
flow information
network
Prior art date
Application number
KR1020130125078A
Other languages
Korean (ko)
Inventor
고남석
노성기
박종대
이순석
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to US14/060,473 priority Critical patent/US20140112142A1/en
Publication of KR20140052848A publication Critical patent/KR20140052848A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/252Store and forward routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/33Flow control; Congestion control using forward notification

Abstract

Disclosed are a method and an apparatus for forwarding a packet. The method for forwarding a packet comprises the steps of receiving a packet; providing the packet to a network controller through a data plane if flow information for forwarding the packet is not available; and receiving a message including the flow information for forwarding the packet from the network controller through a control plane. Therefore, the method and the apparatus can increase the efficiency of packet forwarding.

Description

패킷 포워딩 방법 및 장치{METHOD FOR FORWARDING PACKET AND APPARATUS THEREFOR}[0001] METHOD FOR FORWARDING PACKET AND APPARATUS THEREFOR [0002]

본 발명은 패킷 포워딩 방법 및 장치에 관한 것으로, 더욱 상세하게는 소프트웨어 정의 네트워킹(software defined networking, SDN)을 지원하는 네트워크에서 패킷 포워딩 방법 및 장치에 관한 것이다.The present invention relates to a packet forwarding method and apparatus, and more particularly, to a packet forwarding method and apparatus in a network supporting software defined networking (SDN).

기존 네트워크(network) 개념에서, 제어 평면(control plane) 기능과 데이터 평면(data plane) 기능은 통합되어 하나의 네트워크 장치로서 동작한다. 이러한 네트워크 장치는 네트워크에 분산되어 위치하며, 패킷(packet)의 포워딩(forwarding)을 위해 각 네트워크 장치의 제어 평면들은 제어 프로토콜(protocol)을 서로 교환한다. 이에 따라, 네트워크 장치의 복잡도는 증가하게 된다.In the existing network concept, the control plane function and the data plane function are integrated and operate as a single network device. These network devices are distributed in the network, and control planes of each network device exchange control protocols for forwarding of packets. As a result, the complexity of the network device increases.

한편, 제조사는 자신의 독자적인 기술을 사용하여 네트워크 장치를 제조하며, 네트워크 장치에 대한 정보 대부분을 공개하지 않는다. 따라서, 제조사의 도움 없이는 네트워크 장치에 새로운 기능을 추가하거나 기능을 개선할 수 없다.On the other hand, the manufacturer manufactures the network device using its own unique technology, and does not disclose most of the information about the network device. Therefore, without the help of the manufacturer, it is not possible to add new functions or improve functions to the network device.

이와 같은 문제들을 해소하기 위해 소프트웨어 정의 네트워킹(software defined networking, SDN) 기술이 개발되었다. SDN 기술은 소프트웨어 프로그래밍을 통해 네트워크 경로 설정 및 복잡한 운용관리를 편리하게 처리할 수 있도록 하는 네트워킹 기술이다. SDN 기술은 네트워크의 제어 평면과 데이터 평면을 분리하고 그 사이에 표준화된 인터페이스(예를 들어, 오픈 플로우(openflow))를 제공한다. 대부분의 지능(intelligence)은 제어 평면에 위치하며, 네트워크 장치(예를 들어, SDN을 지원하는 스위치(switch) 등)는 표준화된 인터페이스를 통해 제어 평면으로부터 플로우 단위로 제공되는 규칙(rule)을 기초로 패킷을 처리한다. To solve these problems, software defined networking (SDN) technology has been developed. SDN technology is a networking technology that facilitates network routing and management of complex operations through software programming. The SDN technique separates the control plane and the data plane of the network and provides a standardized interface therebetween (e.g., openflow). Most of the intelligence is located in the control plane, and network devices (such as switches supporting SDN) are based on rules provided in flow units from the control plane via standardized interfaces. Lt; / RTI >

이러한 SDN 기술을 지원하는 네트워크에 있어서, 네트워크 장치는 입력 패킷을 처리하기 위한 규칙이 플로우 테이블(table)에 존재하지 않는 경우 네트워크 제어기(controller)(즉, SDN을 지원하는 컨트롤러)에 플로우 규칙의 제공을 요청하고, 이에 따라 네트워크 제어기로부터 플로우 규칙을 수신할 수 있다. 네트워크 장치는 수신된 플로우 규칙을 기초로 하여 입력 패킷을 포워딩할 수 있다. 이와 같은 과정은 모든 네트워크 장치에서 반복적으로 수행되어야 하므로, 패킷 포워딩의 효율성이 저하되는 문제점이 있다.In a network supporting such SDN technology, a network device may provide a flow rule to a network controller (i.e., a controller that supports SDN) if rules for processing input packets are not present in the flow table And thus can receive the flow rules from the network controller. The network device may forward the incoming packet based on the received flow rule. Since such a process must be repeatedly performed in all network devices, the efficiency of packet forwarding is reduced.

상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 새로운 패킷에 대한 플로우 규칙을 설정하는 과정을 간소화함으로써 패킷 포워딩의 효율성을 향상시키기 위한 패킷 포워딩 방법을 제공하는 데 있다.An object of the present invention is to provide a packet forwarding method for improving the efficiency of packet forwarding by simplifying a process of setting a flow rule for a new packet.

상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 새로운 패킷에 대한 플로우 규칙을 설정하는 과정을 간소화함으로써 패킷 포워딩의 효율성을 향상시키기 위한 패킷 포워딩 장치를 제공하는 데 있다.Another object of the present invention is to provide a packet forwarding apparatus for improving the efficiency of packet forwarding by simplifying a process of setting a flow rule for a new packet.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 패킷 포워딩 방법은, 패킷을 수신하는 단계, 상기 패킷의 포워딩을 위한 플로우 정보가 존재하지 않는 경우, 상기 패킷을 데이터 평면을 통해 네트워크 제어기에 제공하는 단계 및 상기 네트워크 제어기로부터 상기 패킷에 대한 플로우 정보를 포함한 메시지를 제어 평면을 통해 수신하는 단계를 포함한다.According to another aspect of the present invention, there is provided a packet forwarding method comprising: receiving a packet; when flow information for forwarding the packet does not exist, providing the packet to a network controller through a data plane; And receiving from the network controller a message including a flow information for the packet through a control plane.

여기서, 상기 패킷 포워딩 방법은, 상기 수신된 플로우 정보를 기반으로 상기 패킷을 포워딩하는 단계를 더 포함할 수 있다.Here, the packet forwarding method may further include forwarding the packet based on the received flow information.

여기서, 상기 패킷 포워딩 방법은, 상기 패킷의 포워딩을 위한 플로우 정보가 존재하는 경우, 상기 플로우 정보를 기반으로 상기 패킷을 포워딩하는 단계를 더 포함할 수 있다.Here, the packet forwarding method may further include forwarding the packet based on the flow information when flow information for forwarding the packet exists.

여기서, 상기 네트워크 제어기에 제공하는 단계는, 오픈 플로우 프로토콜을 기반으로 상기 패킷을 상기 네트워크 제어기에 제공할 수 있다.Here, the providing to the network controller may provide the packet to the network controller based on an open flow protocol.

여기서, 상기 제어 평면을 통해 수신하는 단계는, 오픈 플로우 프로토콜을 기반으로 상기 플로우 정보를 포함한 메시지를 수신할 수 있다.Here, the step of receiving through the control plane may receive a message including the flow information based on an open flow protocol.

여기서, 상기 네트워크 장치는, 소프트웨어 정의 네트워킹 기술을 지원하는 스위치일 수 있다.Here, the network device may be a switch supporting software defined networking technology.

여기서, 상기 네트워크 제어기는, 소프트웨어 정의 네트워킹 기술을 지원하는 제어기일 수 있다.Here, the network controller may be a controller supporting software defined networking technology.

여기서, 상기 플로우 정보는, 플로우 규칙, 동작 및 통계 중 적어도 하나를 포함할 수 있다.Here, the flow information may include at least one of a flow rule, an operation, and statistics.

상기 다른 목적을 달성하기 위한 본 발명의 일 실시예에 따른 패킷 포워딩 지원 방법은, 네트워크 장치로부터 패킷을 수신하는 단계, 상기 패킷의 포워딩을 위한 플로우 정보를 생성하는 단계 및 상기 플로우 정보를 상기 네트워크 장치에 전송하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method for supporting packet forwarding, the method comprising: receiving a packet from a network device; generating flow information for forwarding the packet; .

여기서, 상기 패킷 포워딩 지원 방법은, 상기 플로우 정보를 상기 패킷이 경유할 네트워크 장치에 전송하는 단계를 더 포함할 수 있다.The method for supporting packet forwarding may further include transmitting the flow information to a network device via the packet.

여기서, 상기 패킷을 수신하는 단계는, 오픈 플로우 프로토콜을 기반으로 상기 패킷을 수신할 수 있다.Herein, the step of receiving the packet may receive the packet based on an open flow protocol.

여기서, 상기 플로우 정보를 생성하는 단계는, 플로우 규칙, 동작 및 통계 중 적어도 하나를 포함하는 플로우 정보를 생성할 수 있다.Here, the step of generating the flow information may generate flow information including at least one of a flow rule, an operation and a statistic.

여기서, 상기 네트워크 장치에 전송하는 단계는, 오픈 플로우 프로토콜을 기반으로 상기 플로우 정보를 전송할 수 있다.Here, the step of transmitting to the network device may transmit the flow information based on an open flow protocol.

여기서, 상기 네트워크 장치는, 소프트웨어 정의 네트워킹 기술을 지원하는 스위치일 수 있다.Here, the network device may be a switch supporting software defined networking technology.

여기서, 상기 네트워크 제어기는, 소프트웨어 정의 네트워킹 기술을 지원하는 제어기일 수 있다.Here, the network controller may be a controller supporting software defined networking technology.

상기 또 다른 목적을 달성하기 위한 본 발명의 일 실시예에 따른 네트워크 장치는, 패킷을 수신하고, 상기 패킷의 포워딩을 위한 플로우 정보가 존재하지 않는 경우 상기 패킷을 데이터 평면을 통해 네트워크 제어기에 제공하고, 상기 네트워크 제어기로부터 상기 패킷에 대한 플로우 정보를 포함한 메시지를 제어 평면을 통해 수신하는 처리부 및 상기 처리부에서 처리된 정보 및 처리되는 정보를 저장하는 저장부를 포함한다.According to another aspect of the present invention, there is provided a network device for receiving a packet and providing the packet to a network controller via a data plane when flow information for forwarding the packet does not exist A processing unit for receiving a message including the flow information for the packet from the network controller through a control plane, and a storage unit for storing information processed and processed by the processing unit.

여기서, 상기 처리부는, 상기 수신된 플로우 정보를 기반으로 상기 패킷을 포워딩할 수 있다.Here, the processing unit may forward the packet based on the received flow information.

여기서, 상기 처리부는, 오픈 플로우 프로토콜을 기반으로 상기 네트워크 제어기와 네트워크를 형성할 수 있다.Here, the processing unit may form a network with the network controller based on an open flow protocol.

여기서, 상기 네트워크 장치는, 소프트웨어 정의 네트워킹 기술을 지원하는 스위치일 수 있다.Here, the network device may be a switch supporting software defined networking technology.

여기서, 상기 플로우 정보는, 플로우 규칙, 동작 및 통계 중 적어도 하나를 포함할 수 있다.Here, the flow information may include at least one of a flow rule, an operation, and statistics.

본 발명에 의하면, SDN을 지원하는 네트워크에서 새로운 패킷에 대한 플로우 규칙을 설정하는 과정을 간소화함으로써 패킷 포워딩의 효율성을 향상시킬 수 있다.According to the present invention, the efficiency of packet forwarding can be improved by simplifying the process of setting flow rules for new packets in a network supporting SDN.

즉, 새로운 패킷에 대한 플로우 규칙을 획득하기 위해, 네트워크 장치의 데이터 평면은 패킷을 네트워크 제어기에 직접 전송할 수 있다. 이에 따라, 네트워크 장치 내의 데이터 평면과 제어 평면 간의 패킷 교환 절차를 생략할 수 있다.That is, to obtain a flow rule for a new packet, the data plane of the network device may send the packet directly to the network controller. Thus, the packet exchange procedure between the data plane and the control plane in the network device can be omitted.

한편, 네트워크 제어기는 새로운 패킷에 대한 플로우 규칙만을 포함한 메시지를 네트워크 장치에 전송할 수 있으므로, 플로우 규칙 및 패킷을 포함한 메시지를 네트워크 장치에 전송하는 종래 방법에 비해 패킷 포워딩의 효율성을 향상시킬 수 있다.Meanwhile, since the network controller can transmit a message including only the flow rule for the new packet to the network device, the efficiency of the packet forwarding can be improved compared to the conventional method of transmitting the flow rule and the message including the packet to the network device.

또한, 네트워크 제어기는 새로운 패킷에 대한 플로우 규칙을 해당 패킷이 경유할 다른 네트워크 장치에 제공할 수 있으므로, 패킷 포워딩의 효율을 더욱 향상시킬 수 있다.Further, the network controller can provide the flow rule for the new packet to another network device to which the packet passes, thereby further improving the efficiency of packet forwarding.

도 1은 소프트웨어 정의 네트워킹(software defined networking, SDN) 구조를 도시한 개념도이다.
도 2는 SDN을 지원하는 네트워크에서 패킷 경로 제어에 대한 일 실시예를 도시한 개념도이다.
도 3은 패킷 포워딩 방법에 대한 일 실시예를 도시한 개념도이다.
도 4는 플로우 테이블의 구성을 도시한 개념도이다.
도 5는 본 발명의 일 실시예에 따른 패킷 포워딩 방법을 도시한 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 패킷 포워딩 방법을 도시한 개념도이다.
도 7은 본 발명의 일 실시예에 따른 네트워크 장치를 도시한 블록도이다.
도 8은 본 발명의 일 실시예에 따른 네트워크 제어기를 도시한 블록도이다.
Figure 1 is a conceptual diagram illustrating a software defined networking (SDN) architecture.
2 is a conceptual diagram showing an embodiment of packet path control in a network supporting SDN.
3 is a conceptual diagram showing an embodiment of a packet forwarding method.
4 is a conceptual diagram showing the configuration of a flow table.
5 is a flowchart illustrating a packet forwarding method according to an embodiment of the present invention.
6 is a conceptual diagram illustrating a packet forwarding method according to an embodiment of the present invention.
7 is a block diagram illustrating a network device according to an embodiment of the present invention.
8 is a block diagram illustrating a network controller according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail.

그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, 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 invention belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the relevant art and are to be interpreted in an ideal or overly formal sense unless explicitly defined in the present application Do not.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In order to facilitate the understanding of the present invention, the same reference numerals are used for the same constituent elements in the drawings and redundant explanations for the same constituent elements are omitted.

도 1은 소프트웨어 정의 네트워킹(software defined networking, SDN) 구조를 도시한 개념도이다.Figure 1 is a conceptual diagram illustrating a software defined networking (SDN) architecture.

도 1을 참조하면, SDN의 논리적 구조는 기반 계층(infrastructure layer), 제어 계층(control layer) 및 응용 계층(application layer)을 포함한다. 기반 계층은 복수의 네트워크 디바이스(network device)를 포함하고, 제어 데이터 평면 인터페이스(control data plane interface)(예를 들어, 오픈 플로우(openflow))를 통해 제어 계층과 연결된다. 제어 계층은 SDN 제어 소프트웨어를 포함하며, SDN 제어 소프트웨어는 복수의 네트워크 서비스(service)를 지원한다. SDN 제어 소프트웨어는 API(application programming interface)를 통해 응용 계층과 연결된다. 응용 계층은 복수의 비지니스 응용(business application)을 포함한다.Referring to FIG. 1, the logical structure of an SDN includes an infrastructure layer, a control layer, and an application layer. The base layer includes a plurality of network devices and is coupled to the control layer via a control data plane interface (e.g., openflow). The control layer includes SDN control software, and the SDN control software supports a plurality of network services. The SDN control software is connected to the application layer through an application programming interface (API). The application layer includes a plurality of business applications.

도 2는 SDN을 지원하는 네트워크에서 패킷 경로 제어에 대한 일 실시예를 도시한 개념도이다.2 is a conceptual diagram showing an embodiment of packet path control in a network supporting SDN.

도 2를 참조하면, 네트워크 제어기(controller)(20)는 네트워크 장치(예를 들어, 스위치(switch) 등)(10, 11, 12, 13)들을 통해 전송되는 패킷의 경로를 제어할 수 있다. 제1 단말(30)과 제2 단말(40) 간에 패킷을 송수신하는 경우, 네트워크 제어기(20)는 패킷의 포워딩 경로에 대한 정보인 플로우 정보를 오픈 플로우 인터페이스를 통해 각 네트워크 장치(10, 11, 12, 13)에 제공할 수 있다. 각 네트워크 장치(10, 11, 12, 13)는 플로우 정보를 기초로 하여 패킷을 다음 네트워크 장치 또는 단말로 포워딩할 수 있다.
2, a network controller 20 may control the path of a packet transmitted through a network device (e.g., a switch) 10, 11, 12, 13. When transmitting and receiving a packet between the first terminal 30 and the second terminal 40, the network controller 20 transmits flow information, which is information on the forwarding path of the packet, to each of the network devices 10, 11, 12, and 13, respectively. Each of the network devices 10, 11, 12, and 13 can forward the packet to the next network device or terminal based on the flow information.

도 3은 패킷 포워딩 방법에 대한 일 실시예를 도시한 개념도이다.3 is a conceptual diagram showing an embodiment of a packet forwarding method.

도 3을 참조하면, 패킷을 포워딩하는 복수의 네트워크 장치(10, 11, 12)와 복수의 네트워크 장치(10, 11, 12)를 제어하는 네트워크 제어기(20)는 네트워크에 위치할 수 있다. 각각의 네트워크 장치(10, 11, 12)는 SDN 기술을 지원하는 스위치를 의미할 수 있고, 논리적 구성인 데이터 평면, 로컬(local) 제어 평면 및 오픈 플로우 에이전트(agent)를 포함할 수 있다. 네트워크 제어기(20)는 SDN 기술을 지원하는 컨트롤러를 의미할 수 있다.3, a plurality of network devices 10, 11, 12 for forwarding packets and a network controller 20 for controlling a plurality of network devices 10, 11, 12 may be located in the network. Each network device 10, 11, 12 may denote a switch supporting SDN technology and may include a data plane, a local control plane, and an open flow agent, which are logical constructs. Network controller 20 may refer to a controller that supports SDN technology.

제1 네트워크 장치(10)는 다른 네트워크 장치 또는 사용자 단말로부터 패킷을 수신할 수 있다. 이때, 제1 네트워크 장치(10)는 데이터 평면을 통해 패킷을 수신할 수 있다. 제1 네트워크 장치(10)는 수신한 패킷의 포워딩을 위한 플로우 정보가 플로우 테이블(table) 내에 존재하는지 확인할 수 있다. 패킷의 포워딩을 위한 플로우 정보가 플로우 테이블 내에 존재하는 경우, 제1 네트워크 장치(10)는 해당 플로우 정보를 기반으로 패킷을 다른 네트워크 장치(예를 들어, 제2 네트워크 장치(11)) 또는 사용자 단말로 포워딩할 수 있다.The first network device 10 may receive packets from other network devices or user terminals. At this time, the first network device 10 can receive the packet through the data plane. The first network device 10 can confirm whether flow information for forwarding the received packet exists in the flow table. When the flow information for forwarding a packet exists in the flow table, the first network device 10 transmits the packet to another network device (for example, the second network device 11) or the user terminal . ≪ / RTI >

반면, 패킷의 포워딩을 위한 플로우 정보가 플로우 테이블 내에 존재하지 않는 경우, 제1 네트워크 장치(10)는 로컬 제어 평면을 통해 패킷에 대한 예외 처리를 수행할 수 있다(단계 ①). 그 후, 제1 네트워크 장치(10)는 오픈 플로우 제어 터널(tunnel)을 통해 패킷의 일부 또는 전부를 메시지(message) 형태로 네트워크 제어기(20)에 전송할 수 있다(단계 ②). 오픈 플로우 제어 터널은 제1 네트워크 장치(10)와 네트워크 제어기(20) 간에 형성된 보안 터널(SSL)을 의미할 수 있다.On the other hand, when the flow information for forwarding a packet does not exist in the flow table, the first network device 10 may perform exception processing on the packet through the local control plane (step 1). Thereafter, the first network device 10 may transmit a part or all of the packet to the network controller 20 in the form of a message through an open flow control tunnel (step 2). The open flow control tunnel may refer to a secure tunnel (SSL) formed between the first network device 10 and the network controller 20.

네트워크 제어기(20)는 제1 네트워크 장치(10)로부터 패킷을 수신한 경우 패킷의 포워딩 방법을 결정하고, 이에 따른 플로우 정보를 생성할 수 있다. 네트워크 제어기(20)는 생성된 플로우 정보와 제1 네트워크 장치(10)로부터 수신한 패킷을 메시지 형태로 제1 네트워크 장치(10)에 제공할 수 있다(단계 ③). 제1 네트워크 장치(10)는 네트워크 제어기(20)로부터 플로우 정보와 패킷을 로컬 제어 평면을 통해 수신할 수 있다. 그 후, 제1 네트워크 장치(10)는 플로우 정보를 기반으로 패킷을 다른 네트워크 장치(예를 들어, 제2 네트워크 장치(11) 또는 제3 네트워크 장치(12))로 포워딩할 수 있다(단계 ④).When the network controller 20 receives a packet from the first network device 10, the network controller 20 can determine a packet forwarding method and generate flow information according to the forwarding method. The network controller 20 can provide the generated flow information and the packet received from the first network device 10 to the first network device 10 in the form of a message (step 3). The first network device 10 may receive flow information and packets from the network controller 20 via a local control plane. The first network device 10 may then forward the packet to another network device (e.g., the second network device 11 or the third network device 12) based on the flow information (step 4 ).

이와 같은 과정은 각각의 네트워크 장치(10, 11, 12)에서 반복적으로 수행되므로 패킷 포워딩의 효율이 저하되는 문제가 있다.This process is repeatedly performed in each of the network devices 10, 11, and 12, thereby reducing packet forwarding efficiency.

도 4는 플로우 테이블의 구성을 도시한 개념도이다.4 is a conceptual diagram showing the configuration of a flow table.

도 4를 참조하면, 플로우 테이블은 적어도 하나의 플로우 정보를 포함할 수 있으며, 플로우 정보는 플로우 규칙(rule), 동작(action) 및 통계(statistics) 중 적어도 하나를 포함할 수 있다.Referring to FIG. 4, the flow table may include at least one flow information, and the flow information may include at least one of a flow rule, an action, and statistics.

플로우 규칙은 플로우를 정의하는 패킷 헤더(header) 정보를 의미할 수 있고, 플로우 동작은 패킷을 어떻게 처리할지 여부를 표시하는 정보를 의미할 수 있고, 플로우 통계는 각각의 플로우에 대한 통계 정보를 의미할 수 있다.
A flow rule may mean packet header information that defines a flow, a flow action may mean information indicating how to process the packet, and flow statistics may include statistical information for each flow can do.

도 5는 본 발명의 일 실시예에 따른 패킷 포워딩 방법을 도시한 흐름도이다.5 is a flowchart illustrating a packet forwarding method according to an embodiment of the present invention.

도 5를 참조하면, 네트워크 장치(10)는 패킷의 포워딩 기능을 수행할 수 있고, 네트워크 제어기(20)는 네트워크 장치(10)를 제어할 수 있다. 네트워크 장치(10)는 SDN 기술을 지원하는 스위치를 의미할 수 있으며, 논리적인 구성인 데이터 평면 및 제어 평면을 포함할 수 있다. 네트워크 제어기(20)는 SDN 기술을 지원하는 컨트롤러를 의미할 수 있다. 플로우 테이블 및 플로우 정보는 도 4에 도시된 구성을 의미할 수 있으며, 플로우 테이블은 네트워크 장치(10)에 저장될 수 있다.Referring to FIG. 5, the network device 10 can perform a forwarding function of a packet, and the network controller 20 can control the network device 10. Network device 10 may refer to a switch supporting SDN technology and may include a data plane and a control plane, which are logical configurations. Network controller 20 may refer to a controller that supports SDN technology. The flow table and flow information may refer to the configuration shown in Fig. 4, and the flow table may be stored in the network device 10. Fig.

네트워크 장치(10)는 사용자 단말 또는 다른 네트워크 장치로부터 패킷을 수신할 수 있다(S100). 네트워크 장치(10)는 수신된 패킷의 포워딩을 위한 플로우 정보가 플로우 테이블 내에 존재하는지 판단할 수 있다. 패킷의 포워딩을 위한 플로우 정보가 플로우 테이블 내에 존재하는 경우, 네트워크 장치(10)는 해당 플로우 정보를 기반으로 패킷을 다른 네트워크 장치로 포워딩할 수 있다.The network device 10 may receive a packet from a user terminal or another network device (SlOO). The network device 10 can determine whether flow information for forwarding the received packet exists in the flow table. When the flow information for forwarding a packet exists in the flow table, the network device 10 can forward the packet to another network device based on the flow information.

반면, 패킷의 포워딩을 위한 플로우 정보가 플로우 테이블 내에 존재하지 않는 경우, 네트워크 장치(10)는 데이터 평면을 통해 패킷을 네트워크 제어기(20)에 제공할 수 있다(S110). 이때, 네트워크 장치(10)는 오픈 플로우 프로토콜(protocol)을 기반으로 패킷을 네트워크 제어기(20)에 제공할 수 있다. 즉, 네트워크 장치(10)는 자신의 데이터 평면과 네트워크 제어기(20) 간에 형성된 보안 터널을 통해 패킷을 네트워크 제어기(20)에 제공할 수 있다.On the other hand, if the flow information for forwarding the packet is not present in the flow table, the network device 10 may provide the packet to the network controller 20 via the data plane (S110). At this time, the network device 10 may provide the packet to the network controller 20 based on an open flow protocol. That is, the network device 10 may provide the packet to the network controller 20 through its own data plane and a secure tunnel formed between the network controller 20.

네트워크 제어기(20)는 네트워크 장치(10)로부터 패킷을 수신한 경우 해당 패킷의 포워딩을 위한 플로우 정보를 생성할 수 있다(S120). 즉, 네트워크 제어기(20)는 패킷의 포워딩 방법을 결정하고, 이에 따른 플로우 정보를 생성할 수 있다.When the network controller 20 receives a packet from the network device 10, the network controller 20 may generate flow information for forwarding the packet (S120). That is, the network controller 20 can determine the forwarding method of the packet and generate the flow information according to the forwarding method.

네트워크 제어기(20)는 플로우 정보가 포함된 메시지를 네트워크 장치(10)에 전송할 수 있다(S130). 여기서, 메시지는 플로우 정보만을 포함할 수 있으며, 네트워크 장치(10)로부터 수신된 패킷을 포함하지 않는다.The network controller 20 can transmit a message including the flow information to the network device 10 (S130). Here, the message may include only flow information and does not include packets received from the network device 10. [

한편, 네트워크 제어기(20)는 플로우 정보가 포함된 메시지를 네트워크 장치(10)뿐만 아니라 다른 네트워크 장치(즉, 네트워크 장치(10)로부터 전송되는 패킷이 경유할 네트워크 장치)에 전송할 수 있다(S140). 또한, 네트워크 제어기(20)는 네트워크 장치(10)로부터 수신한 패킷을 다른 네트워크 장치(즉, 패킷이 최종 목적지까지 전송되기 위해 경유할 네트워크 장치)에 전송할 수 있다.On the other hand, the network controller 20 can transmit a message including the flow information to not only the network device 10 but also other network devices (i.e., a network device via a packet transmitted from the network device 10) (S140) . The network controller 20 may also transmit the packet received from the network device 10 to another network device (i.e., the network device to which the packet passes to be transmitted to its final destination).

네트워크 장치(10)는 네트워크 제어기(20)로부터 패킷에 대한 플로우 정보를 포함한 메시지를 제어 평면을 통해 수신할 수 있다(130). 이때, 네트워크 장치(10)는 오픈 플로우 프로토콜을 기반으로 플로우 정보를 포함한 메시지를 수신할 수 있다. 즉, 네트워크 장치(10)는 자신의 제어 평면과 네트워크 제어기(20) 간에 형성된 보안 터널을 통해 플로우 정보를 포함함 메시지를 네트워크 제어기(20)로부터 수신할 수 있다. 네트워크 장치(10)는 수신된 플로우 정보를 기반으로 패킷을 다른 네트워크 장치 또는 사용자 단말로 포워딩할 수 있다(S150).
The network device 10 may receive a message from the network controller 20 via the control plane including flow information for the packet (130). At this time, the network device 10 can receive the message including the flow information based on the open flow protocol. That is, the network device 10 may receive a message including the flow information from the network controller 20 through a security tunnel formed between the control plane of the network device 10 and the network controller 20. The network device 10 may forward the packet to another network device or a user terminal based on the received flow information (S150).

본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.The methods according to the present invention can be implemented in the form of program instructions that can be executed through various computer means and recorded on 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 recorded on the computer readable medium may be those specially designed and constructed for the present invention or may be available to those skilled in the computer software.

컴퓨터 판독 가능 매체의 예에는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
Examples of computer readable media include hardware devices that are specially 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 generated 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 with at least one software module to perform the operations of the present invention, and vice versa.

도 6은 본 발명의 일 실시예에 따른 패킷 포워딩 방법을 도시한 개념도이다.6 is a conceptual diagram illustrating a packet forwarding method according to an embodiment of the present invention.

도 6을 참조하면, 패킷을 포워딩하는 복수의 네트워크 장치(10, 11, 12)와 복수의 네트워크 장치(10, 11, 12)를 제어하는 네트워크 제어기(20)는 네트워크에 위치할 수 있다. 각각의 네트워크 장치(10, 11, 12)는 SDN 기술을 지원하는 스위치를 의미할 수 있고, 논리적 구성인 데이터 평면, 로컬 제어 평면 및 오픈 플로우 에이전트를 포함할 수 있다. 네트워크 제어기(20)는 SDN 기술을 지원하는 컨트롤러를 의미할 수 있다.Referring to FIG. 6, a plurality of network devices 10, 11, 12 for forwarding packets and a network controller 20 for controlling a plurality of network devices 10, 11, 12 may be located in a network. Each network device 10, 11, 12 may refer to a switch supporting SDN technology and may include a data plane, a local control plane, and an open flow agent, which are logical constructs. Network controller 20 may refer to a controller that supports SDN technology.

제1 네트워크 장치(10)는 다른 네트워크 장치 또는 사용자 단말로부터 패킷을 수신할 수 있다. 이때, 제1 네트워크 장치(10)는 데이터 평면을 통해 패킷을 수신할 수 있다. 제1 네트워크 장치(10)는 수신한 패킷의 포워딩을 위한 플로우 정보가 플로우 테이블 내에 존재하는지 확인할 수 있다. 패킷의 포워딩을 위한 플로우 정보가 플로우 테이블 내에 존재하는 경우, 제1 네트워크 장치(10)는 해당 플로우 정보를 기반으로 패킷을 다른 네트워크 장치 또는 사용자 단말로 포워딩할 수 있다.The first network device 10 may receive packets from other network devices or user terminals. At this time, the first network device 10 can receive the packet through the data plane. The first network device 10 can confirm whether flow information for forwarding the received packet exists in the flow table. When flow information for packet forwarding exists in the flow table, the first network device 10 can forward the packet to another network device or a user terminal based on the flow information.

반면, 패킷의 포워딩을 위한 플로우 정보가 플로우 테이블 내에 존재하지 않는 경우, 제1 네트워크 장치(10)는 데이터 전용 터널을 통해 패킷을 네트워크 제어기(20)에 전송할 수 있다(단계 ①). 데이터 전용 터널은 제1 네트워크 장치(10)(즉, 데이터 평면)와 네트워크 제어기(20) 간에 형성된 보안 터널을 의미할 수 있다.On the other hand, if the flow information for forwarding a packet does not exist in the flow table, the first network device 10 may transmit the packet to the network controller 20 through a data-only tunnel (step 1). The data only tunnel may refer to a secure tunnel formed between the first network device 10 (i.e., the data plane) and the network controller 20.

네트워크 제어기(20)는 제1 네트워크 장치(10)로부터 패킷을 수신한 경우 패킷의 포워딩 방법을 결정하고, 이에 따른 플로우 정보를 생성할 수 있다. 네트워크 제어기(20)는 생성된 플로우 정보를 포함한 메시지를 오픈 플로우 제어 채널을 통해 제1 네트워크 장치(10)에 전송할 수 있다(단계 ②). 오픈 플로우 제어 채널은 제1 네트워크 장치(10)(즉, 로컬 제어 평면)와 네트워크 제어기(20) 간에 형성된 보안 터널을 의미할 수 있다.When the network controller 20 receives a packet from the first network device 10, the network controller 20 can determine a packet forwarding method and generate flow information according to the forwarding method. The network controller 20 can transmit the message including the generated flow information to the first network device 10 through the open flow control channel (step 2). The open flow control channel may refer to a secure tunnel formed between the first network device 10 (i.e., the local control plane) and the network controller 20.

제1 네트워크 장치(10)는 네트워크 제어기(20)로부터 플로우 정보가 포함된 메시지를 로컬 제어 평면을 통해 수신할 수 있다. 그 후, 제1 네트워크 장치(10)는 플로우 정보를 기반으로 패킷을 다른 네트워크 장치(예를 들어, 제2 네트워크 장치(11) 또는 제3 네트워크 장치(12))로 포워딩할 수 있다.The first network device 10 may receive a message containing the flow information from the network controller 20 through the local control plane. The first network device 10 may then forward the packet to another network device (e.g., the second network device 11 or the third network device 12) based on the flow information.

한편, 네트워크 제어기(20)는 플로우 정보를 포함한 메시지를 다른 네트워크 장치(즉, 제1 네트워크 장치(10)로부터 전송되는 패킷이 이후에 경유할 네트워크 장치)에 전송할 수 있다(단계 ③). 즉, 네트워크 제어기(20)는 패킷이 경유할 다음 네트워크 장치(예를 들어, 제2 네트워크 장치(11)) 또는 패킷이 경유할 모든 네트워크 장치(예를 들어, 제2 네트워크 장치(11) 및 제3 네트워크 장치(12))에 플로우 정보를 포함한 메시지를 전송할 수 있다.On the other hand, the network controller 20 can transmit the message including the flow information to another network device (i.e., a network device to which the packet transmitted from the first network device 10 will later pass) (step 3). That is, the network controller 20 determines whether the next network device (for example, the second network device 11) to which the packet will pass or all the network devices (for example, the second network device 11 and the second network device 11) 3 network device 12) with flow information.

네트워크 제어기(20)는 제1 네트워크 장치(10)로부터 수신한 패킷을 다음에 경유할 네트워크 장치에 전송할 수 있다(단계 ④). 예를 들어, 패킷이 제1 네트워크 장치(10)로부터 제2 네트워크 장치(11)로 전송되는 경우, 네트워크 제어기(20)는 제1 네트워크 장치(10)로부터 수신한 패킷을 제2 네트워크 장치(11)에 전송할 수 있다.
The network controller 20 can transmit the packet received from the first network device 10 to the next network device (step 4). For example, when a packet is transmitted from the first network device 10 to the second network device 11, the network controller 20 transmits the packet received from the first network device 10 to the second network device 11 ).

도 7은 본 발명의 일 실시예에 따른 네트워크 장치를 도시한 블록도이다.7 is a block diagram illustrating a network device according to an embodiment of the present invention.

도 7을 참조하면, 네트워크 장치(10)는 물리적 구성인 처리부(10a) 및 저장부(10b)를 포함할 수 있다. 네트워크 장치(10)는 SDN 기술을 지원하는 스위치를 의미할 수 있다. 한편, 네트워크 장치(10)는 논리적 구성인 데이터 평면 및 제어 평면을 포함할 수 있다.Referring to FIG. 7, the network device 10 may include a processing unit 10a and a storage unit 10b, which are physical configurations. Network device 10 may refer to a switch supporting SDN technology. On the other hand, the network device 10 may include a data plane and a control plane, which are logical constructs.

처리부(10a)는 다른 네트워크 장치 또는 사용자 단말로부터 패킷을 수신할 수 있고, 수신된 패킷의 포워딩을 위한 플로우 정보가 존재하는지 판단할 수 있다. 패킷의 포워딩을 위한 플로우 정보가 존재하는 경우, 처리부(10a)는 플로우 정보를 기반으로 패킷을 다른 네트워크 장치로 포워딩할 수 있다.The processing unit 10a can receive a packet from another network device or a user terminal and can determine whether there is flow information for forwarding the received packet. When there is flow information for forwarding a packet, the processing unit 10a can forward the packet to another network device based on the flow information.

한편, 패킷의 포워딩을 위한 플로우 정보가 존재하지 않는 경우, 처리부(10a)는 해당 패킷을 데이터 평면을 통해 네트워크 제어기에 전송할 수 있다. 여기서, 네트워크 제어기는 복수의 네트워크 장치를 제어하는 컨트롤러를 의미할 수 있다.On the other hand, when there is no flow information for packet forwarding, the processing unit 10a can transmit the packet to the network controller through the data plane. Here, the network controller may mean a controller that controls a plurality of network devices.

처리부(10a)는 네트워크 제어기로부터 패킷에 대한 플로우 정보를 포함한 메시지를 수신할 수 있다. 이때, 처리부(10a)는 제어 평면을 통해 플로우 정보를 포함한 메시지를 수신할 수 있다. 처리부(10a)는 플로우 정보를 기반으로 패킷을 다른 네트워크 장치에 포워딩할 수 있다.The processing unit 10a can receive a message including flow information on a packet from the network controller. At this time, the processing unit 10a can receive the message including the flow information through the control plane. The processing unit 10a can forward the packet to another network device based on the flow information.

여기서, 처리부(10a)는 프로세서(processor) 및 메모리(memory)를 포함할 수 있다. 프로세서는 범용의 프로세서(예를 들어, CPU(Central Processing Unit) 및/또는 GPU(Graphics Processing Unit) 등) 또는 패킷 포워딩 방법의 수행을 위한 전용의 프로세서를 의미할 수 있다. 메모리에는 패킷 포워딩 방법의 수행을 위한 프로그램 코드(program code)가 저장될 수 있다. 즉, 프로세서는 메모리에 저장된 프로그램 코드를 독출할 수 있고, 독출된 프로그램 코드를 기반으로 패킷 포워딩 방법의 각 단계를 수행할 수 있다.Here, the processing unit 10a may include a processor and a memory. A processor may refer to a general purpose processor (e.g., a Central Processing Unit (CPU) and / or a Graphics Processing Unit (GPU)) or a processor dedicated to performing a packet forwarding method. The memory may store program code for performing the packet forwarding method. That is, the processor can read the program code stored in the memory and perform each step of the packet forwarding method based on the read program code.

저장부(10b)는 처리부(10a)에서 처리되는 정보 및 처리된 정보를 저장할 수 있다. 예를 들어, 저장부(10b)는 패킷, 플로우 정보, 플로우 테이블 등을 저장할 수 있다.
The storage unit 10b may store information processed and processed in the processing unit 10a. For example, the storage unit 10b may store packets, flow information, flow tables, and the like.

도 8은 본 발명의 일 실시예에 따른 네트워크 제어기를 도시한 블록도이다.8 is a block diagram illustrating a network controller according to an embodiment of the present invention.

도 8을 참조하면, 네트워크 제어기(20)는 물리적 구성인 처리부(20a) 및 저장부(20b)를 포함할 수 있으며, 복수의 네트워크 장치를 제어할 수 있다. 네트워크 제어기(20)는 SDN 기술을 지원하는 컨트롤러를 의미할 수 있다.Referring to FIG. 8, the network controller 20 may include a processing unit 20a and a storage unit 20b, which are physical configurations, and may control a plurality of network devices. Network controller 20 may refer to a controller that supports SDN technology.

처리부(20a)는 네트워크 장치로부터 패킷을 수신할 수 있다. 이때, 처리부(20a)는 네트워크 장치의 데이터 평면과 네트워크 제어기(20) 간에 형성된 보안 채널을 통해 패킷을 수신할 수 있다. 처리부(20a)는 수신된 패킷의 포워딩을 위한 플로우 정보를 생성할 수 있다. 즉, 처리부(20a)는 패킷의 포워딩 방법을 결정하고, 이에 따라 플로우 정보를 생성할 수 있다.The processing unit 20a can receive packets from the network device. At this time, the processing unit 20a may receive the packet through the data plane of the network device and the secure channel formed between the network controller 20. [ The processing unit 20a can generate flow information for forwarding the received packet. That is, the processing unit 20a can determine the forwarding method of the packet and generate the flow information accordingly.

처리부(20a)는 플로우 정보가 포함된 메시지를 네트워크 장치(즉, 패킷을 전송한 네트워크 장치)에 전송할 수 있다. 이때, 처리부(20a)는 네트워크 장치의 제어 평면과 네트워크 제어기(20) 간에 형성된 보안 채널을 통해 메시지를 전송할 수 있다.The processing unit 20a can transmit a message including the flow information to the network device (i.e., the network device that transmitted the packet). At this time, the processing unit 20a can transmit a message through a secure channel formed between the control plane of the network device and the network controller 20. [

한편, 처리부(20a)는 플로우 정보가 포함된 메시지를 다른 네트워크 장치(즉, 이후에 패킷이 경유할 다음 네트워크 장치 또는 모든 네트워크 장치)에 전송할 수 있다. 또한, 처리부(20a)는 네트워크 장치로부터 수신한 패킷을 다른 네트워크 장치(즉, 이후에 패킷이 경유할 네트워크 장치)에 전송할 수 있다.On the other hand, the processing unit 20a can transmit a message including the flow information to another network device (i.e., the next network device or all network devices to be passed thereafter). In addition, the processing unit 20a can transmit the packet received from the network apparatus to another network apparatus (i.e., a network apparatus to which the packet will later pass).

여기서, 처리부(20a)는 프로세서 및 메모리를 포함할 수 있다. 프로세서는 범용의 프로세서(예를 들어, CPU 및/또는 GPU 등) 또는 패킷 포워딩 지원 방법의 수행을 위한 전용의 프로세서를 의미할 수 있다. 메모리에는 패킷 포워딩 지원 방법의 수행을 위한 프로그램 코드가 저장될 수 있다. 즉, 프로세서는 메모리에 저장된 프로그램 코드를 독출할 수 있고, 독출된 프로그램 코드를 기반으로 패킷 포워딩 지원 방법의 각 단계를 수행할 수 있다.Here, the processing unit 20a may include a processor and a memory. A processor may refer to a general purpose processor (e.g., CPU and / or GPU) or a dedicated processor for performing a packet forwarding support method. The memory may store program code for performing the packet forwarding support method. That is, the processor can read the program code stored in the memory and perform each step of the packet forwarding support method based on the read program code.

저장부(20b)는 처리부(20a)에서 처리되는 정보 및 처리된 정보를 저장할 수 있다. 예를 들어, 저장부(20b)는 패킷, 플로우 정보, 플로우 테이블 등을 저장할 수 있다.
The storage unit 20b may store information processed and processed in the processing unit 20a. For example, the storage unit 20b may store packets, flow information, flow tables, and the like.

이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined in the appended claims. It will be possible.

10: 제1 네트워크 장치
11: 제2 네트워크 장치
12: 제3 네트워크 장치
20: 네트워크 제어기
10: first network device
11: second network device
12: Third network device
20: Network controller

Claims (20)

네트워크(network) 장치에서 수행되는 패킷 포워딩(forwarding) 방법에 있어서,
패킷을 수신하는 단계;
상기 패킷의 포워딩을 위한 플로우(flow) 정보가 존재하지 않는 경우, 상기 패킷을 데이터 평면(data plane)을 통해 네트워크 제어기(controller)에 제공하는 단계; 및
상기 네트워크 제어기로부터 상기 패킷에 대한 플로우 정보를 포함한 메시지를 제어 평면(control plane)을 통해 수신하는 단계를 포함하는 패킷 포워딩 방법.
1. A packet forwarding method performed in a network device,
Receiving a packet;
Providing the packet to a network controller via a data plane if there is no flow information for forwarding the packet; And
And receiving from the network controller a message including flow information for the packet through a control plane.
청구항 1에 있어서,
상기 패킷 포워딩 방법은,
상기 수신된 플로우 정보를 기반으로 상기 패킷을 포워딩하는 단계를 더 포함하는 것을 특징으로 하는 패킷 포워딩 방법.
The method according to claim 1,
The packet forwarding method includes:
And forwarding the packet based on the received flow information.
청구항 1에 있어서,
상기 패킷 포워딩 방법은,
상기 패킷의 포워딩을 위한 플로우 정보가 존재하는 경우, 상기 플로우 정보를 기반으로 상기 패킷을 포워딩하는 단계를 더 포함하는 것을 특징으로 하는 패킷 포워딩 방법.
The method according to claim 1,
The packet forwarding method includes:
And forwarding the packet based on the flow information when flow information for forwarding the packet exists.
청구항 1에 있어서,
상기 네트워크 제어기에 제공하는 단계는,
오픈 플로우(openflow) 프로토콜(protocol)을 기반으로 상기 패킷을 상기 네트워크 제어기에 제공하는 것을 특징으로 하는 패킷 포워딩 방법.
The method according to claim 1,
Wherein the step of providing to the network controller comprises:
And providing the packet to the network controller based on an open flow protocol.
청구항 1에 있어서,
상기 제어 평면을 통해 수신하는 단계는,
오픈 플로우 프로토콜을 기반으로 상기 플로우 정보를 포함한 메시지를 수신하는 것을 특징으로 하는 패킷 포워딩 방법.
The method according to claim 1,
Wherein receiving via the control plane comprises:
And receiving a message including the flow information based on an open flow protocol.
청구항 1에 있어서,
상기 네트워크 장치는,
소프트웨어 정의 네트워킹(software defined networking) 기술을 지원하는 스위치(switch)인 것을 특징으로 하는 패킷 포워딩 방법.
The method according to claim 1,
The network device comprising:
Wherein the packet is a switch supporting software defined networking technology.
청구항 1에 있어서,
상기 네트워크 제어기는,
소프트웨어 정의 네트워킹 기술을 지원하는 제어기인 것을 특징으로 하는 패킷 포워딩 방법.
The method according to claim 1,
The network controller comprising:
Wherein the controller is a controller supporting software defined networking technology.
청구항 1에 있어서,
상기 플로우 정보는,
플로우 규칙(rule), 동작(action) 및 통계(statistics) 중 적어도 하나를 포함하는 것을 특징으로 하는 패킷 포워딩 방법.
The method according to claim 1,
The flow information includes:
Wherein the at least one packet includes at least one of a flow rule, an action, and statistics.
네트워크(network) 장치를 제어하는 네트워크 제어기(controller)에서 수행되는 패킷 포워딩(forwarding) 지원 방법에 있어서,
네트워크 장치로부터 패킷을 수신하는 단계;
상기 패킷의 포워딩을 위한 플로우 정보를 생성하는 단계; 및
상기 플로우 정보를 상기 네트워크 장치에 전송하는 단계를 포함하는 패킷 포워딩 지원 방법.
1. A method for supporting packet forwarding in a network controller for controlling a network device,
Receiving a packet from a network device;
Generating flow information for forwarding the packet; And
And forwarding the flow information to the network device.
청구항 9에 있어서,
상기 패킷 포워딩 지원 방법은,
상기 플로우 정보를 상기 패킷이 경유할 네트워크 장치에 전송하는 단계를 더 포함하는 것을 특징으로 하는 패킷 포워딩 지원 방법.
The method of claim 9,
The packet forwarding support method includes:
And transmitting the flow information to a network device via the packet.
청구항 9에 있어서,
상기 패킷을 수신하는 단계는,
오픈 플로우(openflow) 프로토콜(protocol)을 기반으로 상기 패킷을 수신하는 것을 특징으로 하는 패킷 포워딩 지원 방법.
The method of claim 9,
Wherein receiving the packet comprises:
Wherein the packet is received based on an open flow protocol.
청구항 9에 있어서,
상기 플로우 정보를 생성하는 단계는,
플로우 규칙(rule), 동작(action) 및 통계(statistics) 중 적어도 하나를 포함하는 플로우 정보를 생성하는 것을 특징으로 하는 패킷 포워딩 지원 방법.
The method of claim 9,
Wherein the step of generating the flow information comprises:
Wherein the flow information includes at least one of a flow rule, an action, and statistics.
청구항 9에 있어서,
상기 네트워크 장치에 전송하는 단계는,
오픈 플로우 프로토콜을 기반으로 상기 플로우 정보를 전송하는 것을 특징으로 하는 패킷 포워딩 지원 방법.
The method of claim 9,
Wherein the transmitting to the network device comprises:
And the flow information is transmitted based on an open flow protocol.
청구항 9에 있어서,
상기 네트워크 장치는,
소프트웨어 정의 네트워킹(software defined networking) 기술을 지원하는 스위치(switch)인 것을 특징으로 하는 패킷 포워딩 지원 방법.
The method of claim 9,
The network device comprising:
Wherein the packet is a switch supporting software defined networking technology.
청구항 9에 있어서,
상기 네트워크 제어기는,
소프트웨어 정의 네트워킹 기술을 지원하는 제어기인 것을 특징으로 하는 패킷 포워딩 지원 방법.
The method of claim 9,
The network controller comprising:
Wherein the controller is a controller supporting software defined networking technology.
패킷(packet)을 포워딩(forwarding)하는 네트워크(network) 장치로서,
패킷을 수신하고, 상기 패킷의 포워딩을 위한 플로우(flow) 정보가 존재하지 않는 경우 상기 패킷을 데이터 평면(data plane)을 통해 네트워크 제어기(controller)에 제공하고, 상기 네트워크 제어기로부터 상기 패킷에 대한 플로우 정보를 포함한 메시지를 제어 평면(control plane)을 통해 수신하는 처리부; 및
상기 처리부에서 처리된 정보 및 처리되는 정보를 저장하는 저장부를 포함하는 네트워크 장치.
1. A network device for forwarding a packet,
And provides the packet to a network controller via a data plane if there is no flow information for forwarding the packet, and if the flow for the packet is not received from the network controller, A processing unit for receiving a message including information through a control plane; And
And a storage unit for storing information processed and processed by the processing unit.
청구항 16에 있어서,
상기 처리부는,
상기 수신된 플로우 정보를 기반으로 상기 패킷을 포워딩하는 것을 특징으로 하는 네트워크 장치.
18. The method of claim 16,
Wherein,
And forwarding the packet based on the received flow information.
청구항 16에 있어서,
상기 처리부는,
오픈 플로우(openflow) 프로토콜(protocol)을 기반으로 상기 네트워크 제어기와 네트워크를 형성하는 것을 특징으로 하는 네트워크 장치.
18. The method of claim 16,
Wherein,
And forms a network with the network controller based on an open flow protocol.
청구항 16에 있어서,
상기 네트워크 장치는,
소프트웨어 정의 네트워킹(software defined networking) 기술을 지원하는 스위치(switch)인 것을 특징으로 하는 네트워크 장치.
18. The method of claim 16,
The network device comprising:
Characterized in that the network device is a switch supporting software defined networking technology.
청구항 16에 있어서,
상기 플로우 정보는,
플로우 규칙(rule), 동작(action) 및 통계(statistics) 중 적어도 하나를 포함하는 것을 특징으로 하는 네트워크 장치.
18. The method of claim 16,
The flow information includes:
A flow rule, an action, and statistics.
KR1020130125078A 2012-10-22 2013-10-21 Method for forwarding packet and apparatus therefor KR20140052848A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/060,473 US20140112142A1 (en) 2012-10-22 2013-10-22 Method of forwarding packet and apparatus thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20120117217 2012-10-22
KR1020120117217 2012-10-22

Publications (1)

Publication Number Publication Date
KR20140052848A true KR20140052848A (en) 2014-05-07

Family

ID=50885980

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130125078A KR20140052848A (en) 2012-10-22 2013-10-21 Method for forwarding packet and apparatus therefor

Country Status (1)

Country Link
KR (1) KR20140052848A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9912581B2 (en) 2014-08-27 2018-03-06 Electronics And Telecommunications Research Institute Flow inheritance

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9912581B2 (en) 2014-08-27 2018-03-06 Electronics And Telecommunications Research Institute Flow inheritance

Similar Documents

Publication Publication Date Title
US10868767B2 (en) Data transmission method and apparatus in optoelectronic hybrid network
US10642321B2 (en) Power distribution unit self-identification
US9660942B2 (en) Automatic buffer sizing for optimal network-on-chip design
JP6055009B2 (en) Packet processing method, apparatus and system
US9479323B2 (en) Communication system, forwarding node, control device, communication control method, and program
JP4763405B2 (en) Network-on-chip semi-automatic communication architecture for data flow applications
CN109088820B (en) Cross-device link aggregation method and device, computing device and storage medium
WO2011046637A1 (en) Reliable communications in on-chip networks
WO2022032984A1 (en) Mqtt protocol simulation method and simulation device
CN113114706B (en) Multichannel Ethernet message processing method based on power chip
CN106603409B (en) Data processing system, method and equipment
WO2016082456A1 (en) Board, board management method and system, and storage medium
EP2699030B1 (en) Route switching device, network switching system and route switching method
CN104954165A (en) Link analysis method, device and system
RU2602333C2 (en) Network system, packet processing method and storage medium
US20140112142A1 (en) Method of forwarding packet and apparatus thereof
CN105227403A (en) A kind of OpenStack network flow monitoring method
CN109039738B (en) DCS network equipment configuration and monitoring method, device, maintenance node and terminal
CN114466404A (en) Business flow data transmission method and device, electronic equipment and storage medium
CN113542148A (en) Message aggregation method and device, network card and readable storage medium
KR20140052848A (en) Method for forwarding packet and apparatus therefor
JP7048149B2 (en) Network system, control device, processing rule setting method and program
US9590925B2 (en) Packet processing apparatus, packet processing method, and non-transitory computer-readable storage medium
WO2021232920A1 (en) Data transmission method, electronic device, and storage medium
US9819571B2 (en) Control apparatus and method for supplying switch with entry

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid