KR101627992B1 - 플로우 테이블을 업데이트하는 방법 - Google Patents

플로우 테이블을 업데이트하는 방법 Download PDF

Info

Publication number
KR101627992B1
KR101627992B1 KR1020160004022A KR20160004022A KR101627992B1 KR 101627992 B1 KR101627992 B1 KR 101627992B1 KR 1020160004022 A KR1020160004022 A KR 1020160004022A KR 20160004022 A KR20160004022 A KR 20160004022A KR 101627992 B1 KR101627992 B1 KR 101627992B1
Authority
KR
South Korea
Prior art keywords
flow table
message
network device
update
controller
Prior art date
Application number
KR1020160004022A
Other languages
English (en)
Other versions
KR20160010639A (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 주식회사 케이티
Publication of KR20160010639A publication Critical patent/KR20160010639A/ko
Application granted granted Critical
Publication of KR101627992B1 publication Critical patent/KR101627992B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • 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/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/036Updating the topology between route computation elements, e.g. between OpenFlow controllers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for 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/28Flow control; Congestion control in relation to timing considerations
    • 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/41Flow control; Congestion control by acting on aggregated flows or links
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering

Landscapes

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

Abstract

소프트웨어 정의 네트워킹(SDN: Software Defined Networking)에 있어서, 스위치를 위한 플로우 테이블을 업데이트하는 방법이 개시된다. 플로우 테이블 업데이트 방법은, 소프트웨어 정의 네트워크에서 컨트롤러가 적어도 하나의 네트워크 장치의 플로우 테이블을 업데이트하는 방법에 있어서, 플로우 테이블에 대한 업데이트가 수행될 시간을 지정하는 예약 시간에 대한 정보를 포함하는 플로우 테이블 변경 메시지를 적어도 하나의 네트워크 장치로 전송하는 단계와, 플로우 테이블 변경 메시지에 따라 적어도 하나의 네트워크 장치가 수행한 상기 플로우 테이블에 대한 업데이트 수행 결과를 나타내는 결과 메시지를 적어도 하나의 네트워크 장치로부터 수신하는 단계를 포함한다. 따라서, 다수의 네트워크 장치에 플로우 테이블 변경 메시지를 전송하면서 발생하는 네트워크 장치 간의 업데이트 시간의 간격을 제어하여 컨트롤러에 발생하는 부하를 효과적으로 제어할 수 있다.

Description

플로우 테이블을 업데이트하는 방법{METHOD FOR UPDATING FLOW TABLE}
본 발명은 소프트웨어 정의 네트워킹(SDN: Software Defined Networking)에 관한 것으로, 더욱 상세하게는 스위치를 위한 플로우 테이블을 업데이트하는 방법에 관한 것이다.
최근 들어, 스위치의 트래픽 포워딩 기능과 스위치의 제어 기능을 분리하여 통신 시스템을 효율적으로 운용하는 기술에 대한 표준화가 ONF(Open Networking Foundation), IETF(Internet Engineering Task Force), ETSI(European Telecommunications Standards Institute) ISG NFV(Network Function Virtualization) 및 ITU-T(International Telecommunications Union Telecommunication) 등을 중심으로 진행되고 있다.
소프트웨어 정의 네트워킹(SDN: Software Defined Network)은 라우터나 스위치 등의 기본 네트워크 장치에 관계없이 사용자가 통제 권한을 가지며, 별도의 소프트웨어 컨트롤러가 트래픽 흐름을 제어하는 사용자 중심의 네트워크를 의미한다.
SDN의 기술 중의 하나인 OpenFlow 기술 표준화를 추진하고 있는 표준화 단체들 중 ONF(Open Networking Foundation)는 하드웨어(스위치)와 컨트롤러(Network OS) 사이를 연결하는 인터페이스를 정의하고 있다. 이는 네트워크를 통해 데이터 패킷을 어떻게 전달할 것인지 제어하기 위한 기능(Control Plane)을 물리적 네트워크와 분리하여 데이터 전달 기능(Data Plane)과 상호작용 하기 위한 프로토콜이다.
ONF 내의 Extensibility 워킹그룹은 SDN 핵심 표준 권고안인 OpenFlow 표준안(OF 1.x)에 대한 작성을 주도하고 있다. OpenFlow 표준안은 OpenFlow Channel 항목에서 스위치와 컨트롤러 간의 연결 방식 및 메시지 프로토콜에 대해서 정의하고 있으며, 기본적으로 TCP 연결을 유지, 상호 인증 및 암호화를 위해 TLS 방식을 이용할 수 있다고 정의하고 있다.
또한, OpenFlow 표준안은 스위치와 컨트롤러 간의 연결 상태(liveness)를 확인하기 위한 목적으로 OFP_ECHO_REQUEST와 OFP_ECHO_REPLY에 대한 사용을 권고하고 있다.
그러나, 컨트롤러에서 스위치에 전달한 플로우 엔트리(flow entry)가 동시에 적용되지 못하여 서비스가 일괄적으로 적용되지 못하거나, 서비스 적용을 위하여 전달한 여러 개의 플로우 엔트리 중 하나의 플로우 엔트리라도 전달되지 못하는 경우, 서비스에 장애가 발생하게 되는 문제점이 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 소프트웨어 정의 네트워크에서 예약 시간에 기반하여 네트워크 장치의 플로우 테이블을 업데이트하는 방법을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 플로우 테이블 업데이트 방법은, 소프트웨어 정의 네트워크에서 적어도 하나의 네트워크 장치가 플로우 테이블을 업데이트하는 방법에 있어서, 컨트롤러로부터 플로우 테이블에 대한 업데이트가 수행될 시간을 지정하는 예약 시간에 대한 정보를 포함하는 플로우 테이블 변경 메시지를 수신하는 단계와; 예약 시간에 상기 플로우 테이블에 대한 업데이트를 수행하는 단계와; 플로우 테이블에 대한 업데이트 수행 결과를 나타내는 결과 메시지를 컨트롤러로 전송하는 단계를 포함하되, 상기 결과 메시지를 상기 컨트롤러로 전송하는 단계는, 예약 시간이 업데이트 대상이 되는 플로우 엔트리의 만료 시간보다 늦은 경우, 플로우 테이블에 대한 업데이트 실패를 나타내는 실패 메시지를 상기 컨트롤러로 전송하고, 예약 시간이 업데이트 대상이 되는 플로우 엔트리의 만료 시간보다 빠른 경우, 예약 시간에 플로우 테이블에 대한 업데이트를 수행한 결과 메시지를 컨트롤러로 전송한다.
여기에서, 상기 방법은, 컨트롤러로부터 상기 실패 메시지에 상응하는 플로우 테이블 재변경 메시지를 수신하는 단계와; 플로우 테이블 재변경 메시지에 따라 플로우 테이블을 업데이트하는 단계를 더 포함할 수 있다.
여기에서, 상기 플로우 테이블 재변경 메시지는, 플로우 테이블 재변경 메시지를 수신함과 동시에 플로우 테이블에 대한 업데이트를 수행하도록 할 수 있다.
여기에서, 상기 예약 시간은, 적어도 하나의 네트워크 장치 별로 다른 시각으로 설정될 수 있다.
여기에서, 상기 예약 시간은, 적어도 하나의 네트워크 장치 중 미리 설정된 그룹에 포함되는 네트워크 장치들에 대해 동일한 시각으로 설정될 수 있다.
상기 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 네트워크 시스템은, 메시지의 적용 시간을 지정하는 예약 시간에 대한 정보를 포함하는 동작 메시지를 전송하는 컨트롤러와; 동작 메시지를 수신하여 예약 시간에 동작 메시지에 상응하는 동작을 수행하는 네트워크 장치를 포함하되, 상기 네트워크 장치는, 예약 시간이 동작 메시지의 적용 대상이 되는 플로우 엔트리의 만료 시간보다 늦은 경우, 동작 메시지에 대한 적용의 실패를 나타내는 실패 메시지를 컨트롤러로 전송하고, 예약 시간이 동작 메시지의 적용 대상이 되는 플로우 엔트리의 만료 시간보다 빠른 경우, 동작 메시지를 플로우 테이블에 적용한 결과 메시지를 컨트롤러로 전송한다.
여기에서, 상기 동작 메시지는, 네트워크 장치의 플로우 테이블을 업데이트하도록 하는 플로우 테이블 변경 메시지일 수 있다.
여기에서, 상기 컨트롤러는, 결과 메시지가 플로우 테이블에 대한 업데이트 실패를 나타내는 실패 메시지인 경우, 실패 메시지를 전송한 네트워크 장치로 플로우 테이블 재변경 메시지를 전송할 수 있다.
여기에서, 상기 플로우 테이블 재변경 메시지는, 플로우 테이블 재변경 메시지를 수신함과 동시에 플로우 테이블에 대한 업데이트를 수행하도록 할 수 있다.
상기와 같은 본 발명에 따른 플로우 테이블 업데이트 방법은, 컨트롤러가 네트워크 장치의 플로우 테이블을 업데이트하는데 있어서, 플로우 테이블 변경 메시지를 전달하는 시간과 업데이트가 실제 수행되는 시간을 분리함으로써, 다수의 네트워크 장치에 플로우 테이블 변경 메시지를 전송하면서 발생하는 네트워크 장치 간의 업데이트 시간의 간격을 효과적으로 제어할 수 있다.
또한, 플로우 테이블을 변경하기 위한 플로우 테이블 변경 메시지를 실시간으로만 전달하지 않고, 시간에 구애받지 않고 네트워크 장치에 전달할 수 있으므로, 컨트롤러에 발생하는 부하를 효과적으로 제어할 수 있다.
도 1은 본 발명의 실시예에 따라 네트워크 장치의 플로우 테이블을 업데이트하는 방법을 설명하기 위한 순서도이다.
도 2는 본 발명의 실시예에 따라 동일한 예약 시간에 플로우 테이블을 업데이트하는 방법을 설명하기 위한 순서도이다.
도 3은 본 발명의 일 실시예에 따라 서로 다른 예약 시간에 플로우 테이블을 업데이트하는 방법을 설명하기 위한 순서도이다.
도 4는 본 발명의 다른 실시예에 따라 서로 다른 예약 시간에 플로우 테이블을 업데이트하는 방법을 설명하기 위한 순서도이다.
도 5는 본 발명의 실시예에 따라 예약 시간에 기반한 플로우 테이블 업데이트가 실패한 경우의 처리 방법을 설명하기 위한 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에서 언급되는 컨트롤러는 통합 SDN 컨트롤러(Unified SDN controller)로, 트래픽의 흐름을 제어하기 위해 관련 구성 요소(예를 들면, 스위치, 라우터 등)를 제어하는 기능 요소(entity)를 의미할 수 있다.
또한, 컨트롤러는 물리적인 구현 형태나 구현 위치 등에 의해 한정되지 않는다. 예를 들어, 컨트롤러는 ONF(OpenFlow), IETF(Internet Engineering Task Force), ETSI(European Telecommunication Standards Institute) 및/또는 ITU-T(International Telecommunication Union Telecommunication) 등에서 정의하고 있는 컨트롤러 기능 요소(entity)를 의미할 수 있다.
본 발명에서 언급되는 네트워크 장치는 '스위치(switch)' 또는 '라우터(router)'와 같이 트래픽(또는 패킷)을 실질적으로 포워딩하거나 스위칭 또는 라우팅하는 기능 요소를 의미할 수 있다. 따라서, 본 발명에서 네트워크 장치는 스위치 또는 라우터로 명명될 수 있다.
예를 들어, 네트워크 장치는 ONF, IETF, ETSI 및/또는 ITU-T 등에서 정의하고 있는 스위치, 라우터, 스위치 요소(Switching Element), 라우터 요소(Routing Element), 포워딩 요소(Forwarding Element) 등을 의미할 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 실시예에 따라 네트워크 장치의 플로우 테이블을 업데이트하는 방법을 설명하기 위한 순서도이다.
도 1을 참조하면, 컨트롤러는 네트워크 장치가 가진 플로우 테이블(Flow table)에 대한 업데이트 또는 변경을 위한 플로우 테이블 변경 메시지를 네트워크 장치로 전달할 수 있다. 이 때, 플로우 테이블 변경 메시지는 플로우 테이블에 대한 업데이트가 수행될 시간을 지정하는 예약 시간(Reservation time)에 대한 정보를 포함할 수 있으며, 네트워크 장치는 예약 시간에 플로우 테이블에 대한 업데이트를 수행할 수 있다.
네트워크 장치의 플로우 테이블을 예약 시간에 기반하여 업데이트하는 방법을 보다 상세히 설명하면 다음과 같다.
컨트롤러는 플로우 테이블에 대한 업데이트가 수행될 시간을 지정하는 예약 시간에 대한 정보를 포함하는 플로우 테이블 변경 메시지를 네트워크 장치로 전송하여 플로우 테이블에 대한 업데이트를 요청할 수 있다(S110).
네트워크 장치는 플로우 테이블 변경 메시지에 포함된 예약 시간에 대한 정보를 이용하여 예약 시간이 플로우 엔트리의 만료 시간보다 빠른지 늦은지 판단할 수 있다(S120). 예를 들어, 만료 시간은 OpenFlow 표준안에서 idle timeout 또는 hard timeout으로 표현될 수 있다. 즉, 만료 시간은 플로우 테이블에 포함된 플로우 엔트리(Flow entry)가 만료 또는 삭제되는 시간을 의미할 수 있다.
예약 시간이 만료 시간보다 늦으면(예약 시간 > 만료 시간), 예약 시간에 플로우 테이블을 업데이트할 때, 이미 플로우 엔트리에 대한 만료 또는 삭제가 수행되어 플로우 테이블을 정상으로 업데이트할 수 없다. 예를 들어, 예약 시간과 hard timeout 시간을 비교하여 (예약 시간 - hard timeout) > 0 이면, 예약 시간에 플로우 테이블을 정상적으로 업데이트할 수 없다.
예약 시간이 만료 시간보다 늦은 경우에, 네트워크 장치는 플로우 테이블에 대한 업데이트 실패를 나타내는 실패 메시지를 컨트롤러로 전송할 수 있다(S130).
실패 메시지를 수신한 컨트롤러는 실패 메시지를 전송한 네트워크 장치로 플로우 테이블 재변경 메시지를 전송할 수 있으며(S140), 플로우 테이블 재변경 메시지를 수신한 네트워크 장치는 플로우 테이블 재변경 메시지에 따라 플로우 테이블을 업데이트할 수 있다(S150). 여기서, 플로우 테이블 재변경 메시지는 플로우 테이블 재변경 메시지를 수신함과 동시에 플로우 테이블에 대한 업데이트를 수행하도록 할 수 있다.
한편, 예약 시간이 만료 시간보다 빠르면(예약 시간 < 만료 시간), 예약 시간에 플로우 테이블을 업데이트할 수 있다(S160).
네트워크 장치는 예약 시간에 업데이트가 성공하였는지 여부를 확인할 수 있다(S170). 네트워크 장치는 플로우 테이블에 대한 업데이트의 성공 여부를 알리는 결과 메시지를 컨트롤러로 전송할 수 있으며, 결과 메시지는 성공 메시지와 실패 메시지로 구분될 수 있다.
네트워크 장치는 업데이트가 성공한 것으로 확인되면, 업데이트 성공을 나타내는 성공 메시지를 컨트롤러로 전송할 수 있다(S180). 다만, S180에 따른 절차는 생략될 수도 있다. 즉, 업데이트 성공에 성공하면 성공 메시지를 전송하는 절차는 컨트롤러가 관리하는 네트워크 장치의 수가 많아지면 컨트롤러에 부하를 증가시킬 수 있으므로 옵션으로 설정할 수 있다.
네트워크 장치는 업데이트가 실패한 것으로 확인되면, 업데이트 실패를 나타내는 실패 메시지를 컨트롤러로 전송할 수 있다(S190). 실패 메시지가 컨트롤러로 전송된 경우에는 상술한 S140 및 S150에 따른 절차가 수행될 수 있다.
본 발명에 따르면, 컨트롤러가 네트워크 장치의 플로우 테이블을 업데이트하는데 있어서, 플로우 테이블 변경 메시지를 전달하는 시간과 업데이트가 실제 수행되는 시간을 분리함으로써, 다수의 네트워크 장치에 플로우 테이블 변경 메시지를 전송하면서 발생하는 네트워크 장치 간의 업데이트 시간의 간격을 효과적으로 제어할 수 있다.
또한, 플로우 테이블을 변경하기 위한 플로우 테이블 변경 메시지를 실시간으로만 전달하지 않고, 시간에 구애받지 않고 네트워크 장치에 전달할 수 있으므로, 컨트롤러에 발생하는 부하를 효과적으로 제어할 수 있다.
한편, 플로우 테이블 변경 메시지는 컨트롤러가 네트워크 장치를 제어하기 위해 네트워크 장치로 전송하는 동작 메시지 중 하나일 수 있다.
따라서, 소프트웨어 정의 네트워크에서 컨트롤러는 네트워크 장치를 제어하기 위하여 메시지의 적용 시간을 지정하는 예약 시간에 대한 정보를 포함하는 동작 메시지를 네트워크 장치로 전송할 수 있다.
또한, 네트워크 장치는 동작 메시지를 수신하여 예약 시간에 동작 메시지에 상응하는 동작을 수행할 수 있다.
도 2는 본 발명의 실시예에 따라 동일한 예약 시간에 플로우 테이블을 업데이트하는 방법을 설명하기 위한 순서도이다.
도 2를 참조하여, 컨트롤러가 복수의 네트워크 장치에 서로 다른 시간에 동일한 예약 시간에 대한 정보를 포함하는 플로우 테이블 변경 메시지를 전송하는 경우를 설명한다.
컨트롤러는 플로우 테이블에 대한 업데이트를 요청하기 위하여 플로우 테이블 변경 메시지를 복수의 네트워크 장치에 전송할 수 있다.
예를 들어, 컨트롤러는 14시에 제1 네트워크 장치로 플로우 테이블 변경 메시지를 전송하고(S211), 15시에 제2 네트워크 장치로 플로우 테이블 변경 메시지를 전송하며(S213), 16시에 제3 네트워크 장치로 플로우 테이블 변경 메시지를 전송할 수 있다(S215).
플로우 테이블 변경 메시지에 포함되는 예약 시간에 대한 정보는 복수의 네트워크 장치에 대하여 동일한 시각으로 설정될 수 있다. 예를 들어, 예약 시간은 20시로 설정될 수 있다.
제1 네트워크 장치, 제2 네트워크 장치 및 제3 네트워크 장치는 예약 시간이 20시인 플로우 테이블 변경 메시지를 수신하고, 20시가 되면 플로우 테이블에 대한 업데이트를 동시에 수행할 수 있다(S230). 여기서, 제1 네트워크 장치, 제2 네트워크 장치 및 제3 네트워크 장치는 미리 설정된 그룹에 포함되는 네트워크 장치들일 수 있다.
따라서, 도 2에 따르면 컨트롤러는 플로우 테이블 변경 메시지를 서로 다른 시간에 네트워크 장치에 보냄으로써 부하를 분산시킬 수 있다. 예를 들어, 컨트롤러는 컨트롤러의 부하가 가장 작은 시간대, 네트워크 Congestion이 발생하지 않는 시간대, 스위치의 부하가 가장 적인 시간대 등에 플로우 테이블 변경 메시지를 전송할 수 있다.
또한, 컨트롤러는 플로우 테이블 변경 메시지를 서로 다른 시간에 네트워크 장치에 전송함에도 불구하고, 네트워크 장치들이 서로 동일한 시간에 플로우 테이블을 업데이트하도록 할 수 있다.
도 3은 본 발명의 일 실시예에 따라 서로 다른 예약 시간에 플로우 테이블을 업데이트하는 방법을 설명하기 위한 순서도이고, 도 4는 본 발명의 다른 실시예에 따라 서로 다른 예약 시간에 플로우 테이블을 업데이트하는 방법을 설명하기 위한 순서도이다.
먼저 도 3을 참조하여 컨트롤러가 동일한 시간에 플로우 테이블 변경 메시지를 복수의 네트워크 장치들로 전송하고, 복수의 네트워크 장치들 각각이 서로 다른 시간에 실제로 플로우 테이블을 업데이트하는 경우를 예를 들어 설명한다.
컨트롤러는 14시에 플로우 테이블 변경 메시지를 제1 네트워크 장치, 제2 네트워크 장치 및 제3 네트워크 장치로 동시에 전송할 수 있다(S311, S313, S315).
여기서, 제1 네트워크 장치로 전송되는 플로우 테이블 변경 메시지의 예약 시간은 17시로 설정되고, 제2 네트워크 장치로 전송되는 플로우 테이블 변경 메시지의 예약 시간은 19시로 설정되며, 제3 네트워크 장치로 전송되는 플로우 테이블 변경 메시지의 예약 시간이 21시로 설정될 수 있다.
제1 네트워크 장치, 제2 네트워크 장치 및 제3 네트워크 장치 각각은 수신한 플로우 테이블 변경 메시지에 설정된 예약 시간에 플로우 테이블을 업데이트할 수 있다.
예컨대, 제1 네트워크 장치는 17시에 플로우 테이블에 대한 업데이트를 수행하고(S321), 제2 네트워크 장치는 19시에 플로우 테이블에 대한 업데이트를 수행하며(S323), 제3 네트워크 장치는 21시에 플로우 테이블에 대한 업데이트를 수행할 수 있다(S325).
다음으로, 도 4를 참조하여 컨트롤러가 서로 다른 시간에 플로우 테이블 변경 메시지를 복수의 네트워크 장치들로 전송하고, 복수의 네트워크 장치들 각각이 서로 다른 시간에 실제로 플로우 테이블을 업데이트하는 경우를 예를 들어 설명한다.
컨트롤러는 14시에 플로우 테이블 변경 메시지를 제1 네트워크 장치로 전송할 수 있고(S411), 15시에 플로우 테이블 변경 메시지를 제2 네트워크 장치로 전송할 수 있으며(S413), 16시에 플로우 테이블 변경 메시지를 제3 네트워크 장치로 전송할 수 있다(S415).
여기서, 제1 네트워크 장치로 전송되는 플로우 테이블 변경 메시지의 예약 시간은 17시로 설정되고, 제2 네트워크 장치로 전송되는 플로우 테이블 변경 메시지의 예약 시간은 19시로 설정되며, 제3 네트워크 장치로 전송되는 플로우 테이블 변경 메시지의 예약 시간이 21시로 설정될 수 있다.
제1 네트워크 장치, 제2 네트워크 장치 및 제3 네트워크 장치 각각은 수신한 플로우 테이블 변경 메시지에 설정된 예약 시간에 플로우 테이블을 업데이트할 수 있다.
예컨대, 제1 네트워크 장치는 17시에 플로우 테이블에 대한 업데이트를 수행하고(S421), 제2 네트워크 장치는 19시에 플로우 테이블에 대한 업데이트를 수행하며(S423), 제3 네트워크 장치는 21시에 플로우 테이블에 대한 업데이트를 수행할 수 있다(S425).
도 3 및 도 4와 같이 플로우 테이블에 대한 업데이트를 위한 플로우 테이블 변경 메시지에 예약 시간에 대한 정보를 추가하면, 플로우 테이블 변경 메시지에 대한 전송 시간과 플로우 테이블에 대한 실제 업데이트 시간을 다양하게 설정하여 복수의 네트워크 장치의 플로우 테이블을 효과적으로 업데이트할 수 있다.
도 5는 본 발명의 실시예에 따라 예약 시간에 기반한 플로우 테이블 업데이트가 실패한 경우의 처리 방법을 설명하기 위한 순서도이다.
도 5를 참조하여, 컨트롤러가 전달한 플로우 테이블 변경 메시지에 따른 예약 시간에 네트워크 장치가 플로우 테이블에 대한 업데이트를 수행하였으나, 실패한 경우에 대한 처리 방법을 설명한다.
컨트롤러는 14시에 플로우 테이블 변경 메시지를 제1 네트워크 장치, 제2 네트워크 장치 및 제3 네트워크 장치로 동시에 전송할 수 있다(S511, S513, S515).
여기서, 플로우 테이블 변경 메시지에 포함되는 예약 시간에 대한 정보는 복수의 네트워크 장치에 대하여 동일한 시각으로 설정될 수 있다. 예를 들어, 예약 시간은 20시로 설정될 수 있다.
제1 네트워크 장치, 제2 네트워크 장치 및 제3 네트워크 장치는 예약 시간이 20시인 플로우 테이블 변경 메시지를 수신하고, 20시가 되면 플로우 테이블에 대한 업데이트를 동시에 수행할 수 있다(S521).
제1 네트워크 장치, 제2 네트워크 장치 및 제3 네트워크 장치 중에서 플로우 테이블에 대한 업데이트를 실패한 네트워크 장치가 발생할 수 있다.
예를 들어, 제2 네트워크 장치가 플로우 테이블에 대한 업데이트를 실패한 경우를 설명한다.
제2 네트워크 장치는 예약 시간이 20시인 플로우 테이블 변경 메시지를 수신하고(S513), 20시가 되어 플로우 테이블에 대한 업데이트를 수행하였으나(S521), 플로우 테이블에 대한 업데이트에 실패할 수 있다(S523).
이러한 경우, 제2 네트워크 장치는 플로우 테이블에 대한 업데이트 실패를 나타내는 실패 메시지를 컨트롤러로 전송할 수 있다(S525).
실패 메시지를 수신한 컨트롤러는 실패 메시지를 전송한 제2 네트워크 장치로 플로우 테이블 재변경 메시지를 전송할 수 있으며(S531), 플로우 테이블 재변경 메시지를 수신한 제2 네트워크 장치는 플로우 테이블 재변경 메시지에 따라 플로우 테이블을 업데이트할 수 있다(S533). 여기서, 플로우 테이블 재변경 메시지는 플로우 테이블 재변경 메시지를 수신함과 동시에 플로우 테이블에 대한 업데이트를 수행하도록 할 수 있다.
또한, 도 5는 플로우 테이블 변경 메시지에 포함되는 예약 시간에 대한 정보가 복수의 네트워크 장치에 대하여 동일한 시각으로 설정된 경우를 예를 들어 나타내고 있으나, 예약 시간에 대한 정보가 복수의 네트워크 장치 각각에 대하여 서로 다르게 설정될 수 있음은 물론이다.
본 발명의 실시예에 따르면, 다수의 네트워크 장치에 플로우 테이블 변경 메시지를 전송하면서 발생하는 네트워크 장치 간의 업데이트 시간의 간격을 제어하여 컨트롤러에 발생하는 부하를 효과적으로 제어할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (9)

  1. 소프트웨어 정의 네트워크에서 적어도 하나의 네트워크 장치가 플로우 테이블을 업데이트하는 방법에 있어서,
    컨트롤러로부터 상기 플로우 테이블에 대한 업데이트가 수행될 시간을 지정하는 예약 시간에 대한 정보를 포함하는 플로우 테이블 변경 메시지를 수신하는 단계;
    상기 예약 시간에 상기 플로우 테이블에 대한 업데이트를 수행하는 단계; 및
    상기 플로우 테이블에 대한 업데이트 수행 결과를 나타내는 결과 메시지를 상기 컨트롤러로 전송하는 단계를 포함하되,
    상기 결과 메시지를 상기 컨트롤러로 전송하는 단계는,
    상기 예약 시간이 업데이트 대상이 되는 플로우 엔트리의 만료 시간보다 늦은 경우, 상기 플로우 테이블에 대한 업데이트 실패를 나타내는 실패 메시지를 상기 컨트롤러로 전송하고,
    상기 예약 시간이 업데이트 대상이 되는 플로우 엔트리의 만료 시간보다 빠른 경우, 상기 예약 시간에 상기 플로우 테이블에 대한 업데이트를 수행한 결과 메시지를 상기 컨트롤러로 전송하는 것을 특징으로 하는,
    플로우 테이블 업데이트 방법.
  2. 청구항 1에 있어서,
    상기 컨트롤러로부터 상기 실패 메시지에 상응하는 플로우 테이블 재변경 메시지를 수신하는 단계; 및
    상기 플로우 테이블 재변경 메시지에 따라 상기 플로우 테이블을 업데이트하는 단계를 더 포함하는 것을 특징으로 하는,
    플로우 테이블 업데이트 방법.
  3. 청구항 2에 있어서,
    상기 플로우 테이블 재변경 메시지는,
    상기 플로우 테이블 재변경 메시지를 수신함과 동시에 상기 플로우 테이블에 대한 업데이트를 수행하도록 하는 것을 특징으로 하는,
    플로우 테이블 업데이트 방법.
  4. 청구항 1에 있어서,
    상기 예약 시간은,
    상기 적어도 하나의 네트워크 장치 별로 다른 시각으로 설정되는 것을 특징으로 하는,
    플로우 테이블 업데이트 방법.
  5. 청구항 1에 있어서,
    상기 예약 시간은,
    상기 적어도 하나의 네트워크 장치 중 미리 설정된 그룹에 포함되는 네트워크 장치들에 대해 동일한 시각으로 설정되는 것을 특징으로 하는,
    플로우 테이블 업데이트 방법.
  6. 네트워크 시스템으로서,
    메시지의 적용 시간을 지정하는 예약 시간에 대한 정보를 포함하는 동작 메시지를 전송하는 컨트롤러; 및
    상기 동작 메시지를 수신하여 상기 예약 시간에 상기 동작 메시지에 상응하는 동작을 수행하는 네트워크 장치를 포함하되,
    상기 네트워크 장치는,
    상기 예약 시간이 상기 동작 메시지의 적용 대상이 되는 플로우 엔트리의 만료 시간보다 늦은 경우, 상기 동작 메시지에 대한 적용의 실패를 나타내는 실패 메시지를 상기 컨트롤러로 전송하고,
    상기 예약 시간이 상기 동작 메시지의 적용 대상이 되는 플로우 엔트리의 만료 시간보다 빠른 경우, 상기 동작 메시지를 플로우 테이블에 적용한 결과 메시지를 상기 컨트롤러로 전송하는,
    네트워크 시스템.
  7. 청구항 6에 있어서,
    상기 동작 메시지는,
    상기 네트워크 장치의 플로우 테이블을 업데이트하도록 하는 플로우 테이블 변경 메시지인 것을 특징으로 하는,
    네트워크 시스템.
  8. 청구항 7에 있어서,
    상기 컨트롤러는,
    상기 결과 메시지가 상기 플로우 테이블에 대한 업데이트 실패를 나타내는 실패 메시지인 경우,
    상기 실패 메시지를 전송한 네트워크 장치로 플로우 테이블 재변경 메시지를 전송하는 것을 특징으로 하는,
    네트워크 시스템.
  9. 청구항 8에 있어서,
    상기 플로우 테이블 재변경 메시지는,
    상기 플로우 테이블 재변경 메시지를 수신함과 동시에 상기 플로우 테이블에 대한 업데이트를 수행하도록 하는 것을 특징으로 하는,
    네트워크 시스템.
KR1020160004022A 2013-09-26 2016-01-13 플로우 테이블을 업데이트하는 방법 KR101627992B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020130114764 2013-09-26
KR20130114764 2013-09-26

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR20140125933A Division KR20150034627A (ko) 2013-09-26 2014-09-22 플로우 테이블을 업데이트하는 방법

Publications (2)

Publication Number Publication Date
KR20160010639A KR20160010639A (ko) 2016-01-27
KR101627992B1 true KR101627992B1 (ko) 2016-06-13

Family

ID=53031386

Family Applications (2)

Application Number Title Priority Date Filing Date
KR20140125933A KR20150034627A (ko) 2013-09-26 2014-09-22 플로우 테이블을 업데이트하는 방법
KR1020160004022A KR101627992B1 (ko) 2013-09-26 2016-01-13 플로우 테이블을 업데이트하는 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR20140125933A KR20150034627A (ko) 2013-09-26 2014-09-22 플로우 테이블을 업데이트하는 방법

Country Status (2)

Country Link
US (1) US10171351B2 (ko)
KR (2) KR20150034627A (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017030531A1 (en) * 2015-08-14 2017-02-23 Hewlett Packard Enterprise Development Lp Implementing forwarding behavior based on communication activity between a controller and a network device
CN107528794B (zh) * 2016-06-19 2021-01-15 华为技术有限公司 一种数据处理方法和装置
CN108011827A (zh) * 2016-10-28 2018-05-08 中国电信股份有限公司 一种基于sdn的数据转发方法、系统以及控制器
WO2018137237A1 (zh) * 2017-01-26 2018-08-02 华为技术有限公司 一种业务流迁移的方法及设备
KR102339426B1 (ko) * 2017-06-23 2021-12-14 주식회사 케이티 Sdn 환경에서 플로우 룰 적용 방법 및 이를 위한 장치
US11252096B2 (en) 2019-06-20 2022-02-15 Microsoft Technology Licensing, Llc Network flow state management for connectionless protocol(s)
JP2021170161A (ja) * 2020-04-14 2021-10-28 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110058513A1 (en) 2008-04-30 2011-03-10 Zte Corporation Synchronization method of common control message among network elements
WO2012127894A1 (ja) 2011-03-18 2012-09-27 日本電気株式会社 ネットワークシステム、及びスイッチ方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3663121B2 (ja) * 2000-10-30 2005-06-22 シャープ株式会社 ノード構成情報管理方法及び無線ネットワークシステム
KR100430561B1 (ko) 2000-12-27 2004-05-10 주식회사 케이티 엑티브 네트워크 환경에서 웹 서버와 웹 캐쉬 서버간데이터 일치성 유지 방법
JP4734539B2 (ja) * 2006-05-15 2011-07-27 学校法人慶應義塾 ネットワークに含まれるノード間の最短経路を探索するためのシステムおよび方法
US8169910B1 (en) 2007-10-24 2012-05-01 Juniper Networks, Inc. Network traffic analysis using a flow table
US8107380B1 (en) * 2009-07-30 2012-01-31 Sprint Communications Company L.P. System and method for operating a communication system
KR101405458B1 (ko) * 2009-10-06 2014-06-13 한국전자통신연구원 플로우 기반 네트워크 장치에서의 포워딩 정보 및 QoS 정보 제공 방법
KR101441270B1 (ko) 2009-12-18 2014-09-17 인텔 코오퍼레이션 무리 지능을 사용하는 대규모 분산 시스템에서 정보 라우팅을 위해 프레임워크를 이용하는 시스템 및 방법
CN104054304A (zh) * 2012-01-11 2014-09-17 日本电气株式会社 计算机系统、控制器、交换机、通信方法以及存储网络管理程序的记录介质
WO2014205680A1 (zh) * 2013-06-26 2014-12-31 华为技术有限公司 报文转发系统、设备和方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110058513A1 (en) 2008-04-30 2011-03-10 Zte Corporation Synchronization method of common control message among network elements
WO2012127894A1 (ja) 2011-03-18 2012-09-27 日本電気株式会社 ネットワークシステム、及びスイッチ方法

Also Published As

Publication number Publication date
KR20160010639A (ko) 2016-01-27
US20160241485A1 (en) 2016-08-18
US10171351B2 (en) 2019-01-01
KR20150034627A (ko) 2015-04-03

Similar Documents

Publication Publication Date Title
KR101627992B1 (ko) 플로우 테이블을 업데이트하는 방법
CN107005478B (zh) 一种自适应流表的处理方法及装置
JP6388955B2 (ja) OpenFlowスイッチのグレースフル・リスタート処理方法及びOpenFlowコントローラ
TW200614747A (en) Quality of service control for a data transmission
KR101658824B1 (ko) 소프트웨어 정의 네트워크에서 플로우 룰을 변경하는 방법, 장치 및 컴퓨터 프로그램
CN107645394B (zh) 一种sdn网络中的交换机配置方法
KR101678756B1 (ko) 통신 시스템, 제어 장치, 통신 장치 및 정보 중계 방법
US20090059920A1 (en) Method for processing lmp packets, lmp packet processing unit and lmp packet processing node
KR101755829B1 (ko) Sdn 환경에서 arp 처리 방법 및 장치
CN112217680A (zh) 基于软件定义广域网的控制器能力基准测试方法和装置
US20120179795A1 (en) Method and system for configuring telecom device, and telecom device
WO2015046859A1 (ko) 플로우 테이블을 업데이트하는 방법
KR101573150B1 (ko) Sdn 네트워크 환경에서 플로우 테이블의 정합성 관리 방법
KR20160003603A (ko) 다중 제어장치를 구비한 환경에서 제어장치의 제어 권한 변경 방법
KR20160072718A (ko) 소프트웨어 정의 네트워크에서 인접 네트워크 장비 발견 시스템 및 방법
US10263915B2 (en) Method for processing event between controller and network device
KR101717363B1 (ko) Sdn 환경에서 컨트롤러의 역할을 변경하는 방법 및 이를 수행하는 장치
CN109428865B (zh) 一种切换标签交换路径更新权限的方法及相关设备
KR100372342B1 (ko) 이동통신 시스템에서의 운용자 명령 처리 방법
CN101394315B (zh) 一种串口多用户操作的方法及其装置
KR20150058052A (ko) 컨트롤러와 네트워크 장치 간 이벤트를 처리하는 방법
KR20160025958A (ko) 오픈플로우 스위치에서 플로우별 대역폭 예약 시스템 및 방법
KR20180104376A (ko) 소프트웨어 정의 네트워크에서 보안 기능을 지원하는 방법 및 이를 위한 네트워크 장치 및 소프트웨어 정의 컨트롤러
CN107276911B (zh) 一种网络管理方法和系统
KR100915080B1 (ko) 광가입자 전송장치 운용지원 시스템의 운용 명령 제어 방법

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20190502

Year of fee payment: 4