KR102113641B1 - 소프트웨어 정의 네트워크 시스템에서 다중 중요도 모드에 따른 패킷 스케줄링 방법, 그 방법을 구현한 컴퓨터프로그램 및 그 방법을 수행하는 스위치 장치 - Google Patents

소프트웨어 정의 네트워크 시스템에서 다중 중요도 모드에 따른 패킷 스케줄링 방법, 그 방법을 구현한 컴퓨터프로그램 및 그 방법을 수행하는 스위치 장치 Download PDF

Info

Publication number
KR102113641B1
KR102113641B1 KR1020180086073A KR20180086073A KR102113641B1 KR 102113641 B1 KR102113641 B1 KR 102113641B1 KR 1020180086073 A KR1020180086073 A KR 1020180086073A KR 20180086073 A KR20180086073 A KR 20180086073A KR 102113641 B1 KR102113641 B1 KR 102113641B1
Authority
KR
South Korea
Prior art keywords
mode
packet
message
unit
switch device
Prior art date
Application number
KR1020180086073A
Other languages
English (en)
Other versions
KR20200011230A (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 KR1020180086073A priority Critical patent/KR102113641B1/ko
Publication of KR20200011230A publication Critical patent/KR20200011230A/ko
Application granted granted Critical
Publication of KR102113641B1 publication Critical patent/KR102113641B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
    • 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
    • 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

Landscapes

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

Abstract

본 발명은 소프트웨어 정의 네트워크 시스템에서 다중 중요도 모드에 따른 패킷 스케줄링 방법, 그 방법을 구현한 컴퓨터프로그램 및 그 방법을 수행하는 스위치 장치에 관한 것으로서, 더욱 상세하게는 종래 소프트웨어 정의 네트워크 시스템을 개선하여 새로운 설계 및 구현을 제시하기 위한, 다중 중요도(Mixed-Criticality, MC) 모드를 적용하여 구현한 패킷 스케줄링 방법, 그 방법을 구현한 컴퓨터프로그램 및, 그 방법을 수행하는 스위치 장치에 관한 것이다.
본 발명에 의하면, 종래 소프트웨어 정의 네트워크의 기술적 제약을 해결하는 방법을 제시하여 차세대 임베디드 네트워크 표준이 될 이더넷 기반의 네트워크에서 고효율의 적응형 실시간 네트워크 플로우 스케줄링이 가능하도록 하여 시스템 실시간성을 크게 향상시키며, 최근 주목받고 있는 자율주행 자동차와 같은 복잡한 사이버-물리 시스템(CPS: Cyber-Physical Systems)의 내부 네트워크 자원을 효율적으로 사용 가능하도록 하는 기반 기술로 활용할 수 있게 하기 위한 패킷 스케줄링 방법, 그 방법을 구현한 컴퓨터프로그램 및 그 방법을 수행하는 스위치 장치를 제공한다.

Description

소프트웨어 정의 네트워크 시스템에서 다중 중요도 모드에 따른 패킷 스케줄링 방법, 그 방법을 구현한 컴퓨터프로그램 및 그 방법을 수행하는 스위치 장치{Packet scheduling method by using mixed-criticality mode in software-defined network system, computer program therefor, and switch apparatus therefor}
본 발명은 소프트웨어 정의 네트워크 시스템에서 다중 중요도 모드에 따른 패킷 스케줄링 방법, 그 방법을 구현한 컴퓨터프로그램 및 그 방법을 수행하는 스위치 장치에 관한 것으로서, 더욱 상세하게는 종래 소프트웨어 정의 네트워크 시스템을 개선하여 새로운 설계 및 구현을 제시하기 위한, 다중 중요도(Mixed-Criticality, MC) 모드를 적용하여 구현한 패킷 스케줄링 방법, 그 방법을 구현한 컴퓨터프로그램 및, 그 방법을 수행하는 스위치 장치에 관한 것이다.
임베디드 시스템과 통신 기술의 발전으로 인해 차량, 항공기등으로 대표되는 사이버-물리 시스템(CPS: Cyber-Physical Systems) 이 대두되고 있다 사이버-물리 시스템은 다양한 센서, 제어기, 작동장치 등이 네트워크로 연결되어 시스템 내부 상황, 외부 환경 등 다양한 요인들을 분석하며 작동한다. 발전된 센서 및 인지 기술이 높은 네트워크 대역폭과 낮은 지연 시간 등을 요구함에 따라, 사이버-물리 시스템의 네트워크 표준은 빠르게 이더넷 기반으로 이동하고 있다.
사이버-물리 시스템 네트워크의 또 다른 주요 방향성은 적응형 실시간 네트워크 플로우 스케줄링 기법의 활용이다. 다중 중요도(MC: Mixed-Criticality) 스케줄링으로 대표되는 적응형 실시간 플로우 스케줄링 기법은 네트워크 상황을 지속적으로 관찰하여 상황에 따라 서로 다른 플로우 전달 정책을 적용하여 자원 사용의 효율성을 높이고 시스템의 실시간성을 향상시킨다.
최근 소프트웨어 정의 네트워크 기술은 하나의 하드웨어 네트워크 장비로 통합되어 있던 제어평면(control plane)과 전송부(data plane)를 분리하고, 제어평면을 원격 네트워크 제어부(remote network controller)의 형태로, 소프트웨어로 구현 및 수행하도록 함에 따라 유연한 네트워크 제어를 가능하도록 하는 새로운 네트워크 구조를 채택하였다. 네트워크 제어부 분리를 위하여 OpenFlow로 대표되는 제어 프로토콜을 정의하여, 이 제어 프로토콜을 통해 네트워크 감시 및 관리를 수행하도록 하였다.
또한 ISO 26262 표준에서 정의된 Automotive Safety Integrity Levels(ASIL) 과 같은 기준을 활용하여 각각의 네트워크 플로우들을 중요도에 따라 분류할 수 있다. 네트워크 시스템은 중요도 모드(System criticality mode)를 정의하고 유지한다. 중요도 모드는 현재 시스템이 특정 단계의 중요도를 가지는 플로우들까지의 요구 조건을 만족할 수 있음을 나타낸다. 예를 들면, 2단계의 중요도를 가지는 시스템의 경우(Dual criticality system) 각 네트워크 플로우는 낮은 중요도 플로우(Low criticality flow)와 높은 중요도 플로우(High criticality flow)로 구분된다. 이 시스템은 낮은 중요도 모드(Low criticality mode)에서는 모든 플로우들의 실시간성 요구 조건을 만족하기 위하여 모든 플로우들의 패킷들을 전달하지만, 높은 중요도 모드(High criticality mode)에서는 높은 중요도 플로우들의 실시간성 요구 조건을 만족하기 위하여 낮은 중요도 플로우들의 전송을 제한할 수 있다. 시스템 모드는 각 네트워크 플로우들이 요구하는 자원 사용량에 의해 변동된다. 특정 네트워크 플로우가 순간적으로 많은 자원을 요구할 경우, 제한된 자원으로 인하여 높은 중요도 플로우들의 실시간성 요구 조건을 만족하기 어렵다고 판단하면 시스템 모드를 높은 중요도 모드로 변환하여 높은 중요도 플로우들에게 높은 자원 사용 우선 순위를 부여한다.
이와 같은 적응형 실시간 네트워크 플로우 스케줄링 기법은 학계에서 수행된 다양한 연구를 통해 높은 자원 사용의 효율성과 시스템 안정성을 보장함이 증명되었다. 그러나 그럼에도 불구하고 적응형 플로우 스케줄링 기법을 이더넷 기반의 차세대 임베디드 네트워크 시스템에서 구현하는 것은 여러 기술적 어려움으로 인하여 아직까지 실현되지 못하고 있다. 가장 큰 기술적 제약은 이더넷 스위치들이 고정적인 패킷 전송 정책(Static packet forwarding policy)을 사용함에 따라 적응형 플로우 스케줄링의 실현이 불가능하다는 점이다.
또한, 소프트웨어 정의 네트워크 기술의 높은 유연성에도 불구하고, 적응형 실시간 플로우 스케줄링을 실현하는 것은 여전히 어려운 일이다. 이는 현재 소프트웨어 정의 네트워크 기술이 실시간 네트워크에 적절하지 않게 설계되어 있기 때문이다.
도 1은 종래 소프트웨어 정의 네트워크 시스템의 구조이다.
소프트웨어 정의 네트워크 시스템에는, 네트워크에서의 패킷 처리 정책을 결정하는 제어평면(control plane) 상의 네트워크 제어부(remote network controller)(300), 네트워크 제어부(300)에서 결정한 정책에 따라 네트워크 패킷을 전달하는 역할을 수행하면서 네트워크 상에서 서로 연결된 다수의 스위치 장치(200)를 포함하고, 각 스위치 장치(200)에는, 해당 스위치 장치(200)와 네트워크 제어부(300) 사이에서 제어메시지의 송수신을 담당하는 스위치 장치 관리부(100)를 구비할 수 있다. 이하에서는 스위치 장치(200) 및 스위치 장치 관리부(100)를 포함하여 데이터 전달부(data plane)라 칭하기로 한다.
이러한 구조에서의 첫 번째 제약은 패킷 전달 정책 변경의 지연 시간이다. 현재 소프트웨어 정의 네트워크 스위치는 패킷 전달 정책 변경을 위해 원격 네트워크 제어부와 통신을 필요로 하고, 이는 큰 지연 시간을 발생시킨다. 또한 복잡한 스위치 내부 구조로 인하여 내부 구조 간 통신에 지연 시간이 발생한다. 이러한 지연 시간은 시스템의 실시간성을 크게 저하하는 요소가 된다.
두 번째 제약은 네트워크 시스템 상황 감시 기술의 부재이다. 현재 소프트웨어 정의 네트워크 스위치는 단순히 전송한 패킷 개수, 패킷 크기 등 기본적인 감시 기능만을 갖추고 있어, 적응형 스케줄링에 필요한 플로우 전송 패턴 감시 등을 수행할 수 없다.
세 번째 제약은 중요도 모드와 같은 시스템 상황의 빠른 전파를 위한 방법의 부재이다. 네트워크 시스템 상황이 변화할 경우 네트워크 내부의 모든 스위치가 해당 상황을 인지해야 하는데, 원격 네트워크 제어부를 통해 상황 전파를 할 경우 큰 지연 시간이 발생하여 시스템 실시간성을 해치게 된다. 따라서 빠른 상황 전파를 위해 원격 네트워크 제어부를 거치지 않는 상황 전파 방법이 필요하게 되는 문제점이 있었다.
이에 본 발명은 최근 널리 사용되는 소프트웨어 정의 네트워크(Software-Defined Networking) 기술이 제공하는 유연하고(flexible) 프로그래밍 가능한(programmable) 네트워크 제어 기술을 활용하여, 기존 이더넷 스위치의 제약을 극복하고 적응형 플로우 스케줄링을 실현할 수 있는 시스템의 설계 및 구현을 제안한다.
B. Pfaff, J. Pettit, T. Koponen, E. Jackson, A. Zhou, J. Rajahalme, J. Gross, A. Wang, J. Stringer, P. Shelar, K. Amidon, and M. Casado, "The design and implementation of open vswitch,"in NSDI. Oakland, CA: USENIX, May 2015, pp. 117-130.
본 발명은 이와 같은 문제점을 해결하기 위해 창안된 것으로서, 종래 소프트웨어 정의 네트워크의 기술적 제약을 해결하는 방법을 제시하여 차세대 임베디드 네트워크 표준이 될 이더넷 기반의 네트워크에서 고효율의 적응형 실시간 네트워크 플로우 스케줄링이 가능하도록 하여 시스템 실시간성을 크게 향상시키며, 최근 주목받고 있는 자율주행 자동차와 같은 복잡한 사이버-물리 시스템(CPS: Cyber-Physical Systems)의 내부 네트워크 자원을 효율적으로 사용 가능하도록 하는 기반 기술로 활용할 수 있게 하기 위한 패킷 스케줄링 방법, 그 방법을 구현한 컴퓨터프로그램 및 그 방법을 수행하는 스위치 장치를 제공하는데 그 목적이 있다.
이와 같은 목적을 달성하기 위하여 본 발명에 따른 다중 중요도 모드에 따른 패킷 스케줄링을 구현한 스위치 장치는, 일련의 전송되는 메시지들로 구성된 플로우(flow)의 행동을 모니터링하는 플로우 행동 모니터부; 상기 플로우 행동 모니터부의 모니터링 결과에 따라 패킷 스케줄링을 위한 중요도 모드(criticality mode, 이하 '모드'라 한다)를 변경하는 모드 처리부; 현재 모드에서의 일련의 패킷 전달규칙을 포함하는 전달규칙 테이블(forwarding table)을 저장하는 전달규칙 테이블 저장부; 수신된 패킷을, 전달규칙 테이블 저장부에 저장된 전달규칙 테이블에 따라 다른 스위치 장치로 전달하기 위한 우선순위 큐(priority queue)로 보내는 데이터 전달 처리부; 및, 모드별로, 일련의 패킷 전달규칙을 포함하는 전달규칙 테이블을 저장하는 전달규칙 그림자 테이블 저장부를 포함하고, 상기 모드 변경은, 상기 모드 처리부가, 상기 전달규칙 그림자 테이블 저장부에 저장되어 있는 전달규칙 테이블 중, 변경된 현재 모드에 해당하는 전달규칙 테이블을 상기 전달규칙 테이블 저장부에 업데이트하여 저장함으로써 이루어진다.
상기 스위치 장치는, 모드 변경 발생시, 모드 변경을 다른 스위치 장치로 전달하는 모드 전달부를 더 포함할 수 있다.
상기 스위치 장치는, 모드 변경 발생시, 상기 우선순위 큐에 존재하는 패킷 중, 변경된 현재 모드를 기준으로 모드 위반(out-of-mode)에 해당하는 패킷에 대하여, 변경된 현재 모드에 따라 우선순위 큐에서의 재배치를 수행하는 우선순위 큐 재배치부를 더 포함할 수 있다.
상기 플로우 행동 모니터부는, 수신된 패킷이 메시지의 첫번째 패킷일 경우 메시지 헤더의 정보로부터 해당 메시지의 크기를 파악하고, 현재 수신된 메시지와 바로 앞의 메시지 사이의 시간간격(inter-arrival interval)을 계산하여, 계산된 시간간격과 기 설정된 기준 시간간격 값과의 비교 및 상기 파악된 메시지 크기와 기 설정된 기준 메시지 크기 값과의 비교를 통하여 플로우 행동 변화 여부를 감지하고, 플로우 행동 변화가 발생한 경우 모드 변경을 상기 모드 처리부에 알릴 수 있다.
본 발명의 다른 측면에 따르면, 다중 중요도 모드에 따른 패킷 스케줄링을 수행하는 방법은, (a) 플로우 행동 모니터부가, 일련의 전송되는 메시지들로 구성된 플로우(flow)의 행동을 모니터링하는 단계; (b) 모드 처리부가, 상기 모니터링 결과에 따라 패킷 스케줄링을 위한 중요도 모드(criticality mode, 이하 '모드'라 한다)를 변경하는 단계; (c) 데이터 전달 처리부가, 수신된 패킷을, 전달규칙 테이블 저장부에 저장된 전달규칙 테이블에 따라 다른 스위치 장치로 전달하기 위한 우선순위 큐(priority queue)로 보내는 단계를 포함하고, 상기 모드 변경은, 상기 모드 처리부가, 전달규칙 그림자 테이블 저장부에 저장되어 있는 전달규칙 테이블 중, 변경된 현재 모드에 해당하는 전달규칙 테이블을 상기 전달규칙 테이블 저장부에 업데이트하여 저장함으로써 이루어진다.

상기 단계(b) 이후, (d) 모드 전달부가, 모드 변경 발생시, 모드 변경을 다른 스위치 장치로 전달하는 단계를 더 포함할 수 있다.
상기 단계(b)와 (c) 사이에, (b1) 우선순위 큐 재배치부가, 모드 변경 발생시, 상기 우선순위 큐에 존재하는 패킷 중, 변경된 현재 모드를 기준으로 모드 위반(out-of-mode)에 해당하는 패킷에 대하여, 변경된 현재 모드에 따라 우선순위 큐에서의 재배치를 수행하는 단계를 더 포함할 수 있다.
상기 단계(a)는, (a1) 상기 플로우 행동 모니터부가, 수신된 패킷이 메시지의 첫번째 패킷일 경우 메시지 헤더의 정보로부터 해당 메시지의 크기를 파악하는 단계; (a2) 상기 플로우 행동 모니터부가, 현재 수신된 메시지와 바로 앞의 메시지 사이의 시간간격(inter-arrival interval)을 계산하는 단계; (a3) 상기 플로우 행동 모니터부가, 계산된 시간간격과 기 설정된 기준 시간간격 값과의 비교 및 상기 파악된 메시지 크기와 기 설정된 기준 메시지 크기 값과의 비교를 통하여 플로우 행동 변화 여부를 감지하는 단계; 및, (a4) 상기 플로우 행동 모니터부가, 플로우 행동 변화가 발생한 경우 모드 변경을 상기 모드 처리부에 알리는 단계를 포함할 수 있다.
삭제
삭제
삭제
본 발명의 또 다른 측면에 따르면, 컴퓨터에 다중 중요도 모드에 따른 패킷 스케줄링 방법을 실행시키기 위하여 비일시적 저장매체에 저장된 컴퓨터프로그램은, 비일시적 저장매체에 저장되며, 프로세서에 의하여, (a) 플로우 행동 모니터부가, 일련의 전송되는 메시지들로 구성된 플로우(flow)의 행동을 모니터링하는 단계; (b) 모드 처리부가, 상기 모니터링 결과에 따라 패킷 스케줄링을 위한 중요도 모드(criticality mode, 이하 '모드'라 한다)를 변경하는 단계; (c) 데이터 전달 처리부가, 수신된 패킷을, 전달규칙 테이블 저장부에 저장된 전달규칙 테이블에 따라 다른 스위치 장치로 전달하기 위한 우선순위 큐(priority queue)로 보내는 단계가 실행되도록 하는 명령을 포함하고, 상기 모드 변경은, 상기 모드 처리부가, 전달규칙 그림자 테이블 저장부에 저장되어 있는 전달규칙 테이블 중, 변경된 현재 모드에 해당하는 전달규칙 테이블을 상기 전달규칙 테이블 저장부에 업데이트하여 저장함으로써 이루어진다.

상기 단계(b) 이후,(d) 모드 전달부가, 모드 변경 발생시, 모드 변경을 다른 스위치 장치로 전달하는 단계를 더 포함할 수 있다.
상기 단계(b)와 (c) 사이에, (b1) 우선순위 큐 재배치부가, 모드 변경 발생시, 상기 우선순위 큐에 존재하는 패킷 중, 변경된 현재 모드를 기준으로 모드 위반(out-of-mode)에 해당하는 패킷에 대하여, 변경된 현재 모드에 따라 우선순위 큐에서의 재배치를 수행하는 단계를 더 포함할 수 있다.
상기 단계(a)는, (a1) 상기 플로우 행동 모니터부가, 수신된 패킷이 메시지의 첫번째 패킷일 경우 메시지 헤더의 정보로부터 해당 메시지의 크기를 파악하는 단계; (a2) 상기 플로우 행동 모니터부가, 현재 수신된 메시지와 바로 앞의 메시지 사이의 시간간격(inter-arrival interval)을 계산하는 단계; (a3) 상기 플로우 행동 모니터부가, 계산된 시간간격과 기 설정된 기준 시간간격 값과의 비교 및 상기 파악된 메시지 크기와 기 설정된 기준 메시지 크기 값과의 비교를 통하여 플로우 행동 변화 여부를 감지하는 단계; 및, (a4) 상기 플로우 행동 모니터부가, 플로우 행동 변화가 발생한 경우 모드 변경을 상기 모드 처리부에 알리는 단계를 포함할 수 있다.
삭제
삭제
삭제
본 발명에 의하면, 종래 소프트웨어 정의 네트워크의 기술적 제약을 해결하는 방법을 제시하여 차세대 임베디드 네트워크 표준이 될 이더넷 기반의 네트워크에서 고효율의 적응형 실시간 네트워크 플로우 스케줄링이 가능하도록 하여 시스템 실시간성을 크게 향상시키며, 최근 주목받고 있는 자율주행 자동차와 같은 복잡한 사이버-물리 시스템(CPS: Cyber-Physical Systems)의 내부 네트워크 자원을 효율적으로 사용 가능하도록 하는 기반 기술로 활용할 수 있게 하기 위한 패킷 스케줄링 방법, 그 방법을 구현한 컴퓨터프로그램 및 그 방법을 수행하는 스위치 장치를 제공하는 효과가 있다.
도 1은 종래 소프트웨어 정의 네트워크 시스템의 스위치 장치의 구성도.
도 2는 본 발명에 따른 다중 중요도 모드에 따른 패킷 스케줄링 방법에서, 우선순위(priority)의 개념을 설명하기 위한 도면.
도 3은 소프트웨어 정의 네트워크 시스템에서 본 발명의, 다중 중요도 모드에 따른 패킷 스케줄링 방법을 구현한 스위치 장치의 구성도.
도 4는 본 발명에 따른 다중 중요도 모드에 따른 패킷 스케줄링 방법을 구현한 스위치 장치에서, 전송 테이블(forwarding table)의 구조 및 이에 따른 패킷 전송 방법을 설명하기 위한 도면.
도 5는 본 발명에 따른 다중 중요도 모드에 따른 패킷 스케줄링 방법을 수행하는 순서도.
이하 첨부된 도면을 참조로 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
도 2는 본 발명에 따른 다중 중요도 모드에 따른 패킷 스케줄링 방법에서, 우선순위(priority)의 개념을 설명하기 위한 도면이다.
1. 우선순위(priority)
우선순위(priority)란, 각 작업(flow)이 공유 자원(link)을 사용함에 있어, 어느 작업에게 자원을 우선적으로 사용하게 해줄 것인지를 나타내는 지표이다. 이는 스케줄러의 정책에 의해서 결정된다. 자원은 한 시점에 하나의 작업만이 사용되는데, 이는 한 시점에 한 패킷만 전송 가능하다는 것을 의미한다. 각 작업의 요구조건은 (주기, 전송량, 마감시간)으로 표현할 수 있으며, 이때 단위시간 1은 1개의 패킷 전송 시간이라고 가정한다.
'플로우(flow)'는 일련의 전송되는 메시지들로 구성되며, '메시지'는 주기적으로 생성되는 하나 이상의 패킷들의 집합을 의미한다.
도 2(a)는 플로우 1(flow 1, F1)과 플로우 3(flow 2, F3) 각각을 전송하는데 걸리는 요구조건, 즉 (주기, 전송량, 마감시간)의 일 실시예를 시간축에 나타낸 도면이다. 이 경우 F1이 더 높은 우선순위(priority)를 가지는 경우, F1은 항상 먼저 전송되고, 도 2(b)를 참조하면, F1과 F3 모두의 마감시간이 만족됨을 알 수 있다.
만약 도 2(c)와 같이 F3가 더 높은 우선순위를 가지면, F1과 F3가 동시에 발생되었을 때, F1의 마감시간을 지킬 수 없게 된다.
이러한 사항들을 고려하여 스케줄러는 각 플로우의 전송 우선순위(scheduling priority)를 결정하고, 각 플로우의 패킷들은 결정된 우선순위에 따라 우선순위 큐(priority queue)에 넣어지며, 우선순위 큐는 매 패킷 전송 시점에 해당 큐에 존재하는 패킷 중 가장 높은 우선순위(priority)를 가지는 패킷을 전송하게 된다.
2. 중요도(criticality)
중요도(criticality)란, 스케줄링과 무관하게 각 작업(flow)이 고유하게 가지고 있는, 시스템 성능과 관련하여 정의된 지표이다. 차량의 긴급 제동을 위한 카메라 센서 패킷의 중요도(safety-critical/ HI flows: 중요도 'high'인 flow)와, 실시간 스트리밍 서비스 패킷의 중요도(mission-critical/ LO flows: 중요도 'low'인 flow)는 작업의 목적에 따라 시스템 설계자에 의해 결정될 수 있다.
이하의 설명에서, 도 2의 F1이 실시간 스트리밍 패킷 플로우(LO flow), F3이 긴급 제동용 카메라 센서 패킷 플로우(HI flow)라고 가정하자.
F3은 평소에 대부분의 경우 (주기, 전송량, 마감시간: 60, 8, 60)으로 행동하지만(LO behavior), 카메라에 장애물이 찍히는 경우와 같이 시스템 상황이 급변할 경우, (9,8,9)로 행동을 변경할 수 있다(HI behavior). 이때 본 발명의 다중 중요도 모드에 따른 패킷 스케줄링을 위한 스위치 장치(도 3 참조)는, 모드 변경(mode change)을 수행한다. 즉, LO mode에서 HI mode로, 스케줄링 정책을 변경하는 것이다.
1) 시스템이 LO mode 일 때
이 경우는 모든 플로우가 LO behavior를 나타낼 때로서, HI/LO flow 모두의 요구조건을 만족할 수 있도록, 도 2(b)와 같이 F1이 높은 우선순위, F3이 낮은 우선순위를 갖도록 스케줄링을 실시한다.
2) 시스템이 HI mode 일 때
이 경우는 특정한 플로우가 HI behavior를 나타낼 때 HI flow를 최우선으로 만족할 수 있도록 스케줄링 한다. 즉, 도 2(c)와 같이 F3이 높은 우선순위를 가지도록 하고, F1은 버리는(drop)는 방식을 선택할 수 있다. 그 이유는, 만약 이와 같이 특정한 플로우가 HI behavior를 나타낼 때에도 변함없이 LO mode 정책을 유지할 경우, 최우선적으로 처리해야할 HI flows의 마감시간을 지키지 못하게 되는 상황이 발생하게 되기 때문이다.
전술한 바와 같이 시스템에 다중 모드를 설정하고, 각 모드에 따라 스케줄링 정책을 서로 다르게 적용하면, 시스템의 모든 플로우들이 LO behavior로 작동하고 있을 때에 한하여 모든 LO flow 들의 데드라인 만족을 보장해줄 수 있고, 또한 특정한 플로우가 HI behavior를 보일 때에는, LO flow 들을 버리게(drop) 되는 한이 있더라도 적어도 모든 HI flows에 대해서만은 데드라인 만족을 보장해 줄 수 있게 되는 것이다.
위의 경우에 만약 다중 모드를 적용하지 않아서 HI flow(F3)가 LO flow(F1) 보다 항상 높은 우선순위를 가지는 것을 가정하면, 이 경우는 F3이 (60, 8, 60)으로 동작하더라도(사실상 대부분의 시간 동안 이 상태로 동작할 것임) F1은 항상 마감시간을 지키지 못하게 된다(도 2(c) 참조). 따라서, 중요도(criticality) 순서와 우선순위(priority) 순서를 동일하게 맞추는 것은 스케줄링 관점에서 좋은 방법이 아니며, 이러한 이유로 본 발명의 다중 중요도 모드에 따른 패킷 스케줄링 스위치 장치는, 다중 중요도 모드를 적용하고, 각 모드에 따라 HI/LO 플로우의 스케줄링을 다르게 구현하여 최적의 스케줄링을 구현한다.
이하 도 3 및 도 4를 참조하여서는 이러한 다중 중요도 모드에 따른 패킷 스케줄링 방식을 구현하되, 종래의 시스템과 차별화되도록, 모드 전환과 이에 따른 스케줄링 방식 전환에 있어서의 지연시간을 현저히 감소시킨 본 발명의 다중 중요도 모드에 따른 패킷 스케줄링 장치의 구성 및 그 스케줄링 방법에 대하여 상세히 설명하기로 한다.
도 3은 소프트웨어 정의 네트워크 시스템에서 본 발명의, 다중 중요도 모드에 따른 패킷 스케줄링 방법을 구현한 스위치 장치(500)의 구성도이다.
종래 소프트웨어 정의 네트워크 시스템(software-defined network, SDN)과 동일하게, 도 3의 소프트웨어 정의 네트워크 시스템도, 네트워크에서의 데이터 처리 정책을 결정하는, 제어평면(control plane) 상의 네트워크 제어부(remote network controller)(300), 네트워크 제어부(300)에서 결정한 정책에 따라 네트워크 패킷을 전달하는 역할을 수행하면서 네트워크 상에서 서로 연결된 다수의 스위치 장치(500)를 포함하고, 각 스위치 장치(500)에는, 해당 스위치 장치(500)와 네트워크 제어부(300) 사이에서 제어메시지의 송수신을 담당하는 스위치 장치 관리부(400)를 구비할 수 있다. 이하에서는 스위치 장치(500) 및 스위치 장치 관리부(400)를 포함하여 데이터 전달부(data plane)라 칭하기로 하나, 경우에 따라서는 본 발명의 주된 구성인 스위치 장치(500)를 데이터 전달부(data plane)이라 칭할 수도 있다.
소프트웨어 정의 네트워크(SDN) 시스템에서는 패킷 전달 정책에 따른 제어를 수행하는 네트워크 제어부(remote network controller)(300)로 구성되는 제어평면(control plane)과, 네트워크 상에서 직접 데이터를 받고 전달하는 역할을 수행하는 데이터 전달부(data plane)가 네트워크 상에서 완전히 분리된(decoupled) 구조이다. 이러한 네트워크 구조는, 가변적인 패킷 스케줄링을 구현할 수 있는 유연성(flexibility)을 가지도록 하는 장점이 있다.
그러나, 이와 같이 제어평면(control plane)과 데이터 전달부(data plane)들이 분리된 구조에서 다중 중요도 모드에 따른 패킷 스케줄링 변화를 수행하기 위해서는, 크게 2가지 문제점이 있다.
첫째는, 현재 소프트웨어 정의 네트워크(SDN)용 스위치 장치 (data plane)에서 제공하는 모니터링 능력은, 다중 중요도 모드에서 'HI' 모드에서의 행동(behavior)을 정의하는데 적절하지 못하다.
둘째는, 네트워크 제어부(300)와 스위치 장치(data plane)(500)들이 분리된 구조, 즉, 제어평면(control plane)과, 데이터 전달부(data plane)가 분리된 구조로 인하여, 네트워크 제어부(300)와 스위치 장치(data plane)(500) 간의 제어 메시지 송수신에 따른 긴 지연시간이 소요되게 되어, 적시에 가변적인 패킷 스케줄링이 이루어지지 못하게 되는 단점이 존재한다.
도 3에 도시된 본 발명의 스위치 장치(500)는, 이러한 다중 중요도 모드에 따른 패킷 스케줄링이 원활히 이루어지도록 하는 새로운 구조를 제시한다. 즉, 도 2를 참조하여 설명한 바와 같은, 다중 중요도(mixed-criticality) 모드 운용하에서 모드 별로 각 패킷에 대한 우선순위(priority)를 다르게 적용하는 가변 스케줄링 구조를 원활하게 수행하기 위해, 도 3에 도시된 본 발명의 스위치 장치(500)는,
i) 스위치 장치(data plane)(500) 내에서 다중 중요도 모드 관리,
ii) 플로우 행동(flow behavior)에 대한 감지와 이에 따라 네트워크 제어부 (control plane)(300)와의 통신에 의한 시간 지연 없는 신속한 모드 전환으로, 높은 중요도를 갖는 'HI flow' 패킷에 대한 적시(in time) 처리, 및
iii) 모드 전환시, 네트워크 제어부(control plane)(300)와의 통신에 의한 시간지연 없이 다른 스위치 장치에도 모드 변경이 일어나도록, 신속한 모드 변경 전달(propagation)
을 구현한다. 이하에서는 도 3을 참조하여 이러한 기능을 수행하는 본 발명의 스위치 장치(500)의 구성에 대하여 상세히 설명하기로 한다.
도 3에 도시된 다중 중요도 모드에 따른 패킷 스케줄링 스위치 장치(500)의 각 구성모듈들은, 소프트웨어적인 모듈로 구성될 수도 있고, 하드웨어적인 모듈(예를 들어 칩(chip) 등)로 구성될 수도 있다.
플로우 행동 모니터부(510)는 현재 플로우(flow)가 HI 모드 행동(behavior)을 나타내는지 또는 LO 모드 행동을 나타내는지를 모니터링하는 역할을 수행한다. '플로우(flow)'는 일련의 전송되는 메시지들로 구성되며, '메시지'는 주기적으로 생성되는 하나 이상의 패킷들의 집합을 의미한다.
SDN 표준 사양을 따르는 일반적인 SDN 스위치들은 플로우의 실시간 행동을 모니터링할 수 없는데, 그 이유는 SDN 스위치의 트래픽 모니터링 능력이 패킷과 바이트(byte)를 계수하는 것과 같은 기능에 한정되어 있기 때문이다.
본 발명의 스위치 장치(500)의 플로우 행동 모니터부(510)는 패킷들로 구성되는 일련의 메시지에 대하여, 수신된 메시지 사이의 시간간격(inter-arrival interval)과 각 메시지의 크기를 지속적으로 추적하면서, 그 메시지 들이 'HI' 모드의 행동을 보이는지 아닌지를 체크한다. 즉, 플로우 행동 모니터부(510)는 수신된 패킷이 메시지의 첫번째 패킷일 경우 메시지 헤더의 정보로부터 해당 메시지의 크기를 파악하고, 현재 수신된 메시지와 바로 앞의 메시지 사이의 시간간격(inter-arrival interval)을 계산한다. 계산된 시간간격이 'LO' 모드에서의 시간간격에 대한 요구조건 값보다 작을 경우에는 '모드 변경'을 모드 처리부(520)에 알린다. 또는 현재 수신된 메시지의 크기가 'LO' 모드에서의 메시지 크기에 대한 요구조건 값보다 클 경우에도 '모드 변경'을 모드 처리부(520)에 알린다. 이와 같은 모니터링 과정은, 일부 패킷들의 내용을 잠시 참조하는 수준의 간단한 연산만을 수반하므로, 패킷 전송에 있어서 무시할 수 있을 정도의 작은 시간 밖에 걸리지 않는다.
모드 처리부(520)는 플로우 행동 모니터부(510)가 '모드 변경'을 알려준 경우, 실제로 모드 변경을 수행한다. 모드 변경을 수행한다 함은, 전달규칙 테이블(forwarding table) 저장부(550)에 저장된 전달규칙 테이블을, 전달규칙 그림자 테이블(datapath shadow table) 저장부(540)에 저장되어 있는 'HI' 모드 전달규칙으로써 업데이트하는 것을 의미한다.
전달규칙 테이블 저장부(550)에는, 현재 어떤 패킷을 어떤 우선순위(priority)로, 어떤 포트(port)를 통해 다른 스위치 장치로 전달해야 하는지 등에 대한 일련의 규칙, 즉, 전달규칙 테이블이 저장되어 있다.
전달규칙 그림자 테이블 저장부(540)에는, 미리 네트워크 제어부(300)로부터 받아서 저장해 놓은, HI 모드가 될 경우 사용될 일련의 전달규칙, 즉, HI 모드에서는 어떤 패킷을 어떤 우선순위(priority)로, 어떤 포트(port)를 통해 다른 스위치 장치로 전달할 것인지에 대한 일련의 규칙이 저장되어 있다.
모드 처리부(520)는, 플로우 행동 모니터부(510)가 HI 모드로의 '모드 변경'을 알려준 경우, 전달규칙 그림자 테이블 저장부(540)에 저장되어 있던 HI 모드 전달규칙을, 현재 패킷 전달시 사용되는 전달규칙이 저장되는 전달규칙 테이블 저장부(550)에 저장함으로써 전달규칙 테이블 저장부(550)의 전달규칙 테이블을 HI 모드 전달규칙으로 업데이트하고, 이에 따라 그 시점부터 HI 모드 전달규칙에 따른 패킷 전달을 시행한다. 전달규칙 테이블 저장부(550)에 저장된 전달규칙 테이블의 구조 및 전달규칙 테이블에 따른 패킷 전송의 일 실시예에 대하여는 도 4를 참조하여 후술하기로 한다.
이와 같은 본 발명에서는, 네트워크 상의 네트워크 제어부(300)로 구성되는 제어평면(control plane)과, 데이터 전달부(data plane)의 스위치 장치(500) 간에, 또는 데이터 전달부(data plane) 내부에서, 'OpenFlow'나 또다른 어떠한 통신(communication)도 전혀 없이 단지 전달규칙 테이블(550)에 전달규칙을 업데이트하는 것만으로 모드 변경이 이루어짐으로써, 도 1에서와 같은 종래 소프트웨어 정의 네트워크(SDN) 시스템과 비교할 수 없이 빠른 모드 전환이 이루어지며, 이에 따라 특히, 높은 중요도를 가지는 플로우(HI flow)의 패킷전송이 HI 모드 전환시에도 지연됨이 없이 항상 적시에 이루어지게 되는 장점을 가진다. 이와 같이 모드 전환부터 신속하게 수행하여 그 모드에 따른 패킷 전달이 이루어진 후에야, 스위치 장치(500)는 네트워크 제어부(300)로 '모드 변경' 되었음의 통지를 스위치 장치 관리부(400)의 'OpenFlow' 등의 인터페이스를 통하여 하게 된다.
모드 전달부(530)는 모드 변경이 일어났을 경우, 이를 네트워크 상에서 연결되어 있는 다른 스위치 장치로 알리는, 모드 전달(propagation) 역할을 수행한다. 즉, 제어평면(control plane) 상의 네트워크 제어부(300)가 다른 스위치 장치들에 대하여 모드 변경을 제어하는 방식이 아니라, 데이터 전달부(data plane)의 스위치 장치(500)가 직접 네트워크 상의 다른 스위치 장치로 모드 변경을 알려줌으로써 매우 신속한 모드 변경이 네트워크를 통하여 전파되게 된다. 이와 같이 다른 스위치 장치로 알려주는 방식은 다양하게 구현할 수 있으며, 일 실시예로서 전달하는 패킷상의 하나의 플래그(flag)를 통하여 알릴 수도 있고, 또는 작은 패킷으로 알려줄 수도 있다.
이하에서는, 도 4를 참조하여, 전달규칙 테이블(550) 구성 및 전달규칙 테이블(550)에 따른 패킷 전송의 일 실시예에 대하여 설명하기로 한다.
도 4는 본 발명에 따른 다중 중요도 모드에 따른 패킷 스케줄링 방법을 구현한 스위치 장치에서, 전달규칙 테이블(forwarding table)의 구조 및 이에 따른 패킷 전송 방법을 설명하기 위한 도면이다.
도 3을 참조하여 전술한 바와 같이 본 발명에서의 중요도 모드에 따른 패킷 스케줄링은, 데이터 전달부(data plane)의 스위치 장치(500)에서, 플로우 행동 모니터부(510)가 지속적인 패킷 행동을 추적하여 패킷 행동 변화에 따라 모드 변경을 결정하고, 모드 처리부(520)에서는 모드 변경에 대응하여 전달규칙 테이블(forwarding table) 저장부(550)에 저장된 전달규칙 테이블을 업데이트하되, 전달규칙 그림자 테이블(datapath shadow table) 저장부(540)에 저장되어 있는 'HI' 모드 전달규칙을 사용하여 전달규칙 테이블 저장부(550)의 전달규칙 테이블을 업데이트함으로써 모드 변경이 신속하게 이루어지게 되고, 업데이트된 전달규칙 테이블에 의해 정해지는, 각 패킷마다의 업데이트된 우선순위 및 기타 규칙에 따라 이후의 패킷 전달이 이루어지게 되는 것이다.
도 4는 그러한 전달규칙 테이블(550)에 저장된 전달규칙 및 그에 따른 패킷 전달의 일 실시예를 나타내고 있다. 물론 전달규칙 그림자 테이블(540) 역시 전달규칙 테이블(550)과 동일한 데이터 구조를 가진다.
도 4(a)를 참조하면, 전달규칙(forwarding rule)은, 네트워크 제어부(control plane)(300)에 의해 패킷 전달 경로(route)와 패킷의 우선순위(priority) 등을 고려해서 정해진다. 정해진 전달규칙은 'OpenFlow' 프로토콜 등을 통해 데이터 전달부(data plane)들로 전달되어 전달규칙 테이블 저장부(550)에 저장될 수 있도록 한다. 물론 본 발명에서는 이와 같이 네트워크 제어부(300)로부터 전달받은 각 모드별로 정해진 전달규칙은 전달규칙 그림자 테이블 저장부(540)에 저장되고, 전달규칙 그림자 테이블 저장부(540)에 저장된 전달규칙 중, 현재 모드에서 사용할 전달규칙이 전달규칙 테이블 저장부(550)로 업데이트되어 사용되게 된다.
도 4(a)의 실시예를 참조하면, 전달규칙 테이블 저장부(550)의 각 전달규칙은 크게 "Matching Fields" 와 "Actions"로 구성될 수 있다.
들어오는 패킷들의 헤더와, 각 규칙의 matching fields를 비교하되, 테이블의 첫 번째 엔트리부터 시작해서 마지막 엔트리까지 차례대로 비교하여(도 4(b) 참조) 같지 않으면(not matching) 다음 규칙(rule)으로 넘어가 비교하고, 모두 같으면(matching), 매칭된 패킷을 대상으로, "Actions"에 기록된 동작을 수행한다. 예로써, 특정 포트의 특정 우선순위 큐(570, 도 3 참조)에 해당 패킷을 전달하는 것과 같은 동작이다.
데이터 전달 처리부(560)는, 수신된 패킷을, 전술한 바와 같이, 전달규칙 테이블 저장부(550)에 저장된 전달규칙 테이블에 따라 우선순위 큐(570)에 전달하는 역할을 수행한다. 우선순위 큐(570)는, 구현 방식은 다양하게 할 수 있으나, 높은 우선순위를 가지는 패킷이 먼저 빠져나가도록 구현된다.
매칭된 패킷은 "Actions"에 정해진 우선순위에 따라 우선순위 큐(priority queue)로 보내진다. 우선순위 큐(570)는 높은 우선순위를 가지는 패킷이 항상 먼저 빠져나가도록 구현된다. 스위치 장치(500)의 각 포트마다 우선순위 큐를 가지고 있으며, 각 우선순위 큐는 work conserving queue로서, 해당 포트에 연결된 링크가 비어있고 큐 내부에 패킷이 존재하면 해당 패킷을 전송한다.
도 4(a)에 도시된 "Matching Fields" 와 "Actions"는 하나의 실시예로서, 다양한 구성이 가능하다.
또한 우선순위 큐 재배치부(580)는, 모드 변경 발생시, 상기 우선순위 큐(570)에 존재하는 패킷 중, 변경된 현재 모드를 기준으로 모드 위반(out-of-mode)에 해당하는 패킷에 대하여, 변경된 현재 모드에 따라 우선순위 큐에서의 재배치를 수행한다. 즉, 변경된 현재 모드를 기준으로 모드 위반(out-of-mode)된 패킷들(모드 변경이 발생하기 전의 전송 정책에 의해서 우선순위 큐로 보내져서 전송을 기다리고 있는 패킷들)을 우선순위 큐(570)에서 꺼내어, 변경된 모드의 전송 정책을 적용하여 다시 우선순위 큐(570)로 보내거나, 또는 경우에 따라 해당 패킷을 우선순위 큐(570)에서 삭제(drop)할 수도 있다.
일 실시예로서, 우선순위 큐 재배치부(580)는, 우선순위 큐(570)에 내부의 패킷들을 실제 전송하지 않고도 우선순위 큐(570)로부터 임의로 빼낼 수 있는 인터페이스의 역할을 수행하여, 빼낸 패킷들에 새로운 전송 정책을 적용하여 다시 우선순위 큐(570)로 넣거나, 또는 임의로 모드 위반 패킷을 우선순위 큐(570)에서 버릴 수 있도록 할 수 있다.
한편, 지금까지 설명한 바와 같은, LO 모드에서 HI 모드로의 전환 방법은, 반대로 HI 모드에서 LO 모드로의 전환에 있어서도 같은 방식으로 이루어질 수 있다.
즉, 전달규칙 그림자 테이블 저장부(540)에는 HI 모드에서 사용될 전달규칙 테이블 뿐만 아니라 LO 모드에서 사용될 전달규칙 테이블도 저장하고, 또한 HI 모드 수행중에도 플로우 행동 모니터부(510)는, 수신되는 패킷, 메시지들을 통하여 플로우(flow)의 행동을 모니터링하여 LO 모드에 해당하는 행동을 보일 경우에는 다시 LO 모드로의 모드 변경을 모드 처리부(520)로 알리게 된다. LO 모드에 해당하는 행동이란, 예를 들어 현재 수신된 메시지와 바로 앞의 메시지 사이의 시간간격(inter-arrival interval)을 계산하여 계산된 시간간격이 'LO' 모드에서의 시간간격에 대한 요구조건 값보다 크거나 같은 경우, 또는 현재 수신된 메시지의 크기가 'LO' 모드에서의 메시지 크기에 대한 요구조건 값보다 작거나 같은 경우를 의미할 수 있다.
플로우 행동 모니터부(510)가 LO 모드로의 '모드 변경'을 알려준 경우, 전달규칙 그림자 테이블 저장부(540)에 저장되어 있던 LO 모드 전달규칙을, 현재 패킷 전달시 사용되는 전달규칙이 저장되는 전달규칙 테이블 저장부(550)에 저장함으로써 전달규칙 테이블 저장부(550)의 전달규칙 테이블을 LO 전달규칙으로 업데이트하고, 이에 따라 그 시점부터 LO 모드 전달규칙에 따른 패킷 전달을 시행하게 된다. 또한 모드 전달부(530)는 이와 같이 LO 모드로의 모드 변경이 일어났을 경우에도, 이를 네트워크 상에서 연결되어 있는 다른 스위치 장치로 전달(propagate)할 수 있다.
도 5는 본 발명에 따른 다중 중요도 모드에 따른 패킷 스케줄링 방법을 수행하는 순서도이다.
본 발명에 따른 다중 중요도 모드에 따른 패킷 스케줄링 방법 및 이를 수행하는 스위치 장치(500)에 대하여는 이미 도 2 내지 도 4를 참조하여 상세히 전술한 바 있으므로, 도 5를 참조하여서는 그와 같은 본 발명의 스케줄링 방법을, 순서도를 참조하여 간략히 정리하여 설명하기로 한다. 즉, 도 3의 다중 중요도 모드에 따른 패킷 스케줄링 스위치 장치(500)는, 도 2 내지 도 5를 참조하여 설명하는, 본 발명의 다중 중요도 모드에 따른 패킷 스케줄링 방법을 수행한다.
본 발명의 스위치 장치(500)는, 먼저 네트워크로부터 수신되는 일련의 메시지들로 구성된 플로우(flow)의 행동을 모니터링 한다(S501). 각 메시지들은 하나 이상의 패킷(packet)으로 구성되어 있다. 네트워크로부터 수신된 패킷은 플로우 행동 모니터부(510)에서 모니터링하여, 플로우 행동의 변화가 있을 경우 패킷 스케줄링을 위한 중요도 모드(criticality mode, 이하 '모드'라 한다)를 변경하게 된다(S502).
이러한 모드 변경은, 전달규칙 그림자 테이블 저장부(540)에 저장되어 있는 전달규칙 테이블 중, 변경된 현재 모드에 해당하는 전달규칙 테이블을 전달규칙 테이블 저장부(550)에 업데이트하여 저장함으로써 이루어진다. 데이터 전달 처리부(560)는, 네트워크로부터 수신된 패킷을 우선순위 큐(priority queue)(570)에 넣고(S504), 이러한 우선순위 큐(570)에 넣어진 패킷들을 우선순위에 따라 네트워크 상의 다른 스위치 장치로 전달하게 된다. 이때 데이터 전달 처리부(560)는, 전달규칙 테이블 저장부(550)에 존재하는 일련의 전달규칙 테이블에서 해당 패킷에 정해진 우선순위에 맞추어 해당 패킷을 우선순위 큐(570)에 넣고, 그 우선순위에 따라 네트워크 상의 스위치 장치로 전달되게 하는 것이다.
이 경우, 본 발명은 동일한 패킷에 대하여 항상 동일한 우선순위를 적용하지 않고, 동일한 패킷이라도 현재 모드에 따라 다른 우선순위가 정해지도록 운용한다. 그와 같은 현재 모드에 적용되는, 각 패킷에 대한 우선순위를 포함하는 일련의 전달규칙을 저장하고 있는 것이 전달규칙(forwarding table) 저장부(550)이다. 본 발명의 중요한 특징은, 모드 변경시 네트워크 상에서 원거리에 떨어져 있는, 제어평면(control plane) 상의 네트워크 제어부(300)로부터 제어메시지를 통신을 통해 수신한 후 이에 따라 모드 변경을 수행하지 않는다는데 있다. 이는 특히 중요도가 높은 HI 모드로의 전환이 이루어질 때 네트워크로 패킷을 전달(packet switching)함에 있어 시간지연에 의하여 실패하는 일이 없도록 하는데 그 목표가 있다.
즉, 본 발명은 미리 네트워크 제어부(300)로부터 수신하여 저장하고 있는 각 모드에 있어서의 전달규칙 테이블들을 전달규칙 그림자 테이블 저장부(540)에 미리 저장하고 있다가, 플로우 행동 모니터부(510)가 플로우 행동으로부터 모드 변경할 상황임을 감지한 경우, 모드 처리부(520)가, 변경 후의 모드에 대한 전달규칙 테이블(전달규칙 그림자 테이블 저장부(540)에 존재)을 전달규칙 테이블 저장부(550)에 업데이트 저장하여, 이후에는 다시 모드 변경이 일어나기 전까지는 업데이트된 전달규칙 테이블의 전달규칙(전달규칙 테이블 저장부(550)에 저장)에 따라 네트워크로 패킷을 전달(packet switching)하게 되는 것이다.
전달규칙 그림자 테이블 저장부(540)와 전달규칙 테이블 저장부(550)는 매우 가까운 위치에 있는 저장부에 있으며, 전달규칙 업데이트는 전술한 바와 같이 전달규칙 그림자 테이블 저장부(540)에 저장된 특정 모드의 전달규칙 테이블을 단지 전달규칙 테이블 저장부(550)에 복사하는 것에 지나지 않기 때문에, 지연시간이 거의 없이 즉각적인 모드 변경(전달규칙 테이블 저장부(550)의 업데이트)이 이루어지고, 즉시 변경된 모드에 따른 전달규칙(각 패킷에 대한 우선순위 포함)에 따른 패킷 전달이 이루어지게 되는 장점이 있다.
한편, 도 3을 참조하여 전술한 바와 같이, 수신된 패킷을 우선순위 큐(570)에 보내기(S504) 전에, 단계(S502)에서 모드 변경이 발생한 경우, 상기 우선순위 큐(570)에 존재하는 패킷 중, 변경된 현재 모드를 기준으로 모드 위반(out-of-mode)에 해당하는 패킷에 대하여, 변경된 현재 모드에 따라 우선순위 큐에서의 재배치를 수행한다(S503). 즉, 변경된 현재 모드를 기준으로 모드 위반(out-of-mode)된 패킷들(모드 변경이 발생하기 전의 전송 정책에 의해서 우선순위 큐로 보내져서 전송을 기다리고 있는 패킷들)을 우선순위 큐(570)에서 꺼내어, 변경된 모드의 전송 정책을 적용하여 다시 우선순위 큐(570)로 보내거나, 또는 경우에 따라 해당 패킷을 우선순위 큐(570)에서 삭제(drop)할 수도 있다. 역시 도 3을 참조하여 전술한 바와 같이, 그 실시예로서, 우선순위 큐 재배치부(580)는, 우선순위 큐(570)에 내부의 패킷들을 실제 전송하지 않고도 우선순위 큐(570)로부터 임의로 빼낼 수 있는 인터페이스의 역할을 수행하여, 빼낸 패킷들에 새로운 전송 정책을 적용하여 다시 우선순위 큐(570)로 넣거나, 또는 임의로 모드 위반 패킷을 우선순위 큐(570)에서 버릴 수 있도록 할 수 있다.
또한 변경된 모드를 네트워크 상의 다른 스위치 장치로 알려줄 때에도 제어평면(control plane)과의 통신을 거치지 않고 모드 변경을 감지한 스위치 장치(500)가 즉시 다음 스위치 장치로 모드 변경을 알려주어(mode propagation)(S505), 네트워크 상의 스위치 장치들이 매우 빠른 속도로 변경된 모드를 공유하게 되어, 네트워크 상의 일련의 메시지들(flow)의 처리를 함께 해당 모드에 따라 처리할 수 있게 되는 것이다.
이와 같이 모드 변경이 완료된 후에야 네트워크에서의 데이터 처리 정책을 결정하는 네트워크 제어부(control plane)(300)로 모드 변경 되었음의 통지를 해줌으로써(S506), 시간 지연없이 변경된 모드에 따라, 네트워크 스위치 장치들간의 패킷 전달이 즉각적으로 이루어지고, 네트워크 제어부(control plane)(300)도 비동기적으로(asynchronously) 이후에 현재 모드를 파악하고 있게 된다.
지금까지 설명한 바는, LO 모드 중에 플로우의 HI 모드 행동을 감지한 경우 뿐만 아니라, HI 모드 중에 플로우의 LO 모드 행동을 감지한 경우에도 적용 가능하며, 이 경우 전달규칙 그림자 테이블 저장부(540)에는 HI 모드에서의 전달규칙 테이블과, LO 모드에서의 전달규칙 테이블을, 미리 제어평면(control plane) 상의 네트워크 제어부(control plane)(300)로부터 수신하여 저장하고 있는 것이 바람직하다.
또한 지금까지의 설명에서 모드를 HI 모드와 LO 모드 2가지인 경우를 중심으로 설명하였으나, 더 많은 다양한 모드를 운용하는 것 역시 동일한 방식으로 가능하다. 즉, 플로우 행동 모니터부(510)는 플로우(flow)의 행동을 더 세분하여 어떤 모드에 따른 행동을 하고 있는지 감지할 수 있으며, 전달규칙 그림자 테이블 저장부(540)에는 그와 같은 다양한 모드들 각각에서 운용할 전달규칙 테이블들을 저장하고, 이에 따라 모드 처리부(520)는 해당하는 모드에 따른 전달규칙 테이블을 전달규칙 그림자 테이블 저장부(540)에서 선택하여 전달규칙 테이블 저장부(550)에 업데이트함으로써 시간지연 없이 신속히 변경된 모드에 따른 패킷 스케줄링이 일어날 수 있게 한다.
100,400: 스위치 장치 관리부
200: 종래 스위치 장치
300: 네트워크 제어부
500: 본 발명의 스위치 장치

Claims (15)

  1. 다중 중요도 모드에 따른 패킷 스케줄링을 구현한 스위치 장치로서,
    일련의 전송되는 메시지들로 구성된 플로우(flow)의 행동을 모니터링하는 플로우 행동 모니터부;
    상기 플로우 행동 모니터부의 모니터링 결과에 따라 패킷 스케줄링을 위한 중요도 모드(criticality mode, 이하 '모드'라 한다)를 변경하는 모드 처리부;
    현재 모드에서의 일련의 패킷 전달규칙을 포함하는 전달규칙 테이블(forwarding table)을 저장하는 전달규칙 테이블 저장부;
    수신된 패킷을, 전달규칙 테이블 저장부에 저장된 전달규칙 테이블에 따라 다른 스위치 장치로 전달하기 위한 우선순위 큐(priority queue)로 보내는 데이터 전달 처리부; 및,
    모드별로, 일련의 패킷 전달규칙을 포함하는 전달규칙 테이블을 저장하는 전달규칙 그림자 테이블 저장부
    를 포함하고,
    상기 모드 변경은,
    상기 모드 처리부가, 상기 전달규칙 그림자 테이블 저장부에 저장되어 있는 전달규칙 테이블 중, 변경된 현재 모드에 해당하는 전달규칙 테이블을 상기 전달규칙 테이블 저장부에 업데이트하여 저장함으로써 이루어지는,
    다중 중요도 모드에 따른 패킷 스케줄링 스위치 장치.
  2. 삭제
  3. 청구항 1에 있어서,
    모드 변경 발생시, 모드 변경을 다른 스위치 장치로 전달하는 모드 전달부
    를 더 포함하는 것을 특징으로 하는 다중 중요도 모드에 따른 패킷 스케줄링 스위치 장치.
  4. 청구항 1에 있어서,
    모드 변경 발생시, 상기 우선순위 큐에 존재하는 패킷 중, 변경된 현재 모드를 기준으로 모드 위반(out-of-mode)에 해당하는 패킷에 대하여, 변경된 현재 모드에 따라 우선순위 큐에서의 재배치를 수행하는 우선순위 큐 재배치부
    를 더 포함하는 것을 특징으로 하는 다중 중요도 모드에 따른 패킷 스케줄링 스위치 장치.
  5. 청구항 1에 있어서,
    상기 플로우 행동 모니터부는,
    수신된 패킷이 메시지의 첫번째 패킷일 경우 메시지 헤더의 정보로부터 해당 메시지의 크기를 파악하고, 현재 수신된 메시지와 바로 앞의 메시지 사이의 시간간격(inter-arrival interval)을 계산하여, 계산된 시간간격과 기 설정된 기준 시간간격 값과의 비교 및 상기 파악된 메시지 크기와 기 설정된 기준 메시지 크기 값과의 비교를 통하여 플로우 행동 변화 여부를 감지하고, 플로우 행동 변화가 발생한 경우 모드 변경을 상기 모드 처리부에 알리는 것
    을 특징으로 하는 다중 중요도 모드에 따른 패킷 스케줄링 스위치 장치.
  6. 다중 중요도 모드에 따른 패킷 스케줄링을 수행하는 방법으로서,
    (a) 플로우 행동 모니터부가, 일련의 전송되는 메시지들로 구성된 플로우(flow)의 행동을 모니터링하는 단계;
    (b) 모드 처리부가, 상기 모니터링 결과에 따라 패킷 스케줄링을 위한 중요도 모드(criticality mode, 이하 '모드'라 한다)를 변경하는 단계;
    (c) 데이터 전달 처리부가, 수신된 패킷을, 전달규칙 테이블 저장부에 저장된 전달규칙 테이블에 따라 다른 스위치 장치로 전달하기 위한 우선순위 큐(priority queue)로 보내는 단계
    를 포함하고,
    상기 모드 변경은,
    상기 모드 처리부가, 전달규칙 그림자 테이블 저장부에 저장되어 있는 전달규칙 테이블 중, 변경된 현재 모드에 해당하는 전달규칙 테이블을 상기 전달규칙 테이블 저장부에 업데이트하여 저장함으로써 이루어지는,
    다중 중요도 모드에 따른 패킷 스케줄링 방법.
  7. 삭제
  8. 청구항 6에 있어서,
    상기 단계(b) 이후,
    (d) 모드 전달부가, 모드 변경 발생시, 모드 변경을 다른 스위치 장치로 전달하는 단계
    를 더 포함하는 것을 특징으로 하는 다중 중요도 모드에 따른 패킷 스케줄링 방법.
  9. 청구항 6에 있어서,
    상기 단계(b)와 (c) 사이에,
    (b1) 우선순위 큐 재배치부가, 모드 변경 발생시, 상기 우선순위 큐에 존재하는 패킷 중, 변경된 현재 모드를 기준으로 모드 위반(out-of-mode)에 해당하는 패킷에 대하여, 변경된 현재 모드에 따라 우선순위 큐에서의 재배치를 수행하는 단계
    를 더 포함하는 것을 특징으로 하는 다중 중요도 모드에 따른 패킷 스케줄링 방법.
  10. 청구항 6에 있어서,
    상기 단계(a)는,
    (a1) 상기 플로우 행동 모니터부가, 수신된 패킷이 메시지의 첫번째 패킷일 경우 메시지 헤더의 정보로부터 해당 메시지의 크기를 파악하는 단계;
    (a2) 상기 플로우 행동 모니터부가, 현재 수신된 메시지와 바로 앞의 메시지 사이의 시간간격(inter-arrival interval)을 계산하는 단계;
    (a3) 상기 플로우 행동 모니터부가, 계산된 시간간격과 기 설정된 기준 시간간격 값과의 비교 및 상기 파악된 메시지 크기와 기 설정된 기준 메시지 크기 값과의 비교를 통하여 플로우 행동 변화 여부를 감지하는 단계; 및,
    (a4) 상기 플로우 행동 모니터부가, 플로우 행동 변화가 발생한 경우 모드 변경을 상기 모드 처리부에 알리는 단계
    를 포함하는 것을 특징으로 하는 다중 중요도 모드에 따른 패킷 스케줄링 방법.
  11. 컴퓨터에 다중 중요도 모드에 따른 패킷 스케줄링 방법을 실행시키기 위하여 비일시적 저장매체에 저장된 컴퓨터프로그램으로서,
    비일시적 저장매체에 저장되며, 프로세서에 의하여,
    (a) 플로우 행동 모니터부가, 일련의 전송되는 메시지들로 구성된 플로우(flow)의 행동을 모니터링하는 단계;
    (b) 모드 처리부가, 상기 모니터링 결과에 따라 패킷 스케줄링을 위한 중요도 모드(criticality mode, 이하 '모드'라 한다)를 변경하는 단계;
    (c) 데이터 전달 처리부가, 수신된 패킷을, 전달규칙 테이블 저장부에 저장된 전달규칙 테이블에 따라 다른 스위치 장치로 전달하기 위한 우선순위 큐(priority queue)로 보내는 단계
    가 실행되도록 하는 명령을 포함하고,
    상기 모드 변경은,
    상기 모드 처리부가, 전달규칙 그림자 테이블 저장부에 저장되어 있는 전달규칙 테이블 중, 변경된 현재 모드에 해당하는 전달규칙 테이블을 상기 전달규칙 테이블 저장부에 업데이트하여 저장함으로써 이루어지는,
    컴퓨터에 다중 중요도 모드에 따른 패킷 스케줄링 방법을 실행시키기 위하여 비일시적 저장매체에 저장된 컴퓨터프로그램.
  12. 삭제
  13. 청구항 11에 있어서,
    상기 단계(b) 이후,
    (d) 모드 전달부가, 모드 변경 발생시, 모드 변경을 다른 스위치 장치로 전달하는 단계
    를 더 포함하는 것을 특징으로 하는, 컴퓨터에 다중 중요도 모드에 따른 패킷 스케줄링 방법을 실행시키기 위하여 비일시적 저장매체에 저장된 컴퓨터프로그램.
  14. 청구항 11에 있어서,
    상기 단계(b)와 (c) 사이에,
    (b1) 우선순위 큐 재배치부가, 모드 변경 발생시, 상기 우선순위 큐에 존재하는 패킷 중, 변경된 현재 모드를 기준으로 모드 위반(out-of-mode)에 해당하는 패킷에 대하여, 변경된 현재 모드에 따라 우선순위 큐에서의 재배치를 수행하는 단계
    를 더 포함하는 것을 특징으로 하는, 컴퓨터에 다중 중요도 모드에 따른 패킷 스케줄링 방법을 실행시키기 위하여 비일시적 저장매체에 저장된 컴퓨터프로그램.
  15. 청구항 11에 있어서,
    상기 단계(a)는,
    (a1) 상기 플로우 행동 모니터부가, 수신된 패킷이 메시지의 첫번째 패킷일 경우 메시지 헤더의 정보로부터 해당 메시지의 크기를 파악하는 단계;
    (a2) 상기 플로우 행동 모니터부가, 현재 수신된 메시지와 바로 앞의 메시지 사이의 시간간격(inter-arrival interval)을 계산하는 단계;
    (a3) 상기 플로우 행동 모니터부가, 계산된 시간간격과 기 설정된 기준 시간간격 값과의 비교 및 상기 파악된 메시지 크기와 기 설정된 기준 메시지 크기 값과의 비교를 통하여 플로우 행동 변화 여부를 감지하는 단계; 및,
    (a4) 상기 플로우 행동 모니터부가, 플로우 행동 변화가 발생한 경우 모드 변경을 상기 모드 처리부에 알리는 단계
    를 포함하는 것을 특징으로 하는, 컴퓨터에 다중 중요도 모드에 따른 패킷 스케줄링 방법을 실행시키기 위하여 비일시적 저장매체에 저장된 컴퓨터프로그램.
KR1020180086073A 2018-07-24 2018-07-24 소프트웨어 정의 네트워크 시스템에서 다중 중요도 모드에 따른 패킷 스케줄링 방법, 그 방법을 구현한 컴퓨터프로그램 및 그 방법을 수행하는 스위치 장치 KR102113641B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180086073A KR102113641B1 (ko) 2018-07-24 2018-07-24 소프트웨어 정의 네트워크 시스템에서 다중 중요도 모드에 따른 패킷 스케줄링 방법, 그 방법을 구현한 컴퓨터프로그램 및 그 방법을 수행하는 스위치 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180086073A KR102113641B1 (ko) 2018-07-24 2018-07-24 소프트웨어 정의 네트워크 시스템에서 다중 중요도 모드에 따른 패킷 스케줄링 방법, 그 방법을 구현한 컴퓨터프로그램 및 그 방법을 수행하는 스위치 장치

Publications (2)

Publication Number Publication Date
KR20200011230A KR20200011230A (ko) 2020-02-03
KR102113641B1 true KR102113641B1 (ko) 2020-05-25

Family

ID=69627086

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180086073A KR102113641B1 (ko) 2018-07-24 2018-07-24 소프트웨어 정의 네트워크 시스템에서 다중 중요도 모드에 따른 패킷 스케줄링 방법, 그 방법을 구현한 컴퓨터프로그램 및 그 방법을 수행하는 스위치 장치

Country Status (1)

Country Link
KR (1) KR102113641B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100500300B1 (ko) * 1996-11-08 2005-10-21 테크노메카니카 에스.알.엘. 나란히 배열된 제품군을 형성하여 카톤에 삽입하는 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101674169B1 (ko) * 2015-08-17 2016-11-08 성균관대학교산학협력단 오픈플로우 스위치 및 플로우 테이블 관리 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140106235A (ko) * 2013-02-26 2014-09-03 한국전자통신연구원 오픈플로우 스위치 및 그 패킷 처리 방법
KR101877595B1 (ko) * 2013-10-28 2018-07-12 주식회사 케이티 서비스에 따른 트래픽 처리를 이용한 QoS 제어 방법
KR101618984B1 (ko) * 2013-11-22 2016-05-09 주식회사 케이티 네트워크 장치의 스케쥴러를 위한 정책을 제어하는 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101674169B1 (ko) * 2015-08-17 2016-11-08 성균관대학교산학협력단 오픈플로우 스위치 및 플로우 테이블 관리 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100500300B1 (ko) * 1996-11-08 2005-10-21 테크노메카니카 에스.알.엘. 나란히 배열된 제품군을 형성하여 카톤에 삽입하는 장치

Also Published As

Publication number Publication date
KR20200011230A (ko) 2020-02-03

Similar Documents

Publication Publication Date Title
KR101670642B1 (ko) 클라이언트 디바이스 상에서의 패킷 송신을 스케줄링하기 위한 시스템 및 방법
CN107615709B (zh) Sdn的转发单元和控制器单元
EP2911352B1 (en) Method and network system for end-to-end flow control
US11665104B1 (en) Delay-based tagging in a network switch
CN108718283B (zh) 数据中心网络中集中式端网协调的tcp拥塞控制方法
US9025443B2 (en) Network equipment and frame transmission control method
Siemon Queueing in the Linux network stack
JP2006254383A (ja) 通信制御システムおよび通信制御方法
US11818048B2 (en) Network devices in duty cycle limited networks
CN103152251A (zh) 一种报文处理方法及装置
KR20220058576A (ko) 데이터 송신을 제어하기 위한 방법 및 장치, 및 저장 매체
KR102113641B1 (ko) 소프트웨어 정의 네트워크 시스템에서 다중 중요도 모드에 따른 패킷 스케줄링 방법, 그 방법을 구현한 컴퓨터프로그램 및 그 방법을 수행하는 스위치 장치
KR102153543B1 (ko) 무선 환경에서 usb 통신을 위한 버퍼 관리 방법 및 장치
CN104618261B (zh) 航空电子系统网络内的重整形调度方法
TW201811083A (zh) 通訊系統以及通訊方法
EP2245537B1 (en) Network message management device and methods thereof
Liang et al. Queue‐based congestion detection and multistage rate control in event‐driven wireless sensor networks
CN110809012B (zh) 列车网络通信数据调度控制方法
CN108282406B (zh) 一种数据传输方法、堆叠设备及堆叠系统
US20150138979A1 (en) Network management control device, network management control system, and network management control method
CN109450817A (zh) 时间触发以太网多业务消息发送的混合调度方法
CN102647352B (zh) 报文转发方法、装置和通讯设备
JP2016082363A (ja) 通信装置、情報処理装置、情報処理システム及び通信装置の制御方法
CN103873386B (zh) 管理网络传输顺序的方法
CN114500520A (zh) 一种数据传输方法、装置及通信节点

Legal Events

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