KR101554477B1 - Method, appratus, system and computer-readable recording medium for adjusting flow against overload - Google Patents
Method, appratus, system and computer-readable recording medium for adjusting flow against overload Download PDFInfo
- Publication number
- KR101554477B1 KR101554477B1 KR1020150012395A KR20150012395A KR101554477B1 KR 101554477 B1 KR101554477 B1 KR 101554477B1 KR 1020150012395 A KR1020150012395 A KR 1020150012395A KR 20150012395 A KR20150012395 A KR 20150012395A KR 101554477 B1 KR101554477 B1 KR 101554477B1
- Authority
- KR
- South Korea
- Prior art keywords
- network switch
- packet
- network
- switch
- overload
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/50—Overload detection or protection within a single switching element
- H04L49/501—Overload detection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
본 발명은 과부하에 대응하여 패킷을 처리하기 위한 방법, 장치, 시스템 및 컴퓨터 판독 가능한 기록 매체에 관한 것으로, 보다 상세하게는, 네트워크 스위치의 과부하가 감지되고, 네트워크 스위치로 전송된 패킷에 대해서 네트워크 스위치의 단독으로는 경로가 확정되지 못하는 패킷을 네트워크 스위치에 인접한 이웃 네트워크 스위치로 바이패스하는 방법, 장치, 시스템 및 컴퓨터 판독 가능한 기록 매체에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method, an apparatus, a system and a computer-readable recording medium for processing a packet in response to an overload. More particularly, To a method, apparatus, system, and computer-readable recording medium for bypassing a packet whose path can not be determined by itself to a neighboring network switch adjacent to the network switch.
일반적으로 네트워크 장치의 인터페이스는 네트워크 장치의 제조자에 의해 결정된다. 다양한 제조자들의 네트워크 스위치들은 서로 다른 어플리케이션 프로그래밍 인터페이스(API: Application Programming Interface, 이하 "API"라고 함)를 제공할 수 있다. 동일하거나 유사한 기능을 제공하는 다양한 네트워크 장치들이 제조사 또는 버전 별로 서로 다른 인터페이스를 제공하기 때문에, 네트워크의 운영자는 네트워크의 환경에 맞추어 기능을 추가, 개발 또는 구성함에 있어서 어려움을 겪을 수 있다. 따라서, 네트워크 장치에 대한 통일된 인터페이스, 예를 들면 표준 API 또는 개방된(Open) 인터페이스 등이 요구된다.In general, the interface of the network device is determined by the manufacturer of the network device. The network switches of various manufacturers can provide different application programming interfaces (APIs). Since various network devices providing the same or similar functions provide different interfaces according to the manufacturer or version, the operator of the network may have difficulties in adding, developing or configuring functions according to the environment of the network. Thus, a unified interface to the network device, for example a standard API or an open interface, is required.
소프트웨어 정의된 네트워킹(SDN: Software-Defined Networking, 이하 "SDN"이라고 함)은 오픈 네트워크 파운데이션(ONF: Open Network Foundation, 이하 "ONF"라고 함)에 의해 표준화가 추진되는 기술이다. SDN에서는 소프트웨어 프로그래밍에 의해 네트워크 경로 설정, 네트워크 제어 및 기타 네트워크 운용이 처리된다.Software-Defined Networking (SDN) is a technology that is standardized by the Open Network Foundation (ONF). In SDN, network routing, network control, and other network operations are handled by software programming.
SDN은 네트워크의 제어 기능이 물리적 네트워크와 분리되어 있는 네트워크 구조를 의미한다. 말하자면, SDN에서는 네트워크의 데이터 평면(Data plane) 및 제어 평면(Control plane)으로 분리되어 있으며, 양 평면들의 사이에서의 표준화된 인터페이스가 제공된다. 예를 들면, 네트워크의 운영자는 제어 평면에 대한 프로그래밍을 통해 SDN에 의해 제공되는 인터페이스를 사용할 수 있고, SDN에 의해 제공되는 인터페이스를 통해 네트워크의 상황에 맞춰 데이터 평면에서 이루어지는 통신 기능을 제어할 수 있다.SDN means a network structure in which the control functions of the network are separated from the physical network. That is to say, the SDN is divided into a data plane and a control plane of the network, and a standardized interface between both planes is provided. For example, an operator of a network can use the interface provided by the SDN via programming on the control plane, and control the communication function on the data plane according to the context of the network via the interface provided by the SDN .
SDN에 의해 제공되는 기능들 중 대표적인 기능들로서, 소프트웨어 정의 포워딩(Software defined forwarding)이 있다. 기존의 네트워크에서 패킷 포워딩은 스위치 또는 라우터의 하드웨어에 의해 처리된다. 소프트웨어 정의 포워딩은 이러한 패킷 포워딩이 개방형 인터페이스 및 소프트웨어에 의해 제어되는 것을 의미한다. 소프트웨어 정의 포워딩을 위한 표준 인터페이스로서 오픈플로우(OpenFlow)가 널리 사용된다. 오픈플로우는 스위치 및 라우터의 기능에 대한 프로그래밍을 지원하기 위해 정의된 오픈 소스(Source) API로서, SDN을 위한 흐름 제어, 보안 및 가상화 등을 제공한다.Among the functions provided by the SDN, there are software defined forwarding. In an existing network, packet forwarding is handled by the hardware of the switch or router. Software defined forwarding means that such packet forwarding is controlled by open interfaces and software. OpenFlow is widely used as a standard interface for software-defined forwarding. Openflow is an open source API defined to support programming of switch and router functions, providing flow control, security, and virtualization for SDN.
SDN을 구성하는 요소로서, SDN 제어기 및 SDN 스위치들이 있다. SDN 제어기는 OpenFlow 프로토콜과 같은 프로토콜을 사용하여 SDN 스위치를 제어한다. 예를 들면, SDN 제어기는 네트워크 토폴로지(Topology)에 따라 패킷의 포워딩 방법을 설정할 수 있고, 설정된 포워딩 방법을 SDN 스위치로 전송할 수 있다.As elements constituting the SDN, there are the SDN controller and the SDN switches. The SDN controller uses the same protocol as the OpenFlow protocol to control the SDN switch. For example, the SDN controller may set the forwarding method of the packet according to the network topology, and may transmit the set forwarding method to the SDN switch.
SDN 스위치는 SDN 제어기의 제어에 따라 패킷을 처리할 수 있다. SDN 스위치는 패킷을 처리하기 위해 플로우 테이블을 사용할 수 있다. 예를 들면, 플로우 테이블의 각 플로우 엔트리는 조건(Match fields), 통계(Counters) 및 액션(Action)을 포함할 수 있으며, 소정의 조건을 충족시키는 패킷을 어떻게 처리할 것인가를 정의할 수 있다. 예를 들면, 플로우 엔트리에 아웃포트 액션이 명시된 경우, 패킷은 아웃포트로 포워드될 수 있다.The SDN switch can process packets under the control of the SDN controller. The SDN switch can use a flow table to process packets. For example, each flow entry in the flow table may include Match fields, Counters, and Action, and may define how to process packets that meet certain conditions. For example, if an outport action is specified in a flow entry, the packet may be forwarded to the outport.
경우에 따라, 특정한 패킷은 플로우 테이블에 의해서는 어떻게 처리되어야 할지 정의되지 않을 수 있다. 말하자면, 특정한 패킷은 플로우 테이블의 어떤 엔트리에도 매치되지 않을 수 있다. SDN 스위치은 이러한 패킷에 대한 플로우 셋업을 위해 SDN 제어기에게 업콜(Upcall)을 전송한다. SDN 제어기는 네트워크의 토폴로지 등을 고려하여 패킷에 매치되는 플로우 엔트리를 생성하고, 업콜에 대한 응답으로서 생성된 플로우 엔트리의 정보를 SDN 스위치로 전송한다. SDN 스위치는 패킷에 대하여 새로 제공된 플로우 엔트리를 사용하여 패킷을 처리한다.In some cases, a particular packet may not be defined by the flow table. That is to say, a particular packet may not match any entry in the flow table. The SDN switch sends an upcall to the SDN controller for flow setup for this packet. The SDN controller generates a flow entry matched with the packet in consideration of the topology of the network and sends the information of the flow entry generated as a response to the up-call to the SDN switch. The SDN switch processes the packet using the newly provided flow entry for the packet.
전술된 것과 같이 SDN 스위치는 소프트웨어를 사용하여 패킷을 처리한다. 따라서, SDN 스위치는 하드웨어로 패킷을 처리하는 스위치에 비해 패킷의 처리에 있어서 많은 자원을 사용한다는 문제점을 가질 수 있다. 특히, SDN 스위치가 과부하(Overload)된 경우 전술된 SDN의 원리에 따른 동작은 SDN 스위치의 성능에 큰 영향을 미칠 수 있다. 예를 들면, 과부하된 SDN 스위치에 전송된 패킷이 플로우 테이블의 플로우 엔트리들에 매치되지 않을 경우, SDN 스위치가 업콜 및 업콜에 대한 응답의 처리를 하기 위해서는 많은 자원이 요구되고, 패킷의 처리의 성능이 저하된다는 문제점이 있다.As described above, the SDN switch processes packets using software. Therefore, the SDN switch may have a problem in that it uses a lot of resources in the processing of a packet as compared with a switch that processes packets by hardware. In particular, when the SDN switch is overloaded, the operation according to the above-described SDN principle can greatly affect the performance of the SDN switch. For example, if a packet sent to an overloaded SDN switch does not match the flow entries in the flow table, then many resources are required for the SDN switch to process the response to the upcall and upcall, Is lowered.
이에 본 발명자는, 네트워크 스위치의 과부하를 감지하고, 과부하에 의해 영향을 받는 처리를 요구하는 패킷을 네트워크 스위치에 인접한 이웃 네트워크 스위치로 바이패스함으로써 네트워크 스위치의 부하를 경감시키는 것을 가능하게 하는 기술을 개발하기에 이르렀다.The present inventors have developed a technique that enables a load of a network switch to be reduced by detecting an overload of the network switch and bypassing a packet requiring processing that is affected by the overload to a neighboring network switch adjacent to the network switch It came to the following.
본 발명은 상술한 문제점을 모두 해결하는 것을 그 목적으로 한다.It is an object of the present invention to solve all the problems described above.
또한, 본 발명은 네트워크 스위치의 과부하를 감지하고, 과부하에 의해 영향을 받는 처리를 요구하는 패킷을 네트워크 스위치에 인접한 이웃 네트워크 스위치로 바이패스함으로써 네트워크 스위치의 과부하의 감소가 이루어질 수 있도록 하는 것을 다른 목적으로 한다.The invention also pertains to detecting overload of a network switch and allowing a reduction in the overload of the network switch by bypassing a packet requiring processing that is affected by the overload to a neighboring network switch adjacent to the network switch, .
또한, 본 발명은 과부하된 네트워크 스위치로부터 과부하되지 않은 네트워크 스위치로 패킷을 바이패스함으로써 패킷에 대한 서비스 품질(QoS: Quality of Service, 이하 "QoS"라고 함)의 충족이 이루어질 수 있도록 하는 것을 다른 목적으로 한다.The present invention also provides a method and apparatus for enabling the fulfillment of a Quality of Service (QoS) for a packet by bypassing a packet from an overloaded network switch to a network switch that is not overloaded, .
상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.In order to accomplish the above object, a representative structure of the present invention is as follows.
본 발명의 일 태양에 따르면, 네트워크 스위치의 패킷 처리 방법으로서, (a) 상기 네트워크 스위치가, 상기 네트워크 스위치의 과부하 여부를 감지하는 단계; 및 (b) 상기 네트워크 스위치가 과부하인 것으로 감지된 상태에서, 상기 네트워크 스위치가 상기 네트워크 스위치에 전송된 소정의 패킷의 경로를 단독으로 확정하지 못하는 상태이면, 상기 패킷을 상기 네트워크 스위치에 인접한 이웃 네트워크 스위치로 바이패스하는 단계를 포함하는 패킷 처리 방법이 제공된다.According to an aspect of the present invention, there is provided a method of processing a packet of a network switch, comprising the steps of: (a) detecting whether the network switch is overloaded; And (b) if the network switch is in a state where it is detected that the network switch is overloaded, if the network switch is unable to determine the path of a predetermined packet transmitted to the network switch alone, And a step of bypassing the packet with a switch.
본 발명의 다른 태양에 따르면, 네트워크 스위치에 있어서, 상기 네트워크 스위치의 과부하를 감지하는 과부하 검출부; 및 상기 네트워크 스위치가 과부하인 것으로 감지된 상태에서, 상기 네트워크 스위치가 상기 네트워크 스위치에 전송된 소정의 패킷의 경로를 단독으로 확정하지 못하는 상태이면, 상기 패킷을 상기 네트워크 스위치에 인접한 이웃 네트워크 스위치로 바이패스하는 패킷 처리부를 포함하는 네트워크 스위치가 제공된다.According to another aspect of the present invention, there is provided a network switch comprising: an overload detection unit for detecting an overload of the network switch; And if the network switch is in a state in which it is detected that the network switch is overloaded, the network switch can not determine the path of a predetermined packet transmitted to the network switch alone, There is provided a network switch including a packet processing unit for passing packets.
본 발명의 또 다른 태양에 따르면, 복수의 네트워크 스위치들을 포함하고, 상기 복수의 네트워크 스위치 중 제1 네트워크 스위치는 상기 제1 네트워크 스위치의 과부하 여부를 감지하고, 상기 제1 네트워크 스위치가 과부하인 것으로 감지된 상태에서, 상기 제1 네트워크 스위치가 상기 제1 네트워크 스위치에 전송된 소정의 패킷의 경로를 단독으로 확정하지 못하는 상태이면 상기 패킷을 상기 제2 네트워크 스위치로 바이패스하고, 상기 제2 네트위크 스위치는 상기 복수의 네트워크 스위치들 중 상기 제1 네트워크 스위치에 이웃한 네트워크 스위치인 것을 특징으로 하는 시스템이 제공된다.According to still another aspect of the present invention, there is provided a method for controlling a network switch, comprising a plurality of network switches, wherein a first network switch of the plurality of network switches detects whether the first network switch is overloaded, The first network switch bypasses the packet to the second network switch when the first network switch is in a state where the first network switch can not determine the path of the predetermined packet transmitted to the first network switch alone, Wherein the first network switch is a network switch neighboring the first network switch among the plurality of network switches.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 장치, 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공된다.In addition, there is further provided another method, apparatus, system for implementing the invention and a computer readable recording medium for recording a computer program for executing the method.
본 발명에 의하면, 네트워크 스위치의 과부하에 의해 영향을 받는 처리가 요구되는 패킷을 네트워크 스위치에 인접한 이웃 네트워크 스위치로 바이패스함으로써 네트워크 스위치의 과부하로 인한 문제점을 방지할 수 있게 되는 효과가 달성된다.According to the present invention, it is possible to prevent a problem caused by an overload of a network switch by bypassing a packet requiring processing that is affected by an overload of the network switch to a neighboring network switch adjacent to the network switch.
또한, 본 발명에 의하면, 과부하된 네트워크 스위치로부터 과부하되지 않은 네트워크 스위치로 패킷을 바이패스함에 따라 패킷에 대한 QoS가 충족될 수 있다는 효과가 달성된다.Further, according to the present invention, the effect that the QoS for the packet can be satisfied by bypassing the packet from the overloaded network switch to the overloaded network switch is achieved.
도 1은 본 발명에 따른 네트워크 시스템의 구성을 개략적으로 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 네트워크 스위치의 구성을 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 네트워크 스위치의 과부하의 감지 및 과부하의 감지 후의 패킷의 처리를 설명하는 흐름도이다.1 is a diagram schematically showing a configuration of a network system according to the present invention.
2 is a diagram illustrating a configuration of a network switch according to an embodiment of the present invention.
FIG. 3 is a flowchart for explaining overload detection of a network switch and packet processing after detection of an overload according to an embodiment of the present invention.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.The following detailed description of the invention refers to the accompanying drawings, which illustrate, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. It should be understood that the various embodiments of the present invention are different, but need not be mutually exclusive. For example, certain features, structures, and characteristics described herein may be implemented in other embodiments without departing from the spirit and scope of the invention in connection with an embodiment. It is also to be understood that the position or arrangement of the individual components within each disclosed embodiment may be varied without departing from the spirit and scope of the invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is to be limited only by the appended claims, along with the full scope of equivalents to which such claims are entitled, if properly explained. In the drawings, like reference numerals refer to the same or similar functions throughout the several views.
이하에서는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings, so that those skilled in the art can easily carry out the present invention.
전체 시스템의 구성Configuration of the entire system
도 1은 본 발명에 따른 네트워크 시스템의 구성을 개략적으로 나타내는 도면이다.1 is a diagram schematically showing a configuration of a network system according to the present invention.
도 1에 도시되어 있는 바와 같이, 본 발명의 전체 시스템은 네트워크 제어기(Network Controller)(110) 및 복수의 네트워크 스위치(Switch)들을 포함할 수 있다. 네트워크 제어기(110)는 SDN 제어기일 수 있고, 복수의 네트워크 스위치들의 각 네트워크 스위치는 SDN 스위치일 수 있다.As shown in FIG. 1, the entire system of the present invention may include a
도 1 에서는 복수의 네트워크 스위치들로서, 제1 네트워크 스위치(121), 제2 네트워크 스위치(122), 제3 네트워크 스위치(123) 및 제4 네트워크 스위치(124)가 도시되었다. 네트워크에서, 제어 경로는 점선으로 도시되었고, 데이터 경로는 실선으로 도시되었다.In FIG. 1, a
본 발명의 일 실시예에 따르면, 복수의 네트워크 스위치들의 각 네트워크 스위치는 하나 이상의 포트를 포함할 수 있다. 도 1에서, 각 포트는 편의상 작은 사각형으로 도시되었다. 네트워크 스위치의 각 포트는 다른 네트워크 스위치로부터 패킷을 수신하거나, 다른 네트워크 스위치로 패킷을 전송할 수 있다. 또한, 네트워크 스위치의 각 포트는 외부의 네트워크 또는 외부의 장치로부터 패킷을 수신하거나 외부의 네트워크 또는 외부의 장치로 패킷을 전송할 수 있다. 네트워크 스위치에 의해 처리되는 패킷에 있어서, 인바운드(Inbound) 포트는 네트워크 스위치의 적어도 하나의 포트 중 패킷을 수신한 포트를 의미할 수 있고, 아웃바운드(Outbound) 포트는 네트워크 스위치의 적어도 하나의 포트 중 패킷을 전송한 포트일 수 있다.According to one embodiment of the present invention, each network switch of the plurality of network switches may comprise one or more ports. In Figure 1, each port is shown as a small rectangle for convenience. Each port of the network switch can receive packets from another network switch or transmit packets to another network switch. In addition, each port of the network switch may receive packets from an external network or an external device, or may transmit packets to an external network or an external device. In a packet processed by a network switch, the inbound port may refer to a port of the at least one port of the network switch that has received the packet, and the outbound port may be a port of at least one of the network switches It may be the port that sent the packet.
네트워크 스위치의 구성Network switch configuration
도 2는 본 발명의 일 실시예에 따른 네트워크 스위치의 구성을 나타내는 도면이다.2 is a diagram illustrating a configuration of a network switch according to an embodiment of the present invention.
본 발명의 일 실시예에 따르면, 네트워크 스위치(200)는 과부하 검출부(210), 패킷 처리부(220), 저장부(230) 및 적어도 하나의 포트(240)를 포함할 수 있다. 본 발명의 일 실시예에 따르면, 과부하 검출부(210), 패킷 처리부(220) 및 저장부(230)의 적어도 일부는 외부 시스템과 통신하는 프로그램 모듈들일 수 있다. 이러한 프로그램 모듈들은 운영 시스템, 응용 프로그램 모듈 및 기타 프로그램 모듈의 형태로 네트워크 스위치(200)에 포함될 수 있으며, 물리적으로는 여러 가지 공지의 기억 장치 상에 저장될 수 있다. 또한, 이러한 프로그램 모듈 중 적어도 일부는 네트워크 스위치(200)와 통신 가능한 원격 기억 장치에 저장될 수도 있다. 한편, 이러한 프로그램 모듈들은 본 발명에 따라 후술할 특정 업무를 수행하거나 특정 추상 데이터 유형을 실행하는 루틴(Routine), 서브루틴(Subroutine), 프로그램(Program), 오브젝트(Object), 컴포넌트(Component) 및 데이터 구조(Data Structure) 등을 포괄하지만, 이에 제한되지는 않는다.According to an embodiment of the present invention, the
본 발명의 일 실시예에 따르면, 도 1을 참조하여 전술된 복수의 네트워크 스위치들의 각 네트워크 스위치는 도 2의 네트워크 스위치(200)에 대응할 수 있다. 복수의 네트워크 스위치들의 각 네트워크 스위치는 과부하 검출부, 패킷 처리부 및 적어도 하나의 포트를 포함할 수 있다. 또한, 각 네트워크 스위치의 과부하 검출부, 패킷 처리부, 저장부 및 적어도 하나의 포트는 도 2에서 도시된 과부하 검출부(210), 패킷 처리부(220), 저장부(230) 및 적어도 하나의 포트(240)에 각각 대응할 수 있다.According to one embodiment of the present invention, each network switch of the plurality of network switches described above with reference to FIG. 1 may correspond to the
본 발명의 일 실시예에 따르면, 과부하 검출부(210)는 네트워크 스위치(200)의 과부하를 감지할 수 있으며, 과부하가 감지된 후에는 과부하 상태의 해제를 감지할 수도 있다.According to an embodiment of the present invention, the
본 발명의 일 실시예에 따르면, 패킷 처리부(220)는 패킷에 대한 처리를 수행할 수 있다. 패킷 처리부(220)는 적어도 하나의 포트를 통해 패킷을 수신할 수 있으며, 적어도 하나의 포트를 통해 패킷을 전송할 수 있다. 또한, 패킷 처리부(220)는 패킷의 처리를 위해 네트워크 제어기(110)로 업콜을 전송할 수 있으며, 네트워크 제어기(110)로부터 업콜에 대한 응답을 수신할 수 있다.According to an embodiment of the present invention, the
본 발명의 일 실시예에 따르면, 저장부(230)는 네트워크 스위치(200)의 동작에 요구되는 데이터를 저장할 수 있다. 예를 들면, 저장부(230)는 네트워크 스위치(200)의 플로우 테이블 및 바이패스 정보 등을 저장할 수 있다.According to an embodiment of the present invention, the
본 발명의 일 실시예에 따르면, 네트워크 스위치(200)의 적어도 하나의 포트(240) 중 일부는 네트워크 시스템의 내부의 다른 장치와 연결될 수 있다. 네트워크 시스템의 내부의 다른 장치는 네트워크 제어기(110) 및 다른 네트워크 스위치를 포함할 수 있다. 또한, 적어도 하나의 포트(240) 중 다른 일부는 네트워크 시스템의 외부의 장치와 연결될 수 있다.In accordance with one embodiment of the present invention, at least one
과부하의 감지 및 과부하의 감지 후의 패킷의 처리Overload detection and processing of packets after overload detection
도 3은 본 발명의 일 실시예에 따른 네트워크 스위치의 과부하의 감지 및 과부하의 감지 후의 패킷의 처리를 설명하는 흐름도이다.FIG. 3 is a flowchart for explaining overload detection and packet processing after detection of an overload in a network switch according to an embodiment of the present invention.
이하에서는, 도 1을 참조하여 전술된 네트워크 시스템에서, 복수의 네트워크 스위치들 중 제1 네트워크 스위치(121)가 과부하가 된 네트워크 스위치로서 설명되고, 제2 네트워크 스위치(122)가 패킷이 바이패스될 네트워크 스위치로서 설명된다.Hereinafter, in the network system described above with reference to FIG. 1, a first one of a plurality of network switches 121 is described as an overloaded network switch, and a second one of the network switches 122 Is described as a network switch.
(i) 먼저, 본 발명의 일 실시예에 따르면, 제1 네트워크 스위치(121)의 과부하 검출부(210)는 제1 네트워크 스위치(121)의 과부하를 감지할 수 있다(S310). 제1 네트워크 스위치(121)의 과부하 검출부(210)는 제1 네트워크 스위치(121)의 부하(Load)가 소정의 임계치(Threshold) 이상인 경우 제1 네트워크 스위치(121)가 과부화된 것으로 판단할 수 있다.(i) First, according to an embodiment of the present invention, the
본 발명의 일 실시예에 따르면, 제1 네트워크 스위치(121)의 과부하는 제1 네트워크 스위치(121)의 제어 경로인 스위치-제어기 간 티씨피(TCP) 또는 에스에스엘(SSL) 세션(Switch-to-Controller Session)에 있어서의 과부하일 수 있다. 말하자면, 제1 네트워크 스위치(121)의 과부하는 제1 네트워크 스위치(121) 및 네트워크 제어기(110) 간의 세션 또는 상기 세션에 관련된 처리에 있어서의 과부하를 의미할 수 있다.According to one embodiment of the present invention, the overload of the
본 발명의 일 실시예에 따르면, 네트워크 스위치의 과부하의 감지를 위해, 네트워크 스위치의 중앙처리장치(CPU: Central Processing Unit, 이하 "CPU"라고 함)의 사용량(Usage), 네트워크 스위치와 네트워크 제어기 간의 혼잡(Congestion) 및 네트워크 스위치의 플로우 테이블 내의 플로우 엔트리의 개수 또는 비율 등이 참조로 될 수 있다. 제1 네트워크 스위치(121)의 과부하 검출부(210)는 제1 네트워크 스위치(121)의 CPU의 사용량, 제1 네트워크 스위치(121)와 네트워크 제어기(110) 간의 혼잡 및 제1 네트워크 스위치(121)의 플로우 테이블 내의 플로우 엔트리의 개수 또는 비율 중 적어도 하나에 기반하여 제1 네트워크 스위치(121)의 과부하를 감지할 수 있다. 예를 들면, 제1 네트워크 스위치(121)의 과부하 검출부(210)는 제1 네트워크 스위치(121)의 CPU의 사용량이 소정의 값 이상인 경우 제1 네트워크 스위치(121)가 과부하된 것으로 판단할 수 있다. 또는, 제1 네트워크 스위치(121)의 과부하 검출부(210)는 제1 네트워크 스위치(121)와 네트워크 제어기(110) 간의 혼잡이 소정의 정도 이상인 경우 제1 네트워크 스위치(121)가 과부하된 것으로 판단할 수 있다. 또는, 제1 네트워크 스위치(121)의 과부하 검출부(210)는 제1 네트워크 스위치(121)의 플로우 테이블 내의 플로우 엔트리의 개수 또는 비율이 소정의 값 이상인 경우 제1 네트워크 스위치(121)가 과부하된 것으로 판단할 수 있다.According to an embodiment of the present invention, in order to detect an overload of a network switch, a usage amount of a central processing unit (CPU) (hereinafter referred to as "CPU") of the network switch, Congestion, and the number or rate of flow entries in the flow table of the network switch. The
본 발명의 일 실시예에 따르면, 네트워크 스위치와 네트워크 제어기 간의 혼잡은 네트워크 스위치 내에서 대기 중인 업콜 플로우 엔트리의 개수 또는 비율에 의해 판단될 수 있다. 예를 들면, 네트워크 스위치와 네트워크 제어기 간의 혼잡은 네트워크 스위치 내에서 대기 중인 업콜 플로우 엔트리의 개수 또는 비율에 비례할 수 있다. 참고로, 본 발명의 명세서에서는 패킷의 포워딩을 위해 사용되는 테이블의 엔트리인 플로우 엔트리와 업콜을 위해 대기하는 테이블의 엔트리인 업콜 플로우 엔트리라는 용어를 구분하여 사용하였다.According to one embodiment of the present invention, congestion between a network switch and a network controller may be determined by the number or ratio of pending upcall flow entries in the network switch. For example, congestion between a network switch and a network controller may be proportional to the number or proportion of pending upcall flow entries in the network switch. For reference, in the specification of the present invention, a flow entry, which is an entry of a table used for packet forwarding, and an upflow flow entry, which is an entry of a table waiting for uplink, are used separately.
(ii) 다음으로, 본 발명의 일 실시예에 따르면, 제1 네트워크 스위치(121)의 과부하가 감지되면 제1 네트워크 스위치(121)의 패킷 처리부(220)는 제1 네트워크 스위치(121)의 과부하를 네트워크 제어기(110)에게 통지할 수 있다(S320).(ii) Next, in accordance with an embodiment of the present invention, when an overload of the
(iii) 다음으로, 본 발명의 일 실시예에 따르면, 제1 네트워크 스위치(121)의 과부하가 통지되면 네트워크 제어기(110)는 제1 네트워크 스위치(121)에 인접한 복수의 네트워크 스위치들 중 패킷이 바이패스(Bypass)될 이웃 네트워크 스위치를 선택할 수 있다(S325). 여기에서, 제1 네트워크 스위치(121)에 인접한 네트워크 스위치란 네트워크 토폴로지에서 가령 1 홉(Hop)으로 제1 네트워크 스위치(121)에 도달할 수 있는 적어도 하나의 네트워크 스위치를 의미할 수 있다. 도 1에서 도시된 것과 같이 제1 네트워크 스위치(121)에 인접한 네트워크 스위치들은 제2 네트워크 스위치(122), 제3 네트워크 스위치(123) 및 제4 네트워크 스위치(124)이고, 이하에서는 설명의 편의상 제2 네트워크 스위치(122)가 패킷이 바이패스될 이웃 네트워크 스위치로서 결정된 경우를 상정하여 설명한다.(iii) Next, in accordance with an embodiment of the present invention, when an overload of the
본 발명의 일 실시예에 따르면, 네트워크 제어기(110)는 제1 네트워크 스위치(121)에 인접한 복수의 네트워크 스위치들의 각 네트워크 스위치의 트래픽 통계 값, CPU의 사용량 및 플로우 테이블 내의 플로우 엔트리의 개수 또는 비율 중 적어도 하나에 기반하여 제1 네트워크 스위치(121)에 인접한 복수의 네트워크 스위치들 중 패킷이 바이패스될 이웃 네트워크 스위치를 선택할 수 있다. 예를 들면, 네트워크 제어기(110)는 제1 네트워크 스위치(121)에 인접한 복수의 네트워크 스위치들 중 트래픽 통계 값이 가장 작은 네트워크 스위치를 패킷이 바이패스될 이웃 네트워크 스위치로 선택할 수도 있다. 또는, 네트워크 제어기(110)는 제1 네트워크 스위치(121)에 인접한 복수의 네트워크 스위치들 중 CPU의 사용량이 가장 낮은 네트워크 스위치를 패킷이 바이패스될 이웃 네트워크 스위치로 선택할 수도 있다. 또는, 네트워크 제어기(110)는 제1 네트워크 스위치(121)에 인접한 복수의 네트워크 스위치들 중 플로우 테이블 내의 플로우 엔트리의 개수 또는 비율이 가장 작은 네트워크 스위치를 패킷이 바이패스될 이웃 네트워크 스위치로 선택할 수도 있다.According to one embodiment of the present invention, the
본 발명의 일 실시예에 따르면, 네트워크 제어기(110)는 패킷이 바이패스될 이웃 네트워크 스위치를 선택함에 따라 바이패스 정보를 생성할 수 있다. 바이패스 정보는 패킷을 바이패스할 이웃 네트워크 스위치를 나타내는 정보일 수 있다. 바이패스 정보는 선택된 이웃 네트워크 스위치(말하자면, 제2 네트워크 스위치(122)를 나타낼 수 있으며, 또는 제1 네트워크 스위치(121)의 적어도 하나의 포트 중 선택된 이웃 네트워크 스위치와 연결된 포트를 나타낼 수도 있다.According to one embodiment of the present invention, the
(iv) 다음으로, 본 발명의 일 실시예에 따르면, 네트워크 제어기(110)는 바이패스 정보를 제1 네트워크 스위치(121)로 전송할 수 있다(S330). 제1 네트워크 스위치(121)의 패킷 처리부(220)는 네트워크 제어기(110)로부터 바이패스 정보를 수신할 수 있다.(iv) Next, according to an embodiment of the present invention, the
(v) 다음으로, 본 발명의 일 실시예에 따르면, 바이패스 정보가 전송되면 제1 네트워크 스위치(121)의 데이터 경로(Data path)에 대하여 바이패스 정보가 세트될 수 있다(S335). 가령, 제1 네트워크 스위치(121)의 과부하 검출부(210)는 제1 네트워크 스위치(121)의 데이터 경로에 대하여 바이패스 정보를 세트할 수 있다. 또는, 제1 네트워크 스위치(121)의 패킷 처리부(220)에 의해서도 바이패스 정보의 세트가 수행될 수 있다. 또한, 바이패스 정보의 세트는 제1 네트워크 스위치(121)가 과부하되었다는 것을 나타낼 수 있다. 또한, 바이패스 정보는 제1 네트워크 스위치(121)의 적어도 하나의 포트 중 소정의 조건을 충족시키는 패킷을 바이패스하기 위한 포트를 나타낼 수 있다. 포트로의 바이패스를 통해 패킷의 처리가 다른 네트워크 스위치로 넘겨질 수 있다. 이하에서, 제1 네트워크 스위치(121)의 패킷 처리부(220)는 바이패스 정보를 사용하여 패킷이 바이패스될 포트 및 이웃 네트워크 스위치를 식별할 수 있다.(v) Next, according to an embodiment of the present invention, bypass information may be set for the data path of the
(vi) 다음으로, 본 발명의 일 실시예에 따르면, 제1 네트워크 스위치(121)의 패킷 처리부(220)는 패킷을 수신할 수 있다(S340).(vi) Next, according to an embodiment of the present invention, the
(vii) 다음으로, 본 발명의 일 실시예에 따르면, 제1 네트워크 스위치(121)의 패킷 처리부(220)는 과부하가 감지된 후 제1 네트워크 스위치(121)로 전송된 패킷이 소정의 조건에 부합하면 전송된 패킷을 네트워크 스위치에 인접한 이웃 네트워크 스위치인 제2 네트워크 스위치(122)로 바이패스할 수 있다(S350).(vii) Next, in accordance with an embodiment of the present invention, the
본 발명의 일 실시예에 따르면, 제1 네트워크 스위치(121)의 패킷 처리부(220)는, 바이패스 정보가 세트되었고 제1 네트워크 스위치(121)로 전송된 패킷이 소정의 조건에 부합하면, 전송된 패킷을 네트워크 스위치에 인접한 이웃 네트워크 스위치인 제2 네트워크 스위치(122)로 바이패스할 수 있다.According to an embodiment of the present invention, when the packet information is set in the
본 발명의 일 실시예에 따르면, 전술된 소정의 조건은 제1 네트워크 스위치(121)가 자체적으로 패킷의 경로를 확정하지 못하는 상태를 의미할 수 있다. 제1 네트워크 스위치(121)의 패킷 처리부(220)는 과부하가 감지된 후 제1 네트워크 스위치(121)로 전송된 패킷에 대해서 제1 네트워크 스위치(121)가 단독으로 패킷의 경로를 확정하지 못하는 상태이면 패킷을 제1 네트워크 스위치(121)에 인접한 이웃 네트워크 스위치인 제2 네트워크 스위치(122)로 바이패스할 수 있다.According to one embodiment of the present invention, the predetermined condition described above may mean a state in which the
본 발명의 일 실시예에 따르면, 패킷의 경로를 확정하기 위해서는, 제1 네트워크 스위치(121) 외의 다른 장치와의 상호작용(interaction)이 요구될 수 있다. 예를 들면, 패킷의 경로의 확정은 제1 네트워크 스위치(121)를 제어하는 네트워크 제어기(110)로의 업콜을 요구할 수 있다. 예를 들면, 제1 네트워크 스위치(121)의 패킷 처리부(220)는 제1 네트워크 스위치(121)의 플로우 테이블에 전송된 패킷에 매치되는 플로우 엔트리가 존재하지 않는 경우 전송된 패킷을 이웃 네트워크 스위치로 바이패스할 수 있다. 제1 네트워크 스위치(121)의 플로우 테이블에 전송된 패킷에 매치되는 플로우 엔트리가 존재하지 않으면 제1 네트워크 스위치(121)의 패킷 처리부(220)는 제1 네트워크 스위치(121)의 적어도 하나의 포트 중 패킷을 전송할 포트를 자체적으로 결정하지 못할 수 있다. 패킷을 전송할 포트의 결정을 위해서는 네트워크 제어기(110)로의 업콜이 요구되나, 전술된 것과 같이 제1 네트워크 스위치(121)는 과부하되었기 때문에 제1 네트워크 스위치(121)의 패킷 처리부(220)가 네트워크 제어기(110)로의 업콜 및 네트워크 제어기(110)로부터의 업콜에 대한 응답을 처리할 경우 패킷의 처리 또는 도달이 지연될 수 있고, 경우에 따라서는 패킷이 손상될 수도 있다. 따라서, 제1 네트워크 스위치(121)의 패킷 처리부(220)는 전송된 패킷을 바로 이웃 네트워크 스위치로 바이패스함으로써 제1 네트워크 스위치(121)의 과부하가 패킷의 처리에 미치는 영향을 감소시킬 수 있다.In accordance with one embodiment of the present invention, interaction with other devices other than the
본 발명의 일 실시예에 따르면, 바이패스되는 패킷의 데이터는 제1 네트워크 스위치(121)로 전송된 패킷의 데이터와 동일할 수 있다. 또한, 제1 네트워크 스위치(121)의 패킷 처리부(220)는 제2 네트위크 스위치(122)로 패킷을 바이패스함에 있어서 패킷의 인바운드 포트의 정보를 포함시킬 수도 있다. 이웃 네트워크 스위치로 바이패스되는 패킷은 패킷의 인바운드 포트의 정보를 포함할 수도 있다. 인바운드 포트의 정보를 통해 패킷이 전송된 외부의 네트위크 또는 외부의 장치가 다른 네트워크 스위치에서도 식별될 수 있다. 말하자면, 패킷의 바이패스에 있어서, 제1 네트워크 스위치(121)의 패킷 처리부(220)는 패킷의 데이터를 동일하게 유지시킬 수 있으며, 패킷을 제어하기 위한 정보로서 인바운드 포트의 정보를 추가할 수 있다. 예를 들면, 제1 네트워크 스위치(121)의 패킷 처리부(220)에 의해 패킷의 헤더에 인바운드 포트를 나타내는 데이터가 추가될 수도 있다.According to an embodiment of the present invention, the data of the packet to be bypassed may be the same as the data of the packet transmitted to the
(viii) 다음으로, 본 발명의 일 실시예에 따르면, 패킷이 바이패스되면 제2 네트워크 스위치(122)의 패킷 처리부(220)는 패킷의 처리를 수행할 수 있다(S355). 패킷의 처리는 패킷의 포워딩을 포함할 수 있으며, 필요한 경우 패킷의 처리를 위한 네트워크 제어기(110)로의 업콜 및 네트워크 제어기(110)로부터의 업콜에 대한 응답을 포함할 수 있다.(viii) Next, according to an embodiment of the present invention, when the packet is bypassed, the
본 발명의 일 실시예에 따르면, 제2 네트워크 스위치(122)의 패킷 처리부(220)는 패킷을 처리함에 있어서 패킷에 포함된 인바운드 포트의 정보를 사용할 수도 있다. 예를 들면, 제2 네트워크 스위치(122)의 패킷 처리부(220)는 인바운드 포트의 정보를 사용하여 패킷의 전송에 있어서의 루프(Loop)를 방지할 수도 있다. 제2 네트워크 스위치(122)는 제2 네트워크 스위치(122)의 플로우 테이블에 따른 패킷의 경로가 패킷에 포함된 인바운드 포트를 포함할 경우, 제1 네트워크 스위치(121)의 인바운드 포트로의 루프를 피하는 새로운 경로를 설정하기 위해 패킷의 전송의 설정에 대한 업콜을 네트워크 제어기(110)로 전송할 수도 있다. 네트워크 제어기(110)는 제1 네트워크 스위치(121)에서의 바이패스를 반영하여 패킷의 전송을 위한 설정 정보를 생성할 수 있다. 설정 정보는 플로우 테이블의 플로우 엔트리일 수 있다. 네트워크 제어기(110)는 패킷의 바이패스 등을 고려하여 패킷의 경로를 생성할 수 있고, 패킷의 경로를 생성함에 있어서 패킷의 인바운드 포트의 정보를 참조할 수도 있다. 또한, 네트워크 제어기(110)는 생성된 경로에 따른 플로우 엔트리를 생성할 수 있다. 플로우 엔트리는 생성된 경로에 따라 패킷을 포워딩하기 위한 정보를 포함할 수 있다. 네트워크 제어기(110)는 업콜에 대한 응답으로서 설정 정보를 제2 네트워크 스위치(122)로 전송할 수 있다.According to an embodiment of the present invention, the
본 발명의 일 실시예에 따르면, 제2 네트워크 스위치(122)는 제1 네트워크 스위치(121)에 인접한 네트워크 스위치들 중 가장 낮은 부하를 갖는 네트워크 스위치일 수 있고, 과부화되지 않았다고 가정될 수 있다. 따라서, 바이패스를 통해, 패킷의 처리가 제2 네트워크 스위치(122)에서 수행됨에 따라 패킷의 지연 또는 손실이 방지될 수 있으며 나아가 패킷에 대한 QoS가 보장될 수 있다.According to one embodiment of the present invention, the
본 발명의 일 실시예에 따르면, 전술된 단계들(S340 및 S350)은 제1 네트워크 스위치(121)의 과부하가 감지되고, 패킷이 제1 네트워크 스위치(121)로 전송됨에 따라 반복해서 수행될 수 있다. 말하자면, 전술된 단계들(S340 및 S350)의 반복을 통해 제1 네트워크 스위치(121)로의 플로우(또는, 트래픽(Traffic))들 중 업콜의 대상인 플로우는 이웃 네트워크 스위치인 제2 네트워크 스위치(122)로 바이패스될 수 있고, 제2 네트워크 스위치(122)가 바이패스된 플로우에 대한 처리를 수행할 수 있다.According to an embodiment of the present invention, the above-described steps S340 and S350 can be repeatedly performed as an overload of the
본 발명의 일 실시예에 따르면, 제1 네트워크 스위치(121)의 과부하 상태가 해제되면 아래에서 설명될 단계들이 수행될 수 있다.According to an embodiment of the present invention, when the overload state of the
(ix) 다음으로, 본 발명의 일 실시예에 따르면, 제1 네트워크 스위치(121)의 과부하 검출부(210)는 제1 네트워크 스위치(121)의 과부하 상태의 해제를 감지할 수 있다(S360). 제1 네트워크 스위치(121)의 과부하 검출부(210)는 제1 네트워크 스위치(121)의 부하(Load)가 임계치(Threshold)의 아래로 떨어진 경우 제1 네트워크 스위치(121)의 과부화 상태가 해제된 것으로 판단할 수 있다.(ix) Next, according to an embodiment of the present invention, the
본 발명의 일 실시예에 따르면, 네트워크 스위치의 과부하 상태의 해제의 감지를 위해, 네트워크 스위치의 CPU의 사용량, 네트워크 스위치와 네트워크 제어기 간의 혼잡 및 네트워크 스위치의 플로우 테이블 내의 플로우 엔트리의 개수 또는 비율 등이 참조될 수 있다. 제1 네트워크 스위치(121)의 과부하 검출부(210)는 제1 네트워크 스위치(121)의 CPU의 사용량, 제1 네트워크 스위치(121)와 네트워크 제어기(110) 간의 혼잡 및 제1 네트워크 스위치(121)의 플로우 테이블 내의 플로우 엔트리의 개수 또는 비율 중 적어도 하나에 기반하여 제1 네트워크 스위치(121)의 과부하 상태의 해제를 감지할 수 있다. 예를 들면, 제1 네트워크 스위치(121)의 과부하 검출부(210)는 제1 네트워크 스위치(121)의 CPU의 사용량이 소정의 값 이하인 경우 제1 네트워크 스위치(121)의 과부하 상태가 해제된 것으로 판단할 수 있다. 또한, 제1 네트워크 스위치(121)의 과부하 검출부(210)는 제1 네트워크 스위치(121)와 네트워크 제어기(110) 간의 혼잡이 소정의 정도 이하인 경우 제1 네트워크 스위치(121)의 과부하 상태가 해제된 것으로 판단할 수 있다. 또한, 제1 네트워크 스위치(121)의 과부하 검출부(210)는 제1 네트워크 스위치(121)의 플로우 테이블 내의 플로우 엔트리의 개수 또는 비율이 소정의 값 이하인 경우 제1 네트워크 스위치(121)의 과부하 상태가 해제된 것으로 판단할 수 있다.In accordance with one embodiment of the present invention, the amount of CPU usage of the network switch, the congestion between the network switch and the network controller, and the number or ratio of flow entries in the flow table of the network switch, etc., Can be referenced. The
(x) 다음으로, 본 발명의 일 실시예에 따르면, 과부하 상태의 해제가 감지되면 제1 네트워크 스위치(121)의 데이터 경로에 대하여 바이패스 정보가 삭제될 수 있다. 가령, 제1 네트워크 스위치(121)의 과부하 검출부(210)는 제1 네트워크 스위치(121)의 데이터 경로에 대하여 바이패스 정보를 삭제할 수 있다(S365). 또는, 제1 네트워크 스위치(121)의 패킷 처리부(220)에 의해서도 바이패스 정보의 세트가 수행될 수 있다. 바이패스 정보의 삭제는 제1 네트워크 스위치(121)의 과부하 상태가 해제되었고, 제1 네트워크 스위치(121)가 과부하되지 않았다는 것을 나타낼 수 있다. 바이패스 정보의 삭제로 인해 제1 네트워크 스위치(121)는 패킷의 처리에 있어서의 일반적인 동작을 수행할 수 있다.(x) Next, according to an embodiment of the present invention, when the release of the overload state is detected, the bypass information for the data path of the
(xi) 다음으로, 본 발명의 일 실시예에 따르면, 제1 네트워크 스위치(121)의 패킷 처리부(220)는 패킷을 수신할 수 있다(S370). 단계(S340)에서 수신된 패킷은 단계(S340)에서 수신된 패킷과 동일한 플로우의 패킷일 수 있다. 예를 들면, 단계(S340)에서 수신된 패킷 및 단계(S340)에서 수신된 패킷은 발신지(Source) 및 목적지(Destination)가 동일한 장치 또는 동일한 네트워크인 패킷들일 수 있고, 또는 목적지가 동일한 장치 또는 동일한 네트워크인 패킷들일 수 있다.(xi) Next, according to an embodiment of the present invention, the
(xii) 다음으로, 본 발명의 일 실시예에 따르면, 제1 네트워크 스위치(121)의 패킷 처리부(220)는 과부하 상태의 해제가 감지되고, 전송된 패킷이 소정의 조건에 부합하면 패킷의 전송의 설정에 대한 업콜을 제1 네트워크 스위치(121)를 제어하는 네트워크 제어기(110)로 전송할 수 있다(S380). 여기에서, 패킷의 전송의 설정이란, 패킷이 해당하는 플로우의 셋업일 수 있으며, 패킷에 매치되는 플로우 엔트리를 추가하는 것일 수 있다.(xii) Next, according to an embodiment of the present invention, the
본 발명의 일 실시예에 따르면, 전술된 소정의 조건은 제1 네트워크 스위치(121)가 단독으로 패킷의 경로를 확정하지 못하는 상태를 의미할 수 있다. 예를 들면, 전술된 소정의 조건은 전송된 패킷을 위해 제1 네트워크 스위치(121)를 제어하는 네트워크 제어기(110)로의 업콜이 요구되는 조건을 포함할 수 있다. 예를 들면, 제1 네트워크 스위치(121)의 패킷 처리부(220)는 제1 네트워크 스위치(121)의 플로우 테이블에 전송된 패킷에 매치되는 플로우 엔트리가 존재하지 않는 경우 패킷의 전송의 설정에 대한 업콜을 네트워크 제어기(110)로 전송할 수 있다.According to one embodiment of the present invention, the predetermined condition described above may mean a state in which the
(xiii) 다음으로, 본 발명의 일 실시예에 따르면, 네트워크 제어기(110)는 패킷의 전송을 위한 설정 정보를 생성할 수 있다(S385). 설정 정보는 플로우 테이블의 플로우 엔트리일 수 있다. 네트워크 제어기(110)는 네트워크 토폴로지 등을 고려하여 패킷의 최적 경로를 생성할 수 있고, 패킷의 최적 경로를 생성함에 있어서 패킷의 인바운드 포트의 정보를 참조할 수도 있다. 또한, 네트워크 제어기(110)는 생성된 최적 경로에 따른 플로우 엔트리를 생성할 수 있다. 플로우 엔트리는 생성된 최적 경로에 따라 패킷을 포워딩하기 위한 정보를 포함할 수 있다. 생성된 최적 경로는 과부하 상태가 해제된 제1 네트워크 스위치(121)를 포함할 수 있다.(xiii) Next, according to an embodiment of the present invention, the
(xiv) 다음으로, 본 발명의 일 실시예에 따르면, 네트워크 제어기(110)는 패킷의 전송의 설정에 대한 설정 정보를 제1 네트워크 스위치(121)로 전송할 수 있다(S390).(xiv) Next, according to an embodiment of the present invention, the
본 발명의 일 실시예에 따르면, 제1 네트워크 스위치(121)의 과부하 상태의 해제에 따라 생성된 최적 경로는 이전에 패킷에 대해 정의되었던 경로와는 다를 수도 있다. 또한, 제1 네트워크 스위치(121) 외의 다른 네트워크 스위치들은 패킷에 대해 현재의 최적 경로와는 다른 경로의 플로우 엔트리를 가지고 있을 수 있다. 따라서, 네트워크 제어기(110)는 생성된 설정 정보가 패킷에 대한 이전의 경로 또는 플로우 엔트리와 상이할 경우, 생성된 설정 정보를 제2 네트워크 스위치(122)와 같은 복수의 네트워크 스위치들로 전송할 수도 있다.According to one embodiment of the present invention, the optimal path generated in accordance with the release of the overload state of the
(xv) 다음으로, 본 발명의 일 실시예에 따르면, 제1 네트워크 스위치(121)의 패킷 처리부(220)는 설정 정보를 사용하여 패킷의 처리를 수행할 수 있다(S395).(xv) Next, according to an embodiment of the present invention, the
본 발명의 일 실시예에 따르면, 설정 정보는 패킷에 대한 플로우 엔트리를 포함할 수 있다. 말하자면, 전송된 플로우 엔트리는 패킷에 매치될 수 있고, 제1 네트워크 스위치(121)의 패킷 처리부(220)는 플로우 엔트리의 액션에 따라 패킷 포워딩과 같은 패킷의 처리를 수행할 수 있다.According to one embodiment of the invention, the configuration information may comprise a flow entry for the packet. That is to say, the transmitted flow entry can be matched to the packet, and the
이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The embodiments of the present invention described above can be implemented in the form of program instructions that can be executed through various computer components and recorded on a computer-readable recording medium. The computer-readable recording medium may include program commands, data files, data structures, and the like, alone or in combination. The program instructions recorded on the computer-readable recording medium may be those specially designed and constructed for the present invention or may be those known to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, 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 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 device may be configured to operate as one or more software modules for performing the processing according to the present invention, and vice versa.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, Those skilled in the art will appreciate that various modifications, additions and substitutions are possible, without departing from the scope and spirit of the invention as disclosed in the accompanying claims.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention should not be construed as being limited to the above-described embodiments, and all of the equivalents or equivalents of the claims, as well as the following claims, I will say.
110: 네트워크 제어기
121: 제1 네트워크 스위치
122: 제2 네트워크 스위치
123: 제3 네트워크 스위치
124: 제4 네트워크 스위치
200: 네트워크 스위치
210: 과부하 검출부
220: 패킷 처리부
230: 저장부110: Network controller
121: first network switch
122: second network switch
123: third network switch
124: fourth network switch
200: Network switch
210: Overload detection unit
220:
230:
Claims (20)
(a) 상기 네트워크 스위치가, 상기 네트워크 스위치의 과부하 여부를 감지하는 단계; 및
(b) 상기 네트워크 스위치가 과부하인 것으로 감지된 상태에서, 상기 네트워크 스위치가 상기 네트워크 스위치에 전송된 소정의 패킷의 경로를 단독으로 확정하지 못하는 상태이면, 상기 패킷을 상기 네트워크 스위치에 인접한 이웃 네트워크 스위치로 바이패스하는 단계
를 포함하고,
상기 (b) 단계는,
상기 네트워크 스위치가 과부하인 것으로 감지된 상태에서, 상기 네트워크 스위치의 플로우 테이블에 상기 전송된 소정의 패킷에 매치되는 플로우 엔트리가 존재하지 않는 경우, 상기 네트워크 스위치는 상기 네트워크 스위치를 제어하는 네트워크 제어기에 업콜을 요구하지 않고 상기 이웃 네트워크 스위치로 상기 전송된 소정의 패킷을 바이패스하여, 상기 이웃 네트워크 스위치가 상기 네트워크 제어기로 직접 업콜을 요구하여 상기 네트워크 제어기로부터 상기 경로를 확정받아 상기 확정된 경로를 통해 상기 패킷을 전송하도록 지원하는 것을 특징으로 하는 패킷 처리 방법.A packet processing method of a network switch,
(a) detecting whether the network switch is overloaded; And
(b) if the network switch is detected as overloaded and the network switch is unable to determine solely the path of a predetermined packet transmitted to the network switch, the packet is transmitted to a neighboring network switch By-
Lt; / RTI >
The step (b)
When there is no flow entry matched with the transmitted predetermined packet in the flow table of the network switch in a state where the network switch is detected as being overloaded, the network switch transmits, to the network controller controlling the network switch, Bypassing the transmitted predetermined packet to the neighboring network switch, the neighboring network switch requests the uplink directly to the network controller, confirms the path from the network controller, And the packet is transmitted to the destination.
상기 (a) 단계에서,
상기 네트워크 스위치는 상기 네트워크 스위치의 중앙처리장치의 사용량, 상기 네트워크 스위치와 네트워크 제어기 간의 혼잡 및 상기 네트워크 스위치의 플로우 테이블 내의 플로우 엔트리의 개수 또는 비율 중 적어도 하나에 기반하여 상기 과부하를 감지하는 것을 특징으로 하는 패킷 처리 방법.The method according to claim 1,
In the step (a)
Wherein the network switch detects the overload based on at least one of a usage amount of the central processing unit of the network switch, a congestion between the network switch and a network controller, and a number or ratio of flow entries in the flow table of the network switch. Lt; / RTI >
상기 이웃 네트워크 스위치는 상기 복수의 네트워크 스위치들의 각 네트워크 스위치의 트래픽 통계 값, 중앙처리장치의 사용량 및 플로우 테이블 내의 플로우 엔트리의 개수 또는 비율 중 적어도 하나에 기반하여 선택되는 것을 특징으로 하는 방법.The method according to claim 1,
Wherein the neighboring network switch is selected based on at least one of a traffic statistic value of each network switch of the plurality of network switches, a usage amount of the central processing unit, and a number or ratio of flow entries in the flow table.
상기 (b) 단계에서,
상기 이웃 네트워크 스위치로 바이패스되는 패킷은 상기 패킷의 인바운드 포트의 정보를 포함하는 것을 특징으로 하는 방법.The method according to claim 1,
In the step (b)
Wherein a packet bypassed to the neighboring network switch includes information of an inbound port of the packet.
상기 (b) 단계 이후에,
(c) 상기 네트워크 스위치가, 상기 과부하 상태의 해제를 감지하는 단계;
(d) 상기 네트워크 스위치가, 상기 과부하 상태의 해제를 감지한 후 패킷의 경로의 설정에 대한 업콜을 상기 네트워크 스위치를 제어하는 네트워크 제어기로 전송하는 단계; 및
(e) 상기 네트워크 스위치가, 상기 네트워크 제어기로부터 상기 패킷의 경로의 설정에 대한 정보를 수신하는 단계
를 포함하는 것을 특징으로 하는 방법.The method according to claim 1,
After the step (b)
(c) the network switch detecting a release of the overload state;
(d) after the network switch detects the release of the overload state, transmitting an upcall for setting a path of a packet to a network controller controlling the network switch; And
(e) receiving, by the network switch, information on the setting of the path of the packet from the network controller
≪ / RTI >
상기 네트워크 스위치의 과부하를 감지하는 과부하 검출부; 및
상기 네트워크 스위치가 과부하인 것으로 감지된 상태에서, 상기 네트워크 스위치가 상기 네트워크 스위치에 전송된 소정의 패킷의 경로를 단독으로 확정하지 못하는 상태이면, 상기 패킷을 상기 네트워크 스위치에 인접한 이웃 네트워크 스위치로 바이패스하는 패킷 처리부
를 포함하고,
상기 네트워크 스위치가 과부하인 것으로 감지된 상태에서, 상기 네트워크 스위치의 플로우 테이블에 상기 전송된 소정의 패킷에 매치되는 플로우 엔트리가 존재하지 않는 경우,
상기 패킷 처리부는,
상기 네트워크 스위치를 제어하는 네트워크 제어기에 업콜을 요구하지 않고 상기 이웃 네트워크 스위치로 상기 전송된 소정의 패킷을 바이패스하여, 상기 이웃 네트워크 스위치가 상기 네트워크 제어기로 직접 업콜을 요구하여 상기 네트워크 제어기로부터 상기 경로를 확정받아 상기 확정된 경로를 통해 상기 패킷을 전송하도록 지원하는 것을 특징으로 하는 네트워크 스위치.A network switch comprising:
An overload detector for detecting an overload of the network switch; And
If it is determined that the network switch is overloaded and the network switch is unable to independently determine a path of a predetermined packet transmitted to the network switch, the packet is bypassed to a neighboring network switch adjacent to the network switch, a packet processing unit for
Lt; / RTI >
When there is no flow entry matched with the transmitted predetermined packet in the flow table of the network switch while the network switch is detected as being overloaded,
The packet processing unit,
Bypassing the transmitted predetermined packet to the neighboring network switch without requiring an upcall to the network controller controlling the network switch so that the neighboring network switch requests the network controller to upcall directly, And to transmit the packet through the determined path.
상기 과부하 검출부는,
상기 네트워크 스위치의 중앙처리장치의 사용량, 상기 네트워크 스위치와 네트워크 제어기 간의 혼잡 및 상기 네트워크 스위치의 플로우 테이블 내의 플로우 엔트리의 개수 또는 비율 중 적어도 하나에 기반하여 상기 과부하를 감지하는 것을 특징으로 하는 네트워크 스위치.11. The method of claim 10,
The overload detection unit includes:
Wherein the network switch detects the overload based on at least one of a usage amount of the central processing unit of the network switch, a congestion between the network switch and a network controller, and a number or ratio of flow entries in the flow table of the network switch.
상기 이웃 네트워크 스위치는,
상기 복수의 네트워크 스위치들의 각 네트워크 스위치의 트래픽 통계 값, 중앙처리장치의 사용량 및 플로우 테이블 내의 플로우 엔트리의 개수 또는 비율 중 적어도 하나에 기반하여 선택되는 것을 특징으로 하는 네트워크 스위치.11. The method of claim 10,
Wherein the neighboring network switch comprises:
Wherein the network switch is selected based on at least one of a traffic statistic value of each network switch of the plurality of network switches, a usage amount of the central processing unit, and a number or ratio of flow entries in the flow table.
상기 이웃 네트워크 스위치로 바이패스되는 패킷은 상기 패킷의 인바운드 포트의 정보를 포함하는 것을 특징으로 하는 네트워크 스위치.11. The method of claim 10,
Wherein a packet bypassed to the neighboring network switch includes information of an inbound port of the packet.
상기 과부하 검출부는,
상기 과부하 상태의 해제를 감지하고,
상기 패킷 처리부는,
상기 과부하 상태의 해제를 감지한 후 패킷의 경로의 설정에 대한 업콜을 상기 네트워크 스위치를 제어하는 네트워크 제어기로 전송하고, 상기 네트워크 제어기로부터 상기 패킷의 경로의 설정에 대한 정보를 수신하는 것을 특징으로 하는 네트워크 스위치.11. The method of claim 10,
The overload detection unit includes:
Detects the release of the overload state,
The packet processing unit,
Wherein the controller detects an overload state and transmits an upcall for setting a path of a packet to a network controller that controls the network switch and receives information on a path setting of the packet from the network controller, Network switch.
네트워크 제어기
를 포함하고,
상기 복수의 네트워크 스위치들 중 제1 네트워크 스위치는 상기 제1 네트워크 스위치의 과부하 여부를 감지하고, 상기 제1 네트워크 스위치가 과부하인 것으로 감지된 상태에서, 상기 제1 네트워크 스위치의 플로우 테이블에 상기 제1 네트워크 스위치에 전송된 소정의 패킷에 매치되는 플로우 엔트리가 존재하지 않는 경우, 상기 제1 네트워크 스위치는 상기 제1 네트워크 스위치를 제어하는 상기 네트워크 제어기에 업콜을 요구하지 않고 상기 전송된 소정의 패킷을 제2 네트워크 스위치로 바이패스하여, 상기 제2 네트워크 스위치가 상기 네트워크 제어기로 직접 업콜을 요구하여 상기 네트워크 제어기로부터 상기 경로를 확정받아 상기 확정된 경로를 통해 상기 패킷을 전송하도록 지원하는 것을 특징으로 하는 시스템.A plurality of network switches, and
Network controller
Lt; / RTI >
Wherein the first network switch of the plurality of network switches senses whether the first network switch is overloaded and, in a state where the first network switch is detected as being overloaded, When there is no flow entry matched with a predetermined packet transmitted to the network switch, the first network switch does not request the network controller that controls the first network switch, 2 network switch to allow the second network switch to directly request the uplink to the network controller to confirm the path from the network controller and to transmit the packet over the determined path. .
상기 제1 네트워크 스위치가 상기 과부하 상태의 해제를 감지한 경우, 상기 제1 네트워크 스위치는, 상기 패킷의 경로의 설정에 대한 업콜을 상기 네트워크 제어기로 전송하고, 상기 네트워크 제어기로부터 상기 패킷의 경로의 설정에 대한 정보를 수신하는 것을 특징으로 하는 시스템.19. The method of claim 18,
When the first network switch detects the release of the overload state, the first network switch transmits to the network controller an upcall for the setting of the path of the packet, and sets the path of the packet from the network controller Lt; RTI ID = 0.0 > 1, < / RTI >
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150012395A KR101554477B1 (en) | 2015-01-26 | 2015-01-26 | Method, appratus, system and computer-readable recording medium for adjusting flow against overload |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150012395A KR101554477B1 (en) | 2015-01-26 | 2015-01-26 | Method, appratus, system and computer-readable recording medium for adjusting flow against overload |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101554477B1 true KR101554477B1 (en) | 2015-09-21 |
Family
ID=54248737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150012395A KR101554477B1 (en) | 2015-01-26 | 2015-01-26 | Method, appratus, system and computer-readable recording medium for adjusting flow against overload |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101554477B1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013075874A1 (en) * | 2011-11-25 | 2013-05-30 | Alcatel Lucent | Method of promoting a quick data flow of data packets in a communication network, communication network and data processing unit |
-
2015
- 2015-01-26 KR KR1020150012395A patent/KR101554477B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013075874A1 (en) * | 2011-11-25 | 2013-05-30 | Alcatel Lucent | Method of promoting a quick data flow of data packets in a communication network, communication network and data processing unit |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2974138B1 (en) | Method, computer program product and physical network node, with a management engine and an asic | |
JP5233504B2 (en) | Route control apparatus and packet discarding method | |
EP2817928B1 (en) | Controller placement for fast failover in the split architecture | |
US8832272B2 (en) | Network system, control method for the same, and controller, using targeted relay processing devices | |
US8588072B2 (en) | Switch network system, controller, and control method | |
US9391903B2 (en) | Methods and apparatuses for distributed packet flow control | |
US9083657B2 (en) | Flow communication system | |
US8953499B2 (en) | Method and apparatus for establishing spanning trees | |
EP3588865B1 (en) | Event ingestion management | |
KR101477012B1 (en) | Method, apparatus, system and computer-readable recording medium for sdn switching | |
CN110557342B (en) | Apparatus for analyzing and mitigating dropped packets | |
US10536379B2 (en) | System and method for control traffic reduction between SDN controller and switch | |
US9608922B2 (en) | Traffic control on an on-chip network | |
EP2822234A1 (en) | Relay device, relay device control method, and network system | |
US10178017B2 (en) | Method and control node for handling data packets | |
US10313238B2 (en) | Communication system, communication method, and non-transitiory computer readable medium storing program | |
KR20160019651A (en) | Apparatus and method for controlling transmission of data traffic | |
US9185038B2 (en) | Technique for controlling a load state of a physical link carrying a plurality of virtual links | |
US8675669B2 (en) | Policy homomorphic network extension | |
US10778568B2 (en) | Switch-enhanced short loop congestion notification for TCP | |
KR20180058594A (en) | Software Defined Network/Test Access Port Application | |
JP2020031363A (en) | Communication control system, network controller and computer program | |
KR101554477B1 (en) | Method, appratus, system and computer-readable recording medium for adjusting flow against overload | |
KR20160063158A (en) | Network system based on sdn capable traffice distribution | |
KR20160139591A (en) | Method and apparatus for routing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20180903 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20190916 Year of fee payment: 5 |